2 #include <Device/Protocol/DeviceSettings.hpp>
4 #include <score/document/DocumentContext.hpp>
5 #include <score/plugins/Interface.hpp>
6 #include <score/plugins/UuidKeySerialization.hpp>
12 #include <score_lib_device_export.h>
18 class DeviceDocumentPlugin;
22 struct DeviceSettings;
23 struct AddressSettings;
24 class DeviceInterface;
25 class ProtocolSettingsWidget;
38 E_SIGNAL(SCORE_LIB_DEVICE_EXPORT, deviceAdded, n, s)
39 void deviceRemoved(
const QString& s)
40 E_SIGNAL(SCORE_LIB_DEVICE_EXPORT, deviceRemoved, s)
42 using DeviceEnumerators = std::vector<std::pair<QString, Device::DeviceEnumerator*>>;
45 SCORE_INTERFACE(
ProtocolFactory,
"3f69d72e-318d-42dc-b48c-a806036592f1")
51 static const constexpr
auto osc =
"OSC";
52 static const constexpr
auto audio =
"Audio";
53 static const constexpr
auto video =
"Video";
54 static const constexpr
auto web =
"Web";
55 static const constexpr
auto hardware =
"Hardware";
56 static const constexpr
auto software =
"Software";
57 static const constexpr
auto lights =
"Lights";
58 static const constexpr
auto util =
"Utilities";
63 EditingReloadsEverything = (1 << 0)
66 virtual Flags flags() const noexcept;
68 virtual QString prettyName() const noexcept = 0;
69 virtual QString category() const noexcept = 0;
73 virtual
int visualPriority() const noexcept;
75 virtual DeviceEnumerators getEnumerators(const
score::DocumentContext& ctx) const;
79 const Explorer::DeviceDocumentPlugin& plugin, const
score::DocumentContext& ctx)
89 const
score::DocumentContext& ctx, QWidget*)
95 virtual
void serializeProtocolSpecificSettings(
100 void serializeProtocolSpecificSettings_T(
103 score::serialize_dyn(visitor, data.value<T>());
107 virtual QVariant makeProtocolSpecificSettings(
const VisitorVariant& visitor)
const = 0;
109 template <
typename T>
110 QVariant makeProtocolSpecificSettings_T(
const VisitorVariant& vis)
const
112 return QVariant::fromValue(score::deserialize_dyn<T>(vis));
116 virtual bool checkCompatibility(
Definition: ProtocolSettingsWidget.hpp:41
Definition: ProtocolFactoryInterface.hpp:28
Definition: DeviceInterface.hpp:66
Definition: ProtocolFactoryInterface.hpp:44
Base class for plug-in interfaces.
Definition: Interface.hpp:52
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
Definition: ProtocolFactoryInterface.hpp:50
The VisitorVariant struct.
Definition: VisitorInterface.hpp:26