Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
channel_send.h File Reference

Channel send. More...

#include <stdbool.h>
#include "dsp/port.h"
#include "dsp/port_identifier.h"
#include "utils/yaml.h"
Include dependency graph for channel_send.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ChannelSendTarget
 Send target (used in list views). More...
 
struct  ChannelSend
 Channel send. More...
 

Macros

#define CHANNEL_SEND_SCHEMA_VERSION   1
 
#define CHANNEL_SEND_POST_FADER_START_SLOT   6
 The slot where post-fader sends begin (starting from 0).
 
#define channel_send_is_prefader(x)    (x->slot < CHANNEL_SEND_POST_FADER_START_SLOT)
 
#define channel_send_is_in_active_project(self)    (self->track && track_is_in_active_project (self->track))
 
#define channel_send_is_empty(x)   (!channel_send_is_enabled (x))
 

Typedefs

typedef struct _ChannelSendWidget ChannelSendWidget
 

Enumerations

enum  ChannelSendTargetType { CHANNEL_SEND_TARGET_TYPE_NONE , CHANNEL_SEND_TARGET_TYPE_TRACK , CHANNEL_SEND_TARGET_TYPE_PLUGIN_SIDECHAIN }
 Target type. More...
 

Functions

char * channel_send_target_describe (const ChannelSendTarget *self)
 Returns a string describing self (track/plugin name/etc.).
 
char * channel_send_target_get_icon (const ChannelSendTarget *self)
 
void channel_send_target_free (ChannelSendTarget *self)
 
void channel_send_init_loaded (ChannelSend *self, Track *track)
 
ChannelSendchannel_send_new (unsigned int track_name_hash, int slot, Track *track)
 Creates a channel send instance.
 
NONNULL Trackchannel_send_get_track (const ChannelSend *self)
 Gets the owner track.
 
NONNULL bool channel_send_is_enabled (const ChannelSend *self)
 
NONNULL bool channel_send_is_target_sidechain (ChannelSend *self)
 Returns whether the channel send target is a sidechain port (rather than a target track).
 
Trackchannel_send_get_target_track (ChannelSend *self, Track *owner)
 Gets the target track.
 
NONNULL StereoPortschannel_send_get_target_sidechain (ChannelSend *self)
 Gets the target sidechain port.
 
NONNULL float channel_send_get_amount_for_widgets (ChannelSend *self)
 Gets the amount to be used in widgets (0.0-1.0).
 
NONNULL void channel_send_set_amount_from_widget (ChannelSend *self, float val)
 Sets the amount from a widget amount (0.0-1.0).
 
bool channel_send_connect_stereo (ChannelSend *self, StereoPorts *stereo, Port *l, Port *r, bool sidechain, bool recalc_graph, bool validate, GError **error)
 Connects a send to stereo ports.
 
NONNULL bool channel_send_connect_midi (ChannelSend *self, Port *port, bool recalc_graph, bool validate, GError **error)
 Connects a send to a midi port.
 
NONNULL void channel_send_disconnect (ChannelSend *self, bool recalc_graph)
 Removes the connection at the given send.
 
NONNULL void channel_send_set_amount (ChannelSend *self, float amount)
 
NONNULL void channel_send_get_dest_name (ChannelSend *self, char *buf)
 Get the name of the destination, or a placeholder text if empty.
 
NONNULL void channel_send_copy_values (ChannelSend *dest, const ChannelSend *src)
 
NONNULL ChannelSendchannel_send_clone (const ChannelSend *src)
 
NONNULL ChannelSendWidgetchannel_send_find_widget (ChannelSend *self)
 
void channel_send_connect_to_owner (ChannelSend *self)
 Connects the ports to the owner track if not connected.
 
void channel_send_append_ports (ChannelSend *self, GPtrArray *ports)
 
int channel_send_append_connection (const ChannelSend *self, const PortConnectionsManager *mgr, GPtrArray *arr)
 Appends the connection(s), if non-empty, to the given array (if not NULL) and returns the number of connections added.
 
void channel_send_prepare_process (ChannelSend *self)
 
void channel_send_process (ChannelSend *self, const nframes_t local_offset, const nframes_t nframes)
 
bool channel_send_is_connected_to (const ChannelSend *self, const StereoPorts *stereo, const Port *midi)
 Returns whether the send is connected to the given ports.
 
NONNULL ChannelSendchannel_send_find (ChannelSend *self)
 Finds the project send from a given send instance.
 
NONNULL bool channel_send_validate (ChannelSend *self)
 
NONNULL void channel_send_free (ChannelSend *self)
 

Detailed Description

Channel send.

Definition in file channel_send.h.

Typedef Documentation

◆ ChannelSendWidget

typedef struct _ChannelSendWidget ChannelSendWidget

Definition at line 22 of file channel_send.h.