001
01.06.2005, 19:09 Uhr
~TrialReg
Gast
|
C++: |
unsigned long SetVolume( DWORD compo, BYTE mute, BYTE vol ) { MIXERLINE mxl; MIXERLINECONTROLS mxlc; MIXERCONTROL mxc; MIXERCONTROLDETAILS mxcd; MIXERCONTROLDETAILS_UNSIGNED mxcdu;
mixerOpen( &hmx, 0,0,0,0);
memset( &mxl, 0, sizeof( mxl ) ); mxl.cbStruct=sizeof( mxl ); mxl.dwComponentType=compo; // MIXERLINE_COMPONENTTYPE_DST_SPEAKERS; mixerGetLineInfo( (HMIXEROBJ)hmx, &mxl, MIXER_GETLINEINFOF_COMPONENTTYPE );
memset( &mxlc, 0, sizeof( mxlc ) ); mxlc.cbStruct=sizeof( mxlc ); mxlc.dwLineID=mxl.dwLineID; mxlc.dwControlType=mute ? MIXERCONTROL_CONTROLTYPE_MUTE : MIXERCONTROL_CONTROLTYPE_VOLUME ; mxlc.cControls=1; mxlc.cbmxctrl=sizeof( mxc ); mxlc.pamxctrl=&mxc;
memset( &mxc, 0 , sizeof( mxc ) ); mxc.cbStruct=sizeof( mxc );
mixerGetLineControls( (HMIXEROBJ)hmx, &mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE );
memset( &mxcd, 0, sizeof( mxcd ) ); mxcd.cbStruct=sizeof( mxcd ); mxcd.dwControlID=mxc.dwControlID; mxcd.paDetails=&mxcdu; mxcd.cbDetails=sizeof( mxcdu );
memset( &mxcdu, 0 , sizeof( mxcdu ) ); mxcd.cChannels=1; mxcdu.dwValue=mute ? vol : ( ( 100 - vol ) * mxc.Bounds.lMaximum ) / 100; mixerSetControlDetails( (HMIXEROBJ)hmx, &mxcd, MIXER_SETCONTROLDETAILSF_VALUE ); mixerClose( hmx );
return true; }
|
Wichtig ist das mixerOpen im Vorfeld habs so in meiner internet cafe software rein getan öffne halt den mixer beim start und schliesse beim beenden, denn dann kann ich überprüfen ob es jemand versucht die lautstärke zu ändern falls ich sie eingegrenzt habe...
ich denke den rest sagt dir dann msdn ;-P hab auch ewig dran rum versucht...
mfg trialreg@trialreg.de Dieser Post wurde am 01.06.2005 um 19:35 Uhr von FloSoft editiert. |