Finale PDK Framework 0.71
Public Member Functions | List of all members
__FCLyricsBase Class Referenceabstract

The base class for all lyrics text classes. More...

#include <ff_text.h>

Inheritance diagram for __FCLyricsBase:
FCRawText __FCBaseData __FCBase FCChorusLyricsText FCSectionLyricsText FCVerseLyricsText

Public Member Functions

EXTAG Tag () const override=0
 The Enigma tag for the derived class. More...
 
const char * ClassName () const override
 Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class. More...
 
int CalcSyllableOffset (int syllableindex, int searchfromindex=0) const
 Get the character offset of a syllable from the beginning of the raw text. More...
 
FCFontInfoCreateSyllableFontInfo (int syllableindex, int searchfromindex=0) const
 Creates a font info object for the start of the syllable. More...
 
bool GetSyllableRange (FCRange *pRange, int syllableindex, int searchfromindex=0) const
 Returns the range of characters of the syllable. More...
 
bool GetSyllableText (FCString *pString, int syllableno) const
 Returns the plain syllable text without hyphen, space, or formatting. More...
 
- Public Member Functions inherited from FCRawText
const PDKFRAMEWORK_CLASSID GetClassID () const override
 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. More...
 
 FCRawText ()
 The constructor.
 
virtual ~FCRawText ()
 The (virtual) destructor.
 
RAWTEXTTYPES GetBlockType () const
 Returns the text block type of this FCRawText. More...
 
int GetNumChars () const
 Returns the number of characters in the raw text. More...
 
bool Load (twobyte number)
 Loads the text with the indicated text number. More...
 
bool LoadFirst () override
 Loads the first raw text entry. More...
 
bool SaveAs (twobyte number)
 Saves the text by a new text number. More...
 
bool SaveNew ()
 Saves the text at the first empty spot. More...
 
void SetText (const FCString *pString)
 Sets the text for the object. (The object needs to be saved to Finale to take effect.) More...
 
void GetText (FCString *pString) const
 Copies the object's text to a FCString object. More...
 
virtual twobyte GetItemNo () const
 Gets the item number for the text. More...
 
FCStringCreateString () const
 Creates a string object with the loaded text. If the string doesn't exist (or if it's empty), the string object will still be created. More...
 
bool GetSubString (FCString *pString, const FCRange *pRange) const
 Gets a string object with the range of characters from loaded text. More...
 
void DebugDump () override
 Outputs the class data/information for debugging purposes. More...
 
- Public Member Functions inherited from __FCBaseData
EDOCID GetConnectedDocID () const
 Returns the document ID that was connected to the last load/save of the data. More...
 
bool VerifyConnectedDocID ()
 Checks that the stored document ID for the data object matches the current document's ID. More...
 
virtual int DataSizeSave () const
 Returns the data size for the data structure that should be saved or created. More...
 
void _CloneFrom (__FCBaseData *pSource)
 For internal use only. Copies object data (except data block) from another object. More...
 
virtual void CloneMemoryFrom (__FCBaseData *pSource)
 
const EDataID * _GetDataID ()
 Intended ONLY for the _CloneFrom implementation. More...
 
int _GetLoadedSize () const
 Intended ONLY for the _CloneFrom implementation. More...
 
const void * GetDataBlock ()
 Intended ONLY for the _CloneFrom implementation. More...
 
EXTAG GetCustomTag () const
 Returns the custom Enigma tag, if any. More...
 
void SetCustomTag (EXTAG tag)
 Sets the custom Enigma tag, for classes that support multiple Enigma tags. More...
 
 __FCBaseData ()
 The constructor.
 
virtual ~__FCBaseData ()
 Virtual destructor.
 
virtual bool Save ()
 Saves the currently loaded to its current location. More...
 
virtual bool Reload ()
 Refreshes the data for the object, to synch the data with Finale's current data. More...
 
virtual bool DeleteData ()
 Deletes the associated data from Finale's database. Be careful when deleting multiple objects. More...
 
virtual bool DeepDeleteData ()
 Deletes data and all data that's connected to the object. More...
 
virtual bool LoadLast ()
 Loads the very last element in the database, if any. More...
 
virtual bool LoadNext ()
 Loads the next element from the database, if any. More...
 
virtual bool LoadPrevious ()
 Loads the previous element in the database, if any. More...
 
bool RelinkToCurrentView ()
 Relinks the contents in the current view so that the score and part(s) match. More...
 
bool RelinkToScore ()
 Relinks all parts to the contents of the score. More...
 
__FCBaseDataCreateClone ()
 Creates an identical copy of an object. More...
 
void DebugDataDump () override
 Outputs a memory dump of the data block in the object for debugging purposes. More...
 
void DebugDataByteArrayDump () override
 Outputs a memory dump of the data block in the object for debugging purposes, as a C++ byte array. More...
 
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. More...
 
- 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. More...
 
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. More...
 
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. More...
 
void DebugMsg (const char *pszMsg)
 Creates a simple Message Box for debug purposes with just one text string. More...
 
void DebugOutMenuInfo (FCUI *pUI, int menuixd_horiz, int menuixd_vert) const
 Outputs the menu command info for debugging purposes. More...
 
int DebugOutFormat (const char *fmt,...)
 Outputs debug text using C style "printf" syntax. More...
 
void Set16BitFlag (FLAG_16 *flag, FLAG_16 flagbits, bool state)
 Sets a 16 bit flag. More...
 
void Set32BitFlag (FLAG_32 *flag, FLAG_32 flagbits, bool state)
 Sets/resets a 32 bit flag, by using a bit mask. More...
 
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. More...
 
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. More...
 
void SetUserData (void *pData)
 Sets the user data attached to the instance of an object. More...
 
void SetUserData2 (void *pData)
 Sets the additional user data attached to the instance of an object. More...
 
void * GetUserData () const
 Gets the user data attached to the instance of an object. More...
 
void * GetUserData2 () const
 Gets the additional user data attached to the instance of an object. More...
 
virtual bool IsIdentical (__FCBase *pCompareObject)
 Returns true if the data in the passed object is considered to be identical to the current object, otherwise false. More...
 
void StoreXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper function to store FCString objects in the XML file. More...
 
void StoreXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int value)
 Helper function to store integer objects in the XML file. More...
 
void StoreXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool value)
 Helper function to store boolean objects in the XML file. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual void StoreToXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to store an object's data. More...
 
bool ReadXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper method to read FCString objects from the XML file. More...
 
bool ReadXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int *pValue)
 Helper method to read integer objects from the XML file. More...
 
bool ReadXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool *pValue)
 Helper method to read boolean objects from the XML file. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual bool ReadFromXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to read object data. More...
 

Additional Inherited Members

- Public Types inherited from FCRawText
enum  RAWTEXTTYPES {
  RAWTEXTTYPE_TEXTBLOCK = 0 , RAWTEXTTYPE_VERSELYRIC = 1 , RAWTEXTTYPE_CHORUSLYRIC = 2 , RAWTEXTTYPE_SECTIONLYRIC = 3 ,
  RAWTEXTTYPE_CUSTOMLINE = 4 , RAWTEXTTYPE_EXPRESSION = 5 , RAWTEXTTYPE_FILEINFO = 6 , RAWTEXTTYPE_BOOKMARK = 7 ,
  RAWTEXTTYPE_UNKNOWN = -1
}
 enumerates the possible raw text types. More...
 
- 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_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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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". More...
 
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. More...
 
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. More...
 
static void DebugOut (const char *pszLine)
 Static method to output a line of text for debugging purposes. More...
 
- Protected Member Functions inherited from FCRawText
virtual void SetRawTextNumber (twobyte number)
 
int DataSizeLoad () const override
 Returns the data size for the data structure that should be loaded. More...
 
void * Allocate () override
 
void Deallocate () override
 
bool IsDynamicSize () override
 
EVERSION EnigmaVersion () const override
 The Enigma version for save/load/create/delete operations. More...
 
__FCBaseDataCreateObject () override
 
virtual bool HasUnicodeSupport () const
 Should return true if the data structure has Unicode support on the running platform.
 
- Protected Member Functions inherited from __FCBaseData
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! More...
 
bool DataIsLoaded () const
 Returns true is any data has been loaded into the object.
 
void _TagDocumentID ()
 For internal use only. More...
 
- Protected Member Functions inherited from __FCBase
 __FCBase ()
 The constructor.
 
- Protected Attributes inherited from __FCBaseData
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. More...
 
EDataID _dataid
 The EdataID for the last loaded/saved object.
 

Detailed Description

The base class for all lyrics text classes.

This class is inherited and should not be used directly.

Member Function Documentation

◆ CalcSyllableOffset()

int __FCLyricsBase::CalcSyllableOffset ( int  syllableindex,
int  searchfromindex = 0 
) const

Get the character offset of a syllable from the beginning of the raw text.

Warning
FCRawText represents all strings internally as UTF-16. The searchfromindex and returned offset will not work correctly with a Lua string unless all characters are ASCII.

Lua-supported (0.68).

Parameters
syllableindexThe nth syllable from the searchfromindex. For syllable 1, pass 0 for both syllableindex and searchfromindex.
searchfromindex(optional in C++) The location in the string from which to start searching. The default value is 0.
Returns
the start offset of the syllable from the beginning of the string, or -1 if there was no syllable found.

◆ ClassName()

const char * __FCLyricsBase::ClassName ( ) const
inlineoverridevirtual

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

Lua-supported.

Reimplemented from FCRawText.

Reimplemented in FCVerseLyricsText, FCSectionLyricsText, and FCChorusLyricsText.

◆ CreateSyllableFontInfo()

FCFontInfo * __FCLyricsBase::CreateSyllableFontInfo ( int  syllableindex,
int  searchfromindex = 0 
) const

Creates a font info object for the start of the syllable.

The most efficient way to get the both the offset and font is as follows:

-- Assume we are looking for syllable number 5 (1-based)
-- in an instance of __FCLyricsBase called lyric_text
local syllableno = 5
-- convert 1-based syllableno to 0-based syllableindex
local syllable_index = syllableno - 1
local syllable_offset = lyric_text:CalcSyllableOffset(syllable_index, 0)
-- Knowing the offset already, we can get the font info
-- more efficiently by searching from that offset.
local font_info = lyric_text:CreateSyllableFontInfo(0, syllable_offset)
-- We can also get it this way if we don't know the offset:
local font_info = lyric_text:CreateSyllableFontInfo(syllable_index, 0)
Warning
FCRawText represents all strings internally as UTF-16. The searchfromindex will not work correctly with a Lua string unless all characters are ASCII.

C++ callers must dispose of the created object either with delete or a smart pointer.

Lua-supported (0.68).

Parameters
syllableindexThe nth syllable from the searchfromindex. For syllable 1, pass 0 for both syllableindex and searchfromindex.
searchfromindex(optional in C++) The location in the string from which to start searching. The default value is 0.
Returns
a FCFontInfo insance or NULL if there was no syllable found.

◆ GetSyllableRange()

bool __FCLyricsBase::GetSyllableRange ( FCRange pRange,
int  syllableindex,
int  searchfromindex = 0 
) const

Returns the range of characters of the syllable.

The range can be used with GetSubString to extract the raw text of the syllable, which will include formatting and/or trailing hyphen or space (if any).

This function is guaranteed to produce a valid range for UTF-16, even if the text includes characters outside the Basic Multilingual Plane (BMP).

Lua-supported (0.68)

Parameters
pRangeThe FCRange instance into which to place the range. The start is always measured from the beginning of the text, no matter what the searchfromindex is.
syllableindexThe nth syllable from the searchfromindex. For syllable 1, pass 0 for both syllableindex and searchfromindex.
searchfromindex(optional in C++) The location in the string from which to start searching. The default value is 0.
Returns
true if the syllable was found, otherwise false.

◆ GetSyllableText()

bool __FCLyricsBase::GetSyllableText ( FCString pString,
int  syllableno 
) const

Returns the plain syllable text without hyphen, space, or formatting.

Lua-supported (0.68)

Parameters
pStringthe string in which to copy the syllable.
syllablenothe 1-based syllable number. (This is the same value as in FCSyllableBase::GetSyllableNumber.)
Returns
true if a syllable was found

◆ Tag()

EXTAG __FCLyricsBase::Tag ( ) const
overridepure virtual

The Enigma tag for the derived class.

(Have this public so it's possible to query from the outside world.)

Implements __FCBaseData.

Implemented in FCVerseLyricsText, FCSectionLyricsText, and FCChorusLyricsText.