103class SCORE_LIB_PROCESS_EXPORT
Port
108 SCORE_SERIALIZE_FRIENDS
111 bool displayHandledExplicitly{};
115 bool visibleWhenFolded{};
116 bool noValueChangeOnMove{};
121 bool stableIdentity{};
129 const QString& visualName() const noexcept;
130 const QString& visualDescription() const noexcept;
132 const QString& name() const noexcept;
133 const
State::AddressAccessor& address() const noexcept;
134 const
std::vector<
Path<Cable>>& cables() const noexcept;
136 const QString& exposed() const noexcept;
137 bool hasOwnExposed() const noexcept {
return !m_exposed.isEmpty(); }
138 bool scriptable() const noexcept {
return m_scriptable; }
139 const QString& description() const noexcept;
145 virtual const
State::Unit& unit() const noexcept;
146 void setUnit(
State::Unit u) noexcept;
148 virtual PortType type() const noexcept = 0;
150 virtual
Device::FullAddressAccessorSettings settings() const noexcept;
151 virtual
void setSettings(const
Device::FullAddressAccessorSettings& set) noexcept;
154 void setName(const QString& customData);
156 void setExposed(const QString& add);
160 void setScriptable(
bool b);
161 W_SLOT(setScriptable);
162 void setDescription(const QString& add);
163 W_SLOT(setDescription);
164 void setAddress(const
State::AddressAccessor& address);
167 void nameChanged(const QString& name)
168 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, nameChanged, name)
169 void exposedChanged(const QString& addr)
170 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, exposedChanged, addr)
171 void scriptableChanged(
bool b) E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, scriptableChanged, b)
172 void descriptionChanged(const QString& txt)
173 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, descriptionChanged, txt)
174 void cablesChanged() E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, cablesChanged)
175 void addressChanged(const
State::AddressAccessor& address)
176 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, addressChanged, address)
177 void executionReset() E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, executionReset)
180 State::AddressAccessor,
181 address W_READ address W_WRITE setAddress W_NOTIFY addressChanged)
182 PROPERTY(QString, name W_READ name W_WRITE setName W_NOTIFY nameChanged)
183 PROPERTY(QString, exposed W_READ exposed W_WRITE setExposed W_NOTIFY exposedChanged)
185 bool, scriptable W_READ scriptable W_WRITE setScriptable W_NOTIFY scriptableChanged)
186 PROPERTY(
Process::PortType, type W_READ type W_CONSTANT W_FINAL)
188 virtual QByteArray saveData() const noexcept;
190 virtual
void loadData(const QByteArray& arr, PortLoadDataFlags = {})
noexcept;
198 Port(
const Port&) =
delete;
199 Port(
Id<Port> c,
const QString& name, QObject* parent);
207 std::vector<Path<Cable>> m_cables;
210 QString m_description;
250 SCORE_SERIALIZE_FRIENDS
263 VIRTUAL_CONSTEXPR PortType type()
const noexcept override
265 return Process::PortType::Message;
268 const ossia::value& value()
const noexcept {
return m_value; }
269 const ossia::value& init()
const noexcept {
return m_init; }
270 const State::Domain& domain()
const noexcept {
return m_domain; }
272 QByteArray saveData()
const noexcept override;
273 void loadData(
const QByteArray& arr, PortLoadDataFlags = {})
noexcept override;
276 void valueChanged(
const ossia::value& v)
277 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, valueChanged, v)
278 void initChanged(
const ossia::value& v)
279 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, initChanged, v)
280 void executionValueChanged(
const ossia::value& v)
281 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, executionValueChanged, v)
283 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, domainChanged, d)
286 virtual void setValue(
const ossia::value& value);
288 void setInit(
const ossia::value& value);
291 inline void setExecutionValue(
const ossia::value& value)
293 executionValueChanged(value);
319 PROPERTY(
State::Domain, domain W_READ domain W_WRITE setDomain W_NOTIFY domainChanged)
320 PROPERTY(ossia::value, value W_READ value W_WRITE setValue W_NOTIFY valueChanged)
321 PROPERTY(ossia::value, init W_READ init W_WRITE setInit W_NOTIFY initChanged)
323 ossia::value m_value;
382 SCORE_SERIALIZE_FRIENDS
395 VIRTUAL_CONSTEXPR PortType type()
const noexcept override
397 return Process::PortType::Audio;
400 void forChildInlets(
const smallfun::function<
void(
Inlet&)>&)
const noexcept override;
403 const smallfun::function<
void(
Inlet&, ossia::inlet&)>&)
const noexcept override;
405 QByteArray saveData()
const noexcept override;
406 void loadData(
const QByteArray& arr, PortLoadDataFlags = {})
noexcept override;
408 bool propagate()
const;
409 void setPropagate(
bool propagate);
410 void propagateChanged(
bool propagate)
411 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, propagateChanged, propagate)
414 void setGain(
double g);
415 void gainChanged(
double g) E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, gainChanged, g)
419 void panChanged(
pan_weight g) E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, panChanged, g)
421 std::unique_ptr<Process::ControlInlet> gainInlet;
422 std::unique_ptr<Process::ControlInlet> panInlet;
425 bool, propagate W_READ propagate W_WRITE setPropagate W_NOTIFY propagateChanged)
426 PROPERTY(
double, gain W_READ gain W_WRITE setGain W_NOTIFY gainChanged)
427 PROPERTY(
pan_weight, pan W_READ pan W_WRITE setPan W_NOTIFY panChanged)
431 bool m_propagate{
false};
484 SCORE_SERIALIZE_FRIENDS
497 VIRTUAL_CONSTEXPR PortType type()
const noexcept override
499 return Process::PortType::Message;
502 QByteArray saveData()
const noexcept override;
503 void loadData(
const QByteArray& arr, PortLoadDataFlags = {})
noexcept override;
505 const ossia::value& value()
const {
return m_value; }
509 void valueChanged(
const ossia::value& v)
510 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, valueChanged, v)
511 void executionValueChanged(
const ossia::value& v)
512 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, executionValueChanged, v)
514 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, domainChanged, d)
517 void setExecutionValue(
const ossia::value& value) { executionValueChanged(value); }
519 void setValue(
const ossia::value& value)
539 PROPERTY(
State::Domain, domain W_READ domain W_WRITE setDomain W_NOTIFY domainChanged)
540 PROPERTY(ossia::value, value W_READ value W_WRITE setValue W_NOTIFY valueChanged)
542 ossia::value m_value;