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);