# HG changeset patch # User Matti Hamalainen # Date 1172496901 0 # Node ID 4674e3c3712165f8d55d22c3669e44c0606c0ee5 # Parent 4333288a0168f4f2926cfa0e91e68374abe656bc Configuration item changes. diff -r 4333288a0168 -r 4674e3c37121 src/xs_sidplay1.cc --- 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 */ diff -r 4333288a0168 -r 4674e3c37121 src/xs_sidplay2.cc --- 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;