20 #define AUD_BUILD_PLUGIN 34 #include <audioclient.h> 35 #include <mmdeviceapi.h> 37 #include <wrl/client.h> 41 using Microsoft::WRL::ComPtr;
50 ComPtr<IMMDeviceEnumerator> m_imm_device_enumerator;
51 ComPtr<IMMDevice> m_imm_device;
52 ComPtr<IAudioClient> m_audio_client;
53 WAVEFORMATEXTENSIBLE m_wave_format_extensible;
54 bool m_default_device_changed;
55 LONG m_reference_count;
57 AUD_LOCAL HRESULT setupRenderClient(IAudioRenderClient*& render_client, UINT32& buffer_size);
67 ULONG STDMETHODCALLTYPE AddRef();
68 ULONG STDMETHODCALLTYPE Release();
69 HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,
void **ppvObject);
71 HRESULT STDMETHODCALLTYPE OnDeviceStateChanged(LPCWSTR pwstrDeviceId, DWORD dwNewState);
72 HRESULT STDMETHODCALLTYPE OnDeviceAdded(LPCWSTR pwstrDeviceId);
73 HRESULT STDMETHODCALLTYPE OnDeviceRemoved(LPCWSTR pwstrDeviceId);
74 HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged(EDataFlow flow, ERole role, LPCWSTR pwstrDeviceId);
75 HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(LPCWSTR pwstrDeviceId,
const PROPERTYKEY key);
99 static void registerPlugin();
This device extends the SoftwareDevice with code for running mixing in a separate thread...
Definition: ThreadedDevice.h:34
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
The ThreadedDevice class.
#define AUD_DEFAULT_BUFFER_SIZE
The default playback buffer size of a device.
Definition: Audaspace.h:103
Specification of a sound device.
Definition: Specification.h:128
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
This device plays back through WASAPI, the Windows audio API.
Definition: WASAPIDevice.h:46
#define AUD_PLUGIN_API
Used for exporting symbols in the shared library.
Definition: Audaspace.h:94
#define AUD_LOCAL
Used for hiding symbols from export in the shared library.
Definition: Audaspace.h:80