TDME2  1.9.200
PacketAudioStream.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 
6 #include <tdme/tdme.h>
7 #include <tdme/audio/fwd-tdme.h>
9 
10 using std::string;
11 using std::vector;
12 
15 
16 /**
17  * Packet audio stream
18  * @author Andreas Drewke
19  */
21  : public AudioStream
22 {
23  friend class Audio;
24 
25 private:
26  bool initiated { false };
27  vector<vector<uint8_t>> packets;
28  int64_t position { 0LL };
29 
30 public:
31  // forbid class copy
33 
34  /**
35  * Protected constructor
36  * @param id id
37  * @param pathName path name
38  * @param fileName file name
39  */
40  inline PacketAudioStream(const string& id): AudioStream(id) {
41  }
42 
43  /**
44  * Destructor
45  */
46  inline ~PacketAudioStream() {
47  }
48 
49  // overridden methods
50  void rewind() override;
51 
52  /**
53  * Add audio packet
54  * @param byteBuffer byte buffer packet
55  */
56  void addPacket(ByteBuffer* byteBuffer);
57 protected:
58  // overridden methods
59  bool initialize() override;
60  void dispose() override;
61 
62  // overridden methods
63  void fillBuffer(ByteBuffer* data) override;
64 };
unique_ptr< ByteBuffer > data
Definition: AudioStream.h:34
Interface to audio module.
Definition: Audio.h:29
void rewind() override
Rewinds this audio entity.
void dispose() override
Dispose this entity from OpenAL.
vector< vector< uint8_t > > packets
bool initialize() override
Initiates this OpenAL entity to OpenAl.
void addPacket(ByteBuffer *byteBuffer)
Add audio packet.
void fillBuffer(ByteBuffer *data) override
Fill buffer.
Byte buffer class.
Definition: ByteBuffer.h:27
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6