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.
void arranger_object_set_magic(ArrangerObject* self)
Sets the magic on the 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_is_hit(ArrangerObject* self, Position* start, Position* end) -> bool
Returns whether the given object is hit by the given position or range.
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) -> bool
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, bool during_ui_action)
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.
auto arranger_object_validate_pos(ArrangerObject* self, const Position* pos, ArrangerObjectPositionType type) -> int
Validates the given Position.
auto arranger_object_validate_name(ArrangerObject* self, const char* name) -> bool
Validates the given name.
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 bool pos_is_local, ArrangerObject** r1, ArrangerObject** r2, bool is_project)
Splits the given object at the given Position.
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.
void arranger_object_set_end_pos_full_size(ArrangerObject* obj, Position* pos)
Sets the end position of the ArrangerObject and also sets the loop end and fade out to that position.
void arranger_object_add_to_project(ArrangerObject* obj, bool fire_events)
Adds the ArrangerObject where it belongs in the project (eg, a Track).
void arranger_object_insert_to_project(ArrangerObject* obj)
Inserts the ArrangerObject where it belongs in the project (eg, a Track).
void arranger_object_remove_from_project(ArrangerObject* obj)
Removes the object from its parent in the project.

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.

Define documentation

#define arranger_object_can_cache_drawing(_obj)

Whether or not this object supports cached drawing.

FIXME off for now.