@@ -98,7 +98,7 @@ void swap_PSMSAMPLE(PSMSAMPLE* p){
98
98
BOOL CSoundFile::ReadPSM (LPCBYTE lpStream, DWORD dwMemLength)
99
99
// -----------------------------------------------------------
100
100
{
101
- PSMCHUNK * pfh = ( PSMCHUNK *)lpStream;
101
+ PSMCHUNK pfh = *( const PSMCHUNK *)lpStream;
102
102
DWORD dwMemPos, dwSongPos;
103
103
DWORD smpnames[MAX_SAMPLES];
104
104
DWORD patptrs[MAX_PATTERNS];
@@ -108,17 +108,17 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
108
108
if (dwMemLength < 256 ) return FALSE ;
109
109
110
110
// Swap chunk
111
- swap_PSMCHUNK (pfh);
111
+ swap_PSMCHUNK (& pfh);
112
112
113
113
// Chunk0: "PSM ",filesize,"FILE"
114
- if (pfh-> id == PSM_ID_OLD)
114
+ if (pfh. id == PSM_ID_OLD)
115
115
{
116
116
#ifdef PSM_LOG
117
117
Log (" Old PSM format not supported\n " );
118
118
#endif
119
119
return FALSE ;
120
120
}
121
- if ((pfh-> id != PSM_ID_NEW) || (pfh-> len +12 > dwMemLength) || (pfh-> listid != IFFID_FILE)) return FALSE ;
121
+ if ((pfh. id != PSM_ID_NEW) || (pfh. len +12 > dwMemLength) || (pfh. listid != IFFID_FILE)) return FALSE ;
122
122
m_nType = MOD_TYPE_PSM;
123
123
m_nChannels = 16 ;
124
124
m_nSamples = 0 ;
@@ -132,13 +132,13 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
132
132
}
133
133
while (dwMemPos+8 < dwMemLength)
134
134
{
135
- PSMCHUNK * pchunk = ( PSMCHUNK *)(lpStream+dwMemPos);
136
- swap_PSMCHUNK (pchunk);
137
- if ((pchunk-> len >= dwMemLength - 8 ) || (dwMemPos + pchunk-> len + 8 > dwMemLength)) break ;
135
+ PSMCHUNK pchunk = *( const PSMCHUNK *)(lpStream+dwMemPos);
136
+ swap_PSMCHUNK (& pchunk);
137
+ if ((pchunk. len >= dwMemLength - 8 ) || (dwMemPos + pchunk. len + 8 > dwMemLength)) break ;
138
138
dwMemPos += 8 ;
139
139
PUCHAR pdata = (PUCHAR)(lpStream+dwMemPos);
140
- ULONG len = pchunk-> len ;
141
- if (len) switch (pchunk-> id )
140
+ ULONG len = pchunk. len ;
141
+ if (len) switch (pchunk. id )
142
142
{
143
143
// "TITL": Song title
144
144
case IFFID_TITL:
@@ -166,21 +166,21 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
166
166
{
167
167
m_nSamples++;
168
168
MODINSTRUMENT *pins = &Ins[m_nSamples];
169
- PSMSAMPLE * psmp = (PSMSAMPLE *)pdata;
170
- swap_PSMSAMPLE (psmp);
171
- smpnames[m_nSamples] = psmp-> smpid ;
172
- memcpy (m_szNames[m_nSamples], psmp-> samplename , 31 );
169
+ PSMSAMPLE psmp = * (PSMSAMPLE *)pdata;
170
+ swap_PSMSAMPLE (& psmp);
171
+ smpnames[m_nSamples] = psmp. smpid ;
172
+ memcpy (m_szNames[m_nSamples], psmp. samplename , 31 );
173
173
m_szNames[m_nSamples][31 ] = 0 ;
174
174
samplemap[m_nSamples-1 ] = (BYTE)m_nSamples;
175
175
// Init sample
176
176
pins->nGlobalVol = 0x40 ;
177
- pins->nC4Speed = psmp-> samplerate ;
178
- pins->nLength = psmp-> length ;
179
- pins->nLoopStart = psmp-> loopstart ;
180
- pins->nLoopEnd = psmp-> loopend ;
177
+ pins->nC4Speed = psmp. samplerate ;
178
+ pins->nLength = psmp. length ;
179
+ pins->nLoopStart = psmp. loopstart ;
180
+ pins->nLoopEnd = psmp. loopend ;
181
181
pins->nPan = 128 ;
182
- pins->nVolume = (psmp-> defvol +1 ) * 2 ;
183
- pins->uFlags = (psmp-> flags & 0x80 ) ? CHN_LOOP : 0 ;
182
+ pins->nVolume = (psmp. defvol +1 ) * 2 ;
183
+ pins->uFlags = (psmp. flags & 0x80 ) ? CHN_LOOP : 0 ;
184
184
if (pins->nLoopStart > 0 ) pins->nLoopStart --;
185
185
// Point to sample data
186
186
pdata += 0x60 ;
@@ -199,17 +199,17 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
199
199
default:
200
200
{
201
201
CHAR s[8], s2[64];
202
- *(DWORD *)s = pchunk-> id;
202
+ *(DWORD *)s = pchunk. id;
203
203
s[4] = 0;
204
- wsprintf(s2, "%s: %4d bytes @ %4d\n", s, pchunk-> len, dwMemPos);
204
+ wsprintf(s2, "%s: %4d bytes @ %4d\n", s, pchunk. len, dwMemPos);
205
205
OutputDebugString(s2);
206
206
}
207
207
#endif
208
208
}
209
- dwMemPos += pchunk-> len ;
209
+ dwMemPos += pchunk. len ;
210
210
}
211
211
// Step #1: convert song structure
212
- PSMSONGHDR *pSong = (PSMSONGHDR *)(lpStream+dwSongPos+8 );
212
+ const PSMSONGHDR *pSong = (const PSMSONGHDR *)(lpStream+dwSongPos+8 );
213
213
if ((!dwSongPos) || (pSong->channels < 2 ) || (pSong->channels > 32 )) return TRUE ;
214
214
m_nChannels = pSong->channels ;
215
215
// Valid song header -> convert attached chunks
@@ -218,13 +218,13 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
218
218
dwMemPos = dwSongPos + 8 + 11 ; // sizeof(PSMCHUNK)+sizeof(PSMSONGHDR)
219
219
while (dwMemPos + 8 < dwSongEnd)
220
220
{
221
- PSMCHUNK * pchunk = ( PSMCHUNK *)(lpStream+dwMemPos);
222
- swap_PSMCHUNK (pchunk);
221
+ PSMCHUNK pchunk = *( const PSMCHUNK *)(lpStream+dwMemPos);
222
+ swap_PSMCHUNK (& pchunk);
223
223
dwMemPos += 8 ;
224
- if ((pchunk-> len > dwSongEnd) || (dwMemPos + pchunk-> len > dwSongEnd)) break ;
224
+ if ((pchunk. len > dwSongEnd) || (dwMemPos + pchunk. len > dwSongEnd)) break ;
225
225
PUCHAR pdata = (PUCHAR)(lpStream+dwMemPos);
226
- ULONG len = pchunk-> len ;
227
- switch (pchunk-> id )
226
+ ULONG len = pchunk. len ;
227
+ switch (pchunk. id )
228
228
{
229
229
case IFFID_OPLH:
230
230
if (len >= 0x20 )
@@ -237,7 +237,7 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
237
237
DWORD dwName = *(DWORD *)(pdata+pos);
238
238
for (UINT i=0 ; i<nPatterns; i++)
239
239
{
240
- DWORD dwPatName = ((PSMPATTERN *)(lpStream+patptrs[i]+8 ))->name ;
240
+ DWORD dwPatName = ((const PSMPATTERN *)(lpStream+patptrs[i]+8 ))->name ;
241
241
if (dwName == dwPatName)
242
242
{
243
243
bFound = TRUE ;
@@ -258,7 +258,7 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
258
258
DWORD dwName = *(DWORD *)(pdata+pos);
259
259
for (UINT i=0 ; i<nPatterns; i++)
260
260
{
261
- DWORD dwPatName = ((PSMPATTERN *)(lpStream+patptrs[i]+8 ))->name ;
261
+ DWORD dwPatName = ((const PSMPATTERN *)(lpStream+patptrs[i]+8 ))->name ;
262
262
if (dwName == dwPatName)
263
263
{
264
264
Order[iOrd++] = i;
@@ -270,23 +270,23 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
270
270
}
271
271
break ;
272
272
}
273
- dwMemPos += pchunk-> len ;
273
+ dwMemPos += pchunk. len ;
274
274
}
275
275
}
276
276
277
277
// Step #2: convert patterns
278
278
for (UINT nPat=0 ; nPat<nPatterns; nPat++)
279
279
{
280
- PSMPATTERN * pPsmPat = ( PSMPATTERN *)(lpStream+patptrs[nPat]+8 );
281
- swap_PSMPATTERN (pPsmPat);
280
+ PSMPATTERN pPsmPat = *( const PSMPATTERN *)(lpStream+patptrs[nPat]+8 );
281
+ swap_PSMPATTERN (& pPsmPat);
282
282
ULONG len = *(DWORD *)(lpStream+patptrs[nPat]+4 ) - 12 ;
283
- UINT nRows = pPsmPat-> rows ;
284
- if (len > pPsmPat-> size ) len = pPsmPat-> size ;
283
+ UINT nRows = pPsmPat. rows ;
284
+ if (len > pPsmPat. size ) len = pPsmPat. size ;
285
285
if ((nRows < 64 ) || (nRows > 256 )) nRows = 64 ;
286
286
PatternSize[nPat] = nRows;
287
287
if ((Patterns[nPat] = AllocatePattern (nRows, m_nChannels)) == NULL ) break ;
288
288
MODCOMMAND *m = Patterns[nPat];
289
- BYTE *p = pPsmPat-> data ;
289
+ BYTE *p = pPsmPat. data ;
290
290
MODCOMMAND *sp, dummy;
291
291
UINT pos = 0 ;
292
292
UINT row = 0 ;
@@ -295,7 +295,7 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
295
295
Log (" Pattern %d at offset 0x%04X\n " , nPat, (DWORD)(p - (BYTE *)lpStream));
296
296
#endif
297
297
UINT flags, ch;
298
- rowlim = bswapLE16 (pPsmPat-> reserved1 )-2 ;
298
+ rowlim = bswapLE16 (pPsmPat. reserved1 )-2 ;
299
299
while ((row < nRows) && (pos+3 < len))
300
300
{
301
301
if ((pos+1 ) >= rowlim) {
@@ -393,7 +393,7 @@ BOOL CSoundFile::ReadPSM(LPCBYTE lpStream, DWORD dwMemLength)
393
393
#ifdef PSM_LOG
394
394
if (pos < len)
395
395
{
396
- Log (" Pattern %d: %d/%d[%d] rows (%d bytes) -> %d bytes left\n " , nPat, row, nRows, pPsmPat-> rows , pPsmPat-> size , len-pos);
396
+ Log (" Pattern %d: %d/%d[%d] rows (%d bytes) -> %d bytes left\n " , nPat, row, nRows, pPsmPat. rows , pPsmPat. size , len-pos);
397
397
}
398
398
#endif
399
399
}
0 commit comments