Loading...
Searching...
No Matches
DNSSDDeviceEnumerator.hpp
1#pragma once
2#include <Device/Protocol/ProtocolFactoryInterface.hpp>
3
4#include <ossia/detail/config.hpp>
5
6#include <ossia/detail/flat_set.hpp>
7
8#if defined(OSSIA_DNSSD)
9#include <QThread>
10
11#include <servus/listener.h>
12#include <servus/servus.h>
13#endif
14
15namespace Protocols
16{
17#if defined(OSSIA_DNSSD)
18class DNSSDWorker;
20{
21public:
22 explicit DNSSDEnumerator(const std::string& service);
23 virtual ~DNSSDEnumerator();
24
25 void start();
26 void stop();
27
28 void enumerate(std::function<void(const QString&, const Device::DeviceSettings&)> f)
29 const override;
30
31 virtual void addNewDevice(
32 const QString& instance, const QString& ip, const QString& port,
33 const QMap<QString, QString>& keys) noexcept
34 = 0;
35
36protected:
37private:
38 DNSSDWorker* m_worker{};
39 // Avahi only supports being called from *one* thread across an entire execution.
40 static QThread* g_dnssd_worker_thread;
41};
42#endif
43}
Definition ProtocolFactoryInterface.hpp:29
Definition DNSSDDeviceEnumerator.hpp:20
Definition DNSSDDeviceEnumerator.cpp:23
Definition ClipMode.hpp:10
Definition DeviceSettings.hpp:20