2018-09-29 09:19:44 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "nvhttp.h"
|
|
|
|
|
|
|
|
#include <QThread>
|
|
|
|
#include <QReadWriteLock>
|
|
|
|
#include <QSettings>
|
|
|
|
#include <QRunnable>
|
|
|
|
|
|
|
|
class NvComputer
|
|
|
|
{
|
|
|
|
friend class PcMonitorThread;
|
|
|
|
friend class ComputerManager;
|
|
|
|
friend class PendingQuitTask;
|
|
|
|
|
|
|
|
private:
|
|
|
|
void sortAppList();
|
|
|
|
|
2020-08-02 04:06:01 +00:00
|
|
|
bool updateAppList(QVector<NvApp> newAppList);
|
|
|
|
|
2018-09-29 09:19:44 +00:00
|
|
|
bool pendingQuit;
|
|
|
|
|
|
|
|
public:
|
2018-12-22 02:08:07 +00:00
|
|
|
explicit NvComputer(QString address, QString serverInfo, QSslCertificate serverCert);
|
2018-09-29 09:19:44 +00:00
|
|
|
|
|
|
|
explicit NvComputer(QSettings& settings);
|
|
|
|
|
|
|
|
bool
|
|
|
|
update(NvComputer& that);
|
|
|
|
|
|
|
|
bool
|
|
|
|
wake();
|
|
|
|
|
2019-12-02 05:50:36 +00:00
|
|
|
bool
|
|
|
|
isReachableOverVpn();
|
|
|
|
|
2018-09-29 09:19:44 +00:00
|
|
|
QVector<QString>
|
2020-02-25 01:44:21 +00:00
|
|
|
uniqueAddresses() const;
|
2018-09-29 09:19:44 +00:00
|
|
|
|
|
|
|
void
|
2020-02-25 01:44:21 +00:00
|
|
|
serialize(QSettings& settings) const;
|
2018-09-29 09:19:44 +00:00
|
|
|
|
|
|
|
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<NvDisplayMode> displayModes;
|
|
|
|
int maxLumaPixelsHEVC;
|
|
|
|
int serverCodecModeSupport;
|
|
|
|
QString gpuModel;
|
2021-05-01 01:05:38 +00:00
|
|
|
bool isSupportedServerVersion;
|
2018-09-29 09:19:44 +00:00
|
|
|
|
|
|
|
// Persisted traits
|
|
|
|
QString localAddress;
|
|
|
|
QString remoteAddress;
|
2019-07-14 22:28:50 +00:00
|
|
|
QString ipv6Address;
|
2018-09-29 09:19:44 +00:00
|
|
|
QString manualAddress;
|
|
|
|
QByteArray macAddress;
|
|
|
|
QString name;
|
2020-05-02 01:34:15 +00:00
|
|
|
bool hasCustomName;
|
2018-09-29 09:19:44 +00:00
|
|
|
QString uuid;
|
2018-12-22 02:08:07 +00:00
|
|
|
QSslCertificate serverCert;
|
2018-09-29 09:19:44 +00:00
|
|
|
QVector<NvApp> appList;
|
|
|
|
|
|
|
|
// Synchronization
|
2020-02-25 01:44:21 +00:00
|
|
|
mutable QReadWriteLock lock;
|
2018-09-29 09:19:44 +00:00
|
|
|
};
|