gui/backend/arranger_object.h file

Macros for arranger object backends.

Contents

Enums

enum ArrangerObjectUpdateFlag { AO_UPDATE_THIS, AO_UPDATE_TRANS, AO_UPDATE_NON_TRANS, AO_UPDATE_ALL }
Flag used when updating parameters of objects.

Typedefs

using ArrangerObjectUpdateFlag = enum ArrangerObjectUpdateFlag
Flag used when updating parameters of objects.

Defines

#define ARRANGER_OBJ_DECLARE_IS_SELECTED(cc, sc)
Returns if the object is in the selections.
#define ARRANGER_OBJ_DECLARE_POS_SETTER(cc, sc, pos_name)
The setter is for use in e.g.
#define ARRANGER_OBJ_DECLARE_SET_POS(cc, sc, pos_name)
Sets the Position with the given pos_name.
#define ARRANGER_OBJ_DECLARE_SET_CACHE_POS(cc, sc, pos_name)
Sets the cached Position for use in live operations like moving.
#define ARRANGER_OBJ_DECLARE_SET_POSES(cc, sc)
For set_pos and set_cache_pos and the getter / setter.
#define ARRANGER_OBJ_DECLARE_SET_POSES_W_LENGTH(cc, sc)
For set_start_pos/set_end_pos and set_cache_start_pos/set_cache_end_pos.
#define ARRANGER_OBJ_DEFINE_SET_POSES_W_LENGTH(cc, sc)
Definitions.
#define ARRANGER_OBJ_SET_GIVEN_POS_TO(_array, cc, lc, pos_name, transient, bef_or_aft, widg)
Sets the Position pos to the earliest or latest object.
#define ARRANGER_OBJ_DECLARE_MOVE(cc, sc)
Moves the object by the given amount of ticks.
#define ARRANGER_OBJ_DECLARE_MOVE_W_LENGTH(cc, sc)
Moves the object by the given amount of ticks.
#define ARRANGER_OBJ_DEFINE_SHIFT_TICKS(cc, sc)
Shifts an object with a single Position by ticks only.
#define ARRANGER_OBJ_DEFINE_SHIFT_TICKS_W_LENGTH(cc, sc)
Shifts an object with a start and end Position by ticks.
#define ARRANGER_OBJECT_SET_AS_MAIN(caps, cc, sc)
Sets the object 'self' as the main object.
#define ARRANGER_OBJ_DECLARE_GEN_WIDGET(cc, sc)
Generates a widget for the object.
#define ARRANGER_OBJ_SET_POS(sc, obj, pos_name, pos, _update_flag)
Sets the Position by the name of pos_name in all of the object's linked objects (see ArrangerObjectInfo)
#define ARRANGER_OBJ_SET_POS_WITH_LANE(sc, obj, pos_name, pos, _update_flag)
Sets the Position by the name of pos_name in all of the object's linked objects (see ArrangerObjectInfo)
#define ARRANGER_OBJ_DECLARE_FREE_ALL_LANELESS(cc, sc)
Frees each object stored in obj_info (declaration).
#define ARRANGER_OBJ_DECLARE_GET_VISIBLE(cc, sc)
Returns the visible counterpart (ie, the transient or the non transient) of the object.
#define ARRANGER_OBJ_DECLARE_RESIZE(cc, sc)
Resizes the object on the left side or right side by given amount of ticks.
#define ARRANGER_OBJ_DECLARE_VALIDATE_POS(cc, sc, pos_name)
Declaration for validation of a Position.
#define ARRANGER_OBJ_SET_PRIMITIVE_VAL(cc, obj, val_name, val_value, update_flag)
Updates an arranger object's value in all counterparts specified by the update_flag.
#define ARRANGER_OBJ_DECLARE_MOVABLE(cc, sc)
Declares the minimal funcs for a movable arranger object without length, such as ChordObject's and AutomationPoint's.
#define ARRANGER_OBJ_DECLARE_MOVABLE_W_LENGTH(cc, sc)
Declares the minimal funcs for a movable arranger object with length, such as MidiNote's and Region's.

Enum documentation

enum ArrangerObjectUpdateFlag

Flag used when updating parameters of objects.

Enumerators
AO_UPDATE_THIS

Update only this object.

AO_UPDATE_TRANS

Update the transients of this object.

AO_UPDATE_NON_TRANS

Update the non-transients of this object.

AO_UPDATE_ALL

Update all counterparts of this object.

Define documentation

#define ARRANGER_OBJ_DECLARE_POS_SETTER(cc, sc, pos_name)

The setter is for use in e.g.

the digital meters whereas the set_pos func is used during arranger actions.

#define ARRANGER_OBJ_DECLARE_SET_POS(cc, sc, pos_name)

Sets the Position with the given pos_name.

It assumes that the position has already been validated.

#define ARRANGER_OBJ_DEFINE_SET_POSES_W_LENGTH(cc, sc)

Definitions.

Note: The set_start_pos and set_end_pos are left to the implementation because the validation might differ.

#define ARRANGER_OBJ_DECLARE_GEN_WIDGET(cc, sc)

Generates a widget for the object.

To be used on objects without lane counterparts.

#define ARRANGER_OBJ_SET_POS(sc, obj, pos_name, pos, _update_flag)

Sets the Position by the name of pos_name in all of the object's linked objects (see ArrangerObjectInfo)

Parameters
sc snake_case of object's name (e.g. region).
obj
pos_name
pos
_update_flag Update flag

It assumes that the object has members called *_get_main_trans_*, etc.

#define ARRANGER_OBJ_SET_POS_WITH_LANE(sc, obj, pos_name, pos, _update_flag)

Sets the Position by the name of pos_name in all of the object's linked objects (see ArrangerObjectInfo)

Parameters
sc snake_case of object's name (e.g. region).
obj
pos_name
pos
_update_flag ArrangerObjectUpdateFlag.

It assumes that the object has members called *_get_main_trans_*, etc.

#define ARRANGER_OBJ_DECLARE_GET_VISIBLE(cc, sc)

Returns the visible counterpart (ie, the transient or the non transient) of the object.

Used for example when moving a Region to allocate the MidiNote's based on the transient Region's position instead of the main Region.

Only checks the main/main-trans.

#define ARRANGER_OBJ_DECLARE_VALIDATE_POS(cc, sc, pos_name)

Declaration for validation of a Position.

Returns 1 if valid, 0 if invalid.