mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 12:55:31 +08:00
[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:
committed by
Mat Sutcliffe
parent
38a7542265
commit
7f4a68eb45
@@ -165,10 +165,13 @@ namespace BlackCore
|
|||||||
void CContextAudioBase::initVoiceClient()
|
void CContextAudioBase::initVoiceClient()
|
||||||
{
|
{
|
||||||
if (m_voiceClient) { return; }
|
if (m_voiceClient) { return; }
|
||||||
m_voiceClient = new CAfvClient(CVoiceSetup().getAfvVoiceServerUrl(), this);
|
|
||||||
|
|
||||||
const CVoiceSetup vs = m_voiceSettings.getThreadLocal();
|
const CAudioDeviceInfoList devices = CAudioDeviceInfoList::allDevices();
|
||||||
m_voiceClient->updateVoiceServerUrl(vs.getAfvVoiceServerUrl());
|
if (devices != m_activeLocalDevices)
|
||||||
|
{
|
||||||
|
m_activeLocalDevices = devices;
|
||||||
|
emit this->changedLocalAudioDevices(devices);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
if (!m_winCoInitialized)
|
if (!m_winCoInitialized)
|
||||||
@@ -188,6 +191,10 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
#endif
|
#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");
|
Q_ASSERT_X(CThreadUtils::isApplicationThread(m_voiceClient->thread()), Q_FUNC_INFO, "Should be in main thread");
|
||||||
m_voiceClient->start(); // thread
|
m_voiceClient->start(); // thread
|
||||||
Q_ASSERT_X(m_voiceClient->owner() == this, Q_FUNC_INFO, "Wrong owner");
|
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::stoppedAudio, this, &CContextAudioBase::stoppedAudio, Qt::QueuedConnection);
|
||||||
connect(m_voiceClient, &CAfvClient::ptt, this, &CContextAudioBase::ptt, Qt::QueuedConnection);
|
connect(m_voiceClient, &CAfvClient::ptt, this, &CContextAudioBase::ptt, Qt::QueuedConnection);
|
||||||
connect(m_voiceClient, &CAfvClient::connectionStatusChanged, this, &CContextAudioBase::onAfvConnectionStatusChanged, 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()
|
void CContextAudioBase::terminateVoiceClient()
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ int main(int argc, char *argv[])
|
|||||||
QApplication qa(argc, argv);
|
QApplication qa(argc, argv);
|
||||||
Q_UNUSED(qa) // init of qa is required, but qa not used
|
Q_UNUSED(qa) // init of qa is required, but qa not used
|
||||||
|
|
||||||
initWindowsAudioDevices();
|
// initWindowsAudioDevices();
|
||||||
CCrashHandler::instance()->init();
|
CCrashHandler::instance()->init();
|
||||||
CGuiApplication a(CApplicationInfo::swiftCore(), CApplicationInfo::PilotClientCore, CIcons::swiftCore24());
|
CGuiApplication a(CApplicationInfo::swiftCore(), CApplicationInfo::PilotClientCore, CIcons::swiftCore24());
|
||||||
a.addWindowStateOption();
|
a.addWindowStateOption();
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
|
|||||||
QApplication qa(argc, argv);
|
QApplication qa(argc, argv);
|
||||||
Q_UNUSED(qa) // application init needed
|
Q_UNUSED(qa) // application init needed
|
||||||
|
|
||||||
initWindowsAudioDevices();
|
// initWindowsAudioDevices();
|
||||||
CCrashHandler::instance()->init();
|
CCrashHandler::instance()->init();
|
||||||
CSwiftGuiStdApplication a; // application with contexts
|
CSwiftGuiStdApplication a; // application with contexts
|
||||||
a.setSignalStartupAutomatically(false); // application will signal startup on its own
|
a.setSignalStartupAutomatically(false); // application will signal startup on its own
|
||||||
|
|||||||
Reference in New Issue
Block a user