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

@@ -50,18 +50,27 @@ namespace BlackCore
//! Create audio mixer object
virtual std::unique_ptr<IAudioMixer> createAudioMixer() = 0;
//! Connect voice channel to an audio output device
virtual void connectChannelOutputDevice(IVoiceChannel *channel, IAudioOutputDevice *device) = 0;
/*!
* Connect input device to voice channel to start/stop voice transmission
* \param device Audio input device, e.g. a microphone. Pass nullptr to stop transmission
* \param channel Voice channel audio should be transmitted to
*/
virtual void connectChannelInputDevice(IAudioInputDevice *device, IVoiceChannel *channel) = 0;
//! Connect audio input device to audio mixer
virtual void connectVoice(IAudioInputDevice *device, IAudioMixer *mixer, IAudioMixer::InputPort inputPort) = 0;
//! Connect audio input to an audio output to hear your own voice
virtual void enableAudioLoopback(IAudioInputDevice *input, IAudioOutputDevice *output) = 0;
//! Connect voice channel to audio mixer
virtual void connectVoice(IVoiceChannel *channel, IAudioMixer *mixer, IAudioMixer::InputPort inputPort) = 0;
//! Connect audio mixer to audio output device
virtual void connectVoice(IAudioMixer *mixer, IAudioMixer::OutputPort outputPort, IAudioOutputDevice *device) = 0;
//! Connect audio mixer to audio input device
virtual void connectVoice(IAudioMixer *mixer, IAudioMixer::OutputPort outputPort, IVoiceChannel *channel) = 0;
//! Disconnect input device
virtual void disconnectVoice(IAudioInputDevice *device) = 0;
//! Disconnect voice channel
virtual void disconnectVoice(IVoiceChannel *channel) = 0;
//! Disconnect audio mixer output port
virtual void disconnectVoice(IAudioMixer *mixer, IAudioMixer::OutputPort outputPort) = 0;
};
} // namespace BlackCore