11#ifndef __AUDIO_AUTOMATION_TRACKLIST_H__
12#define __AUDIO_AUTOMATION_TRACKLIST_H__
19typedef struct Automatable Automatable;
20typedef struct AutomationLane AutomationLane;
63 int num_ats_in_record_mode;
84COLD
NONNULL_ARGS (1) void automation_tracklist_init_loaded (
117automation_tracklist_get_prev_visible_at (
122automation_tracklist_get_next_visible_at (
127automation_tracklist_set_at_visible (
148automation_tracklist_get_visible_at_diff (
244 const
int plugin_slot,
245 const
int port_index,
246 const
char * symbol);
270WARN_UNUSED_RESULT NONNULL
int
NONNULL_ARGS(1) int undo_manager_undo(UndoManager *self
Undo last action.
void automation_tracklist_update_track_name_hash(AutomationTracklist *self, Track *track)
Updates the Track position of the Automatable's and AutomationTrack's.
AutomationTrack * automation_tracklist_get_plugin_at(AutomationTracklist *self, ZPluginSlotType slot_type, const int plugin_slot, const int port_index, const char *symbol)
Gets the automation track matching the given arguments.
void automation_tracklist_unselect_all(AutomationTracklist *self)
Unselects all arranger objects.
void automation_tracklist_set_at_index(AutomationTracklist *self, AutomationTrack *at, int index, bool push_down)
Sets the index of the AutomationTrack and swaps it with the AutomationTrack at that index or pushes t...
NONNULL bool automation_tracklist_validate(AutomationTracklist *self)
Verifies the identifiers on a live automation tracklist (in the project, not a clone).
WARN_UNUSED_RESULT NONNULL int automation_tracklist_get_num_regions(AutomationTracklist *self)
Counts the total number of regions in the automation tracklist.
AutomationTrack * automation_tracklist_get_at_from_port(AutomationTracklist *self, Port *port)
Returns the AutomationTrack corresponding to the given Port.
AutomationTrack * automation_tracklist_get_visible_at_after_delta(AutomationTracklist *self, AutomationTrack *at, int delta)
Returns the AutomationTrack after delta visible AutomationTrack's.
void automation_tracklist_print_ats(AutomationTracklist *self)
Prints info about all the automation tracks.
void automation_tracklist_remove_at(AutomationTracklist *self, AutomationTrack *at, bool free, bool fire_events)
Removes the AutomationTrack from the AutomationTracklist, optionally freeing it.
void automation_tracklist_clear(AutomationTracklist *self)
Removes all objects recursively.
void automation_tracklist_clone(AutomationTracklist *src, AutomationTracklist *dest)
Clones the automation tracklist elements from src to dest.
void automation_tracklist_remove_channel_ats(AutomationTracklist *self, Channel *ch)
Removes the AutomationTrack's associated with this channel from the AutomationTracklist in the corres...
void automation_tracklist_update_positions(AutomationTracklist *self, bool from_ticks, bool bpm_change)
Updates the frames of each position in each child of the automation tracklist recursively.
NONNULL int automation_tracklist_get_num_visible(AutomationTracklist *self)
Returns the number of visible AutomationTrack's.
Each track has an automation tracklist with automation tracks to be generated at runtime,...
size_t ats_size
Allocated size for the automation track pointer array.
Track * track
Pointer back to the track.
AutomationTrack ** ats_in_record_mode
Cache of automation tracks in record mode, used in recording manager to avoid looping over all automa...
GPtrArray * visible_ats
Cache of visible automation tracks.
AutomationTrack ** ats
Automation tracks in this automation tracklist.
A Channel is part of a Track (excluding Tracks that don't have Channels) and contains information rel...
Must ONLY be created via port_new()
Track to be inserted into the Project's Tracklist.