Mercurial > hg > xmms-sid
changeset 871:d183ac29b879
Add ROM image path configuration.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 09 Nov 2012 04:24:48 +0200 |
parents | a2eb84ed5280 |
children | b02f934d8224 |
files | src/xs_config.c src/xs_config.h src/xs_genui.c src/xs_genui.h src/xs_interface.c src/xs_interface.h xmms-sid.glade |
diffstat | 7 files changed, 253 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xs_config.c Fri Nov 09 04:01:03 2012 +0200 +++ b/src/xs_config.c Fri Nov 09 04:24:48 2012 +0200 @@ -65,6 +65,7 @@ *xs_sldb_fileselector = NULL, *xs_stil_fileselector = NULL, *xs_hvsc_selector = NULL, + *xs_rom_selector = NULL, *xs_filt_importselector = NULL, *xs_filt_exportselector = NULL; @@ -120,6 +121,8 @@ { CTYPE_STR, &xs_cfg.stilDBPath, "stilDBPath" }, { CTYPE_STR, &xs_cfg.hvscPath, "hvscPath" }, +{ CTYPE_STR, &xs_cfg.romPath, "romPath" }, + #ifndef AUDACIOUS_PLUGIN { CTYPE_INT, &xs_cfg.subsongControl, "subsongControl" }, { CTYPE_BOOL, &xs_cfg.detectMagic, "detectMagic" }, @@ -163,6 +166,8 @@ { WTYPE_BGROUP, CTYPE_INT, "cfg_emu_sp2_resid", &xs_cfg.sid2Builder, XS_BLD_RESID }, { WTYPE_BGROUP, CTYPE_INT, "cfg_emu_sp2_hardsid", &xs_cfg.sid2Builder, XS_BLD_HARDSID }, +{ WTYPE_TEXT, CTYPE_STR, "cfg_rom_path", &xs_cfg.hvscPath, 0 }, + { WTYPE_BUTTON, CTYPE_BOOL, "cfg_emu_filters", &xs_cfg.emulateFilters, 0 }, { WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_fs", &xs_cfg.sid1Filter.fs, 0 }, { WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_fm", &xs_cfg.sid1Filter.fm, 0 }, @@ -1073,6 +1078,46 @@ XS_DEF_WINDOW_DELETE(hvsc_fs, hvsc_selector) +/* C64 ROM path selector response-functions + */ +void xs_cfg_rom_browse(GtkButton * button, gpointer user_data) +{ + (void) button; + (void) user_data; + + if (xs_rom_selector != NULL) + { + XS_WINDOW_PRESENT(xs_rom_selector); + return; + } + + xs_hvsc_selector = create_xs_rom_fs(); + XS_MUTEX_LOCK(xs_cfg); + gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_rom_selector), xs_cfg.romPath); + XS_MUTEX_UNLOCK(xs_cfg); + gtk_widget_show(xs_rom_selector); +} + + +void xs_rom_fs_ok(GtkButton *button, gpointer user_data) +{ + (void) button; + (void) user_data; + + /* Selection was accepted! */ + gtk_entry_set_text(GTK_ENTRY(LUW("cfg_rom_path")), + gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_rom_selector))); + + /* Close file selector window */ + gtk_widget_destroy(xs_rom_selector); + xs_rom_selector = NULL; +} + + +XS_DEF_WINDOW_CLOSE(rom_fs_cancel, rom_selector) +XS_DEF_WINDOW_DELETE(rom_fs, rom_selector) + + /* Filter handling */ void xs_cfg_sp1_filter_reset(GtkButton * button, gpointer user_data)
--- a/src/xs_config.h Fri Nov 09 04:01:03 2012 +0200 +++ b/src/xs_config.h Fri Nov 09 04:24:48 2012 +0200 @@ -144,6 +144,8 @@ gboolean subAutoEnable, subAutoMinOnly; gint subAutoMinTime; + + gchar *romPath; } xs_cfg; XS_MUTEX_H(xs_cfg);
--- a/src/xs_genui.c Fri Nov 09 04:01:03 2012 +0200 +++ b/src/xs_genui.c Fri Nov 09 04:24:48 2012 +0200 @@ -25,5 +25,3 @@ return FALSE; } - -
--- a/src/xs_genui.h Fri Nov 09 04:01:03 2012 +0200 +++ b/src/xs_genui.h Fri Nov 09 04:24:48 2012 +0200 @@ -194,3 +194,12 @@ GdkEvent *event, gpointer user_data); + +void +xs_cfg_rom_browse (GtkButton *button, + gpointer user_data); + +gboolean +xs_rom_fs_delete (GtkWidget *widget, + GdkEvent *event, + gpointer user_data);
--- a/src/xs_interface.c Fri Nov 09 04:01:03 2012 +0200 +++ b/src/xs_interface.c Fri Nov 09 04:24:48 2012 +0200 @@ -87,6 +87,11 @@ GtkWidget *cfg_emu_resid_int; GtkWidget *cfg_emu_resid_res_fast; GtkWidget *cfg_emu_resid_res_int; + GtkWidget *cfg_rom_frame; + GtkWidget *w_rom_hbox; + GtkWidget *cfg_rom_label1; + GtkWidget *cfg_rom_path; + GtkWidget *cfg_rom_browse; GtkWidget *w_label48; GtkWidget *w_vbox25; GtkWidget *cfg_emu_filters; @@ -712,6 +717,48 @@ gtk_widget_show (cfg_emu_resid_res_int); gtk_box_pack_start (GTK_BOX (w_vbox37), cfg_emu_resid_res_int, FALSE, FALSE, 0); + cfg_rom_frame = gtk_frame_new (_("C64 Kernal/Basic/Chargen ROMs:")); + gtk_widget_set_name (cfg_rom_frame, "cfg_rom_frame"); + gtk_widget_ref (cfg_rom_frame); + gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_frame", cfg_rom_frame, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cfg_rom_frame); + gtk_box_pack_start (GTK_BOX (w_vbox29), cfg_rom_frame, FALSE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (cfg_rom_frame), 4); + + w_rom_hbox = gtk_hbox_new (FALSE, 4); + gtk_widget_set_name (w_rom_hbox, "w_rom_hbox"); + gtk_widget_ref (w_rom_hbox); + gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_rom_hbox", w_rom_hbox, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (w_rom_hbox); + gtk_container_add (GTK_CONTAINER (cfg_rom_frame), w_rom_hbox); + gtk_container_set_border_width (GTK_CONTAINER (w_rom_hbox), 2); + + cfg_rom_label1 = gtk_label_new (_("Path:")); + gtk_widget_set_name (cfg_rom_label1, "cfg_rom_label1"); + gtk_widget_ref (cfg_rom_label1); + gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_label1", cfg_rom_label1, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cfg_rom_label1); + gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_label1, FALSE, FALSE, 0); + + cfg_rom_path = gtk_entry_new (); + gtk_widget_set_name (cfg_rom_path, "cfg_rom_path"); + gtk_widget_ref (cfg_rom_path); + gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_path", cfg_rom_path, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cfg_rom_path); + gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_path, TRUE, TRUE, 0); + + cfg_rom_browse = gtk_button_new_with_label (_("Browse")); + gtk_widget_set_name (cfg_rom_browse, "cfg_rom_browse"); + gtk_widget_ref (cfg_rom_browse); + gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_browse", cfg_rom_browse, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (cfg_rom_browse); + gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_browse, FALSE, FALSE, 0); + w_label48 = gtk_label_new (_("Emu#2")); gtk_widget_set_name (w_label48, "w_label48"); gtk_widget_ref (w_label48); @@ -1150,6 +1197,7 @@ (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (cfg_sld_box); gtk_box_pack_start (GTK_BOX (w_vbox18), cfg_sld_box, FALSE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (cfg_sld_box), 2); cfg_sld_label1 = gtk_label_new (_("DB-file:")); gtk_widget_set_name (cfg_sld_label1, "cfg_sld_label1"); @@ -1617,6 +1665,9 @@ gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplayfp), "toggled", GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay2_toggled), NULL); + gtk_signal_connect (GTK_OBJECT (cfg_rom_browse), "clicked", + GTK_SIGNAL_FUNC (xs_cfg_rom_browse), + NULL); gtk_signal_connect (GTK_OBJECT (cfg_emu_filters), "toggled", GTK_SIGNAL_FUNC (xs_cfg_emu_filters_toggled), NULL); @@ -2459,3 +2510,36 @@ return xs_filter_newwin; } +GtkWidget* +create_xs_rom_fs (void) +{ + GtkWidget *xs_rom_fs; + GtkWidget *ok_button65; + GtkWidget *cancel_button65; + + xs_rom_fs = gtk_file_selection_new (_("Select path to C64 ROM images")); + gtk_widget_set_name (xs_rom_fs, "xs_rom_fs"); + gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "xs_rom_fs", xs_rom_fs); + gtk_container_set_border_width (GTK_CONTAINER (xs_rom_fs), 10); + gtk_window_set_modal (GTK_WINDOW (xs_rom_fs), TRUE); + gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_rom_fs)); + + ok_button65 = GTK_FILE_SELECTION (xs_rom_fs)->ok_button; + gtk_widget_set_name (ok_button65, "ok_button65"); + gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "ok_button65", ok_button65); + gtk_widget_show (ok_button65); + GTK_WIDGET_SET_FLAGS (ok_button65, GTK_CAN_DEFAULT); + + cancel_button65 = GTK_FILE_SELECTION (xs_rom_fs)->cancel_button; + gtk_widget_set_name (cancel_button65, "cancel_button65"); + gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "cancel_button65", cancel_button65); + gtk_widget_show (cancel_button65); + GTK_WIDGET_SET_FLAGS (cancel_button65, GTK_CAN_DEFAULT); + + gtk_signal_connect (GTK_OBJECT (xs_rom_fs), "delete_event", + GTK_SIGNAL_FUNC (xs_rom_fs_delete), + NULL); + + return xs_rom_fs; +} +
--- a/src/xs_interface.h Fri Nov 09 04:01:03 2012 +0200 +++ b/src/xs_interface.h Fri Nov 09 04:24:48 2012 +0200 @@ -11,3 +11,4 @@ GtkWidget* create_xs_filter_export_fs (void); GtkWidget* create_xs_confirmwin (void); GtkWidget* create_xs_filter_newwin (void); +GtkWidget* create_xs_rom_fs (void);
--- a/xmms-sid.glade Fri Nov 09 04:01:03 2012 +0200 +++ b/xmms-sid.glade Fri Nov 09 04:24:48 2012 +0200 @@ -805,6 +805,78 @@ </widget> </widget> </widget> + + <widget> + <class>GtkFrame</class> + <name>cfg_rom_frame</name> + <border_width>4</border_width> + <label>C64 Kernal/Basic/Chargen ROMs:</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkHBox</class> + <name>w_rom_hbox</name> + <border_width>2</border_width> + <homogeneous>False</homogeneous> + <spacing>4</spacing> + + <widget> + <class>GtkLabel</class> + <name>cfg_rom_label1</name> + <label>Path:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkEntry</class> + <name>cfg_rom_path</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + </widget> + + <widget> + <class>GtkButton</class> + <name>cfg_rom_browse</name> + <can_focus>True</can_focus> + <signal> + <name>clicked</name> + <handler>xs_cfg_rom_browse</handler> + <last_modification_time>Fri, 09 Nov 2012 02:14:12 GMT</last_modification_time> + </signal> + <label>Browse</label> + <relief>GTK_RELIEF_NORMAL</relief> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + </widget> + </widget> </widget> <widget> @@ -1588,6 +1660,7 @@ <widget> <class>GtkHBox</class> <name>cfg_sld_box</name> + <border_width>2</border_width> <homogeneous>False</homogeneous> <spacing>4</spacing> <child> @@ -3475,4 +3548,43 @@ </widget> </widget> +<widget> + <class>GtkFileSelection</class> + <name>xs_rom_fs</name> + <border_width>10</border_width> + <signal> + <name>delete_event</name> + <handler>xs_rom_fs_delete</handler> + <last_modification_time>Fri, 09 Nov 2012 02:20:19 GMT</last_modification_time> + </signal> + <title>Select path to C64 ROM images</title> + <type>GTK_WINDOW_TOPLEVEL</type> + <position>GTK_WIN_POS_NONE</position> + <modal>True</modal> + <allow_shrink>False</allow_shrink> + <allow_grow>True</allow_grow> + <auto_shrink>False</auto_shrink> + <show_file_op_buttons>False</show_file_op_buttons> + + <widget> + <class>GtkButton</class> + <child_name>FileSel:ok_button</child_name> + <name>ok_button65</name> + <can_default>True</can_default> + <can_focus>True</can_focus> + <label>OK</label> + <relief>GTK_RELIEF_NORMAL</relief> + </widget> + + <widget> + <class>GtkButton</class> + <child_name>FileSel:cancel_button</child_name> + <name>cancel_button65</name> + <can_default>True</can_default> + <can_focus>True</can_focus> + <label>Cancel</label> + <relief>GTK_RELIEF_NORMAL</relief> + </widget> +</widget> + </GTK-Interface>