From: <sag...@us...> - 2014-03-11 17:17:04
|
Revision: 3870 http://sourceforge.net/p/modplug/code/3870 Author: saga-games Date: 2014-03-11 17:16:55 +0000 (Tue, 11 Mar 2014) Log Message: ----------- [Mod] Unify DSP and EQ setup tabs into one tab. Modified Paths: -------------- trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mod2wave.cpp trunk/OpenMPT/mptrack/Moptions.h trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/Mpdlgs.h trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2014-03-11 17:16:55 UTC (rev 3870) @@ -218,7 +218,7 @@ } -VOID CMainFrame::Initialize() +void CMainFrame::Initialize() //--------------------------- { //Adding version number to the frame title @@ -1850,12 +1850,8 @@ COptionsSampleEditor smpeditor; COptionsKeyboard keyboard; COptionsColors colors; - COptionsPlayer playerdlg; COptionsMixer mixerdlg; CMidiSetupDlg mididlg(TrackerSettings::Instance().m_dwMidiSetup, TrackerSettings::Instance().m_nMidiDevice); -#ifndef NO_EQ - CEQSetupDlg eqdlg(&TrackerSettings::Instance().m_EqSettings); -#endif CAutoSaverGUI autosavedlg(m_pAutoSaver); //rewbs.AutoSaver CUpdateSetupDlg updatedlg; #if defined(MPT_SETTINGS_CACHE) @@ -1864,12 +1860,10 @@ dlg.AddPage(&general); dlg.AddPage(&sounddlg); dlg.AddPage(&mixerdlg); -#if !defined(NO_REVERB) || !defined(NO_DSP) || !defined(NO_EQ) || !defined(NO_AGC) +#if !defined(NO_REVERB) || !defined(NO_DSP) || !defined(NO_EQ) || !defined(NO_AGC) || !defined(NO_EQ) + COptionsPlayer playerdlg(TrackerSettings::Instance().m_EqSettings); dlg.AddPage(&playerdlg); #endif -#ifndef NO_EQ - dlg.AddPage(&eqdlg); -#endif dlg.AddPage(&smpeditor); dlg.AddPage(&keyboard); dlg.AddPage(&colors); Modified: trunk/OpenMPT/mptrack/Mod2wave.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mod2wave.cpp 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/Mod2wave.cpp 2014-03-11 17:16:55 UTC (rev 3870) @@ -645,11 +645,9 @@ CPropertySheet dlg("Mixer Settings", this); COptionsMixer mixerpage; dlg.AddPage(&mixerpage); - COptionsPlayer dsppage; +#if !defined(NO_REVERB) || !defined(NO_DSP) || !defined(NO_EQ) || !defined(NO_AGC) || !defined(NO_EQ) + COptionsPlayer dsppage(TrackerSettings::Instance().m_EqSettings); dlg.AddPage(&dsppage); -#ifndef NO_EQ - CEQSetupDlg eqpage(&TrackerSettings::Instance().m_EqSettings); - dlg.AddPage(&eqpage); #endif dlg.DoModal(); } Modified: trunk/OpenMPT/mptrack/Moptions.h =================================================================== --- trunk/OpenMPT/mptrack/Moptions.h 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/Moptions.h 2014-03-11 17:16:55 UTC (rev 3870) @@ -18,7 +18,6 @@ OPTIONS_PAGE_SOUNDCARD, OPTIONS_PAGE_MIXER, OPTIONS_PAGE_PLAYER, - OPTIONS_PAGE_EQ, OPTIONS_PAGE_SAMPLEDITOR, OPTIONS_PAGE_KEYBOARD, OPTIONS_PAGE_COLORS, Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2014-03-11 17:16:55 UTC (rev 3870) @@ -1029,10 +1029,111 @@ } +//////////////////////////////////////////////////////////////////////////////// +// +// CEQSavePresetDlg +// + +//==================================== +class CEQSavePresetDlg: public CDialog +//==================================== +{ +protected: + EQPreset &m_EQ; + +public: + CEQSavePresetDlg(EQPreset &eq, CWnd *parent = nullptr) : CDialog(IDD_SAVEPRESET, parent), m_EQ(eq) { } + BOOL OnInitDialog(); + void OnOK(); +}; + + +BOOL CEQSavePresetDlg::OnInitDialog() +//----------------------------------- +{ + CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMBO1); + if (pCombo) + { + int ndx = 0; + for (UINT i=0; i<4; i++) + { + int n = pCombo->AddString(TrackerSettings::Instance().m_EqUserPresets[i].szName); + pCombo->SetItemData( n, i); + if (!lstrcmpi(TrackerSettings::Instance().m_EqUserPresets[i].szName, m_EQ.szName)) ndx = n; + } + pCombo->SetCurSel(ndx); + } + SetDlgItemText(IDC_EDIT1, m_EQ.szName); + return TRUE; +} + + +void CEQSavePresetDlg::OnOK() +//--------------------------- +{ + CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMBO1); + if (pCombo) + { + int n = pCombo->GetCurSel(); + if ((n < 0) || (n >= 4)) n = 0; + GetDlgItemText(IDC_EDIT1, m_EQ.szName, CountOf(m_EQ.szName)); + mpt::String::SetNullTerminator(m_EQ.szName); + TrackerSettings::Instance().m_EqUserPresets[n] = m_EQ; + } + CDialog::OnOK(); +} + + +void CEQSlider::Init(UINT nID, UINT n, CWnd *parent) +//-------------------------------------------------- +{ + m_nSliderNo = n; + m_pParent = parent; + SubclassDlgItem(nID, parent); +} + + +BOOL CEQSlider::PreTranslateMessage(MSG *pMsg) +//-------------------------------------------- +{ + if ((pMsg) && (pMsg->message == WM_RBUTTONDOWN) && (m_pParent)) + { + m_x = LOWORD(pMsg->lParam); + m_y = HIWORD(pMsg->lParam); + m_pParent->PostMessage(WM_COMMAND, ID_EQSLIDER_BASE+m_nSliderNo, 0); + } + return CSliderCtrl::PreTranslateMessage(pMsg); +} + + ////////////////////////////////////////////////////////// -// COptionsPlayer +// COptionsPlayer - DSP / EQ settings + +#define EQ_MAX_FREQS 5 + +const UINT gEqBandFreqs[MAX_EQ_BANDS][EQ_MAX_FREQS] = +{ + { 100, 125, 150, 200, 250 }, + { 300, 350, 400, 450, 500 }, + { 600, 700, 800, 900, 1000 }, + { 1250, 1500, 1750, 2000, 2500 }, + { 3000, 3500, 4000, 4500, 5000 }, + { 6000, 7000, 8000, 9000, 10000 }, +}; + BEGIN_MESSAGE_MAP(COptionsPlayer, CPropertyPage) + // EQ + ON_WM_VSCROLL() + ON_COMMAND(IDC_BUTTON1, OnEqUser1) + ON_COMMAND(IDC_BUTTON2, OnEqUser2) + ON_COMMAND(IDC_BUTTON3, OnEqUser3) + ON_COMMAND(IDC_BUTTON4, OnEqUser4) + ON_COMMAND(IDC_BUTTON5, OnSavePreset) + ON_COMMAND_RANGE(ID_EQSLIDER_BASE, ID_EQSLIDER_BASE+MAX_EQ_BANDS, OnSliderMenu) + ON_COMMAND_RANGE(ID_EQMENU_BASE, ID_EQMENU_BASE+EQ_MAX_FREQS, OnSliderFreq) + + // DSP ON_WM_HSCROLL() ON_CBN_SELCHANGE(IDC_COMBO2, OnSettingsChanged) ON_COMMAND(IDC_CHECK1, OnSettingsChanged) @@ -1063,10 +1164,18 @@ BOOL COptionsPlayer::OnInitDialog() //--------------------------------- { - DWORD dwQuality; + CPropertyPage::OnInitDialog(); - CPropertyPage::OnInitDialog(); - dwQuality = TrackerSettings::Instance().MixerDSPMask; +#ifndef NO_EQ + for (UINT i = 0; i < MAX_EQ_BANDS; i++) + { + m_Sliders[i].Init(IDC_SLIDER7 + i, i, this); + m_Sliders[i].SetRange(0, 32); + m_Sliders[i].SetTicFreq(4); + } +#endif + + DWORD dwQuality = TrackerSettings::Instance().MixerDSPMask; // Effects #ifndef NO_DSP if (dwQuality & SNDDSP_MEGABASS) CheckDlgButton(IDC_CHECK1, MF_CHECKED); @@ -1149,6 +1258,8 @@ m_SbSurroundDepth.ShowWindow(SW_HIDE); m_SbSurroundDelay.ShowWindow(SW_HIDE); #endif + + UpdateDialog(); return TRUE; } @@ -1157,6 +1268,14 @@ //-------------------------------- { CMainFrame::m_nLastOptionsPage = OPTIONS_PAGE_PLAYER; + + SetDlgItemText(IDC_EQ_WARNING, + "Note: This EQ 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(); } @@ -1248,166 +1367,50 @@ } -//////////////////////////////////////////////////////////////////////////////// -// -// EQ Globals -// - -#define EQ_MAX_FREQS 5 - -const UINT gEqBandFreqs[MAX_EQ_BANDS][EQ_MAX_FREQS] = +void COptionsPlayer::UpdateEQ(bool bReset) +//---------------------------------------- { - { 100, 125, 150, 200, 250 }, - { 300, 350, 400, 450, 500 }, - { 600, 700, 800, 900, 1000 }, - { 1250, 1500, 1750, 2000, 2500 }, - { 3000, 3500, 4000, 4500, 5000 }, - { 6000, 7000, 8000, 9000, 10000 }, -}; - - -const EQPreset CEQSetupDlg::gEQPresets[] = -{ - { "Flat", {16,16,16,16,16,16}, { 125, 300, 600, 1250, 4000, 8000 } }, // Flat - { "Jazz", {16,16,24,20,20,14}, { 125, 300, 600, 1250, 4000, 8000 } }, // Jazz - { "Pop", {24,16,16,21,16,26}, { 125, 300, 600, 1250, 4000, 8000 } }, // Pop - { "Rock", {24,16,24,16,24,22}, { 125, 300, 600, 1250, 4000, 8000 } }, // Rock - { "Concert",{22,18,26,16,22,16}, { 125, 300, 600, 1250, 4000, 8000 } }, // Concert - { "Clear", {20,16,16,22,24,26}, { 125, 300, 600, 1250, 4000, 8000 } } // Clear -}; - - -EQPreset CEQSetupDlg::gUserPresets[] = -{ - { "User1", {16,16,16,16,16,16}, { 125, 300, 600, 1250, 4000, 8000 } }, // User1 - { "User2", {16,16,16,16,16,16}, { 125, 300, 600, 1250, 4000, 8000 } }, // User2 - { "User3", {16,16,16,16,16,16}, { 125, 300, 600, 1250, 4000, 8000 } }, // User3 - { "User4", {16,16,16,16,16,16}, { 150, 500, 1000, 2500, 5000, 10000 } } // User4 -}; - - -//////////////////////////////////////////////////////////////////////////////// -// -// CEQSavePresetDlg -// - -//==================================== -class CEQSavePresetDlg: public CDialog -//==================================== -{ -protected: - EQPreset *m_pEq; - -public: - CEQSavePresetDlg(EQPreset *pEq, CWnd *parent=NULL):CDialog(IDD_SAVEPRESET, parent) { m_pEq = pEq; } - BOOL OnInitDialog(); - VOID OnOK(); -}; - - -BOOL CEQSavePresetDlg::OnInitDialog() -//----------------------------------- -{ - CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMBO1); - if (pCombo) - { - int ndx = 0; - for (UINT i=0; i<4; i++) - { - int n = pCombo->AddString(CEQSetupDlg::gUserPresets[i].szName); - pCombo->SetItemData( n, i); - if (!lstrcmpi(CEQSetupDlg::gUserPresets[i].szName, m_pEq->szName)) ndx = n; - } - pCombo->SetCurSel(ndx); - } - SetDlgItemText(IDC_EDIT1, m_pEq->szName); - return TRUE; +#ifndef NO_EQ + CriticalSection cs; + if(CMainFrame::GetMainFrame()->GetSoundFilePlaying()) + CMainFrame::GetMainFrame()->GetSoundFilePlaying()->SetEQGains(m_EQPreset.Gains, MAX_EQ_BANDS, m_EQPreset.Freqs, bReset); +#endif } -VOID CEQSavePresetDlg::OnOK() -//--------------------------- +void COptionsPlayer::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar) +//----------------------------------------------------------------------------- { - CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMBO1); - if (pCombo) + CDialog::OnVScroll(nSBCode, nPos, pScrollBar); + for (UINT i=0; i<MAX_EQ_BANDS; i++) { - int n = pCombo->GetCurSel(); - if ((n < 0) || (n >= 4)) n = 0; - GetDlgItemText(IDC_EDIT1, m_pEq->szName, sizeof(m_pEq->szName)); - m_pEq->szName[sizeof(m_pEq->szName)-1] = 0; - CEQSetupDlg::gUserPresets[n] = *m_pEq; + int n = 32 - m_Sliders[i].GetPos(); + if ((n >= 0) && (n <= 32)) m_EQPreset.Gains[i] = n; } - CDialog::OnOK(); + UpdateEQ(FALSE); } -//////////////////////////////////////////////////////////////////////////////// -// -// CEQSetupDlg -// - - -VOID CEQSlider::Init(UINT nID, UINT n, CWnd *parent) -//-------------------------------------------------- +void COptionsPlayer::LoadEQPreset(const EQPreset &preset) +//------------------------------------------------------- { - m_nSliderNo = n; - m_pParent = parent; - SubclassDlgItem(nID, parent); + m_EQPreset = preset; + UpdateEQ(TRUE); + UpdateDialog(); } -BOOL CEQSlider::PreTranslateMessage(MSG *pMsg) -//-------------------------------------------- +void COptionsPlayer::OnSavePreset() +//--------------------------------- { - if ((pMsg) && (pMsg->message == WM_RBUTTONDOWN) && (m_pParent)) + CEQSavePresetDlg dlg(m_EQPreset, this); + if (dlg.DoModal() == IDOK) { - m_x = LOWORD(pMsg->lParam); - m_y = HIWORD(pMsg->lParam); - m_pParent->PostMessage(WM_COMMAND, ID_EQSLIDER_BASE+m_nSliderNo, 0); + UpdateDialog(); } - return CSliderCtrl::PreTranslateMessage(pMsg); } -// CEQSetupDlg -BEGIN_MESSAGE_MAP(CEQSetupDlg, CDialog) - ON_WM_VSCROLL() - ON_COMMAND(IDC_BUTTON1, OnEqFlat) - ON_COMMAND(IDC_BUTTON2, OnEqJazz) - ON_COMMAND(IDC_BUTTON5, OnEqPop) - ON_COMMAND(IDC_BUTTON6, OnEqRock) - ON_COMMAND(IDC_BUTTON7, OnEqConcert) - ON_COMMAND(IDC_BUTTON8, OnEqClear) - ON_COMMAND(IDC_BUTTON3, OnEqUser1) - ON_COMMAND(IDC_BUTTON4, OnEqUser2) - ON_COMMAND(IDC_BUTTON9, OnEqUser3) - ON_COMMAND(IDC_BUTTON10,OnEqUser4) - ON_COMMAND(IDC_BUTTON13,OnSavePreset) - ON_COMMAND_RANGE(ID_EQSLIDER_BASE, ID_EQSLIDER_BASE+MAX_EQ_BANDS, OnSliderMenu) - ON_COMMAND_RANGE(ID_EQMENU_BASE, ID_EQMENU_BASE+EQ_MAX_FREQS, OnSliderFreq) -END_MESSAGE_MAP() - - -BOOL CEQSetupDlg::OnInitDialog() -//------------------------------ -{ - CDialog::OnInitDialog(); - m_Sliders[0].Init(IDC_SLIDER1, 0, this); - m_Sliders[1].Init(IDC_SLIDER3, 1, this); - m_Sliders[2].Init(IDC_SLIDER5, 2, this); - m_Sliders[3].Init(IDC_SLIDER7, 3, this); - m_Sliders[4].Init(IDC_SLIDER8, 4, this); - m_Sliders[5].Init(IDC_SLIDER9, 5, this); - for (UINT i=0; i<MAX_EQ_BANDS; i++) - { - m_Sliders[i].SetRange(0, 32); - m_Sliders[i].SetTicFreq(4); - } - UpdateDialog(); - return TRUE; -} - - static void f2s(UINT f, LPSTR s) //------------------------------ { @@ -1429,74 +1432,29 @@ } -void CEQSetupDlg::UpdateDialog() -//------------------------------ +void COptionsPlayer::UpdateDialog() +//--------------------------------- { - const USHORT uTextIds[MAX_EQ_BANDS] = {IDC_TEXT1, IDC_TEXT2, IDC_TEXT3, IDC_TEXT4, IDC_TEXT5, IDC_TEXT6}; CHAR s[32]; for (UINT i=0; i<MAX_EQ_BANDS; i++) { - int n = 32 - m_pEqPreset->Gains[i]; + int n = 32 - m_EQPreset.Gains[i]; if (n < 0) n = 0; if (n > 32) n = 32; if (n != (m_Sliders[i].GetPos() & 0xFFFF)) m_Sliders[i].SetPos(n); - f2s(m_pEqPreset->Freqs[i], s); - SetDlgItemText(uTextIds[i], s); - SetDlgItemText(IDC_BUTTON3, gUserPresets[0].szName); - SetDlgItemText(IDC_BUTTON4, gUserPresets[1].szName); - SetDlgItemText(IDC_BUTTON9, gUserPresets[2].szName); - SetDlgItemText(IDC_BUTTON10,gUserPresets[3].szName); + f2s(m_EQPreset.Freqs[i], s); + SetDlgItemText(IDC_TEXT1 + i, s); + for(size_t i = 0; i < CountOf(TrackerSettings::Instance().m_EqUserPresets); i++) + { + SetDlgItemText(IDC_BUTTON1 + i, TrackerSettings::Instance().m_EqUserPresets[i].szName); + } } } -void CEQSetupDlg::UpdateEQ(BOOL bReset) -//------------------------------------- +void COptionsPlayer::OnSliderMenu(UINT nID) +//----------------------------------------- { -#ifndef NO_EQ - CriticalSection cs; - if(CMainFrame::GetMainFrame()->GetSoundFilePlaying()) - CMainFrame::GetMainFrame()->GetSoundFilePlaying()->SetEQGains( m_pEqPreset->Gains, MAX_EQ_BANDS, m_pEqPreset->Freqs, bReset?true:false); -#endif -} - - -void CEQSetupDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar) -//-------------------------------------------------------------------------- -{ - CDialog::OnVScroll(nSBCode, nPos, pScrollBar); - for (UINT i=0; i<MAX_EQ_BANDS; i++) - { - int n = 32 - m_Sliders[i].GetPos(); - if ((n >= 0) && (n <= 32)) m_pEqPreset->Gains[i] = n; - } - UpdateEQ(FALSE); -} - - -void CEQSetupDlg::LoadEQPreset(const EQPreset &preset) -//---------------------------------------------------- -{ - *m_pEqPreset = preset; - UpdateEQ(TRUE); - UpdateDialog(); -} - - -void CEQSetupDlg::OnSavePreset() -//------------------------------ -{ - CEQSavePresetDlg dlg(m_pEqPreset, this); - if (dlg.DoModal() == IDOK) - { - UpdateDialog(); - } -} - - -void CEQSetupDlg::OnSliderMenu(UINT nID) -//-------------------------------------- -{ UINT n = nID - ID_EQSLIDER_BASE; if (n < MAX_EQ_BANDS) { @@ -1508,7 +1466,7 @@ for (UINT i = 0; i < EQ_MAX_FREQS; i++) { DWORD d = MF_STRING; - if (m_pEqPreset->Freqs[m_nSliderMenu] == pFreqs[i]) d |= MF_CHECKED; + if (m_EQPreset.Freqs[m_nSliderMenu] == pFreqs[i]) d |= MF_CHECKED; f2s(pFreqs[i], s); ::AppendMenu(hMenu, d, ID_EQMENU_BASE+i, s); } @@ -1520,16 +1478,16 @@ } -void CEQSetupDlg::OnSliderFreq(UINT nID) -//-------------------------------------- +void COptionsPlayer::OnSliderFreq(UINT nID) +//----------------------------------------- { UINT n = nID - ID_EQMENU_BASE; if ((m_nSliderMenu < MAX_EQ_BANDS) && (n < EQ_MAX_FREQS)) { UINT f = gEqBandFreqs[m_nSliderMenu][n]; - if (f != m_pEqPreset->Freqs[m_nSliderMenu]) + if (f != m_EQPreset.Freqs[m_nSliderMenu]) { - m_pEqPreset->Freqs[m_nSliderMenu] = f; + m_EQPreset.Freqs[m_nSliderMenu] = f; UpdateEQ(TRUE); UpdateDialog(); } @@ -1537,21 +1495,6 @@ } -BOOL CEQSetupDlg::OnSetActive() -//----------------------------- -{ - 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(); -} - - ///////////////////////////////////////////////////////////// // CMidiSetupDlg Modified: trunk/OpenMPT/mptrack/Mpdlgs.h =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.h 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/Mpdlgs.h 2014-03-11 17:16:55 UTC (rev 3870) @@ -122,32 +122,6 @@ }; -//======================================== -class COptionsPlayer: public CPropertyPage -//======================================== -{ -protected: - CComboBox m_CbnReverbPreset; - CSliderCtrl m_SbXBassDepth, m_SbXBassRange; - CSliderCtrl m_SbSurroundDepth, m_SbSurroundDelay; - CSliderCtrl m_SbReverbDepth; - -public: - COptionsPlayer():CPropertyPage(IDD_OPTIONS_PLAYER) {} - -protected: - virtual BOOL OnInitDialog(); - virtual void OnOK(); - virtual BOOL OnSetActive(); - virtual void DoDataExchange(CDataExchange* pDX); - afx_msg void OnHScroll(UINT, UINT, CScrollBar *); - afx_msg void OnSettingsChanged() { SetModified(TRUE); } - - DECLARE_MESSAGE_MAP() -}; - - - //================================= class CEQSlider: public CSliderCtrl //================================= @@ -163,58 +137,45 @@ }; -//===================================== -class CEQSetupDlg: public CPropertyPage -//===================================== +//======================================== +class COptionsPlayer: public CPropertyPage +//======================================== { protected: + CComboBox m_CbnReverbPreset; + CSliderCtrl m_SbXBassDepth, m_SbXBassRange; + CSliderCtrl m_SbSurroundDepth, m_SbSurroundDelay; + CSliderCtrl m_SbReverbDepth; + CEQSlider m_Sliders[MAX_EQ_BANDS]; - EQPreset *m_pEqPreset; + EQPreset &m_EQPreset; UINT m_nSliderMenu; public: - CEQSetupDlg(EQPreset *pEq):CPropertyPage(IDD_SETUP_EQ) { m_pEqPreset = pEq; } - void UpdateDialog(); - void UpdateEQ(BOOL bReset); + COptionsPlayer(EQPreset &eqPreset) : CPropertyPage(IDD_OPTIONS_PLAYER), m_EQPreset(eqPreset) {} -public: - static const EQPreset gEQPresets[]; - static EQPreset gUserPresets[]; - protected: virtual BOOL OnInitDialog(); + virtual void OnOK(); virtual BOOL OnSetActive(); + virtual void DoDataExchange(CDataExchange* pDX); + afx_msg void OnHScroll(UINT, UINT, CScrollBar *); afx_msg void OnSettingsChanged() { SetModified(TRUE); } + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); - - enum - { - EQPRESET_FLAT = 0, - EQPRESET_JAZZ, - EQPRESET_POP, - EQPRESET_ROCK, - EQPRESET_CONCERT, - EQPRESET_CLEAR, - }; - - afx_msg void OnEqFlat() { LoadEQPreset(gEQPresets[EQPRESET_FLAT]); }; - afx_msg void OnEqJazz() { LoadEQPreset(gEQPresets[EQPRESET_JAZZ]); }; - afx_msg void OnEqPop() { LoadEQPreset(gEQPresets[EQPRESET_POP]); }; - afx_msg void OnEqRock() { LoadEQPreset(gEQPresets[EQPRESET_ROCK]); }; - afx_msg void OnEqConcert() { LoadEQPreset(gEQPresets[EQPRESET_CONCERT]); }; - afx_msg void OnEqClear() { LoadEQPreset(gEQPresets[EQPRESET_CLEAR]); }; - - afx_msg void OnEqUser1() { LoadEQPreset(gUserPresets[0]); }; - afx_msg void OnEqUser2() { LoadEQPreset(gUserPresets[1]); }; - afx_msg void OnEqUser3() { LoadEQPreset(gUserPresets[2]); }; - afx_msg void OnEqUser4() { LoadEQPreset(gUserPresets[3]); }; - + afx_msg void OnEqUser1() { LoadEQPreset(TrackerSettings::Instance().m_EqUserPresets[0]); }; + afx_msg void OnEqUser2() { LoadEQPreset(TrackerSettings::Instance().m_EqUserPresets[1]); }; + afx_msg void OnEqUser3() { LoadEQPreset(TrackerSettings::Instance().m_EqUserPresets[2]); }; + afx_msg void OnEqUser4() { LoadEQPreset(TrackerSettings::Instance().m_EqUserPresets[3]); }; afx_msg void OnSavePreset(); afx_msg void OnSliderMenu(UINT); afx_msg void OnSliderFreq(UINT); - DECLARE_MESSAGE_MAP() + void UpdateDialog(); + void UpdateEQ(bool bReset); void LoadEQPreset(const EQPreset &preset); + + DECLARE_MESSAGE_MAP() }; Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2014-03-11 17:16:55 UTC (rev 3870) @@ -231,11 +231,19 @@ m_DSPSettings.m_nProLogicDelay = conf.Read<int32>("Effects", "ProLogicDelay", m_DSPSettings.m_nProLogicDelay); #endif #ifndef NO_EQ - m_EqSettings = conf.Read<EQPreset>("Effects", "EQ_Settings", CEQSetupDlg::gEQPresets[0]); - CEQSetupDlg::gUserPresets[0] = conf.Read<EQPreset>("Effects", "EQ_User1", CEQSetupDlg::gUserPresets[0]); - CEQSetupDlg::gUserPresets[1] = conf.Read<EQPreset>("Effects", "EQ_User2", CEQSetupDlg::gUserPresets[1]); - CEQSetupDlg::gUserPresets[2] = conf.Read<EQPreset>("Effects", "EQ_User3", CEQSetupDlg::gUserPresets[2]); - CEQSetupDlg::gUserPresets[3] = conf.Read<EQPreset>("Effects", "EQ_User4", CEQSetupDlg::gUserPresets[3]); + m_EqSettings = conf.Read<EQPreset>("Effects", "EQ_Settings", FlatEQPreset); + const EQPreset userPresets[] = + { + FlatEQPreset, // User1 + { "User 1", {16,16,16,16,16,16}, { 150, 350, 700, 1500, 4500, 8000 } }, // User2 + { "User 2", {16,16,16,16,16,16}, { 200, 400, 800, 1750, 5000, 9000 } }, // User3 + { "User 3", {16,16,16,16,16,16}, { 250, 450, 900, 2000, 5000, 10000 } } // User4 + }; + + m_EqUserPresets[0] = conf.Read<EQPreset>("Effects", "EQ_User1", userPresets[0]); + m_EqUserPresets[1] = conf.Read<EQPreset>("Effects", "EQ_User2", userPresets[1]); + m_EqUserPresets[2] = conf.Read<EQPreset>("Effects", "EQ_User3", userPresets[2]); + m_EqUserPresets[3] = conf.Read<EQPreset>("Effects", "EQ_User4", userPresets[3]); #endif // Display (Colors) GetDefaultColourScheme(rgbCustomColors); @@ -501,10 +509,10 @@ // Effects FixupEQ(&m_EqSettings); - FixupEQ(&CEQSetupDlg::gUserPresets[0]); - FixupEQ(&CEQSetupDlg::gUserPresets[1]); - FixupEQ(&CEQSetupDlg::gUserPresets[2]); - FixupEQ(&CEQSetupDlg::gUserPresets[3]); + FixupEQ(&m_EqUserPresets[0]); + FixupEQ(&m_EqUserPresets[1]); + FixupEQ(&m_EqUserPresets[2]); + FixupEQ(&m_EqUserPresets[3]); // Zxx Macros if((MAKE_VERSION_NUMERIC(1,17,00,00) <= storedVersion) && (storedVersion < MAKE_VERSION_NUMERIC(1,20,00,00))) @@ -755,7 +763,7 @@ if(pEqSettings->Gains[i] > 32) pEqSettings->Gains[i] = 16; if((pEqSettings->Freqs[i] < 100) || (pEqSettings->Freqs[i] > 10000)) - pEqSettings->Freqs[i] = CEQSetupDlg::gEQPresets[0].Freqs[i]; + pEqSettings->Freqs[i] = FlatEQPreset.Freqs[i]; } mpt::String::SetNullTerminator(pEqSettings->szName); } @@ -803,10 +811,10 @@ #endif #ifndef NO_EQ conf.Write<EQPreset>("Effects", "EQ_Settings", m_EqSettings); - conf.Write<EQPreset>("Effects", "EQ_User1", CEQSetupDlg::gUserPresets[0]); - conf.Write<EQPreset>("Effects", "EQ_User2", CEQSetupDlg::gUserPresets[1]); - conf.Write<EQPreset>("Effects", "EQ_User3", CEQSetupDlg::gUserPresets[2]); - conf.Write<EQPreset>("Effects", "EQ_User4", CEQSetupDlg::gUserPresets[3]); + conf.Write<EQPreset>("Effects", "EQ_User1", m_EqUserPresets[0]); + conf.Write<EQPreset>("Effects", "EQ_User2", m_EqUserPresets[1]); + conf.Write<EQPreset>("Effects", "EQ_User3", m_EqUserPresets[2]); + conf.Write<EQPreset>("Effects", "EQ_User4", m_EqUserPresets[3]); #endif // Display (Colors) Modified: trunk/OpenMPT/mptrack/TrackerSettings.h =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/TrackerSettings.h 2014-03-11 17:16:55 UTC (rev 3870) @@ -135,6 +135,9 @@ UINT Gains[MAX_EQ_BANDS]; UINT Freqs[MAX_EQ_BANDS]; }; + +static const EQPreset FlatEQPreset = { "Flat", {16,16,16,16,16,16}, { 125, 300, 600, 1250, 4000, 8000 } }; + #ifdef NEEDS_PRAGMA_PACK #pragma pack(pop) #endif @@ -440,6 +443,7 @@ #endif #ifndef NO_EQ EQPreset m_EqSettings; + EQPreset m_EqUserPresets[4]; #endif // Display (Colors) Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/mptrack.rc 2014-03-11 17:16:55 UTC (rev 3870) @@ -468,37 +468,60 @@ EDITTEXT IDC_EDIT3,26,87,212,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER END -IDD_OPTIONS_PLAYER DIALOGEX 0, 0, 272, 279 +IDD_OPTIONS_PLAYER DIALOGEX 0, 0, 286, 279 STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "DSP" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Control",IDC_STATIC,6,6,257,150 - CONTROL "Automatic Gain Control",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,97,10 - CONTROL "Enable Graphic Equalizer",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,135,20,107,10 - CONTROL "Noise reduction",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,82,10 - CONTROL "Bass Expansion",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,53,81,10 - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,65,62,15 - LTEXT "Low",IDC_STATIC,17,67,14,8 - LTEXT "High",IDC_STATIC,95,67,16,8 - LTEXT "Range:",IDC_STATIC,169,53,24,8 - CONTROL "Slider2",IDC_SLIDER2,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,149,64,62,15 - LTEXT "10Hz",IDC_STATIC,131,67,18,8 - LTEXT "100Hz",IDC_STATIC,211,66,23,8 - CONTROL "Reverb",IDC_CHECK6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,84,62,10 - CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,96,62,15 - LTEXT "Low",IDC_STATIC,17,100,14,8 - LTEXT "High",IDC_STATIC,95,100,16,8 - CTEXT "Reverb Preset:",IDC_STATIC,150,84,62,8 - COMBOBOX IDC_COMBO2,135,97,100,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Pro-Logic Surround",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,116,99,10 - CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,129,62,15 - LTEXT "Low",IDC_STATIC,17,132,14,8 - LTEXT "High",IDC_STATIC,95,132,16,8 - CTEXT "Front/Rear Delay:",IDC_STATIC,147,118,65,8 - CONTROL "Slider2",IDC_SLIDER6,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,149,128,62,15 - LTEXT "5ms",IDC_STATIC,131,131,18,8 - LTEXT "50ms",IDC_STATIC,211,131,23,8 + GROUPBOX "",IDC_STATIC,6,6,276,150 + CONTROL "Enable Graphic Equalizer",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,6,96,10 + LTEXT "+12dB",IDC_STATIC,12,21,22,8 + LTEXT "+0dB",IDC_STATIC,16,49,18,8 + LTEXT "-12dB",IDC_STATIC,14,74,20,8 + CTEXT "100Hz",IDC_TEXT1,37,87,28,8 + CONTROL "",IDC_SLIDER7,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | TBS_TOOLTIPS | WS_TABSTOP,38,18,24,68 + CTEXT "500Hz",IDC_TEXT2,71,87,29,8 + CONTROL "",IDC_SLIDER8,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | TBS_TOOLTIPS | WS_TABSTOP,72,18,24,68 + CTEXT "1kHz",IDC_TEXT3,108,87,25,8 + CONTROL "",IDC_SLIDER9,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | TBS_TOOLTIPS | WS_TABSTOP,106,18,24,68 + CTEXT "3kHz",IDC_TEXT4,143,87,23,8 + CONTROL "",IDC_SLIDER10,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | TBS_TOOLTIPS | WS_TABSTOP,140,18,24,68 + CTEXT "6kHz",IDC_TEXT5,177,87,21,8 + CONTROL "",IDC_SLIDER11,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | TBS_TOOLTIPS | WS_TABSTOP,174,18,24,68 + CTEXT "10kHz",IDC_TEXT6,210,87,22,8 + CONTROL "",IDC_SLIDER12,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | TBS_TOOLTIPS | WS_TABSTOP,206,18,24,68 + CTEXT "Right-click on a band to change its center frequency",IDC_STATIC,36,102,200,8 + PUSHBUTTON "User1",IDC_BUTTON1,240,18,36,12 + PUSHBUTTON "User2",IDC_BUTTON2,240,36,36,12 + PUSHBUTTON "User3",IDC_BUTTON3,240,54,36,12 + PUSHBUTTON "User4",IDC_BUTTON4,240,72,36,12 + PUSHBUTTON "Save...",IDC_BUTTON5,240,90,36,12 + LTEXT "EQ Warning Message",IDC_EQ_WARNING,12,114,264,36,0,WS_EX_TRANSPARENT + GROUPBOX "",IDC_STATIC,6,156,276,120 + CONTROL "Automatic Gain Control",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,164,97,10 + CONTROL "Noise reduction",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,132,164,82,10 + CONTROL "Bass Expansion",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,178,81,10 + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,191,62,15 + LTEXT "Low",IDC_STATIC,17,193,14,8 + LTEXT "High",IDC_STATIC,95,193,16,8 + LTEXT "Range:",IDC_STATIC,169,178,24,8 + CONTROL "Slider2",IDC_SLIDER2,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,149,190,62,15 + LTEXT "10Hz",IDC_STATIC,131,193,18,8 + LTEXT "100Hz",IDC_STATIC,211,191,23,8 + CONTROL "Reverb",IDC_CHECK6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,210,62,10 + CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,222,62,15 + LTEXT "Low",IDC_STATIC,17,226,14,8 + LTEXT "High",IDC_STATIC,95,226,16,8 + CTEXT "Reverb Preset:",IDC_STATIC,150,210,62,8 + COMBOBOX IDC_COMBO2,135,223,100,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Pro-Logic Surround",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,242,99,10 + CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,255,62,15 + LTEXT "Low",IDC_STATIC,17,258,14,8 + LTEXT "High",IDC_STATIC,95,258,16,8 + CTEXT "Front/Rear Delay:",IDC_STATIC,147,244,65,8 + CONTROL "Slider2",IDC_SLIDER6,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,149,254,62,15 + LTEXT "5ms",IDC_STATIC,131,257,18,8 + LTEXT "50ms",IDC_STATIC,211,257,23,8 END IDD_WAVECONVERT DIALOGEX 0, 0, 388, 239 @@ -1210,43 +1233,6 @@ GROUPBOX "",IDC_STATIC,6,6,108,60 END -IDD_SETUP_EQ DIALOGEX 0, 0, 240, 202 -STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Equalizer" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - GROUPBOX "",IDC_STATIC,4,3,232,150 - LTEXT "+12dB",IDC_STATIC,9,28,22,8 - LTEXT "+0dB",IDC_STATIC,13,56,18,8 - LTEXT "-12dB",IDC_STATIC,11,81,20,8 - CTEXT "6-Bands Graphic Equalizer",IDC_STATIC,61,12,144,8 - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,35,25,24,68 - CTEXT "100Hz",IDC_TEXT1,34,94,28,8 - CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,69,25,24,68 - CTEXT "500Hz",IDC_TEXT2,68,94,29,8 - CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,103,25,24,68 - CTEXT "1kHz",IDC_TEXT3,105,94,25,8 - CONTROL "Slider1",IDC_SLIDER7,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,137,25,24,68 - CTEXT "3kHz",IDC_TEXT4,140,94,23,8 - CONTROL "Slider1",IDC_SLIDER8,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,171,25,24,68 - CTEXT "6kHz",IDC_TEXT5,174,94,21,8 - CONTROL "Slider1",IDC_SLIDER9,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,203,25,24,68 - CTEXT "10kHz",IDC_TEXT6,207,94,22,8 - PUSHBUTTON "Flat",IDC_BUTTON1,19,108,30,12 - PUSHBUTTON "Jazz",IDC_BUTTON2,53,108,30,12 - PUSHBUTTON "Pop",IDC_BUTTON5,87,108,30,12 - PUSHBUTTON "Rock",IDC_BUTTON6,121,108,30,12 - PUSHBUTTON "Clear",IDC_BUTTON8,155,108,30,12 - PUSHBUTTON "Hall",IDC_BUTTON7,189,108,30,12 - PUSHBUTTON "User1",IDC_BUTTON3,19,124,30,12 - PUSHBUTTON "User2",IDC_BUTTON4,53,124,30,12 - PUSHBUTTON "User3",IDC_BUTTON9,87,124,30,12 - PUSHBUTTON "User4",IDC_BUTTON10,121,124,30,12 - 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 DIALOGEX 0, 0, 214, 151 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Identification" @@ -1636,7 +1622,7 @@ IDD_OPTIONS_PLAYER, DIALOG BEGIN - RIGHTMARGIN, 266 + RIGHTMARGIN, 280 VERTGUIDE, 50 VERTGUIDE, 169 VERTGUIDE, 256 @@ -1768,10 +1754,6 @@ BOTTOMMARGIN, 65 END - IDD_SETUP_EQ, DIALOG - BEGIN - END - IDD_OPTIONS_AUTHOR, DIALOG BEGIN BOTTOMMARGIN, 150 Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2014-03-11 16:18:35 UTC (rev 3869) +++ trunk/OpenMPT/mptrack/resource.h 2014-03-11 17:16:55 UTC (rev 3870) @@ -29,7 +29,6 @@ #define IDD_VIEW_GLOBALS 126 #define IDD_SAMPLE_AMPLIFY 130 #define IDD_SAMPLE_RESAMPLE 131 -#define IDD_SETUP_EQ 132 #define IDD_OPTIONS_EFFECTS 133 #define IDD_OPTIONS_AUTHOR 134 #define IDR_MAINFRAME 200 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |