28#ifndef ASYNC_AUDIO_DEVICE_FACTORY_INCLUDED
29#define ASYNC_AUDIO_DEVICE_FACTORY_INCLUDED
96#define REGISTER_AUDIO_DEVICE_TYPE(_name, _class) \
97 AudioDevice *create_ ## _class(const std::string& dev_name) \
98 { return new _class(dev_name); } \
99 static bool _class ## _creator_registered = \
100 AudioDeviceFactory::instance().registerCreator(_name, \
131 typedef AudioDevice* (*CreatorFunc)(
const std::string &dev_designator);
178 typedef std::map<std::string, CreatorFunc> CreatorMap;
180 CreatorMap creator_map;
A factory class for audio devices.
bool registerCreator(const std::string &name, CreatorFunc creator)
Register a new audio device type.
AudioDevice *(*) CreatorFunc(const std::string &dev_designator)
AudioDevice * create(const std::string &name, const std::string &dev_name)
Create a new instance of the specified audio device type.
~AudioDeviceFactory(void)
Destructor.
static AudioDeviceFactory & instance(void)
Get the factory singleton instance.
std::string validDevTypes(void) const
List valid device types.
AudioDeviceFactory(void)
Default constuctor.
Base class for handling audio devices.
Namespace for the asynchronous programming classes.