LoadBufferFromString, LoadWaveFromMemory and LoadMusicStreamFromMemory.

This commit is contained in:
jussi
2024-01-24 19:14:30 +02:00
parent 7460a16cae
commit 3b3d0ad32e
12 changed files with 113 additions and 3 deletions

View File

@@ -112,6 +112,22 @@ int laudioLoadWave( lua_State *L ) {
return 1;
}
/*
> wave = RL.LoadWaveFromMemory( string fileType, Buffer data )
Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
- Success return Wave
*/
int laudioLoadWaveFromMemory( lua_State *L ) {
const char* fileType = luaL_checkstring( L, 1 );
Buffer* buffer = uluaGetBuffer( L, 2 );
uluaPushWave( L, LoadWaveFromMemory( fileType, buffer->data, buffer->size ) );
return 1;
}
/*
> isReady = RL.IsWaveReady( Wave wave )
@@ -423,6 +439,22 @@ int laudioLoadMusicStream( lua_State *L ) {
return 1;
}
/*
> music = RL.LoadMusicStreamFromMemory( string fileType, Buffer data )
Load music stream from data
- Success return Music
*/
int laudioLoadMusicStreamFromMemory( lua_State* L ) {
const char* fileType = luaL_checkstring( L, 1 );
Buffer* buffer = uluaGetBuffer( L, 2 );
uluaPushMusic( L, LoadMusicStreamFromMemory( fileType, buffer->data, buffer->size ) );
return 1;
}
/*
> isReady = RL.IsMusicReady( Music music )

View File

@@ -3081,6 +3081,30 @@ int lcoreLoadBufferFromFile( lua_State *L ) {
return 1;
}
/*
> buffer = RL.LoadBufferFromString( string buffer )
Read buffer data from string
- Failure return nil
- Success return Buffer
*/
int lcoreLoadBufferFromString( lua_State *L ) {
size_t len = 0;
const char *string = luaL_checklstring( L, 1, &len );
Buffer buffer = {
.type = BUFFER_UNSIGNED_CHAR,
.size = len,
.data = malloc( len * sizeof( unsigned char ) )
};
memcpy( buffer.data, string, len );
uluaPushBuffer( L, buffer );
return 1;
}
/*
> RL.UnloadBuffer( Buffer buffer )

View File

@@ -1414,6 +1414,7 @@ void luaRegister() {
/* Buffer management functions. */
assingGlobalFunction( "LoadBuffer", lcoreLoadBuffer );
assingGlobalFunction( "LoadBufferFromFile", lcoreLoadBufferFromFile );
assingGlobalFunction( "LoadBufferFromString", lcoreLoadBufferFromString );
assingGlobalFunction( "UnloadBuffer", lcoreUnloadBuffer );
assingGlobalFunction( "GetBufferData", lcoreGetBufferData );
assingGlobalFunction( "GetBufferType", lcoreGetBufferType );
@@ -1767,6 +1768,7 @@ void luaRegister() {
/* Wave/Sound loading/unloading functions. */
assingGlobalFunction( "LoadSound", laudioLoadSound );
assingGlobalFunction( "LoadWave", laudioLoadWave );
assingGlobalFunction( "LoadWaveFromMemory", laudioLoadWaveFromMemory );
assingGlobalFunction( "IsWaveReady", laudioIsWaveReady );
assingGlobalFunction( "LoadSoundFromWave", laudioLoadSoundFromWave );
assingGlobalFunction( "LoadSoundAlias", laudioLoadSoundAlias );
@@ -1790,6 +1792,7 @@ void luaRegister() {
assingGlobalFunction( "WaveCrop", laudioWaveCrop );
/* Music management functions. */
assingGlobalFunction( "LoadMusicStream", laudioLoadMusicStream );
assingGlobalFunction( "LoadMusicStreamFromMemory", laudioLoadMusicStreamFromMemory );
assingGlobalFunction( "IsMusicReady", laudioIsMusicReady );
assingGlobalFunction( "UnloadMusicStream", laudioUnloadMusicStream );
assingGlobalFunction( "PlayMusicStream", laudioPlayMusicStream );