28 #include <AudioUnit/AudioUnit.h>
29 #include <CoreAudio/CoreAudio.h>
32 namespace cinder {
namespace audio {
namespace cocoa {
38 const std::vector<DeviceRef>&
getDevices()
override;
58 void setCurrentDeviceImpl(
const DeviceRef &device,
const DeviceRef ¤t, ::AudioComponentInstance componentInstance,
bool isOutput );
60 void registerPropertyListeners(
DeviceRef device, ::AudioDeviceID deviceId,
bool isOutput );
61 void unregisterPropertyListeners(
const DeviceRef &device, ::AudioDeviceID deviceId,
bool isOutput );
63 std::vector<size_t> getAcceptableSampleRates( ::AudioDeviceID deviceId );
64 std::pair<size_t, size_t> getAcceptableFramesPerBlockRange( ::AudioDeviceID deviceId );
66 static std::string keyForDeviceId( ::AudioDeviceID deviceId );
68 std::map<DeviceRef, ::AudioDeviceID> mDeviceIds;
69 DeviceRef mCurrentOutputDevice, mCurrentInputDevice;
70 ::AudioObjectPropertyListenerBlock mOutputDeviceListenerBlock, mInputDeviceListenerBlock;
72 bool mUserHasModifiedFormat;
DeviceRef getDefaultInput() override
Definition: DeviceManagerCoreAudio.cpp:148
GLsizei const GLchar ** string
Definition: GLee.h:2427
size_t getNumInputChannels(const DeviceRef &device) override
Definition: DeviceManagerCoreAudio.cpp:162
std::string getName(const DeviceRef &device) override
Definition: DeviceManagerCoreAudio.cpp:156
Manages the creation, connections, and lifecycle of audio::Node's.
Definition: Context.h:44
size_t getNumOutputChannels(const DeviceRef &device) override
Definition: DeviceManagerCoreAudio.cpp:168
void setFramesPerBlock(const DeviceRef &device, size_t framesPerBlock) override
Definition: DeviceManagerCoreAudio.cpp:207
DeviceRef getDefaultOutput() override
Definition: DeviceManagerCoreAudio.cpp:140
bool isFormatUpdatedAsync() const override
override if subclass needs to update params async, and will issue formatWillChange callbacks ...
Definition: DeviceManagerCoreAudio.h:51
Definition: DeviceManagerCoreAudio.h:34
void setCurrentInputDevice(const DeviceRef &device,::AudioComponentInstance componentInstance)
Definition: DeviceManagerCoreAudio.cpp:228
Platform-specific Singleton for managing hardware devices. Applications normally should not need to u...
Definition: Device.h:110
const std::vector< DeviceRef > & getDevices() override
Definition: DeviceManagerCoreAudio.cpp:348
size_t getSampleRate(const DeviceRef &device) override
Definition: DeviceManagerCoreAudio.cpp:174
std::shared_ptr< class Device > DeviceRef
Definition: Device.h:36
void setCurrentOutputDevice(const DeviceRef &device,::AudioComponentInstance componentInstance)
Sets the device related to key and managed by componenetInstance as the current active audio device...
Definition: DeviceManagerCoreAudio.cpp:222
void setSampleRate(const DeviceRef &device, size_t sampleRate) override
Definition: DeviceManagerCoreAudio.cpp:183
size_t getFramesPerBlock(const DeviceRef &device) override
Definition: DeviceManagerCoreAudio.cpp:198
DeviceManagerCoreAudio()
Definition: DeviceManagerCoreAudio.cpp:135