changeset 713:06db79680afe

Added new variables for distortion tunables and made few changes to SID1 filter variables too.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 09 Feb 2009 13:23:32 +0200
parents f82e0adf19f0
children 229fa2d043b9
files src/xs_config.c src/xs_config.h src/xs_sidplay1.cc
diffstat 3 files changed, 31 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/xs_config.c	Mon Feb 09 11:14:18 2009 +0200
+++ b/src/xs_config.c	Mon Feb 09 13:23:32 2009 +0200
@@ -94,9 +94,9 @@
 { CTYPE_BOOL,   &xs_cfg.mos8580,                "mos8580" },
 { CTYPE_BOOL,   &xs_cfg.forceModel,             "forceModel" },
 { CTYPE_BOOL,   &xs_cfg.emulateFilters,         "emulateFilters" },
-{ CTYPE_FLOAT,  &xs_cfg.sid1FilterFs,           "filterFs" },
-{ CTYPE_FLOAT,  &xs_cfg.sid1FilterFm,           "filterFm" },
-{ CTYPE_FLOAT,  &xs_cfg.sid1FilterFt,           "filterFt" },
+{ CTYPE_FLOAT,  &xs_cfg.sid1Filter.fs,          "filterFs" },
+{ CTYPE_FLOAT,  &xs_cfg.sid1Filter.fm,          "filterFm" },
+{ CTYPE_FLOAT,  &xs_cfg.sid1Filter.ft,          "filterFt" },
 { CTYPE_INT,    &xs_cfg.memoryMode,             "memoryMode" },
 { CTYPE_INT,    &xs_cfg.clockSpeed,             "clockSpeed" },
 { CTYPE_BOOL,   &xs_cfg.forceSpeed,             "forceSpeed" },
@@ -166,9 +166,9 @@
 { WTYPE_BGROUP, CTYPE_INT,      "cfg_emu_sp2_hardsid",  &xs_cfg.sid2Builder,            XS_BLD_HARDSID },
 
 { WTYPE_BUTTON, CTYPE_BOOL,     "cfg_emu_filters",      &xs_cfg.emulateFilters,         0 },
-{ WTYPE_SCALE,  CTYPE_FLOAT,    "cfg_sp1_filter_fs",    &xs_cfg.sid1FilterFs,           0 },
-{ WTYPE_SCALE,  CTYPE_FLOAT,    "cfg_sp1_filter_fm",    &xs_cfg.sid1FilterFm,           0 },
-{ WTYPE_SCALE,  CTYPE_FLOAT,    "cfg_sp1_filter_ft",    &xs_cfg.sid1FilterFt,           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 },
+{ WTYPE_SCALE,  CTYPE_FLOAT,    "cfg_sp1_filter_ft",    &xs_cfg.sid1Filter.ft,          0 },
 
 { WTYPE_BUTTON, CTYPE_BOOL,     "cfg_maxtime_enable",   &xs_cfg.playMaxTimeEnable,      0 },
 { WTYPE_BUTTON, CTYPE_BOOL,     "cfg_maxtime_unknown",  &xs_cfg.playMaxTimeUnknown,     0 },
@@ -222,9 +222,9 @@
 
     /* Filter values */
     xs_cfg.emulateFilters = TRUE;
-    xs_cfg.sid1FilterFs = XS_SIDPLAY1_FS;
-    xs_cfg.sid1FilterFm = XS_SIDPLAY1_FM;
-    xs_cfg.sid1FilterFt = XS_SIDPLAY1_FT;
+    xs_cfg.sid1Filter.fs = XS_SIDPLAY1_FS;
+    xs_cfg.sid1Filter.fm = XS_SIDPLAY1_FM;
+    xs_cfg.sid1Filter.ft = XS_SIDPLAY1_FT;
 
 #ifdef HAVE_SIDPLAY2
     xs_cfg.playerEngine = XS_ENG_SIDPLAY2;
@@ -491,8 +491,8 @@
     
     /* Header */
     fprintf(outFile,
-        "; SIDPlay2 compatible filter definition file\n"
-        "; Exported by " PACKAGE_STRING "\n\n");
+    "; SIDPlay2 compatible filter definition file\n"
+    "; Exported by " PACKAGE_STRING "\n\n");
     
     /* Write each filter spec in "INI"-style format */
     for (n = 0; n < nFilters; n++) {
--- a/src/xs_config.h	Mon Feb 09 11:14:18 2009 +0200
+++ b/src/xs_config.h	Mon Feb 09 13:23:32 2009 +0200
@@ -68,13 +68,28 @@
 
 
 typedef struct {
+    gchar           *name;
     gint            type;
     xs_int_point_t  points[XS_SIDPLAY2_NFPOINTS];
     gint            npoints;
-    gchar           *name;
+    
+    /* Distortion patch tunables */
+    gfloat          rate, point, voice_nonlinearity, cf_treshold;
+    
+    /* Filter Type 3 tunables */
+    gfloat          baseresistance, offset, steepness,
+                    minimumfetresistance;
+    
+    /* Filter Type 4 tunables */
+    gfloat          k, b;
 } xs_sid2_filter_t;
 
 
+typedef struct {
+    gfloat fs, fm, ft;
+} xs_sid1_filter_t;
+
+
 extern struct xs_cfg_t {
     /* General audio settings */
     gint        audioBitsPerSample;
@@ -94,9 +109,7 @@
     gint        playerEngine;       /* Selected player engine */
 
     gboolean    emulateFilters;
-    gfloat      sid1FilterFs;
-    gfloat      sid1FilterFm;
-    gfloat      sid1FilterFt;
+    xs_sid1_filter_t    sid1Filter;
 
     gint        sid2OptLevel;       /* SIDPlay2 emulation optimization */
     gint        sid2Builder;        /* SIDPlay2 "builder" aka SID-emu */
--- a/src/xs_sidplay1.cc	Mon Feb 09 11:14:18 2009 +0200
+++ b/src/xs_sidplay1.cc	Mon Feb 09 13:23:32 2009 +0200
@@ -228,9 +228,9 @@
     /* if (xs_cfg.forceModel) */
     myEngine->currConfig.mos8580 = xs_cfg.mos8580;
     myEngine->currConfig.emulateFilter = xs_cfg.emulateFilters;
-    myEngine->currConfig.filterFs = xs_cfg.sid1FilterFs;
-    myEngine->currConfig.filterFm = xs_cfg.sid1FilterFm;
-    myEngine->currConfig.filterFt = xs_cfg.sid1FilterFt;
+    myEngine->currConfig.filterFs = xs_cfg.sid1Filter.fs;
+    myEngine->currConfig.filterFm = xs_cfg.sid1Filter.fm;
+    myEngine->currConfig.filterFt = xs_cfg.sid1Filter.ft;
 
 
     /* Now set the emulator configuration */