diff src/xs_interface.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 9d0dee765a8e
children d183ac29b879
line wrap: on
line diff
--- a/src/xs_interface.c	Thu Nov 08 21:24:38 2012 +0200
+++ b/src/xs_interface.c	Thu Nov 08 21:44:27 2012 +0200
@@ -63,6 +63,7 @@
   GSList *emulator_group = NULL;
   GtkWidget *cfg_emu_sidplay1;
   GtkWidget *cfg_emu_sidplay2;
+  GtkWidget *cfg_emu_sidplayfp;
   GtkWidget *cfg_memmode_frame;
   GtkWidget *w_vbox5;
   GSList *memorymode_group = NULL;
@@ -498,7 +499,7 @@
   gtk_container_add (GTK_CONTAINER (cfg_emulib_frame), w_vbox26);
   gtk_container_set_border_width (GTK_CONTAINER (w_vbox26), 2);
 
-  cfg_emu_sidplay1 = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay 1 (frame-based)"));
+  cfg_emu_sidplay1 = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay 1 (frame-based, fast, inaccurate)"));
   emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay1));
   gtk_widget_set_name (cfg_emu_sidplay1, "cfg_emu_sidplay1");
   gtk_widget_ref (cfg_emu_sidplay1);
@@ -508,7 +509,7 @@
   gtk_box_pack_start (GTK_BOX (w_vbox26), cfg_emu_sidplay1, FALSE, FALSE, 0);
   gtk_tooltips_set_tip (tooltips, cfg_emu_sidplay1, _("Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most cases, though."), NULL);
 
-  cfg_emu_sidplay2 = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay 2/FP (cycle-based)"));
+  cfg_emu_sidplay2 = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay 2 (cycle-based, rather accurate)"));
   emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay2));
   gtk_widget_set_name (cfg_emu_sidplay2, "cfg_emu_sidplay2");
   gtk_widget_ref (cfg_emu_sidplay2);
@@ -516,7 +517,17 @@
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_sidplay2);
   gtk_box_pack_start (GTK_BOX (w_vbox26), cfg_emu_sidplay2, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, cfg_emu_sidplay2, _("Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact emulation."), NULL);
+  gtk_tooltips_set_tip (tooltips, cfg_emu_sidplay2, _("Use libSIDPlay 2.x emulation, which requires powerful CPU due to cycle-exact emulation."), NULL);
+
+  cfg_emu_sidplayfp = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay FP (cycle-exact, very accurate, slow)"));
+  emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplayfp));
+  gtk_widget_set_name (cfg_emu_sidplayfp, "cfg_emu_sidplayfp");
+  gtk_widget_ref (cfg_emu_sidplayfp);
+  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplayfp", cfg_emu_sidplayfp,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (cfg_emu_sidplayfp);
+  gtk_box_pack_start (GTK_BOX (w_vbox26), cfg_emu_sidplayfp, FALSE, FALSE, 0);
+  gtk_tooltips_set_tip (tooltips, cfg_emu_sidplayfp, _("Use libSIDPlayFP emulation, requires a high-end system due to accurate simulation of filter and cycle-accurate emulation."), NULL);
 
   cfg_memmode_frame = gtk_frame_new (_("Memory mode:"));
   gtk_widget_set_name (cfg_memmode_frame, "cfg_memmode_frame");
@@ -1603,6 +1614,9 @@
   gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplay2), "toggled",
                       GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay2_toggled),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplayfp), "toggled",
+                      GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay2_toggled),
+                      NULL);
   gtk_signal_connect (GTK_OBJECT (cfg_emu_filters), "toggled",
                       GTK_SIGNAL_FUNC (xs_cfg_emu_filters_toggled),
                       NULL);