renatofilho@20: 
renatofilho@20: #include <gtk/gtk.h>
renatofilho@20: 
renatofilho@20: #include "config.h"
renatofilho@20: 
renatofilho@20: #ifdef MAEMO_PLATFORM
renatofilho@20: #include "hildon-widgets/hildon-program.h"
renatofilho@20: #include "hildon-widgets/hildon-window.h"
renatofilho@20: #endif
renatofilho@20: 
rosfran@208: #include <gmyth/gmyth_recorder.h>
rosfran@208: #include <gmyth/gmyth_context.h>
rosfran@208: #include <gmyth/gmyth_tvchain.h>
rosfran@208: #include <gmyth/gmyth_remote_util.h>
renatofilho@20: 
renatofilho@20: #include "mmyth_ui.h"
renatofilho@20: #include "mmyth_tvplayer.h"
renatofilho@20: 
renatofilho@20: static void
renatofilho@20: cb_destroy (GtkWidget * widget, gpointer data)
renatofilho@20: {
renatofilho@20:     MMythUi *mmyth_ui = (MMythUi *) data;
renatofilho@20: 
renatofilho@20:     if (mmyth_ui->tvplayer != NULL) {
renatofilho@20:     	if (mmyth_tvplayer_is_playing (mmyth_ui->tvplayer) )
renatofilho@20:     		mmyth_tvplayer_stop_playing (mmyth_ui->tvplayer);
renatofilho@20:     }
renatofilho@20: 
renatofilho@20: 	mmyth_ui_finalize (mmyth_ui);
renatofilho@20: 	
renatofilho@20:     gtk_main_quit ();
renatofilho@20: }
renatofilho@20: 
renatofilho@20: #ifdef NDEBUG
renatofilho@20: static void
renatofilho@20: debug_error_func( const gchar*log_domain, GLogLevelFlags log_level, const gchar *message,
renatofilho@20: 	gpointer user_data )
renatofilho@20: 
renatofilho@20: {
renatofilho@20: 	/* leave this with NO print out messages, once you need to disable debug messages! */
renatofilho@20: 	//g_print ( "[%s] DEBUG messages disabled!\n", __FUNCTION__ );
renatofilho@20: }
renatofilho@20: #endif
renatofilho@20: 
renatofilho@20: gint
renatofilho@20: main (gint argc, gchar * argv[])
renatofilho@20: {
renatofilho@20:     GtkWidget *window;
renatofilho@20:     MMythUi *mmyth_ui;
renatofilho@20: #ifdef MAEMO_PLATFORM
renatofilho@20:     HildonProgram *program = NULL;
renatofilho@20: #endif
renatofilho@20: 
renatofilho@20:     /* init threads */
renatofilho@20:     g_thread_init (NULL);
renatofilho@20: 
renatofilho@20:     /* Initializes GTK */
renatofilho@20:     gtk_init (&argc, &argv);
renatofilho@20:     gst_init (&argc, &argv);
renatofilho@20: #ifdef NDEBUG
renatofilho@20:  g_log_set_default_handler( debug_error_func, NULL );
renatofilho@20: #endif
renatofilho@20: 
renatofilho@20:     /* Init libmmyth context */
rosfran@208: 	/* TODO */
renatofilho@20: #ifndef MAEMO_PLATFORM
renatofilho@20:     /* create the main window */
renatofilho@20:     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
renatofilho@20:     gtk_widget_set_size_request (window, MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT);
renatofilho@20:     gtk_window_set_title (GTK_WINDOW (window), "Mythtv Frontend");
renatofilho@20: #else
renatofilho@20:     /* Creating Hildonized main view */
renatofilho@20:     program = HILDON_PROGRAM(hildon_program_get_instance());
renatofilho@20:     window = hildon_window_new();
renatofilho@20: 
renatofilho@20:     //g_signal_connect(G_OBJECT(window), "delete_event", gtk_main_quit, NULL);
renatofilho@20: 
renatofilho@20:     hildon_program_add_window(program, HILDON_WINDOW (window));
renatofilho@20:     g_set_application_name("Maemo Mythtv"); 
renatofilho@20: #endif
renatofilho@20:    
renatofilho@20:     /* Initializes MMyth Widgets */
renatofilho@20: #ifdef MAEMO_PLATFORM
renatofilho@20:     mmyth_ui = mmyth_ui_initialize (program, window);
renatofilho@20: #else    
renatofilho@20:     mmyth_ui = mmyth_ui_initialize (window);
renatofilho@20: #endif
renatofilho@20:     
renatofilho@20:     //mmyth_ui->loop = g_main_loop_new (NULL, FALSE);
renatofilho@20: 
renatofilho@20:     /* Connect destroy signal handling */
renatofilho@20:     g_signal_connect (window, "destroy", G_CALLBACK (cb_destroy), mmyth_ui);
renatofilho@20: 
renatofilho@20:     /* Shows main window and start gtk loop */
renatofilho@20:     gtk_widget_show (window);
renatofilho@20: 
renatofilho@20:     gtk_main ();
renatofilho@20: 
renatofilho@20:     return 0;
renatofilho@20: }
renatofilho@20: