29 #include <unordered_map> 46 static std::unordered_map<std::string, std::shared_ptr<IDeviceFactory>> m_factories;
48 static std::shared_ptr<IDevice> m_device;
64 static void registerDevice(std::string name, std::shared_ptr<IDeviceFactory> factory);
71 static std::shared_ptr<IDeviceFactory> getDeviceFactory(std::string name);
77 static std::shared_ptr<IDeviceFactory> getDefaultDeviceFactory();
86 static void setDevice(std::shared_ptr<IDevice> device);
94 static void openDevice(std::string name);
102 static void openDefaultDevice();
107 static void releaseDevice();
113 static std::shared_ptr<IDevice> getDevice();
120 static std::shared_ptr<I3DDevice> get3DDevice();
126 static std::vector<std::string> getAvailableDeviceNames();
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
#define AUD_API
Used for exporting symbols in the shared library.
Definition: Audaspace.h:93
The IDeviceFactory interface opens an output device.
Definition: IDeviceFactory.h:35
The I3DDevice interface represents an output device for 3D sound.
Definition: I3DDevice.h:52
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
The IDevice interface represents an output device for sound sources.
Definition: IDevice.h:46
The main header file of the library defining the namespace and basic data types.
This class manages all device plugins and maintains a device if asked to do so.
Definition: DeviceManager.h:43