summaryrefslogtreecommitdiff
path: root/src/audio.c
diff options
context:
space:
mode:
authorjussi2024-02-25 14:06:59 +0200
committerjussi2024-02-25 14:06:59 +0200
commit47ed28b006db71d823cfaa24fa143ab5cfcf279b (patch)
treeadf35906662b0646a14adfa6a37260c797cd325a /src/audio.c
parent631cea6aa7510ba53d4f14b5537e1719a72976b9 (diff)
downloadreilua-enhanced-47ed28b006db71d823cfaa24fa143ab5cfcf279b.tar.gz
reilua-enhanced-47ed28b006db71d823cfaa24fa143ab5cfcf279b.tar.bz2
reilua-enhanced-47ed28b006db71d823cfaa24fa143ab5cfcf279b.zip
Added various missing functions.
Diffstat (limited to 'src/audio.c')
-rw-r--r--src/audio.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/audio.c b/src/audio.c
index 04085b4..53031cd 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -189,6 +189,21 @@ int laudioIsSoundReady( lua_State* L ) {
}
/*
+> RL.UpdateSound( Sound sound, Buffer data, int sampleCount )
+
+Update sound buffer with new data
+*/
+int laudioUpdateSound( lua_State* L ) {
+ Sound* sound = uluaGetSound( L, 1 );
+ Buffer* buffer = uluaGetBuffer( L, 2 );
+ int sampleCount = luaL_checkinteger( L, 3 );
+
+ UpdateSound( *sound, buffer->data, sampleCount );
+
+ return 0;
+}
+
+/*
> RL.UnloadWave( Wave wave )
Unload wave data
@@ -387,6 +402,29 @@ int laudioWaveFormat( lua_State* L ) {
}
/*
+> samples = RL.LoadWaveSamples( Wave wave )
+
+Load samples data from wave as a 32bit float data array
+
+- Success return float{}
+*/
+int laudioLoadWaveSamples( lua_State* L ) {
+ Wave* wave = uluaGetWave( L, 1 );
+
+ float* samples = LoadWaveSamples( *wave );
+
+ lua_createtable( L, wave->frameCount * wave->channels, 0 );
+
+ for ( int i = 0; i < wave->frameCount * wave->channels; ++i ) {
+ lua_pushnumber( L, samples[i] );
+ lua_rawseti( L, -2, i+1 );
+ }
+ UnloadWaveSamples( samples );
+
+ return 1;
+}
+
+/*
> wave = RL.WaveCopy( Wave wave )
Copy a wave to a new wave