diff -r cb885ee44618 -r d2d226b5a4bd maemo-ui-old/src/mmyth_main.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/maemo-ui-old/src/mmyth_main.c Fri Feb 01 14:30:21 2008 +0000 @@ -0,0 +1,122 @@ + +#include + +#include "config.h" + +#ifdef MAEMO_PLATFORM +#include "hildon-widgets/hildon-program.h" +#include "hildon-widgets/hildon-window.h" +#endif + +#include +#include +#include +#include + +#include "mmyth_ui.h" +#include "mmyth_tvplayer.h" + +static void +cb_destroy(GtkWidget * widget, gpointer data) +{ + MMythUi *mmyth_ui = (MMythUi *) data; + + if (mmyth_ui->tvplayer != NULL) { + if (mmyth_tvplayer_is_playing(mmyth_ui->tvplayer)) + mmyth_tvplayer_stop_playing(mmyth_ui->tvplayer); + } + + mmyth_ui_finalize(mmyth_ui); + + gtk_main_quit(); +} + +#ifdef NDEBUG +static void +debug_error_func(const gchar * log_domain, GLogLevelFlags log_level, + const gchar * message, gpointer user_data) +{ + /* + * leave this with NO print out messages, once you need to disable + * debug messages! + */ + // g_print ( "[%s] DEBUG messages disabled!\n", __FUNCTION__ ); +} +#endif + +gint +main(gint argc, gchar * argv[]) +{ + GtkWidget *window; + MMythUi *mmyth_ui; +#ifdef MAEMO_PLATFORM + HildonProgram *program = NULL; +#endif + + /* + * init threads + */ + g_thread_init(NULL); + + /* + * Initializes GTK + */ + gtk_init(&argc, &argv); + gst_init(&argc, &argv); +#ifdef NDEBUG + g_log_set_default_handler(debug_error_func, NULL); +#endif + + /* + * Init libmmyth context + */ + /* + * TODO + */ +#ifndef MAEMO_PLATFORM + /* + * create the main window + */ + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_widget_set_size_request(window, MAIN_WINDOW_WIDTH, + MAIN_WINDOW_HEIGHT); + gtk_window_set_title(GTK_WINDOW(window), "Mythtv Frontend"); +#else + /* + * Creating Hildonized main view + */ + program = HILDON_PROGRAM(hildon_program_get_instance()); + window = hildon_window_new(); + + // g_signal_connect(G_OBJECT(window), "delete_event", gtk_main_quit, + // NULL); + + hildon_program_add_window(program, HILDON_WINDOW(window)); + g_set_application_name("Maemo Mythtv"); +#endif + + /* + * Initializes MMyth Widgets + */ +#ifdef MAEMO_PLATFORM + mmyth_ui = mmyth_ui_initialize(program, window); +#else + mmyth_ui = mmyth_ui_initialize(window); +#endif + + // mmyth_ui->loop = g_main_loop_new (NULL, FALSE); + + /* + * Connect destroy signal handling + */ + g_signal_connect(window, "destroy", G_CALLBACK(cb_destroy), mmyth_ui); + + /* + * Shows main window and start gtk loop + */ + gtk_widget_show(window); + + gtk_main(); + + return 0; +}