MUSX Document Model
|
Represents a composite of an underlying Staff instance with any applicable StaffStyle instances applied. More...
#include <Others.h>
Static Public Member Functions | |
static std::shared_ptr< StaffComposite > | createCurrent (const DocumentPtr &document, Cmper partId, InstCmper staffId, MeasCmper measId, Edu eduPosition) |
Calculates the current staff at the specified metric position by applying all relevant staff styles,. | |
![]() | |
static std::vector< std::shared_ptr< StaffStyle > > | findAllOverlappingStyles (const DocumentPtr &document, Cmper partId, InstCmper staffId, MeasCmper measId, Edu eduPosition) |
Finds a subset from all StaffStyle instances that overlap with the specified metric position on a given staff in a give linked part or score. | |
static const xml::XmlElementArray< StaffStyle > & | xmlMappingArray () |
Required for musx::factory::FieldPopulator. | |
![]() | |
static void | calcAutoNumberValues (const DocumentPtr &document) |
Get the auto-numbering value for this staff, if applicable. | |
static ClefIndex | calcFirstClefIndex (const DocumentPtr &document, Cmper partId, InstCmper staffCmper) |
Returns the first clef in the specified staff in the document. | |
static const xml::XmlElementArray< Staff > & | xmlMappingArray () |
Required for musx::factory::FieldPopulator. | |
Additional Inherited Members | |
![]() | |
enum class | AutoNumberingStyle { ArabicSuffix , RomanSuffix , OrdinalPrefix , AlphaSuffix , ArabicPrefix } |
Enum for auto-numbering style. Auto-numbering is based on instUuid. More... | |
enum class | StemDirection { Default , AlwaysUp , AlwaysDown } |
Enum for staff-level stem direction override. More... | |
![]() | |
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. | |
![]() | |
StaffStyle (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper) | |
Constructor function. | |
bool | requireAllFields () const override |
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class. | |
void | integrityCheck () override |
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. | |
![]() | |
Staff (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper) | |
Constructor function. | |
std::string | getFullName (util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii) const |
Returns the full staff name without Enigma tags. | |
std::string | getAbbreviatedName (util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii) const |
Returns the abbreviated staff name without Enigma tags. | |
std::shared_ptr< MultiStaffInstrumentGroup > | getMultiStaffInstGroup () const |
Returns the MultiStaffInstrumentGroup for this staff if it is part of one. Otherwise nullptr. | |
std::string | getFullInstrumentName (util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii, bool preferStaffName=false) const |
Returns the full instrument name for this staff without Enigma tags and with autonumbering (if any) | |
std::string | getAbbreviatedInstrumentName (util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii, bool preferStaffName=false) const |
Returns the abbreviated instrument name for this staff without Enigma tags and with autonumbering (if any) | |
bool | showNamesForPart (Cmper partId) const |
Returns if names should be shown for the specified part. | |
std::string | addAutoNumbering (const std::string &plainName) const |
Add auto numbering as a prefix or suffix, if needed. | |
ClefIndex | calcClefIndexAt (MeasCmper measureId, Edu position) const |
Returns the clef in this staff at the specified location. | |
ClefIndex | calcFirstClefIndex () const |
Returns the first clef in this staff. | |
int | calcMiddleStaffPosition () const |
Returns the middle staff position. For staves with even numbers of lines, it is the middle space. | |
![]() | |
Cmper | getCmper () const |
Gets the cmper key value. | |
std::optional< Inci > | getInci () const |
Gets the optional array index (inci ). | |
![]() | |
virtual | ~Base () noexcept(false)=default |
Virtual destructor for polymorphic behavior. | |
DocumentPtr | getDocument () const |
Gets a reference to the Document. | |
Cmper | getPartId () const |
Gets the partId for this instance (or 0 for score) | |
std::shared_ptr< others::PartDefinition > | getPartDefinition () const |
Gets the others::PartDefinition corresponding to getPartId. | |
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. | |
![]() | |
std::string | styleName |
name of staff style | |
bool | addToMenu |
add this staff style to the context menu for staff styles | |
std::shared_ptr< Masks > | masks |
![]() | |
ClefIndex | defaultClef {} |
Index of default clef for the staff. | |
ClefIndex | transposedClef {} |
Index of transposed clef for the staff. Only used if Transposition::setToClef is true. | |
std::optional< int > | staffLines {} |
Number of lines in the staff (if no custom staff) | |
std::optional< std::vector< int > > | customStaff |
A list of stafflines from 0..26 where a standard 5-line staff is values 11, 12, 13, 14, 15. | |
Evpu | lineSpace {} |
Distance between staff lines. | |
std::string | instUuid |
Unique identifier for the type of instrument. | |
bool | floatKeys {} |
"Independent Key Signature" | |
bool | floatTime {} |
"Independent Time Signature" | |
bool | hasStyles {} |
Indicates that this staff has staff style assignments. | |
bool | showNameInParts {} |
"Display Staff Name in Parts" (xml node is <showNameParts> ) | |
std::shared_ptr< Transposition > | transposition |
Transposition details, if non-null. | |
bool | hideNameInScore {} |
Inverse of "Display Staff Name in Score" (xml node is <hideStfNameInScore> ) | |
Evpu | topBarlineOffset {} |
Offset for the top barline. | |
Evpu | botBarlineOffset {} |
Offset for the bottom barline. | |
Evpu | dwRestOffset {} |
Offset for downstem rests. | |
Evpu | wRestOffset {} |
Offset for whole rests. | |
Evpu | hRestOffset {} |
Offset for half rests. | |
Evpu | otherRestOffset {} |
Offset for other rests. | |
int | stemReversal {} |
Stem reversal value. | |
Cmper | fullNameTextId {} |
Full name TextBlock ID. (xml node is <fullName> ) | |
Cmper | abbrvNameTextId {} |
Abbreviated name TextBlock ID. (xml node is <abbrvName> ) | |
Evpu | botRepeatDotOff {} |
Offset for bottom repeat dots. | |
Evpu | topRepeatDotOff {} |
Offset for top repeat dots. | |
Evpu | vertTabNumOff {} |
Vertical offset for tab number. | |
bool | hideStems {} |
Inverse of "Display Stems". | |
bool | hideBeams {} |
Inverse of "Show Beams". | |
StemDirection | stemDirection {} |
stem direction for staff (xml node is <stemDir> ) | |
AutoNumberingStyle | autoNumbering {} |
Autonumbering style if useAutoNumbering is true. (xml node is <autoNum> ) | |
bool | useAutoNumbering {} |
Whether names should be auto-numbered. (xml node is <useAutoNum> ) | |
bool | hideKeySigsShowAccis {} |
"Hide Key Signature and Show Accidentals" transposition option. | |
Cmper | multiStaffInstId {} |
std::optional< int > | autoNumberValue |
Calculated autonumbering value. It is computed by calcAutoNumberValues. | |
![]() | |
static constexpr std::string_view | XmlNodeName = "staffStyle" |
The XML node name for this type. | |
![]() | |
static constexpr std::string_view | XmlNodeName = "staffSpec" |
The XML node name for this type. | |
![]() | |
StaffStyle (const std::shared_ptr< Staff > &staff) | |
protected constructor for StaffComposite | |
![]() | |
OthersBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, std::optional< Inci > inci=std::nullopt) | |
Constructs an OthersBase object. | |
![]() | |
Base (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode) | |
Constructs the base class and enforces the static constexpr XmlNodeName. | |
Base & | operator= (const Base &) |
assignment constructor: m_unlinkedNodes is intentionally omitted | |
Represents a composite of an underlying Staff instance with any applicable StaffStyle instances applied.
Instances of StaffComposite are not part of the document structure and cannot be created directly. Use createCurrent to create an instance.
|
static |
Calculates the current staff at the specified metric position by applying all relevant staff styles,.
Note that the Finale app has logic to assure that no two assigments modify the same staff properties at the same metric position. If this occurs despite Finale's code, the last one processed is the one that takes effect.
document | The document to search |
partId | The ID of the linked part or score |
staffId | The Staff cmper of the base staff for which to apply staff styles |
measId | The measure location to search |
eduPosition | The Edu position within the measure to search |
staffId
is not valid.