make server-audio-loopback button work in HMDs

This commit is contained in:
Seth Alves 2019-02-22 09:33:23 -08:00 committed by Wayne Chen
parent 6ee236e783
commit d5e8cba1ee
5 changed files with 40 additions and 9 deletions

View file

@ -21,13 +21,13 @@ RowLayout {
function startAudioLoopback() {
if (!audioLoopedBack) {
audioLoopedBack = true;
AudioScope.setServerEcho(true);
AudioScriptingInterface.setServerEcho(true);
}
}
function stopAudioLoopback () {
if (audioLoopedBack) {
audioLoopedBack = false;
AudioScope.setServerEcho(false);
AudioScriptingInterface.setServerEcho(false);
}
}

View file

@ -213,13 +213,13 @@ public slots:
void setWarnWhenMuted(bool isNoiseGateEnabled, bool emitSignal = true);
bool isWarnWhenMutedEnabled() const { return _warnWhenMuted; }
bool getLocalEcho() { return _shouldEchoLocally; }
void setLocalEcho(bool localEcho) { _shouldEchoLocally = localEcho; }
void toggleLocalEcho() { _shouldEchoLocally = !_shouldEchoLocally; }
virtual bool getLocalEcho() override { return _shouldEchoLocally; }
virtual void setLocalEcho(bool localEcho) override { _shouldEchoLocally = localEcho; }
virtual void toggleLocalEcho() override { _shouldEchoLocally = !_shouldEchoLocally; }
bool getServerEcho() { return _shouldEchoToServer; }
void setServerEcho(bool serverEcho) { _shouldEchoToServer = serverEcho; }
void toggleServerEcho() { _shouldEchoToServer = !_shouldEchoToServer; }
virtual bool getServerEcho() override { return _shouldEchoToServer; }
virtual void setServerEcho(bool serverEcho) override { _shouldEchoToServer = serverEcho; }
virtual void toggleServerEcho() override { _shouldEchoToServer = !_shouldEchoToServer; }
void processReceivedSamples(const QByteArray& inputBuffer, QByteArray& outputBuffer);
void sendMuteEnvironmentPacket();

View file

@ -45,9 +45,16 @@ public slots:
virtual bool shouldLoopbackInjectors() { return false; }
virtual bool setIsStereoInput(bool stereo) = 0;
virtual bool isStereoInput() = 0;
virtual bool getLocalEcho() = 0;
virtual void setLocalEcho(bool localEcho) = 0;
virtual void toggleLocalEcho() = 0;
virtual bool getServerEcho() = 0;
virtual void setServerEcho(bool serverEcho) = 0;
virtual void toggleServerEcho() = 0;
signals:
void isStereoInputChanged(bool isStereo);
};

View file

@ -88,3 +88,15 @@ bool AudioScriptingInterface::isStereoInput() {
}
return stereoEnabled;
}
void AudioScriptingInterface::setServerEcho(bool serverEcho) {
if (_localAudioInterface) {
QMetaObject::invokeMethod(_localAudioInterface, "setServerEcho", Q_ARG(bool, serverEcho));
}
}
void AudioScriptingInterface::setLocalEcho(bool localEcho) {
if (_localAudioInterface) {
QMetaObject::invokeMethod(_localAudioInterface, "setLocalEcho", Q_ARG(bool, localEcho));
}
}

View file

@ -66,6 +66,18 @@ public:
_localAudioInterface->getAudioSolo().reset();
}
/**jsdoc
* @function Audio.setServerEcho
* @parm {boolean} serverEcho
*/
Q_INVOKABLE void setServerEcho(bool serverEcho);
/**jsdoc
* @function Audio.setLocalEcho
* @parm {boolean} localEcho
*/
Q_INVOKABLE void setLocalEcho(bool localEcho);
protected:
AudioScriptingInterface() = default;