From 894b4127b4ea1434ca67e19e2664c5ecae9d77cf Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 6 Nov 2019 14:35:20 -0800 Subject: [PATCH] modifying screenshare API for viewer --- .../ScreenshareScriptingInterface.cpp | 54 ++++++++++--------- .../scripting/ScreenshareScriptingInterface.h | 3 +- screenshare/src/index.html | 2 +- 3 files changed, 33 insertions(+), 26 deletions(-) diff --git a/interface/src/scripting/ScreenshareScriptingInterface.cpp b/interface/src/scripting/ScreenshareScriptingInterface.cpp index 85024049a6..c165ae4937 100644 --- a/interface/src/scripting/ScreenshareScriptingInterface.cpp +++ b/interface/src/scripting/ScreenshareScriptingInterface.cpp @@ -25,27 +25,29 @@ ScreenshareScriptingInterface::~ScreenshareScriptingInterface() { stopScreenshare(); } -void ScreenshareScriptingInterface::startScreenshare(const QString& roomName) { +void ScreenshareScriptingInterface::startScreenshare(const bool& isPresenter) { if (QThread::currentThread() != thread()) { // We must start a new QProcess from the main thread. QMetaObject::invokeMethod( this, "startScreenshare", - Q_ARG(const QString&, roomName) + Q_ARG(const bool&, isPresenter) ); return; } - if (_screenshareProcess && _screenshareProcess->state() != QProcess::NotRunning) { + if (isPresenter && _screenshareProcess && _screenshareProcess->state() != QProcess::NotRunning) { qDebug() << "Screenshare process already running. Aborting..."; return; } - _screenshareProcess.reset(new QProcess(this)); + if (isPresenter) { + _screenshareProcess.reset(new QProcess(this)); - QFileInfo screenshareExecutable(SCREENSHARE_EXE_PATH); - if (!screenshareExecutable.exists() || !screenshareExecutable.isFile()) { - qDebug() << "Screenshare executable doesn't exist at" << SCREENSHARE_EXE_PATH; - return; + QFileInfo screenshareExecutable(SCREENSHARE_EXE_PATH); + if (!screenshareExecutable.exists() || !screenshareExecutable.isFile()) { + qDebug() << "Screenshare executable doesn't exist at" << SCREENSHARE_EXE_PATH; + return; + } } QUuid currentDomainID = DependencyManager::get()->getDomainID(); @@ -59,23 +61,27 @@ void ScreenshareScriptingInterface::startScreenshare(const QString& roomName) { QString apiKey = ""; QString sessionID = ""; - QStringList arguments; - arguments << "--token=" + token; - arguments << "--apiKey=" + apiKey; - arguments << "--sessionID=" + sessionID; + if (isPresenter) { + QStringList arguments; + arguments << "--token=" + token; + arguments << "--apiKey=" + apiKey; + arguments << "--sessionID=" + sessionID; + + connect(_screenshareProcess.get(), &QProcess::errorOccurred, + [=](QProcess::ProcessError error) { qDebug() << "ZRF QProcess::errorOccurred. `error`:" << error; }); + connect(_screenshareProcess.get(), &QProcess::started, [=]() { qDebug() << "ZRF QProcess::started"; }); + connect(_screenshareProcess.get(), &QProcess::stateChanged, + [=](QProcess::ProcessState newState) { qDebug() << "ZRF QProcess::stateChanged. `newState`:" << newState; }); + connect(_screenshareProcess.get(), QOverload::of(&QProcess::finished), + [=](int exitCode, QProcess::ExitStatus exitStatus) { + qDebug() << "ZRF QProcess::finished. `exitCode`:" << exitCode << "`exitStatus`:" << exitStatus; + emit screenshareStopped(); + }); - connect(_screenshareProcess.get(), &QProcess::errorOccurred, - [=](QProcess::ProcessError error) { qDebug() << "ZRF QProcess::errorOccurred. `error`:" << error; }); - connect(_screenshareProcess.get(), &QProcess::started, [=]() { qDebug() << "ZRF QProcess::started"; }); - connect(_screenshareProcess.get(), &QProcess::stateChanged, - [=](QProcess::ProcessState newState) { qDebug() << "ZRF QProcess::stateChanged. `newState`:" << newState; }); - connect(_screenshareProcess.get(), QOverload::of(&QProcess::finished), - [=](int exitCode, QProcess::ExitStatus exitStatus) { - qDebug() << "ZRF QProcess::finished. `exitCode`:" << exitCode << "`exitStatus`:" << exitStatus; - emit screenshareStopped(); - }); - - _screenshareProcess->start(SCREENSHARE_EXE_PATH, arguments); + _screenshareProcess->start(SCREENSHARE_EXE_PATH, arguments); + } else { + + } }; void ScreenshareScriptingInterface::stopScreenshare() { diff --git a/interface/src/scripting/ScreenshareScriptingInterface.h b/interface/src/scripting/ScreenshareScriptingInterface.h index 9cbb1bbdb3..f369f39f26 100644 --- a/interface/src/scripting/ScreenshareScriptingInterface.h +++ b/interface/src/scripting/ScreenshareScriptingInterface.h @@ -14,11 +14,12 @@ public: ScreenshareScriptingInterface(); ~ScreenshareScriptingInterface(); - Q_INVOKABLE void startScreenshare(const QString& roomName); + Q_INVOKABLE void startScreenshare(const bool& isPresenter); Q_INVOKABLE void stopScreenshare(); signals: void screenshareStopped(); + void startScreenshareViewer(); private: #if DEV_BUILD diff --git a/screenshare/src/index.html b/screenshare/src/index.html index 60adf5f3ce..40611dbe04 100644 --- a/screenshare/src/index.html +++ b/screenshare/src/index.html @@ -37,7 +37,7 @@ Are you sure you'd like to share Content Name?

- Others will be able to everything contained within this view. + Others will be able to see everything contained within this view.