sela
player.hpp
Go to the documentation of this file.
1 #include <ao/ao.h>
2 #include <condition_variable>
3 #include <mutex>
4 
5 #include "../data/audio_packet.hpp"
6 #include "../file/wav_file.hpp"
7 
8 namespace sela {
9 class Player {
10 private:
11  ao_sample_format ao_format;
12  ao_device* dev;
13  int32_t driver;
14  std::vector<data::AudioPacket> audioPackets;
15 
16  std::mutex mutex;
17  std::condition_variable condVar;
18  std::atomic<size_t> transformCount;
19 
20  void initializeAo();
21  void setAoFormat(const data::WavFormatSubChunk& format);
22  void transform(const std::vector<data::WavFrame>& wavFrames);
23  void printProgress(size_t& current, size_t total);
24  void destroyAo();
25 
26 public:
27  void play(const file::WavFile& wavFile);
28 };
29 } // namespace sela
void transform(const std::vector< data::WavFrame > &wavFrames)
Definition: player.cpp:30
int32_t driver
Definition: player.hpp:13
std::condition_variable condVar
Definition: player.hpp:17
void destroyAo()
Definition: player.cpp:126
Definition: wav_file.hpp:10
std::atomic< size_t > transformCount
Definition: player.hpp:18
void printProgress(size_t &current, size_t total)
Definition: player.cpp:101
std::mutex mutex
Definition: player.hpp:16
Definition: wav_sub_chunk.hpp:16
void initializeAo()
Definition: player.cpp:10
ao_sample_format ao_format
Definition: player.hpp:11
std::vector< data::AudioPacket > audioPackets
Definition: player.hpp:14
void setAoFormat(const data::WavFormatSubChunk &format)
Definition: player.cpp:20
Definition: player.hpp:9
ao_device * dev
Definition: player.hpp:12
void play(const file::WavFile &wavFile)
Definition: player.cpp:64
Definition: decoder.hpp:8