lovr.audio.isSpatialized;

This commit is contained in:
bjorn 2017-02-26 13:14:15 -08:00
parent 43ecf52dbc
commit 2a6afc4999
4 changed files with 15 additions and 1 deletions

View File

@ -22,8 +22,9 @@ void lovrAudioInit() {
}
alcResetDeviceSOFT = (LPALCRESETDEVICESOFT) alcGetProcAddress(device, "alcResetDeviceSOFT");
state.isSpatialized = alcIsExtensionPresent(device, "ALC_SOFT_HRTF");
if (alcIsExtensionPresent(device, "ALC_SOFT_HRTF")) {
if (state.isSpatialized) {
ALCint attrs[3] = { ALC_HRTF_SOFT, ALC_TRUE, 0 };
alcResetDeviceSOFT(device, attrs);
}
@ -106,6 +107,10 @@ int lovrAudioHas(Source* source) {
return index >= 0;
}
int lovrAudioIsSpatialized(Source* source) {
return state.isSpatialized;
}
void lovrAudioPause() {
int i; Source* source;
vec_foreach(&state.sources, source, i) {

View File

@ -10,6 +10,7 @@ typedef struct {
ALCdevice* device;
ALCcontext* context;
vec_void_t sources;
int isSpatialized;
float orientation[4];
float position[3];
float velocity[4];
@ -25,6 +26,7 @@ void lovrAudioGetPosition(float* x, float* y, float* z);
void lovrAudioGetVelocity(float* x, float* y, float* z);
float lovrAudioGetVolume();
int lovrAudioHas(Source* source);
int lovrAudioIsSpatialized();
void lovrAudioPause();
void lovrAudioResume();
void lovrAudioRewind();

View File

@ -12,6 +12,7 @@ const luaL_Reg lovrAudio[] = {
{ "getPosition", l_lovrAudioGetPosition },
{ "getVelocity", l_lovrAudioGetVelocity },
{ "getVolume", l_lovrAudioGetVolume },
{ "isSpatialized", l_lovrAudioIsSpatialized },
{ "newSource", l_lovrAudioNewSource },
{ "pause", l_lovrAudioPause },
{ "resume", l_lovrAudioResume },
@ -84,6 +85,11 @@ int l_lovrAudioGetVolume(lua_State* L) {
return 1;
}
int l_lovrAudioIsSpatialized(lua_State* L) {
lua_pushnumber(L, lovrAudioIsSpatialized());
return 1;
}
int l_lovrAudioNewSource(lua_State* L) {
const char* filename = luaL_checkstring(L, 1);
if (!strstr(filename, ".ogg")) {

View File

@ -11,6 +11,7 @@ int l_lovrAudioGetOrientation(lua_State* L);
int l_lovrAudioGetPosition(lua_State* L);
int l_lovrAudioGetVelocity(lua_State* L);
int l_lovrAudioGetVolume(lua_State* L);
int l_lovrAudioIsSpatialized(lua_State* L);
int l_lovrAudioNewSource(lua_State* L);
int l_lovrAudioPause(lua_State* L);
int l_lovrAudioResume(lua_State* L);