|
Zrythm
a highly automated and intuitive digital audio workstation
|
The backend for a timeline track. More...
#include "dsp/automation_tracklist.h"#include "dsp/channel.h"#include "dsp/chord_object.h"#include "dsp/marker.h"#include "dsp/modulator_macro_processor.h"#include "dsp/region.h"#include "dsp/scale.h"#include "dsp/scale_object.h"#include "dsp/track_lane.h"#include "dsp/track_processor.h"#include "plugins/plugin.h"#include "utils/yaml.h"#include <glib/gi18n.h>

Go to the source code of this file.
Data Structures | |
| struct | InstrumentTrack |
| Track to be inserted into the Project's Tracklist. More... | |
Macros | |
| #define | TRACK_MIN_HEIGHT 24 |
| #define | TRACK_DEF_HEIGHT 48 |
| #define | TRACK_MAGIC 21890135 |
| #define | IS_TRACK(x) (((Track *) x)->magic == TRACK_MAGIC) |
| #define | IS_TRACK_AND_NONNULL(x) (x && IS_TRACK (x)) |
| #define | TRACK_MAX_MODULATOR_MACROS 128 |
| #define | TRACK_DND_PREFIX Z_DND_STRING_PREFIX "Track::" |
| #define | track_is_in_active_project(self) (self->tracklist && tracklist_is_in_active_project (self->tracklist)) |
| #define | track_is_auditioner(self) (self->tracklist && tracklist_is_auditioner (self->tracklist)) |
| Whether this track is part of the SampleProcessor auditioner tracklist. | |
| #define | track_get_name_hash(self) g_str_hash (self->name) |
| #define | track_is_pinned(x) (x->pos < TRACKLIST->pinned_tracks_cutoff) |
| Returns whether the track is pinned. | |
| #define | track_add_region(self, region, at, lane_pos, gen_name, fire_events, error) |
| Adds a Region to the given lane or AutomationTrack of the track. | |
| #define | track_type_is_audio_group track_type_has_mono_compat_switch |
| #define | track_create_empty_with_action(type, error) track_create_empty_at_idx_with_action (type, TRACKLIST->num_tracks, error) |
| Creates a new empty track at the end of the tracklist. | |
Typedefs | |
| typedef struct _TrackWidget | TrackWidget |
| typedef struct _FolderChannelWidget | FolderChannelWidget |
| typedef struct Automatable | Automatable |
| typedef struct Modulator | Modulator |
| typedef void | MIDI_FILE |
| typedef struct _WrappedObjectWithChangeSignal | WrappedObjectWithChangeSignal |
| typedef void(* | TracksReadyCallback) (const FileImportInfo *, const GError *) |
| Called when track(s) are actually imported into the project. | |
Functions | |
| TYPEDEF_STRUCT_UNDERSCORED (FileImportInfo) | |
| COLD | NONNULL_ARGS (1) void automation_tracklist_init_loaded(AutomationTracklist *self |
| Inits a loaded AutomationTracklist. | |
| void | track_init (Track *self, const int add_lane) |
| Inits the Track, optionally adding a single lane. | |
| Track * | track_new (TrackType type, int pos, const char *label, const int with_lane) |
| Creates a track with the given label and returns it. | |
| bool | track_type_has_channel (TrackType type) |
| Returns if the given TrackType is a type of Track that has a Channel. | |
| NONNULL void | track_set_magic (Track *self) |
| Sets magic on objects recursively. | |
| NONNULL void | track_set_muted (Track *track, bool mute, bool trigger_undo, bool auto_select, bool fire_events) |
| Sets track muted and optionally adds the action to the undo stack. | |
| NONNULL void | track_set_folded (Track *self, bool folded, bool trigger_undo, bool auto_select, bool fire_events) |
| Sets track folded and optionally adds the action to the undo stack. | |
| NONNULL TrackType | track_get_type_from_plugin_descriptor (PluginDescriptor *descr) |
| NONNULL bool | track_type_is_deletable (TrackType type) |
| Returns whether the track type is deletable by the user. | |
| NONNULL Tracklist * | track_get_tracklist (Track *self) |
| NONNULL bool | track_get_should_be_visible (const Track *self) |
| Returns whether the track should be visible. | |
| bool | track_multiply_heights (Track *self, double multiplier, bool visible_only, bool check_only) |
| HOT NONNULL bool | track_get_soloed (Track *self) |
| Returns if the track is soloed. | |
| NONNULL bool | track_get_implied_soloed (Track *self) |
| Returns whether the track is not soloed on its own but its direct out (or its direct out's direct out, etc.) is soloed. | |
| NONNULL bool | track_get_muted (Track *self) |
| Returns if the track is muted. | |
| NONNULL bool | track_get_listened (Track *self) |
| Returns if the track is listened. | |
| NONNULL bool | track_get_monitor_audio (Track *self) |
| Returns whether monitor audio is on. | |
| NONNULL void | track_set_monitor_audio (Track *self, bool monitor, bool auto_select, bool fire_events) |
| Sets whether monitor audio is on. | |
| NONNULL void | track_set_listened (Track *self, bool listen, bool trigger_undo, bool auto_select, bool fire_events) |
| Sets track soloed, updates UI and optionally adds the action to the undo stack. | |
| HOT NONNULL bool | track_get_recording (const Track *const track) |
| NONNULL void | track_set_recording (Track *track, bool recording, bool fire_events) |
| Sets recording and connects/disconnects the JACK ports. | |
| NONNULL void | track_set_soloed (Track *self, bool solo, bool trigger_undo, bool auto_select, bool fire_events) |
| Sets track soloed, updates UI and optionally adds the action to the undo stack. | |
| NONNULL bool | track_has_soloed_lanes (const Track *const self) |
| Returns whether the track has any soloed lanes. | |
| NONNULL int | track_is_selected (Track *self) |
| Returns if Track is in TracklistSelections. | |
| bool | track_insert_region (Track *track, Region *region, AutomationTrack *at, int lane_pos, int idx, int gen_name, int fire_events, GError **error) |
| Inserts a Region to the given lane or AutomationTrack of the track, at the given index. | |
| void | track_write_to_midi_file (const Track *self, MIDI_FILE *mf, MidiEvents *events, const Position *start, const Position *end, bool lanes_as_tracks, bool use_track_pos) |
| Writes the track to the given MIDI file. | |
| NONNULL void | track_select (Track *self, bool select, bool exclusive, bool fire_events) |
| Appends the Track to the selections. | |
| NONNULL void | track_unselect_all (Track *self) |
| Unselects all arranger objects in the track. | |
| NONNULL bool | track_contains_uninstantiated_plugin (const Track *const self) |
| NONNULL void | track_clear (Track *self) |
| Removes all objects recursively from the track. | |
| NONNULL void | track_remove_region (Track *self, Region *region, bool fire_events, bool free) |
| Only removes the region from the track. | |
| void | track_fill_events (const Track *self, const EngineProcessTimeInfo *const time_nfo, MidiEvents *midi_events, StereoPorts *stereo_ports) |
| Wrapper for audio and MIDI/instrument tracks to fill in MidiEvents or StereoPorts from the timeline data. | |
| bool | track_validate (Track *self) |
| Verifies the identifiers on a live Track (in the project, not a clone). | |
| void | track_add_folder_parents (const Track *self, GPtrArray *parents, bool prepend) |
| Adds the track's folder parents to the given array. | |
| Track * | track_get_direct_folder_parent (Track *track) |
| Returns the closest foldable parent or NULL. | |
| void | track_remove_from_folder_parents (Track *self) |
| Remove the track from all folders. | |
| Region * | track_get_region_at_pos (const Track *track, const Position *pos, bool include_region_end) |
| Returns the region at the given position, or NULL. | |
| Region * | track_get_last_region (Track *track) |
| Returns the last Region in the track, or NULL. | |
| void | track_set_lanes_visible (Track *track, const int visible) |
| Set track lanes visible and fire events. | |
| void | track_set_automation_visible (Track *track, const bool visible) |
| Set automation visible and fire events. | |
| int | track_type_can_host_region_type (const TrackType tt, const RegionType rt) |
| Returns if the given TrackType can host the given RegionType. | |
| void | track_generate_automation_tracks (Track *track) |
| Generates automatables for the track. | |
| void | track_setup (Track *track) |
| Wrapper. | |
| void | track_update_children (Track *self) |
| Updates the track's children. | |
| Track * | track_find_by_name (const char *name) |
| void | track_get_velocities_in_range (const Track *track, const Position *start_pos, const Position *end_pos, Velocity ***velocities, int *num_velocities, size_t *velocities_size, int inside) |
| Fills in the array with all the velocities in the project that are within or outside the range given. | |
| const char * | track_get_name (Track *track) |
| Getter for the track name. | |
| NONNULL bool | track_set_name_with_action_full (Track *track, const char *name) |
| Internally called by track_set_name_with_action(). | |
| void | track_set_name_with_action (Track *track, const char *name) |
| Setter to be used by the UI to create an undoable action. | |
| void | track_set_name (Track *self, const char *name, bool pub_events) |
| Setter for the track name. | |
| char * | track_get_unique_name (Track *track_to_skip, const char *name) |
| Returns a unique name for a new track based on the given name. | |
| Track * | track_get_from_name (const char *name) |
Returns the Track from the Project matching name. | |
| const char * | track_stringize_type (TrackType type) |
| void | track_update_positions (Track *self, bool from_ticks, bool bpm_change) |
| Updates the frames/ticks of each position in each child of the track recursively. | |
| Fader * | track_get_fader (Track *track, bool post_fader) |
| Returns the Fader (if applicable). | |
| FaderType | track_get_fader_type (const Track *track) |
| Returns the FaderType corresponding to the given Track. | |
| FaderType | track_type_get_prefader_type (TrackType type) |
| Returns the prefader type corresponding to the given Track. | |
| bool | track_create_missing_lanes (Track *self, const int pos) |
| Creates missing TrackLane's until pos. | |
| void | track_remove_empty_last_lanes (Track *self) |
| Removes the empty last lanes of the Track (except the last one). | |
| int | track_get_regions_in_range (Track *self, Position *p1, Position *p2, Region **regions) |
| Returns all the regions inside the given range, or all the regions if both p1 and p2 are NULL. | |
| int | track_get_plugins (const Track *const self, GPtrArray *arr) |
| Fills in the given array (if non-NULL) with all plugins in the track and returns the number of plugins. | |
| void | track_activate_all_plugins (Track *track, bool activate) |
| void | track_comment_setter (void *track, const char *comment) |
| Comment setter. | |
| void | track_set_comment (Track *self, const char *comment, bool undoable) |
| const char * | track_get_comment (void *track) |
| Comment getter. | |
| void | track_set_color (Track *self, const GdkRGBA *color, bool undoable, bool fire_events) |
| Sets the track color. | |
| void | track_set_icon (Track *self, const char *icon_name, bool undoable, bool fire_events) |
| Sets the track icon. | |
| Plugin * | track_get_plugin_at_slot (Track *track, ZPluginSlotType slot_type, int slot) |
| Returns the plugin at the given slot, if any. | |
| void | track_mark_for_bounce (Track *self, bool bounce, bool mark_regions, bool mark_children, bool mark_parents) |
| Marks the track for bouncing. | |
| void | track_append_ports (Track *self, GPtrArray *ports, bool include_plugins) |
| Appends all channel ports and optionally plugin ports to the array. | |
| bool | track_freeze (Track *self, bool freeze, GError **error) |
| Freezes or unfreezes the track. | |
| void | track_insert_plugin (Track *self, Plugin *pl, ZPluginSlotType slot_type, int slot, bool instantiate_plugin, bool replacing_plugin, bool moving_plugin, bool confirm, bool gen_automatables, bool recalc_graph, bool fire_events) |
| Wrapper over channel_add_plugin() and modulator_track_insert_modulator(). | |
| void | track_remove_plugin (Track *self, ZPluginSlotType slot_type, int slot, bool replacing_plugin, bool moving_plugin, bool deleting_plugin, bool deleting_track, bool recalc_graph) |
| Wrapper over channel_remove_plugin() and modulator_track_remove_modulator(). | |
| void | track_disconnect (Track *self, bool remove_pl, bool recalc_graph) |
| Disconnects the track from the processing chain. | |
| NONNULL bool | track_is_enabled (Track *self) |
| NONNULL void | track_set_enabled (Track *self, bool enabled, bool trigger_undo, bool auto_select, bool fire_events) |
| TrackType | track_type_get_from_string (const char *str) |
| void | track_get_total_bars (Track *self, int *total_bars) |
| void | track_set_caches (Track *self, CacheTypes types) |
| Set various caches (snapshots, track name hash, plugin input/output ports, etc). | |
| bool | track_create_with_action (TrackType type, const PluginSetting *pl_setting, const SupportedFile *file_descr, const Position *pos, int index, int num_tracks, int disable_track_idx, TracksReadyCallback ready_cb, GError **error) |
| Track * | track_create_empty_at_idx_with_action (TrackType type, int index, GError **error) |
| Track * | track_create_for_plugin_at_idx_w_action (TrackType type, const PluginSetting *pl_setting, int index, GError **error) |
| GMenu * | track_generate_edit_context_menu (Track *track, int num_selected) |
| GMenu * | track_generate_channel_context_menu (Track *track) |
| Generates a menu to be used for channel-related items, eg, fader buttons, direct out, etc. | |
| void | track_free (Track *track) |
| Wrapper for each track type. | |
Variables | |
| COLD Tracklist * | tracklist |
| COLD Tracklist TracklistSelections * | ts |
| GError ** | error |
The backend for a timeline track.
Definition in file track.h.