Finale PDK Framework 0.77
Power Up Your Finale Music Software
Loading...
Searching...
No Matches
FCEntryMetrics Class Reference

Class that encapsulate the entry metrics data. More...

#include <ff_base.h>

+ Inheritance diagram for FCEntryMetrics:

Public Member Functions

const char * ClassName () const override
 Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class.
 
 FCEntryMetrics ()
 The constructor. Defaults to unloaded. Metrics must be loaded with Load.
 
bool Load (const FCNoteEntry *pEntry)
 Loads the entry metrics data.
 
int CalcLeftmostNotePosition ()
 Calculates the left-most note start position, in page coordinates (from the left border of the page).
 
int GetAttachmentCount () const
 Returns the number of attachments that have info within the metrics data.
 
bool GetAttachment (__FCBaseData *pBaseDataObject, fourbyte the_id, EAttachment *pAttachment, bool stop=false)
 Fills a buffer with the attachment data for an note-attached element.
 
int GetTopPosition () const
 Returns the highest position for the noteheads or stem.
 
int GetBottomPosition () const
 Returns the lowest position for the noteheads or stem.
 
int GetStemBottomPosition () const
 Returns the bottom position for the stem.
 
int GetStemTopPosition () const
 Returns the bottom position for the stem.
 
int GetLeftPosition () const
 Returns the left-side position for the noteheads or stem.
 
int GetRightPosition () const
 Returns the right-side position for the noteheads or stem.
 
int GetStemLeftPosition () const
 Returns the left-side position for the stem.
 
int GetStemRightPosition () const
 Returns the right-side position for the stem.
 
int GetLastDotPosition () const
 Returns the horizontal position of rightmost augmentation dot.
 
int GetFirstAccidentalPosition () const
 Returns the the left most edge of the accidental rectangle for all accidentals on the entry.
 
FLAG_32 GetEntryFlags ()
 Return the metrics entry flags.
 
ENoteMetrics * FindNoteMetrics (twobyte noteID)
 Finds the note metrics for a specific note.
 
ENoteMetrics2014 * FindNoteMetrics2014 (twobyte noteID)
 Returns the Finale 2014-specific metrics for a note.
 
int GetNoteCount () const
 Returns the number of notes that the metrics data has information about.
 
int GetNoteLeftPosition (int index) const
 Returns the note left position (from the left border of the page) for a note in the metrics note array.
 
int GetNoteWidth (int index) const
 Returns the note width for a note in the metrics note array.
 
int GetNoteCenterVerticalPos (int index) const
 Returns the note's centered vertical position (from the bottom border of the page) for a note in the metrics note array.
 
eNoteID GetNoteID (int index) const
 Returns the note ID for a note in the metrics note array.
 
JWERECT * GetStemRect ()
 Returns a pointer to the stem rectangle in the metrics data.
 
JWERECT * GetNoteheadRect ()
 Returns a pointer to the notehead rectangle in the metrics data.
 
void FreeMetrics ()
 Tells Finale to clear the metrics data. This can be of use for Lua scripting, where the GC doesn't provide a predictable way to clean the used data.
 
void DebugDump () override
 Outputs the class data/information for debugging purposes.
 
- Public Member Functions inherited from __FCBase
virtual const PDKFRAMEWORK_CLASSID GetClassID () const
 Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has problems to resolve the true classes of inherited objects.
 
virtual ~__FCBase ()
 Virtual destructor, so all inherited classes get the virtual destructor.
 
void DebugMsgInt (const char *pszPrefixText, int i)
 Creates a simple Message Box for debug purposes. The text appears with the extra digit (in decimal presentation) appearing afterwards.
 
void DebugMsgHex (const char *pszPrefixText, int i)
 Creates a simple Message Box for debug purposes. The text appears with the extra digit (as a hexadecimal number) appearing afterwards.
 
void DebugMsgString (const char *pszPrefixText, const char *thestring)
 Creates a simple Message Box for debug purposes. The text appears with the extra string appearing afterwards.
 
void DebugMsg (const char *pszMsg)
 Creates a simple Message Box for debug purposes with just one text string.
 
void DebugOutMenuInfo (FCUI *pUI, int menuixd_horiz, int menuixd_vert) const
 Outputs the menu command info for debugging purposes.
 
int DebugOutFormat (const char *fmt,...)
 Outputs debug text using C style "printf" syntax.
 
virtual void DebugDataDump ()
 Outputs a memory dump of the data block in the object for debugging purposes.
 
virtual void DebugDataByteArrayDump ()
 Outputs a memory dump of the data block in the object for debugging purposes, as a C++ byte array.
 
void Set16BitFlag (FLAG_16 *flag, FLAG_16 flagbits, bool state)
 Sets a 16 bit flag.
 
void Set32BitFlag (FLAG_32 *flag, FLAG_32 flagbits, bool state)
 Sets/resets a 32 bit flag, by using a bit mask.
 
bool GetBitFlag (FLAG_32 flag, FLAG_32 flagbits) const
 Gets a state from flag bits. Returns true if any bit in the mask is set.
 
int GetBitCount (FLAG_32 flag)
 Returns the total number of set bits in a 32-bit unsigned int.
 
void SetSpecific32Bit (FLAG_32 *flag, int bitnumber, bool state)
 Sets/resets a single bit in a 32 bit flag, by specifying one specific bit.
 
void SetUserData (void *pData)
 Sets the user data attached to the instance of an object.
 
void SetUserData2 (void *pData)
 Sets the additional user data attached to the instance of an object.
 
void * GetUserData () const
 Gets the user data attached to the instance of an object.
 
void * GetUserData2 () const
 Gets the additional user data attached to the instance of an object.
 
virtual bool IsIdentical (const __FCBase *pCompareObject) const
 Returns true if the data in the passed object is considered to be identical to the current object, otherwise false.
 
void StoreXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper function to store FCString objects in the XML file.
 
void StoreXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int value)
 Helper function to store integer objects in the XML file.
 
void StoreXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool value)
 Helper function to store boolean objects in the XML file.
 
void StoreXML_StringAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, FCString *pStringValue)
 Helper function to store FCString objects in the XML file, as an attribute to a node.
 
void StoreXML_IntegerAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, int value)
 Helper function to store integer objects in the XML file, as an attribute to a node.
 
void StoreXML_BoolAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, bool value)
 Helper function to store boolean objects in the XML file, as an attribute to a node.
 
void StoreXML_FloatAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, float value)
 Helper function to store floating point objects in the XML file, as an attribute to a node.
 
virtual void StoreToXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to store an object's data.
 
bool ReadXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper method to read FCString objects from the XML file.
 
bool ReadXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int *pValue)
 Helper method to read integer objects from the XML file.
 
bool ReadXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool *pValue)
 Helper method to read boolean objects from the XML file.
 
bool ReadXML_StringAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, FCString *pStringValue)
 Helper method to read FCString objects from the XML file, as an attribute to a node.
 
bool ReadXML_IntegerAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, int *pValue)
 Helper method to read integer objects from the XML file, as an attribute to a node.
 
bool ReadXML_BoolAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, bool *pValue)
 Helper method to read boolean objects from the XML file, as an attribute to a node.
 
bool ReadXML_FloatAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, float *pValue)
 Helper method to read floating point objects from the XML file, as an attribute to a node.
 
virtual bool ReadFromXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to read object data.
 

Static Public Member Functions

static void MarkMetricsForRebuild ()
 Static method that sets the refresh flag, so the next Load call will rebuild the metrics data.
 
- Static Public Member Functions inherited from __FCBase
static void DebugOutPtr (const char *pszPrefixText, void *ptr)
 Static method that outputs a line for debugging purposes. The prefix text appears with the extra ptr (in hexadeximal representation) appearing afterwards.
 
static void DebugOutInt (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in decimal presentation) appearing afterwards.
 
static void DebugOutFloat (const char *pszPrefixText, double f)
 Static method that outputs a line for debugging purposes. The text appears with the extra float value appearing afterwards.
 
static void DebugOutTag (const char *pszPrefixText, EXTAG extag)
 Static method that outputs a line for debugging purposes. The text appears with the EXTAG (in text) appearing afterwards.
 
static void DebugOutHex (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in hexadecimal presentation) appearing afterwards.
 
static void DebugOutBin (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in binary presentation) appearing afterwards.
 
static void DebugOutString (const char *pszPrefixText, const char *thestring)
 Static method that outputs a line for debugging purposes (C string version). The text appears with the extra string appearing afterwards.
 
static void DebugOutString (const char *pszPrefixText, FCString *pString)
 Static method that outputs a line for debugging purposes (FCString version). The text appears with the extra string appearing afterwards.
 
static void DebugOutBool (const char *pszPrefixText, bool state)
 Static method that outputs a line for debugging purposes. The boolean state appears afterwards as either "TRUE" or "FALSE".
 
static void DebugOutBlock (const void *pBuffer, int startoffset, int size)
 Static method that outputs a memory block for debugging purposes. Eight bytes per line will appear (as hex digits) until the whole memory block is dumped.
 
static void DebugOutByteArrayBlock (const void *pBuffer, int startoffset, int size)
 Static method that outputs a memory block for debugging purposes. Eight bytes per line will appear (as hex digits) as a C++ onebyte array, until the whole memory block is dumped.
 
static void DebugOut (const char *pszLine)
 Static method to output a line of text for debugging purposes.
 

Additional Inherited Members

- Public Types inherited from __FCBase
enum  PDKFRAMEWORK_CLASSID {
  FCID_UNKNOWN = 0 , FCID_ACCIDENTALMOD , FCID_ACTIVELYRIC , FCID_ALLOTMENT ,
  FCID_ARTICULATION , FCID_ARTICULATIONDEF , FCID_BACKWARDREPEAT , FCID_BASELINE ,
  FCID_BEAMMOD , FCID_BEATCHARTELEMENT , FCID_BOOKMARK , FCID_BROKENBEAMMOD ,
  FCID_CATEGORYDEF , FCID_CELLCLEFCHANGE , FCID_CELLFRAMEHOLD , FCID_CELLGRAPHIC ,
  FCID_CELLTEXT , FCID_CENTERSMARTSHAPE , FCID_CHORD , FCID_CHORDPREFS ,
  FCID_CHORDSUFFIXELEMENT , FCID_CHORUSSYLLABLE , FCID_CLEFDEF , FCID_COMPOSITETIMESIGBOTTOMELEMENT ,
  FCID_COMPOSITETIMESIGTOPELEMENT , FCID_CROSSSTAFFMOD , FCID_CUSTOMSMARTLINEDEF , FCID_CUSTOMSTEMMOD ,
  FCID_DISTANCEPREFS , FCID_DOTMOD , FCID_ENCLOSURE , FCID_ENDINGREPEAT ,
  FCID_ENIGMATEXTSTYLE , FCID_ENTRYALTERMOD , FCID_EXECUTABLESHAPEDEF , FCID_EXPRESSION ,
  FCID_FONTINFO , FCID_FONTPREFS , FCID_FREEZESYSTEM , FCID_FRETBOARDSTYLEDEF ,
  FCID_FRETBOARDSTYLEDEFS , FCID_FRETBOARDGROUPDEF , FCID_FRETBOARDGROUPDEFS , FCID_FRETINSTRUMENTDEF ,
  FCID_GENERALPREFS , FCID_GRIDSGUIDESPREFS , FCID_GROUP , FCID_GROUPNAMEPOSITIONPREFS ,
  FCID_HUMANPLAYBACKPREFS , FCID_INDEPENDENTCELLDETAIL , FCID_INSTRUMENTDEF , FCID_INSTRUMENTPLAYBACKDATA ,
  FCID_KEYMODEDEF , FCID_KEYSIGNATURE , FCID_LAYERPREFS , FCID_LYRICSBASELINE ,
  FCID_LYRICSPREFS , FCID_MEASURE , FCID_MEASURENUMBERREGION , FCID_METATOOLASSIGNMENT ,
  FCID_MIDIEXPRESSION , FCID_MISCDOCPREFS , FCID_MULTIMEASUREREST , FCID_MULTIMEASURERESTPREFS ,
  FCID_MULTISTAFFINSTRUMENT , FCID_MULTISTAFFINSTRUMENTS , FCID_MUSICCHARACTERPREFS , FCID_MUSICSPACINGPREFS ,
  FCID_NUMBER , FCID_NOTEHEADMOD , FCID_OTHERINCI , FCID_PERCUSSIONLAYOUTNOTE ,
  FCID_PERCUSSIONSTAFF , FCID_PERFORMANCEMOD , FCID_PAGE , FCID_PAGEFORMATPREFS ,
  FCID_PAGEGRAPHIC , FCID_PAGETEXT , FCID_PART , FCID_PARTEXTRACTPREFS ,
  FCID_PARTSCOPEPREFS , FCID_PARTSTAFFVOICING , FCID_PERCUSSIONNOTEMOD , FCID_PIANOBRACEPREFS ,
  FCID_PLAYBACKPREFS , FCID_RAWTEXT , FCID_REPEATPREFS , FCID_SECONDARYBEAMBREAKMOD ,
  FCID_BEAMEXTENSIONMOD , FCID_SECTIONSYLLABLE , FCID_SEPARATEMEASURENUMBER , FCID_SEPARATEPLACEMENT ,
  FCID_SHAPEDEF , FCID_SHAPEEXPRESSIONDEF , FCID_SLURCONTOURPREFS , FCID_SIZEPREFS ,
  FCID_SMARTSHAPE , FCID_SMARTSHAPEENTRYMARK , FCID_SMARTSHAPEMEASUREMARK , FCID_SMARTSHAPEPREFS ,
  FCID_STAFF , FCID_STAFFLIST , FCID_STAFFNAMEPOSITION , FCID_STAFFNAMEPOSITIONPREFS ,
  FCID_STAFFSTYLEASSIGN , FCID_STAFFSTYLEDEF , FCID_STAFFSYSTEM , FCID_STEMCONNECTIONTABLE ,
  FCID_STEMMOD , FCID_STRING , FCID_SYLLABLEENTRYMOD , FCID_SYSTEMSTAFF ,
  FCID_TABLATURENOTEMOD , FCID_TEMPOELEMENT , FCID_TEXTBLOCK , FCID_TEXTEXPRESSIONDEF ,
  FCID_TEXTREPEAT , FCID_TEXTREPEATDEF , FCID_TIEMOD , FCID_TIEPREFS ,
  FCID_TIECONTOURPREFS , FCID_TIEPLACEMENTPREFS , FCID_TIMESIGNATURE , FCID_TUPLET ,
  FCID_TUPLETPREFS , FCID_VERSESYLLABLE
}
 Constants for the GetClassID method. More...
 
enum  MEASUREMENTUNITS {
  MEASUREMENTUNIT_DEFAULT = UNIT_DEFAULT , MEASUREMENTUNIT_EVPUS = UNIT_EVPUS , MEASUREMENTUNIT_INCHES = UNIT_INCHES , MEASUREMENTUNIT_CENTIMETERS = UNIT_CENTS ,
  MEASUREMENTUNIT_POINTS = UNIT_POINTS , MEASUREMENTUNIT_PICAS = UNIT_PICAS , MEASUREMENTUNIT_SPACES = UNIT_SPACES , MEASUREMENTUNIT_MILLIMETERS = 100
}
 Constants for Finale's standard measurement units. More...
 
- Protected Member Functions inherited from __FCBase
 __FCBase ()
 The constructor.
 

Detailed Description

Class that encapsulate the entry metrics data.

Supports <close> in Lua 5.4 (FreeMetrics).

This class requires PDK_FRAMEWORK_ENTRIES to be defined.

Constructor & Destructor Documentation

◆ FCEntryMetrics()

FCEntryMetrics::FCEntryMetrics ( )

The constructor. Defaults to unloaded. Metrics must be loaded with Load.

Lua-supported.

Member Function Documentation

◆ CalcLeftmostNotePosition()

int FCEntryMetrics::CalcLeftmostNotePosition ( )

Calculates the left-most note start position, in page coordinates (from the left border of the page).

The coordinates takes screen resizing into account.

Returns
The left coordinate for the left-most note in the note entry in page coordinates. 0 if it's a rest or on error.

◆ ClassName()

const char * FCEntryMetrics::ClassName ( ) const
inlineoverridevirtual

Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class.

Lua-supported.

Implements __FCBase.

◆ DebugDump()

void FCEntryMetrics::DebugDump ( )
inlineoverridevirtual

Outputs the class data/information for debugging purposes.

Accessible if PDK_FRAMEWORK_DEBUG is defined.

When child class inherit this method to output the contents of its own members, it should call the parent before providing its own output.

Reimplemented from __FCBase.

◆ FreeMetrics()

void FCEntryMetrics::FreeMetrics ( )

Tells Finale to clear the metrics data. This can be of use for Lua scripting, where the GC doesn't provide a predictable way to clean the used data.

Use this method if loading new metrics data becomes an issue. Starting with 0.67 of the Lua plugin, this function can be invoked automatically with the <close> keyword, as follows:

local metrics <close> = finale.FCEntryMetrics()

Lua 5.4 then calls FreeMetrics whenever the metrics variable goes out of scope, without waiting for garbage collection and regardless of the exit path out of the code block.

Lua-supported.

◆ GetAttachment()

bool FCEntryMetrics::GetAttachment ( __FCBaseData * pBaseDataObject,
fourbyte the_id,
EAttachment * pAttachment,
bool stop = false )
inline

Fills a buffer with the attachment data for an note-attached element.

Parameters
pBaseDataObjectThe object that contains the tag.
the_idThe data-related ID, usually a CMPER.
pAttachmentPointer to the attachment buffer.
stopIf true, the attachment must have the "stop bit" set. (Since a shape that span a region in the same measure might have 2 attachments for the same object.)
Returns
true if the data was found in the measure metrics.

◆ GetAttachmentCount()

int FCEntryMetrics::GetAttachmentCount ( ) const
inline

Returns the number of attachments that have info within the metrics data.

Lua-supported (also as a read-only property).

◆ GetBottomPosition()

int FCEntryMetrics::GetBottomPosition ( ) const
inline

Returns the lowest position for the noteheads or stem.

Lua-supported (also as a read-only property).

◆ GetFirstAccidentalPosition()

int FCEntryMetrics::GetFirstAccidentalPosition ( ) const
inline

Returns the the left most edge of the accidental rectangle for all accidentals on the entry.

Lua-supported (also as a read-only property).

◆ GetLastDotPosition()

int FCEntryMetrics::GetLastDotPosition ( ) const
inline

Returns the horizontal position of rightmost augmentation dot.

Lua-supported (also as a read-only property).

◆ GetLeftPosition()

int FCEntryMetrics::GetLeftPosition ( ) const
inline

Returns the left-side position for the noteheads or stem.

Lua-supported (also as a read-only property) (0.58).

◆ GetNoteCenterVerticalPos()

int FCEntryMetrics::GetNoteCenterVerticalPos ( int index) const

Returns the note's centered vertical position (from the bottom border of the page) for a note in the metrics note array.

Lua-supported (0.58).

The coordinates takes screen resizing into account.

Parameters
index0-based index to the note info within the entry metrics.
Returns
If the index is out of range, 0 is returned.

◆ GetNoteCount()

int FCEntryMetrics::GetNoteCount ( ) const
inline

Returns the number of notes that the metrics data has information about.

Lua-supported (also as a read-only property).

◆ GetNoteheadRect()

JWERECT * FCEntryMetrics::GetNoteheadRect ( )
inline

Returns a pointer to the notehead rectangle in the metrics data.

Returns
NULL if the metrics data hasn't been loaded.

◆ GetNoteID()

eNoteID FCEntryMetrics::GetNoteID ( int index) const

Returns the note ID for a note in the metrics note array.

Lua-supported (0.58).

Parameters
index0-based index to the note info within the entry metrics.
Returns
If the index is out of range, 0 is returned.

◆ GetNoteLeftPosition()

int FCEntryMetrics::GetNoteLeftPosition ( int index) const

Returns the note left position (from the left border of the page) for a note in the metrics note array.

Lua-supported (0.55)

The coordinates takes screen resizing into account.

Parameters
index0-based index to the note info within the entry metrics.
Returns
If the index is out of range, 0 is returned.

◆ GetNoteWidth()

int FCEntryMetrics::GetNoteWidth ( int index) const

Returns the note width for a note in the metrics note array.

Lua-supported.

Parameters
index0-based index to the note info within the entry metrics.
Returns
If the index is out of range, 0 is returned.

◆ GetRightPosition()

int FCEntryMetrics::GetRightPosition ( ) const
inline

Returns the right-side position for the noteheads or stem.

Lua-supported (also as a read-only property) (0.58).

◆ GetStemBottomPosition()

int FCEntryMetrics::GetStemBottomPosition ( ) const
inline

Returns the bottom position for the stem.

Lua-supported (also as a read-only property).

◆ GetStemLeftPosition()

int FCEntryMetrics::GetStemLeftPosition ( ) const
inline

Returns the left-side position for the stem.

Lua-supported (also as a read-only property).

◆ GetStemRect()

JWERECT * FCEntryMetrics::GetStemRect ( )
inline

Returns a pointer to the stem rectangle in the metrics data.

Returns
NULL if the metrics data hasn't been loaded.

◆ GetStemRightPosition()

int FCEntryMetrics::GetStemRightPosition ( ) const
inline

Returns the right-side position for the stem.

Lua-supported (also as a read-only property).

◆ GetStemTopPosition()

int FCEntryMetrics::GetStemTopPosition ( ) const
inline

Returns the bottom position for the stem.

Lua-supported (also as a read-only property).

◆ GetTopPosition()

int FCEntryMetrics::GetTopPosition ( ) const
inline

Returns the highest position for the noteheads or stem.

Lua-supported (also as a read-only property).

◆ Load()

bool FCEntryMetrics::Load ( const FCNoteEntry * pEntry)

Loads the entry metrics data.

If the static flag is set to refresh the metrics data, the metrics will be rebuilt. After the load, the flag will be cleared.

Lua-supported.

◆ MarkMetricsForRebuild()

static void FCEntryMetrics::MarkMetricsForRebuild ( )
inlinestatic

Static method that sets the refresh flag, so the next Load call will rebuild the metrics data.

Lua-supported.