10#ifndef __AUDIO_TRACK_LANE_H__
11#define __AUDIO_TRACK_LANE_H__
16typedef struct _TrackLaneWidget TrackLaneWidget;
19typedef void MIDI_FILE;
27#define TRACK_LANE_MAGIC 3418552
28#define IS_TRACK_LANE(x) (((TrackLane *) x)->magic == TRACK_LANE_MAGIC)
29#define IS_TRACK_LANE_AND_NONNULL(x) (x && IS_TRACK_LANE (x))
31#define track_lane_is_auditioner(self) \
32 (self->track && track_is_auditioner (self->track))
34#define track_lane_is_in_active_project(self) \
35 (self->track && track_is_in_active_project (self->track))
171track_lane_get_soloed (
const TrackLane *
const self);
189track_lane_get_muted (
const TrackLane *
const self);
240 bool lanes_as_tracks,
241 bool use_track_or_lane_pos);
244track_lane_get_tracklist (const
TrackLane * self);
247track_lane_get_track (const
TrackLane * self);
A region in the timeline.
NONNULL_ARGS(1) int undo_manager_undo(UndoManager *self
Undo last action.
NONNULL void track_lane_set_muted(TrackLane *self, bool mute, bool trigger_undo, bool fire_events)
Sets track lane muted, updates UI and optionally adds the action to the undo stack.
NONNULL void track_lane_free(TrackLane *lane)
Frees the TrackLane.
void track_lane_rename(TrackLane *self, const char *new_name, bool with_action)
Rename the lane.
NONNULL int track_lane_calculate_lane_idx(const TrackLane *self)
Calculates a unique index for this lane.
void track_lane_update_positions(TrackLane *self, bool from_ticks, bool bpm_change)
Updates the positions in each child recursively.
void track_lane_remove_region(TrackLane *self, Region *region)
Removes but does not free the region.
void track_lane_write_to_midi_file(TrackLane *self, MIDI_FILE *mf, MidiEvents *events, const Position *start, const Position *end, bool lanes_as_tracks, bool use_track_or_lane_pos)
Writes the lane to the given MIDI file.
TrackLane * track_lane_gen_snapshot(const TrackLane *self)
Generate a snapshot for playback.
void track_lane_update_track_name_hash(TrackLane *self)
Sets the new track name hash to all the lane's objects recursively.
void track_lane_rename_with_action(TrackLane *self, const char *new_name)
Wrapper over track_lane_rename().
TrackLane * track_lane_clone(const TrackLane *src, Track *track)
Clones the TrackLane.
void track_lane_clear(TrackLane *self)
Removes all objects recursively from the track lane.
void track_lane_insert_region(TrackLane *self, Region *region, int idx)
Inserts a Region to the given TrackLane at the given index.
NONNULL void track_lane_set_soloed(TrackLane *self, bool solo, bool trigger_undo, bool fire_events)
Sets track lane soloed, updates UI and optionally adds the action to the undo stack.
void track_lane_add_region(TrackLane *self, Region *region)
Adds a Region to the given TrackLane.
TrackLane * track_lane_new(Track *track, int pos)
Creates a new TrackLane at the given pos in the given Track.
void track_lane_unselect_all(TrackLane *self)
Unselects all arranger objects.
Container for passing midi events through ports.
A Position is made up of bars.beats.sixteenths.ticks.
A region (clip) is an object on the timeline that contains either MidiNote's or AudioClip's.
A TrackLane belongs to a Track (can have many TrackLanes in a Track) and contains Regions.
uint8_t midi_ch
MIDI channel, if MIDI lane, starting at 1.
double height
Position of handle.
int y
TrackLaneWidget for this lane.
int pos
Position in the Track.
Region ** regions
Regions in this track.
char * name
Name of lane, e.g.
Track * track
Owner track.
CustomButtonWidget * buttons[8]
Buttons used by the track widget.
Track to be inserted into the Project's Tracklist.
The Tracklist contains all the tracks in the Project.