Ref T730, Ref T739, as follow up of RR's fix, use a default device if device name is NOT found

* it can happen the name is empty, or becomes invalid
* an invalid name is a device which has been unplugged
This commit is contained in:
Klaus Basan
2019-10-10 01:22:05 +02:00
committed by Mat Sutcliffe
parent 47475f1a18
commit 98726e4c06

View File

@@ -331,20 +331,10 @@ namespace BlackCore
void IContextAudio::changeDeviceSettings() void IContextAudio::changeDeviceSettings()
{ {
const QString inputDeviceName = m_inputDeviceSetting.get(); const QString inputDeviceName = m_inputDeviceSetting.get();
CAudioDeviceInfo input; const CAudioDeviceInfo input = this->getAudioInputDevices().findByNameOrDefault(inputDeviceName, CAudioDeviceInfo::getDefaultInputDevice());
if (!inputDeviceName.isEmpty())
{
const CAudioDeviceInfoList inputDevs = this->getAudioInputDevices();
input = inputDevs.findByName(inputDeviceName);
}
const QString outputDeviceName = m_outputDeviceSetting.get(); const QString outputDeviceName = m_outputDeviceSetting.get();
CAudioDeviceInfo output; const CAudioDeviceInfo output = this->getAudioOutputDevices().findByNameOrDefault(outputDeviceName, CAudioDeviceInfo::getDefaultOutputDevice());
if (!outputDeviceName.isEmpty())
{
const CAudioDeviceInfoList outputDevs = this->getAudioOutputDevices();
output = outputDevs.findByName(outputDeviceName);
}
this->setCurrentAudioDevices(input, output); this->setCurrentAudioDevices(input, output);
} }
@@ -404,23 +394,15 @@ namespace BlackCore
Q_UNUSED(aircraft) Q_UNUSED(aircraft)
Q_UNUSED(originator) Q_UNUSED(originator)
/** NOT NEEDED as CAfvClient is directly "tracking changes" /** NOT NEEDED as CAfvClient is directly "tracking changes" **/
if (CIdentifiable::isMyIdentifier(originator)) { return; }
const bool integrated = this->xCtxisComIntegratedWithSimulator();
if (integrated)
{
// set as in cockpit
const bool com1Rec = aircraft.getCom1System().isReceiveEnabled();
const bool com2Rec = aircraft.getCom2System().isReceiveEnabled();
}
**/
} }
void IContextAudio::xCtxNetworkConnectionStatusChanged(const CConnectionStatus &from, const CConnectionStatus &to) void IContextAudio::xCtxNetworkConnectionStatusChanged(const CConnectionStatus &from, const CConnectionStatus &to)
{ {
if (!m_voiceClient) { return; }
Q_UNUSED(from) Q_UNUSED(from)
BLACK_VERIFY_X(this->getIContextNetwork(), Q_FUNC_INFO, "Missing network context"); BLACK_VERIFY_X(this->getIContextNetwork(), Q_FUNC_INFO, "Missing network context");
if (!m_voiceClient) { return; }
if (to.isConnected() && this->getIContextNetwork()) if (to.isConnected() && this->getIContextNetwork())
{ {
@@ -430,20 +412,11 @@ namespace BlackCore
const CUser connectedUser = this->getIContextNetwork()->getConnectedServer().getUser(); const CUser connectedUser = this->getIContextNetwork()->getConnectedServer().getUser();
const QString inputDeviceName = m_inputDeviceSetting.get(); const QString inputDeviceName = m_inputDeviceSetting.get();
CAudioDeviceInfo input = CAudioDeviceInfo::getDefaultInputDevice(); const CAudioDeviceInfo input = this->getAudioInputDevices().findByNameOrDefault(inputDeviceName, CAudioDeviceInfo::getDefaultInputDevice());
if (!inputDeviceName.isEmpty())
{
const CAudioDeviceInfoList inputDevs = this->getAudioInputDevices();
input = inputDevs.findByName(inputDeviceName);
}
const QString outputDeviceName = m_outputDeviceSetting.get(); const QString outputDeviceName = m_outputDeviceSetting.get();
CAudioDeviceInfo output = CAudioDeviceInfo::getDefaultOutputDevice(); const CAudioDeviceInfo output = this->getAudioOutputDevices().findByNameOrDefault(outputDeviceName, CAudioDeviceInfo::getDefaultOutputDevice());
if (!outputDeviceName.isEmpty())
{
const CAudioDeviceInfoList outputDevs = this->getAudioOutputDevices();
output = outputDevs.findByName(outputDeviceName);
}
m_voiceClient->connectTo(connectedUser.getId(), connectedUser.getPassword(), connectedUser.getCallsign().asString()); m_voiceClient->connectTo(connectedUser.getId(), connectedUser.getPassword(), connectedUser.getCallsign().asString());
m_voiceClient->startAudio(input, output, {0, 1}); m_voiceClient->startAudio(input, output, {0, 1});
} }