C++ Builder Snippets  

Lautstärke für die Wave-Wiedergabe auslesen/ändern:
 
//---------------------------------------------------------------------------
// Funktion GetWaveVolumePercent() ermittelt die aktuelle Lautstärke des
// rechten oder des linken Lautsprechers in Prozent von der max. Lautstärke.
// Übergabeparameter: false für den rechten und true für den linken Lautsprecher
//---------------------------------------------------------------------------
double GetWaveVolumePercent(bool blLeft)
{
  unsigned long ulCurrentVolume = 0;
  if(waveOutGetVolume(0, (LPDWORD) &ulCurrentVolume) == MMSYSERR_NOERROR)
  {
    if(blLeft) return double(double(LOWORD(ulCurrentVolume))*100.0/65535.0);
    else return double(double(HIWORD(ulCurrentVolume))*100.0/65535.0);
  }
  else return 0.0;
}

//---------------------------------------------------------------------------
// Funktion SetWaveVolumePercent() setzt die aktuelle Lautstärke des
// rechten oder des linken Lautsprechers in Prozent von der max. Lautstärke.
// Übergabeparameter: dlValue = die neue Lautstärke in % von der max. möglichen,
// blLeft = false für den rechten und true für den linken Lautsprecher
//---------------------------------------------------------------------------
bool SetWaveVolumePercent(double dlValue, bool blLeft)
{
  unsigned long ulCurrentVolume = 0;
  if(dlValue < 0.0) dlValue = 0.0;
  else if(dlValue > 100.0) dlValue = 100.0;
  if(waveOutGetVolume(0, (LPDWORD) &ulCurrentVolume) == MMSYSERR_NOERROR)
  {
    WORD ilNewVolume = int(double(65535.0)/100.0*dlValue);
    if(blLeft) ulCurrentVolume = ulCurrentVolume & 0xFFFF0000 | ilNewVolume;
    else ulCurrentVolume = ulCurrentVolume & 0x0000FFFF | ilNewVolume*0x10000;
    return waveOutSetVolume(0, ulCurrentVolume) == MMSYSERR_NOERROR;
  }
  else return false;
}


  Download BCB5
Projekt-Quellcode
Download
Demo-Exe


© '99-2001 by S. Kreutzmann