AUDIO_VOLUME_NOTIFICATION_DATA structure (endpointvolume.h)
The AUDIO_VOLUME_NOTIFICATION_DATA structure describes a change in the volume level or muting state of an audio endpoint device.
Syntax
typedef struct AUDIO_VOLUME_NOTIFICATION_DATA {
GUID guidEventContext;
BOOL bMuted;
float fMasterVolume;
UINT nChannels;
float afChannelVolumes[1];
} AUDIO_VOLUME_NOTIFICATION_DATA, *PAUDIO_VOLUME_NOTIFICATION_DATA;
Members
guidEventContext
Context value for the IAudioEndpointVolumeCallback::OnNotify method. This member is the value of the event-context GUID that was provided as an input parameter to the IAudioEndpointVolume method call that changed the endpoint volume level or muting state. For more information, see Remarks.
bMuted
Specifies whether the audio stream is currently muted. If bMuted is TRUE, the stream is muted. If FALSE, the stream is not muted.
fMasterVolume
Specifies the current master volume level of the audio stream. The volume level is normalized to the range from 0.0 to 1.0, where 0.0 is the minimum volume level and 1.0 is the maximum level. Within this range, the relationship of the normalized volume level to the attenuation of signal amplitude is described by a nonlinear, audio-tapered curve. For more information about audio tapers, see Audio-Tapered Volume Controls.
nChannels
Specifies the number of channels in the audio stream, which is also the number of elements in the afChannelVolumes array. If the audio stream contains n channels, the channels are numbered from 0 to n-1. The volume level for a particular channel is contained in the array element whose index matches the channel number.
afChannelVolumes[1]
The first element in an array of channel volumes. This element contains the current volume level of channel 0 in the audio stream. If the audio stream contains more than one channel, the volume levels for the additional channels immediately follow the AUDIO_VOLUME_NOTIFICATION_DATA structure. The volume level for each channel is normalized to the range from 0.0 to 1.0, where 0.0 is the minimum volume level and 1.0 is the maximum level. Within this range, the relationship of the normalized volume level to the attenuation of signal amplitude is described by a nonlinear, audio-tapered curve.
Remarks
This structure is used by the IAudioEndpointVolumeCallback::OnNotify method.
A client can register to be notified when the volume level or muting state of an endpoint device changes. The following methods can cause such a change:
- IAudioEndpointVolume::SetChannelVolumeLevel
- IAudioEndpointVolume::SetChannelVolumeLevelScalar
- IAudioEndpointVolume::SetMasterVolumeLevel
- IAudioEndpointVolume::SetMasterVolumeLevelScalar
- IAudioEndpointVolume::SetMute
- IAudioEndpointVolume::VolumeStepDown
- IAudioEndpointVolume::VolumeStepUp
Each of the methods in the preceding list accepts an input parameter named pguidEventContext, which is a pointer to an event-context GUID. Before sending notifications to clients, the method copies the event-context GUID pointed to by pguidEventContext into the guidEventContext member of the AUDIO_VOLUME_NOTIFICATION_DATA structure that it supplies to clients through their OnNotify methods. If pguidEventContext is NULL, the value of the guidEventContext member is set to GUID_NULL.
In its implementation of the OnNotify method, a client can inspect the event-context GUID from that call to discover whether it or another client is the source of the volume-change event.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista [desktop apps | UWP apps] |
Minimum supported server | Windows Server 2008 [desktop apps | UWP apps] |
Header | endpointvolume.h |
See also
IAudioEndpointVolume Interface
IAudioEndpointVolume::SetChannelVolumeLevel
IAudioEndpointVolume::SetChannelVolumeLevelScalar
IAudioEndpointVolume::SetMasterVolumeLevel
IAudioEndpointVolume::SetMasterVolumeLevelScalar
IAudioEndpointVolume::VolumeStepDown
IAudioEndpointVolume::VolumeStepUp