2#include <State/Message.hpp>
4#include <Process/GenericProcessFactory.hpp>
5#include <Process/Process.hpp>
7#include <Explorer/Explorer/DeviceExplorerModel.hpp>
9#include <ControlSurface/Metadata.hpp>
11#include <ossia/detail/hash_map.hpp>
15struct FullAddressAccessorSettings;
24template <
typename Identifier,
typename Func>
36 &explorer, &Explorer::DeviceExplorerModel::nodeChanged,
this,
38 if(
auto it = available.find(n); it != available.end())
47 auto node = Device::try_getNodeFromAddress(model.rootNode(), addr);
50 available[node] = {std::move(addr), std::move(identifier)};
54 missing.push_back({std::move(addr), std::move(identifier)});
60 auto it = ossia::find_if(
61 available, [&](
const auto& pair) {
return pair.second.accessor == addr; });
62 if(it != available.end())
69 = ossia::find_if(missing, [&](
const auto& p) {
return p.accessor == addr; });
70 if(it != missing.end())
81 ossia::hash_map<Device::Node*, AvailableNode> available;
82 std::vector<AvailableNode> missing;
87 SCORE_SERIALIZE_FRIENDS
92 using address_map = ossia::hash_map<int32_t, State::AddressAccessor>;
95 template <
typename Impl>
96 Model(Impl& vis, QObject* parent)
98 , m_observer{Explorer::deviceExplorerFromObject(*parent), Apply{*
this}}
105 using Process::ProcessModel::inlets;
106 using Process::ProcessModel::outlets;
116 const address_map& outputAddresses()
const noexcept {
return m_outputAddresses; }
119 QString prettyName()
const noexcept override;
121 void setDurationAndScale(
const TimeVal& newDuration)
noexcept override;
122 void setDurationAndGrow(
const TimeVal& newDuration)
noexcept override;
123 void setDurationAndShrink(
const TimeVal& newDuration)
noexcept override;
125 address_map m_outputAddresses;
Definition score-plugin-controlsurface/ControlSurface/Process.hpp:86
Definition DeviceExplorerModel.hpp:67
Definition GenericProcessFactory.hpp:15
The Process class.
Definition score-lib-process/Process/Process.hpp:61
The id_base_t class.
Definition Identifier.hpp:57
Manipulation of Devices from Qt.
Definition AddressSettings.cpp:14
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1324
@ ControlSurface
The process supports being exposed to the ControlSurface.
Definition ProcessFlags.hpp:37
Definition score-plugin-controlsurface/ControlSurface/Process.hpp:76
Definition score-plugin-controlsurface/ControlSurface/Process.hpp:26
Definition AddressSettings.hpp:131
Definition PortForward.hpp:23
Definition PortForward.hpp:27
Definition Address.hpp:108
The Address struct.
Definition Address.hpp:58
Definition TimeValue.hpp:21