From: <sag...@us...> - 2010-05-30 20:47:07
|
Revision: 612 http://modplug.svn.sourceforge.net/modplug/?rev=612&view=rev Author: saga-games Date: 2010-05-30 20:46:59 +0000 (Sun, 30 May 2010) Log Message: ----------- [Ref] Getting rid of the deprecated PatternSize[] array. Modified Paths: -------------- trunk/OpenMPT/mptrack/CleanupSong.cpp trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/EffectVis.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Modedit.cpp trunk/OpenMPT/mptrack/PatternGotoDialog.cpp trunk/OpenMPT/mptrack/Undo.cpp trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/mptrack/mod2midi.cpp trunk/OpenMPT/soundlib/LOAD_AMF.CPP trunk/OpenMPT/soundlib/Load_ams.cpp trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/soundlib/Load_mdl.cpp trunk/OpenMPT/soundlib/Load_mid.cpp trunk/OpenMPT/soundlib/Load_mod.cpp trunk/OpenMPT/soundlib/Load_s3m.cpp trunk/OpenMPT/soundlib/Load_xm.cpp trunk/OpenMPT/soundlib/ModSequence.cpp trunk/OpenMPT/soundlib/Snd_fx.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h trunk/OpenMPT/soundlib/Sndmix.cpp Modified: trunk/OpenMPT/mptrack/CleanupSong.cpp =================================================================== --- trunk/OpenMPT/mptrack/CleanupSong.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/CleanupSong.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -389,7 +389,7 @@ for (PATTERNINDEX nPat = maxpat; nPat < maxPatIndex; nPat++) if ((pSndFile->Patterns[nPat]) && (nPat >= nMinToRemove)) { MODCOMMAND *m = pSndFile->Patterns[nPat]; - UINT ncmd = pSndFile->m_nChannels * pSndFile->PatternSize[nPat]; + UINT ncmd = pSndFile->m_nChannels * pSndFile->Patterns[nPat].GetNumRows(); for (UINT i=0; i<ncmd; i++) { if ((m[i].note) || (m[i].instr) || (m[i].volcmd) || (m[i].command)) goto NotEmpty; @@ -474,7 +474,7 @@ pSndFile->m_lpszPatternNames = lpszoldpatnames; if (s[0]) pSndFile->SetPatternName(k, s); } - nPatRows[k] = pSndFile->PatternSize[i]; + nPatRows[k] = pSndFile->Patterns[i].GetNumRows(); pPatterns[k] = pSndFile->Patterns[i]; } else if (pSndFile->Patterns[i]) @@ -539,7 +539,7 @@ MODCOMMAND *p = pSndFile->Patterns[nPat]; if (p) { - UINT jmax = pSndFile->PatternSize[nPat] * pSndFile->m_nChannels; + UINT jmax = pSndFile->Patterns[nPat].GetNumRows() * pSndFile->m_nChannels; for (UINT j=0; j<jmax; j++, p++) { if ((p->note) && (p->note <= NOTE_MAX)) @@ -706,7 +706,7 @@ for (PATTERNINDEX nPat = 0; nPat < pSndFile->Patterns.Size(); nPat++) if (pSndFile->Patterns[nPat]) { MODCOMMAND *m = pSndFile->Patterns[nPat]; - for(UINT len = pSndFile->PatternSize[nPat] * pSndFile->m_nChannels; len; m++, len--) + for(UINT len = pSndFile->Patterns[nPat].GetNumRows() * pSndFile->m_nChannels; len; m++, len--) { if(m->instr <= pSndFile->m_nSamples) m->instr = (BYTE)nSampleMap[m->instr]; } @@ -813,7 +813,7 @@ for (PATTERNINDEX iPat = 0; iPat < pSndFile->Patterns.Size(); iPat++) if (pSndFile->Patterns[iPat]) { MODCOMMAND *p = pSndFile->Patterns[iPat]; - UINT nLen = pSndFile->m_nChannels * pSndFile->PatternSize[iPat]; + UINT nLen = pSndFile->m_nChannels * pSndFile->Patterns[iPat].GetNumRows(); while (nLen--) { if (p->instr) Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -783,7 +783,7 @@ ROWINDEX rows = 64; if ((pat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[pat]) && (pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT))) { - rows = pSndFile->PatternSize[pat]; + rows = pSndFile->Patterns[pat].GetNumRows(); rows = CLAMP(rows, pSndFile->GetModSpecifications().patternRowsMin, pSndFile->GetModSpecifications().patternRowsMax); } PATTERNINDEX nNewPat = m_pModDoc->InsertPattern(nCurOrd + 1, rows); @@ -824,7 +824,7 @@ ROWINDEX rows = 64; if (nCurPat < pSndFile->Patterns.Size() && pReplaceIndex[nCurPat] == PATTERNINDEX_INVALID) { - rows = pSndFile->PatternSize[nCurPat]; + rows = pSndFile->Patterns[nCurPat].GetNumRows(); rows = CLAMP(rows, pSndFile->GetModSpecifications().patternRowsMin, pSndFile->GetModSpecifications().patternRowsMax); PATTERNINDEX nNewPat = m_pModDoc->InsertPattern(nInsertWhere + i, rows); @@ -832,8 +832,8 @@ { MODCOMMAND *pSrc = pSndFile->Patterns[nCurPat]; MODCOMMAND *pDest = pSndFile->Patterns[nNewPat]; - UINT n = pSndFile->PatternSize[nCurPat]; - if (pSndFile->PatternSize[nNewPat] < n) n = pSndFile->PatternSize[nNewPat]; + UINT n = pSndFile->Patterns[nCurPat].GetNumRows(); + if (pSndFile->Patterns[nNewPat].GetNumRows() < n) n = pSndFile->Patterns[nNewPat].GetNumRows(); n *= pSndFile->m_nChannels; if (n) memcpy(pDest, pSrc, n * sizeof(MODCOMMAND)); bSuccess = true; Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -460,7 +460,7 @@ yofs = GetYScrollPos(); pSndFile = pModDoc->GetSoundFile(); nColumnWidth = m_szCell.cx; - nrows = (pSndFile->Patterns[m_nPattern]) ? pSndFile->PatternSize[m_nPattern] : 0; + nrows = (pSndFile->Patterns[m_nPattern]) ? pSndFile->Patterns[m_nPattern].GetNumRows() : 0; ncols = pSndFile->GetNumChannels(); xpaint = m_szHeader.cx; ypaint = rcClient.top; @@ -582,7 +582,7 @@ } if ((bPrevPatFound) && (nPrevPat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nPrevPat])) { - UINT nPrevRows = pSndFile->PatternSize[nPrevPat]; + UINT nPrevRows = pSndFile->Patterns[nPrevPat].GetNumRows(); UINT n = (nSkip < nPrevRows) ? nSkip : nPrevRows; ypaint += (nSkip-n)*m_szCell.cy; @@ -630,7 +630,7 @@ } if ((bNextPatFound) && (nNextPat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nNextPat])) { - UINT nNextRows = pSndFile->PatternSize[nNextPat]; + UINT nNextRows = pSndFile->Patterns[nNextPat].GetNumRows(); UINT n = ((UINT)nVisRows < nNextRows) ? nVisRows : nNextRows; m_Dib.SetBlendMode(0x80); @@ -1068,7 +1068,7 @@ y1 += dy; y2 += dy; nChannels = pSndFile->m_nChannels; - nRows = pSndFile->PatternSize[m_nPattern]; + nRows = pSndFile->Patterns[m_nPattern].GetNumRows(); if (x1 < GetXScrollPos()) bLeft = false; if (x1 >= nChannels) x1 = nChannels - 1; if (x1 < 0) { x1 = 0; c1 = 0; bLeft = false; } @@ -1149,7 +1149,7 @@ CSoundFile *pSndFile = pModDoc->GetSoundFile(); SIZE sizeTotal, sizePage, sizeLine; sizeTotal.cx = m_szHeader.cx + pSndFile->m_nChannels * m_szCell.cx; - sizeTotal.cy = m_szHeader.cy + pSndFile->PatternSize[m_nPattern] * m_szCell.cy; + sizeTotal.cy = m_szHeader.cy + pSndFile->Patterns[m_nPattern].GetNumRows() * m_szCell.cy; sizeLine.cx = m_szCell.cx; sizeLine.cy = m_szCell.cy; sizePage.cx = sizeLine.cx * 2; @@ -1375,7 +1375,7 @@ CSoundFile *pSndFile = pModDoc->GetSoundFile(); int yofs = GetYScrollPos() - m_nMidRow; if (n == -1) n = m_nRow; - if ((n < yofs) || (n >= (int)pSndFile->PatternSize[m_nPattern])) return; + if ((n < yofs) || (n >= (int)pSndFile->Patterns[m_nPattern].GetNumRows())) return; CRect rect; GetClientRect(&rect); rect.left = m_szHeader.cx; @@ -1431,7 +1431,7 @@ s[0] = 0; if ((!(m_dwStatus & (PATSTATUS_KEYDRAGSEL/*|PATSTATUS_MOUSEDRAGSEL*/))) //rewbs.xinfo: update indicator even when dragging && (m_dwBeginSel == m_dwEndSel) && (pSndFile->Patterns[m_nPattern]) - && (m_nRow < pSndFile->PatternSize[m_nPattern]) && (nChn < pSndFile->m_nChannels)) + && (m_nRow < pSndFile->Patterns[m_nPattern].GetNumRows()) && (nChn < pSndFile->m_nChannels)) { MODCOMMAND *m = &pSndFile->Patterns[m_nPattern][m_nRow*pSndFile->m_nChannels+nChn]; Modified: trunk/OpenMPT/mptrack/EffectVis.cpp =================================================================== --- trunk/OpenMPT/mptrack/EffectVis.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/EffectVis.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -599,16 +599,16 @@ //Check pattern, start row and channel exist MODCOMMAND *pcmd = m_pSndFile->Patterns[m_nPattern]; - if (!pcmd || (m_startRow >= m_pSndFile->PatternSize[m_nPattern]) || (m_nChan >= m_pSndFile->m_nChannels)) + if (!pcmd || (m_startRow >= m_pSndFile->Patterns[m_nPattern].GetNumRows()) || (m_nChan >= m_pSndFile->m_nChannels)) { DoClose(); return; } //Check end exists - if ( (m_endRow >= m_pSndFile->PatternSize[m_nPattern]) ) + if ( (m_endRow >= m_pSndFile->Patterns[m_nPattern].GetNumRows()) ) { - m_endRow = m_pSndFile->PatternSize[m_nPattern]-1; + m_endRow = m_pSndFile->Patterns[m_nPattern].GetNumRows()-1; //ensure we still have some rows to process if (m_endRow <= m_startRow) { Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -352,7 +352,7 @@ { m_SndFile.m_nType = MOD_TYPE_MOD; for (UINT i=0; i<m_SndFile.Patterns.Size(); i++) - if ((m_SndFile.Patterns[i]) && (m_SndFile.PatternSize[i] != 64)) + if ((m_SndFile.Patterns[i]) && (m_SndFile.Patterns[i].GetNumRows() != 64)) m_SndFile.m_nType = MOD_TYPE_XM; } break; @@ -1295,7 +1295,7 @@ UINT CModDoc::GetPatternSize(PATTERNINDEX nPat) const //--------------------------------------------------- { - if ((nPat < m_SndFile.Patterns.Size()) && (m_SndFile.Patterns[nPat])) return m_SndFile.PatternSize[nPat]; + if ((nPat < m_SndFile.Patterns.Size()) && (m_SndFile.Patterns[nPat])) return m_SndFile.Patterns[nPat].GetNumRows(); return 0; } @@ -3079,7 +3079,7 @@ if (pat >= m_SndFile.Patterns.Size()) { pat=0; } - if (row >= pSndFile->PatternSize[pat]) { + if (row >= pSndFile->Patterns[pat].GetNumRows()) { row=0; } //end rewbs.fix3185 Modified: trunk/OpenMPT/mptrack/Modedit.cpp =================================================================== --- trunk/OpenMPT/mptrack/Modedit.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/Modedit.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -107,7 +107,7 @@ // Check if conversion to 64 rows is necessary for (UINT ipat=0; ipat<m_SndFile.Patterns.Size(); ipat++) { - if ((m_SndFile.Patterns[ipat]) && (m_SndFile.PatternSize[ipat] != 64)) b64++; + if ((m_SndFile.Patterns[ipat]) && (m_SndFile.Patterns[ipat].GetNumRows() != 64)) b64++; } if (((m_SndFile.m_nInstruments) || (b64)) && (nNewType & (MOD_TYPE_MOD|MOD_TYPE_S3M))) { @@ -126,12 +126,12 @@ // Resizing all patterns to 64 rows UINT nPatCvt = 0; UINT i = 0; - for (i=0; i<m_SndFile.Patterns.Size(); i++) if ((m_SndFile.Patterns[i]) && (m_SndFile.PatternSize[i] != 64)) + for (i=0; i<m_SndFile.Patterns.Size(); i++) if ((m_SndFile.Patterns[i]) && (m_SndFile.Patterns[i].GetNumRows() != 64)) { - if(m_SndFile.PatternSize[i] < 64) + if(m_SndFile.Patterns[i].GetNumRows() < 64) { // try to save short patterns by inserting a pattern break. - m_SndFile.TryWriteEffect(i, m_SndFile.PatternSize[i] - 1, CMD_PATTERNBREAK, 0, false, CHANNELINDEX_INVALID, false, true); + m_SndFile.TryWriteEffect(i, m_SndFile.Patterns[i].GetNumRows() - 1, CMD_PATTERNBREAK, 0, false, CHANNELINDEX_INVALID, false, true); } m_SndFile.Patterns[i].Resize(64, false); if (b64 < 5) @@ -180,7 +180,7 @@ UINT nChannel = m_SndFile.m_nChannels - 1; - for (UINT len = m_SndFile.PatternSize[nPat] * m_SndFile.m_nChannels; len; m++, len--) + for (UINT len = m_SndFile.Patterns[nPat].GetNumRows() * m_SndFile.m_nChannels; len; m++, len--) { nChannel = (nChannel + 1) % m_SndFile.m_nChannels; // 0...Channels - 1 @@ -466,14 +466,14 @@ for (UINT i=0; i<m_SndFile.Patterns.Size(); i++) if (m_SndFile.Patterns[i]) { MODCOMMAND *p = m_SndFile.Patterns[i]; - MODCOMMAND *newp = CSoundFile::AllocatePattern(m_SndFile.PatternSize[i], nNewChannels); + MODCOMMAND *newp = CSoundFile::AllocatePattern(m_SndFile.Patterns[i].GetNumRows(), nNewChannels); if (!newp) { END_CRITICAL(); AddToLog("ERROR: Not enough memory to create new channels!\nPattern Data is corrupted!\n"); return FALSE; } - for (UINT j=0; j<m_SndFile.PatternSize[i]; j++) + for (UINT j=0; j<m_SndFile.Patterns[i].GetNumRows(); j++) { memcpy(&newp[j*nNewChannels], &p[j*m_SndFile.m_nChannels], m_SndFile.m_nChannels*sizeof(MODCOMMAND)); } @@ -526,7 +526,7 @@ for (i=0; i<m_SndFile.Patterns.Size(); i++) if (m_SndFile.Patterns[i]) { MODCOMMAND *p = m_SndFile.Patterns[i]; - MODCOMMAND *newp = CSoundFile::AllocatePattern(m_SndFile.PatternSize[i], nRemainingChannels); + MODCOMMAND *newp = CSoundFile::AllocatePattern(m_SndFile.Patterns[i].GetNumRows(), nRemainingChannels); if (!newp) { END_CRITICAL(); @@ -534,7 +534,7 @@ return true; } MODCOMMAND *tmpsrc = p, *tmpdest = newp; - for (UINT j=0; j<m_SndFile.PatternSize[i]; j++) + for (UINT j=0; j<m_SndFile.Patterns[i].GetNumRows(); j++) { for (UINT k=0; k<m_SndFile.m_nChannels; k++, tmpsrc++) { @@ -579,7 +579,7 @@ for (UINT i=0; i<m_SndFile.Patterns.Size(); i++) if (m_SndFile.Patterns[i]) { MODCOMMAND *p = m_SndFile.Patterns[i]; - for (UINT j=m_SndFile.m_nChannels*m_SndFile.PatternSize[i]; j; j--, p++) if (p->instr) + for (UINT j=m_SndFile.m_nChannels*m_SndFile.Patterns[i].GetNumRows(); j; j--, p++) if (p->instr) { UINT instr = p->instr; UINT note = p->note; @@ -1039,7 +1039,7 @@ for (UINT row=0; row<nrows; row++) { MODCOMMAND *m = m_SndFile.Patterns[nPattern]; - if ((row + (dwBeginSel >> 16)) >= m_SndFile.PatternSize[nPattern]) break; + if ((row + (dwBeginSel >> 16)) >= m_SndFile.Patterns[nPattern].GetNumRows()) break; m += (row+(dwBeginSel >> 16))*m_SndFile.m_nChannels; m += (colmin >> 3); for (UINT col=0; col<ncols; col++, m++, p+=12) @@ -1184,7 +1184,7 @@ PATTERNINDEX pTemp; GetEditPosition(rTemp, pTemp, oCurrentOrder); - if ((nrow >= m_SndFile.PatternSize[nPattern]) || (ncol >= m_SndFile.m_nChannels)) goto PasteDone; + if ((nrow >= m_SndFile.Patterns[nPattern].GetNumRows()) || (ncol >= m_SndFile.m_nChannels)) goto PasteDone; m += nrow * m_SndFile.m_nChannels; // Search for signature @@ -1209,7 +1209,7 @@ startLen = len; startRow = nrow; - while ((nrow < m_SndFile.PatternSize[nPattern])) + while ((nrow < m_SndFile.Patterns[nPattern].GetNumRows())) { // Search for column separator or end of paste data while ((len + 11 >= dwMemSize) || p[len] != '|') @@ -1245,7 +1245,7 @@ // Before changing anything in this pattern, we have to create an undo point. if(bPrepareUndo) { - GetPatternUndo()->PrepareUndo(nPattern, 0, 0, m_SndFile.m_nChannels, m_SndFile.PatternSize[nPattern], !bFirstUndo); + GetPatternUndo()->PrepareUndo(nPattern, 0, 0, m_SndFile.m_nChannels, m_SndFile.Patterns[nPattern].GetNumRows(), !bFirstUndo); bPrepareUndo = false; bFirstUndo = false; } @@ -1257,7 +1257,7 @@ // push channel data below paste point first. if(pasteMode == pm_pushforwardpaste) { - for(ROWINDEX nPushRow = m_SndFile.PatternSize[nPattern] - 1 - nrow; nPushRow > 0; nPushRow--) + for(ROWINDEX nPushRow = m_SndFile.Patterns[nPattern].GetNumRows() - 1 - nrow; nPushRow > 0; nPushRow--) { m[col + nPushRow * m_SndFile.m_nChannels] = m[col + (nPushRow - 1) * m_SndFile.m_nChannels]; } @@ -1414,7 +1414,7 @@ // If Paste Flood is enabled, this won't be called due to obvious reasons. if(doOverflowPaste) { - while(nrow >= m_SndFile.PatternSize[nPattern]) + while(nrow >= m_SndFile.Patterns[nPattern].GetNumRows()) { nrow = 0; ORDERINDEX oNextOrder = m_SndFile.Order.GetNextOrderIgnoringSkips(oCurrentOrder); @@ -1618,7 +1618,7 @@ for (PATTERNINDEX ipat = 0; ipat < m_SndFile.Patterns.Size(); ipat++) if (m_SndFile.Patterns.IsValidPat(ipat)) { MODCOMMAND *p = m_SndFile.Patterns[ipat] + iRst; - UINT len = m_SndFile.PatternSize[ipat]; + UINT len = m_SndFile.Patterns[ipat].GetNumRows(); for (UINT idata = 0; idata < len; idata++, p += m_SndFile.m_nChannels) { if (!p->IsEmpty()) Modified: trunk/OpenMPT/mptrack/PatternGotoDialog.cpp =================================================================== --- trunk/OpenMPT/mptrack/PatternGotoDialog.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/PatternGotoDialog.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -76,7 +76,7 @@ } //Does pattern have enough rows? - if (validated && m_pSndFile->PatternSize[m_nPattern] <= m_nRow) { + if (validated && m_pSndFile->Patterns[m_nPattern].GetNumRows() <= m_nRow) { validated=false; } Modified: trunk/OpenMPT/mptrack/Undo.cpp =================================================================== --- trunk/OpenMPT/mptrack/Undo.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/Undo.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -50,7 +50,7 @@ UINT nRows; if (!pSndFile->Patterns.IsValidPat(pattern)) return false; - nRows = pSndFile->PatternSize[pattern]; + nRows = pSndFile->Patterns[pattern].GetNumRows(); pPattern = pSndFile->Patterns[pattern]; if ((y >= nRows) || (cx < 1) || (cy < 1) || (x >= pSndFile->m_nChannels)) return false; if (y + cy >= nRows) cy = nRows - y; @@ -68,7 +68,7 @@ } sUndo.pattern = pattern; - sUndo.patternsize = pSndFile->PatternSize[pattern]; + sUndo.patternsize = pSndFile->Patterns[pattern].GetNumRows(); sUndo.column = x; sUndo.row = y; sUndo.cx = cx; @@ -130,7 +130,7 @@ nRows = pUndo->patternsize; if(pUndo->column + pUndo->cx <= pSndFile->m_nChannels) { - if((!pSndFile->Patterns[nPattern]) || (pSndFile->PatternSize[nPattern] < nRows)) + if((!pSndFile->Patterns[nPattern]) || (pSndFile->Patterns[nPattern].GetNumRows() < nRows)) { MODCOMMAND *newPattern = CSoundFile::AllocatePattern(nRows, pSndFile->m_nChannels); MODCOMMAND *oldPattern = pSndFile->Patterns[nPattern]; Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -254,7 +254,7 @@ if (!pModDoc) return FALSE; pSndFile = pModDoc->GetSoundFile(); - if ((bWrap) && (pSndFile->PatternSize[m_nPattern])) + if ((bWrap) && (pSndFile->Patterns[m_nPattern].GetNumRows())) { if ((int)row < (int)0) { @@ -269,26 +269,26 @@ { const ORDERINDEX prevOrd = pSndFile->Order.GetPreviousOrderIgnoringSkips(nCurOrder); const PATTERNINDEX nPrevPat = pSndFile->Order[prevOrd]; - if ((nPrevPat < pSndFile->Patterns.Size()) && (pSndFile->PatternSize[nPrevPat])) + if ((nPrevPat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nPrevPat].GetNumRows())) { SendCtrlMessage(CTRLMSG_SETCURRENTORDER, prevOrd); if (SetCurrentPattern(nPrevPat)) - return SetCurrentRow(pSndFile->PatternSize[nPrevPat] + (int)row); + return SetCurrentRow(pSndFile->Patterns[nPrevPat].GetNumRows() + (int)row); } } row = 0; } else if (CMainFrame::m_dwPatternSetup & PATTERN_WRAP) { - if ((int)row < (int)0) row += pSndFile->PatternSize[m_nPattern]; - row %= pSndFile->PatternSize[m_nPattern]; + if ((int)row < (int)0) row += pSndFile->Patterns[m_nPattern].GetNumRows(); + row %= pSndFile->Patterns[m_nPattern].GetNumRows(); } } else //row >= 0 - if (row >= pSndFile->PatternSize[m_nPattern]) + if (row >= pSndFile->Patterns[m_nPattern].GetNumRows()) { if (m_dwStatus & (PATSTATUS_KEYDRAGSEL|PATSTATUS_MOUSEDRAGSEL)) { - row = pSndFile->PatternSize[m_nPattern]-1; + row = pSndFile->Patterns[m_nPattern].GetNumRows()-1; } else if (CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL) { @@ -297,19 +297,19 @@ { const ORDERINDEX nextOrder = pSndFile->Order.GetNextOrderIgnoringSkips(nCurOrder); const PATTERNINDEX nextPat = pSndFile->Order[nextOrder]; - if ((nextPat < pSndFile->Patterns.Size()) && (pSndFile->PatternSize[nextPat])) + if ((nextPat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nextPat].GetNumRows())) { - const ROWINDEX newRow = row - pSndFile->PatternSize[m_nPattern]; + const ROWINDEX newRow = row - pSndFile->Patterns[m_nPattern].GetNumRows(); SendCtrlMessage(CTRLMSG_SETCURRENTORDER, nextOrder); if (SetCurrentPattern(nextPat)) return SetCurrentRow(newRow); } } - row = pSndFile->PatternSize[m_nPattern]-1; + row = pSndFile->Patterns[m_nPattern].GetNumRows()-1; } else if (CMainFrame::m_dwPatternSetup & PATTERN_WRAP) { - row %= pSndFile->PatternSize[m_nPattern]; + row %= pSndFile->Patterns[m_nPattern].GetNumRows(); } } } @@ -317,11 +317,11 @@ //rewbs.fix3168 if ( (static_cast<int>(row)<0) && !(CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL)) row = 0; - if (row >= pSndFile->PatternSize[m_nPattern] && !(CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL)) - row = pSndFile->PatternSize[m_nPattern]-1; + if (row >= pSndFile->Patterns[m_nPattern].GetNumRows() && !(CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL)) + row = pSndFile->Patterns[m_nPattern].GetNumRows()-1; //end rewbs.fix3168 - if ((row >= pSndFile->PatternSize[m_nPattern]) || (!m_szCell.cy)) return FALSE; + if ((row >= pSndFile->Patterns[m_nPattern].GetNumRows()) || (!m_szCell.cy)) return FALSE; // Fix: If cursor isn't on screen move both scrollbars to make it visible InvalidateRow(); m_nRow = row; @@ -526,7 +526,7 @@ if (!bScroll) return TRUE; // Scroll to row row = dwPos >> 16; - if (row < (int)pSndFile->PatternSize[m_nPattern]) + if (row < (int)pSndFile->Patterns[m_nPattern].GetNumRows()) { row += m_nMidRow; rect.top += m_szHeader.cy; @@ -760,7 +760,7 @@ DWORD startSel = ((m_dwBeginSel>>16)<(m_dwEndSel>>16)) ? m_dwBeginSel : m_dwEndSel; DWORD endSel = ((m_dwBeginSel>>16)<(m_dwEndSel>>16)) ? m_dwEndSel : m_dwBeginSel; - pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, 0, 0, pSndFile->m_nChannels, pSndFile->PatternSize[m_nPattern]); + pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, 0, 0, pSndFile->m_nChannels, pSndFile->Patterns[m_nPattern].GetNumRows()); int finalDest = (startSel>>16)+((endSel>>16)-(startSel>>16))*2; for (int row=finalDest; row>(int)(startSel >> 16); row-=2) @@ -769,7 +769,7 @@ for (UINT i=(startSel & 0xFFFF); i<=(endSel & 0xFFFF); i++) if ((i & 7) < 5) { UINT chn = i >> 3; - if ((chn >= pSndFile->m_nChannels) || (row >= pSndFile->PatternSize[m_nPattern])) continue; + if ((chn >= pSndFile->m_nChannels) || (row >= pSndFile->Patterns[m_nPattern].GetNumRows())) continue; MODCOMMAND *dest = &p[row * pSndFile->m_nChannels + chn]; MODCOMMAND *src = &p[(row-offset/2) * pSndFile->m_nChannels + chn]; MODCOMMAND *blank= &p[(row-1) * pSndFile->m_nChannels + chn]; @@ -788,7 +788,7 @@ } m_dwBeginSel = startSel; - m_dwEndSel = (min(finalDest,pSndFile->PatternSize[m_nPattern]-1)<<16) | (endSel&0xFFFF); + m_dwEndSel = (min(finalDest,pSndFile->Patterns[m_nPattern].GetNumRows()-1)<<16) | (endSel&0xFFFF); InvalidatePattern(FALSE); pModDoc->SetModified(); @@ -810,7 +810,7 @@ DWORD startSel = ((m_dwBeginSel>>16)<(m_dwEndSel>>16))?m_dwBeginSel:m_dwEndSel; DWORD endSel = ((m_dwBeginSel>>16)<(m_dwEndSel>>16))?m_dwEndSel:m_dwBeginSel; - pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, 0, 0, pSndFile->m_nChannels, pSndFile->PatternSize[m_nPattern]); + pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, 0, 0, pSndFile->m_nChannels, pSndFile->Patterns[m_nPattern].GetNumRows()); int finalDest = (startSel>>16)+((endSel>>16)-(startSel>>16))/2; @@ -822,8 +822,8 @@ for (UINT i=(startSel & 0xFFFF); i<=(endSel & 0xFFFF); i++) if ((i & 7) < 5) { UINT chn = i >> 3; - if ((chn >= pSndFile->m_nChannels) || (srcRow >= pSndFile->PatternSize[m_nPattern]) - || (row >= pSndFile->PatternSize[m_nPattern])) continue; + if ((chn >= pSndFile->m_nChannels) || (srcRow >= pSndFile->Patterns[m_nPattern].GetNumRows()) + || (row >= pSndFile->Patterns[m_nPattern].GetNumRows())) continue; MODCOMMAND *dest = &p[row * pSndFile->m_nChannels + chn]; MODCOMMAND *src = &p[srcRow * pSndFile->m_nChannels + chn]; //memcpy(dest/*+(i%5)*/, src/*+(i%5)*/, /*sizeof(MODCOMMAND) - (i-chn)*/ sizeof(BYTE)); @@ -849,7 +849,7 @@ } } m_dwBeginSel = startSel; - m_dwEndSel = (min(finalDest,pSndFile->PatternSize[m_nPattern]-1)<<16) | (endSel& 0xFFFF); + m_dwEndSel = (min(finalDest,pSndFile->Patterns[m_nPattern].GetNumRows()-1)<<16) | (endSel& 0xFFFF); InvalidatePattern(FALSE); pModDoc->SetModified(); @@ -888,7 +888,7 @@ for (UINT i=(m_dwBeginSel & 0xFFFF); i<=(m_dwEndSel & 0xFFFF); i++) if ((i & 7) < 5) { // for all selected cols UINT chn = i >> 3; - if ((chn >= pSndFile->m_nChannels) || (row >= pSndFile->PatternSize[m_nPattern])) continue; + if ((chn >= pSndFile->m_nChannels) || (row >= pSndFile->Patterns[m_nPattern].GetNumRows())) continue; MODCOMMAND *m = &p[row * pSndFile->m_nChannels + chn]; switch(i & 7) { case 0: // Clear note @@ -1297,7 +1297,7 @@ if ((pModDoc) && (m_nPattern < pModDoc->GetSoundFile()->Patterns.Size())) { UINT row = dwPos >> 16; - UINT max = pModDoc->GetSoundFile()->PatternSize[m_nPattern]; + UINT max = pModDoc->GetSoundFile()->Patterns[m_nPattern].GetNumRows(); if ((row) && (row >= max)) row = max-1; dwPos &= 0xFFFF; dwPos |= (row << 16); @@ -1337,7 +1337,7 @@ if (pModDoc) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); - SetCurSel(0, ((pSndFile->PatternSize[m_nPattern]-1) << 16) + SetCurSel(0, ((pSndFile->Patterns[m_nPattern].GetNumRows()-1) << 16) | ((pSndFile->m_nChannels - 1) << 3) | (4)); } @@ -1352,7 +1352,7 @@ { CSoundFile *pSndFile = pModDoc->GetSoundFile(); SetCurSel(m_nMenuParam & 0xFFF8, - ((pSndFile->PatternSize[m_nPattern]-1) << 16) + ((pSndFile->Patterns[m_nPattern].GetNumRows()-1) << 16) | ((m_nMenuParam & 0xFFF8)+4)); } } @@ -1366,7 +1366,7 @@ { CSoundFile *pSndFile = pModDoc->GetSoundFile(); DWORD dwBeginSel = m_dwCursor & 0xFFF8; - DWORD dwEndSel = ((pSndFile->PatternSize[m_nPattern]-1) << 16) | ((m_dwCursor & 0xFFF8)+4); + DWORD dwEndSel = ((pSndFile->Patterns[m_nPattern].GetNumRows()-1) << 16) | ((m_dwCursor & 0xFFF8)+4); // If column is already selected, select the current pattern if ((dwBeginSel == m_dwBeginSel) && (dwEndSel == m_dwEndSel)) { @@ -1533,7 +1533,7 @@ pSndFile = pModDoc->GetSoundFile(); if (!pSndFile->Patterns[m_nPattern]) return; row = m_dwBeginSel >> 16; - maxrow = pSndFile->PatternSize[m_nPattern]; + maxrow = pSndFile->Patterns[m_nPattern].GetNumRows(); if (colmax >= pSndFile->m_nChannels) colmax = pSndFile->m_nChannels-1; if (colmin > colmax) return; pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, 0,0, pSndFile->m_nChannels, maxrow); @@ -1599,7 +1599,7 @@ pSndFile = pModDoc->GetSoundFile(); if (!pSndFile->Patterns[m_nPattern]) return; row = m_dwBeginSel >> 16; - maxrow = pSndFile->PatternSize[m_nPattern]; + maxrow = pSndFile->Patterns[m_nPattern].GetNumRows(); if (colmax >= pSndFile->m_nChannels) colmax = pSndFile->m_nChannels-1; if (colmin > colmax) return; pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, 0,0, pSndFile->m_nChannels, maxrow); @@ -1639,7 +1639,7 @@ pSndFile = pModDoc->GetSoundFile(); if (!pSndFile->Patterns[m_nPattern]) return; row = m_nRow; - maxrow = pSndFile->PatternSize[m_nPattern]; + maxrow = pSndFile->Patterns[m_nPattern].GetNumRows(); colmin = (m_dwBeginSel & 0xFFFF) >> 3; colmax = (m_dwEndSel & 0xFFFF) >> 3; @@ -1780,7 +1780,7 @@ for (UINT nPat=nPatStart; nPat<nPatEnd; nPat++) { LPMODCOMMAND m = pSndFile->Patterns[nPat]; - DWORD len = pSndFile->m_nChannels * pSndFile->PatternSize[nPat]; + DWORD len = pSndFile->m_nChannels * pSndFile->Patterns[nPat].GetNumRows(); if ((!m) || (!len)) continue; UINT n = 0; if ((m_bContinueSearch) && (nPat == nPatStart) && (nPat == m_nPattern)) @@ -1995,7 +1995,7 @@ if ((pMainFrm) && (pModDoc)) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); - if ((!pSndFile->PatternSize[m_nPattern]) || (!pSndFile->Patterns[m_nPattern])) return; + if ((!pSndFile->Patterns[m_nPattern].GetNumRows()) || (!pSndFile->Patterns[m_nPattern])) return; // Cut instrument/sample BEGIN_CRITICAL(); for (UINT i=pSndFile->m_nChannels; i<MAX_CHANNELS; i++) @@ -2015,7 +2015,7 @@ if (CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL) SetCurrentRow(GetCurrentRow()+1, TRUE); else - SetCurrentRow((GetCurrentRow()+1) % pSndFile->PatternSize[m_nPattern], FALSE); + SetCurrentRow((GetCurrentRow()+1) % pSndFile->Patterns[m_nPattern].GetNumRows(), FALSE); SetFocus(); } } @@ -2029,7 +2029,7 @@ if (pModDoc) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); - if ((!pSndFile->PatternSize[m_nPattern]) || (!pSndFile->Patterns[m_nPattern])) return; + if ((!pSndFile->Patterns[m_nPattern].GetNumRows()) || (!pSndFile->Patterns[m_nPattern])) return; MODCOMMAND *m = pSndFile->Patterns[m_nPattern] + m_nRow * pSndFile->m_nChannels + ((m_dwCursor & 0xFFFF) >> 3); switch(m_dwCursor & 7) { @@ -2332,7 +2332,7 @@ MODCOMMAND *pcmd = pSndFile->Patterns[m_nPattern]; if ((!pcmd) || (col0 > col1) || (col1 >= pSndFile->m_nChannels) - || (row0 > row1) || (row1 >= pSndFile->PatternSize[m_nPattern])) return FALSE; + || (row0 > row1) || (row1 >= pSndFile->Patterns[m_nPattern].GetNumRows())) return FALSE; PrepareUndo(m_dwBeginSel, m_dwEndSel); for (UINT row=row0; row <= row1; row++) { @@ -2369,7 +2369,7 @@ if ((pModDoc = GetDocument()) == NULL || !(IsEditingEnabled_bmsg())) return; pSndFile = pModDoc->GetSoundFile(); nChannels = pSndFile->m_nChannels; - nRows = pSndFile->PatternSize[m_nPattern]; + nRows = pSndFile->Patterns[m_nPattern].GetNumRows(); pOldPattern = pSndFile->Patterns[m_nPattern]; if ((nChannels < 1) || (nRows < 1) || (!pOldPattern)) return; dx = (int)((m_dwDragPos & 0xFFF8) >> 3) - (int)((m_dwStartSel & 0xFFF8) >> 3); @@ -2736,8 +2736,8 @@ ROWINDEX firstRow = (m_dwBeginSel >> 16), lastRow = (m_dwEndSel >> 16); firstChannel = CLAMP(firstChannel, 0, pSndFile->m_nChannels - 1); lastChannel = CLAMP(lastChannel, 0, pSndFile->m_nChannels - 1); - firstRow = CLAMP(firstRow, 0, pSndFile->PatternSize[m_nPattern] - 1); - lastRow = CLAMP(lastRow, 0, pSndFile->PatternSize[m_nPattern] - 1); + firstRow = CLAMP(firstRow, 0, pSndFile->Patterns[m_nPattern].GetNumRows() - 1); + lastRow = CLAMP(lastRow, 0, pSndFile->Patterns[m_nPattern].GetNumRows() - 1); for (CHANNELINDEX nChn = firstChannel; nChn <= lastChannel; nChn++) { @@ -2939,7 +2939,7 @@ if (nOrd < pSndFile->Order.size()) SendCtrlMessage(CTRLMSG_SETCURRENTORDER, nOrd); updateOrderList = false; } - if (nRow != m_nRow) SetCurrentRow((nRow < pSndFile->PatternSize[nPat]) ? nRow : 0, FALSE, FALSE); + if (nRow != m_nRow) SetCurrentRow((nRow < pSndFile->Patterns[nPat].GetNumRows()) ? nRow : 0, FALSE, FALSE); } SetPlayCursor(0xFFFF, 0); } else @@ -3385,7 +3385,7 @@ if (pModDoc) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); - pModDoc->CopyPattern(m_nPattern, 0, ((pSndFile->PatternSize[m_nPattern]-1)<<16)|(pSndFile->m_nChannels<<3)); + pModDoc->CopyPattern(m_nPattern, 0, ((pSndFile->Patterns[m_nPattern].GetNumRows()-1)<<16)|(pSndFile->m_nChannels<<3)); } } break; @@ -4285,7 +4285,7 @@ if((m_nSpacing > 0) && (m_nSpacing <= MAX_SPACING)) { - if(nRow + m_nSpacing < pSndFile->PatternSize[nPat] || (CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL)) + if(nRow + m_nSpacing < pSndFile->Patterns[nPat].GetNumRows() || (CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL)) { SetCurrentRow(nRow + m_nSpacing, (CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL) ? true: false); m_bLastNoteEntryBlocked=false; Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -53,7 +53,7 @@ // Find extension resolution (8 to 24 bits) UINT n = 1; - while(n < 4 && nCmdRow+n < pSndFile->PatternSize[nPat]){ + while(n < 4 && nCmdRow+n < pSndFile->Patterns[nPat].GetNumRows()){ i = (nCmdRow+n) * pSndFile->m_nChannels + nChannel; if(pSndFile->Patterns[nPat][i].command != CMD_XPARAM) break; n++; @@ -1032,7 +1032,7 @@ if ((pSndFile) && (m_nPattern < pSndFile->Patterns.Size()) && (combo)) { CHAR s[256]; - UINT nrows = pSndFile->PatternSize[m_nPattern]; + UINT nrows = pSndFile->Patterns[m_nPattern].GetNumRows(); // -> CODE#0008 // -> DESC="#define to set pattern size" @@ -1048,9 +1048,9 @@ combo->SetCurSel(nrows - specs.patternRowsMin); wsprintf(s, "Pattern #%d:\x0d\x0a %d row%s (%dK)", m_nPattern, - pSndFile->PatternSize[m_nPattern], - (pSndFile->PatternSize[m_nPattern] == 1) ? "" : "s", - (pSndFile->PatternSize[m_nPattern] * pSndFile->m_nChannels * sizeof(MODCOMMAND))/1024); + pSndFile->Patterns[m_nPattern].GetNumRows(), + (pSndFile->Patterns[m_nPattern].GetNumRows() == 1) ? "" : "s", + (pSndFile->Patterns[m_nPattern].GetNumRows() * pSndFile->m_nChannels * sizeof(MODCOMMAND))/1024); SetDlgItemText(IDC_TEXT1, s); } return TRUE; @@ -1193,7 +1193,7 @@ UINT nChannel = (dwCursor & 0xFFFF) >> 3; if ((nPat >= pSndFile->Patterns.Size()) || (!m_pModDoc) - || (nRow >= pSndFile->PatternSize[nPat]) || (nChannel >= pSndFile->m_nChannels) + || (nRow >= pSndFile->Patterns[nPat].GetNumRows()) || (nChannel >= pSndFile->m_nChannels) || (!pSndFile->Patterns[nPat])) return FALSE; m_Command = pSndFile->Patterns[nPat][nRow * pSndFile->m_nChannels + nChannel]; m_nRow = nRow; @@ -1237,7 +1237,7 @@ { CSoundFile *pSndFile = m_pModDoc->GetSoundFile(); if ((m_nPattern >= pSndFile->Patterns.Size()) || (!m_pModDoc) - || (m_nRow >= pSndFile->PatternSize[m_nPattern]) + || (m_nRow >= pSndFile->Patterns[m_nPattern].GetNumRows()) || (m_nChannel >= pSndFile->m_nChannels) || (!pSndFile->Patterns[m_nPattern])) return; MODCOMMAND *m = pSndFile->Patterns[m_nPattern]+m_nRow*pSndFile->m_nChannels+m_nChannel; @@ -1261,7 +1261,7 @@ { CSoundFile *pSndFile = m_pModDoc->GetSoundFile(); if ((m_nPattern >= pSndFile->Patterns.Size()) || (!m_pModDoc) - || (m_nRow >= pSndFile->PatternSize[m_nPattern]) + || (m_nRow >= pSndFile->Patterns[m_nPattern].GetNumRows()) || (m_nChannel >= pSndFile->m_nChannels) || (!pSndFile->Patterns[m_nPattern])) return; MODCOMMAND *m = pSndFile->Patterns[m_nPattern]+m_nRow*pSndFile->m_nChannels+m_nChannel; @@ -1284,7 +1284,7 @@ { CSoundFile *pSndFile = m_pModDoc->GetSoundFile(); if ((m_nPattern >= pSndFile->Patterns.Size()) || (!m_pModDoc) - || (m_nRow >= pSndFile->PatternSize[m_nPattern]) + || (m_nRow >= pSndFile->Patterns[m_nPattern].GetNumRows()) || (m_nChannel >= pSndFile->m_nChannels) || (!pSndFile->Patterns[m_nPattern])) return; MODCOMMAND *m = pSndFile->Patterns[m_nPattern]+m_nRow*pSndFile->m_nChannels+m_nChannel; Modified: trunk/OpenMPT/mptrack/mod2midi.cpp =================================================================== --- trunk/OpenMPT/mptrack/mod2midi.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/mptrack/mod2midi.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -424,7 +424,7 @@ { int pattern_break = -1; UINT nPat = m_pSndFile->Order[nOrder]; - if ((nPat >= m_pSndFile->Patterns.Size()) || (nPat == m_pSndFile->Order.GetIgnoreIndex()) || (!m_pSndFile->Patterns[nPat]) || (nRow >= m_pSndFile->PatternSize[nPat])) + if ((nPat >= m_pSndFile->Patterns.Size()) || (nPat == m_pSndFile->Order.GetIgnoreIndex()) || (!m_pSndFile->Patterns[nPat]) || (nRow >= m_pSndFile->Patterns[nPat].GetNumRows())) { nOrder++; nRow = 0; @@ -527,7 +527,7 @@ } else { nRow++; - if (nRow >= m_pSndFile->PatternSize[nPat]) + if (nRow >= m_pSndFile->Patterns[nPat].GetNumRows()) { nRow = 0; nOrder++; Modified: trunk/OpenMPT/soundlib/LOAD_AMF.CPP =================================================================== --- trunk/OpenMPT/soundlib/LOAD_AMF.CPP 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/LOAD_AMF.CPP 2010-05-30 20:46:59 UTC (rev 612) @@ -385,7 +385,7 @@ // Create the patterns from the list of tracks for (UINT iPat=0; iPat<pfh->numorders; iPat++) { - MODCOMMAND *p = AllocatePattern(PatternSize[iPat], m_nChannels); + MODCOMMAND *p = AllocatePattern(Patterns[iPat].GetNumRows(), m_nChannels); if (!p) break; Patterns[iPat] = p; for (UINT iChn=0; iChn<m_nChannels; iChn++) @@ -399,7 +399,7 @@ realtrk--; if ((realtrk < realtrackcnt) && (pTrackData[realtrk])) { - AMF_Unpack(p+iChn, pTrackData[realtrk], PatternSize[iPat], m_nChannels); + AMF_Unpack(p+iChn, pTrackData[realtrk], Patterns[iPat].GetNumRows(), m_nChannels); } } } Modified: trunk/OpenMPT/soundlib/Load_ams.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_ams.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Load_ams.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -156,7 +156,7 @@ if (!m) return true; const BYTE *p = lpStream + dwMemPos; UINT row = 0, i = 0; - while ((row < PatternSize[iPat]) && (i+2 < len)) + while ((row < Patterns[iPat].GetNumRows()) && (i+2 < len)) { BYTE b0 = p[i++]; BYTE b1 = p[i++]; Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -700,7 +700,7 @@ // Free pattern if not empty if(Patterns[npat]) { FreePattern(Patterns[npat]); Patterns[npat] = NULL; } - // PatternSize[npat] + // Patterns[npat].GetNumRows() ASSERT_CAN_READ(4); memcpy(&id,lpStream+streamPos,sizeof(DWORD)); if(id > MAX_PATTERN_ROWS) return false; @@ -708,16 +708,16 @@ streamPos += sizeof(DWORD); // Try to allocate & read only sized patterns - if(PatternSize[npat]){ + if(Patterns[npat].GetNumRows()){ // Allocate pattern - if(Patterns.Insert(npat, PatternSize[npat])){ - streamPos += m_nChannels * PatternSize[npat] * n; + if(Patterns.Insert(npat, Patterns[npat].GetNumRows())){ + streamPos += m_nChannels * Patterns[npat].GetNumRows() * n; continue; } // Pattern data - long datasize = m_nChannels * PatternSize[npat] * n; + long datasize = m_nChannels * Patterns[npat].GetNumRows() * n; //if (streamPos+datasize<=dwMemLength) { if(Patterns[npat].ReadITPdata(lpStream, streamPos, datasize, dwMemLength)) { @@ -1728,11 +1728,11 @@ // patterns data content for(UINT npat=0; npat<MAX_PATTERNS; npat++){ // pattern size (number of rows) - id = Patterns[npat] ? PatternSize[npat] : 0; + id = Patterns[npat] ? Patterns[npat].GetNumRows() : 0; fwrite(&id, 1, sizeof(id), f); // pattern data - if(Patterns[npat] && PatternSize[npat]) Patterns[npat].WriteITPdata(f); - //fwrite(Patterns[npat], 1, m_nChannels * PatternSize[npat] * sizeof(MODCOMMAND_ORIGINAL), f); + if(Patterns[npat] && Patterns[npat].GetNumRows()) Patterns[npat].WriteITPdata(f); + //fwrite(Patterns[npat], 1, m_nChannels * Patterns[npat].GetNumRows() * sizeof(MODCOMMAND_ORIGINAL), f); } // Song lonely (instrument-less) samples @@ -2161,15 +2161,15 @@ if (!Patterns[npat]) continue; patpos[npat] = dwPos; patinfo[0] = 0; - patinfo[1] = PatternSize[npat]; + patinfo[1] = Patterns[npat].GetNumRows(); patinfo[2] = 0; patinfo[3] = 0; // Check for empty pattern - if (PatternSize[npat] == 64) + if (Patterns[npat].GetNumRows() == 64) { MODCOMMAND *pzc = Patterns[npat]; - UINT nz = PatternSize[npat] * m_nChannels; + UINT nz = Patterns[npat].GetNumRows() * m_nChannels; UINT iz = 0; for (iz=0; iz<nz; iz++) { @@ -2187,7 +2187,7 @@ memset(chnmask, 0xFF, sizeof(chnmask)); memset(lastvalue, 0, sizeof(lastvalue)); MODCOMMAND *m = Patterns[npat]; - for (UINT row=0; row<PatternSize[npat]; row++) + for (UINT row=0; row<Patterns[npat].GetNumRows(); row++) { UINT len = 0; for (UINT ch=0; ch<m_nChannels; ch++, m++) @@ -2760,14 +2760,14 @@ if (!Patterns[npat]) continue; patpos[npat] = dwPos; patinfo[0] = 0; - patinfo[1] = PatternSize[npat]; + patinfo[1] = Patterns[npat].GetNumRows(); patinfo[2] = 0; patinfo[3] = 0; // Check for empty pattern - if (PatternSize[npat] == 64) + if (Patterns[npat].GetNumRows() == 64) { MODCOMMAND *pzc = Patterns[npat]; - UINT nz = PatternSize[npat] * nChannels; + UINT nz = Patterns[npat].GetNumRows() * nChannels; UINT iz = 0; for (iz=0; iz<nz; iz++) { @@ -2785,7 +2785,7 @@ memset(chnmask, 0xFF, sizeof(chnmask)); memset(lastvalue, 0, sizeof(lastvalue)); MODCOMMAND *m = Patterns[npat]; - for (UINT row=0; row<PatternSize[npat]; row++) + for (UINT row=0; row<Patterns[npat].GetNumRows(); row++) { len = 0; for (UINT ch = 0; ch < m_nChannels; ch++, m++) Modified: trunk/OpenMPT/soundlib/Load_mdl.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mdl.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Load_mdl.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -533,11 +533,11 @@ { for (UINT ipat=0; ipat<npatterns; ipat++) { - if ((Patterns[ipat] = AllocatePattern(PatternSize[ipat], m_nChannels)) == NULL) break; + if ((Patterns[ipat] = AllocatePattern(Patterns[ipat].GetNumRows(), m_nChannels)) == NULL) break; for (UINT chn=0; chn<m_nChannels; chn++) if ((patterntracks[ipat*32+chn]) && (patterntracks[ipat*32+chn] <= ntracks)) { MODCOMMAND *m = Patterns[ipat] + chn; - UnpackMDLTrack(m, m_nChannels, PatternSize[ipat], patterntracks[ipat*32+chn], lpStream+dwTrackPos); + UnpackMDLTrack(m, m_nChannels, Patterns[ipat].GetNumRows(), patterntracks[ipat*32+chn], lpStream+dwTrackPos); } } } Modified: trunk/OpenMPT/soundlib/Load_mid.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mid.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Load_mid.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -628,7 +628,7 @@ // Allocate current pattern if not allocated yet if (!Patterns[pat]) { - Patterns[pat] = AllocatePattern(PatternSize[pat], m_nChannels); + Patterns[pat] = AllocatePattern(Patterns[pat].GetNumRows(), m_nChannels); if (!Patterns[pat]) break; } dwGlobalFlags |= MIDIGLOBAL_SONGENDED; @@ -1199,7 +1199,7 @@ } } - if ((++row) >= PatternSize[pat]) + if ((++row) >= Patterns[pat].GetNumRows()) { pat++; if (pat >= MAX_PATTERNS-1) break; Modified: trunk/OpenMPT/soundlib/Load_mod.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mod.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Load_mod.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -542,7 +542,7 @@ { MODCOMMAND *m = Patterns[ipat]; for (UINT i=0; i<64; i++) { //for all rows - if (i < PatternSize[ipat]) { //if row exists + if (i < Patterns[ipat].GetNumRows()) { //if row exists LPBYTE p=s; for (UINT c=0; c<m_nChannels; c++,p+=4,m++) { Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -488,7 +488,7 @@ for(PATTERNINDEX nPat = 0; nPat < Patterns.Size(); nPat++) if(Patterns[nPat]) { MODCOMMAND *m = Patterns[nPat]; - for(UINT len = PatternSize[nPat] * m_nChannels; len; m++, len--) + for(UINT len = Patterns[nPat].GetNumRows() * m_nChannels; len; m++, len--) { if(m->command == CMD_MIDI) { @@ -642,7 +642,7 @@ { len = 2; MODCOMMAND *p = Patterns[i]; - for (UINT row=0; row<64; row++) if (row < PatternSize[i]) + for (UINT row=0; row<64; row++) if (row < Patterns[i].GetNumRows()) { for (UINT j=0; j<m_nChannels; j++) { Modified: trunk/OpenMPT/soundlib/Load_xm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Load_xm.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -829,9 +829,9 @@ memset(&xmph, 0, sizeof(xmph)); xmph[0] = 9; - xmph[5] = (BYTE)(PatternSize[i] & 0xFF); - xmph[6] = (BYTE)(PatternSize[i] >> 8); - for (UINT j = m_nChannels * PatternSize[i]; j > 0; j--, p++) + xmph[5] = (BYTE)(Patterns[i].GetNumRows() & 0xFF); + xmph[6] = (BYTE)(Patterns[i].GetNumRows() >> 8); + for (UINT j = m_nChannels * Patterns[i].GetNumRows(); j > 0; j--, p++) { // Don't write more than 32 channels if(bCompatibilityExport && m_nChannels - ((j - 1) % m_nChannels) > 32) continue; @@ -916,8 +916,8 @@ { memset(&xmph, 0, sizeof(xmph)); xmph[0] = 9; - xmph[5] = (BYTE)(PatternSize[i] & 0xFF); - xmph[6] = (BYTE)(PatternSize[i] >> 8); + xmph[5] = (BYTE)(Patterns[i].GetNumRows() & 0xFF); + xmph[6] = (BYTE)(Patterns[i].GetNumRows() >> 8); fwrite(xmph, 1, 9, f); } // Writing instruments Modified: trunk/OpenMPT/soundlib/ModSequence.cpp =================================================================== --- trunk/OpenMPT/soundlib/ModSequence.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/ModSequence.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -448,7 +448,7 @@ if(m_pSndFile->Patterns.IsValidPat(copyPat)) { MODCOMMAND *m = m_pSndFile->Patterns[copyPat]; - for (UINT len = m_pSndFile->PatternSize[copyPat] * m_pSndFile->m_nChannels; len; m++, len--) + for (UINT len = m_pSndFile->Patterns[copyPat].GetNumRows() * m_pSndFile->m_nChannels; len; m++, len--) { if(m->command == CMD_POSITIONJUMP && m->param >= startOrd) { @@ -512,21 +512,21 @@ if(!m_pSndFile->Patterns.IsValidPat(nPat)) continue; MODCOMMAND *m = m_pSndFile->Patterns[nPat]; - for (UINT len = 0; len < m_pSndFile->PatternSize[nPat] * m_pSndFile->m_nChannels; m++, len++) + for (UINT len = 0; len < m_pSndFile->Patterns[nPat].GetNumRows() * m_pSndFile->m_nChannels; m++, len++) { if(m->command == CMD_POSITIONJUMP) { if(patternsFixed[nPat] != SEQUENCEINDEX_INVALID && patternsFixed[nPat] != removedSequences) { // Oops, some other sequence uses this pattern already. - const PATTERNINDEX nNewPat = m_pSndFile->Patterns.Insert(m_pSndFile->PatternSize[nPat]); + const PATTERNINDEX nNewPat = m_pSndFile->Patterns.Insert(m_pSndFile->Patterns[nPat].GetNumRows()); if(nNewPat != SEQUENCEINDEX_INVALID) { // could create new pattern - copy data over and continue from here. At(nFirstOrder + nOrd) = nNewPat; MODCOMMAND *pSrc = m_pSndFile->Patterns[nPat]; MODCOMMAND *pDest = m_pSndFile->Patterns[nNewPat]; - memcpy(pDest, pSrc, m_pSndFile->PatternSize[nPat] * m_pSndFile->m_nChannels * sizeof(MODCOMMAND)); + memcpy(pDest, pSrc, m_pSndFile->Patterns[nPat].GetNumRows() * m_pSndFile->m_nChannels * sizeof(MODCOMMAND)); m = pDest + len; patternsFixed.resize(max(nNewPat + 1, (PATTERNINDEX)patternsFixed.size()), SEQUENCEINDEX_INVALID); nPat = nNewPat; Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -163,7 +163,7 @@ continue; } // Should never happen - if (nRow >= PatternSize[nPattern]) + if (nRow >= Patterns[nPattern].GetNumRows()) nRow = 0; //Check whether target reached. @@ -179,7 +179,7 @@ // Update next position nNextRow = nRow + 1; - if (nNextRow >= PatternSize[nPattern]) + if (nNextRow >= Patterns[nPattern].GetNumRows()) { nNextPattern = nCurrentPattern + 1; nNextRow = 0; @@ -236,7 +236,7 @@ patternBreakOnThisRow=true; //Try to check next row for XPARAM nextRow = nullptr; - if (nRow < PatternSize[nPattern]-1) { + if (nRow < Patterns[nPattern].GetNumRows()-1) { nextRow = Patterns[nPattern] + (nRow+1) * m_nChannels + nChn; } if (nextRow && nextRow->command == CMD_XPARAM) { @@ -1652,7 +1652,7 @@ // -> CODE#0010 // -> DESC="add extended parameter mechanism to pattern effects" m = NULL; - if (m_nRow < PatternSize[m_nPattern]-1) { + if (m_nRow < Patterns[m_nPattern].GetNumRows()-1) { m = Patterns[m_nPattern] + (m_nRow+1) * m_nChannels + nChn; } if (m && m->command == CMD_XPARAM) { @@ -1927,7 +1927,7 @@ // Pattern Break case CMD_PATTERNBREAK: m = NULL; - if (m_nRow < PatternSize[m_nPattern]-1) { + if (m_nRow < Patterns[m_nPattern].GetNumRows()-1) { m = Patterns[m_nPattern] + (m_nRow+1) * m_nChannels + nChn; } if (m && m->command == CMD_XPARAM) { @@ -3239,12 +3239,12 @@ MODCOMMAND *m; m = NULL; - if(m_nRow < PatternSize[m_nPattern]-1) m = Patterns[m_nPattern] + (m_nRow+1) * m_nChannels + nChn; + if(m_nRow < Patterns[m_nPattern].GetNumRows()-1) m = Patterns[m_nPattern] + (m_nRow+1) * m_nChannels + nChn; if(m && m->command == CMD_XPARAM){ UINT tmp = m->param; m = NULL; - if(m_nRow < PatternSize[m_nPattern]-2) m = Patterns[m_nPattern] + (m_nRow+2) * m_nChannels + nChn; + if(m_nRow < Patterns[m_nPattern].GetNumRows()-2) m = Patterns[m_nPattern] + (m_nRow+2) * m_nChannels + nChn; if(m && m->command == CMD_XPARAM) param = (param<<16) + (tmp<<8) + m->param; else param = (param<<8) + tmp; @@ -3711,7 +3711,7 @@ const MODPATTERN& p = Patterns[nPat]; if (p) { - UINT len = PatternSize[nPat] * m_nChannels; + UINT len = Patterns[nPat].GetNumRows() * m_nChannels; UINT pos = (nOrd == nStartOrder) ? nStartRow : 0; pos *= m_nChannels; while (pos < len) @@ -3742,14 +3742,14 @@ // Treat only case with jumps in the same pattern if (nJumpOrder > nStartOrder) return TRUE; - if ((nJumpOrder < nStartOrder) || (nJumpRow >= PatternSize[nStartOrder]) + if ((nJumpOrder < nStartOrder) || (nJumpRow >= Patterns[nStartOrder].GetNumRows()) || (!(Patterns[nStartOrder])) || (nStartRow >= MAX_PATTERN_ROWS) || (nJumpRow >= MAX_PATTERN_ROWS)) return FALSE; // See if the pattern is being played backward BYTE row_hist[MAX_PATTERN_ROWS]; memset(row_hist, 0, sizeof(row_hist)); - UINT nRows = PatternSize[nStartOrder], row = nJumpRow; + UINT nRows = Patterns[nStartOrder].GetNumRows(), row = nJumpRow; if (nRows > MAX_PATTERN_ROWS) nRows = MAX_PATTERN_ROWS; row_hist[nStartRow] = TRUE; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -432,13 +432,7 @@ CTuning* MODINSTRUMENT::s_DefaultTuning = 0; -const ROWINDEX CPatternSizesMimic::operator [](const int i) const -//----------------------------------------------------------- -{ - return m_rSndFile.Patterns[i].GetNumRows(); -} - ////////////////////////////////////////////////////////// // CSoundFile @@ -448,7 +442,7 @@ CSoundFile::CSoundFile() : - PatternSize(*this), Patterns(*this), + Patterns(*this), Order(*this), m_PlaybackEventer(*this), m_pModSpecs(&ModSpecs::itEx), @@ -567,7 +561,7 @@ memset(m_MixPlugins, 0, sizeof(m_MixPlugins)); memset(&m_SongEQ, 0, sizeof(m_SongEQ)); ResetMidiCfg(); - //for (UINT npt=0; npt<Patterns.Size(); npt++) PatternSize[npt] = 64; + //for (UINT npt=0; npt<Patterns.Size(); npt++) Patterns[npt].GetNumRows() = 64; for (CHANNELINDEX nChn = 0; nChn < MAX_BASECHANNELS; nChn++) { InitChannel(nChn); @@ -1133,7 +1127,7 @@ while ((i < Order.size()) && (Order[i] != Order.GetInvalidPatIndex())) { - if (Order[i] < Patterns.Size()) max += PatternSize[Order[i]]; + if (Order[i] < Patterns.Size()) max += Patterns[Order[i]].GetNumRows(); i++; } return max; @@ -1146,7 +1140,7 @@ UINT pos = 0; for (UINT i=0; i<m_nCurrentPattern; i++) if (Order[i] < Patterns.Size()) - pos += PatternSize[Order[i]]; + pos += Patterns[Order[i]].GetNumRows(); return pos + m_nRow; } @@ -1192,14 +1186,14 @@ if (ord == Order.GetInvalidPatIndex()) break; if (ord < Patterns.Size()) { - if (nPos < (UINT)PatternSize[ord]) break; - nPos -= PatternSize[ord]; + if (nPos < (UINT)Patterns[ord].GetNumRows()) break; + nPos -= Patterns[ord].GetNumRows(); } } // Buggy position ? if ((nPattern >= Order.size()) || (Order[nPattern] >= Patterns.Size()) - || (nPos >= PatternSize[Order[nPattern]])) + || (nPos >= Patterns[Order[nPattern]].GetNumRows())) { nPos = 0; nPattern = 0; @@ -1208,7 +1202,7 @@ if ((nRow) && (Order[nPattern] < Patterns.Size())) { MODCOMMAND *p = Patterns[Order[nPattern]]; - if ((p) && (nRow < PatternSize[Order[nPattern]])) + if ((p) && (nRow < Patterns[Order[nPattern]].GetNumRows())) { BOOL bOk = FALSE; while ((!bOk) && (nRow > 0)) @@ -1380,7 +1374,7 @@ m_dwSongFlags &= ~SONG_PATTERNLOOP; } else { - if ((nRow < 0) || (nRow >= (int)PatternSize[nPat])) nRow = 0; + if ((nRow < 0) || (nRow >= (int)Patterns[nPat].GetNumRows())) nRow = 0; m_nPattern = nPat; m_nRow = m_nNextRow = nRow; m_nTickCount = m_nMusicSpeed; @@ -1396,7 +1390,7 @@ //---------------------------------------------------------------- { if ((nPat < 0) || (nPat >= Patterns.Size()) || (!Patterns[nPat])) nPat = 0; - if ((nRow < 0) || (nRow >= (int)PatternSize[nPat])) nRow = 0; + if ((nRow < 0) || (nRow >= (int)Patterns[nPat].GetNumRows())) nRow = 0; m_nPattern = nPat; m_nRow = m_nNextRow = nRow; m_nTickCount = m_nMusicSpeed; @@ -1620,7 +1614,7 @@ if (Patterns[nPat]) { MODCOMMAND *p = Patterns[nPat]; - MODCOMMAND *newp = CSoundFile::AllocatePattern(PatternSize[nPat], nRemainingChannels); + MODCOMMAND *newp = CSoundFile::AllocatePattern(Patterns[nPat].GetNumRows(), nRemainingChannels); if (!newp) { END_CRITICAL(); @@ -1628,7 +1622,7 @@ return 0; } MODCOMMAND *tmpsrc = p, *tmpdest = newp; - for (ROWINDEX nRow = 0; nRow<PatternSize[nPat]; nRow++) //Scrolling rows + for (ROWINDEX nRow = 0; nRow<Patterns[nPat].GetNumRows(); nRow++) //Scrolling rows { for (CHANNELINDEX nChn = 0; nChn < nRemainingChannels; nChn++, tmpdest++) //Scrolling channels. { @@ -2762,7 +2756,7 @@ for (UINT i=0; i<Patterns.Size(); i++) if (Patterns[i]) { MODCOMMAND *m = Patterns[i]; - for (UINT j=m_nChannels*PatternSize[i]; j; m++, j--) + for (UINT j=m_nChannels*Patterns[i].GetNumRows(); j; m++, j--) { if (m->instr == nSample && !m->IsPcNote()) return true; } @@ -2779,7 +2773,7 @@ for (UINT i=0; i<Patterns.Size(); i++) if (Patterns[i]) { MODCOMMAND *m = Patterns[i]; - for (UINT j=m_nChannels*PatternSize[i]; j; m++, j--) + for (UINT j=m_nChannels*Patterns[i].GetNumRows(); j; m++, j--) { if (m->instr == nInstr && !m->IsPcNote()) return true; } @@ -2802,7 +2796,7 @@ MODCOMMAND *p = Patterns[ipat]; if (p) { - UINT jmax = PatternSize[ipat] * m_nChannels; + UINT jmax = Patterns[ipat].GetNumRows() * m_nChannels; for (UINT j=0; j<jmax; j++, p++) { if ((p->note) && (p->note <= NOTE_MAX)) Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Sndfile.h 2010-05-30 20:46:59 UTC (rev 612) @@ -446,16 +446,6 @@ class CSoundFile; -//====================== -class CPatternSizesMimic -//====================== -{ -public: - const ROWINDEX operator[](const int i) const; - CPatternSizesMimic(const CSoundFile& csf) : m_rSndFile(csf) {} -private: - const CSoundFile& m_rSndFile; -}; //Note: These are bit indeces. MSF <-> Mod(Specific)Flag. //If changing these, ChangeModTypeTo() might need modification. @@ -592,7 +582,6 @@ MODCHANNEL Chn[MAX_CHANNELS]; // Channels MODCHANNELSETTINGS ChnSettings[MAX_BASECHANNELS]; // Channels settings CPatternContainer Patterns; // Patterns - CPatternSizesMimic PatternSize; // Mimics old PatternsSize-array(is read-only). ModSequenceSet Order; // Modsequences. Order[x] returns an index of a pattern located at order x. MODSAMPLE Samples[MAX_SAMPLES]; // Sample Headers MODINSTRUMENT *Instruments[MAX_INSTRUMENTS]; // Instrument Headers Modified: trunk/OpenMPT/soundlib/Sndmix.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndmix.cpp 2010-05-30 20:42:33 UTC (rev 611) +++ trunk/OpenMPT/soundlib/Sndmix.cpp 2010-05-30 20:46:59 UTC (rev 612) @@ -750,9 +750,9 @@ // Weird stuff? if ((m_nPattern >= Patterns.Size()) || (!Patterns[m_nPattern])) return FALSE; // Should never happen - if (m_nRow >= PatternSize[m_nPattern]) m_nRow = 0; + if (m_nRow >= Patterns[m_nPattern].GetNumRows()) m_nRow = 0; m_nNextRow = m_nRow + 1; - if (m_nNextRow >= PatternSize[m_nPattern]) + if (m_nNextRow >= Patterns[m_nPattern].GetNumRows()) { if (!(m_dwSongFlags & SONG_PATTERNLOOP)) m_nNextPattern = m_nCurrentPattern + 1; m_nNextRow = 0; @@ -1978,7 +1978,7 @@ // For now there is no difference between mute and sync mute with VSTis. if (pChn->dwFlags & (CHN_MUTE|CHN_SYNCMUTE)) return; if ((!m_nInstruments) || (m_nPattern >= Patterns.Size()) - || (m_nRow >= PatternSize[m_nPattern]) || (!Patterns[m_nPattern])) return; + || (m_nRow >= Patterns[m_nPattern].GetNumRows()) || (!Patterns[m_nPattern])) return; const MODCOMMAND::NOTE note = pChn->nRowNote; const MODCOMMAND::INSTR instr = pChn->nRowInstr; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |