Undo single-translation-unit experiment for now;

This commit is contained in:
bjorn 2019-05-17 16:29:24 -07:00
parent 6f7c30e7e2
commit 976d59e364
3 changed files with 15 additions and 7 deletions

View File

@ -9,9 +9,6 @@
#include <AL/alc.h>
#include <AL/alext.h>
#include "microphone.c"
#include "source.c"
static struct {
bool initialized;
ALCdevice* device;
@ -83,19 +80,20 @@ void lovrAudioUpdate() {
continue;
}
uint32_t id = lovrSourceGetId(source);
bool isStopped = lovrSourceIsStopped(source);
ALint processed;
alGetSourcei(source->id, AL_BUFFERS_PROCESSED, &processed);
alGetSourcei(id, AL_BUFFERS_PROCESSED, &processed);
if (processed) {
ALuint buffers[SOURCE_BUFFERS];
alSourceUnqueueBuffers(source->id, processed, buffers);
alSourceUnqueueBuffers(id, processed, buffers);
lovrSourceStream(source, buffers, processed);
if (isStopped) {
alSourcePlay(source->id);
alSourcePlay(id);
}
} else if (isStopped) {
lovrAudioStreamRewind(source->stream);
lovrAudioStreamRewind(lovrSourceGetStream(source));
vec_splice(&state.sources, i, 1);
lovrRelease(Source, source);
}

View File

@ -62,6 +62,14 @@ SourceType lovrSourceGetType(Source* source) {
return source->type;
}
uint32_t lovrSourceGetId(Source* source) {
return source->id;
}
AudioStream* lovrSourceGetStream(Source* source) {
return source->stream;
}
uint32_t lovrSourceGetBitDepth(Source* source) {
return source->type == SOURCE_STATIC ? source->soundData->bitDepth : source->stream->bitDepth;
}

View File

@ -24,6 +24,8 @@ Source* lovrSourceCreateStatic(struct SoundData* soundData);
Source* lovrSourceCreateStream(struct AudioStream* stream);
void lovrSourceDestroy(void* ref);
SourceType lovrSourceGetType(Source* source);
uint32_t lovrSourceGetId(Source* source);
struct AudioStream* lovrSourceGetStream(Source* source);
uint32_t lovrSourceGetBitDepth(Source* source);
uint32_t lovrSourceGetChannelCount(Source* source);
void lovrSourceGetCone(Source* source, float* innerAngle, float* outerAngle, float* outerGain);