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