Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Lautstärke ändern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.05.2005, 15:30 Uhr
~_radix
Gast


Hallo,

wie kann man die Lautstärke (aber ohne DirectSound) ändern?

MfG radix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: