Handle dummy input callbacks

This commit is contained in:
Ken Cooke 2017-08-09 15:54:14 -07:00
parent 6f2cc9cfeb
commit 7daa3ecff3
2 changed files with 29 additions and 1 deletions

View file

@ -1078,6 +1078,33 @@ void AudioClient::handleAudioInput(QByteArray& audioBuffer) {
_stats.sentPacket();
}
void AudioClient::handleDummyAudioInput() {
// the dummy input is always silent
_lastInputLoudness = 0.0f;
_timeSinceLastClip = 0.0f;
emit inputLoudnessChanged(_lastInputLoudness);
_audioGateOpen = false;
auto packetType = PacketType::SilentAudioFrame;
_silentOutbound.increment();
Transform audioTransform;
audioTransform.setTranslation(_positionGetter());
audioTransform.setRotation(_orientationGetter());
const int numNetworkBytes = _isStereoInput
? AudioConstants::NETWORK_FRAME_BYTES_STEREO
: AudioConstants::NETWORK_FRAME_BYTES_PER_CHANNEL;
emitAudioPacket(nullptr, numNetworkBytes, _outgoingAvatarAudioSequenceNumber,
audioTransform, avatarBoundingBoxCorner, avatarBoundingBoxScale,
packetType, _selectedCodecName);
_stats.sentPacket();
}
void AudioClient::handleMicAudioInput() {
if (!_inputDevice || _isPlayingBackRecording) {
return;
@ -1501,7 +1528,7 @@ bool AudioClient::switchInputToAudioDevice(const QAudioDeviceInfo& inputDeviceIn
qCDebug(audioclient) << "No audio input device is available, using dummy input.";
QTimer* _dummyAudioInput = new QTimer(this);
//connect(_dummyAudioInput, &QTimer::timeout, this, SLOT(handleDummyAudioInput()));
connect(_dummyAudioInput, SIGNAL(timeout()), this, SLOT(handleDummyAudioInput()));
// generate audio callbacks at the network sample rate
_dummyAudioInput->start((int)(AudioConstants::NETWORK_FRAME_MSECS + 0.5f));

View file

@ -169,6 +169,7 @@ public slots:
void handleMismatchAudioFormat(SharedNodePointer node, const QString& currentCodec, const QString& recievedCodec);
void sendDownstreamAudioStatsPacket() { _stats.publish(); }
void handleDummyAudioInput();
void handleMicAudioInput();
void handleRecordedAudioInput(const QByteArray& audio);
void reset();