Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
IPortOwner Class Referenceabstract
Inheritance diagram for IPortOwner:

Public Types

using TrackUuid = dsp::PortIdentifier::TrackUuid
 
using PluginUuid = dsp::PortIdentifier::PluginUuid
 
using PortUuid = dsp::PortIdentifier::PortUuid
 

Public Member Functions

virtual void set_port_metadata_from_owner (dsp::PortIdentifier &id, PortRange &range) const =0
 Function that will be called by the Port to update the identifier's relevant members based on this port owner.
 
virtual utils::Utf8String get_full_designation_for_port (const dsp::PortIdentifier &id) const
 
virtual void on_control_change_event (const PortUuid &port_uuid, const dsp::PortIdentifier &id, float val)
 Will be called when a control port's value changes.
 
virtual void on_midi_activity (const dsp::PortIdentifier &id)
 Called during processing if the MIDI port contains new MIDI events.
 
virtual bool should_sum_data_from_backend () const
 Whether during processing, the port should sum the data from its backend buffers coming in.
 
virtual bool should_bounce_to_master (utils::audio::BounceStep step) const
 Whether the port should add its data to the master output when bouncing.
 
virtual bool are_events_on_midi_channel_approved (midi_byte_t channel) const
 Returns whether MIDI events on this channel on an input port should be processed (not ignored).
 

Detailed Description

Definition at line 75 of file port.h.

Member Typedef Documentation

◆ PluginUuid

Definition at line 79 of file port.h.

◆ PortUuid

Definition at line 80 of file port.h.

◆ TrackUuid

Definition at line 78 of file port.h.

Member Function Documentation

◆ are_events_on_midi_channel_approved()

virtual bool IPortOwner::are_events_on_midi_channel_approved ( midi_byte_t channel) const
inlinevirtual

Returns whether MIDI events on this channel on an input port should be processed (not ignored).

This is used to implement MIDI channel filtering in tracks that have piano rolls based on the enabled MIDI channels.

Reimplemented in zrythm::structure::tracks::TrackProcessor.

Definition at line 149 of file port.h.

◆ get_full_designation_for_port()

virtual utils::Utf8String IPortOwner::get_full_designation_for_port ( const dsp::PortIdentifier & id) const
inlinevirtual

Definition at line 95 of file port.h.

◆ on_control_change_event()

virtual void IPortOwner::on_control_change_event ( const PortUuid & port_uuid,
const dsp::PortIdentifier & id,
float val )
inlinevirtual

Will be called when a control port's value changes.

Parameters
valThe real value of the control port.
Attention
This may be called from the audio thread so it must not block.

Reimplemented in zrythm::gui::old_dsp::plugins::Plugin, zrythm::structure::tracks::Fader, and zrythm::structure::tracks::TrackProcessor.

Definition at line 107 of file port.h.

◆ on_midi_activity()

virtual void IPortOwner::on_midi_activity ( const dsp::PortIdentifier & id)
inlinevirtual

Called during processing if the MIDI port contains new MIDI events.

Reimplemented in zrythm::structure::tracks::TrackProcessor.

Definition at line 115 of file port.h.

◆ set_port_metadata_from_owner()

virtual void IPortOwner::set_port_metadata_from_owner ( dsp::PortIdentifier & id,
PortRange & range ) const
pure virtual

◆ should_bounce_to_master()

virtual bool IPortOwner::should_bounce_to_master ( utils::audio::BounceStep step) const
inlinevirtual

Whether the port should add its data to the master output when bouncing.

When bouncing a track directly to master (e.g., when bouncing the track on its own without parents), the buffer should be added to the master track output.

This is only utilized for stereo output audio ports.

Reimplemented in zrythm::gui::old_dsp::plugins::Plugin, zrythm::structure::tracks::Channel, zrythm::structure::tracks::Fader, and zrythm::structure::tracks::TrackProcessor.

Definition at line 137 of file port.h.

◆ should_sum_data_from_backend()

virtual bool IPortOwner::should_sum_data_from_backend ( ) const
inlinevirtual

Whether during processing, the port should sum the data from its backend buffers coming in.

If this is a TrackProcessor input port for a recordable track, this should only return true when currently armed recording. Otherwise, we always consider incoming external data.

Reimplemented in zrythm::structure::tracks::TrackProcessor.

Definition at line 125 of file port.h.


The documentation for this class was generated from the following file: