hyperion.ng
SSDPDiscover.h
1 #pragma once
2 
3 #include <utils/Logger.h>
4 #include <QHostAddress>
5 
6 class QUdpSocket;
7 
8 enum searchType{
9  STY_WEBSERVER,
10  STY_FLATBUFSERVER
11 };
12 
16 class SSDPDiscover : public QObject
17 {
18  Q_OBJECT
19 
20 public:
21  SSDPDiscover(QObject* parent = nullptr);
22 
27  void searchForService(const QString& st = "urn:hyperion-project.org:device:basic:1");
28 
36  const QString getFirstService(const searchType& type = STY_WEBSERVER,const QString& st = "urn:hyperion-project.org:device:basic:1", const int& timeout_ms = 3000);
37 
38 signals:
43  void newService(const QString webServer);
44 
45 private slots:
46  void readPendingDatagrams();
47 
48 private:
49  void sendSearch(const QString& st);
50 
51 private:
52  Logger* _log;
53  QUdpSocket* _udpSocket;
54  QString _searchTarget;
55  QStringList _usnList;
56 };
Definition: Logger.h:32
Search for SSDP sessions, used by standalone capture binaries.
Definition: SSDPDiscover.h:16
const QString getFirstService(const searchType &type=STY_WEBSERVER, const QString &st="urn:hyperion-project.org:device:basic:1", const int &timeout_ms=3000)
Search for specified searchTarget, the method will block until a server has been found or a timeout h...
Definition: SSDPDiscover.cpp:37
void newService(const QString webServer)
Emits whenever a new service has ben found, search started with searchForService() ...
void searchForService(const QString &st="urn:hyperion-project.org:device:basic:1")
Search for specified service, results will be returned by signal newService().
Definition: SSDPDiscover.cpp:27