History

modifying screenshare API for viewer

milad committed 7 years ago

Commit 894b4121 parent a7427bc3 files · +34 −27Browse files

Showing the changes to interface/src/scripting/ScreenshareScriptingInterface.cpp (1 of 3 files). Show all

Unified · Split

interface/src/scripting/ScreenshareScriptingInterface.cpp+31−25
@@ -25,27 +25,29 @@ ScreenshareScriptingInterface::~ScreenshareScriptingInterface() { · 24 unmodified lines
25 stopScreenshare();25 stopScreenshare();
26}26}
27 27
28void ScreenshareScriptingInterface::startScreenshare(const QString& roomName) {28void ScreenshareScriptingInterface::startScreenshare(const bool& isPresenter) {
29 if (QThread::currentThread() != thread()) {29 if (QThread::currentThread() != thread()) {
30 // We must start a new QProcess from the main thread.30 // We must start a new QProcess from the main thread.
31 QMetaObject::invokeMethod(31 QMetaObject::invokeMethod(
32 this, "startScreenshare",32 this, "startScreenshare",
33 Q_ARG(const QString&, roomName)33 Q_ARG(const bool&, isPresenter)
34 );34 );
35 return;35 return;
36 }36 }
37 37
38 if (_screenshareProcess && _screenshareProcess->state() != QProcess::NotRunning) {38 if (isPresenter && _screenshareProcess && _screenshareProcess->state() != QProcess::NotRunning) {
39 qDebug() << "Screenshare process already running. Aborting...";39 qDebug() << "Screenshare process already running. Aborting...";
40 return;40 return;
41 }41 }
42 42
43 _screenshareProcess.reset(new QProcess(this));43 if (isPresenter) {
44 _screenshareProcess.reset(new QProcess(this));
44 45
45 QFileInfo screenshareExecutable(SCREENSHARE_EXE_PATH);46 QFileInfo screenshareExecutable(SCREENSHARE_EXE_PATH);
46 if (!screenshareExecutable.exists() || !screenshareExecutable.isFile()) {47 if (!screenshareExecutable.exists() || !screenshareExecutable.isFile()) {
47 qDebug() << "Screenshare executable doesn't exist at" << SCREENSHARE_EXE_PATH;48 qDebug() << "Screenshare executable doesn't exist at" << SCREENSHARE_EXE_PATH;
48 return;49 return;
50 }
49 }51 }
50 52
51 QUuid currentDomainID = DependencyManager::get<AddressManager>()->getDomainID();53 QUuid currentDomainID = DependencyManager::get<AddressManager>()->getDomainID();
@@ -59,23 +61,27 @@ void ScreenshareScriptingInterface::startScreenshare(const QString& roomName) { · 7 unmodified lines
59 QString apiKey = "";61 QString apiKey = "";
60 QString sessionID = "";62 QString sessionID = "";
61 63
62 QStringList arguments;64 if (isPresenter) {
63 arguments << "--token=" + token; 65 QStringList arguments;
64 arguments << "--apiKey=" + apiKey; 66 arguments << "--token=" + token;
65 arguments << "--sessionID=" + sessionID; 67 arguments << "--apiKey=" + apiKey;
66 68 arguments << "--sessionID=" + sessionID;
67 connect(_screenshareProcess.get(), &QProcess::errorOccurred,69
68 [=](QProcess::ProcessError error) { qDebug() << "ZRF QProcess::errorOccurred. `error`:" << error; });70 connect(_screenshareProcess.get(), &QProcess::errorOccurred,
69 connect(_screenshareProcess.get(), &QProcess::started, [=]() { qDebug() << "ZRF QProcess::started"; });71 [=](QProcess::ProcessError error) { qDebug() << "ZRF QProcess::errorOccurred. `error`:" << error; });
70 connect(_screenshareProcess.get(), &QProcess::stateChanged,72 connect(_screenshareProcess.get(), &QProcess::started, [=]() { qDebug() << "ZRF QProcess::started"; });
71 [=](QProcess::ProcessState newState) { qDebug() << "ZRF QProcess::stateChanged. `newState`:" << newState; });73 connect(_screenshareProcess.get(), &QProcess::stateChanged,
72 connect(_screenshareProcess.get(), QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),74 [=](QProcess::ProcessState newState) { qDebug() << "ZRF QProcess::stateChanged. `newState`:" << newState; });
73 [=](int exitCode, QProcess::ExitStatus exitStatus) {75 connect(_screenshareProcess.get(), QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
74 qDebug() << "ZRF QProcess::finished. `exitCode`:" << exitCode << "`exitStatus`:" << exitStatus;76 [=](int exitCode, QProcess::ExitStatus exitStatus) {
75 emit screenshareStopped();77 qDebug() << "ZRF QProcess::finished. `exitCode`:" << exitCode << "`exitStatus`:" << exitStatus;
76 });78 emit screenshareStopped();
77 79 });
78 _screenshareProcess->start(SCREENSHARE_EXE_PATH, arguments);80
81 _screenshareProcess->start(SCREENSHARE_EXE_PATH, arguments);
82 } else {
83
84 }
79};85};
80 86
81void ScreenshareScriptingInterface::stopScreenshare() {87void ScreenshareScriptingInterface::stopScreenshare() {