Warning: you were redirected to the latest documentation corresponding to your major release ( 2022.1.15.8501 ). Should you wish to access your specific version's documentation, please download the offline documentation from the Audiokinetic Launcher and check the Offline Documentation option in Wwise Authoring.
Go to the documentation of this file.
33 #include <mmdeviceapi.h>
52 if (in_pProps) in_pProps->GetValue(key, &
variant);
59 PropVariantInit(&other.variant);
76 PropVariantInit(&other.variant);
100 in_pDevice->OpenPropertyStore(STGM_READ, &
pProps);
107 other.pProps =
nullptr;
129 other.pProps =
nullptr;
160 other.pDevice =
nullptr;
189 other.pDevice =
nullptr;
233 LPWSTR pwszID =
NULL;
234 if (
pDevice->GetId(&pwszID) == S_OK)
238 szString[260 - 1] = 0;
241 CoTaskMemFree(pwszID);
263 Iterator(IMMDeviceCollection* in_pDevices, UINT in_i)
325 pEnumerator->EnumAudioEndpoints(eRender, DEVICE_STATEMASK_ALL, &
pDevices);
334 pEnumerator->EnumAudioEndpoints(eFlow, dwStateMask, &
pDevices);
344 other.pDevices =
nullptr;
370 other.pDevices =
nullptr;
408 __uuidof(MMDeviceEnumerator),
NULL,
409 CLSCTX_ALL, __uuidof(IMMDeviceEnumerator),
417 other.pEnumerator =
nullptr;
441 other.pEnumerator =
nullptr;
453 pEnumerator->GetDefaultAudioEndpoint(eRender, in_eRole, (IMMDevice**)&pDevice.
pDevice);
AkUInt32 GetDeviceID() const
virtual Device Item(AkUInt32 in_idx)=0
Returns the number of devices. This function can block.
DeviceProperty(const PROPERTYKEY &key, IPropertyStore *in_pProps)
DeviceCollection(IMMDeviceEnumerator *pEnumerator, EDataFlow eFlow, DWORD dwStateMask)
DeviceProperties(const DeviceProperties &other)=delete
DeviceEnumerator & operator=(const DeviceEnumerator &other)=delete
Iterator(IMMDeviceCollection *in_pDevices, UINT in_i)
void SetDevice(IMMDevice *in_pNew)
DeviceProperty GetProperty(const PROPERTYKEY &key)
virtual void Lock()=0
Gets item in_idx from the cache. Must be smaller than Count(). This function can block.
Device & operator=(const Device &other)
DeviceProperties & operator=(DeviceProperties &&other)
static const AkDeviceID AK_INVALID_DEVICE_ID
Invalid streaming device ID.
DeviceCollection(const DeviceCollection &other)=delete
DeviceProperties GetProperties() const
interface IMMDevice * pDevice
Device(const Device &other)
DeviceCollection & operator=(DeviceCollection &&other)
DeviceCollection(DeviceCollection &&other)
DeviceProperties & operator=(const DeviceProperties &other)=delete
Interface to access the IMMDevice cache. This avoids driver accesses.
DeviceProperty(const DeviceProperty &other)=delete
Iterator operator+(AkUInt32 inc) const
DeviceEnumerator(DeviceEnumerator &&other)
interface IMMDeviceCollection * pDevices
interface IMMDeviceEnumerator * pEnumerator
Device & operator=(Device &&other)
virtual AkUInt32 Count()=0
interface IMMDeviceCollection * pDevices
bool operator!=(const Iterator &in_rOp) const
DeviceProperty & operator=(const DeviceProperty &other)=delete
AkUInt32 operator-(Iterator const &rhs) const
DeviceEnumerator(const DeviceEnumerator &other)=delete
Iterator & operator++()
DeviceProperties(IMMDevice *in_pDevice)
virtual void Unlock()=0
For thread safety. If you iterate through all the devices, lock the enumerator to avoid changes....
bool operator==(const Iterator &in_rOp) const
DeviceProperty(DeviceProperty &&other)
DeviceCollection(IMMDeviceEnumerator *pEnumerator)
uint32_t AkUInt32
Unsigned 32-bit integer.
virtual Device FindDevice(AkUInt32 in_id)=0
For thread safety. See Lock()
Device & operator=(IMMDevice *pOther)
DeviceEnumerator & operator=(DeviceEnumerator &&other)
Device GetDefaultDevice(ERole in_eRole)
AkForceInline AkInt32 AkWideCharToChar(const wchar_t *in_pszUnicodeString, AkUInt32 in_uiOutBufferSize, char *io_pszAnsiString)
String conversion helper.
DeviceCollection & operator=(const DeviceCollection &other)=delete
Iterator & operator--()
static HashParams::HashType ComputeLowerCase(const char *in_pData)
DeviceProperty & operator=(DeviceProperty &&other)
DeviceProperties(DeviceProperties &&other)
Tell us about your project. We're here to help.
Register your project and we'll help you get started with no strings attached!
Get started with Wwise