diff options
Diffstat (limited to 'src/abaddon.cpp')
-rw-r--r-- | src/abaddon.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/abaddon.cpp b/src/abaddon.cpp index 8b760fd..5ed17be 100644 --- a/src/abaddon.cpp +++ b/src/abaddon.cpp @@ -432,6 +432,19 @@ void Abaddon::DiscordOnThreadUpdate(const ThreadUpdateData &data) { #ifdef WITH_VOICE void Abaddon::OnVoiceConnected() { m_audio->StartCaptureDevice(); + ShowVoiceWindow(); +} + +void Abaddon::OnVoiceDisconnected() { + m_audio->StopCaptureDevice(); + m_audio->RemoveAllSSRCs(); + if (m_voice_window != nullptr) { + m_voice_window->close(); + } +} + +void Abaddon::ShowVoiceWindow() { + if (m_voice_window != nullptr) return; auto *wnd = new VoiceWindow(m_discord.GetVoiceChannelID()); m_voice_window = wnd; @@ -470,21 +483,12 @@ void Abaddon::OnVoiceConnected() { wnd->show(); wnd->signal_hide().connect([this, wnd]() { - m_discord.DisconnectFromVoice(); m_voice_window = nullptr; delete wnd; delete m_user_menu; SetupUserMenu(); }); } - -void Abaddon::OnVoiceDisconnected() { - m_audio->StopCaptureDevice(); - m_audio->RemoveAllSSRCs(); - if (m_voice_window != nullptr) { - m_voice_window->close(); - } -} #endif SettingsManager::Settings &Abaddon::GetSettings() { |