Updated raylib-cpp header files
This commit is contained in:
@@ -1,25 +1,28 @@
|
||||
#ifndef RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_
|
||||
#define RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_
|
||||
|
||||
#include "./raylib.hpp"
|
||||
#include "./raylib-cpp-utils.hpp"
|
||||
#include "./RaylibException.hpp"
|
||||
#include "./raylib-cpp-utils.hpp"
|
||||
#include "./raylib.hpp"
|
||||
|
||||
namespace raylib {
|
||||
/**
|
||||
* AudioStream management functions
|
||||
*/
|
||||
class AudioStream : public ::AudioStream {
|
||||
public:
|
||||
AudioStream(const ::AudioStream& music) {
|
||||
set(music);
|
||||
public:
|
||||
AudioStream(const ::AudioStream& music)
|
||||
: ::AudioStream(music) {
|
||||
// Nothing.
|
||||
}
|
||||
|
||||
AudioStream(rAudioBuffer* buffer = nullptr,
|
||||
rAudioProcessor *processor = nullptr,
|
||||
unsigned int sampleRate = 0,
|
||||
unsigned int sampleSize = 0,
|
||||
unsigned int channels = 0) : ::AudioStream{buffer, processor, sampleRate, sampleSize, channels} {
|
||||
AudioStream(
|
||||
rAudioBuffer* buffer = nullptr,
|
||||
rAudioProcessor* processor = nullptr,
|
||||
unsigned int sampleRate = 0,
|
||||
unsigned int sampleSize = 0,
|
||||
unsigned int channels = 0)
|
||||
: ::AudioStream{buffer, processor, sampleRate, sampleSize, channels} {
|
||||
// Nothing.
|
||||
}
|
||||
|
||||
@@ -34,7 +37,7 @@ class AudioStream : public ::AudioStream {
|
||||
|
||||
AudioStream(const AudioStream&) = delete;
|
||||
|
||||
AudioStream(AudioStream&& other) {
|
||||
AudioStream(AudioStream&& other) noexcept {
|
||||
set(other);
|
||||
|
||||
other.buffer = nullptr;
|
||||
@@ -44,15 +47,13 @@ class AudioStream : public ::AudioStream {
|
||||
other.channels = 0;
|
||||
}
|
||||
|
||||
~AudioStream() {
|
||||
Unload();
|
||||
}
|
||||
~AudioStream() { Unload(); }
|
||||
|
||||
GETTERSETTER(rAudioBuffer *, Buffer, buffer)
|
||||
GETTERSETTER(rAudioProcessor *, Processor, processor)
|
||||
GETTERSETTER(unsigned int, SampleRate, sampleRate)
|
||||
GETTERSETTER(unsigned int, SampleSize, sampleSize)
|
||||
GETTERSETTER(unsigned int, Channels, channels)
|
||||
GETTER(rAudioBuffer*, Buffer, buffer)
|
||||
GETTER(rAudioProcessor*, Processor, processor)
|
||||
GETTER(unsigned int, SampleRate, sampleRate)
|
||||
GETTER(unsigned int, SampleSize, sampleSize)
|
||||
GETTER(unsigned int, Channels, channels)
|
||||
|
||||
AudioStream& operator=(const ::AudioStream& stream) {
|
||||
set(stream);
|
||||
@@ -81,7 +82,7 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Update audio stream buffers with data
|
||||
*/
|
||||
inline AudioStream& Update(const void *data, int samplesCount) {
|
||||
AudioStream& Update(const void* data, int samplesCount) {
|
||||
::UpdateAudioStream(*this, data, samplesCount);
|
||||
return *this;
|
||||
}
|
||||
@@ -89,21 +90,21 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Unload audio stream and free memory
|
||||
*/
|
||||
inline void Unload() {
|
||||
::UnloadAudioStream(*this);
|
||||
void Unload() {
|
||||
if (IsValid()) {
|
||||
::UnloadAudioStream(*this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if any audio stream buffers requires refill
|
||||
*/
|
||||
inline bool IsProcessed() const {
|
||||
return ::IsAudioStreamProcessed(*this);
|
||||
}
|
||||
[[nodiscard]] bool IsProcessed() const { return ::IsAudioStreamProcessed(*this); }
|
||||
|
||||
/**
|
||||
* Play audio stream
|
||||
*/
|
||||
inline AudioStream& Play() {
|
||||
AudioStream& Play() {
|
||||
::PlayAudioStream(*this);
|
||||
return *this;
|
||||
}
|
||||
@@ -111,7 +112,7 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Pause audio stream
|
||||
*/
|
||||
inline AudioStream& Pause() {
|
||||
AudioStream& Pause() {
|
||||
::PauseAudioStream(*this);
|
||||
return *this;
|
||||
}
|
||||
@@ -119,7 +120,7 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Resume audio stream
|
||||
*/
|
||||
inline AudioStream& Resume() {
|
||||
AudioStream& Resume() {
|
||||
::ResumeAudioStream(*this);
|
||||
return *this;
|
||||
}
|
||||
@@ -127,14 +128,12 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Check if audio stream is playing
|
||||
*/
|
||||
inline bool IsPlaying() const {
|
||||
return ::IsAudioStreamPlaying(*this);
|
||||
}
|
||||
[[nodiscard]] bool IsPlaying() const { return ::IsAudioStreamPlaying(*this); }
|
||||
|
||||
/**
|
||||
* Stop audio stream
|
||||
*/
|
||||
inline AudioStream& Stop() {
|
||||
AudioStream& Stop() {
|
||||
::StopAudioStream(*this);
|
||||
return *this;
|
||||
}
|
||||
@@ -142,7 +141,7 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Set volume for audio stream (1.0 is max level)
|
||||
*/
|
||||
inline AudioStream& SetVolume(float volume = 1.0f) {
|
||||
AudioStream& SetVolume(float volume = 1.0f) {
|
||||
::SetAudioStreamVolume(*this, volume);
|
||||
return *this;
|
||||
}
|
||||
@@ -150,7 +149,7 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Set pitch for audio stream (1.0 is base level)
|
||||
*/
|
||||
inline AudioStream& SetPitch(float pitch) {
|
||||
AudioStream& SetPitch(float pitch) {
|
||||
::SetAudioStreamPitch(*this, pitch);
|
||||
return *this;
|
||||
}
|
||||
@@ -158,45 +157,35 @@ class AudioStream : public ::AudioStream {
|
||||
/**
|
||||
* Set pan for audio stream (0.5 is centered)
|
||||
*/
|
||||
inline AudioStream& SetPan(float pan = 0.5f) {
|
||||
::SetAudioStreamPitch(*this, pan);
|
||||
AudioStream& SetPan(float pan = 0.5f) {
|
||||
::SetAudioStreamPan(*this, pan);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default size for new audio streams
|
||||
*/
|
||||
inline static void SetBufferSizeDefault(int size) {
|
||||
::SetAudioStreamBufferSizeDefault(size);
|
||||
}
|
||||
static void SetBufferSizeDefault(int size) { ::SetAudioStreamBufferSizeDefault(size); }
|
||||
|
||||
/**
|
||||
* Audio thread callback to request new data
|
||||
*/
|
||||
inline void SetCallback(::AudioCallback callback) {
|
||||
::SetAudioStreamCallback(*this, callback);
|
||||
}
|
||||
void SetCallback(::AudioCallback callback) { ::SetAudioStreamCallback(*this, callback); }
|
||||
|
||||
/**
|
||||
* Attach audio stream processor to stream
|
||||
*/
|
||||
inline void AttachProcessor(::AudioCallback processor) {
|
||||
::SetAudioStreamCallback(*this, processor);
|
||||
}
|
||||
void AttachProcessor(::AudioCallback processor) { ::AttachAudioStreamProcessor(*this, processor); }
|
||||
|
||||
/**
|
||||
* Detach audio stream processor from stream
|
||||
*/
|
||||
inline void DetachProcessor(::AudioCallback processor) {
|
||||
::SetAudioStreamCallback(*this, processor);
|
||||
}
|
||||
void DetachProcessor(::AudioCallback processor) { ::DetachAudioStreamProcessor(*this, processor); }
|
||||
|
||||
/**
|
||||
* Retrieve whether or not the audio stream is ready.
|
||||
*/
|
||||
bool IsReady() const {
|
||||
return ::IsAudioStreamReady(*this);
|
||||
}
|
||||
[[nodiscard]] bool IsValid() const { return ::IsAudioStreamValid(*this); }
|
||||
|
||||
/**
|
||||
* Load audio stream (to stream raw audio pcm data)
|
||||
@@ -206,12 +195,11 @@ class AudioStream : public ::AudioStream {
|
||||
void Load(unsigned int SampleRate, unsigned int SampleSize, unsigned int Channels = 2) {
|
||||
Unload();
|
||||
set(::LoadAudioStream(SampleRate, SampleSize, Channels));
|
||||
if (!IsReady()) {
|
||||
if (!IsValid()) {
|
||||
throw RaylibException("Failed to load audio stream");
|
||||
}
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void set(const ::AudioStream& stream) {
|
||||
buffer = stream.buffer;
|
||||
processor = stream.processor;
|
||||
@@ -220,8 +208,8 @@ class AudioStream : public ::AudioStream {
|
||||
channels = stream.channels;
|
||||
}
|
||||
};
|
||||
} // namespace raylib
|
||||
} // namespace raylib
|
||||
|
||||
using RAudioStream = raylib::AudioStream;
|
||||
|
||||
#endif // RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_
|
||||
#endif // RAYLIB_CPP_INCLUDE_AUDIOSTREAM_HPP_
|
||||
|
Reference in New Issue
Block a user