Integrate flite into aoview directly. Fix great circle computation.
[fw/altos] / aoview / aoview_main.c
index 7906e8ac92231916ae44e53ea9e4f0ac5ddf3ec5..36a82e0e1212dc3da35006dc8e42708266495c51 100644 (file)
 
 #include "aoview.h"
 
+static const char aoview_glade[] = {
+#include "aoview_glade.h"
+};
+
 static void usage(void) {
        printf("aoview [--device|-d device_file]");
        exit(1);
@@ -27,20 +31,24 @@ static void destroy_event(GtkWidget *widget, gpointer data)
        gtk_main_quit();
 }
 
+extern int _Xdebug;
+
 int main(int argc, char **argv)
 {
        GladeXML *xml = NULL;
        GtkWidget *mainwindow;
        char *device = NULL;
+       GtkAboutDialog *about_dialog;
 
        static struct option long_options[] = {
                { "device", 1, 0, 'd'},
+               { "sync", 0, 0, 's'},
                { 0, 0, 0, 0 }
        };
        for (;;) {
                int c, temp;
 
-               c = getopt_long_only(argc, argv, "d:", long_options, &temp);
+               c = getopt_long_only(argc, argv, "sd:", long_options, &temp);
                if (c == -1)
                        break;
 
@@ -48,27 +56,54 @@ int main(int argc, char **argv)
                case 'd':
                        device = optarg;
                        break;
+               case 's':
+                       _Xdebug = 1;
+                       break;
                default:
                        usage();
                }
        }
 
+       g_thread_init(NULL);
        gtk_init(&argc, &argv);
        glade_init();
 
-       xml = glade_xml_new("aoview.glade", NULL, NULL);
+       xml = glade_xml_new_from_buffer(aoview_glade, sizeof (aoview_glade), NULL, NULL);
+
        /* connect the signals in the interface */
        glade_xml_signal_autoconnect(xml);
 
        /* Hook up the close button. */
        mainwindow = glade_xml_get_widget(xml, "aoview");
+       assert(mainwindow);
+
        g_signal_connect (G_OBJECT(mainwindow), "destroy",
            G_CALLBACK(destroy_event), NULL);
 
+       about_dialog = GTK_ABOUT_DIALOG(glade_xml_get_widget(xml, "about_dialog"));
+       assert(about_dialog);
+       gtk_about_dialog_set_version(about_dialog, AOVIEW_VERSION);
+
+       aoview_voice_init(xml);
+
        aoview_dev_dialog_init(xml);
 
        aoview_state_init(xml);
 
+       aoview_file_init(xml);
+
+       aoview_log_init(xml);
+
+       aoview_table_init(xml);
+
+       aoview_eeprom_init(xml);
+
+       aoview_replay_init(xml);
+
+       aoview_label_init(xml);
+
+       aoview_voice_speak("rocket flight monitor ready\n");
+
        gtk_main();
 
        return 0;