|
MUSX Document Model
|
Represents chord symbol assignment for a staff and measure. More...
#include <Details.h>
Inheritance diagram for musx::dom::details::ChordAssign:Public Types | |
| enum class | BassPosition { AfterRoot , UnderRoot , Subtext } |
| Bass position options. | |
Public Types inherited from musx::dom::Base | |
| enum class | ShareMode { All , Partial , None } |
| Describes how this instance is shared between part and score. More... | |
| using | SharedNodes = std::set< std::string > |
| The container type for shared nodes. | |
Public Member Functions | |
| ChordAssign (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper staffId, Cmper meas, Inci inci) | |
| Constructor. | |
| MusxInstanceList< others::ChordSuffixElement > | getChordSuffix () const |
| Returns the chord suffix as an array of others::ChordSuffixElement. | |
| MusxInstance< others::FretboardGroup > | getFretboardGroup () const |
| Get the others::FretboardGroup instance for this chord assignment. You can use this to get the fret instrument. | |
| MusxInstance< others::FretboardStyle > | getFretboardStyle () const |
| Returns the others::FretboardStyle instance for this chord assignment. | |
Public Member Functions inherited from musx::dom::DetailsBase | |
| DetailsBase (const DetailsBase &)=default | |
| explicit default copy constructor | |
| DetailsBase (DetailsBase &&) noexcept=default | |
| explicit default move constructor | |
| Cmper | getCmper1 () const |
Gets the cmper1 key value. | |
| Cmper | getCmper2 () const |
Gets the cmper2 key value. | |
| std::optional< Inci > | getInci () const |
Gets the optional array index (inci). | |
| Cmper | getRequestedPartId () const |
| If this instance was retrieved from an object pool, it contains the part ID that was used to retrieve it. If this value is different than getSourcePartId, then this instance is a copy of the pool instance. | |
Public Member Functions inherited from musx::dom::Base | |
| virtual | ~Base () noexcept(false)=default |
| Virtual destructor for polymorphic behavior. | |
| DocumentPtr | getDocument () const |
| Gets a reference to the Document. | |
| Cmper | getSourcePartId () const |
| Gets the source partId for this instance. If an instance is fully shared with the score, the source is SCORE_PARTID. If an instance is partially shared or non shared, the source is the ID of the part that sourced it. | |
| ShareMode | getShareMode () const |
| Gets the sharing mode for this instance. | |
| const SharedNodes & | getUnlinkedNodes () const |
Gets the unlinked nodes for this instance. (Only populated for ShareMode::Partial) | |
| void | addUnlinkedNode (const std::string &nodeName) |
| Adds a shared node for this instance. | |
| virtual void | integrityCheck (const std::shared_ptr< Base > &ptrToThis) |
| Allows a class to determine if it has been properly contructed by the factory and fix issues that it can, such as creating default instances of contained classes. | |
| virtual bool | requireAllFields () const |
| Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class. | |
Static Public Member Functions | |
| static const xml::XmlElementArray< ChordAssign > & | xmlMappingArray () |
| Required for musx::factory::FieldPopulator. | |
Public Attributes | |
| Cmper | suffixId {} |
| Cmper | fbStyleId {} |
| The others::FretboardStyle ID. (Ignored when useFretboardFont is true.) | |
| int | rootScaleNum {} |
| Root scale degree: 0–6, where zero is the tonic. | |
| int | rootAlter {} |
| Root alteration. | |
| bool | rootLowerCase {} |
| Display root in lowercase (minor triad) | |
| bool | playSuffix {} |
| Playback suffix. | |
| bool | showRoot {} |
| Show root. | |
| bool | playRoot {} |
| Playback root. | |
| bool | showFretboard {} |
| Show fretboard. | |
| bool | showSuffix {} |
| Show suffix. | |
| bool | playFretboard {} |
| Playback fretboard. | |
| int | bassScaleNum {} |
| Bass scale degree: 0–6, where zero is the tonic. | |
| int | bassAlter {} |
| Bass alteration. | |
| bool | bassLowerCase {} |
| Display bass in lowercase. | |
| BassPosition | bassPosition {} |
| Visual position of bass relative to root. | |
| bool | showAltBass {} |
| Show alternate bass. | |
| bool | playAltBass {} |
| Playback alternate bass. | |
| int | capoValue {} |
| Capo value (if useLocalCapo is true) | |
| bool | useLocalCapo {} |
| Use local capo. | |
| Inci | fretboardGroupInci {} |
| bool | useFretboardFont {} |
| Evpu | horzOff {} |
| Horizontal offset of chord (in EVPU) | |
| Evpu | vertOff {} |
| Vertical offset of chord (in EVPU) | |
| Evpu | fbHorzOff {} |
| Horizontal offset of fretboard (in EVPU) | |
| Evpu | fbVertOff {} |
| Vertical offset of fretboard (in EVPU) | |
| Edu | horzEdu {} |
| Edu position in measure. | |
| int | chPercent {} |
| Chord scaling (100 means 100%) | |
| int | fbPercent {} |
| FretboardDiagram scaling (100 means 100%) | |
Static Public Attributes | |
| static constexpr std::string_view | XmlNodeName = "chordAssign" |
| The XML node name for this type. | |
Additional Inherited Members | |
Protected Member Functions inherited from musx::dom::DetailsBase | |
| DetailsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper1, Cmper cmper2, std::optional< Inci > inci=std::nullopt) | |
| Constructs a DetailsBase object. | |
| DetailsBase & | operator= (const DetailsBase &other) |
| Assignment operator delegates to base, preserving OthersBase state. | |
| DetailsBase & | operator= (DetailsBase &&other) noexcept |
| Assignment operator delegates to base, preserving OthersBase state. | |
Protected Member Functions inherited from musx::dom::Base | |
| Base (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode) | |
| Constructs the base class. | |
| Base (const Base &)=default | |
| explicit default copy constructor | |
| Base (Base &&) noexcept=default | |
| explicit default move constructor | |
| Base & | operator= (const Base &) |
| no-op copy assignment operator allows subclasses to copy their values. | |
| Base & | operator= (Base &&) noexcept |
| no-op move assignment operator allows subclasses to move their values. | |
Represents chord symbol assignment for a staff and measure.
Cmper1 is the staff (staffId) Cmper and Cmper2 is the measure Cmper. This class is identified by the XML node name "chordAssign".
|
inlineexplicit |
Constructor.
| document | A weak pointer to the associated document. |
| partId | The part that this is for (probably always 0). |
| shareMode | The sharing mode for this ChordAssign (probably always ShareMode::All). |
| staffId | The staff ID for this ChordAssign. |
| meas | The measure ID for this ChordAssign. |
| inci | The 0-based incident. |
| MusxInstance< others::FretboardGroup > musx::dom::details::ChordAssign::getFretboardGroup | ( | ) | const |
Get the others::FretboardGroup instance for this chord assignment. You can use this to get the fret instrument.
nullptr if useFretboardFont is true. | MusxInstance< others::FretboardStyle > musx::dom::details::ChordAssign::getFretboardStyle | ( | ) | const |
Returns the others::FretboardStyle instance for this chord assignment.
nullptr useFretboardFont is true or fbStyleId is zero. | Inci musx::dom::details::ChordAssign::fretboardGroupInci {} |
The inci for retrieving the others::FretboardGroup. (Meaningless if useFretboardFont is true.) The cmper is the suffixId above (when it is non-zero) or one of the hard-coded values 65533 for minor (lowercase) chords and 65534 for major (uppercase) chords. (xml node is <fretInci>)
| Cmper musx::dom::details::ChordAssign::suffixId {} |
The Cmper of the others::ChordSuffixElement instances. Zero means there is no suffix. When useFretboardFont is false, this same Cmper is also used to look up the others::FretboardGroup and related fretboard data. When useFretboardFont is true, only the chord-suffix lookup applies (no fretboard group lookup).
| bool musx::dom::details::ChordAssign::useFretboardFont {} |
When true, this overrides any fretboard group or style and uses the fretboard font instead. (xml node is <useFretFont >) See options::FontOptions::FontType::Fretboard.