OSDN Git Service

MacGui: Remove Target Size as a rate control option as it doesn't really work correct...
[handbrake-jp/handbrake-jp-git.git] / gtk / src / main.c
index 20e9f85..72617eb 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
 /*
  * main.c
- * Copyright (C) John Stebbins 2008 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2011 <stebbins@stebbins>
  * 
  * main.c is free software.
  * 
 
 #include <gtk/gtk.h>
 
-#if !defined(_WIN32)
+#if defined(_ENABLE_GST)
 #include <gst/gst.h>
+#endif
+
+#if !defined(_WIN32)
 #include <libnotify/notify.h>
 #include <dbus/dbus-glib.h>
 #else
@@ -330,12 +333,9 @@ bind_audio_tree_model (signal_user_data_t *ud)
        selection = gtk_tree_view_get_selection (treeview);
        // 12 columns in model.  6 are visible, the other 6 are for storing
        // values that I need
-       treestore = gtk_list_store_new(12, G_TYPE_STRING, G_TYPE_STRING, 
-                                                                  G_TYPE_STRING, G_TYPE_STRING, 
-                                                                  G_TYPE_STRING, G_TYPE_STRING,
+       treestore = gtk_list_store_new(6, G_TYPE_STRING, G_TYPE_STRING, 
                                                                   G_TYPE_STRING, G_TYPE_STRING, 
-                                                                  G_TYPE_STRING, G_TYPE_STRING,
-                                                                  G_TYPE_STRING, G_TYPE_DOUBLE);
+                                                                  G_TYPE_STRING, G_TYPE_STRING);
        gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(treestore));
 
        cell = gtk_cell_renderer_text_new();
@@ -406,10 +406,10 @@ bind_subtitle_tree_model (signal_user_data_t *ud)
        // values that I need
        // Track, force, burn, default, type, srt offset, track short, source
        // force visible, burn visible, offset visible
-       treestore = gtk_list_store_new(11
+       treestore = gtk_list_store_new(10
                                                                        G_TYPE_STRING,
                                                                        G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-                                                                       G_TYPE_BOOLEAN, G_TYPE_STRING,  
+                                                                       G_TYPE_BOOLEAN,
                                                                        G_TYPE_INT,     G_TYPE_STRING,
                                                                        G_TYPE_INT,
                                                                        G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
@@ -420,19 +420,19 @@ bind_subtitle_tree_model (signal_user_data_t *ud)
        column = gtk_tree_view_column_new_with_attributes(
                                                                        _("Track"), cell, "text", 0, NULL);
        gtk_tree_view_append_column(treeview, GTK_TREE_VIEW_COLUMN(column));
-       gtk_tree_view_column_set_min_width (column, 190);
-       gtk_tree_view_column_set_max_width (column, 190);
+       gtk_tree_view_column_set_min_width (column, 350);
+       gtk_tree_view_column_set_max_width (column, 350);
 
        cell = gtk_cell_renderer_toggle_new();
        column = gtk_tree_view_column_new_with_attributes(
-                       _("Forced Only"), cell, "active", 1, "visible", 8, NULL);
+                       _("Forced Only"), cell, "active", 1, "visible", 7, NULL);
        gtk_tree_view_append_column(treeview, GTK_TREE_VIEW_COLUMN(column));
        g_signal_connect(cell, "toggled", subtitle_forced_toggled_cb, ud);
 
        cell = gtk_cell_renderer_toggle_new();
        gtk_cell_renderer_toggle_set_radio(GTK_CELL_RENDERER_TOGGLE(cell), TRUE);
        column = gtk_tree_view_column_new_with_attributes(
-                       _("Burned In"), cell, "active", 2, "visible", 9, NULL);
+                       _("Burned In"), cell, "active", 2, "visible", 8, NULL);
        gtk_tree_view_append_column(treeview, GTK_TREE_VIEW_COLUMN(column));
        g_signal_connect(cell, "toggled", subtitle_burned_toggled_cb, ud);
 
@@ -445,14 +445,7 @@ bind_subtitle_tree_model (signal_user_data_t *ud)
 
        cell = gtk_cell_renderer_text_new();
        column = gtk_tree_view_column_new_with_attributes(
-                                                                       _("Type"), cell, "text", 4, NULL);
-       gtk_tree_view_append_column(treeview, GTK_TREE_VIEW_COLUMN(column));
-       gtk_tree_view_column_set_min_width (column, 190);
-       gtk_tree_view_column_set_max_width (column, 190);
-
-       cell = gtk_cell_renderer_text_new();
-       column = gtk_tree_view_column_new_with_attributes(
-                       _("Srt Offset"), cell, "text", 5, "visible", 10, NULL);
+                       _("Srt Offset"), cell, "text", 4, "visible", 9, NULL);
        gtk_tree_view_append_column(treeview, GTK_TREE_VIEW_COLUMN(column));
 
 
@@ -658,7 +651,12 @@ IoRedirect(signal_user_data_t *ud)
        // Set encoding to raw.
        g_io_channel_set_encoding (ud->activity_log, NULL, NULL);
        // redirect stderr to the writer end of the pipe
+#if defined(_WIN32)
+       // dup2 doesn't work on windows for some stupid reason
+       stderr->_file = pfd[1];
+#else
        dup2(pfd[1], /*stderr*/2);
+#endif
        setvbuf(stderr, NULL, _IONBF, 0);
        channel = g_io_channel_unix_new (pfd[0]);
        // I was getting an this error:
@@ -721,10 +719,6 @@ watch_volumes(signal_user_data_t *ud)
 #endif
 }
 
-// Hack to avoid a segfault in libavcodec
-extern int mm_flags;
-int mm_support();
-
 G_MODULE_EXPORT void x264_entry_changed_cb(GtkWidget *widget, signal_user_data_t *ud);
 void preview_window_expose_cb(void);
 
@@ -770,7 +764,6 @@ main (int argc, char *argv[])
        GError *error = NULL;
        GOptionContext *context;
 
-       mm_flags = mm_support();
 #ifdef ENABLE_NLS
        bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
@@ -782,11 +775,16 @@ main (int argc, char *argv[])
        context = g_option_context_new ("- Rip and encode DVD or MPEG file");
        g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
        g_option_context_add_group (context, gtk_get_option_group (TRUE));
-#if !defined(_WIN32)
+#if defined(_ENABLE_GST)
        g_option_context_add_group (context, gst_init_get_option_group ());
 #endif
        g_option_context_parse (context, &argc, &argv, &error);
        g_option_context_free(context);
+
+       if (argc > 1 && dvd_device == NULL && argv[1][0] != '-')
+       {
+               dvd_device = argv[1];
+       }
        
        gtk_set_locale ();
        gtk_init (&argc, &argv);
@@ -822,6 +820,11 @@ main (int argc, char *argv[])
        // Since GtkBuilder no longer assigns object ids to widget names
        // Assign a few that are necessary for style overrides to work
        GtkWidget *widget;
+#if defined(_NO_UPDATE_CHECK)
+       widget = GHB_WIDGET(ud->builder, "check_updates_box");
+       gtk_widget_hide(widget);
+#endif
+
        widget = GHB_WIDGET(ud->builder, "preview_hud");
        gtk_widget_set_name(widget, "preview_hud");
        widget = GHB_WIDGET(ud->builder, "preview_window");
@@ -918,7 +921,8 @@ main (int argc, char *argv[])
        if (dvd_device != NULL)
        {
                // Source overridden from command line option
-               ghb_settings_set_string(ud->settings, "source", dvd_device);
+               ghb_settings_set_string(ud->settings, "scan_source", dvd_device);
+               g_idle_add((GSourceFunc)ghb_idle_scan, ud);
        }
        // Reload and check status of the last saved queue
        g_idle_add((GSourceFunc)ghb_reload_queue, ud);