Showing the changes to interface/src/scripting/ScreenshareScriptingInterface.cpp (1 of 3 files). Show all
Unified · Split
| @@ -25,27 +25,29 @@ ScreenshareScriptingInterface::~ScreenshareScriptingInterface() { · 24 unmodified lines | |||
| 25 | stopScreenshare(); | 25 | stopScreenshare(); |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | void ScreenshareScriptingInterface::startScreenshare(const QString& roomName) { | 28 | void 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 | ||
| 81 | void ScreenshareScriptingInterface::stopScreenshare() { | 87 | void ScreenshareScriptingInterface::stopScreenshare() { |