ISpAudio::SetVolumeLevel (SAPI 5.3)
ISpAudio::SetVolumeLevel sets the current volume level. It is on a linear scale from zero to 10000.
HRESULT SetVolumeLevel( ULONG Level );
- [in] The new volume level.
|S_OK||Function completed successfully.|
|E_INVALIDARG||Level is greater than 10,000.|
|SPERR_DEVICE_NOT_SUPPORTED||The device is not valid or does not support volumes.|
|FAILED(hr)||Appropriate error message.|
For input devices with a boost control for the microphone, SAPI will split the volume range into two to allow automated use of the boost. The boost will be off from zero to 4,999 and on from 5,000 to 10,000. In each range, the full volume range of the device will be used independently. This can lead to discontinuity in the input energy level for a constant volume sound source. On some sound cards, the boost is applied to the input volume, but on others, the boost is applied to the playback volume resulting in the two ranges performing identically because the input level is unaffected.
Microphone wizards determining the best volume input level should take into consideration the potential discontinuity and ensure that the algorithm used to adjust the input volume level can handle the various possible forms of discontinuity at 5,000
For devices without a boost, there is no discontinuity at 5,000.