32 #include <boost/noncopyable.hpp>
34 namespace cinder {
namespace audio {
39 class Device :
public std::enable_shared_from_this<Device>, boost::noncopyable {
52 static const std::vector<DeviceRef>&
getDevices();
73 Format() : mSampleRate( 0 ), mFramesPerBlock( 0 ) {}
86 size_t mSampleRate, mFramesPerBlock;
100 Device(
const std::string &key ) : mKey( key ), mSampleRate( 0 ), mFramesPerBlock( 0 ) {}
103 size_t mSampleRate, mFramesPerBlock;
104 signals::signal<void()> mSignalParamsWillChange, mSignalParamsDidChange;
117 virtual const std::vector<DeviceRef>&
getDevices() = 0;
virtual bool isFormatUpdatedAsync() const
override if subclass needs to update params async, and will issue formatWillChange callbacks ...
Definition: Device.h:131
static DeviceRef findDeviceByKey(const std::string &key)
Finds and returns a reference to the unique Device located by key, an platform-specific defined ident...
Definition: Device.cpp:63
signals::signal< void()> & getSignalParamsDidChange()
Returns a signal that notifies connected slots after the format of this Device has changed...
Definition: Device.h:94
const std::string & getName()
Returns the name of this Device, which is a human readable string reported by the system...
Definition: Device.cpp:95
static std::vector< DeviceRef > getOutputDevices()
Returns a vector of all output Device's.
Definition: Device.cpp:73
static std::vector< DeviceRef > getInputDevices()
Returns a vector of all input Device's.
Definition: Device.cpp:84
GLsizei const GLchar ** string
Definition: GLee.h:2427
DeviceManager()
Definition: Device.h:134
const std::string & getKey()
Returns the key of this Device, which is a unique platform-specific defined identifier.
Definition: Device.cpp:103
void emitParamsDidChange(const DeviceRef &device)
Definition: Device.cpp:217
static DeviceRef findDeviceByName(const std::string &name)
Finds and returns a reference to the first Device named name.
Definition: Device.cpp:58
signals::signal< void()> & getSignalParamsWillChange()
Returns a signal that notifies connected slots before the format of this Device will change...
Definition: Device.h:92
virtual ~DeviceManager()
Definition: Device.h:112
size_t getNumOutputChannels()
Returns the number of output channels this Device supports.
Definition: Device.cpp:113
virtual size_t getSampleRate(const DeviceRef &device)=0
virtual size_t getFramesPerBlock(const DeviceRef &device)=0
virtual void setSampleRate(const DeviceRef &device, size_t sampleRate)=0
virtual DeviceRef getDefaultInput()=0
virtual ~Device()
Definition: Device.h:41
static DeviceRef getDefaultOutput()
Returns a reference to the default output Device on your system.
Definition: Device.cpp:48
size_t getFramesPerBlock()
Returns the current frames per block.
Definition: Device.cpp:126
void updateFormat(const Format &format)
Configures the format properties of this Device. This effects the hardware on your system...
Definition: Device.cpp:134
virtual DeviceRef findDeviceByKey(const std::string &key)
Definition: Device.cpp:188
virtual size_t getNumInputChannels(const DeviceRef &device)=0
static const std::vector< DeviceRef > & getDevices()
Returns a vector of all Device's.
Definition: Device.cpp:68
Platform-specific Singleton for managing hardware devices. Applications normally should not need to u...
Definition: Device.h:110
virtual const std::vector< DeviceRef > & getDevices()=0
Object representing a hardware audio device. There is only ever one device per hardware device report...
Definition: Device.h:39
virtual void setFramesPerBlock(const DeviceRef &device, size_t framesPerBlock)=0
virtual DeviceRef findDeviceByName(const std::string &name)
Definition: Device.cpp:178
std::shared_ptr< class Device > DeviceRef
Definition: Device.h:36
std::vector< DeviceRef > mDevices
Definition: Device.h:141
virtual size_t getNumOutputChannels(const DeviceRef &device)=0
virtual DeviceRef getDefaultOutput()=0
GLuint const GLchar * name
Definition: GLee.h:2259
DeviceRef addDevice(const std::string &key)
Definition: Device.cpp:198
size_t getSampleRate()
Returns the current samplerate.
Definition: Device.cpp:118
static DeviceRef getDefaultInput()
Returns a reference to the default input Device on your system.
Definition: Device.cpp:53
size_t getNumInputChannels()
Returns the number of input channels this Device supports.
Definition: Device.cpp:108
GLenum GLsizei GLenum format
Definition: GLee.h:969
static std::string printDevicesToString()
Returns a string representation of all devices for debugging purposes.
Definition: Device.cpp:160
void emitParamsWillChange(const DeviceRef &device)
Definition: Device.cpp:212
virtual std::string getName(const DeviceRef &device)=0