/** * @RDE_HEADER@ * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include #include #include #include #include "logger.h" 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; } // -------- VNC Control -------- void startScreens(); void stopScreens(); void killScreens(); void createPwdFile(); private slots: void slotReadStandardOutput(); void slotErrorOccured(); private: QVector m_vncScreens; LOGGER_T &m_logger; }; } // namespace LtsProjectionWorkstation