36 #ifndef __CU_AUDIO_MANAGER_H__
37 #define __CU_AUDIO_MANAGER_H__
39 #include <unordered_map>
88 std::unordered_map<std::string, std::shared_ptr<audio::AudioOutput>> _outputs;
90 std::unordered_map<std::string, std::shared_ptr<audio::AudioInput>> _inputs;
93 #pragma mark Constructors (Private)
124 bool init(Uint32 output, Uint32 input);
137 #pragma mark Static Attributes
146 #pragma mark Static Accessors
193 static void start(Uint32 frames);
220 static void start(Uint32 output, Uint32 input);
246 static std::vector<std::string>
devices(
bool output);
259 static std::vector<std::string>
occupied(
bool output);
262 #pragma mark Manager Properties
342 #pragma mark Output Devices
356 std::shared_ptr<audio::AudioOutput>
openOutput();
374 std::shared_ptr<audio::AudioOutput>
openOutput(Uint8 channels, Uint32 rate);
389 std::shared_ptr<audio::AudioOutput>
openOutput(
const char* device);
404 std::shared_ptr<audio::AudioOutput>
openOutput(
const std::string& device);
421 std::shared_ptr<audio::AudioOutput>
openOutput(
const char* device, Uint8 channels, Uint32 rate);
438 std::shared_ptr<audio::AudioOutput>
openOutput(
const std::string& device, Uint8 channels, Uint32 rate);
450 bool closeOutput(
const std::shared_ptr<audio::AudioOutput>& device);
453 #pragma mark Input Devices
473 std::shared_ptr<audio::AudioInput>
openInput();
501 std::shared_ptr<audio::AudioInput>
openInput(Uint8 channels, Uint32 rate, Uint32 delay);
522 std::shared_ptr<audio::AudioInput>
openInput(
const char* device);
543 std::shared_ptr<audio::AudioInput>
openInput(
const std::string& device);
570 std::shared_ptr<audio::AudioInput>
openInput(
const char* device, Uint8 channels, Uint32 rate, Uint32 delay);
597 std::shared_ptr<audio::AudioInput>
openInput(
const std::string& device, Uint8 channels, Uint32 rate, Uint32 delay);
609 bool closeInput(
const std::shared_ptr<audio::AudioInput>& device);