changeset 551:4674e3c37121

Configuration item changes.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 26 Feb 2007 13:35:01 +0000
parents 4333288a0168
children 9494fee305fa
files src/xs_sidplay1.cc src/xs_sidplay2.cc
diffstat 2 files changed, 22 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/xs_sidplay1.cc	Mon Feb 26 13:34:02 2007 +0000
+++ b/src/xs_sidplay1.cc	Mon Feb 26 13:35:01 2007 +0000
@@ -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.filterFs;
-	myEngine->currConfig.filterFm = xs_cfg.filterFm;
-	myEngine->currConfig.filterFt = xs_cfg.filterFt;
+	myEngine->currConfig.filterFs = xs_cfg.sid1FilterFs;
+	myEngine->currConfig.filterFm = xs_cfg.sid1FilterFm;
+	myEngine->currConfig.filterFt = xs_cfg.sid1FilterFt;
 
 
 	/* Now set the emulator configuration */
--- a/src/xs_sidplay2.cc	Mon Feb 26 13:34:02 2007 +0000
+++ b/src/xs_sidplay2.cc	Mon Feb 26 13:35:01 2007 +0000
@@ -84,8 +84,10 @@
  */
 gboolean xs_sidplay2_init(t_xs_status * myStatus)
 {
-	gint tmpFreq;
+	gint tmpFreq, i;
 	t_xs_sidplay2 *myEngine;
+	sid_filter_t tmpFilter;
+	t_xs_sid2_filter *f;
 	assert(myStatus);
 
 	/* Allocate internal structures */
@@ -198,6 +200,16 @@
 		}
 		break;
 	}
+	
+	/* Convert filter */
+	f = &(xs_cfg.sid2Filter);
+	XSDEBUG("using filter '%s', %d points\n", f->name, f->npoints);
+	
+	tmpFilter.points = f->npoints;
+	for (i = 0; i < f->npoints; i++) {
+		tmpFilter.cutoff[i][0] = f->points[i].x;
+		tmpFilter.cutoff[i][1] = f->points[i].y;
+	}
 
 	/* Initialize builder object */
 	XSDEBUG("init builder #%i, maxsids=%i\n", xs_cfg.sid2Builder, (myEngine->currEng->info()).maxsids);
@@ -226,9 +238,12 @@
 				xs_error(_("reSID->sampling(%d) failed.\n"), tmpFreq);
 				return FALSE;
 			}
-
-			// FIXME FIX ME: load filter spec
-			rs->filter((sid_filter_t *) NULL);
+			
+			if (tmpFilter.points > 0)
+				rs->filter((sid_filter_t *) &tmpFilter);
+			else
+				rs->filter((sid_filter_t *) NULL);
+			
 			if (!*rs) {
 				xs_error(_("reSID->filter(NULL) failed.\n"));
 				return FALSE;