📄 setupaudiodlg.cpp
字号:
/*
VIS H.323 Video Conference System
--Sample for VIS H.323 DLL Library 2.1 Release
For more information,visit our homepage
[http://www.115studio.com]
or mail to us for tech support and bug report
[support@115studio.com]
2000-2004 115Studio
2004-04-05
*/
// SetupAudioDlg.cpp : implementation file
//
#include "stdafx.h"
#include "visconf.h"
#include "MyEndPoint.h"
#include "SetupAudioDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetupAudioDlg dialog
CSetupAudioDlg::CSetupAudioDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSetupAudioDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetupAudioDlg)
m_jitter = 0;
m_inputDevice = -1;
m_outputDevice = -1;
m_playReceivedVoice = FALSE;
m_preferredCodec = -1;
m_sendLocalVoice = FALSE;
m_silenceDtct = -1;
m_threshold = 0;
//}}AFX_DATA_INIT
}
void CSetupAudioDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetupAudioDlg)
DDX_Control(pDX, IDC_SPIN_THRESHOLD, m_spinThreshold);
DDX_Control(pDX, IDC_SILENCE_DETECTION, m_comboSilenceDtct);
DDX_Control(pDX, IDC_PREFERRED_CODEC, m_comboPreferredCodec);
DDX_Control(pDX, IDC_INPUT_VOLUME, m_sldInputVolume);
DDX_Control(pDX, IDC_OUTPUT_VOLUME, m_sldOutputVolume);
DDX_Control(pDX, IDC_SPIN_JITTER, m_spinJitter);
DDX_Control(pDX, IDC_OUTPUT_DEVICE, m_comboOutputDevice);
DDX_Control(pDX, IDC_INPUT_DEVICE, m_comboInputDevice);
DDX_Text(pDX, IDC_JITTER, m_jitter);
DDV_MinMaxUInt(pDX, m_jitter, 30, 1000);
DDX_CBIndex(pDX, IDC_INPUT_DEVICE, m_inputDevice);
DDX_CBIndex(pDX, IDC_OUTPUT_DEVICE, m_outputDevice);
DDX_Check(pDX, IDC_PLAY_RECEIVED_VOICE, m_playReceivedVoice);
DDX_CBIndex(pDX, IDC_PREFERRED_CODEC, m_preferredCodec);
DDX_Check(pDX, IDC_SEND_LOCAL_VOICE, m_sendLocalVoice);
DDX_CBIndex(pDX, IDC_SILENCE_DETECTION, m_silenceDtct);
DDX_Text(pDX, IDC_THRESHOLD, m_threshold);
DDV_MinMaxUInt(pDX, m_threshold, 0, 100);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetupAudioDlg, CDialog)
//{{AFX_MSG_MAP(CSetupAudioDlg)
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_INPUT_VOLUME, OnReleasedcaptureInputVolume)
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_OUTPUT_VOLUME, OnReleasedcaptureOutputVolume)
ON_CBN_SELCHANGE(IDC_INPUT_DEVICE, OnSelchangeInputDevice)
ON_CBN_SELCHANGE(IDC_OUTPUT_DEVICE, OnSelchangeOutputDevice)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetupAudioDlg message handlers
BOOL CSetupAudioDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_spinJitter.SetRange32(30,1000);
m_spinThreshold.SetRange32(0,100);
if(m_VolumeIn.Open(m_inputDevice,VOL_IN))
m_sldInputVolume.SetPos(m_VolumeIn.GetVolume());
else
m_sldInputVolume.EnableWindow(FALSE);
if(m_VolumeOut.Open(m_outputDevice,VOL_OUT))
m_sldOutputVolume.SetPos(m_VolumeOut.GetVolume());
else
m_sldOutputVolume.EnableWindow(FALSE);
char name[256]="";
for(DWORD i=0;i<CAudioRecorder::GetDeviceCount();i++)
{
CAudioRecorder::GetDeviceName(i,name,256);
m_comboInputDevice.AddString(name);
}
for(i=0;i<CAudioPlayer::GetDeviceCount();i++)
{
CAudioPlayer::GetDeviceName(i,name,256);
m_comboOutputDevice.AddString(name);
}
for(i=0;i<g_pep->GetAudioCodecCount();i++)
{
g_pep->GetAudioCodecName(i,name,256);
m_comboPreferredCodec.AddString(name);
}
m_comboSilenceDtct.AddString("None");
m_comboSilenceDtct.AddString("Fixed threshold");
m_comboSilenceDtct.AddString("Adaptive threshold");
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetupAudioDlg::OnReleasedcaptureInputVolume(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_VolumeIn.SetVolume(m_sldInputVolume.GetPos());
*pResult = 0;
}
void CSetupAudioDlg::OnReleasedcaptureOutputVolume(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_VolumeOut.SetVolume(m_sldOutputVolume.GetPos());
*pResult = 0;
}
void CSetupAudioDlg::OnSelchangeInputDevice()
{
// TODO: Add your control notification handler code here
UpdateData();
m_sldInputVolume.SetPos(0);
if(m_VolumeIn.Open(m_inputDevice,VOL_IN))
{
m_sldInputVolume.EnableWindow(TRUE);
m_sldInputVolume.SetPos(m_VolumeIn.GetVolume());
}
else
m_sldInputVolume.EnableWindow(FALSE);
}
void CSetupAudioDlg::OnSelchangeOutputDevice()
{
// TODO: Add your control notification handler code here
UpdateData();
m_sldOutputVolume.SetPos(0);
if(m_VolumeIn.Open(m_outputDevice,VOL_OUT))
{
m_sldOutputVolume.EnableWindow(TRUE);
m_sldOutputVolume.SetPos(m_VolumeOut.GetVolume());
}
else
m_sldOutputVolume.EnableWindow(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -