mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-14 18:57:07 -07:00
Show Manual Hosts
This commit is contained in:
parent
37921d488c
commit
4f972f211f
3 changed files with 54 additions and 18 deletions
|
@ -30,12 +30,13 @@ class Settings;
|
|||
struct DisplayServer
|
||||
{
|
||||
DiscoveryHost discovery_host;
|
||||
ManualHost manual_host;
|
||||
bool discovered;
|
||||
|
||||
RegisteredHost registered_host;
|
||||
bool registered;
|
||||
|
||||
QString GetHostAddr() const { return discovered ? discovery_host.host_addr : QString(); }
|
||||
QString GetHostAddr() const { return discovered ? discovery_host.host_addr : manual_host.GetHost(); }
|
||||
};
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <QScrollArea>
|
||||
#include <QToolBar>
|
||||
#include <QDebug>
|
||||
#include <QMessageBox>
|
||||
|
||||
MainWindow::MainWindow(Settings *settings, QWidget *parent)
|
||||
: QMainWindow(parent),
|
||||
|
@ -85,6 +86,7 @@ MainWindow::MainWindow(Settings *settings, QWidget *parent)
|
|||
|
||||
connect(&discovery_manager, &DiscoveryManager::HostsUpdated, this, &MainWindow::UpdateDisplayServers);
|
||||
connect(settings, &Settings::RegisteredHostsUpdated, this, &MainWindow::UpdateDisplayServers);
|
||||
connect(settings, &Settings::ManualHostsUpdated, this, &MainWindow::UpdateDisplayServers);
|
||||
|
||||
UpdateDisplayServers();
|
||||
UpdateDiscoveryEnabled();
|
||||
|
@ -120,10 +122,17 @@ void MainWindow::ServerItemWidgetTriggered()
|
|||
|
||||
if(server.registered)
|
||||
{
|
||||
QString host = server.discovery_host.host_addr; // TODO: check manual
|
||||
QString host = server.GetHostAddr();
|
||||
StreamSessionConnectInfo info(settings, host, server.registered_host.GetRPRegistKey(), server.registered_host.GetRPKey());
|
||||
auto stream_window = new StreamWindow(info);
|
||||
stream_window->show();
|
||||
try
|
||||
{
|
||||
auto stream_window = new StreamWindow(info);
|
||||
stream_window->show();
|
||||
}
|
||||
catch(const ChiakiException &e)
|
||||
{
|
||||
QMessageBox::critical(this, tr("Stream failed"), e.what());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -149,6 +158,22 @@ void MainWindow::UpdateDisplayServers()
|
|||
{
|
||||
display_servers.clear();
|
||||
|
||||
for(const auto &host : settings->GetManualHosts())
|
||||
{
|
||||
DisplayServer server;
|
||||
server.discovered = false;
|
||||
server.manual_host = host;
|
||||
|
||||
server.registered = false;
|
||||
if(host.GetRegistered() && settings->GetRegisteredHostRegistered(host.GetMAC()))
|
||||
{
|
||||
server.registered = true;
|
||||
server.registered_host = settings->GetRegisteredHost(host.GetMAC());
|
||||
}
|
||||
|
||||
display_servers.append(server);
|
||||
}
|
||||
|
||||
for(const auto &host : discovery_manager.GetHosts())
|
||||
{
|
||||
DisplayServer server;
|
||||
|
|
|
@ -67,21 +67,31 @@ void ServerItemWidget::SetSelected(bool selected)
|
|||
|
||||
void ServerItemWidget::Update(const DisplayServer &display_server)
|
||||
{
|
||||
icon_widget->SetState(display_server.discovered ? display_server.discovery_host.state : CHIAKI_DISCOVERY_HOST_STATE_UNKNOWN);
|
||||
|
||||
QString top_text = "";
|
||||
|
||||
if(display_server.discovered || display_server.registered)
|
||||
{
|
||||
top_text += display_server.discovered ? display_server.discovery_host.host_name : display_server.registered_host.GetPS4Nickname() + "\n";
|
||||
}
|
||||
|
||||
top_text += tr("Address: %1").arg(display_server.GetHostAddr());
|
||||
|
||||
if(display_server.discovered || display_server.registered)
|
||||
{
|
||||
top_text += "\n" + tr("ID: %1 (%2)").arg(
|
||||
display_server.discovered ? display_server.discovery_host.GetHostMAC().ToString() : display_server.registered_host.GetPS4MAC().ToString(),
|
||||
display_server.registered ? tr("registered") : tr("unregistered"));
|
||||
}
|
||||
|
||||
top_text += "\n" + (display_server.discovered ? tr("discovered") : tr("manual")),
|
||||
|
||||
top_label->setText(top_text);
|
||||
|
||||
if(display_server.discovered)
|
||||
{
|
||||
icon_widget->SetState(display_server.discovery_host.state);
|
||||
top_label->setText(tr("%1\nID: %2\nAddress: %3").arg(
|
||||
display_server.discovery_host.host_name,
|
||||
display_server.discovery_host.GetHostMAC().ToString(),
|
||||
display_server.discovery_host.host_addr));
|
||||
bottom_label->setText(tr("State: %1\n%2").arg(
|
||||
chiaki_discovery_host_state_string(display_server.discovery_host.state),
|
||||
display_server.registered ? tr("registered") : tr("unregistered")));
|
||||
}
|
||||
else
|
||||
{
|
||||
icon_widget->SetState(CHIAKI_DISCOVERY_HOST_STATE_UNKNOWN);
|
||||
top_label->setText("");
|
||||
bottom_label->setText("");
|
||||
bottom_label->setText(tr("State: %1").arg(
|
||||
chiaki_discovery_host_state_string(display_server.discovery_host.state)));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue