don't disable server echo when audio qml page is closed

This commit is contained in:
Seth Alves 2019-02-23 14:23:09 -08:00 committed by Wayne Chen
parent 9ff99c7213
commit 0523a0d06d
3 changed files with 50 additions and 8 deletions

View file

@ -17,7 +17,7 @@ import stylesUit 1.0
import controlsUit 1.0 as HifiControls import controlsUit 1.0 as HifiControls
RowLayout { RowLayout {
property bool audioLoopedBack: false; property bool audioLoopedBack: AudioScriptingInterface.getServerEcho();
function startAudioLoopback() { function startAudioLoopback() {
if (!audioLoopedBack) { if (!audioLoopedBack) {
audioLoopedBack = true; audioLoopedBack = true;
@ -31,13 +31,6 @@ RowLayout {
} }
} }
Component.onDestruction: stopAudioLoopback();
onVisibleChanged: {
if (!visible) {
stopAudioLoopback();
}
}
HifiConstants { id: hifi; } HifiConstants { id: hifi; }
Button { Button {

View file

@ -89,14 +89,42 @@ bool AudioScriptingInterface::isStereoInput() {
return stereoEnabled; return stereoEnabled;
} }
bool AudioScriptingInterface::getServerEcho() {
bool serverEchoEnabled = false;
if (_localAudioInterface) {
serverEchoEnabled = _localAudioInterface->getServerEcho();
}
return serverEchoEnabled;
}
void AudioScriptingInterface::setServerEcho(bool serverEcho) { void AudioScriptingInterface::setServerEcho(bool serverEcho) {
if (_localAudioInterface) { if (_localAudioInterface) {
QMetaObject::invokeMethod(_localAudioInterface, "setServerEcho", Q_ARG(bool, serverEcho)); QMetaObject::invokeMethod(_localAudioInterface, "setServerEcho", Q_ARG(bool, serverEcho));
} }
} }
void AudioScriptingInterface::toggleServerEcho() {
if (_localAudioInterface) {
QMetaObject::invokeMethod(_localAudioInterface, "toggleServerEcho");
}
}
bool AudioScriptingInterface::getLocalEcho() {
bool localEchoEnabled = false;
if (_localAudioInterface) {
localEchoEnabled = _localAudioInterface->getLocalEcho();
}
return localEchoEnabled;
}
void AudioScriptingInterface::setLocalEcho(bool localEcho) { void AudioScriptingInterface::setLocalEcho(bool localEcho) {
if (_localAudioInterface) { if (_localAudioInterface) {
QMetaObject::invokeMethod(_localAudioInterface, "setLocalEcho", Q_ARG(bool, localEcho)); QMetaObject::invokeMethod(_localAudioInterface, "setLocalEcho", Q_ARG(bool, localEcho));
} }
} }
void AudioScriptingInterface::toggleLocalEcho() {
if (_localAudioInterface) {
QMetaObject::invokeMethod(_localAudioInterface, "toggleLocalEcho");
}
}

View file

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