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