Doxybook2 Example
 
Loading...
Searching...
No Matches
AudioBuffer.hpp
Go to the documentation of this file.
1#pragma once
3
4namespace Engine {
5 namespace Audio {
6 class AudioManager;
7 class AudioBuffer;
8
15 typedef int (*Callback)(AudioBuffer& buffer, size_t offset);
16
23 using Callback2 = int (*)(AudioBuffer& buffer, size_t offset, void* user);
24
28 extern void doSomething(AudioBuffer& buffer);
29
61 public:
65 enum class Type {
73 INT_8 = 1 << 1,
77 INT_16 = 1 << 2,
81 INT_24 = 1 << 3,
85 INT_32 = 1 << 4,
89 FLOAT_32 = 1 << 5
90 };
91 template <typename T> using AudioData = Utils::ArrayView<T>;
100
103 explicit AudioBuffer(const std::string& filename);
107 virtual ~AudioBuffer() = default;
113 void play(AudioManager& manager) const;
119 void stop(AudioManager& manager) const;
126 void loop(AudioManager& manager) const;
127 void setData(const TypedAudioData& data);
128
129 template <size_t Size> void setDataMultiple(const TypedAudioData data[Size]) {
130 }
131
136 void setData(const TypedAudioData data[], size_t size);
137
138 friend class AudioManager;
139 friend void Audio::doSomething(AudioBuffer& buffer);
140
147 void setCallback(Callback callback);
148
154 void setCallback2(Callback2 callback, void* user);
155
156 protected:
157 float* getData();
158 bool playing{false};
159 };
160 } // namespace Audio
161} // namespace Engine
A simple audio buffer to hold PCM samples
Definition AudioBuffer.hpp:60
void stop(AudioManager &manager) const
Stop this buffer playing.
Utils::ArrayView< T > AudioData
Definition AudioBuffer.hpp:91
void setDataMultiple(const TypedAudioData data[Size])
Definition AudioBuffer.hpp:129
void setData(const TypedAudioData &data)
void setData(const TypedAudioData data[], size_t size)
Some deprecated function.
AudioData< uint8_t > AudioData8U
Definition AudioBuffer.hpp:92
void play(AudioManager &manager) const
Play this buffer.
void loop(AudioManager &manager) const
Loop this buffer forever.
friend class AudioManager
Definition AudioBuffer.hpp:138
void setCallback(Callback callback)
Set the callback function.
void setCallback2(Callback2 callback, void *user)
Set the callback function.
virtual ~AudioBuffer()=default
Audio::AudioBuffer destructor.
AudioBuffer(const std::string &filename)
Constructor for Audio::AudioBuffer.
Type
Different type of audio formats.
Definition AudioBuffer.hpp:65
@ INT_24
Definition AudioBuffer.hpp:81
@ INT_8
Definition AudioBuffer.hpp:73
@ FLOAT_32
Definition AudioBuffer.hpp:89
@ UNKNOWN
Definition AudioBuffer.hpp:69
@ INT_16
Definition AudioBuffer.hpp:77
@ INT_32
Definition AudioBuffer.hpp:85
bool playing
Definition AudioBuffer.hpp:158
An audio manager that accepts multiple Audio::AudioBuffer instances.
Definition AudioManager.hpp:21
Filesystem path utility functions.
Definition ArrayView.hpp:11
Definition AudioBuffer.hpp:5
int(* Callback)(AudioBuffer &buffer, size_t offset)
Some callback function pointer type definition.
Definition AudioBuffer.hpp:15
int(*)(AudioBuffer &buffer, size_t offset, void *user) Callback2
Some callback function pointer type definition.
Definition AudioBuffer.hpp:23
void doSomething(AudioBuffer &buffer)
Do something with the buffer.
This namespace contains all of the necessary engine components.
Definition Asset.hpp:5
Use this to populate the buffer.
Definition AudioBuffer.hpp:96
Type type
Definition AudioBuffer.hpp:98
AudioData8U buffer
Definition AudioBuffer.hpp:97