From 60e3f733241a5524610450adee897c6aca02da42 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sun, 23 Jul 2023 01:01:45 -0400 Subject: make vad method a setting and tie it to combobox --- src/audio/manager.cpp | 24 ++++++++++++++++++------ src/audio/manager.hpp | 1 + 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'src/audio') diff --git a/src/audio/manager.cpp b/src/audio/manager.cpp index 48df603..bdb7922 100644 --- a/src/audio/manager.cpp +++ b/src/audio/manager.cpp @@ -83,12 +83,6 @@ AudioManager::AudioManager() { Enumerate(); -#ifdef WITH_RNNOISE - SetVADMethod(VADMethod::RNNoise); -#else - SetVADMethod(VADMethod::Gate); -#endif - m_playback_config = ma_device_config_init(ma_device_type_playback); m_playback_config.playback.format = ma_format_f32; m_playback_config.playback.channels = 2; @@ -540,7 +534,25 @@ uint32_t AudioManager::GetRTPTimestamp() const noexcept { return m_rtp_timestamp; } +void AudioManager::SetVADMethod(const std::string &method) { + spdlog::get("audio")->debug("Setting VAD method to {}", method); + if (method == "gate") { + SetVADMethod(VADMethod::Gate); + } else if (method == "rnnoise") { +#ifdef WITH_RNNOISE + SetVADMethod(VADMethod::RNNoise); +#else + SetVADMethod(VADMethod::Gate); + spdlog::get("audio")->error("Tried to set RNNoise VAD method with support disabled"); +#endif + } else { + SetVADMethod(VADMethod::Gate); + spdlog::get("audio")->error("Tried to set unknown VAD method {}", method); + } +} + void AudioManager::SetVADMethod(VADMethod method) { + spdlog::get("audio")->debug("Setting VAD method to enum {}", static_cast(method)); m_vad_method = method; #ifdef WITH_RNNOISE diff --git a/src/audio/manager.hpp b/src/audio/manager.hpp index ec62fed..2e7d087 100644 --- a/src/audio/manager.hpp +++ b/src/audio/manager.hpp @@ -75,6 +75,7 @@ public: RNNoise, }; + void SetVADMethod(const std::string &method); void SetVADMethod(VADMethod method); private: -- cgit v1.2.3