# HG changeset patch # User Matti Hamalainen # Date 1063565465 0 # Node ID 8cb66a3f75f723c1644b8403e6c6023534b859ec # Parent 2bc607888f5369f6e7725a191160e0af0707c14e Testing diff -r 2bc607888f53 -r 8cb66a3f75f7 src/xmms-sid.c --- a/src/xmms-sid.c Sun Sep 14 03:14:01 2003 +0000 +++ b/src/xmms-sid.c Sun Sep 14 18:51:05 2003 +0000 @@ -401,8 +401,6 @@ xs_player->plrDeleteSID(&myStatus); - g_free(myStatus.currFileName); - /* Exit the playing thread */ XSDEBUG("exiting thread, bye.\n"); @@ -444,7 +442,7 @@ { /* If playing, stop. */ XSDEBUG("STOP_REQ\n"); - if (xs_status.isPlaying || !xs_status.allowNext) + if (xs_status.isPlaying) { XSDEBUG("stopping...\n"); pthread_mutex_lock(&xs_mutex); diff -r 2bc607888f53 -r 8cb66a3f75f7 src/xs_sidplay1.cc --- a/src/xs_sidplay1.cc Sun Sep 14 03:14:01 2003 +0000 +++ b/src/xs_sidplay1.cc Sun Sep 14 18:51:05 2003 +0000 @@ -264,11 +264,20 @@ if (!myStatus) return; + if (myStatus->currFileName) + { + g_free(myStatus->currFileName); + myStatus->currFileName = NULL; + } + myPlayer = (t_xs_sidplay1 *) myStatus->player; if (!myPlayer) return; if (myPlayer->currTune) + { delete myPlayer->currTune; + myPlayer->currTune = NULL; + } } diff -r 2bc607888f53 -r 8cb66a3f75f7 src/xs_sidplay2.cc --- a/src/xs_sidplay2.cc Sun Sep 14 03:14:01 2003 +0000 +++ b/src/xs_sidplay2.cc Sun Sep 14 18:51:05 2003 +0000 @@ -157,28 +157,22 @@ if (!newTune) return FALSE; /* Get current configuration */ - myPlayer->currEng->getConfig(myPlayer->currConfig); + myPlayer->currConfig = myPlayer->currEng->config(); /* Configure channels and stuff */ switch (xs_cfg.fmtChannels) { case XS_CHN_AUTOPAN: - myPlayer->currConfig.channels = SIDEMU_STEREO; - myPlayer->currConfig.autoPanning = SIDEMU_CENTEREDAUTOPANNING; - myPlayer->currConfig.volumeControl = SIDEMU_FULLPANNING; + myPlayer->currConfig.playback = sid2_stereo; break; case XS_CHN_STEREO: - myPlayer->currConfig.channels = SIDEMU_STEREO; - myPlayer->currConfig.autoPanning = SIDEMU_NONE; - myPlayer->currConfig.volumeControl = SIDEMU_NONE; + myPlayer->currConfig.playback = sid2_stereo; break; case XS_CHN_MONO: default: - myPlayer->currConfig.channels = SIDEMU_MONO; - myPlayer->currConfig.autoPanning = SIDEMU_NONE; - myPlayer->currConfig.volumeControl = SIDEMU_NONE; + myPlayer->currConfig.playback = sid2_mono; break; } @@ -186,19 +180,20 @@ /* Memory mode settings */ switch (xs_cfg.memoryMode) { case XS_MPU_BANK_SWITCHING: - myPlayer->currConfig.memoryMode = MPU_BANK_SWITCHING; + myPlayer->currConfig.environment = sid2_envBS; break; case XS_MPU_TRANSPARENT_ROM: - myPlayer->currConfig.memoryMode = MPU_TRANSPARENT_ROM; + myPlayer->currConfig.environment = sid2_envTP; break; case XS_MPU_PLAYSID_ENVIRONMENT: - myPlayer->currConfig.memoryMode = MPU_PLAYSID_ENVIRONMENT; + myPlayer->currConfig.environment = sid2_envPS; break; + case XS_MPU_REAL: default: - myPlayer->currConfig.memoryMode = MPU_BANK_SWITCHING; + myPlayer->currConfig.environment = sid2_envR; break; } @@ -206,32 +201,40 @@ /* Clockspeed settings */ switch (xs_cfg.clockSpeed) { case XS_CLOCK_NTSC: - myPlayer->currConfig.clockSpeed = SIDTUNE_CLOCK_NTSC; + myPlayer->currConfig.clockSpeed = myPlayer->currConfig.clockDefault = SID2_CLOCK_NTSC; break; case XS_CLOCK_PAL: default: - myPlayer->currConfig.clockSpeed = SIDTUNE_CLOCK_PAL; + myPlayer->currConfig.clockSpeed = myPlayer->currConfig.clockDefault = SID2_CLOCK_PAL; break; } /* Configure rest of the emulation */ - myPlayer->currConfig.bitsPerSample = xs_cfg.fmtBitsPerSample; - myPlayer->currConfig.frequency = xs_cfg.fmtFrequency; + myPlayer->currConfig.precision = xs_cfg.fmtBitsPerSample; + myPlayer->currConfig.frequency = xs_cfg.fmtFrequency; + myPlayer->currConfig.clockForced = xs_cfg.forceSpeed; + myPlayer->currConfig.optimisation = (xs_cfg.optimiseLevel) ? 1 : 0; + myPlayer->currConfig.sidDefault = myPlayer->currConfig.sidModel = (xs_cfg.mos8580) ? SID2_MOS8580 : SID2_MOS6581; + myPlayer->currConfig.sidSamples = TRUE; // FIXME FIX ME, make configurable! + #ifdef HAVE_UNSIGNEDPCM - myPlayer->currConfig.sampleFormat = SIDEMU_UNSIGNED_PCM; +#ifdef WORDS_BIGENDIAN + myPlayer->currConfig.sampleFormat = SID2_BIG_UNSIGNED; #else - myPlayer->currConfig.sampleFormat = SIDEMU_SIGNED_PCM; + myPlayer->currConfig.sampleFormat = SID2_LITTLE_UNSIGNED; #endif - myPlayer->currConfig.mos8580 = xs_cfg.mos8580; - myPlayer->currConfig.emulateFilter = xs_cfg.emulateFilters; - myPlayer->currConfig.filterFs = xs_cfg.filterFs; - myPlayer->currConfig.filterFm = xs_cfg.filterFm; - myPlayer->currConfig.filterFt = xs_cfg.filterFt; +#else +#ifdef WORDS_BIGENDIAN + myPlayer->currConfig.sampleFormat = SID2_BIG_SIGNED; +#else + myPlayer->currConfig.sampleFormat = SID2_LITTLE_SIGNED; +#endif +#endif /* Now set the emulator configuration */ - myPlayer->currEng->setConfig(myPlayer->currConfig); + myPlayer->currEng->config(myPlayer->currConfig); /* Initialize status information */ newTune->getInfo(tuneInfo); @@ -256,11 +259,20 @@ if (!myStatus) return; + if (myStatus->currFileName) + { + g_free(myStatus->currFileName); + myStatus->currFileName = NULL; + } + myPlayer = (t_xs_sidplay2 *) myStatus->player; if (!myPlayer) return; if (myPlayer->currTune) + { delete myPlayer->currTune; + myPlayer->currTune = NULL; + } }