Don't connect dummy input device to voice mixer

connectVoice accepts only vatlib types.
This commit is contained in:
Roland Rossgotterer
2019-05-13 08:23:10 +02:00
committed by Klaus Basan
parent 76571f3039
commit 0493dafd69
3 changed files with 13 additions and 1 deletions

View File

@@ -41,6 +41,9 @@ namespace BlackCore
//! Set new input device
virtual void setInputDevice(const BlackMisc::Audio::CAudioDeviceInfo &device) = 0;
//! Is this a real or dummy device?
virtual bool isDummyDevice() const = 0;
};
//! Dummy inout device
@@ -63,6 +66,9 @@ namespace BlackCore
//! \copydoc IAudioInputDevice::setInputDevice
virtual void setInputDevice(const BlackMisc::Audio::CAudioDeviceInfo &device) override { m_currentDevice = device; }
//! \copydoc IAudioInputDevice::isDummyDevice
virtual bool isDummyDevice() const override { return true; }
private:
BlackMisc::Audio::CAudioDeviceInfoList m_devices; /*!< in and output devices */
BlackMisc::Audio::CAudioDeviceInfo m_currentDevice;

View File

@@ -132,7 +132,10 @@ namespace BlackCore
{
m_audioMixer = m_voice->createAudioMixer();
m_voice->connectVoice(m_voiceInputDevice.get(), m_audioMixer.get(), IAudioMixer::InputMicrophone);
if(! m_voiceInputDevice->isDummyDevice())
{
m_voice->connectVoice(m_voiceInputDevice.get(), m_audioMixer.get(), IAudioMixer::InputMicrophone);
}
m_voice->connectVoice(m_channel1.data(), m_audioMixer.get(), IAudioMixer::InputVoiceChannel1);
m_voice->connectVoice(m_channel2.data(), m_audioMixer.get(), IAudioMixer::InputVoiceChannel2);
m_voice->connectVoice(m_audioMixer.get(), IAudioMixer::OutputOutputDevice1, m_voiceOutputDevice.get());

View File

@@ -46,6 +46,9 @@ namespace BlackCore
//! \copydoc IAudioInputDevice::setInputDevice
virtual void setInputDevice(const BlackMisc::Audio::CAudioDeviceInfo &device) override;
//! \copydoc IAudioInputDevice::isDummyDevice
virtual bool isDummyDevice() const override { return false; }
//! Get vatlib input device pointer
VatLocalInputCodec *getVatLocalInputCodec() { return m_inputCodec.data(); }