mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-14 18:57:07 -07:00
Register Manual Host on first Connect
This commit is contained in:
parent
d72148cb99
commit
5c52f8b89c
4 changed files with 31 additions and 10 deletions
|
@ -96,6 +96,8 @@ class ManualHost
|
|||
bool GetRegistered() const { return registered; }
|
||||
HostMAC GetMAC() const { return registered_mac; }
|
||||
|
||||
void Register(const RegisteredHost ®istered_host) { this->registered = true; this->registered_mac = registered_host.GetPS4MAC(); }
|
||||
|
||||
void SaveToSettings(QSettings *settings) const;
|
||||
static ManualHost LoadFromSettings(QSettings *settings);
|
||||
};
|
||||
|
|
|
@ -45,6 +45,8 @@ class RegistDialog : public QDialog
|
|||
QDialogButtonBox *button_box;
|
||||
QPushButton *register_button;
|
||||
|
||||
RegisteredHost registered_host;
|
||||
|
||||
private slots:
|
||||
void ValidateInput();
|
||||
|
||||
|
@ -52,6 +54,8 @@ class RegistDialog : public QDialog
|
|||
explicit RegistDialog(Settings *settings, const QString &host = QString(), QWidget *parent = nullptr);
|
||||
~RegistDialog();
|
||||
|
||||
RegisteredHost GetRegisteredHost() { return registered_host; }
|
||||
|
||||
public slots:
|
||||
void accept() override;
|
||||
};
|
||||
|
@ -71,6 +75,8 @@ class RegistExecuteDialog: public QDialog
|
|||
QPlainTextEdit *log_edit;
|
||||
QDialogButtonBox *button_box;
|
||||
|
||||
RegisteredHost registered_host;
|
||||
|
||||
void Finished();
|
||||
|
||||
private slots:
|
||||
|
@ -81,6 +87,8 @@ class RegistExecuteDialog: public QDialog
|
|||
public:
|
||||
explicit RegistExecuteDialog(Settings *settings, const ChiakiRegistInfo ®ist_info, QWidget *parent = nullptr);
|
||||
~RegistExecuteDialog();
|
||||
|
||||
RegisteredHost GetRegisteredHost() { return registered_host; }
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(ChiakiRegistEventType)
|
||||
|
|
|
@ -202,13 +202,14 @@ void MainWindow::SendWakeup(const DisplayServer *server)
|
|||
|
||||
void MainWindow::ServerItemWidgetTriggered()
|
||||
{
|
||||
auto server = DisplayServerFromSender();
|
||||
if(!server)
|
||||
auto s = DisplayServerFromSender();
|
||||
if(!s)
|
||||
return;
|
||||
auto server = *s;
|
||||
|
||||
if(server->registered)
|
||||
if(server.registered)
|
||||
{
|
||||
if(server->discovered && server->discovery_host.state == CHIAKI_DISCOVERY_HOST_STATE_STANDBY)
|
||||
if(server.discovered && server.discovery_host.state == CHIAKI_DISCOVERY_HOST_STATE_STANDBY)
|
||||
{
|
||||
int r = QMessageBox::question(this,
|
||||
tr("Start Stream"),
|
||||
|
@ -216,21 +217,27 @@ void MainWindow::ServerItemWidgetTriggered()
|
|||
QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
|
||||
if(r == QMessageBox::Yes)
|
||||
{
|
||||
SendWakeup(server);
|
||||
SendWakeup(&server);
|
||||
return;
|
||||
}
|
||||
else if(r == QMessageBox::Cancel)
|
||||
return;
|
||||
}
|
||||
|
||||
QString host = server->GetHostAddr();
|
||||
StreamSessionConnectInfo info(settings, host, server->registered_host.GetRPRegistKey(), server->registered_host.GetRPKey());
|
||||
QString host = server.GetHostAddr();
|
||||
StreamSessionConnectInfo info(settings, host, server.registered_host.GetRPRegistKey(), server.registered_host.GetRPKey());
|
||||
new StreamWindow(info);
|
||||
}
|
||||
else
|
||||
{
|
||||
RegistDialog regist_dialog(settings, server->GetHostAddr(), this);
|
||||
regist_dialog.exec();
|
||||
RegistDialog regist_dialog(settings, server.GetHostAddr(), this);
|
||||
int r = regist_dialog.exec();
|
||||
if(r == QDialog::Accepted && !server.discovered) // success
|
||||
{
|
||||
ManualHost manual_host = server.manual_host;
|
||||
manual_host.Register(regist_dialog.GetRegisteredHost());
|
||||
settings->SetManualHost(manual_host);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -101,7 +101,10 @@ void RegistDialog::accept()
|
|||
RegistExecuteDialog execute_dialog(settings, info, this);
|
||||
int r = execute_dialog.exec();
|
||||
if(r == QDialog::Accepted)
|
||||
close();
|
||||
{
|
||||
this->registered_host = execute_dialog.GetRegisteredHost();
|
||||
QDialog::accept();
|
||||
}
|
||||
}
|
||||
|
||||
static void RegistExecuteDialogLogCb(ChiakiLogLevel level, const char *msg, void *user);
|
||||
|
@ -155,6 +158,7 @@ void RegistExecuteDialog::Finished()
|
|||
void RegistExecuteDialog::Success(RegisteredHost host)
|
||||
{
|
||||
CHIAKI_LOGI(&log, "Successfully registered %s", host.GetPS4Nickname().toLocal8Bit().constData());
|
||||
this->registered_host = host;
|
||||
|
||||
if(settings->GetRegisteredHostRegistered(host.GetPS4MAC()))
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue