10#ifndef __GUI_BACKEND_TL_SELECTIONS_H__
11#define __GUI_BACKEND_TL_SELECTIONS_H__
26#define TL_SELECTIONS_SCHEMA_VERSION 1
28#define TL_SELECTIONS (PROJECT->timeline_selections)
49 int num_scale_objects;
50 size_t scale_objects_size;
66static const cyaml_schema_field_t timeline_selections_fields_schema[] = {
70 arranger_selections_fields_schema),
91static const cyaml_schema_value_t timeline_selections_schema = {
94 timeline_selections_fields_schema),
166 const int vis_at_diff);
191 const int vis_track_diff);
202timeline_selections_contains_only_regions (
206timeline_selections_contains_only_region_types (
216 const char * full_path,
218 const bool export_full_regions,
219 const bool lanes_as_tracks);
221#define timeline_selections_move_w_action( \
222 sel, ticks, delta_tracks, delta_lanes, already_moved) \
223 arranger_selections_move_w_action ( \
224 sel, ticks, 0, 0, delta_tracks, delta_lanes, 0, \
227#define timeline_selections_duplicate_w_action( \
228 sel, ticks, delta_tracks, delta_lanes, already_moved) \
229 arranger_selections_duplicate_w_action ( \
230 sel, ticks, 0, 0, delta_tracks, delta_lanes, 0, \
A region in the timeline.
Scale object inside the chord Track in the TimelineArranger.
RegionType
Type of Region.
int timeline_selections_can_be_pasted(TimelineSelections *ts, Position *pos, const int idx)
Returns whether the selections can be pasted.
void timeline_selections_mark_for_bounce(TimelineSelections *ts, bool with_parents)
bool timeline_selections_move_regions_to_new_lanes(TimelineSelections *self, const int diff)
Move the selected Regions to new lanes.
Track * timeline_selections_get_first_track(TimelineSelections *ts)
Gets highest track in the selections.
void timeline_selections_set_index_in_prev_lane(TimelineSelections *self)
Sets the regions' ZRegion::index_in_prev_lane.
NONNULL bool timeline_selections_export_to_midi_file(const TimelineSelections *self, const char *full_path, int midi_version, const bool export_full_regions, const bool lanes_as_tracks)
Exports the selections to the given MIDI file.
Track * timeline_selections_get_last_track(TimelineSelections *ts)
Gets lowest track in the selections.
TimelineSelections * timeline_selections_new_for_range(Position *start_pos, Position *end_pos, bool clone_objs)
Creates a new TimelineSelections instance for the given range.
void timeline_selections_set_vis_track_indices(TimelineSelections *ts)
Replaces the track positions in each object with visible track indices starting from 0.
bool timeline_selections_move_regions_to_new_ats(TimelineSelections *self, const int vis_at_diff)
Move the selected regions to new automation tracks.
bool timeline_selections_move_regions_to_new_tracks(TimelineSelections *self, const int vis_track_diff)
Move the selected Regions to the new Track.
#define YAML_FIELD_MAPPING_EMBEDDED(owner, member, schema)
Mapping embedded inside the struct.
#define YAML_FIELD_DYN_ARRAY_VAR_COUNT(owner, member, schema)
Dynamic-width (reallocated) array of structs with variable count.
#define YAML_VALUE_PTR(cc, fields_schema)
Schema to be used as a pointer.
Common data structures and functions for *ArrangerSelections.
API for Region's specific to instrument Track's.
Marker for the MarkerTrack.
A Position is made up of bars.beats.sixteenths.ticks.
A ScaleObject to be shown in the TimelineArrangerWidget.
Selections to be used for the timeline's current selections, copying, undoing, etc.
int chord_track_vis_index
Visible track index, used during copying.
int marker_track_vis_index
Visible track index, used during copying.
ArrangerSelections base
Base struct.
ZRegion ** regions
Selected TrackLane Region's.
int region_track_vis_index
Visible track index, used during copying.
Track to be inserted into the Project's Tracklist.
A region (clip) is an object on the timeline that contains either MidiNote's or AudioClip's.