You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-15 13:51:40 +00:00
Remove NO_THREADS fallback code, Godot 4 requires thread support
This also removes `OS::can_use_threads` from the public API since it's always true.
This commit is contained in:
@@ -184,51 +184,6 @@ Error AudioDriverWeb::capture_stop() {
|
||||
return OK;
|
||||
}
|
||||
|
||||
#ifdef NO_THREADS
|
||||
/// ScriptProcessorNode implementation
|
||||
AudioDriverScriptProcessor *AudioDriverScriptProcessor::singleton = nullptr;
|
||||
|
||||
void AudioDriverScriptProcessor::_process_callback() {
|
||||
AudioDriverScriptProcessor::singleton->_audio_driver_capture();
|
||||
AudioDriverScriptProcessor::singleton->_audio_driver_process();
|
||||
}
|
||||
|
||||
Error AudioDriverScriptProcessor::create(int &p_buffer_samples, int p_channels) {
|
||||
if (!godot_audio_has_script_processor()) {
|
||||
return ERR_UNAVAILABLE;
|
||||
}
|
||||
return (Error)godot_audio_script_create(&p_buffer_samples, p_channels);
|
||||
}
|
||||
|
||||
void AudioDriverScriptProcessor::start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) {
|
||||
godot_audio_script_start(p_in_buf, p_in_buf_size, p_out_buf, p_out_buf_size, &_process_callback);
|
||||
}
|
||||
|
||||
/// AudioWorkletNode implementation (no threads)
|
||||
AudioDriverWorklet *AudioDriverWorklet::singleton = nullptr;
|
||||
|
||||
Error AudioDriverWorklet::create(int &p_buffer_size, int p_channels) {
|
||||
if (!godot_audio_has_worklet()) {
|
||||
return ERR_UNAVAILABLE;
|
||||
}
|
||||
return (Error)godot_audio_worklet_create(p_channels);
|
||||
}
|
||||
|
||||
void AudioDriverWorklet::start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) {
|
||||
_audio_driver_process();
|
||||
godot_audio_worklet_start_no_threads(p_out_buf, p_out_buf_size, &_process_callback, p_in_buf, p_in_buf_size, &_capture_callback);
|
||||
}
|
||||
|
||||
void AudioDriverWorklet::_process_callback(int p_pos, int p_samples) {
|
||||
AudioDriverWorklet *driver = AudioDriverWorklet::singleton;
|
||||
driver->_audio_driver_process(p_pos, p_samples);
|
||||
}
|
||||
|
||||
void AudioDriverWorklet::_capture_callback(int p_pos, int p_samples) {
|
||||
AudioDriverWorklet *driver = AudioDriverWorklet::singleton;
|
||||
driver->_audio_driver_capture(p_pos, p_samples);
|
||||
}
|
||||
#else
|
||||
/// AudioWorkletNode implementation (threads)
|
||||
void AudioDriverWorklet::_audio_thread_func(void *p_data) {
|
||||
AudioDriverWorklet *driver = static_cast<AudioDriverWorklet *>(p_data);
|
||||
@@ -290,4 +245,3 @@ void AudioDriverWorklet::finish_driver() {
|
||||
quit = true; // Ask thread to quit.
|
||||
thread.wait_to_finish();
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user