Files
qt5-legatus-legacy/Lts/Common/LtsProjectionWorkstation/vnc_server_manager.h
T
2026-08-13 18:33:10 +02:00

74 lines
1.1 KiB
C++
Executable File

/**
* @RDE_HEADER@
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QObject>
#include <QProcess>
#include <QRect>
#include <QString>
#include <QVector>
#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<QScreen *> &screens);
const QVector<VncScreen> &screens() const { return m_vncScreens; }
// -------- VNC Control --------
void startScreens();
void stopScreens();
void killScreens();
void createPwdFile();
private slots:
void slotReadStandardOutput();
void slotErrorOccured();
private:
QVector<VncScreen> m_vncScreens;
LOGGER_T &m_logger;
};
} // namespace LtsProjectionWorkstation