www.pudn.com > AVChat0926.rar > CSelfCheckDlg.cpp
// CSelfCheckDlg.cpp : implementation file // #include "stdafx.h" #include#include "AVChat.h" #include "CSelfCheckDlg.h" #include "CAVDevice.h" #include "CAudioCaptureFilter2.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSelfCheckDlg dialog CSelfCheckDlg::CSelfCheckDlg(CWnd* pParent /*=NULL*/) : CDialog(CSelfCheckDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSelfCheckDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT mVideoDevice = NULL; mAudioDevice = NULL; mDeviceConfig = 0; } void CSelfCheckDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSelfCheckDlg) DDX_Control(pDX, IDC_COMBO_AUDIO_INPUTS, mComboAudioInputs); DDX_Control(pDX, IDC_ADJUST_WINDOW, mVideoWindow); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CSelfCheckDlg, CDialog) //{{AFX_MSG_MAP(CSelfCheckDlg) ON_BN_CLICKED(IDC_BUTTON_AUDIO_CAPTURE, OnButtonAudioCapture) ON_BN_CLICKED(IDC_BUTTON_VIDEO_CAPTURE, OnButtonVideoCapture) ON_CBN_SELCHANGE(IDC_COMBO_AUDIO_INPUTS, OnSelchangeComboAudioInputs) ON_WM_DESTROY() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSelfCheckDlg message handlers void CSelfCheckDlg::SetAVDevice(CAVDevice * inVideo, CAVDevice * inAudio) { mVideoDevice = inVideo; mAudioDevice = inAudio; mDeviceAdmin.SetAVDevice(inVideo, inAudio); } BOOL CSelfCheckDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here mDeviceAdmin.SetVideoWindow(&mVideoWindow); if (mDeviceAdmin.Activate()) { FillAudioConnectors(); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CSelfCheckDlg::FillAudioConnectors(void) { mComboAudioInputs.ResetContent(); CAudioCaptureFilter2 * pFilter = NULL; pFilter = (CAudioCaptureFilter2 *) mDeviceAdmin.GetAudioInputFilter(); if (pFilter) { long count = pFilter->GetConnectorCount(); for (long i = 0; i < count; i++) { mComboAudioInputs.AddString(pFilter->GetConnectorName(i)); } mComboAudioInputs.SetCurSel(pFilter->GetConnector()); } } void CSelfCheckDlg::OnSelchangeComboAudioInputs() { int index = mComboAudioInputs.GetCurSel(); if (index >= 0) { CAudioCaptureFilter2 * pFilter = NULL; pFilter = (CAudioCaptureFilter2 *) mDeviceAdmin.GetAudioInputFilter(); if (pFilter) { pFilter->SetConnector(index); mAudioDevice->SetAudioConnector(index); } } } void CSelfCheckDlg::OnButtonAudioCapture() { mDeviceAdmin.ShowAudioCapturePropertyPage(); } void CSelfCheckDlg::OnButtonVideoCapture() { mDeviceAdmin.ShowVideoCapturePropertyPage(); } long CSelfCheckDlg::GetDeviceConfig(void) { return mDeviceConfig; } // Gather device info: has audio? has video? void CSelfCheckDlg::OnDestroy() { mDeviceAdmin.Deactivate(); // Video device int isVideoDisable = IsDlgButtonChecked(IDC_CHECK_VIDEO_DISABLE); if (mVideoDevice->IsDeviceAvailable() && !isVideoDisable) { mDeviceConfig |= Local_Has_Video; } // Audio device int isAudioDisable = IsDlgButtonChecked(IDC_CHECK_AUDIO_DISABLE); if (mAudioDevice->IsDeviceAvailable() && !isAudioDisable) { mDeviceConfig |= Local_Has_Audio; } CDialog::OnDestroy(); }