diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2020-05-18 02:31:38 +0200 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2020-05-18 13:02:06 +0200 |
commit | 90c7102b51e720d409e1e5597c7942b62e6a6e72 (patch) | |
tree | c7a5b5d80897e0a08dcec1d08eb62564ca2a0f21 /servers | |
parent | 245c179bd31d65c6b31d156c4f6b08647df0e2fe (diff) |
Move mix_rate, ouput_latency to AudioDriverManager
Each driver used to define the (same) project settings values
`audio/mix_rate` and `audio/output_latency`, but the setting names are
not driver specific.
Overriding is still possible via platform tags.
Diffstat (limited to 'servers')
-rw-r--r-- | servers/audio/audio_driver_dummy.cpp | 4 | ||||
-rw-r--r-- | servers/audio_server.cpp | 3 | ||||
-rw-r--r-- | servers/audio_server.h | 6 |
3 files changed, 8 insertions, 5 deletions
diff --git a/servers/audio/audio_driver_dummy.cpp b/servers/audio/audio_driver_dummy.cpp index 70d5ebbded..c539b582da 100644 --- a/servers/audio/audio_driver_dummy.cpp +++ b/servers/audio/audio_driver_dummy.cpp @@ -39,11 +39,11 @@ Error AudioDriverDummy::init() { exit_thread = false; samples_in = nullptr; - mix_rate = DEFAULT_MIX_RATE; + mix_rate = GLOBAL_GET("audio/mix_rate"); speaker_mode = SPEAKER_MODE_STEREO; channels = 2; - int latency = GLOBAL_DEF_RST("audio/output_latency", DEFAULT_OUTPUT_LATENCY); + int latency = GLOBAL_GET("audio/output_latency"); buffer_frames = closest_power_of_2(latency * mix_rate / 1000); samples_in = memnew_arr(int32_t, buffer_frames * channels); diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp index 7b1ac534b4..09d2914e05 100644 --- a/servers/audio_server.cpp +++ b/servers/audio_server.cpp @@ -182,6 +182,9 @@ int AudioDriverManager::get_driver_count() { void AudioDriverManager::initialize(int p_driver) { GLOBAL_DEF_RST("audio/enable_audio_input", false); + GLOBAL_DEF_RST("audio/mix_rate", DEFAULT_MIX_RATE); + GLOBAL_DEF_RST("audio/output_latency", DEFAULT_OUTPUT_LATENCY); + int failed_driver = -1; // Check if there is a selected driver diff --git a/servers/audio_server.h b/servers/audio_server.h index 71b5ae5946..80e244aacd 100644 --- a/servers/audio_server.h +++ b/servers/audio_server.h @@ -80,9 +80,6 @@ public: SPEAKER_SURROUND_71, }; - static const int DEFAULT_MIX_RATE = 44100; - static const int DEFAULT_OUTPUT_LATENCY = 15; - static AudioDriver *get_singleton(); void set_singleton(); @@ -129,6 +126,9 @@ class AudioDriverManager { MAX_DRIVERS = 10 }; + static const int DEFAULT_MIX_RATE = 44100; + static const int DEFAULT_OUTPUT_LATENCY = 15; + static AudioDriver *drivers[MAX_DRIVERS]; static int driver_count; |