diff options
Diffstat (limited to 'plugins/gtkui')
-rw-r--r-- | plugins/gtkui/callbacks.c | 10 | ||||
-rw-r--r-- | plugins/gtkui/callbacks.h | 16 | ||||
-rw-r--r-- | plugins/gtkui/converter.c | 81 | ||||
-rw-r--r-- | plugins/gtkui/deadbeef.glade | 367 | ||||
-rw-r--r-- | plugins/gtkui/interface.c | 318 | ||||
-rw-r--r-- | plugins/gtkui/interface.h | 1 |
6 files changed, 682 insertions, 111 deletions
diff --git a/plugins/gtkui/callbacks.c b/plugins/gtkui/callbacks.c index 80f52542..8cd520bc 100644 --- a/plugins/gtkui/callbacks.c +++ b/plugins/gtkui/callbacks.c @@ -1160,3 +1160,13 @@ on_sortfmt_activate (GtkEntry *entry, gtk_dialog_response (GTK_DIALOG (toplevel), GTK_RESPONSE_OK); } + + +GtkWidget* +encoder_cmdline_help_link_create (gchar *widget_name, gchar *string1, gchar *string2, + gint int1, gint int2) +{ + GtkWidget *link = gtk_link_button_new_with_label ("http://sourceforge.net/apps/mediawiki/deadbeef/index.php?title=Encoder_Command_Line", "Help"); + return link; +} + diff --git a/plugins/gtkui/callbacks.h b/plugins/gtkui/callbacks.h index 9c9ce2d7..a4d852d2 100644 --- a/plugins/gtkui/callbacks.h +++ b/plugins/gtkui/callbacks.h @@ -1033,3 +1033,19 @@ on_custom2_activate (GtkMenuItem *menuitem, void on_sortfmt_activate (GtkEntry *entry, gpointer user_data); + +void +on_edit_encoder_presets_clicked (GtkButton *button, + gpointer user_data); + +void +on_edit_dsp_presets_clicked (GtkButton *button, + gpointer user_data); + +void +on_edit_channel_maps_clicked (GtkButton *button, + gpointer user_data); + +GtkWidget* +encoder_cmdline_help_link_create (gchar *widget_name, gchar *string1, gchar *string2, + gint int1, gint int2); diff --git a/plugins/gtkui/converter.c b/plugins/gtkui/converter.c index 54843508..5a7795c3 100644 --- a/plugins/gtkui/converter.c +++ b/plugins/gtkui/converter.c @@ -31,7 +31,26 @@ converter_show (void) { if (!converter) { converter = create_converterdlg (); gtk_entry_set_text (GTK_ENTRY (lookup_widget (converter, "output_folder")), deadbeef->conf_get_str ("converter.output_folder", "")); - gtk_entry_set_text (GTK_ENTRY (lookup_widget (converter, "encoder_cmd_line")), deadbeef->conf_get_str ("converter.encoder", "")); + + GtkComboBox *combo; + // fill encoder presets + combo = GTK_COMBO_BOX (lookup_widget (converter, "encoder")); + //GtkTreeModel *mdl = gtk_combo_box_get_model (combobox); + //gtk_combo_box_append_text (combo, _("Preset Name")); + gtk_combo_box_set_active (combo, deadbeef->conf_get_int ("converter.encoder_preset", 0)); + + // fill dsp presets + combo = GTK_COMBO_BOX (lookup_widget (converter, "dsp_preset")); + gtk_combo_box_set_active (combo, deadbeef->conf_get_int ("converter.dsp_preset", 0)); + + // fill channel maps + combo = GTK_COMBO_BOX (lookup_widget (converter, "channelmap")); + gtk_combo_box_set_active (combo, deadbeef->conf_get_int ("converter.channelmap_preset", 0)); + + // select output format + combo = GTK_COMBO_BOX (lookup_widget (converter, "output_format")); + gtk_combo_box_set_active (combo, deadbeef->conf_get_int ("converter.output_format", 0)); + } gtk_widget_show (converter); } @@ -200,3 +219,63 @@ on_converterdlg_delete_event (GtkWidget *widget, return FALSE; } +void +on_encoder_preset_add (GtkButton *button, + gpointer user_data) +{ + GtkWidget *dlg = create_convpreset_editor (); + gtk_dialog_run (GTK_DIALOG (dlg)); + gtk_widget_destroy (dlg); +} + +void +on_encoder_preset_edit (GtkButton *button, + gpointer user_data) +{ + GtkWidget *dlg = create_convpreset_editor (); + gtk_dialog_run (GTK_DIALOG (dlg)); + gtk_widget_destroy (dlg); +} + +void +on_encoder_preset_remove (GtkButton *button, + gpointer user_data) +{ + GtkWidget *dlg = gtk_message_dialog_new (GTK_WINDOW (mainwin), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, _("Remove preset")); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg), _("This action will delete the selected preset. Are you sure?")); + gtk_window_set_title (GTK_WINDOW (dlg), _("Warning")); + + int response = gtk_dialog_run (GTK_DIALOG (dlg)); + gtk_widget_destroy (dlg); + if (response != GTK_RESPONSE_YES) { + // .. remove .. + } +} + +void +on_edit_encoder_presets_clicked (GtkButton *button, + gpointer user_data) +{ + GtkWidget *dlg = create_preset_list (); + g_signal_connect ((gpointer)lookup_widget (dlg, "add"), "clicked", G_CALLBACK (on_encoder_preset_add), NULL); + g_signal_connect ((gpointer)lookup_widget (dlg, "remove"), "clicked", G_CALLBACK (on_encoder_preset_remove), NULL); + g_signal_connect ((gpointer)lookup_widget (dlg, "edit"), "clicked", G_CALLBACK (on_encoder_preset_edit), NULL); + + gtk_dialog_run (GTK_DIALOG (dlg)); + gtk_widget_destroy (dlg); +} + + +void +on_edit_dsp_presets_clicked (GtkButton *button, + gpointer user_data) +{ +} + + +void +on_edit_channel_maps_clicked (GtkButton *button, + gpointer user_data) +{ +} + diff --git a/plugins/gtkui/deadbeef.glade b/plugins/gtkui/deadbeef.glade index 58caef8b..ff47c540 100644 --- a/plugins/gtkui/deadbeef.glade +++ b/plugins/gtkui/deadbeef.glade @@ -6290,10 +6290,50 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkComboBox" id="combobox1"> + <widget class="GtkHBox" id="hbox90"> <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkComboBox" id="encoder"> + <property name="visible">True</property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="edit_encoder_presets"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_edit_encoder_presets_clicked" last_modification_time="Sat, 04 Dec 2010 15:20:49 GMT"/> + + <child> + <widget class="GtkImage" id="image469"> + <property name="visible">True</property> + <property name="stock">gtk-edit</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> <packing> <property name="padding">0</property> @@ -6341,11 +6381,51 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkComboBox" id="combobox2"> + <widget class="GtkHBox" id="hbox91"> <property name="visible">True</property> - <property name="items" translatable="yes">Pass Through</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkComboBox" id="dsp_preset"> + <property name="visible">True</property> + <property name="items" translatable="yes">Pass Through</property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="edit_dsp_presets"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_edit_dsp_presets_clicked" last_modification_time="Sat, 04 Dec 2010 15:20:53 GMT"/> + + <child> + <widget class="GtkImage" id="image470"> + <property name="visible">True</property> + <property name="stock">gtk-edit</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> <packing> <property name="padding">0</property> @@ -6393,11 +6473,51 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkComboBox" id="combobox3"> + <widget class="GtkHBox" id="hbox92"> <property name="visible">True</property> - <property name="items" translatable="yes">Pass Through</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkComboBox" id="channelmap"> + <property name="visible">True</property> + <property name="items" translatable="yes">Pass Through</property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="edit_channel_maps"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_edit_channel_maps_clicked" last_modification_time="Sat, 04 Dec 2010 15:20:57 GMT"/> + + <child> + <widget class="GtkImage" id="image471"> + <property name="visible">True</property> + <property name="stock">gtk-edit</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> <packing> <property name="padding">0</property> @@ -6445,7 +6565,7 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkSpinButton" id="spinbutton1"> + <widget class="GtkSpinButton" id="numthreads"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="climb_rate">1</property> @@ -6502,7 +6622,7 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkComboBox" id="combobox4"> + <widget class="GtkComboBox" id="output_format"> <property name="visible">True</property> <property name="items" translatable="yes">Keep original 8 bit signed int @@ -6638,7 +6758,7 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkEntry" id="convpreset_title"> + <widget class="GtkEntry" id="title"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -6672,7 +6792,7 @@ SOCKS5_HOSTNAME</property> <child> <widget class="GtkLabel" id="label106"> <property name="visible">True</property> - <property name="label" translatable="yes">Encoder command line</property> + <property name="label" translatable="yes">Command line</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> @@ -6695,16 +6815,44 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkEntry" id="convpreset_encoder"> + <widget class="GtkHBox" id="hbox93"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">●</property> - <property name="activates_default">False</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkEntry" id="cmdline"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="Custom" id="custom4"> + <property name="visible">True</property> + <property name="creation_function">encoder_cmdline_help_link_create</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Sat, 04 Dec 2010 15:30:13 GMT</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> </widget> <packing> <property name="padding">0</property> @@ -6752,7 +6900,7 @@ SOCKS5_HOSTNAME</property> </child> <child> - <widget class="GtkComboBox" id="convpreset_method"> + <widget class="GtkComboBox" id="method"> <property name="visible">True</property> <property name="items" translatable="yes">Pipe Temporary file</property> @@ -6803,7 +6951,7 @@ Temporary file</property> <property name="column_spacing">8</property> <child> - <widget class="GtkCheckButton" id="checkbutton1"> + <widget class="GtkCheckButton" id="8bit"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">8 bit signed int</property> @@ -6825,7 +6973,7 @@ Temporary file</property> </child> <child> - <widget class="GtkCheckButton" id="checkbutton2"> + <widget class="GtkCheckButton" id="16bit"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">16 bit signed int</property> @@ -6847,7 +6995,7 @@ Temporary file</property> </child> <child> - <widget class="GtkCheckButton" id="checkbutton3"> + <widget class="GtkCheckButton" id="24bit"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">24 bit signed int</property> @@ -6869,7 +7017,7 @@ Temporary file</property> </child> <child> - <widget class="GtkCheckButton" id="checkbutton4"> + <widget class="GtkCheckButton" id="32bit"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">32 bit signed int</property> @@ -6891,7 +7039,7 @@ Temporary file</property> </child> <child> - <widget class="GtkCheckButton" id="checkbutton5"> + <widget class="GtkCheckButton" id="32bitfloat"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">32 bit float</property> @@ -7639,4 +7787,163 @@ Descending</property> </child> </widget> +<widget class="GtkDialog" id="preset_list"> + <property name="visible">True</property> + <property name="title" translatable="yes">Presets</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">True</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">False</property> + <property name="has_separator">True</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox11"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area10"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="okbutton8"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-close</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-7</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="vbox33"> + <property name="border_width">12</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">8</property> + + <child> + <widget class="GtkHBox" id="hbox94"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkButton" id="add"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-add</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="remove"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-remove</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="edit"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-edit</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow8"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + + <child> + <widget class="GtkTreeView" id="presets"> + <property name="width_request">400</property> + <property name="height_request">176</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + <property name="rules_hint">False</property> + <property name="reorderable">False</property> + <property name="enable_search">True</property> + <property name="fixed_height_mode">False</property> + <property name="hover_selection">False</property> + <property name="hover_expand">False</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> +</widget> + </glade-interface> diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c index 2bd18e76..ffa724aa 100644 --- a/plugins/gtkui/interface.c +++ b/plugins/gtkui/interface.c @@ -3252,20 +3252,29 @@ create_converterdlg (void) GtkWidget *converter_output_browse; GtkWidget *hbox69; GtkWidget *label104; - GtkWidget *combobox1; + GtkWidget *hbox90; + GtkWidget *encoder; + GtkWidget *edit_encoder_presets; + GtkWidget *image469; GtkWidget *hbox86; GtkWidget *label114; - GtkWidget *combobox2; + GtkWidget *hbox91; + GtkWidget *dsp_preset; + GtkWidget *edit_dsp_presets; + GtkWidget *image470; GtkWidget *hbox87; GtkWidget *label115; - GtkWidget *combobox3; + GtkWidget *hbox92; + GtkWidget *channelmap; + GtkWidget *edit_channel_maps; + GtkWidget *image471; GtkWidget *hbox88; GtkWidget *label116; - GtkObject *spinbutton1_adj; - GtkWidget *spinbutton1; + GtkObject *numthreads_adj; + GtkWidget *numthreads; GtkWidget *hbox89; GtkWidget *label117; - GtkWidget *combobox4; + GtkWidget *output_format; GtkWidget *dialog_action_area5; GtkWidget *converter_cancel; GtkWidget *converter_ok; @@ -3312,9 +3321,21 @@ create_converterdlg (void) gtk_widget_show (label104); gtk_box_pack_start (GTK_BOX (hbox69), label104, FALSE, FALSE, 0); - combobox1 = gtk_combo_box_new_text (); - gtk_widget_show (combobox1); - gtk_box_pack_start (GTK_BOX (hbox69), combobox1, TRUE, TRUE, 0); + hbox90 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox90); + gtk_box_pack_start (GTK_BOX (hbox69), hbox90, TRUE, TRUE, 0); + + encoder = gtk_combo_box_new_text (); + gtk_widget_show (encoder); + gtk_box_pack_start (GTK_BOX (hbox90), encoder, TRUE, TRUE, 0); + + edit_encoder_presets = gtk_button_new (); + gtk_widget_show (edit_encoder_presets); + gtk_box_pack_start (GTK_BOX (hbox90), edit_encoder_presets, FALSE, FALSE, 0); + + image469 = gtk_image_new_from_stock ("gtk-edit", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image469); + gtk_container_add (GTK_CONTAINER (edit_encoder_presets), image469); hbox86 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox86); @@ -3324,10 +3345,22 @@ create_converterdlg (void) gtk_widget_show (label114); gtk_box_pack_start (GTK_BOX (hbox86), label114, FALSE, FALSE, 0); - combobox2 = gtk_combo_box_new_text (); - gtk_widget_show (combobox2); - gtk_box_pack_start (GTK_BOX (hbox86), combobox2, TRUE, TRUE, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox2), _("Pass Through")); + hbox91 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox91); + gtk_box_pack_start (GTK_BOX (hbox86), hbox91, TRUE, TRUE, 0); + + dsp_preset = gtk_combo_box_new_text (); + gtk_widget_show (dsp_preset); + gtk_box_pack_start (GTK_BOX (hbox91), dsp_preset, TRUE, TRUE, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (dsp_preset), _("Pass Through")); + + edit_dsp_presets = gtk_button_new (); + gtk_widget_show (edit_dsp_presets); + gtk_box_pack_start (GTK_BOX (hbox91), edit_dsp_presets, FALSE, FALSE, 0); + + image470 = gtk_image_new_from_stock ("gtk-edit", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image470); + gtk_container_add (GTK_CONTAINER (edit_dsp_presets), image470); hbox87 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox87); @@ -3337,10 +3370,22 @@ create_converterdlg (void) gtk_widget_show (label115); gtk_box_pack_start (GTK_BOX (hbox87), label115, FALSE, FALSE, 0); - combobox3 = gtk_combo_box_new_text (); - gtk_widget_show (combobox3); - gtk_box_pack_start (GTK_BOX (hbox87), combobox3, TRUE, TRUE, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox3), _("Pass Through")); + hbox92 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox92); + gtk_box_pack_start (GTK_BOX (hbox87), hbox92, TRUE, TRUE, 0); + + channelmap = gtk_combo_box_new_text (); + gtk_widget_show (channelmap); + gtk_box_pack_start (GTK_BOX (hbox92), channelmap, TRUE, TRUE, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (channelmap), _("Pass Through")); + + edit_channel_maps = gtk_button_new (); + gtk_widget_show (edit_channel_maps); + gtk_box_pack_start (GTK_BOX (hbox92), edit_channel_maps, FALSE, FALSE, 0); + + image471 = gtk_image_new_from_stock ("gtk-edit", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image471); + gtk_container_add (GTK_CONTAINER (edit_channel_maps), image471); hbox88 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox88); @@ -3350,10 +3395,10 @@ create_converterdlg (void) gtk_widget_show (label116); gtk_box_pack_start (GTK_BOX (hbox88), label116, FALSE, FALSE, 0); - spinbutton1_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); - spinbutton1 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton1_adj), 1, 0); - gtk_widget_show (spinbutton1); - gtk_box_pack_start (GTK_BOX (hbox88), spinbutton1, TRUE, TRUE, 0); + numthreads_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); + numthreads = gtk_spin_button_new (GTK_ADJUSTMENT (numthreads_adj), 1, 0); + gtk_widget_show (numthreads); + gtk_box_pack_start (GTK_BOX (hbox88), numthreads, TRUE, TRUE, 0); hbox89 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox89); @@ -3363,15 +3408,15 @@ create_converterdlg (void) gtk_widget_show (label117); gtk_box_pack_start (GTK_BOX (hbox89), label117, FALSE, FALSE, 0); - combobox4 = gtk_combo_box_new_text (); - gtk_widget_show (combobox4); - gtk_box_pack_start (GTK_BOX (hbox89), combobox4, TRUE, TRUE, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox4), _("Keep original")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox4), _("8 bit signed int")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox4), _("16 bit signed int")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox4), _("24 bit signed int")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox4), _("32 bit signed int")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combobox4), _("32 bit float")); + output_format = gtk_combo_box_new_text (); + gtk_widget_show (output_format); + gtk_box_pack_start (GTK_BOX (hbox89), output_format, TRUE, TRUE, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (output_format), _("Keep original")); + gtk_combo_box_append_text (GTK_COMBO_BOX (output_format), _("8 bit signed int")); + gtk_combo_box_append_text (GTK_COMBO_BOX (output_format), _("16 bit signed int")); + gtk_combo_box_append_text (GTK_COMBO_BOX (output_format), _("24 bit signed int")); + gtk_combo_box_append_text (GTK_COMBO_BOX (output_format), _("32 bit signed int")); + gtk_combo_box_append_text (GTK_COMBO_BOX (output_format), _("32 bit float")); dialog_action_area5 = GTK_DIALOG (converterdlg)->action_area; gtk_widget_show (dialog_action_area5); @@ -3393,6 +3438,15 @@ create_converterdlg (void) g_signal_connect ((gpointer) converter_output_browse, "clicked", G_CALLBACK (on_converter_output_browse_clicked), NULL); + g_signal_connect ((gpointer) edit_encoder_presets, "clicked", + G_CALLBACK (on_edit_encoder_presets_clicked), + NULL); + g_signal_connect ((gpointer) edit_dsp_presets, "clicked", + G_CALLBACK (on_edit_dsp_presets_clicked), + NULL); + g_signal_connect ((gpointer) edit_channel_maps, "clicked", + G_CALLBACK (on_edit_channel_maps_clicked), + NULL); g_signal_connect ((gpointer) converter_cancel, "clicked", G_CALLBACK (on_converter_cancel_clicked), NULL); @@ -3411,19 +3465,28 @@ create_converterdlg (void) GLADE_HOOKUP_OBJECT (converterdlg, converter_output_browse, "converter_output_browse"); GLADE_HOOKUP_OBJECT (converterdlg, hbox69, "hbox69"); GLADE_HOOKUP_OBJECT (converterdlg, label104, "label104"); - GLADE_HOOKUP_OBJECT (converterdlg, combobox1, "combobox1"); + GLADE_HOOKUP_OBJECT (converterdlg, hbox90, "hbox90"); + GLADE_HOOKUP_OBJECT (converterdlg, encoder, "encoder"); + GLADE_HOOKUP_OBJECT (converterdlg, edit_encoder_presets, "edit_encoder_presets"); + GLADE_HOOKUP_OBJECT (converterdlg, image469, "image469"); GLADE_HOOKUP_OBJECT (converterdlg, hbox86, "hbox86"); GLADE_HOOKUP_OBJECT (converterdlg, label114, "label114"); - GLADE_HOOKUP_OBJECT (converterdlg, combobox2, "combobox2"); + GLADE_HOOKUP_OBJECT (converterdlg, hbox91, "hbox91"); + GLADE_HOOKUP_OBJECT (converterdlg, dsp_preset, "dsp_preset"); + GLADE_HOOKUP_OBJECT (converterdlg, edit_dsp_presets, "edit_dsp_presets"); + GLADE_HOOKUP_OBJECT (converterdlg, image470, "image470"); GLADE_HOOKUP_OBJECT (converterdlg, hbox87, "hbox87"); GLADE_HOOKUP_OBJECT (converterdlg, label115, "label115"); - GLADE_HOOKUP_OBJECT (converterdlg, combobox3, "combobox3"); + GLADE_HOOKUP_OBJECT (converterdlg, hbox92, "hbox92"); + GLADE_HOOKUP_OBJECT (converterdlg, channelmap, "channelmap"); + GLADE_HOOKUP_OBJECT (converterdlg, edit_channel_maps, "edit_channel_maps"); + GLADE_HOOKUP_OBJECT (converterdlg, image471, "image471"); GLADE_HOOKUP_OBJECT (converterdlg, hbox88, "hbox88"); GLADE_HOOKUP_OBJECT (converterdlg, label116, "label116"); - GLADE_HOOKUP_OBJECT (converterdlg, spinbutton1, "spinbutton1"); + GLADE_HOOKUP_OBJECT (converterdlg, numthreads, "numthreads"); GLADE_HOOKUP_OBJECT (converterdlg, hbox89, "hbox89"); GLADE_HOOKUP_OBJECT (converterdlg, label117, "label117"); - GLADE_HOOKUP_OBJECT (converterdlg, combobox4, "combobox4"); + GLADE_HOOKUP_OBJECT (converterdlg, output_format, "output_format"); GLADE_HOOKUP_OBJECT_NO_REF (converterdlg, dialog_action_area5, "dialog_action_area5"); GLADE_HOOKUP_OBJECT (converterdlg, converter_cancel, "converter_cancel"); GLADE_HOOKUP_OBJECT (converterdlg, converter_ok, "converter_ok"); @@ -3439,21 +3502,23 @@ create_convpreset_editor (void) GtkWidget *vbox27; GtkWidget *hbox70; GtkWidget *label105; - GtkWidget *convpreset_title; + GtkWidget *title; GtkWidget *hbox72; GtkWidget *label106; - GtkWidget *convpreset_encoder; + GtkWidget *hbox93; + GtkWidget *cmdline; + GtkWidget *custom4; GtkWidget *hbox73; GtkWidget *label107; - GtkWidget *convpreset_method; + GtkWidget *method; GtkWidget *frame8; GtkWidget *alignment20; GtkWidget *table1; - GtkWidget *checkbutton1; - GtkWidget *checkbutton2; - GtkWidget *checkbutton3; - GtkWidget *checkbutton4; - GtkWidget *checkbutton5; + GtkWidget *_8bit; + GtkWidget *_16bit; + GtkWidget *_24bit; + GtkWidget *_32bit; + GtkWidget *_32bitfloat; GtkWidget *label118; GtkWidget *dialog_action_area6; GtkWidget *convpreset_cancel; @@ -3479,23 +3544,33 @@ create_convpreset_editor (void) gtk_widget_show (label105); gtk_box_pack_start (GTK_BOX (hbox70), label105, FALSE, FALSE, 0); - convpreset_title = gtk_entry_new (); - gtk_widget_show (convpreset_title); - gtk_box_pack_start (GTK_BOX (hbox70), convpreset_title, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (convpreset_title), 9679); + title = gtk_entry_new (); + gtk_widget_show (title); + gtk_box_pack_start (GTK_BOX (hbox70), title, TRUE, TRUE, 0); + gtk_entry_set_invisible_char (GTK_ENTRY (title), 9679); hbox72 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox72); gtk_box_pack_start (GTK_BOX (vbox27), hbox72, FALSE, TRUE, 0); - label106 = gtk_label_new (_("Encoder command line")); + label106 = gtk_label_new (_("Command line")); gtk_widget_show (label106); gtk_box_pack_start (GTK_BOX (hbox72), label106, FALSE, FALSE, 0); - convpreset_encoder = gtk_entry_new (); - gtk_widget_show (convpreset_encoder); - gtk_box_pack_start (GTK_BOX (hbox72), convpreset_encoder, TRUE, TRUE, 0); - gtk_entry_set_invisible_char (GTK_ENTRY (convpreset_encoder), 9679); + hbox93 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox93); + gtk_box_pack_start (GTK_BOX (hbox72), hbox93, TRUE, TRUE, 0); + + cmdline = gtk_entry_new (); + gtk_widget_show (cmdline); + gtk_box_pack_start (GTK_BOX (hbox93), cmdline, TRUE, TRUE, 0); + gtk_entry_set_invisible_char (GTK_ENTRY (cmdline), 9679); + + custom4 = encoder_cmdline_help_link_create ("custom4", "", "", 0, 0); + gtk_widget_show (custom4); + gtk_box_pack_start (GTK_BOX (hbox93), custom4, TRUE, TRUE, 0); + GTK_WIDGET_UNSET_FLAGS (custom4, GTK_CAN_FOCUS); + GTK_WIDGET_UNSET_FLAGS (custom4, GTK_CAN_DEFAULT); hbox73 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox73); @@ -3505,11 +3580,11 @@ create_convpreset_editor (void) gtk_widget_show (label107); gtk_box_pack_start (GTK_BOX (hbox73), label107, FALSE, FALSE, 0); - convpreset_method = gtk_combo_box_new_text (); - gtk_widget_show (convpreset_method); - gtk_box_pack_start (GTK_BOX (hbox73), convpreset_method, TRUE, TRUE, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (convpreset_method), _("Pipe")); - gtk_combo_box_append_text (GTK_COMBO_BOX (convpreset_method), _("Temporary file")); + method = gtk_combo_box_new_text (); + gtk_widget_show (method); + gtk_box_pack_start (GTK_BOX (hbox73), method, TRUE, TRUE, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (method), _("Pipe")); + gtk_combo_box_append_text (GTK_COMBO_BOX (method), _("Temporary file")); frame8 = gtk_frame_new (NULL); gtk_widget_show (frame8); @@ -3527,33 +3602,33 @@ create_convpreset_editor (void) gtk_table_set_row_spacings (GTK_TABLE (table1), 8); gtk_table_set_col_spacings (GTK_TABLE (table1), 8); - checkbutton1 = gtk_check_button_new_with_mnemonic (_("8 bit signed int")); - gtk_widget_show (checkbutton1); - gtk_table_attach (GTK_TABLE (table1), checkbutton1, 0, 1, 0, 1, + _8bit = gtk_check_button_new_with_mnemonic (_("8 bit signed int")); + gtk_widget_show (_8bit); + gtk_table_attach (GTK_TABLE (table1), _8bit, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - checkbutton2 = gtk_check_button_new_with_mnemonic (_("16 bit signed int")); - gtk_widget_show (checkbutton2); - gtk_table_attach (GTK_TABLE (table1), checkbutton2, 1, 2, 0, 1, + _16bit = gtk_check_button_new_with_mnemonic (_("16 bit signed int")); + gtk_widget_show (_16bit); + gtk_table_attach (GTK_TABLE (table1), _16bit, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - checkbutton3 = gtk_check_button_new_with_mnemonic (_("24 bit signed int")); - gtk_widget_show (checkbutton3); - gtk_table_attach (GTK_TABLE (table1), checkbutton3, 0, 1, 1, 2, + _24bit = gtk_check_button_new_with_mnemonic (_("24 bit signed int")); + gtk_widget_show (_24bit); + gtk_table_attach (GTK_TABLE (table1), _24bit, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - checkbutton4 = gtk_check_button_new_with_mnemonic (_("32 bit signed int")); - gtk_widget_show (checkbutton4); - gtk_table_attach (GTK_TABLE (table1), checkbutton4, 1, 2, 1, 2, + _32bit = gtk_check_button_new_with_mnemonic (_("32 bit signed int")); + gtk_widget_show (_32bit); + gtk_table_attach (GTK_TABLE (table1), _32bit, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - checkbutton5 = gtk_check_button_new_with_mnemonic (_("32 bit float")); - gtk_widget_show (checkbutton5); - gtk_table_attach (GTK_TABLE (table1), checkbutton5, 0, 1, 2, 3, + _32bitfloat = gtk_check_button_new_with_mnemonic (_("32 bit float")); + gtk_widget_show (_32bitfloat); + gtk_table_attach (GTK_TABLE (table1), _32bitfloat, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); @@ -3582,21 +3657,23 @@ create_convpreset_editor (void) GLADE_HOOKUP_OBJECT (convpreset_editor, vbox27, "vbox27"); GLADE_HOOKUP_OBJECT (convpreset_editor, hbox70, "hbox70"); GLADE_HOOKUP_OBJECT (convpreset_editor, label105, "label105"); - GLADE_HOOKUP_OBJECT (convpreset_editor, convpreset_title, "convpreset_title"); + GLADE_HOOKUP_OBJECT (convpreset_editor, title, "title"); GLADE_HOOKUP_OBJECT (convpreset_editor, hbox72, "hbox72"); GLADE_HOOKUP_OBJECT (convpreset_editor, label106, "label106"); - GLADE_HOOKUP_OBJECT (convpreset_editor, convpreset_encoder, "convpreset_encoder"); + GLADE_HOOKUP_OBJECT (convpreset_editor, hbox93, "hbox93"); + GLADE_HOOKUP_OBJECT (convpreset_editor, cmdline, "cmdline"); + GLADE_HOOKUP_OBJECT (convpreset_editor, custom4, "custom4"); GLADE_HOOKUP_OBJECT (convpreset_editor, hbox73, "hbox73"); GLADE_HOOKUP_OBJECT (convpreset_editor, label107, "label107"); - GLADE_HOOKUP_OBJECT (convpreset_editor, convpreset_method, "convpreset_method"); + GLADE_HOOKUP_OBJECT (convpreset_editor, method, "method"); GLADE_HOOKUP_OBJECT (convpreset_editor, frame8, "frame8"); GLADE_HOOKUP_OBJECT (convpreset_editor, alignment20, "alignment20"); GLADE_HOOKUP_OBJECT (convpreset_editor, table1, "table1"); - GLADE_HOOKUP_OBJECT (convpreset_editor, checkbutton1, "checkbutton1"); - GLADE_HOOKUP_OBJECT (convpreset_editor, checkbutton2, "checkbutton2"); - GLADE_HOOKUP_OBJECT (convpreset_editor, checkbutton3, "checkbutton3"); - GLADE_HOOKUP_OBJECT (convpreset_editor, checkbutton4, "checkbutton4"); - GLADE_HOOKUP_OBJECT (convpreset_editor, checkbutton5, "checkbutton5"); + GLADE_HOOKUP_OBJECT (convpreset_editor, _8bit, "_8bit"); + GLADE_HOOKUP_OBJECT (convpreset_editor, _16bit, "_16bit"); + GLADE_HOOKUP_OBJECT (convpreset_editor, _24bit, "_24bit"); + GLADE_HOOKUP_OBJECT (convpreset_editor, _32bit, "_32bit"); + GLADE_HOOKUP_OBJECT (convpreset_editor, _32bitfloat, "_32bitfloat"); GLADE_HOOKUP_OBJECT (convpreset_editor, label118, "label118"); GLADE_HOOKUP_OBJECT_NO_REF (convpreset_editor, dialog_action_area6, "dialog_action_area6"); GLADE_HOOKUP_OBJECT (convpreset_editor, convpreset_cancel, "convpreset_cancel"); @@ -3919,3 +3996,84 @@ create_select_dsp_plugin (void) return select_dsp_plugin; } +GtkWidget* +create_preset_list (void) +{ + GtkWidget *preset_list; + GtkWidget *dialog_vbox11; + GtkWidget *vbox33; + GtkWidget *hbox94; + GtkWidget *add; + GtkWidget *remove; + GtkWidget *edit; + GtkWidget *scrolledwindow8; + GtkWidget *presets; + GtkWidget *dialog_action_area10; + GtkWidget *okbutton8; + + preset_list = gtk_dialog_new (); + gtk_window_set_title (GTK_WINDOW (preset_list), _("Presets")); + gtk_window_set_modal (GTK_WINDOW (preset_list), TRUE); + gtk_window_set_type_hint (GTK_WINDOW (preset_list), GDK_WINDOW_TYPE_HINT_DIALOG); + + dialog_vbox11 = GTK_DIALOG (preset_list)->vbox; + gtk_widget_show (dialog_vbox11); + + vbox33 = gtk_vbox_new (FALSE, 8); + gtk_widget_show (vbox33); + gtk_box_pack_start (GTK_BOX (dialog_vbox11), vbox33, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (vbox33), 12); + + hbox94 = gtk_hbox_new (TRUE, 0); + gtk_widget_show (hbox94); + gtk_box_pack_start (GTK_BOX (vbox33), hbox94, FALSE, TRUE, 0); + + add = gtk_button_new_from_stock ("gtk-add"); + gtk_widget_show (add); + gtk_box_pack_start (GTK_BOX (hbox94), add, FALSE, FALSE, 0); + + remove = gtk_button_new_from_stock ("gtk-remove"); + gtk_widget_show (remove); + gtk_box_pack_start (GTK_BOX (hbox94), remove, FALSE, FALSE, 0); + + edit = gtk_button_new_from_stock ("gtk-edit"); + gtk_widget_show (edit); + gtk_box_pack_start (GTK_BOX (hbox94), edit, FALSE, FALSE, 0); + + scrolledwindow8 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_show (scrolledwindow8); + gtk_box_pack_start (GTK_BOX (vbox33), scrolledwindow8, TRUE, TRUE, 0); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_SHADOW_IN); + + presets = gtk_tree_view_new (); + gtk_widget_show (presets); + gtk_container_add (GTK_CONTAINER (scrolledwindow8), presets); + gtk_widget_set_size_request (presets, 400, 176); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (presets), FALSE); + + dialog_action_area10 = GTK_DIALOG (preset_list)->action_area; + gtk_widget_show (dialog_action_area10); + gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area10), GTK_BUTTONBOX_END); + + okbutton8 = gtk_button_new_from_stock ("gtk-close"); + gtk_widget_show (okbutton8); + gtk_dialog_add_action_widget (GTK_DIALOG (preset_list), okbutton8, GTK_RESPONSE_CLOSE); + GTK_WIDGET_SET_FLAGS (okbutton8, GTK_CAN_DEFAULT); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (preset_list, preset_list, "preset_list"); + GLADE_HOOKUP_OBJECT_NO_REF (preset_list, dialog_vbox11, "dialog_vbox11"); + GLADE_HOOKUP_OBJECT (preset_list, vbox33, "vbox33"); + GLADE_HOOKUP_OBJECT (preset_list, hbox94, "hbox94"); + GLADE_HOOKUP_OBJECT (preset_list, add, "add"); + GLADE_HOOKUP_OBJECT (preset_list, remove, "remove"); + GLADE_HOOKUP_OBJECT (preset_list, edit, "edit"); + GLADE_HOOKUP_OBJECT (preset_list, scrolledwindow8, "scrolledwindow8"); + GLADE_HOOKUP_OBJECT (preset_list, presets, "presets"); + GLADE_HOOKUP_OBJECT_NO_REF (preset_list, dialog_action_area10, "dialog_action_area10"); + GLADE_HOOKUP_OBJECT (preset_list, okbutton8, "okbutton8"); + + return preset_list; +} + diff --git a/plugins/gtkui/interface.h b/plugins/gtkui/interface.h index 1ef5f3e7..e0e86772 100644 --- a/plugins/gtkui/interface.h +++ b/plugins/gtkui/interface.h @@ -18,3 +18,4 @@ GtkWidget* create_convpreset_editor (void); GtkWidget* create_sortbydlg (void); GtkWidget* create_dsppreset_editor (void); GtkWidget* create_select_dsp_plugin (void); +GtkWidget* create_preset_list (void); |