From: <sag...@us...> - 2010-05-22 15:56:56
|
Revision: 605 http://modplug.svn.sourceforge.net/modplug/?rev=605&view=rev Author: saga-games Date: 2010-05-22 15:56:50 +0000 (Sat, 22 May 2010) Log Message: ----------- [Fix] Even if an instrument was muted, a VSTi assigned to this instrument was still playing in the pattern. This also fixes a problem with wave export + instrument mode. Modified Paths: -------------- trunk/OpenMPT/packageTemplate/History.txt trunk/OpenMPT/soundlib/Sndmix.cpp Modified: trunk/OpenMPT/packageTemplate/History.txt =================================================================== --- trunk/OpenMPT/packageTemplate/History.txt 2010-05-22 15:27:35 UTC (rev 604) +++ trunk/OpenMPT/packageTemplate/History.txt 2010-05-22 15:56:50 UTC (rev 605) @@ -9,7 +9,7 @@ [Var]: other (tx XYZ): thanks to XYZ for telling us about the bug -Changes from revisions [476, 604] +Changes from revisions [476, 605] --------------------------------- General tab @@ -100,6 +100,7 @@ [Imp] <Jojo> VST Editor: Added shortcuts for "toggle bypass", "pass keys to plug" and "record params to pattern" [Mod] <Jojo> VST Editor: Changed number of patches per sub menu from 100 to 128. Now, one sub menu equals ones MIDI bank (more logical) [Fix] <Jojo> VST Editor: Preset names starting with ' ' >= char > 'A' were cropped (i.e. "123ABC" was displayed as "ABC") + [Fix] <Jojo> Even if an instrument was muted, a VSTi assigned to this instrument was still playing in the pattern. [Fix] <re> Some VSTs that previously wouldn't load might now load fine. [Fix] <re> Returned host CanDo-values were wrong (since pre RC1 era). Modified: trunk/OpenMPT/soundlib/Sndmix.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndmix.cpp 2010-05-22 15:27:35 UTC (rev 604) +++ trunk/OpenMPT/soundlib/Sndmix.cpp 2010-05-22 15:56:50 UTC (rev 605) @@ -2000,15 +2000,24 @@ if ((instr) && (instr < MAX_INSTRUMENTS)) pIns = Instruments[instr]; - if ((pIns) && (pIns->nMidiChannel >= 1) && (pIns->nMidiChannel <= 16)) { - UINT nPlugin = GetBestPlugin(nChn, PRIORITISE_INSTRUMENT, RESPECT_MUTES); - if ((nPlugin) && (nPlugin <= MAX_MIXPLUGINS)) { - pPlugin = m_MixPlugins[nPlugin-1].pMixPlugin; + if (pIns) + { + // Check instrument plugins + if ((pIns->nMidiChannel >= 1) && (pIns->nMidiChannel <= 16)) + { + UINT nPlugin = GetBestPlugin(nChn, PRIORITISE_INSTRUMENT, RESPECT_MUTES); + if ((nPlugin) && (nPlugin <= MAX_MIXPLUGINS)) + { + pPlugin = m_MixPlugins[nPlugin-1].pMixPlugin; + } } + + // Muted instrument? + if (pIns && (pIns->dwFlags & INS_MUTE)) return; } - //Do couldn't find a valid plugin - if (pPlugin == NULL) return; + // Do couldn't find a valid plugin + if (pPlugin == nullptr) return; if(GetModFlag(MSF_MIDICC_BUGEMULATION)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |