[WASAPI] another WASAPI fix trial

* disabled the initWindowsAudioDevices call as it seems to be pointless
* changed the order in CContextAudioBase::initVoiceClient
* init CAudioDeviceInfoList::allDevices BEFORE CAfvClient

see https://discordapp.com/channels/539048679160676382/539925070550794240/687769623827185671
This commit is contained in:
Klaus Basan
2020-03-12 22:42:51 +01:00
committed by Mat Sutcliffe
parent 38a7542265
commit 7f4a68eb45
3 changed files with 12 additions and 12 deletions

View File

@@ -165,10 +165,13 @@ namespace BlackCore
void CContextAudioBase::initVoiceClient()
{
if (m_voiceClient) { return; }
m_voiceClient = new CAfvClient(CVoiceSetup().getAfvVoiceServerUrl(), this);
const CVoiceSetup vs = m_voiceSettings.getThreadLocal();
m_voiceClient->updateVoiceServerUrl(vs.getAfvVoiceServerUrl());
const CAudioDeviceInfoList devices = CAudioDeviceInfoList::allDevices();
if (devices != m_activeLocalDevices)
{
m_activeLocalDevices = devices;
emit this->changedLocalAudioDevices(devices);
}
#ifdef Q_OS_WIN
if (!m_winCoInitialized)
@@ -188,6 +191,10 @@ namespace BlackCore
}
#endif
m_voiceClient = new CAfvClient(CVoiceSetup().getAfvVoiceServerUrl(), this);
const CVoiceSetup vs = m_voiceSettings.getThreadLocal();
m_voiceClient->updateVoiceServerUrl(vs.getAfvVoiceServerUrl());
Q_ASSERT_X(CThreadUtils::isApplicationThread(m_voiceClient->thread()), Q_FUNC_INFO, "Should be in main thread");
m_voiceClient->start(); // thread
Q_ASSERT_X(m_voiceClient->owner() == this, Q_FUNC_INFO, "Wrong owner");
@@ -201,13 +208,6 @@ namespace BlackCore
connect(m_voiceClient, &CAfvClient::stoppedAudio, this, &CContextAudioBase::stoppedAudio, Qt::QueuedConnection);
connect(m_voiceClient, &CAfvClient::ptt, this, &CContextAudioBase::ptt, Qt::QueuedConnection);
connect(m_voiceClient, &CAfvClient::connectionStatusChanged, this, &CContextAudioBase::onAfvConnectionStatusChanged, Qt::QueuedConnection);
const CAudioDeviceInfoList devices = CAudioDeviceInfoList::allDevices();
if (devices != m_activeLocalDevices)
{
m_activeLocalDevices = devices;
emit this->changedLocalAudioDevices(devices);
}
}
void CContextAudioBase::terminateVoiceClient()

View File

@@ -33,7 +33,7 @@ int main(int argc, char *argv[])
QApplication qa(argc, argv);
Q_UNUSED(qa) // init of qa is required, but qa not used
initWindowsAudioDevices();
// initWindowsAudioDevices();
CCrashHandler::instance()->init();
CGuiApplication a(CApplicationInfo::swiftCore(), CApplicationInfo::PilotClientCore, CIcons::swiftCore24());
a.addWindowStateOption();

View File

@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
QApplication qa(argc, argv);
Q_UNUSED(qa) // application init needed
initWindowsAudioDevices();
// initWindowsAudioDevices();
CCrashHandler::instance()->init();
CSwiftGuiStdApplication a; // application with contexts
a.setSignalStartupAutomatically(false); // application will signal startup on its own