#pragma once #include "logger.h" #include #include #include #include #include class QScreen; namespace LtsProjectionWorkstation { class SingleShotProcess { public: explicit SingleShotProcess(const QString& cmd, bool startImmediatly = false); bool execute(); private: QProcess m_process; QString m_cmd; }; struct VncScreen { QString name; QProcess* proc = nullptr; QRect geometry; quint16 port = 0; }; class VncServerManager : public QObject { Q_OBJECT public: explicit VncServerManager(LOGGER_T& logger, QObject* parent = nullptr); ~VncServerManager(); bool init(const QList& screens); const QVector& screens() const { return m_vncScreens; } void startScreens(); void stopScreens(); void killScreens(); void createPwdFile(); private slots: void slotReadStandardOutput(); void slotErrorOccured(); private: QVector m_vncScreens; LOGGER_T& m_logger; }; } // namespace LtsProjectionWorkstation