ZeroconfBrowser.hpp
1 #pragma once
2 #include <ossia/detail/config.hpp>
3 #if defined(OSSIA_DNSSD)
4 #include <QByteArray>
5 #include <QMap>
6 #include <QObject>
7 #include <QString>
8 
9 #include <score_plugin_deviceexplorer_export.h>
10 
11 #include <memory>
12 #include <verdigris>
13 
14 class QAction;
15 class QDialog;
16 class QListView;
17 class QLineEdit;
18 class QSpinBox;
19 class QWidget;
20 namespace servus
21 {
22 class Servus;
23 namespace qt
24 {
25 class ItemModel;
26 }
27 }
28 
29 class SCORE_PLUGIN_DEVICEEXPLORER_EXPORT ZeroconfBrowser : public QObject
30 {
31  W_OBJECT(ZeroconfBrowser)
32 public:
33  ZeroconfBrowser(const QString& service, QWidget* parent);
34  ~ZeroconfBrowser();
35  QAction* makeAction();
36 
37 public:
38  // ip, port, other data
39  void sessionSelected(
40  QString arg_1, QString arg_2, int arg_3, QMap<QString, QByteArray> arg_4)
41  E_SIGNAL(
42  SCORE_PLUGIN_DEVICEEXPLORER_EXPORT, sessionSelected, arg_1, arg_2, arg_3,
43  arg_4)
44 
45 public:
46  void accept();
47  W_SLOT(accept);
48  void reject();
49  W_SLOT(reject);
50 
51 private:
52  QDialog* m_dialog{};
53  QLineEdit* m_manualIp{};
54  QSpinBox* m_manualPort{};
55  QListView* m_list{};
56  std::unique_ptr<servus::Servus> m_serv;
57  servus::qt::ItemModel* m_model{};
58 };
59 #endif
Definition: ClipMode.hpp:10
Definition: ZeroconfBrowser.hpp:30