diff src/xs_config.c @ 839:29f3c3f29c0d

Finalize libSIDPlay2 vs FP configuration stuff.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 08 Nov 2012 21:44:27 +0200
parents 9cd807b431c8
children a293b88eb3fb
line wrap: on
line diff
--- a/src/xs_config.c	Thu Nov 08 21:24:38 2012 +0200
+++ b/src/xs_config.c	Thu Nov 08 21:44:27 2012 +0200
@@ -146,6 +146,7 @@
 
 { WTYPE_BGROUP, CTYPE_INT,      "cfg_emu_sidplay1",     &xs_cfg.playerEngine,           XS_ENG_SIDPLAY1 },
 { WTYPE_BGROUP, CTYPE_INT,      "cfg_emu_sidplay2",     &xs_cfg.playerEngine,           XS_ENG_SIDPLAY2 },
+{ WTYPE_BGROUP, CTYPE_INT,      "cfg_emu_sidplayfp",     &xs_cfg.playerEngine,           XS_ENG_SIDPLAYFP },
 { WTYPE_BGROUP, CTYPE_INT,      "cfg_emu_mem_real",     &xs_cfg.memoryMode,             XS_MPU_REAL },
 { WTYPE_BGROUP, CTYPE_INT,      "cfg_emu_mem_banksw",   &xs_cfg.memoryMode,             XS_MPU_BANK_SWITCHING },
 { WTYPE_BGROUP, CTYPE_INT,      "cfg_emu_mem_transrom", &xs_cfg.memoryMode,             XS_MPU_TRANSPARENT_ROM },
@@ -1316,39 +1317,37 @@
 
 void xs_cfg_emu_sidplay2_toggled(GtkToggleButton * togglebutton, gpointer user_data)
 {
-    gboolean isActive = GTK_TOGGLE_BUTTON(togglebutton)->active;
+    gboolean isSP2Active = GTK_TOGGLE_BUTTON(LUW("cfg_emu_sidplay2"))->active,
+             isFPActive = GTK_TOGGLE_BUTTON(LUW("cfg_emu_sidplayfp"))->active,
+             isEither = isSP2Active || isFPActive;
 
+    (void) togglebutton;
     (void) user_data;
 
-    gtk_widget_set_sensitive(LUW("cfg_emu_mem_real"), isActive);
-
-    gtk_widget_set_sensitive(LUW("cfg_sidplay2_frame"), isActive);
+    gtk_widget_set_sensitive(LUW("cfg_emu_mem_real"), isSP2Active);
+    gtk_widget_set_sensitive(LUW("cfg_sidplay2_frame"), isEither);
 
     /* Optimization mode removed from distortion patch */
-#ifdef HAVE_SIDPLAY2_FP
-    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_opt"), isActive);
-#else
-    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_opt"), FALSE);
-#endif
+    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_opt"), isSP2Active);
 
-    gtk_widget_set_sensitive(LUW("cfg_chn_autopan"), !isActive);
+    gtk_widget_set_sensitive(LUW("cfg_chn_autopan"), !isSP2Active);
 
-#ifdef HAVE_RESID_FP_BUILDER
-    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_resid_fp"), isActive);
+#if defined(HAVE_SIDPLAYFP) && defined(HAVE_RESID_FP_BUILDER)
+    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_resid_fp"), isFPActive);
 #else
     gtk_widget_set_sensitive(LUW("cfg_emu_sp2_resid_fp"), FALSE);
 #endif
 
 #ifdef HAVE_RESID_BUILDER
-    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_resid"), isActive);
+    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_resid"), isEither);
 #else
     gtk_widget_set_sensitive(LUW("cfg_emu_sp2_resid"), FALSE);
 #endif
 
 #ifdef HAVE_HARDSID_BUILDER
-    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_hardsid"), isActive);
+    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_hardsid"), isEither);
 #else
-    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_hardsid"), isActive);
+    gtk_widget_set_sensitive(LUW("cfg_emu_sp2_hardsid"), FALSE);
 #endif
 }
 
@@ -1503,7 +1502,7 @@
     gtk_widget_set_sensitive(LUW("cfg_box_filter_sidplay1"), FALSE);
 #endif
 
-#ifndef HAVE_SIDPLAY2
+#if !defined(HAVE_SIDPLAY2) && !defined(HAVE_SIDPLAYFP)
     gtk_widget_set_sensitive(LUW("cfg_emu_sidplay2"), FALSE);
     gtk_widget_set_sensitive(LUW("cfg_box_filter_sidplay2"), FALSE);
 #endif