Improve WebVR audio support;

This commit is contained in:
bjorn 2017-05-06 16:27:16 -07:00
parent 78e58de624
commit db4b8bfbc5
2 changed files with 23 additions and 5 deletions

View File

@ -76,8 +76,12 @@ void lovrAudioAdd(Source* source) {
}
void lovrAudioGetDopplerEffect(float* factor, float* speedOfSound) {
*factor = alGetFloat(AL_DOPPLER_FACTOR);
*speedOfSound = alGetFloat(AL_SPEED_OF_SOUND);
#ifdef EMSCRIPTEN
*factor = *speedOfSound = 0;
#else
alGetFloatv(AL_DOPPLER_FACTOR, factor);
alGetFloatv(AL_SPEED_OF_SOUND, speedOfSound);
#endif
}
void lovrAudioGetOrientation(float* angle, float* ax, float* ay, float* az) {
@ -134,8 +138,10 @@ void lovrAudioRewind() {
}
void lovrAudioSetDopplerEffect(float scale, float speedOfSound) {
#ifndef EMSCRIPTEN
alDopplerFactor(scale);
alSpeedOfSound(speedOfSound);
#endif
}
void lovrAudioSetOrientation(float angle, float ax, float ay, float az) {

View File

@ -64,7 +64,11 @@ int lovrSourceGetChannels(Source* source) {
}
void lovrSourceGetDirection(Source* source, float* x, float* y, float* z) {
alGetSource3f(source->id, AL_DIRECTION, x, y, z);
float v[3];
alGetSourcefv(source->id, AL_DIRECTION, v);
*x = v[0];
*y = v[1];
*z = v[2];
}
int lovrSourceGetDuration(Source* source) {
@ -84,7 +88,11 @@ float lovrSourceGetPitch(Source* source) {
}
void lovrSourceGetPosition(Source* source, float* x, float* y, float* z) {
alGetSource3f(source->id, AL_POSITION, x, y, z);
float v[3];
alGetSourcefv(source->id, AL_POSITION, v);
*x = v[0];
*y = v[1];
*z = v[2];
}
int lovrSourceGetSampleRate(Source* source) {
@ -92,7 +100,11 @@ int lovrSourceGetSampleRate(Source* source) {
}
void lovrSourceGetVelocity(Source* source, float* x, float* y, float* z) {
alGetSource3f(source->id, AL_VELOCITY, x, y, z);
float v[3];
alGetSourcefv(source->id, AL_VELOCITY, v);
*x = v[0];
*y = v[1];
*z = v[2];
}
float lovrSourceGetVolume(Source* source) {