#pragma once #include "nvhttp.h" #include #include #include #include class NvComputer { friend class PcMonitorThread; friend class ComputerManager; friend class PendingQuitTask; private: void sortAppList(); bool pendingQuit; public: explicit NvComputer(QString address, QString serverInfo, QSslCertificate serverCert); explicit NvComputer(QSettings& settings); bool update(NvComputer& that); bool wake(); QVector uniqueAddresses(); void serialize(QSettings& settings); enum PairState { PS_UNKNOWN, PS_PAIRED, PS_NOT_PAIRED }; enum ComputerState { CS_UNKNOWN, CS_ONLINE, CS_OFFLINE }; // Ephemeral traits ComputerState state; PairState pairState; QString activeAddress; int currentGameId; QString gfeVersion; QString appVersion; QVector displayModes; int maxLumaPixelsHEVC; int serverCodecModeSupport; QString gpuModel; // Persisted traits QString localAddress; QString remoteAddress; QString manualAddress; QByteArray macAddress; QString name; QString uuid; QSslCertificate serverCert; QVector appList; // Synchronization QReadWriteLock lock; };