blip  0.1
AudioPlayer.hpp
Go to the documentation of this file.
1 #ifndef __blip_AudioPlayer_hpp
2 #define __blip_AudioPlayer_hpp
3 
4 #include <blip/Blip.hpp>
6 #include <blip/AudioFormat.hpp>
7 
8 #include <commonc++/ScopedPtr.h++>
9 
10 namespace blip {
11 
12 struct AudioContext;
13 class AudioEngine;
14 
22 {
23  friend class AudioEngine;
24 
25  public:
26 
28  ~AudioPlayer();
29 
34  void start();
35 
41  void stop();
42 
48  void pause();
49 
56  void setVolume(int volumeMB);
57 
65  bool enqueueData(byte_t* data, size_t length);
66 
71  void clear();
72 
79  timespan_ms_t getDuration();
80 
89  timespan_ms_t getPosition();
90 
92  inline const AudioFormat& getAudioFormat() const
93  { return(_format); }
94 
96  inline bool isPlaying() const
97  { return(_playing); }
98 
99  private:
100 
101  AudioPlayer(AudioContext* context, const AudioFormat& format);
102 
103  inline void setReserved(bool reserved)
104  { _reserved = reserved; }
105 
106  inline bool isReserved() const
107  { return(_reserved); }
108 
109  void init();
110 
111  void checkResult(uint32_t result, const char* call);
112 
113  struct Private;
114  friend struct Private;
115 
116  ccxx::ScopedPtr<Private> _private;
117  AudioContext* _context;
118  AudioFormat _format;
119  bool _playing;
120  bool _reserved;
121 
122  CCXX_COPY_DECLS(AudioPlayer);
123 };
124 
125 } // namespace blip
126 
127 #endif // __blip_AudioPlayer_hpp
An audio playback object.
Definition: AudioPlayer.hpp:21
bool isPlaying() const
Test if this player is currently playing audio.
Definition: AudioPlayer.hpp:96
An object that describes an audio data format.
Definition: AudioFormat.hpp:12
void pause()
Pause audio playback.
Definition: AudioPlayer.cpp:192
const AudioFormat & getAudioFormat() const
Get the AudioFormat for this player.
Definition: AudioPlayer.hpp:92
void start()
Start audio playback.
Definition: AudioPlayer.cpp:164
void setVolume(int volumeMB)
Set the player volume.
Definition: AudioPlayer.cpp:206
void stop()
Stop audio playback.
Definition: AudioPlayer.cpp:178
timespan_ms_t getDuration()
Get the total duration of the currently enqueued audio data.
Definition: AudioPlayer.cpp:248
void clear()
Release all enequeued audio data buffers.
Definition: AudioPlayer.cpp:236
friend struct Private
Definition: AudioPlayer.hpp:113
WAV file format details at: https://ccrma.stanford.edu/courses/422/projects/WaveFormat/.
Definition: AccelerometerSensorEvent.cpp:3
bool enqueueData(byte_t *data, size_t length)
Enqueue a buffer of audio data for playback.
Definition: AudioPlayer.cpp:218
~AudioPlayer()
Destructor.
Definition: AudioPlayer.cpp:155
An audio playback engine.
Definition: AudioEngine.hpp:30
timespan_ms_t getPosition()
Get the position within the currently enqueued audio data.
Definition: AudioPlayer.cpp:261