Add Sleep Trigger to GUI

This commit is contained in:
Florian Märkl 2020-10-22 13:53:31 +02:00
commit 8ddbad6f61
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
8 changed files with 108 additions and 6 deletions

View file

@ -38,6 +38,13 @@ enum class ControllerButtonExt
ANALOG_STICK_RIGHT_Y_DOWN = (1 << 25),
};
enum class DisconnectAction
{
AlwaysNothing,
AlwaysSleep,
Ask
};
class Settings : public QObject
{
Q_OBJECT
@ -95,6 +102,9 @@ class Settings : public QObject
ChiakiConnectVideoProfile GetVideoProfile();
DisconnectAction GetDisconnectAction();
void SetDisconnectAction(DisconnectAction action);
QList<RegisteredHost> GetRegisteredHosts() const { return registered_hosts.values(); }
void AddRegisteredHost(const RegisteredHost &host);
void RemoveRegisteredHost(const HostMAC &mac);

View file

@ -34,6 +34,7 @@ class SettingsDialog : public QDialog
Settings *settings;
QCheckBox *log_verbose_check_box;
QComboBox *disconnect_action_combo_box;
QComboBox *resolution_combo_box;
QComboBox *fps_combo_box;
@ -48,6 +49,7 @@ class SettingsDialog : public QDialog
private slots:
void LogVerboseChanged();
void DisconnectActionSelected();
void ResolutionSelected();
void FPSSelected();

View file

@ -48,6 +48,7 @@ class ChiakiException: public Exception
struct StreamSessionConnectInfo
{
Settings *settings;
QMap<Qt::Key, int> key_map;
HardwareDecodeEngine hw_decode_engine;
uint32_t log_level_mask;
@ -71,6 +72,7 @@ class StreamSession : public QObject
SessionLog log;
ChiakiSession session;
ChiakiOpusDecoder opus_decoder;
bool connected;
Controller *controller;
#if CHIAKI_GUI_ENABLE_SETSU
@ -103,8 +105,11 @@ class StreamSession : public QObject
explicit StreamSession(const StreamSessionConnectInfo &connect_info, QObject *parent = nullptr);
~StreamSession();
bool IsConnected() { return connected; }
void Start();
void Stop();
void GoToBed();
void SetLoginPIN(const QString &pin);

View file

@ -34,11 +34,12 @@ class StreamWindow: public QMainWindow
~StreamWindow() override;
private:
const StreamSessionConnectInfo connect_info;
StreamSession *session;
AVOpenGLWidget *av_widget;
void Init(const StreamSessionConnectInfo &connect_info);
void Init();
protected:
void keyPressEvent(QKeyEvent *event) override;