diff --git a/src/blackcore/audiodevice.h b/src/blackcore/audiodevice.h index 2a9ded0b0..e864630d5 100644 --- a/src/blackcore/audiodevice.h +++ b/src/blackcore/audiodevice.h @@ -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; diff --git a/src/blackcore/vatsim/audiodevicevatlib.cpp b/src/blackcore/vatsim/audiodevicevatlib.cpp index 00088f20b..052cb1fbf 100644 --- a/src/blackcore/vatsim/audiodevicevatlib.cpp +++ b/src/blackcore/vatsim/audiodevicevatlib.cpp @@ -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; diff --git a/src/blackcore/vatsim/audiodevicevatlib.h b/src/blackcore/vatsim/audiodevicevatlib.h index cb32159b8..f8ca154bf 100644 --- a/src/blackcore/vatsim/audiodevicevatlib.h +++ b/src/blackcore/vatsim/audiodevicevatlib.h @@ -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; diff --git a/src/blackmisc/audio/audiodeviceinfolist.cpp b/src/blackmisc/audio/audiodeviceinfolist.cpp index b683b8e41..107cc615e 100644 --- a/src/blackmisc/audio/audiodeviceinfolist.cpp +++ b/src/blackmisc/audio/audiodeviceinfolist.cpp @@ -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) diff --git a/src/blackmisc/audio/audiodeviceinfolist.h b/src/blackmisc/audio/audiodeviceinfolist.h index 349902ae5..cea5b0b9b 100644 --- a/src/blackmisc/audio/audiodeviceinfolist.h +++ b/src/blackmisc/audio/audiodeviceinfolist.h @@ -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; };