@@ -68,18 +68,18 @@ struct process_before_run
6868 int start{};
6969 int frames{};
7070
71- template <avnd::parameter Field, std::size_t Idx>
71+ template <avnd::parameter_port Field, std::size_t Idx>
7272 requires ossia_port<Field>
7373 void init_value (Field& ctrl, auto & port, avnd::field_index<Idx> idx) const noexcept
7474 {
7575 }
76- template <avnd::parameter Field, std::size_t Idx>
76+ template <avnd::parameter_port Field, std::size_t Idx>
7777 requires ossia_port<Field>
7878 void operator ()(Field& ctrl, auto & port, avnd::field_index<Idx>) const noexcept
7979 {
8080 }
8181
82- template <avnd::parameter Field, std::size_t Idx>
82+ template <avnd::parameter_port Field, std::size_t Idx>
8383 requires (!ossia_port<Field>)
8484 void init_value (
8585 Field& ctrl, ossia::value_inlet& port, avnd::field_index<Idx> idx) const noexcept
@@ -90,7 +90,7 @@ struct process_before_run
9090 auto & last = port.data .get_data ().back ().value ;
9191 update_value (self, impl, ctrl, last, ctrl.value , idx);
9292
93- if constexpr (avnd::control <Field>)
93+ if constexpr (avnd::control_port <Field>)
9494 {
9595 // Get the index of the control in [0; N[
9696 using type = typename Exec_T::processor_type;
@@ -122,7 +122,7 @@ struct process_before_run
122122 written |= self.from_ossia_value (ctrl.ports [p], last, ctrl.ports [p].value , idx);
123123
124124 // FIXME
125- // if constexpr(avnd::control <Field>)
125+ // if constexpr(avnd::control_port <Field>)
126126 // {
127127 // // Get the index of the control in [0; N[
128128 // using type = typename Exec_T::processor_type;
@@ -142,9 +142,9 @@ struct process_before_run
142142 }
143143 }
144144
145- template <avnd::parameter Field, std::size_t Idx>
145+ template <avnd::parameter_port Field, std::size_t Idx>
146146 requires (
147- !avnd::sample_accurate_parameter <Field> && !avnd::span_parameter <Field>
147+ !avnd::sample_accurate_parameter_port <Field> && !avnd::span_parameter_port <Field>
148148 && !ossia_port<Field>)
149149 void operator ()(
150150 Field& ctrl, ossia::value_inlet& port, avnd::field_index<Idx> idx) const noexcept
@@ -160,7 +160,7 @@ struct process_before_run
160160 init_value (ctrl, port, avnd::field_index<Idx>{});
161161 }
162162
163- template <avnd::linear_sample_accurate_parameter Field, std::size_t Idx>
163+ template <avnd::linear_sample_accurate_parameter_port Field, std::size_t Idx>
164164 void operator ()(
165165 Field& ctrl, ossia::value_inlet& port, avnd::field_index<Idx>) const noexcept
166166 {
@@ -177,7 +177,7 @@ struct process_before_run
177177 }
178178 }
179179
180- template <avnd::span_sample_accurate_parameter Field, std::size_t Idx>
180+ template <avnd::span_sample_accurate_parameter_port Field, std::size_t Idx>
181181 void operator ()(
182182 Field& ctrl, ossia::value_inlet& port, avnd::field_index<Idx>) const noexcept
183183 {
@@ -188,7 +188,7 @@ struct process_before_run
188188 }
189189 }
190190
191- template <avnd::dynamic_sample_accurate_parameter Field, std::size_t Idx>
191+ template <avnd::dynamic_sample_accurate_parameter_port Field, std::size_t Idx>
192192 void operator ()(
193193 Field& ctrl, ossia::value_inlet& port, avnd::field_index<Idx>) const noexcept
194194 {
@@ -313,6 +313,13 @@ struct process_before_run
313313 Field& ctrl, ossia::audio_inlet& port, avnd::field_index<Idx>) const noexcept
314314 {
315315 }
316+ template <typename Field, std::size_t Idx>
317+ void operator ()(
318+ Field& ctrl, std::vector<ossia::audio_inlet*>& ports,
319+ avnd::field_index<Idx>) const noexcept
320+ {
321+ ctrl.ports .resize (ports.size ());
322+ }
316323
317324 template <avnd::raw_container_midi_port Field, std::size_t Idx>
318325 void
@@ -327,7 +334,7 @@ struct process_before_run
327334 {
328335 }
329336
330- template <avnd::span_parameter Field, std::size_t Idx>
337+ template <avnd::span_parameter_port Field, std::size_t Idx>
331338 void operator ()(
332339 Field& ctrl, ossia::value_inlet& port, avnd::field_index<Idx> idx) const noexcept
333340 {
@@ -463,8 +470,8 @@ struct process_before_run
463470 }
464471 }
465472
466- template <avnd::control Field, std::size_t Idx>
467- requires (!avnd::sample_accurate_control <Field>)
473+ template <avnd::control_port Field, std::size_t Idx>
474+ requires (!avnd::sample_accurate_control_port <Field>)
468475 void operator ()(
469476 Field& ctrl, ossia::value_outlet& port, avnd::field_index<Idx>) const noexcept
470477 {
@@ -481,7 +488,7 @@ struct process_before_run
481488 ctrl.value = {};
482489 }
483490
484- template <avnd::sample_accurate_control Field, std::size_t Idx>
491+ template <avnd::sample_accurate_control_port Field, std::size_t Idx>
485492 void operator ()(
486493 Field& ctrl, ossia::value_outlet& port, avnd::field_index<Idx>) const noexcept
487494 {
@@ -498,6 +505,13 @@ struct process_before_run
498505 Field& ctrl, ossia::audio_outlet& port, avnd::field_index<Idx>) const noexcept
499506 {
500507 }
508+ template <typename Field, std::size_t Idx>
509+ void operator ()(
510+ Field& ctrl, std::vector<ossia::audio_outlet*>& ports,
511+ avnd::field_index<Idx>) const noexcept
512+ {
513+ ctrl.ports .resize (ports.size ());
514+ }
501515
502516 template <avnd::raw_container_midi_port Field, std::size_t Idx>
503517 void operator ()(
0 commit comments