renatofilho@20: renatofilho@20: #include 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: renatofilho@20: renatofilho@20: #include "gmyth_remote_encoder.h" renatofilho@20: #include "gmyth_settings.h" renatofilho@20: #include "gmyth_context.h" renatofilho@20: #include "gmyth_tvchain.h" renatofilho@20: #include "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 */ renatofilho@20: gmyth_context_initialize (); renatofilho@20: 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: