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.