#ifndef SoundControlH
#define SoundControlH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <mmsystem.h>
#include <mmreg.h>
bool GetVolumeControl(HMIXER hmixer ,long componentType,long ctrlType,MIXERCONTROL* mxc);
long GetMuteValue(HMIXER hmixer ,MIXERCONTROL *mxc) ;
unsigned GetVolumeValue(HMIXER hmixer ,MIXERCONTROL *mxc);
bool SetVolumeValue(HMIXER hmixer ,MIXERCONTROL *mxc, long volume);
bool SetMuteValue(HMIXER hmixer ,MIXERCONTROL *mxc, bool mute);
//下面四个是输出函数,可以自己调用
bool WINAPI SetVolume(long dev,long vol);//设置设备的音量
unsigned WINAPI GetVolume(int dev);//得到设备的音量dev=0主音量,1WAVE ,2MIDI ,3 LINE IN
bool WINAPI SetMute(long dev,bool vol);//设置设备静音
bool WINAPI GetMute(long dev);
#endif
bool GetVolumeControl(HMIXER hmixer ,long componentType,long ctrlType,MIXERCONTROL* mxc)
{
MIXERLINECONTROLS mxlc;
MIXERLINE mxl;
mxl.cbStruct = sizeof(mxl);
mxl.dwComponentType = componentType;
if(!mixerGetLineInfo((HMIXEROBJ)hmixer, &mxl, MIXER_GETLINEINFOF_COMPONENTTYPE))
{
mxlc.cbStruct = sizeof(mxlc);
mxlc.dwLineID = mxl.dwLineID;
mxlc.dwControlType = ctrlType;
mxlc.cControls = 1;
mxlc.cbmxctrl = sizeof(MIXERCONTROL);
mxlc.pamxctrl = mxc;
if(mixerGetLineControls((HMIXEROBJ)hmixer,&mxlc,MIXER_GETLINECONTROLSF_ONEBYTYPE))
return 0;
else
return 1;
}
return 0;
}
//---------------------------------------------------
#define SoundControlH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <mmsystem.h>
#include <mmreg.h>
bool GetVolumeControl(HMIXER hmixer ,long componentType,long ctrlType,MIXERCONTROL* mxc);
long GetMuteValue(HMIXER hmixer ,MIXERCONTROL *mxc) ;
unsigned GetVolumeValue(HMIXER hmixer ,MIXERCONTROL *mxc);
bool SetVolumeValue(HMIXER hmixer ,MIXERCONTROL *mxc, long volume);
bool SetMuteValue(HMIXER hmixer ,MIXERCONTROL *mxc, bool mute);
//下面四个是输出函数,可以自己调用
bool WINAPI SetVolume(long dev,long vol);//设置设备的音量
unsigned WINAPI GetVolume(int dev);//得到设备的音量dev=0主音量,1WAVE ,2MIDI ,3 LINE IN
bool WINAPI SetMute(long dev,bool vol);//设置设备静音
bool WINAPI GetMute(long dev);
#endif
bool GetVolumeControl(HMIXER hmixer ,long componentType,long ctrlType,MIXERCONTROL* mxc)
{
MIXERLINECONTROLS mxlc;
MIXERLINE mxl;
mxl.cbStruct = sizeof(mxl);
mxl.dwComponentType = componentType;
if(!mixerGetLineInfo((HMIXEROBJ)hmixer, &mxl, MIXER_GETLINEINFOF_COMPONENTTYPE))
{
mxlc.cbStruct = sizeof(mxlc);
mxlc.dwLineID = mxl.dwLineID;
mxlc.dwControlType = ctrlType;
mxlc.cControls = 1;
mxlc.cbmxctrl = sizeof(MIXERCONTROL);
mxlc.pamxctrl = mxc;
if(mixerGetLineControls((HMIXEROBJ)hmixer,&mxlc,MIXER_GETLINECONTROLSF_ONEBYTYPE))
return 0;
else
return 1;
}
return 0;
}
//---------------------------------------------------