25#include <unordered_map>
29#include "ObjectPool.h"
30#include "MusxInstance.h"
48using namespace header;
55 std::unordered_map<StaffCmper, size_t>
staves;
174 int m_maxBlankPages{};
Represents a document object that encapsulates the entire EnigmaXML structure.
Definition Document.h:68
bool iterateEntries(Cmper partId, std::function< bool(const EntryInfoPtr &)> iterator) const
Iterate all entries in the document by staff and then measure. This function wraps MusxInstanceList<o...
Definition Document.cpp:228
const TextsPoolPtr & getTexts() const
Retrieves the const texts pool.
Definition Document.h:98
OthersPoolPtr & getOthers()
Retrieves the others pool.
Definition Document.h:81
const HeaderPtr & getHeader() const
Retrieves the const header.
Definition Document.h:73
MusxInstance< others::Page > calculatePageFromMeasure(Cmper partId, MeasCmper measureId) const
Searches pages to find the page that contains the measure.
Definition Document.cpp:41
const InstrumentInfo & getInstrumentForStaff(StaffCmper staffId) const
Get the instrument info for the given staffId.
Definition Document.cpp:188
int getMaxBlankPages() const
Returns the maximum number of blank pages in any part. This is calculated by factory::DocumentFactory...
Definition Document.h:124
const InstrumentMap & getInstruments() const
Returns the instrument map for this document. It is computed by the factory.
Definition Document.h:127
MusxInstance< others::StaffSystem > calculateSystemFromMeasure(Cmper partId, MeasCmper measureId) const
Searches systems to find the page that contains the measure.
Definition Document.cpp:59
constexpr Cmper calcScrollViewCmper(Cmper partId) const noexcept
Returns the Scroll View Cmper for the given partId.
Definition Document.h:103
const DetailsPoolPtr & getDetails() const
Retrieves the const others pool.
Definition Document.h:88
HeaderPtr & getHeader()
Retrieves the header.
Definition Document.h:71
MusxInstanceList< others::StaffUsed > getScrollViewStaves(Cmper partId) const
Returns the scroll view staves for the given partId.
Definition Document.cpp:36
bool calcHasVaryingSystemStaves(Cmper forPartId) const
Calculate if the current score/part has staves that differ from system to system.
Definition Document.cpp:210
const OptionsPoolPtr & getOptions() const
Retrieves the const options pool.
Definition Document.h:78
TextsPoolPtr & getTexts()
Retrieves the texts pool.
Definition Document.h:96
const OthersPoolPtr & getOthers() const
Retrieves the const others pool.
Definition Document.h:83
InstrumentMap createInstrumentMap(Cmper forPartId) const
Builds an instrument map for the specified linked part ID.
Definition Document.cpp:76
MusicRange calcEntireDocument() const
Calcuate a MusicRange instance for the entire document.
Definition Document.cpp:204
const EntryPoolPtr & getEntries() const
Retrieves the entry others pool.
Definition Document.h:93
DetailsPoolPtr & getDetails()
Retrieves the details pool.
Definition Document.h:86
OptionsPoolPtr & getOptions()
Retrieves the options pool.
Definition Document.h:76
EntryPoolPtr & getEntries()
Retrieves the entry pool.
Definition Document.h:91
Wraps a frame of shared_ptr<const EntryInfo> and an index for per entry access. This class manages ow...
Definition Entries.h:417
Utility class that represents of a range of musical time.
Definition CommonClasses.h:474
Provides optional per-type extension methods for MusxInstanceList.
Definition MusxInstance.h:103
Factory class for creating Document objects from XML.
Definition DocumentFactory.h:38
std::shared_ptr< OthersPool > OthersPoolPtr
Shared OthersPool pointer.
Definition ObjectPool.h:447
int16_t MeasCmper
Enigma meas Cmper (may be negative when not applicable)
Definition Fundamentals.h:64
std::shared_ptr< const T > MusxInstance
Defines the type of a musx instance stored in a pool.
Definition MusxInstance.h:39
std::shared_ptr< DetailsPool > DetailsPoolPtr
Shared DetailsPool pointer.
Definition ObjectPool.h:534
uint16_t Cmper
Enigma "comperator" key type.
Definition Fundamentals.h:55
std::shared_ptr< TextsPool > TextsPoolPtr
Shared OthersPool pointer.
Definition ObjectPool.h:608
std::shared_ptr< OptionsPool > OptionsPoolPtr
Shared OptionsPool pointer.
Definition ObjectPool.h:393
std::weak_ptr< Document > DocumentWeakPtr
Shared weak Document pointer.
Definition BaseClasses.h:57
constexpr Cmper BASE_SYSTEM_ID
Definition Fundamentals.h:80
int16_t StaffCmper
Enigma staff (staffId) Cmper (may be negative when not applicable)
Definition Fundamentals.h:65
std::shared_ptr< EntryPool > EntryPoolPtr
Shared EntryPool pointer.
Definition ObjectPool.h:569
std::unordered_map< StaffCmper, InstrumentInfo > InstrumentMap
A list of instruments, which may be single- or multi-staff.
Definition Document.h:62
object model for musx file (enigmaxml)
Definition BaseClasses.h:36
Represents information about each instrument in the document. This is calculated from the staves,...
Definition Document.h:54
std::vector< StaffCmper > getSequentialStaves() const
Returns the staffIds in sequence as they appear in Scroll View in the score.
Definition Document.cpp:241
Cmper multistaffGroupId
The others::MultiStaffInstrumentGroup that defines the instrument. (May be zero.)
Definition Document.h:57
Cmper staffGroupId
The details::StaffGroup that visually represents the instrument. (May be zero.)
Definition Document.h:56
std::unordered_map< StaffCmper, size_t > staves
List of each staffId with its sequence index from top to bottom.
Definition Document.h:55