diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-10-02 16:25:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-02 16:25:10 +0200 |
commit | 1ff3e60ee03ddbd80e67b811a39b0b3509600657 (patch) | |
tree | 92096a0959ad1c2e8ca9eb90836f9cbeecc5b262 /platform/javascript/audio_driver_javascript.h | |
parent | 0d07a935e90eea0f652448784ea9cf6542593912 (diff) | |
parent | a618535628176e519494a84fd3b04c32fa2a9d64 (diff) | |
download | redot-engine-1ff3e60ee03ddbd80e67b811a39b0b3509600657.tar.gz |
Merge pull request #42505 from Faless/js/4.0_audio_threads
[HTML5] Move audio processing to thread when threads are enabled.
Diffstat (limited to 'platform/javascript/audio_driver_javascript.h')
-rw-r--r-- | platform/javascript/audio_driver_javascript.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/platform/javascript/audio_driver_javascript.h b/platform/javascript/audio_driver_javascript.h index c1607301d7..56a7da0307 100644 --- a/platform/javascript/audio_driver_javascript.h +++ b/platform/javascript/audio_driver_javascript.h @@ -33,15 +33,30 @@ #include "servers/audio_server.h" +#include "core/os/mutex.h" +#include "core/os/thread.h" + class AudioDriverJavaScript : public AudioDriver { +private: float *internal_buffer = nullptr; - int _driver_id = 0; int buffer_length = 0; + int mix_rate = 0; + int channel_count = 0; public: +#ifndef NO_THREADS + Mutex mutex; + Thread *thread = nullptr; + bool quit = false; + bool needs_process = true; + + static void _audio_thread_func(void *p_data); +#endif + + void _js_driver_process(); + static bool is_available(); - void mix_to_js(); void process_capture(float sample); static AudioDriverJavaScript *singleton; |