Core Audio APIs

Overview of the Core Audio APIs technology.

To develop Core Audio APIs, you need these headers:

For programming guidance for this technology, see:

Enumerations

 
_AUDCLNT_BUFFERFLAGS

The _AUDCLNT_BUFFERFLAGS enumeration defines flags that indicate the status of an audio endpoint buffer.
AUDCLNT_SHAREMODE

The AUDCLNT_SHAREMODE enumeration defines constants that indicate whether an audio stream will run in shared mode or in exclusive mode.
AUDCLNT_STREAMOPTIONS

Defines values that describe the characteristics of an audio stream.
AUDIO_DUCKING_OPTIONS

Specifies audio ducking options. Use values from this enumeration when calling IAudioClientDuckingControl::SetDuckingOptionsForCurrentStream
AUDIO_EFFECT_STATE

Specifies the state of an audio effect.
AUDIO_STREAM_CATEGORY

Specifies the category of an audio stream.
AUDIOCLIENT_ACTIVATION_TYPE

Specifies the activation type for an AUDIOCLIENT_ACTIVATION_PARAMS structure passed into a call to ActivateAudioInterfaceAsync.
AudioObjectType

Specifies the type of an ISpatialAudioObject.
AudioSessionState

The AudioSessionState enumeration defines constants that indicate the current state of an audio session.
ConnectorType

The ConnectorType enumeration indicates the type of connection that a connector is part of.
DataFlow

The DataFlow enumeration indicates the data-flow direction of an audio stream through a connector.
EDataFlow

The EDataFlow enumeration defines constants that indicate the direction in which audio data flows between an audio endpoint device and an application.
EndpointFormFactor

The EndpointFormFactor enumeration defines constants that indicate the general physical attributes of an audio endpoint device.
ERole

The ERole enumeration defines constants that indicate the role that the system has assigned to an audio endpoint device.
KSJACK_SINK_CONNECTIONTYPE

The KSJACK_SINK_CONNECTIONTYPE enumeration defines constants that specify the type of connection. These values are used in the KSJACK_SINK_INFORMATION structure that stores information about an audio jack sink.
PartType

The PartType enumeration defines constants that indicate whether a part in a device topology is a connector or subunit.
PROCESS_LOOPBACK_MODE

Specifies the loopback mode for an AUDIOCLIENT_ACTIVATION_PARAMS structure passed into a call to ActivateAudioInterfaceAsync.
SpatialAudioHrtfDirectivityType

Specifies the shape in which sound is emitted by an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDistanceDecayType

Specifies the type of decay applied over distance from the position of an ISpatialAudioObjectForHrtf to the position of the listener.
SpatialAudioHrtfEnvironmentType

Specifies the type of acoustic environment that is simulated when audio is processed for an ISpatialAudioObjectForHrtf.
SpatialAudioMetadataCopyMode

Specifies the copy mode used when calling ISpatialAudioMetadataCopier::CopyMetadataForFrames.
SpatialAudioMetadataWriterOverflowMode

Specifies the desired behavior when an ISpatialAudioMetadataWriter attempts to write more items into the metadata buffer than was specified when the client was initialized.

Functions

 
Activate

The Activate method creates a COM object with the specified interface.
Activate

The Activate method activates a function-specific interface on a connector or subunit.
ActivateAudioInterfaceAsync

Enables Windows Store apps to access preexisting Component Object Model (COM) interfaces in the WASAPI family.
ActivateCompleted

Indicates that activation of a WASAPI interface is complete and results are available.
ActivateSpatialAudioMetadataCopier

Creates an ISpatialAudioMetadataWriter object for copying spatial audio metadata items from one ISpatialAudioMetadataItems object to another.
ActivateSpatialAudioMetadataItems

Creates an ISpatialAudioMetadataItems object for storing spatial audio metadata items.
ActivateSpatialAudioMetadataReader

Creates an ISpatialAudioMetadataWriter object for reading spatial audio metadata items from an ISpatialAudioMetadataItems object.
ActivateSpatialAudioMetadataWriter

Creates an ISpatialAudioMetadataWriter object for writing spatial audio metadata items to an ISpatialAudioMetadataItems object.
ActivateSpatialAudioObject

Activates an ISpatialAudioObject for audio rendering.
ActivateSpatialAudioObjectForHrtf

Activates an ISpatialAudioObjectForHrtf for audio rendering.
ActivateSpatialAudioObjectForMetadataCommands

Activate an ISpatialAudioObjectForMetadataCommands for rendering.
ActivateSpatialAudioObjectForMetadataItems

Activate an ISpatialAudioObjectForMetadataItems for rendering.
ActivateSpatialAudioStream

Activates and initializes spatial audio stream using one of the spatial audio stream activation structures.
AttachToBuffer

Attaches caller-provided memory for storage of ISpatialAudioMetadataItems objects.
AttachToPopulatedBuffer

Attaches a previously populated buffer for storage of ISpatialAudioMetadataItems objects. The metadata items already in the buffer are retained.
BeginUpdatingAudioObjects

Puts the system into the state where audio object data can be submitted for processing and the ISpatialAudioObject state can be modified.
Close

Completes any necessary operations on the SpatialAudioMetadataItems object and releases the object.
Close

Completes any necessary operations on the SpatialAudioMetadataItems object and releases the object.
Close

Completes any needed operations on the metadata buffer and releases the specified ISpatialAudioMetadataItems object.
ConnectTo

The ConnectTo method connects this connector to a connector in another device-topology object.
CopyMetadataForFrames

Copies metadata items from the source ISpatialAudioMetadataItems, provided to the Open method, object to the destination ISpatialAudioMetadataItems object, specified with the dstMetadataItems parameter.
DetachBuffer

Detaches the buffer. Memory can only be attached to a single metadata item at a time.
Disconnect

The Disconnect method disconnects this connector from another connector.
EndUpdatingAudioObjects

Notifies the system that the app has finished supplying audio data for the spatial audio objects activated with ActivateSpatialAudioObject.
EnumAudioEndpoints

The EnumAudioEndpoints method generates a collection of audio endpoint devices that meet the specified criteria.
EnumPartsIncoming

The EnumPartsIncoming method gets a list of all the incoming parts�that is, the parts that reside on data paths that are upstream from this part.
EnumPartsOutgoing

The EnumPartsOutgoing method retrieves a list of all the outgoing parts�that is, the parts that reside on data paths that are downstream from this part.
Get4BRange

The Get4BRange method gets the 4-byte range of the device-specific property value.
GetActivateResult

Gets the results of an asynchronous activation of a WASAPI interface initiated by an application calling the ActivateAudioInterfaceAsync function.
GetAllVolumes

The GetAllVolumes method retrieves the volume levels for all the channels in the audio stream.
GetAllVolumes

The GetAllVolumes method retrieves the volume levels for all the channels in the audio session.
GetAudioEffects

Gets the current list of audio effects for the associated audio stream.
GetAudioObjectType

Gets a value specifying the type of audio object that is represented by the ISpatialAudioObject.
GetAudioSessionControl

The GetAudioSessionControl method retrieves an audio session control.
GetAvailableDynamicObjectCount

Gets the number of dynamic spatial audio objects that are currently available.
GetAvailableOffloadConnectorCount

The GetAvailableOffloadConnectorCount method retrieves the number of avaialable endpoints that can handle offloaded streams on the hardware audio engine.
GetBuffer

Gets a buffer that is used to supply the audio data for the ISpatialAudioObject.
GetBuffer

Retrieves a pointer to the next available packet of data in the capture endpoint buffer.
GetBuffer

Retrieves a pointer to the next available space in the rendering endpoint buffer into which the caller can write a data packet.
GetBufferSize

The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer.
GetBufferSizeLimits

The GetBufferSizeLimits method returns the buffer size limits of the hardware audio engine in 100-nanosecond units.
GetChannelConfig

The GetChannelConfig method gets the current channel-configuration mask from a channel-configuration control.
GetChannelCount

The GetChannelCount method gets the number of channels in the audio stream.
GetChannelCount

The GetChannelCount method gets the number of channels in the audio stream.
GetChannelCount

The GetChannelCount method retrieves the number of channels in the audio stream.
GetChannelCount

The GetChannelCount method retrieves the number of channels in the stream format for the audio session.
GetChannelCount

The GetChannelCount method gets a count of the channels in the audio stream that enters or leaves the audio endpoint device.
GetChannelsPeakValues

The GetChannelsPeakValues method gets the peak sample values for all the channels in the audio stream.
GetChannelVolume

The GetChannelVolume method retrieves the volume level for the specified channel in the audio stream.
GetChannelVolume

The GetChannelVolume method retrieves the volume level for the specified channel in the audio session.
GetChannelVolumeLevel

The GetChannelVolumeLevel method gets the volume level, in decibels, of the specified channel in the audio stream that enters or leaves the audio endpoint device.
GetChannelVolumeLevelScalar

The GetChannelVolumeLevelScalar method gets the normalized, audio-tapered volume level of the specified channel of the audio stream that enters or leaves the audio endpoint device.
GetChannelVolumes

The GetChannelVolumes method retrieves the volume levels for the various audio channels in the offloaded stream.
GetCharacteristics

The GetCharacteristics method is reserved for future use.
GetConnectedTo

The GetConnectedTo method gets the connector to which this connector is connected.
GetConnector

The GetConnector method gets the connector that is specified by a connector number.
GetConnectorCount

The GetConnectorCount method gets the number of connectors in the device-topology object.
GetConnectorIdConnectedTo

The GetConnectorIdConnectedTo method gets the global ID of the connector, if any, that this connector is connected to.
GetControlInterface

The GetControlInterface method gets a reference to the specified control interface, if this part supports it.
GetControlInterfaceCount

The GetControlInterfaceCount method gets the number of control interfaces that this part supports.
GetCount

Gets the number of supported audio formats in the list.
GetCount

The GetCount method retrieves a count of the devices in the device collection.
GetCount

The GetCount method gets the number of parts in the parts list.
GetCount

The GetCount method gets the total number of audio sessions that are open on the audio device.
GetCurrentPadding

The GetCurrentPadding method retrieves the number of frames of padding in the endpoint buffer.
GetCurrentSharedModeEnginePeriod

Returns the current format and periodicity of the audio engine.
GetDataFlow

The GetDataFlow method indicates whether the audio endpoint device is a rendering device or a capture device.
GetDataFlow

The GetDataFlow method gets the direction of data flow through this connector.
GetDefaultAudioEndpoint

The GetDefaultAudioEndpoint method retrieves the default audio endpoint for the specified data-flow direction and role.
GetDevice

The GetDevice method retrieves an audio endpoint device that is identified by an endpoint ID string.
GetDeviceId

The GetDeviceId method gets the device identifier of the device that is represented by the device-topology object.
GetDeviceIdConnectedTo

The GetDeviceIdConnectedTo method gets the device identifier of the audio device, if any, that this connector is connected to.
GetDevicePeriod

The GetDevicePeriod method retrieves the length of the periodic interval separating successive processing passes by the audio engine on the data in the endpoint buffer.
GetDevicePosition

The GetDevicePosition method gets the current device position, in frames, directly from the hardware.
GetDevicePreferredFormat

The GetDevicePreferredFormat method gets the preferred audio stream format for the connection.
GetDisplayName

The GetDisplayName method retrieves the display name for the audio session.
GetEnabled

The GetEnabled method gets the current state (enabled or disabled) of the AGC.
GetEnabled

The GetEnabled method gets the current state (enabled or disabled) of the loudness control.
GetEngineFormat

The GetEngineFormat method retrieves the current data format of the offloaded audio stream.
GetFormat

Gets the format with the specified index in the list. The formats are listed in order of importance. The most preferable format is first in the list.
GetFrameCount

Gets the total frame count of the ISpatialAudioMetadataItems, which defines valid item offsets.
GetFrequency

The GetFrequency method gets the device frequency.
GetGfxState

The GetGfxState method retrieves the GFX state of the offloaded audio stream.
GetGlobalId

The GetGlobalId method gets the global ID of this part.
GetGroupingParam

The GetGroupingParam method retrieves the grouping parameter of the audio session.
GetIconPath

The GetIconPath method retrieves the path for the display icon for the audio session.
GetId

The GetId method retrieves an endpoint ID string that identifies the audio endpoint device.
GetIID

The GetIID method gets the interface ID of the function-specific control interface of the part.
GetInfo

Gets the total frame count for the ISpatialAudioMetadataItems, which defines valid item offsets.
GetItemCount

The current number of items stored by the ISpatialAudioMetadataItems.
GetJackCount

The GetJackCount method gets the number of jacks required to connect to an audio endpoint device.
GetJackCount

The GetJackCount method gets the number of jacks on the connector, which are required to connect to an endpoint device.
GetJackDescription

The GetJackDescription method gets a description of an audio jack.
GetJackDescription2

The GetJackDescription2 method gets the description of a specified audio jack.
GetJackSinkInformation

The GetJackSinkInformation method retrieves the sink information for the specified jack.
GetLevel

The GetLevel method gets the peak level that the peak meter recorded for the specified channel since the peak level for that channel was previously read.
GetLevel

The GetLevel method gets the volume level, in decibels, of the specified channel.
GetLevelRange

The GetLevelRange method gets the range, in decibels, of the volume level of the specified channel.
GetLocalEffectsState

The GetLocalEffectsState method retrieves the local effects state that is currently applied to the offloaded audio stream.
GetLocalId

The GetLocalId method gets the local ID of this part.
GetMasterVolume

The GetMasterVolume method retrieves the client volume level for the audio session.
GetMasterVolumeLevel

The GetMasterVolumeLevel method gets the master volume level, in decibels, of the audio stream that enters or leaves the audio endpoint device.
GetMasterVolumeLevelScalar

The GetMasterVolumeLevelScalar method gets the master volume level of the audio stream that enters or leaves the audio endpoint device. The volume level is expressed as a normalized, audio-tapered value in the range from 0.0 to 1.0.
GetMaxDynamicObjectCount

Gets the maximum number of dynamic audio objects for the spatial audio client.
GetMaxFrameCount

Gets the maximum possible frame count per processing pass. This method can be used to determine the size of the source buffer that should be allocated to convey audio data for each processing pass.
GetMaxItemCount

The maximum number of items allowed by the ISpatialAudioMetadataItems, defined when the object is created.
GetMaxValueBufferLength

The size of the largest command value defined by the metadata format for the ISpatialAudioMetadataItems.
GetMeterChannelCount

Gets the number of available audio channels in the offloaded stream that can be metered.
GetMeteringChannelCount

The GetMeteringChannelCount method gets the number of channels in the audio stream that are monitored by peak meters.
GetMeteringData

The GetMeteringData method retrieves general information about the available audio channels in the offloaded stream.
GetMixFormat

The GetMixFormat method retrieves the stream format that the audio engine uses for its internal processing of shared-mode streams.
GetMute

The GetMute method retrieves the mute status of the offloaded audio stream.
GetMute

The GetMute method gets the current state (enabled or disabled) of the mute control.
GetMute

The GetMute method retrieves the current muting state for the audio session.
GetMute

The GetMute method gets the muting state of the audio stream that enters or leaves the audio endpoint device.
GetName

The GetName method gets the friendly name for the audio function that the control interface encapsulates.
GetName

The GetName method gets the friendly name of this part.
GetNativeStaticObjectTypeMask

Gets a channel mask which represents the subset of static speaker bed channels native to current rendering engine.
GetNextPacketSize

The GetNextPacketSize method retrieves the number of frames in the next data packet in the capture endpoint buffer.
GetPart

The GetPart method gets a part from the parts list.
GetPartById

The GetPartById method gets a part that is identified by its local ID.
GetPartType

The GetPartType method gets the part type of this part.
GetPeakValue

The GetPeakValue method gets the peak sample value for the channels in the audio stream.
GetPosition

The GetPosition method gets the current device position.
GetProcessId

The GetProcessId method retrieves the process identifier of the audio session.
GetSelection

The GetSelection method gets the local ID of the part that is connected to the selector input that is currently selected.
GetSelection

The GetSelection method gets the local ID of the part that is connected to the selector output that is currently selected.
GetService

Gets additional services from the ISpatialAudioObjectRenderStream.
GetService

The GetService method accesses additional services from the audio client object.
GetSession

The GetSession method gets the audio session specified by an audio session number.
GetSessionEnumerator

The GetSessionEnumerator method gets a pointer to the audio session enumerator object.
GetSessionIdentifier

The GetSessionIdentifier method retrieves the audio session identifier.
GetSessionInstanceIdentifier

The GetSessionInstanceIdentifier method retrieves the identifier of the audio session instance.
GetSharedModeEnginePeriod

Returns the range of periodicities supported by the engine for the specified stream format.
GetSignalPath

The GetSignalPath method gets a list of parts in the signal path that links two parts, if the path exists.
GetSimpleAudioVolume

The GetSimpleAudioVolume method retrieves a simple audio volume control.
GetSpatialAudioMetadataItems

Gets a pointer to the ISpatialAudioMetadataItems object which stores metadata items for the ISpatialAudioObjectForMetadataItems.
GetSpatialAudioMetadataItemsBufferLength

Gets the length of the buffer required to store the specified number of spatial audio metadata items.
GetState

The GetState method retrieves the current device state.
GetState

The GetState method retrieves the current state of the audio session.
GetStaticObjectPosition

Gets the position in 3D space of the specified static spatial audio channel.
GetStreamLatency

The GetStreamLatency method retrieves the maximum latency for the current stream and can be called any time after the stream has been initialized.
GetSubType

The GetSubType method gets the part subtype of this part.
GetSubunit

The GetSubunit method gets the subunit that is specified by a subunit number.
GetSubunitCount

The GetSubunitCount method gets the number of subunits in the device topology.
GetSupportedAudioObjectFormatEnumerator

Gets an IAudioFormatEnumerator that contains all supported audio formats for spatial audio objects, the first item in the list represents the most preferable format.
GetTopologyObject

The GetTopologyObject method gets a reference to the IDeviceTopology interface of the device-topology object that contains this part.
GetType

The GetType method gets the type of this connector.
GetType

The GetType method gets the data type of the device-specific property value.
GetValue

The GetValue method gets the current value of the device-specific property.
GetVolumeChannelCount

The GetVolumeChannelCount method retrieves the number of available audio channels in the offloaded stream.
GetVolumeRange

The GetVolumeRange method gets the volume range, in decibels, of the audio stream that enters or leaves the audio endpoint device.
GetVolumeRangeChannel

The GetVolumeRangeChannel method gets the volume range for a specified channel.
GetVolumeStepInfo

The GetVolumeStepInfo method gets information about the current step in the volume range.
Initialize

The Initialize method initializes the audio stream.
InitializeSharedAudioStream

Initializes a shared stream with the specified periodicity.
IsActive

Gets a boolean value indicating whether the ISpatialAudioObject is valid.
IsAudioObjectFormatSupported

Gets a value indicating whether ISpatialAudioObjectRenderStream supports a the specified format.
IsConnected

The IsConnected method indicates whether this connector is connected to another connector.
IsFormatSupported

The IsFormatSupported method indicates whether the audio endpoint device supports the specified audio stream format.
IsFormatSupported

The IsFormatSupported method indicates whether the audio endpoint device supports a particular stream format.
IsLastBufferControlSupported

Indicates if last buffer control is supported.
IsOffloadCapable

The IsOffloadCapable method retrieves information about whether or not the endpoint on which a stream is created is capable of supporting an offloaded audio stream.
IsSpatialAudioStreamAvailable

When successful, gets a value indicating whether the currently active spatial rendering engine supports the specified spatial audio render stream.
IsSystemSoundsSession

The IsSystemSoundsSession method indicates whether the session is a system sounds session.
Item

The Item method retrieves a pointer to the specified item in the device collection.
OnAudioEffectsChanged

Called by the system when the list of audio effects changes or the resources needed to enable an effect changes.
OnAvailableDynamicObjectCountChange

Notifies the spatial audio client when the rendering capacity for an ISpatialAudioObjectRenderStream is about to change, specifies the time after which the change will occur, and specifies the number of dynamic audio objects that will be available after the change.
OnChannelVolumeChanged

The OnChannelVolumeChanged method notifies the client that the volume level of an audio channel in the session submix has changed.
OnDefaultDeviceChanged

The OnDefaultDeviceChanged method notifies the client that the default audio endpoint device for a particular device role has changed.
OnDeviceAdded

The OnDeviceAdded method indicates that a new audio endpoint device has been added.
OnDeviceRemoved

The OnDeviceRemoved method indicates that an audio endpoint device has been removed.
OnDeviceStateChanged

The OnDeviceStateChanged method indicates that the state of an audio endpoint device has changed.
OnDisplayNameChanged

The OnDisplayNameChanged method notifies the client that the display name for the session has changed.
OnGroupingParamChanged

The OnGroupingParamChanged method notifies the client that the grouping parameter for the session has changed.
OnIconPathChanged

The OnIconPathChanged method notifies the client that the display icon for the session has changed.
OnNotify

The OnNotify method notifies the client when the status of a connector or subunit changes.
OnNotify

The OnNotify method notifies the client that the volume level or muting state of the audio endpoint device has changed.
OnPropertyValueChanged

The OnPropertyValueChanged method indicates that the value of a property belonging to an audio endpoint device has changed.
OnSessionCreated

The OnSessionCreated method notifies the registered processes that the audio session has been created.
OnSessionDisconnected

The OnSessionDisconnected method notifies the client that the audio session has been disconnected.
OnSimpleVolumeChanged

The OnSimpleVolumeChanged method notifies the client that the volume level or muting state of the audio session has changed.
OnStateChanged

The OnStateChanged method notifies the client that the stream-activity state of the session has changed.
OnVolumeDuckNotification

The OnVolumeDuckNotification method sends a notification about a pending system ducking event.
OnVolumeUnduckNotification

The OnVolumeUnduckNotification method sends a notification about a pending system unducking event.
Open

Opens an ISpatialAudioMetadataItems object for copying.
Open

Opens an ISpatialAudioMetadataItems object for reading.
Open

Opens an ISpatialAudioMetadataItems object for writing.
OpenPropertyStore

The OpenPropertyStore method retrieves an interface to the device's property store.
QueryHardwareSupport

The QueryHardwareSupport method queries the audio endpoint device for its hardware-supported functions.
QueryHardwareSupport

The QueryHardwareSupport method queries the audio endpoint device for its hardware-supported functions.
ReadNextItem

Gets the number of commands and the sample offset for the metadata item being read.
ReadNextItemCommand

Reads metadata commands and value data for the current item.
RegisterAudioEffectsChangedNotificationCallback

Registers an AudioEffectsChangedNotificationClient interface.
RegisterAudioSessionNotification

The RegisterAudioSessionNotification method registers the client to receive notifications of session events, including changes in the stream state.
RegisterControlChangeCallback

The RegisterControlChangeCallback method registers the IControlChangeNotify interface, which the client implements to receive notifications of status changes in this part.
RegisterControlChangeNotify

The RegisterControlChangeNotify method registers a client's notification callback interface.
RegisterDuckNotification

The RegisterDuckNotification method registers the application with the session manager to receive ducking notifications.
RegisterEndpointNotificationCallback

The RegisterEndpointNotificationCallback method registers a client's notification callback interface.
RegisterSessionNotification

The RegisterSessionNotification method registers the application to receive a notification when a session is created.
ReleaseBuffer

The ReleaseBuffer method releases the buffer.
ReleaseBuffer

The ReleaseBuffer method releases the buffer space acquired in the previous call to the IAudioRenderClient::GetBuffer method.
ReleaseOutputDataPointerForLastBuffer

Releases the output data pointer for the last buffer.
Reset

Reset a stopped audio stream.
Reset

The Reset method resets the audio stream.
ResetToDefault

Resets the format to the default setting provided by the device manufacturer.
SetAllVolumes

The SetAllVolumes method sets the individual volume levels for all the channels in the audio stream.
SetAllVolumes

The SetAllVolumes method sets the individual volume levels for all the channels in the audio session.
SetChannelConfig

The SetChannelConfig method sets the channel-configuration mask in a channel-configuration control.
SetChannelVolume

The SetChannelVolume method sets the volume level for the specified channel in the audio stream.
SetChannelVolume

The SetChannelVolume method sets the volume level for the specified channel in the audio session.
SetChannelVolumeLevel

The SetChannelVolumeLevel method sets the volume level, in decibels, of the specified channel of the audio stream that enters or leaves the audio endpoint device.
SetChannelVolumeLevelScalar

The SetChannelVolumeLevelScalar method sets the normalized, audio-tapered volume level of the specified channel in the audio stream that enters or leaves the audio endpoint device.
SetChannelVolumes

The SetChannelVolumes method sets the volume levels for the various audio channels in the offloaded stream.
SetClientProperties

Sets the properties of the audio stream by populating an AudioClientProperties structure.
SetDirectivity

Sets the spatial audio directivity model for the ISpatialAudioObjectForHrtf.
SetDisplayName

The SetDisplayName method assigns a display name to the current session.
SetDistanceDecay

Sets the decay model that is applied over distance from the position of an ISpatialAudioObjectForHrtf to the position of the listener.
SetDuckingOptionsForCurrentStream

Sets the audio ducking options for an audio render stream.
SetDuckingPreference

The SetDuckingPreference method enables or disables the default stream attenuation experience (auto-ducking) provided by the system.
SetEnabled

The SetEnabled method enables or disables the AGC.
SetEnabled

The SetEnabled method enables or disables the loudness control.
SetEndOfStream

Instructs the system that the final block of audio data has been submitted for the ISpatialAudioObject so that the object can be deactivated and it's resources reused.
SetEngineDeviceFormat

The SetEngineDeviceFormat method sets the waveform audio format for the hardware audio engine.
SetEnvironment

Sets the type of acoustic environment that is simulated when audio is processed for the ISpatialAudioObjectForHrtf.
SetEventHandle

The SetEventHandle method sets the event handle that the system signals when an audio buffer is ready to be processed by the client.
SetGain

Sets the gain for the ISpatialAudioObjectForHrtf.
SetGfxState

The SetGfxState method sets the GFX state of the offloaded audio stream.
SetGroupingParam

The SetGroupingParam method assigns a session to a grouping of sessions.
SetIconPath

The SetIconPath method assigns a display icon to the current session.
SetLevel

The SetLevel method sets the volume level, in decibels, of the specified channel.
SetLevelAllChannels

The SetLevelAllChannels method sets the volume levels, in decibels, of all the channels in the audio stream.
SetLevelUniform

The SetLevelUniform method sets all channels in the audio stream to the same uniform volume level, in decibels.
SetLocalEffectsState

The SetLocalEffectsState method sets the local effects state that is to be applied to the offloaded audio stream.
SetMasterVolume

The SetMasterVolume method sets the master volume level for the audio session.
SetMasterVolumeLevel

The SetMasterVolumeLevel method sets the master volume level, in decibels, of the audio stream that enters or leaves the audio endpoint device.
SetMasterVolumeLevelScalar

The SetMasterVolumeLevelScalar method sets the master volume level of the audio stream that enters or leaves the audio endpoint device. The volume level is expressed as a normalized, audio-tapered value in the range from 0.0 to 1.0.
SetMute

The SetMute method sets the mute status of the offloaded audio stream.
SetMute

The SetMute method enables or disables the mute control.
SetMute

The SetMute method sets the muting state for the audio session.
SetMute

The SetMute method sets the muting state of the audio stream that enters or leaves the audio endpoint device.
SetOrientation

Sets the orientation in 3D space, relative to the listener's frame of reference, from which the ISpatialAudioObjectForHrtf audio data will be rendered.
SetPosition

Sets the position in 3D space, relative to the listener, from which the ISpatialAudioObjectForHrtf audio data will be rendered.
SetPosition

Sets the position in 3D space, relative to the listener, from which the ISpatialAudioObject audio data will be rendered.
SetSampleRate

The SetSampleRate method sets the sample rate of a stream.
SetSelection

The SetSelection method selects one of the inputs of the input selector.
SetSelection

The SetSelection method selects one of the outputs of the output selector.
SetValue

The SetValue method sets the value of the device-specific property.
SetVolume

Sets an audio amplitude multiplier that will be applied to the audio data provided by the ISpatialAudioObject before it is submitted to the audio rendering engine.
Start

Starts the spatial audio stream.
Start

The Start method starts the audio stream.
Stop

Stops a running audio stream.
Stop

The Stop method stops the audio stream.
UnregisterAudioEffectsChangedNotificationCallback

Unregisters an IAudioEffectsChangedNotificationClient interface.
UnregisterAudioSessionNotification

The UnregisterAudioSessionNotification method deletes a previous registration by the client to receive notifications.
UnregisterControlChangeCallback

The UnregisterControlChangeCallback method removes the registration of an IControlChangeNotify interface that the client previously registered by a call to the IPart::RegisterControlChangeCallback method.
UnregisterControlChangeNotify

The UnregisterControlChangeNotify method deletes the registration of a client's notification callback interface that the client registered in a previous call to the IAudioEndpointVolume::RegisterControlChangeNotify method.
UnregisterDuckNotification

The UnregisterDuckNotification method deletes a previous registration by the application to receive notifications.
UnregisterEndpointNotificationCallback

The UnregisterEndpointNotificationCallback method deletes the registration of a notification interface that the client registered in a previous call to the IMMDeviceEnumerator::RegisterEndpointNotificationCallback method.
UnregisterSessionNotification

The UnregisterSessionNotification method deletes the registration to receive a notification when a session is created.
VolumeStepDown

The VolumeStepDown method decrements, by one step, the volume level of the audio stream that enters or leaves the audio endpoint device.
VolumeStepUp

The VolumeStepUp method increments, by one step, the volume level of the audio stream that enters or leaves the audio endpoint device.
WriteNextItem

Starts a new metadata item at the specified offset.
WriteNextItemCommand

Writes metadata commands and value data to the current item.
WriteNextMetadataCommand

Writes a metadata command to the spatial audio object, each command may only be added once per object per processing cycle.

Interfaces

 
IActivateAudioInterfaceAsyncOperation

Represents an asynchronous operation activating a WASAPI interface and provides a method to retrieve the results of the activation.
IActivateAudioInterfaceCompletionHandler

Provides a callback to indicate that activation of a WASAPI interface is complete.
IAudioAutoGainControl

The IAudioAutoGainControl interface provides access to a hardware automatic gain control (AGC).
IAudioBass

The IAudioBass interface provides access to a hardware bass-level control.
IAudioCaptureClient

The IAudioCaptureClient interface enables a client to read input data from a capture endpoint buffer.
IAudioChannelConfig

The IAudioChannelConfig interface provides access to a hardware channel-configuration control.
IAudioClient

The IAudioClient interface enables a client to create and initialize an audio stream between an audio application and the audio engine (for a shared-mode stream) or the hardware buffer of an audio endpoint device (for an exclusive-mode stream).
IAudioClient2

The IAudioClient2 interface is derived from the IAudioClient interface, with a set of additional methods that enable a Windows Audio Session API (WASAPI) audio client to do the following:_opt in for offloading, query stream properties, and get information from the hardware that handles offloading.The audio client can be successful in creating an offloaded stream if the underlying endpoint supports the hardware audio engine, the endpoint has been enumerated and discovered by the audio system, and there are still offload pin instances available on the endpoint.
IAudioClient3

The IAudioClient3 interface is derived from the IAudioClient2 interface, with a set of additional methods that enable a Windows Audio Session API (WASAPI) audio client to query for the audio engine's supported periodicities and current periodicity as well as request initialization a shared audio stream with a specified periodicity.
IAudioClientDuckingControl

Provides a method, SetDuckingOptionsForCurrentStream, that allows an app to specify that the system shouldn't duck the audio of other streams when the app's audio render stream is active.
IAudioClock

The IAudioClock interface enables a client to monitor a stream's data rate and the current position in the stream.
IAudioClock2

The IAudioClock2 interface is used to get the current device position.
IAudioClockAdjustment

The IAudioClockAdjustment interface is used to adjust the sample rate of a stream.
IAudioEffectsChangedNotificationClient

A callback interface allows applications to receive notifications when the list of audio effects changes or the resources needed to enable an effect changes.
IAudioEffectsManager

Provides management functionality for the audio effects pipeline
IAudioEndpointFormatControl

Used for resetting the current audio endpoint device format.
IAudioEndpointLastBufferControl

Provides functionality to allow an offload stream client to notify the endpoint that the last buffer has been sent only partially filled.
IAudioEndpointOffloadStreamMeter

The IAudioEndpointOffloadStreamMeter interface retrieves general information about the audio channels in the offloaded audio stream.
IAudioEndpointOffloadStreamMute

The IAudioEndpointOffloadStreamMute interface allows a client to manipulate the mute status of the offloaded audio stream.
IAudioEndpointOffloadStreamVolume

The IAudioEndpointOffloadStreamVolume interface allows the client application to manipulate the volume level of the offloaded audio stream.
IAudioEndpointVolume

The IAudioEndpointVolume interface represents the volume controls on the audio stream to or from an audio endpoint device.
IAudioEndpointVolumeCallback

The IAudioEndpointVolumeCallback interface provides notifications of changes in the volume level and muting state of an audio endpoint device.
IAudioEndpointVolumeEx

The IAudioEndpointVolumeEx interface provides volume controls on the audio stream to or from a device endpoint.
IAudioFormatEnumerator

Provides a list of supported audio formats. The most preferred format is first in the list. Get a reference to this interface by calling ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator.
IAudioInputSelector

The IAudioInputSelector interface provides access to a hardware multiplexer control (input selector).
IAudioLfxControl

The IAudioLfxControl interface allows the client to apply or remove local effects from the offloaded audio stream.
IAudioLoudness

The IAudioLoudness interface provides access to a "loudness" compensation control.
IAudioMeterInformation

The IAudioMeterInformation interface represents a peak meter on an audio stream to or from an audio endpoint device.
IAudioMidrange

The IAudioMidrange interface provides access to a hardware midrange-level control.
IAudioMute

The IAudioMute interface provides access to a hardware mute control.
IAudioOutputSelector

The IAudioOutputSelector interface provides access to a hardware demultiplexer control (output selector).
IAudioPeakMeter

The IAudioPeakMeter interface provides access to a hardware peak-meter control.
IAudioRenderClient

The IAudioRenderClient interface enables a client to write output data to a rendering endpoint buffer.
IAudioSessionControl

The IAudioSessionControl interface enables a client to configure the control parameters for an audio session and to monitor events in the session.
IAudioSessionControl2

The IAudioSessionControl2 interface can be used by a client to get information about the audio session.
IAudioSessionEnumerator

The IAudioSessionEnumerator interface enumerates audio sessions on an audio device.
IAudioSessionEvents

The IAudioSessionEvents interface provides notifications of session-related events such as changes in the volume level, display name, and session state.
IAudioSessionManager

The IAudioSessionManager interface enables a client to access the session controls and volume controls for both cross-process and process-specific audio sessions.
IAudioSessionManager2

The IAudioSessionManager2 interface enables an application to manage submixes for the audio device.
IAudioSessionNotification

The IAudioSessionNotification interface provides notification when an audio session is created.
IAudioStreamVolume

The IAudioStreamVolume interface enables a client to control and monitor the volume levels for all of the channels in an audio stream.
IAudioTreble

The IAudioTreble interface provides access to a hardware treble-level control.
IAudioVolumeDuckNotification

The IAudioVolumeDuckNotification interface is used to by the system to send notifications about stream attenuation changes.Stream Attenuation, or ducking, is a feature introduced in Windows 7, where the system adjusts the volume of a non-communication stream when a new communication stream is opened. For more information about this feature, see Default Ducking Experience.
IAudioVolumeLevel

The IAudioVolumeLevel interface provides access to a hardware volume control.
IChannelAudioVolume

The IChannelAudioVolume interface enables a client to control and monitor the volume levels for all of the channels in the audio session that the stream belongs to.
IConnector

The IConnector interface represents a point of connection between components.
IControlChangeNotify

The IControlChangeNotify interface provides notifications when the status of a part (connector or subunit) changes.
IControlInterface

The IControlInterface interface represents a control interface on a part (connector or subunit) in a device topology. The client obtains a reference to a part's IControlInterface interface by calling the IPart::GetControlInterface method.
IDeviceSpecificProperty

The IDeviceSpecificProperty interface provides access to the control value of a device-specific hardware control.
IDeviceTopology

The IDeviceTopology interface provides access to the topology of an audio device.
IHardwareAudioEngineBase

The IHardwareAudioEngineBase interface is implemented by audio endpoints for the audio stack to use to configure and retrieve information about the hardware audio engine.
IKsFormatSupport

The IKsFormatSupport interface provides information about the audio data formats that are supported by a software-configured I/O connection (typically a DMA channel) between an audio adapter device and system memory.
IKsJackDescription

The IKsJackDescription interface provides information about the jacks or internal connectors that provide a physical connection between a device on an audio adapter and an external or internal endpoint device (for example, a microphone or CD player).
IKsJackDescription2

The IKsJackDescription2 interface provides information about the jacks or internal connectors that provide a physical connection between a device on an audio adapter and an external or internal endpoint device (for example, a microphone or CD player).
IKsJackSinkInformation

The IKsJackSinkInformation interface provides access to jack sink information if the jack is supported by the hardware.
IMMDevice

The IMMDevice interface encapsulates the generic features of a multimedia device resource.
IMMDeviceCollection

The IMMDeviceCollection interface represents a collection of multimedia device resources.
IMMDeviceEnumerator

The IMMDeviceEnumerator interface provides methods for enumerating multimedia device resources.
IMMEndpoint

The IMMEndpoint interface represents an audio endpoint device.
IMMNotificationClient

The IMMNotificationClient interface provides notifications when an audio endpoint device is added or removed, when the state or properties of an endpoint device change, or when there is a change in the default role assigned to an endpoint device.
IPart

The IPart interface represents a part (connector or subunit) of a device topology.
IPartsList

The IPartsList interface represents a list of parts, each of which is an object with an IPart interface that represents a connector or subunit.
IPerChannelDbLevel

The IPerChannelDbLevel interface represents a generic subunit control interface that provides per-channel control over the volume level, in decibels, of an audio stream or of a frequency band in an audio stream.
ISimpleAudioVolume

The ISimpleAudioVolume interface enables a client to control the master volume level of an audio session.
ISpatialAudioClient

The ISpatialAudioClient interface enables a client to create audio streams that emit audio from a position in 3D space.
ISpatialAudioMetadataClient

Provides a class factory for creating ISpatialAudioMetadataItems, ISpatialAudioMetadataWriter, ISpatialAudioMetadataReader, and ISpatialAudioMetadataCopier objects.
ISpatialAudioMetadataCopier

Provides methods for copying all or subsets of metadata items from a source SpatialAudioMetadataItems into a destination SpatialAudioMetadataItems.
ISpatialAudioMetadataItems

Represents a buffer of spatial audio metadata items.
ISpatialAudioMetadataItemsBuffer

Provides methods for attaching buffers to SpatialAudioMetadataItems for in-place storage of data.
ISpatialAudioMetadataReader

Provides methods for extracting spatial audio metadata items and item command value pairs from an ISpatialAudioMetadataItems object.
ISpatialAudioMetadataWriter

Provides methods for storing spatial audio metadata items positioned within a range of corresponding audio frames.
ISpatialAudioObject

Represents an object that provides audio data to be rendered from a position in 3D space, relative to the user.
ISpatialAudioObjectBase

Base interface that represents an object that provides audio data to be rendered from a position in 3D space, relative to the user.
ISpatialAudioObjectForHrtf

Represents an object that provides audio data to be rendered from a position in 3D space, relative to the user, a head-relative transfer function (HRTF).
ISpatialAudioObjectForMetadataCommands

Used to write metadata commands for spatial audio.
ISpatialAudioObjectForMetadataItems

Used to write spatial audio metadata for applications that require multiple metadata items per buffer with frame-accurate placement.
ISpatialAudioObjectRenderStream

Provides methods for controlling a spatial audio object render stream, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamBase

Base interface that provides methods for controlling a spatial audio object render stream, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamForHrtf

Provides methods for controlling an Hrtf spatial audio object render stream, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamForMetadata

Provides methods for controlling a spatial audio object render stream for metadata, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamNotify

Provides notifications for spatial audio clients to respond to changes in the state of an ISpatialAudioObjectRenderStream.
ISubunit

The ISubunit interface represents a hardware subunit (for example, a volume control) that lies in the data path between a client and an audio endpoint device.

Structures

 
AUDIO_EFFECT

Represents an audio effect.
AUDIO_VOLUME_NOTIFICATION_DATA

The AUDIO_VOLUME_NOTIFICATION_DATA structure describes a change in the volume level or muting state of an audio endpoint device.
AUDIOCLIENT_ACTIVATION_PARAMS

Specifies the activation parameters for a call to ActivateAudioInterfaceAsync.
AUDIOCLIENT_PROCESS_LOOPBACK_PARAMS

Specifies parameters for a call to ActivateAudioInterfaceAsync where loopback activation is requested.
AudioExtensionParams

This structure is passed to the Control Panel Endpoint Extension property page through IShellPropSheetExt::AddPages and is used to create endpoint PropertyPages.
DIRECTX_AUDIO_ACTIVATION_PARAMS

The DIRECTX_AUDIO_ACTIVATION_PARAMS structure specifies the initialization parameters for a DirectSound stream.
KSJACK_DESCRIPTION

The KSJACK_DESCRIPTION structure describes an audio jack.
KSJACK_DESCRIPTION2

The KSJACK_DESCRIPTION2 structure describes an audio jack.To get the description of an audio jack of a connector, call IKsJackDescription2::GetJackDescription2.
KSJACK_SINK_INFORMATION

The KSJACK_SINK_INFORMATION structure stores information about an audio jack sink.
LUID

The LUID structure stores the video port identifier. This structure is stored in the PortId member of the KSJACK_SINK_INFORMATION structure.
SpatialAudioClientActivationParams

Represents optional activation parameters for a spatial audio render stream. Pass this structure to ActivateAudioInterfaceAsync when activating an ISpatialAudioClient interface.
SpatialAudioHrtfActivationParams

Specifies the activation parameters for an ISpatialAudioRenderStreamForHrtf.
SpatialAudioHrtfDirectivity

Represents an omnidirectional model for an ISpatialAudioObjectForHrtf. The omnidirectional emission is interpolated linearly with the directivity model specified in the Type field based on the value of the Scaling field.
SpatialAudioHrtfDirectivityCardioid

Represents a cardioid-shaped directivity model for an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDirectivityCone

Represents a cone-shaped directivity model for an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDirectivityUnion

Defines a spatial audio directivity model for an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDistanceDecay

Represents the decay model that is applied over distance from the position of an ISpatialAudioObjectForHrtf to the position of the listener.
SpatialAudioMetadataItemsInfo

Provides information about an ISpatialAudioMetadataItems object. Get a copy of this structure by calling GetInfo.
SpatialAudioObjectRenderStreamActivationParams

Represents activation parameters for a spatial audio render stream. Pass this structure to ISpatialAudioClient::ActivateSpatialAudioStream when activating a stream.
SpatialAudioObjectRenderStreamForMetadataActivationParams

Represents activation parameters for a spatial audio render stream for metadata. Pass this structure to ISpatialAudioClient::ActivateSpatialAudioStream when activating a stream.