changeset 445:f277dad3180f

Working on the localization and fixing up the breakage in song information handling.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 08 Jan 2007 12:08:05 +0000
parents a682db6511da
children 3119716480ad
files src/xmms-sid.h src/xs_sidplay.h src/xs_sidplay1.cc src/xs_sidplay2.cc
diffstat 4 files changed, 59 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/src/xmms-sid.h	Mon Jan 08 12:07:05 2007 +0000
+++ b/src/xmms-sid.h	Mon Jan 08 12:08:05 2007 +0000
@@ -154,7 +154,6 @@
 typedef struct {
 	gint		tuneSpeed;
 	gint		tuneLength;
-	gchar		*tuneTitle;
 	gboolean	tunePlayed;
 } t_xs_subtuneinfo;
 
@@ -202,9 +201,10 @@
 						*/
 	void		*sidEngine;		/* SID-emulation internal engine data */
 	t_xs_player	*sidPlayer;		/* Selected player engine */
-	gboolean	isError, isPlaying;
+	gboolean	isError, isPlaying, isInit;
 	gint		currSong,		/* Current sub-tune */
 			lastTime;
+
 	t_xs_tuneinfo	*tuneInfo;
 } t_xs_status;
 
@@ -232,6 +232,7 @@
 void	xs_get_song_info(gchar *, gchar **, gint *);
 void	xs_about(void);
 
+
 t_xs_tuneinfo *xs_tuneinfo_new(const gchar *, gint, gint,
 	const gchar *, const gchar *, const gchar *,
 	gint, gint, gint, gint, const gchar *);
--- a/src/xs_sidplay.h	Mon Jan 08 12:07:05 2007 +0000
+++ b/src/xs_sidplay.h	Mon Jan 08 12:08:05 2007 +0000
@@ -6,7 +6,6 @@
 	t_xs_tuneinfo *pResult;
 	TTUNEINFO tuneInfo;
 	TTUNE *testTune;
-	gboolean haveInfo = TRUE;
 
 	/* Check if the tune exists and is readable */
 	if ((testTune = new TTUNE(pcFilename)) == NULL)
@@ -19,11 +18,10 @@
 
 	/* Get general tune information */
 #ifdef _XS_SIDPLAY1_H
-	haveInfo = testTune->getInfo(tuneInfo);
+	testTune->getInfo(tuneInfo);
 #endif
 #ifdef _XS_SIDPLAY2_H
 	tuneInfo = testTune->getInfo();
-	haveInfo = TRUE;
 #endif
 
 	/* Allocate tuneinfo structure */
@@ -31,13 +29,43 @@
 		tuneInfo.songs, tuneInfo.startSong,
 		tuneInfo.infoString[0], tuneInfo.infoString[1], tuneInfo.infoString[2],
 		tuneInfo.loadAddr, tuneInfo.initAddr, tuneInfo.playAddr,
-		tuneInfo.dataFileLen, tuneInfo.formatString);
+		tuneInfo.dataFileLen, tuneInfo.formatString, -1, -1, -1);
 
 	delete testTune;
 
 	return pResult;
 }
 
+
+t_xs_tuneinfo *TFUNCTION2(t_xs_status * myStatus)
+{
+	t_xs_tuneinfo *pResult;
+	TTUNEINFO tuneInfo;
+	TTUNE *testTune;
+
+	/* Get general tune information */
+#ifdef _XS_SIDPLAY1_H
+	testTune->getInfo(tuneInfo);
+#endif
+#ifdef _XS_SIDPLAY2_H
+	tuneInfo = testTune->getInfo();
+#endif
+
+	/* Allocate tuneinfo structure */
+	pResult = xs_tuneinfo_new(pcFilename,
+		tuneInfo.songs, tuneInfo.startSong,
+		tuneInfo.infoString[0], tuneInfo.infoString[1], tuneInfo.infoString[2],
+		tuneInfo.loadAddr, tuneInfo.initAddr, tuneInfo.playAddr,
+		tuneInfo.dataFileLen, tuneInfo.formatString,
+		tuneInfo.sidModel, tuneInfo.songSpeed, tuneInfo.clockSpeed);
+
+	delete testTune;
+
+	return pResult;
+}
+
+
+
 /* Undefine these */
 #undef TFUNCTION
 #undef TTUNEINFO
--- a/src/xs_sidplay1.cc	Mon Jan 08 12:07:05 2007 +0000
+++ b/src/xs_sidplay1.cc	Mon Jan 08 12:08:05 2007 +0000
@@ -77,14 +77,14 @@
 	/* Initialize engine */
 	myEngine->currEng = new emuEngine();
 	if (!myEngine->currEng) {
-		xs_error("Could not initialize libSIDPlay1 emulation engine\n");
+		xs_error(_("Could not initialize libSIDPlay1 emulation engine.\n"));
 		g_free(myEngine);
 		return FALSE;
 	}
 
 	/* Verify endianess */
 	if (!myEngine->currEng->verifyEndianess()) {
-		xs_error("Endianess verification failed\n");
+		xs_error(_("Endianess verification failed.\n"));
 		delete myEngine->currEng;
 		g_free(myEngine);
 		return FALSE;
@@ -219,7 +219,7 @@
 
 	/* Now set the emulator configuration */
 	if (!myEngine->currEng->setConfig(myEngine->currConfig)) {
-		xs_error("Emulator engine configuration failed!\n");
+		xs_error(_("Emulator engine configuration failed!\n"));
 		return FALSE;
 	}
 
@@ -258,12 +258,12 @@
 	if (!myEngine) return FALSE;
 
 	if (!myEngine->currTune) {
-		xs_error("Tune was NULL\n");
+		xs_error(_("SID-tune struct pointer was NULL. This should not happen, report to XMMS-SID author.\n"));
 		return FALSE;
 	}
 
 	if (!myEngine->currTune->getStatus()) {
-		xs_error("Tune status check failed\n");
+		xs_error(_("SID-tune status check failed. This should not happen, report to XMMS-SID author.\n"));
 		return FALSE;
 	}
 
--- a/src/xs_sidplay2.cc	Mon Jan 08 12:07:05 2007 +0000
+++ b/src/xs_sidplay2.cc	Mon Jan 08 12:08:05 2007 +0000
@@ -86,7 +86,7 @@
 	/* Initialize the engine */
 	myEngine->currEng = new sidplay2;
 	if (!myEngine->currEng) {
-		xs_error("Could not initialize libSIDPlay2 emulation engine\n");
+		xs_error(_("Could not initialize libSIDPlay2 emulation engine (object allocation/constructor failed)\n"));
 		return FALSE;
 	}
 
@@ -199,13 +199,13 @@
 			/* Builder object created, initialize it */
 			rs->create((myEngine->currEng->info()).maxsids);
 			if (!*rs) {
-				xs_error("rs->create() failed.\n");
+				xs_error(_("reSID->create() failed.\n"));
 				return FALSE;
 			}
 
 			rs->filter(xs_cfg.emulateFilters);
 			if (!*rs) {
-				xs_error("rs->filter(%d) failed.\n", xs_cfg.emulateFilters);
+				xs_error(_("reSID->filter(%d) failed.\n"), xs_cfg.emulateFilters);
 				return FALSE;
 			}
 
@@ -213,14 +213,14 @@
 			// ... WHEN/IF resid-builder+libsidplay2 gets fixed
 			rs->sampling(tmpFreq);
 			if (!*rs) {
-				xs_error("rs->sampling(%d) failed.\n", tmpFreq);
+				xs_error(_("reSID->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");
+				xs_error(_("reSID->filter(NULL) failed.\n"));
 				return FALSE;
 			}
 		}
@@ -234,13 +234,13 @@
 			/* Builder object created, initialize it */
 			hs->create((myEngine->currEng->info()).maxsids);
 			if (!*hs) {
-				xs_error("hs->create() failed.\n");
+				xs_error(_("hardSID->create() failed.\n"));
 				return FALSE;
 			}
 
 			hs->filter(xs_cfg.emulateFilters);
 			if (!*hs) {
-				xs_error("hs->filter(%d) failed.\n", xs_cfg.emulateFilters);
+				xs_error(_("hardSID->filter(%d) failed.\n"), xs_cfg.emulateFilters);
 				return FALSE;
 			}
 		}
@@ -248,7 +248,7 @@
 #endif
 
 	if (!myEngine->currBuilder) {
-		xs_error("Could not initialize SIDBuilder object.\n");
+		xs_error(_("Could not initialize SIDBuilder object.\n"));
 		return FALSE;
 	}
 
@@ -262,7 +262,8 @@
 		break;
 
 	default:
-		xs_error("Invalid clockSpeed=%d, falling back to PAL.\n", xs_cfg.clockSpeed);
+		xs_error(_("Invalid clockSpeed=%d, falling back to PAL.\n"),
+			xs_cfg.clockSpeed);
 
 	case XS_CLOCK_PAL:
 		myEngine->currConfig.clockDefault = SID2_CLOCK_PAL;
@@ -285,7 +286,7 @@
 	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_error(_("Invalid sid2OptLevel=%d, falling back to %d.\n"),
 			xs_cfg.sid2OptLevel, SID2_DEFAULT_OPTIMISATION);
 		
 		xs_cfg.sid2OptLevel =
@@ -308,14 +309,14 @@
 
 	/* Now set the emulator configuration */
 	if (myEngine->currEng->config(myEngine->currConfig) < 0) {
-		xs_error("Emulator engine configuration failed!\n");
+		xs_error(_("[SIDPlay2] Emulator engine configuration failed!\n"));
 		return FALSE;
 	}
 
 	/* Create the sidtune */
 	myEngine->currTune = new SidTune(0);
 	if (!myEngine->currTune) {
-		xs_error("Could not initialize SIDTune object.\n");
+		xs_error(_("[SIDPlay2] Could not initialize SIDTune object.\n"));
 		return FALSE;
 	}
 
@@ -366,14 +367,16 @@
 	if (!myEngine) return FALSE;
 
 	if (!myEngine->currTune->selectSong(myStatus->currSong)) {
-		xs_error("currTune->selectSong() failed\n");
+		xs_error(_("[SIDPlay2] currTune->selectSong() failed\n"));
 		return FALSE;
 	}
 
 	if (myEngine->currEng->load(myEngine->currTune) < 0) {
-		xs_error("currEng->load() failed\n");
+		xs_error(_("[SIDPlay2] currEng->load() failed\n"));
 		return FALSE;
 	}
+	
+	myEngine->isInitialized = TRUE;
 
 	return TRUE;
 }
@@ -402,6 +405,8 @@
 
 	myEngine = (t_xs_sidplay2 *) myStatus->sidEngine;
 	if (!myEngine) return FALSE;
+	
+	myEngine->isInitialized = FALSE;
 
 	/* Try to get the tune */
 	if (!pcFilename) return FALSE;