summaryrefslogtreecommitdiffstats
path: root/platform/javascript/audio_driver_javascript.h
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-10-02 16:25:10 +0200
committerGitHub <noreply@github.com>2020-10-02 16:25:10 +0200
commit1ff3e60ee03ddbd80e67b811a39b0b3509600657 (patch)
tree92096a0959ad1c2e8ca9eb90836f9cbeecc5b262 /platform/javascript/audio_driver_javascript.h
parent0d07a935e90eea0f652448784ea9cf6542593912 (diff)
parenta618535628176e519494a84fd3b04c32fa2a9d64 (diff)
downloadredot-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.h19
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;