lovr.audio.getVolume; lovr.audio.setVolume;

This commit is contained in:
bjorn 2017-01-06 00:41:08 -08:00
parent 84bbe291d1
commit cd3da38478
4 changed files with 27 additions and 0 deletions

View File

@ -71,6 +71,12 @@ void lovrAudioGetPosition(float* x, float* y, float* z) {
alGetListener3f(AL_POSITION, x, y, z); alGetListener3f(AL_POSITION, x, y, z);
} }
float lovrAudioGetVolume() {
float volume;
alGetListenerf(AL_GAIN, &volume);
return volume;
}
int lovrAudioHas(Source* source) { int lovrAudioHas(Source* source) {
int index; int index;
vec_find(&state.sources, source, index); vec_find(&state.sources, source, index);
@ -107,6 +113,10 @@ void lovrAudioSetPosition(float x, float y, float z) {
alListener3f(AL_POSITION, x, y, z); alListener3f(AL_POSITION, x, y, z);
} }
void lovrAudioSetVolume(float volume) {
alListenerf(AL_GAIN, volume);
}
void lovrAudioStop() { void lovrAudioStop() {
int i; Source* source; int i; Source* source;
vec_foreach(&state.sources, source, i) { vec_foreach(&state.sources, source, i) {

View File

@ -20,10 +20,12 @@ void lovrAudioUpdate();
void lovrAudioAdd(Source* source); void lovrAudioAdd(Source* source);
void lovrAudioGetOrientation(float* fx, float* fy, float* fz, float* ux, float* uy, float* uz); void lovrAudioGetOrientation(float* fx, float* fy, float* fz, float* ux, float* uy, float* uz);
void lovrAudioGetPosition(float* x, float* y, float* z); void lovrAudioGetPosition(float* x, float* y, float* z);
float lovrAudioGetVolume();
int lovrAudioHas(Source* source); int lovrAudioHas(Source* source);
void lovrAudioPause(); void lovrAudioPause();
void lovrAudioResume(); void lovrAudioResume();
void lovrAudioRewind(); void lovrAudioRewind();
void lovrAudioSetOrientation(float fx, float fy, float fz, float ux, float uy, float uz); void lovrAudioSetOrientation(float fx, float fy, float fz, float ux, float uy, float uz);
void lovrAudioSetPosition(float x, float y, float z); void lovrAudioSetPosition(float x, float y, float z);
void lovrAudioSetVolume(float volume);
void lovrAudioStop(); void lovrAudioStop();

View File

@ -9,12 +9,14 @@ const luaL_Reg lovrAudio[] = {
{ "update", l_lovrAudioUpdate }, { "update", l_lovrAudioUpdate },
{ "getOrientation", l_lovrAudioGetOrientation }, { "getOrientation", l_lovrAudioGetOrientation },
{ "getPosition", l_lovrAudioGetPosition }, { "getPosition", l_lovrAudioGetPosition },
{ "getVolume", l_lovrAudioGetVolume },
{ "newSource", l_lovrAudioNewSource }, { "newSource", l_lovrAudioNewSource },
{ "pause", l_lovrAudioPause }, { "pause", l_lovrAudioPause },
{ "resume", l_lovrAudioResume }, { "resume", l_lovrAudioResume },
{ "rewind", l_lovrAudioRewind }, { "rewind", l_lovrAudioRewind },
{ "setOrientation", l_lovrAudioSetOrientation }, { "setOrientation", l_lovrAudioSetOrientation },
{ "setPosition", l_lovrAudioSetPosition }, { "setPosition", l_lovrAudioSetPosition },
{ "setVolume", l_lovrAudioSetVolume },
{ "stop", l_lovrAudioStop }, { "stop", l_lovrAudioStop },
{ NULL, NULL } { NULL, NULL }
}; };
@ -58,6 +60,11 @@ int l_lovrAudioGetPosition(lua_State* L) {
return 3; return 3;
} }
int l_lovrAudioGetVolume(lua_State* L) {
lua_pushnumber(L, lovrAudioGetVolume());
return 1;
}
int l_lovrAudioNewSource(lua_State* L) { int l_lovrAudioNewSource(lua_State* L) {
const char* filename = luaL_checkstring(L, 1); const char* filename = luaL_checkstring(L, 1);
if (!strstr(filename, ".ogg")) { if (!strstr(filename, ".ogg")) {
@ -109,6 +116,12 @@ int l_lovrAudioSetPosition(lua_State* L) {
return 0; return 0;
} }
int l_lovrAudioSetVolume(lua_State* L) {
float volume = luaL_checknumber(L, 1);
lovrAudioSetVolume(volume);
return 0;
}
int l_lovrAudioStop(lua_State* L) { int l_lovrAudioStop(lua_State* L) {
lovrAudioStop(); lovrAudioStop();
return 0; return 0;

View File

@ -10,10 +10,12 @@ int l_lovrAudioInit(lua_State* L);
int l_lovrAudioUpdate(lua_State* L); int l_lovrAudioUpdate(lua_State* L);
int l_lovrAudioGetOrientation(lua_State* L); int l_lovrAudioGetOrientation(lua_State* L);
int l_lovrAudioGetPosition(lua_State* L); int l_lovrAudioGetPosition(lua_State* L);
int l_lovrAudioGetVolume(lua_State* L);
int l_lovrAudioNewSource(lua_State* L); int l_lovrAudioNewSource(lua_State* L);
int l_lovrAudioPause(lua_State* L); int l_lovrAudioPause(lua_State* L);
int l_lovrAudioResume(lua_State* L); int l_lovrAudioResume(lua_State* L);
int l_lovrAudioRewind(lua_State* L); int l_lovrAudioRewind(lua_State* L);
int l_lovrAudioSetOrientation(lua_State* L); int l_lovrAudioSetOrientation(lua_State* L);
int l_lovrAudioSetPosition(lua_State* L); int l_lovrAudioSetPosition(lua_State* L);
int l_lovrAudioSetVolume(lua_State* L);
int l_lovrAudioStop(lua_State* L); int l_lovrAudioStop(lua_State* L);