Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::structure::arrangement::ArrangerObject Class Reference

Base class for all objects in the arranger. More...

#include <src/structure/arrangement/arranger_object.h>

Inheritance diagram for zrythm::structure::arrangement::ArrangerObject:
Collaboration diagram for zrythm::structure::arrangement::ArrangerObject:

Public Types

enum class  Type : basic_enum_base_type_t {
  MidiRegion , AudioRegion , ChordRegion , AutomationRegion ,
  MidiNote , ChordObject , ScaleObject , Marker ,
  AutomationPoint , AudioSourceObject , TempoObject , TimeSignatureObject
}
 The type of the object. More...

Public Member Functions

bool is_start_hit_by_range (const units::sample_t frames_start, const units::sample_t frames_end, bool range_start_inclusive=true, bool range_end_inclusive=false) const
auto type () const
dsp::AtomicPositionQmlAdapterposition () const
ArrangerObjectBoundsbounds () const
ArrangerObjectLoopRangeloopRange () const
ArrangerObjectNamename () const
ArrangerObjectColorcolor () const
ArrangerObjectMuteFunctionalitymute () const
ArrangerObjectFadeRangefadeRange () const
Q_SIGNAL void propertiesChanged ()
 Emitted when any of the properties of the object changed.
ArrangerObjectparentObject () const
void setParentObject (ArrangerObject *object)
Q_SIGNAL void parentObjectChanged (QObject *parentObject)
auto & get_tempo_map () const
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< ArrangerObject >
UuidIdentifiableObject & operator= (const UuidIdentifiableObject &other)=default
auto get_uuid () const

Protected Types

enum class  ArrangerObjectFeatures : std::uint8_t {
  Bounds = 1 << 0 , LoopingBit = 1 << 1 , Name = 1 << 2 , Color = 1 << 3 ,
  Mute = 1 << 4 , Fading = 1 << 5 , Looping = LoopingBit | Bounds , Region = Looping | Name | Color | Mute
}

Protected Member Functions

 ArrangerObject (Type type, const dsp::TempoMap &tempo_map, ArrangerObjectFeatures features, QObject *parent=nullptr) noexcept
 Construct a new ArrangerObject.

Properties

QML_ELEMENT zrythm::structure::arrangement::ArrangerObjectparentObject
zrythm::structure::arrangement::ArrangerObject::Type type
zrythm::dsp::AtomicPositionQmlAdapterposition
zrythm::structure::arrangement::ArrangerObjectBoundsbounds
zrythm::structure::arrangement::ArrangerObjectLoopRangeloopRange
zrythm::structure::arrangement::ArrangerObjectNamename
zrythm::structure::arrangement::ArrangerObjectColorcolor
zrythm::structure::arrangement::ArrangerObjectMuteFunctionalitymute
zrythm::structure::arrangement::ArrangerObjectFadeRangefadeRange

Friends

void init_from (ArrangerObject &obj, const ArrangerObject &other, utils::ObjectCloneType clone_type)
void to_json (nlohmann::json &j, const ArrangerObject &arranger_object)
void from_json (const nlohmann::json &j, ArrangerObject &arranger_object)

Detailed Description

Base class for all objects in the arranger.

The ArrangerObject class is the base class for all objects that can be placed in the arranger, such as regions, MIDI notes, chord objects, etc. It provides common functionality and properties shared by all these objects.

Definition at line 30 of file arranger_object.h.

Member Enumeration Documentation

◆ ArrangerObjectFeatures

enum class zrythm::structure::arrangement::ArrangerObject::ArrangerObjectFeatures : std::uint8_t
strongprotected

Definition at line 123 of file arranger_object.h.

◆ Type

enum class zrythm::structure::arrangement::ArrangerObject::Type : basic_enum_base_type_t
strong

The type of the object.

Definition at line 53 of file arranger_object.h.

Constructor & Destructor Documentation

◆ ArrangerObject()

zrythm::structure::arrangement::ArrangerObject::ArrangerObject ( Type type,
const dsp::TempoMap & tempo_map,
ArrangerObjectFeatures features,
QObject * parent = nullptr )
protectednoexcept

Construct a new ArrangerObject.

Parameters
tempo_map
derivedThe derived class instance, to be used for parenting any QObjects created by this class.

Member Function Documentation

◆ bounds()

ArrangerObjectBounds * zrythm::structure::arrangement::ArrangerObject::bounds ( ) const
inline

Definition at line 101 of file arranger_object.h.

◆ color()

ArrangerObjectColor * zrythm::structure::arrangement::ArrangerObject::color ( ) const
inline

Definition at line 104 of file arranger_object.h.

◆ fadeRange()

ArrangerObjectFadeRange * zrythm::structure::arrangement::ArrangerObject::fadeRange ( ) const
inline

Definition at line 106 of file arranger_object.h.

◆ get_tempo_map()

auto & zrythm::structure::arrangement::ArrangerObject::get_tempo_map ( ) const
inline

Definition at line 120 of file arranger_object.h.

◆ is_start_hit_by_range()

bool zrythm::structure::arrangement::ArrangerObject::is_start_hit_by_range ( const units::sample_t frames_start,
const units::sample_t frames_end,
bool range_start_inclusive = true,
bool range_end_inclusive = false ) const
inline
See also
is_start_hit_by_range().

Definition at line 77 of file arranger_object.h.

◆ loopRange()

ArrangerObjectLoopRange * zrythm::structure::arrangement::ArrangerObject::loopRange ( ) const
inline

Definition at line 102 of file arranger_object.h.

◆ mute()

ArrangerObjectMuteFunctionality * zrythm::structure::arrangement::ArrangerObject::mute ( ) const
inline

Definition at line 105 of file arranger_object.h.

◆ name()

ArrangerObjectName * zrythm::structure::arrangement::ArrangerObject::name ( ) const
inline

Definition at line 103 of file arranger_object.h.

◆ parentObject()

ArrangerObject * zrythm::structure::arrangement::ArrangerObject::parentObject ( ) const
inline

Definition at line 113 of file arranger_object.h.

◆ position()

dsp::AtomicPositionQmlAdapter * zrythm::structure::arrangement::ArrangerObject::position ( ) const
inline

Definition at line 96 of file arranger_object.h.

◆ type()

auto zrythm::structure::arrangement::ArrangerObject::type ( ) const
inline

Definition at line 94 of file arranger_object.h.

Property Documentation

◆ bounds

zrythm::structure::arrangement::ArrangerObjectBounds * zrythm::structure::arrangement::ArrangerObject::bounds
read

Definition at line 39 of file arranger_object.h.

◆ color

zrythm::structure::arrangement::ArrangerObjectColor * zrythm::structure::arrangement::ArrangerObject::color
read

Definition at line 43 of file arranger_object.h.

◆ fadeRange

zrythm::structure::arrangement::ArrangerObjectFadeRange * zrythm::structure::arrangement::ArrangerObject::fadeRange
read

Definition at line 46 of file arranger_object.h.

◆ loopRange

zrythm::structure::arrangement::ArrangerObjectLoopRange * zrythm::structure::arrangement::ArrangerObject::loopRange
read

Definition at line 41 of file arranger_object.h.

◆ mute

zrythm::structure::arrangement::ArrangerObjectMuteFunctionality * zrythm::structure::arrangement::ArrangerObject::mute
read

Definition at line 45 of file arranger_object.h.

◆ name

zrythm::structure::arrangement::ArrangerObjectName * zrythm::structure::arrangement::ArrangerObject::name
read

Definition at line 42 of file arranger_object.h.

◆ parentObject

QML_ELEMENT zrythm::structure::arrangement::ArrangerObject * zrythm::structure::arrangement::ArrangerObject::parentObject
readwrite

Definition at line 36 of file arranger_object.h.

◆ position

zrythm::dsp::AtomicPositionQmlAdapter * zrythm::structure::arrangement::ArrangerObject::position
read

Definition at line 38 of file arranger_object.h.

◆ type

zrythm::structure::arrangement::ArrangerObject::Type zrythm::structure::arrangement::ArrangerObject::type
read

Definition at line 37 of file arranger_object.h.


The documentation for this class was generated from the following file: