|
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.
|