audio/channel.h file


API for Channel, representing a channel strip on the mixer.


struct Channel
A Channel is part of a Track (excluding Tracks that don't have Channels) and contains information related to routing and the Mixer.


using Channel = struct Channel
A Channel is part of a Track (excluding Tracks that don't have Channels) and contains information related to routing and the Mixer.


void channel_handle_recording(Channel* self, const long g_frames_start, const nframes_t nframes)
Handles the recording logic inside the process cycle.
void channel_append_all_ports(Channel* ch, Port*** ports, int* size, bool is_dynamic, int* max_size, bool include_plugins)
Appends all channel ports and optionally plugin ports to the array.
void channel_expose_ports_to_backend(Channel* ch)
Exposes the channel's ports to the backend.
void channel_connect(Channel* ch)
Connects the channel's ports.
void channel_add_balance_control(void* _channel, float pan)
Adds to (or subtracts from) the pan.
void channel_reset_fader(Channel* channel)
Sets fader to 0.0.
void channel_prepare_process(Channel* channel)
Prepares the channel for processing.
auto channel_new(Track* track) -> Channel*
Creates a channel of the given type with the given label.
void channel_process(Channel* channel)
The process function prototype.
auto channel_add_plugin(Channel* channel, PluginSlotType slot_type, int pos, Plugin* plugin, int confirm, int gen_automatables, int recalc_graph, int pub_events) -> int
Adds given plugin to given position in the strip.
void channel_update_output(Channel* ch, Track* output)
Updates the output of the Channel (where the Channel routes to.
void channel_reconnect_ext_input_ports(Channel* ch)
Called when the input has changed for Midi, Instrument or Audio tracks.
void channel_reattach_midi_editor_manual_press_port(Channel* channel, int connect, const int recalc_graph)
Connects or disconnects the MIDI editor key press port to the channel's first plugin.
auto channel_get_automation_track(Channel* channel, PortFlags type) -> AutomationTrack*
Convenience function to get the automation track of the given type for the channel.
void channel_remove_plugin(Channel* channel, PluginSlotType type, int pos, bool deleting_plugin, bool deleting_channel, bool recalc_graph)
Removes a plugin at pos from the channel.
void channel_update_track_pos(Channel* self, int pos)
Updates the track position in the channel and all related ports and identifiers.
auto channel_clone(Channel* ch, Track* track) -> Channel*
Clones the channel recursively.
void channel_disconnect(Channel* channel, int remove_pl, int recalc_graph)
Disconnects the channel from the processing chain.
void channel_free(Channel* channel)
Frees the channel.


Magic number to identify channels.