From: <rel...@us...> - 2008-12-11 01:59:51
|
Revision: 237 http://modplug.svn.sourceforge.net/modplug/?rev=237&view=rev Author: relabsoluness Date: 2008-12-11 01:33:04 +0000 (Thu, 11 Dec 2008) Log Message: ----------- (Patches from Jojo, merged somewhat modified) / Setup: Added notification about equalizer. / Sequence view: Sequence scrolling won't no longer be cut on first '---' item on IT/MPTM/XM. Modified Paths: -------------- trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/OrderToPatternTable.cpp trunk/OpenMPT/mptrack/OrderToPatternTable.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h trunk/OpenMPT/soundlib/Sndfile.h Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2008-12-07 23:59:12 UTC (rev 236) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2008-12-11 01:33:04 UTC (rev 237) @@ -114,10 +114,17 @@ CSoundFile *pSndFile = m_pModDoc->GetSoundFile(); SCROLLINFO info; UINT nPage; - int nMax=0; - const int nSeqLength = pSndFile->Order.size(); - while ((nMax < nSeqLength) && (pSndFile->Order[nMax] != pSndFile->Order.GetInvalidPatIndex())) nMax++; + int nMax = 0; + if(pSndFile->TypeIsIT_MPT_XM()) + { // For IT/MPT/XM, show sequence until the last used item... + nMax = pSndFile->Order.GetLengthTailTrimmed(); + } + else + { // ...and for MOD/S3M, cut shown sequence to first '---' item. + nMax = pSndFile->Order.GetLengthFirstEmpty(); + } + GetScrollInfo(SB_HORZ, &info, SIF_PAGE|SIF_RANGE); info.fMask = SIF_PAGE|SIF_RANGE; info.nMin = 0; Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2008-12-07 23:59:12 UTC (rev 236) +++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2008-12-11 01:33:04 UTC (rev 237) @@ -1033,6 +1033,13 @@ //----------------------------- { CMainFrame::m_nLastOptionsPage = OPTIONS_PAGE_EQ; + SetDlgItemText(IDC_EQ_WARNING, + "Note: This EQ, when enabled from Player tab, is applied to " + "any and all of the modules " + "that you load in OpenMPT; its settings are stored globally, " + "rather than in each file. This means that you should avoid " + "using it as part of your production process, and instead only " + "use it to correct deficiencies in your audio hardware."); return CPropertyPage::OnSetActive(); } Modified: trunk/OpenMPT/mptrack/OrderToPatternTable.cpp =================================================================== --- trunk/OpenMPT/mptrack/OrderToPatternTable.cpp 2008-12-07 23:59:12 UTC (rev 236) +++ trunk/OpenMPT/mptrack/OrderToPatternTable.cpp 2008-12-11 01:33:04 UTC (rev 237) @@ -108,6 +108,29 @@ } +ORDERINDEX COrderToPatternTable::GetLengthTailTrimmed() const +//----------------------------------------------------------- +{ + ORDERINDEX nEnd = GetCount(); + if(nEnd == 0) return 0; + nEnd--; + const PATTERNINDEX iInvalid = GetInvalidPatIndex(); + while(nEnd > 0 && (*this)[nEnd] == iInvalid) + nEnd--; + return ((*this)[nEnd] == iInvalid) ? 0 : nEnd+1; +} + + +ORDERINDEX COrderToPatternTable::GetLengthFirstEmpty() const +//---------------------------------------------------------- +{ + const ORDERINDEX nLength = GetCount(); + ORDERINDEX nMax = 0; + while ((nMax < nLength) && ((*this)[nMax] != (*this).GetInvalidPatIndex())) nMax++; + return nMax; +} + + ORDERINDEX COrderToPatternTable::GetNextOrderIgnoringSkips(const ORDERINDEX start) const //------------------------------------------------------------------------------------- { Modified: trunk/OpenMPT/mptrack/OrderToPatternTable.h =================================================================== --- trunk/OpenMPT/mptrack/OrderToPatternTable.h 2008-12-07 23:59:12 UTC (rev 236) +++ trunk/OpenMPT/mptrack/OrderToPatternTable.h 2008-12-11 01:33:04 UTC (rev 237) @@ -44,6 +44,12 @@ void OnModTypeChanged(const MODTYPE oldtype); + // Returns length of sequence without counting trailing '---' items. + ORDERINDEX GetLengthTailTrimmed() const; + + // Returns length of sequence stopping counting on first '---' (or at the end of sequence). + ORDERINDEX GetLengthFirstEmpty() const; + PATTERNINDEX GetInvalidPatIndex() const; //To correspond 0xFF static PATTERNINDEX GetInvalidPatIndex(const MODTYPE type); Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2008-12-07 23:59:12 UTC (rev 236) +++ trunk/OpenMPT/mptrack/mptrack.rc 2008-12-11 01:33:04 UTC (rev 237) @@ -1324,7 +1324,7 @@ WS_TABSTOP,11,49,88,10 END -IDD_SETUP_EQ DIALOG 0, 0, 240, 156 +IDD_SETUP_EQ DIALOG 0, 0, 240, 202 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Equalizer" FONT 8, "MS Sans Serif" @@ -1365,6 +1365,7 @@ PUSHBUTTON "Save Preset...",IDC_BUTTON13,155,124,64,12 CTEXT "Right-click on a band to change its center frequency", IDC_STATIC,20,140,200,8 + LTEXT "EQ Warning Message",IDC_EQ_WARNING,6,157,228,41 END IDD_OPTIONS_AUTHOR DIALOG 0, 0, 240, 150 Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2008-12-07 23:59:12 UTC (rev 236) +++ trunk/OpenMPT/mptrack/resource.h 2008-12-11 01:33:04 UTC (rev 237) @@ -820,6 +820,7 @@ #define IDC_TEXT_QUALITY 2330 #define IDC_TEXT_FFT 2331 #define IDC_TEXT_PERCENT 2332 +#define IDC_EQ_WARNING 2333 #define IDC_TEXT_STRETCHPARAMS 2337 #define IDC_EDIT_STRETCHPARAMS 2338 #define ID_FILE_NEWMOD 32771 Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2008-12-07 23:59:12 UTC (rev 236) +++ trunk/OpenMPT/soundlib/Sndfile.h 2008-12-11 01:33:04 UTC (rev 237) @@ -973,8 +973,10 @@ BOOL Destroy(); MODTYPE GetType() const { return m_nType; } inline bool TypeIsIT_MPT() const {return (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) != 0;} + inline bool TypeIsIT_MPT_XM() const {return (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_XM)) != 0;} inline bool TypeIsS3M_IT_MPT() const {return (m_nType & (MOD_TYPE_S3M | MOD_TYPE_IT | MOD_TYPE_MPT)) != 0;} inline bool TypeIsXM_MOD() const {return (m_nType & (MOD_TYPE_XM | MOD_TYPE_MOD)) != 0;} + inline bool TypeIsMOD_S3M() const {return (m_nType & (MOD_TYPE_MOD | MOD_TYPE_S3M)) != 0;} CModDoc* GetpModDoc() {return m_pModDoc;} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |