From: <rel...@us...> - 2009-06-24 15:54:23
|
Revision: 275 http://modplug.svn.sourceforge.net/modplug/?rev=275&view=rev Author: relabsoluness Date: 2009-06-24 15:54:18 +0000 (Wed, 24 Jun 2009) Log Message: ----------- (Patch from Jojo) . Playback: 4-Bit panning didn't disable surround sound (merge edit: now uses compatibility flag for IT/MPTM/XM). Modified Paths: -------------- trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-06-23 19:53:05 UTC (rev 274) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-06-24 15:54:18 UTC (rev 275) @@ -2277,7 +2277,16 @@ // E7x: Set Tremolo WaveForm case 0x70: pChn->nTremoloType = param & 0x07; break; // E8x: Set 4-bit Panning - case 0x80: if (!m_nTickCount) { pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP; } break; + //case 0x80: if (!m_nTickCount) { pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP; } break; + case 0x80: if (!m_nTickCount) + { + if( TypeIsIT_MPT_XM() == false || GetModFlag(MSF_COMPATIBLE_PLAY) ) + { + if (!(m_dwSongFlags & SONG_SURROUNDPAN)) pChn->dwFlags &= ~CHN_SURROUND; + } + pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP; + } + break; // E9x: Retrig case 0x90: RetrigNote(nChn, param); break; // EAx: Fine Volume Up @@ -2352,7 +2361,16 @@ } break; // S8x: Set 4-bit Panning - case 0x80: if (!m_nTickCount) { pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP; } break; + //case 0x80: if (!m_nTickCount) { pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP; } break; + case 0x80: if (!m_nTickCount) + { + if( TypeIsIT_MPT_XM() == false || GetModFlag(MSF_COMPATIBLE_PLAY) ) + { + if (!(m_dwSongFlags & SONG_SURROUNDPAN)) pChn->dwFlags &= ~CHN_SURROUND; + } + pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP; + } + break; // S9x: Set Surround case 0x90: ExtendedChannelEffect(pChn, param & 0x0F); break; // SAx: Set 64k Offset This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |