Upload dragonrelaybackend.cpp

This commit is contained in:
Zac Gaetano 2026-05-06 20:17:08 -04:00
parent 2612ce2936
commit 1c9bc1e670

View file

@ -89,6 +89,7 @@ void DragonRelayBackend::disconnectRelay() {
m_relay.deleteVPNPeer(); // fire-and-forget m_relay.deleteVPNPeer(); // fire-and-forget
m_hosts.clear(); m_hosts.clear();
m_hostDisplays.clear();
m_tunnelIP.clear(); m_tunnelIP.clear();
emit hostsChanged(); emit hostsChanged();
emit tunnelIPChanged(); emit tunnelIPChanged();
@ -128,6 +129,19 @@ void DragonRelayBackend::streamHost(const QString &ip, const QString &app) {
#endif #endif
} }
// ── displaysForHost ───────────────────────────────────────────────────────────
QVariantList DragonRelayBackend::displaysForHost(const QString &hostIP) const {
return m_hostDisplays.value(hostIP);
}
// ── streamHostDisplay ─────────────────────────────────────────────────────────
void DragonRelayBackend::streamHostDisplay(const QString &hostIP, int displayIndex) {
qDebug() << "Streaming host" << hostIP << "display index" << displayIndex;
streamHost(hostIP); // Task 24 will wire actual display param
}
// ── refreshHosts ───────────────────────────────────────────────────────────── // ── refreshHosts ─────────────────────────────────────────────────────────────
void DragonRelayBackend::refreshHosts() { void DragonRelayBackend::refreshHosts() {
@ -182,6 +196,8 @@ void DragonRelayBackend::onVPNError(const QString &err) {
void DragonRelayBackend::onHostsFetched(const QList<RelayHost> &hosts) { void DragonRelayBackend::onHostsFetched(const QList<RelayHost> &hosts) {
m_hosts.clear(); m_hosts.clear();
m_hostDisplays.clear();
for (const auto &h : hosts) { for (const auto &h : hosts) {
QVariantMap m; QVariantMap m;
m[QStringLiteral("name")] = h.name; m[QStringLiteral("name")] = h.name;
@ -190,6 +206,9 @@ void DragonRelayBackend::onHostsFetched(const QList<RelayHost> &hosts) {
m[QStringLiteral("online")] = true; m[QStringLiteral("online")] = true;
m[QStringLiteral("source")] = QStringLiteral("relay"); m[QStringLiteral("source")] = QStringLiteral("relay");
m_hosts.append(m); m_hosts.append(m);
// Store displays for this host
m_hostDisplays[h.ip] = h.displays;
} }
emit hostsChanged(); emit hostsChanged();