refs #372 Replace voice connection methods to use audio mixer

Instead of connecting producers and consumers directly, they
are all connected to an audio mixer. In order to actually
route voice you have to configure the mixer and connect its
input with an output port.
This commit also silently adapts to some new vatlib methods,
which got introduced as a bug fix.
This commit is contained in:
Roland Winklmeier
2015-02-01 14:52:06 +01:00
committed by Klaus Basan
parent 8812f3ba28
commit 7ba3a50e18
3 changed files with 89 additions and 52 deletions

View File

@@ -47,14 +47,27 @@ namespace BlackCore
//! \copydoc IVoice::createAudioMixer()
virtual std::unique_ptr<IAudioMixer> createAudioMixer() override;
//! \copydoc IVoice::connectChannelOutputDevice()
virtual void connectChannelOutputDevice(IVoiceChannel *channel, IAudioOutputDevice *device) override;
//! \copydoc IVoice::connectChannelInputDevice()
virtual void connectChannelInputDevice(IAudioInputDevice *device, IVoiceChannel *channel) override;
//! \copydoc IVoice::connectVoice()
virtual void connectVoice(IAudioInputDevice *device, IAudioMixer *mixer, IAudioMixer::InputPort inputPort) override;
//! \copydoc IVoice::enableAudioLoopback()
virtual void enableAudioLoopback(IAudioInputDevice *input, IAudioOutputDevice *output) override;
//! \copydoc IVoice::connectVoice()
virtual void connectVoice(IVoiceChannel *channel, IAudioMixer *mixer, IAudioMixer::InputPort inputPort) override;
//! \copydoc IVoice::connectVoice()
virtual void connectVoice(IAudioMixer *mixer, IAudioMixer::OutputPort outputPort, IAudioOutputDevice *device) override;
//! \copydoc IVoice::connectVoice()
virtual void connectVoice(IAudioMixer *mixer, IAudioMixer::OutputPort outputPort, IVoiceChannel *channel) override;
//! \copydoc IVoice::disconnectVoice()
void disconnectVoice(IAudioInputDevice *device) override;
//! \copydoc IVoice::disconnectVoice()
void disconnectVoice(IVoiceChannel *channel) override;
//! \copydoc IVoice::disconnectVoice()
void disconnectVoice(IAudioMixer *mixer, IAudioMixer::OutputPort outputPort) override;
protected: // QObject overrides
@@ -84,6 +97,7 @@ namespace BlackCore
QScopedPointer<VatAudioService_tag, VatAudioServiceDeleter> m_audioService;
QScopedPointer<VatUDPAudioPort_tag, VatUDPAudioPortDeleter> m_udpPort;
};
} // namespace