changeset 74:8cb66a3f75f7

Testing
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 14 Sep 2003 18:51:05 +0000
parents 2bc607888f53
children 653c9b0d1320
files src/xmms-sid.c src/xs_sidplay1.cc src/xs_sidplay2.cc
diffstat 3 files changed, 48 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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;
+	}
 }
 
 
--- 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;
+	}
 }