⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setupaudiodlg.cpp

📁 VIS H.323 Library V2.1 Release
💻 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 + -