changeset 902:877a3725b51e trunk

[svn] Fix MOD title read by not permanently byteswapping the stream in the PSM loader. Patch by Joseph Jezak <josejx@gentoo.org>.
author chainsaw
date Thu, 29 Mar 2007 03:14:36 -0700
parents 08643d5994fe
children 1820b4026fe2
files ChangeLog src/modplug/load_psm.cxx
diffstat 2 files changed, 17 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Mar 26 14:44:46 2007 -0700
+++ b/ChangeLog	Thu Mar 29 03:14:36 2007 -0700
@@ -1,3 +1,14 @@
+2007-03-26 21:44:46 +0000  Yoshiki Yazawa <yaz@cc.rim.or.jp>
+  revision [1902]
+  - now do_setpos() takes relative position as the argument and works even if cuesheets are included in large playlist. may close #869.
+  - improve handling of end of cue.
+  - suppress warnings.
+  
+  trunk/src/cue/Makefile   |    2 -
+  trunk/src/cue/cuesheet.c |   66 +++++++++++++++++++++++++++++++++--------------
+  2 files changed, 48 insertions(+), 20 deletions(-)
+
+
 2007-03-26 08:19:26 +0000  William Pitcock <nenolod@sacredspiral.co.uk>
   revision [1900]
   - add a starting point for xmms-rootvis port. giacomo will need to 
--- a/src/modplug/load_psm.cxx	Mon Mar 26 14:44:46 2007 -0700
+++ b/src/modplug/load_psm.cxx	Thu Mar 29 03:14:36 2007 -0700
@@ -79,26 +79,27 @@
 //-----------------------------------------------------------
 {
 	PSMCHUNK *pfh = (PSMCHUNK *)lpStream;
+	PSMCHUNK pfh_swap;
 	DWORD dwMemPos, dwSongPos;
 	DWORD smpnames[MAX_SAMPLES];
 	DWORD patptrs[MAX_PATTERNS];
 	BYTE samplemap[MAX_SAMPLES];
 	UINT nPatterns;
 
-	pfh->id = bswapLE32(pfh->id);
-	pfh->len = bswapLE32(pfh->len);
-	pfh->listid = bswapLE32(pfh->listid);
+	pfh_swap.id = bswapLE32(pfh->id);
+	pfh_swap.len = bswapLE32(pfh->len);
+	pfh_swap.listid = bswapLE32(pfh->listid);
 
 	// Chunk0: "PSM ",filesize,"FILE"
 	if (dwMemLength < 256) return FALSE;
-	if (pfh->id == PSM_ID_OLD)
+	if (pfh_swap.id == PSM_ID_OLD)
 	{
 	#ifdef PSM_LOG
 		Log("Old PSM format not supported\n");
 	#endif
 		return FALSE;
 	}
-	if ((pfh->id != PSM_ID_NEW) || (pfh->len+12 > dwMemLength) || (pfh->listid != IFFID_FILE)) return FALSE;
+	if ((pfh_swap.id != PSM_ID_NEW) || (pfh_swap.len+12 > dwMemLength) || (pfh_swap.listid != IFFID_FILE)) return FALSE;
 	m_nType = MOD_TYPE_PSM;
 	m_nChannels = 16;
 	m_nSamples = 0;