20 EXT_thread_local_context
,
30 Vector
<UniquePtr
<ALContext
>> mContexts
;
32 bool mHasExt
[ALC_EXTENSION_MAX
];
34 std::once_flag mSetExts
;
38 ALDevice(ALCdevice
*device
);
41 ALCdevice
*getDevice() const { return mDevice
; }
43 bool hasExtension(ALCExtension ext
) const { return mHasExt
[ext
]; }
45 LPALCDEVICEPAUSESOFT alcDevicePauseSOFT
;
46 LPALCDEVICERESUMESOFT alcDeviceResumeSOFT
;
48 LPALCGETSTRINGISOFT alcGetStringiSOFT
;
49 LPALCRESETDEVICESOFT alcResetDeviceSOFT
;
51 void removeContext(ALContext
*ctx
);
53 String
getName(PlaybackName type
) const;
54 bool queryExtension(const String
&name
) const;
56 ALCuint
getALCVersion() const;
57 ALCuint
getEFXVersion() const;
59 ALCuint
getFrequency() const;
61 ALCuint
getMaxAuxiliarySends() const;
63 Vector
<String
> enumerateHRTFNames() const;
64 bool isHRTFEnabled() const;
65 String
getCurrentHRTF() const;
66 void reset(ArrayView
<AttributePair
> attributes
);
68 Context
createContext(ArrayView
<AttributePair
> attributes
);