Use dummy driver when JS AudioContext is unavailable.

This commit is contained in:
Fabio Alessandrelli 2020-06-29 18:51:53 +02:00
parent 1a637b07b1
commit 7a5e10b8a9
5 changed files with 40 additions and 15 deletions

View file

@ -77,7 +77,9 @@ void OS_JavaScript::initialize() {
}
void OS_JavaScript::resume_audio() {
audio_driver_javascript.resume();
if (audio_driver_javascript) {
audio_driver_javascript->resume();
}
}
void OS_JavaScript::set_main_loop(MainLoop *p_main_loop) {
@ -125,11 +127,17 @@ void OS_JavaScript::delete_main_loop() {
void OS_JavaScript::finalize_async() {
finalizing = true;
audio_driver_javascript.finish_async();
if (audio_driver_javascript) {
audio_driver_javascript->finish_async();
}
}
void OS_JavaScript::finalize() {
delete_main_loop();
if (audio_driver_javascript) {
memdelete(audio_driver_javascript);
audio_driver_javascript = nullptr;
}
}
// Miscellaneous
@ -238,7 +246,10 @@ void OS_JavaScript::initialize_joypads() {
}
OS_JavaScript::OS_JavaScript() {
AudioDriverManager::add_driver(&audio_driver_javascript);
if (AudioDriverJavaScript::is_available()) {
audio_driver_javascript = memnew(AudioDriverJavaScript);
AudioDriverManager::add_driver(audio_driver_javascript);
}
Vector<Logger *> loggers;
loggers.push_back(memnew(StdLogger));