|
Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
|
The ChordObject class represents a chord inside a ChordRegion. More...
#include <src/gui/dsp/chord_object.h>


Public Types | |
| using | RegionT = ChordRegion |
| using | ChordDescriptor = dsp::ChordDescriptor |
Public Types inherited from ArrangerObject | |
| enum class | ResizeType { Normal , Loop , Fade , Stretch , StretchTempoChange } |
| Flag used in some functions. More... | |
| enum class | Type { MidiRegion , AudioRegion , ChordRegion , AutomationRegion , MidiNote , ChordObject , ScaleObject , Marker , AutomationPoint } |
| The type of the object. More... | |
| enum class | Flags { NonProject = 1 << 0 } |
| Flags. More... | |
| enum class | PositionType { Start , End , ClipStart , LoopStart , LoopEnd , FadeIn , FadeOut } |
| using | SelectionStatusGetter = std::function<bool (const Uuid &)> |
| using | Position = zrythm::dsp::Position |
| using | ArrangerObjectPtr = ArrangerObject * |
Public Member Functions | |
| ChordDescriptor * | getChordDescriptor () const |
| void | setChordDescriptor (ChordDescriptor *descr) |
| Q_SIGNAL void | chordDescriptorChanged (ChordDescriptor *) |
| void | set_chord_descriptor (int index) |
| ArrangerObjectPtrVariant | add_clone_to_project (bool fire_events) const override |
| Appends the ArrangerObject to where it belongs in the project (eg, a Track), without taking into account its previous index (eg, before deletion if undoing). | |
| ArrangerObjectPtrVariant | insert_clone_to_project () const override |
| Inserts the object where it belongs in the project (eg, a Track). | |
| utils::Utf8String | gen_human_friendly_name () const override |
| Generates a human readable name for the object. | |
| bool | validate (bool is_project, dsp::FramesPerTick frames_per_tick) const override |
| Validates the arranger object. | |
| void | init_after_cloning (const ChordObject &other, ObjectCloneType clone_type) override |
| Initializes the cloned object. | |
Public Member Functions inherited from MuteableObject | |
| virtual bool | get_muted (bool check_parent) const |
| Gets the mute status of the object. | |
| void | set_muted (bool muted, bool fire_events) |
| Sets the mute status of the object. | |
Public Member Functions inherited from ArrangerObject | |
| auto | get_type () const |
| bool | is_start_hit_by_range (const dsp::Position &start, const dsp::Position &end, bool range_start_inclusive=true, bool range_end_inclusive=false) const |
| Returns whether the given object is hit by the given range. | |
| bool | is_start_hit_by_range (const signed_frame_t global_frames_start, const signed_frame_t global_frames_end, bool range_start_inclusive=true, bool range_end_inclusive=false) const |
| void | set_parent_on_base_qproperties (QObject &derived) |
| Set the parent on QObject's that are children of this class. | |
| auto | get_position () const |
| Getter. | |
| void | position_setter_validated (const dsp::Position &pos, dsp::TicksPerFrame ticks_per_frame) |
| The setter is for use in e.g. | |
| void | set_position_unvalidated (const dsp::Position &pos) |
| bool | is_position_valid (const dsp::Position &pos, PositionType pos_type, dsp::TicksPerFrame ticks_per_frame) const |
| Returns if the given Position is valid. | |
| bool | set_position (const dsp::Position &pos, PositionType pos_type, bool validate, dsp::TicksPerFrame ticks_per_frame) |
| Sets the given position on the object, optionally attempting to validate before. | |
| void | move (double ticks, dsp::FramesPerTick frames_per_tick) |
| Moves the object by the given amount of ticks. | |
| void | set_track_id (const TrackUuid &track_id) |
| void | set_track_id (std::optional< TrackUuid > track_id) |
| void | unset_track_id () |
| void | update_positions (bool from_ticks, bool bpm_change, dsp::FramesPerTick frames_per_tick) |
| Updates the positions in each child recursively. | |
| auto | get_track () const |
| Returns the Track this ArrangerObject is in. | |
| std::optional< TrackUuid > | get_track_id () const |
| std::optional< ArrangerObjectPtrVariant > | remove_from_project (bool free_obj, bool fire_events=false) |
| Removes the object (which can be obtained from find_in_project()) from its parent in the project. | |
| void | set_selection_status_getter (SelectionStatusGetter getter) |
| void | unset_selection_status_getter () |
| virtual bool | is_deletable () const |
| Returns whether the given object is deletable or not (eg, start marker). | |
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< ArrangerObject > | |
| UuidIdentifiableObject (const Uuid &id) | |
| UuidIdentifiableObject (const UuidIdentifiableObject &other)=default | |
| UuidIdentifiableObject (UuidIdentifiableObject &&other)=default | |
| UuidIdentifiableObject & | operator= (const UuidIdentifiableObject &other)=default |
| UuidIdentifiableObject & | operator= (UuidIdentifiableObject &&other)=default |
| auto | get_uuid () const |
| void | copy_members_from (const UuidIdentifiableObject &other) |
Public Member Functions inherited from RegionOwnedObject | |
| RegionOwnedObject (ArrangerObjectRegistry &obj_registry) noexcept | |
| void | set_region_and_index (const Region ®ion) |
| Sets the region the object belongs to and the related index inside it. | |
| template<typename SelfT> | |
| void | get_global_start_pos (this const SelfT &self, dsp::Position &pos, dsp::FramesPerTick frames_per_tick) |
| Gets the global (timeline-based) start Position of the object. | |
| template<typename SelfT> | |
| auto | get_region (this const SelfT &self) |
| If the object is part of a Region, returns it, otherwise returns NULL. | |
Public Member Functions inherited from ICloneable< ChordObject > | |
| std::unique_ptr< ChordObject > | clone_unique (ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const |
| std::shared_ptr< ChordObject > | clone_shared (ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const |
| ChordObject * | clone_raw_ptr (ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const |
| ChordObject * | clone_qobject (QObject *parent, ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const |
| QScopedPointer< ChordObject > | clone_unique_qobject (QObject *parent, ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const |
Data Fields | |
| int | chord_index_ = 0 |
| The index of the chord it belongs to (0 topmost). | |
Data Fields inherited from MuteableObject | |
| bool | muted_ = false |
| Whether muted or not. | |
Data Fields inherited from ArrangerObject | |
| Flags | flags_ {} |
| Track this object belongs to (cache to be set during graph calculation). | |
Data Fields inherited from RegionOwnedObject | |
| ArrangerObjectRegistry & | object_registry_ |
| std::optional< ArrangerObject::Uuid > | region_id_ |
| Parent region identifier for objects that are part of a region. | |
Data Fields inherited from ICloneable< ChordObject > | |
| friend | Derived |
Static Public Attributes | |
| static constexpr int | WIDGET_TRIANGLE_WIDTH = 10 |
Static Public Attributes inherited from ArrangerObject | |
| static constexpr double | DEFAULT_NUDGE_TICKS = 0.1 |
Properties | |
| QML_ELEMENT ChordDescriptor * | chordDescriptor |
Friends | |
| bool | operator== (const ChordObject &lhs, const ChordObject &rhs) |
| void | to_json (nlohmann::json &j, const ChordObject &co) |
| void | from_json (const nlohmann::json &j, ChordObject &co) |
Additional Inherited Members | |
Protected Member Functions inherited from MuteableObject | |
| void | copy_members_from (const MuteableObject &other, ObjectCloneType clone_type) |
Protected Member Functions inherited from ArrangerObject | |
| ArrangerObject (Type type, TrackResolver track_resolver) noexcept | |
| void | copy_members_from (const ArrangerObject &other, ObjectCloneType clone_type) |
| bool | are_members_valid (bool is_project, dsp::FramesPerTick frames_per_tick) const |
| To be called by validate() implementations. | |
Protected Member Functions inherited from RegionOwnedObject | |
| void | copy_members_from (const RegionOwnedObject &other, ObjectCloneType clone_type) |
Protected Attributes inherited from ArrangerObject | |
| TrackResolver | track_resolver_ |
| PositionProxy * | pos_ = nullptr |
| Position (or start Position if the object has length). | |
| std::optional< TrackUuid > | track_id_ |
| ID of the track this object belongs to. | |
| std::optional< SelectionStatusGetter > | selection_status_getter_ |
| Whether part of an auditioner track. | |
The ChordObject class represents a chord inside a ChordRegion.
It inherits from MuteableObject and RegionOwnedObject.
The class provides methods to set the region and index of the chord, get the associated ChordDescriptor, and find the ChordObject corresponding to a given position.
The chord_index_ member variable stores the index of the chord in the chord pad (0 being the topmost chord). The magic_ member variable is used to identify valid ChordObject instances. The layout member variable is a cache for the Pango layout used to draw the chord name.
Definition at line 39 of file chord_object.h.
Definition at line 54 of file chord_object.h.
| using ChordObject::RegionT = ChordRegion |
Definition at line 53 of file chord_object.h.
|
overridevirtual |
Appends the ArrangerObject to where it belongs in the project (eg, a Track), without taking into account its previous index (eg, before deletion if undoing).
| ZrythmError | on failure. |
Implements ArrangerObject.
|
overridevirtual |
Generates a human readable name for the object.
If the object has a name, this returns a copy of the name, otherwise generates something appropriate.
Reimplemented from ArrangerObject.
|
overridevirtual |
Initializes the cloned object.
| ZrythmException | If the object could not be cloned. |
Implements ICloneable< ChordObject >.
|
overridevirtual |
Inserts the object where it belongs in the project (eg, a Track).
This function assumes that the object already knows the index where it should be inserted in its parent.
This is mostly used when undoing.
| ZrythmException | on failure. |
Implements ArrangerObject.
|
overridevirtual |
Validates the arranger object.
| frames_per_tick | Frames per tick used when validating audio regions. Passing 0 will use the value from the current engine. |
Must only be implemented by final objects.
Implements ArrangerObject.
|
friend |
Definition at line 107 of file chord_object.h.
|
friend |
Definition at line 81 of file chord_object.h.
|
friend |
Definition at line 100 of file chord_object.h.
| int ChordObject::chord_index_ = 0 |
The index of the chord it belongs to (0 topmost).
Definition at line 117 of file chord_object.h.
|
staticconstexpr |
Definition at line 56 of file chord_object.h.
|
read |
Definition at line 48 of file chord_object.h.