From: <sv...@op...> - 2024-10-26 11:16:06
|
Author: sagamusix Date: Sat Oct 26 13:15:55 2024 New Revision: 21920 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21920 Log: Merged revision(s) 21910, 21919 from trunk/OpenMPT: [Ref] More GetNumSamples(), less m_nSamples. ........ [Imp] Pattern tab: Don't create undo steps when entering effect data into the pattern doesn't actually result in any change. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/CleanupSong.cpp branches/OpenMPT-1.31/mptrack/Ctrl_ins.cpp branches/OpenMPT-1.31/mptrack/Ctrl_pat.cpp branches/OpenMPT-1.31/mptrack/SampleGenerator.cpp branches/OpenMPT-1.31/mptrack/View_pat.cpp branches/OpenMPT-1.31/mptrack/mod2midi.cpp Modified: branches/OpenMPT-1.31/mptrack/CleanupSong.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/CleanupSong.cpp Sat Oct 26 12:09:23 2024 (r21919) +++ branches/OpenMPT-1.31/mptrack/CleanupSong.cpp Sat Oct 26 13:15:55 2024 (r21920) @@ -779,7 +779,7 @@ return false; } - for(SAMPLEINDEX smp = 1; smp <= sndFile.m_nSamples; smp++) + for(SAMPLEINDEX smp = 1; smp <= sndFile.GetNumSamples(); smp++) { ModSample &sample = sndFile.GetSample(smp); Modified: branches/OpenMPT-1.31/mptrack/Ctrl_ins.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Ctrl_ins.cpp Sat Oct 26 12:09:23 2024 (r21919) +++ branches/OpenMPT-1.31/mptrack/Ctrl_ins.cpp Sat Oct 26 13:15:55 2024 (r21920) @@ -682,11 +682,11 @@ if (c != ' ') { n = (10 * pIns->Keyboard[m_nNote] + (c - '0')) % 10000; - if ((n >= MAX_SAMPLES) || ((sndFile.m_nSamples < 1000) && (n >= 1000))) + if ((n >= MAX_SAMPLES) || ((sndFile.GetNumSamples() < 1000) && (n >= 1000))) n = (n % 1000); - if ((n >= MAX_SAMPLES) || ((sndFile.m_nSamples < 100) && (n >= 100))) + if ((n >= MAX_SAMPLES) || ((sndFile.GetNumSamples() < 100) && (n >= 100))) n = (n % 100); - else if ((n > 31) && (sndFile.m_nSamples < 32) && (n % 10)) + else if ((n > 31) && (sndFile.GetNumSamples() < 32) && (n % 10)) n = (n % 10); } Modified: branches/OpenMPT-1.31/mptrack/Ctrl_pat.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Ctrl_pat.cpp Sat Oct 26 12:09:23 2024 (r21919) +++ branches/OpenMPT-1.31/mptrack/Ctrl_pat.cpp Sat Oct 26 13:15:55 2024 (r21920) @@ -686,7 +686,7 @@ if(n >= 0) { n = static_cast<int>(m_CbnInstrument.GetItemData(n)); - int nmax = (m_sndFile.m_nInstruments) ? m_sndFile.m_nInstruments : m_sndFile.m_nSamples; + int nmax = m_sndFile.GetNumInstruments() ? m_sndFile.GetNumInstruments() : m_sndFile.GetNumSamples(); if((n >= 0) && (n <= nmax) && (n != (int)m_nInstrument)) { m_nInstrument = static_cast<INSTRUMENTINDEX>(n); Modified: branches/OpenMPT-1.31/mptrack/SampleGenerator.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/SampleGenerator.cpp Sat Oct 26 12:09:23 2024 (r21919) +++ branches/OpenMPT-1.31/mptrack/SampleGenerator.cpp Sat Oct 26 13:15:55 2024 (r21920) @@ -110,7 +110,7 @@ // Actual render loop. bool CSampleGenerator::RenderSample(CSoundFile *pSndFile, SAMPLEINDEX nSample) { - if(!CanRenderSample() || !TestExpression() || (pSndFile == nullptr) || (nSample < 1) || (nSample > pSndFile->m_nSamples)) return false; + if(!CanRenderSample() || !TestExpression() || (pSndFile == nullptr) || (nSample < 1) || (nSample > pSndFile->GetNumSamples())) return false; // allocate a new buffer sample_buffer = (mu::value_type *)malloc(sample_length * sizeof(mu::value_type)); Modified: branches/OpenMPT-1.31/mptrack/View_pat.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/View_pat.cpp Sat Oct 26 12:09:23 2024 (r21919) +++ branches/OpenMPT-1.31/mptrack/View_pat.cpp Sat Oct 26 13:15:55 2024 (r21920) @@ -4811,20 +4811,18 @@ if(pSndFile == nullptr || !IsEditingEnabled_bmsg()) return; - PrepareUndo(m_Cursor, m_Cursor, "Volume Entry"); - ModCommand &target = GetCursorCommand(); - ModCommand oldcmd = target; // This is the command we are about to overwrite + ModCommand m = target; // This is the command we are about to overwrite const bool isDigit = (v >= 0) && (v <= 9); - if(target.IsPcNote()) + if(m.IsPcNote()) { - if(EnterPCNoteValue(v, target, &ModCommand::GetValueVolCol, &ModCommand::SetValueVolCol)) - m_PCNoteEditMemory = target; + if(EnterPCNoteValue(v, m, &ModCommand::GetValueVolCol, &ModCommand::SetValueVolCol)) + m_PCNoteEditMemory = m; } else { - ModCommand::VOLCMD volcmd = target.volcmd; - uint16 vol = target.vol; + ModCommand::VOLCMD volcmd = m.volcmd; + uint16 vol = m.vol; if(isDigit) { vol = ((vol * 10) + v) % 100; @@ -4849,7 +4847,7 @@ case kcSetVolumeITPortaDown: volcmd = VOLCMD_PORTADOWN; break; case kcSetVolumeITOffset: volcmd = VOLCMD_OFFSET; break; } - if(target.volcmd == VOLCMD_NONE && volcmd == m_cmdOld.volcmd) + if(m.volcmd == VOLCMD_NONE && volcmd == m_cmdOld.volcmd) { vol = m_cmdOld.vol; } @@ -4871,22 +4869,23 @@ vol %= 10; if(pSndFile->GetModSpecifications().HasVolCommand(volcmd)) { - m_cmdOld.volcmd = target.volcmd = volcmd; - m_cmdOld.vol = target.vol = static_cast<ModCommand::VOL>(vol); + m_cmdOld.volcmd = m.volcmd = volcmd; + m_cmdOld.vol = m.vol = static_cast<ModCommand::VOL>(vol); } } SetSelToCursor(); - if(oldcmd != target) + if(m != target) { + PrepareUndo(m_Cursor, m_Cursor, "Volume Entry"); SetModified(false); InvalidateCell(m_Cursor); UpdateIndicator(); } // Cursor step for command letter - if(!target.IsPcNote() && !isDigit && m_nSpacing > 0 && !IsLiveRecord() && TrackerSettings::Instance().patternStepCommands) + if(!m.IsPcNote() && !isDigit && m_nSpacing > 0 && !IsLiveRecord() && TrackerSettings::Instance().patternStepCommands) { if(m_Cursor.GetRow() + m_nSpacing < pSndFile->Patterns[m_nPattern].GetNumRows() || (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_CONTSCROLL)) { @@ -4917,52 +4916,52 @@ } ModCommand &target = GetCursorCommand(); - ModCommand oldcmd = target; // This is the command we are about to overwrite - - PrepareUndo(m_Cursor, m_Cursor, "Effect Entry"); + ModCommand m = target; - if(target.IsPcNote()) + if(m.IsPcNote()) { - if(EnterPCNoteValue(c, target, &ModCommand::GetValueEffectCol, &ModCommand::SetValueEffectCol)) - m_PCNoteEditMemory = target; + if(EnterPCNoteValue(c, m, &ModCommand::GetValueEffectCol, &ModCommand::SetValueEffectCol)) + m_PCNoteEditMemory = m; } else if(pSndFile->GetModSpecifications().HasCommand(c)) { if(c != CMD_NONE) { - if((c == m_cmdOld.command) && (!target.param) && (target.command == CMD_NONE)) + if((c == m_cmdOld.command) && (!m.param) && (m.command == CMD_NONE)) { - target.param = m_cmdOld.param; + m.param = m_cmdOld.param; } else { m_cmdOld.param = 0; } m_cmdOld.command = c; } - target.command = c; + m.command = c; if(v >= 0) { - target.param = static_cast<ModCommand::PARAM>(v); + m.param = static_cast<ModCommand::PARAM>(v); } // Check for MOD/XM Speed/Tempo command if((pSndFile->GetType() & (MOD_TYPE_MOD | MOD_TYPE_XM)) - && (target.command == CMD_SPEED || target.command == CMD_TEMPO)) + && (m.command == CMD_SPEED || m.command == CMD_TEMPO)) { - target.command = static_cast<ModCommand::COMMAND>((target.param <= pSndFile->GetModSpecifications().speedMax) ? CMD_SPEED : CMD_TEMPO); + m.command = static_cast<ModCommand::COMMAND>((m.param <= pSndFile->GetModSpecifications().speedMax) ? CMD_SPEED : CMD_TEMPO); } } SetSelToCursor(); - if(oldcmd != target) + if(m != target) { + PrepareUndo(m_Cursor, m_Cursor, "Effect Entry"); + target = m; SetModified(false); InvalidateCell(m_Cursor); UpdateIndicator(); } // Cursor step for command letter - if(!target.IsPcNote() && m_nSpacing > 0 && !IsLiveRecord() && TrackerSettings::Instance().patternStepCommands) + if(!m.IsPcNote() && m_nSpacing > 0 && !IsLiveRecord() && TrackerSettings::Instance().patternStepCommands) { if(m_Cursor.GetRow() + m_nSpacing < pSndFile->Patterns[m_nPattern].GetNumRows() || (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_CONTSCROLL)) { @@ -4983,35 +4982,34 @@ } ModCommand &target = GetCursorCommand(); - ModCommand oldcmd = target; // This is the command we are about to overwrite + ModCommand m = target; - PrepareUndo(m_Cursor, m_Cursor, "Parameter Entry"); - - if(target.IsPcNote()) + if(m.IsPcNote()) { - if(EnterPCNoteValue(v, target, &ModCommand::GetValueEffectCol, &ModCommand::SetValueEffectCol)) - m_PCNoteEditMemory = target; + if(EnterPCNoteValue(v, m, &ModCommand::GetValueEffectCol, &ModCommand::SetValueEffectCol)) + m_PCNoteEditMemory = m; } else { - target.param = static_cast<ModCommand::PARAM>((target.param << 4) | v); - if(target.command == m_cmdOld.command) + m.param = static_cast<ModCommand::PARAM>((m.param << 4) | v); + if(m.command == m_cmdOld.command) { - m_cmdOld.param = target.param; + m_cmdOld.param = m.param; } // Check for MOD/XM Speed/Tempo command if((pSndFile->GetType() & (MOD_TYPE_MOD | MOD_TYPE_XM)) - && (target.command == CMD_SPEED || target.command == CMD_TEMPO)) + && (m.command == CMD_SPEED || m.command == CMD_TEMPO)) { - target.command = static_cast<ModCommand::COMMAND>((target.param <= pSndFile->GetModSpecifications().speedMax) ? CMD_SPEED : CMD_TEMPO); + m.command = static_cast<ModCommand::COMMAND>((m.param <= pSndFile->GetModSpecifications().speedMax) ? CMD_SPEED : CMD_TEMPO); } } SetSelToCursor(); - if(target != oldcmd) + if(m != target) { + PrepareUndo(m_Cursor, m_Cursor, "Parameter Entry"); SetModified(false); InvalidateCell(m_Cursor); UpdateIndicator(); @@ -5235,7 +5233,7 @@ Limit(note, NOTE_MIN, NOTE_MAX); TempEnterNote(static_cast<ModCommand::NOTE>(note)); // Memorize note for key-up - ASSERT(size_t(val) < m_octaveKeyMemory.size()); + MPT_ASSERT(size_t(val) < m_octaveKeyMemory.size()); m_octaveKeyMemory[val] = target.note; } } @@ -5244,7 +5242,7 @@ // Stop note that has been triggered by entering an octave in the pattern. void CViewPattern::TempStopOctave(int val) { - ASSERT(size_t(val) < m_octaveKeyMemory.size()); + MPT_ASSERT(size_t(val) < m_octaveKeyMemory.size()); if(m_octaveKeyMemory[val] != NOTE_NONE) { TempStopNote(m_octaveKeyMemory[val]); @@ -5262,13 +5260,11 @@ return; } - PrepareUndo(m_Cursor, m_Cursor, "Instrument Entry"); - ModCommand &target = GetCursorCommand(); - ModCommand oldcmd = target; // This is the command we are about to overwrite + ModCommand m = target; // This is the command we are about to overwrite - UINT instr = target.instr, nTotalMax, nTempMax; - if(target.IsPcNote()) // this is a plugin index + UINT instr = m.instr, nTotalMax, nTempMax; + if(m.IsPcNote()) // this is a plugin index { nTotalMax = MAX_MIXPLUGINS + 1; nTempMax = MAX_MIXPLUGINS + 1; @@ -5288,20 +5284,21 @@ if(nTempMax < 100) // if we're using samples & have less than 100 samples instr = instr % 100; // or if we're using instruments and have less than 100 instruments // --> ensure the entered instrument value is less than 100. - target.instr = static_cast<ModCommand::INSTR>(instr); + m.instr = static_cast<ModCommand::INSTR>(instr); SetSelToCursor(); - if(target != oldcmd) + if(m != target) { + PrepareUndo(m_Cursor, m_Cursor, "Instrument Entry"); SetModified(false); InvalidateCell(m_Cursor); UpdateIndicator(); } - if(target.IsPcNote()) + if(m.IsPcNote()) { - m_PCNoteEditMemory = target; + m_PCNoteEditMemory = m; } } Modified: branches/OpenMPT-1.31/mptrack/mod2midi.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/mod2midi.cpp Sat Oct 26 12:09:23 2024 (r21919) +++ branches/OpenMPT-1.31/mptrack/mod2midi.cpp Sat Oct 26 13:15:55 2024 (r21920) @@ -451,7 +451,7 @@ } if(!m_wasInstrumentMode) { - m_sndFile.m_nInstruments = std::min<INSTRUMENTINDEX>(m_sndFile.m_nSamples, MAX_INSTRUMENTS - 1u); + m_sndFile.m_nInstruments = std::min<INSTRUMENTINDEX>(m_sndFile.GetNumSamples(), MAX_INSTRUMENTS - 1u); } m_tracks.reserve(m_sndFile.GetNumInstruments() + 1); |