Finale PDK Framework 0.77
Power Up Your Finale Music Software
Loading...
Searching...
No Matches
__FCBaseData Class Referenceabstract

Base class for all data-related classes (that handles Finale data). More...

#include <ff_base.h>

+ Inheritance diagram for __FCBaseData:

Public Member Functions

const PDKFRAMEWORK_CLASSID GetClassID () const override=0
 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.
 
EDOCID GetConnectedDocID () const
 Returns the document ID that was connected to the last load/save of the data.
 
bool VerifyConnectedDocID ()
 Checks that the stored document ID for the data object matches the current document's ID.
 
virtual EXTAG Tag () const =0
 The Enigma tag for the derived class.
 
virtual EVERSION EnigmaVersion () const
 The Enigma version for save/load/create/delete operations.
 
virtual int DataSizeLoad () const =0
 Returns the data size for the data structure that should be loaded.
 
virtual int DataSizeSave () const
 Returns the data size for the data structure that should be saved or created.
 
const char * ClassName () const override
 Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class.
 
void _CloneFrom (__FCBaseData *pSource)
 For internal use only. Copies object data (except data block) from another object.
 
virtual void CloneMemoryFrom (__FCBaseData *pSource)
 
const EDataID * _GetDataID ()
 Intended ONLY for the _CloneFrom implementation.
 
int _GetLoadedSize () const
 Intended ONLY for the _CloneFrom implementation.
 
const void * GetDataBlock ()
 Intended ONLY for the _CloneFrom implementation.
 
EXTAG GetCustomTag () const
 Returns the custom Enigma tag, if any.
 
void SetCustomTag (EXTAG tag)
 Sets the custom Enigma tag, for classes that support multiple Enigma tags.
 
 __FCBaseData ()
 The constructor.
 
virtual ~__FCBaseData ()
 Virtual destructor.
 
virtual bool Save ()
 Saves the currently loaded to its current location.
 
virtual bool Reload ()
 Refreshes the data for the object, to synch the data with Finale's current data.
 
virtual bool DeleteData ()
 Deletes the associated data from Finale's database. Be careful when deleting multiple objects.
 
virtual bool DeepDeleteData ()
 Deletes data and all data that's connected to the object.
 
virtual bool LoadFirst ()=0
 Loads the very first element in the database, if any.
 
virtual bool LoadLast ()
 Loads the very last element in the database, if any.
 
virtual bool LoadNext ()
 Loads the next element from the database, if any.
 
virtual bool LoadPrevious ()
 Loads the previous element in the database, if any.
 
bool RelinkToCurrentView ()
 Relinks the contents in the current view so that the score and part(s) match.
 
bool RelinkToScore ()
 Relinks all parts to the contents of the score.
 
__FCBaseDataCreateClone ()
 Creates an identical copy of an object.
 
void DebugDump () override
 Outputs the class data/information for debugging purposes.
 
void DebugDataDump () override
 Outputs a memory dump of the data block in the object for debugging purposes.
 
void DebugDataByteArrayDump () override
 Outputs a memory dump of the data block in the object for debugging purposes, as a C++ byte array.
 
void DebugDataOffsetDump (int offset, int size)
 For debug mode only. Dumps a data memory block at a specific offset and with a specific size.
 
FCNumbersCreateRawDataDump ()
 Creates a byte collection with the raw loaded data block for the object (if the object type supports single data blocks). This method is only intended for debug purposes.
 
- Public Member Functions inherited from __FCBase
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.
 
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.
 

Protected Member Functions

virtual void * Allocate ()=0
 
virtual void Deallocate ()
 
virtual bool IsDynamicSize ()
 
bool LoadDataBlock ()
 Loads the data. If the object is of dynamic size, the old memory block is freed and a new is allocated.
 
void ClearData ()
 
virtual twobyte CalcLastInci ()
 For internal use only!
 
virtual __FCBaseDataCreateObject ()=0
 Creates a new instance of the object.
 
bool DataIsLoaded () const
 Returns true is any data has been loaded into the object.
 
void _TagDocumentID ()
 For internal use only.
 
- Protected Member Functions inherited from __FCBase
 __FCBase ()
 The constructor.
 

Protected Attributes

EDOCID _connecteddocID
 The "connected" document ID., which is the document the where the document was loaded (or last saved). This is for a mechanism to prevent resaving of certain data in other documents.
 
void * _datablock
 Pointer to the object's data block, the meaning is implementation-specific for each derived subclass.
 
bool _heapdatablock
 Variable that tells if _datablock is dynamically created on the heap (and should be deleted at object destruction).
 
int _loadedsize
 Loaded size of the data block for a loaded object, in bytes. Since the datablock is implementation-specific, the _loadedsize should be updated by child classes that create new data.
 
EDataID _dataid
 The EdataID for the last loaded/saved object.
 

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...
 
- 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.
 

Detailed Description

Base class for all data-related classes (that handles Finale data).

This class is abstract and is overridden by child classes. Should not be used directly.

Member Function Documentation

◆ _CloneFrom()

void __FCBaseData::_CloneFrom ( __FCBaseData * pSource)

For internal use only. Copies object data (except data block) from another object.

Calls CloneMemoryFrom() which copies the memory block.

◆ _GetDataID()

const EDataID * __FCBaseData::_GetDataID ( )
inline

Intended ONLY for the _CloneFrom implementation.

Returns
Pointer to the EDataID storage.

◆ _GetLoadedSize()

int __FCBaseData::_GetLoadedSize ( ) const
inline

Intended ONLY for the _CloneFrom implementation.

Returns
The value of loadedsize

◆ _TagDocumentID()

void __FCBaseData::_TagDocumentID ( )
protected

For internal use only.

Tags the data object to the current document ID. This method should be called after

◆ Allocate()

virtual void * __FCBaseData::Allocate ( )
protectedpure virtual

For data of static size, the overridden method can return a pointer to one single data structure. For dynamical-sized data, the overriden method should allocate data of the proper size.

Implemented in FCRawText.

◆ CalcLastInci()

virtual twobyte __FCBaseData::CalcLastInci ( )
inlineprotectedvirtual

For internal use only!

Returns the last inci record within the current cmper. Should be overwritten by child classes, if necssary.

Returns
The last inci found. kNewInci if not found.

Reimplemented in __FCInciOther.

◆ ClassName()

const char * __FCBaseData::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.

Reimplemented in __FCCellDetail, __FCCompositeTimeSigBottomElement, __FCCompositeTimeSigTopElement, __FCDetail, __FCEntryDetail, __FCEntryDetailNoteID, __FCGlobals, __FCInci, __FCInciOther, __FCLyricsBase, __FCNoInciCellDetail, __FCNoInciDetail, __FCNoInciOther, __FCOther, __FCOtherText, __FCPrefsBase, __FCStaffBase, FCAccidentalMod, FCActiveLyric, FCAllotment, FCArticulation, FCArticulationDef, FCBackwardRepeat, FCBaseline, FCBeamExtensionMod, FCBeamMod, FCBeatChartElement, FCBookmark, FCBookmarkText, FCBrokenBeamMod, FCCategoryDef, FCCellClefChange, FCCellFrameHold, FCCellGraphic, FCCellText, FCCenterSmartShape, FCChord, FCChordPrefs, FCChordSuffixElement, FCChorusLyricsText, FCChorusSyllable, FCCrossStaffMod, FCCurrentStaffSpec, FCCustomKeyModeDef, FCCustomSmartLineDef, FCCustomStemMod, FCDistancePrefs, FCDotMod, FCEnclosure, FCEndingRepeat, FCEndingRepeatText, FCEntryAlterMod, FCExecutableShapeDef, FCExpression, FCFileInfoText, FCFontPrefs, FCFreezeSystem, FCFretboardGroupDef, FCFretboardStyleDef, FCFretInstrumentDef, FCGeneralPrefs, FCGridsGuidesPrefs, FCGroup, FCGroupNamePositionPrefs, FCHumanPlaybackPrefs, FCIndependentCellDetail, FCInstrumentDef, FCInstrumentDefText, FCInstrumentPlaybackData, FCLayerPrefs, FCMeasure, FCMeasureNumberRegion, FCMetatoolAssignment, FCMidiExpression, FCMiscDocPrefs, FCMultiMeasureRest, FCMultiMeasureRestPrefs, FCMultiStaffInstrument, FCMusicCharacterPrefs, FCMusicSpacingPrefs, FCNoteheadMod, FCOtherInci, FCPage, FCPageFormatPrefs, FCPageGraphic, FCPageText, FCPart, FCPartExtractPrefs, FCPartScopePrefs, FCPartStaffVoicing, FCPercussionLayoutNote, FCPercussionLayoutNotesText, FCPercussionNoteMod, FCPercussionStaff, FCPerformanceMod, FCPianoBracePrefs, FCPlaybackPrefs, FCRawText, FCRepeatPrefs, FCSecondaryBeamBreakMod, FCSectionLyricsText, FCSectionSyllable, FCSeparateMeasureNumber, FCSeparatePlacement, FCShapeDef, FCSizePrefs, FCSlurContourPrefs, FCSmartShape, FCSmartShapeEntryMark, FCSmartShapeMeasureMark, FCSmartShapePrefs, FCStaff, FCStaffList, FCStaffListCategoryText, FCStaffListStaffAssignText, FCStaffListText, FCStaffNamePosition, FCStaffNamePositionPrefs, FCStaffStyleAssign, FCStaffStyleDef, FCStaffSystem, FCStemConnectionTable, FCStemMod, FCSyllableBase, FCSyllableEntryMod, FCSystemStaff, FCTablatureNoteMod, FCTempoElement, FCTextBlock, FCTextExpressionDef, FCTextRepeat, FCTextRepeatDef, FCTextRepeatText, FCTieContourPrefs, FCTieMod, FCTiePlacementPrefs, FCTiePrefs, FCTuplet, FCTupletPrefs, FCVerseLyricsText, and FCVerseSyllable.

◆ ClearData()

void __FCBaseData::ClearData ( )
protected

Clears and deallocates data blocks for dynamically allocated data during the lifespan of the object. This is not called during destruction, so classes with dynamic data needs to clean up in the destructor.

◆ CloneMemoryFrom()

void __FCBaseData::CloneMemoryFrom ( __FCBaseData * pSource)
virtual

Copies the data block of the object.

  • IT'S THE RESPONSIBILITY OF EACH CHILD CLASS TO OVERRIDE TO COPY DIFFERENT KIND OF DATA BLOCKS!
Parameters
pSourceThe source object.

◆ CreateClone()

__FCBaseData * __FCBaseData::CreateClone ( )

Creates an identical copy of an object.

Calls the virtual methods CreateObject and _CloneFrom to create the cloned copy.

Returns
The cloned object.

◆ CreateObject()

virtual __FCBaseData * __FCBaseData::CreateObject ( )
protectedpure virtual

Creates a new instance of the object.

This method will ensure that the virtual methods are handled correctly. Each inherited child class should have it's own implementation of this method.

Returns
Pointer to a new object.

Implemented in FCRawText.

◆ CreateRawDataDump()

FCNumbers * __FCBaseData::CreateRawDataDump ( )

Creates a byte collection with the raw loaded data block for the object (if the object type supports single data blocks). This method is only intended for debug purposes.

The first byte is in the first item of the collection, and so on. The size of the collection (in number of items) is the size of the data (in bytes).

Each byte in the collection is in the 0-255 decimal range.

If no data has been loaded, NULL is returned. Otherise, the created FCNumbers object containing the data dump.

Lua-supported.

◆ DataSizeLoad()

virtual int __FCBaseData::DataSizeLoad ( ) const
pure virtual

Returns the data size for the data structure that should be loaded.

Must be overwritten by child classes.

Returns
The size in bytes for the data that should be loaded

Implemented in FCRawText.

◆ DataSizeSave()

int __FCBaseData::DataSizeSave ( ) const
virtual

Returns the data size for the data structure that should be saved or created.

Returns
The size in bytes for the data that should be saved/created

◆ Deallocate()

virtual void __FCBaseData::Deallocate ( )
inlineprotectedvirtual

Should be overwritten by all child classes that use dynamicaly-sized data to free allocated data.

Reimplemented in FCRawText.

◆ DebugDataByteArrayDump()

void __FCBaseData::DebugDataByteArrayDump ( )
inlineoverridevirtual

Outputs a memory dump of the data block in the object for debugging purposes, as a C++ byte array.

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.

◆ DebugDataDump()

void __FCBaseData::DebugDataDump ( )
inlineoverridevirtual

Outputs a memory dump of the data block in the object 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.

◆ DebugDump()

void __FCBaseData::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.

Reimplemented in __FCCellDetail, __FCCompositeTimeSigBottomElement, __FCCompositeTimeSigTopElement, __FCEntryDetail, __FCNoInciDetail, __FCNoInciOther, FCAllotment, FCArticulation, FCArticulationDef, FCBeamMod, FCBeatChartElement, FCBookmark, FCCategoryDef, FCCellFrameHold, FCCellGraphic, FCCellText, FCCenterSmartShape, FCChord, FCChordSuffixElement, FCCustomSmartLineDef, FCEnclosure, FCEntryAlterMod, FCExecutableShapeDef, FCExpression, FCFreezeSystem, FCFretboardGroupDef, FCFretboardStyleDef, FCFretInstrumentDef, FCGroup, FCIndependentCellDetail, FCInstrumentDef, FCInstrumentPlaybackData, FCMeasureNumberRegion, FCMetatoolAssignment, FCMidiExpression, FCMultiMeasureRest, FCMultiMeasureRestPrefs, FCMultiStaffInstrument, FCPage, FCPageText, FCPart, FCPartStaffVoicing, FCPercussionLayoutNote, FCPercussionStaff, FCRawText, FCSeparateMeasureNumber, FCShapeDef, FCShapeExpressionDef, FCSlurContourPrefs, FCSmartShape, FCSmartShapeEntryMark, FCSmartShapeMeasureMark, FCSmartShapePrefs, FCStaff, FCStaffList, FCStaffStyleAssign, FCStaffStyleDef, FCStaffSystem, FCStemConnectionTable, FCSyllableBase, FCSyllableEntryMod, FCSystemStaff, FCTextBlock, FCTextExpressionDef, FCTextRepeat, FCTextRepeatDef, FCTuplet, and FCTupletPrefs.

◆ DeepDeleteData()

virtual bool __FCBaseData::DeepDeleteData ( )
inlinevirtual

Deletes data and all data that's connected to the object.

If the object links to other data that must be unique, this method should be overridden to delete that data as well.

Reimplemented in __FCNoInciOther, FCCustomSmartLineDef, FCEndingRepeat, FCPageText, FCTextBlock, FCTextExpressionDef, and FCTextRepeatDef.

◆ DeleteData()

bool __FCBaseData::DeleteData ( )
virtual

Deletes the associated data from Finale's database. Be careful when deleting multiple objects.

When deleting multiple objects, Finale's data table might get rearranged after each delete. For safety always delete multiple objects backwards.

Returns
True if delete was successful.

Reimplemented in FCShapeDef, and FCStaffList.

◆ EnigmaVersion()

virtual EVERSION __FCBaseData::EnigmaVersion ( ) const
inlinevirtual

The Enigma version for save/load/create/delete operations.

Set this to a specific Finale version if some emulation is needed.

Returns
By default, this defaults to the version of the PDK. Override if necessary.

Reimplemented in FCRawText.

◆ GetClassID()

const PDKFRAMEWORK_CLASSID __FCBaseData::GetClassID ( ) const
overridepure virtual

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.

This method must be overwritten by all child classes.

Lua-supported (also read-only property) (0.55).

Reimplemented from __FCBase.

Implemented in __FCCompositeTimeSigBottomElement, __FCCompositeTimeSigTopElement, FCAccidentalMod, FCActiveLyric, FCAllotment, FCArticulation, FCArticulationDef, FCBackwardRepeat, FCBaseline, FCBeamExtensionMod, FCBeamMod, FCBeatChartElement, FCBookmark, FCBrokenBeamMod, FCCategoryDef, FCCellClefChange, FCCellFrameHold, FCCellGraphic, FCCellText, FCCenterSmartShape, FCChord, FCChordPrefs, FCChordSuffixElement, FCChorusSyllable, FCCrossStaffMod, FCCustomKeyModeDef, FCCustomSmartLineDef, FCCustomStemMod, FCDistancePrefs, FCDotMod, FCEnclosure, FCEndingRepeat, FCEntryAlterMod, FCExecutableShapeDef, FCExpression, FCFontPrefs, FCFreezeSystem, FCFretboardGroupDef, FCFretboardStyleDef, FCFretInstrumentDef, FCGeneralPrefs, FCGridsGuidesPrefs, FCGroup, FCGroupNamePositionPrefs, FCHumanPlaybackPrefs, FCIndependentCellDetail, FCInstrumentDef, FCInstrumentPlaybackData, FCLayerPrefs, FCMeasure, FCMeasureNumberRegion, FCMetatoolAssignment, FCMidiExpression, FCMiscDocPrefs, FCMultiMeasureRest, FCMultiMeasureRestPrefs, FCMultiStaffInstrument, FCMusicCharacterPrefs, FCMusicSpacingPrefs, FCNoteheadMod, FCOtherInci, FCPage, FCPageFormatPrefs, FCPageGraphic, FCPageText, FCPart, FCPartExtractPrefs, FCPartScopePrefs, FCPartStaffVoicing, FCPercussionLayoutNote, FCPercussionNoteMod, FCPercussionStaff, FCPerformanceMod, FCPianoBracePrefs, FCPlaybackPrefs, FCRawText, FCRepeatPrefs, FCSecondaryBeamBreakMod, FCSectionSyllable, FCSeparateMeasureNumber, FCSeparatePlacement, FCShapeDef, FCSizePrefs, FCSlurContourPrefs, FCSmartShape, FCSmartShapeEntryMark, FCSmartShapeMeasureMark, FCSmartShapePrefs, FCStaff, FCStaffList, FCStaffNamePosition, FCStaffNamePositionPrefs, FCStaffStyleAssign, FCStaffStyleDef, FCStaffSystem, FCStemConnectionTable, FCStemMod, FCSyllableEntryMod, FCSystemStaff, FCTablatureNoteMod, FCTempoElement, FCTextBlock, FCTextExpressionDef, FCTextRepeat, FCTextRepeatDef, FCTieContourPrefs, FCTieMod, FCTiePlacementPrefs, FCTiePrefs, FCTuplet, FCTupletPrefs, and FCVerseSyllable.

◆ GetConnectedDocID()

EDOCID __FCBaseData::GetConnectedDocID ( ) const
inline

Returns the document ID that was connected to the last load/save of the data.

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

◆ GetCustomTag()

EXTAG __FCBaseData::GetCustomTag ( ) const
inline

Returns the custom Enigma tag, if any.

The custom tag mechanism is designed for data structure classes that support multiple Enigma tags. It's optional for the inherited class to use custom tags.

Returns
The Enigma tag. 0 if not used.

◆ GetDataBlock()

const void * __FCBaseData::GetDataBlock ( )
inline

Intended ONLY for the _CloneFrom implementation.

Returns
The value of datablock

◆ IsDynamicSize()

virtual bool __FCBaseData::IsDynamicSize ( )
inlineprotectedvirtual

Classes that encapsulates dynamic-sized data should override this method to return true.

NOTE! It's up to the destructor of the child classes to clean up dynamically sized data.

Reimplemented in FCRawText.

◆ LoadFirst()

virtual bool __FCBaseData::LoadFirst ( )
pure virtual

Loads the very first element in the database, if any.

This method must be overridden in all child classes.

Lua-supported.

Returns
True if a first element was found, otherwise false.

Implemented in __FCCellDetail, __FCEntryDetail, __FCGlobals, __FCNoInciOther, __FCPrefsBase, FCFretboardGroupDef, FCFretInstrumentDef, FCRawText, FCShapeDef, and FCShapeExpressionDef.

◆ LoadLast()

virtual bool __FCBaseData::LoadLast ( )
inlinevirtual

Loads the very last element in the database, if any.

This method is a placeholder. It's overridden in child classes with class-specific functionality.

Reimplemented in __FCCellDetail.

◆ LoadNext()

bool __FCBaseData::LoadNext ( )
virtual

Loads the next element from the database, if any.

(This implementation will not work for variable-sized data blocks like text - overwrite in those classes!)

Reimplemented in __FCCellDetail, __FCEntryDetail, __FCGlobals, FCFretInstrumentDef, FCShapeDef, FCShapeExpressionDef, and FCStaffList.

◆ LoadPrevious()

virtual bool __FCBaseData::LoadPrevious ( )
inlinevirtual

Loads the previous element in the database, if any.

This method is a placeholder. It's overridden in child classes with class-specific functionality.

Reimplemented in __FCCellDetail.

◆ RelinkToCurrentView()

bool __FCBaseData::RelinkToCurrentView ( )

Relinks the contents in the current view so that the score and part(s) match.

If the current edit focus is the score, the parts are relinked to the score. If the current edit focus is a part, all parts and score are linked with the values in the current part.

If you process items in a collection to relink them, use eachbackwards to itereate the collection rather than iterating it forwards.

Warning
A Finale plugin has no direct access to linkage in Finale. This function works by deleting the data item and recreating it as a new item. This indirectly clears all linkage. However, that means this function does not know if a data item is unlinkable in Finale. Relink has been tested with all known unlinkable items. If you call it on other items, it will more than likely delete and re-add it successfully. But this is not supported behavior.
One known issue is FCBaseline. When you delete a lyric baseline that is the default baseline for that lyric number, Finale (as of Finale 27.3) resets all similar values for subsequent lyric numbers. This behavior does not appear to be controllable by plugins. If you relink the first one you may end up relinking them all. You should plan for that in how you deal with relinking FCBaseline instances.

Lua-supported (0.67).

Returns
success if true

◆ RelinkToScore()

bool __FCBaseData::RelinkToScore ( )

Relinks all parts to the contents of the score.

See additional comments at RelinkToCurrentView.

Lua-supported (0.67).

Returns
success if true

◆ Reload()

bool __FCBaseData::Reload ( )
virtual

Refreshes the data for the object, to synch the data with Finale's current data.

This method can be used on both saved and loaded data objects. It can be useful when an object has gone through temporary unsaved changes and there's a need to synch with Finale's current data for the object.

For data with complex data (from multiple sources), this method must be overwritten.

Lua-supported.

Returns
True on success. False if the object contained no previous data.

Reimplemented in __FCEntryDetail, __FCInciOther, __FCNoInciOther, and __FCPrefsBase.

◆ Save()

bool __FCBaseData::Save ( )
virtual

Saves the currently loaded to its current location.

Lua-supported.

Returns
False if no data has been loaded.

Reimplemented in __FCPrefsBase, __FCStaffBase, FCActiveLyric, FCBaseline, FCBeamMod, FCGridsGuidesPrefs, FCGroupNamePositionPrefs, FCMeasure, FCMiscDocPrefs, FCMusicCharacterPrefs, FCPageFormatPrefs, FCStaffList, FCStemConnectionTable, FCSystemStaff, and FCTupletPrefs.

◆ SetCustomTag()

void __FCBaseData::SetCustomTag ( EXTAG tag)
inline

Sets the custom Enigma tag, for classes that support multiple Enigma tags.

The custom tag mechanism is designed for data structure classes that support multiple Enigma tags. It's optional for the inherited class to use custom tags.

Parameters
tagThe Enigma tag for load/save operations (if the class implementation supports custom tags).

◆ Tag()

virtual EXTAG __FCBaseData::Tag ( ) const
pure virtual

◆ VerifyConnectedDocID()

bool __FCBaseData::VerifyConnectedDocID ( )

Checks that the stored document ID for the data object matches the current document's ID.

Lua-supported.

Returns
True if stored document ID matches the current document's ID.

Member Data Documentation

◆ _loadedsize

int __FCBaseData::_loadedsize
protected

Loaded size of the data block for a loaded object, in bytes. Since the datablock is implementation-specific, the _loadedsize should be updated by child classes that create new data.

This was size_t before, but size_t caused problems with 64-bit Lua on Windows.