mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
Set the actually opened audio device from vatlib
In the past, the optional arguments currentInput and currentOutput were not used. Therefore we never knew which device was actually opened by vatlib. This caused the Audio UI to be completely unsychronized from the reality when loading swiftgui. ref T337
This commit is contained in:
committed by
Klaus Basan
parent
44b1273085
commit
24ebc2ce7f
@@ -37,9 +37,6 @@ namespace BlackCore
|
||||
//! Get available input devices
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfoList &getInputDevices() const = 0;
|
||||
|
||||
//! Default input device
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getDefaultInputDevice() const = 0;
|
||||
|
||||
//! Current input device
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getCurrentInputDevice() const = 0;
|
||||
|
||||
@@ -63,9 +60,6 @@ namespace BlackCore
|
||||
//! Get available output devices
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfoList &getOutputDevices() const = 0;
|
||||
|
||||
//! Default output device
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getDefaultOutputDevice() const = 0;
|
||||
|
||||
//! Current output device
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getCurrentOutputDevice() const = 0;
|
||||
|
||||
|
||||
@@ -39,8 +39,9 @@ namespace BlackCore
|
||||
: IAudioInputDevice(parent)
|
||||
{
|
||||
m_inputCodec.reset(Vat_CreateLocalInputCodec(audioService, vatCodecLegacy));
|
||||
Vat_GetInputDeviceInfo(m_inputCodec.data(), onInputHardwareDeviceReceived, this, nullptr);
|
||||
m_currentDevice = getDefaultInputDevice();
|
||||
int currentDeviceIndex;
|
||||
Vat_GetInputDeviceInfo(m_inputCodec.data(), onInputHardwareDeviceReceived, this, ¤tDeviceIndex);
|
||||
m_currentDevice = m_devices.findByDeviceIndex(currentDeviceIndex);
|
||||
}
|
||||
|
||||
const CAudioDeviceInfoList &CAudioInputDeviceVatlib::getInputDevices() const
|
||||
@@ -48,12 +49,6 @@ namespace BlackCore
|
||||
return m_devices;
|
||||
}
|
||||
|
||||
const CAudioDeviceInfo &CAudioInputDeviceVatlib::getDefaultInputDevice() const
|
||||
{
|
||||
static CAudioDeviceInfo info(CAudioDeviceInfo::InputDevice, CAudioDeviceInfo::defaultDeviceIndex(), "default");
|
||||
return info;
|
||||
}
|
||||
|
||||
const CAudioDeviceInfo &CAudioInputDeviceVatlib::getCurrentInputDevice() const
|
||||
{
|
||||
return m_currentDevice;
|
||||
@@ -85,8 +80,9 @@ namespace BlackCore
|
||||
: IAudioOutputDevice(parent)
|
||||
{
|
||||
m_outputCodec.reset(Vat_CreateLocalOutputCodec(audioService, vatCodecLegacy));
|
||||
Vat_GetOutputDeviceInfo(m_outputCodec.data(), onOutputHardwareDeviceReceived, this, nullptr);
|
||||
m_currentDevice = getDefaultOutputDevice();
|
||||
int currentDeviceIndex;
|
||||
Vat_GetOutputDeviceInfo(m_outputCodec.data(), onOutputHardwareDeviceReceived, this, ¤tDeviceIndex);
|
||||
m_currentDevice = m_devices.findByDeviceIndex(currentDeviceIndex);
|
||||
}
|
||||
|
||||
const CAudioDeviceInfoList &CAudioOutputDeviceVatlib::getOutputDevices() const
|
||||
@@ -94,12 +90,6 @@ namespace BlackCore
|
||||
return m_devices;
|
||||
}
|
||||
|
||||
const CAudioDeviceInfo &CAudioOutputDeviceVatlib::getDefaultOutputDevice() const
|
||||
{
|
||||
static CAudioDeviceInfo info(CAudioDeviceInfo::OutputDevice, CAudioDeviceInfo::defaultDeviceIndex(), "default");
|
||||
return info;
|
||||
}
|
||||
|
||||
const CAudioDeviceInfo &CAudioOutputDeviceVatlib::getCurrentOutputDevice() const
|
||||
{
|
||||
return m_currentDevice;
|
||||
|
||||
@@ -41,9 +41,6 @@ namespace BlackCore
|
||||
//! \copydoc IAudioInputDevice::getInputDevices
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfoList &getInputDevices() const override;
|
||||
|
||||
//! \copydoc IAudioInputDevice::getDefaultInputDevice
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getDefaultInputDevice() const override;
|
||||
|
||||
//! \copydoc IAudioInputDevice::getCurrentInputDevice
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getCurrentInputDevice() const override;
|
||||
|
||||
@@ -87,9 +84,6 @@ namespace BlackCore
|
||||
//! \copydoc IAudioOutputDevice::getOutputDevices
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfoList &getOutputDevices() const override;
|
||||
|
||||
//! \copydoc IAudioOutputDevice::getDefaultOutputDevice
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getDefaultOutputDevice() const override;
|
||||
|
||||
//! \copydoc IAudioOutputDevice::getCurrentOutputDevice
|
||||
virtual const BlackMisc::Audio::CAudioDeviceInfo &getCurrentOutputDevice() const override;
|
||||
|
||||
|
||||
@@ -36,6 +36,11 @@ namespace BlackMisc
|
||||
return this->findBy(&CAudioDeviceInfo::getType, CAudioDeviceInfo::InputDevice);
|
||||
}
|
||||
|
||||
CAudioDeviceInfo CAudioDeviceInfoList::findByDeviceIndex(int deviceIndex)
|
||||
{
|
||||
return this->findBy(&CAudioDeviceInfo::getIndex, deviceIndex).frontOrDefault();
|
||||
}
|
||||
|
||||
int CAudioDeviceInfoList::count(CAudioDeviceInfo::DeviceType type) const
|
||||
{
|
||||
return std::count_if(this->begin(), this->end(), [type](const CAudioDeviceInfo &device)
|
||||
|
||||
@@ -44,6 +44,9 @@ namespace BlackMisc
|
||||
//! Get output devices in that list
|
||||
CAudioDeviceInfoList getInputDevices() const;
|
||||
|
||||
//! Find device by its index
|
||||
CAudioDeviceInfo findByDeviceIndex(int deviceIndex);
|
||||
|
||||
//! Count (as of type)
|
||||
int count(CAudioDeviceInfo::DeviceType type) const;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user