From: <man...@us...> - 2013-08-06 17:16:45
|
Revision: 2587 http://sourceforge.net/p/modplug/code/2587 Author: manxorist Date: 2013-08-06 17:16:38 +0000 (Tue, 06 Aug 2013) Log Message: ----------- [Mod] Split channel and sample format selection in soundcard settings dialog. Modified Paths: -------------- trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/Mpdlgs.h trunk/OpenMPT/mptrack/mptrack.rc Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2013-08-06 15:41:17 UTC (rev 2586) +++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2013-08-06 17:16:38 UTC (rev 2587) @@ -72,6 +72,7 @@ ON_CBN_SELCHANGE(IDC_COMBO3, OnSettingsChanged) ON_CBN_SELCHANGE(IDC_COMBO4, OnSettingsChanged) ON_CBN_SELCHANGE(IDC_COMBO5, OnSettingsChanged) + ON_CBN_SELCHANGE(IDC_COMBO6, OnSettingsChanged) ON_CBN_EDITCHANGE(IDC_COMBO2, OnSettingsChanged) ON_CBN_EDITCHANGE(IDC_COMBO_UPDATEINTERVAL, OnSettingsChanged) END_MESSAGE_MAP() @@ -108,7 +109,8 @@ DDX_Control(pDX, IDC_COMBO_UPDATEINTERVAL, m_CbnUpdateIntervalMS); DDX_Control(pDX, IDC_COMBO3, m_CbnMixingFreq); DDX_Control(pDX, IDC_COMBO4, m_CbnPolyphony); - DDX_Control(pDX, IDC_COMBO5, m_CbnQuality); + DDX_Control(pDX, IDC_COMBO5, m_CbnChannels); + DDX_Control(pDX, IDC_COMBO6, m_CbnSampleFormat); DDX_Control(pDX, IDC_SLIDER1, m_SliderStereoSep); DDX_Control(pDX, IDC_SLIDER_PREAMP, m_SliderPreAmp); DDX_Control(pDX, IDC_EDIT_STATISTICS, m_EditStatistics); @@ -250,52 +252,74 @@ UpdateControls(m_nSoundDevice); } - UpdateChannelsFormat(m_nSoundDevice); + UpdateChannels(m_nSoundDevice); + UpdateSampleFormat(m_nSoundDevice); return TRUE; } -void COptionsSoundcard::UpdateChannelsFormat(int dev) -//--------------------------------------------------- +void COptionsSoundcard::UpdateChannels(int dev) +//--------------------------------------------- { - // Sample Format + UNREFERENCED_PARAMETER(dev); CHAR s[128]; UINT n = 0; - m_CbnQuality.ResetContent(); + m_CbnChannels.ResetContent(); for(UINT channels = 4; channels >= 1; channels /= 2) { - for(UINT bits = 32; bits >= 8; bits -= 8) + if(channels > 2 && !theApp.IsWaveExEnabled()) { - if(channels > 2 && bits > 16 && !theApp.IsWaveExEnabled()) + continue; + } + wsprintf(s, "%s", gszChnCfgNames[(channels+2)/2-1]); + UINT ndx = m_CbnChannels.AddString(s); + m_CbnChannels.SetItemData(ndx, channels); + if(channels == m_nChannels) + { + n = ndx; + } + } + m_CbnChannels.SetCurSel(n); +} + + +void COptionsSoundcard::UpdateSampleFormat(int dev) +//------------------------------------------------- +{ + CHAR s[128]; + UINT n = 0; + m_CbnSampleFormat.ResetContent(); + for(UINT bits = 32; bits >= 8; bits -= 8) + { + if(bits > 16 && !theApp.IsWaveExEnabled() && SNDDEV_GET_TYPE(dev) != SNDDEV_ASIO) + { + continue; + } + if(bits != 16 && bits != 32 && SNDDEV_GET_TYPE(dev) == SNDDEV_ASIO) + { + // CASIODevice only supports 16bit or 32bit input for now + continue; + } + if(bits == 32 && SNDDEV_GET_TYPE(dev) != SNDDEV_ASIO) + { + wsprintf(s, "Floating Point"); + UINT ndx = m_CbnSampleFormat.AddString(s); + m_CbnSampleFormat.SetItemData(ndx, (32+128)); + if(SampleFormatFloat32 == m_SampleFormat) { - continue; - } - if(bits != 16 && bits !=32 && SNDDEV_GET_TYPE(dev) == SNDDEV_ASIO) - { - // CASIODevice only supports 16bit or 32bit input for now - continue; - } - if(bits == 32 && SNDDEV_GET_TYPE(dev) != SNDDEV_ASIO) - { - wsprintf(s, "%s, %d Bits, Float", gszChnCfgNames[(channels+2)/2-1], bits); - UINT ndx = m_CbnQuality.AddString(s); - m_CbnQuality.SetItemData(ndx, (channels << 8) | (32+128)); - if((SampleFormat)(32+128) == m_SampleFormat && channels == m_nChannels) - { - n = ndx; - } - } - wsprintf(s, "%s, %d Bit", gszChnCfgNames[(channels+2)/2-1], bits); - UINT ndx = m_CbnQuality.AddString(s); - m_CbnQuality.SetItemData(ndx, (channels << 8) | bits); - if((SampleFormat)bits == m_SampleFormat && channels == m_nChannels) - { n = ndx; } } + wsprintf(s, "%d Bit", bits); + UINT ndx = m_CbnSampleFormat.AddString(s); + m_CbnSampleFormat.SetItemData(ndx, bits); + if((SampleFormat)bits == m_SampleFormat) + { + n = ndx; + } } - m_CbnQuality.SetCurSel(n); + m_CbnSampleFormat.SetCurSel(n); } @@ -365,7 +389,8 @@ int dev = m_CbnDevice.GetItemData(n); UpdateControls(dev); UpdateSampleRates(dev); - UpdateChannelsFormat(dev); + UpdateChannels(dev); + UpdateSampleFormat(dev); OnSettingsChanged(); } } @@ -467,12 +492,16 @@ { m_dwRate = m_CbnMixingFreq.GetItemData(m_CbnMixingFreq.GetCurSel()); } - // Quality + // Channels { - UINT n = m_CbnQuality.GetItemData( m_CbnQuality.GetCurSel() ); - m_nChannels = n >> 8; + UINT n = m_CbnChannels.GetItemData(m_CbnChannels.GetCurSel()); + m_nChannels = n; + if((m_nChannels != 1) && (m_nChannels != 4))m_nChannels = 2; + } + // SampleFormat + { + UINT n = m_CbnSampleFormat.GetItemData(m_CbnSampleFormat.GetCurSel()); m_SampleFormat = (SampleFormat)(n & 0xFF); - if ((m_nChannels != 1) && (m_nChannels != 4)) m_nChannels = 2; } // Polyphony { Modified: trunk/OpenMPT/mptrack/Mpdlgs.h =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.h 2013-08-06 15:41:17 UTC (rev 2586) +++ trunk/OpenMPT/mptrack/Mpdlgs.h 2013-08-06 17:16:38 UTC (rev 2587) @@ -21,7 +21,7 @@ { protected: CComboBoxEx m_CbnDevice; - CComboBox m_CbnLatencyMS, m_CbnUpdateIntervalMS, m_CbnMixingFreq, m_CbnPolyphony, m_CbnQuality; + CComboBox m_CbnLatencyMS, m_CbnUpdateIntervalMS, m_CbnMixingFreq, m_CbnPolyphony, m_CbnChannels, m_CbnSampleFormat; CSliderCtrl m_SliderStereoSep, m_SliderPreAmp; CEdit m_EditStatistics; DWORD m_dwRate, m_SoundDeviceFlags; @@ -41,7 +41,8 @@ private: void UpdateSampleRates(int dev); - void UpdateChannelsFormat(int dev); + void UpdateChannels(int dev); + void UpdateSampleFormat(int dev); void UpdateControls(int dev); void SetPreAmpSliderPosition(); Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2013-08-06 15:41:17 UTC (rev 2586) +++ trunk/OpenMPT/mptrack/mptrack.rc 2013-08-06 17:16:38 UTC (rev 2587) @@ -1257,18 +1257,22 @@ CAPTION "Sound Card" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + GROUPBOX "",IDC_STATIC,6,6,258,114 LTEXT "Sound Device:",IDC_STATIC,12,18,54,8 CONTROL "",IDC_COMBO1,"ComboBoxEx32",CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,12,30,246,96 - LTEXT "Latency:",IDC_STATIC,12,48,60,12,SS_CENTERIMAGE - COMBOBOX IDC_COMBO2,78,48,72,83,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - CONTROL "Use device exclusively",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,48,102,12 - LTEXT "Update Interval:",IDC_STATIC_UPDATEINTERVAL,12,66,60,12,SS_CENTERIMAGE - COMBOBOX IDC_COMBO_UPDATEINTERVAL,78,66,72,83,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - LTEXT "Mixing Quality:",IDC_STATIC,12,84,57,12,SS_CENTERIMAGE - COMBOBOX IDC_COMBO3,78,84,72,90,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_COMBO5,156,84,72,80,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Max. Polyphony:",IDC_STATIC,12,102,57,12,SS_CENTERIMAGE - COMBOBOX IDC_COMBO4,78,102,72,88,CBS_DROPDOWNLIST | WS_TABSTOP + LTEXT "Latency:",IDC_STATIC,12,48,54,12,SS_CENTERIMAGE + COMBOBOX IDC_COMBO2,72,48,66,83,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + CONTROL "Use device exclusively",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,144,48,102,12 + LTEXT "Update Interval:",IDC_STATIC_UPDATEINTERVAL,12,66,54,12,SS_CENTERIMAGE + COMBOBOX IDC_COMBO_UPDATEINTERVAL,72,66,66,83,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + CONTROL "Boost thread priority",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,144,66,89,12 + LTEXT "Output format:",IDC_STATIC,12,84,54,12,SS_CENTERIMAGE + COMBOBOX IDC_COMBO3,72,84,66,90,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO5,144,84,42,80,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO6,192,84,66,80,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Max. Polyphony:",IDC_STATIC,12,102,54,12,SS_CENTERIMAGE + COMBOBOX IDC_COMBO4,72,102,66,88,CBS_DROPDOWNLIST | WS_TABSTOP + GROUPBOX "",IDC_STATIC,6,126,258,90 CONTROL "Soft Panning",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,138,78,12 LTEXT "Stereo Separation:",IDC_STATIC,12,157,62,8 LTEXT "100%",IDC_TEXT1,80,157,20,8 @@ -1279,9 +1283,6 @@ CONTROL "Slider2",IDC_SLIDER_PREAMP,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOOLTIPS | WS_TABSTOP,174,168,74,24 LTEXT "Note: The Pre-Amp and Soft Panning settings are ignored by songs with mix levels set to 1.17RC3 or later in the Song Properties.",IDC_STATIC,12,195,246,18 EDITTEXT IDC_EDIT_STATISTICS,6,222,258,36,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP - GROUPBOX "",IDC_STATIC,6,6,258,114 - GROUPBOX "",IDC_STATIC,6,126,258,90 - CONTROL "Boost thread priority",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,66,89,12 END IDD_MIDIMACRO DIALOGEX 0, 0, 358, 354 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |