IXAudio2 interface (xaudio2.h)
IXAudio2 is the interface for the XAudio2 object that manages all audio engine states, the audio processing thread, the voice graph, and so forth.
This is the only XAudio2 interface that is derived from the COM IUnknown interface. It controls the lifetime of the XAudio2 object using two methods derived from IUnknown: IXAudio2::AddRef and IXAudio2::Release. No other XAudio2 objects are reference-counted; their lifetimes are explicitly controlled using create and destroy calls, and are bounded by the lifetime of the XAudio2 object that owns them.
The IXAudio2 Interface interface inherits from the IUnknown interface. IXAudio2 also has these types of members:
The IXAudio2 interface has these methods.
Adds a reference to the XAudio2 object.
Atomically applies a set of operations that are tagged with a given identifier.
Creates and configures a mastering voice.
Creates and configures a source voice.
Creates and configures a submix voice.
Returns current resource usage details, such as available memory or CPU usage.
Queries for a given COM interface on the XAudio2 object.
Adds an IXAudio2EngineCallback pointer to the XAudio2 engine callback list.
Releases a reference to the XAudio2 object.
Changes global debug logging options for XAudio2.
Starts the audio processing thread.
Stops the audio processing thread.
Removes an IXAudio2EngineCallback pointer from the XAudio2 engine callback list.
The DirectX SDK versions of XAUDIO2 included three member functions that are not present in the Windows 8 version: GetDeviceCount, GetDeviceDetails, and Initialize. These enumeration methods are no longer provided and standard Windows Audio APIs should be used for device enumeration instead.