Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
arranger_selections.h File Reference

Common data structures and functions for *ArrangerSelections. More...

#include <stdbool.h>
Include dependency graph for arranger_selections.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ArrangerSelections
 

Macros

#define ARRANGER_SELECTIONS_MAGIC   35867752
 
#define IS_ARRANGER_SELECTIONS(x)    (((ArrangerSelections *) x)->magic == ARRANGER_SELECTIONS_MAGIC)
 
#define IS_ARRANGER_SELECTIONS_AND_NONNULL(x)   (x && IS_ARRANGER_SELECTIONS (x))
 
#define ARRANGER_SELECTIONS(x)   arranger_selections_cast (x)
 
#define ARRANGER_SELECTIONS_DEFAULT_NUDGE_TICKS   0.1
 

Typedefs

typedef enum ArrangerSelectionsActionEditType ArrangerSelectionsActionEditType
 

Enumerations

enum  ArrangerSelectionsType {
  ARRANGER_SELECTIONS_TYPE_NONE , ARRANGER_SELECTIONS_TYPE_CHORD , ARRANGER_SELECTIONS_TYPE_TIMELINE , ARRANGER_SELECTIONS_TYPE_MIDI ,
  ARRANGER_SELECTIONS_TYPE_AUTOMATION , ARRANGER_SELECTIONS_TYPE_AUDIO
}
 
enum  ArrangerSelectionsProperty { ARRANGER_SELECTIONS_PROPERTY_HAS_LENGTH , ARRANGER_SELECTIONS_PROPERTY_CAN_LOOP , ARRANGER_SELECTIONS_PROPERTY_HAS_LOOPED , ARRANGER_SELECTIONS_PROPERTY_CAN_FADE }
 

Functions

void arranger_selections_init_loaded (ArrangerSelections *self, bool project, UndoableAction *action)
 Inits the selections after loading a project.
 
NONNULL void arranger_selections_init (ArrangerSelections *self, ArrangerSelectionsType type)
 Initializes the selections.
 
ArrangerSelectionsarranger_selections_new (ArrangerSelectionsType type)
 Creates new arranger selections.
 
NONNULL bool arranger_selections_verify (ArrangerSelections *self)
 Verify that the objects are not invalid.
 
NONNULL void arranger_selections_add_object (ArrangerSelections *self, ArrangerObject *obj)
 Appends the given object to the selections.
 
NONNULL void arranger_selections_set_from_selections (ArrangerSelections *dest, ArrangerSelections *src)
 Sets the values of each object in the dest selections to the values in the src selections.
 
NONNULL void arranger_selections_sort_by_indices (ArrangerSelections *sel, int desc)
 Sorts the selections by their indices (eg, for regions, their track indices, then the lane indices, then the index in the lane).
 
NONNULL void arranger_selections_sort_by_positions (ArrangerSelections *self, int desc)
 
NONNULL ArrangerSelectionsarranger_selections_clone (const ArrangerSelections *self)
 Clone the struct for copying, undoing, etc.
 
NONNULL bool arranger_selections_has_any (ArrangerSelections *self)
 Returns if there are any selections.
 
NONNULL void arranger_selections_get_start_pos (const ArrangerSelections *self, Position *pos, const bool global)
 Returns the position of the leftmost object.
 
NONNULL void arranger_selections_get_end_pos (ArrangerSelections *self, Position *pos, int global)
 Returns the end position of the rightmost object.
 
NONNULL int arranger_selections_get_num_objects (const ArrangerSelections *self)
 Returns the number of selected objects.
 
NONNULL ArrangerObjectarranger_selections_get_first_object (const ArrangerSelections *self)
 Gets first object.
 
NONNULL ArrangerObjectarranger_selections_get_last_object (const ArrangerSelections *self, bool ends_last)
 Gets last object.
 
NONNULL void arranger_selections_paste_to_pos (ArrangerSelections *self, Position *pos, bool undoable)
 Pastes the given selections to the given Position.
 
NONNULL void arranger_selections_get_all_objects (const ArrangerSelections *self, GPtrArray *arr)
 Appends all objects in the given array.
 
void arranger_selections_add_to_region (ArrangerSelections *self, ZRegion *region, bool clone)
 Adds each object in the selection to the given region (if applicable).
 
NONNULL void arranger_selections_add_ticks (ArrangerSelections *self, const double ticks)
 Moves the selections by the given amount of ticks.
 
NONNULL bool arranger_selections_all_on_same_lane (ArrangerSelections *self)
 Returns whether all the selections are on the same lane (track lane or automation lane).
 
NONNULL void arranger_selections_select_all (ArrangerSelections *self, bool fire_events)
 Selects all possible objects from the project.
 
NONNULL void arranger_selections_clear (ArrangerSelections *self, bool free, bool fire_events)
 Clears selections.
 
NONNULL void arranger_selections_post_deserialize (ArrangerSelections *self)
 Code to run after deserializing.
 
NONNULL bool arranger_selections_validate (ArrangerSelections *self)
 
NONNULL void arranger_selections_free_members (ArrangerSelections *self)
 Frees anything allocated by the selections but not the objects or self itself.
 
NONNULL void arranger_selections_free (ArrangerSelections *self)
 Frees the selections but not the objects.
 
NONNULL void arranger_selections_free_full (ArrangerSelections *self)
 Frees all the objects as well.
 
NONNULL int arranger_selections_contains_object (ArrangerSelections *self, ArrangerObject *obj)
 Returns if the arranger object is in the selections or not.
 
NONNULL bool arranger_selections_contains_undeletable_object (const ArrangerSelections *self)
 Returns if the selections contain an undeletable object (such as the start marker).
 
NONNULL bool arranger_selections_contains_unclonable_object (const ArrangerSelections *self)
 Returns if the selections contain an unclonable object (such as the start marker).
 
NONNULL bool arranger_selections_contains_unrenamable_object (const ArrangerSelections *self)
 
NONNULL bool arranger_selections_contains_object_with_property (ArrangerSelections *self, ArrangerSelectionsProperty property, bool value)
 Checks whether an object matches the given parameters.
 
NONNULL void arranger_selections_remove_object (ArrangerSelections *self, ArrangerObject *obj)
 Removes the arranger object from the selections.
 
NONNULL void arranger_selections_merge (ArrangerSelections *self)
 Merges the given selections into one region.
 
NONNULL bool arranger_selections_can_be_pasted (ArrangerSelections *self)
 Returns if the selections can be pasted.
 
NONNULL bool arranger_selections_contains_looped (ArrangerSelections *self)
 
NONNULL bool arranger_selections_can_be_merged (ArrangerSelections *self)
 
NONNULL double arranger_selections_get_length_in_ticks (ArrangerSelections *self)
 
NONNULL bool arranger_selections_contains_clip (ArrangerSelections *self, AudioClip *clip)
 
NONNULL bool arranger_selections_can_split_at_pos (const ArrangerSelections *self, const Position *pos)
 
NONNULL ArrangerSelectionsarranger_selections_get_for_type (ArrangerSelectionsType type)
 

Detailed Description

Common data structures and functions for *ArrangerSelections.

Definition in file arranger_selections.h.

Typedef Documentation

◆ ArrangerSelectionsActionEditType