blob: 51a6690b4c5d2784d22d4e8a8c23058edfe59056 [file] [log] [blame] [raw]
#include "resource.h"
#include "stdafx.h"
#include "registry.h"
#include <prsht.h>
#include "PropPageAudio.h"
CPropPageAudio::CPropPageAudio(void)
{
m_psp.dwFlags |= PSP_USEICONID;
m_psp.pszIcon = MAKEINTRESOURCE(IDI_PROPPAGEAUDIO);
m_psp.hInstance = _Module.GetResourceInstance();
// grab current settings from registry
vSamplingRate = 0;
getRegistryValue(_T("SampleRate"), vSamplingRate);
if (!vSamplingRate || vSamplingRate > 192000) vSamplingRate = 48000;
vFilterOrder = 0;
getRegistryValue(_T("FilterOrder"), vFilterOrder);
if (!vFilterOrder || vFilterOrder > 128 || vFilterOrder < 4) vFilterOrder = 12;
vLatency = 0;
getRegistryValue(_T("BufferLengthInMsec"), vLatency);
if (!vLatency || vLatency > 1000) vLatency = 400;
vAutoSkipInterval = 0;
getRegistryValue(_T("AutoSkipInterval"), vAutoSkipInterval);
if (vAutoSkipInterval > 3600) vAutoSkipInterval = 0;
}
LPARAM CPropPageAudio::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
{
if (!ebLatency.m_hWnd) {
ebLatency.Attach(GetDlgItem(IDC_EDIT_BUFLEN));
}
if (!sbLatency.m_hWnd)
sbLatency.Attach(GetDlgItem(IDC_SPIN_BUFLEN));
sbLatency.SetRange(40, 500);
//
if (!ebFilterOrder.m_hWnd) {
ebFilterOrder.Attach(GetDlgItem(IDC_EDIT_FILTERORDER));
}
if (!sbFilterOrder.m_hWnd)
sbFilterOrder.Attach(GetDlgItem(IDC_SPIN_FILTERORDER));
//
if (!ebAutoSkip.m_hWnd) {
ebAutoSkip.Attach(GetDlgItem(IDC_EDIT_AUTOSKIPTIME));
}
if (!sbAutoSkip.m_hWnd)
sbAutoSkip.Attach(GetDlgItem(IDC_SPIN_AUTOSKIPTIME));
//
if (!cbSamplingRate.m_hWnd)
cbSamplingRate.Attach(GetDlgItem(IDC_COMBO_SAMPLEFREQ));
//
cbSamplingRate.AddString(_T("192000"));
cbSamplingRate.AddString(_T("110840"));
cbSamplingRate.AddString(_T("96000"));
cbSamplingRate.AddString(_T("55420"));
cbSamplingRate.AddString(_T("48000"));
cbSamplingRate.AddString(_T("44100"));
cbSamplingRate.AddString(_T("22050"));
_TCHAR txt[64];
_stprintf(txt, _T("%u"), vSamplingRate);
cbSamplingRate.SetWindowText(txt);
//
_stprintf(txt, _T("%u"), vFilterOrder);
ebFilterOrder.SetWindowText(txt);
//
_stprintf(txt, _T("%u"), vLatency);
ebLatency.SetWindowText(txt);
//
_stprintf(txt, _T("%u"), vAutoSkipInterval);
ebAutoSkip.SetWindowText(txt);
sbLatency.SetRange(40, 1000);
sbFilterOrder.SetRange(4, 128);
sbAutoSkip.SetRange(0, 3600);
return 0;
}
LRESULT CPropPageAudio::OnDefaultClick(WORD wNotifyCode, WORD wID, HWND hwndCtl, BOOL& bHandled)
{
_TCHAR txt[64];
vSamplingRate = 48000;
_stprintf(txt, _T("%u"), vSamplingRate);
cbSamplingRate.SetWindowText(txt);
vFilterOrder = 12;
_stprintf(txt, _T("%u"), vFilterOrder);
ebFilterOrder.SetWindowText(txt);
vLatency = 400;
_stprintf(txt, _T("%u"), vLatency);
ebLatency.SetWindowText(txt);
vAutoSkipInterval = 0;
_stprintf(txt, _T("%u"), vAutoSkipInterval);
ebAutoSkip.SetWindowText(txt);
return 0;
}
int CPropPageAudio::OnApply()
{
BOOL retval = DoDataExchange(true);
if (retval) {
vLatency = GetDlgItemInt(IDC_EDIT_BUFLEN);
vSamplingRate = GetDlgItemInt(IDC_COMBO_SAMPLEFREQ);
vFilterOrder = GetDlgItemInt(IDC_EDIT_FILTERORDER);
vAutoSkipInterval = GetDlgItemInt(IDC_EDIT_AUTOSKIPTIME);
}
return retval ? PSNRET_NOERROR : PSNRET_INVALID;
}
LRESULT CPropPageAudio::OnSpinButton(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
bHandled = FALSE;
return bHandled;
}
LRESULT CPropPageAudio::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return 0L;
}