gui/backend/arranger_object.h file

Contents

Macros for arranger object backends.

Classes

struct ArrangerObject
Base struct for arranger objects.

Enums

enum ArrangerObjectResizeType { ARRANGER_OBJECT_RESIZE_NORMAL, ARRANGER_OBJECT_RESIZE_LOOP, ARRANGER_OBJECT_RESIZE_FADE, ARRANGER_OBJECT_RESIZE_STRETCH }
Flag used in some functions.
enum ArrangerObjectType { ARRANGER_OBJECT_TYPE_NONE, ARRANGER_OBJECT_TYPE_ALL, ARRANGER_OBJECT_TYPE_REGION, ARRANGER_OBJECT_TYPE_MIDI_NOTE, ARRANGER_OBJECT_TYPE_CHORD_OBJECT, ARRANGER_OBJECT_TYPE_SCALE_OBJECT, ARRANGER_OBJECT_TYPE_MARKER, ARRANGER_OBJECT_TYPE_AUTOMATION_POINT, ARRANGER_OBJECT_TYPE_VELOCITY }
The type of the object.
enum ArrangerObjectFlags { ARRANGER_OBJECT_FLAG_NON_PROJECT = 1 << 0 }
ArrangerObject flags.
enum ArrangerObjectCloneFlag { ARRANGER_OBJECT_CLONE_COPY_MAIN, ARRANGER_OBJECT_CLONE_COPY, ARRANGER_OBJECT_CLONE_COPY_LINK }
Flag do indicate how to clone the object.

Typedefs

using ArrangerObject = struct ArrangerObject
Base struct for arranger objects.
using ArrangerObjectResizeType = enum ArrangerObjectResizeType
Flag used in some functions.
using ArrangerObjectType = enum ArrangerObjectType
The type of the object.
using ArrangerObjectFlags = enum ArrangerObjectFlags
ArrangerObject flags.
using ArrangerObjectCloneFlag = enum ArrangerObjectCloneFlag
Flag do indicate how to clone the object.

Functions

auto arranger_object_get_arranger(ArrangerObject* self) -> ArrangerWidget*
Gets the arranger for this arranger object.
auto arranger_object_get_region(ArrangerObject* self) -> ZRegion*
If the object is part of a ZRegion, returns it, otherwise returns NULL.
auto arranger_object_get_name(ArrangerObject* self) -> const char*
Returns a pointer to the name of the object, if the object can have names.
void arranger_object_set_to_object(ArrangerObject* dest, ArrangerObject* src)
Sets the dest object's values to the main src object's values.
auto arranger_object_should_lane_be_visible(ArrangerObject* self) -> int
Returns if the lane counterpart should be visible.
auto arranger_object_should_orig_be_visible(ArrangerObject* self) -> int
Returns if the cached object should be visible, ie, while copy- moving (ctrl+drag) we want to show both the object at its original position and the current object.
auto arranger_object_get_object(ArrangerObject* self) -> ArrangerObject*
Gets the object the ArrangerObjectInfo represents.
void arranger_object_init_loaded(ArrangerObject* self)
Initializes the object after loading a Project.
auto arranger_object_get_selections_for_type(ArrangerObjectType type) -> ArrangerSelections*
Returns the ArrangerSelections corresponding to the given object type.
void arranger_object_select(ArrangerObject* self, const int select, const int append)
Selects the object by adding it to its corresponding selections or making it the only selection.
auto arranger_object_get_num_loops(ArrangerObject* self, const int count_incomplete) -> int
Returns the number of loops in the ArrangerObject, optionally including incomplete ones.
auto arranger_object_is_selected(ArrangerObject* self) -> int
Returns if the object is in the selections.
void arranger_object_print(ArrangerObject* self)
Prints debug information about the given object.
auto arranger_object_get_muted(ArrangerObject* self) -> bool
Gets the mute status of the object.
void arranger_object_set_muted(ArrangerObject* self, bool muted, bool fire_events)
Sets the mute status of the object.
void arranger_object_get_pos(const ArrangerObject* self, Position* pos)
Getter.
void arranger_object_get_end_pos(const ArrangerObject* self, Position* pos)
Getter.
void arranger_object_get_clip_start_pos(const ArrangerObject* self, Position* pos)
Getter.
void arranger_object_get_loop_start_pos(const ArrangerObject* self, Position* pos)
Getter.
void arranger_object_get_loop_end_pos(const ArrangerObject* self, Position* pos)
Getter.
void arranger_object_pos_setter(ArrangerObject* self, const Position* pos)
The setter is for use in e.g.
void arranger_object_end_pos_setter(ArrangerObject* self, const Position* pos)
The setter is for use in e.g.
void arranger_object_clip_start_pos_setter(ArrangerObject* self, const Position* pos)
The setter is for use in e.g.
void arranger_object_loop_start_pos_setter(ArrangerObject* self, const Position* pos)
The setter is for use in e.g.
void arranger_object_loop_end_pos_setter(ArrangerObject* self, const Position* pos)
The setter is for use in e.g.
auto arranger_object_is_position_valid(ArrangerObject* self, const Position* pos, ArrangerObjectPositionType pos_type) -> int
Returns if the given Position is valid.
void arranger_object_set_position(ArrangerObject* self, const Position* pos, ArrangerObjectPositionType pos_type, const int validate)
Sets the Position all of the object's linked objects (see ArrangerObjectInfo)
auto arranger_object_stringize_type(ArrangerObjectType type) -> const char*
Returns the type as a string.
void arranger_object_copy_identifier(ArrangerObject* dest, ArrangerObject* src)
Copies the identifier from src to dest.
void arranger_object_move(ArrangerObject* self, const double ticks)
Moves the object by the given amount of ticks.
auto arranger_object_get_length_in_ticks(ArrangerObject* self) -> double
Returns the length of the ArrangerObject (if it has length) in ticks.
auto arranger_object_get_length_in_frames(ArrangerObject* self) -> long
Returns the length of the ArrangerObject (if it has length) in frames.
auto arranger_object_get_loop_length_in_ticks(ArrangerObject* self) -> double
Returns the length of the loop in ticks.
auto arranger_object_get_loop_length_in_frames(ArrangerObject* self) -> long
Returns the length of the loop in ticks.
void arranger_object_update_frames(ArrangerObject* self)
Updates the frames of each position in each child recursively.
void arranger_object_free(ArrangerObject* self)
Frees only this object.
void arranger_object_resize(ArrangerObject* self, const int left, ArrangerObjectResizeType type, const double ticks)
Resizes the object on the left side or right side by given amount of ticks, for objects that do not have loops (currently none? keep it as reference).
void arranger_object_add_ticks_to_children(ArrangerObject* self, const double ticks)
Adds the given ticks to each included object.
auto arranger_object_get_track(ArrangerObject* self) -> Track*
Returns the Track this ArrangerObject is in.
void arranger_object_post_deserialize(ArrangerObject* self)
Returns the widget type for the given ArrangerObjectType.
auto arranger_object_validate_pos(ArrangerObject* self, const Position* pos, ArrangerObjectPositionType type) -> int
Validates the given Position.
auto arranger_object_find(ArrangerObject* obj) -> ArrangerObject*
Returns the ArrangerObject matching the given one.
auto arranger_object_clone(ArrangerObject* self, ArrangerObjectCloneFlag clone_flag) -> ArrangerObject*
Clone the ArrangerObject.
void arranger_object_split(ArrangerObject* self, const Position* pos, const int pos_is_local, ArrangerObject** r1, ArrangerObject** r2)
Splits the given object at the given Position, deletes the original object and adds 2 new objects in the same parent (Track or AutomationTrack or Region).
void arranger_object_unsplit(ArrangerObject* r1, ArrangerObject* r2, ArrangerObject** region)
Undoes what arranger_object_split() did.
void arranger_object_set_name(ArrangerObject* self, const char* name, int fire_events)
Sets the name of the object, if the object can have a name.

Defines

#define arranger_object_type_has_length(type)
Returns if the object type has a length.
#define arranger_object_type_has_global_pos(type)
Returns if the object type has a global position.
#define arranger_object_can_have_lanes(_obj)
Returns if the object is allowed to have lanes.
#define arranger_object_type_can_loop(type)
Returns if the object can loop.
#define arranger_object_can_cache_drawing(_obj)
Whether or not this object supports cached drawing.
#define _ARRANGER_OBJECT_FREE_AND_SET_STRING(_obj, _val_name, _val_value)
Not to be used anywhere besides below.
#define arranger_object_set_string(cc, obj, val_name, val_value)
Updates an arranger object's string value.