blip  0.1
AudioEngine.hpp
Go to the documentation of this file.
1 #ifndef __blip_AudioEngine_hpp
2 #define __blip_AudioEngine_hpp
3 
4 #include <blip/Blip.hpp>
6 
7 #include <commonc++/ScopedPtr.h++>
8 
9 #include <vector>
10 
11 namespace blip {
12 
13 struct AudioContext;
14 class AudioFormat;
15 class AudioPlayer;
16 class LEDArray;
17 class Vibrator;
18 
31 {
32  public:
33 
37  AudioEngine();
38 
42  ~AudioEngine();
43 
48  void initialize();
49 
53  void shutdown();
54 
62  void allocatePlayer(const AudioFormat& format);
63 
71  AudioPlayer* reservePlayer(const AudioFormat& format);
72 
78  void releasePlayer(AudioPlayer* player);
79 
88 
98 
99  private:
100 
101  void checkResult(uint32_t result, const char* call);
102 
103  inline AudioContext& ctx()
104  { return(*_context); }
105 
106  ccxx::ScopedPtr<AudioContext> _context;
107  std::vector<AudioPlayer*> _players;
108  ccxx::ScopedPtr<LEDArray> _ledArray;
109  ccxx::ScopedPtr<Vibrator> _vibrator;
110  bool _initialized;
111  bool _haveEngineCapabilities;
112 
113  static const char* LOG_TAG;
114 
115  CCXX_COPY_DECLS(AudioEngine);
116 };
117 
118 } // namespace blip
119 
120 #endif // __blip_AudioEngine_hpp
void allocatePlayer(const AudioFormat &format)
Allocate an AudioPlayer instance within the engine that will play back audio with the given format...
Definition: AudioEngine.cpp:151
LEDArray * getLEDArray()
Get the LEDArray object representing the device&#39;s LED arrays.
Definition: AudioEngine.cpp:215
void releasePlayer(AudioPlayer *player)
Release a previously reserved AudioPlayer instance.
Definition: AudioEngine.cpp:195
An audio playback object.
Definition: AudioPlayer.hpp:21
AudioEngine()
Construct a new AudioEngine.
Definition: AudioEngine.cpp:23
An object that describes an audio data format.
Definition: AudioFormat.hpp:12
Vibrator * getVibrator()
Get the Vibrator object representing the device&#39;s vibrator (haptic feedback) device.
Definition: AudioEngine.cpp:240
void shutdown()
Deallocate any allocated AudioPlayer instances and shut down the audio engine.
Definition: AudioEngine.cpp:119
WAV file format details at: https://ccrma.stanford.edu/courses/422/projects/WaveFormat/.
Definition: AccelerometerSensorEvent.cpp:3
An audio playback engine.
Definition: AudioEngine.hpp:30
A class representing an LED array.
Definition: LEDArray.hpp:23
AudioPlayer * reservePlayer(const AudioFormat &format)
Reserve an AudioPlayer instance that can play back the given audio format.
Definition: AudioEngine.cpp:169
A class representing a vibration (haptic feedback) device.
Definition: Vibrator.hpp:22
~AudioEngine()
Destructor.
Definition: AudioEngine.cpp:33
void initialize()
Initialize the audio engine.
Definition: AudioEngine.cpp:40