From: <re...@us...> - 2007-05-13 11:17:22
|
Revision: 184 http://svn.sourceforge.net/modplug/?rev=184&view=rev Author: rewbs Date: 2007-05-13 04:17:15 -0700 (Sun, 13 May 2007) Log Message: ----------- v1.17.02.47 . <pelya> Save pattern scrollbar position when switching to other tabs . <pelya> If the cursor is moved but it is not on screen, move both horizontal and vertical scrollbars to make it visible. . <rewbs> Fix saturation on old modules (introduced in 1.17.02.46). Loading tracks with no saved mixlevel setting defaults to 'original'. Starting new IT, MPTM, ITP or XM defaults to '117RC3'. Starting new MOD or S3M defaults to 'original'. . <rewbs> Tree view FX list now starts with FX01 instead of FX00. / <Relabs> Pattern skipping behavior returned to that of .45 . <pelya & rewbs> intenal: ifdefs for compilation on vs2005 . <Relabs> intenal: VS Edit&Continue fix (gone broken in 'RC3'branch) / <Relabs> Minor modifications(cleanup of channel state reset code, removed unused orderundo-vector.) Modified Paths: -------------- trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Moddoc.h trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp trunk/OpenMPT/mptrack/SoundFilePlayConfig.h trunk/OpenMPT/mptrack/TuningDialog.h trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_pat.h trunk/OpenMPT/mptrack/View_tre.cpp trunk/OpenMPT/mptrack/bin/mptrack.exe trunk/OpenMPT/mptrack/bin/version trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/mptrack.vcproj trunk/OpenMPT/mptrack/patternContainer.cpp trunk/OpenMPT/packageTemplate/History.txt trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h trunk/OpenMPT/soundlib/mod_specifications.h Added Paths: ----------- trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -101,7 +101,8 @@ MODCHANNEL *p = m_SndFile.Chn; if (((DWORD)p) & 7) Log("MODCHANNEL is not aligned (0x%08X)\n", p); #endif - +// Fix: save pattern scrollbar position when switching to other tab + m_szOldPatternScrollbarsPos = CSize(-10,-10); // -> CODE#0015 // -> DESC="channels management dlg" ReinitRecordState(); @@ -134,20 +135,22 @@ m_SndFile.Create(NULL, this, 0); m_SndFile.ChangeModTypeTo(CTrackApp::GetDefaultDocType()); -// -> CODE#0023 -// -> DESC="IT project files (.itp)" - if(CTrackApp::IsProject()) m_SndFile.m_dwSongFlags |= SONG_ITPROJECT; -// -! NEW_FEATURE#0023 + if(CTrackApp::IsProject()) { + m_SndFile.m_dwSongFlags |= SONG_ITPROJECT; + } - if (m_SndFile.m_nType & (MOD_TYPE_XM|MOD_TYPE_IT | MOD_TYPE_MPT)) m_SndFile.m_dwSongFlags |= SONG_LINEARSLIDES; - //rewbs.MacroGUI: enable embedded macros by default. - if (m_SndFile.m_nType & (MOD_TYPE_XM|MOD_TYPE_IT | MOD_TYPE_MPT)) m_SndFile.m_dwSongFlags |= SONG_EMBEDMIDICFG; + if (m_SndFile.m_nType & (MOD_TYPE_XM | MOD_TYPE_IT | MOD_TYPE_MPT)) { + m_SndFile.m_dwSongFlags |= SONG_LINEARSLIDES; + m_SndFile.m_dwSongFlags |= SONG_EMBEDMIDICFG; + } + + // Refresh mix levels now that the correct mod type has been set + m_SndFile.m_nMixLevels=m_SndFile.GetModSpecifications()->defaultMixLevels; + m_SndFile.m_pConfig->SetMixLevels(m_SndFile.m_nMixLevels); + theApp.GetDefaultMidiMacro(&m_SndFile.m_MidiCfg); -// -> CODE#0015 -// -> DESC="channels management dlg" ReinitRecordState(); -// -! NEW_FEATURE#0015 InitializeMod(); SetModifiedFlag(FALSE); return TRUE; @@ -3119,3 +3122,4 @@ SetModified(); } } + Modified: trunk/OpenMPT/mptrack/Moddoc.h =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.h 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/Moddoc.h 2007-05-13 11:17:15 UTC (rev 184) @@ -219,9 +219,14 @@ BOOL RemoveChannels(BOOL bChnMask[MAX_CHANNELS]); bool m_bHasValidPath; //becomes true if document is loaded or saved. +// Fix: save pattern scrollbar position when switching to other tab + CSize GetOldPatternScrollbarsPos() const { return m_szOldPatternScrollbarsPos; }; + void SetOldPatternScrollbarsPos( CSize s ){ m_szOldPatternScrollbarsPos = s; }; // protected members protected: + CSize m_szOldPatternScrollbarsPos; + BOOL InitializeMod(); void* GetChildFrame(); //rewbs.customKeys Modified: trunk/OpenMPT/mptrack/Mptrack.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/Mptrack.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -858,7 +858,7 @@ CString localVersion = CMainFrame::GetFullVersionString(); if (remoteVersion > localVersion) { CString message; - message.Format("New version available: %s (you are using %). Would you like more information?", remoteVersion, localVersion); + message.Format("New version available: %s (you are using %s). Would you like more information?", remoteVersion, localVersion); if (AfxMessageBox(message, MB_ICONQUESTION|MB_YESNO ) == IDYES) { CString URL; URL.Format("http://openmpt.xwiki.com/xwiki/bin/view/Development/Builds?currentVersion=%s", localVersion); @@ -1577,16 +1577,17 @@ MPC forums: http://lpchip.com/modplug/\r\n\ Robin Fernandes: mailto:mo...@so...\r\n\r\n\ Updates:\r\n\ -http://lpchip.com/modplug/viewtopic.php?t=18"); +http://modplug.sourceforge.net/builds/#dev"); char *pArrCredit = { "OpenMPT / Modplug Tracker|" - "Copyright \xA9 2004-2005 GPL|" + "Copyright \xA9 2004-2007 GPL|" "Copyright \xA9 1997-2003 Olivier Lapicque (ol...@mo...)|" "|" - "Development:|" - "Robin Fernandes: mo...@so... (2004-2006)|" - "rel...@us... (2005-2006)|" + "Contributors:|" + "Robin Fernandes: ro...@so... (2004-2007)|" + "Ahti Leppan: rel...@us... (2005-2007)|" + "Sergiy Pylypenko: x.p...@gm... (2007)|" "Eric Chavanon: co...@er... (2004-2005)|" "Trevor Nunes: mo...@pl... (2004)|" "Olivier Lapicque: ol...@mo... (1997-2003)|" @@ -1605,8 +1606,8 @@ "http://tinyurl.com/4yze8||" "...and to the following for ideas, testing and support:|" "LPChip, Ganja, Diamond, Nofold, Goor00,|" - "Georg, Skilletaudio, Squirrel Havoc, Snu,|" - "Anboi, Sam Zen, BooT-SectoR-ViruZ, 33, Waxhead,|" + "Georg, Skilletaudio, Squirrel Havoc, Snu, Anboi,|" + "Sam Zen, BooT-SectoR-ViruZ, 33, Waxhead, Jojo,|" "all at the MPC forums.|" "||||||" }; Modified: trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp =================================================================== --- trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -1,17 +1,14 @@ #include "stdafx.h" #include ".\soundfileplayconfig.h" -CSoundFilePlayConfig::CSoundFilePlayConfig(void) -{ - SetPluginMixLevels(mixLevels_117RC3); +CSoundFilePlayConfig::CSoundFilePlayConfig(void) { setVSTiVolume(1.0f); } -CSoundFilePlayConfig::~CSoundFilePlayConfig(void) -{ +CSoundFilePlayConfig::~CSoundFilePlayConfig(void) { } -void CSoundFilePlayConfig::SetPluginMixLevels(int mixLevelType) { +void CSoundFilePlayConfig::SetMixLevels(int mixLevelType) { switch (mixLevelType) { // Olivier's version gives us floats in [-0.5; 0.5] and slightly saturates VSTis. @@ -119,7 +116,6 @@ void CSoundFilePlayConfig::setVSTiVolume(float inVSTiVolume) { m_VSTiVolume = inVSTiVolume; - m_VSTiGainFactor = m_VSTiAttenuation*m_VSTiVolume; } float CSoundFilePlayConfig::getVSTiAttenuation() { @@ -127,8 +123,7 @@ } void CSoundFilePlayConfig::setVSTiAttenuation(float inVSTiAttenuation) { - m_VSTiAttenuation=inVSTiAttenuation; - m_VSTiGainFactor = m_VSTiAttenuation*m_VSTiVolume; + m_VSTiAttenuation = inVSTiAttenuation; } float CSoundFilePlayConfig::getIntToFloat() { Modified: trunk/OpenMPT/mptrack/SoundFilePlayConfig.h =================================================================== --- trunk/OpenMPT/mptrack/SoundFilePlayConfig.h 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/SoundFilePlayConfig.h 2007-05-13 11:17:15 UTC (rev 184) @@ -27,7 +27,7 @@ CSoundFilePlayConfig(void); ~CSoundFilePlayConfig(void); - void SetPluginMixLevels(int mixLevelType); + void SetMixLevels(int mixLevelType); //getters/setters float getIntToFloat(); @@ -72,7 +72,6 @@ float m_FloatToInt; float m_VSTiAttenuation; float m_VSTiVolume; - float m_VSTiGainFactor; // always m_VSTiAttenuation * m_VSTiVolume. No public setter. float m_normalSamplePreAmp; float m_normalVSTiVol; Modified: trunk/OpenMPT/mptrack/TuningDialog.h =================================================================== --- trunk/OpenMPT/mptrack/TuningDialog.h 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/TuningDialog.h 2007-05-13 11:17:15 UTC (rev 184) @@ -83,10 +83,10 @@ } private: + //Elements are collected to two arrays so that elements with the + //same index are mapped to each other. vector<T1> m_T1; vector<T2> m_T2; - //Elements are collected to two arrays so that elements with the - //same index are mapped to each other. T1 m_NotFoundT1; T2 m_NotFoundT2; Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -229,8 +229,6 @@ CModDoc *pModDoc = GetDocument(); if (!pModDoc) return FALSE; pSndFile = pModDoc->GetSoundFile(); - CRect rect; - UINT yofs = GetYScrollPos(); if ((bWrap) && (pSndFile->PatternSize[m_nPattern])) { @@ -295,43 +293,11 @@ //end rewbs.fix3168 if ((row >= pSndFile->PatternSize[m_nPattern]) || (!m_szCell.cy)) return FALSE; - GetClientRect(&rect); - rect.top += m_szHeader.cy; - int numrows = (rect.bottom - rect.top - 1) / m_szCell.cy; - if (numrows < 1) numrows = 1; - if (m_nMidRow) - { - UINT newofs = row; - InvalidateRow(); - if (newofs != yofs) - { - CSize sz; - sz.cx = 0; - sz.cy = (int)(newofs - yofs) * m_szCell.cy; - OnScrollBy(sz, TRUE); - } - m_nRow = row; - InvalidateRow(); - } else - { - InvalidateRow(); - if (row < yofs) - { - CSize sz; - sz.cx = 0; - sz.cy = (int)(row - yofs) * m_szCell.cy; - OnScrollBy(sz, TRUE); - } else - if (row > yofs + (UINT)numrows - 1) - { - CSize sz; - sz.cx = 0; - sz.cy = (int)(row - yofs - numrows + 1) * m_szCell.cy; - OnScrollBy(sz, TRUE); - } - m_nRow = row; - InvalidateRow(); - } + // Fix: If cursor isn't on screen move both scrollbars to make it visible + InvalidateRow(); + m_nRow = row; + UpdateScrollbarPositions(); //UpdateScrollbarPositions( false ); // default behavior is to move only vertical scrollbar + InvalidateRow(); int sel = m_dwCursor | (m_nRow << 16); int sel0 = sel; if ((m_dwStatus & (PATSTATUS_KEYDRAGSEL|PATSTATUS_MOUSEDRAGSEL)) @@ -373,34 +339,90 @@ if ((m_dwStatus & (PATSTATUS_KEYDRAGSEL|PATSTATUS_MOUSEDRAGSEL)) && (!(m_dwStatus & PATSTATUS_DRAGNDROPEDIT))) sel0 = m_dwStartSel; SetCurSel(sel0, sel); - int xofs = GetXScrollPos(); - int nchn = ncol >> 3; - if (nchn < xofs) + // Fix: If cursor isn't on screen move both scrollbars to make it visible + UpdateScrollbarPositions(); + UpdateIndicator(); + return TRUE; +} + +// Fix: If cursor isn't on screen move scrollbars to make it visible +// Fix: save pattern scrollbar position when switching to other tab +// Assume that m_nRow and m_dwCursor are valid +// When we switching to other tab the CViewPattern object is deleted +// and when switching back new one is created +BOOL CViewPattern::UpdateScrollbarPositions( bool UpdateHorizontalScrollbar ) +{ +// HACK - after new CViewPattern object created SetCurrentRow() and SetCurrentColumn() are called - +// just skip first two calls of UpdateScrollbarPositions() if pModDoc->GetOldPatternScrollbarsPos() is valid + CModDoc *pModDoc = GetDocument(); + if (pModDoc) { - CSize size(0,0); - size.cx = nchn * m_szCell.cx - GetScrollPos(SB_HORZ); - UpdateWindow(); - if (OnScrollBy(size, TRUE)) UpdateWindow(); + CSize scroll = pModDoc->GetOldPatternScrollbarsPos(); + if( scroll.cx >= 0 ) + { + OnScrollBy( scroll ); + scroll.cx = -1; + pModDoc->SetOldPatternScrollbarsPos( scroll ); + return TRUE; + } else + if( scroll.cx >= -1 ) + { + scroll.cx = -2; + pModDoc->SetOldPatternScrollbarsPos( scroll ); + return TRUE; + } + } + CSize scroll(0,0); + UINT row = GetCurrentRow(); + UINT yofs = GetYScrollPos(); + CRect rect; + GetClientRect(&rect); + rect.top += m_szHeader.cy; + int numrows = (rect.bottom - rect.top - 1) / m_szCell.cy; + if (numrows < 1) numrows = 1; + if (m_nMidRow) + { + if (row != yofs) + { + scroll.cy = (int)(row - yofs) * m_szCell.cy; + } } else - if (nchn > xofs) { - CRect rect; - GetClientRect(&rect); - UINT nw = GetColumnWidth(); - int maxcol = (rect.right - m_szHeader.cx) / nw; - if ((nchn >= (xofs+maxcol)) && (maxcol >= 0)) + if (row < yofs) { - CSize size(0,0); - size.cx = (nchn - maxcol + 1) * m_szCell.cx - GetScrollPos(SB_HORZ); - UpdateWindow(); - if (OnScrollBy(size, TRUE)) UpdateWindow(); + scroll.cy = (int)(row - yofs) * m_szCell.cy; + } else + if (row > yofs + (UINT)numrows - 1) + { + scroll.cy = (int)(row - yofs - numrows + 1) * m_szCell.cy; } } - UpdateIndicator(); + + if( UpdateHorizontalScrollbar ) + { + UINT ncol = GetCurrentColumn(); + UINT xofs = GetXScrollPos(); + int nchn = ncol >> 3; + if (nchn < xofs) + { + scroll.cx = (int)(nchn - xofs) * m_szCell.cx; + } else + if (nchn > xofs) + { + int maxcol = (rect.right - m_szHeader.cx) / m_szCell.cx; + if ((nchn >= (xofs+maxcol)) && (maxcol >= 0)) + { + scroll.cx = (int)(nchn - xofs - maxcol + 1) * m_szCell.cx; + } + } + } + if( scroll.cx != 0 || scroll.cy != 0 ) + { + OnScrollBy(scroll, TRUE); + } return TRUE; } - DWORD CViewPattern::GetDragItem(CPoint point, LPRECT lpRect) //---------------------------------------------------------- { @@ -622,6 +644,13 @@ void CViewPattern::OnDestroy() //---------------------------- { +// Fix: save pattern scrollbar position when switching to other tab +// When we switching to other tab the CViewPattern object is deleted + CModDoc *pModDoc = GetDocument(); + if (pModDoc) + { + pModDoc->SetOldPatternScrollbarsPos(CSize(m_nXScroll*m_szCell.cx, m_nYScroll*m_szCell.cy)); + }; if (m_pEffectVis) { m_pEffectVis->DoClose(); delete m_pEffectVis; @@ -4887,3 +4916,4 @@ + Modified: trunk/OpenMPT/mptrack/View_pat.h =================================================================== --- trunk/OpenMPT/mptrack/View_pat.h 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/View_pat.h 2007-05-13 11:17:15 UTC (rev 184) @@ -153,6 +153,8 @@ BOOL SetCurrentColumn(UINT ncol); BOOL DragToSel(DWORD dwPos, BOOL bScroll, BOOL bNoMove=FALSE); BOOL SetPlayCursor(UINT nPat, UINT nRow); +// Fix: If cursor isn't on screen move scrollbars to make it visible + BOOL UpdateScrollbarPositions( bool UpdateHorizontalScrollbar=true ); // -> CODE#0014 // -> DESC="vst wet/dry slider" // BOOL EnterNote(UINT nNote, UINT nIns=0, BOOL bCheck=FALSE, int vol=-1, BOOL bMultiCh=FALSE); @@ -351,3 +353,4 @@ #endif + Modified: trunk/OpenMPT/mptrack/View_tre.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_tre.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/View_tre.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -672,7 +672,7 @@ { pInfo->hEffects = InsertItem("Plugins", IMAGE_FOLDER, IMAGE_FOLDER, pInfo->hSong, TVI_LAST); } - wsprintf(s, "FX%d: %s", iFx, pPlugin->Info.szName); + wsprintf(s, "FX%d: %s", iFx+1, pPlugin->Info.szName); pInfo->tiEffects[iFx] = InsertItem(s, IMAGE_WAVEOUT, IMAGE_WAVEOUT, pInfo->hEffects, TVI_LAST); nFx++; } Modified: trunk/OpenMPT/mptrack/bin/mptrack.exe =================================================================== (Binary files differ) Modified: trunk/OpenMPT/mptrack/bin/version =================================================================== --- trunk/OpenMPT/mptrack/bin/version 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/bin/version 2007-05-13 11:17:15 UTC (rev 184) @@ -1 +1 @@ -1.17.02.46 \ No newline at end of file +1.17.02.47 \ No newline at end of file Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -384,7 +384,7 @@ sel = m_PlugMixBox.GetCurSel(); if (sel >= 0) { m_pSndFile->m_nMixLevels = m_PlugMixBox.GetItemData(sel); - m_pSndFile->m_pConfig->SetPluginMixLevels(m_pSndFile->m_nMixLevels); + m_pSndFile->m_pConfig->SetMixLevels(m_pSndFile->m_nMixLevels); m_pSndFile->RecalculateGainForAllPlugs(); } Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/mptrack.rc 2007-05-13 11:17:15 UTC (rev 184) @@ -1926,7 +1926,7 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,17,2,46 + FILEVERSION 1,17,2,47 PRODUCTVERSION 0,0,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG @@ -1944,7 +1944,7 @@ BEGIN VALUE "CompanyName", "Olivier Lapicque / OpenMPT team" VALUE "FileDescription", "OpenMPT / ModPlug Tracker" - VALUE "FileVersion", "1, 17, 2, 46" + VALUE "FileVersion", "1, 17, 2, 47" VALUE "InternalName", "Modplug Tracker" VALUE "LegalCopyright", "Copyright \xA91997-2003 Olivier Lapicque; \xA92004-2007 GPL." VALUE "LegalTrademarks", "M.O.D.P.L.U.G" Modified: trunk/OpenMPT/mptrack/mptrack.vcproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack.vcproj 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/mptrack.vcproj 2007-05-13 11:17:15 UTC (rev 184) @@ -1079,6 +1079,9 @@ RelativePath=".\tuningRatioMapWnd.h"> </File> <File + RelativePath=".\typedefs.h"> + </File> + <File RelativePath=".\view_com.h"> </File> <File Modified: trunk/OpenMPT/mptrack/patternContainer.cpp =================================================================== --- trunk/OpenMPT/mptrack/patternContainer.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/mptrack/patternContainer.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -59,10 +59,10 @@ return m_Patterns.size(); } +//NOTE: Various methods around the code are, unsurprisingly, bounded to the way things +//were handled with 0xFE and 0xFF, so changing these return values might cause problems. UINT CPatternContainer::GetInvalidIndex() const {return m_rSndFile.m_nType == MOD_TYPE_MPT ? LIMIT_UINT_MAX : 0xFF;} UINT CPatternContainer::GetIgnoreIndex() const {return m_rSndFile.m_nType == MOD_TYPE_MPT ? LIMIT_UINT_MAX-1 : 0xFE;} -//NOTE: Various methods around the code are, unsurprisingly, bounded to the way things -//were handled with 0xFE and 0xFF, so changing these return values might cause problems. UINT CPatternContainer::GetPatternNumberLimitMax() const //------------------------------------------------------- Modified: trunk/OpenMPT/packageTemplate/History.txt =================================================================== --- trunk/OpenMPT/packageTemplate/History.txt 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/packageTemplate/History.txt 2007-05-13 11:17:15 UTC (rev 184) @@ -8,6 +8,18 @@ ?: other (tx XYZ): thanks to XYZ for telling me about the bug +v1.17.02.47 + ? <rewbs> An update checker was introduced in the previous version. If you had any problems with the update notification, please report a bug. + . <pelya> Save pattern scrollbar position when switching to other tabs + . <pelya> If the cursor is moved but it is not on screen, move both horizontal and vertical scrollbars to make it visible. + . <rewbs> Fix saturation on old modules (introduced in 1.17.02.46). Loading tracks with no saved mixlevel setting defaults to 'original'. + Starting new IT, MPTM, ITP or XM defaults to '117RC3'. Starting new MOD or S3M defaults to 'original'. + . <rewbs> Tree view FX list now starts with FX01 instead of FX00. + / <Relabs> Pattern skipping behavior returned to that of .45 + . <pelya & rewbs> internal: ifdefs for compilation on vs2005 + . <Relabs> internal: VS Edit&Continue fix (gone broken in 'RC3'branch) + / <Relabs> Minor modifications(cleanup of channel state reset code, removed unused orderundo-vector.) + v1.17.02.46 + <Relabsoluness> Experimental MPTm format: --> Internally, it is still very close to the IT-based format. @@ -680,4 +692,4 @@ Questions/comments/bug reports? ------------------------------- -Visit http://www.modplug.com/forums, or write to ro...@so.... \ No newline at end of file +Visit http://modplug.sourceforge.net/forum. \ No newline at end of file Added: trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb =================================================================== --- trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb (rev 0) +++ trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2007-05-13 11:17:15 UTC (rev 184) @@ -0,0 +1,269 @@ +//-------- OpenMPT key binding definition file ------- +//-Format is: - +//- Context:Command ID:Modifiers:Key:KeypressEventType //Comments - +//---------------------------------------------------------------------- + +//----( Global Context (0) )------------ +0:1347:2:78:1 //File/New: Ctrl+N (KeyDown) +0:1346:2:79:1 //File/Open: Ctrl+O (KeyDown) +0:1349:2:83:1 //File/Save: Ctrl+S (KeyDown) +0:1030:0:116:1 //Play song/Pause song: F5 (KeyDown) +0:1031:0:119:1 //Pause song: F8 (KeyDown) +0:1375:0:27:1 //Stop Song: ESC (KeyDown) +0:1029:0:117:1 //Play song from start: F6 (KeyDown) +0:1027:0:118:5 //Play pattern from start: F7 (KeyDown|KeyHold) +0:1026:2:118:5 //Play pattern from cursor: Ctrl+F7 (KeyDown|KeyHold) +0:1376:0:120:1 //Toggle Midi Record: F9 (KeyDown) +0:1359:2:90:1 //Undo: Ctrl+Z (KeyDown) +0:1360:2:88:1 //Cut: Ctrl+X (KeyDown) +0:1361:2:67:1 //Copy: Ctrl+C (KeyDown) +0:1361:2:45:1 //Copy: Ctrl+EINFG (KeyDown) +0:1362:2:86:1 //Paste: Ctrl+V (KeyDown) +0:1362:1:45:1 //Paste: Shift+EINFG (KeyDown) +0:1364:2:53:1 //SelectAll: Ctrl+5 (KeyDown) +0:1365:2:70:1 //Find: Ctrl+F (KeyDown) +0:1366:0:114:1 //Find Next: F3 (KeyDown) +0:1021:4:71:1 //View General: Alt+G (KeyDown) +0:1022:4:80:1 //View Pattern: Alt+P (KeyDown) +0:1023:4:83:1 //View Samples: Alt+S (KeyDown) +0:1024:4:78:1 //View Instruments: Alt+N (KeyDown) +0:1025:1:120:1 //View Comments: Shift+F9 (KeyDown) +0:1368:2:113:1 //Toggle Tree View: Ctrl+F2 (KeyDown) +0:1369:2:112:1 //View Options: Ctrl+F1 (KeyDown) +0:1370:0:112:1 //Help (to do): F1 (KeyDown) +0:1032:2:111:5 //Previous instrument: Ctrl+ (ZEHNERTASTATUR) (KeyDown|KeyHold) +0:1032:2:38:5 //Previous instrument: Ctrl+NACH-OBEN (KeyDown|KeyHold) +0:1033:2:106:5 //Next instrument: Ctrl+ (ZEHNERTASTATUR) (KeyDown|KeyHold) +0:1033:2:40:5 //Next instrument: Ctrl+NACH-UNTEN (KeyDown|KeyHold) +0:1036:0:111:1 //Previous octave: (ZEHNERTASTATUR) (KeyDown) +0:1037:0:106:1 //Next octave: (ZEHNERTASTATUR) (KeyDown) +0:1034:2:37:5 //Previous order: Ctrl+NACH-LINKS (KeyDown|KeyHold) +0:1035:2:39:5 //Next order: Ctrl+NACH-RECHTS (KeyDown|KeyHold) + +//----( General Context [bottom] (1) )------------ + +//----( Pattern Context [bottom] (2) )------------ +2:1338:0:34:5 //Jump down by beat: BILD-NACH-UNTEN (KeyDown|KeyHold) +2:1339:0:33:5 //Jump up by beat: BILD-NACH-OBEN (KeyDown|KeyHold) +2:1340:6:34:5 //Snap down to beat: Ctrl+Alt+BILD-NACH-UNTEN (KeyDown|KeyHold) +2:1341:6:33:5 //Snap up to beat: Ctrl+Alt+BILD-NACH-OBEN (KeyDown|KeyHold) +2:1038:0:40:5 //Navigate down by 1 row: NACH-UNTEN (KeyDown|KeyHold) +2:1039:0:38:5 //Navigate up by 1 row: NACH-OBEN (KeyDown|KeyHold) +2:1040:0:37:5 //Navigate left: NACH-LINKS (KeyDown|KeyHold) +2:1041:0:39:5 //Navigate right: NACH-RECHTS (KeyDown|KeyHold) +2:1042:0:9:1 //Navigate to next channel: TABULATOR (KeyDown) +2:1043:1:9:1 //Navigate to previous channel: Shift+TABULATOR (KeyDown) +2:1044:0:36:1 //Go to first channel: POS1 (KeyDown) +2:1045:2:36:1 //Go to first row: Ctrl+POS1 (KeyDown) +2:1046:6:36:1 //Go to first row of first channel: Ctrl+Alt+POS1 (KeyDown) +2:1047:0:35:1 //Go to last channel: ENDE (KeyDown) +2:1048:2:35:1 //Go to last row: Ctrl+ENDE (KeyDown) +2:1049:6:35:1 //Go to last row of last channel: Ctrl+Alt+ENDE (KeyDown) +2:1050:1:16:1 //Selection key: Shift+UMSCHALT (KeyDown) +2:1011:2:76:1 //Select channel / Select all: Ctrl+L (KeyDown) +2:1003:0:13:1 //Quick copy: EINGABE (KeyDown) +2:1004:0:32:5 //Quick paste: LEER (KeyDown|KeyHold) +2:1001:2:32:1 //Enable recording: Ctrl+LEER (KeyDown) +2:1002:2:13:5 //Play row: Ctrl+EINGABE (KeyDown|KeyHold) +2:1317:4:18:1 //Set row jump on note entry: Alt (KeyDown) +2:1685:2:9:1 //Switch to order list: Ctrl+TABULATOR (KeyDown) +2:1662:6:80:1 //Toggle channel's plugin editor: Ctrl+Alt+P (KeyDown) +2:1062:0:93:1 //Show note properties: ANWENDUNG (KeyDown) +2:1007:2:81:5 //Transpose +1: Ctrl+Q (KeyDown|KeyHold) +2:1008:2:65:5 //Transpose -1: Ctrl+A (KeyDown|KeyHold) +2:1009:3:81:5 //Transpose +12: Shift+Ctrl+Q (KeyDown|KeyHold) +2:1010:3:65:5 //Transpose -12: Shift+Ctrl+A (KeyDown|KeyHold) +2:1012:2:77:1 //Amplify selection: Ctrl+M (KeyDown) +2:1014:2:74:1 //Interpolate volume: Ctrl+J (KeyDown) +2:1015:2:75:1 //Interpolate effect: Ctrl+K (KeyDown) +2:1016:4:66:1 //Open effect visualizer: Alt+B (KeyDown) +2:1013:2:73:1 //Apply current instrument: Ctrl+I (KeyDown) +2:1660:4:69:5 //Grow selection: Alt+E (KeyDown|KeyHold) +2:1661:4:68:5 //Shrink selection: Alt+D (KeyDown|KeyHold) +2:1059:2:46:1 //Clear row and step: Ctrl+ENTF (KeyDown) +2:1665:0:46:1 //Clear field and step (IT Style): ENTF (KeyDown) +2:1061:0:8:5 //Delete rows: R\xDCCK (KeyDown|KeyHold) +2:1377:2:8:5 //Delete all rows: Ctrl+R\xDCCK (KeyDown|KeyHold) +2:1378:0:45:1 //Insert Row: EINFG (KeyDown) +2:1379:2:45:1 //Insert All Rows: Ctrl+EINFG (KeyDown) +2:1055:0:109:5 //Previous pattern: - (ZEHNERTASTATUR) (KeyDown|KeyHold) +2:1054:0:107:5 //Next pattern: + (ZEHNERTASTATUR) (KeyDown|KeyHold) + +//----( Pattern Context [bottom] - Note Col (3) )------------ +3:1064:0:81:1 //Base octave C: Q (KeyDown) +3:1065:0:87:1 //Base octave C#: W (KeyDown) +3:1066:0:69:1 //Base octave D: E (KeyDown) +3:1067:0:82:1 //Base octave D#: R (KeyDown) +3:1068:0:84:1 //Base octave E: T (KeyDown) +3:1069:0:90:1 //Base octave F: Z (KeyDown) +3:1070:0:85:1 //Base octave F#: U (KeyDown) +3:1071:0:73:1 //Base octave G: I (KeyDown) +3:1072:0:79:1 //Base octave G#: O (KeyDown) +3:1073:0:80:1 //Base octave +1 A: P (KeyDown) +3:1074:0:186:1 //Base octave +1 A#: \xFC (KeyDown) +3:1075:0:187:1 //Base octave +1 B: + (KeyDown) +3:1076:0:65:1 //Base octave +1 C: A (KeyDown) +3:1077:0:83:1 //Base octave +1 C#: S (KeyDown) +3:1078:0:68:1 //Base octave +1 D: D (KeyDown) +3:1079:0:70:1 //Base octave +1 D#: F (KeyDown) +3:1080:0:71:1 //Base octave +1 E: G (KeyDown) +3:1081:0:72:1 //Base octave +1 F: H (KeyDown) +3:1082:0:74:1 //Base octave +1 F#: J (KeyDown) +3:1083:0:75:1 //Base octave +1 G: K (KeyDown) +3:1084:0:76:1 //Base octave +1 G#: L (KeyDown) +3:1085:0:192:1 //Base octave +2 A: \xF6 (KeyDown) +3:1086:0:222:1 //Base octave +2 A#: \xE4 (KeyDown) +3:1087:0:191:1 //Base octave +2 B: # (KeyDown) +3:1088:0:89:1 //Base octave +2 C: Y (KeyDown) +3:1089:0:88:1 //Base octave +2 C#: X (KeyDown) +3:1090:0:67:1 //Base octave +2 D: C (KeyDown) +3:1091:0:86:1 //Base octave +2 D#: V (KeyDown) +3:1092:0:66:1 //Base octave +2 E: B (KeyDown) +3:1093:0:78:1 //Base octave +2 F: N (KeyDown) +3:1094:0:77:1 //Base octave +2 F#: M (KeyDown) +3:1095:0:188:1 //Base octave +2 G: , (KeyDown) +3:1096:0:190:1 //Base octave +2 G#: . (KeyDown) +3:1097:0:189:1 //Base octave +3 A: - (KeyDown) +3:1212:0:48:1 //Set octave 0: 0 (KeyDown) +3:1212:0:96:1 //Set octave 0: 0 (ZEHNERTASTATUR) (KeyDown) +3:1213:0:49:1 //Set octave 1: 1 (KeyDown) +3:1213:0:97:1 //Set octave 1: 1 (ZEHNERTASTATUR) (KeyDown) +3:1214:0:50:1 //Set octave 2: 2 (KeyDown) +3:1214:0:98:1 //Set octave 2: 2 (ZEHNERTASTATUR) (KeyDown) +3:1215:0:51:1 //Set octave 3: 3 (KeyDown) +3:1215:0:99:1 //Set octave 3: 3 (ZEHNERTASTATUR) (KeyDown) +3:1216:0:52:1 //Set octave 4: 4 (KeyDown) +3:1216:0:100:1 //Set octave 4: 4 (ZEHNERTASTATUR) (KeyDown) +3:1217:0:53:1 //Set octave 5: 5 (KeyDown) +3:1217:0:101:1 //Set octave 5: 5 (ZEHNERTASTATUR) (KeyDown) +3:1218:0:54:1 //Set octave 6: 6 (KeyDown) +3:1218:0:102:1 //Set octave 6: 6 (ZEHNERTASTATUR) (KeyDown) +3:1219:0:55:1 //Set octave 7: 7 (KeyDown) +3:1219:0:103:1 //Set octave 7: 7 (ZEHNERTASTATUR) (KeyDown) +3:1220:0:56:1 //Set octave 8: 8 (KeyDown) +3:1220:0:104:1 //Set octave 8: 8 (ZEHNERTASTATUR) (KeyDown) +3:1221:0:57:1 //Set octave 9: 9 (KeyDown) +3:1221:0:105:1 //Set octave 9: 9 (ZEHNERTASTATUR) (KeyDown) +3:1316:1:16:1 //Chord Modifier: Shift+UMSCHALT (KeyDown) +3:1200:0:220:1 //Note cut: ZIRKUMFLEX (KeyDown) +3:1201:0:221:1 //Note off: AKUT (KeyDown) + +//----( Pattern Context [bottom] - Ins Col (4) )------------ +4:1202:0:96:1 //Set instrument digit 0: 0 (ZEHNERTASTATUR) (KeyDown) +4:1202:0:48:1 //Set instrument digit 0: 0 (KeyDown) +4:1203:0:97:1 //Set instrument digit 1: 1 (ZEHNERTASTATUR) (KeyDown) +4:1203:0:49:1 //Set instrument digit 1: 1 (KeyDown) +4:1204:0:98:1 //Set instrument digit 2: 2 (ZEHNERTASTATUR) (KeyDown) +4:1204:0:50:1 //Set instrument digit 2: 2 (KeyDown) +4:1205:0:99:1 //Set instrument digit 3: 3 (ZEHNERTASTATUR) (KeyDown) +4:1205:0:51:1 //Set instrument digit 3: 3 (KeyDown) +4:1206:0:100:1 //Set instrument digit 4: 4 (ZEHNERTASTATUR) (KeyDown) +4:1206:0:52:1 //Set instrument digit 4: 4 (KeyDown) +4:1207:0:101:1 //Set instrument digit 5: 5 (ZEHNERTASTATUR) (KeyDown) +4:1207:0:53:1 //Set instrument digit 5: 5 (KeyDown) +4:1208:0:102:1 //Set instrument digit 6: 6 (ZEHNERTASTATUR) (KeyDown) +4:1208:0:54:1 //Set instrument digit 6: 6 (KeyDown) +4:1209:0:103:1 //Set instrument digit 7: 7 (ZEHNERTASTATUR) (KeyDown) +4:1209:0:55:1 //Set instrument digit 7: 7 (KeyDown) +4:1210:0:56:1 //Set instrument digit 8: 8 (KeyDown) +4:1211:0:105:1 //Set instrument digit 9: 9 (ZEHNERTASTATUR) (KeyDown) +4:1211:0:57:1 //Set instrument digit 9: 9 (KeyDown) + +//----( Pattern Context [bottom] - Vol Col (5) )------------ +5:1222:0:48:1 //Set volume digit 0: 0 (KeyDown) +5:1222:0:96:1 //Set volume digit 0: 0 (ZEHNERTASTATUR) (KeyDown) +5:1223:0:49:1 //Set volume digit 1: 1 (KeyDown) +5:1223:0:97:1 //Set volume digit 1: 1 (ZEHNERTASTATUR) (KeyDown) +5:1224:0:50:1 //Set volume digit 2: 2 (KeyDown) +5:1224:0:98:1 //Set volume digit 2: 2 (ZEHNERTASTATUR) (KeyDown) +5:1225:0:51:1 //Set volume digit 3: 3 (KeyDown) +5:1225:0:99:1 //Set volume digit 3: 3 (ZEHNERTASTATUR) (KeyDown) +5:1226:0:52:1 //Set volume digit 4: 4 (KeyDown) +5:1226:0:100:1 //Set volume digit 4: 4 (ZEHNERTASTATUR) (KeyDown) +5:1227:0:53:1 //Set volume digit 5: 5 (KeyDown) +5:1227:0:101:1 //Set volume digit 5: 5 (ZEHNERTASTATUR) (KeyDown) +5:1228:0:54:1 //Set volume digit 6: 6 (KeyDown) +5:1228:0:102:1 //Set volume digit 6: 6 (ZEHNERTASTATUR) (KeyDown) +5:1229:0:55:1 //Set volume digit 7: 7 (KeyDown) +5:1229:0:103:1 //Set volume digit 7: 7 (ZEHNERTASTATUR) (KeyDown) +5:1230:0:56:1 //Set volume digit 8: 8 (KeyDown) +5:1231:0:57:1 //Set volume digit 9: 9 (KeyDown) +5:1231:0:105:1 //Set volume digit 9: 9 (ZEHNERTASTATUR) (KeyDown) +5:1232:0:86:1 //Vol command - volume: V (KeyDown) +5:1233:0:80:1 //Vol command - pan: P (KeyDown) +5:1234:0:67:1 //Vol command - vol slide up: C (KeyDown) +5:1235:0:68:1 //Vol command - vol slide down: D (KeyDown) +5:1236:0:65:1 //Vol command - vol fine slide up: A (KeyDown) +5:1237:0:66:1 //Vol command - vol fine slide down: B (KeyDown) +5:1238:0:85:1 //Vol command - vibrato speed: U (KeyDown) +5:1239:0:72:1 //Vol command - vibrato: H (KeyDown) +5:1240:0:76:1 //Vol command - XM pan left: L (KeyDown) +5:1241:0:82:1 //Vol command - XM pan right: R (KeyDown) +5:1242:0:71:1 //Vol command - Portamento: G (KeyDown) +5:1243:0:70:1 //Vol command - Portamento Up: F (KeyDown) +5:1244:0:69:1 //Vol command - Portamento Down: E (KeyDown) +5:1245:1:186:1 //Vol command - Velocity: Shift+\xFC (KeyDown) +5:1246:0:79:1 //Vol command - Offset: O (KeyDown) + +//----( Pattern Context [bottom] - FX Col (6) )------------ +6:1294:0:220:1 //FX midi macro slide: ZIRKUMFLEX (KeyDown) +6:1295:1:186:1 //FX pseudo-velocity (experimental): Shift+\xFC (KeyDown) + +//----( Pattern Context [bottom] - Param Col (7) )------------ +7:1247:0:48:1 //FX Param digit 0: 0 (KeyDown) +7:1247:0:96:1 //FX Param digit 0: 0 (ZEHNERTASTATUR) (KeyDown) +7:1248:0:49:1 //FX Param digit 1: 1 (KeyDown) +7:1248:0:97:1 //FX Param digit 1: 1 (ZEHNERTASTATUR) (KeyDown) +7:1249:0:50:1 //FX Param digit 2: 2 (KeyDown) +7:1249:0:98:1 //FX Param digit 2: 2 (ZEHNERTASTATUR) (KeyDown) +7:1250:0:51:1 //FX Param digit 3: 3 (KeyDown) +7:1250:0:99:1 //FX Param digit 3: 3 (ZEHNERTASTATUR) (KeyDown) +7:1251:0:52:1 //FX Param digit 4: 4 (KeyDown) +7:1251:0:100:1 //FX Param digit 4: 4 (ZEHNERTASTATUR) (KeyDown) +7:1252:0:53:1 //FX Param digit 5: 5 (KeyDown) +7:1252:0:101:1 //FX Param digit 5: 5 (ZEHNERTASTATUR) (KeyDown) +7:1253:0:54:1 //FX Param digit 6: 6 (KeyDown) +7:1253:0:102:1 //FX Param digit 6: 6 (ZEHNERTASTATUR) (KeyDown) +7:1254:0:55:1 //FX Param digit 7: 7 (KeyDown) +7:1254:0:103:1 //FX Param digit 7: 7 (ZEHNERTASTATUR) (KeyDown) +7:1255:0:56:1 //FX Param digit 8: 8 (KeyDown) +7:1255:0:104:1 //FX Param digit 8: 8 (ZEHNERTASTATUR) (KeyDown) +7:1256:0:57:1 //FX Param digit 9: 9 (KeyDown) +7:1256:0:105:1 //FX Param digit 9: 9 (ZEHNERTASTATUR) (KeyDown) +7:1257:0:65:1 //FX Param digit A: A (KeyDown) +7:1258:0:66:1 //FX Param digit B: B (KeyDown) +7:1259:0:67:1 //FX Param digit C: C (KeyDown) +7:1260:0:68:1 //FX Param digit D: D (KeyDown) +7:1261:0:69:1 //FX Param digit E: E (KeyDown) +7:1262:0:70:1 //FX Param digit F: F (KeyDown) + +//----( Sample Context [bottom] (8) )------------ +8:1380:2:84:1 //Trim sample around loop points: Ctrl+T (KeyDown) +8:1383:0:8:1 //Silence sample selection: R\xDCCK (KeyDown) +8:1385:3:65:1 //Amplify Sample: Shift+Ctrl+A (KeyDown) +8:1381:3:82:1 //Reverse sample: Shift+Ctrl+R (KeyDown) +8:1382:0:46:1 //Delete sample selection: ENTF (KeyDown) +8:1386:0:107:1 //Zoom Out: + (ZEHNERTASTATUR) (KeyDown) +8:1387:0:109:1 //Zoom In: - (ZEHNERTASTATUR) (KeyDown) + +//----( Instrument Context [bottom] (9) )------------ + +//----( Comments Context [bottom] (10) )------------ + +//----( Unknown Context (11) )------------ + +//----( Unknown Context (12) )------------ + +//----( Plugin GUI Context (13) )------------ + +//----( General Context [top] (14) )------------ + +//----( Pattern Context [top] (15) )------------ + +//----( Sample Context [top] (16) )------------ + +//----( Instrument Context [top] (17) )------------ + +//----( Comments Context [top] (18) )------------ + +//----( Unknown Context (19) )------------ Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -656,8 +656,6 @@ } // Leave - //m_nType = MOD_TYPE_IT; Relabs.note: Moved to the beginning of loading(April 2007) - m_nMaxPeriod = 0xF000; m_nMinPeriod = 8; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2007-05-13 11:17:15 UTC (rev 184) @@ -435,7 +435,6 @@ memset(&m_SongEQ, 0, sizeof(m_SongEQ)); m_lTotalSampleCount=0; - m_nMixLevels=mixLevels_117RC3; m_pConfig = new CSoundFilePlayConfig(); BuildDefaultInstrument(); @@ -484,6 +483,7 @@ m_nMaxOrderPosition = 0; m_lpszPatternNames = NULL; m_lpszSongComments = NULL; + m_nMixLevels = mixLevels_original; // Will be overridden if appropriate. memset(Ins, 0, sizeof(Ins)); memset(ChnMix, 0, sizeof(ChnMix)); memset(Chn, 0, sizeof(Chn)); @@ -588,8 +588,10 @@ } #endif } else { + // New song m_dwCreatedWithVersion = CMainFrame::GetFullVersionNumeric(); } + // Adjust song names for (UINT iSmp=0; iSmp<MAX_SAMPLES; iSmp++) { @@ -690,7 +692,9 @@ } } } - m_pConfig->SetPluginMixLevels(m_nMixLevels); + + // Set up mix levels + m_pConfig->SetMixLevels(m_nMixLevels); RecalculateGainForAllPlugs(); if (m_nType) @@ -699,8 +703,6 @@ return TRUE; } - - return FALSE; } Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/soundlib/Sndfile.h 2007-05-13 11:17:15 UTC (rev 184) @@ -819,13 +819,13 @@ double GetPlaybackTimeAt(ORDERINDEX, ROWINDEX); #ifndef TRADITIONAL_MODCOMMAND - void OnSetEffect(MODCOMMAND& mc, EFFECT_ID); //When adding a modeffect to pattern, this is to be called to //do the actual adding and this can do modifications if needed. + void OnSetEffect(MODCOMMAND& mc, EFFECT_ID); - void OnSetEffectParam(MODCOMMAND& mc, EFFECT_PARAM); //When adding a modeffect parameter to pattern, this is to be called to //do the actual adding and this can do modifications if needed. + void OnSetEffectParam(MODCOMMAND& mc, EFFECT_PARAM); #endif virtual bool GetModSpecificFlag(BYTE i) @@ -866,9 +866,6 @@ bitset<8> m_ModFlags; const CModSpecifications* m_pModSpecs; - - - public: // Static Members static UINT m_nXBassDepth, m_nXBassRange; static float m_nMaxSample; @@ -947,21 +944,15 @@ BOOL Destroy(); UINT GetType() const { return m_nType; } + //Return the number of channels in the pattern. In 1.17.02.45 //it returned the number of channels with volume != 0 - UINT GetNumChannels() const {return m_nChannels;} - - + UINT GetNumChannels() const {return m_nChannels;} + BOOL SetMasterVolume(UINT vol, BOOL bAdjustAGC=FALSE); UINT GetMasterVolume() const { return m_nMasterVolume; } UINT GetNumPatterns() const; UINT GetNumInstruments() const {return m_nInstruments;} - //Relabs.note: The above method didn't seem to work - //reasonably nor any reference to it seemed to exist. - //Replaced it so that it now really returns the - //number of instruments, not the number of samples - //within the range of maximum instrument number - UINT GetNumSamples() const { return m_nSamples; } UINT GetCurrentPos() const; UINT GetCurrentPattern() const { return m_nPattern; } @@ -969,6 +960,8 @@ UINT GetSongComments(LPSTR s, UINT cbsize, UINT linesize=32); UINT GetRawSongComments(LPSTR s, UINT cbsize, UINT linesize=32); UINT GetMaxPosition() const; + const CModSpecifications * GetModSpecifications() {return m_pModSpecs;} + double GetCurrentBPM() const; int FindOrder(PATTERNINDEX pat, UINT startFromOrder=0, bool direction=true); //rewbs.playSongFromCursor void DontLoopPattern(int nPat, int nRow=0); //rewbs.playSongFromCursor Modified: trunk/OpenMPT/soundlib/mod_specifications.h =================================================================== --- trunk/OpenMPT/soundlib/mod_specifications.h 2007-05-12 20:04:56 UTC (rev 183) +++ trunk/OpenMPT/soundlib/mod_specifications.h 2007-05-13 11:17:15 UTC (rev 184) @@ -21,6 +21,7 @@ uint16 modNameLengthMax; //Meaning 'usable letters', possible null character is not included. SAMPLEINDEX samplesMax; INSTRUMENTINDEX instrumentsMax; + BYTE defaultMixLevels; }; enum { @@ -53,6 +54,7 @@ 256, //Max mod name length 4000, //SamplesMax 256, //instrumentMax + mixLevels_117RC3, //defaultMixLevels }; @@ -73,6 +75,7 @@ 20, //Max mod name length 31, //SamplesMax 0, //instrumentMax + mixLevels_original, //defaultMixLevels }; @@ -91,7 +94,7 @@ 20, //Max mod name length 31, //SamplesMax 256, //instrumentMax - + mixLevels_117RC3, //defaultMixLevels }; const CModSpecifications S3M_SPECS = @@ -109,6 +112,7 @@ 27, //Max mod name length 31, //SamplesMax 0, //instrumentMax + mixLevels_original, //defaultMixLevels }; const CModSpecifications IT_SPECS = @@ -126,6 +130,7 @@ 25, //Max mod name length(in ittech.txt: "0000: \xB3'I'\xB3'M'\xB3'P'\xB3'M'\xB3 Song Name, max 26 characters, includes NULL \xB3") 256, //SamplesMax 256, //instrumentMax + mixLevels_117RC3, //defaultMixLevels }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |