a highly automated and intuitive digital audio workstation
No Matches
tracklist.h File Reference

Tracklist backend. More...

#include "dsp/engine.h"
#include "dsp/track.h"
#include "gui/widgets/track.h"
Include dependency graph for tracklist.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Tracklist
 The Tracklist contains all the tracks in the Project. More...


#define TRACKLIST   (PROJECT->tracklist)
#define MAX_TRACKS   3000
#define tracklist_is_in_active_project(self)
#define tracklist_is_auditioner(self)


typedef struct _TracklistWidget TracklistWidget
typedef struct _PinnedTracklistWidget PinnedTracklistWidget


 Used in track search functions. More...


COLD NONNULL_ARGS (1) void automation_tracklist_init_loaded(AutomationTracklist *self
 Inits a loaded AutomationTracklist.
COLD Tracklisttracklist_new (Project *project, SampleProcessor *sample_processor)
NONNULL void tracklist_select_all (Tracklist *self, bool select, bool fire_events)
 Selects or deselects all tracks.
void tracklist_get_visible_tracks (Tracklist *self, Track **visible_tracks, int *num_visible)
 Finds visible tracks and puts them in given array.
Tracktracklist_find_track_by_name (Tracklist *self, const char *name)
 Returns the Track matching the given name, if any.
NONNULL OPTIMIZE_O3 Tracktracklist_find_track_by_name_hash (Tracklist *self, unsigned int hash)
 Returns the Track matching the given name, if any.
NONNULL int tracklist_contains_master_track (Tracklist *self)
NONNULL int tracklist_contains_chord_track (Tracklist *self)
NONNULL void tracklist_print_tracks (Tracklist *self)
 Prints the tracks (for debugging).
NONNULL void tracklist_insert_track (Tracklist *self, Track *track, int pos, int publish_events, int recalc_graph)
 Adds given track to given spot in tracklist.
NONNULL void tracklist_remove_track (Tracklist *self, Track *track, bool rm_pl, bool free_track, bool publish_events, bool recalc_graph)
 Removes a track from the Tracklist and the TracklistSelections.
void tracklist_move_track (Tracklist *self, Track *track, int pos, bool always_before_pos, bool publish_events, bool recalc_graph)
 Moves a track from its current position to the position given by pos.
void tracklist_append_track (Tracklist *self, Track *track, int publish_events, int recalc_graph)
 Calls tracklist_insert_track with the given options.
void tracklist_set_track_pinned (Tracklist *self, Track *track, const int pinned, int publish_events, int recalc_graph)
 Pins or unpins the Track.
NONNULL bool tracklist_validate (Tracklist *self)
NONNULL HOT Tracktracklist_get_track (Tracklist *self, int idx)
 Returns the track at the given index or NULL if the index is invalid.
int tracklist_get_track_pos (Tracklist *self, Track *track)
 Returns the index of the given Track.
Tracktracklist_get_track_by_type (Tracklist *self, TrackType type)
 Returns the first track found with the given type.
ChordTrack * tracklist_get_chord_track (const Tracklist *self)
Tracktracklist_get_first_visible_track (Tracklist *self, const int pinned)
 Returns the first visible Track.
Tracktracklist_get_prev_visible_track (Tracklist *self, Track *track)
 Returns the previous visible Track in the same Tracklist as the given one (ie, pinned or not).
int tracklist_get_last_pos (Tracklist *self, const TracklistPinOption pin_opt, const bool visible_only)
 Returns the index of the last Track.
Tracktracklist_get_last_track (Tracklist *self, const TracklistPinOption pin_opt, const int visible_only)
 Returns the last Track.
Tracktracklist_get_next_visible_track (Tracklist *self, Track *track)
 Returns the next visible Track in the same Tracklist as the given one (ie, pinned or not).
Tracktracklist_get_visible_track_after_delta (Tracklist *self, Track *track, int delta)
 Returns the Track after delta visible Track's.
int tracklist_get_visible_track_diff (Tracklist *self, const Track *src, const Track *dest)
 Returns the number of visible Tracks between src and dest (negative if dest is before src).
bool tracklist_multiply_track_heights (Tracklist *self, double multiplier, bool visible_only, bool check_only, bool fire_events)
 Multiplies all tracks' heights and returns if the operation was valid.
bool tracklist_import_regions (GPtrArray *region_arrays, const FileImportInfo *import_info, TracksReadyCallback ready_cb, GError **error)
bool tracklist_import_files (Tracklist *self, char **uri_list, const SupportedFile *orig_file, Track *track, TrackLane *lane, int index, const Position *pos, TracksReadyCallback ready_cb, GError **error)
 Begins file import Handles a file drop inside the timeline or in empty space in the tracklist.
void tracklist_handle_move_or_copy (Tracklist *self, Track *this_track, TrackWidgetHighlight location, GdkDragAction action)
 Handles a move or copy action based on a drag.
bool tracklist_track_name_is_unique (Tracklist *self, const char *name, Track *track_to_skip)
 Returns 1 if the track name is not taken.
NONNULL bool tracklist_has_soloed (const Tracklist *self)
 Returns if the tracklist has soloed tracks.
NONNULL bool tracklist_has_listened (const Tracklist *self)
 Returns if the tracklist has listened tracks.
NONNULL int tracklist_get_num_muted_tracks (const Tracklist *self)
NONNULL int tracklist_get_num_soloed_tracks (const Tracklist *self)
NONNULL int tracklist_get_num_listened_tracks (const Tracklist *self)
int tracklist_get_num_visible_tracks (Tracklist *self, int visible)
int tracklist_get_plugins (const Tracklist *const self, GPtrArray *arr)
 Fills in the given array (if non-NULL) with all plugins in the tracklist and returns the number of plugins.
void tracklist_activate_all_plugins (Tracklist *self, bool activate)
 Activate or deactivate all plugins.
void tracklist_expose_ports_to_backend (Tracklist *self)
 Exposes each track's ports that should be exposed to the backend.
void tracklist_mark_all_tracks_for_bounce (Tracklist *self, bool bounce)
 Marks or unmarks all tracks for bounce.
void tracklist_get_total_bars (Tracklist *self, int *total_bars)
NONNULL void tracklist_set_caches (Tracklist *self, CacheTypes types)
 Set various caches (snapshots, track name hashes, plugin input/output ports, etc).
Tracklisttracklist_clone (Tracklist *src)
 Only clones what is needed for project save.
void tracklist_free (Tracklist *self)
void guile_tracklist_define_module (void)
 Define guile module.


COLD Projectproject
COLD Project SampleProcessorsample_processor

Detailed Description

Tracklist backend.

Definition in file tracklist.h.

Typedef Documentation

◆ PinnedTracklistWidget

typedef struct _PinnedTracklistWidget PinnedTracklistWidget

Definition at line 19 of file tracklist.h.

◆ TracklistWidget

typedef struct _TracklistWidget TracklistWidget

Definition at line 18 of file tracklist.h.