Add new screenshare error signals

This commit is contained in:
Zach Fox 2019-11-13 15:43:41 -08:00
parent 50a1ebaa4d
commit 8255210c6a
2 changed files with 21 additions and 3 deletions

View file

@ -79,6 +79,8 @@ void ScreenshareScriptingInterface::startScreenshare(const QUuid& screenshareZon
QFileInfo screenshareExecutable(SCREENSHARE_EXE_PATH); QFileInfo screenshareExecutable(SCREENSHARE_EXE_PATH);
if (!screenshareExecutable.exists() || !screenshareExecutable.isFile()) { if (!screenshareExecutable.exists() || !screenshareExecutable.isFile()) {
qDebug() << "Screenshare executable doesn't exist at" << SCREENSHARE_EXE_PATH; qDebug() << "Screenshare executable doesn't exist at" << SCREENSHARE_EXE_PATH;
stopScreenshare();
emit screenshareError();
return; return;
} }
} }
@ -115,6 +117,7 @@ void ScreenshareScriptingInterface::stopScreenshare() {
if (_screenshareProcess && _screenshareProcess->state() != QProcess::NotRunning) { if (_screenshareProcess && _screenshareProcess->state() != QProcess::NotRunning) {
_screenshareProcess->terminate(); _screenshareProcess->terminate();
emit screenshareProcessTerminated();
} }
if (!_screenshareViewerLocalWebEntityUUID.isNull()) { if (!_screenshareViewerLocalWebEntityUUID.isNull()) {
@ -138,8 +141,10 @@ void ScreenshareScriptingInterface::handleSuccessfulScreenshareInfoGet(QNetworkR
QJsonDocument answerJSONObject = QJsonDocument::fromJson(answerByteArray); QJsonDocument answerJSONObject = QJsonDocument::fromJson(answerByteArray);
QString status = answerJSONObject["status"].toString(); QString status = answerJSONObject["status"].toString();
if (status == "fail") { if (status != "success") {
qDebug() << "\n\n MN HERE: SCREENSHARE REPLY FAIL"; qDebug() << "\n\n MN HERE: SCREENSHARE REPLY FAIL";
stopScreenshare();
emit screenshareError();
return; return;
} }
@ -148,6 +153,13 @@ void ScreenshareScriptingInterface::handleSuccessfulScreenshareInfoGet(QNetworkR
_sessionID = answerJSONObject["sessionID"].toString(); _sessionID = answerJSONObject["sessionID"].toString();
qDebug() << "token:" << _token << " projectAPIKey:" << _projectAPIKey << " sessionID: " << _sessionID; qDebug() << "token:" << _token << " projectAPIKey:" << _projectAPIKey << " sessionID: " << _sessionID;
if (_token.isEmpty() || _projectAPIKey.isEmpty() || _sessionID.isEmpty()) {
qDebug() << "Not all Screen Share information was retrieved from the backend. Stopping...";
stopScreenshare();
emit screenshareError();
return;
}
if (_isPresenter) { if (_isPresenter) {
QStringList arguments; QStringList arguments;
arguments << " "; arguments << " ";
@ -164,7 +176,6 @@ void ScreenshareScriptingInterface::handleSuccessfulScreenshareInfoGet(QNetworkR
connect(_screenshareProcess.get(), QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), connect(_screenshareProcess.get(), QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
[=](int exitCode, QProcess::ExitStatus exitStatus) { [=](int exitCode, QProcess::ExitStatus exitStatus) {
qDebug() << "ZRF QProcess::finished. `exitCode`:" << exitCode << "`exitStatus`:" << exitStatus; qDebug() << "ZRF QProcess::finished. `exitCode`:" << exitCode << "`exitStatus`:" << exitStatus;
emit screenshareStopped();
stopScreenshare(); stopScreenshare();
}); });
@ -172,11 +183,15 @@ void ScreenshareScriptingInterface::handleSuccessfulScreenshareInfoGet(QNetworkR
} }
if (!_screenshareViewerLocalWebEntityUUID.isNull()) { if (!_screenshareViewerLocalWebEntityUUID.isNull()) {
stopScreenshare();
emit screenshareError();
return; return;
} }
auto esi = DependencyManager::get<EntityScriptingInterface>(); auto esi = DependencyManager::get<EntityScriptingInterface>();
if (!esi) { if (!esi) {
stopScreenshare();
emit screenshareError();
return; return;
} }
@ -200,6 +215,8 @@ void ScreenshareScriptingInterface::handleSuccessfulScreenshareInfoGet(QNetworkR
void ScreenshareScriptingInterface::handleFailedScreenshareInfoGet(QNetworkReply* reply) { void ScreenshareScriptingInterface::handleFailedScreenshareInfoGet(QNetworkReply* reply) {
qDebug() << "\n\n MN HERE: handleFailedScreenshareInfoGet():" << reply->readAll(); qDebug() << "\n\n MN HERE: handleFailedScreenshareInfoGet():" << reply->readAll();
stopScreenshare();
emit screenshareError();
} }
void ScreenshareScriptingInterface::onWebEventReceived(const QUuid& entityID, const QVariant& message) { void ScreenshareScriptingInterface::onWebEventReceived(const QUuid& entityID, const QVariant& message) {

View file

@ -31,7 +31,8 @@ public:
Q_INVOKABLE void stopScreenshare(); Q_INVOKABLE void stopScreenshare();
signals: signals:
void screenshareStopped(); void screenshareError();
void screenshareProcessTerminated();
void startScreenshareViewer(); void startScreenshareViewer();
private slots: private slots: