Add Discovery and Wakeup for PS5

This commit is contained in:
Florian Märkl 2020-12-25 14:48:09 +01:00
commit 8904c86a6d
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
9 changed files with 42 additions and 19 deletions

View file

@ -44,7 +44,7 @@ class DiscoveryManager : public QObject
void SetActive(bool active);
void SendWakeup(const QString &host, const QByteArray &regist_key);
void SendWakeup(const QString &host, const QByteArray &regist_key, bool ps5);
const QList<DiscoveryHost> GetHosts() const { return hosts; }

View file

@ -58,7 +58,6 @@ void DiscoveryManager::SetActive(bool active)
sockaddr_in addr = {};
addr.sin_family = AF_INET;
addr.sin_port = htons(CHIAKI_DISCOVERY_PORT);
addr.sin_addr.s_addr = 0xffffffff; // 255.255.255.255
options.send_addr = reinterpret_cast<sockaddr *>(&addr);
options.send_addr_size = sizeof(addr);
@ -80,7 +79,7 @@ void DiscoveryManager::SetActive(bool active)
}
void DiscoveryManager::SendWakeup(const QString &host, const QByteArray &regist_key)
void DiscoveryManager::SendWakeup(const QString &host, const QByteArray &regist_key, bool ps5)
{
QByteArray key = regist_key;
for(size_t i=0; i<key.size(); i++)
@ -100,7 +99,7 @@ void DiscoveryManager::SendWakeup(const QString &host, const QByteArray &regist_
throw Exception("Invalid regist key");
}
ChiakiErrorCode err = chiaki_discovery_wakeup(&log, service_active ? &service.discovery : nullptr, host.toUtf8().constData(), credential);
ChiakiErrorCode err = chiaki_discovery_wakeup(&log, service_active ? &service.discovery : nullptr, host.toUtf8().constData(), credential, ps5);
if(err != CHIAKI_ERR_SUCCESS)
throw Exception(QString("Failed to send Packet: %1").arg(chiaki_error_string(err)));

View file

@ -212,7 +212,8 @@ void MainWindow::SendWakeup(const DisplayServer *server)
try
{
discovery_manager.SendWakeup(server->GetHostAddr(), server->registered_host.GetRPRegistKey());
discovery_manager.SendWakeup(server->GetHostAddr(), server->registered_host.GetRPRegistKey(),
chiaki_target_is_ps5(server->registered_host.GetTarget()));
}
catch(const Exception &e)
{