1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-02 20:43:35 +00:00

Source:getSound;

This commit is contained in:
bjorn 2021-03-03 15:32:41 -07:00
parent dd98b11b3f
commit 2c0875087f
3 changed files with 13 additions and 0 deletions

View file

@ -11,6 +11,13 @@ static int l_lovrSourceClone(lua_State* L) {
return 1; return 1;
} }
static int l_lovrSourceGetSound(lua_State* L) {
Source* source = luax_checktype(L, 1, Source);
struct Sound* sound = lovrSourceGetSound(source);
luax_pushtype(L, Sound, sound);
return 1;
}
static int l_lovrSourcePlay(lua_State* L) { static int l_lovrSourcePlay(lua_State* L) {
Source* source = luax_checktype(L, 1, Source); Source* source = luax_checktype(L, 1, Source);
bool played = lovrSourcePlay(source); bool played = lovrSourcePlay(source);
@ -206,6 +213,7 @@ static int l_lovrSourceSetEffectEnabled(lua_State* L) {
const luaL_Reg lovrSource[] = { const luaL_Reg lovrSource[] = {
{ "clone", l_lovrSourceClone }, { "clone", l_lovrSourceClone },
{ "getSound", l_lovrSourceGetSound },
{ "play", l_lovrSourcePlay }, { "play", l_lovrSourcePlay },
{ "pause", l_lovrSourcePause }, { "pause", l_lovrSourcePause },
{ "stop", l_lovrSourceStop }, { "stop", l_lovrSourceStop },

View file

@ -404,6 +404,10 @@ void lovrSourceDestroy(void* ref) {
free(source); free(source);
} }
Sound* lovrSourceGetSound(Source* source) {
return source->sound;
}
bool lovrSourcePlay(Source* source) { bool lovrSourcePlay(Source* source) {
if (state.sourceMask == ~0ull) { if (state.sourceMask == ~0ull) {
return false; return false;

View file

@ -71,6 +71,7 @@ struct Sound* lovrAudioGetCaptureStream(void);
Source* lovrSourceCreate(struct Sound* sound, bool spatial); Source* lovrSourceCreate(struct Sound* sound, bool spatial);
Source* lovrSourceClone(Source* source); Source* lovrSourceClone(Source* source);
void lovrSourceDestroy(void* ref); void lovrSourceDestroy(void* ref);
struct Sound* lovrSourceGetSound(Source* source);
bool lovrSourcePlay(Source* source); bool lovrSourcePlay(Source* source);
void lovrSourcePause(Source* source); void lovrSourcePause(Source* source);
void lovrSourceStop(Source* source); void lovrSourceStop(Source* source);