Zrythm v2.0.0-alpha.1
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 : std::uint8_t {
  MidiClip , AudioClip , ChordClip , AutomationClip ,
  MidiControlEvent , MidiNote , ChordObject , ScaleObject ,
  Marker , AutomationPoint , AudioSourceObject , TempoObject ,
  TimeSignatureObject
}
 The type of the object. More...
Public Types inherited from zrythm::utils::UuidIdentifiableObject< ArrangerObject >
using uuid_base_type
 Exposes the CRTP parameter for concept checking.

Public Member Functions

auto type () const
virtual dsp::Positionposition () const
dsp::ContentPositionlength () const
ArrangerObjectNamename () const
ArrangerObjectColorcolor () const
ArrangerObjectMuteFunctionalitymute () 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)
const dsp::TempoMap & get_tempo_map () const
const dsp::TempoMapWrapperget_tempo_map_wrapper () const
virtual std::vector< ArrangerObjectListModel * > get_child_list_models () const
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< ArrangerObject >
 UuidIdentifiableObject (QObject *parent=nullptr)
auto get_uuid () const
Public Member Functions inherited from zrythm::utils::UuidIdentifiableBase
 UuidIdentifiableBase (QObject *parent=nullptr)
 UuidIdentifiableBase (const QUuid &id, QObject *parent=nullptr)
QUuid raw_uuid () const

Protected Types

enum class  ArrangerObjectFeatures : std::uint8_t {
  Bounds = 1 << 0 , Name = 1 << 1 , Color = 1 << 2 , Mute = 1 << 3 ,
  ClipOwned = 1 << 4
}

Protected Member Functions

 ArrangerObject (Type type, const dsp::TempoMapWrapper &tempo_map_wrapper, ArrangerObjectFeatures features, QObject *parent=nullptr) noexcept
 Construct a new ArrangerObject.
Protected Member Functions inherited from zrythm::utils::UuidIdentifiableBase
void set_raw_uuid (const QUuid &id)

Properties

QML_ELEMENT zrythm::structure::arrangement::ArrangerObjectparentObject
zrythm::structure::arrangement::ArrangerObject::Type type
zrythm::dsp::Positionposition
zrythm::dsp::ContentPositionlength
zrythm::structure::arrangement::ArrangerObjectNamename
zrythm::structure::arrangement::ArrangerObjectColorcolor
zrythm::structure::arrangement::ArrangerObjectMuteFunctionalitymute

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 clips, MIDI notes, chord objects, etc. It provides common functionality and properties shared by all these objects.

Definition at line 35 of file arranger_object.h.

Member Enumeration Documentation

◆ ArrangerObjectFeatures

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

Definition at line 112 of file arranger_object.h.

◆ Type

enum class zrythm::structure::arrangement::ArrangerObject::Type : std::uint8_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::TempoMapWrapper & tempo_map_wrapper,
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

◆ color()

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

Definition at line 85 of file arranger_object.h.

◆ get_child_list_models()

virtual std::vector< ArrangerObjectListModel * > zrythm::structure::arrangement::ArrangerObject::get_child_list_models ( ) const
inlinevirtual

Definition at line 106 of file arranger_object.h.

◆ get_tempo_map_wrapper()

const dsp::TempoMapWrapper & zrythm::structure::arrangement::ArrangerObject::get_tempo_map_wrapper ( ) const
inline

Definition at line 101 of file arranger_object.h.

◆ length()

dsp::ContentPosition * zrythm::structure::arrangement::ArrangerObject::length ( ) const
inline

Definition at line 83 of file arranger_object.h.

◆ mute()

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

Definition at line 86 of file arranger_object.h.

◆ name()

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

Definition at line 84 of file arranger_object.h.

◆ parentObject()

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

Definition at line 93 of file arranger_object.h.

◆ position()

virtual dsp::Position * zrythm::structure::arrangement::ArrangerObject::position ( ) const
inlinevirtual

Definition at line 81 of file arranger_object.h.

◆ type()

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

Definition at line 79 of file arranger_object.h.

Property Documentation

◆ color

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

Definition at line 44 of file arranger_object.h.

◆ length

zrythm::dsp::ContentPosition * zrythm::structure::arrangement::ArrangerObject::length
read

Definition at line 42 of file arranger_object.h.

◆ mute

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

Definition at line 46 of file arranger_object.h.

◆ name

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

Definition at line 43 of file arranger_object.h.

◆ parentObject

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

Definition at line 39 of file arranger_object.h.

◆ position

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

Definition at line 41 of file arranger_object.h.

◆ type

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

Definition at line 40 of file arranger_object.h.


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