2 #include <Process/Dataflow/PortListWidget.hpp>
3 #include <Process/Inspector/ProcessInspectorWidgetDelegate.hpp>
4 #include <Process/Inspector/ProcessInspectorWidgetDelegateFactory.hpp>
6 #include <Control/Widgets.hpp>
7 #include <Engine/Node/Process.hpp>
8 #include <Inspector/InspectorLayout.hpp>
9 #include <Inspector/InspectorWidgetBase.hpp>
10 #include <Inspector/InspectorWidgetFactoryInterface.hpp>
14 template <
typename Vis,
typename Info>
15 void visit_ports(Vis&& visitor,
const ControlProcess<Info>& proc)
20 for(
auto& port : Info::Metadata::audio_ins)
26 for(
auto& port : Info::Metadata::midi_ins)
32 for(
auto& port : Info::Metadata::value_ins)
42 for(
auto& port : Info::Metadata::audio_outs)
48 for(
auto& port : Info::Metadata::midi_outs)
54 for(
auto& port : Info::Metadata::value_outs)
61 if constexpr(ossia::safe_nodes::info_functions<Info>::control_count > 0)
63 auto start = ossia::safe_nodes::info_functions<Info>::control_start;
65 ossia::for_each_in_tuple(Info::Metadata::controls, [&](
const auto& ctrl) {
66 visitor(start + i, ctrl);
73 template <
typename Proc>
81 void operator()(std::size_t i,
const ossia::safe_nodes::audio_in& in)
83 auto& inlet = *
object.inlets()[i];
84 Process::PortWidgetSetup::setupAlone(inlet, doc, vlay,
self);
86 void operator()(std::size_t i,
const ossia::safe_nodes::value_in& in)
88 auto& inlet = *
object.inlets()[i];
89 Process::PortWidgetSetup::setupAlone(inlet, doc, vlay,
self);
91 void operator()(std::size_t i,
const ossia::safe_nodes::midi_in& in)
93 auto& inlet = *
object.inlets()[i];
94 Process::PortWidgetSetup::setupAlone(inlet, doc, vlay,
self);
96 void operator()(std::size_t i,
const ossia::safe_nodes::address_in& in)
98 auto& inlet = *
object.inlets()[i];
99 Process::PortWidgetSetup::setupAlone(inlet, doc, vlay,
self);
101 template <
typename Control_T>
102 void operator()(std::size_t i,
const Control_T& ctrl)
105 Process::PortWidgetSetup::setupControl(
106 inlet, ctrl.make_widget(ctrl, inlet, doc,
self,
self), doc, vlay,
self);
109 void operator()(std::size_t i,
const ossia::safe_nodes::audio_out& out)
111 auto& inlet = *
object.outlets()[i];
112 Process::PortWidgetSetup::setupAlone(inlet, doc, vlay,
self);
114 void operator()(std::size_t i,
const ossia::safe_nodes::value_out& out)
116 auto& inlet = *
object.outlets()[i];
117 Process::PortWidgetSetup::setupAlone(inlet, doc, vlay,
self);
119 void operator()(std::size_t i,
const ossia::safe_nodes::midi_out& out)
121 auto& inlet = *
object.outlets()[i];
122 Process::PortWidgetSetup::setupAlone(inlet, doc, vlay,
self);
Definition: lib/score/widgets/Layout.hpp:29
Definition: score-lib-process/Process/Dataflow/Port.hpp:202
Definition: score-plugin-engine/Engine/Node/Inspector.hpp:75
Definition: DocumentContext.hpp:18