LocalProtocolFactory.hpp
1 #pragma once
2 #include <Explorer/DefaultProtocolFactory.hpp>
3 
4 #include <QString>
5 #include <QVariant>
6 
7 namespace Device
8 {
9 class DeviceInterface;
10 class ProtocolSettingsWidget;
11 }
12 namespace score
13 {
14 struct DeviceSettings;
15 } // namespace score
16 struct VisitorVariant;
17 
18 namespace Protocols
19 {
21 {
22  SCORE_CONCRETE("3fad3354-e103-4bc4-a34f-2d0cc4b02565")
23 
24 public:
25  static const Device::DeviceSettings& static_defaultSettings();
26 
27 private:
28  // Implement with OSSIA::Device
29  QString prettyName() const noexcept override;
30  QString category() const noexcept override;
31 
32  Device::DeviceInterface* makeDevice(
33  const Device::DeviceSettings& settings,
34  const Explorer::DeviceDocumentPlugin& plugin,
35  const score::DocumentContext& ctx) override;
36 
37  const Device::DeviceSettings& defaultSettings() const noexcept override;
38 
39  Device::ProtocolSettingsWidget* makeSettingsWidget() override;
40 
41  QVariant makeProtocolSpecificSettings(const VisitorVariant& visitor) const override;
42 
43  void serializeProtocolSpecificSettings(
44  const QVariant& data, const VisitorVariant& visitor) const override;
45 
46  bool checkCompatibility(
47  const Device::DeviceSettings& a,
48  const Device::DeviceSettings& b) const noexcept override;
49 };
50 }
Definition: DeviceInterface.hpp:66
Definition: ProtocolSettingsWidget.hpp:22
Definition: DefaultProtocolFactory.hpp:10
Definition: LocalProtocolFactory.hpp:21
Manipulation of Devices from Qt.
Definition: AddressSettings.cpp:14
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Definition: DeviceSettings.hpp:16
The VisitorVariant struct.
Definition: VisitorInterface.hpp:26
Definition: DocumentContext.hpp:18