diff src/xs_config.c @ 871:d183ac29b879

Add ROM image path configuration.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 09 Nov 2012 04:24:48 +0200
parents 82e759a5c7e6
children 350f755549dd
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)