SPDUI_AudioVolume (Windows Embedded CE 6.0)
1/6/2010
This variable defines the string for displaying an audio object's volume UI.
When to Implement
When writing a custom audio object, an application can modify the object's volume settings. For example, the SAPI implementation in the multimedia audio object displays the Windows Mixer associated with the audio device.
The Speech Control Panel allows the user to select the default audio input and output objects. Choose Volume to directly access each audio object's volume UI using SPDUI_AudioVolume. If the audio object does not support the Volume UI (see ISpTokenUI::IsUISupported), then Volume will be unavailable.
When to Access
The application accesses the audio object's volume UI if the output is too loud, or the input is too quiet.
Also, an SR Engine can send an SPEI_REQUEST_UI event to the application if it determines that the user should perform microphone training. Typically the UI type will be SPDUI_MicTraining to ensure that the SR Engine is adapted to the current input audio settings. The application could also take this opportunity to ask the user to verify the input audio settings. For example, if the audio input volume is very low, then it would be preferable to raise the audio input volume, rather than ask the SR Engine to amplify a poor audio input signal.
SAPI will generally not honor changes to the Windows Mixer settings. This Mixer is made available solely as a last resort in adjusting a misbehaving sound system when the Microphone Training wizard fails to set the volume suitably.
#define SPDUI_AudioVolume L"AudioVolume"
Example
The following code snippet illustrates the use of ISpTokenUI::IsUISupported using SPDUI_AudioVolume.
HRESULT hr = S_OK;
// get the default input audio object token
hr = SpGetDefaultTokenFromCategoryId(SPCAT_AUDIOIN, &cpObjectToken);
// Check hr
// get the object token's UI
hr = cpObjectToken->QueryInterface(&cpTokenUI);
// Check hr
// check if the default audio input object has UI for Volume
hr = cpTokenUI->IsUISupported(SPDUI_AudioVolume, NULL, NULL, NULL, &fSupported);
// Check hr
// if fSupported == TRUE, then default audio input object has UI for Properties