diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/audio.c | 32 | ||||
| -rw-r--r-- | src/core.c | 24 | ||||
| -rw-r--r-- | src/lua_core.c | 3 |
3 files changed, 59 insertions, 0 deletions
diff --git a/src/audio.c b/src/audio.c index ef466cb..a02120a 100644 --- a/src/audio.c +++ b/src/audio.c @@ -113,6 +113,22 @@ int laudioLoadWave( lua_State *L ) { } /* +> 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 ) Checks if wave data is ready @@ -424,6 +440,22 @@ int laudioLoadMusicStream( lua_State *L ) { } /* +> 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 ) Checks if a music stream is ready @@ -3082,6 +3082,30 @@ int lcoreLoadBufferFromFile( lua_State *L ) { } /* +> 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 ) Unload buffer data diff --git a/src/lua_core.c b/src/lua_core.c index 820cc20..3465fce 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -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 ); |
