20 #define AUD_BUILD_PLUGIN 34 #include <audioclient.h> 35 #include <mmdeviceapi.h> 47 IMMDeviceEnumerator* m_imm_device_enumerator;
48 IMMDevice* m_imm_device;
49 IAudioClient* m_audio_client;
50 WAVEFORMATEXTENSIBLE m_wave_format_extensible;
51 bool m_default_device_changed;
52 LONG m_reference_count;
54 AUD_LOCAL HRESULT setupRenderClient(IAudioRenderClient*& render_client, UINT32& buffer_size);
64 ULONG STDMETHODCALLTYPE AddRef();
65 ULONG STDMETHODCALLTYPE Release();
66 HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,
void **ppvObject);
68 HRESULT STDMETHODCALLTYPE OnDeviceStateChanged(LPCWSTR pwstrDeviceId, DWORD dwNewState);
69 HRESULT STDMETHODCALLTYPE OnDeviceAdded(LPCWSTR pwstrDeviceId);
70 HRESULT STDMETHODCALLTYPE OnDeviceRemoved(LPCWSTR pwstrDeviceId);
71 HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged(EDataFlow flow, ERole role, LPCWSTR pwstrDeviceId);
72 HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(LPCWSTR pwstrDeviceId,
const PROPERTYKEY key);
96 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:119
#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:43
#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