|
MUSX Document Model
|
FretboardDiagram diagram for chord symbols. More...
#include <Details.h>
Inheritance diagram for musx::dom::details::FretboardDiagram:Classes | |
| class | Barre |
| Represents a barre (spanning multiple strings). More... | |
| class | Cell |
| Represents a single fretboard cell (string/fret position). More... | |
Public Types | |
| enum class | Shape { None , Closed , Open , Muted , Custom } |
| Shape type for a fretboard cell. More... | |
Public Types inherited from musx::dom::EnigmaBase | |
| 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 | |
| FretboardDiagram (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper1, Cmper cmper2) | |
| Constructor function. | |
| void | integrityCheck (const std::shared_ptr< EnigmaBase > &ptrToThis) override |
| Performs a final consistency check after population. | |
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::EnigmaBase | |
| 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 bool | requireAllFields () const |
| Returns true if all fields are required for valid input. | |
Public Member Functions inherited from musx::dom::DocumentElement | |
| virtual | ~DocumentElement () noexcept(false)=default |
| Virtual destructor for polymorphic behavior. | |
| DocumentPtr | getDocument () const |
| Gets a reference to the Document. | |
| Cmper | getPartId () const |
| Gets the part id associated with this instance. | |
Static Public Member Functions | |
| static const xml::XmlElementArray< FretboardDiagram > & | xmlMappingArray () |
| Required for musx::factory::FieldPopulator. | |
Public Attributes | |
| int | numFrets {} |
| Number of frets. | |
| int | fretboardNum {} |
FretboardDiagram number: the starting fret of the fretboard diagram (xml node <fretNum>). | |
| bool | lock {} |
Lock flag (xml node <lock>). | |
| bool | showNum {} |
| Show fretboard number. | |
| int | numFretCells {} |
Number of fret cells (xml node <numFretCells>). | |
| int | numFretBarres {} |
Number of fret barres (xml node <numFretBarres>). | |
| std::vector< std::shared_ptr< Cell > > | cells |
| Array of fretboard cells. | |
| std::vector< std::shared_ptr< Barre > > | barres |
| Array of fretboard barres. | |
Static Public Attributes | |
| static constexpr std::string_view | XmlNodeName = "fretboard" |
| 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::EnigmaBase | |
| EnigmaBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode) | |
| Constructs the base class. | |
| EnigmaBase (const EnigmaBase &)=default | |
| explicit default copy constructor | |
| EnigmaBase (EnigmaBase &&) noexcept=default | |
| explicit default move constructor | |
| EnigmaBase & | operator= (const EnigmaBase &) |
| no-op copy assignment operator allows subclasses to copy their values. | |
| EnigmaBase & | operator= (EnigmaBase &&) noexcept |
| no-op move assignment operator allows subclasses to move their values. | |
Protected Member Functions inherited from musx::dom::DocumentElement | |
| DocumentElement (const DocumentWeakPtr &document, Cmper partId) | |
| Constructs the document element. | |
| DocumentElement (const DocumentElement &)=default | |
| explicit default copy constructor | |
| DocumentElement (DocumentElement &&) noexcept=default | |
| explicit default move constructor | |
| DocumentElement & | operator= (const DocumentElement &) |
| no-op copy assignment operator allows subclasses to copy their values. | |
| DocumentElement & | operator= (DocumentElement &&) noexcept |
| no-op move assignment operator allows subclasses to move their values. | |
FretboardDiagram diagram for chord symbols.
cmper1: Corresponds to the cmper for others::FretboardGroup.
cmper2: Calculated sequence number. The inci from others::FretboardGroup multiplied by sixteen and then a value from (0..11) added. These correspond to the twelve pitch classes A, A#, B, ... G#.
Contains fret count, display options, and a collection of individual string/fret cells and optional barres.
|
strong |
Shape type for a fretboard cell.
|
inlineoverridevirtual |
Performs a final consistency check after population.
Reimplemented from musx::dom::EnigmaBase.