MIDIProtocolFactory.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("f5e04ef0-16dd-4997-8f81-f5a04b8702bc")
23 public:
24  // Implement with OSSIA::Device
25  Device::ProtocolFactory::Flags flags() const noexcept override;
26  QString prettyName() const noexcept override;
27  QString category() const noexcept override;
28  Device::DeviceEnumerators
29  getEnumerators(const score::DocumentContext& ctx) const override;
30 
31  Device::DeviceInterface* makeDevice(
32  const Device::DeviceSettings& settings,
33  const Explorer::DeviceDocumentPlugin& plugin,
34  const score::DocumentContext& ctx) override;
35 
36  const Device::DeviceSettings& defaultSettings() const noexcept override;
37 
38  Device::ProtocolSettingsWidget* makeSettingsWidget() override;
39  Device::AddressDialog* makeAddAddressDialog(
40  const Device::DeviceInterface& dev, const score::DocumentContext& ctx,
41  QWidget* parent) override;
42 
43  Device::AddressDialog* makeEditAddressDialog(
45  const score::DocumentContext& ctx, QWidget*) override;
46  QVariant makeProtocolSpecificSettings(const VisitorVariant& visitor) const override;
47 
48  void serializeProtocolSpecificSettings(
49  const QVariant& data, const VisitorVariant& visitor) const override;
50 
51  bool checkCompatibility(
52  const Device::DeviceSettings& a,
53  const Device::DeviceSettings& b) const noexcept override;
54 };
55 
57 {
58  SCORE_CONCRETE("d5a4a701-d152-4b3b-be05-4d847b623451")
59 public:
60  // Implement with OSSIA::Device
61  QString prettyName() const noexcept override;
62  QString category() const noexcept override;
63  Device::DeviceEnumerators
64  getEnumerators(const score::DocumentContext& ctx) const override;
65 
66  Device::DeviceInterface* makeDevice(
67  const Device::DeviceSettings& settings,
68  const Explorer::DeviceDocumentPlugin& plugin,
69  const score::DocumentContext& ctx) override;
70 
71  const Device::DeviceSettings& defaultSettings() const noexcept override;
72 
73  Device::ProtocolSettingsWidget* makeSettingsWidget() override;
74  Device::AddressDialog* makeAddAddressDialog(
75  const Device::DeviceInterface& dev, const score::DocumentContext& ctx,
76  QWidget* parent) override;
77 
78  Device::AddressDialog* makeEditAddressDialog(
80  const score::DocumentContext& ctx, QWidget*) override;
81  QVariant makeProtocolSpecificSettings(const VisitorVariant& visitor) const override;
82 
83  void serializeProtocolSpecificSettings(
84  const QVariant& data, const VisitorVariant& visitor) const override;
85 
86  bool checkCompatibility(
87  const Device::DeviceSettings& a,
88  const Device::DeviceSettings& b) const noexcept override;
89 };
90 }
Definition: ProtocolSettingsWidget.hpp:41
Definition: DeviceInterface.hpp:66
Definition: ProtocolFactoryInterface.hpp:44
Definition: ProtocolSettingsWidget.hpp:22
Definition: MIDIProtocolFactory.hpp:21
Definition: MIDIProtocolFactory.hpp:57
Manipulation of Devices from Qt.
Definition: AddressSettings.cpp:14
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Definition: AddressSettings.hpp:49
Definition: DeviceSettings.hpp:16
The VisitorVariant struct.
Definition: VisitorInterface.hpp:26
Definition: DocumentContext.hpp:18