Wise&mystical  1.0
Project about Europe
Loading...
Searching...
No Matches
raudio.h
Go to the documentation of this file.
1
53#ifndef RAUDIO_H
54#define RAUDIO_H
55
56//----------------------------------------------------------------------------------
57// Defines and Macros
58//----------------------------------------------------------------------------------
59// Allow custom memory allocators
60#ifndef RL_MALLOC
61 #define RL_MALLOC(sz) malloc(sz)
62#endif
63#ifndef RL_CALLOC
64 #define RL_CALLOC(n,sz) calloc(n,sz)
65#endif
66#ifndef RL_FREE
67 #define RL_FREE(p) free(p)
68#endif
69
70//----------------------------------------------------------------------------------
71// Types and Structures Definition
72//----------------------------------------------------------------------------------
73#ifndef __cplusplus
74// Boolean type
75 #if !defined(_STDBOOL_H)
76 typedef enum { false, true } bool;
77 #define _STDBOOL_H
78 #endif
79#endif
80
81// Wave, audio wave data
82typedef struct Wave {
83 unsigned int frameCount; // Total number of frames (considering channels)
84 unsigned int sampleRate; // Frequency (samples per second)
85 unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported)
86 unsigned int channels; // Number of channels (1-mono, 2-stereo, ...)
87 void *data; // Buffer data pointer
89
91
92// AudioStream, custom audio stream
93typedef struct AudioStream {
94 rAudioBuffer *buffer; // Pointer to internal data used by the audio system
95
96 unsigned int sampleRate; // Frequency (samples per second)
97 unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported)
98 unsigned int channels; // Number of channels (1-mono, 2-stereo, ...)
100
101// Sound
102typedef struct Sound {
103 AudioStream stream; // Audio stream
104 unsigned int frameCount; // Total number of frames (considering channels)
106
107// Music, audio stream, anything longer than ~10 seconds should be streamed
108typedef struct Music {
109 AudioStream stream; // Audio stream
110 unsigned int frameCount; // Total number of frames (considering channels)
111 bool looping; // Music looping enable
112
113 int ctxType; // Type of music context (audio filetype)
114 void *ctxData; // Audio context data, depends on type
116
117//----------------------------------------------------------------------------------
118// Global Variables Definition
119//----------------------------------------------------------------------------------
120//...
121
122//----------------------------------------------------------------------------------
123// Module Functions Declaration
124//----------------------------------------------------------------------------------
125
126#ifdef __cplusplus
127extern "C" { // Prevents name mangling of functions
128#endif
129
130// Audio device management functions
131void InitAudioDevice(void); // Initialize audio device and context
132void CloseAudioDevice(void); // Close the audio device and context
133bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully
134void SetMasterVolume(float volume); // Set master volume (listener)
135
136// Wave/Sound loading/unloading functions
137Wave LoadWave(const char *fileName); // Load wave data from file
138Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load wave from memory buffer, fileType refers to extension: i.e. ".wav"
139Sound LoadSound(const char *fileName); // Load sound from file
140Sound LoadSoundFromWave(Wave wave); // Load sound from wave data
141void UpdateSound(Sound sound, const void *data, int samplesCount);// Update sound buffer with new data
142void UnloadWave(Wave wave); // Unload wave data
143void UnloadSound(Sound sound); // Unload sound
144bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success
145bool ExportWaveAsCode(Wave wave, const char *fileName); // Export wave sample data to code (.h), returns true on success
146
147// Wave/Sound management functions
148void PlaySound(Sound sound); // Play a sound
149void StopSound(Sound sound); // Stop playing a sound
150void PauseSound(Sound sound); // Pause a sound
151void ResumeSound(Sound sound); // Resume a paused sound
152void PlaySoundMulti(Sound sound); // Play a sound (using multichannel buffer pool)
153void StopSoundMulti(void); // Stop any sound playing (using multichannel buffer pool)
154int GetSoundsPlaying(void); // Get number of sounds playing in the multichannel
155bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing
156void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level)
157void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level)
158void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.0 to 1.0, 0.5=center)
159void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format
160Wave WaveCopy(Wave wave); // Copy a wave to a new wave
161void WaveCrop(Wave *wave, int initSample, int finalSample); // Crop a wave to defined samples range
162float *LoadWaveSamples(Wave wave); // Load samples data from wave as a floats array
163void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples()
164
165// Music management functions
166Music LoadMusicStream(const char *fileName); // Load music stream from file
167Music LoadMusicStreamFromMemory(const char *fileType, unsigned char* data, int dataSize); // Load music stream from data
168void UnloadMusicStream(Music music); // Unload music stream
169void PlayMusicStream(Music music); // Start music playing
170bool IsMusicStreamPlaying(Music music); // Check if music is playing
171void UpdateMusicStream(Music music); // Updates buffers for music streaming
172void StopMusicStream(Music music); // Stop music playing
173void PauseMusicStream(Music music); // Pause music playing
174void ResumeMusicStream(Music music); // Resume playing paused music
175void SeekMusicStream(Music music, float position); // Seek music to a position (in seconds)
176void SetMusicVolume(Music music, float volume); // Set volume for music (1.0 is max level)
177void SetMusicPan(Music sound, float pan); // Set pan for a music (0.0 to 1.0, 0.5=center)
178void SetMusicPitch(Music music, float pitch); // Set pitch for a music (1.0 is base level)
179float GetMusicTimeLength(Music music); // Get music time length (in seconds)
180float GetMusicTimePlayed(Music music); // Get current music time played (in seconds)
181
182// AudioStream management functions
183AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data)
184void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount); // Update audio stream buffers with data
185void UnloadAudioStream(AudioStream stream); // Unload audio stream and free memory
186bool IsAudioStreamProcessed(AudioStream stream); // Check if any audio stream buffers requires refill
187void PlayAudioStream(AudioStream stream); // Play audio stream
188void PauseAudioStream(AudioStream stream); // Pause audio stream
189void ResumeAudioStream(AudioStream stream); // Resume audio stream
190bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing
191void StopAudioStream(AudioStream stream); // Stop audio stream
192void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level)
193void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level)
194void SetAudioStreamPan(AudioStream strean, float pan); // Set pan for audio stream (0.0 to 1.0, 0.5=center)
195void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams
196
197#ifdef __cplusplus
198}
199#endif
200
201#endif // RAUDIO_H
void SetAudioStreamVolume(AudioStream stream, float volume)
Definition: raudio.c:2023
bool IsAudioStreamPlaying(AudioStream stream)
Definition: raudio.c:2011
void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels)
Definition: raudio.c:1153
void SetSoundPitch(Sound sound, float pitch)
Definition: raudio.c:1141
void UpdateMusicStream(Music music)
Definition: raudio.c:1727
void StopAudioStream(AudioStream stream)
Definition: raudio.c:2017
void InitAudioDevice(void)
Definition: raudio.c:421
void WaveCrop(Wave *wave, int initSample, int finalSample)
Definition: raudio.c:1207
void StopMusicStream(Music music)
Definition: raudio.c:1670
void StopSoundMulti(void)
Definition: raudio.c:1092
Wave LoadWave(const char *fileName)
Definition: raudio.c:726
int GetSoundsPlaying(void)
Definition: raudio.c:1098
void ResumeAudioStream(AudioStream stream)
Definition: raudio.c:2005
void SetAudioStreamBufferSizeDefault(int size)
Definition: raudio.c:2041
struct Wave Wave
void SetSoundPan(Sound sound, float pan)
Definition: raudio.c:1147
void PlayAudioStream(AudioStream stream)
Definition: raudio.c:1993
struct Sound Sound
void PlayMusicStream(Music music)
Definition: raudio.c:1643
void SetSoundVolume(Sound sound, float volume)
Definition: raudio.c:1135
void ResumeMusicStream(Music music)
Definition: raudio.c:1664
float GetMusicTimeLength(Music music)
Definition: raudio.c:1855
void SetAudioStreamPan(AudioStream strean, float pan)
Definition: raudio.c:2035
void SetMasterVolume(float volume)
Definition: raudio.c:530
bool IsSoundPlaying(Sound sound)
Definition: raudio.c:1129
void StopSound(Sound sound)
Definition: raudio.c:1123
Wave WaveCopy(Wave wave)
Definition: raudio.c:1185
void UnloadWaveSamples(float *samples)
Definition: raudio.c:1244
void ResumeSound(Sound sound)
Definition: raudio.c:1117
void UnloadSound(Sound sound)
Definition: raudio.c:897
void UnloadAudioStream(AudioStream stream)
Definition: raudio.c:1923
bool IsMusicStreamPlaying(Music music)
Definition: raudio.c:1831
void SeekMusicStream(Music music, float position)
Definition: raudio.c:1699
void SetAudioStreamPitch(AudioStream stream, float pitch)
Definition: raudio.c:2029
void UnloadMusicStream(Music music)
Definition: raudio.c:1614
Music LoadMusicStreamFromMemory(const char *fileType, unsigned char *data, int dataSize)
void SetMusicPan(Music sound, float pan)
Definition: raudio.c:1849
Sound LoadSound(const char *fileName)
Definition: raudio.c:835
bool IsAudioStreamProcessed(AudioStream stream)
Definition: raudio.c:1985
void SetMusicVolume(Music music, float volume)
Definition: raudio.c:1837
void UnloadWave(Wave wave)
Definition: raudio.c:890
void SetMusicPitch(Music music, float pitch)
Definition: raudio.c:1843
Sound LoadSoundFromWave(Wave wave)
Definition: raudio.c:848
struct Music Music
void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount)
Definition: raudio.c:1933
void PlaySound(Sound sound)
Definition: raudio.c:1023
bool ExportWaveAsCode(Wave wave, const char *fileName)
Definition: raudio.c:958
void CloseAudioDevice(void)
Definition: raudio.c:494
Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize)
Definition: raudio.c:744
Music LoadMusicStream(const char *fileName)
Definition: raudio.c:1254
struct AudioStream AudioStream
AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels)
Definition: raudio.c:1891
void PauseMusicStream(Music music)
Definition: raudio.c:1658
void PauseAudioStream(AudioStream stream)
Definition: raudio.c:1999
bool IsAudioDeviceReady(void)
Definition: raudio.c:524
void PauseSound(Sound sound)
Definition: raudio.c:1111
float GetMusicTimePlayed(Music music)
Definition: raudio.c:1865
void PlaySoundMulti(Sound sound)
Definition: raudio.c:1029
bool ExportWave(Wave wave, const char *fileName)
Definition: raudio.c:916
bool
Definition: raudio.h:76
void UpdateSound(Sound sound, const void *data, int samplesCount)
Definition: raudio.c:904
float * LoadWaveSamples(Wave wave)
Definition: raudio.c:1227
rAudioBuffer * buffer
Definition: raudio.h:94
unsigned int sampleSize
Definition: raudio.h:97
unsigned int sampleRate
Definition: raudio.h:96
unsigned int channels
Definition: raudio.h:98
Definition: raudio.h:108
AudioStream stream
Definition: raudio.h:109
void * ctxData
Definition: raudio.h:114
int ctxType
Definition: raudio.h:113
bool looping
Definition: raudio.h:111
unsigned int frameCount
Definition: raudio.h:110
Definition: raudio.h:102
unsigned int frameCount
Definition: raudio.h:104
AudioStream stream
Definition: raudio.h:103
Definition: raudio.h:82
unsigned int sampleSize
Definition: raudio.h:85
unsigned int channels
Definition: raudio.h:86
void * data
Definition: raudio.h:87
unsigned int sampleRate
Definition: raudio.h:84
unsigned int frameCount
Definition: raudio.h:83