www.pudn.com > 1littlebox.rar > VolumeControl.cpp


// VolumeControl.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "littlebox.h" 
#include "VolumeControl.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CVolumeControl dialog 
 
 
CVolumeControl::CVolumeControl(CWnd* pParent /*=NULL*/) 
	: CDialog(CVolumeControl::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CVolumeControl) 
	//}}AFX_DATA_INIT 
} 
 
 
void CVolumeControl::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CVolumeControl) 
	DDX_Control(pDX, IDC_EDIT1, m_static_key); 
	DDX_Control(pDX, IDC_SLIDER5, m_wave_out_right_control); 
	DDX_Control(pDX, IDC_SLIDER3, m_wave_out_left_control); 
	DDX_Control(pDX, IDC_SLIDER1, m_main_left_control); 
	DDX_Control(pDX, IDC_SLIDER2, m_main_right_control); 
	DDX_Control(pDX, IDC_PROGRESS1, m_wave_out_left_show); 
	DDX_Control(pDX, IDC_PROGRESS2, m_wave_out_right_show); 
	DDX_Control(pDX, IDC_PROGRESS3, m_micphone_show); 
	DDX_Control(pDX, IDC_SLIDER6, m_micphone_control); 
	DDX_Control(pDX, IDC_BUTTON5, m_mute_micphone); 
	DDX_Control(pDX, IDC_BUTTON2, m_mute_wave_out); 
	DDX_Control(pDX, IDC_BUTTON1, m_mute_main); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CVolumeControl, CDialog) 
	//{{AFX_MSG_MAP(CVolumeControl) 
	ON_BN_CLICKED(IDC_BUTTON1, OnMuteMain) 
	ON_BN_CLICKED(IDC_BUTTON2, OnMuteWave) 
	ON_BN_CLICKED(IDC_BUTTON5, OnMuteMicphone) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CVolumeControl message handlers 
BOOL CVolumeControl::OnInitDialog() 
{ 
	CDialog::OnInitDialog(); 
	 
	//TODO:Add you code here 
 
    DWORD vl,vr; 
	m_vvv.Create(this,MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,-1,MIXERCONTROL_CONTROLTYPE_VOLUME); 
	m_mmv.Create(this,MIXERLINE_COMPONENTTYPE_DST_SPEAKERS,-1); 
	m_vvv.GetValue(&vl,&vr);  
	m_wave_out_left_control.SetRange(m_vvv.GetMin(),m_vvv.GetMax());m_wave_out_left_control.SetTicFreq(m_vvv.GetMax()/15);   
	m_wave_out_right_control.SetRange(m_vvv.GetMin(),m_vvv.GetMax());m_wave_out_right_control.SetTicFreq(m_vvv.GetMax()/15);   
	m_wave_out_left_control.SetPos(m_wave_out_left_control.GetRangeMax()-m_wave_out_left_control.GetRangeMin()-vl);  
	m_wave_out_right_control.SetPos(m_wave_out_right_control.GetRangeMax()-m_wave_out_right_control.GetRangeMin()-vr);  
	m_mute_main.SetCheck(m_mmv.GetValue());   
 
    SetTimer(1,100,NULL); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
	return TRUE;  
} 
void CVolumeControl::OnMuteMain()  
{ 
	// TODO: Add your control notification handler code here 
	m_mmm.SetValue(m_mute_main.GetCheck());   
} 
 
void CVolumeControl::OnMuteWave()  
{ 
	// TODO: Add your control notification handler code here 
	m_mmv.SetValue(m_mute_wave_out.GetCheck());   
} 
 
void CVolumeControl::OnMuteMicphone()  
{ 
	// TODO: Add your control notification handler code here 
	m_mmw.SetValue(m_mute_micphone.GetCheck());  		 
 
} 
 
void CVolumeControl::OnPaint()  
{ 
 
} 
 
HCURSOR CVolumeControl::OnQueryDragIcon() 
{ 
	return (HCURSOR) m_hIcon; 
} 
 
void CVolumeControl::OnClose()  
{ 
	m_vvv.Close(); 
	m_vvm.Close(); 
	m_vvw.Close(); 
	m_mmv.Close(); 
	m_mmm.Close(); 
	m_mmw.Close(); 
	CDialog::OnClose(); 
} 
 
void CVolumeControl::OnTimer(UINT nIDEvent)  
{ 
	DWORD vl,vr; 
	m_ppw.GetValue(&vl,&vr); 
	m_wave_out_left_show.SetPos(m_ppw.GetMax()-vl); 
	m_wave_out_right_show.SetPos(m_ppw.GetMax()-vr); 
	m_ppm.GetValue(&vl,&vr);  
	m_micphone_show.SetPos(m_ppm.GetMax()-vl);   
	m_vvw.GetValue(&vl,&vr); 
	m_main_left_control.SetPos(m_vvw.GetMax()-vl); 
	m_main_right_control.SetPos(m_vvw.GetMax()-vr); 
	CDialog::OnTimer(nIDEvent); 
} 
void CVolumeControl::OnSize(UINT nType, int cx, int cy)  
{ 
	CDialog::OnSize(nType, cx, cy); 
	if(cx<=0||cy<=0) KillTimer(1); 
	else SetTimer(1,100,NULL); 
} 
void CVolumeControl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)  
{ 
	CSliderCtrl *m_bar=(CSliderCtrl *)pScrollBar; 
	if(m_bar==&m_main_left_control||m_bar==&m_main_right_control) 
		m_vvv.SetValue(m_main_left_control.GetRangeMax()- 
		m_main_left_control.GetRangeMin()-m_main_left_control.GetPos(), 
		m_main_right_control.GetRangeMax()-m_main_right_control.GetRangeMin() 
		-m_main_right_control.GetPos());   
	 
	else if(m_bar==&m_wave_out_left_control||m_bar==&m_wave_out_right_control) 
		m_vvw.SetValue(m_wave_out_left_control.GetRangeMax()- 
		m_wave_out_left_control.GetRangeMin()-m_wave_out_left_control.GetPos(), 
		m_wave_out_right_control.GetRangeMax()- 
		m_wave_out_right_control.GetRangeMin()- 
		m_wave_out_right_control.GetPos());    
	 
	 
	 
	else if(m_bar==&m_micphone_control) 
		m_vvm.SetValue(m_micphone_control.GetRangeMax()- 
		m_micphone_control.GetRangeMin()- 
		m_micphone_control.GetPos(),m_micphone_control.GetRangeMax()- 
		m_micphone_control.GetRangeMin() 
		-m_micphone_control.GetPos());    
	 
	  CDialog::OnVScroll(nSBCode, nPos, pScrollBar); 
} 
void CVolumeControl::OnMixerChange(WPARAM wparam, LPARAM lparam) 
{ 
	DWORD vl,vr; 
	if((DWORD)lparam==m_vvv.m_controlid) 
	{ 
		m_vvv.GetValue(&vl,&vr); 
		m_main_left_control.SetPos(m_main_left_control.GetRangeMax()- 
			m_main_left_control.GetRangeMin()-vl); 
		m_main_right_control.SetPos(m_main_right_control.GetRangeMax()- 
			m_main_right_control.GetRangeMin()-vr);  
	} 
	else if((DWORD)lparam==m_mmv.m_controlid) 
		 m_mute_main.SetCheck(m_mmv.GetValue()); 
	else if((DWORD)lparam==m_vvw.m_controlid) 
	{ 
		m_vvw.GetValue(&vl,&vr); 
		m_wave_out_left_control.SetPos(m_wave_out_left_control.GetRangeMax()- 
			m_wave_out_left_control.GetRangeMin()-vl); 
		m_wave_out_right_control.SetPos(m_wave_out_right_control.GetRangeMax()- 
			m_wave_out_right_control.GetRangeMin()-vr);  
	} 
	else if((DWORD)lparam==m_mmw.m_controlid) 
		 m_mute_wave_out.SetCheck(m_mmw.GetValue()); 
	else if((DWORD)lparam==m_vvm.m_controlid) 
	{ 
		m_vvm.GetValue(&vl,&vr); 
		m_micphone_control.SetPos(m_micphone_control.GetRangeMax()- 
			m_micphone_control.GetRangeMin()-vl); 
	} 
	else if((DWORD)lparam==m_mmm.m_controlid) 
		 m_mute_micphone.SetCheck(m_mmm.GetValue()); 
}