diff --git a/src/lib/libopenal.js b/src/lib/libopenal.js index 50c156c1a211a..f729aed7cffca 100644 --- a/src/lib/libopenal.js +++ b/src/lib/libopenal.js @@ -4056,7 +4056,7 @@ var LibraryOpenAL = { // Find the first non-zero buffer in the queue to determine the proper format var templateBuf = AL.buffers[0]; - for (var buf of src.bufQueue.length) { + for (var buf of src.bufQueue) { if (buf.id !== 0) { templateBuf = buf; break; diff --git a/test/openal/test_openal_buffers.c b/test/openal/test_openal_buffers.c index dc9af976f6dd0..919dd69be9cab 100644 --- a/test/openal/test_openal_buffers.c +++ b/test/openal/test_openal_buffers.c @@ -89,7 +89,9 @@ void iter() { alGetSourcef(source, AL_PITCH, &testPitch); assert(pitch == testPitch); #endif - +#ifndef TEST_INTERACTIVE + offset = size; +#endif // Exit once we've processed the entire clip. if (offset >= size) { #if __EMSCRIPTEN__ @@ -192,7 +194,6 @@ int main(int argc, char* argv[]) { ALint srcLen = 0; alGetSourcei(source, 0x2009 /* AL_BYTE_LENGTH_SOFT */, &srcLen); assert(srcLen == NUM_BUFFERS * BUFFER_SIZE); - #ifdef TEST_ANIMATED_PITCH printf("You should hear a clip of the 1902 piano song \"The Entertainer\" played back at a high pitch rate, and animated to slow down to half playback speed.\n"); #else diff --git a/test/openal/test_openal_playback.c b/test/openal/test_openal_playback.c index 4242b88ce5d6c..8aac17ce3e31b 100644 --- a/test/openal/test_openal_playback.c +++ b/test/openal/test_openal_playback.c @@ -295,10 +295,11 @@ int main() { #ifdef __EMSCRIPTEN__ + intptr_t first_src = sources[0]; #if defined(TEST_LOOPED_PLAYBACK) - emscripten_set_main_loop_arg(main_tick, (void*)sources[0], 0, 0); + emscripten_set_main_loop_arg(main_tick, (void*)first_src, 0, 0); #else - emscripten_async_call(playSource, (void*)(sources[0]), 700); + emscripten_async_call(playSource, (void*)first_src, 700); #endif #else usleep(700000); diff --git a/test/test_browser.py b/test/test_browser.py index 8dbfe4e5221ca..ea34231ad0d41 100644 --- a/test/test_browser.py +++ b/test/test_browser.py @@ -2323,6 +2323,13 @@ def test_openal_capture_sanity(self): def test_openal_extensions(self): self.btest_exit('openal/test_openal_extensions.c') + def test_openal_playback(self): + shutil.copy(test_file('sounds/audio.wav'), '.') + self.btest_exit('openal/test_openal_playback.c', emcc_args=['-O2', '--preload-file', 'audio.wav'],) + + def test_openal_buffers(self): + self.btest_exit('openal/test_openal_buffers.c', emcc_args=['--preload-file', test_file('sounds/the_entertainer.wav') + '@/'],) + def test_runtimelink(self): create_file('header.h', r''' struct point { diff --git a/test/test_interactive.py b/test/test_interactive.py index e3423b05cb880..1038ef5434118 100644 --- a/test/test_interactive.py +++ b/test/test_interactive.py @@ -159,10 +159,10 @@ def test_openal_playback(self, args): self.btest('openal/test_openal_playback.c', '1', emcc_args=['-O2', '--preload-file', 'audio.wav'] + args) def test_openal_buffers(self): - self.btest_exit('openal/test_openal_buffers.c', emcc_args=['--preload-file', test_file('sounds/the_entertainer.wav') + '@/'],) + self.btest_exit('openal/test_openal_buffers.c', emcc_args=['-DTEST_INTERACTIVE=1', '--preload-file', test_file('sounds/the_entertainer.wav') + '@/'],) def test_openal_buffers_animated_pitch(self): - self.btest_exit('openal/test_openal_buffers.c', emcc_args=['-DTEST_ANIMATED_PITCH=1', '--preload-file', test_file('sounds/the_entertainer.wav') + '@/'],) + self.btest_exit('openal/test_openal_buffers.c', emcc_args=['-DTEST_INTERACTIVE=1', '-DTEST_ANIMATED_PITCH=1', '--preload-file', test_file('sounds/the_entertainer.wav') + '@/'],) def test_openal_looped_pitched_playback(self): self.btest('openal/test_openal_playback.c', '1', emcc_args=['-DTEST_LOOPED_PLAYBACK=1', '--preload-file', test_file('sounds/the_entertainer.wav') + '@/audio.wav'],)