maemo-ui/src/mmyth_main.c
author renatofilho
Thu Jun 14 20:40:47 2007 +0100 (2007-06-14)
branchtrunk
changeset 754 cb885ee44618
parent 376 39189137071e
permissions -rw-r--r--
[svn r760] changed code style to Kernel Normal Form style with tabsize=4
renatofilho@20
     1
renatofilho@20
     2
#include <gtk/gtk.h>
renatofilho@20
     3
renatofilho@20
     4
#include "config.h"
renatofilho@20
     5
renatofilho@20
     6
#ifdef MAEMO_PLATFORM
renatofilho@20
     7
#include "hildon-widgets/hildon-program.h"
renatofilho@20
     8
#include "hildon-widgets/hildon-window.h"
renatofilho@20
     9
#endif
renatofilho@20
    10
rosfran@208
    11
#include <gmyth/gmyth_recorder.h>
rosfran@376
    12
#include <gmyth/gmyth_backendinfo.h>
rosfran@208
    13
#include <gmyth/gmyth_tvchain.h>
rosfran@208
    14
#include <gmyth/gmyth_remote_util.h>
renatofilho@20
    15
renatofilho@20
    16
#include "mmyth_ui.h"
renatofilho@20
    17
#include "mmyth_tvplayer.h"
renatofilho@20
    18
renatofilho@20
    19
static void
renatofilho@754
    20
cb_destroy(GtkWidget * widget, gpointer data)
renatofilho@20
    21
{
renatofilho@754
    22
    MMythUi        *mmyth_ui = (MMythUi *) data;
renatofilho@20
    23
renatofilho@20
    24
    if (mmyth_ui->tvplayer != NULL) {
renatofilho@754
    25
        if (mmyth_tvplayer_is_playing(mmyth_ui->tvplayer))
renatofilho@754
    26
            mmyth_tvplayer_stop_playing(mmyth_ui->tvplayer);
renatofilho@20
    27
    }
renatofilho@20
    28
renatofilho@754
    29
    mmyth_ui_finalize(mmyth_ui);
renatofilho@754
    30
renatofilho@754
    31
    gtk_main_quit();
renatofilho@20
    32
}
renatofilho@20
    33
renatofilho@20
    34
#ifdef NDEBUG
renatofilho@20
    35
static void
renatofilho@754
    36
debug_error_func(const gchar * log_domain, GLogLevelFlags log_level,
renatofilho@754
    37
                 const gchar * message, gpointer user_data)
renatofilho@20
    38
{
renatofilho@754
    39
    /*
renatofilho@754
    40
     * leave this with NO print out messages, once you need to disable
renatofilho@754
    41
     * debug messages! 
renatofilho@754
    42
     */
renatofilho@754
    43
    // g_print ( "[%s] DEBUG messages disabled!\n", __FUNCTION__ );
renatofilho@20
    44
}
renatofilho@20
    45
#endif
renatofilho@20
    46
renatofilho@20
    47
gint
renatofilho@754
    48
main(gint argc, gchar * argv[])
renatofilho@20
    49
{
renatofilho@754
    50
    GtkWidget      *window;
renatofilho@754
    51
    MMythUi        *mmyth_ui;
renatofilho@20
    52
#ifdef MAEMO_PLATFORM
renatofilho@754
    53
    HildonProgram  *program = NULL;
renatofilho@20
    54
#endif
renatofilho@20
    55
renatofilho@754
    56
    /*
renatofilho@754
    57
     * init threads 
renatofilho@754
    58
     */
renatofilho@754
    59
    g_thread_init(NULL);
renatofilho@20
    60
renatofilho@754
    61
    /*
renatofilho@754
    62
     * Initializes GTK 
renatofilho@754
    63
     */
renatofilho@754
    64
    gtk_init(&argc, &argv);
renatofilho@754
    65
    gst_init(&argc, &argv);
renatofilho@20
    66
#ifdef NDEBUG
renatofilho@754
    67
    g_log_set_default_handler(debug_error_func, NULL);
renatofilho@20
    68
#endif
renatofilho@20
    69
renatofilho@754
    70
    /*
renatofilho@754
    71
     * Init libmmyth context 
renatofilho@754
    72
     */
renatofilho@754
    73
    /*
renatofilho@754
    74
     * TODO 
renatofilho@754
    75
     */
renatofilho@20
    76
#ifndef MAEMO_PLATFORM
renatofilho@754
    77
    /*
renatofilho@754
    78
     * create the main window 
renatofilho@754
    79
     */
renatofilho@754
    80
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
renatofilho@754
    81
    gtk_widget_set_size_request(window, MAIN_WINDOW_WIDTH,
renatofilho@754
    82
                                MAIN_WINDOW_HEIGHT);
renatofilho@754
    83
    gtk_window_set_title(GTK_WINDOW(window), "Mythtv Frontend");
renatofilho@20
    84
#else
renatofilho@754
    85
    /*
renatofilho@754
    86
     * Creating Hildonized main view 
renatofilho@754
    87
     */
renatofilho@20
    88
    program = HILDON_PROGRAM(hildon_program_get_instance());
renatofilho@20
    89
    window = hildon_window_new();
renatofilho@20
    90
renatofilho@754
    91
    // g_signal_connect(G_OBJECT(window), "delete_event", gtk_main_quit,
renatofilho@754
    92
    // NULL);
renatofilho@20
    93
renatofilho@754
    94
    hildon_program_add_window(program, HILDON_WINDOW(window));
renatofilho@754
    95
    g_set_application_name("Maemo Mythtv");
renatofilho@20
    96
#endif
renatofilho@754
    97
renatofilho@754
    98
    /*
renatofilho@754
    99
     * Initializes MMyth Widgets 
renatofilho@754
   100
     */
renatofilho@20
   101
#ifdef MAEMO_PLATFORM
renatofilho@754
   102
    mmyth_ui = mmyth_ui_initialize(program, window);
renatofilho@754
   103
#else
renatofilho@754
   104
    mmyth_ui = mmyth_ui_initialize(window);
renatofilho@20
   105
#endif
renatofilho@20
   106
renatofilho@754
   107
    // mmyth_ui->loop = g_main_loop_new (NULL, FALSE);
renatofilho@20
   108
renatofilho@754
   109
    /*
renatofilho@754
   110
     * Connect destroy signal handling 
renatofilho@754
   111
     */
renatofilho@754
   112
    g_signal_connect(window, "destroy", G_CALLBACK(cb_destroy), mmyth_ui);
renatofilho@20
   113
renatofilho@754
   114
    /*
renatofilho@754
   115
     * Shows main window and start gtk loop 
renatofilho@754
   116
     */
renatofilho@754
   117
    gtk_widget_show(window);
renatofilho@754
   118
renatofilho@754
   119
    gtk_main();
renatofilho@20
   120
renatofilho@20
   121
    return 0;
renatofilho@20
   122
}