10#ifndef __GUI_BACKEND_MIXER_SELECTIONS_H__
11#define __GUI_BACKEND_MIXER_SELECTIONS_H__
26#define MIXER_SELECTIONS_SCHEMA_VERSION 1
28#define MIXER_SELECTIONS (PROJECT->mixer_selections)
30#define MIXER_SELECTIONS_MAX_SLOTS 60
43 int slots[MIXER_SELECTIONS_MAX_SLOTS];
61mixer_selections_new (
void);
140mixer_selections_contains_uninstantiated_plugin (
161 const bool fire_events);
174 bool publish_events);
API for Channel, representing a channel strip on the mixer.
A region in the timeline.
Track * mixer_selections_get_track(const MixerSelections *const self)
Get current Track.
NONNULL Plugin * mixer_selections_get_first_plugin(MixerSelections *self)
Returns the first selected plugin if any is selected, otherwise NULL.
int mixer_selections_get_lowest_slot(MixerSelections *ms)
Gets lowest slot in the selections.
MixerSelections * mixer_selections_clone(const MixerSelections *src, bool src_is_project)
Clone the struct for copying, undoing, etc.
NONNULL void mixer_selections_paste_to_slot(MixerSelections *ms, Channel *ch, ZPluginSlotType type, int slot)
Paste the selections starting at the slot in the given channel.
NONNULL void mixer_selections_sort(MixerSelections *self, bool asc)
Sorts the selections by slot index.
int mixer_selections_has_any(MixerSelections *ms)
Returns if there are any selections.
bool mixer_selections_contains_plugin(MixerSelections *ms, Plugin *pl)
Returns if the plugin is selected or not.
NONNULL bool mixer_selections_can_be_pasted(MixerSelections *self, Channel *ch, ZPluginSlotType type, int slot)
Returns whether the selections can be pasted to MixerWidget.paste_slot.
bool mixer_selections_contains_slot(MixerSelections *ms, ZPluginSlotType type, int slot)
Returns if the slot is selected or not.
NONNULL void mixer_selections_clear(MixerSelections *ms, const int pub_events)
Clears selections.
void mixer_selections_add_slot(MixerSelections *ms, Track *track, ZPluginSlotType type, int slot, bool clone_pl, const bool fire_events)
Adds a slot to the selections.
NONNULL void mixer_selections_remove_slot(MixerSelections *ms, int slot, ZPluginSlotType type, bool publish_events)
Removes a slot from the selections.
int mixer_selections_get_plugins(const MixerSelections *const self, GPtrArray *arr, bool from_cache)
Fills in the array with the plugins in the selections.
int mixer_selections_get_highest_slot(MixerSelections *ms)
Gets highest slot in the selections.
API for Region's specific to instrument Track's.
A Channel is part of a Track (excluding Tracks that don't have Channels) and contains information rel...
Selections to be used for the timeline's current selections, copying, undoing, etc.
int slots[MIXER_SELECTIONS_MAX_SLOTS]
Slots selected.
Plugin * plugins[MIXER_SELECTIONS_MAX_SLOTS]
Cache, used in actions.
int has_any
Whether any slot is selected.
unsigned int track_name_hash
Channel selected.
The base plugin Inheriting plugins must have this as a child.
Track to be inserted into the Project's Tracklist.