Mercurial > hg > xmms-sid
diff src/xs_sidplay2.cc @ 402:f997b79a7251
More work on merging of improved STIL/SLDB handling code with completely
dynamic memory allocation.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 01 Jun 2006 02:18:02 +0000 |
parents | 0a60ef2b5ab0 |
children | 7f694e5a1493 |
line wrap: on
line diff
--- a/src/xs_sidplay2.cc Wed May 31 22:52:00 2006 +0000 +++ b/src/xs_sidplay2.cc Thu Jun 01 02:18:02 2006 +0000 @@ -28,8 +28,7 @@ #include <stdio.h> #include "xs_config.h" #include "xs_support.h" -#include "xs_length.h" -#include "xs_title.h" + #include <sidplay/sidplay2.h> #ifdef HAVE_RESID_BUILDER @@ -200,7 +199,7 @@ /* Builder object created, initialize it */ rs->create((myEngine->currEng->info()).maxsids); if (!*rs) { - xs_error("rs->create() failed. SIDPlay2 suxx again.\n"); + xs_error("rs->create() failed.\n"); return FALSE; } @@ -210,12 +209,15 @@ return FALSE; } + // FIXME FIX ME: support other configurable parameters ... + // ... WHEN/IF resid-builder+libsidplay2 gets fixed rs->sampling(tmpFreq); if (!*rs) { xs_error("rs->sampling(%d) failed.\n", tmpFreq); return FALSE; } + // FIXME FIX ME: load filter spec rs->filter((sid_filter_t *) NULL); if (!*rs) { xs_error("rs->filter(NULL) failed.\n"); @@ -232,7 +234,7 @@ /* Builder object created, initialize it */ hs->create((myEngine->currEng->info()).maxsids); if (!*hs) { - xs_error("hs->create() failed. SIDPlay2 suxx again.\n"); + xs_error("hs->create() failed.\n"); return FALSE; } @@ -259,8 +261,10 @@ myEngine->currConfig.clockDefault = SID2_CLOCK_NTSC; break; + default: + xs_error("Invalid clockSpeed=%d, falling back to PAL.\n", xs_cfg.clockSpeed); + case XS_CLOCK_PAL: - default: myEngine->currConfig.clockDefault = SID2_CLOCK_PAL; xs_cfg.clockSpeed = XS_CLOCK_PAL; break; @@ -278,10 +282,15 @@ myEngine->currConfig.clockSpeed = SID2_CLOCK_CORRECT; } - if (xs_cfg.sid2OptLevel) - myEngine->currConfig.optimisation = 1; - else - myEngine->currConfig.optimisation = 0; + if ((xs_cfg.sid2OptLevel >= 0) && (xs_cfg.sid2OptLevel <= SID2_MAX_OPTIMISATION)) + myEngine->currConfig.optimisation = xs_cfg.sid2OptLevel; + else { + xs_error("Invalid sid2OptLevel=%d, falling back to %d.\n", + xs_cfg.sid2OptLevel, SID2_DEFAULT_OPTIMISATION); + + xs_cfg.sid2OptLevel = + myEngine->currConfig.optimisation = SID2_DEFAULT_OPTIMISATION; + } if (xs_cfg.mos8580) myEngine->currConfig.sidDefault = SID2_MOS8580; @@ -293,7 +302,8 @@ else myEngine->currConfig.sidModel = SID2_MODEL_CORRECT; - myEngine->currConfig.sidSamples = TRUE; // FIXME FIX ME, make configurable! + /* XXX: Should this be configurable? libSIDPlay1 does not support it, though */ + myEngine->currConfig.sidSamples = TRUE; /* Now set the emulator configuration */