Finale PDK Framework  0.54
ff_other.h
1 /*
2  * File: ff_other.h
3  * Author: Jari Williamsson
4  *
5  * Created on den 26 december 2009, 14:09
6  */
7 
8 #ifndef _FF_OTHER_H
9 #define _FF_OTHER_H
10 
11 #include "ff_timesig.h"
12 #include "ff_base.h"
13 #include "ff_region.h"
14 
15 
16 
23 class __FCOther : public __FCBaseData {
24 public:
27  void SetCmperAndInci(CMPER cmper, twobyte inci)
28  {
29  _dataid.other.cmper = cmper;
30  _dataid.other.inci = inci;
31  }
32 
33 
34 public:
35  virtual const char* ClassName() { return "__FCOther"; }
36 
39 
40 
47  bool IsIdenticalRecord(__FCOther* pCompare)
48  {
49  if (!DataIsLoaded()) return false;
50  if (_dataid.other.cmper != pCompare->_GetDataID()->other.cmper) return false;
51  if (_dataid.other.inci != pCompare->_GetDataID()->other.inci) return false;
52  return true;
53  }
54 };
55 
56 
59 class __FCInciOther : public __FCOther
60 {
61 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
62 
63  virtual bool LoadFirst() { return false; }
64 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
65 public:
70 
78  virtual bool Load(CMPER itemno, twobyte inci);
79 
81  virtual twobyte CalcLastInci();
82 
84  virtual bool Reload();
85 
92  virtual bool SaveNew(CMPER itemno);
93 
98  void _SetCmper(CMPER cmper) { _dataid.other.cmper = cmper; }
99 
100 
105  int GetItemCmper() const
106  {
107  if (!DataIsLoaded()) return kNewCmper;
108  return _dataid.other.cmper;
109  }
110 
117  int GetItemInci() const
118  {
119  if (!DataIsLoaded()) return kNewInci;
120  return _dataid.other.inci;
121  }
122 
123 
129  virtual eMeas GetMeasure() const { return 0; }
130 
138  virtual eStaff GetStaff() const { return 0; }
139 
141  virtual bool HasStaffValue() { return false; }
142 
148  virtual TimeEdu32 GetMeasurePos() const { return 0; }
149 };
150 
156 {
157  twobyte _inciblock[6];
158 
159  virtual int DataSizeLoad() { return sizeof(_inciblock); } /* A standard inci */
160  virtual void* Allocate() { return _GetDataPtr(); }
161  virtual EXTAG Tag() { return GetCustomTag(); }
162 
167  virtual void CloneMemoryFrom(__FCBaseData* pSource)
168  {
169  memcpy(&_inciblock, ((FCOtherInci*)pSource)->_GetDataPtr(), sizeof(_inciblock));
170  _datablock = &_inciblock;
171  _loadedsize = sizeof(_inciblock);
172  }
173 
174  virtual __FCBaseData* CreateObject()
175  {
176  return new FCOtherInci();
177  }
178 public:
179 
181  {
182  memset(&_inciblock, 0, sizeof(_inciblock));
183  _datablock = &_inciblock;
184  _loadedsize = sizeof(_inciblock);
185  }
186 
187 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
188 
194  void* _GetDataPtr() { return &_inciblock; }
195 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
196 
197  virtual const char* ClassName() { return "FCOtherInci"; }
198  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_OTHERINCI; }
199 };
200 
201 
202 
213 {
214 protected:
215 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
216 
223  int _DataSizeLoadFullCmper(CMPER cmper, ETAG othertag);
224 
232  bool _SaveOtherFullCmper(CMPER cmper, void* buffer, int size, ETAG othertag);
233 
241  bool _LoadOtherFullCmper(CMPER cmper, void* buffer, int size, ETAG othertag);
242 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
243 public:
244  virtual const char* ClassName() { return "__FCNoInciOther"; }
245 
248 
253  virtual bool Load(CMPER itemno);
254 
256  virtual bool Reload();
257 
263  virtual bool SaveAs(CMPER itemno);
264 
274  virtual bool DeepSaveAs(CMPER itemno)
275  {
276  return SaveAs(itemno);
277  }
278 
285  virtual bool DeepDeleteData()
286  {
287  return DeleteData();
288  }
289 
296  virtual bool SaveNew();
297 
305  virtual CMPER GetItemNo() const { return _dataid.other.cmper; }
306 
314  void SetItemNo(CMPER cmper)
315  {
316  _dataid.other.cmper = cmper;
317  _dataid.other.inci = 0;
318  }
319 
328  virtual bool LoadFirst() { return Load(1); }
329 
330 #ifdef PDK_FRAMEWORK_DEBUG
331  virtual void DebugDump()
332  {
334  DebugOutDigit("dataid.other.cmper: ", _dataid.other.cmper);
335  }
336 #endif
337 
338 };
339 
340 
346 {
347 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
348  private:
350  EDTCompositeTimeUpper _compositetimeupperdata;
351 
352 protected:
353  virtual EXTAG Tag() { return ot_CompositeTimeUpper; }
354  virtual int DataSizeLoad() { return sizeof(EDTCompositeTimeUpper); }
355  virtual void* Allocate() { return (void*) &_compositetimeupperdata; }
356 
361  virtual void CloneMemoryFrom(__FCBaseData* pSource)
362  {
363  memcpy(&_compositetimeupperdata, ((__FCCompositeTimeSigTopElement*)pSource)->_GetDataPtr(), sizeof(_compositetimeupperdata));
364  _datablock = &_compositetimeupperdata;
365  _loadedsize = sizeof(_compositetimeupperdata);
366  }
367 
368  virtual __FCBaseData* CreateObject()
369  {
370  return new __FCCompositeTimeSigTopElement();
371  }
372 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
373 public:
374  virtual const char* ClassName() { return "__FCCompositeTimeSigTopElement"; }
375  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_COMPOSITETIMESIGTOPELEMENT; }
376 
377 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
378 
384  void* _GetDataPtr() { return &_compositetimeupperdata; }
385 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
386 
389  {
390  memset(&_compositetimeupperdata, 0, sizeof(_compositetimeupperdata));
391  _datablock = &_compositetimeupperdata;
392  _loadedsize = sizeof(_compositetimeupperdata);
393  }
394 
396  ECompositeTimeUpper* _GetFirstRecordPtr() { return &_compositetimeupperdata.elements[0]; }
397 
399  ECompositeTimeUpper* _GetSecondRecordPtr() { return &_compositetimeupperdata.elements[1]; }
400 
401 
402 #ifdef PDK_FRAMEWORK_DEBUG
403  virtual void DebugDump()
404  {
406  }
407 #endif
408 };
409 
410 
411 
417 {
418 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
419  private:
421  EDTCompositeTimeLower _compositetimelowerdata;
422 
423 protected:
424  virtual EXTAG Tag() { return ot_CompositeTimeLower; }
425  virtual int DataSizeLoad() { return sizeof(EDTCompositeTimeLower); }
426  virtual void* Allocate() { return (void*) &_compositetimelowerdata; }
427 
432  virtual void CloneMemoryFrom(__FCBaseData* pSource)
433  {
434  memcpy(&_compositetimelowerdata, ((__FCCompositeTimeSigBottomElement*)pSource)->_GetDataPtr(), sizeof(_compositetimelowerdata));
435  _datablock = &_compositetimelowerdata;
436  _loadedsize = sizeof(_compositetimelowerdata);
437  }
438 
439  virtual __FCBaseData* CreateObject()
440  {
442  }
443 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
444 public:
445  virtual const char* ClassName() { return "__FCCompositeTimeSigBottomElement"; }
446  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_COMPOSITETIMESIGBOTTOMELEMENT; }
447 
448 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
449 
455  void* _GetDataPtr() { return &_compositetimelowerdata; }
456 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
457 
460  {
461  memset(&_compositetimelowerdata, 0, sizeof(_compositetimelowerdata));
462  _datablock = &_compositetimelowerdata;
463  _loadedsize = sizeof(_compositetimelowerdata);
464  }
465 
467  ECompositeTimeLower* _GetFirstRecordPtr() { return &_compositetimelowerdata.elements[0]; }
468 
470  ECompositeTimeLower* _GetSecondRecordPtr() { return &_compositetimelowerdata.elements[1]; }
471 
473  ECompositeTimeLower* _GetThirdRecordPtr() { return &_compositetimelowerdata.elements[2]; }
474 
475 
476 #ifdef PDK_FRAMEWORK_DEBUG
477  virtual void DebugDump()
478  {
480  }
481 #endif
482 };
483 
484 
485 
486 #ifdef PDK_FRAMEWORK_COMPOSITETIMESIGS
487 
496 {
498  ECompositeTimeUpper* _pArray;
499 
502  int _arraycounter;
503 
504 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
505 
509  ECompositeTimeUpper* _GetGroupElementPtr(int groupindex, int subindex)
510  {
511  groupindex++; /* Make the index 1-based internally for this method */
512  int currentindex = 0;
513  int subindexcount = 0;
514  for (int i = 0; i < _arraycounter; i++)
515  {
516  if (_pArray[i].chainstart) currentindex++;
517  if (currentindex == groupindex)
518  {
519  if (subindexcount == subindex) return &_pArray[i];
520  subindexcount++;
521  }
522  if (currentindex > groupindex) return NULL;
523  }
524  return NULL;
525  }
526 
534  void _RedistributeArray(CMPER cmper = 0)
535  {
536  if (cmper == 0)
537  {
538  if (GetCount() == 0) return; /* To prevent crash */
540  cmper = pFirstInci->_GetDataID()->other.cmper;
541  }
542  ClearAll();
543  twobyte inci = 0;
544  __FCCompositeTimeSigTopElement* pCurrentObject = NULL;
545  for (int i = 0; i < _arraycounter; i++)
546  {
547  if (i % 2 == 0)
548  {
549  pCurrentObject = new __FCCompositeTimeSigTopElement();
550  EDataID* pDataID = (EDataID*) pCurrentObject->_GetDataID(); /* "Turn off" const */
551  pDataID->other.cmper = cmper;
552  pDataID->other.inci = inci;
553  inci++;
554  memcpy(pCurrentObject->_GetFirstRecordPtr(), &_pArray[i], sizeof(ECompositeTimeUpper));
555  }
556  else
557  {
558  memcpy(pCurrentObject->_GetSecondRecordPtr(), &_pArray[i], sizeof(ECompositeTimeUpper));
559  Add(pCurrentObject);
560  pCurrentObject = NULL;
561  }
562  }
563  if (pCurrentObject) Add(pCurrentObject);
564  }
565 #endif
566 
567 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
568  virtual __FCBaseData* CreateElement() { return new __FCCompositeTimeSigTopElement(); }
569 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
570  public:
571 
572 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
573 
574  void _BuildArray()
575  {
576  delete [] _pArray;
577  _pArray = NULL;
578  _arraycounter = 0;
579  if (GetCount() == 0) return;
580  /* Count the number of active records in the array */
581  int activerecords = 0;
582  for (int i = 0; i < GetCount(); i++)
583  {
585  ECompositeTimeUpper* pCompositeTimeUpper = pData->_GetFirstRecordPtr();
586  if ((pCompositeTimeUpper->main == 0) &&
587  (pCompositeTimeUpper->fraction == 0)) continue;
588  activerecords ++;
589  pCompositeTimeUpper = pData->_GetSecondRecordPtr();
590  if ((pCompositeTimeUpper->main == 0) &&
591  (pCompositeTimeUpper->fraction == 0)) continue;
592  activerecords ++;
593  }
594  if (activerecords == 0) return;
595  // Allocate memory and copy:
596  _pArray = new ECompositeTimeUpper[activerecords];
597  int currentindex = 0;
598  for (int i = 0; i < GetCount(); i++)
599  {
601  ECompositeTimeUpper* pCompositeTimeUpper = pData->_GetFirstRecordPtr();
602  if ((pCompositeTimeUpper->main == 0) &&
603  (pCompositeTimeUpper->fraction == 0)) continue;
604  memcpy(&_pArray[currentindex], pCompositeTimeUpper, sizeof(ECompositeTimeUpper));
605  currentindex ++;
606  pCompositeTimeUpper = pData->_GetSecondRecordPtr();
607  if ((pCompositeTimeUpper->main == 0) &&
608  (pCompositeTimeUpper->fraction == 0)) continue;
609  memcpy(&_pArray[currentindex], pCompositeTimeUpper, sizeof(ECompositeTimeUpper));
610  currentindex ++;
611  }
612  _arraycounter = activerecords;
613  }
614 #endif
615 
616  virtual const char* ClassName() { return "FCCompositeTimeSigTop"; }
617 
620  {
621  _pArray = NULL;
622  _arraycounter = 0;
623  }
624 
627  {
628  delete [] _pArray;
629  _pArray = NULL;
630  _arraycounter = 0;
631  }
632 
639  {
640  int groupcount = 0;
641  for (int i = 0; i < _arraycounter; i++)
642  {
643  if (_pArray[i].chainstart) groupcount++;
644  }
645  return groupcount;
646  }
647 
654  int AddGroup(int elementcount)
655  {
656  if (elementcount < 1) return -1;
657  if (elementcount > 10) return -1;
658 
659  ECompositeTimeUpper* pNewArray = new ECompositeTimeUpper[_arraycounter + elementcount];
660 
661  if (_pArray)
662  {
663  /* Copy the old data and remove it */
664  int bytesize = sizeof(ECompositeTimeUpper) * _arraycounter;
665  memcpy(pNewArray, _pArray, bytesize);
666  delete [] _pArray;
667  }
668 
669  /* Initialize the new data */
670  ECompositeTimeUpper* pNewAddedData = &pNewArray[_arraycounter];
671  for (int i = 0; i < elementcount; i++)
672  {
673  pNewAddedData->chainstart = (i == 0);
674  pNewAddedData->fraction = 0;
675  pNewAddedData->main = 1;
676  pNewAddedData ++;
677  }
678 
679  /* Set new info: */
680  _arraycounter += elementcount;
681  _pArray = pNewArray;
682 
683  return GetGroupCount() - 1;
684  }
685 
692  void MergeWithPreviousGroup(int groupindex)
693  {
694  if (groupindex < 1) return;
695  ECompositeTimeUpper* pData = _GetGroupElementPtr(groupindex, 0);
696  if (!pData) return;
697  pData->chainstart = false;
698  }
699 
700 
708  int GetGroupElementCount(int index)
709  {
710  index++; /* Make the index 1-based internally for this method */
711  int currentindex = 0;
712  int count = 0;
713  for (int i = 0; i < _arraycounter; i++)
714  {
715  if (_pArray[i].chainstart) currentindex++;
716  if (currentindex == index) count++;
717  if (currentindex > index) return count;
718  }
719  return count;
720  }
721 
730  int CalcTotalGroupBeats(int groupindex)
731  {
732  int beatcount = 0;
733  int elementcount = GetGroupElementCount(groupindex);
734  for (int elementidx = 0; elementidx < elementcount; elementidx++)
735  {
736  beatcount += GetGroupElementBeats(groupindex, elementidx);
737  }
738  return beatcount;
739  }
740 
748  int GetGroupElementBeats(int groupindex, int subindex)
749  {
750  ECompositeTimeUpper* pCompositeTimeUpper = _GetGroupElementPtr(groupindex, subindex);
751  if (!pCompositeTimeUpper) return 0;
752  return pCompositeTimeUpper->main;
753  }
754 
758  {
759  return _arraycounter;
760  }
761 
769  void SetGroupElementBeats(int groupindex, int subindex, twobyte value)
770  {
771  ECompositeTimeUpper* pCompositeTimeUpper = _GetGroupElementPtr(groupindex, subindex);
772  if (!pCompositeTimeUpper) return;
773  pCompositeTimeUpper->main = value;
774  }
775 
778  virtual bool SaveAll()
779  {
780  if (_arraycounter == 0) return false;
781  if (GetCount() == 0)
782  {
783 #ifdef PDK_FRAMEWORK_DIAGNOSE
784  DebugOut("FCCompositeTimeSigTop()::SaveAll(): No existing collection items to read CMPER.");
785 #endif
786  return false; /* There must be an existing CMPER to save to */
787  }
788  _RedistributeArray();
790  CMPER cmper = pFirstInci->_GetDataID()->other.cmper;
791  DeleteDataForItem(cmper);
793  }
794 
797  virtual bool SaveAllForItem(CMPER cmper)
798  {
799  if (_arraycounter == 0) return false;
800 
801  _RedistributeArray(cmper);
802 
803  if (GetCount() == 0)
804  {
805 #ifdef PDK_FRAMEWORK_DIAGNOSE
806  DebugOut("FCCompositeTimeSigTop()::SaveAllForItem(): No existing collection items to read CMPER.");
807 #endif
808  return false; /* There must be an existing CMPER to save to */
809  }
810 
811  DeleteDataForItem(cmper);
813 
814  return true;
815  }
816 };
817 
818 #endif /*PDK_FRAMEWORK_COMPOSITETIMESIGS*/
819 
820 
821 #ifdef PDK_FRAMEWORK_COMPOSITETIMESIGS
822 
831 {
833  ECompositeTimeLower* _pArray;
834 
837  int _arraycounter;
838 
839 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
840 
844  ECompositeTimeLower* _GetGroupElementPtr(int groupindex, int subindex)
845  {
846  groupindex++; /* Make the index 1-based internally for this method */
847  int currentindex = 0;
848  int subindexcount = 0;
849  for (int i = 0; i < _arraycounter; i++)
850  {
851  if (_pArray[i].chainstart) currentindex++;
852  if (currentindex == groupindex)
853  {
854  if (subindexcount == subindex) return &_pArray[i];
855  subindexcount++;
856  }
857  if (currentindex > groupindex) return NULL;
858  }
859  return NULL;
860  }
861 
868  void _RedistributeArray(CMPER cmper = 0)
869  {
870  if (cmper == 0)
871  {
872  if (GetCount() == 0) return; /* To avoid crashes */
874  cmper = pFirstInci->_GetDataID()->other.cmper;
875  }
876  ClearAll();
877  twobyte inci = 0;
878  __FCCompositeTimeSigBottomElement* pCurrentObject = NULL;
879  EDataID* pDataID = NULL;
880  for (int i = 0; i < _arraycounter; i++)
881  {
882  switch (i % 3) {
883  case 0:
884  pCurrentObject = new __FCCompositeTimeSigBottomElement();
885  pDataID = (EDataID*) pCurrentObject->_GetDataID(); /* "Turn off" const */
886  pDataID->other.cmper = cmper;
887  pDataID->other.inci = inci;
888  inci++;
889  memcpy(pCurrentObject->_GetFirstRecordPtr(), &_pArray[i], sizeof (ECompositeTimeLower));
890  break;
891  case 1:
892  memcpy(pCurrentObject->_GetSecondRecordPtr(), &_pArray[i], sizeof (ECompositeTimeLower));
893  break;
894  default:
895  memcpy(pCurrentObject->_GetThirdRecordPtr(), &_pArray[i], sizeof (ECompositeTimeLower));
896  Add(pCurrentObject);
897  pCurrentObject = NULL;
898  break;
899  }
900  }
901  if (pCurrentObject) Add(pCurrentObject);
902  }
903 #endif
904 
905 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
906  virtual __FCBaseData* CreateElement() { return new __FCCompositeTimeSigBottomElement(); }
907 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
908  public:
909 
910 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
911 
912  void _BuildArray()
913  {
914  delete [] _pArray;
915  _pArray = NULL;
916  _arraycounter = 0;
917  if (GetCount() == 0) return;
918  /* Count the number of active records in the array */
919  int activerecords = 0;
920  for (int i = 0; i < GetCount(); i++)
921  {
923  ECompositeTimeLower* pCompositeTimeLower = pData->_GetFirstRecordPtr();
924  if (pCompositeTimeLower->main == 0) continue;
925  activerecords ++;
926  pCompositeTimeLower = pData->_GetSecondRecordPtr();
927  if (pCompositeTimeLower->main == 0) continue;
928  activerecords ++;
929  pCompositeTimeLower = pData->_GetThirdRecordPtr();
930  if (pCompositeTimeLower->main == 0) continue;
931  activerecords ++;
932  }
933  if (activerecords == 0) return;
934  // Allocate memory and copy:
935  _pArray = new ECompositeTimeLower[activerecords];
936  int currentindex = 0;
937  for (int i = 0; i < GetCount(); i++)
938  {
940  ECompositeTimeLower* pCompositeTimeLower = pData->_GetFirstRecordPtr();
941  if (pCompositeTimeLower->main == 0) continue;
942  memcpy(&_pArray[currentindex], pCompositeTimeLower, sizeof(ECompositeTimeLower));
943  currentindex ++;
944  pCompositeTimeLower = pData->_GetSecondRecordPtr();
945  if (pCompositeTimeLower->main == 0) continue;
946  memcpy(&_pArray[currentindex], pCompositeTimeLower, sizeof(ECompositeTimeLower));
947  currentindex ++;
948  pCompositeTimeLower = pData->_GetThirdRecordPtr();
949  if (pCompositeTimeLower->main == 0) continue;
950  memcpy(&_pArray[currentindex], pCompositeTimeLower, sizeof(ECompositeTimeLower));
951  currentindex ++;
952  }
953  _arraycounter = activerecords;
954  }
955 #endif
956 
957  virtual const char* ClassName() { return "FCCompositeTimeSigBottom"; }
958 
961  {
962  _pArray = NULL;
963  _arraycounter = 0;
964  }
965 
968  {
969  delete [] _pArray;
970  _pArray = NULL;
971  _arraycounter = 0;
972  }
973 
980  {
981  int groupcount = 0;
982  for (int i = 0; i < _arraycounter; i++)
983  {
984  if (_pArray[i].chainstart) groupcount++;
985  }
986  return groupcount;
987  }
988 
996  int GetGroupElementCount(int groupindex)
997  {
998  groupindex++; /* Make the index 1-based internally for this method */
999  int currentindex = 0;
1000  int count = 0;
1001  for (int i = 0; i < _arraycounter; i++)
1002  {
1003  if (_pArray[i].chainstart) currentindex++;
1004  if (currentindex == groupindex) count++;
1005  if (currentindex > groupindex) return count;
1006  }
1007  return count;
1008  }
1009 
1019  int GetGroupElementBeatDuration(int groupindex, int subindex)
1020  {
1021  ECompositeTimeLower* pCompositeTimeLower = _GetGroupElementPtr(groupindex, subindex);
1022  if (!pCompositeTimeLower) return 0;
1023  return pCompositeTimeLower->main;
1024  }
1025 
1029  {
1030  return _arraycounter;
1031  }
1032 
1037  int AddGroup()
1038  {
1039  ECompositeTimeLower* pNewArray = new ECompositeTimeLower[_arraycounter + 1];
1040 
1041  if (_pArray)
1042  {
1043  /* Copy the old data and remove it */
1044  int bytesize = sizeof(ECompositeTimeLower) * _arraycounter;
1045  memcpy(pNewArray, _pArray, bytesize);
1046  delete [] _pArray;
1047  }
1048 
1049  /* Initialize the new data */
1050  ECompositeTimeLower* pNewAddedData = &pNewArray[_arraycounter];
1051  pNewAddedData->chainstart = true;
1052  pNewAddedData->main = 1024;
1053  pNewAddedData ++;
1054 
1055  /* Set new info: */
1056  _arraycounter ++;
1057  _pArray = pNewArray;
1058 
1059  return GetGroupCount() - 1;
1060  }
1061 
1068  bool DeleteGroup(int groupindex)
1069  {
1070  if (groupindex < 0) return false;
1071  if (groupindex >= GetElementCount()) return false;
1072 
1073  /* Assumes that all groups are one element long!!! */
1074  for (int idx = groupindex; idx < _arraycounter - 1; idx ++)
1075  {
1076  TimeEdu32 value = GetGroupElementBeatDuration(idx + 1, 0);
1077  SetGroupElementBeatDuration(idx, 0, value);
1078  }
1079 
1080  _arraycounter --;
1081  return true;
1082  }
1083 
1090  void SetGroupElementBeatDuration(int groupindex, int subindex, twobyte value)
1091  {
1092  ECompositeTimeLower* pCompositeTimeLower = _GetGroupElementPtr(groupindex, subindex);
1093  if (!pCompositeTimeLower) return;
1094  pCompositeTimeLower->main = value;
1095  }
1096 
1099  virtual bool SaveAll()
1100  {
1101  if (_arraycounter == 0) return false;
1102  if (GetCount() == 0)
1103  {
1104 #ifdef PDK_FRAMEWORK_DIAGNOSE
1105  DebugOut("FCCompositeTimeSigBottom()::SaveAll(): No existing collection items to read CMPER.");
1106 #endif
1107  return false; /* There must be an existing CMPER to save to */
1108  }
1109  _RedistributeArray();
1111  CMPER cmper = pFirstInci->_GetDataID()->other.cmper;
1112  DeleteDataForItem(cmper);
1114  }
1115 
1118  virtual bool SaveAllForItem(CMPER cmper)
1119  {
1120  if (_arraycounter == 0) return false;
1121  _RedistributeArray(cmper);
1122  if (GetCount() == 0)
1123  {
1124 #ifdef PDK_FRAMEWORK_DIAGNOSE
1125  DebugOut("FCCompositeTimeSigBottom()::SaveAllForItem(): No existing collection items to read CMPER.");
1126 #endif
1127  return false; /* There must be an existing CMPER to save to */
1128  }
1129 
1130  DeleteDataForItem(cmper);
1132 
1133  return true;
1134  }
1135 };
1136 #endif
1137 
1138 
1139 #ifdef PDK_FRAMEWORK_SHAPES
1140 
1141 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
1142 
1143 #include "pragma_align_begin.h"
1144 #if OPERATING_SYSTEM == WINDOWS
1145 struct __EDTPathData2014 /* 13 bytes */
1146 {
1147  double f;
1148  fourbyte l;
1149  onebyte isFloat;
1150 };
1151 #elif OPERATING_SYSTEM == MAC_OS
1152 struct __EDTPathData2014 /* 16 bytes */
1153 {
1154  double f;
1155  fourbyte l;
1156  fourbyte isFloat;
1157 };
1158 #endif
1159 #include "pragma_align_end.h"
1160 
1161 #endif /* #ifndef DOXYGEN_SHOULD_IGNORE_THIS */
1162 
1171 {
1172  ETAG _tag; /* Instruction tag */
1173  int _size; /* number of parameters */
1174  EDTPathData2002* _pPathDataOld; /* Pointer to data (pre-2014) */
1175  __EDTPathData2014* _pPathData2014; /* Pointer to data for Finale 2014 */
1176 #if FXT_VERSION >= FINALEVERSION_2014B
1177  EDTPathData2014b* _pPathData2014b; /* Pointer to data for Finale 2014b and later */
1178 #endif
1179  mutable FCString _tagstring; /* For GetTagAsString() */
1180 
1181  bool _Is2014Format();
1182  bool _Is2014bFormat();
1183 
1184  void _SetTag(ETAG tag)
1185  {
1186  _tag = tag;
1187  }
1188 
1190  void _AllocateParameters(int parametercount);
1191 
1193  void _SetFourbyteParameter(int parameterindex, fourbyte intvalue);
1194 
1195 public:
1196 
1202  {
1204  SHAPETAG_SETFONT = st_setfont,
1205 
1207  SHAPETAG_STARTOBJECT = st_startobject,
1208 
1210  SHAPETAG_STARTGROUP = st_startgroup,
1211 
1213  SHAPETAG_ENDGROUP = st_endgroup,
1214 
1216  SHAPETAG_DRAWCHAR = st_drawchar,
1217 
1219  SHAPETAG_STROKE = st_stroke,
1220 
1222  SHAPETAG_RMOVETO = st_rmoveto,
1223 
1225  SHAPETAG_LINEWIDTH = st_linewidth,
1226 
1228  SHAPETAG_SETDASH = st_setdash,
1229 
1231  SHAPETAG_LINETO = st_rlineto,
1232 
1234  SHAPETAG_SETGRAY = st_setgray,
1235 
1237  SHAPETAG_ELLIPSE = st_ellipse,
1238 
1240  SHAPETAG_FILLSOLID = st_fillsolid,
1241 
1243  SHAPETAG_CURVETO = st_curveto,
1244 
1246  SHAPETAG_SLUR = st_slur,
1247 
1249  SHAPETAG_RECTANGLE = st_rectangle,
1250 
1252  SHAPETAG_CLOSEPATH = st_closepath,
1253 
1255  SHAPETAG_BRACKET = st_bracket,
1256 
1258  SHAPETAG_NULL = st_null
1259  };
1260 
1262  FCShapeDefInstruction(ETAG tag, int instructionsize,
1263  void* pPathData);
1264 
1265  /* Constructor for using new, created data */
1267 
1281  void _SetMemory(EDTPathInst* pPathInstruction, void* pPathData, int offset);
1282 
1284  virtual ~FCShapeDefInstruction();
1285 
1291  int GetCount() const { return _size; }
1292 
1299  ETAG GetTag() const
1300  {
1301  return _tag;
1302  }
1303 
1305  virtual bool IsIdentical(__FCBase* pTestObject)
1306  {
1307  FCShapeDefInstruction* pTestInstruction = (FCShapeDefInstruction*) pTestObject;
1308  if (GetCount() != pTestInstruction->GetCount()) return false;
1309  if (GetTag() != pTestInstruction->GetTag()) return false;
1310  int count = GetCount();
1311  for (int i = 0; i < count; i++)
1312  {
1313  if (GetFourbyteData(i) != pTestInstruction->GetFourbyteData(i)) return false;
1314  }
1315  return true;
1316  }
1317 
1323  const char* GetTagAsString() const
1324  {
1325  _tagstring.Clear();
1326  switch (GetTag()) {
1327  case st_setfont:
1328  _tagstring.SetCString("setfont");
1329  break;
1330  case st_startobject:
1331  _tagstring.SetCString("startobject");
1332  break;
1333  case st_startgroup:
1334  _tagstring.SetCString("startgroup");
1335  break;
1336  case st_endgroup:
1337  _tagstring.SetCString("endgroup");
1338  break;
1339  case st_drawchar:
1340  _tagstring.SetCString("drawchar");
1341  break;
1342  case st_stroke:
1343  _tagstring.SetCString("stroke");
1344  break;
1345  case st_rmoveto:
1346  _tagstring.SetCString("rmoveto");
1347  break;
1348  case st_linewidth:
1349  _tagstring.SetCString("linewidth");
1350  break;
1351  case st_setdash:
1352  _tagstring.SetCString("setdash");
1353  break;
1354  case st_rlineto:
1355  _tagstring.SetCString("rlineto");
1356  break;
1357  case st_setgray:
1358  _tagstring.SetCString("setgrey");
1359  break;
1360  case st_ellipse:
1361  _tagstring.SetCString("ellipse");
1362  break;
1363  case st_fillsolid:
1364  _tagstring.SetCString("fillsolid");
1365  break;
1366  case st_curveto:
1367  _tagstring.SetCString("curveto");
1368  break;
1369  case st_slur:
1370  _tagstring.SetCString("slur");
1371  break;
1372  case st_rectangle:
1373  _tagstring.SetCString("rectangle");
1374  break;
1375  case st_closepath:
1376  _tagstring.SetCString("closepath");
1377  break;
1378  case st_bracket:
1379  _tagstring.SetCString("bracket");
1380  break;
1381  case 0:
1382  _tagstring.SetCString("Null");
1383  break;
1384  default:
1385  _tagstring.AppendCharacter((GetTag() & 0xff00) / 256);
1386  _tagstring.AppendCharacter(GetTag() & 0xff);
1387  break;
1388  }
1389 
1390  return _tagstring.GetCString();
1391  }
1392 
1400  fourbyte GetFourbyteData(int index);
1401 
1413  bool SetFourbyteData(int index, fourbyte fbvalue)
1414  {
1415  if (index < 0) return false;
1416  if (index >= _size) return false;
1417  _SetFourbyteParameter(index, fbvalue);
1418  return true;
1419  }
1420 
1428  double GetFloatData(int index);
1429 
1442  void Init_StartObject(int xorigin, int yorigin, int left, int top, int right, int bottom, int xtransform = 1000, int ytransform = 1000, int rotation = 0)
1443  {
1444  _SetTag(st_startobject);
1445  _AllocateParameters(11);
1446  _SetFourbyteParameter(0, xorigin);
1447  _SetFourbyteParameter(1, yorigin);
1448  _SetFourbyteParameter(2, left);
1449  _SetFourbyteParameter(3, top);
1450  _SetFourbyteParameter(4, right);
1451  _SetFourbyteParameter(5, bottom);
1452  _SetFourbyteParameter(6, xtransform);
1453  _SetFourbyteParameter(7, ytransform);
1454  _SetFourbyteParameter(8, rotation);
1455  /* The rest of the parameters is 0 */
1456  }
1457 
1462  void Init_StartGroup(int xorigin, int yorigin, int left, int top, int right, int bottom, int xtransform = 1000, int ytransform = 1000, int rotation = 0)
1463  {
1464  _SetTag(st_startgroup);
1465  _AllocateParameters(11);
1466  _SetFourbyteParameter(0, xorigin);
1467  _SetFourbyteParameter(1, yorigin);
1468  _SetFourbyteParameter(2, left);
1469  _SetFourbyteParameter(3, top);
1470  _SetFourbyteParameter(4, right);
1471  _SetFourbyteParameter(5, bottom);
1472  _SetFourbyteParameter(6, xtransform);
1473  _SetFourbyteParameter(7, ytransform);
1474  _SetFourbyteParameter(8, rotation);
1475  /* The rest of the parameters is 0 */
1476  }
1477 
1482  {
1483  _SetTag(st_endgroup);
1484  _AllocateParameters(0);
1485  }
1486 
1488  void Init_RMoveTo(int x, int y)
1489  {
1490  _SetTag(st_rmoveto);
1491  _AllocateParameters(2);
1492  _SetFourbyteParameter(0, x);
1493  _SetFourbyteParameter(1, y);
1494  }
1495 
1497  void Init_CurveTo(int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
1498  {
1499  _SetTag(st_curveto);
1500  _AllocateParameters(6);
1501  _SetFourbyteParameter(0, x1);
1502  _SetFourbyteParameter(1, y1);
1503  _SetFourbyteParameter(2, x2);
1504  _SetFourbyteParameter(3, y2);
1505  _SetFourbyteParameter(4, endpt_x);
1506  _SetFourbyteParameter(5, endpt_y);
1507  }
1508 
1510  void Init_Slur(int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
1511  {
1512  _SetTag(st_slur);
1513  _AllocateParameters(6);
1514  _SetFourbyteParameter(0, x1);
1515  _SetFourbyteParameter(1, y1);
1516  _SetFourbyteParameter(2, x2);
1517  _SetFourbyteParameter(3, y2);
1518  _SetFourbyteParameter(4, endpt_x);
1519  _SetFourbyteParameter(5, endpt_y);
1520  }
1521 
1522 
1526  void Init_LineWidth(int linewidth)
1527  {
1528  _SetTag(st_linewidth);
1529  _AllocateParameters(1);
1530  _SetFourbyteParameter(0, linewidth);
1531  }
1532 
1536  void Init_SetGrey(int greyvalue)
1537  {
1538  _SetTag(st_setgray);
1539  _AllocateParameters(1);
1540  _SetFourbyteParameter(0, greyvalue);
1541  }
1542 
1545  {
1546  _SetTag(st_fillsolid);
1547  _AllocateParameters(0);
1548  }
1549 
1552  {
1553  _SetTag(st_closepath);
1554  _AllocateParameters(0);
1555  }
1556 
1562  void Init_Ellipse(int width, int height)
1563  {
1564  _SetTag(st_ellipse);
1565  _AllocateParameters(2);
1566  _SetFourbyteParameter(0, width);
1567  _SetFourbyteParameter(1, height);
1568  }
1569 
1574  void Init_Rectangle(int width, int height)
1575  {
1576  _SetTag(st_rectangle);
1577  _AllocateParameters(2);
1578  _SetFourbyteParameter(0, width);
1579  _SetFourbyteParameter(1, height);
1580  }
1581 
1585  void Init_DrawChar(eUniChar16 character)
1586  {
1587  _SetTag(st_drawchar);
1588  _AllocateParameters(1);
1589  _SetFourbyteParameter(0, character);
1590  }
1591 
1595  void Init_SetFont(FCFontInfo* pFontInfo)
1596  {
1597  _SetTag(st_setfont);
1598  _AllocateParameters(3);
1599  _SetFourbyteParameter(0, pFontInfo->GetNameByID()); /* Enigma font ID */
1600  _SetFourbyteParameter(1, pFontInfo->GetSize()); /* font size */
1601  _SetFourbyteParameter(2, pFontInfo->GetEnigmaStyles()); /* efx */
1602  }
1603 
1606  void Init_SetDash(int dashlength, int spacebetween)
1607  {
1608  _SetTag(st_setdash);
1609  _AllocateParameters(2);
1610  _SetFourbyteParameter(0, dashlength);
1611  _SetFourbyteParameter(1, spacebetween);
1612  }
1613 
1615  void Init_RLineTo(int x, int y)
1616  {
1617  _SetTag(st_rlineto);
1618  _AllocateParameters(2);
1619  _SetFourbyteParameter(0, x);
1620  _SetFourbyteParameter(1, y);
1621  }
1622 
1624  void Init_Bracket(int brackettype)
1625  {
1626  _SetTag(st_bracket);
1627  _AllocateParameters(1);
1628  _SetFourbyteParameter(0, brackettype);
1629  }
1630 
1633  {
1634  _SetTag(st_stroke);
1635  _AllocateParameters(0);
1636  }
1637 
1639  void Init_Null()
1640  {
1641  _SetTag(0);
1642  _AllocateParameters(0);
1643  }
1644 
1645 
1646 #if PDK_FRAMEWORK_DEBUG
1647  virtual void DebugDump()
1648  {
1650 
1651  DebugOutDigit("sizeof double: ", sizeof(double));
1652  DebugOutString("Tag: ", GetTagAsString());
1653 
1654  DebugOutDigit("No of parameters: ", _size);
1655  for (int i = 0; i < _size; i++)
1656  {
1657  FCString parameterstring("Parameter ");
1658  parameterstring.AppendInteger(i + 1);
1659  parameterstring.AppendCString(": ");
1660  parameterstring.AppendInteger(GetFourbyteData(i));
1661  parameterstring.AppendCString(" (");
1662  parameterstring.AppendFloat(GetFloatData(i));
1663  parameterstring.AppendCString(")");
1664  DebugOutString("", &parameterstring);
1665  }
1666  }
1667 #endif
1668 };
1669 #endif /* PDK_FRAMEWORK_SHAPES */
1670 
1671 
1672 #ifdef PDK_FRAMEWORK_SHAPES
1673 
1681 {
1682 public:
1683  virtual const char* ClassName() { return "FCShapeDefInstructions"; }
1684 
1690 
1699  {
1700  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1701  pInstruction->Init_Null();
1702  Add(pInstruction);
1703  return pInstruction;
1704  }
1705 
1723  FCPoint* pBoundRightBottom,
1724  int xtransform = 1000, int ytransform = 1000,
1725  int rotation = 0)
1726  {
1727  if (!pOrigin) return NULL;
1728  if (!pBoundLeftTop) return NULL;
1729  if (!pBoundRightBottom) return NULL;
1730  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1731 
1732  pInstruction->Init_StartObject((int) pOrigin->GetX(),
1733  (int) pOrigin->GetY(),
1734  (int) pBoundLeftTop->GetX(),
1735  (int) pBoundLeftTop->GetY(),
1736  (int) pBoundRightBottom->GetX(),
1737  (int) pBoundRightBottom->GetY(),
1738  xtransform, ytransform, rotation);
1739  Add(pInstruction);
1740  return pInstruction;
1741  }
1742 
1750  FCPoint* pBoundRightBottom,
1751  int xtransform = 1000, int ytransform = 1000,
1752  int rotation = 0)
1753  {
1754  if (!pOrigin) return NULL;
1755  if (!pBoundLeftTop) return NULL;
1756  if (!pBoundRightBottom) return NULL;
1757  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1758 
1759  pInstruction->Init_StartGroup((int) pOrigin->GetX(),
1760  (int) pOrigin->GetY(),
1761  (int) pBoundLeftTop->GetX(),
1762  (int) pBoundLeftTop->GetY(),
1763  (int) pBoundRightBottom->GetX(),
1764  (int) pBoundRightBottom->GetY(),
1765  xtransform, ytransform, rotation);
1766  Add(pInstruction);
1767  return pInstruction;
1768  }
1769 
1773  {
1774  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1775  pInstruction->Init_EndGroup();
1776  Add(pInstruction);
1777  return pInstruction;
1778  }
1779 
1789  {
1790  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1791  pInstruction->Init_LineWidth(linewidth);
1792  Add(pInstruction);
1793  return pInstruction;
1794  }
1795 
1803  {
1804  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1805  pInstruction->Init_SetGrey(percent);
1806  Add(pInstruction);
1807  return pInstruction;
1808  }
1809 
1815  {
1816  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1817  pInstruction->Init_FillSolid();
1818  Add(pInstruction);
1819  return pInstruction;
1820  }
1821 
1828  {
1829  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1830  pInstruction->Init_ClosePath();
1831  Add(pInstruction);
1832  return pInstruction;
1833  }
1834 
1842  FCShapeDefInstruction* AddEllipse(int width, int height)
1843  {
1844  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1845  pInstruction->Init_Ellipse(width, height);
1846  Add(pInstruction);
1847  return pInstruction;
1848  }
1849 
1857  FCShapeDefInstruction* AddRectangle(int width, int height)
1858  {
1859  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1860  pInstruction->Init_Rectangle(width, height);
1861  Add(pInstruction);
1862  return pInstruction;
1863  }
1864 
1878  FCShapeDefInstruction* AddCurveTo(int ctrlpt_height = 72)
1879  {
1880  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1881  pInstruction->Init_CurveTo(72, ctrlpt_height, 144, 0, 72, -ctrlpt_height);
1882  Add(pInstruction);
1883  return pInstruction;
1884  }
1885 
1910  FCShapeDefInstruction* AddCurveToDetails(int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
1911  {
1912  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1913  pInstruction->Init_CurveTo(x1, y1, x2, y2, endpt_x, endpt_y);
1914  Add(pInstruction);
1915  return pInstruction;
1916  }
1917 
1925  FCShapeDefInstruction* AddSlur(int ctrlpt_height = 72)
1926  {
1927  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1928  pInstruction->Init_Slur(72, ctrlpt_height, 144, 0, 72, -ctrlpt_height);
1929  Add(pInstruction);
1930  return pInstruction;
1931  }
1932 
1939  {
1940  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1941  pInstruction->Init_Stroke();
1942  Add(pInstruction);
1943  return pInstruction;
1944  }
1945 
1953  FCShapeDefInstruction* AddSetDash(int dashlength, int spacebetween)
1954  {
1955  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1956  pInstruction->Init_SetDash(dashlength, spacebetween);
1957  Add(pInstruction);
1958  return pInstruction;
1959  }
1960 
1969  {
1970  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1971  pInstruction->Init_RLineTo(x, y);
1972  Add(pInstruction);
1973  return pInstruction;
1974  }
1975 
1983  {
1984  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
1985  pInstruction->Init_Bracket(brackettype);
1986  Add(pInstruction);
1987  return pInstruction;
1988  }
1989 
1995  {
1996  return AddSetDash(18, 0);
1997  }
1998 
2007  {
2008  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
2009  pInstruction->Init_RMoveTo(x, y);
2010  Add(pInstruction);
2011  return pInstruction;
2012  }
2013 
2024  {
2025  if (!pFontInfo) return NULL;
2026  FCShapeDefInstruction* pInstruction = new FCShapeDefInstruction();
2027  pInstruction->Init_SetFont(pFontInfo);
2028  Add(pInstruction);
2029  return pInstruction;
2030  }
2031 
2043  FCShapeDefInstruction* AddDrawChar(eUniChar16 character);
2044 
2054  FCShapeDefInstruction* AddDrawChars(const char* pszString)
2055  {
2056  if (!pszString) return NULL;
2057  int length = (int) strlen(pszString);
2058  FCShapeDefInstruction* pReturn = NULL;
2059  for (int i = 0; i < length; i++)
2060  {
2061  pReturn = AddDrawChar(pszString[i]);
2062  }
2063  return pReturn;
2064  }
2065 
2078  {
2079  if (!pString) return NULL;
2080  int length = pString->GetLength();
2081  FCShapeDefInstruction* pReturn = NULL;
2082  for (int i = 0; i < length; i++)
2083  {
2084  pReturn = AddDrawChar(pString->GetCharacterAt(i));
2085  }
2086  return pReturn;
2087  }
2088 };
2089 #endif /* PDK_FRAMEWORK_SHAPES */
2090 
2091 #ifdef PDK_FRAMEWORK_SHAPES
2092 #define __ot_Shape_WORKAROUNDTAG MAKEEXTAG(edOther,'S','D')
2093 
2110 {
2111 public:
2115  {
2116  SHAPEDEFTYPE_UNKNOWN = -1,
2117  SHAPEDEFTYPE_OTHER = 0,
2118  SHAPEDEFTYPE_ARTICULATION = 1,
2119  SHAPEDEFTYPE_BARLINE = 2,
2120  SHAPEDEFTYPE_EXECUTABLESHAPE = 3,
2121  SHAPEDEFTYPE_EXPRESSION = 4,
2122  SHAPEDEFTYPE_NOTE = 5,
2123  SHAPEDEFTYPE_FRAME = 6,
2124  SHAPEDEFTYPE_ARROWHEAD = 7,
2125  SHAPEDEFTYPE_FRETBOARD = 8,
2126  SHAPEDEFTYPE_CLEF = 9
2127  };
2128 
2129 private:
2130 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2131  EDTShape* _TypeCast() const { return (EDTShape*)_datablock; }
2132 #if FXT_VERSION >= FINALEVERSION_2014B
2133  EDTShape2014b* _TypeCast2014b() const { return (EDTShape2014b*)_datablock; }
2134 #endif
2135  /* _isemptyshape & _shapedeftype are used for pre2014b, to
2136  try to work around load crashes for empty shapes on Windows */
2137  bool _isemptyshape;
2138  SHAPEDEF_TYPES _shapedeftype;
2139 
2140  void _AllocateMemory(int size)
2141  {
2142  if (size == 0)
2143  {
2144  _datablock = NULL;
2145  _loadedsize = 0;
2146  return;
2147  }
2148  _datablock = new char [size];
2149  memset(_datablock, 0, size);
2150  _loadedsize = size;
2151  }
2152 
2153  bool _Is2014Format() const;
2154 
2155  bool _Is2014bFormat() const;
2156 
2161  bool _SaveType(SHAPEDEF_TYPES shapedeftype)
2162  {
2163  /* On Fin2014b, the shape type is available in the struct. */
2164  if (_Is2014bFormat()) return true;
2165 
2166  twobyte oneinci[6];
2167  EDataID dataID;
2168  dataID.other.cmper = _dataid.other.cmper;
2169  dataID.other.inci = 0;
2170  fourbyte size = sizeof(oneinci);
2171  /* Load the raw data (no special extag!) */
2172  if (!FX_LoadEData(__ot_Shape_WORKAROUNDTAG, &dataID, &oneinci, &size)) return false;
2173  oneinci[2] = (twobyte) shapedeftype;
2174  _shapedeftype = shapedeftype;
2175  return FX_SaveEData(__ot_Shape_WORKAROUNDTAG, &dataID, &oneinci, size) != 0;
2176  }
2177 
2182  bool _LoadType()
2183  {
2184  /* On Fin2014b, the shape type is available in the struct */
2185  if (_Is2014bFormat()) return true;
2186 
2187  twobyte oneinci[6];
2188  EDataID dataID;
2189  dataID.other.cmper = _dataid.other.cmper;
2190  dataID.other.inci = 0;
2191  fourbyte size = sizeof(oneinci);
2192  /* Load the raw data (no special extag!) */
2193  if (!FX_LoadEData(__ot_Shape_WORKAROUNDTAG, &dataID, &oneinci, &size)) return false;
2194  _shapedeftype = (SHAPEDEF_TYPES) oneinci[2];
2195  return true;
2196  }
2197 
2198 protected:
2201  virtual EXTAG Tag() { return GetCustomTag() ? GetCustomTag() : ot_Shape; }
2202 
2203  virtual EVERSION EnigmaVersion();
2204 
2205  virtual void CloneMemoryFrom(__FCBaseData* pSource)
2206  {
2207  /* Copy the heap: */
2209  /* Copy the empty shape state */
2210  _isemptyshape = ((FCShapeDef*) pSource)->_GetIsEmptyShape();
2211  }
2212 
2213  virtual int DataSizeLoad()
2214  {
2215  fourbyte size;
2216  if (!FX_LoadEData(Tag(), &_dataid, NULL, &size, EnigmaVersion())) return 0;
2217 
2218  if (!_Is2014bFormat())
2219  {
2220  /* Attempt to workaround for empty shape crashes on earlier Finale versions. */
2221  SetCustomTag((size == sizeof(EDTShape)) ? __ot_Shape_WORKAROUNDTAG : ot_Shape);
2222  }
2223  return size;
2224  }
2225 
2226  virtual void* Allocate()
2227  {
2228  _AllocateMemory(DataSizeLoad());
2229  return _datablock;
2230  }
2231 
2232  virtual void Deallocate()
2233  {
2234  if (_datablock) delete [] (char*) _datablock;
2235  _datablock = NULL;
2236  _loadedsize = 0;
2237  }
2238 
2239  virtual bool IsDynamicSize() { return true; }
2240 
2241  virtual __FCBaseData* CreateObject() { return new FCShapeDef(); }
2242 
2247  EDTPathInst* _GetPathInstructionArray()
2248  {
2249  if (_isemptyshape) return NULL;
2250  if (_Is2014bFormat())
2251  {
2252 #if FXT_VERSION >= FINALEVERSION_2014B
2253  return (EDTPathInst*) ((char *)_datablock + _TypeCast2014b()->instrucOff);
2254 #endif
2255  }
2256  else
2257  {
2258  return (EDTPathInst*) ((char *)_datablock + _TypeCast()->instrucOff);
2259  }
2260  return NULL;
2261  }
2262 
2268  void* _GetPathDataArray()
2269  {
2270  if (_isemptyshape) return NULL;
2271  if (_Is2014bFormat())
2272  {
2273 #if FXT_VERSION >= FINALEVERSION_2014B
2274  return (void*) ((char *)_datablock + _TypeCast2014b()->dataOff);
2275 #endif
2276  }
2277  else
2278  {
2279  return (void*) ((char *)_datablock + _TypeCast()->dataOff);
2280  }
2281  return NULL;
2282  }
2283 
2293  bool _EmptyShapeCheck(CMPER cmper, bool* pIsEmpty)
2294  {
2295 #ifdef PDK_FRAMEWORK_DIAGNOSE
2296  if (_Is2014bFormat())
2297  {
2298  DebugOut("FCShapeDef::_EmptyShapeCheck was called on 2014b struct.");
2299  return false;
2300  }
2301 #endif
2302 
2303  *pIsEmpty = true;
2304  //twobyte shapetestinci[6];
2305  EDTShape shapetest;
2306  memset(&shapetest, 0, sizeof(shapetest));
2307  EDataID dataID;
2308  dataID.other.cmper = cmper;
2309  dataID.other.inci = 0;
2310  fourbyte size = sizeof(shapetest);
2311  /* Load the raw data (no special extag) */
2312  bool result = FX_LoadEData(__ot_Shape_WORKAROUNDTAG,
2313  &dataID, &shapetest, &size, EnigmaVersion()) != 0;
2314  if (!result) return false;
2315  int loopcount = size / sizeof(twobyte);
2316  twobyte* pNonZeroCheck = (twobyte*) &shapetest;
2317  for (int i = 0; i < loopcount; i++)
2318  {
2319  if (pNonZeroCheck[i])
2320  {
2321  if (i == 1) continue; /* On the 1st twobyte (0-based), there might
2322  be data even for empty shapes!!! */
2323  if (i == 2) continue; /* On the 2nd twobyte (0-based), there might
2324  be data even for empty shapes!!! */
2325  *pIsEmpty = false;
2326  return true;
2327  }
2328  }
2329  return true;
2330  }
2331 
2332 
2339  void* _GetInstructionDataPointer(int index);
2340 
2341 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
2342 public:
2343  virtual const char* ClassName() { return "FCShapeDef"; }
2344  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_SHAPEDEF; }
2345 
2348  {
2349  _isemptyshape = true;
2350  _shapedeftype = SHAPEDEFTYPE_UNKNOWN;
2351  }
2352 
2353  /* Virtual destructor */
2354  virtual ~FCShapeDef()
2355  {
2356  Deallocate();
2357  }
2358 
2362  bool _GetIsEmptyShape() { return _isemptyshape; }
2363 
2367  {
2368  if (_Is2014bFormat()) return false;
2369 
2370  EDataID dataID;
2371  twobyte buffer[6];
2372  dataID.other.cmper = GetItemNo();
2373  dataID.other.inci = 0;
2374  fourbyte size = sizeof(buffer);
2375  memset(buffer, 0, sizeof(buffer));
2376  if (!FX_LoadEData(__ot_Shape_WORKAROUNDTAG, &dataID, buffer, &size, FINALEVERSION_2010)) return false;
2377  return ((buffer[2] & 0x0008) != 0);
2378  }
2379 
2381  virtual bool LoadFirst()
2382  {
2383  return Load(1);
2384  }
2385 
2386  virtual bool DeleteData()
2387  {
2388  if (CalcProtected()) return false;
2389  return __FCNoInciOther::DeleteData();
2390  }
2391 
2393  virtual bool LoadNext()
2394  {
2395  return Load(GetItemNo() + 1);
2396  }
2397 
2401  virtual bool Load(CMPER itemno)
2402  {
2403  bool isemptyshape;
2404 
2405  bool result = false;
2406  if (_Is2014bFormat())
2407  {
2408  /* Normal load */
2409  result = __FCNoInciOther::Load(itemno);
2410  if (result)
2411  {
2412 #if FXT_VERSION >= FINALEVERSION_2014B
2413  _shapedeftype = (SHAPEDEF_TYPES) _TypeCast2014b()->shapeType;
2414  /* _isemptyshape shouldn't actively be used on 2014b+ */
2415  _isemptyshape = (_TypeCast2014b()->instrucLen == 0);
2416 #endif
2417  }
2418  else
2419  {
2420  _shapedeftype = SHAPEDEFTYPE_UNKNOWN;
2421  _isemptyshape = true;
2422  }
2423  }
2424  else
2425  {
2426  /* On pre2014b, try to work around the empty shape crash bug */
2427  if (!_EmptyShapeCheck(itemno, &isemptyshape)) return false;
2428  SetCustomTag(isemptyshape ? __ot_Shape_WORKAROUNDTAG : ot_Shape);
2429  _isemptyshape = isemptyshape;
2430  result = __FCNoInciOther::Load(itemno);
2431  if (result)
2432  _LoadType();
2433  else
2434  _shapedeftype = SHAPEDEFTYPE_UNKNOWN;
2435  }
2436  return result;
2437  }
2438 
2452 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
2454 #else
2455  int
2456 #endif
2457  GetType() const {
2458  if (!DataIsLoaded()) return SHAPEDEFTYPE_UNKNOWN;
2459  if (_Is2014bFormat())
2460  {
2461 #if FXT_VERSION >= FINALEVERSION_2014B
2462  return (FCShapeDef::SHAPEDEF_TYPES) _TypeCast2014b()->shapeType;
2463 #endif
2464  }
2465  return _shapedeftype;
2466  }
2467 
2478 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
2480 #else
2481  int
2482 #endif
2483  shapedeftype
2484  )
2485  {
2486  if (_Is2014bFormat())
2487  {
2488  /* On Finale 2014b, the shape type is in the struct */
2489 #if FXT_VERSION >= FINALEVERSION_2014B
2490  _TypeCast2014b()->shapeType = shapedeftype;
2491 #endif
2492  }
2493  if (!SaveNew()) return false;
2494  if (!_Is2014bFormat())
2495  {
2496  if (!_SaveType((SHAPEDEF_TYPES) shapedeftype)) return false;
2497  }
2498  return true;
2499  }
2500 
2513 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
2515 #else
2516  twobyte
2517 #endif
2518  shapedeftype)
2519  {
2520  if (_Is2014bFormat())
2521  {
2522  /* In Finale 2014b, the shape type is in the struct */
2523 #if FXT_VERSION >= FINALEVERSION_2014B
2524  _TypeCast2014b()->shapeType = shapedeftype;
2525 #endif
2526  }
2527  if (!Save()) return false; /* Aug 05, 2017: This was SaveNew(), seems very wrong? */
2528  if (!_Is2014bFormat())
2529  {
2530  if (!_SaveType((SHAPEDEF_TYPES) shapedeftype)) return false;
2531  }
2532  return true;
2533  }
2534 
2535 
2540  fourbyte GetDataCount() const
2541  {
2542  if (_Is2014bFormat())
2543  {
2544 #if FXT_VERSION >= FINALEVERSION_2014B
2545  return _isemptyshape ? 0 : _TypeCast2014b()->dataLen;
2546 #endif
2547  }
2548  else
2549  {
2550  return _isemptyshape ? 0 : _TypeCast()->dataLen;
2551  }
2552  return 0;
2553  }
2554 
2562  fourbyte GetInstructionsCount() const
2563  {
2564  int returnval = 0;
2565  if (_Is2014bFormat())
2566  {
2567 #if FXT_VERSION >= FINALEVERSION_2014B
2568  /* On 2014b+, _isemptyshape shouldn't be used. */
2569  returnval = _TypeCast2014b()->instrucLen;
2570 #endif
2571  }
2572  else
2573  {
2574  returnval = _isemptyshape ? 0 : _TypeCast()->instrucLen;
2575  /* Have some range check, since empty shapes can have
2576  very strange values on earlier Finale versions. */
2577  if ((returnval > 300) || (returnval < 0)) return -1;
2578  }
2579  return returnval;
2580  }
2581 
2590  ETAG GetInstructionTag(int index)
2591  {
2592  if (index < 0) return 0;
2593  if (index >= GetInstructionsCount()) return 0;
2594  EDTPathInst* pPathArray = _GetPathInstructionArray();
2595  return pPathArray[index].tag;
2596  }
2597 
2600  int GetInstructionSize(int index)
2601  {
2602  if (index < 0) return -1;
2603  if (index >= GetInstructionsCount()) return -1;
2604  EDTPathInst* pPathArray = _GetPathInstructionArray();
2605  return pPathArray[index].numdata;
2606  }
2607 
2619 
2620 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
2621 
2622  FCShapeDefInstructions* CreateInstructions_GC();
2623 #endif
2624 
2639 
2640 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
2641 
2642  FCStrings* CreateTextStrings_GC();
2643 #endif
2644 
2645 
2654  bool RebuildInstructions(FCShapeDefInstructions* pCollection);
2655 
2663  bool GetFontInfo(int index, FCFontInfo* pFontInfo);
2664 
2672  bool SetFontInfo(int index, FCFontInfo* pFontInfo);
2673 
2689  bool ExportAsSVGFile(FCString* pFileName, float scaling, const char* pszUnit);
2690 
2691 #ifdef PDK_FRAMEWORK_DEBUG
2692  virtual void DebugDump()
2693  {
2695  DebugOutDigit("Data size: ", (int) _loadedsize);
2696  DebugOutDigit("Instruction count: ", GetInstructionsCount());
2697  DebugOutDigit("Data count: ", GetDataCount());
2698  DebugOutDigit("sizeof EDTShape: ", sizeof(EDTShape));
2699  DebugOutDigit("sizeof EDTPathInst: ", sizeof(EDTPathInst));
2700  DebugOutDigit("sizeof EDTPathData2002: ", sizeof(EDTPathData2002));
2701 
2702 
2703  //FCShapeDefInstructions* pInstructions = CreateInstructions();
2704  //pInstructions->DebugDump();
2705  //delete pInstructions;
2706 
2707 /* DebugOutDigit("Instruction count: ", GetInstructionsCount());
2708  for (int i = 0; i < GetInstructionsCount(); i++)
2709  {
2710  DebugOutDigit("Instruction: ", i);
2711  if (GetInstructionTag(i) == 0)
2712  {
2713  DebugOut("Tag: st_null");
2714  }
2715  else
2716  {
2717  FCString firstchar, secondchar;
2718  firstchar.Append((GetInstructionTag(i) & 0xff00) / 0x100);
2719  secondchar.Append((GetInstructionTag(i) & 0x00ff));
2720  FCString resultstring;
2721  resultstring.Append(&firstchar);
2722  resultstring.Append(", ");
2723  resultstring.Append(&secondchar);
2724  DebugOutString("Tag: ", &resultstring);
2725  }
2726  } */
2727  }
2728 
2730  void InstructionDebugDump(int instructionindex);
2731 
2732 #endif /* PDK_FRAMEWORK_DEBUG */
2733 };
2734 #endif /* PDK_FRAMEWORK_SHAPES */
2735 
2736 
2737 
2744 {
2745 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2746 
2747  EDTEnclosure _enclosuredataold; /* For loaded enclosures - DO
2748  * NOT REFERENCE this directly in the code!!!! */
2749 
2750  FIN25_4_CODE(EDTEnclosure25_4 _enclosuredata25_4;) /* For loaded enclosures - DO
2751  * NOT REFERENCE this directly in the code!!!!
2752  * Note that this data use a different EXTAG
2753  * than the old data */
2754 
2755  EDTEnclosure* _pEnclosureOld; /* Assigned pointer, pre 25.4 */
2756  FIN25_4_CODE(EDTEnclosure25_4* _pEnclosure25_4;) /* Assigned pointer, Finale 25.4 */
2757 
2758 
2759  /* Returns true if the 25.4 version of the struct should be used. */
2760  bool Use25_4Version() const;
2761 
2762  /* Returns a pointer to the flag member of the struct */
2763  const FLAG_16* _GetFlagPtr() const
2764  {
2765  FIN25_4_CODE( if (Use25_4Version()) return &_pEnclosure25_4->flag; )
2766  return &_pEnclosureOld->flag;
2767  }
2768 
2769  /* Returns a pointer to the lineWidth member of the struct */
2770  const EVPUFixedShort* _GetLineWidthPtr() const
2771  {
2772  FIN25_4_CODE( if (Use25_4Version()) return &_pEnclosure25_4->lineWidth; )
2773  return &_pEnclosureOld->lineWidth;
2774  }
2775 
2776  /* Returns a pointer to the xAdd member of the struct */
2777  const Evpu16* _GetXAddPtr() const
2778  {
2779  FIN25_4_CODE( if (Use25_4Version()) return &_pEnclosure25_4->xAdd; )
2780  return &_pEnclosureOld->xAdd;
2781  }
2782 
2783  /* Returns a pointer to the yAdd member of the struct */
2784  const Evpu16* _GetYAddPtr() const
2785  {
2786  FIN25_4_CODE( if (Use25_4Version()) return &_pEnclosure25_4->yAdd; )
2787  return &_pEnclosureOld->yAdd;
2788  }
2789 
2790  /* Returns a pointer to the xMargin member of the struct */
2791  const Evpu16* _GetXMarginPtr() const
2792  {
2793  FIN25_4_CODE( if (Use25_4Version()) return &_pEnclosure25_4->xMargin; )
2794  return &_pEnclosureOld->xMargin;
2795  }
2796 
2797  /* Returns a pointer to the yMargin member of the struct */
2798  const Evpu16* _GetYMarginPtr() const
2799  {
2800  FIN25_4_CODE( if (Use25_4Version()) return &_pEnclosure25_4->yMargin; )
2801  return &_pEnclosureOld->yMargin;
2802  }
2803 
2804 protected:
2805  virtual EXTAG Tag()
2806  {
2807  if (GetCustomTag()) return GetCustomTag();
2808  FIN25_4_CODE( if (Use25_4Version()) return ot_TextExpEnclosure25_4; )
2809  return ot_TextExpEnclosure;
2810  }
2811  virtual int DataSizeLoad()
2812  {
2813  FIN25_4_CODE( if (Use25_4Version()) return sizeof(EDTEnclosure25_4); )
2814  return sizeof(EDTEnclosure);
2815  }
2816 
2817  /* Returns a pointer either to the 25.4 or the old enclosure struct */
2818  virtual void* Allocate()
2819  {
2820  FIN25_4_CODE( if (Use25_4Version()) return (void*) _pEnclosure25_4; )
2821  return (void*) _pEnclosureOld;
2822  }
2823 
2828  virtual void CloneMemoryFrom(__FCBaseData* pSource)
2829  {
2830  void* pData = _GetEnclosure();
2831  int size = DataSizeLoad();
2832  memcpy(pData, ((FCEnclosure*)pSource)->_GetEnclosure(), size);
2833  _datablock = pData;
2834  _loadedsize = size;
2835  }
2836 
2837  virtual __FCBaseData* CreateObject() { return new FCEnclosure(); }
2838 
2839 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
2840 public:
2841  virtual const char* ClassName() { return "FCEnclosure"; }
2842  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_ENCLOSURE; }
2843 
2844 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2845 
2853  void* _GetEnclosure() const {
2854  FIN25_4_CODE( if (Use25_4Version()) return (void*) _pEnclosure25_4; )
2855  return (void*) _pEnclosureOld;
2856  }
2857 
2858 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
2859 
2862  {
2865 
2868 
2871 
2874 
2877 
2880 
2883 
2886 
2889  };
2890 
2893  {
2896 
2899 
2902  };
2903 
2909  {
2910  if (Use25_4Version())
2911  {
2912  FIN25_4_CODE( _pEnclosure25_4 = &_enclosuredata25_4; )
2913  }
2914  else
2915  {
2916  _pEnclosureOld = &_enclosuredataold;
2917  }
2918 
2919  }
2920 
2924  void _AssignEDTEnclosure(void* pPointer)
2925  {
2926  if (Use25_4Version())
2927  {
2928  FIN25_4_CODE( _pEnclosure25_4 = (EDTEnclosure25_4*) pPointer; )
2929  }
2930  else
2931  {
2932  _pEnclosureOld = (EDTEnclosure*) pPointer;
2933  }
2934  }
2935 
2942  void SetShape(
2943 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
2945 #else
2946  int
2947 #endif
2948  shape)
2949  {
2950  if (!_GetEnclosure()) return;
2951  if (shape < 0) return;
2952  if (shape > 15) return;
2953  *(FLAG_16*)_GetFlagPtr() &= ~NEWSIDES;
2954  *(FLAG_16*)_GetFlagPtr() |= shape;
2955  }
2956 
2957 
2963  void SetLineWidth(int width)
2964  {
2965  if (!_GetEnclosure()) return;
2966  *(Evpu16*)_GetLineWidthPtr() = width;
2967  }
2968 
2973  void SetHorizontalOffset(int offset)
2974  {
2975  if (!_GetEnclosure()) return;
2976  *(Evpu16*)_GetXAddPtr() = offset;
2977  }
2978 
2983  void SetVerticalOffset(int offset)
2984  {
2985  if (!_GetEnclosure()) return;
2986  *(Evpu16*)_GetYAddPtr() = offset;
2987  }
2988 
2994  void SetHorizontalMargin(int margin)
2995  {
2996  if (!_GetEnclosure()) return;
2997  *(Evpu16*)_GetXMarginPtr() = margin;
2998  }
2999 
3005  void SetVerticalMargin(int margin)
3006  {
3007  if (!_GetEnclosure()) return;
3008  *(Evpu16*)_GetYMarginPtr() = margin;
3009  }
3010 
3015  void SetFixedSize(bool state)
3016  {
3017  if (!_GetEnclosure()) return;
3018  Set16BitFlag((FLAG_16*)_GetFlagPtr(), FIXED_SIZE, state);
3019  }
3020 
3025  void SetOpaque(bool state)
3026  {
3027  if (!_GetEnclosure()) return;
3028  Set16BitFlag((FLAG_16*)_GetFlagPtr(), ENCL_OPAQUE, state);
3029  }
3030 
3038  void SetRoundedCorners(bool state)
3039  {
3040  FIN25_4_CODE( if (Use25_4Version()) Set16BitFlag((FLAG_16*)_GetFlagPtr(), 0x0400 /* ROUND_CORNERS */, state); )
3041  }
3042 
3050  void SetRoundedCornerRadius(Efix32 radius)
3051  {
3052  FIN25_4_CODE( if (Use25_4Version()) _pEnclosure25_4->m_cornerRadius = radius; )
3053  }
3054 
3059  void SetMode(
3060 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
3062 #else
3063  int
3064 #endif
3065  enclosuremode)
3066  {
3067  switch (enclosuremode)
3068  {
3069  case ENCLOSUREMODE_NONE:
3070  Set16BitFlag((FLAG_16*)_GetFlagPtr(), NOT_TALL, false);
3071  Set16BitFlag((FLAG_16*)_GetFlagPtr(), EQUAL_ASPECT, false);
3072  break;
3074  Set16BitFlag((FLAG_16*)_GetFlagPtr(), NOT_TALL, true);
3075  Set16BitFlag((FLAG_16*)_GetFlagPtr(), EQUAL_ASPECT, false);
3076  break;
3078  Set16BitFlag((FLAG_16*)_GetFlagPtr(), NOT_TALL, false);
3079  Set16BitFlag((FLAG_16*)_GetFlagPtr(), EQUAL_ASPECT, true);
3080  break;
3081  }
3082  }
3083 
3084 
3091 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
3093 #else
3094  int
3095 #endif
3096  GetShape() const
3097  {
3098  if (!_GetEnclosure()) return ENCLOSURE_NONE;
3099  return (ENCLOSURESHAPE ) (*_GetFlagPtr() & NEWSIDES);
3100  }
3101 
3107  int GetLineWidth() const
3108  {
3109  if (!_GetEnclosure()) return 0;
3110  return *_GetLineWidthPtr();
3111  }
3112 
3118  {
3119  if (!_GetEnclosure()) return 0;
3120  return *_GetXAddPtr();
3121  }
3122 
3127  int GetVerticalOffset() const
3128  {
3129  if (!_GetEnclosure()) return 0;
3130  return *_GetYAddPtr();
3131  }
3132 
3139  {
3140  if (!_GetEnclosure()) return 0;
3141  return *_GetXMarginPtr();
3142  }
3143 
3149  int GetVerticalMargin() const
3150  {
3151  if (!_GetEnclosure()) return 0;
3152  return *_GetYMarginPtr();
3153  }
3154 
3159  bool GetFixedSize() const
3160  {
3161  if (!_GetEnclosure()) return false;
3162  return GetBitFlag(*_GetFlagPtr(), FIXED_SIZE);
3163  }
3164 
3169  bool GetOpaque() const
3170  {
3171  if (!_GetEnclosure()) return false;
3172  return GetBitFlag(*_GetFlagPtr(), ENCL_OPAQUE);
3173  }
3174 
3183  bool GetRoundedCorners() const
3184  {
3185  FIN25_4_CODE( if (Use25_4Version()) return GetBitFlag(*_GetFlagPtr(), 0x0400 /* ROUND_CORNERS */); )
3186  return false;
3187  }
3188 
3196  Efix32 GetRoundedCornerRadius() const
3197  {
3198  FIN25_4_CODE( if (Use25_4Version()) return _pEnclosure25_4->m_cornerRadius; )
3199  return 0;
3200  }
3201 
3206 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
3208 #else
3209  int
3210 #endif
3211  GetMode() const
3212  {
3213  if (!_GetEnclosure()) return ENCLOSUREMODE_NONE;
3214  if (GetBitFlag(*_GetFlagPtr(), NOT_TALL)) return ENCLOSUREMODE_MINWIDTH;
3215  if (GetBitFlag(*_GetFlagPtr(), EQUAL_ASPECT)) return ENCLOSUREMODE_MATCHDIMENSIONS;
3216  return ENCLOSUREMODE_NONE;
3217  }
3218 
3219 #ifdef PDK_FRAMEWORK_DEBUG
3220  virtual void DebugDump()
3221  {
3223  }
3224 #endif
3225 
3226 };
3227 
3228 
3229 #ifdef PDK_FRAMEWORK_LAYOUT
3230 
3240 class FCPage : public __FCNoInciOther
3241 {
3242 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3243  private:
3245  EDTPageSpec pagespec;
3246 protected:
3247  virtual EXTAG Tag() { return ot_EDTPageSpec; }
3248  virtual int DataSizeLoad() { return sizeof(EDTPageSpec); }
3249  virtual void* Allocate() { return (void*) &pagespec; }
3250 
3255  virtual void CloneMemoryFrom(__FCBaseData* pSource)
3256  {
3257  memcpy(&pagespec, ((FCPage*)pSource)->_GetPageSpec(), sizeof(pagespec));
3258  _datablock = &pagespec;
3259  _loadedsize = sizeof(pagespec);
3260  }
3261 
3262  virtual __FCBaseData* CreateObject() { return new FCPage(); }
3263 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
3264 public:
3265  virtual const char* ClassName() { return "FCPage"; }
3266  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_PAGE; }
3267 
3268 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3269 
3275  void* _GetPageSpec() { return &pagespec; }
3276 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
3277 
3284 
3292  eSsys GetFirstSystem();
3293 
3298  void SetFirstSystem(eSsys firstsysno);
3299 
3308  void UpdateLayout(bool bUnfreezeMeasures = false);
3309 
3316  bool IsPortrait()
3317  {
3318  return (GetHeight() > GetWidth());
3319  }
3320 
3327  Evpu32 GetWidth() const { return pagespec.width; }
3328 
3335  Evpu32 GetHeight() const { return pagespec.height; }
3336 
3343  Evpu16 GetLeftMargin() const { return pagespec.margLeft; }
3344 
3351  Evpu16 GetRightMargin() const { return -pagespec.margRight; }
3352 
3359  Evpu16 GetTopMargin() const { return -pagespec.margTop; }
3360 
3367  Evpu16 GetBottomMargin() const { return pagespec.margBottom; }
3368 
3378  twobyte GetPercent() const { return pagespec.percent; }
3379 
3392  bool GetHoldMargins() const { return GetBitFlag(pagespec.pageflag, PAGESPEC_MARGSCOPING); }
3393 
3394  /***********/
3395  /* SETTERS */
3396  /***********/
3397 
3404  void SetWidth(Evpu32 width) { pagespec.width = width; }
3405 
3412  void SetHeight(Evpu32 height) { pagespec.height = height; }
3413 
3420  void SetLeftMargin(Evpu16 margin) { pagespec.margLeft = margin; }
3421 
3428  void SetRightMargin(Evpu16 margin) { pagespec.margRight = -margin; }
3429 
3436  void SetTopMargin(Evpu16 margin) { pagespec.margTop = -margin; }
3437 
3444  void SetBottomMargin(Evpu16 margin) { pagespec.margBottom = margin; }
3445 
3455  void SetPercent(twobyte percent) { pagespec.percent = percent; }
3456 
3469  void SetHoldMargins(bool state) { Set16BitFlag(&pagespec.pageflag, PAGESPEC_MARGSCOPING, state); }
3470 
3481  eSsys CalcLastSystem();
3482 
3492  eMeas CalcFirstMeasure();
3493 
3503  eMeas CalcLastMeasure();
3504 
3518  int CalcInteriorHeight(bool resize);
3519 
3520 #ifdef PDK_FRAMEWORK_DEBUG
3521  virtual void DebugDump()
3522  {
3524  DebugOutDigit("First system: ", GetFirstSystem());
3525  DebugOutDigit("Last system: ", CalcLastSystem());
3526  }
3527 #endif
3528 };
3529 #endif // PDK_FRAMEWORK_LAYOUT
3530 
3531 
3532 #ifdef PDK_FRAMEWORK_LAYOUT
3533 
3534 #ifdef PDK_FRAMEWORK_DEBUG
3535 #include <stddef.h> /* Needed for the FCStaffSystem constructor in debug mode. */
3536 #endif
3537 
3538 class FCSystemStaves;
3539 class FCFreezeSystem;
3540 class FCMusicRegion;
3549 {
3550 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3551  private:
3553  EDTStaffSystemSpec2005 _staffsystem;
3554 protected:
3555  virtual EXTAG Tag() { return ot_EDTStaffSystemSpec; }
3556  virtual int DataSizeLoad() { return sizeof(EDTStaffSystemSpec2005); }
3557  virtual void* Allocate() { return (void*) &_staffsystem; }
3558 
3563  virtual void CloneMemoryFrom(__FCBaseData* pSource)
3564  {
3565  memcpy(&_staffsystem, ((FCStaffSystem*)pSource)->_GetStaffSystemSpec(), sizeof(_staffsystem));
3566  _datablock = &_staffsystem;
3567  _loadedsize = sizeof(_staffsystem);
3568  }
3569 
3570 
3571  virtual __FCBaseData* CreateObject() { return new FCStaffSystem(); }
3572 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
3573 public:
3574  virtual const char* ClassName() { return "FCStaffSystem"; }
3575  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_STAFFSYSTEM; }
3576 
3577 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3578 
3584  void* _GetStaffSystemSpec() { return &_staffsystem; }
3585 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
3586 
3592  {
3593 #ifdef PDK_FRAMEWORK_DEBUG
3594  /* This should normally be used with PDK_FRAMEWORK_DIAGNOSE, but since
3595  * it's so important that this is correct, place it on the
3596  * PDK_FRAMEWORK_DEBUG level!
3597  * */
3598  if ((offsetof(EDTStaffSystemSpec2005, horzPercent) - offsetof(EDTStaffSystemSpec2005, mend)) != 2)
3599  {
3600  DebugOut("ERROR: Packed struct alignment isn't set up correctly in the compiler options! Use "
3601  "-fpack-struct=1 for GCC.");
3602  }
3603 #endif
3604  }
3605 
3606 
3615  void SetFirstMeasure(eMeas measure)
3616  { ((EDTStaffSystemSpec2005*) _datablock)->mestart = measure; }
3617 
3626  void SetNextSysMeasure(eMeas measure)
3627  { ((EDTStaffSystemSpec2005*) _datablock)->mend = measure; }
3628 
3629 
3634  void SetSpaceBeforeMusic(twobyte space)
3635  { ((EDTStaffSystemSpec2005*) _datablock)->extraStartSystemSpace = space; }
3636 
3642  void SetSpaceAfterMusic(twobyte space)
3643  { ((EDTStaffSystemSpec2005*) _datablock)->extraEndSystemSpace = space; }
3644 
3650  void SetSpaceAbove(twobyte space)
3651  { ((EDTStaffSystemSpec2005*) _datablock)->betweensystems = -space; }
3652 
3661  void SetTopMargin(Evpu16 margin)
3662  { ((EDTStaffSystemSpec2005*) _datablock)->top = -margin; }
3663 
3674  void SetBottomMargin(Evpu16 margin)
3675  { ((EDTStaffSystemSpec2005*) _datablock)->bottom = -margin; }
3676 
3684  void SetLeftMargin(Evpu16 margin)
3685  { ((EDTStaffSystemSpec2005*) _datablock)->left = margin; }
3686 
3693  void SetRightMargin(Evpu16 margin)
3694  { ((EDTStaffSystemSpec2005*) _datablock)->right = margin; }
3695 
3700  void SetResize(twobyte value)
3701  {
3702  _staffsystem.ssysPercent = value;
3703  }
3704 
3717  void SetStaffHeight(twobyte value)
3718  { _staffsystem.staffHeight = value; }
3719 
3725  void SetResizeVerticalSpace(bool value)
3726  {
3727  Set16BitFlag(&_staffsystem.staveflag, SSPEC_RESIZE_VERT, value);
3728  }
3729 
3737  void SetUseStaffResize(bool state)
3738  {
3739  Set16BitFlag(&_staffsystem.staveflag, SSPEC_LINEPERC, state);
3740  }
3741 
3746  void SetHoldMargins(bool state)
3747  {
3748  Set16BitFlag(&_staffsystem.staveflag, SSPEC_HOLD_MARGINS, state);
3749  }
3750 
3757  eMeas GetFirstMeasure() const
3758  { return ((EDTStaffSystemSpec2005*) _datablock)->mestart; }
3759 
3764  eMeas GetNextSysMeasure() const
3765  { return ((EDTStaffSystemSpec2005*) _datablock)->mend; }
3766 
3771  twobyte GetSpaceBeforeMusic() const
3772  { return ((EDTStaffSystemSpec2005*) _datablock)->extraStartSystemSpace; }
3773 
3779  twobyte GetSpaceAfterMusic() const
3780  { return ((EDTStaffSystemSpec2005*) _datablock)->extraEndSystemSpace; }
3781 
3788  twobyte GetSpaceAbove() const
3789  { return -((EDTStaffSystemSpec2005*) _datablock)->betweensystems; }
3790 
3796  Evpu16 GetTopMargin() const
3797  { return -((EDTStaffSystemSpec2005*) _datablock)->top; }
3798 
3803  Evpu16 GetBottomMargin() const
3804  { return -((EDTStaffSystemSpec2005*) _datablock)->bottom; }
3805 
3813  Evpu16 GetLeftMargin() const
3814  { return ((EDTStaffSystemSpec2005*) _datablock)->left; }
3815 
3821  Evpu16 GetRightMargin() const
3822  { return ((EDTStaffSystemSpec2005*) _datablock)->right; }
3823 
3832  twobyte GetStaffHeight() const
3833  { return ((EDTStaffSystemSpec2005*) _datablock)->staffHeight; }
3834 
3839  twobyte GetResize() const
3840  { return ((EDTStaffSystemSpec2005*) _datablock)->ssysPercent; }
3841 
3848  { return GetBitFlag(((EDTStaffSystemSpec2005*) _datablock)->staveflag, SSPEC_RESIZE_VERT); }
3849 
3857  bool GetUseStaffResize() const
3858  {
3859  return GetBitFlag(_staffsystem.staveflag, SSPEC_LINEPERC);
3860  }
3861 
3866  bool GetHoldMargins() const
3867  {
3868  return GetBitFlag(_staffsystem.staveflag, SSPEC_HOLD_MARGINS);
3869  }
3870 
3877  twobyte GetTopStaff() const;
3878 
3886  Int100 GetHorizontalStretch() const
3887  {
3888  return _staffsystem.horzPercent;
3889  }
3890 
3896  bool HasPageBreak();
3897 
3902  eStaff CalcTopStaff();
3903 
3908  eStaff CalcBottomStaff();
3909 
3916  int CalcStavesSpan();
3917 
3928  int CalcHeight(bool verticalresize);
3929 
3941  int CalcWhiteSpaceBottom(bool verticalresize);
3942 
3951  bool IsOptimized() const;
3952 
3961  bool ContainsMeasure(eMeas measurenumber)
3962  {
3963  if (measurenumber < GetFirstMeasure()) return false;
3964  if (measurenumber >= GetNextSysMeasure()) return false;
3965  return true;
3966  }
3967 
3980  FCSystemStaves* CreateSystemStaves();
3981 
3982 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
3983 
3984  FCSystemStaves* CreateSystemStaves_GC();
3985 #endif
3986 
4002  FCFreezeSystem* CreateFreezeSystem(bool force_create = true);
4003 
4004 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
4005 
4006  FCFreezeSystem* CreateFreezeSystem_GC(bool force_create);
4007 #endif
4008 
4020  bool CalcRegion(FCMusicRegion* pRegion);
4021 
4022 #ifdef PDK_FRAMEWORK_DEBUG
4023  virtual void DebugDump()
4024  {
4026  DebugOutDigit("First measure: ", GetFirstMeasure());
4027  DebugOutDigit("Next System Measure: ", GetNextSysMeasure());
4028  DebugOutDigit("Space Above: ", GetSpaceAbove());
4029  DebugOutDigit("Top Margin: ", GetTopMargin());
4030  DebugOutDigit("Bottom Margin: ", GetBottomMargin());
4031  DebugOutDigit("Staff Height: ", GetStaffHeight());
4032  DebugOutDigit("Resize (percent): ", GetResize());
4033  }
4034 #endif
4035 };
4036 #endif // PDK_FRAMEWORK_LAYOUT
4037 
4038 
4039 class FCBeatChartElements;
4040 class FCExpressions;
4041 class FCTempoElements;
4042 
4043 class FCTimeSignature;
4044 
4053 {
4054 private:
4055 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
4056 
4060  mutable FCKeySignature* _pKeySig;
4061 
4066  mutable FCTimeSignature* _pTimeSig;
4067 
4072  mutable FCTimeSignature* _pTimeSigDisplay;
4073 
4075  EVERSION _VersionToUse() const;
4076 
4080  EDTMeasureSpec2005 _measurespec2005;
4081 
4082 #if FXT_VERSION >= FINALEVERSION_2014
4083  EDTMeasureSpec2014 _measurespec2014;
4084 #endif
4085 
4089  FLAG_16* _GetMeFlagPtr() const;
4090 
4094  FLAG_16* _GetNewFlagPtr() const;
4095 
4099  FLAG_16* _GetAuxFlagPtr() const;
4100 
4104  void _SetMeFlag(FLAG_16 mask, bool state);
4105 
4109  bool _GetMeFlag(FLAG_16 mask) const
4110  {
4111  return GetBitFlag(*_GetMeFlagPtr(), mask);
4112  }
4113 
4117  void _SetNewFlag(FLAG_16 mask, bool state);
4118 
4122  bool _GetNewFlag(FLAG_16 mask) const { return GetBitFlag(*_GetNewFlagPtr(), mask); }
4123 
4127  void _SetAuxFlag(FLAG_16 mask, bool state);
4128 
4132  bool _GetAuxFlag(FLAG_16 mask) const { return GetBitFlag(*_GetAuxFlagPtr(), mask); }
4133 
4134 protected:
4135  virtual EVERSION EnigmaVersion()
4136  {
4137  return _VersionToUse();
4138  }
4139  virtual EXTAG Tag() { return ot_MeasureSpec; }
4140  virtual int DataSizeLoad() {
4141 #if FXT_VERSION >= FINALEVERSION_2014
4142  if (_VersionToUse() == FINALEVERSION_2014) return sizeof(EDTMeasureSpec2014);
4143 #endif
4144  return sizeof(EDTMeasureSpec2005);
4145  }
4146 
4147  virtual void* Allocate()
4148  {
4149 #if FXT_VERSION >= FINALEVERSION_2014
4150  if (_VersionToUse() == FINALEVERSION_2014) return (void*) &_measurespec2014;
4151 #endif
4152  return (void*) &_measurespec2005;
4153  }
4154 
4159  virtual void CloneMemoryFrom(__FCBaseData* pSource)
4160  {
4161 #if FXT_VERSION >= FINALEVERSION_2014
4162  if (_VersionToUse() == FINALEVERSION_2014)
4163  {
4164  memcpy(&_measurespec2014, ((FCMeasure*)pSource)->_GetMeasureSpec(), sizeof(_measurespec2014));
4165  _datablock = &_measurespec2014;
4166  _loadedsize = sizeof(_measurespec2014);
4167  return;
4168  }
4169 #endif
4170  memcpy(&_measurespec2005, ((FCMeasure*)pSource)->_GetMeasureSpec(), sizeof(_measurespec2005));
4171  _datablock = &_measurespec2005;
4172  _loadedsize = sizeof(_measurespec2005);
4173  }
4174 
4175  virtual __FCBaseData* CreateObject() { return new FCMeasure(); }
4176 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
4177 public:
4178 
4186 
4188  BARLINE_NONE = 0,
4189 
4192 
4195 
4198 
4201 
4204 
4207 
4210 
4213  BARLINE_DEFAULT
4214  };
4215 
4216 private:
4221  bool _GetBarlineMask(
4222 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
4223 int
4224 #else
4226 #endif
4227  style, FLAG_16* pFlag);
4228 
4229 public:
4230 
4238 
4240  POSITIONING_TIMESIG = 0,
4241 
4244 
4246  POSITIONING_BEATCHART
4247  };
4248 
4256 
4258  SHOWSTATE_IFNEEDED = 0,
4259 
4262 
4264  SHOWSTATE_HIDE
4265  };
4266 
4267  virtual const char* ClassName() { return "FCMeasure"; }
4268  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_MEASURE; }
4269 
4270 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
4271 
4277  void* _GetMeasureSpec()
4278  {
4279 #if FXT_VERSION >= FINALEVERSION_2014
4280  if (_VersionToUse() == FINALEVERSION_2014) return &_measurespec2014;
4281 #endif
4282  return &_measurespec2005;
4283  }
4284 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
4285 
4292  {
4293  _pKeySig = NULL;
4294  _pTimeSig = NULL;
4295  _pTimeSigDisplay = NULL;
4296  }
4297 
4302  virtual ~FCMeasure() {
4303  if (_pKeySig) delete _pKeySig;
4304  if (_pTimeSig) delete _pTimeSig;
4305  if (_pTimeSigDisplay) delete _pTimeSigDisplay;
4306  }
4307 
4309  virtual bool Save();
4310 
4312  virtual bool Load(CMPER itemno);
4313 
4321  FCBeatChartElements* CreateBeatChartElements();
4322 
4323 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
4324  /* GC version of #CreateBeatChartElements for Lua. */
4325  FCBeatChartElements* CreateBeatChartElements_GC();
4326 #endif
4327 
4335  FCExpressions* CreateExpressions();
4336 
4337 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
4338  /* GC version of #CreateExpressions for Lua. */
4339  FCExpressions* CreateExpressions_GC();
4340 #endif
4341 
4349  FCTempoElements* CreateTempoElements();
4350 
4351 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
4352  /* GC version of #CreateTempoElements for Lua. */
4353  FCTempoElements* CreateTempoElements_GC();
4354 #endif
4355 
4356 
4359  void SetKeyless(bool state)
4360  {
4361  if (_VersionToUse() != FINALEVERSION_2014) return;
4362 #if FXT_VERSION >= FINALEVERSION_2014
4363  _measurespec2014.isKeyless = state;
4364 #endif
4365  }
4366 
4369  void SetHideKeySigShowAccis(bool state)
4370  {
4371  if (_VersionToUse() != FINALEVERSION_2014) return;
4372 #if FXT_VERSION >= FINALEVERSION_2014
4373  _measurespec2014.hideKeySigShowAccis = state;
4374 #endif
4375  }
4376 
4377 
4386  void SetPageBreak(bool state)
4387  { _SetNewFlag(MEAS_PAGEBREAK, state); }
4388 
4396  void SetBreakMMRest(bool state)
4397  { _SetMeFlag(MEAS_BREAKREST, state); }
4398 
4405  void SetForwardRepeat(bool state)
4406  { _SetMeFlag(MEAS_FORREPBAR, state); }
4407 
4416  void SetExpressionFlag(bool state)
4417  { _SetMeFlag(MEAS_DYNAMBIT, state); }
4418 
4427  void SetTextFlag(bool state)
4428  { _SetMeFlag(MEAS_MEASURETEXT, state); }
4429 
4442  void SetBackwardRepeat(bool state)
4443  { _SetMeFlag(MEAS_BACREPBAR, state); }
4444 
4456  void SetRepeatBracketFlag(bool state) { _SetMeFlag(MEAS_BARENDING, state); }
4457 
4467  void SetTextRepeatFlag(bool state) { _SetMeFlag(MEAS_REPEATS, state); }
4468 
4475  void SetSystemBreak(bool state) { _SetMeFlag(MEAS_MS_LINEBREAK, state); }
4476 
4484  void SetHideCautionary(bool state) { _SetAuxFlag(MEAS_HIDECAUTION, state); }
4485 
4492  void SetWidth(Evpu16 width) {
4493 #if FXT_VERSION >= FINALEVERSION_2014
4494  if (_VersionToUse() == FINALEVERSION_2014)
4495  {
4496  _measurespec2014.measpace = width;
4497  return;
4498  }
4499 #endif
4500  _measurespec2005.measpace = width;
4501  }
4502 
4509  void SetSpaceBefore(Evpu16 space)
4510  {
4511 #if FXT_VERSION >= FINALEVERSION_2014
4512  if (_VersionToUse() == FINALEVERSION_2014)
4513  {
4514  _measurespec2014.frontSpaceExtra = space;
4515  return;
4516  }
4517 #endif
4518  _measurespec2005.frontSpaceExtra = space;
4519  }
4520 
4527  void SetSpaceAfter(Evpu16 space)
4528  {
4529 #if FXT_VERSION >= FINALEVERSION_2014
4530  if (_VersionToUse() == FINALEVERSION_2014)
4531  {
4532  _measurespec2014.backSpaceExtra = space;
4533  return;
4534  }
4535 #endif
4536  _measurespec2005.backSpaceExtra = space;
4537  }
4538 
4549  void SetAllowHorizontalSplit(bool state) { _SetAuxFlag(MEAS_POSSPLIT, state); }
4550 
4560  void SetShowKeySignature(
4561 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
4562  SHOW_STATES state
4563 #else
4564  int state
4565 #endif
4566  );
4567 
4577  void SetShowTimeSignature(
4578 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
4579  SHOW_STATES state
4580 #else
4581  int state
4582 #endif
4583  );
4584 
4594  void SetShowFullNames(bool state);
4595 
4601  void SetContainsManualMeasureNumbers(bool state) { _SetAuxFlag(MEAS_MNSEPPLACE, state); }
4602 
4609  void SetBreakWordExtension(bool state) { _SetAuxFlag(0x8000, state); }
4610 
4617  void SetIncludeInNumbering(bool state) { _SetMeFlag(MEAS_NO_MEAS_NUM, !state); }
4618 
4625  void SetOverrideGroupBarlines(bool state) { _SetAuxFlag(MEAS_GRP_BARLINE_OVERRIDE, state); }
4626 
4636  void SetPositioningNotesMode(
4637 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
4638 POSITIONING_MODES mode
4639 #else
4640 int mode
4641 #endif
4642  );
4643 
4650  void SetPositionEvenly(bool state) { _SetAuxFlag(MEAS_INDIVPOSDEF, state); }
4651 
4659  void SetBarline(
4660 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
4661 int
4662 #else
4664 #endif
4665  style);
4666 
4673  void SetBarlineShapeID(twobyte shapeID) {
4674 #if FXT_VERSION >= FINALEVERSION_2014
4675  if (_VersionToUse() == FINALEVERSION_2014)
4676  {
4677  _measurespec2014.custombarshape = shapeID;
4678  return;
4679  }
4680 #endif
4681  _measurespec2005.custombarshape = shapeID;
4682  }
4683 
4690  void SetLeftBarlineShapeID(twobyte shapeID)
4691  {
4692 #if FXT_VERSION >= FINALEVERSION_2014
4693  if (_VersionToUse() == FINALEVERSION_2014)
4694  {
4695  _measurespec2014.customleftbarshape = shapeID;
4696  return;
4697  }
4698 #endif
4699  _measurespec2005.customleftbarshape = shapeID;
4700  }
4701 
4712  void SetLeftBarline(
4713 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
4714  BARLINE_STYLES style
4715 #else
4716  int style
4717 #endif
4718  );
4719 
4726  void SetSmartShapeFlag(bool state) { _SetAuxFlag(MEAS_SMARTSHAPEBIT, state); }
4727 
4736  void SetChordFlag(bool state) { _SetNewFlag(0x0008, state); }
4737 
4743  TimeEdu32 GetDuration()
4744  {
4745  return FX_GetMeasureDuration(0, GetItemNo());
4746  }
4747 
4748 
4754  bool GetKeyless() const
4755  {
4756  if (_VersionToUse() != FINALEVERSION_2014) return false;
4757 #if FXT_VERSION >= FINALEVERSION_2014
4758  return _measurespec2014.isKeyless != 0;
4759 #endif
4760  return false;
4761  }
4762 
4769  {
4770  if (_VersionToUse() != FINALEVERSION_2014) return false;
4771 #if FXT_VERSION >= FINALEVERSION_2014
4772  return _measurespec2014.hideKeySigShowAccis != 0;
4773 #endif
4774  return false;
4775  }
4776 
4777 
4787  bool GetPageBreak() const { return _GetNewFlag(MEAS_PAGEBREAK); }
4788 
4796  bool GetBreakMMRest() const { return _GetMeFlag(MEAS_BREAKREST); }
4797 
4804  bool GetSystemBreak() const { return _GetMeFlag(MEAS_MS_LINEBREAK); }
4805 
4812  bool GetForwardRepeat() const { return _GetMeFlag(MEAS_FORREPBAR); }
4813 
4822  bool GetExpressionFlag() const { return _GetMeFlag(MEAS_DYNAMBIT); }
4823 
4833  bool GetTextFlag() const { return _GetMeFlag(MEAS_MEASURETEXT); }
4834 
4844  bool GetBackwardRepeat() const { return _GetMeFlag(MEAS_BACREPBAR); }
4845 
4857  bool GetRepeatBracketFlag() const { return _GetMeFlag(MEAS_BARENDING); }
4858 
4868  bool GetTextRepeatFlag() const { return _GetMeFlag(MEAS_REPEATS); }
4869 
4877  bool GetHideCautionary() const { return _GetAuxFlag(MEAS_HIDECAUTION); }
4878 
4885  Evpu16 GetWidth() const {
4886 #if FXT_VERSION >= FINALEVERSION_2014
4887  if (_VersionToUse() == FINALEVERSION_2014)
4888  {
4889  return _measurespec2014.measpace;
4890  }
4891 #endif
4892  return _measurespec2005.measpace;
4893  }
4894 
4901  Evpu16 GetSpaceBefore() const {
4902 #if FXT_VERSION >= FINALEVERSION_2014
4903  if (_VersionToUse() == FINALEVERSION_2014)
4904  {
4905  return _measurespec2014.frontSpaceExtra;
4906  }
4907 #endif
4908  return _measurespec2005.frontSpaceExtra;
4909  }
4910 
4917  Evpu16 GetSpaceAfter() const {
4918 #if FXT_VERSION >= FINALEVERSION_2014
4919  if (_VersionToUse() == FINALEVERSION_2014)
4920  {
4921  return _measurespec2014.backSpaceExtra;
4922  }
4923 #endif
4924  return _measurespec2005.backSpaceExtra;
4925  }
4926 
4935  bool GetAllowHorizontalSplit() const { return _GetAuxFlag(MEAS_POSSPLIT); }
4936 
4946 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
4947  SHOW_STATES
4948 #else
4949  int
4950 #endif
4951  GetShowKeySignature() const;
4952 
4962 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
4963  SHOW_STATES
4964 #else
4965  int
4966 #endif
4967  GetShowTimeSignature() const;
4968 
4974  bool GetUseTimeSigForDisplay() const { return _GetNewFlag(MEAS_USE_DISPLAY_TIMESIG); }
4975 
4986  bool GetShowFullNames() const;
4987 
4994  bool GetContainsManualMeasureNumbers() const { return _GetAuxFlag(MEAS_MNSEPPLACE); }
4995 
5002  bool GetBreakWordExtension() const { return _GetAuxFlag(0x8000); }
5003 
5010  bool GetIncludeInNumbering() const { return !_GetMeFlag(MEAS_NO_MEAS_NUM); }
5011 
5018  bool GetOverrideGroupBarlines() const { return _GetAuxFlag(MEAS_GRP_BARLINE_OVERRIDE); }
5019 
5029 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5030  POSITIONING_MODES
5031 #else
5032  int
5033 #endif
5034  GetPositioningNotesMode() const;
5035 
5042  bool GetPositionEvenly() const { return _GetAuxFlag(MEAS_INDIVPOSDEF); }
5043 
5050 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
5051  int
5052 #else
5054 #endif
5055  GetBarline() const;
5056 
5065 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5066  BARLINE_STYLES
5067 #else
5068  int
5069 #endif
5070  GetLeftBarline() const;
5071 
5078  CMPER GetBarlineShapeID() const {
5079 #if FXT_VERSION >= FINALEVERSION_2014
5080  if (_VersionToUse() == FINALEVERSION_2014)
5081  {
5082  return _measurespec2014.custombarshape;
5083  }
5084 #endif
5085  return _measurespec2005.custombarshape;
5086  }
5087 
5094  CMPER GetLeftBarlineShapeID() const {
5095 #if FXT_VERSION >= FINALEVERSION_2014
5096  if (_VersionToUse() == FINALEVERSION_2014)
5097  {
5098  return _measurespec2014.customleftbarshape;
5099  }
5100 #endif
5101  return _measurespec2005.customleftbarshape;
5102  }
5103 
5119  if (!DataIsLoaded()) return NULL;
5120  if (_pKeySig) return _pKeySig;
5121  if (!_pKeySig) _pKeySig = new FCKeySignature();
5122 #if FXT_VERSION >= FINALEVERSION_2014
5123  if (_VersionToUse() == FINALEVERSION_2014)
5124  {
5125  _pKeySig->SetID(_measurespec2014.key);
5126  } else
5127 #endif
5128  {
5129  _pKeySig->SetID(_measurespec2005.key);
5130  }
5131  return _pKeySig;
5132  }
5133 
5140  bool GetSmartShapeFlag() const { return _GetAuxFlag(MEAS_SMARTSHAPEBIT); }
5141 
5150  bool GetChordFlag() const { return _GetNewFlag(0x0008); }
5151 
5167  {
5168  if (!DataIsLoaded()) return NULL;
5169  if (_pTimeSig) return _pTimeSig;
5170  if (!_pTimeSig) _pTimeSig = new FCTimeSignature();
5171 #if FXT_VERSION >= FINALEVERSION_2014
5172  if (_VersionToUse() == FINALEVERSION_2014)
5173  {
5174  _pTimeSig->SetBeats(_measurespec2014.beats);
5175  _pTimeSig->SetBeatDuration(_measurespec2014.divbeat);
5176  } else
5177 #endif
5178  {
5179  _pTimeSig->SetBeats(_measurespec2005.beats);
5180  _pTimeSig->SetBeatDuration(_measurespec2005.divbeat);
5181  }
5182  _pTimeSig->SetCompositeTop(_GetAuxFlag(MEAS_ALTNUMTSIG));
5183  _pTimeSig->SetCompositeBottom(_GetAuxFlag(MEAS_ALTDENTSIG));
5184  _pTimeSig->SetAbbreviate(false);
5185  return _pTimeSig;
5186  }
5187 
5199  {
5200  if (!DataIsLoaded()) return NULL;
5201  if (!GetUseTimeSigForDisplay()) return NULL;
5202  if (_pTimeSigDisplay) return _pTimeSigDisplay;
5203  if (!_pTimeSigDisplay) _pTimeSigDisplay = new FCTimeSignature();
5204 #if FXT_VERSION >= FINALEVERSION_2014
5205  if (_VersionToUse() == FINALEVERSION_2014)
5206  {
5207  _pTimeSigDisplay->SetBeats(_measurespec2014.dispBeats);
5208  _pTimeSigDisplay->SetBeatDuration(_measurespec2014.dispDivbeat);
5209  } else
5210 #endif
5211  {
5212  _pTimeSigDisplay->SetBeats(_measurespec2005.dispBeats);
5213  _pTimeSigDisplay->SetBeatDuration(_measurespec2005.dispDivbeat);
5214  }
5215  _pTimeSigDisplay->SetCompositeTop(_GetNewFlag(MEAS_DISPLAY_ALTNUMTSIG));
5216  _pTimeSigDisplay->SetCompositeBottom(_GetNewFlag(MEAS_DISPLAY_ALTDENTSIG));
5217  _pTimeSigDisplay->SetAbbreviate(_GetNewFlag(MEAS_ABBRVTIME));
5218  return _pTimeSigDisplay;
5219  }
5220 
5230  void SetUseTimeSigForDisplay(bool value)
5231  {
5232  if (!DataIsLoaded()) return;
5233  if (GetUseTimeSigForDisplay() == value) return;
5234  if (!value)
5235  {
5236  if (_pTimeSigDisplay)
5237  {
5238  delete _pTimeSigDisplay;
5239  _pTimeSigDisplay = NULL;
5240  }
5241  }
5242  return _SetNewFlag(MEAS_USE_DISPLAY_TIMESIG, value);
5243  }
5244 };
5245 
5246 /* Forward declaration, required for measure references FCMeasureNumberRegion */
5247 class FCMeasures;
5248 
5255 {
5256 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
5257  private:
5258  /* Reference table for checking the "Include measure in measure numbering" states.
5259  Use AssignAllMeasures() to set */
5260  FCMeasures* _pAllMeasures;
5261 
5262  /* Used for the _SetTempAllMeasures() etc mechanism. This is where the real value of
5263  * _pAllMeasures is stored, during a temporary collection assignment. */
5264  FCMeasures* _pTempAllMeasuresStorage;
5265 
5267  FIN25_4_CODE(EDTMeasNumberRegion25_4 _measureregion25_4;)
5270  FIN2012_CODE(EDTMeasNumberRegion2012 _measureregion2012;)
5272  EDTMeasNumberRegion2010 _measureregion2010;
5273  EDTMeasNumberRegion _measureregionold;
5275  FCEnclosure _startEnclosureScore; // Set up by the constructor
5276  FCEnclosure _startEnclosureParts; // Set up by the constructor
5277  FCEnclosure _multipleEnclosureScore; // Set up by the constructor
5278  FCEnclosure _multipleEnclosureParts; // Set up by the constructor
5279 
5280 
5281  /* Returns a pointer to the correct 'flags' member of the score/part struct */
5282  const FLAG_16* _GetScorePartFlagsPtr(bool parts);
5283 
5284  /* Returns a pointer to the correct 'flags2' member of the score/part struct */
5285  const FLAG_16* _GetScorePartFlags2Ptr(bool parts);
5286 
5287  /* Returns a pointer to the correct 'incidence' member of the score/part struct */
5288  const twobyte* _GetScorePartIncidencePtr(bool parts) const;
5289 
5290  /* Returns a pointer to the correct 'startxdisp' (or xdisp) member of the score/part struct */
5291  const twobyte* _GetScorePartStartxdispPtr(bool parts) const;
5292 
5293  /* Returns a pointer to the correct 'startxdisp' (or xdisp) member of the score/part struct */
5294  const twobyte* _GetScorePartStartydispPtr(bool parts) const;
5295 
5296  /* Returns a pointer to the correct 'multiplexdisp' member of the score/part struct */
5297  const twobyte* _GetScorePartMultiplexdispPtr(bool parts) const;
5298 
5299  /* Returns a pointer to the correct 'multipleydisp' member of the score/part struct */
5300  const twobyte* _GetScorePartMultipleydispPtr(bool parts) const;
5301 
5302  /* Returns a pointer to the correct 'mmrestxdisp' member of the score/part struct */
5303  const twobyte* _GetScorePartMmrestxdispPtr(bool parts) const;
5304 
5305  /* Returns a pointer to the correct 'mmrestydisp' member of the score/part struct */
5306  const twobyte* _GetScorePartMmrestydispPtr(bool parts) const;
5307 
5308  /* Returns a pointer to the correct 'startWith' member of the score/part struct */
5309  const twobyte* _GetScorePartStartWithPtr(bool parts) const;
5310 
5311  /* Returns a pointer to the correct 'leftMMBracketChar' member of the score/part struct
5312  eUniChar32 on Fin2012+
5313  EWCHAR on pre-Fin2012
5314  */
5315  const void* _GetScorePartLeftMMBracketCharPtr(bool parts) const;
5316 
5317  /* Returns a pointer to the correct 'rightMMBracketChar' member of the score/part struct
5318  eUniChar32 on Fin2012+
5319  EWCHAR on pre-Fin2012
5320  */
5321  const void* _GetScorePartRightMMBracketCharPtr(bool parts) const;
5322 
5323  /* Returns a pointer to the correct 'startFont' member of the score/part struct */
5324  const EFONTID* _GetScorePartStartFontPtr(bool parts) const;
5325 
5326  /* Returns a pointer to the correct 'startEfx' member of the score/part struct */
5327  const FLAG_16* _GetScorePartStartEfxPtr(bool parts) const;
5328 
5329  /* Returns a pointer to the correct 'startSize' member of the score/part struct */
5330  const twobyte* _GetScorePartStartSizePtr(bool parts) const;
5331 
5332  /* Returns a pointer to the correct 'multipleFont' member of the score/part struct */
5333  const EFONTID* _GetScorePartMultipleFontPtr(bool parts) const;
5334 
5335  /* Returns a pointer to the correct 'multipleEfx' member of the score/part struct */
5336  const FLAG_16* _GetScorePartMultipleEfxPtr(bool parts) const;
5337 
5338  /* Returns a pointer to the correct 'multipleSize' member of the score/part struct */
5339  const twobyte* _GetScorePartMultipleSizePtr(bool parts) const;
5340 
5341  /* Returns a pointer to the correct 'mmRestFont' member of the score/part struct */
5342  const EFONTID* _GetScorePartMmRestFontPtr(bool parts) const;
5343 
5344  /* Returns a pointer to the correct 'mmRestEfx' member of the score/part struct */
5345  const FLAG_16* _GetScorePartMmRestEfxPtr(bool parts) const;
5346 
5347  /* Returns a pointer to the correct 'mmRestSize' member of the score/part struct */
5348  const twobyte* _GetScorePartMmRestSizePtr(bool parts) const;
5349 
5350  /* Returns a pointer to the correct 'startMeas' member */
5351  const twobyte* _GetStartMeasPtr() const;
5352 
5353  /* Returns a pointer to the correct 'endMeas' member */
5354  const twobyte* _GetEndMeasPtr() const;
5355 
5356  /* Returns a pointer to the correct 'offset' member */
5357  const twobyte* _GetOffsetPtr() const;
5358 
5359  /* Returns a pointer to the correct 'prefix' member. Finale 2012+ uses eUniChar16 buffer,
5360  earlier versions use ECHAR buffer. */
5361  const void* _GetPrefixPtr() const;
5362 
5363  /* Returns a pointer to the correct 'suffix' member */
5364  const void* _GetSuffixPtr() const;
5365 
5366  /* Returns a pointer to the correct 'flag' member */
5367  const FLAG_16* _GetFlagPtr() const;
5368 
5369  /* Returns a pointer to the correct 'flag2' member */
5370  const FLAG_16* _GetFlag2Ptr() const;
5371 
5372  /* Returns a pointer to the correct 'region' member */
5373  const twobyte* _GetRegionPtr() const;
5374 
5375  /* Returns a pointer to the correct 'base' member */
5376  const twobyte* _GetBasePtr() const;
5377 
5378  /* Returns a pointer to the correct 'startchar' member
5379  Finale 2012+ uses eUniChar32, earlier versions use twobyte.
5380  */
5381  const void* _GetStartcharPtr() const;
5382 
5383  bool _GetScorePartFlags(bool parts, FLAG_16 flag);
5384  void _SetScorePartFlags(bool parts, FLAG_16 flag, bool state);
5385 
5386  FLAG_16 _GetScorePartFlagsValue(bool parts);
5387  void _SetScorePartFlagsValue(bool parts, FLAG_16 flag);
5388  FLAG_16 _GetScorePartFlags2Value(bool parts);
5389  void _SetScorePartFlags2Value(bool parts, FLAG_16 flag2);
5390 
5391  /* Non-virtual method to decide the FXT version */
5392  EVERSION _FXTVersionToUse() const;
5393 
5394  /* For internal use only. Formats a display version of the measure number index.
5395  The measure number index is the 0-based index within the numbering sequence.
5396  */
5397  void _FormatDisplayedNumberForIndex(twobyte meas_num_index, FCString* pString);
5398 protected:
5399  virtual EXTAG Tag() { return ot_MeasNumberRegion; }
5400  virtual int DataSizeLoad();
5401  virtual void* Allocate();
5402 
5403  virtual EVERSION EnigmaVersion();
5404 
5409  virtual void CloneMemoryFrom(__FCBaseData* pSource)
5410  {
5411  memcpy(_GetData(), ((FCMeasureNumberRegion*)pSource)->_GetData(), DataSizeLoad());
5412  _datablock = Allocate();
5414  }
5415 
5416  virtual __FCBaseData* CreateObject() { return new FCMeasureNumberRegion(); }
5417 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
5418 public:
5419 
5429  {
5431  NUMBERING_DIGITS = 0,
5432 
5433  /* "a, b, c...aa, bb, cc" */
5434  NUMBERING_LOWERCASEDOUBLE,
5435 
5438 
5441 
5444 
5447 
5450 
5453 
5456 
5459 
5461  NUMBERING_CUSTOM = 101 /* Set this style above all other */
5462  };
5463 
5469  {
5470  /* Show in all views */
5471  NUMBERVIEW_ALL = 0,
5472 
5473  /* Show in Page View only */
5474  NUMBERVIEW_PAGEONLY,
5475 
5476  /* Show in Scroll/Studio View only */
5477  NUMBERVIEW_SCROLLONLY
5478  };
5479 
5485  {
5487  MNALIGN_LEFT = 0,
5488 
5491 
5493  MNALIGN_RIGHT
5494  };
5495 
5501  {
5503  MNJUSTIFY_LEFT = TEXT_JUSTIFY_LEFT,
5504 
5506  MNJUSTIFY_CENTER = TEXT_JUSTIFY_CENTER,
5507 
5509  MNJUSTIFY_RIGHT = TEXT_JUSTIFY_RIGHT
5510  };
5511 
5512  virtual const char* ClassName() { return "FCMeasureNumberRegion"; }
5513  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_MEASURENUMBERREGION; }
5514 
5515 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
5516 
5522  void* _GetData() { return Allocate(); }
5523 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
5524 
5530 
5537  void SetStartMeasure(twobyte measure);
5538 
5545  void SetEndMeasure(twobyte measure);
5546 
5554  void SetStartNumber(twobyte offset);
5555 
5560  void SetPrefix(FCString* pString);
5561 
5566  void SetSuffix(FCString* pString);
5567 
5573  void SetUseScoreInfoForParts(bool value);
5574 
5577  void SetID(twobyte newid);
5578 
5590  void SetStartFontInfo(FCFontInfo* pFontInfo, bool parts);
5591 
5602  void SetMultipleFontInfo(FCFontInfo* pFontInfo, bool parts);
5603 
5615  void SetMultiMeasureFontInfo(FCFontInfo* pFontInfo, bool parts);
5616 
5627  void SetUseEnclosureStart(bool use, bool parts);
5628 
5637  void SetExcludeOtherStaves(bool exclude, bool parts);
5638 
5647  void SetUseEnclosureMultiple(bool use, bool parts);
5648 
5657  void SetShowOnTopStaff(bool showontop, bool parts);
5658 
5667  void SetShowOnSystemStart(bool showonstart, bool parts);
5668 
5677  void SetShowOnBottomStaff(bool showonbottom, bool parts);
5678 
5687  void SetShowMultiples(bool showmultiples, bool parts);
5688 
5697  void SetHideFirstNumber(bool hide, bool parts);
5698 
5709  void SetShowMultiMeasureRange(bool show, bool parts);
5710 
5721  void SetShowOnMultiMeasureRests(bool show, bool parts);
5722 
5731  void SetMultipleValue(twobyte value, bool parts);
5732 
5741  void SetMultipleStartMeasure(twobyte measure, bool parts);
5742 
5753  void SetMultiMeasureBracketLeft(eUniChar32 character, bool parts);
5754 
5765  void SetMultiMeasureBracketRight(eUniChar32 character, bool parts);
5766 
5776  void SetBreakMultiMeasureRests(bool breakstate, bool parts);
5777 
5783  void SetStartAlignment(
5784 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5785 MNALIGNMENTS
5786 #else
5787 int
5788 #endif
5789  alignment,
5790  bool parts);
5791 
5797  void SetStartJustification(
5798 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5799 MNJUSTIFICATIONS
5800 #else
5801 int
5802 #endif
5803 justification,
5804  bool parts);
5805 
5811  void SetMultipleAlignment(
5812 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5813 MNALIGNMENTS
5814 #else
5815 int
5816 #endif
5817  alignment,
5818  bool parts);
5819 
5825  void SetMultipleJustification(
5826 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5827 MNJUSTIFICATIONS
5828 #else
5829 int
5830 #endif
5831 justification,
5832  bool parts);
5833 
5839  void SetMultiMeasureAlignment(
5840 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5841 MNALIGNMENTS
5842 #else
5843 int
5844 #endif
5845  alignment,
5846  bool parts);
5847 
5853  void SetMultiMeasureJustification(
5854 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5855 MNJUSTIFICATIONS
5856 #else
5857 int
5858 #endif
5859 justification,
5860  bool parts);
5861 
5870  void SetStartHorizontalPosition(twobyte distance, bool parts);
5871 
5880  void SetStartVerticalPosition(twobyte distance, bool parts);
5881 
5890  void SetMultipleHorizontalPosition(twobyte distance, bool parts);
5891 
5900  void SetMultipleVerticalPosition(twobyte distance, bool parts);
5901 
5910  void SetMultiMeasureHorizontalPosition(twobyte distance, bool parts);
5911 
5920  void SetMultiMeasureVerticalPosition(twobyte distance, bool parts);
5921 
5928  void SetView(
5929 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5930  NUMBERVIEWS
5931 #else
5932  int
5933 #endif
5934  view
5935  );
5936 
5943  void SetNumberingStyle(
5944 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
5945  NUMBERINGSTYLE
5946 #else
5947  int
5948 #endif
5949  style
5950  );
5951 
5962  void SetBase(twobyte base);
5963 
5976  void SetStartCharacter(eUniChar32 character);
5977 
5983  void SetTime(bool state);
5984 
5989  void SetTimeFrames(bool state);
5990 
5997  void SetUseHours(bool state);
5998 
6003  void SetTimePrecision(twobyte precision);
6004 
6017  void SetCountFromOne(bool value);
6018 
6029  void SetNoZero(bool value);
6030 
6044  void SetDoubleUp(bool value);
6045 
6050  twobyte GetStartMeasure() const;
6051 
6056  twobyte GetEndMeasure() const;
6057 
6065  twobyte GetStartNumber() const;
6066 
6071  bool GetTime() const;
6072 
6077  bool GetTimeFrames() const;
6078 
6085  bool GetUseHours() const;
6086 
6091  twobyte GetTimePrecision() const;
6092 
6103  bool GetNoZero() const;
6104 
6119  bool GetDoubleUp() const;
6120 
6131  bool GetCountFromOne() const;
6132 
6145  eUniChar32 GetStartCharacter() const;
6146 
6157  twobyte GetBase() const;
6158 
6169  bool GetUseScoreInfoForParts() const;
6170 
6175  twobyte GetID();
6176 
6187  bool GetDisplayedNumber(eMeas number, FCString* pString);
6188 
6202  bool GetDisplayedNumberWithID(eMeas number, FCString* pString);
6203 
6210  void GetPrefix(FCString* pString);
6211 
6218  void GetSuffix(FCString* pString);
6219 
6230  {
6231  return parts ? &_startEnclosureParts : &_startEnclosureScore;
6232  }
6233 
6244  {
6245  return parts ? &_multipleEnclosureParts : &_multipleEnclosureScore;
6246  }
6247 
6254  bool GetUseEnclosureStart(bool parts);
6255 
6263  bool GetExcludeOtherStaves(bool parts);
6264 
6269  bool GetUseEnclosureMultiple(bool parts);
6270 
6275  bool GetShowOnTopStaff(bool parts);
6276 
6281  bool GetShowOnSystemStart(bool parts);
6282 
6287  bool GetShowOnBottomStaff(bool parts);
6288 
6293  bool GetShowMultiples(bool parts);
6294 
6299  bool GetHideFirstNumber(bool parts);
6300 
6307  bool GetShowMultiMeasureRange(bool parts);
6308 
6315  bool GetShowOnMultiMeasureRests(bool parts);
6316 
6322  twobyte GetMultipleValue(bool parts);
6323 
6328  twobyte GetMultipleStartMeasure(bool parts);
6329 
6336  eUniChar32 GetMultiMeasureBracketLeft(bool parts);
6337 
6344  eUniChar32 GetMultiMeasureBracketRight(bool parts);
6345 
6350  bool GetBreakMultiMeasureRests(bool parts);
6351 
6356 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6357  MNALIGNMENTS
6358 #else
6359  int
6360 #endif
6361  GetStartAlignment(bool parts);
6362 
6367 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6368  MNJUSTIFICATIONS
6369 #else
6370  int
6371 #endif
6372  GetStartJustification(bool parts);
6373 
6374 
6375 
6380 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6381  MNALIGNMENTS
6382 #else
6383  int
6384 #endif
6385  GetMultipleAlignment(bool parts);
6386 
6391 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6392  MNJUSTIFICATIONS
6393 #else
6394  int
6395 #endif
6396  GetMultipleJustification(bool parts);
6397 
6398 
6399 
6404 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6405  MNALIGNMENTS
6406 #else
6407  int
6408 #endif
6409  GetMultiMeasureAlignment(bool parts);
6410 
6415 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6416  MNJUSTIFICATIONS
6417 #else
6418  int
6419 #endif
6420  GetMultiMeasureJustification(bool parts);
6421 
6422 
6427  twobyte GetStartHorizontalPosition(bool parts);
6428 
6433  twobyte GetStartVerticalPosition(bool parts);
6434 
6439  twobyte GetMultipleHorizontalPosition(bool parts);
6440 
6445  twobyte GetMultipleVerticalPosition(bool parts);
6446 
6451  twobyte GetMultiMeasureHorizontalPosition(bool parts);
6452 
6457  twobyte GetMultiMeasureVerticalPosition(bool parts);
6458 
6464 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6465  NUMBERVIEWS
6466 #else
6467  int
6468 #endif
6469  GetView() const;
6470 
6477 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
6478  NUMBERINGSTYLE
6479 #else
6480  int
6481 #endif
6482  GetNumberingStyle() const;
6483 
6495  void GetStartFontInfo(FCFontInfo* pFontInfo, bool parts);
6496 
6511  {
6512  FCFontInfo* pFontInfo = new FCFontInfo();
6513  GetStartFontInfo(pFontInfo, parts);
6514  return pFontInfo;
6515  }
6516 
6517 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
6518 
6519  FCFontInfo* CreateStartFontInfo_GC(bool parts);
6520 #endif
6521 
6532  void GetMultipleFontInfo(FCFontInfo* pFontInfo, bool parts);
6533 
6548  {
6549  FCFontInfo* pFontInfo = new FCFontInfo();
6550  GetMultipleFontInfo(pFontInfo, parts);
6551  return pFontInfo;
6552  }
6553 
6554 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
6555 
6556  FCFontInfo* CreateMultipleFontInfo_GC(bool parts);
6557 #endif
6558 
6569  void GetMultiMeasureFontInfo(FCFontInfo* pFontInfo, bool parts);
6570 
6585  {
6586  FCFontInfo* pFontInfo = new FCFontInfo();
6587  GetMultiMeasureFontInfo(pFontInfo, parts);
6588  return pFontInfo;
6589  }
6590 
6591 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
6592 
6593  FCFontInfo* CreateMultiMeasureFontInfo_GC(bool parts);
6594 #endif
6595 
6610  FCString* CreateDisplayedString(twobyte measure);
6611 
6612 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
6613 
6614  FCString* CreateDisplayedString_GC(twobyte measure);
6615 #endif
6616 
6617 
6626  void CloneFormattingFrom(FCMeasureNumberRegion* pRegionFrom, bool score, bool parts);
6627 
6636  bool IsMeasureIncluded(twobyte measureno)
6637  {
6638  if (measureno > GetEndMeasure()) return false;
6639  if (measureno < GetStartMeasure()) return false;
6640  return true;
6641  }
6642 
6656  bool AssignAllMeasures(FCMeasures* pAllMeasures);
6657 
6670  void _SetTempAllMeasures(FCMeasures* pAllMeasuresToUse)
6671  {
6672  /* Store the "actual" value, restore it with _RestoreTempAllMeasures() */
6673  _pTempAllMeasuresStorage = _pAllMeasures;
6674  /* Set temp value */
6675  _pAllMeasures = pAllMeasuresToUse;
6676  }
6677 
6683  {
6684  /* Restore from temporary storage to the "real" storage */
6685  _pAllMeasures = _pTempAllMeasuresStorage;
6686  }
6687 
6688 #ifdef PDK_FRAMEWORK_DEBUG
6689  virtual void DebugDump()
6690  {
6692  DebugOutDigit("Start measure: ", GetStartMeasure());
6693  DebugOutDigit("End measure: ", GetEndMeasure());
6694  }
6695 #endif
6696 };
6697 
6707 {
6708 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
6709  private:
6711  EDTInstrumentUsed _instrumentused;
6712  int _resize;
6713 
6715  virtual bool LoadFirst() { return false; }
6716 protected:
6717  virtual EXTAG Tag() { return ot_InstrumentUsed; }
6718  virtual int DataSizeLoad() { return sizeof(EDTInstrumentUsed); }
6719  virtual void* Allocate() { return (void*) &_instrumentused; }
6720 
6725  virtual void CloneMemoryFrom(__FCBaseData* pSource)
6726  {
6727  memcpy(&_instrumentused, ((FCSystemStaff*)pSource)->_GetDataPtr(), sizeof(_instrumentused));
6728  _datablock = &_instrumentused;
6729  _loadedsize = sizeof(_instrumentused);
6730  _resize = ((FCSystemStaff*)pSource)->GetResize();
6731  }
6732 
6733  virtual __FCBaseData* CreateObject() { return new FCSystemStaff(); }
6734 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
6735 public:
6736  virtual const char* ClassName() { return "FCSystemStaff"; }
6737  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_SYSTEMSTAFF; }
6738 
6739 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
6740 
6746  void* _GetDataPtr() { return &_instrumentused; }
6747 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
6748 
6755  {
6756  memset(&_instrumentused, 0, sizeof(_instrumentused));
6757  _datablock = &_instrumentused;
6758  _loadedsize = sizeof(_instrumentused);
6759  _resize = 100;
6760  }
6761 
6763  virtual bool Load(CMPER itemno, twobyte inci);
6764 
6766  virtual bool SaveNew(CMPER itemno);
6767 
6769  virtual bool Save();
6770 
6771 
6779  void SetDistance(Evpu32 distance) { _instrumentused.separ = -distance; }
6780 
6785  void SetStaff(eStaff staffno) { _instrumentused.inst = staffno; }
6786 
6794  Evpu32 GetDistance() const { return -_instrumentused.separ; }
6795 
6801  eStaff GetStaff() const { return _instrumentused.inst; }
6802 
6808  int GetResize() const
6809  {
6810  if (_dataid.other.cmper == 0) return 100;
6811  return _resize;
6812  }
6813 
6822  void SetResize(int value)
6823  {
6824  _resize = value;
6825  }
6826 
6834  {
6835  if (_dataid.other.cmper == 0) return false;
6836  if (!DataIsLoaded()) return false;
6837  EDataID dataID;
6838  dataID.detail.cmper1 = _dataid.other.cmper; /* System */
6839  dataID.detail.cmper2 = _instrumentused.inst; /* Staff */
6840  dataID.detail.inci = 0; /* Should be 0 */
6841  return FX_DeleteEData(dt_StaffEnduction, &dataID, EnigmaVersion()) != 0;
6842  }
6843 
6844 #ifdef PDK_FRAMEWORK_DEBUG
6845  virtual void DebugDump()
6846  {
6848  DebugOutDigit("Distance: ", GetDistance());
6849  }
6850 #endif
6851 };
6852 
6854 
6861 {
6862 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
6863  private:
6865  EDTDrumStaff2010 _drumstaff;
6866 
6868  virtual bool LoadFirst() { return false; }
6869 protected:
6870  virtual EXTAG Tag() { return GetCustomTag() ? GetCustomTag() : ot_DrumStaff2010; } /* Custom tags might be used!!! */
6871  virtual int DataSizeLoad() { return sizeof(EDTDrumStaff2010); }
6872  virtual void* Allocate() { return (void*) &_drumstaff; }
6873 
6878  virtual void CloneMemoryFrom(__FCBaseData* pSource)
6879  {
6880  memcpy(&_drumstaff, ((FCPercussionStaff*)pSource)->_GetDataPtr(), sizeof(_drumstaff));
6881  _datablock = &_drumstaff;
6882  _loadedsize = sizeof(_drumstaff);
6883  }
6884 
6885  virtual __FCBaseData* CreateObject() { return new FCPercussionStaff(); }
6886 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
6887 public:
6888  virtual const char* ClassName() { return "FCPercussionStaff"; }
6889  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_PERCUSSIONSTAFF; }
6890 
6891 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
6892 
6898  void* _GetDataPtr() { return &_drumstaff; }
6899 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
6900 
6903  {
6904  memset(&_drumstaff, 0, sizeof(_drumstaff));
6905  _datablock = &_drumstaff;
6906  _loadedsize = sizeof(_drumstaff);
6907  }
6908 
6916  {
6917  return _drumstaff.whichDrumLib;
6918  }
6919 
6924  void SetPercussionLibrary(CMPER cmper)
6925  {
6926  _drumstaff.whichDrumLib = cmper;
6927  }
6928 
6934  FCPercussionLayoutNotes* CreateLayoutNotes();
6935 
6936 #ifdef PDK_FRAMEWORK_DEBUG
6937  virtual void DebugDump()
6938  {
6940  DebugOutDigit("Percussion Library: ", GetPercussionLibrary());
6941  }
6942 #endif
6943 };
6944 
6945 #ifdef PDK_FRAMEWORK_PREFS
6946 
6957 {
6958 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
6959  private:
6960 
6961  bool _fullnamepos; /* Needed for calculating the preferences*/
6962 
6964  EDTNamePos _namepos;
6965 
6967  virtual bool LoadFirst() { return false; }
6968 protected:
6969  virtual EXTAG Tag() { return GetCustomTag() ? GetCustomTag() : ot_NamePosFull; } /* Custom tags SHOULD be used!!! */
6970  virtual int DataSizeLoad() { return sizeof(EDTNamePos); }
6971  virtual void* Allocate() { return (void*) &_namepos; }
6972 
6977  virtual void CloneMemoryFrom(__FCBaseData* pSource)
6978  {
6979  memcpy(&_namepos, ((FCStaffNamePosition*)pSource)->_GetDataPtr(), sizeof(_namepos));
6980  _datablock = &_namepos;
6981  _loadedsize = sizeof(_namepos);
6982  _fullnamepos = ((FCStaffNamePosition*)pSource)->_GetFullNamePos();
6983  }
6984 
6985  virtual __FCBaseData* CreateObject() { return new FCStaffNamePosition(_fullnamepos); }
6986 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
6987 public:
6988  virtual const char* ClassName() { return "FCStaffNamePosition"; }
6989  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_STAFFNAMEPOSITION; }
6990 
6991 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
6992 
6993  bool _GetFullNamePos() { return _fullnamepos; }
6994 
7001  void* _GetDataPtr() { return &_namepos; }
7002 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
7003 
7010  FCStaffNamePosition(bool fullname);
7011 
7016  twobyte GetHorizontalOffset() const { return _namepos.horizAdjust; }
7017 
7022  twobyte GetVerticalOffset() const { return _namepos.vertAdjust; }
7023 
7030  FLAG_16 GetJustification() const { return _namepos.flag & NAMEPOS_JUSTIBITS; }
7031 
7038  FLAG_16 GetAlignment() const { return (_namepos.flag & NAMEPOS_HALIGNBITS) >> 4; }
7039 
7044  bool GetExpandSingleWord() const { return GetBitFlag(_namepos.flag, NAMEPOS_EXPAND_SINGLE_WORD); }
7045 
7050  bool GetUsePositioning() const { return GetBitFlag(_namepos.flag, 0x0008); }
7051 
7052  // *******
7053  // SETTERS
7054  // *******
7055 
7060  void SetHorizontalOffset(twobyte value) { _namepos.horizAdjust = value; }
7061 
7066  void SetVerticalOffset(twobyte value) { _namepos.vertAdjust = value; }
7067 
7074  void SetJustification(FLAG_16 justification)
7075  {
7076  justification &= NAMEPOS_JUSTIBITS;
7077  _namepos.flag &= ~NAMEPOS_JUSTIBITS;
7078  _namepos.flag |= justification;
7079  }
7080 
7087  void SetAlignment(FLAG_16 alignment)
7088  {
7089  alignment = alignment << 4;
7090  alignment &= NAMEPOS_HALIGNBITS;
7091  _namepos.flag &= ~NAMEPOS_HALIGNBITS;
7092  _namepos.flag |= alignment;
7093  }
7094 
7099  void SetExpandSingleWord(bool state)
7100  {
7101  Set16BitFlag(&_namepos.flag, NAMEPOS_EXPAND_SINGLE_WORD, state);
7102  }
7103 
7108  void SetUsePositioning(bool state) { Set16BitFlag(&_namepos.flag, 0x0008, state); }
7109 
7114  Evpu16 CalcHorizontalPosition();
7115 
7120  Evpu16 CalcVerticalPosition();
7121 };
7122 #endif /* PDK_FRAMEWORK_PREFS */
7123 /* End of FCStaffNamePosition */
7124 
7125 
7126 class FCInstrumentDef;
7128 class FCFretInstrumentDef;
7129 
7134 {
7135 private:
7136  mutable FCString _uuid; /* Used for #GetInstrumentUUID */
7137 protected:
7138 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
7139 
7145  EVERSION _VersionToUse() const;
7146 
7147 
7148  /* PURE VIRTUAL METHODS
7149  *
7150  * Used for data pointer access.
7151  */
7152 
7154  virtual const uonebyte* _GetInstUUIDPtr() const = 0;
7155 
7157  virtual const FLAG_16* _GetInstFlagPtr() const = 0;
7158 
7160  virtual const FLAG_16* _GetFlagPtr() const = 0;
7161 
7163  virtual const FLAG_16* _GetAltFlagPtr() const = 0;
7164 
7166  virtual const FLAG_16* _GetAltFlag2Ptr() const = 0;
7167 
7169  virtual const twobyte* _GetTranspositionPtr() const = 0;
7170 
7172  virtual const FLAG_16* _GetMoreFlagsPtr() const = 0;
7173 
7175  virtual const FLAG_16* _GetMoreFlags2Ptr() const = 0;
7176 
7178  virtual const FLAG_16* _GetMoreFlags3Ptr() const = 0;
7179 
7181  virtual const twobyte* _GetAbbrvNamePtr() const = 0;
7182 
7184  virtual const twobyte* _GetFullNamePtr() const = 0;
7185 
7187  virtual const twobyte* _GetClefsPtr() const = 0;
7188 
7190  virtual const Efix32* _GetVertTabNumOffPtr() const = 0;
7191 
7193  virtual const CMPER* _GetFretInstIDPtr() const = 0;
7194 
7196  virtual const Evpu16* _GetBottomBarlineOffsetPtr() const = 0;
7197 
7199  virtual const Evpu16* _GetTopBarlineOffsetPtr() const = 0;
7200 
7202  virtual const utwobyte* _GetCapoLowFretPtr() const = 0;
7203 
7205  virtual const FLAG_16* _GetBotLinesPtr() const = 0;
7206 
7208  virtual const FLAG_16* _GetTopLinesPtr() const = 0;
7209 
7211  virtual const Efix32* _GetLineSpacePtr() const = 0;
7212 
7214  virtual const twobyte* _GetDwWRestPtr() const = 0;
7215 
7217  virtual const twobyte* _GetStemReversalPtr() const = 0;
7218 
7220  virtual const twobyte* _GetRepeatDotsOffPtr() const = 0;
7221 
7223  virtual const twobyte* _GetHOtherRestPtr() const = 0;
7224 
7230  void _SetFlag(FLAG_16 mask, bool state)
7231  {
7232  FLAG_16* pFlag = (FLAG_16*) _GetFlagPtr();
7233  return Set16BitFlag(pFlag, mask, state);
7234  }
7235 
7236 #endif /* #ifndef DOXYGEN_SHOULD_IGNORE_THIS */
7237 private:
7238  /* ACCESSOR METHODS */
7239 
7242  bool _GetInstFlag(FLAG_16 mask) const
7243  {
7244  return GetBitFlag(*_GetInstFlagPtr(), mask);
7245  }
7246 
7249  void _SetInstFlag(FLAG_16 mask, bool state)
7250  {
7251  FLAG_16* pInstFlag = (FLAG_16*) _GetInstFlagPtr();
7252  return Set16BitFlag(pInstFlag, mask, state);
7253  }
7254 
7259  bool _GetFlag(FLAG_16 mask) const
7260  {
7261  return GetBitFlag(*_GetFlagPtr(), mask);
7262  }
7263 
7268  bool _GetAltFlag(FLAG_16 mask) const
7269  {
7270  return GetBitFlag(*_GetAltFlagPtr(), mask);
7271  }
7272 
7277  void _SetAltFlag(FLAG_16 mask, bool state)
7278  {
7279  FLAG_16* pFlag = (FLAG_16*) _GetAltFlagPtr();
7280  return Set16BitFlag(pFlag, mask, state);
7281  }
7282 
7287  bool _GetTranspositionFlag(FLAG_16 mask) const
7288  {
7289  return GetBitFlag(*_GetTranspositionPtr(), mask);
7290  }
7291 
7296  void _SetTranspositionFlag(FLAG_16 mask, bool state)
7297  {
7298  FLAG_16* pFlag = (FLAG_16*) _GetTranspositionPtr();
7299  return Set16BitFlag(pFlag, mask, state);
7300  }
7301 
7306  bool _GetMoreFlags(FLAG_16 mask) const
7307  {
7308  return GetBitFlag(*_GetMoreFlagsPtr(), mask);
7309  }
7310 
7311  bool _GetMoreFlags2(FLAG_16 mask) const
7312  {
7313  return GetBitFlag(*_GetMoreFlags2Ptr(), mask);
7314  }
7315 
7316  bool _GetMoreFlags3(FLAG_16 mask) const
7317  {
7318  return GetBitFlag(*_GetMoreFlags3Ptr(), mask);
7319  }
7320 
7325  void _SetMoreFlags(FLAG_16 mask, bool state)
7326  {
7327  FLAG_16* pFlag = (FLAG_16*) _GetMoreFlagsPtr();
7328  return Set16BitFlag(pFlag, mask, state);
7329  }
7330 
7335  void _SetMoreFlags2(FLAG_16 mask, bool state)
7336  {
7337  FLAG_16* pFlag = (FLAG_16*) _GetMoreFlags2Ptr();
7338  return Set16BitFlag(pFlag, mask, state);
7339  }
7340 
7345  void _SetMoreFlags3(FLAG_16 mask, bool state)
7346  {
7347  FLAG_16* pFlag = (FLAG_16*) _GetMoreFlags3Ptr();
7348  return Set16BitFlag(pFlag, mask, state);
7349  }
7350 
7352  void _SetAbbreviatedNameID(CMPER cmperid)
7353  {
7354  CMPER* pCmper = (CMPER*) _GetAbbrvNamePtr();
7355  *pCmper = cmperid;
7356  }
7357 
7359  void _SetFullNameID(CMPER cmperid)
7360  {
7361  CMPER* pCmper = (CMPER*) _GetFullNamePtr();
7362  *pCmper = cmperid;
7363  }
7364 public:
7365 #if FXT_VERSION >= FINALEVERSION_2012
7366 
7368  static const char* FFUUID_BLANKSTAFF;
7370  static const char* FFUUID_GRANDSTAFF;
7372  static const char* FFUUID_UNKNOWN;
7373 
7374  /* Strings */
7375 
7377  static const char* FFUUID_VIOLIN;
7379  static const char* FFUUID_VIOLA;
7381  static const char* FFUUID_CELLO;
7383  static const char* FFUUID_DOUBLEBASS;
7385  static const char* FFUUID_VIOLINSECTION;
7387  static const char* FFUUID_VIOLASECTION;
7389  static const char* FFUUID_CELLOSECTION;
7391  static const char* FFUUID_VIOLONCELLOSECTION;
7393  static const char* FFUUID_DOUBLEBASSSECTION;
7395  static const char* FFUUID_CONTRABASSSECTION;
7397  static const char* FFUUID_STRINGENSEMBLE;
7399  static const char* FFUUID_VIOLADAMORE;
7401  static const char* FFUUID_AJAENG;
7403  static const char* FFUUID_ARPEGGIONE;
7405  static const char* FFUUID_BARYTON;
7407  static const char* FFUUID_BYZANTINELYRA;
7409  static const char* FFUUID_CRETANLYRA;
7411  static const char* FFUUID_CRWTH;
7413  static const char* FFUUID_DAHU;
7415  static const char* FFUUID_DANGAO;
7417  static const char* FFUUID_DIHU;
7419  static const char* FFUUID_ERHU;
7421  static const char* FFUUID_ERXIAN;
7423  static const char* FFUUID_FIDDLE;
7425  static const char* FFUUID_GAOHU;
7427  static const char* FFUUID_GEHU;
7429  static const char* FFUUID_HAEGEUM;
7431  static const char* FFUUID_HARDANGERFIDDLE;
7433  static const char* FFUUID_HURDYGURDY;
7435  static const char* FFUUID_IGIL;
7437  static const char* FFUUID_KAMANCHA;
7439  static const char* FFUUID_KOKYU;
7441  static const char* FFUUID_KORA;
7443  static const char* FFUUID_LARUAN;
7445  static const char* FFUUID_LEIQIN;
7447  static const char* FFUUID_LIRONE;
7449  static const char* FFUUID_MORINKHUUR;
7451  static const char* FFUUID_NYCKELHARPA;
7453  static const char* FFUUID_OCTOBASS;
7455  static const char* FFUUID_REBAB;
7457  static const char* FFUUID_REBEC;
7459  static const char* FFUUID_SARANGI;
7461  static const char* FFUUID_SARANGIDRONE;
7463  static const char* FFUUID_STROHVIOLIN;
7465  static const char* FFUUID_TROMBAMARINA;
7467  static const char* FFUUID_VIELLE;
7469  static const char* FFUUID_VIOL;
7471  static const char* FFUUID_VIOLADAGAMBA;
7473  static const char* FFUUID_VIOLINOPICCOLO;
7475  static const char* FFUUID_VIOLONCELLOPICCOLO;
7477  static const char* FFUUID_VIOLOTTA;
7479  static const char* FFUUID_ZHONGHU;
7480 
7481  /* Keyboards */
7482 
7484  static const char* FFUUID_PIANO;
7486  static const char* FFUUID_PIANONONAME;
7488  static const char* FFUUID_HARPSICHORD;
7490  static const char* FFUUID_ORGAN;
7492  static const char* FFUUID_ORGAN2STAFF;
7494  static const char* FFUUID_CELESTA;
7496  static const char* FFUUID_ACCORDION;
7498  static const char* FFUUID_MELODICA;
7500  static const char* FFUUID_ELECTRICPIANO;
7502  static const char* FFUUID_CLAVINET;
7504  static const char* FFUUID_SYNTHPAD;
7506  static const char* FFUUID_SYNTHLEAD;
7508  static const char* FFUUID_SYNTHBRASS;
7510  static const char* FFUUID_SYNTHSOUNDTRACK;
7512  static const char* FFUUID_SOUNDFX;
7514  static const char* FFUUID_HARMONIUM;
7516  static const char* FFUUID_ONDESMARTENOT;
7518  static const char* FFUUID_THEREMIN;
7520  static const char* FFUUID_VIRGINAL;
7522  static const char* FFUUID_CLAVICHORD;
7523 
7524  /* Voices */
7525 
7527  static const char* FFUUID_SOPRANOVOICE;
7529  static const char* FFUUID_ALTOVOICE;
7531  static const char* FFUUID_TENORVOICE;
7533  static const char* FFUUID_BARITONEVOICE;
7535  static const char* FFUUID_BASSVOICE;
7537  static const char* FFUUID_VOCALS;
7539  static const char* FFUUID_VOICE;
7541  static const char* FFUUID_VOICENONAME;
7543  static const char* FFUUID_MEZZOSOPRANOVOICE;
7545  static const char* FFUUID_CONTRALTOVOICE;
7547  static const char* FFUUID_COUNTERTENORVOICE;
7549  static const char* FFUUID_BASSBAROTONEVOICE;
7551  static const char* FFUUID_CHOIRAAHS;
7553  static const char* FFUUID_CHOIROOHS;
7555  static const char* FFUUID_YODEL;
7557  static const char* FFUUID_BEATBOX;
7559  static const char* FFUUID_KAZOO;
7561  static const char* FFUUID_TALKBOX;
7563  static const char* FFUUID_VOCALPERCUSSION;
7564 
7565  /* Woodwinds */
7566 
7568  static const char* FFUUID_PICCOLO;
7570  static const char* FFUUID_FLUTE;
7572  static const char* FFUUID_ALTOFLUTE;
7574  static const char* FFUUID_OBOE;
7576  static const char* FFUUID_OBOEDAMORE;
7578  static const char* FFUUID_ENGLISHHORN;
7580  static const char* FFUUID_CLARINETBFLAT;
7582  static const char* FFUUID_CLARINETA;
7584  static const char* FFUUID_CLARINETEFLAT;
7586  static const char* FFUUID_ALTOCLARINET;
7588  static const char* FFUUID_CONTRALTOCLARINET;
7590  static const char* FFUUID_BASSCLARINET;
7592  static const char* FFUUID_CONTRABASSCLARINET;
7594  static const char* FFUUID_BASSOON;
7596  static const char* FFUUID_CONTRABASSOON;
7598  static const char* FFUUID_WINDSECTION;
7600  static const char* FFUUID_SOPRANOSAX;
7602  static const char* FFUUID_ALTOSAX;
7604  static const char* FFUUID_TENORSAX;
7606  static const char* FFUUID_BARITONESAX;
7608  static const char* FFUUID_SOPRANORECORDER;
7610  static const char* FFUUID_SOPRANINORECORDER;
7612  static const char* FFUUID_ALTORECORDER;
7614  static const char* FFUUID_TENORRECORDER;
7616  static const char* FFUUID_BASSRECORDER;
7618  static const char* FFUUID_DESCANTRECORDER;
7620  static const char* FFUUID_OCARINA;
7622  static const char* FFUUID_PENNYWHISTLE;
7624  static const char* FFUUID_PENNYWHISTLED;
7626  static const char* FFUUID_PENNYWHISTLEG;
7628  static const char* FFUUID_LOWIRISHWHISTLE;
7630  static const char* FFUUID_TINWHISTLEBFLAT;
7632  static const char* FFUUID_HARMONICA;
7634  static const char* FFUUID_BASSHARMONICA;
7636  static const char* FFUUID_CONCERTINA;
7638  static const char* FFUUID_BANDONEON;
7640  static const char* FFUUID_HORNF_WWQUINTET;
7642  static const char* FFUUID_BAGPIPES;
7644  static const char* FFUUID_UILLEANNPIPES;
7646  static const char* FFUUID_GAIDAPIPES;
7648  static const char* FFUUID_CONTRAALTOFLUTE;
7650  static const char* FFUUID_BASSFLUTE;
7652  static const char* FFUUID_CONTRABASSFLUTE;
7654  static const char* FFUUID_DOUBLECONTRABASSFLUTE;
7656  static const char* FFUUID_HYPERBASSFLUTE;
7658  static const char* FFUUID_PANPIPES;
7660  static const char* FFUUID_FIFE;
7662  static const char* FFUUID_BOTTLEBLOW;
7664  static const char* FFUUID_JUG;
7666  static const char* FFUUID_PICCOLOOBOE;
7668  static const char* FFUUID_PICCOLOHECKELPHONE;
7670  static const char* FFUUID_HECKELPHONE;
7672  static const char* FFUUID_BASSOBOE;
7674  static const char* FFUUID_BASSETCLARINET;
7676  static const char* FFUUID_BASSETHORN;
7678  static const char* FFUUID_HORNPIPE;
7680  static const char* FFUUID_PICCOLOCLARINET;
7682  static const char* FFUUID_SAXONETTE;
7684  static const char* FFUUID_SOPRANINOSAX;
7686  static const char* FFUUID_MEZZOSOPRANOSAX;
7688  static const char* FFUUID_SOPRILLO;
7690  static const char* FFUUID_CMELODYSAX;
7692  static const char* FFUUID_AULOCHROME;
7694  static const char* FFUUID_XAPHOON;
7696  static const char* FFUUID_BASSSAX;
7698  static const char* FFUUID_CONTRABASSSAX;
7700  static const char* FFUUID_SUBCONTRABASSSAX;
7702  static const char* FFUUID_TUBAX;
7704  static const char* FFUUID_BANSURI;
7706  static const char* FFUUID_DANSO;
7708  static const char* FFUUID_DIZI;
7710  static const char* FFUUID_DILLIKAVAL;
7712  static const char* FFUUID_DIPLE;
7714  static const char* FFUUID_DOUBLEFLUTE;
7716  static const char* FFUUID_DVOJNICE;
7718  static const char* FFUUID_DVOJNICEDRONE;
7720  static const char* FFUUID_FLAGEOLET;
7722  static const char* FFUUID_FUJARA;
7724  static const char* FFUUID_GEMSHORN;
7726  static const char* FFUUID_HOCCHIKU;
7728  static const char* FFUUID_HUN;
7730  static const char* FFUUID_IRISHFLUTE;
7732  static const char* FFUUID_KAVAL;
7734  static const char* FFUUID_KHLUI;
7736  static const char* FFUUID_KNOTWEEDFLUTE;
7738  static const char* FFUUID_KONCOVKAALTOFLUTE;
7740  static const char* FFUUID_KOUDI;
7742  static const char* FFUUID_NEY;
7744  static const char* FFUUID_NOHKAN;
7746  static const char* FFUUID_NOSEFLUTE;
7748  static const char* FFUUID_PALENDAG;
7750  static const char* FFUUID_QUENA;
7752  static const char* FFUUID_RYUTEKI;
7754  static const char* FFUUID_SHAKUHACHI;
7756  static const char* FFUUID_SHEPHERDSPIPE;
7758  static const char* FFUUID_SHINOBUE;
7760  static const char* FFUUID_SHIVAWHISTLE;
7762  static const char* FFUUID_SHVI;
7764  static const char* FFUUID_SULING;
7766  static const char* FFUUID_TARKA;
7768  static const char* FFUUID_TENOROVERTONEFLUTE;
7770  static const char* FFUUID_TUMPONG;
7772  static const char* FFUUID_VENU;
7774  static const char* FFUUID_XIAO;
7776  static const char* FFUUID_XUN;
7778  static const char* FFUUID_ALBOGUE;
7780  static const char* FFUUID_ALBOKA;
7782  static const char* FFUUID_ALTOCRUMHORN;
7784  static const char* FFUUID_ARGHUL;
7786  static const char* FFUUID_BAWU;
7788  static const char* FFUUID_CHALUMEAU;
7790  static const char* FFUUID_CLARINETTEDAMOUR;
7792  static const char* FFUUID_CORNAMUSE;
7794  static const char* FFUUID_DIPLICA;
7796  static const char* FFUUID_DOUBLECLARINET;
7798  static const char* FFUUID_HECKELCLARINA;
7800  static const char* FFUUID_HECKELPHONECLARINET;
7802  static const char* FFUUID_HIRTENSCHALMEI;
7804  static const char* FFUUID_LAUNEDDAS;
7806  static const char* FFUUID_MAQRUNAH;
7808  static const char* FFUUID_MIJWIZ;
7810  static const char* FFUUID_OCTAVIN;
7812  static const char* FFUUID_PIBGORN;
7814  static const char* FFUUID_RAUSCHPFEIFE;
7816  static const char* FFUUID_SIPSI;
7818  static const char* FFUUID_MODERNTAROGATO;
7820  static const char* FFUUID_TENORCRUMHORN;
7822  static const char* FFUUID_ZHALEIKA;
7824  static const char* FFUUID_ALGAITA;
7826  static const char* FFUUID_BIFORA;
7828  static const char* FFUUID_BOMBARDE;
7830  static const char* FFUUID_CROMORNE;
7832  static const char* FFUUID_DUDUK;
7834  static const char* FFUUID_DULCIAN;
7836  static const char* FFUUID_DULZAINA;
7838  static const char* FFUUID_GUAN;
7840  static const char* FFUUID_GUANZI;
7842  static const char* FFUUID_HICHIRIKI;
7844  static const char* FFUUID_HNE;
7846  static const char* FFUUID_JOGIBAJA;
7848  static const char* FFUUID_KENBAU;
7850  static const char* FFUUID_MIZMAR;
7852  static const char* FFUUID_NADASWARAM;
7854  static const char* FFUUID_OBOEDACACCIA;
7856  static const char* FFUUID_PI;
7858  static const char* FFUUID_PIRI;
7860  static const char* FFUUID_PUNGISNAKECHARMER;
7862  static const char* FFUUID_RACKETT;
7864  static const char* FFUUID_REEDCONTRABASS;
7866  static const char* FFUUID_RHAITA;
7868  static const char* FFUUID_ROTHPHONE;
7870  static const char* FFUUID_SARRUSOPHONE;
7872  static const char* FFUUID_SHAWM;
7874  static const char* FFUUID_SHEHNAI;
7876  static const char* FFUUID_SOPILA;
7878  static const char* FFUUID_SORNA;
7880  static const char* FFUUID_SRALAI;
7882  static const char* FFUUID_SUONA;
7884  static const char* FFUUID_SURNAY;
7886  static const char* FFUUID_TAEPYEONGSO;
7888  static const char* FFUUID_ANCIENTTAROGATO;
7890  static const char* FFUUID_TROMPETACHINA;
7892  static const char* FFUUID_ZURLA;
7894  static const char* FFUUID_ZURNA;
7896  static const char* FFUUID_KHAENMOUTHORGAN;
7898  static const char* FFUUID_HULUSI;
7900  static const char* FFUUID_SHENG;
7901 
7902  /* Brass */
7904  static const char* FFUUID_TRUMPETBFLAT;
7906  static const char* FFUUID_TRUMPETC;
7908  static const char* FFUUID_TRUMPETD;
7910  static const char* FFUUID_CORNET;
7912  static const char* FFUUID_FLUGELHORN;
7914  static const char* FFUUID_MELLOPHONE;
7916  static const char* FFUUID_HORNF;
7918  static const char* FFUUID_TROMBONE;
7920  static const char* FFUUID_BASSTROMBONE;
7922  static const char* FFUUID_EUPHONIUM;
7924  static const char* FFUUID_BARITONEBC;
7926  static const char* FFUUID_BARITONETC;
7928  static const char* FFUUID_TUBA;
7930  static const char* FFUUID_BASSTUBA;
7932  static const char* FFUUID_SOUSAPHONE;
7934  static const char* FFUUID_BRASSSECTION;
7936  static const char* FFUUID_PICCOLOTRUMPETA;
7938  static const char* FFUUID_BUGLE;
7940  static const char* FFUUID_CORNETEFLAT;
7942  static const char* FFUUID_HORNEFLAT;
7944  static const char* FFUUID_ALTOTROMBONE;
7946  static const char* FFUUID_TENORTROMBONE;
7948  static const char* FFUUID_CONTRABASSTROMBONE;
7950  static const char* FFUUID_ALPHORN;
7952  static const char* FFUUID_ALTOHORN;
7954  static const char* FFUUID_DIDGERIDOO;
7956  static const char* FFUUID_POSTHORN;
7958  static const char* FFUUID_VIENNAHORN;
7960  static const char* FFUUID_WAGNERTUBA;
7962  static const char* FFUUID_BAROQUETRUMPET;
7964  static const char* FFUUID_BASSTRUMPET;
7966  static const char* FFUUID_CORNETTO;
7968  static const char* FFUUID_FISCORN;
7970  static const char* FFUUID_KUHLOHORN;
7972  static const char* FFUUID_POCKETTRUMPET;
7974  static const char* FFUUID_SAXHORN;
7976  static const char* FFUUID_SLIDETRUMPET;
7978  static const char* FFUUID_CIMBASSO;
7980  static const char* FFUUID_DOUBLEBELLEUPHONIUM;
7982  static const char* FFUUID_SACKBUT;
7984  static const char* FFUUID_HELICON;
7986  static const char* FFUUID_OPHICLEIDE;
7988  static const char* FFUUID_SERPENT;
7990  static const char* FFUUID_SUBCONTRABASSTUBA;
7992  static const char* FFUUID_CONCHSHELL;
7994  static const char* FFUUID_HORAGAI;
7996  static const char* FFUUID_SHOFAR;
7998  static const char* FFUUID_VUVUZELA;
7999 
8000  /* Plucked strings */
8002  static const char* FFUUID_HARP;
8004  static const char* FFUUID_TROUBADORHARP;
8006  static const char* FFUUID_GUITAR;
8008  static const char* FFUUID_GUITAR8VB;
8010  static const char* FFUUID_ACOUSTICGUITAR;
8012  static const char* FFUUID_CLASSICALGUITAR;
8014  static const char* FFUUID_ELECTRICGUITAR;
8016  static const char* FFUUID_STEELGUITAR;
8018  static const char* FFUUID_BANJO;
8020  static const char* FFUUID_TENORBANJO;
8022  static const char* FFUUID_ACOUSTICBASS;
8024  static const char* FFUUID_BASSGUITAR;
8026  static const char* FFUUID_ELECTRICBASS;
8028  static const char* FFUUID_FRETLESSBASS;
8030  static const char* FFUUID_STRINGBASS;
8032  static const char* FFUUID_MANDOLIN;
8034  static const char* FFUUID_DULCIMER;
8036  static const char* FFUUID_HAMMEREDDULCIMER;
8038  static const char* FFUUID_DULCIMER8VB;
8040  static const char* FFUUID_AUTOHARP;
8042  static const char* FFUUID_LUTE;
8044  static const char* FFUUID_UKULELE;
8046  static const char* FFUUID_TENORUKULELE;
8048  static const char* FFUUID_SITAR;
8050  static const char* FFUUID_ZITHER;
8052  static const char* FFUUID_ARCHLUTE;
8054  static const char* FFUUID_BAGLAMA;
8056  static const char* FFUUID_BALALAIKA;
8058  static const char* FFUUID_BANDURA;
8060  static const char* FFUUID_BANJOLELE;
8062  static const char* FFUUID_BARBAT;
8064  static const char* FFUUID_BEGENA;
8066  static const char* FFUUID_BIWA;
8068  static const char* FFUUID_BOLON;
8070  static const char* FFUUID_BORDONUA;
8072  static const char* FFUUID_BOUZOUKI;
8074  static const char* FFUUID_BULGARIANTAMBURA;
8076  static const char* FFUUID_CHAPMANSTICK;
8078  static const char* FFUUID_CHARANGO;
8080  static const char* FFUUID_CHITARRABATTENTE;
8082  static const char* FFUUID_CHOAZHOUGUZHENG;
8084  static const char* FFUUID_CIMBALOM;
8086  static const char* FFUUID_CITTERN;
8088  static const char* FFUUID_CUATRO;
8090  static const char* FFUUID_DANBAU;
8092  static const char* FFUUID_DANNGUYET;
8094  static const char* FFUUID_DANTAMTHAPLUC;
8096  static const char* FFUUID_DANTRANH;
8098  static const char* FFUUID_DANTYBA;
8100  static const char* FFUUID_DIDDLEYBOW;
8102  static const char* FFUUID_DOBRO;
8104  static const char* FFUUID_DOMRA;
8106  static const char* FFUUID_DUTAR;
8108  static const char* FFUUID_DUXIANQIN;
8111  static const char* FFUUID_EKTARA1;
8113  static const char* FFUUID_FLAMENCOGUITAR;
8115  static const char* FFUUID_GEOMUNGO;
8118  static const char* FFUUID_EKTARA2;
8120  static const char* FFUUID_GOTTUVADHYAM;
8124  static const char* FFUUID_GUITARRON;
8126  static const char* FFUUID_GUITJO;
8128  static const char* FFUUID_GUITJODOUBLENECK;
8130  static const char* FFUUID_GUQIN;
8132  static const char* FFUUID_GUZHENG;
8134  static const char* FFUUID_HARPGUITAR;
8136  static const char* FFUUID_IRISHBOUZOUKI;
8138  static const char* FFUUID_JARANAHUASTECA;
8140  static const char* FFUUID_JARANAJAROCHO;
8142  static const char* FFUUID_JARANAMOSQUITO;
8144  static const char* FFUUID_JARANASEGUNDA;
8146  static const char* FFUUID_JARANATERCERA;
8148  static const char* FFUUID_KABOSY;
8150  static const char* FFUUID_KANTELE;
8152  static const char* FFUUID_KAYAGUM;
8154  static const char* FFUUID_KHIM;
8156  static const char* FFUUID_KOBZA;
8158  static const char* FFUUID_KOMUZ;
8160  static const char* FFUUID_KOTO;
8162  static const char* FFUUID_KUTIYAPI;
8164  static const char* FFUUID_LANGELEIK;
8166  static const char* FFUUID_LYRE;
8168  static const char* FFUUID_MANDOBASS;
8170  static const char* FFUUID_MANDOCELLO;
8172  static const char* FFUUID_MANDOLA;
8174  static const char* FFUUID_MANDORA;
8176  static const char* FFUUID_MANDORE;
8178  static const char* FFUUID_MANGBETU;
8180  static const char* FFUUID_MAROVANY;
8182  static const char* FFUUID_MOHANVEENA;
8184  static const char* FFUUID_MOODSWINGER;
8186  static const char* FFUUID_MUSICALBOW;
8188  static const char* FFUUID_NGONI;
8190  static const char* FFUUID_OCTAVEMANDOLIN;
8192  static const char* FFUUID_OUD;
8194  static const char* FFUUID_PIPA;
8196  static const char* FFUUID_PORTUGUESEGUITAR;
8198  static const char* FFUUID_PSALTERY;
8200  static const char* FFUUID_REQUINTOGUITAR;
8202  static const char* FFUUID_RUAN;
8204  static const char* FFUUID_RUDRAVEENA;
8206  static const char* FFUUID_SALLANEH;
8208  static const char* FFUUID_SANSHIN;
8210  static const char* FFUUID_SANTOOR;
8212  static const char* FFUUID_SANXIAN;
8214  static const char* FFUUID_SAROD;
8216  static const char* FFUUID_SAUNG;
8218  static const char* FFUUID_SAZ;
8220  static const char* FFUUID_SE;
8222  static const char* FFUUID_SETAR;
8224  static const char* FFUUID_SHAMISEN;
8226  static const char* FFUUID_TAMBURA;
8229  static const char* FFUUID_TAR_PLUCKED;
8231  static const char* FFUUID_THEORBO;
8233  static const char* FFUUID_TIMPLE;
8235  static const char* FFUUID_TRES;
8237  static const char* FFUUID_TSYMBALY;
8239  static const char* FFUUID_VALIHA;
8241  static const char* FFUUID_VEENA;
8243  static const char* FFUUID_VICHITRAVEENA;
8245  static const char* FFUUID_VIHUELAMEXICO;
8247  static const char* FFUUID_VIHUELASPAIN;
8249  static const char* FFUUID_WASHTUBBASS;
8251  static const char* FFUUID_WHAMOLA;
8253  static const char* FFUUID_XALAM;
8255  static const char* FFUUID_YANGQIN;
8257  static const char* FFUUID_YAZHENG;
8259  static const char* FFUUID_YUEQIN;
8260 
8261  /* Tablature */
8263  static const char* FFUUID_TAB_GUITAR;
8265  static const char* FFUUID_TAB_GUITARNONAME;
8267  static const char* FFUUID_TAB_GUITARSTEMS;
8269  static const char* FFUUID_TAB_GUITAR_D;
8271  static const char* FFUUID_TAB_GUITAR_DADGAD;
8273  static const char* FFUUID_TAB_GUITAR_DOUBLED;
8275  static const char* FFUUID_TAB_GUITAR_DROPD;
8277  static const char* FFUUID_TAB_GUITAR_G;
8279  static const char* FFUUID_TAB_GUITAR_7STRING;
8281  static const char* FFUUID_TAB_BANJO_G;
8283  static const char* FFUUID_TAB_TENORBANJO;
8285  static const char* FFUUID_TAB_BANJO_C;
8287  static const char* FFUUID_TAB_BANJO_D;
8289  static const char* FFUUID_TAB_BANJO_DOUBLEC;
8291  static const char* FFUUID_TAB_BANJO_GMODAL;
8293  static const char* FFUUID_TAB_BANJO_PLECTRUM;
8295  static const char* FFUUID_TAB_BASSGUITAR_4;
8297  static const char* FFUUID_TAB_BASSGUITAR_5;
8299  static const char* FFUUID_TAB_BASSGUITAR_6;
8301  static const char* FFUUID_TAB_DULCIMER_DAA;
8303  static const char* FFUUID_TAB_DULCIMER_DAAUNISON;
8305  static const char* FFUUID_TAB_DULCIMER_DAD;
8307  static const char* FFUUID_TAB_GAMBA;
8309  static const char* FFUUID_TAB_LUTEITALIAN;
8311  static const char* FFUUID_TAB_LUTELETTERS;
8313  static const char* FFUUID_TAB_MANDOLIN;
8315  static const char* FFUUID_TAB_REQUINTO;
8317  static const char* FFUUID_TAB_SITAR_SHANKAR;
8319  static const char* FFUUID_TAB_SITAR_KHAN;
8321  static const char* FFUUID_TAB_UKULELE;
8323  static const char* FFUUID_TAB_VIHUELA;
8324 
8325  /* Pitched Percussion */
8327  static const char* FFUUID_TIMPANI;
8329  static const char* FFUUID_MALLETS;
8331  static const char* FFUUID_BELLS;
8333  static const char* FFUUID_CHIMES;
8335  static const char* FFUUID_CROTALES;
8337  static const char* FFUUID_GLOCKENSPIEL;
8339  static const char* FFUUID_SOPRANOGLOCKENSPIEL;
8341  static const char* FFUUID_ALTOGLOCKENSPIEL;
8343  static const char* FFUUID_MARIMBA;
8345  static const char* FFUUID_BASSMARIMBA;
8347  static const char* FFUUID_MARIMBASINGLESTAFF;
8349  static const char* FFUUID_TUBULARBELLS;
8351  static const char* FFUUID_VIBRAPHONE;
8353  static const char* FFUUID_XYLOPHONE;
8355  static const char* FFUUID_SOPRANOXYLOPHONE;
8357  static const char* FFUUID_ALTOXYLOPHONE;
8359  static const char* FFUUID_BASSXYLOPHONE;
8361  static const char* FFUUID_XYLORIMBA;
8363  static const char* FFUUID_BELL_LYRE;
8365  static const char* FFUUID_BOOMWHACKERS;
8367  static const char* FFUUID_CHROMANOTESINSTRUMENTS;
8369  static const char* FFUUID_CARILLON;
8371  static const char* FFUUID_CRYSTALGLASSES;
8374  static const char* FFUUID_FLEXATONE_PITCHED;
8376  static const char* FFUUID_GLASSHARMONICA;
8378  static const char* FFUUID_GLASSMARIMBA;
8380  static const char* FFUUID_HANDBELLS;
8382  static const char* FFUUID_HANDBELLS_TCLEF;
8384  static const char* FFUUID_HANDBELLS_BCLEF;
8386  static const char* FFUUID_HANG_TCLEF;
8388  static const char* FFUUID_JAWHARP;
8390  static const char* FFUUID_KALIMBA;
8392  static const char* FFUUID_SOPRANOMETALLOPHONE;
8394  static const char* FFUUID_ALTOMETALLOPHONE;
8396  static const char* FFUUID_BASSMETALLOPHONE;
8398  static const char* FFUUID_MUSICALSAW;
8400  static const char* FFUUID_SLIDEWHISTLE;
8402  static const char* FFUUID_STEELDRUMS_TCLEF;
8404  static const char* FFUUID_STEELDRUMS_BCLEF;
8406  static const char* FFUUID_BONANGGAMELAN;
8408  static const char* FFUUID_GANGSAGAMELAN;
8410  static const char* FFUUID_GENDERGAMELAN;
8412  static const char* FFUUID_GIYINGGAMELAN;
8414  static const char* FFUUID_KANTILGAMELAN;
8416  static const char* FFUUID_PELOGPANERUSGAMELAN;
8418  static const char* FFUUID_PEMADEGAMELAN;
8420  static const char* FFUUID_PENYACAHGAMELAN;
8422  static const char* FFUUID_SARONBARUNGGAMELAN;
8424  static const char* FFUUID_SARONDEMONGGAMELAN;
8426  static const char* FFUUID_SARONPANERUSGAMELAN;
8428  static const char* FFUUID_SLENDROPANERUSGAMELAN;
8430  static const char* FFUUID_SLENTHEMSGAMELAN;
8432  static const char* FFUUID_ALMGLOCKEN;
8434  static const char* FFUUID_ANGKLUNG;
8436  static const char* FFUUID_ARRAYMBIRA;
8438  static const char* FFUUID_BALAFON;
8440  static const char* FFUUID_BALAPHON;
8442  static const char* FFUUID_BIANQING;
8444  static const char* FFUUID_BIANZHONG;
8446  static const char* FFUUID_FANGXIANG;
8448  static const char* FFUUID_GANDINGANAKAYO;
8450  static const char* FFUUID_GYIL;
8452  static const char* FFUUID_KUBING;
8454  static const char* FFUUID_KULINTANG;
8456  static const char* FFUUID_KULINTANGAKAYO;
8458  static const char* FFUUID_KULINTANGATINIOK;
8460  static const char* FFUUID_LAMELLAPHONE;
8462  static const char* FFUUID_LIKEMBE;
8464  static const char* FFUUID_LUNTANG;
8466  static const char* FFUUID_MBIRA;
8468  static const char* FFUUID_MURCHANG;
8470  static const char* FFUUID_RANATEKLEK;
8472  static const char* FFUUID_RANATTHUMLEK;
8474  static const char* FFUUID_SANZA;
8476  static const char* FFUUID_TAIKODRUMS;
8478  static const char* FFUUID_TEMPLEBELLS;
8480  static const char* FFUUID_TIBETANBELLS;
8482  static const char* FFUUID_TIBETANSINGINGBOWLS;
8483 
8484  /* Drums */
8485 
8487  static const char* FFUUID_SNAREDRUM;
8489  static const char* FFUUID_BASSDRUM;
8491  static const char* FFUUID_DRUMSET;
8493  static const char* FFUUID_TENORDRUM;
8495  static const char* FFUUID_QUADTOMS;
8497  static const char* FFUUID_QUINTTOMS;
8499  static const char* FFUUID_ROTOTOMS;
8501  static const char* FFUUID_TENORLINE;
8503  static const char* FFUUID_SNARELINE;
8505  static const char* FFUUID_BASSDRUMS_5LINE;
8507  static const char* FFUUID_DJEMBE;
8509  static const char* FFUUID_BONGODRUMS;
8511  static const char* FFUUID_CONGADRUMS;
8513  static const char* FFUUID_LOGDRUM;
8515  static const char* FFUUID_TABLAS;
8517  static const char* FFUUID_TIMBALES;
8519  static const char* FFUUID_AFRICANLOGDRUM;
8521  static const char* FFUUID_APENTEMMA;
8523  static const char* FFUUID_ARABIANFRAMEDRUM;
8525  static const char* FFUUID_ASHIKO;
8527  static const char* FFUUID_ATABAQUE;
8529  static const char* FFUUID_BATA;
8531  static const char* FFUUID_BENDIR;
8533  static const char* FFUUID_BODHRAN;
8535  static const char* FFUUID_BOMBO;
8537  static const char* FFUUID_BOUGARABOU;
8539  static const char* FFUUID_BUFFALODRUM;
8541  static const char* FFUUID_CHENDA;
8543  static const char* FFUUID_CHUDAIKO;
8545  static const char* FFUUID_DABAKAN;
8547  static const char* FFUUID_DAIBYOSI;
8549  static const char* FFUUID_DAMROO;
8551  static const char* FFUUID_DARABUKA;
8553  static const char* FFUUID_DATANGULIONDRUM;
8555  static const char* FFUUID_DHOL;
8557  static const char* FFUUID_DHOLAK;
8559  static const char* FFUUID_DOLLU;
8561  static const char* FFUUID_DONDO;
8563  static const char* FFUUID_DOUNDOUNBA;
8565  static const char* FFUUID_DUFF;
8567  static const char* FFUUID_DUMBEK;
8569  static const char* FFUUID_EWEDRUMKAGAN;
8571  static const char* FFUUID_EWEDRUMKPANLOGO1LARGE;
8573  static const char* FFUUID_EWEDRUMKPANLOGO2MEDIUM;
8575  static const char* FFUUID_EWEDRUMKPANLOGO3COMBO;
8577  static const char* FFUUID_EWEDRUMSOGO;
8579  static const char* FFUUID_FONTOMFROM;
8581  static const char* FFUUID_GEDUK;
8583  static const char* FFUUID_HANDDRUM;
8585  static const char* FFUUID_HIRADAIKO;
8587  static const char* FFUUID_IGIHUMURIZO;
8589  static const char* FFUUID_INGOMA;
8591  static const char* FFUUID_INYAHURA;
8593  static const char* FFUUID_JANGGU;
8595  static const char* FFUUID_KAKKO;
8597  static const char* FFUUID_KANJIRA;
8599  static const char* FFUUID_KENDANGGAMELAN;
8601  static const char* FFUUID_KENKENI;
8603  static const char* FFUUID_KHOL;
8605  static const char* FFUUID_KODAIKO;
8607  static const char* FFUUID_KUDUM;
8609  static const char* FFUUID_LAMBEGDRUM;
8611  static const char* FFUUID_MADAL;
8613  static const char* FFUUID_MADDALE;
8615  static const char* FFUUID_MOROCCODRUM;
8617  static const char* FFUUID_MRIDANGAM;
8619  static const char* FFUUID_NAAL;
8621  static const char* FFUUID_NAGADODAIKO;
8623  static const char* FFUUID_NAGARA;
8625  static const char* FFUUID_NAQARA;
8627  static const char* FFUUID_NATIVELOGDRUM;
8629  static const char* FFUUID_NIGERIANLOGDRUM;
8631  static const char* FFUUID_ODAIKO;
8633  static const char* FFUUID_OKAWA;
8635  static const char* FFUUID_OKEDODAIKO;
8637  static const char* FFUUID_PAHUHULA;
8639  static const char* FFUUID_PAKHAVAJ;
8641  static const char* FFUUID_PANDERO;
8643  static const char* FFUUID_POWWOWDRUM;
8645  static const char* FFUUID_PUEBLODRUM;
8647  static const char* FFUUID_REPINIQUE;
8649  static const char* FFUUID_SABAR;
8651  static const char* FFUUID_SAKARA;
8653  static const char* FFUUID_SAMPHO;
8655  static const char* FFUUID_SANGBAN;
8657  static const char* FFUUID_SHIMEDAIKO;
8659  static const char* FFUUID_SURDO;
8661  static const char* FFUUID_TALKINGDRUM;
8663  static const char* FFUUID_TAMA;
8665  static const char* FFUUID_TAMBORITA;
8667  static const char* FFUUID_TAMTE;
8669  static const char* FFUUID_TANTAN;
8671  static const char* FFUUID_TANGKU;
8673  static const char* FFUUID_TAPHON;
8676  static const char* FFUUID_TARDRUM;
8678  static const char* FFUUID_TASHA;
8680  static const char* FFUUID_THAVIL;
8682  static const char* FFUUID_TOMBAK;
8684  static const char* FFUUID_TUMBAK;
8686  static const char* FFUUID_TSUZUMI;
8688  static const char* FFUUID_UCHIWADAIKO;
8690  static const char* FFUUID_UDAKU;
8692  static const char* FFUUID_ZARB;
8693 
8694  /* Percussion */
8695 
8697  static const char* FFUUID_PERCUSSIONGENERAL;
8699  static const char* FFUUID_PERCACCESSORIES;
8701  static const char* FFUUID_WINDCHIMES;
8703  static const char* FFUUID_CHIMETREE;
8705  static const char* FFUUID_BELLTREE;
8707  static const char* FFUUID_JINGLEBELLS;
8709  static const char* FFUUID_TAMBOURINE;
8711  static const char* FFUUID_TRIANGLE;
8713  static const char* FFUUID_CYMBALS;
8715  static const char* FFUUID_FINGERCYMBALS;
8717  static const char* FFUUID_CRASHCYMBAL;
8719  static const char* FFUUID_HIHATCYMBAL;
8721  static const char* FFUUID_RIDECYMBAL;
8723  static const char* FFUUID_SPLASHCYMBAL;
8725  static const char* FFUUID_TAMTAM;
8727  static const char* FFUUID_GONG;
8729  static const char* FFUUID_AGOGOBELLS;
8731  static const char* FFUUID_AIRHORN;
8733  static const char* FFUUID_BRAKEDRUM;
8735  static const char* FFUUID_CABASA;
8737  static const char* FFUUID_CAJON;
8739  static const char* FFUUID_CASTANETS;
8741  static const char* FFUUID_CLAP;
8743  static const char* FFUUID_CLAPPER;
8745  static const char* FFUUID_CLAVES;
8747  static const char* FFUUID_COWBELL;
8749  static const char* FFUUID_CUICA;
8751  static const char* FFUUID_GUIRO;
8753  static const char* FFUUID_MARACAS;
8755  static const char* FFUUID_POLICEWHISTLE;
8757  static const char* FFUUID_RAINSTICK;
8759  static const char* FFUUID_RATCHET;
8761  static const char* FFUUID_RATTLE;
8763  static const char* FFUUID_SANDBLOCK;
8765  static const char* FFUUID_SHAKERS;
8767  static const char* FFUUID_SPOONS;
8769  static const char* FFUUID_TEMPLEBLOCKS;
8771  static const char* FFUUID_VIBRASLAP;
8773  static const char* FFUUID_WASHBOARD;
8775  static const char* FFUUID_WHIP;
8777  static const char* FFUUID_WINDMACHINE;
8779  static const char* FFUUID_WOODBLOCKS;
8781  static const char* FFUUID_CENGCENGGAMELAN;
8783  static const char* FFUUID_GONGAGENGGAMELAN;
8785  static const char* FFUUID_KEMPULGAMELAN;
8787  static const char* FFUUID_KEMPYANGGAMELAN;
8789  static const char* FFUUID_KENONGGAMELAN;
8791  static const char* FFUUID_KETUKGAMELAN;
8793  static const char* FFUUID_REYONGGAMELAN;
8795  static const char* FFUUID_ADODO;
8797  static const char* FFUUID_AEOLIANHARP;
8799  static const char* FFUUID_AFOXE;
8801  static const char* FFUUID_AGOGOBLOCK;
8803  static const char* FFUUID_AGUNG;
8805  static const char* FFUUID_AGUNGATAMLANG;
8807  static const char* FFUUID_AHOKO;
8809  static const char* FFUUID_BABENDIL;
8811  static const char* FFUUID_BASICINDIANPERCUSSION;
8813  static const char* FFUUID_BERIMBAU;
8815  static const char* FFUUID_BO;
8817  static const char* FFUUID_BONES;
8819  static const char* FFUUID_BONGOBELLS;
8821  static const char* FFUUID_BULLROARER;
8823  static const char* FFUUID_CAXIXI;
8825  static const char* FFUUID_CHACHABELLS;
8827  static const char* FFUUID_CHABARA;
8829  static const char* FFUUID_CHANCHIKI;
8831  static const char* FFUUID_CHIMTA;
8833  static const char* FFUUID_CHINATEMPLEBLOCKS;
8835  static const char* FFUUID_CHINESECYMBALS;
8837  static const char* FFUUID_CHINESEGONGS;
8841  static const char* FFUUID_CHING;
8843  static const char* FFUUID_CHIPPLI;
8845  static const char* FFUUID_DAFF;
8847  static const char* FFUUID_DAFLI;
8849  static const char* FFUUID_DAWURO;
8851  static const char* FFUUID_DEF;
8853  static const char* FFUUID_DOIRA;
8855  static const char* FFUUID_EWEDRUMATOKE;
8857  static const char* FFUUID_EWEDRUMAXATSE;
8859  static const char* FFUUID_EWEDRUMGANGOKUI;
8862  static const char* FFUUID_FLEXATONE_PERC;
8864  static const char* FFUUID_GANDINGAN;
8866  static const char* FFUUID_GANZA;
8868  static const char* FFUUID_GHATAM;
8870  static const char* FFUUID_GHUNGROO;
8872  static const char* FFUUID_GOME;
8874  static const char* FFUUID_GUBAN;
8876  static const char* FFUUID_HANDCYMBAL;
8878  static const char* FFUUID_HANG;
8880  static const char* FFUUID_HATHELI;
8882  static const char* FFUUID_HOSHO;
8884  static const char* FFUUID_HYOUSHIGI;
8886  static const char* FFUUID_IBO;
8888  static const char* FFUUID_INDIANGONG;
8890  static const char* FFUUID_IPU;
8892  static const char* FFUUID_JAWBONE;
8894  static const char* FFUUID_KAEKEEKE;
8896  static const char* FFUUID_KAGUL;
8898  static const char* FFUUID_KALAAU;
8900  static const char* FFUUID_KASHIKLAR;
8902  static const char* FFUUID_KESI;
8904  static const char* FFUUID_KHARTAL;
8906  static const char* FFUUID_KKWAENGGWARI;
8908  static const char* FFUUID_KPOKOKPOKO;
8910  static const char* FFUUID_KRINSLITDRUM;
8912  static const char* FFUUID_LAVASTONES;
8914  static const char* FFUUID_LUOGONG;
8916  static const char* FFUUID_MANJEERA;
8918  static const char* FFUUID_PANCLAPPERS;
8920  static const char* FFUUID_PATSCHEN;
8922  static const char* FFUUID_RATTLECOG;
8924  static const char* FFUUID_RIQ;
8926  static const char* FFUUID_SHEKERE;
8928  static const char* FFUUID_SISTRE;
8930  static const char* FFUUID_SISTRUM;
8932  static const char* FFUUID_SLIDEWHISTLE_PERCCLEF;
8934  static const char* FFUUID_SLITDRUM;
8936  static const char* FFUUID_SNAP;
8938  static const char* FFUUID_STAMP;
8940  static const char* FFUUID_STIRDRUM;
8942  static const char* FFUUID_TEBYOSHI;
8944  static const char* FFUUID_TELEVI;
8946  static const char* FFUUID_TEPONAXTLI;
8948  static const char* FFUUID_THAIGONG;
8950  static const char* FFUUID_TIBETANCYMBALS;
8952  static const char* FFUUID_TICTOCBLOCK;
8954  static const char* FFUUID_TIMBALEBELL;
8956  static const char* FFUUID_TINAJA;
8958  static const char* FFUUID_TINGSHA;
8960  static const char* FFUUID_TOERE;
8962  static const char* FFUUID_TONETANG;
8964  static const char* FFUUID_TRYCHEL;
8966  static const char* FFUUID_UDU;
8968  static const char* FFUUID_ZILLS;
8969 
8970 #endif
8971 
8978  {
8980  STAFFNOTATION_NORMAL = 0,
8981 
8983  STAFFNOTATION_PERCUSSION = 1,
8984 
8986  STAFFNOTATION_TABLATURE = 2
8987  };
8988 
8996 
8998  ALTSTAFF_NORMAL = FXUseNormalNotation,
8999 
9001  ALTSTAFF_SLASHBEATS = FXUseSlashBeatsNotation,
9002 
9004  ALTSTAFF_RHYTHMIC = FXUseRhythmicNotation,
9005 
9007  ALTSTAFF_ONEBARREPEAT = FXUseOneBarRepeatSymbol,
9008 
9010  ALTSTAFF_TWOBARREPEAT = FXUseTwoBarRepeatSymbol,
9011 
9013  ALTSTAFF_BLANKNOTATIONRESTS = 5,
9014 
9016  ALTSTAFF_BLANKNOTATION = FXUseBlankNotation
9017  };
9018 
9025  {
9027  STAFFHIDE_NORMAL = 0,
9028 
9030  STAFFHIDE_SCORE = 1,
9031 
9033  STAFFHIDE_SCORE_AND_PARTS = 2,
9034 
9036  STAFFHIDE_CUTAWAY = 3
9037  };
9038 
9039  /***********/
9040  /* GETTERS */
9041  /***********/
9042 
9047  bool GetIgnoreKeySig() const { return _GetInstFlag(STAFF_NOKEY); }
9048 
9053  bool GetIndependentTimeSig() const { return _GetInstFlag(STAFF_FLOATTIME); }
9054 
9060  bool GetIndependentKeySig() const { return _GetInstFlag(STAFF_FLOATKEYS); }
9061 
9066  bool GetShowMeasureNumbers() const { return !_GetInstFlag(STAFF_NEGMNUMB); }
9067 
9073  bool GetShowKeySignatures() const { return !_GetInstFlag(STAFF_NEGKEY); }
9074 
9075 
9088  {
9089 #if FXT_VERSION < FINALEVERSION_25
9090  return !_GetInstFlag(STAFF_NEGTIME); /* 32-bit PDK */
9091 #else
9092  return !_GetInstFlag(STAFF_NEGTIME_SCORE); /* This is just a rename of the old STAFF_NEGTIME constant */
9093 #endif
9094  }
9095 
9104  {
9105  return GetShowTimeSignatures();
9106  }
9107 
9117  {
9118 #if FXT_VERSION >= FINALEVERSION_25
9119  return !_GetMoreFlags3(STAFF_MF3_NEGTIME_PARTS); /* 64-bit PDK */
9120 #else
9121  return GetShowScoreTimeSignatures(); /* 32-bit PDK */
9122 #endif
9123  }
9124 
9125 
9131  bool GetShowClefs() const { return !_GetInstFlag(STAFF_NEGCLEF); }
9132 
9138  bool GetShowChords() const { return !_GetInstFlag(0x0002 /*STAFF_HIDE_CHORDS*/); }
9139 
9145  bool GetShowBarlines() const { return !_GetInstFlag(STAFF_HIDE_BARLINES); }
9146 
9152  bool GetShowTextRepeats() const { return !_GetInstFlag(STAFF_NEGREPEAT); }
9153 
9158  bool GetShowRepeats() const { return !_GetInstFlag(STAFF_HIDE_RPT_BARS); }
9159 
9164  bool GetShowScoreStaffNames() const { return !_GetInstFlag(STAFF_NEGNAME); }
9165 
9170  bool GetBreakBarlines() const { return _GetInstFlag(STAFF_BLINEBREAK); }
9171 
9176  bool GetBreakRepeatBarlines() const { return _GetInstFlag(STAFF_RBARBREAK); }
9177 
9183  bool GetShowAugmentationDots() const { return _GetMoreFlags(STAFF_MF_SHOW_DOTS); }
9184 
9189  bool GetIndependentFont() const { return _GetFlag(STAFF_USESMFONT); }
9190 
9195  bool GetShowNoteColors() const { return _GetFlag(STAFF_SHOW_NOTE_COLORS); }
9196 
9201  bool GetShowNoteShapes() const { return _GetFlag(STAFF_SF_DOSHAPENOTES); }
9202 
9208  twobyte GetHalfRestPosition() const {
9209  twobyte result = LOBYTE(*_GetHOtherRestPtr());
9210  if (result & 0x80)
9211  {
9212  /* Make 16-bit signed */
9213  result |= 0xff00;
9214  }
9215  return result;
9216  };
9217 
9223  twobyte GetOtherRestPosition() const {
9224  twobyte result = LOBYTE(*_GetHOtherRestPtr());
9225  if (result & 0x80)
9226  {
9227  /* Make 16-bit signed */
9228  result |= 0xff00;
9229  }
9230  return result;
9231  }
9232 
9238  twobyte GetWholeRestPosition() const {
9239  twobyte result = HIBYTE(*_GetDwWRestPtr());
9240  if (result & 0x80)
9241  {
9242  /* Make 16-bit signed */
9243  result |= 0xff00;
9244  }
9245  return result;
9246  };
9247 
9253  twobyte GetDoubleWholeRestPosition() const {
9254  twobyte result = LOBYTE(*_GetDwWRestPtr());
9255  if (result & 0x80)
9256  {
9257  /* Make 16-bit signed */
9258  result |= 0xff00;
9259  }
9260  return result;
9261  };
9262 
9268  twobyte GetStemReversalPosition() const { return *_GetStemReversalPtr(); }
9269 
9275  bool GetShowTopRepeatDot() const
9276  {
9277  return !GetBitFlag(*_GetFlagPtr(), STAFF_HIDE_REPEAT_TOP_DOT);
9278  }
9279 
9286  {
9287  return !GetBitFlag(*_GetFlagPtr(), STAFF_HIDE_REPEAT_BOTTOM_DOT);
9288  }
9289 
9295  twobyte GetTopRepeatDotPosition() const
9296  {
9297  twobyte result = HIBYTE(*_GetRepeatDotsOffPtr());
9298  if (result & 0x80)
9299  {
9300  /* Make 16-bit signed */
9301  result |= 0xff00;
9302  }
9303  return result;
9304  }
9305 
9312  {
9313  twobyte result = LOBYTE(*_GetRepeatDotsOffPtr());
9314  if (result & 0x80)
9315  {
9316  /* Make 16-bit signed */
9317  result |= 0xff00;
9318  }
9319  return result;
9320  }
9321 
9322 
9329  bool GetTransposeChromatic() const { return _GetTranspositionFlag(STAFF_CHROMTRANS); }
9330 
9337  bool GetTransposeUseClef() const { return _GetTranspositionFlag(STAFF_SETTOCLEF); }
9338 
9344  bool GetShowLyrics() const { return !_GetFlag(0x0010 /*STAFF_HIDE_LYRICS*/); }
9345 
9350  bool GetShowRests() const { return _GetMoreFlags(STAFF_MF_SHOW_RESTS); }
9351 
9356  bool GetShowPartStaffNames() const { return _GetFlag(0x0008 /*STAFF_SHOWNAME_PARTS*/); }
9357 
9362  bool GetShowStems() const { return _GetMoreFlags(STAFF_MF_SHOW_STEMS); }
9363 
9368  bool GetShowTies() const { return _GetMoreFlags(STAFF_MF_SHOW_TIES); }
9369 
9376  {
9377  return _GetAltFlag(STAFF_ALT_SHOWOTHERNOTES);
9378  }
9379 
9386  bool GetTransposeSimplifyKey() const { return !_GetTranspositionFlag(STAFF_NOKEYOPT); }
9387 
9392  bool GetDisplayEmptyRests() const { return !_GetFlag(STAFF_BLANKMEASURE); }
9393 
9398  bool GetFlatBeams() const { return _GetFlag(STAFF_FLAT_BEAMS); }
9399 
9404  bool GetShowTuplets() const
9405  {
9406  return _GetMoreFlags(STAFF_MF_SHOW_TUPLETS);
9407  }
9408 
9414  {
9415  return _GetMoreFlags(STAFF_MF_CLEF_FIRST_MEAS_ONLY);
9416  }
9417 
9422  bool GetFretLetters() const
9423  {
9424  return _GetMoreFlags(STAFF_MF_USE_TAB_LETTERS);
9425  }
9426 
9432  {
9433  return _GetMoreFlags(STAFF_MF_BREAK_LINES_AT_NOTES);
9434  }
9435 
9441  bool GetShowFretboards() const { return !_GetFlag(0x0800 /*STAFF_HIDE_FRETBOARDS*/); }
9442 
9447 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
9448  STAFFNOTATION_STYLE
9449 #else
9450  int
9451 #endif
9453  {
9454  if (_GetFlag(STAFF_DOPERCUSSIONNOTES)) return STAFFNOTATION_PERCUSSION;
9455  if (_GetFlag(STAFF_TABNOTES)) return STAFFNOTATION_TABLATURE;
9456  return STAFFNOTATION_NORMAL;
9457  }
9458 
9465  bool GetAllowHiding() const;
9466 
9474  twobyte GetTransposeInterval() const;
9475 
9480  bool GetShowStaffLines() const;
9481 
9489  twobyte GetLineCount() const;
9490 
9497  Efix32 GetLineSpacing() const
9498  {
9499  return *_GetLineSpacePtr();
9500  }
9501 
9506 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
9507  __FCStaffBase::ALTERNATE_STAFF GetAltNotationStyle() { return (__FCStaffBase::ALTERNATE_STAFF) (*_GetAltFlagPtr() & STAFF_ALTNOTATION); }
9508 #else
9509  FLAG_16 GetAltNotationStyle() const { return *_GetAltFlagPtr() & STAFF_ALTNOTATION; }
9510 #endif
9511 
9516  twobyte GetAltNotationLayer() const {
9517  return ((*_GetAltFlagPtr() & STAFF_ALTLAYER) >> 4) + 1;
9518  }
9519 
9524  bool GetAltShowArticulations() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_SHOWARTICS); }
9525 
9530  bool GetAltShowLyrics() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_SHOWLYRICS); }
9531 
9536  bool GetAltShowSmartShapes() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_SHOWSMARTSHAPES); }
9537 
9542  bool GetAltShowExpression() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_SHOWEXPRESSIONS); }
9543 
9548  bool GetAltShowOtherNotes() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_SHOWOTHERNOTES); }
9549 
9554  bool GetAltShowOtherArticulations() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_SHOWOTHERARTICS); }
9555 
9560  bool GetAltShowOtherLyrics() const { return GetBitFlag(*_GetAltFlag2Ptr(), STAFF_ALT2_SHOWOTHERLYRICS); }
9561 
9566  bool GetAltShowOtherSmartShapes() const { return GetBitFlag(*_GetAltFlag2Ptr(), STAFF_ALT2_SHOWOTHERSMARTSHAPES); }
9567 
9572  bool GetAltShowOtherExpressions() const { return GetBitFlag(*_GetAltFlag2Ptr(), STAFF_ALT2_SHOWOTHEREXPRESSIONS); }
9573 
9579  bool GetAltRhythmStemsUp() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_RHYTHM_STEMS_UP); }
9580 
9586  bool GetAltSlashDots() const { return GetBitFlag(*_GetAltFlagPtr(), STAFF_ALT_SLASH_DOTS); }
9587 
9595  twobyte GetTransposeClefIndex() const { return (*_GetClefsPtr() & 0xff00) / 0x100; }
9596 
9601  twobyte GetDefaultClef() const { return *_GetClefsPtr() & 0xff; }
9602 
9611 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
9612  STAFF_HIDEMODES
9613 #else
9614  int
9615 #endif
9616  GetHideMode() const;
9617 
9625  {
9626  const FLAG_16 *pMoreFlags3 = _GetMoreFlags3Ptr();
9627  if ( !pMoreFlags3 ) return false;
9628  return (_GetMoreFlags3(0x0001 /* STAFF_MF3_REDISPLAY_LAYER_ACCIS */));
9629  }
9630 
9638  {
9639  const FLAG_16 *pMoreFlags2 = _GetMoreFlags2Ptr();
9640  if ( !pMoreFlags2 ) return false;
9641  return (_GetMoreFlags2(0x0001 /*STAFF_MF2_HIDE_KEYSIG_SHOW_ACCIS*/));
9642  }
9643 
9653  CMPER GetAbbreviatedNameID() { return *_GetAbbrvNamePtr(); }
9654 
9664  CMPER GetFullNameID() { return *_GetFullNamePtr(); }
9665 
9670  twobyte GetCapoPosition() const
9671  {
9672  return LOBYTE(*_GetCapoLowFretPtr());
9673  }
9674 
9679  twobyte GetLowestFret() const
9680  {
9681  return HIBYTE(*_GetCapoLowFretPtr());
9682  }
9683 
9688  Efix32 GetVerticalFretOffset() const
9689  {
9690  return *_GetVertTabNumOffPtr();
9691  }
9692 
9699  {
9700  return *_GetFretInstIDPtr();
9701  }
9702 
9708  Evpu16 GetBottomBarlineOffset() const
9709  {
9710  return *_GetBottomBarlineOffsetPtr();
9711  }
9712 
9718  Evpu16 GetTopBarlineOffset() const
9719  {
9720  return *_GetTopBarlineOffsetPtr();
9721  }
9722 
9723 #if FXT_VERSION >= FINALEVERSION_2012
9724 
9734  const char* GetInstrumentUUID() const
9735  {
9736  if (_VersionToUse() < FINALEVERSION_2012) return "";
9737  _uuid.Clear();
9738 
9739  const uonebyte* pInstUUID = _GetInstUUIDPtr();
9740  for (int i = 0; i < UUID_SIZE_PDK; i++)
9741  {
9742  uonebyte abyte = pInstUUID[i];
9743  int highnibble = (abyte & 0xf0) >> 4;
9744  int lownibble = (abyte & 0x0f);
9745  if (highnibble < 10)
9746  _uuid.AppendCharacter(highnibble + '0');
9747  else
9748  _uuid.AppendCharacter(highnibble + 'a' - 10);
9749  if (lownibble < 10)
9750  _uuid.AppendCharacter(lownibble + '0');
9751  else
9752  _uuid.AppendCharacter(lownibble + 'a' - 10);
9753  switch (i)
9754  {
9755  case 3:
9756  case 5:
9757  case 7:
9758  case 9:
9759  _uuid.AppendCharacter('-');
9760  break;
9761  }
9762  }
9763  return _uuid.GetCString();
9764  }
9765 #endif
9766 
9767  /***********/
9768  /* SETTERS */
9769  /***********/
9770 
9775  void SetIgnoreKeySig(bool state) { return _SetInstFlag(STAFF_NOKEY, state); }
9776 
9781  void SetIndependentTimeSig(bool state) { _SetInstFlag(STAFF_FLOATTIME, state); }
9782 
9787  void SetShowMeasureNumbers(bool value) { _SetInstFlag(STAFF_NEGMNUMB, !value); }
9788 
9794  void SetShowKeySignatures(bool value) { _SetInstFlag(STAFF_NEGKEY, !value); }
9795 
9804  void SetShowTimeSignatures(bool value)
9805  {
9806  SetShowScoreTimeSignatures(value);
9807  SetShowPartTimeSignatures(value);
9808  }
9809 
9818  void SetShowScoreTimeSignatures(bool value)
9819  {
9820 #if FXT_VERSION < FINALEVERSION_25
9821  _SetInstFlag(STAFF_NEGTIME, !value); /* 32-bit PDK */
9822 #else
9823  _SetInstFlag(STAFF_NEGTIME_SCORE, !value); /* 64-bit PDK */
9824 #endif
9825  }
9826 
9834  void SetShowPartTimeSignatures(bool value)
9835  {
9836 #if FXT_VERSION >= FINALEVERSION_25
9837  _SetMoreFlags3(STAFF_MF3_NEGTIME_PARTS, !value);
9838 #endif
9839  }
9840 
9846  void SetShowClefs(bool value) { _SetInstFlag(STAFF_NEGCLEF, !value); }
9847 
9853  void SetShowChords(bool value) { _SetInstFlag(0x0002 /*STAFF_HIDE_CHORDS*/, !value); }
9854 
9860  void SetShowBarlines(bool value) { _SetInstFlag(STAFF_HIDE_BARLINES, !value); }
9861 
9867  void SetShowTextRepeats(bool value) { _SetInstFlag(STAFF_NEGREPEAT, !value); }
9868 
9873  void SetShowRepeats(bool value) { _SetInstFlag(STAFF_HIDE_RPT_BARS, !value); }
9874 
9879  void SetShowScoreStaffNames(bool value) { _SetInstFlag(STAFF_NEGNAME, !value); }
9880 
9885  void SetBreakBarlines(bool state) { _SetInstFlag(STAFF_BLINEBREAK, state); }
9886 
9891  void SetBreakRepeatBarlines(bool state) { _SetInstFlag(STAFF_RBARBREAK, state); }
9892 
9898  void SetShowAugmentationDots(bool value) { _SetMoreFlags(STAFF_MF_SHOW_DOTS, value); }
9899 
9904  void SetIndependentFont(bool state) { _SetFlag(STAFF_USESMFONT, state); }
9905 
9910  void SetShowNoteColors(bool state) { _SetFlag(STAFF_SHOW_NOTE_COLORS, state); }
9911 
9916  void SetShowNoteShapes(bool state) { _SetFlag(STAFF_SF_DOSHAPENOTES, state); }
9917 
9923  void SetHalfRestPosition(twobyte position)
9924  {
9925  if (position < 0) position |= 0x80;
9926  position &= 0x00ff;
9927  BYTE hibyte = HIBYTE(*_GetHOtherRestPtr());
9928  utwobyte* pRestStorage = (utwobyte*) _GetHOtherRestPtr();
9929  *pRestStorage = MAKEWORD((BYTE) position, hibyte);
9930  }
9931 
9937  void SetOtherRestPosition(twobyte position)
9938  {
9939  if (position < 0) position |= 0x80;
9940  position &= 0x00ff;
9941  BYTE lobyte = LOBYTE(*_GetHOtherRestPtr());
9942  utwobyte* pRestStorage = (utwobyte*) _GetHOtherRestPtr();
9943  *pRestStorage = MAKEWORD(lobyte, (BYTE) position);
9944  }
9945 
9951  void SetWholeRestPosition(twobyte position)
9952  {
9953  if (position < 0) position |= 0x80;
9954  position &= 0x00ff;
9955  BYTE lobyte = LOBYTE(*_GetDwWRestPtr());
9956  utwobyte* pRestStorage = (utwobyte*) _GetDwWRestPtr();
9957  *pRestStorage = MAKEWORD(lobyte, (BYTE) position);
9958  }
9959 
9965  void SetDoubleWholeRestPosition(twobyte position)
9966  {
9967  if (position < 0) position |= 0x80;
9968  position &= 0x00ff;
9969  BYTE hibyte = HIBYTE(*_GetDwWRestPtr());
9970  utwobyte* pRestStorage = (utwobyte*) _GetDwWRestPtr();
9971  *pRestStorage = MAKEWORD((BYTE) position, hibyte);
9972  }
9973 
9979  void SetStemReversalPosition(twobyte position)
9980  {
9981  twobyte* pStemReversal = (twobyte*) _GetStemReversalPtr();
9982  *pStemReversal = position;
9983  }
9984 
9990  void SetShowTopRepeatDot(bool state)
9991  {
9992  Set16BitFlag((FLAG_16*)_GetFlagPtr(), STAFF_HIDE_REPEAT_TOP_DOT, !state);
9993  }
9994 
10000  void SetShowBottomRepeatDot(bool state)
10001  {
10002  Set16BitFlag((FLAG_16*)_GetFlagPtr(), STAFF_HIDE_REPEAT_BOTTOM_DOT, !state);
10003  }
10004 
10010  void SetTopRepeatDotPosition(twobyte position)
10011  {
10012  if (position < 0) position |= 0x80;
10013  position &= 0x00ff;
10014  BYTE lobyte = LOBYTE(*_GetRepeatDotsOffPtr());
10015  utwobyte* pDotsOffsetStorage = (utwobyte*) _GetRepeatDotsOffPtr();
10016  *pDotsOffsetStorage = MAKEWORD(lobyte, (BYTE) position);
10017  }
10018 
10024  void SetBottomRepeatDotPosition(twobyte position)
10025  {
10026  if (position < 0) position |= 0x80;
10027  position &= 0x00ff;
10028  BYTE hibyte = HIBYTE(*_GetRepeatDotsOffPtr());
10029  utwobyte* pDotsOffsetStorage = (utwobyte*) _GetRepeatDotsOffPtr();
10030  *pDotsOffsetStorage = MAKEWORD((BYTE) position, hibyte);
10031  }
10032 
10039  void SetTransposeChromatic(bool state) { _SetTranspositionFlag(STAFF_CHROMTRANS, state); }
10040 
10047  void SetTransposeUseClef(bool state) { _SetTranspositionFlag(STAFF_SETTOCLEF, state); }
10048 
10054  void SetShowFretboards(bool value) { _SetFlag(0x0800 /*STAFF_HIDE_FRETBOARDS*/, !value); }
10055 
10061  void SetShowLyrics(bool value) { _SetFlag(0x0010 /*STAFF_HIDE_LYRICS*/, !value); }
10062 
10067  void SetShowRests(bool value) { _SetMoreFlags(STAFF_MF_SHOW_RESTS, value); }
10068 
10073  void SetShowPartStaffNames(bool value) { _SetFlag(0x0008 /*STAFF_SHOWNAME_PARTS*/, value); }
10074 
10079  void SetShowStems(bool value) { _SetMoreFlags(STAFF_MF_SHOW_STEMS, value); }
10080 
10085  void SetShowTies(bool state) { _SetMoreFlags(STAFF_MF_SHOW_TIES, state); }
10086 
10092  {
10093  _SetAltFlag(STAFF_ALT_SHOWOTHERNOTES, state);
10094  }
10095 
10102  void SetTransposeSimplifyKey(bool state) { _SetTranspositionFlag(STAFF_NOKEYOPT, !state); }
10103 
10108  void SetDisplayEmptyRests(bool state) { _SetFlag(STAFF_BLANKMEASURE, !state); }
10109 
10114  void SetFlatBeams(bool state) { _SetFlag(STAFF_FLAT_BEAMS, state); }
10115 
10120  void SetShowTuplets(bool state)
10121  {
10122  _SetMoreFlags(STAFF_MF_SHOW_TUPLETS, state);
10123  }
10124 
10130  {
10131  _SetMoreFlags(STAFF_MF_CLEF_FIRST_MEAS_ONLY, state);
10132  }
10133 
10138  void SetFretLetters(bool state)
10139  {
10140  _SetMoreFlags(STAFF_MF_USE_TAB_LETTERS, state);
10141  }
10142 
10147  void SetBreakTablatureLines(bool state)
10148  {
10149  _SetMoreFlags(STAFF_MF_BREAK_LINES_AT_NOTES, state);
10150  }
10151 
10161 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
10163 #else
10164  int
10165 #endif
10166  value)
10167  {
10168  switch (value)
10169  {
10170  case STAFFNOTATION_PERCUSSION:
10171  _SetFlag(STAFF_DOPERCUSSIONNOTES, true);
10172  _SetFlag(STAFF_TABNOTES, false);
10173  break;
10174  case STAFFNOTATION_TABLATURE:
10175  _SetFlag(STAFF_DOPERCUSSIONNOTES, false);
10176  _SetFlag(STAFF_TABNOTES, true);
10177  break;
10178  case STAFFNOTATION_NORMAL:
10179  _SetFlag(STAFF_DOPERCUSSIONNOTES, false);
10180  _SetFlag(STAFF_TABNOTES, false);
10181  break;
10182  }
10183  }
10184 
10190  void SetIndependentKeySig(bool state) { _SetInstFlag(STAFF_FLOATKEYS, state); }
10191 
10198  void SetAllowHiding(bool state);
10199 
10209  twobyte GetTransposeAlteration() const;
10210 
10220  void SetTransposeAlteration(twobyte value);
10221 
10231  void SetTransposeInterval(twobyte value);
10232 
10237  void SetShowStaffLines(bool value);
10238 
10246  void SetLineCount(twobyte value);
10247 
10254  void SetLineSpacing(Efix32 distance)
10255  {
10256  Efix32* pStorage = (Efix32*) _GetLineSpacePtr();
10257  *pStorage = (distance / 64) * 64;
10258  }
10259 
10267 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
10268  ALTERNATE_STAFF value
10269 #else
10270  FLAG_16 value
10271 #endif
10272  )
10273  {
10274  FLAG_16* pAltFlag = (FLAG_16*)_GetAltFlagPtr();
10275  *pAltFlag &= ~STAFF_ALTNOTATION;
10276  *pAltFlag |= value;
10277  }
10278 
10285  void SetAltNotationLayer(int value)
10286  {
10287  if (value < 1) return;
10288  if (value > 4) return;
10289  value--;
10290  value = value << 4;
10291  FLAG_16* pAltFlag = (FLAG_16*) _GetAltFlagPtr();
10292  *pAltFlag &= ~STAFF_ALTLAYER;
10293  *pAltFlag |= value;
10294  }
10295 
10300  void SetAltShowArticulations(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_SHOWARTICS, state); }
10301 
10306  void SetAltShowLyrics(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_SHOWLYRICS, state); }
10307 
10312  void SetAltShowSmartShapes(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_SHOWSMARTSHAPES, state); }
10313 
10318  void SetAltShowExpression(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_SHOWEXPRESSIONS, state); }
10319 
10324  void SetAltShowOtherNotes(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_SHOWOTHERNOTES, state); }
10325 
10330  void SetAltShowOtherArticulations(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_SHOWOTHERARTICS, state); }
10331 
10336  void SetAltShowOtherLyrics(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlag2Ptr(), STAFF_ALT2_SHOWOTHERLYRICS, state); }
10337 
10342  void SetAltShowOtherSmartShapes(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlag2Ptr(), STAFF_ALT2_SHOWOTHERSMARTSHAPES, state); }
10343 
10348  void SetAltShowOtherExpressions(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlag2Ptr(), STAFF_ALT2_SHOWOTHEREXPRESSIONS, state); }
10349 
10355  void SetAltRhythmStemsUp(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_RHYTHM_STEMS_UP, state); }
10356 
10362  void SetAltSlashDots(bool state) { Set16BitFlag((FLAG_16*) _GetAltFlagPtr(), STAFF_ALT_SLASH_DOTS, state); }
10363 
10372  void SetHideMode(
10373 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
10374  STAFF_HIDEMODES
10375 #else
10376  int
10377 #endif
10378  value
10379  );
10380 
10388  void SetTransposeClefIndex(twobyte clefindex)
10389  {
10390  clefindex &= 0x00ff;
10391  clefindex *= 0x100;
10392  twobyte* pClefs = (twobyte*)_GetClefsPtr();
10393  *pClefs &= 0x00ff;
10394  *pClefs |= clefindex;
10395  }
10396 
10401  void SetDefaultClef(twobyte clefindex)
10402  {
10403  clefindex &= 0xff;
10404  twobyte* pClefs = (twobyte*) _GetClefsPtr();
10405  *pClefs &= ~0xff;
10406  *pClefs |= clefindex;
10407  }
10408 
10416  {
10417  const FLAG_16 *pMoreFlags3 = _GetMoreFlags3Ptr();
10418  if ( !pMoreFlags3 ) return;
10419  _SetMoreFlags3(0x0001 /*STAFF_MF3_REDISPLAY_LAYER_ACCIS*/,state);
10420  }
10421 
10429  {
10430  const FLAG_16 *pMoreFlags2 = _GetMoreFlags2Ptr();
10431  if ( !pMoreFlags2 ) return;
10432  _SetMoreFlags2(0x0001 /*STAFF_MF2_HIDE_KEYSIG_SHOW_ACCIS*/,state);
10433  }
10434 
10439  void SetLowestFret(twobyte value)
10440  {
10441  BYTE lobyte = LOBYTE(*_GetCapoLowFretPtr());
10442  utwobyte* pCapoLowFret = (utwobyte*) _GetCapoLowFretPtr();
10443  *pCapoLowFret = MAKEWORD(lobyte, value);
10444  }
10445 
10452  void SetCapoPosition(twobyte value)
10453  {
10454  BYTE hibyte = HIBYTE(*_GetCapoLowFretPtr());
10455  utwobyte* pCapoLowFret = (utwobyte*) _GetCapoLowFretPtr();
10456  *pCapoLowFret = MAKEWORD(value, hibyte);
10457  }
10458 
10463  void SetVerticalFretOffset(Efix32 value)
10464  {
10465  Efix32* pVertTabNumOff = (Efix32*) _GetVertTabNumOffPtr();
10466  *pVertTabNumOff = value;
10467  }
10468 
10475  void SetFretInstrumentDefID(CMPER newid)
10476  {
10477  CMPER* pFretInstID = (CMPER*) _GetFretInstIDPtr();
10478  *pFretInstID = newid;
10479  }
10480 
10486  void SetBottomBarlineOffset(Evpu16 distance)
10487  {
10488  Evpu16* pData = (Evpu16*) _GetBottomBarlineOffsetPtr();
10489  *pData = distance;
10490  }
10491 
10497  void SetTopBarlineOffset(Evpu16 distance)
10498  {
10499  Evpu16* pData = (Evpu16*) _GetTopBarlineOffsetPtr();
10500  *pData = distance;
10501  }
10502 
10503 #if FXT_VERSION >= FINALEVERSION_2012
10504 
10518  void SetInstrumentUUID(const char* pszUUID)
10519  {
10520  if (_VersionToUse() < FINALEVERSION_2012) return;
10521  if (!pszUUID) return;
10522  if (strlen(pszUUID) != 36) return; /* Wrong string format */
10523  if (pszUUID[8] != '-') return; /* No first dash */
10524  if (pszUUID[13] != '-') return; /* No second dash */
10525  if (pszUUID[18] != '-') return; /* No third dash */
10526  if (pszUUID[23] != '-') return; /* No fourth dash */
10527  for (int i = 0; i < 36; i++)
10528  {
10529  switch (i)
10530  {
10531  case 8:
10532  case 13:
10533  case 18:
10534  case 23:
10535  if (pszUUID[i] != '-') return;
10536  break;
10537  default:
10538  if ((pszUUID[i] >= 'a') && (pszUUID[i] <= 'f')) break;
10539  if ((pszUUID[i] >= '0') && (pszUUID[i] <= '9')) break;
10540  return;
10541  }
10542  }
10543  /* UUID validation ok - store the UUID */
10544  const char* pszCurrent = pszUUID;
10545  for (int i = 0; i < UUID_SIZE_PDK; i++)
10546  {
10547  int result1, result2;
10548  if (*pszCurrent >= 'a') result1 = *pszCurrent - 'a' + 10;
10549  else if (*pszCurrent >= 'A') result1 = *pszCurrent - 'A' + 10;
10550  else result1 = *pszCurrent - '0';
10551  pszCurrent ++;
10552  if (*pszCurrent >= 'a') result2 = *pszCurrent - 'a' + 10;
10553  else if (*pszCurrent >= 'A') result2 = *pszCurrent - 'A' + 10;
10554  else result2 = *pszCurrent - '0';
10555  int result = (result1 * 0x10) | result2;
10556  uonebyte* pInstUUID = (uonebyte*) _GetInstUUIDPtr();
10557  pInstUUID[i] = result;
10558  pszCurrent ++;
10559  if ((i == 3) || (i == 5) || (i == 7) || (i == 9)) pszCurrent ++;
10560  }
10561  }
10562 #endif
10563 
10564  /****************/
10565  /* MISC METHODS */
10566  /****************/
10567 
10573  {
10574  _SetFlag(STAFF_DOPERCUSSIONNOTES, false);
10575  _SetFlag(STAFF_TABNOTES, false);
10576  }
10577 
10584  {
10585  return (GetNotationStyle() == STAFFNOTATION_PERCUSSION);
10586  }
10587 
10594  {
10595  return (GetNotationStyle() == STAFFNOTATION_TABLATURE);
10596  }
10597 
10603  {
10604  return (GetNotationStyle() == STAFFNOTATION_NORMAL);
10605  }
10606 
10612  bool GetTranspose() const
10613  {
10614  /* Fix Oct 22, 2012: STAFF_NOKEYOPT might be set even if no transposition
10615  * is used */
10616  return ((*_GetTranspositionPtr() & ~STAFF_NOKEYOPT) != 0);
10617  }
10618 
10626  bool SaveFullNameString(FCString* pString);
10627 
10635  bool SaveAbbreviatedNameString(FCString* pString);
10636 
10642  bool SaveNewFullNameString(FCString* pString);
10643 
10649  bool SaveNewAbbreviatedNameString(FCString* pString);
10650 
10656  {
10657  SetLineCount(5);
10658  SetLineSpacing(24 * 64);
10659  SetTopBarlineOffset(0);
10660  SetBottomBarlineOffset(0);
10661  SetDoubleWholeRestPosition(-4);
10662  SetWholeRestPosition(-4);
10663  SetHalfRestPosition(-4);
10664  SetOtherRestPosition(-4);
10665  SetStemReversalPosition(-4);
10666  SetShowTopRepeatDot(true);
10667  SetTopRepeatDotPosition(-3);
10668  SetShowBottomRepeatDot(true);
10669  SetBottomRepeatDotPosition(-5);
10670  }
10671 
10678  {
10679  SetLineCount(1);
10680  SetLineSpacing(24 * 64);
10681  SetTopBarlineOffset(48);
10682  SetBottomBarlineOffset(-48);
10683  SetDoubleWholeRestPosition(-5);
10684  SetWholeRestPosition(-6);
10685  SetHalfRestPosition(-4);
10686  SetOtherRestPosition(-4);
10687  SetStemReversalPosition(-4);
10688  SetShowTopRepeatDot(true);
10689  SetTopRepeatDotPosition(-3);
10690  SetShowBottomRepeatDot(true);
10691  SetBottomRepeatDotPosition(-5);
10692  }
10693 
10700  {
10701  SetLineCount(1);
10702  SetLineSpacing(24 * 64);
10703  SetTopBarlineOffset(24);
10704  SetBottomBarlineOffset(-24);
10705  SetDoubleWholeRestPosition(-5);
10706  SetWholeRestPosition(-6);
10707  SetHalfRestPosition(-4);
10708  SetOtherRestPosition(-4);
10709  SetStemReversalPosition(-4);
10710  SetShowTopRepeatDot(true);
10711  SetTopRepeatDotPosition(-3);
10712  SetShowBottomRepeatDot(true);
10713  SetBottomRepeatDotPosition(-5);
10714  }
10715 
10722  {
10723  SetLineCount(0);
10724  SetLineSpacing(24 * 64);
10725  SetTopBarlineOffset(0);
10726  SetBottomBarlineOffset(0);
10727  SetDoubleWholeRestPosition(-4);
10728  SetWholeRestPosition(-4);
10729  SetHalfRestPosition(-4);
10730  SetOtherRestPosition(-4);
10731  SetStemReversalPosition(-4);
10732  SetShowTopRepeatDot(true);
10733  SetTopRepeatDotPosition(-3);
10734  SetShowBottomRepeatDot(true);
10735  SetBottomRepeatDotPosition(-5);
10736  }
10737 
10746  FCString* CreateFullNameString();
10747 
10748 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
10749 
10750  FCString* CreateFullNameString_GC();
10751 #endif
10752 
10761  FCString* CreateAbbreviatedNameString();
10762 
10763 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
10764 
10765  FCString* CreateAbbreviatedNameString_GC();
10766 #endif
10767 
10768 #ifdef PDK_FRAMEWORK_ENIGMASTRINGS
10769 
10782  FCString* CreateDisplayFullNameString();
10783 
10784 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
10785 
10786  FCString* CreateDisplayFullNameString_GC();
10787 #endif
10788 
10797  FCString* CreateTrimmedFullNameString();
10798 
10799 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
10800 
10801  FCString* CreateTrimmedFullNameString_GC();
10802 #endif
10803 
10812  FCString* CreateTrimmedAbbreviatedNameString();
10813 
10814 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
10815 
10816  FCString* CreateTrimmedAbbreviatedNameString_GC();
10817 #endif
10818 
10819 #endif /* #ifdef PDK_FRAMEWORK_ENIGMASTRINGS */
10820 
10821 
10822 #if FXT_VERSION >= FINALEVERSION_2012
10823 
10832  bool InstrumentMatchesUUID(const char* pszUUID)
10833  {
10834  if (_VersionToUse() < FINALEVERSION_2012) return false;
10835  uonebyte* pInstUUID = (uonebyte*) _GetInstUUIDPtr();
10836 
10837  if (strlen(pszUUID) != 36) return false; /* Wrong string format */
10838  if (pszUUID[8] != '-') return false; /* No first dash */
10839  if (pszUUID[13] != '-') return false; /* No second dash */
10840  if (pszUUID[18] != '-') return false; /* No third dash */
10841  if (pszUUID[23] != '-') return false; /* No fourth dash */
10842  const char* pszCurrent = pszUUID;
10843  for (int i = 0; i < UUID_SIZE_PDK; i++)
10844  {
10845  int result1, result2;
10846  if (*pszCurrent >= 'a') result1 = *pszCurrent - 'a' + 10;
10847  else if (*pszCurrent >= 'A') result1 = *pszCurrent - 'A' + 10;
10848  else result1 = *pszCurrent - '0';
10849  pszCurrent ++;
10850  if (*pszCurrent >= 'a') result2 = *pszCurrent - 'a' + 10;
10851  else if (*pszCurrent >= 'A') result2 = *pszCurrent - 'A' + 10;
10852  else result2 = *pszCurrent - '0';
10853  int result = (result1 * 0x10) | result2;
10854  if (result != pInstUUID[i]) return false;
10855  pszCurrent ++;
10856  if ((i == 3) || (i == 5) || (i == 7) || (i == 9)) pszCurrent ++;
10857  }
10858  return true;
10859  }
10860 #endif
10861 
10862 #if FXT_VERSION >= FINALEVERSION_2012
10863 
10876  {
10877  if (_VersionToUse() < FINALEVERSION_2012) return false;
10878  uonebyte* pInstUUID = (uonebyte*) _GetInstUUIDPtr();
10879  bool blockisempty = true;
10880  for (int i = 0; i < UUID_SIZE_PDK; i++) if (pInstUUID[i]) blockisempty = false;
10881  if (blockisempty) return false;
10882  if (InstrumentMatchesUUID(FFUUID_BLANKSTAFF)) return false;
10883  if (InstrumentMatchesUUID(FFUUID_UNKNOWN)) return false;
10884  return true;
10885  }
10886 #endif
10887 
10888 
10889 };
10890 
10891 
10892 /* Macro to only refer to the EDTStaffSpec2012 on 2012 PDKs and later. */
10893 #if FXT_VERSION >= FINALEVERSION_2012
10894 #define PROTECTED2012STAFFSPEC(code) code
10895 #else
10896 #define PROTECTED2012STAFFSPEC(code)
10897 #endif
10898 
10899 /* Macro to only refer to the EDTStaffSpec2014 on 2014 PDKs and later. */
10900 #if FXT_VERSION >= FINALEVERSION_2014
10901 #define PROTECTED2014STAFFSPEC(code) code
10902 #else
10903 #define PROTECTED2014STAFFSPEC(code)
10904 #endif
10905 
10906 
10912 class FCStaff : public __FCStaffBase
10913 {
10914 
10915 private:
10916 #ifdef PDK_FRAMEWORK_PREFS
10917 
10918  FCStaffNamePosition* _pFullNamePosition;
10919  FCStaffNamePosition* _pAbbreviatedNamePosition;
10920 #endif
10921 
10922 protected:
10923 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
10924 
10930  EDTStaffSpec2010 _staffspec2010;
10931  PROTECTED2012STAFFSPEC(EDTStaffSpec2012 _staffspec2012;)
10932  PROTECTED2014STAFFSPEC(EDTStaffSpec2014 _staffspec2014;)
10933 
10934  virtual EXTAG Tag() { return ot_EDTStaffSpec; }
10935  virtual int DataSizeLoad()
10936  {
10937  switch (_VersionToUse())
10938  {
10939  case FINALEVERSION_2010:
10940  return sizeof(EDTStaffSpec2010);
10941  case FINALEVERSION_2012:
10942  PROTECTED2012STAFFSPEC(return sizeof(EDTStaffSpec2012));
10943  break;
10944  default:
10945  PROTECTED2014STAFFSPEC(return sizeof(EDTStaffSpec2014));
10946  break;
10947  }
10948  }
10949  virtual void* Allocate()
10950  {
10951  switch (_VersionToUse())
10952  {
10953  case FINALEVERSION_2010:
10954  return (void*) &_staffspec2010;
10955 #if FXT_VERSION >= FINALEVERSION_2012
10956  case FINALEVERSION_2012:
10957  return (void*) &_staffspec2012;
10958 #endif
10959  default:
10960  PROTECTED2014STAFFSPEC(return (void*) &_staffspec2014);
10961  return NULL;
10962  }
10963  }
10964 
10969  virtual void CloneMemoryFrom(__FCBaseData* pSource)
10970  {
10971  void* pStaffSpec = NULL;
10972  fourbyte size = 0;
10973  switch (_VersionToUse())
10974  {
10975  case FINALEVERSION_2010:
10976  pStaffSpec = &_staffspec2010;
10977  size = sizeof(_staffspec2010);
10978  break;
10979  case FINALEVERSION_2012:
10980  PROTECTED2012STAFFSPEC(
10981  pStaffSpec = &_staffspec2012;
10982  size = sizeof(_staffspec2012);)
10983  break;
10984  default:
10985  PROTECTED2014STAFFSPEC(
10986  pStaffSpec = &_staffspec2014;
10987  size = sizeof(_staffspec2014);)
10988  break;
10989  }
10990 
10991  memcpy(pStaffSpec, ((FCStaff*)pSource)->_GetStaffSpec(), size);
10992  _datablock = pStaffSpec;
10993  _loadedsize = size;
10994  }
10995 
10997  virtual bool LoadFirst()
10998  {
10999  SetCmperAndInci(0, 0);
11000  return LoadNext();
11001  }
11002 
11003  virtual __FCBaseData* CreateObject() { return new FCStaff(); }
11004 
11005 
11007  virtual const uonebyte* _GetInstUUIDPtr() const
11008  {
11009  if (_VersionToUse() >= FINALEVERSION_2014)
11010  return _staffspec2014.instUUID;
11011  if (_VersionToUse() >= FINALEVERSION_2012)
11012  return _staffspec2012.instUUID;
11013  return NULL;
11014  }
11015 
11017  virtual const FLAG_16* _GetInstFlagPtr() const
11018  {
11019  return &((EDTStaffSpec2010*)_GetStaffSpec())->instflag;
11020  }
11021 
11023  virtual const FLAG_16* _GetFlagPtr() const
11024  {
11025  return &((EDTStaffSpec2010*)_GetStaffSpec())->flag;
11026  }
11027 
11029  virtual const FLAG_16* _GetAltFlagPtr() const
11030  {
11031  return &((EDTStaffSpec2010*)_GetStaffSpec())->altFlag;
11032  }
11033 
11035  virtual const FLAG_16* _GetAltFlag2Ptr() const
11036  {
11037  return &((EDTStaffSpec2010*)_GetStaffSpec())->altFlag2;
11038  }
11039 
11041  virtual const twobyte* _GetTranspositionPtr() const
11042  {
11043  return &((EDTStaffSpec2010*)_GetStaffSpec())->transposition;
11044  }
11045 
11047  virtual const FLAG_16* _GetMoreFlagsPtr() const
11048  {
11049  return &((EDTStaffSpec2010*)_GetStaffSpec())->moreFlags;
11050  }
11051 
11053  virtual const FLAG_16* _GetMoreFlags2Ptr() const
11054  {
11055  if (_VersionToUse() < FINALEVERSION_2014) return NULL;
11056 #if FXT_VERSION < FINALEVERSION_25
11057  return (const FLAG_16*)&((EDTStaffSpec2014*)_GetStaffSpec())->hideKeySigsShowAccis;
11058 #else
11059  return &((EDTStaffSpec2014*)_GetStaffSpec())->moreFlags2;
11060 #endif
11061  }
11062 
11064  virtual const FLAG_16* _GetMoreFlags3Ptr() const
11065  {
11066  if (_VersionToUse() < FINALEVERSION_2014) return NULL;
11067 #if FXT_VERSION < FINALEVERSION_25
11068  return (const FLAG_16*) &((EDTStaffSpec2014*)_GetStaffSpec())->redisplayLayerAccis;
11069 #else
11070  return &((EDTStaffSpec2014*)_GetStaffSpec())->moreFlags3;
11071 #endif
11072  }
11073 
11075  virtual const twobyte* _GetAbbrvNamePtr() const
11076  {
11077  return &((EDTStaffSpec2010*)_GetStaffSpec())->abbrvName;
11078  }
11079 
11081  virtual const twobyte* _GetFullNamePtr() const
11082  {
11083  return &((EDTStaffSpec2010*)_GetStaffSpec())->fullName;
11084  }
11085 
11087  virtual const twobyte* _GetClefsPtr() const
11088  {
11089  return &((EDTStaffSpec2010*)_GetStaffSpec())->clefs;
11090  }
11091 
11093  virtual const Efix32* _GetVertTabNumOffPtr() const
11094  {
11095  return &((EDTStaffSpec2010*)_GetStaffSpec())->vertTabNumOff;
11096  }
11097 
11099  virtual const CMPER* _GetFretInstIDPtr() const
11100  {
11101  return &((EDTStaffSpec2010*)_GetStaffSpec())->fretInstID;
11102  }
11103 
11105  virtual const Evpu16* _GetBottomBarlineOffsetPtr() const
11106  {
11107  return &((EDTStaffSpec2010*)_GetStaffSpec())->botBarlineOffset;
11108  }
11109 
11111  virtual const Evpu16* _GetTopBarlineOffsetPtr() const
11112  {
11113  return &((EDTStaffSpec2010*)_GetStaffSpec())->topBarlineOffset;
11114  }
11115 
11117  virtual const utwobyte* _GetCapoLowFretPtr() const
11118  {
11119  return &((EDTStaffSpec2010*)_GetStaffSpec())->capoLowFret;
11120  }
11121 
11123  virtual const FLAG_16* _GetBotLinesPtr() const
11124  {
11125  return &((EDTStaffSpec2010*)_GetStaffSpec())->botLines;
11126  }
11127 
11129  virtual const FLAG_16* _GetTopLinesPtr() const
11130  {
11131  return &((EDTStaffSpec2010*)_GetStaffSpec())->topLines;
11132  }
11133 
11135  virtual const Efix32* _GetLineSpacePtr() const
11136  {
11137  return &((EDTStaffSpec2010*)_GetStaffSpec())->lineSpace;
11138  }
11139 
11141  virtual const twobyte* _GetDwWRestPtr() const
11142  {
11143  return &((EDTStaffSpec2010*)_GetStaffSpec())->dw_wRest;
11144  }
11145 
11147  virtual const twobyte* _GetStemReversalPtr() const
11148  {
11149  return &((EDTStaffSpec2010*)_GetStaffSpec())->stemReversal;
11150  }
11151 
11153  virtual const twobyte* _GetRepeatDotsOffPtr() const
11154  {
11155  return &((EDTStaffSpec2010*)_GetStaffSpec())->repeatDotsOff;
11156  }
11157 
11159  virtual const twobyte* _GetHOtherRestPtr() const
11160  {
11161  return &((EDTStaffSpec2010*)_GetStaffSpec())->h_otherRest;
11162  }
11163 
11164 
11166  const ETAG* _GetFullNamePosTagPtr() const
11167  {
11168  return &((EDTStaffSpec2010*)_GetStaffSpec())->fullNamePosTag;
11169  }
11170 
11172  const twobyte* _GetFullNamePosCmperPtr() const
11173  {
11174  return &((EDTStaffSpec2010*)_GetStaffSpec())->fullNamePosCmper;
11175  }
11176 
11178  const ETAG* _GetAbbrvNamePosTagPtr() const
11179  {
11180  return &((EDTStaffSpec2010*)_GetStaffSpec())->abbrvNamePosTag;
11181  }
11182 
11184  const twobyte* _GetAbbrvNamePosCmperPtr() { return &((EDTStaffSpec2010*)_GetStaffSpec())->abbrvNamePosCmper; }
11185 
11190  ETAG _GetFullNamePosTag() { return *_GetFullNamePosTagPtr(); }
11191 
11196  twobyte _GetFullNamePosCmper() { return *_GetFullNamePosCmperPtr(); }
11197 
11202  ETAG _GetAbbreviatedNamePosTag() { return *_GetAbbrvNamePosTagPtr(); }
11203 
11208  twobyte _GetAbbreviatedNamePosCmper() { return *_GetAbbrvNamePosCmperPtr(); }
11209 
11210 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
11211 public:
11212 
11213 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
11214 
11215  virtual EVERSION EnigmaVersion()
11216  {
11217  return _VersionToUse();
11218  }
11219 #endif
11220 
11221  virtual const char* ClassName() { return "FCStaff"; }
11222  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_STAFF; }
11223 
11224 
11225 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
11226 
11233  const void* _GetStaffSpec() const
11234  {
11235  switch (_VersionToUse())
11236  {
11237  case FINALEVERSION_2010:
11238  return &_staffspec2010;
11239  case FINALEVERSION_2012:
11240  PROTECTED2012STAFFSPEC(return &_staffspec2012);
11241  return NULL;
11242  default:
11243  PROTECTED2014STAFFSPEC(return &_staffspec2014);
11244  return NULL;
11245  }
11246  }
11247 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
11248 
11255  {
11256 #ifdef PDK_FRAMEWORK_PREFS
11257  _pFullNamePosition = NULL;
11258  _pAbbreviatedNamePosition = NULL;
11259 #endif
11260 
11261  int size = 0;
11262  switch (_VersionToUse())
11263  {
11264  case FINALEVERSION_2010:
11265  size = sizeof(_staffspec2010);
11266  memset(&_staffspec2010, 0, size);
11267  break;
11268  case FINALEVERSION_2012:
11269  PROTECTED2012STAFFSPEC(size = sizeof(_staffspec2012);)
11270  PROTECTED2012STAFFSPEC(memset(&_staffspec2012, 0, size));
11271  break;
11272  default:
11273  PROTECTED2014STAFFSPEC(size = sizeof(_staffspec2014);)
11274  PROTECTED2014STAFFSPEC(memset(&_staffspec2014, 0, size));
11275  break;
11276  }
11277  }
11278 
11279  virtual ~FCStaff()
11280  {
11281 #ifdef PDK_FRAMEWORK_PREFS
11282  delete _pFullNamePosition;
11283  _pFullNamePosition = NULL;
11284 
11285  delete _pAbbreviatedNamePosition;
11286  _pAbbreviatedNamePosition = NULL;
11287 #endif
11288  }
11289 
11291  virtual bool Save();
11292 
11293 
11294 
11295 
11296 
11297 
11298 
11304  FCInstrumentPlaybackData* CreateInstrumentPlaybackData();
11305 
11306 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
11307 
11311  FCInstrumentPlaybackData* CreateInstrumentPlaybackData_GC();
11312 #endif
11313 
11319  FCFretInstrumentDef* CreateFretInstrumentDef();
11320 
11321 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
11322 
11323  FCFretInstrumentDef* CreateFretInstrumentDef_GC();
11324 #endif
11325 
11326 
11337  int CalcPercussionLayoutID();
11338 
11339 
11340 
11341 
11342 #ifdef PDK_FRAMEWORK_PREFS
11343 
11351  FCStaffNamePosition* GetFullNamePosition();
11352 
11360  FCStaffNamePosition* GetAbbreviatedNamePosition();
11361 #endif
11362 
11363 
11376  FCPercussionStaff* CreatePercussionStaff();
11377 
11387  bool SavePercussionLayout(int layoutID, int mapID);
11388 
11399  FCInstrumentDef* CreateLayerInstrumentDef(int layer);
11400 
11401 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
11402 
11406  FCInstrumentDef* CreateLayerInstrumentDef_GC(int layer);
11407 #endif
11408 
11409 
11410 
11411 
11412 
11413 
11414 
11415 
11416 
11417 
11418 
11419 
11420 
11421 
11422 
11423 #ifdef PDK_FRAMEWORK_DEBUG
11424  virtual void DebugDump()
11425  {
11427  DebugOutBool("Transposition: ", GetTranspose());
11428  DebugOutBool("Chromatic Transposition:" , GetTransposeChromatic());
11429  DebugOutBool("Transposition - Set to clef: ", GetTransposeUseClef());
11430  DebugOutBool("Transposition - Simplify key: ", GetTransposeSimplifyKey());
11431  DebugOutDigit("Transposition - Alteration: ", GetTransposeAlteration());
11432  DebugOutDigit("Transposition - Interval: ", GetTransposeInterval());
11433  DebugOutHex("topLines :", ((EDTStaffSpec2010*)_GetStaffSpec())->topLines);
11434  DebugOutHex("botLines :", ((EDTStaffSpec2010*)_GetStaffSpec())->botLines);
11435  DebugOutDigit("drumStaffCmper: ", ((EDTStaffSpec2010*)_GetStaffSpec())->drumStaffCmper);
11436  }
11437 #endif
11438 
11439 };
11440 
11441 class FCNoteEntry;
11442 class FCCell;
11443 
11457 {
11458 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
11459 
11461  virtual bool Load(CMPER itemno) { return false; }
11462 
11465  virtual bool SaveAs(CMPER itemno) { return false; }
11466 
11469  virtual bool SaveNew() { return false; }
11470 
11473  virtual CMPER GetItemNo() { return 0; }
11474 
11475  virtual EXTAG Tag() { return ot_EDTCurrStaffSpec; }
11476 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
11477 public:
11478  virtual const char* ClassName() { return "FCCurrentStaffSpec"; }
11479 
11480 #ifdef PDK_FRAMEWORK_ENTRIES
11481 
11491  bool LoadForEntry(FCNoteEntry* pNoteEntry);
11492 #endif
11493 
11505  bool LoadForCell(FCCell* pCell, TimeEdu32 durationpos);
11506 
11511  int GetConnectedDurationPos() const { return _dataid.staffSpec.eduPos; }
11512 
11517  int GetConnectedMeasure() const { return _dataid.staffSpec.measNum; }
11518 
11523  int GetConnectedStaff() const { return _dataid.staffSpec.staffNum; }
11524 };
11525 
11526 
11527 class FCArticulation;
11528 
11536 {
11537 private:
11538 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
11539 
11540  EDTArticulationDefinition _articdefold;
11541 
11542 #if FXT_VERSION >= FINALEVERSION_2012
11543  EDTArticulationDefinition2012 _articdef2012;
11544 #endif
11545 
11546  bool Use2012Version() const;
11547 
11548  mutable EFONTNAME _mainsymbolfontname; /* For return value only */
11549  mutable EFONTNAME _flippedsymbolfontname; /* For return value only */
11550 
11551 #if FXT_VERSION >= FINALEVERSION_25
11552  mutable EnigmaFontName _mainsymbolfontnameUTF16; /* For return value only */
11553  mutable EnigmaFontName _flippedsymbolfontnameUTF16; /* For return value only */
11554 #endif
11555 
11556  const FLAG_16* _GetFlag1Ptr() const;
11557  const FLAG_16* _GetFlag2Ptr() const;
11558  const twobyte* _GetMainShapePtr() const;
11559  const twobyte* _GetFlippedShapePtr() const;
11560  const twobyte* _GetStartTopNotePtr() const;
11561  const twobyte* _GetStartBotNotePtr() const;
11562  const twobyte* _GetDurTopNotePtr() const;
11563  const twobyte* _GetDurBotNotePtr() const;
11564  const twobyte* _GetAmpTopNotePtr() const;
11565  const twobyte* _GetAmpBotNotePtr() const;
11566  const Evpu16* _GetDefaultVerticalPosPtr() const;
11567  const Evpu16* _GetMainHandleVerticalOffsetPtr() const;
11568  const Evpu16* _GetMainHandleHorizontalOffsetPtr() const;
11569  const Evpu16* _GetFlippedHandleVerticalOffsetPtr() const;
11570  const Evpu16* _GetFlippedHandleHorizontalOffsetPtr() const;
11571 
11572  bool _GetFlag1State(FLAG_16 state) const { return GetBitFlag(*_GetFlag1Ptr(), state); }
11573  void _SetFlag1State(FLAG_16 flagbits, bool state)
11574  {
11575  FLAG_16* pData = (FLAG_16*) _GetFlag1Ptr();
11576  Set16BitFlag(pData, flagbits, state);
11577  }
11578  bool _GetFlag2State(FLAG_16 state) const { return GetBitFlag(*_GetFlag2Ptr(), state); }
11579  void _SetFlag2State(FLAG_16 flagbits, bool state)
11580  {
11581  FLAG_16* pData = (FLAG_16*) _GetFlag2Ptr();
11582  Set16BitFlag(pData, flagbits, state);
11583  }
11584 
11585 protected:
11586  virtual EXTAG Tag() { return ot_ArticulationDefinition; }
11587  virtual int DataSizeLoad();
11588  virtual void* Allocate();
11589 
11590  virtual EVERSION EnigmaVersion()
11591  {
11592  if (Use2012Version()) return FINALEVERSION_2012;
11593  return FINALEVERSION_2010;
11594  }
11595 
11600  virtual void CloneMemoryFrom(__FCBaseData* pSource)
11601  {
11602  memcpy(_GetArticDef(), ((FCArticulationDef*)pSource)->_GetArticDef(), DataSizeLoad());
11603  _datablock = _GetArticDef();
11605  }
11606 
11607  virtual __FCBaseData* CreateObject() { return new FCArticulationDef(); }
11608 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
11609 public:
11622  ARTPOS_MANUAL_POSITIONING,
11623  ARTPOS_AUTO_NOTESTEM,
11624  ARTPOS_ALWAYS_NOTE_SIDE,
11625  ARTPOS_ALWAYS_STEM_SIDE,
11626  ARTPOS_BELOW_ENTRY,
11627  ARTPOS_ABOVE_ENTRY
11628  };
11629 
11630 
11631  virtual const char* ClassName() { return "FCArticulationDef"; }
11632  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_ARTICULATIONDEF; }
11633 
11634 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
11635 
11641  void* _GetArticDef() { return Allocate(); }
11642 
11643 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
11644 
11651  {
11652  memset(_GetArticDef(), 0, DataSizeLoad());
11653  _datablock = _GetArticDef();
11655  }
11656 
11664  bool GetOnScreenOnly() const { return _GetFlag1State(ARTIC_NOPRINT); }
11665 
11673  FCFontInfo* CreateMainSymbolFontInfo();
11674 
11675 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
11676 
11677  FCFontInfo* CreateMainSymbolFontInfo_GC();
11678 #endif
11679 
11687  FCFontInfo* CreateFlippedSymbolFontInfo();
11688 
11689 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
11690 
11691  FCFontInfo* CreateFlippedSymbolFontInfo_GC();
11692 #endif
11693 
11703  eUniChar32 GetAboveSymbolChar() const
11704  {
11705  if (GetAboveUsesMain())
11706  return GetMainSymbolChar();
11707  else
11708  return GetFlippedSymbolChar();
11709  }
11710 
11720  eUniChar32 GetBelowSymbolChar() const
11721  {
11722  if (GetBelowUsesMain())
11723  return GetMainSymbolChar();
11724  else
11725  return GetFlippedSymbolChar();
11726  }
11727 
11728 
11736  eUniChar32 GetMainSymbolChar() const;
11737 
11744  twobyte GetMainSymbolShapeID() const { return GetMainSymbolIsShape() ? *_GetMainShapePtr() : 0; }
11745 
11753  eUniChar32 GetFlippedSymbolChar() const;
11754 
11761  twobyte GetFlippedSymbolShapeID() const { return GetFlippedSymbolIsShape() ? *_GetFlippedShapePtr() : 0; }
11762 
11769  const char* GetMainSymbolFont() const;
11770 
11776  const EFONTID GetMainSymbolFontID() const;
11777 
11782  const eUniChar16* GetMainSymbolFontUTF16() const;
11783 
11790  const char* GetFlippedSymbolFont() const;
11791 
11797  const EFONTID GetFlippedSymbolFontID() const;
11798 
11803  const eUniChar16* GetFlippedSymbolFontUTF16() const;
11804 
11811  twobyte GetMainSymbolSize() const;
11812 
11819  twobyte GetFlippedSymbolSize() const;
11820 
11828  bool GetAboveUsesMain() const { return !_GetFlag1State(ARTIC_ABOVE_SYMBOL); }
11829 
11837  bool GetBelowUsesMain() const { return !_GetFlag1State(ARTIC_BELOW_SYMBOL); }
11838 
11844  bool GetCopyMainSymbol() const { return _GetFlag1State(ARTIC_IMRKITERANT); }
11845 
11854  bool GetCopyMainSymbolHorizontally() const { return _GetFlag1State(ARTIC_HORZITERANT); }
11855 
11862  bool GetPlayback() const { return _GetFlag2State(ARTIC_PLAY); }
11863 
11869  bool GetAttackIsPercent() const { return _GetFlag2State(ARTIC_START_IS_PERCENT); }
11870 
11876  twobyte GetTopAttack() const { return *_GetStartTopNotePtr(); }
11877 
11882  twobyte GetBottomAttack() const { return *_GetStartBotNotePtr(); }
11883 
11889  bool GetDurationIsPercent() const { return _GetFlag2State(ARTIC_DUR_IS_PERCENT); }
11890 
11895  twobyte GetTopDuration() const { return *_GetDurTopNotePtr(); }
11896 
11901  twobyte GetBottomDuration() const { return *_GetDurBotNotePtr(); }
11902 
11907  bool GetVelocityIsPercent() const { return _GetFlag2State(ARTIC_AMP_IS_PERCENT); }
11908 
11913  twobyte GetTopVelocity() const { return *_GetAmpTopNotePtr(); }
11914 
11919  twobyte GetBottomVelocity() const { return *_GetAmpBotNotePtr(); }
11920 
11925  bool GetAvoidStaffLines() const { return _GetFlag2State(ARTIC_AVOID_STAFF_LINES); }
11926 
11932  bool GetAlwaysPlaceOutsideStaff() const { return _GetFlag1State(ARTIC_OUTSIDESTAFF); }
11933 
11939  bool GetCenterHorizontally() const { return _GetFlag1State(ARTIC_AUTOHORZ); }
11940 
11945  bool GetInsideSlurs() const { return _GetFlag1State(ARTIC_INSIDE_SLUR); }
11946 
11951  bool GetAttachToTopNote() const { return _GetFlag1State(ARTIC_USETOPNOTE); }
11952 
11960  Evpu16 GetDefaultVerticalPos() const { return *_GetDefaultVerticalPosPtr(); }
11961 
11974 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
11975  ARTPOSITIONING_SIDES
11976 #else
11977  int
11978 #endif
11979  GetAutoPosSide() const;
11980 
11985  Evpu16 GetMainHandleVerticalOffset() const { return *_GetMainHandleVerticalOffsetPtr(); }
11986 
11992  Evpu16 GetMainHandleHorizontalOffset() const { return *_GetMainHandleHorizontalOffsetPtr(); }
11993 
11999  Evpu16 GetFlippedHandleVerticalOffset() const { return *_GetFlippedHandleVerticalOffsetPtr(); }
12000 
12005  Evpu16 GetFlippedHandleHorizontalOffset() const { return *_GetFlippedHandleHorizontalOffsetPtr(); }
12006 
12014  bool GetMainSymbolIsShape() const { return _GetFlag2State(ARTIC_MAIN_IS_SHAPE); }
12015 
12023  bool GetFlippedSymbolIsShape() const { return _GetFlag2State(ARTIC_FLIPPED_IS_SHAPE); }
12024 
12031  {
12032  if (GetAboveUsesMain())
12033  {
12034  if (GetMainSymbolIsShape()) return true;
12035  }
12036  else
12037  {
12038  if (GetFlippedSymbolIsShape()) return true;
12039  }
12040  if (GetBelowUsesMain())
12041  {
12042  if (GetMainSymbolIsShape()) return true;
12043  }
12044  else
12045  {
12046  if (GetFlippedSymbolIsShape()) return true;
12047  }
12048  return false;
12049  }
12050 
12061  bool IsMainSymbolFont(const char* pszFontName);
12062 
12071  bool IsMainSymbolFontUTF16(const eUniChar16* pszFontName);
12072 
12083  bool IsFlippedSymbolFont(const char* pszFontName);
12084 
12093  bool IsFlippedSymbolFontUTF16(const eUniChar16* pszFontName);
12094 
12112  bool IsIdenticalTo(FCArticulationDef* pDef, bool playbackinfo, bool positioningvalues, bool positioningoptions, bool defaultside);
12113 
12127  void GetMainSymbolFontInfo(FCFontInfo* pFontInfo);
12128 
12142  void GetFlippedSymbolFontInfo(FCFontInfo* pFontInfo);
12143 
12149  void SetOnScreenOnly(bool state) { _SetFlag1State(ARTIC_NOPRINT, state); }
12150 
12162  void SetMainSymbolFontInfo(FCFontInfo* pFontInfo);
12163 
12175  void SetFlippedSymbolFontInfo(FCFontInfo* pFontInfo);
12176 
12182  void SetMainSymbolSize(twobyte size);
12183 
12189  void SetFlippedSymbolSize(twobyte size);
12190 
12196  void SetMainSymbolFont(const char* pszFontName);
12197 
12203  void SetFlippedSymbolFont(const char* pszFontName);
12204 
12208  void SetMainSymbolFontUTF16(const eUniChar16* pszFontName);
12209 
12213  void SetFlippedSymbolFontUTF16(const eUniChar16* pszFontName);
12214 
12221  void SetAboveSymbolChar(eUniChar32 symbol)
12222  {
12223  if (GetAboveUsesMain())
12224  SetMainSymbolChar(symbol);
12225  else
12226  SetFlippedSymbolChar(symbol);
12227  }
12228 
12235  void SetBelowSymbolChar(eUniChar32 symbol)
12236  {
12237  if (GetBelowUsesMain())
12238  SetMainSymbolChar(symbol);
12239  else
12240  SetFlippedSymbolChar(symbol);
12241  }
12242 
12243 
12250  void SetMainSymbolChar(eUniChar32 symbol)
12251  {
12252  if (Use2012Version())
12253  {
12254 #if FXT_VERSION >= FINALEVERSION_2012
12255  _articdef2012.charMain = symbol;
12256 #endif
12257  }
12258  else
12259  {
12260  _articdefold.efxsymbolMain &= 0xff00;
12261  _articdefold.efxsymbolMain |= (symbol & 0xff);
12262  }
12263  }
12264 
12270  void SetMainSymbolIsShape(bool useshape)
12271  {
12272  _SetFlag2State(ARTIC_MAIN_IS_SHAPE, useshape);
12273  }
12274 
12280  void SetFlippedSymbolIsShape(bool useshape)
12281  {
12282  _SetFlag2State(ARTIC_FLIPPED_IS_SHAPE, useshape);
12283  }
12284 
12291  void SetMainSymbolShapeID(CMPER shapeID)
12292  {
12293  CMPER* pValue = (CMPER*) _GetMainShapePtr();
12294  *pValue = shapeID;
12295  }
12296 
12303  void SetFlippedSymbolShapeID(twobyte shapeID)
12304  {
12305  CMPER* pValue = (CMPER*) _GetFlippedShapePtr();
12306  *pValue = shapeID;
12307  }
12308 
12316  void SetFlippedSymbolChar(eUniChar32 symbol)
12317  {
12318  if (Use2012Version())
12319  {
12320 #if FXT_VERSION >= FINALEVERSION_2012
12321  _articdef2012.charAlt = symbol;
12322 #endif
12323  }
12324  else
12325  {
12326  _articdefold.efxsymbolFlipped &= 0xff00;
12327  _articdefold.efxsymbolFlipped |= (symbol & 0xff);
12328  }
12329  }
12330 
12338  void SetAboveUsesMain(bool state) { _SetFlag1State(ARTIC_ABOVE_SYMBOL, !state); }
12339 
12347  void SetBelowUsesMain(bool state) { _SetFlag1State(ARTIC_BELOW_SYMBOL, !state); }
12348 
12353  void SetCopyMainSymbol(bool state) { _SetFlag1State(ARTIC_IMRKITERANT, state); }
12354 
12363  void SetCopyMainSymbolHorizontally(bool state) { _SetFlag1State(ARTIC_HORZITERANT, state); }
12364 
12371  void SetPlayback(bool state) { _SetFlag2State(ARTIC_PLAY, state); }
12372 
12378  void SetAttackIsPercent(bool state) { _SetFlag2State(ARTIC_START_IS_PERCENT, state); }
12379 
12385  void SetTopAttack(twobyte value)
12386  {
12387  twobyte* pValue = (twobyte*) _GetStartTopNotePtr();
12388  *pValue = value;
12389  }
12390 
12395  void SetBottomAttack(twobyte value)
12396  {
12397  twobyte* pValue = (twobyte*) _GetStartBotNotePtr();
12398  *pValue = value;
12399  }
12400 
12405  void SetAutoPosSide(
12406 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
12407  ARTPOSITIONING_SIDES mode
12408 #else
12409  int mode
12410 #endif
12411  );
12412 
12417  void SetAlwaysPlaceOutsideStaff(bool state) { _SetFlag1State(ARTIC_OUTSIDESTAFF, state); }
12418 
12423  void SetCenterHorizontally(bool state) { _SetFlag1State(ARTIC_AUTOHORZ, state); }
12424 
12429  void SetAvoidStaffLines(bool state) { _SetFlag2State(ARTIC_AVOID_STAFF_LINES, state); }
12430 
12435  void SetInsideSlurs(bool state) { _SetFlag1State(ARTIC_INSIDE_SLUR, state); }
12436 
12441  void SetAttachToTopNote(bool state) { _SetFlag1State(ARTIC_USETOPNOTE, state); }
12442 
12448  void SetDefaultVerticalPos(Evpu16 value)
12449  {
12450  Evpu16* pValue = (Evpu16*) _GetDefaultVerticalPosPtr();
12451  *pValue = value;
12452  }
12453 
12459  void SetMainHandleVerticalOffset(Evpu16 value)
12460  {
12461  Evpu16* pValue = (Evpu16*) _GetMainHandleVerticalOffsetPtr();
12462  *pValue = value;
12463  }
12464 
12471  {
12472  Evpu16* pValue = (Evpu16*) _GetMainHandleHorizontalOffsetPtr();
12473  *pValue = value;
12474  }
12475 
12482  {
12483  Evpu16* pValue = (Evpu16*) _GetFlippedHandleVerticalOffsetPtr();
12484  *pValue = value;
12485  }
12486 
12492  {
12493  Evpu16* pValue = (Evpu16*) _GetFlippedHandleHorizontalOffsetPtr();
12494  *pValue = value;
12495  }
12496 
12502  void SetTopDuration(twobyte value)
12503  {
12504  twobyte* pValue = (twobyte*) _GetDurTopNotePtr();
12505  *pValue = value;
12506  }
12507 
12512  void SetBottomDuration(twobyte value)
12513  {
12514  twobyte* pValue = (twobyte*) _GetDurBotNotePtr();
12515  *pValue = value;
12516  }
12517 
12522  void SetDurationIsPercent(bool value) { _SetFlag2State(ARTIC_DUR_IS_PERCENT, value); }
12523 
12528  void SetTopVelocity(twobyte value)
12529  {
12530  twobyte* pValue = (twobyte*) _GetAmpTopNotePtr();
12531  *pValue = value;
12532  }
12533 
12538  void SetBottomVelocity(twobyte value)
12539  {
12540  twobyte* pValue = (twobyte*) _GetAmpBotNotePtr();
12541  *pValue = value;
12542  }
12543 
12548  void SetVelocityIsPercent(bool value) { _SetFlag2State(ARTIC_AMP_IS_PERCENT, value); }
12549 
12550 #ifdef PDK_FRAMEWORK_DEBUG
12551  virtual void DebugDump()
12552  {
12554  DebugOutDigit("Main symbol char: ", GetMainSymbolChar());
12555  DebugOutString("Main symbol font name: ", GetMainSymbolFont());
12556  DebugOutDigit("Main symbol size: ", GetMainSymbolSize());
12557  }
12558 #endif
12559 
12560 };
12561 
12562 
12572 {
12573 private:
12574 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
12575  EDTMarkingCategory _categorydefold;
12576 
12577 #if FXT_VERSION >= FINALEVERSION_2012
12578  EDTMarkingCategory2012 _categorydef2012;
12579 #endif
12580 
12581  bool _Use2012Version() const;
12582 
12583  const FLAG_16* _GetFlagPtr() const
12584  {
12585 #if FXT_VERSION >= FINALEVERSION_2012
12586  if (_Use2012Version()) return &_categorydef2012.categoryFlags;
12587 #endif
12588  return &_categorydefold.categoryFlags;
12589  }
12590 
12591  const twobyte* _GetCatIDPtr() const
12592  {
12593 #if FXT_VERSION >= FINALEVERSION_2012
12594  if (_Use2012Version()) return &_categorydef2012.catID;
12595 #endif
12596  return &_categorydefold.catID;
12597  }
12598 
12599  const twobyte* _GetStaffListPtr() const
12600  {
12601 #if FXT_VERSION >= FINALEVERSION_2012
12602  if (_Use2012Version()) return &_categorydef2012.staffList;
12603 #endif
12604  return &_categorydefold.staffList;
12605  }
12606 
12607  const twobyte* _GetVertAlignPtr() const
12608  {
12609 #if FXT_VERSION >= FINALEVERSION_2012
12610  if (_Use2012Version()) return &_categorydef2012.vertAlign;
12611 #endif
12612  return &_categorydefold.vertAlign;
12613  }
12614 
12615  const twobyte* _GetVertOffsetBaseLinePtr() const
12616  {
12617 #if FXT_VERSION >= FINALEVERSION_2012
12618  if (_Use2012Version()) return &_categorydef2012.vertOffsetBaseline;
12619 #endif
12620  return &_categorydefold.vertOffsetBaseline;
12621  }
12622 
12623  const twobyte* _GetVertOffsetEntryPtr() const
12624  {
12625 #if FXT_VERSION >= FINALEVERSION_2012
12626  if (_Use2012Version()) return &_categorydef2012.vertOffsetEntry;
12627 #endif
12628  return &_categorydefold.vertOffsetEntry;
12629  }
12630 
12631  const twobyte* _GetJustificationPtr() const
12632  {
12633 #if FXT_VERSION >= FINALEVERSION_2012
12634  if (_Use2012Version()) return &_categorydef2012.justification;
12635 #endif
12636  return &_categorydefold.justification;
12637  }
12638 
12639  const twobyte* _GetHorzAlignPtr() const
12640  {
12641 #if FXT_VERSION >= FINALEVERSION_2012
12642  if (_Use2012Version()) return &_categorydef2012.horzAlign;
12643 #endif
12644  return &_categorydefold.horzAlign;
12645  }
12646 
12647  const twobyte* _GetHorzOffsetPtr() const
12648  {
12649 #if FXT_VERSION >= FINALEVERSION_2012
12650  if (_Use2012Version()) return &_categorydef2012.horzOffset;
12651 #endif
12652  return &_categorydefold.horzOffset;
12653  }
12654 
12655  const EEnigmaFont* _GetTextFontPtr() const
12656  {
12657 #if FXT_VERSION >= FINALEVERSION_2012
12658  if (_Use2012Version()) return &_categorydef2012.textFont;
12659 #endif
12660  return &_categorydefold.textFont;
12661  }
12662 
12663  const EEnigmaFont* _GetMusicFontPtr() const
12664  {
12665 #if FXT_VERSION >= FINALEVERSION_2012
12666  if (_Use2012Version()) return &_categorydef2012.musicFont;
12667 #endif
12668  return &_categorydefold.musicFont;
12669  }
12670 
12671  const EEnigmaFont* _GetNumberFontPtr() const
12672  {
12673 #if FXT_VERSION >= FINALEVERSION_2012
12674  if (_Use2012Version()) return &_categorydef2012.numberFont;
12675 #endif
12676  return &_categorydefold.numberFont;
12677  }
12678 
12679  bool _GetFlagState(FLAG_16 state) const
12680  {
12681  FLAG_16* pValue = (FLAG_16*) _GetFlagPtr();
12682  return GetBitFlag(*pValue, state);
12683  }
12684 
12685  void _SetFlagState(FLAG_16 mask, bool state)
12686  {
12687  FLAG_16* pValue = (FLAG_16*) _GetFlagPtr();
12688  return Set16BitFlag(pValue, mask, state);
12689  }
12690 
12691 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
12692 protected:
12693 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
12694 
12695  virtual EXTAG Tag() { return ot_MarkingCategory; }
12696 
12697  virtual int DataSizeLoad()
12698  {
12699 #if FXT_VERSION >= FINALEVERSION_2012
12700  if (_Use2012Version()) return sizeof(EDTMarkingCategory2012);
12701 #endif
12702  return sizeof(EDTMarkingCategory);
12703  }
12704 
12705  virtual void* Allocate()
12706  {
12707 #if FXT_VERSION >= FINALEVERSION_2012
12708  if (_Use2012Version()) return (void*) &_categorydef2012;
12709 #endif
12710  return (void*) &_categorydefold;
12711  }
12712 
12719  virtual void CloneMemoryFrom(__FCBaseData* pSource)
12720  {
12721  memcpy(_GetCategoryDef(), ((FCCategoryDef*)pSource)->_GetCategoryDef(), DataSizeLoad());
12722  _datablock = _GetCategoryDef();
12724  }
12725 
12726  virtual __FCBaseData* CreateObject() { return new FCCategoryDef(); }
12727 
12728  // Class doesn't yet support Unicode
12729  virtual EVERSION EnigmaVersion()
12730  {
12731  if (_Use2012Version()) return FINALEVERSION_2012;
12732  return FINALEVERSION_2010;
12733  }
12734 
12735 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
12736 public:
12737 
12743  {
12745  DEFAULTCATID_DYNAMICS = 1,
12746 
12748  DEFAULTCATID_TEMPOMARKS = 2,
12749 
12751  DEFAULTCATID_TEMPOALTERATIONS = 3,
12752 
12754  DEFAULTCATID_EXPRESSIVETEXT = 4,
12755 
12757  DEFAULTCATID_TECHNIQUETEXT = 5,
12758 
12760  DEFAULTCATID_REHEARSALMARK = 6
12761  };
12762 
12763 
12766  {
12768  CATEGORYMODE_NONE = 0,
12769 
12771  CATEGORYMODE_TEXT = 1,
12772 
12774  CATEGORYMODE_MUSIC = 2,
12775 
12777  CATEGORYMODE_NUMBER = 3
12778  };
12779 
12780 
12781  virtual const char* ClassName() { return "FCCategoryDef"; }
12782  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_CATEGORYDEF; }
12783 
12784 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
12785 
12791  void* _GetCategoryDef() { return Allocate(); }
12792 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
12793 
12800  {
12802  ALIGNVERT_CLICKPOS = 2,
12803 
12805  ALIGNVERT_STAFF_REFERENCE_LINE = 3,
12806 
12808  ALIGNVERT_ABOVE_STAFF_BASELINE = 0,
12809 
12811  ALIGNVERT_BELOW_STAFF_BASELINE = 1,
12812 
12814  ALIGNVERT_TOPNOTE = 4,
12815 
12817  ALIGNVERT_BOTTOMNOTE = 5,
12818 
12820  ALIGNVERT_ABOVEENTRY = 6,
12821 
12823  ALIGNVERT_BELOWENTRY = 7,
12824 
12826  ALIGNVERT_ABOVE_STAFF_BASELINE_OR_ENTRY = 8,
12827 
12829  ALIGNVERT_BELOW_STAFF_BASELINE_OR_ENTRY = 9
12830  };
12831 
12838  {
12840  ALIGNHORIZ_CLICKPOS = 3,
12841 
12843  ALIGNHORIZ_LEFTOFALLNOTEHEAD = 9,
12844 
12846  ALIGNHORIZ_LEFTOFPRIMARYNOTEHEAD = 13,
12847 
12849  ALIGNHORIZ_STEM = 10,
12850 
12852  ALIGNHORIZ_CENTERPRIMARYNOTEHEAD = 11,
12853 
12855  ALIGNHORIZ_CENTERALLNOTEHEADS = 12,
12856 
12858  ALIGNHORIZ_RIGHTALLNOTEHEADS = 14,
12859 
12861  ALIGNHORIZ_LEFTBARLINE = 0,
12862 
12864  ALIGNHORIZ_TIMESIGSTART = 1,
12865 
12867  ALIGNHORIZ_AFTERCLEFKEYTIMEREPEAT = 2,
12868 
12870  ALIGNHORIZ_STARTOFMUSIC = 7,
12871 
12873  ALIGNHORIZ_CENTERBETWEENBARLINES = 4,
12874 
12876  ALIGNHORIZ_CENTEROVERUNDERMUSIC = 5,
12877 
12879  ALIGNHORIZ_RIGHTBARLINE = 6,
12880 
12881  };
12882 
12888  {
12890  EXPRJUSTIFY_LEFT = 0,
12891 
12893  EXPRJUSTIFY_CENTER = 1,
12894 
12896  EXPRJUSTIFY_RIGHT = 2
12897  };
12898 
12904  {
12905  memset(_GetCategoryDef(), 0, DataSizeLoad());
12906  _datablock = _GetCategoryDef();
12908  }
12909 
12915  virtual bool IsIdentical(__FCBase* pObject)
12916  {
12917  FCCategoryDef* pOtherCategory = (FCCategoryDef*) pObject;
12918  if (pOtherCategory->GetID() != GetID()) return false;
12919  if (*pOtherCategory->_GetFlagPtr() != *_GetFlagPtr()) return false;
12920  FCString thisname, othername;
12921  pOtherCategory->GetName(&othername);
12922  GetName(&thisname);
12923  return othername.IsEqualString(&thisname);
12924  }
12925 
12931  bool GetBreakMMRest() const
12932  {
12933  return _GetFlagState(0x400);
12934  }
12935 
12941  {
12942  return _GetFlagState(0x0010);
12943  }
12944 
12953  twobyte GetID() const
12954  {
12955  return *_GetCatIDPtr();
12956  }
12957 
12965  twobyte GetStaffListID() const
12966  {
12967  return *_GetStaffListPtr();
12968  }
12969 
12977  void GetName(FCString* pString)
12978  {
12979 #if FXT_VERSION >= FINALEVERSION_2012
12980  if (_Use2012Version())
12981  {
12982  pString->SetUnicodeString(_categorydef2012.name);
12983  return;
12984  }
12985 #endif
12986  pString->SetCString(_categorydefold.name);
12987  }
12988 
12998  {
12999  FCString* pString = new FCString();
13000  GetName(pString);
13001  return pString;
13002  }
13003 
13004 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
13005 
13006  FCString* CreateName_GC();
13007 #endif
13008 
13016 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
13017  VERT_ALIGNMENT
13018 #else
13019  int
13020 #endif
13021  GetVerticalAlignmentPoint() const { return (VERT_ALIGNMENT) *_GetVertAlignPtr(); }
13022 
13028  twobyte GetVerticalBaselineOffset() const { return *_GetVertOffsetBaseLinePtr(); }
13029 
13035  twobyte GetVerticalEntryOffset() const { return *_GetVertOffsetEntryPtr(); }
13036 
13037 
13045 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
13046  HORIZ_JUSTIFICATION
13047 #else
13048  int
13049 #endif
13051  {
13052  return (HORIZ_JUSTIFICATION) *_GetJustificationPtr();
13053  }
13054 
13060 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
13061  HORIZ_ALIGNMENT
13062 #else
13063  int
13064 #endif
13066  {
13067  return (HORIZ_ALIGNMENT) *_GetHorzAlignPtr();
13068  }
13069 
13075  twobyte GetHorizontalOffset() const
13076  {
13077  return *_GetHorzOffsetPtr();
13078  }
13079 
13088  {
13089  if (!UsesTextFont()) return false;
13090  pInfo->ParseEnigmaFont(_GetTextFontPtr());
13091  return true;
13092  }
13093 
13102  {
13103  if (!UsesMusicFont()) return false;
13104  pInfo->ParseEnigmaFont(_GetMusicFontPtr());
13105  return true;
13106  }
13107 
13116  {
13117  if (!UsesNumberFont()) return false;
13118  pInfo->ParseEnigmaFont(_GetNumberFontPtr());
13119  return true;
13120  }
13121 
13122 
13131  {
13132  if (!UsesTextFont()) return false;
13133  EEnigmaFont* pFont = (EEnigmaFont*) _GetTextFontPtr();
13134  pFont->font = pInfo->GetNameByID();
13135  pFont->efx = pInfo->GetEnigmaStyles();
13136  pFont->size = pInfo->GetSize();
13137  return true;
13138  }
13139 
13148  {
13149  if (!UsesMusicFont()) return false;
13150  EEnigmaFont* pFont = (EEnigmaFont*) _GetMusicFontPtr();
13151  pFont->font = pInfo->GetNameByID();
13152  pFont->efx = pInfo->GetEnigmaStyles();
13153  pFont->size = pInfo->GetSize();
13154  return true;
13155  }
13156 
13165  {
13166  if (!UsesNumberFont()) return false;
13167  EEnigmaFont* pFont = (EEnigmaFont*) _GetNumberFontPtr();
13168  pFont->font = pInfo->GetNameByID();
13169  pFont->efx = pInfo->GetEnigmaStyles();
13170  pFont->size = pInfo->GetSize();
13171  return true;
13172  }
13173 
13181  void SetStaffListID(twobyte value)
13182  {
13183  twobyte* pStaffList = (twobyte*) _GetStaffListPtr();
13184  *pStaffList = value;
13185  }
13186 
13195  {
13196  FCFontInfo* pFontInfo = new FCFontInfo();
13197  pFontInfo->ParseEnigmaFont(_GetTextFontPtr());
13198  return pFontInfo;
13199  }
13200 
13201 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
13202 
13203  FCFontInfo* CreateTextFontInfo_GC();
13204 #endif
13205 
13212  bool GetUserCreated() const
13213  {
13214  return _GetFlagState(MC_USER_CREATED);
13215  }
13216 
13223  {
13224  if (GetUserCreated()) return false;
13225  return GetID() == 7;
13226  }
13227 
13234  {
13235  if (GetUserCreated()) return false;
13236  return GetID() == DEFAULTCATID_DYNAMICS;
13237  }
13238 
13245  {
13246  if (GetUserCreated()) return false;
13247  return GetID() == DEFAULTCATID_TEMPOMARKS;
13248  }
13249 
13256  {
13257  if (GetUserCreated()) return false;
13258  return GetID() == DEFAULTCATID_TEMPOALTERATIONS;
13259  }
13260 
13267  {
13268  if (GetUserCreated()) return false;
13269  return GetID() == DEFAULTCATID_EXPRESSIVETEXT;
13270  }
13271 
13278  {
13279  if (GetUserCreated()) return false;
13280  return GetID() == DEFAULTCATID_TECHNIQUETEXT;
13281  }
13282 
13289  {
13290  if (GetUserCreated()) return false;
13291  return GetID() == DEFAULTCATID_REHEARSALMARK;
13292  }
13293 
13298  bool UsesStaffList() { return _GetFlagState(MC_STAFFLIST); }
13299 
13304  bool UsesTextFont() { return _GetFlagState(0x0001); } /* For some reason MC_OVERRIDE_TEXT_FONT doesn't work*/
13305 
13310  bool UsesMusicFont() { return _GetFlagState(0x0002); } /* For some reason MC_OVERRIDE_MUSIC_FONT doesn't work*/
13311 
13316  bool UsesNumberFont() { return _GetFlagState(0x0004); } /* For some reason MC_OVERRIDE_NUMBER_FONT doesn't work*/
13317 
13324  void SetName(FCString* pString)
13325  {
13326  if (!pString) return;
13327  /* Make sure there isn't any overflow of the text */
13328  FCString tempstring;
13329  tempstring.SetString(pString);
13330  tempstring.TruncateAt(63);
13331  /* Copy the text */
13332  if (_Use2012Version())
13333  {
13334 #if FXT_VERSION >= FINALEVERSION_2012
13335  int len = tempstring.GetLength();
13336  memcpy(_categorydef2012.name, tempstring._GetUnicodeBuffer(), (len + 1) * sizeof (eUniChar16));
13337  _categorydef2012.name[len] = 0; /* For safety add a NULL */
13338 #endif
13339  }
13340  else
13341  {
13342  strcpy(_categorydefold.name, tempstring.GetCString());
13343  }
13344  }
13345 
13354 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
13356 #else
13357  twobyte
13358 #endif
13359  value
13360  )
13361  {
13362  twobyte* pAlign = (twobyte*) _GetVertAlignPtr();
13363  *pAlign = (twobyte) value;
13364  }
13365 
13370  void SetUserCreated(bool value) { _SetFlagState(MC_USER_CREATED, value); }
13371 
13376  void SetBreakMMRest(bool state)
13377  {
13378  _SetFlagState(0x400, state);
13379  }
13380 
13385  void SetOverrideStaffList(bool state)
13386  {
13387  _SetFlagState(0x0010, state);
13388  }
13389 
13394  void SetID(twobyte catID)
13395  {
13396  twobyte* pData = (twobyte*) _GetCatIDPtr();
13397  *pData = catID;
13398  }
13399 
13405  void SetVerticalBaselineOffset(twobyte value)
13406  {
13407  twobyte* pVertOffsetBase = (twobyte*) _GetVertOffsetBaseLinePtr();
13408  *pVertOffsetBase = value;
13409  }
13410 
13416  void SetVerticalEntryOffset(twobyte value)
13417  {
13418  twobyte* pOffset = (twobyte*) _GetVertOffsetEntryPtr();
13419  *pOffset = value;
13420  }
13421 
13428 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
13430 #else
13431  int
13432 #endif
13433  value)
13434  {
13435  switch (value)
13436  {
13437  case EXPRJUSTIFY_LEFT:
13438  case EXPRJUSTIFY_CENTER:
13439  case EXPRJUSTIFY_RIGHT:
13440  break;
13441  default:
13442  return;
13443  }
13444  twobyte* pJustification = (twobyte*) _GetJustificationPtr();
13445  *pJustification = value;
13446  }
13447 
13448 
13454  void SetHorizontalOffset(twobyte value)
13455  {
13456  twobyte* pHorizontalOffset = (twobyte*) _GetHorzOffsetPtr();
13457  *pHorizontalOffset = value;
13458  }
13459 
13466 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
13468 #else
13469  twobyte
13470 #endif
13471  value
13472  )
13473  {
13474  twobyte* pHorizAlign = (twobyte*) _GetHorzAlignPtr();
13475  *pHorizAlign = (twobyte) value;
13476  }
13477 
13478 #ifdef PDK_FRAMEWORK_DEBUG
13479  virtual void DebugDump()
13480  {
13482  DebugOutDigit("Category ID: ", GetID());
13483  DebugOutBool("User created: ", GetUserCreated());
13484  FCString string;
13485  GetName(&string);
13486  DebugOutString("Name: ", string.GetCString());
13487  }
13488 #endif
13489 };
13490 
13491 
13492 
13493 
13507 {
13508 private:
13509 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
13510  EDTFreezeMeasures _freezemeasures;
13511 
13512 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
13513 protected:
13514 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
13515 
13516  virtual EXTAG Tag() { return ot_FreezeMeasures; }
13517  virtual int DataSizeLoad() { return sizeof(EDTFreezeMeasures); }
13518  virtual void* Allocate() { return (void*) &_freezemeasures; }
13519 
13526  virtual void CloneMemoryFrom(__FCBaseData* pSource)
13527  {
13528  memcpy(&_freezemeasures, ((FCFreezeSystem*)pSource)->_GetFreezeMeasures(), sizeof(_freezemeasures));
13529  _datablock = &_freezemeasures;
13530  _loadedsize = sizeof(_freezemeasures);
13531  }
13532 
13533  virtual __FCBaseData* CreateObject() { return new FCFreezeSystem(); }
13534 
13535  // Doesn't support First/Next
13536  virtual bool LoadFirst() { return false; }
13537 
13538 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
13539 public:
13540  virtual const char* ClassName() { return "FCFreezeSystem"; }
13541  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_FREEZESYSTEM; }
13542 
13543 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
13544 
13550  void* _GetFreezeMeasures() { return Allocate(); }
13551 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
13552 
13558  {
13559  memset(&_freezemeasures, 0, sizeof(_freezemeasures));
13560  _freezemeasures.mode = 1;
13561  _datablock = &_freezemeasures;
13562  _loadedsize = sizeof(_freezemeasures);
13563  }
13564 
13573  void SetNextSysMeasure(twobyte measure) { _freezemeasures.measure = measure; }
13574 
13582  twobyte GetNextSysMeasure() const { return _freezemeasures.measure; }
13583 
13584 
13585 #ifdef PDK_FRAMEWORK_DEBUG
13586  virtual void DebugDump()
13587  {
13589  DebugOutDigit("Next system measure: ", GetNextSysMeasure());
13590  }
13591 #endif
13592 };
13593 
13594 
13604 {
13605 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
13606  EDTTextExpression2004 _nullexpression; /* A data block for when the _datablock is NULL.
13607  This should never be accessed directly. It's only
13608  available to prevent crashes. */
13609  EDTTextExpression2004* _TypeCast() const
13610  {
13611  if (!_datablock) return (EDTTextExpression2004*) &_nullexpression;
13612  return (EDTTextExpression2004*)_datablock;
13613  }
13614 
13615  void _AllocateMemory(int size);
13616 protected:
13617  virtual EXTAG Tag() { return ot_TextExpression; }
13618  virtual EVERSION EnigmaVersion();
13619 
13620  virtual int DataSizeLoad();
13621  virtual int DataSizeSave();
13622  virtual void* Allocate();
13623  virtual void Deallocate();
13624  virtual bool IsDynamicSize() { return true; }
13625 
13626  virtual __FCBaseData* CreateObject() { return new FCTextExpressionDef(); }
13627 
13628  virtual bool LoadNext()
13629  {
13630  return Load(GetItemNo() + 1); // FX_NextEData can sometimes cause problems!!!
13631  }
13632 
13633 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
13634 public:
13635 
13641  {
13643  REHMARKSTYLE_MANUAL = FX_EXPR_REHEARSAL_MANUAL,
13644 
13646  REHMARKSTYLE_LETTER = FX_EXPR_REHERASAL_LETTERS,
13647 
13649  REHMARKSTYLE_LETNUM = FX_EXPR_REHEARSAL_LETNUM,
13650 
13652  REHMARKSTYLE_LETTER_LC = FX_EXPR_REHEARSAL_LETTERS_LC,
13653 
13655  REHMARKSTYLE_LETNUM_LC = FX_EXPR_REHEARSAL_LETNUM_LC,
13656 
13658  REHMARKSTYLE_NUMBER = FX_EXPR_REHEARSAL_NUMBERS,
13659 
13661  REHMARKSTYLE_MEASNUM = FX_EXPR_REHEARSAL_MEASNUM
13662  };
13663 
13666  {
13668  SMARTMUSICTYPE_NONE = 0,
13669 
13671  SMARTMUSICTYPE_UNKNOWN = -1,
13672 
13675 
13678 
13681 
13684 
13687 
13690 
13693 
13696 
13699 
13702 
13705 
13708 
13711 
13714 
13717 
13720 
13723 
13726 
13729 
13732 
13735 
13738 
13741 
13744 
13747 
13750 
13753 
13756 
13759 
13762 
13765 
13768 
13771 
13774 
13777 
13779  SMARTMUSICTYPE_SWINGASSESSMENTOFF
13780  };
13781 
13782  virtual const char* ClassName() { return "FCTextExpressionDef"; }
13783  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_TEXTEXPRESSIONDEF; }
13784 
13790 
13792  virtual ~FCTextExpressionDef();
13793 
13799  virtual bool DeepSaveAs(CMPER itemno)
13800  {
13801  FCString* pString = CreateTextString();
13802  SaveNewTextBlock(pString);
13803  delete pString;
13804 
13805  FCEnclosure* pEnclosure = CreateEnclosure();
13806  if (pEnclosure)
13807  {
13808  pEnclosure->SaveAs(itemno);
13809  delete pEnclosure;
13810  }
13811 
13812  return SaveAs(itemno);
13813  }
13814 
13822  virtual bool DeepDeleteData();
13823 
13824 
13828  CMPER GetTextBlockID();
13829 
13830 
13836  {
13837  return GetBitFlag(_TypeCast()->flag, EXP_VALUEisEXEC);
13838  }
13839 
13846  twobyte GetExecutableShapeID() const
13847  {
13848  if (!GetUseExecutableShape()) return 0;
13849  return _TypeCast()->value;
13850  }
13851 
13859  void SetExecutableShapeID(twobyte shapeID)
13860  {
13861  _TypeCast()->value = shapeID;
13862  SetUseExecutableShape((shapeID != 0) ? true : false);
13863  }
13864 
13870  void SetUseExecutableShape(bool state)
13871  {
13872  Set16BitFlag(&_TypeCast()->flag, EXP_VALUEisEXEC, state);
13873  }
13874 
13881  {
13882  return GetBitFlag(_TypeCast()->flag, 0x8000);
13883  }
13884 
13890  void SetHideMeasureNumbers(bool value)
13891  {
13892  Set16BitFlag(&_TypeCast()->flag, 0x8000, value);
13893  }
13894 
13900  bool GetUseEnclosure() const
13901  {
13902  return GetBitFlag(_TypeCast()->flag, TEXT_EXP_NEWENCLOSURE);
13903  }
13904 
13910  void SetUseEnclosure(bool value)
13911  {
13912  Set16BitFlag(&_TypeCast()->flag, TEXT_EXP_NEWENCLOSURE, value);
13913  }
13914 
13927  twobyte GetCategoryID() const
13928  {
13929 #if FXT_VERSION >= FINALEVERSION_2014
13930  return (_TypeCast()->category & 0x3fff);
13931 #else
13932  return (_TypeCast()->measYadjust & 0x3fff);
13933 #endif
13934  }
13935 
13941  twobyte GetTextID() const { return (_TypeCast()->textIDKey); }
13942 
13950  {
13951  if (!GetBitFlag(_TypeCast()->flag, EXP_USEauxDATA)) return 0;
13952  if (!GetBitFlag(_TypeCast()->flag, EXP_TIME)) return 0;
13953  return _TypeCast()->value;
13954  }
13955 
13964  {
13965  if (!GetBitFlag(_TypeCast()->flag, EXP_USEauxDATA)) return 0;
13966  if (!GetBitFlag(_TypeCast()->flag, EXP_TIME)) return 0;
13967  return _TypeCast()->auxdata1;
13968  }
13969 
13976  twobyte GetPlaybackPass() const
13977  {
13978  return _TypeCast()->playPass;
13979  }
13980 
13987  void SetPlaybackPass(twobyte value)
13988  {
13989  _TypeCast()->playPass = value;
13990  }
13991 
13997 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
13999 #else
14000  int
14001 #endif
14003  {
14004  return (FCCategoryDef::VERT_ALIGNMENT) _TypeCast()->vertMeasExprAlign;
14005  }
14006 
14012  twobyte GetVerticalBaselineOffset() const { return _TypeCast()->noteYadjustBaseline; }
14013 
14019  twobyte GetVerticalEntryOffset() const { return _TypeCast()->noteYadjustEntry; }
14020 
14029 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14030  REHEARSALMARK_STYLES
14031 #else
14032  int
14033 #endif
14035  {
14036  return (REHEARSALMARK_STYLES) _TypeCast()->categorySpecific;
14037  }
14038 
14048 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14050 #else
14051  int
14052 #endif
14053  value
14054  )
14055  {
14056  _TypeCast()->categorySpecific = value;
14057  }
14058 
14064  bool GetBreakMMRest() const
14065  {
14066  return GetBitFlag(_TypeCast()->flag, 0x400);
14067  }
14068 
14074  void SetBreakMMRest(bool state)
14075  {
14076  Set16BitFlag(&_TypeCast()->flag, 0x400, state);
14077  }
14078 
14085  void SetCategoryID(twobyte ID)
14086  {
14087 #if FXT_VERSION >= FINALEVERSION_2014
14088  _TypeCast()->category &= 0xc000;
14089  _TypeCast()->category |= (ID & 0x3fff);
14090 #else
14091  _TypeCast()->measYadjust &= 0xc000;
14092  _TypeCast()->measYadjust |= (ID & 0x3fff);
14093 #endif
14094  }
14095 
14096 
14107  void SetUseCategoryFont(bool value);
14108 
14118  void SetUseCategoryPos(bool value);
14119 
14124  void SetPlaybackController(twobyte controllernumber, twobyte value)
14125  {
14126  Set16BitFlag(&_TypeCast()->flag, EXP_USEauxDATA, true);
14127  _TypeCast()->flag &= ~EXP_DYTYPEBITS;
14128  _TypeCast()->flag |= EXP_MIDI_CONTROLLER;
14129  _TypeCast()->value = value;
14130  _TypeCast()->auxdata1 = controllernumber;
14131  }
14132 
14137  void SetPlaybackTempo(TimeEdu32 eduduration, int tempo)
14138  {
14139  Set16BitFlag(&_TypeCast()->flag, EXP_USEauxDATA, true);
14140  _TypeCast()->flag &= ~EXP_DYTYPEBITS;
14141  _TypeCast()->flag |= EXP_TIME;
14142  _TypeCast()->value = tempo;
14143  _TypeCast()->auxdata1 = eduduration;
14144  }
14145 
14152 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14154 #else
14155  int
14156 #endif
14157  value)
14158  {
14159  _TypeCast()->vertMeasExprAlign = (twobyte) value;
14160  }
14161 
14167  void SetVerticalBaselineOffset(twobyte value) {
14168  _TypeCast()->noteYadjustBaseline = value;
14169  }
14170 
14176  void SetVerticalEntryOffset(twobyte value)
14177  {
14178  _TypeCast()->noteYadjustEntry = value;
14179  }
14180 
14188 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14190 #else
14191  int
14192 #endif
14194  {
14195 #if FXT_VERSION >= FINALEVERSION_2014
14196  return (FCCategoryDef::HORIZ_JUSTIFICATION) _TypeCast()->horzExprAlign;
14197 #else
14198  return (FCCategoryDef::HORIZ_JUSTIFICATION) _TypeCast()->measExprAlign;
14199 #endif
14200  }
14201 
14210 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14212 #else
14213  int
14214 #endif
14215  value)
14216  {
14217 #if FXT_VERSION >= FINALEVERSION_2014
14218  _TypeCast()->horzExprAlign = (twobyte) value;
14219 #else
14220  _TypeCast()->measExprAlign = (twobyte) value;
14221 #endif
14222  }
14223 
14229 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14231 #else
14232  int
14233 #endif
14235  {
14236 #if FXT_VERSION >= FINALEVERSION_2014
14237  return (FCCategoryDef::HORIZ_ALIGNMENT) _TypeCast()->horzMeasExprAlign;
14238 #else
14239  return (FCCategoryDef::HORIZ_ALIGNMENT) _TypeCast()->measAlign;
14240 #endif
14241  }
14242 
14249 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14251 #else
14252  int
14253 #endif
14254  value)
14255  {
14256 #if FXT_VERSION >= FINALEVERSION_2014
14257  _TypeCast()->horzMeasExprAlign = (twobyte) value;
14258 #else
14259  _TypeCast()->measAlign = (twobyte) value;
14260 #endif
14261  }
14262 
14263 
14269  twobyte GetHorizontalOffset() const
14270  {
14271  return _TypeCast()->measXadjust;
14272  }
14273 
14279  void SetHorizontalOffset(twobyte value)
14280  {
14281  _TypeCast()->measXadjust = value;
14282  }
14283 
14292  FCString* CreateTextString();
14293 
14294 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
14295 
14296  FCString* CreateTextString_GC();
14297 #endif
14298 
14307  FCEnclosure* CreateEnclosure();
14308 
14309 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
14310 
14311  FCEnclosure* CreateEnclosure_GC();
14312 #endif
14313 
14318  bool IsPlaybackTempo() const
14319  {
14320  return (_TypeCast()->flag & EXP_DYTYPEBITS) == EXP_TIME;
14321  }
14322 
14328  bool IsSmartMusicMarker() const
14329  {
14330  return (_TypeCast()->flag & EXP_SMARTMUSICMARKER) == EXP_SMARTMUSICMARKER;
14331  }
14332 
14337 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14338  SMARTMUSIC_MARKER_TYPES
14339 #else
14340  int
14341 #endif
14342  GetSmartMusicMarkerType() const;
14343 
14348  void SetSmartMusicMarkerType(
14349 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14351 #else
14352  int
14353 #endif
14354  value
14355  );
14356 
14362  bool IsAutoRehearsalMark() const
14363  {
14364  return (GetRehearsalMarkStyle() != REHMARKSTYLE_MANUAL);
14365  }
14366 
14380  bool MakeRehearsalMark(FCString* pString, int measure);
14381 
14389  bool SaveTextString(FCString* pString);
14390 
14398  bool SaveNewTextBlock(FCString* pString);
14399 
14405  bool DeleteTextBlock();
14406 
14417  bool AssignToCategory(FCCategoryDef* pDef);
14418 
14423  bool GetUseCategoryFont() const;
14424 
14429  bool GetUseCategoryPos() const;
14430 
14431 
14436  void SetDescription(FCString* pDescriptionString);
14437 
14442  void GetDescription(FCString* pDescriptionString);
14443 
14451  FCString* CreateDescription();
14452 
14453 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
14454 
14455  FCString* CreateDescription_GC();
14456 #endif
14457 
14458 
14459 #ifdef PDK_FRAMEWORK_DEBUG
14460  virtual void DebugDump()
14461  {
14463  FCString description;
14464  GetDescription(&description);
14465  DebugOutString("Description: ", description.GetCString());
14466  DebugOutDigit("Category ID: ", GetCategoryID());
14467  FCString* pString = CreateTextString();
14468  DebugOutString("Rawstring: ", pString->GetCString());
14469  delete pString;
14470  }
14471 #endif
14472 };
14473 
14474 
14475 
14484 {
14485 private:
14486 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
14487  bool _unicode;
14488 
14489  EDTShapeExpression2004* _TypeCast() const { return (EDTShapeExpression2004*)_datablock; }
14490 
14491  const char* _TypeCastTextPtr() const
14492  {
14493  if (_loadedsize <= 36) return NULL;
14494  char* pszReturn = (char*) _datablock;
14495  pszReturn += 36; /* 3 full incis */
14496  return pszReturn;
14497  }
14498 
14499  void _AllocateMemory(int size);
14500 
14501 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
14502 protected:
14503 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
14504 
14505  virtual EXTAG Tag() {
14506  /* DataSizeLoad() sets the custom tag!!! */
14507  return GetCustomTag() ? GetCustomTag() : ot_ShapeExpression2004;
14508  }
14509  virtual EVERSION EnigmaVersion() { return _unicode ? FINALEVERSION_2012 : FINALEVERSION_2010; }
14510 
14511  virtual int DataSizeLoad();
14512  virtual int DataSizeSave();
14513  virtual void* Allocate();
14514  virtual void Deallocate();
14515  virtual bool IsDynamicSize() { return true; }
14516 
14517 
14518  virtual __FCBaseData* CreateObject() { return new FCShapeExpressionDef(); }
14519 
14520 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
14521 public:
14522 
14523 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
14524 
14525  virtual bool Load(CMPER cmper);
14526 
14527  virtual bool Save();
14528 
14531  virtual bool SaveNew();
14532 
14533  virtual const char* ClassName() { return "FCShapeExpressionDef"; }
14534  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_SHAPEEXPRESSIONDEF; }
14535 
14542  void* _GetShapeExpression() { return Allocate(); }
14543 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
14544 
14550 
14552  virtual ~FCShapeExpressionDef();
14553 
14554 
14555 #ifdef PDK_FRAMEWORK_SHAPES
14556 
14557  virtual bool LoadFirst() { return Load(1); }
14558 
14560  virtual bool LoadNext()
14561  {
14562  if (!DataIsLoaded()) return false;
14563  return Load(GetItemNo() + 1);
14564  }
14565 
14573  FCShapeDef* CreateShapeDef();
14574 
14577  FCShapeDef* CreateShapeDef_GC();
14578 #endif
14579 
14586  {
14587  return GetBitFlag(_TypeCast()->flag, EXP_VALUEisEXEC);
14588  }
14589 
14590 
14596  {
14597  return !GetBitFlag(_TypeCast()->flag, SHAPE_EXP_LOCKDOWN);
14598  }
14599 
14604  bool GetNoPrint() const
14605  {
14606  return GetBitFlag(_TypeCast()->flag, SHAPE_EXP_NOPRINT);
14607  }
14608 
14613  bool GetBreakMMRest() const
14614  {
14615  return GetBitFlag(_TypeCast()->flag, SHAPE_EXP_BREAKMMREST);
14616  }
14617 
14625  {
14626  if (!GetUseExecutableShape()) return 0;
14627  return _TypeCast()->value;
14628  }
14629 
14634  twobyte GetID() const
14635  {
14636  return _TypeCast()->shapedef;
14637  }
14638 
14646 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14648 #else
14649  int
14650 #endif
14652  {
14653  twobyte setting; /* Shape expr def have another order than text expr defs */
14654 #if FXT_VERSION >= FINALEVERSION_2014
14655  setting = (FCCategoryDef::HORIZ_JUSTIFICATION) _TypeCast()->horzExprAlign;
14656 #else
14657  setting = (FCCategoryDef::HORIZ_JUSTIFICATION) _TypeCast()->measExprAlign;
14658 #endif
14659  switch (setting)
14660  {
14661  case 0:
14663  case 1:
14665  default:
14667  }
14668 
14669  }
14670 
14676 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14678 #else
14679  int
14680 #endif
14682  {
14683 #if FXT_VERSION >= FINALEVERSION_2014
14684  return (FCCategoryDef::HORIZ_ALIGNMENT) _TypeCast()->horzMeasExprAlign;
14685 #else
14686  return (FCCategoryDef::HORIZ_ALIGNMENT) _TypeCast()->measAlign;
14687 #endif
14688  }
14689 
14694  bool GetUseCategoryPos() const
14695  {
14696 #if FXT_VERSION >= FINALEVERSION_2014
14697  return GetBitFlag(_TypeCast()->category, USE_CATEGORY_POS_MASK);
14698 #elif FXT_VERSION >= FINALEVERSION_2012
14699  return GetBitFlag(_TypeCast()->measYadjust, USE_CATEGORY_POS_MASK);
14700 #else
14701  return GetBitFlag(_TypeCast()->measYadjust, 0x4000);
14702 #endif
14703  }
14704 
14710  twobyte GetHorizontalOffset() const
14711  {
14712  return _TypeCast()->measXadjust;
14713  }
14714 
14720  twobyte GetVerticalEntryOffset() const {
14721 #if FXT_VERSION < FINALEVERSION_2014
14722  return _TypeCast()->noteYadjustEntry;
14723 #else
14724  return _TypeCast()->yAdjustEntry;
14725 #endif
14726  }
14727 
14735 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14737 #else
14738  int
14739 #endif
14741  {
14742  return (FCCategoryDef::VERT_ALIGNMENT) _TypeCast()->vertMeasExprAlign;
14743  }
14744 
14750  twobyte GetVerticalBaselineOffset() const {
14751 #if FXT_VERSION < FINALEVERSION_2014
14752  return _TypeCast()->noteYadjustBaseline;
14753 #else
14754  return _TypeCast()->yAdjustBaseline;
14755 #endif
14756  }
14757 
14762  void GetDescription(FCString* pName);
14763 
14764 
14769  void SetID(twobyte shapeID)
14770  {
14771  _TypeCast()->shapedef = shapeID;
14772  }
14773 
14782  void SetExecutableShapeID(twobyte shapeID)
14783  {
14784  _TypeCast()->value = shapeID;
14785  SetUseExecutableShape((shapeID != 0) ? true : false);
14786  }
14787 
14794  void SetUseExecutableShape(bool state)
14795  {
14796  Set16BitFlag(&_TypeCast()->flag, EXP_VALUEisEXEC, state);
14797  }
14798 
14804  {
14805  Set16BitFlag(&_TypeCast()->flag, SHAPE_EXP_LOCKDOWN, !state);
14806  }
14807 
14812  void SetNoPrint(bool state)
14813  {
14814  Set16BitFlag(&_TypeCast()->flag, SHAPE_EXP_NOPRINT, state);
14815  }
14816 
14821  void SetBreakMMRest(bool state)
14822  {
14823  Set16BitFlag(&_TypeCast()->flag, SHAPE_EXP_BREAKMMREST, state);
14824  }
14825 
14826 
14833  twobyte GetCategoryID() const
14834  {
14835 #if FXT_VERSION >= FINALEVERSION_2014
14836  return (_TypeCast()->category & 0x3fff);
14837 #else
14838  return (_TypeCast()->measYadjust & 0x3fff);
14839 #endif
14840  }
14841 
14848  void SetCategoryID(twobyte ID)
14849  {
14850 #if FXT_VERSION >= FINALEVERSION_2014
14851  _TypeCast()->category &= 0xc000;
14852  _TypeCast()->category |= (ID & 0x3fff);
14853 #else
14854  _TypeCast()->measYadjust &= 0xc000;
14855  _TypeCast()->measYadjust |= (ID & 0x3fff);
14856 #endif
14857  }
14858 
14859 
14868 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14870 #else
14871  int
14872 #endif
14873  value)
14874  {
14875  /* Shape expr defs have the flags in another way than text expr defs... */
14876  twobyte setting = 0;
14877  switch (value)
14878  {
14880  setting = 0;
14881  break;
14883  setting = 1;
14884  break;
14886  setting = 2;
14887  break;
14888  }
14889 #if FXT_VERSION >= FINALEVERSION_2014
14890  _TypeCast()->horzExprAlign = (twobyte) setting;
14891 #else
14892  _TypeCast()->measExprAlign = (twobyte) setting;
14893 #endif
14894  }
14895 
14904 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14906 #else
14907  int
14908 #endif
14909  value)
14910  {
14911 #if FXT_VERSION >= FINALEVERSION_2014
14912  _TypeCast()->horzMeasExprAlign = (twobyte) value;
14913 #else
14914  _TypeCast()->measAlign = (twobyte) value;
14915 #endif
14916  }
14917 
14922  void SetUseCategoryPos(bool value)
14923  {
14924 #if FXT_VERSION >= FINALEVERSION_2014
14925  Set16BitFlag((FLAG_16*) &_TypeCast()->category, USE_CATEGORY_POS_MASK, value);
14926 #elif FXT_VERSION >= FINALEVERSION_2012
14927  Set16BitFlag((FLAG_16*) &_TypeCast()->measYadjust, USE_CATEGORY_POS_MASK, value);
14928 #else
14929  Set16BitFlag((FLAG_16*) &_TypeCast()->measYadjust, 0x4000, value);
14930 #endif
14931  }
14932 
14938  void SetHorizontalOffset(twobyte value)
14939  {
14940  _TypeCast()->measXadjust = value;
14941  }
14942 
14948  void SetVerticalEntryOffset(twobyte value)
14949  {
14950 #if FXT_VERSION < FINALEVERSION_2014
14951  _TypeCast()->noteYadjustEntry = value;
14952 #else
14953  _TypeCast()->yAdjustEntry = value;
14954 #endif
14955  }
14956 
14965 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
14967 #else
14968  int
14969 #endif
14970  value)
14971  {
14972  _TypeCast()->vertMeasExprAlign = (twobyte) value;
14973  }
14974 
14980  void SetVerticalBaselineOffset(twobyte value) {
14981 #if FXT_VERSION < FINALEVERSION_2014
14982  _TypeCast()->noteYadjustBaseline = value;
14983 #else
14984  _TypeCast()->yAdjustBaseline = value;
14985 #endif
14986  }
14987 
14992  void SetDescription(FCString* pName);
14993 
14994 #ifdef PDK_FRAMEWORK_SHAPES
14995 
15001  bool AssignShapeDef(FCShapeDef* pShapeDef)
15002  {
15003  if (!pShapeDef) return false;
15004  if (pShapeDef->GetItemNo() < 1) return false;
15005  _TypeCast()->shapedef = pShapeDef->GetItemNo();
15006  return true;
15007  }
15008 #endif
15009 
15016  FCString* CreateDescription();
15017 
15018 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
15019 
15020  FCString* CreateDescription_GC();
15021 #endif
15022 
15023 
15024 #ifdef PDK_FRAMEWORK_DEBUG
15025  virtual void DebugDump()
15026  {
15028  DebugOutDigit("Category ID: ", GetCategoryID());
15029  }
15030 #endif
15031 };
15032 
15033 
15040 {
15041 private:
15042 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
15043  EDTTextBlock2004 _textblock2004; /* Pre 25.4-version of the struct */
15044 #if FXT_VERSION >= FINALEVERSION_25_4
15045  EDTTextBlock25_4 _textblock25_4; /* 25.4 and above */
15046 #endif
15047 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
15048 
15049  /* If true, use the 25.4 struct. If false, use the old 2004 struct. */
15050  bool UseVersion25_4() const;
15051 
15052  /* Returns the pointer to the flag member in the struct. */
15053  const FLAG_16* _GetFlagPtr() const
15054  {
15055  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.flag; )
15056  return &_textblock2004.flag;
15057  }
15058 
15059  /* Returns the pointer to the textID member in the struct. */
15060  const eText* _GetTextIDPtr() const
15061  {
15062  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.textID; )
15063  return &_textblock2004.textID;
15064  }
15065 
15066  /* Returns the pointer to the shapeID member in the struct. */
15067  const eShape* _GetShapeIDPtr() const
15068  {
15069  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.shapeID; )
15070  return &_textblock2004.shapeID;
15071  }
15072 
15073  /* Returns the pointer to the lineSpacing member in the struct. */
15074  const twobyte* _GetLineSpacingPtr() const
15075  {
15076  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.lineSpacing; )
15077  return &_textblock2004.lineSpacing;
15078  }
15079 
15080  /* Returns the pointer to the textTag member in the struct. */
15081  const ETAG* _GetTextTagPtr() const
15082  {
15083  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.textTag; )
15084  return &_textblock2004.textTag;
15085  }
15086 
15087  /* Returns the pointer to the width member in the struct. */
15088  const Evpu16* _GetWidthPtr() const
15089  {
15090  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.width; )
15091  return &_textblock2004.width;
15092  }
15093 
15094  /* Returns the pointer to the height member in the struct. */
15095  const Evpu16* _GetHeightPtr() const
15096  {
15097  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.height; )
15098  return &_textblock2004.height;
15099  }
15100 
15101  /* Returns the pointer to the xadd member in the struct. */
15102  const Evpu16* _GetXaddPtr() const
15103  {
15104  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.xadd; )
15105  return &_textblock2004.xadd;
15106  }
15107 
15108  /* Returns the pointer to the yadd member in the struct. */
15109  const Evpu16* _GetYaddPtr() const
15110  {
15111  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.yadd; )
15112  return &_textblock2004.yadd;
15113  }
15114 
15115  /* Returns the pointer to the insethi member in the struct. */
15116  const EVPUFixedShort* _GetInsetHiPtr() const
15117  {
15118  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.insethi; )
15119  return &_textblock2004.insethi;
15120  }
15121 
15122  /* Returns the pointer to the insetlo member in the struct. */
15123  const EVPUFixedShort* _GetInsetLoPtr() const
15124  {
15125  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.insetlo; )
15126  return &_textblock2004.insetlo;
15127  }
15128 
15129  /* Returns the pointer to the stdlinelo member in the struct. */
15130  const EVPUFixedShort* _GetStdLineLoPtr() const
15131  {
15132  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.stdlinelo; )
15133  return &_textblock2004.stdlinelo;
15134  }
15135 
15136  /* Returns the pointer to the stdlinehi member in the struct. */
15137  const EVPUFixedShort* _GetStdLineHiPtr() const
15138  {
15139  FIN25_4_CODE(if (UseVersion25_4()) return &_textblock25_4.stdlinehi; )
15140  return &_textblock2004.stdlinehi;
15141  }
15142 protected:
15143 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
15144 
15145  virtual EXTAG Tag() { return ot_TextBlock; }
15146 
15147  virtual int DataSizeLoad() {
15148  FIN25_4_CODE(if (UseVersion25_4()) return sizeof(EDTTextBlock25_4);)
15149  return sizeof(EDTTextBlock2004);
15150  }
15151  virtual void* Allocate()
15152  {
15153  FIN25_4_CODE( if (UseVersion25_4()) return (void*) &_textblock25_4; )
15154  return (void*) &_textblock2004;
15155  }
15156 
15161  virtual void CloneMemoryFrom(__FCBaseData* pSource)
15162  {
15163  void* pTextBlock = Allocate();
15164  memcpy(pTextBlock, ((FCTextBlock*)pSource)->_GetTextBlock(), DataSizeLoad());
15165  _datablock = pTextBlock;
15167  }
15168 
15169  virtual __FCBaseData* CreateObject() { return new FCTextBlock(); }
15170 
15171 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
15172 public:
15173 
15176  {
15177  TEXTJUSTIFY_LEFT = TEXT_JUSTIFY_LEFT,
15178  TEXTJUSTIFY_RIGHT = TEXT_JUSTIFY_RIGHT,
15179  TEXTJUSTIFY_CENTER = TEXT_JUSTIFY_CENTER,
15180  TEXTJUSTIFY_FULL = TEXT_JUSTIFY_FULL,
15181  TEXTJUSTIFY_FORCED_FULL = TEXT_JUSTIFY_FORCED_FULL
15182  };
15183 
15184 
15185  virtual const char* ClassName() { return "FCTextBlock"; }
15186  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_TEXTBLOCK; }
15187 
15188 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
15189 
15195  void* _GetTextBlock() { return Allocate(); }
15196 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
15197 
15200  {
15201  void* pTextBlock = Allocate();
15202  int size = DataSizeLoad();
15203  memset(pTextBlock, 0, size);
15204  Set16BitFlag( (FLAG_16*)_GetFlagPtr(),
15205  TEXTBLOCK_NEWPOS | TEXTBLOCK_SHOWMAINSHAPE |
15206  TEXTBLOCK_WORDWRAP | TEXTBLOCK_LINESPACINGISPERCENT,
15207  true);
15208  SetLineSpacing(100);
15209  SetRawText(0, LO_UTWOBYTE(tx_TextBlock)); /* Default to tx_TextBlock */
15210  _datablock = pTextBlock;
15211  _loadedsize = size;
15212  }
15213 
15218  twobyte GetRawTextID() const { return *_GetTextIDPtr(); }
15219 
15223  void _SetRawTextID(twobyte therawtextid) { *(eText*)_GetTextIDPtr() = therawtextid; }
15224 
15227  {
15228  EXTAG rawtextextag = tx_TextBlock;
15229  rawtextextag &= 0xffff0000;
15230  rawtextextag |= *_GetTextTagPtr();
15231  return rawtextextag;
15232  }
15233 
15240  twobyte GetShapeID() const { return *_GetShapeIDPtr(); }
15241 
15249  FCString* CreateRawTextString();
15250 
15251 #if PDK_FRAMEWORK_LUAFRIENDLY
15252 
15253  FCString* CreateRawTextString_GC();
15254 #endif
15255 
15265  bool SaveRawTextString(FCString* pString);
15266 
15275  bool SaveNewRawTextString(FCString* pString);
15276 
15281  void SetShapeID(twobyte shapeID) { *(eShape*)_GetShapeIDPtr() = shapeID; }
15282 
15285  void SetRawText(twobyte theid, ETAG tag = LO_UTWOBYTE(tx_TextBlock))
15286  {
15287  *(eText*)_GetTextIDPtr() = theid;
15288  *(ETAG*)_GetTextTagPtr() = tag;
15289  }
15290 
15297  void SetJustification(FLAG_16 justification)
15298  {
15299  FLAG_16* pFlag = (FLAG_16*) _GetFlagPtr();
15300  *pFlag &= ~TEXTBLOCK_JUSTIBITS;
15301  *pFlag |= (justification % TEXTBLOCK_JUSTIBITS);
15302  }
15303 
15305  virtual bool DeepDeleteData()
15306  {
15307  FCRawText rawtext;
15308  rawtext.SetCustomTag(GetRawTextExtag());
15309  rawtext.Load(GetRawTextID());
15310  rawtext.DeleteData();
15311  return DeleteData();
15312  }
15313 
15318  twobyte GetLineSpacing() const { return *_GetLineSpacingPtr(); }
15319 
15320 
15325  void SetLineSpacing(twobyte linespacing) { *(twobyte*)_GetLineSpacingPtr() = linespacing; }
15326 
15327 
15334  FLAG_16 GetJustification() const
15335  {
15336  return (*_GetFlagPtr() & TEXTBLOCK_JUSTIBITS);
15337  }
15338 
15346  bool GetFrameReference() const
15347  {
15348  return GetBitFlag(*_GetFlagPtr(), TEXTBLOCK_NEWPOS);
15349  }
15350 
15358  {
15359  return GetBitFlag(*_GetFlagPtr(), TEXTBLOCK_LINESPACINGISPERCENT);
15360  }
15361 
15368  bool GetWordWrap() const
15369  {
15370  return GetBitFlag(*_GetFlagPtr(), TEXTBLOCK_WORDWRAP);
15371  }
15372 
15378  bool GetExpandSingleWord() const
15379  {
15380  return !GetBitFlag(*_GetFlagPtr(), TEXTBLOCK_NOEXPANDSINGLEWORD);
15381  }
15382 
15391  bool GetRoundedCorners() const
15392  {
15393  FIN25_4_CODE( if (UseVersion25_4()) return GetBitFlag(*_GetFlagPtr(), TEXTBLOCK_ROUND_CORNERS); )
15394  return false;
15395  }
15396 
15406  Efix32 GetRoundedCornerRadius() const
15407  {
15408  FIN25_4_CODE( if (UseVersion25_4()) return _textblock25_4.m_cornerRadius; )
15409  return 0;
15410  }
15411 
15412 
15420  void SetFrameReference(bool state)
15421  {
15422  Set16BitFlag((FLAG_16*) _GetFlagPtr(), TEXTBLOCK_NEWPOS, state);
15423  }
15424 
15431  void SetLineSpacingIsPercent(bool state)
15432  {
15433  Set16BitFlag((FLAG_16*) _GetFlagPtr(), TEXTBLOCK_LINESPACINGISPERCENT, state);
15434  }
15435 
15442  void SetWordWrap(bool state)
15443  {
15444  Set16BitFlag((FLAG_16*) _GetFlagPtr(), TEXTBLOCK_WORDWRAP, state);
15445  }
15446 
15452  void SetExpandSingleWord(bool state)
15453  {
15454  Set16BitFlag((FLAG_16*) _GetFlagPtr(), TEXTBLOCK_NOEXPANDSINGLEWORD, !state);
15455  }
15456 
15465  void SetRoundedCorners(bool state)
15466  {
15467  FIN25_4_CODE( if (UseVersion25_4()) Set16BitFlag((FLAG_16*) _GetFlagPtr(), TEXTBLOCK_ROUND_CORNERS, state); )
15468  }
15469 
15479  void SetRoundedCornerRadius(Efix32 radius)
15480  {
15481  FIN25_4_CODE( if (UseVersion25_4()) _textblock25_4.m_cornerRadius = radius; )
15482  }
15483 
15488  void SetLineWidth(int value)
15489  {
15490  *(EVPUFixedShort*)_GetStdLineLoPtr() = LOWORD(value);
15491  *(EVPUFixedShort*)_GetStdLineHiPtr() = HIWORD(value);
15492  }
15493 
15498  void SetLineInset(int value)
15499  {
15500  *(EVPUFixedShort*)_GetInsetLoPtr() = LOWORD(value);
15501  *(EVPUFixedShort*)_GetInsetHiPtr() = HIWORD(value);
15502  }
15503 
15508  void SetHorizontalTextOffset(int value)
15509  {
15510  *(Evpu16*) _GetXaddPtr() = value;
15511  }
15512 
15517  void SetVerticalTextOffset(int value)
15518  {
15519  *(Evpu16*) _GetYaddPtr() = value;
15520  }
15521 
15526  void SetShowBorders(bool state)
15527  {
15528  Set16BitFlag((FLAG_16*)_GetFlagPtr(), TEXTBLOCK_SHOWMAINSHAPE, state);
15529  }
15530 
15539  void SetWidth(Evpu16 width)
15540  {
15541  *(Evpu16*)_GetWidthPtr() = width;
15542  }
15543 
15552  void SetHeight(Evpu16 height)
15553  {
15554  *(Evpu16*)_GetHeightPtr() = height;
15555  }
15556 
15557 
15562  int GetLineWidth() const
15563  {
15564  return MAKELONG(*_GetStdLineLoPtr(), *_GetStdLineHiPtr());
15565  }
15566 
15571  int GetLineInset() const
15572  {
15573  return MAKELONG(*_GetInsetLoPtr(), *_GetInsetHiPtr());
15574  }
15575 
15581  {
15582  return *_GetXaddPtr();
15583  }
15584 
15590  {
15591  return *_GetYaddPtr();
15592  }
15593 
15598  bool GetShowBorders() const
15599  {
15600  return GetBitFlag(*_GetFlagPtr(), TEXTBLOCK_SHOWMAINSHAPE);
15601  }
15602 
15611  Evpu16 GetWidth() const
15612  {
15613  return *_GetWidthPtr();
15614  }
15615 
15624  Evpu16 GetHeight() const
15625  {
15626  return *_GetHeightPtr();
15627  }
15628 
15636  {
15637  return (GetWidth() == 0);
15638  }
15639 
15647  bool GetExpandVertically() const
15648  {
15649  return (GetHeight() == 0);
15650  }
15651 
15652 #ifdef PDK_FRAMEWORK_DEBUG
15653  virtual void DebugDump()
15654  {
15656  DebugOutDigit("Raw text ID: ", GetRawTextID());
15657  DebugOutHex("Text tag (hex): ", *_GetTextTagPtr());
15658  DebugOutHex("flag (hex): ", *_GetFlagPtr());
15659  }
15660 #endif
15661 };
15662 
15663 
15675 {
15676 private:
15677 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
15678  EDTPageText _pagetext;
15679 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
15680 protected:
15681 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
15682 
15683  virtual EXTAG Tag() { return ot_PageText; }
15684  virtual int DataSizeLoad() { return sizeof(EDTPageText); }
15685  virtual void* Allocate() { return (void*) &_pagetext; }
15686 
15691  virtual void CloneMemoryFrom(__FCBaseData* pSource)
15692  {
15693  memcpy(&_pagetext, ((FCPageText*)pSource)->_GetPageText(), sizeof(_pagetext));
15694  _datablock = &_pagetext;
15695  _loadedsize = sizeof(_pagetext);
15696  }
15697 
15698  virtual __FCBaseData* CreateObject()
15699  { return new FCPageText(); }
15700 
15701 
15703  virtual bool LoadFirst()
15704  {
15705  SetCmperAndInci(0, 0);
15706  if (Load(0, 0)) return true;
15707  return LoadNext();
15708  }
15709 
15710 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
15711 public:
15712 
15718  {
15720  TEXTHORIZALIGN_LEFT = TEXT_HALIGN_LEFT,
15722  TEXTHORIZALIGN_RIGHT = TEXT_HALIGN_RIGHT,
15724  TEXTHORIZALIGN_CENTER = TEXT_HALIGN_CENTER
15725  };
15726 
15732  {
15734  TEXTVERTALIGN_TOP = TEXT_VALIGN_TOP,
15736  TEXTVERTALIGN_BOTTOM = TEXT_VALIGN_BOTTOM,
15738  TEXTVERTALIGN_CENTER = TEXT_VALIGN_CENTER
15739  };
15740 
15746  {
15747  TEXTASSIGN_ALL = PAGETEXT_ASSIGN_ALL,
15748  TEXTASSIGN_ODD = PAGETEXT_ASSIGN_ODD,
15749  TEXTASSIGN_EVEN = PAGETEXT_ASSIGN_EVEN
15750  };
15751 
15752  virtual const char* ClassName() { return "FCPageText"; }
15753  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_PAGETEXT; }
15754 
15755 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
15756 
15762  void* _GetPageText() { return Allocate(); }
15763 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
15764 
15770  {
15771  memset(&_pagetext, 0, sizeof(_pagetext));
15772  _datablock = &_pagetext;
15773  _loadedsize = sizeof(_pagetext);
15774  }
15775 
15785  {
15786  FCTextBlock textblock;
15787  textblock.Load(GetTextBlockID());
15788  return textblock.CreateRawTextString();
15789  }
15790 
15791 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
15792 
15793  FCString* CreateTextString_GC();
15794 #endif
15795 
15804  FCTextBlock* CreateTextBlock();
15805 
15806 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
15807 
15808  FCTextBlock* CreateTextBlock_GC();
15809 #endif
15810 
15817  twobyte GetFirstPage() const
15818  {
15819  return _pagetext.startPage;
15820  }
15821 
15828  twobyte GetLastPage() const
15829  {
15830  return _pagetext.endPage;
15831  }
15832 
15839 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
15840  TEXT_HORIZONTAL_ALIGN
15841 #else
15842  int
15843 #endif
15845  {
15846  return (TEXT_HORIZONTAL_ALIGN) ((_pagetext.flag & PAGETEXT_HPOS_LP_BITS) >> 2);
15847  }
15848 
15854 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
15855  TEXT_VERTICAL_ALIGN
15856 #else
15857  int
15858 #endif
15860  {
15861  return (TEXT_VERTICAL_ALIGN) ((_pagetext.flag & PAGETEXT_VPOS_BITS) >> 8);
15862  }
15863 
15870 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
15871  TEXT_HORIZONTAL_ALIGN
15872 #else
15873  int
15874 #endif
15876  {
15877  return (TEXT_HORIZONTAL_ALIGN) ((_pagetext.flag & PAGETEXT_HPOS_RP_BITS) >> 4);
15878  }
15879 
15884 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
15885  TEXT_ASSIGNMENT
15886 #else
15887  int
15888 #endif
15890  {
15891  return (TEXT_ASSIGNMENT) (_pagetext.flag & PAGETEXT_OE_BITS);
15892  }
15893 
15901  bool GetPageEdgeRef() const
15902  {
15903  return GetBitFlag(_pagetext.flag, PAGETEXT_HPOS_PAGE_EDGE);
15904  }
15905 
15912  bool GetFrameEdgeRef() const
15913  {
15914  FCTextBlock textblock;
15915  if (!textblock.Load(GetTextBlockID())) return false;
15916  return textblock.GetFrameReference();
15917  }
15918 
15919 
15924  twobyte GetHorizontalPos() const
15925  {
15926  return _pagetext.xdisp;
15927  }
15928 
15934  {
15935  return _pagetext.rightpgxdisp;
15936  }
15937 
15942  twobyte GetVerticalPos() const
15943  {
15944  return _pagetext.ydisp;
15945  }
15946 
15951  twobyte GetVerticalPosRightPage() const
15952  {
15953  return _pagetext.rightpgydisp;
15954  }
15955 
15961  bool GetVisible() const
15962  {
15963  return !GetBitFlag(_pagetext.flag, (PAGETEXT_ANNOTATION));
15964  }
15965 
15971  {
15972  return GetBitFlag(_pagetext.flag, PAGETEXT_INDRP_POS);
15973  }
15974 
15980  CMPER GetTextBlockID() const
15981  {
15982  return _pagetext.block;
15983  }
15984 
15989  void _SetTextBlockID(CMPER textblockid)
15990  {
15991  _pagetext.block = textblockid;
15992  }
15993 
16001  CMPER GetStringID() const;
16002 
16009  bool SaveNewTextBlock(FCString* pString);
16010 
16016  bool SaveTextString(FCString* pString);
16017 
16028 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
16030 #else
16031  FLAG_16
16032 #endif
16033  alignment
16034  )
16035  {
16036  _pagetext.flag &= ~PAGETEXT_HPOS_LP_BITS;
16037  _pagetext.flag |= ((alignment << 2) & PAGETEXT_HPOS_LP_BITS);
16038  if (!GetIndependentRightPage()) SetHorizontalAlignmentRightPage(alignment);
16039  }
16040 
16048 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
16050 #else
16051  FLAG_16
16052 #endif
16053  alignment)
16054  {
16055  _pagetext.flag &= ~PAGETEXT_HPOS_RP_BITS;
16056  _pagetext.flag |= ((alignment << 4) & PAGETEXT_HPOS_RP_BITS);
16057  }
16058 
16065 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
16067 #else
16068  int
16069 #endif
16070  alignment
16071  )
16072  {
16073  _pagetext.flag &= ~PAGETEXT_VPOS_BITS;
16074  _pagetext.flag |= ((alignment << 8) & PAGETEXT_VPOS_BITS);
16075  }
16076 
16082 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
16084 #else
16085  int
16086 #endif
16087  assign
16088  )
16089  {
16090  _pagetext.flag &= ~PAGETEXT_OE_BITS;
16091  _pagetext.flag |= (assign & PAGETEXT_OE_BITS);
16092  }
16093 
16101  void SetFirstPage(ePage page)
16102  {
16103  _pagetext.startPage = page;
16104  }
16105 
16113  void SetLastPage(ePage page)
16114  {
16115  _pagetext.endPage = page;
16116  }
16117 
16125  void SetHorizontalPos(twobyte value)
16126  {
16127  _pagetext.xdisp = value;
16128  if (!GetIndependentRightPage()) SetHorizontalPosRightPage(value);
16129  }
16130 
16135  void SetHorizontalPosRightPage(twobyte value)
16136  {
16137  _pagetext.rightpgxdisp = value;
16138  }
16139 
16148  void SetVerticalPos(twobyte value)
16149  {
16150  _pagetext.ydisp = value;
16151  if (!GetIndependentRightPage()) SetVerticalPosRightPage(value);
16152  }
16153 
16158  void SetVerticalPosRightPage(twobyte value)
16159  {
16160  _pagetext.rightpgydisp = value;
16161  }
16162 
16168  void SetVisible(bool visible)
16169  {
16170  Set16BitFlag(&_pagetext.flag, PAGETEXT_ANNOTATION, !visible);
16171  }
16172 
16177  void SetIndependentRightPage(bool state)
16178  {
16179  Set16BitFlag(&_pagetext.flag, PAGETEXT_INDRP_POS, state);
16180  }
16181 
16193  void SetPageEdgeRef(bool state)
16194  {
16195  Set16BitFlag(&_pagetext.flag, PAGETEXT_HPOS_PAGE_EDGE, state);
16196  Set16BitFlag(&_pagetext.flag, PAGETEXT_VPOS_PAGE_EDGE, state);
16197  }
16198 
16205  void SetFrameEdgeRef(bool state)
16206  {
16207  FCTextBlock textblock;
16208  if (!textblock.Load(GetTextBlockID())) return;
16209  textblock.SetFrameReference(state);
16210  }
16211 
16213  virtual bool DeepDeleteData()
16214  {
16215  FCTextBlock textblock;
16216  textblock.Load(GetTextBlockID());
16217  textblock.DeepDeleteData();
16218  return DeleteData();
16219  }
16220 
16221 #ifdef PDK_FRAMEWORK_DEBUG
16222  virtual void DebugDump()
16223  {
16225  DebugOutDigit("First page: ", GetFirstPage());
16226  DebugOutDigit("Last page: ", GetLastPage());
16227  DebugOutHex("Flag (hex): ", _pagetext.flag);
16228  }
16229 #endif
16230 };
16231 
16232 
16233 
16234 
16235 
16252 {
16253  private:
16254 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
16255  EDTSeparatePlacement _separateplacement;
16256 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
16257 protected:
16258 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
16259 
16260  virtual EXTAG Tag() { return GetCustomTag() ? GetCustomTag() : ot_SeparateBackwardRepeatPlacement; }
16261  virtual int DataSizeLoad() { return sizeof(EDTSeparatePlacement); }
16262  virtual void* Allocate() { return (void*) &_separateplacement; }
16263 
16268  virtual void CloneMemoryFrom(__FCBaseData* pSource)
16269  {
16270  memcpy(&_separateplacement, ((FCSeparatePlacement*)pSource)->_GetSeparatePlacement(), sizeof(_separateplacement));
16271  _datablock = &_separateplacement;
16272  _loadedsize = sizeof(_separateplacement);
16273  }
16274 
16275  virtual __FCBaseData* CreateObject() { return new FCSeparatePlacement(); }
16276 
16277 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
16278 public:
16282  {
16284  SEPARMODE_BACKWARDREPEAT = 0,
16285 
16287  SEPARMODE_TEXTREPEAT = 1,
16288 
16290  SEPARMODE_ENDINGREPEAT = 2,
16291 
16293  SEPARMODE_ENDINGREPEATTEXT = 3
16294  };
16295 
16296  virtual const char* ClassName() { return "FCSeparatePlacement"; }
16297  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_SEPARATEPLACEMENT; }
16298 
16299 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
16300 
16306  void* _GetSeparatePlacement() { return Allocate(); }
16307 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
16308 
16315  {
16316  memset(&_separateplacement, 0, sizeof(_separateplacement));
16317  _datablock = &_separateplacement;
16318  _loadedsize = sizeof(_separateplacement);
16319  }
16320 
16321 
16331  void SetMode(
16332 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
16334 #else
16335  int
16336 #endif
16337  mode
16338  )
16339  {
16340  switch (mode)
16341  {
16343  SetCustomTag(MAKEEXTAG(edOther,'R','I'));
16344  break;
16346  SetCustomTag(ot_SeparateBackwardRepeatPlacement);
16347  break;
16349  SetCustomTag(ot_SeparateEndingRepeatPlacement);
16350  break;
16352  SetCustomTag(ot_SeparateEndingRepeatTextPlacement);
16353  break;
16354  }
16355  }
16356 
16361  virtual eStaff GetStaff() const { return _separateplacement.instno; }
16362 
16364  virtual bool HasStaffValue() { return true; }
16365 
16372  twobyte GetMeasure() const { return _separateplacement.measure; }
16373 
16383  Evpu16 GetHorizontalOffset1() const { return _separateplacement.x1add; }
16384 
16394  Evpu16 GetVerticalOffset1() const { return _separateplacement.y1add; }
16395 
16404  Evpu16 GetHorizontalOffset2() const { return _separateplacement.x2add; }
16405 
16414  Evpu16 GetVerticalOffset2() const { return _separateplacement.y2add; }
16415 
16422  void SetStaff(eStaff staff) { _separateplacement.instno = staff; }
16423 
16430  void SetMeasure(twobyte meas) { _separateplacement.measure = meas; }
16431 
16441  void SetHorizontalOffset1(Evpu16 value) { _separateplacement.x1add = value; }
16442 
16452  void SetVerticalOffset1(Evpu16 value) { _separateplacement.y1add = value; }
16453 
16462  void SetHorizontalOffset2(Evpu16 value) { _separateplacement.x2add = value; }
16463 
16472  void SetVerticalOffset2(Evpu16 value) { _separateplacement.y2add = value; }
16473 };
16474 
16475 
16476 class FCCell;
16477 
16484 {
16485 private:
16486 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
16487  EDTScoreExpression2009 _expression;
16488 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
16489 protected:
16490 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
16491 
16492  virtual int DataSizeLoad() { return sizeof(EDTScoreExpression2009); }
16493  virtual void* Allocate() { return (void*) &_expression; }
16494 
16499  virtual void CloneMemoryFrom(__FCBaseData* pSource)
16500  {
16501  memcpy(&_expression, ((FCExpression*)pSource)->_GetExpression(), sizeof(_expression));
16502  _datablock = &_expression;
16503  _loadedsize = sizeof(_expression);
16504  }
16505 
16506  virtual __FCBaseData* CreateObject() { return new FCExpression(); }
16507 
16508 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
16509 public:
16510 
16516  {
16518  EXPRPLAYSTART_POSINMEASURE = 0,
16519 
16521  EXPRPLAYSTART_ALIGNMENTPOINT = 1,
16522 
16524  EXPRPLAYSTART_BEGINNINGOFMEASURE = 2
16525  };
16526 
16527 
16528  virtual const char* ClassName() { return "FCExpression"; }
16529  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_EXPRESSION; }
16530 
16531  virtual EXTAG Tag() { return ot_ScoreExpression2009; } /* Tag is required to be public for some plug-ins */
16532 
16533 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
16534 
16540  void* _GetExpression() { return Allocate(); }
16541 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
16542 
16548  {
16549  memset(&_expression, 0, sizeof(_expression));
16550  _datablock = &_expression;
16551  _loadedsize = sizeof(_expression);
16552  }
16553 
16554 
16561  bool AssignTextExpressionDef(FCTextExpressionDef* pDef);
16562 
16569  bool AssignShapeExpressionDef(FCShapeExpressionDef* pDef);
16570 
16578  bool CalcMetricPos(FCPoint* pPoint);
16579 
16584  void ResetPos()
16585  {
16586  SetHorizontalPos(0);
16587  SetVerticalPos(0);
16588  }
16589 
16598  virtual twobyte GetStaff() const { return _expression.staffAssign; }
16599 
16601  virtual bool HasStaffValue() { return true; }
16602 
16609  virtual eMeas GetMeasure() const { return _dataid.other.cmper; }
16610 
16617  twobyte GetLayerAssignment() const { return _expression.flag & 0x7; }
16618 
16631  {
16632  return (_expression.flag & 0x70) >> 4;
16633  }
16634 
16641 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
16642  EXPRESSION_PLAYBACK_STARTPOINTS
16643 #else
16644  int
16645 #endif
16647  {
16648  if (GetBitFlag(_expression.flag, 0x0400)) return EXPRPLAYSTART_POSINMEASURE;
16649  if (GetBitFlag(_expression.flag, 0x0200)) return EXPRPLAYSTART_ALIGNMENTPOINT;
16650  return EXPRPLAYSTART_BEGINNINGOFMEASURE;
16651  }
16652 
16657  bool GetScoreAssignment() const
16658  {
16659  return !GetBitFlag(_expression.flag, 0x1000);
16660  }
16661 
16667  bool GetPartAssignment() const
16668  {
16669  return !GetBitFlag(_expression.flag, 0x0800);
16670  }
16671 
16680  twobyte GetStaffListID() const { return _expression.staffList; }
16681 
16687  twobyte GetStaffGroupID() const { return _expression.staffGroup; }
16688 
16695  twobyte GetRehearsalMarkOffset() const { return _expression.rehearsalMarkOffset; }
16696 
16702  bool GetVisible() const { return !GetBitFlag(_expression.flag, 0x4000); }
16703 
16709  bool GetScaleWithEntry() const { return !GetBitFlag(_expression.flag, 0x0100); }
16710 
16715  TimeEdu32 GetMeasurePos() const { return 0x10000 * _expression.horzEDUOffHi + _expression.horzEDUOffLo; }
16716 
16724  twobyte GetHorizontalPos() const { return _expression.horzEVPUOff; }
16725 
16732  twobyte GetVerticalPos() const { return _expression.vertOff; }
16733 
16738  twobyte GetGraceNoteIndex() const { return _expression.graceNoteIndex; }
16739 
16746  bool IsVisibleOnStaff(twobyte staff);
16747 
16756  FCShapeExpressionDef* CreateShapeExpressionDef();
16757 
16758 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
16759 
16760  FCShapeExpressionDef* CreateShapeExpressionDef_GC();
16761 #endif
16762 
16771  FCTextExpressionDef* CreateTextExpressionDef();
16772 
16773 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
16774 
16775  FCTextExpressionDef* CreateTextExpressionDef_GC();
16776 #endif
16777 
16784  bool IsShape() const { return GetBitFlag(_expression.flag, SCOREEXP_SHAPE_OBJECT); }
16785 
16793  bool IsSingleStaffAssigned() { return (GetStaff() > 0); }
16794 
16800  bool GetShape() const { return GetBitFlag(_expression.flag, SCOREEXP_SHAPE_OBJECT); }
16801 
16812  twobyte GetID() const { return _expression.dynumber; }
16813 
16819  bool SaveNewToCell(FCCell* pCell);
16820 
16829  void SetID(twobyte id) { _expression.dynumber = id; }
16830 
16837  void SetLayerAssignment(twobyte layer)
16838  {
16839  layer &= 0x07;
16840  _expression.flag &= ~0x07;
16841  _expression.flag |= layer;
16842  }
16843 
16848  void SetScoreAssignment(bool value)
16849  {
16850  Set16BitFlag(&_expression.flag, 0x1000, !value);
16851  }
16852 
16857  void SetPartAssignment(bool value)
16858  {
16859  Set16BitFlag(&_expression.flag, 0x0800, !value);
16860  }
16861 
16872  void SetPlaybackLayerAssignment(twobyte layer)
16873  {
16874  layer &= 0x07;
16875  layer <<= 4;
16876  _expression.flag &= ~0x70;
16877  _expression.flag |= layer;
16878  }
16879 
16887 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
16889 #else
16890  int
16891 #endif
16892  value
16893  )
16894  {
16895  switch (value)
16896  {
16897  case EXPRPLAYSTART_POSINMEASURE:
16898  Set16BitFlag(&_expression.flag, 0x0400, true);
16899  Set16BitFlag(&_expression.flag, 0x0200, false);
16900  break;
16901  case EXPRPLAYSTART_ALIGNMENTPOINT:
16902  Set16BitFlag(&_expression.flag, 0x0400, false);
16903  Set16BitFlag(&_expression.flag, 0x0200, true);
16904  break;
16905  default: /* EXPRPLAYSTART_BEGINNINGOFMEASURE */
16906  Set16BitFlag(&_expression.flag, 0x0400, false);
16907  Set16BitFlag(&_expression.flag, 0x0200, false);
16908  break;
16909  }
16910  }
16911 
16918  void SetStaff(twobyte staffno) { _expression.staffAssign = staffno; }
16919 
16928  void SetShape(bool isshape) { Set16BitFlag(&_expression.flag, SCOREEXP_SHAPE_OBJECT, isshape); }
16929 
16936  void SetStaffListID(twobyte ID) { _expression.staffList = ID; }
16937 
16943  void SetStaffGroupID(twobyte value) { _expression.staffGroup = value; }
16944 
16951  void SetRehearsalMarkOffset(twobyte value) { _expression.rehearsalMarkOffset = value; }
16952 
16958  void SetVisible(bool state) { Set16BitFlag(&_expression.flag, 0x4000, !state); }
16959 
16964  void SetScaleWithEntry(bool state) { Set16BitFlag(&_expression.flag, 0x0100, !state); }
16965 
16970  void SetMeasurePos(TimeEdu32 value)
16971  {
16972  _expression.horzEDUOffHi = (value & 0xffff0000) / 0x10000;
16973  _expression.horzEDUOffLo = value & 0x0000ffff;
16974  }
16975 
16982  void SetHorizontalPos(twobyte value) { _expression.horzEVPUOff = value; }
16983 
16990  void SetVerticalPos(twobyte value) { _expression.vertOff = value; }
16991 
16996  void SetGraceNoteIndex(twobyte index) {
16997  if (index < 0) return; /* Negative indexes aren't allowed */
16998  _expression.graceNoteIndex = index;
16999  }
17000 
17001 #ifdef PDK_FRAMEWORK_DEBUG
17002  virtual void DebugDump()
17003  {
17005  DebugOutBlock(&_expression, 0, sizeof(_expression));
17006  DebugOutHex("Flag bits (hex): ", _expression.flag);
17007  DebugOutDigit("Attached to Staff: ", GetStaff());
17008  DebugOutDigit("Staff List ID: ", GetStaffListID());
17009  DebugOutDigit("Rehearsal Mark Offset: ", GetRehearsalMarkOffset());
17010  DebugOutDigit("Measure Pos (EDUs): ", GetMeasurePos());
17011  DebugOutDigit("Horizontal Pos (EVPUs): ", GetHorizontalPos());
17012  DebugOutDigit("Vertical Pos: ", GetVerticalPos());
17013  }
17014 #endif
17015 };
17016 
17017 
17018 /* Macro for accessing same-name fields in different versions
17019  of the Staff Style Def struct: */
17020 #define __STAFFSTYLEDEF_RETURN_FIELD_PTR(field) \
17021 switch (_VersionToUse()) \
17022 { \
17023  case FINALEVERSION_2014: \
17024  return &_staffstyledef2014.field; \
17025  case FINALEVERSION_2012: \
17026  return &_staffstyledef2012.field; \
17027  default: \
17028  return &_staffstyledef2010.field; \
17029 } \
17030 
17031 
17041 {
17042 private:
17043 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
17044  EDTStaffStyle2010 _staffstyledef2010;
17045 
17046 #if FXT_VERSION >= FINALEVERSION_2012
17047  EDTStaffStyle2012 _staffstyledef2012;
17048 #else
17049  EDTStaffStyle2010 _staffstyledef2012; /* Dummy struct for unsupported PDKs */
17050 #endif
17051 
17052 #if FXT_VERSION >= FINALEVERSION_2014
17053  EDTStaffStyle2014 _staffstyledef2014;
17054 #else
17055  EDTStaffStyle2010 _staffstyledef2014; /* Dummy struct for unsupported PDKs */
17056 #endif
17057 
17059  const uonebyte* _GetInstUUIDPtr() const
17060  {
17061  if (_VersionToUse() >= FINALEVERSION_2014)
17062  return _staffstyledef2014.instUUID;
17063  if (_VersionToUse() >= FINALEVERSION_2012)
17064  return _staffstyledef2012.instUUID;
17065  return NULL;
17066  }
17067 
17069  const FLAG_16* _GetInstFlagPtr() const
17070  {
17071  __STAFFSTYLEDEF_RETURN_FIELD_PTR(instflag);
17072  }
17073 
17075  const FLAG_16* _GetFlagPtr() const
17076  {
17077  __STAFFSTYLEDEF_RETURN_FIELD_PTR(flag);
17078  }
17079 
17081  const FLAG_16* _GetAltFlagPtr() const
17082  {
17083  __STAFFSTYLEDEF_RETURN_FIELD_PTR(altFlag);
17084  }
17085 
17087  const FLAG_16* _GetAltFlag2Ptr() const
17088  {
17089  __STAFFSTYLEDEF_RETURN_FIELD_PTR(altFlag2);
17090  }
17091 
17093  const twobyte* _GetTranspositionPtr() const
17094  {
17095  __STAFFSTYLEDEF_RETURN_FIELD_PTR(transposition);
17096  }
17097 
17099  const FLAG_16* _GetMoreFlagsPtr() const
17100  {
17101  __STAFFSTYLEDEF_RETURN_FIELD_PTR(moreFlags);
17102  }
17103 
17105  const FLAG_16* _GetMoreFlags2Ptr() const
17106  {
17107  if (_VersionToUse() < FINALEVERSION_2014) return NULL;
17108 #if FXT_VERSION < FINALEVERSION_25
17109  return (const FLAG_16*) &_staffstyledef2014.hideKeySigsShowAccis;
17110 #else
17111  return &_staffstyledef2014.moreFlags2;
17112 #endif
17113  }
17114 
17116  const FLAG_16* _GetMoreFlags3Ptr() const
17117  {
17118  if (_VersionToUse() < FINALEVERSION_2014) return NULL;
17119 #if FXT_VERSION < FINALEVERSION_25
17120  return (const FLAG_16*) &_staffstyledef2014.redisplayLayerAccis;
17121 #else
17122  return &_staffstyledef2014.moreFlags3;
17123 #endif
17124  }
17125 
17127  const FLAG_16* _GetMask1FlagPtr() const
17128  {
17129  __STAFFSTYLEDEF_RETURN_FIELD_PTR(mask1);
17130  }
17131 
17133  const FLAG_16* _GetMask2FlagPtr() const
17134  {
17135  __STAFFSTYLEDEF_RETURN_FIELD_PTR(mask2);
17136  }
17137 
17139  const FLAG_16* _GetMask3FlagPtr() const
17140  {
17141  __STAFFSTYLEDEF_RETURN_FIELD_PTR(mask3);
17142  }
17143 
17145  const FLAG_16* _GetSFFlagPtr() const
17146  {
17147  __STAFFSTYLEDEF_RETURN_FIELD_PTR(sfflag);
17148  }
17149 
17151  const twobyte* _GetAbbrvNamePtr() const
17152  {
17153  __STAFFSTYLEDEF_RETURN_FIELD_PTR(abbrvName);
17154  }
17155 
17157  const twobyte* _GetFullNamePtr() const
17158  {
17159  __STAFFSTYLEDEF_RETURN_FIELD_PTR(fullName);
17160  }
17161 
17163  const twobyte* _GetClefsPtr() const
17164  {
17165  __STAFFSTYLEDEF_RETURN_FIELD_PTR(clefs);
17166  }
17167 
17169  const Efix32* _GetVertTabNumOffPtr() const
17170  {
17171  __STAFFSTYLEDEF_RETURN_FIELD_PTR(vertTabNumOff);
17172  }
17173 
17175  const CMPER* _GetFretInstIDPtr() const
17176  {
17177  __STAFFSTYLEDEF_RETURN_FIELD_PTR(fretInstID);
17178  }
17179 
17181  const Evpu16* _GetBottomBarlineOffsetPtr() const
17182  {
17183  __STAFFSTYLEDEF_RETURN_FIELD_PTR(botBarlineOffset);
17184  }
17185 
17187  const Evpu16* _GetTopBarlineOffsetPtr() const
17188  {
17189  __STAFFSTYLEDEF_RETURN_FIELD_PTR(topBarlineOffset);
17190  }
17191 
17193  const utwobyte* _GetCapoLowFretPtr() const
17194  {
17195  __STAFFSTYLEDEF_RETURN_FIELD_PTR(capoLowFret);
17196  }
17197 
17199  const FLAG_16* _GetBotLinesPtr() const
17200  {
17201  __STAFFSTYLEDEF_RETURN_FIELD_PTR(botLines);
17202  }
17203 
17205  virtual const FLAG_16* _GetTopLinesPtr() const
17206  {
17207  __STAFFSTYLEDEF_RETURN_FIELD_PTR(topLines);
17208  }
17209 
17211  virtual const Efix32* _GetLineSpacePtr() const
17212  {
17213  __STAFFSTYLEDEF_RETURN_FIELD_PTR(lineSpace);
17214  }
17215 
17217  virtual const twobyte* _GetDwWRestPtr() const
17218  {
17219  __STAFFSTYLEDEF_RETURN_FIELD_PTR(dw_wRest);
17220  }
17221 
17223  virtual const twobyte* _GetStemReversalPtr() const
17224  {
17225  __STAFFSTYLEDEF_RETURN_FIELD_PTR(stemReversal);
17226  }
17227 
17229  virtual const twobyte* _GetRepeatDotsOffPtr() const
17230  {
17231  __STAFFSTYLEDEF_RETURN_FIELD_PTR(repeatDotsOff);
17232  }
17233 
17235  virtual const twobyte* _GetHOtherRestPtr() const
17236  {
17237  __STAFFSTYLEDEF_RETURN_FIELD_PTR(h_otherRest);
17238  }
17239 
17240 
17242  FLAG_16 GetMask1() const { return *_GetMask1FlagPtr(); }
17243 
17245  FLAG_16 GetMask2() const { return *_GetMask2FlagPtr(); }
17246 
17248  FLAG_16 GetMask3() const { return *_GetMask3FlagPtr(); }
17249 
17251  virtual bool LoadFirst()
17252  {
17253  /* Since there can be holes in the staff style "chain", there
17254  need to be a better method to find items. Scanning a gap of 20 items
17255  should be an ok workaround for most documents. */
17256  for (int i = 1; i <= 20; i++)
17257  {
17258  if (Load(i)) return true;
17259  }
17260  return false;
17261  }
17262 
17264  virtual bool LoadNext()
17265  {
17266  /* Since there can be holes in the staff style "chain", there
17267  need to be a better method to find items. Scanning a gap of 20 items
17268  should be an ok workaround for most documents. */
17269  int itemno = GetItemNo();
17270  for (int i = 1; i <= 20; i++)
17271  {
17272  if (Load(itemno + i)) return true;
17273  }
17274  return false;
17275  }
17276 
17277 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
17278 protected:
17279 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
17280 
17281  virtual EXTAG Tag() { return ot_EDTStaffStyle2010; }
17282  virtual int DataSizeLoad()
17283  {
17284  switch (_VersionToUse())
17285  {
17286  case FINALEVERSION_2014:
17287  return sizeof(EDTStaffStyle2014);
17288  case FINALEVERSION_2012:
17289  return sizeof(EDTStaffStyle2012);
17290  default:
17291  return sizeof(EDTStaffStyle2010);
17292  }
17293  }
17294  virtual void* Allocate()
17295  {
17296  switch (_VersionToUse())
17297  {
17298  case FINALEVERSION_2014:
17299  return (void*) &_staffstyledef2014;
17300  case FINALEVERSION_2012:
17301  return (void*) &_staffstyledef2012;
17302  default:
17303  return (void*) &_staffstyledef2010;
17304  }
17305  }
17306  virtual EVERSION EnigmaVersion() { return _VersionToUse(); }
17307 
17312  virtual void CloneMemoryFrom(__FCBaseData* pSource)
17313  {
17314  memcpy(_GetStaffStyle(), ((FCStaffStyleDef*)pSource)->_GetStaffStyle(), DataSizeLoad());
17315  _datablock = _GetStaffStyle();
17317  }
17318 
17319  virtual __FCBaseData* CreateObject() { return new FCStaffStyleDef(); }
17320 
17321 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
17322 public:
17323  virtual const char* ClassName() { return "FCStaffStyleDef"; }
17324  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_STAFFSTYLEDEF; }
17325 
17326 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
17327 
17333  void* _GetStaffStyle() { return Allocate(); }
17334 
17336  virtual bool Load(twobyte itemno);
17337 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
17338 
17344  {
17345  memset(_GetStaffStyle(), 0, DataSizeLoad());
17346  _datablock = _GetStaffStyle();
17348  }
17349 
17350  /************************
17351  *** GETTERS for data ***
17352  ************************/
17353 
17358  bool GetCopyable() const { return GetBitFlag(*_GetSFFlagPtr(), SFFLAG_COPYABLE); }
17359 
17364  bool GetAddToMenu() const { return GetBitFlag(*_GetSFFlagPtr(), SFFLAG_ADDTOMENU); }
17365 
17366 
17367  /*************************************
17368  *** GETTERS for Staff Style usage ***
17369  *************************************/
17370 
17376  bool GetUseShowKeySignatures() const { return GetBitFlag(GetMask2(), SFMASK2_NEGKEY); }
17377 
17383  bool GetUseShowMeasureNumbers() const { return GetBitFlag(GetMask1(), SFMASK1_NEGMNUMB); }
17384 
17390  bool GetUseShowTimeSignatures() const { return GetBitFlag(GetMask2(), SFMASK2_NEGTIME); }
17391 
17397  bool GetUseShowClefs() const { return GetBitFlag(GetMask2(), SFMASK2_NEGCLEF); }
17398 
17404  bool GetUseShowChords() const { return GetBitFlag(GetMask3(), SFMASK3_HIDE_CHORDS); }
17405 
17411  bool GetUseShowAugmentationDots() const { return GetBitFlag(GetMask2(), SFMASK2_SHOWDOTS); }
17412 
17418  bool GetUseShowFretboards() const { return GetBitFlag(GetMask3(), SFMASK3_HIDE_FRETBOARDS); }
17419 
17425  bool GetUseShowLyrics() const { return GetBitFlag(GetMask3(), SFMASK3_HIDE_LYRICS); }
17426 
17432  bool GetUseShowRepeats() const { return GetBitFlag(GetMask2(), SFMASK2_HIDE_RPT_BARS); }
17433 
17439  bool GetUseShowRests() const { return GetBitFlag(GetMask2(), SFMASK2_SHOWRESTS); }
17440 
17448  bool GetUseShowStaffLines() const;
17449 
17455  bool GetUseShowScoreStaffNames() const { return GetBitFlag(GetMask1(), SFMASK1_NEGNAME); }
17456 
17462  bool GetUseShowPartStaffNames() const { return GetBitFlag(GetMask3(), SFMASK3_SHOWNAME_PARTS); }
17463 
17469  bool GetUseShowStems() const { return GetBitFlag(GetMask3(), SFMASK3_SHOWSTEMS); }
17470 
17476  bool GetUseShowTies() const { return GetBitFlag(GetMask2(), SFMASK2_SHOWTIES); }
17477 
17483  bool GetUseIndependentFont() const { return GetBitFlag(GetMask1(), SFMASK1_FLOATNOTEHEADFONT); }
17484 
17490  bool GetUseFlatBeams() const { return GetBitFlag(GetMask1(), SFMASK1_FLAT_BEAMS); }
17491 
17497  bool GetUseNotationStyle() const { return GetBitFlag(GetMask1(), SFMASK1_NOTATIONSTYLE); }
17498 
17504  bool GetUseDisplayEmptyRests() const { return GetBitFlag(GetMask1(), SFMASK1_BLANKMEASURE); }
17505 
17511  bool GetUseAllowHiding() const { return GetBitFlag(GetMask1(), SFMASK1_NO_OPTIMIZE); }
17512 
17518  bool GetUseDefaultClef() const { return GetBitFlag(GetMask1(), SFMASK1_DEFAULTCLEF); }
17519 
17528  bool GetUseStafflineAdjustments() const { return GetBitFlag(GetMask1(), SFMASK1_STAFFLINES); }
17529 
17535  bool GetUseTransposition() const { return GetBitFlag(GetMask1(), SFMASK1_TRANSPOSITION); }
17536 
17542  bool GetUseBreakBarlines() const { return GetBitFlag(GetMask1(), SFMASK1_BLINEBREAK); }
17543 
17549  bool GetUseBreakRepeatBarlines() const { return GetBitFlag(GetMask1(), SFMASK1_RBARBREAK); }
17550 
17556  bool GetUseShowTextRepeats() const { return GetBitFlag(GetMask1(), SFMASK1_NEGREPEAT); }
17557 
17563  bool GetUseShowBarlines() const { return GetBitFlag(GetMask1(), SFMASK1_HIDE_BARLINES); }
17564 
17570  bool GetUseFullName() const { return GetBitFlag(GetMask2(), SFMASK2_FULLNAME); }
17571 
17577  bool GetUseAbbreviatedName() const { return GetBitFlag(GetMask2(), SFMASK2_ABBRVNAME); }
17578 
17584  bool GetUseIndependentKeySig() const { return GetBitFlag(GetMask2(), SFMASK2_FLOATKEYS); }
17585 
17591  bool GetUseIndependentTimeSig() const { return GetBitFlag(GetMask2(), SFMASK2_FLOATTIME); }
17592 
17598  bool GetUseHideMode() const { return GetBitFlag(GetMask2(), SFMASK2_HIDESTAFF); }
17599 
17605  bool GetUseIgnoreKeySig() const { return GetBitFlag(GetMask2(), SFMASK2_NOKEY); }
17606 
17612  bool GetUseFullNamePosition() const { return GetBitFlag(GetMask2(), SFMASK2_FULLNAMEPOS); }
17613 
17619  bool GetUseAbbreviatedPosition() const { return GetBitFlag(GetMask2(), SFMASK2_ABBRVNAMEPOS); }
17620 
17626  bool GetUseAltNotationStyle() const { return GetBitFlag(GetMask2(), SFMASK2_ALTNOTATION); }
17627 
17633  bool GetUseShowNoteColors() const { return GetBitFlag(GetMask3(), SFMASK3_SHOW_NOTE_COLORS); }
17634 
17642  bool GetUseShowNoteShapes() const;
17643 
17651  bool GetUseNoKeySigShowAccidentals() const;
17652 
17660  bool GetUseRedisplayOtherLayerAccidentals() const;
17661 
17662 
17663  /************************
17664  *** SETTERS for data ***
17665  ************************/
17666 
17671  void SetCopyable(bool value) { Set16BitFlag((FLAG_16*)_GetSFFlagPtr(), SFFLAG_COPYABLE, value); }
17672 
17677  void SetAddToMenu(bool value) { Set16BitFlag((FLAG_16*) _GetSFFlagPtr(), SFFLAG_ADDTOMENU, value); }
17678 
17679  /*************************************
17680  *** SETTERS for Staff Style usage ***
17681  *************************************/
17682 
17688  void SetUseShowKeySignatures(bool state)
17689  {
17690  Set16BitFlag((FLAG_16*) _GetMask2FlagPtr(), SFMASK2_NEGKEY, state);
17691  }
17692 
17698  void SetUseShowMeasureNumbers(bool state)
17699  {
17700  Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_NEGMNUMB, state);
17701  }
17702 
17708  void SetUseShowTimeSignatures(bool state)
17709  {
17710  Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_NEGTIME, state);
17711  }
17712 
17718  void SetUseShowClefs(bool state)
17719  {
17720  Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_NEGCLEF, state);
17721  }
17722 
17728  void SetUseShowChords(bool state)
17729  {
17730  Set16BitFlag((FLAG_16*)_GetMask3FlagPtr(), SFMASK3_HIDE_CHORDS, state);
17731  }
17732 
17739  {
17740  Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_SHOWDOTS, state);
17741  }
17742 
17748  void SetUseShowFretboards(bool state)
17749  {
17750  Set16BitFlag((FLAG_16*)_GetMask3FlagPtr(), SFMASK3_HIDE_FRETBOARDS, state);
17751  }
17752 
17758  void SetUseShowLyrics(bool state)
17759  {
17760  Set16BitFlag((FLAG_16*)_GetMask3FlagPtr(), SFMASK3_HIDE_LYRICS, state);
17761  }
17762 
17768  void SetUseShowRepeats(bool state)
17769  {
17770  Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_HIDE_RPT_BARS, state);
17771  }
17772 
17778  void SetUseShowRests(bool state)
17779  {
17780  Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_SHOWRESTS, state);
17781  }
17782 
17790  void SetUseShowStaffLines(bool state);
17791 
17797  void SetUseShowScoreStaffNames(bool state)
17798  {
17799  Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_NEGNAME, state);
17800  }
17801 
17807  void SetUseShowPartStaffNames(bool state)
17808  {
17809  Set16BitFlag((FLAG_16*)_GetMask3FlagPtr(), SFMASK3_SHOWNAME_PARTS, state);
17810  }
17811 
17817  void SetUseShowStems(bool state)
17818  {
17819  Set16BitFlag((FLAG_16*)_GetMask3FlagPtr(), SFMASK3_SHOWSTEMS, state);
17820  }
17821 
17827  void SetUseShowTies(bool state)
17828  {
17829  Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_SHOWTIES, state);
17830  }
17831 
17837  void SetUseIndependentFont(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_FLOATNOTEHEADFONT, state); }
17838 
17844  void SetUseFlatBeams(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_FLAT_BEAMS, state); }
17845 
17851  void SetUseNotationStyle(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_NOTATIONSTYLE, state); }
17852 
17858  void SetUseDisplayEmptyRests(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_BLANKMEASURE, state); }
17859 
17865  void SetUseAllowHiding(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_NO_OPTIMIZE, state); }
17866 
17872  void SetUseDefaultClef(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_DEFAULTCLEF, state); }
17873 
17882  void SetUseStafflineAdjustments(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_STAFFLINES, state); }
17883 
17889  void SetUseTransposition(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_TRANSPOSITION, state); }
17890 
17896  void SetUseBreakBarlines(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_BLINEBREAK, state); }
17897 
17903  void SetUseBreakRepeatBarlines(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_RBARBREAK, state); }
17904 
17910  void SetUseShowTextRepeats(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_NEGREPEAT, state); }
17911 
17917  void SetUseShowBarlines(bool state) { Set16BitFlag((FLAG_16*)_GetMask1FlagPtr(), SFMASK1_HIDE_BARLINES, state); }
17918 
17924  void SetUseFullName(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_FULLNAME, state); }
17925 
17931  void SetUseAbbreviatedName(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_ABBRVNAME, state); }
17932 
17938  void SetUseIndependentKeySig(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_FLOATKEYS, state); }
17939 
17945  void SetUseIndependentTimeSig(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_FLOATTIME, state); }
17946 
17952  void SetUseHideMode(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_HIDESTAFF, state); }
17953 
17959  void SetUseIgnoreKeySig(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_NOKEY, state); }
17960 
17966  void SetUseFullNamePosition(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_FULLNAMEPOS, state); }
17967 
17973  void SetUseAbbreviatedPosition(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_ABBRVNAMEPOS, state); }
17974 
17980  void SetUseAltNotationStyle(bool state) { Set16BitFlag((FLAG_16*)_GetMask2FlagPtr(), SFMASK2_ALTNOTATION, state); }
17981 
17987  void SetUseShowNoteColors(bool state) { Set16BitFlag((FLAG_16*)_GetMask3FlagPtr(), SFMASK3_SHOW_NOTE_COLORS, state); }
17988 
17996  void SetUseShowNoteShapes(bool state);
17997 
18005  void SetUseNoKeySigShowAccidentals(bool state);
18006 
18014  void SetUseRedisplayOtherLayerAccidentals(bool state);
18015 
18016  /*********************
18017  *** MISC. METHODS ***
18018  *********************/
18019 
18026  bool IsInstrumentChange();
18027 
18032  void GetName(FCString* pString);
18033 
18038  void SetName(FCString* pString);
18039 
18040 
18041 #ifdef PDK_FRAMEWORK_DEBUG
18042  virtual void DebugDump()
18043  {
18045  DebugOutBool("Is 2012 Instrument Change: ", IsInstrumentChange());
18046  }
18047 #endif
18048 };
18049 
18050 
18051 
18061 {
18062 private:
18063 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18064  EDTStaffStyleAssign _staffstyleassign;
18065 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18066 protected:
18067 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18068 
18069  virtual EXTAG Tag() { return ot_EDTStaffStyleAssign; }
18070  virtual int DataSizeLoad() { return sizeof(EDTStaffStyleAssign); }
18071  virtual void* Allocate() { return (void*) &_staffstyleassign; }
18072 
18077  virtual void CloneMemoryFrom(__FCBaseData* pSource)
18078  {
18079  memcpy(&_staffstyleassign, ((FCStaffStyleAssign*)pSource)->_GetStaffStyleAssign(), sizeof(_staffstyleassign));
18080  _datablock = &_staffstyleassign;
18081  _loadedsize = sizeof(_staffstyleassign);
18082  }
18083 
18084  virtual __FCBaseData* CreateObject()
18085  { return new FCStaffStyleAssign(); }
18086 
18087 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18088 public:
18089  virtual const char* ClassName() { return "FCStaffStyleAssign"; }
18090  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_STAFFSTYLEASSIGN; }
18091 
18092 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18093 
18099  void* _GetStaffStyleAssign() { return Allocate(); }
18100 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18101 
18104  {
18105  memset(&_staffstyleassign, 0, sizeof(_staffstyleassign));
18106  _datablock = &_staffstyleassign;
18107  _loadedsize = sizeof(_staffstyleassign);
18108  _staffstyleassign.range.end.edu = 0x7fffffff;
18109  }
18110 
18118  twobyte GetStyleID() const { return _staffstyleassign.style; };
18119 
18125  eMeas GetStartMeasure() const { return _staffstyleassign.range.start.meas; };
18126 
18131  TimeEdu32 GetStartMeasurePos() const { return _staffstyleassign.range.start.edu; };
18132 
18137  eMeas GetEndMeasure() const { return _staffstyleassign.range.end.meas; };
18138 
18143  TimeEdu32 GetEndMeasurePos() const { return _staffstyleassign.range.end.edu; };
18144 
18149  void SetStartMeasure(eMeas value) { _staffstyleassign.range.start.meas = value; }
18150 
18155  void SetStartMeasurePos(TimeEdu32 value) { _staffstyleassign.range.start.edu = value; }
18156 
18161  void SetEndMeasure(eMeas value) { _staffstyleassign.range.end.meas = value; }
18162 
18167  void SetEndMeasurePos(TimeEdu32 value) { _staffstyleassign.range.end.edu = value; }
18168 
18173  void SetStyleID(twobyte value) { _staffstyleassign.style = value; }
18174 
18179  eStaff GetStaff() const { return _dataid.other.cmper; };
18180 
18186  void SetEndMeasurePosRight() { SetEndMeasurePos(0x7fffffff); }
18187 
18193  {
18194  if (!pRegion) return false;
18195  if (GetEndMeasure() < pRegion->GetStartMeasure()) return false;
18196  if (GetStartMeasure() > pRegion->GetEndMeasure()) return false;
18197  if (GetEndMeasure() == pRegion->GetStartMeasure())
18198  {
18199  if (GetEndMeasurePos() < pRegion->GetStartMeasurePos()) return false;
18200  }
18201  if (GetStartMeasure() == pRegion->GetEndMeasure())
18202  {
18203  if (GetStartMeasurePos() > pRegion->GetEndMeasurePos()) return false;
18204  }
18205  // Horizontally, it's an overlap - check the staff:
18206  if (pRegion->IsStaffIncluded(GetStaff())) return true;
18207  return false;
18208  }
18209 
18210 #ifdef PDK_FRAMEWORK_DEBUG
18211  virtual void DebugDump()
18212  {
18214  DebugOutDigit("Style ID: ", GetStyleID());
18215  DebugOutDigit("Start measure: ", GetStartMeasure());
18216  DebugOutDigit("End measure: ", GetEndMeasure());
18217  }
18218 #endif
18219 };
18220 
18221 
18222 
18235 {
18236 private:
18237 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18238  EDTMultimeasureRest _mmrest;
18239 
18240 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18241 protected:
18242 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18243 
18244  virtual EXTAG Tag() { return ot_MultimeasureRest; }
18245  virtual int DataSizeLoad() { return sizeof(EDTMultimeasureRest); }
18246  virtual void* Allocate() { return (void*) &_mmrest; }
18247 
18254  virtual void CloneMemoryFrom(__FCBaseData* pSource)
18255  {
18256  memcpy(&_mmrest, ((FCMultiMeasureRest*)pSource)->_GetMMRest(), sizeof(_mmrest));
18257  _datablock = &_mmrest;
18258  _loadedsize = sizeof(_mmrest);
18259  }
18260 
18261  virtual __FCBaseData* CreateObject() { return new FCMultiMeasureRest(); }
18262 
18263  virtual bool LoadFirst()
18264  {
18265  Load(0);
18266  return LoadNext();
18267  }
18268 
18269  virtual bool SaveNew() { return false; } // Disabled: Save() has to be used
18270 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18271 public:
18272  virtual const char* ClassName() { return "FCMultiMeasureRest"; }
18273  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_MULTIMEASUREREST; }
18274 
18275 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18276 
18282  void* _GetMMRest() { return Allocate(); }
18283 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18284 
18291  {
18292  memset(&_mmrest, 0, sizeof(_mmrest));
18293  SetWidth(300); /* Just to set a width */
18294  _datablock = &_mmrest;
18295  _loadedsize = sizeof(_mmrest);
18296  }
18297 
18303  twobyte GetStartMeasure() const { return _dataid.other.cmper; }
18304 
18310  twobyte GetEndMeasure() const { return _mmrest.stopBefore - 1; }
18311 
18317  twobyte GetWidth() const { return _mmrest.measureWidth; }
18318 
18325  twobyte GetShapeID() const { return _mmrest.shape; }
18326 
18332  bool GetUseSymbols() const
18333  {
18334  return GetBitFlag(_mmrest.flag, MMREST_USE_SYMBOLS);
18335  }
18336 
18343  twobyte GetUseSymbolsLessThan() const
18344  {
18345  return _mmrest.symbolMeasures;
18346  }
18347 
18353  twobyte GetShapeEndAdjust() const { return _mmrest.adjustEndPoint; }
18354 
18360  twobyte GetShapeStartAdjust() const { return _mmrest.adjustStartPoint; }
18361 
18367  twobyte GetSymbolSpace() const { return _mmrest.spaceBetween; }
18368 
18375  twobyte GetStartNumberingAt() const { return _mmrest.startNumbering; }
18376 
18382  twobyte GetNumberHorizontalAdjust() const { return _mmrest.horizNumberAdjust; }
18383 
18388  twobyte GetNumberVerticalAdjust() const { return _mmrest.vertNumberAdjust; }
18389 
18395  twobyte CalcMeasureSpan() { return GetEndMeasure() - GetStartMeasure() + 1; }
18396 
18402  void SetWidth(twobyte value) { _mmrest.measureWidth = value; }
18403 
18411  void SetStartMeasure(twobyte measure) { _dataid.other.cmper = measure; }
18412 
18418  void SetEndMeasure(twobyte measure) { _mmrest.stopBefore = measure + 1; }
18419 
18425  void SetShapeEndAdjust(twobyte value) { _mmrest.adjustEndPoint = value; }
18426 
18432  void SetShapeStartAdjust(twobyte value) { _mmrest.adjustStartPoint = value; }
18433 
18440  void SetShapeID(twobyte shapeID) { _mmrest.shape = shapeID; }
18441 
18442 
18448  void SetUseSymbols(bool value)
18449  {
18450  Set16BitFlag(&_mmrest.flag, MMREST_USE_SYMBOLS, value);
18451  }
18452 
18459  void SetUseSymbolsLessThan(twobyte value)
18460  {
18461  _mmrest.symbolMeasures = value;
18462  }
18463 
18469  void SetSymbolSpace(twobyte space) { _mmrest.spaceBetween = space; }
18470 
18475  void SetStartNumberingAt(twobyte value) { _mmrest.startNumbering = value; }
18476 
18481  void SetNumberHorizontalAdjust(twobyte value) { _mmrest.horizNumberAdjust = value; }
18482 
18487  void SetNumberVerticalAdjust(twobyte value) { _mmrest.vertNumberAdjust = value; }
18488 
18493  bool IsMeasureIncluded(int measure)
18494  {
18495  if (measure < GetStartMeasure()) return false;
18496  if (measure > GetEndMeasure()) return false;
18497  return true;
18498  }
18499 
18504  bool IsShape()
18505  {
18506  if (!GetUseSymbols()) return true;
18507  if (GetUseSymbolsLessThan() >= CalcMeasureSpan()) return true;
18508  return false;
18509  }
18510 
18511 #ifdef PDK_FRAMEWORK_PREFS
18512 
18518  void PrefsReset();
18519 #endif
18520 
18521 
18522 #ifdef PDK_FRAMEWORK_DEBUG
18523  virtual void DebugDump()
18524  {
18526  DebugOutDigit("Start measure: ", GetStartMeasure());
18527  DebugOutDigit("End measure: ", GetEndMeasure());
18528  }
18529 #endif
18530 };
18531 
18532 #if FXT_VERSION >= FINALEVERSION_2012
18533 
18541 {
18542 private:
18543 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18544  EDTMultiStaffInstGroup _multistaffinstgroup;
18545 
18546 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18547 protected:
18548 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18549 
18550  virtual EXTAG Tag() { return otx_MultiStaffInstGroup; }
18551  virtual int DataSizeLoad() { return sizeof(EDTMultiStaffInstGroup); }
18552  virtual void* Allocate() { return (void*) &_multistaffinstgroup; }
18553 
18560  virtual void CloneMemoryFrom(__FCBaseData* pSource)
18561  {
18562  memcpy(&_multistaffinstgroup, ((FCMultiStaffInstrument*)pSource)->_GetMultiStaffInstGroup(), sizeof(_multistaffinstgroup));
18563  _datablock = &_multistaffinstgroup;
18564  _loadedsize = sizeof(_multistaffinstgroup);
18565  }
18566 
18567  virtual __FCBaseData* CreateObject() { return new FCMultiStaffInstrument(); }
18568 
18569  /*virtual bool LoadFirst()
18570  {
18571  Load(0);
18572  return LoadNext();
18573  } */
18574 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18575 public:
18576  virtual const char* ClassName() { return "FCMultiStaffInstrument"; }
18577  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_MULTISTAFFINSTRUMENT; }
18578 
18579 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18580 
18586  void* _GetMultiStaffInstGroup() { return Allocate(); }
18587 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18588 
18595  {
18596  memset(&_multistaffinstgroup, 0, sizeof(_multistaffinstgroup));
18597  }
18598 
18604  bool ContainsStaff(CMPER staffno)
18605  {
18606  if (staffno == 0) return false;
18607  if (staffno == GetFirstStaff()) return true;
18608  if (staffno == GetSecondStaff()) return true;
18609  if (staffno == GetThirdStaff()) return true;
18610  return false;
18611  }
18612 
18617  CMPER GetFirstStaff() const { return _multistaffinstgroup.staffNum1; }
18618 
18623  CMPER GetSecondStaff() const { return _multistaffinstgroup.staffNum2; }
18624 
18629  CMPER GetThirdStaff() const { return _multistaffinstgroup.staffNum3; }
18630 
18635  eStaffGroup GetGroupID() const
18636  {
18637  return _multistaffinstgroup.staffGroupID;
18638  }
18639 
18640 
18646  void SetFirstStaff(CMPER value) { _multistaffinstgroup.staffNum1 = value; }
18647 
18652  void SetSecondStaff(CMPER value) { _multistaffinstgroup.staffNum2 = value; }
18653 
18659  void SetThirdStaff(CMPER value) { _multistaffinstgroup.staffNum3 = value; }
18660 
18665  void SetGroupID(eStaffGroup value)
18666  {
18667  _multistaffinstgroup.staffGroupID = value;
18668  }
18669 
18670 
18678  {
18679  CMPER returnvalue = 0;
18680  twobyte lowestslot = 10000;
18681  twobyte slottest = FX_InstToSlot(GetFirstStaff(), 0);
18682  if (slottest)
18683  {
18684  lowestslot = slottest;
18685  returnvalue = GetFirstStaff();
18686  }
18687  slottest = FX_InstToSlot(GetSecondStaff(), 0);
18688  if ((slottest) && (slottest < lowestslot))
18689  {
18690  lowestslot = slottest;
18691  returnvalue = GetSecondStaff();
18692  }
18693  slottest = FX_InstToSlot(GetThirdStaff(), 0);
18694  if ((slottest) && (slottest < lowestslot))
18695  {
18696  returnvalue = GetThirdStaff();
18697  }
18698  return returnvalue;
18699  }
18700 
18708  {
18709  CMPER returnvalue = 0;
18710  twobyte highestslot = -10000;
18711  twobyte slottest = FX_InstToSlot(GetFirstStaff(), 0);
18712  if (slottest)
18713  {
18714  highestslot = slottest;
18715  returnvalue = GetFirstStaff();
18716  }
18717  slottest = FX_InstToSlot(GetSecondStaff(), 0);
18718  if ((slottest) && (slottest > highestslot))
18719  {
18720  highestslot = slottest;
18721  returnvalue = GetSecondStaff();
18722  }
18723  slottest = FX_InstToSlot(GetThirdStaff(), 0);
18724  if ((slottest) && (slottest > highestslot))
18725  {
18726  returnvalue = GetThirdStaff();
18727  }
18728  return returnvalue;
18729  }
18730 
18731 
18732 #ifdef PDK_FRAMEWORK_DEBUG
18733  virtual void DebugDump()
18734  {
18736  DebugOutDigit("First staff: ", GetFirstStaff());
18737  DebugOutDigit("Second staff: ", GetSecondStaff());
18738  DebugOutDigit("Third staff: ", GetThirdStaff());
18739  DebugOutDigit("Group ID: ", GetGroupID());
18740  }
18741 #endif
18742 };
18743 #endif // #if FXT_VERSION >= FINALEVERSION_2012
18744 
18745 
18753 {
18754 private:
18755 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18756  EDTAllotment _allotment;
18757 
18758 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18759 protected:
18760 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18761 
18762  virtual EXTAG Tag() { return ot_Allotment; }
18763  virtual int DataSizeLoad() { return sizeof(EDTAllotment); }
18764  virtual void* Allocate() { return (void*) &_allotment; }
18765 
18772  virtual void CloneMemoryFrom(__FCBaseData* pSource)
18773  {
18774  memcpy(&_allotment, ((FCAllotment*)pSource)->_GetAllotment(), sizeof(_allotment));
18775  _datablock = &_allotment;
18776  _loadedsize = sizeof(_allotment);
18777  }
18778 
18779  virtual __FCBaseData* CreateObject() { return new FCAllotment(); }
18780 
18781 
18782  virtual bool LoadFirst()
18783  {
18784  CMPER trycmper = 0; // 0 is used for default allotment
18785  while (!Load(trycmper))
18786  {
18787  if (trycmper > 8192) return false;
18788  trycmper ++;
18789  }
18790  return true;
18791  }
18792 
18793  virtual bool LoadNext()
18794  {
18795  CMPER trycmper = GetItemNo() + 1;
18796  while (!Load(trycmper))
18797  {
18798  if (trycmper > 8192) return false;
18799  trycmper ++;
18800  }
18801  return true;
18802  }
18803 
18804 
18805 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18806 public:
18807  virtual const char* ClassName() { return "FCAllotment"; }
18808  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_ALLOTMENT; }
18809 
18810 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18811 
18817  void* _GetAllotment() { return Allocate(); }
18818 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18819 
18822  {
18823  memset(&_allotment, 0, sizeof(_allotment));
18824  _datablock = &_allotment;
18825  _loadedsize = sizeof(_allotment);
18826  }
18827 
18829  void SetWidth(twobyte width)
18830  {
18831  _allotment.allotment = width;
18832  }
18833 
18834 
18836  twobyte GetWidth()
18837  {
18838  return _allotment.allotment;
18839  }
18840 
18841 
18842 #ifdef PDK_FRAMEWORK_DEBUG
18843  virtual void DebugDump()
18844  {
18846  DebugOutDigit("Allotment Width: ", GetWidth());
18847  }
18848 #endif
18849 };
18850 
18851 
18852 
18860 {
18861 private:
18862 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18863 
18865  EDTTGraphic _graphic;
18866 
18867  virtual EXTAG Tag() { return ot_PageGraphic; }
18868  virtual int DataSizeLoad() { return sizeof(EDTTGraphic); }
18869  virtual void* Allocate() { return (void*) &_graphic; }
18870 
18871  virtual EVERSION EnigmaVersion() { return FINALEVERSION_2010; }
18872 
18877  virtual void CloneMemoryFrom(__FCBaseData* pSource)
18878  {
18879  memcpy(&_graphic, ((FCPageGraphic*)pSource)->_GetGraphic(), sizeof(_graphic));
18880  _datablock = &_graphic;
18881  _loadedsize = sizeof(_graphic);
18882  }
18883 
18885  virtual bool LoadFirst()
18886  {
18887  SetCmperAndInci(0, 0);
18888  if (Load(0, 0)) return true; /* 0, 0 is a valid record! */
18889  return LoadNext();
18890  }
18891 
18892  virtual __FCBaseData* CreateObject() { return new FCPageGraphic(); }
18893 
18894 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18895 
18896 public:
18897  virtual const char* ClassName() { return "FCPageGraphic"; }
18898  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_PAGEGRAPHIC; }
18899 
18900 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
18901 
18907  void* _GetGraphic() { return &_graphic; }
18908 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
18909 
18910 
18916  {
18918  GRAPHICHORIZALIGN_LEFT = 0,
18920  GRAPHICHORIZALIGN_RIGHT = 1,
18922  GRAPHICHORIZALIGN_CENTER = 2
18923  };
18924 
18930  {
18932  GRAPHICVERTALIGN_TOP = 0,
18934  GRAPHICVERTALIGN_BOTTOM = 1,
18936  GRAPHICVERTALIGN_CENTER = 2
18937  };
18938 
18939 
18940 
18946  {
18947  memset(&_graphic, 0, sizeof(_graphic));
18948  }
18949 
18954  bool IsEmbedded()
18955  {
18956  return (_graphic.graphicCmper == 0);
18957  }
18958 
18963  int GetFirstPage() const
18964  {
18965  return _graphic.start;
18966  }
18967 
18972  int GetLastPage() const
18973  {
18974  return _graphic.end;
18975  }
18976 
18981  Evpu16 GetHorizontalPos() const
18982  {
18983  return _graphic.left;
18984  }
18985 
18990  Evpu16 GetVerticalPos() const
18991  {
18992  return _graphic.bottom;
18993  }
18994 
18999  Evpu16 GetWidth() const
19000  {
19001  return _graphic.width;
19002  }
19003 
19008  Evpu16 GetHeight() const
19009  {
19010  return _graphic.height;
19011  }
19012 
19017  Evpu16 GetOriginalWidth() const
19018  {
19019  return _graphic.origWidth;
19020  }
19021 
19026  Evpu16 GetOriginalHeight() const
19027  {
19028  return _graphic.origHeight;
19029  }
19030 
19037  bool GetVisible() const { return !GetBitFlag(_graphic.displayFlags, GRAPHIC_DISPLAY_HIDDEN); }
19038 
19045  bool GetPageEdgeRef() const { return GetBitFlag(_graphic.alignFlags, GRAPHIC_ALIGN_PAPER); }
19046 
19051  bool GetIndependentRightPage() const { return (_graphic.rightPgAlignFlags != 0); }
19052 
19057  Evpu16 GetHorizontalPosRightPage() const { return _graphic.rightPgLeft; }
19058 
19063  Evpu16 GetVerticalPosRightPage() const { return _graphic.rightPgBottom; }
19064 
19070  bool GetFixedPercent() const { return GetBitFlag(_graphic.alignFlags, GRAPHIC_ALIGN_FIXEDPERC); }
19071 
19078 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19079  GRAPHIC_HORIZONTAL_ALIGN
19080 #else
19081  int
19082 #endif
19084  {
19085  if (GetBitFlag(_graphic.alignFlags, GRAPHIC_ALIGN_LEFT)) return GRAPHICHORIZALIGN_LEFT;
19086  if (GetBitFlag(_graphic.alignFlags, GRAPHIC_ALIGN_RIGHT)) return GRAPHICHORIZALIGN_RIGHT;
19087  return GRAPHICHORIZALIGN_CENTER;
19088  }
19089 
19096 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19097  GRAPHIC_HORIZONTAL_ALIGN
19098 #else
19099  int
19100 #endif
19102  {
19103  if (GetBitFlag(_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_LEFT)) return GRAPHICHORIZALIGN_LEFT;
19104  if (GetBitFlag(_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_RIGHT)) return GRAPHICHORIZALIGN_RIGHT;
19105  return GRAPHICHORIZALIGN_CENTER;
19106  }
19107 
19113 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19114  GRAPHIC_VERTICAL_ALIGN
19115 #else
19116  int
19117 #endif
19119  {
19120  if (GetBitFlag(_graphic.alignFlags, GRAPHIC_ALIGN_TOP)) return GRAPHICVERTALIGN_TOP;
19121  if (GetBitFlag(_graphic.alignFlags, GRAPHIC_ALIGN_BOTTOM)) return GRAPHICVERTALIGN_BOTTOM;
19122  return GRAPHICVERTALIGN_CENTER;
19123  }
19124 
19125  /* SETTERS */
19126 
19131  void SetFirstPage(int pageno)
19132  {
19133  _graphic.start = pageno;
19134  }
19135 
19140  void SetLastPage(int pageno)
19141  {
19142  _graphic.end = pageno;
19143  }
19144 
19152  void SetHorizontalPos(Evpu16 pos)
19153  {
19154  _graphic.left = pos;
19155  if (!GetIndependentRightPage()) SetHorizontalPosRightPage(pos);
19156  }
19157 
19165  void SetVerticalPos(Evpu16 pos)
19166  {
19167  _graphic.bottom = pos;
19168  if (!GetIndependentRightPage()) SetVerticalPosRightPage(pos);
19169  }
19170 
19175  void SetWidth(Evpu16 width)
19176  {
19177  _graphic.width = width;
19178  }
19179 
19184  void SetHeight(Evpu16 height)
19185  {
19186  _graphic.height = height;
19187  }
19188 
19193  void SetVisible(bool state)
19194  {
19195  Set16BitFlag(&_graphic.displayFlags, GRAPHIC_DISPLAY_HIDDEN, !state);
19196  }
19197 
19209  void SetPageEdgeRef(bool state)
19210  {
19211  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_MARGINS, !state);
19212  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_PAPER, state);
19213  }
19214 
19219  void SetIndependentRightPage(bool state)
19220  {
19221  if (GetIndependentRightPage() == state) return;
19222  /* Copy the alignment */
19223  if (state)
19224  _graphic.rightPgAlignFlags = _graphic.alignFlags;
19225  else
19226  _graphic.rightPgAlignFlags = 0;
19227  }
19228 
19233  void SetHorizontalPosRightPage(Evpu16 value)
19234  {
19235  _graphic.rightPgLeft = value;
19236  }
19237 
19242  void SetVerticalPosRightPage(Evpu16 value)
19243  {
19244  _graphic.rightPgBottom = value;
19245  }
19246 
19252  void SetFixedPercent(bool state) { Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_FIXEDPERC, state); }
19253 
19264 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19266 #else
19267  FLAG_16
19268 #endif
19269  alignment
19270  )
19271  {
19272  switch (alignment)
19273  {
19274  case GRAPHICHORIZALIGN_LEFT:
19275  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_LEFT, true);
19276  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_RIGHT, false);
19277  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_CENTERH, false);
19278  break;
19279  case GRAPHICHORIZALIGN_RIGHT:
19280  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_LEFT, false);
19281  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_RIGHT, true);
19282  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_CENTERH, false);
19283  break;
19284  default: /* Horizontally centered */
19285  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_LEFT, false);
19286  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_RIGHT, false);
19287  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_CENTERH, true);
19288  break;
19289  }
19290  if (!GetIndependentRightPage()) SetHorizontalAlignmentRightPage(alignment);
19291  }
19292 
19300 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19302 #else
19303  FLAG_16
19304 #endif
19305  alignment)
19306  {
19307  switch (alignment)
19308  {
19309  case GRAPHICHORIZALIGN_LEFT:
19310  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_LEFT, true);
19311  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_RIGHT, false);
19312  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_CENTERH, false);
19313  break;
19314  case GRAPHICHORIZALIGN_RIGHT:
19315  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_LEFT, false);
19316  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_RIGHT, true);
19317  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_CENTERH, false);
19318  break;
19319  default: /* Horizontally centered */
19320  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_LEFT, false);
19321  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_RIGHT, false);
19322  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_CENTERH, true);
19323  break;
19324  }
19325  }
19326 
19333 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19335 #else
19336  int
19337 #endif
19338  alignment
19339  )
19340  {
19341  /* If GetIndependentRightPage() is ON, copy the vertical alignment
19342  * there as well (to make sure they are in synch). */
19343  switch (alignment)
19344  {
19345  case GRAPHICVERTALIGN_TOP:
19346  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_TOP, true);
19347  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_BOTTOM, false);
19348  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_CENTERV, false);
19349  if (GetIndependentRightPage())
19350  {
19351  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_TOP, true);
19352  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_BOTTOM, false);
19353  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_CENTERV, false);
19354  }
19355  break;
19356  case GRAPHICVERTALIGN_BOTTOM:
19357  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_TOP, false);
19358  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_BOTTOM, true);
19359  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_CENTERV, false);
19360  if (GetIndependentRightPage())
19361  {
19362  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_TOP, false);
19363  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_BOTTOM, true);
19364  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_CENTERV, false);
19365  }
19366  break;
19367  default:
19368  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_TOP, false);
19369  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_BOTTOM, false);
19370  Set16BitFlag(&_graphic.alignFlags, GRAPHIC_ALIGN_CENTERV, true);
19371  if (GetIndependentRightPage())
19372  {
19373  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_TOP, false);
19374  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_BOTTOM, false);
19375  Set16BitFlag(&_graphic.rightPgAlignFlags, GRAPHIC_ALIGN_CENTERV, true);
19376  }
19377  break;
19378  }
19379  }
19380 };
19381 
19382 
19383 
19397 {
19398 private:
19399 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
19400 
19401  EDTTextRepeatStyle2005 _repeatdef;
19402 
19403 protected:
19404  virtual EXTAG Tag() { return ot_TextRepeatStyle; }
19405  virtual int DataSizeLoad() { return sizeof(EDTTextRepeatStyle2005); }
19406  virtual void* Allocate() { return (void*) &_repeatdef; }
19407 
19412  virtual void CloneMemoryFrom(__FCBaseData* pSource)
19413  {
19414  memcpy(&_repeatdef, ((FCTextRepeatDef*)pSource)->_GetRepeatDef(), sizeof(_repeatdef));
19415  _datablock = &_repeatdef;
19416  _loadedsize = sizeof(_repeatdef);
19417  }
19418 
19419 
19420  virtual bool LoadFirst()
19421  {
19422  bool returnval = __FCNoInciOther::LoadFirst();
19423  if (!returnval) return false;
19424  /* Check that a string exists as well.
19425  * Otherwise, it might be possible that it returns true
19426  * even if there are no text repeats at all. */
19427  FCString* pString = CreateTextString();
19428  bool stringexists = !pString->IsEmpty();
19429  delete pString;
19430  return stringexists;
19431  }
19432 
19433 
19434  virtual __FCBaseData* CreateObject() { return new FCTextRepeatDef(); }
19435 
19440  bool _SaveTextAs(FCString* pString, CMPER itemno);
19441 
19444  bool _DeleteText();
19445 
19448  bool _DeleteEnclosure();
19449 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
19450 public:
19451 
19458  {
19460  TEXTREPJUST_LEFT = TEXT_REPEAT_LEFTJUST,
19461 
19463  TEXTREPJUST_RIGHT = TEXT_REPEAT_RITEJUST,
19464 
19466  TEXTREPJUST_CENTER = TEXT_REPEAT_CENTERED,
19467 
19469  TEXTREPJUST_FULL = TEXT_REPEAT_FULLJUST
19470  };
19471 
19477  {
19479  REPEATREPLACE_TIMESPLAYED = 0,
19480 
19483 
19485  REPEATREPLACE_TARGETMEASURE
19486  };
19487 
19488 
19489  virtual const char* ClassName() { return "FCTextRepeatDef"; }
19490  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_TEXTREPEATDEF; }
19491 
19492 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
19493 
19499  void* _GetRepeatDef() { return &_repeatdef; }
19500 
19501 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
19502 
19507  FCTextRepeatDef();
19508 
19514  virtual bool DeepSaveAs(CMPER itemno);
19515 
19521  virtual bool DeepDeleteData()
19522  {
19523  _DeleteEnclosure();
19524  _DeleteText();
19525  return DeleteData();
19526  }
19527 
19536  FCString* CreateTextString();
19537 
19538 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
19539 
19540  FCString* CreateTextString_GC();
19541 #endif
19542 
19553  bool SaveTextString(FCString *pString);
19554 
19569  bool DeepSaveNew(FCString* pString, FCEnclosure* pEnclosure);
19570 
19582  FCEnclosure* CreateEnclosure();
19583 
19584 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
19585 
19586  FCEnclosure* CreateEnclosure_GC();
19587 #endif
19588 
19599  bool SaveEnclosure(FCEnclosure* pEnclosure);
19600 
19606  {
19607  if (!pInfo) return;
19608  pInfo->SetNameByID(_repeatdef.font);
19609  pInfo->SetEnigmaStyles(_repeatdef.efx);
19610  pInfo->SetSize(_repeatdef.size);
19611  }
19612 
19618  {
19619  if (!pInfo) return;
19620  _repeatdef.font = pInfo->GetNameByID();
19621  _repeatdef.efx = pInfo->GetEnigmaStyles();
19622  _repeatdef.size = pInfo->GetSize();
19623  }
19624 
19630  bool GetUseThisFont() const
19631  {
19632  return GetBitFlag(_repeatdef.flag, TEXT_REPEAT_USETHISFONT);
19633  }
19634 
19640  void SetUseThisFont(bool state)
19641  {
19642  return Set16BitFlag(&_repeatdef.flag, TEXT_REPEAT_USETHISFONT, state);
19643  }
19644 
19651 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19652  TEXT_REPEAT_JUSTIFICATION
19653 #else
19654  int
19655 #endif
19656  GetJustification() const;
19657 
19664  void SetJustification(
19665 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19666  TEXT_REPEAT_JUSTIFICATION
19667 #else
19668  int
19669 #endif
19670  value
19671  );
19672 
19677 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19678  REPEAT_REPLACE_MODE
19679 #else
19680  int
19681 #endif
19682  GetReplaceMode() const;
19683 
19684 
19690  void SetReplaceMode(
19691 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19692  REPEAT_REPLACE_MODE
19693 #else
19694  int
19695 #endif
19696  value
19697  );
19698 
19699 
19700 #ifdef PDK_FRAMEWORK_DEBUG
19701  virtual void DebugDump()
19702  {
19704  }
19705 #endif
19706 
19707 };
19708 
19709 
19710 class FCSeparatePlacements;
19711 
19724 {
19725 private:
19726 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
19727  EDTTextRepeat2005 _textrepeat;
19728 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
19729 protected:
19730 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
19731 
19732  virtual EXTAG Tag() { return ot_TextRepeat2005; }
19733  virtual int DataSizeLoad() { return sizeof(EDTTextRepeat2005); }
19734  virtual void* Allocate() { return (void*) &_textrepeat; }
19735 
19740  virtual void CloneMemoryFrom(__FCBaseData* pSource)
19741  {
19742  memcpy(&_textrepeat, ((FCTextRepeat*)pSource)->_GetTextRepeat(), sizeof(_textrepeat));
19743  _datablock = &_textrepeat;
19744  _loadedsize = sizeof(_textrepeat);
19745  }
19746 
19747  virtual __FCBaseData* CreateObject() { return new FCTextRepeat(); }
19748 
19749 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
19750 public:
19751  virtual const char* ClassName() { return "FCTextRepeat"; }
19752  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_TEXTREPEAT; }
19753 
19754 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
19755 
19761  void* _GetTextRepeat() { return &_textrepeat; }
19762 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
19763 
19771  {
19773  REPSHOW_ALL = 0,
19774 
19777 
19779  REPSHOW_STAFFLIST
19780  };
19781 
19793  {
19796  REPTARGET_UNDEFINED = 0,
19797 
19799  REPTARGET_DEFID = 3,
19800 
19802  REPTARGET_MEASURENUM = 1,
19803 
19806  REPTARGET_BACKWARDS = 2,
19807 
19809  REPTARGET_NEVERSKIPENDING = 5,
19810 
19813  REPTARGET_FORWARDS = 8,
19814 
19816  REPTARGET_NEXTENDING = 9
19817  };
19818 
19819 
19828  {
19830  REPACTION_NEVERJUMP = 0,
19831 
19833  REPACTION_ALWAYSJUMP = 1,
19834 
19836  REPACTION_JUMPONPASS = 2,
19837 
19839  REPACTION_PLAYSECTION = 3,
19840 
19842  REPACTION_STOPONPASS = 4
19843  };
19844 
19850  {
19851  memset(&_textrepeat, 0, sizeof(_textrepeat));
19852  _datablock = &_textrepeat;
19853  _loadedsize = sizeof(_textrepeat);
19854  }
19855 
19862  bool AssignTextRepeatDef(FCTextRepeatDef* pDef);
19863 
19864 
19870  FCTextRepeatDef* CreateTextRepeatDef();
19871 
19872 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
19873 
19874  FCTextRepeatDef* CreateTextRepeatDef_GC();
19875 #endif
19876 
19889  FCSeparatePlacements* CreateSeparatePlacements();
19890 
19891 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
19892 
19893  FCSeparatePlacements* CreateSeparatePlacements_GC();
19894 #endif
19895 
19905  twobyte GetID() const { return _textrepeat.repnum; }
19906 
19916  void SetID(twobyte id) { _textrepeat.repnum = id; }
19917 
19923  Evpu16 GetHorizontalPos() const { return _textrepeat.horzPos; }
19924 
19930  void SetHorizontalPos(Evpu32 value) { _textrepeat.horzPos = value; }
19931 
19936  Evpu16 GetVerticalPos() const { return _textrepeat.vertPos; }
19937 
19942  void SetVerticalPos(Evpu32 value) { _textrepeat.vertPos = value; }
19943 
19949  int GetTarget() const { return _textrepeat.target; }
19950 
19956  void SetTarget(int value) { _textrepeat.target = value; }
19957 
19962  bool GetAutoUpdateTarget() const { return GetBitFlag(_textrepeat.flag, TXTRPT_AUTOUPDATE); }
19963 
19968  void SetAutoUpdateTarget(bool state) { Set16BitFlag(&_textrepeat.flag, TXTRPT_AUTOUPDATE, state); }
19969 
19977  bool GetIndividualPositioning() const { return GetBitFlag(_textrepeat.flag, TXTRPT_INDIVPLAC); }
19978 
19986  void SetIndividualPositioning(bool state) { Set16BitFlag(&_textrepeat.flag, TXTRPT_INDIVPLAC, state); }
19987 
19988 
19995 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
19996  REPSHOWMODES
19997 #else
19998  int
19999 #endif
20000  GetShowMode() const;
20001 
20008  void SetShowMode(
20009 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
20010  REPSHOWMODES
20011 #else
20012  int
20013 #endif
20014  mode);
20015 
20022  twobyte GetStaffListID() const { return _textrepeat.staffList; }
20023 
20029  void SetStaffListID(twobyte list)
20030  {
20031  if (list < 0) return;
20032  _textrepeat.staffList = list;
20033  Set16BitFlag(&_textrepeat.flag, TXTRPT_TOPSTAFFONLY, false);
20034  }
20035 
20041  twobyte GetTotalPasses() const { return _textrepeat.actuate; }
20042 
20048  void SetTotalPasses(twobyte totalpasses)
20049  {
20050  _textrepeat.actuate = totalpasses;
20051  }
20052 
20053 
20058  bool GetJumpIfIgnore() const { return GetBitFlag(_textrepeat.flag, TXTRPT_JMPIGNORE); }
20059 
20064  void SetJumpIfIgnore(bool state) { Set16BitFlag(&_textrepeat.flag, TXTRPT_JMPIGNORE, state); }
20065 
20066 
20071  bool GetResetOnRepeat() const { return GetBitFlag(_textrepeat.flag, TXTRPT_CLRonCHANGE); }
20072 
20077  void SetResetOnRepeat(bool state) { Set16BitFlag(&_textrepeat.flag, TXTRPT_CLRonCHANGE, state); }
20078 
20079 
20087 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
20088  REPTARGETTRIGGERS
20089 #else
20090  int
20091 #endif
20092  GetTargetTrigger() const;
20093 
20104  void SetTargetTrigger(
20105 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
20106  REPTARGETTRIGGERS
20107 #else
20108  int
20109 #endif
20110  mode);
20111 
20112 
20113 
20122 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
20123  REPACTIONS
20124 #else
20125  int
20126 #endif
20127  GetAction() const;
20128 
20137  void SetAction(
20138 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
20139  REPACTIONS
20140 #else
20141  int
20142 #endif
20143  mode);
20144 
20145 
20146 
20147 #ifdef PDK_FRAMEWORK_DEBUG
20148  virtual void DebugDump()
20149  {
20151  DebugOutHex("FCTextRepeat:flag: ", _textrepeat.flag);
20152  }
20153 #endif
20154 };
20155 
20156 
20162 {
20163 private:
20164 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
20165 
20166  EDTExecutableShapeDef _executableshapedef;
20167 
20168 protected:
20169  virtual EXTAG Tag() { return ot_ExecutableShapeDef; }
20170  virtual int DataSizeLoad() { return sizeof(EDTExecutableShapeDef); }
20171  virtual void* Allocate() { return (void*) &_executableshapedef; }
20172 
20177  virtual void CloneMemoryFrom(__FCBaseData* pSource)
20178  {
20179  memcpy(&_executableshapedef, ((FCExecutableShapeDef*)pSource)->_GetExecutableShapeDef(), sizeof(_executableshapedef));
20180  _datablock = &_executableshapedef;
20181  _loadedsize = sizeof(_executableshapedef);
20182  }
20183 
20188  virtual bool LoadNext()
20189  {
20190  EDataID olddataID = _dataid;
20191  _dataid.other.cmper ++;
20192  if (LoadDataBlock()) return true;
20193  _dataid = olddataID;
20194  return false;
20195  }
20196 
20197  virtual __FCBaseData* CreateObject() { return new FCExecutableShapeDef(); }
20198 
20199 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
20200 public:
20201  virtual const char* ClassName() { return "FCExecutableShapeDef"; }
20202  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_EXECUTABLESHAPEDEF; }
20203 
20204 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
20205 
20211  void* _GetExecutableShapeDef() { return &_executableshapedef; }
20212 
20213 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
20214 
20217 
20220  twobyte GetShapeID() { return _executableshapedef.shapeID; }
20221 
20224  void SetShapeID(twobyte shapeID) { _executableshapedef.shapeID = shapeID; }
20225 
20226 #ifdef PDK_FRAMEWORK_DEBUG
20227  virtual void DebugDump()
20228  {
20230  }
20231 #endif
20232 
20233 };
20234 
20235 
20249 {
20250 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
20251  private:
20253  EDTChordSuffix _chordsuffixold;
20254 #if FXT_VERSION >= FINALEVERSION_2012
20255  EDTChordSuffix2012 _chordsuffix2012;
20256 #endif
20257 protected:
20259  bool _Use2012Version() const;
20260 
20261  virtual EXTAG Tag() { return ot_ChordSuffix; }
20262  virtual int DataSizeLoad()
20263  {
20264 #if FXT_VERSION >= FINALEVERSION_2012
20265  if (_Use2012Version()) return sizeof(EDTChordSuffix2012);
20266 #endif
20267  return sizeof(EDTChordSuffix);
20268  }
20269  virtual void* Allocate()
20270  {
20271 #if FXT_VERSION >= FINALEVERSION_2012
20272  if (_Use2012Version()) return (void*) &_chordsuffix2012;
20273 #endif
20274  return (void*) &_chordsuffixold;
20275  }
20276  virtual EVERSION EnigmaVersion()
20277  {
20278  if (_Use2012Version()) return FINALEVERSION_2012;
20279  return FINALEVERSION_2010;
20280  }
20281 
20286  virtual void CloneMemoryFrom(__FCBaseData* pSource);
20287 
20288  virtual __FCBaseData* CreateObject() { return new FCChordSuffixElement(); }
20289 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
20290 public:
20291  virtual const char* ClassName() { return "FCChordSuffixElement"; }
20292  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_CHORDSUFFIXELEMENT; }
20293 
20294 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
20295 
20301  void* _GetDataPtr()
20302  {
20303 #if FXT_VERSION >= FINALEVERSION_2012
20304  if (_Use2012Version()) return &_chordsuffix2012;
20305 #endif
20306  return &_chordsuffixold;
20307  }
20308 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
20309 
20314 
20319  void GetFontInfo(FCFontInfo* pFontInfo);
20320 
20325  void SetFontInfo(FCFontInfo* pFontInfo);
20326 
20331  eUniChar32 GetSymbol() const;
20332 
20337  void SetSymbol(eUniChar32 symbol);
20338 
20343  bool GetNumberRepresentation() const;
20344 
20349  void SetNumberRepresentation(bool state);
20350 
20355  bool GetPrefixFlat() const;
20356 
20361  void SetPrefixFlat(bool state);
20362 
20367  bool GetPrefixSharp() const;
20368 
20373  void SetPrefixSharp(bool state);
20374 
20379  bool GetPrefixPlus() const;
20380 
20385  void SetPrefixPlus(bool state);
20386 
20391  bool GetPrefixMinus() const;
20392 
20397  void SetPrefixMinus(bool state);
20398 
20403  twobyte GetHorizontalOffset() const;
20404 
20409  void SetHorizontalOffset(twobyte value);
20410 
20415  twobyte GetVerticalOffset() const;
20416 
20421  void SetVerticalOffset(twobyte value);
20422 
20423 #ifdef PDK_FRAMEWORK_DEBUG
20424  virtual void DebugDump()
20425  {
20427  }
20428 #endif
20429 };
20430 
20431 
20432 #if FXT_VERSION >= FINALEVERSION_2012
20433 
20434 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
20435 
20436 /* MAKEEXTAG(edOther, 'f','t') doesn't work correctly. */
20437 
20438 const EXTAG __ot_FRETSTYLE = MAKEEXTAG(MAKETAG(edMultiInciOther,13), 'f','t');
20439 
20440 const int __MAX_FRET_NAME_LEN = 47; // Max number of characters of names of
20441 const int __MAX_FRET_NUM_TEXT_LEN = 23;
20442 
20443 #include "pragma_align_begin.h"
20444 struct __FCFretStyle // ot_FRETSTYLE (1 logical incidences, 14 physical incidences (0..13))
20445  // cmper comes from EDTChord2010::fbStyleID
20446 {
20447  // start of physical incident 0 (0 based)
20448  tbool showLastFret; // Show the last fret when drawing fretboards
20449  tbool rotate; // Rotate the diagram so the nut is on the left
20450  tbool fingNumWhite; // Draw fingering numbers white.
20451 
20452  // CMPERs of the various shapes that can be drawn on the fretboard diagram. When these
20453  // are zero, the hardcoded shapes will be used. (Hardcoded shapes are designed to look
20454  // like the Seville Font.)
20455 
20456  eShape fingStrShapeID; // ID of ot_SHAPEDEF record used for drawing
20457  // a fingered (closed) string shape
20458  eShape openStrShapeID; // ID of ot_SHAPEDEF record used for drawing
20459  // an open string shape
20460  eShape muteStrShapeID; // ID of ot_SHAPEDEF record used for drawing
20461  // a muted string shape
20462  // start of physical incident 1 (0 based)
20463  eShape barreShapeID; // ID of ot_SHAPEDEF record used for drawing
20464  // the fretboard barre shape
20465  eShape customShapeID; // ID of the ot_SHAPEDEF record used for
20466  // drawing the user defined shape
20467  utwobyte defNumFrets; // The number of frets to show by default in this style
20468 
20469  // Following are the high and low twobyte fields that, together, designate various
20470  // Efix32 values for the fretboard style.
20471 
20472  twobyte stringGapHi; // High and low twobyte values for
20473  twobyte stringGapLo; // Efix32 string gap (right edge to right edge)
20474 
20475  twobyte fretGapHi; // High and low twobyte values for
20476  // start of physical incident 2 (0 based)
20477  twobyte fretGapLo; // Efix32 fret gap (bottom edge to bottom edge)
20478 
20479  twobyte stringWidthHi; // High and low twobyte values for
20480  twobyte stringWidthLo; // Efix32 width of strings
20481 
20482  twobyte fretWidthHi; // High and low twobyte values for
20483  twobyte fretWidthLo; // Efix32 width of frets
20484 
20485  twobyte nutWidthHi; // High and low twobyte values for
20486  // start of physical incident 3 (0 based)
20487  twobyte nutWidthLo; // Efix32 width of the nut
20488 
20489  twobyte vertTextOffHi; // High and low twobyte values for
20490  twobyte vertTextOffLo; // Efix32 vert offset of fret number text
20491 
20492  twobyte horzTextOffHi; // High and low twobyte values for
20493  twobyte horzTextOffLo; // Efix32 horz offset of fret number text
20494 
20495  twobyte horzHandleOffHi; // High and low twobyte values for
20496  // start of physical incident 4 (0 based)
20497  twobyte horzHandleOffLo; // Efix32 horz offset of the fretboard's handle
20498 
20499  twobyte vertHandleOffHi; // High and low twobyte values for
20500  twobyte vertHandleOffLo; // Efix32 vert offset of the fretboard's handle
20501 
20502  twobyte whiteoutHi; // High and low twobyte values for
20503  twobyte whiteoutLo; // Efix32 whiteout of strings for fingering numbers
20504 
20505  // Font information
20506 
20507  EFONTID fretNumFontID; // Font ID, size and EFX data for the
20508  // start of physical incident 5 (0 based)
20509  PsPoint16 fretNumFontSize; // fret number font. (Designates which
20510  FLAG_16 fretNumFontEfx; // fret is the first shown in the diagram
20511 
20512  EFONTID fingNumFontID; // Font ID, size and EFX data for the
20513  PsPoint16 fingNumFontSize; // fingering numbers font used in the.
20514  FLAG_16 fingNumFontEfx; // fretboard diagrams
20515 
20516  // Fingering number offsets
20517  twobyte horzFingNumOffHi; // High and low twobyte values for
20518  // start of physical incident 6 (0 based)
20519  twobyte horzFingNumOffLo; // Efix32 horizontal finger number offset
20520 
20521  twobyte vertFingNumOffHi; // High and low twobyte values for
20522  twobyte vertFingNumOffLo; // Efix32 vertical finger number offset
20523 
20524  twobyte pad[3]; // Unused--padding to make size mult of OTSIZE
20525 
20526  // start of physical incident 7 (0 based)
20527  ECHAR name[__MAX_FRET_NAME_LEN + 1]; // The name of the fretboard style
20528 
20529  ECHAR fretNumText[__MAX_FRET_NUM_TEXT_LEN + 1];
20530  // The text to display after the
20531  // fret number (e.g., 'fr' or 'fret')
20532  // end of physical incident 13 (0 based)
20533 };
20534 #include "pragma_align_end.h"
20535 
20536 #endif /* #ifndef DOXYGEN_SHOULD_IGNORE_THIS */
20537 
20538 
20548 {
20549 private:
20550 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
20551  /* The data storage for the object. */
20552  __FCFretStyle _fretstyledef;
20553 
20554 protected:
20555  virtual EXTAG Tag() { return __ot_FRETSTYLE; }
20556  virtual int DataSizeLoad() { return sizeof(__FCFretStyle); }
20557  virtual void* Allocate() { return (void*)&_fretstyledef; }
20558  virtual EVERSION EnigmaVersion() { return FINALEVERSION_2010; }
20559 
20564  virtual void CloneMemoryFrom(__FCBaseData* pSource)
20565  {
20566  memcpy(&_fretstyledef, ((FCFretboardStyleDef*)pSource)->_GetFretStyleDef(), sizeof(_fretstyledef));
20567  _datablock = &_fretstyledef;
20568  _loadedsize = sizeof(_fretstyledef);
20569  }
20570 
20575  virtual bool LoadNext()
20576  {
20577  EDataID olddataID = _dataid;
20578  _dataid.other.cmper++;
20579  if (LoadDataBlock()) return true;
20580  _dataid = olddataID;
20581  return false;
20582  }
20583 
20584  virtual __FCBaseData* CreateObject() { return new FCFretboardStyleDef(); }
20585 
20586 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
20587 public:
20588  virtual const char* ClassName() { return "FCFretboardStyleDef"; }
20589  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_FRETBOARDSTYLEDEF; }
20590 
20591 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
20592 
20598  void* _GetFretStyleDef() { return &_fretstyledef; }
20599 
20600 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
20601 
20607  {
20608  memset(&_fretstyledef, 0, sizeof(_fretstyledef));
20609  _datablock = &_fretstyledef;
20610  _loadedsize = sizeof(_fretstyledef);
20611  }
20612 
20613  // *******
20614  // GETTERS
20615  // *******
20616 
20623  void GetName(FCString* pString)
20624  {
20625  if (!pString) return;
20626  pString->SetCString(_fretstyledef.name);
20627  }
20628 
20633  Efix32 GetStringSpacing() const { return MAKELONG(_fretstyledef.stringGapLo, _fretstyledef.stringGapHi); }
20634 
20639  Efix32 GetStringThickness() const { return MAKELONG(_fretstyledef.stringWidthLo, _fretstyledef.stringWidthHi); }
20640 
20645  Efix32 GetFretSpacing() const { return MAKELONG(_fretstyledef.fretGapLo, _fretstyledef.fretGapHi); }
20646 
20651  Efix32 GetFretThickness() const { return MAKELONG(_fretstyledef.fretWidthLo, _fretstyledef.fretWidthHi); }
20652 
20657  Efix32 GetNutThickness() const { return MAKELONG(_fretstyledef.nutWidthLo, _fretstyledef.nutWidthHi); }
20658 
20663  Efix32 GetHorizontalFingeringOffset() const { return MAKELONG(_fretstyledef.horzFingNumOffLo, _fretstyledef.horzFingNumOffHi); }
20664 
20669  Efix32 GetVerticalFingeringOffset() const { return MAKELONG(_fretstyledef.vertFingNumOffLo, _fretstyledef.vertFingNumOffHi); }
20670 
20675  Efix32 GetFingeringWhiteout() const { return MAKELONG(_fretstyledef.whiteoutLo, _fretstyledef.whiteoutHi); }
20676 
20681  Efix32 GetHorizontalHandleOffset() const { return MAKELONG(_fretstyledef.horzHandleOffLo, _fretstyledef.horzHandleOffHi); }
20682 
20687  Efix32 GetVerticalHandleOffset() const { return MAKELONG(_fretstyledef.vertHandleOffLo, _fretstyledef.vertHandleOffHi); }
20688 
20697  void GetFretNumberText(FCString* pString)
20698  {
20699  if (!pString) return;
20700  pString->SetCString(_fretstyledef.fretNumText);
20701  }
20702 
20707  Efix32 GetHorizontalFretNumberOffset() const { return MAKELONG(_fretstyledef.horzTextOffLo, _fretstyledef.horzTextOffHi); }
20708 
20713  Efix32 GetVerticalFretNumberOffset() const { return MAKELONG(_fretstyledef.vertTextOffLo, _fretstyledef.vertTextOffHi); }
20714 
20719  int GetFretCountDefault() const { return _fretstyledef.defNumFrets; }
20720 
20725  bool GetShowLastFret() const { return _fretstyledef.showLastFret != 0; }
20726 
20733  bool GetRotate() const { return _fretstyledef.rotate != 0; }
20734 
20739  bool GetDrawFingeringWhite() const { return _fretstyledef.fingNumWhite != 0; }
20740 
20745  twobyte GetFingeredShapeID() const
20746  {
20747  return _fretstyledef.fingStrShapeID;
20748  }
20749 
20754  twobyte GetOpenStringShapeID() const
20755  {
20756  return _fretstyledef.openStrShapeID;
20757  }
20758 
20763  twobyte GetMuteStringShapeID() const
20764  {
20765  return _fretstyledef.muteStrShapeID;
20766  }
20767 
20772  twobyte GetBarreShapeID() const
20773  {
20774  return _fretstyledef.barreShapeID;
20775  }
20776 
20781  twobyte GetCustomShapeID() const
20782  {
20783  return _fretstyledef.customShapeID;
20784  }
20785 
20793  {
20794  if (!pFontInfo) return;
20795  pFontInfo->SetNameByID(_fretstyledef.fingNumFontID);
20796  pFontInfo->SetSize(_fretstyledef.fingNumFontSize);
20797  pFontInfo->SetEnigmaStyles(_fretstyledef.fingNumFontEfx);
20798  }
20799 
20807  {
20808  if (!pFontInfo) return;
20809  pFontInfo->SetNameByID(_fretstyledef.fretNumFontID);
20810  pFontInfo->SetSize(_fretstyledef.fretNumFontSize);
20811  pFontInfo->SetEnigmaStyles(_fretstyledef.fretNumFontEfx);
20812  }
20813 
20814  // *******
20815  // SETTERS
20816  // *******
20817 
20826  void SetName(FCString* pString)
20827  {
20828  if (!pString) return;
20829  memset(&_fretstyledef.name, 0, __MAX_FRET_NAME_LEN + 1);
20830  strncpy(_fretstyledef.name, pString->GetCString(), __MAX_FRET_NAME_LEN);
20831  }
20832 
20837  void SetStringSpacing(Efix32 value)
20838  {
20839  _fretstyledef.stringGapLo = LOWORD(value);
20840  _fretstyledef.stringGapHi = HIWORD(value);
20841  }
20842 
20847  void SetStringThickness(Efix32 value)
20848  {
20849  _fretstyledef.stringWidthLo = LOWORD(value);
20850  _fretstyledef.stringWidthHi = HIWORD(value);
20851  }
20852 
20857  void SetFretSpacing(Efix32 value)
20858  {
20859  _fretstyledef.fretGapLo = LOWORD(value);
20860  _fretstyledef.fretGapHi = HIWORD(value);
20861  }
20862 
20867  void SetFretThickness(Efix32 value)
20868  {
20869  _fretstyledef.fretWidthLo = LOWORD(value);
20870  _fretstyledef.fretWidthHi = HIWORD(value);
20871  }
20872 
20877  void SetNutThickness(Efix32 value)
20878  {
20879  _fretstyledef.nutWidthLo = LOWORD(value);
20880  _fretstyledef.nutWidthHi = HIWORD(value);
20881  }
20882 
20887  void SetHorizontalFingeringOffset(Efix32 value)
20888  {
20889  _fretstyledef.horzFingNumOffLo = LOWORD(value);
20890  _fretstyledef.horzFingNumOffHi = HIWORD(value);
20891  }
20892 
20897  void SetVerticalFingeringOffset(Efix32 value)
20898  {
20899  _fretstyledef.vertFingNumOffLo = LOWORD(value);
20900  _fretstyledef.vertFingNumOffHi = HIWORD(value);
20901  }
20902 
20907  void SetFingeringWhiteout(Efix32 value)
20908  {
20909  _fretstyledef.whiteoutLo = LOWORD(value);
20910  _fretstyledef.whiteoutHi = HIWORD(value);
20911  }
20912 
20917  void SetHorizontalHandleOffset(Efix32 value)
20918  {
20919  _fretstyledef.horzHandleOffLo = LOWORD(value);
20920  _fretstyledef.horzHandleOffHi = HIWORD(value);
20921  }
20922 
20927  void SetVerticalHandleOffset(Efix32 value)
20928  {
20929  _fretstyledef.vertHandleOffLo = LOWORD(value);
20930  _fretstyledef.vertHandleOffHi = HIWORD(value);
20931  }
20932 
20942  {
20943  if (!pString) return;
20944  memset(&_fretstyledef.fretNumText, 0, __MAX_FRET_NUM_TEXT_LEN + 1);
20945  strncpy(_fretstyledef.fretNumText, pString->GetCString(), __MAX_FRET_NUM_TEXT_LEN);
20946  }
20947 
20953  {
20954  _fretstyledef.horzTextOffLo = LOWORD(value);
20955  _fretstyledef.horzTextOffHi = HIWORD(value);
20956  }
20957 
20962  void SetVerticalFretNumberOffset(Efix32 value)
20963  {
20964  _fretstyledef.vertTextOffLo = LOWORD(value);
20965  _fretstyledef.vertTextOffHi = HIWORD(value);
20966  }
20967 
20972  void SetFretCountDefault(int value) { _fretstyledef.defNumFrets = value; }
20973 
20978  void SetShowLastFret(bool state) { _fretstyledef.showLastFret = state; }
20979 
20986  void SetRotate(bool state) { _fretstyledef.rotate = state; }
20987 
20992  void SetDrawFingeringWhite(bool state) { _fretstyledef.fingNumWhite = state; }
20993 
20998  void SetFingeredShapeID(twobyte value)
20999  {
21000  _fretstyledef.fingStrShapeID = value;
21001  }
21002 
21007  void SetOpenStringShapeID(twobyte value)
21008  {
21009  _fretstyledef.openStrShapeID = value;
21010  }
21011 
21016  void SetMuteStringShapeID(twobyte value)
21017  {
21018  _fretstyledef.muteStrShapeID = value;
21019  }
21020 
21025  void SetBarreShapeID(twobyte value)
21026  {
21027  _fretstyledef.barreShapeID = value;
21028  }
21029 
21034  void SetCustomShapeID(twobyte value)
21035  {
21036  _fretstyledef.customShapeID = value;
21037  }
21038 
21046  {
21047  if (!pFontInfo) return;
21048  _fretstyledef.fingNumFontID = pFontInfo->GetNameByID();
21049  _fretstyledef.fingNumFontSize = pFontInfo->GetSize();
21050  _fretstyledef.fingNumFontEfx = pFontInfo->GetEnigmaStyles();
21051  }
21052 
21060  {
21061  if (!pFontInfo) return;
21062  _fretstyledef.fretNumFontID = pFontInfo->GetNameByID();
21063  _fretstyledef.fretNumFontSize = pFontInfo->GetSize();
21064  _fretstyledef.fretNumFontEfx = pFontInfo->GetEnigmaStyles();
21065  }
21066 
21067 #ifdef PDK_FRAMEWORK_DEBUG
21068  virtual void DebugDump()
21069  {
21071  }
21072 #endif
21073 
21074 };
21075 
21076 #endif
21077 
21078 
21079 #if FXT_VERSION >= FINALEVERSION_2012
21080 
21083 {
21084 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
21085  private:
21087  EDTFretGroup2012 _fretgroup;
21088 
21089 protected:
21090  virtual EXTAG Tag() { return otx_FretGroup; }
21091  virtual int DataSizeLoad() { return sizeof(EDTFretGroup2012); }
21092  virtual void* Allocate() { return (void*) &_fretgroup; }
21093  virtual EVERSION EnigmaVersion() { return FINALEVERSION_2012; }
21094 
21099  virtual void CloneMemoryFrom(__FCBaseData* pSource)
21100  {
21101  memcpy(&_fretgroup, ((FCFretboardGroupDef*)pSource)->_GetDataPtr(), sizeof(_fretgroup));
21102  _datablock = &_fretgroup;
21103  _loadedsize = sizeof(_fretgroup);
21104  }
21105 
21106  virtual __FCBaseData* CreateObject() { return new FCFretboardGroupDef(); }
21107 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
21108 public:
21109  virtual const char* ClassName() { return "FCFretboardGroupDef"; }
21110  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_FRETBOARDGROUPDEF; }
21111 
21112 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
21113 
21119  void* _GetDataPtr() { return &_fretgroup; }
21120 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
21121 
21124 
21125  virtual bool LoadFirst()
21126  {
21127  return Load(1, 0);
21128  }
21129 
21132  twobyte _GetInci() { return _dataid.other.inci; }
21133 
21134 #ifdef PDK_FRAMEWORK_DEBUG
21135  virtual void DebugDump()
21136  {
21138  }
21139 #endif
21140 };
21141 
21142 #endif
21143 
21144 
21145 
21158 {
21159 private:
21160 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
21161  /* Data is dynamically stored! */
21162 
21163 protected:
21164  virtual EXTAG Tag() { return ot_EndingRepeat; }
21165 
21166  void _AllocateMemory(int size);
21167 
21168  virtual int DataSizeLoad();
21169  virtual int DataSizeSave();
21170  virtual void* Allocate();
21171  virtual void Deallocate();
21172  virtual bool IsDynamicSize() { return true; }
21173 
21174  virtual __FCBaseData* CreateObject() { return new FCEndingRepeat(); }
21175 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
21176 public:
21177 
21178  virtual const char* ClassName() { return "FCEndingRepeat"; }
21179  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_ENDINGREPEAT; }
21180 
21181 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
21182 
21186  EDTEndingRepeat2005* _TypeCast() const { return (EDTEndingRepeat2005*) _datablock; }
21187 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
21188 
21195  {
21196  _AllocateMemory(sizeof(EDTEndingRepeat2005));
21197  }
21198 
21204  virtual bool DeepDeleteData();
21205 
21211  virtual bool DeepSaveAs(CMPER itemno);
21212 
21219  twobyte GetStaffListID() const { return _TypeCast()->staffList; }
21220 
21225  bool GetSkipOnIgnore() const
21226  {
21227  return GetBitFlag(_TypeCast()->flag, EndRepeat_JMPIGNORE);
21228  }
21229 
21234  eMeas GetTargetMeasure() const
21235  {
21236  return _TypeCast()->nextend;
21237  }
21238 
21244  {
21245  return GetBitFlag(_TypeCast()->flag, EndRepeat_INDIVPLAC);
21246  }
21247 
21253  {
21254  return _TypeCast()->line2;
21255  }
21256 
21262  {
21263  return _TypeCast()->pos;
21264  }
21265 
21271  {
21272  return _TypeCast()->line;
21273  }
21274 
21280  {
21281  return _TypeCast()->pos2;
21282  }
21283 
21289  {
21290  return _TypeCast()->endline;
21291  }
21292 
21298  {
21299  return _TypeCast()->textpos;
21300  }
21301 
21307  {
21308  return _TypeCast()->textline;
21309  }
21310 
21317 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21319 #else
21320  int
21321 #endif
21322  GetShowMode() const;
21323 
21328  int GetPassNumbersCount() const { return _TypeCast()->numTotalPasses; }
21329 
21338 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21340 #else
21341 int
21342 #endif
21344  {
21345  switch (_TypeCast()->flag & EndRepeat_ACTION_BITS)
21346  {
21347  case 0:
21349  case 0x10:
21351  case 0x20:
21353  case 0x50:
21355  default:
21357  }
21358  }
21359 
21365  void SetStaffListID(twobyte list)
21366  {
21367  if (list < 0) return;
21368  _TypeCast()->staffList = list;
21369  Set16BitFlag(&_TypeCast()->flag, EndRepeat_TOPSTAFFONLY, false);
21370  }
21371 
21376  void SetSkipOnIgnore(bool state)
21377  {
21378  Set16BitFlag(&_TypeCast()->flag, EndRepeat_JMPIGNORE, state);
21379  }
21380 
21386  void SetTargetMeasure(eMeas measure)
21387  {
21388  _TypeCast()->nextend = measure;
21389  }
21390 
21395  void SetIndividualPositioning(bool state)
21396  {
21397  Set16BitFlag(&_TypeCast()->flag, EndRepeat_INDIVPLAC, state);
21398  }
21399 
21404  void SetVerticalTopBracketPosition(Evpu16 position)
21405  {
21406  _TypeCast()->line2 = position;
21407  }
21408 
21413  void SetHorizontalLeftBracketPosition(Evpu16 position)
21414  {
21415  _TypeCast()->pos = position;
21416  }
21417 
21422  void SetVerticalLeftBracketPosition(Evpu16 position)
21423  {
21424  _TypeCast()->line = position;
21425  }
21426 
21432  {
21433  _TypeCast()->pos2 = position;
21434  }
21435 
21440  void SetVerticalRightBracketPosition(Evpu16 position)
21441  {
21442  _TypeCast()->endline = position;
21443  }
21444 
21449  void SetHorizontalTextPosition(Evpu16 position)
21450  {
21451  _TypeCast()->textpos = position;
21452  }
21453 
21458  void SetVerticalTextPosition(Evpu16 position)
21459  {
21460  _TypeCast()->textline = position;
21461  }
21462 
21463 
21470  void SetShowMode(
21471 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21473 #else
21474  int
21475 #endif
21476  mode);
21477 
21478 
21487  FCString* CreateTextString();
21488 
21489 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
21490 
21491  FCString* CreateTextString_GC();
21492 #endif
21493 
21504  bool SaveTextString(FCString* pString);
21505 
21514  bool GetPassNumbers(FCNumbers* pNumbers);
21515 
21527  bool SetPassNumbers(FCNumbers* pNumbers);
21528 
21537 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21539 #else
21540 int
21541 #endif
21542  value
21543  )
21544  {
21545  switch (value)
21546  {
21548  _TypeCast()->flag &= ~EndRepeat_ACTION_BITS;
21549  _TypeCast()->flag |= 0x10;
21550  break;
21552  _TypeCast()->flag &= ~EndRepeat_ACTION_BITS;
21553  _TypeCast()->flag |= 0x20;
21554  break;
21556  _TypeCast()->flag &= ~EndRepeat_ACTION_BITS;
21557  _TypeCast()->flag |= 0x50;
21558  break;
21560  _TypeCast()->flag &= ~EndRepeat_ACTION_BITS;
21561  break;
21565  break;
21566  }
21567  }
21568 
21569 
21584  FCSeparatePlacements* CreateSeparatePlacements();
21585 
21586 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
21587 
21588  FCSeparatePlacements* CreateSeparatePlacements_GC();
21589 #endif
21590 
21605  FCSeparatePlacements* CreateTextSeparatePlacements();
21606 
21607 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
21608 
21609  FCSeparatePlacements* CreateTextSeparatePlacements_GC();
21610 #endif
21611 };
21612 
21613 
21624 {
21625 private:
21626 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
21627 
21630  EDTBackwardRepeat2005 _backwardrepeat;
21631 
21632 protected:
21633  virtual EXTAG Tag() { return ot_BackwardRepeat; }
21634  virtual int DataSizeLoad() { return sizeof(EDTBackwardRepeat2005); }
21635  virtual void* Allocate() { return (void*) &_backwardrepeat; }
21636 
21641  virtual void CloneMemoryFrom(__FCBaseData* pSource)
21642  {
21643  memcpy(&_backwardrepeat, ((FCBackwardRepeat*)pSource)->_GetBackwardRepeat(), sizeof(_backwardrepeat));
21644  _datablock = &_backwardrepeat;
21645  _loadedsize = sizeof(_backwardrepeat);
21646  }
21647 
21648  virtual __FCBaseData* CreateObject() { return new FCBackwardRepeat(); }
21649 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
21650 public:
21651 
21652  virtual const char* ClassName() { return "FCBackwardRepeat"; }
21653  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_BACKWARDREPEAT; }
21654 
21655 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
21656 
21662  void* _GetBackwardRepeat() { return &_backwardrepeat; }
21663 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
21664 
21670  {
21671  memset(&_backwardrepeat, 0, sizeof(_backwardrepeat));
21672  _datablock = &_backwardrepeat;
21673  _loadedsize = sizeof(_backwardrepeat);
21674  }
21675 
21676 
21681  eMeas GetTargetMeasure() const
21682  {
21683  return _backwardrepeat.target;
21684  }
21685 
21691  {
21692  return GetBitFlag(_backwardrepeat.flag, BackRepeat_INDIVPLAC);
21693  }
21694 
21700  twobyte GetTotalPasses() const
21701  {
21702  return _backwardrepeat.actuate;
21703  }
21704 
21709  Evpu16 GetTopBracketPosition() const
21710  {
21711  return _backwardrepeat.line2;
21712  }
21713 
21719  {
21720  return _backwardrepeat.line1;
21721  }
21722 
21728  {
21729  return _backwardrepeat.pos1;
21730  }
21731 
21736  Evpu16 GetLeftBracketPosition() const
21737  {
21738  return _backwardrepeat.pos2;
21739  }
21740 
21745  twobyte GetStaffListID() const
21746  {
21747  return _backwardrepeat.staffList;
21748  }
21749 
21756 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21758 #else
21759  int
21760 #endif
21761  GetShowMode() const
21762  {
21763  if (GetBitFlag(_backwardrepeat.flag, BackRepeat_TOPSTAFFONLY)) return FCTextRepeat::REPSHOW_TOPSTAFF;
21764  if (_backwardrepeat.staffList) return FCTextRepeat::REPSHOW_STAFFLIST;
21766  }
21767 
21775 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21777 #else
21778  int
21779 #endif
21780  mode)
21781  {
21782  switch (mode)
21783  {
21785  Set16BitFlag(&_backwardrepeat.flag, BackRepeat_TOPSTAFFONLY, true);
21786  _backwardrepeat.staffList = 0;
21787  break;
21789  Set16BitFlag(&_backwardrepeat.flag, BackRepeat_TOPSTAFFONLY, false);
21790  if (!_backwardrepeat.staffList) _backwardrepeat.staffList = 1;
21791  break;
21793  Set16BitFlag(&_backwardrepeat.flag, BackRepeat_TOPSTAFFONLY, false);
21794  _backwardrepeat.staffList = 0;
21795  break;
21796  }
21797  }
21798 
21799 
21804  void SetTargetMeasure(eMeas measure)
21805  {
21806  _backwardrepeat.target = measure;
21807  }
21808 
21813  void SetIndividualPositioning(bool state)
21814  {
21815  return Set16BitFlag(&_backwardrepeat.flag, BackRepeat_INDIVPLAC, state);
21816  }
21817 
21823  void SetTotalPasses(twobyte passes)
21824  {
21825  _backwardrepeat.actuate = passes;
21826  }
21827 
21837 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21839 #else
21840 int
21841 #endif
21843  {
21844  switch (_backwardrepeat.flag & BackRepeat_ACTION_BITS)
21845  {
21846  case 0:
21848  case 0x10:
21850  case 0x20:
21852  default:
21854  }
21855  }
21856 
21862  {
21863  return GetBitFlag(_backwardrepeat.flag, BackRepeat_CLRonCHANGE);
21864  }
21865 
21870  void SetTopBracketPosition(Evpu16 position)
21871  {
21872  _backwardrepeat.line2 = position;
21873  }
21874 
21879  void SetBottomBracketPosition(Evpu16 position)
21880  {
21881  _backwardrepeat.line1 = position;
21882  }
21883 
21888  void SetRightBracketPosition(Evpu16 position)
21889  {
21890  _backwardrepeat.pos1 = position;
21891  }
21892 
21897  void SetLeftBracketPosition(Evpu16 position)
21898  {
21899  _backwardrepeat.pos2 = position;
21900  }
21901 
21906  void SetStaffListID(twobyte stafflistid)
21907  {
21908  _backwardrepeat.staffList = stafflistid;
21909  }
21910 
21920 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21922 #else
21923 int
21924 #endif
21925  value
21926  )
21927  {
21928  switch (value)
21929  {
21931  _backwardrepeat.flag &= ~BackRepeat_ACTION_BITS;
21932  _backwardrepeat.flag |= 0x10;
21933  break;
21935  _backwardrepeat.flag &= ~BackRepeat_ACTION_BITS;
21936  _backwardrepeat.flag |= 0x20;
21937  break;
21939  _backwardrepeat.flag &= ~BackRepeat_ACTION_BITS;
21940  break;
21945  break;
21946  }
21947  }
21948 
21953  void SetResetOnRepeatAction(bool state)
21954  {
21955  Set16BitFlag(&_backwardrepeat.flag, BackRepeat_CLRonCHANGE, state);
21956  }
21957 
21966 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
21968 #else
21969  int
21970 #endif
21971  GetAction() const
21972  {
21973  switch (_backwardrepeat.flag & 0xc00)
21974  {
21975  case 0x00:
21977  case 0x400:
21979  case 0x800:
21981  default:
21982  break;
21983  }
21984 
21985 #ifdef PDK_FRAMEWORK_DEBUG
21986  DebugOutHex("Undefined flag state for FCBackwardRepeat:GetAction: ", _backwardrepeat.flag);
21987 #endif
21989  }
21990 
22000 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
22002 #else
22003  int
22004 #endif
22005  mode)
22006  {
22007  switch (mode)
22008  {
22010  /* 0x0c40 bits should all be off */
22011  Set16BitFlag(&_backwardrepeat.flag, 0x0c00, false);
22012  break;
22013 
22015  /* 0x0400 (in the 0x0c40 bit set) represents the "jump on pass" */
22016  Set16BitFlag(&_backwardrepeat.flag, 0x0c00, false);
22017  Set16BitFlag(&_backwardrepeat.flag, 0x0400, true);
22018  break;
22019 
22021  /* 0x0800 (in the 0x0c40 bit set) represents the "play section" */
22022  Set16BitFlag(&_backwardrepeat.flag, 0x0c00, false);
22023  Set16BitFlag(&_backwardrepeat.flag, 0x0800, true);
22024  break;
22025 
22028  break;
22029  }
22030  }
22031 
22044  FCSeparatePlacements* CreateSeparatePlacements();
22045 
22046 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
22047 
22048  FCSeparatePlacements* CreateSeparatePlacements_GC();
22049 #endif
22050 
22051 };
22052 
22053 
22060 {
22061 private:
22062 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22063 
22066  EDTBeatChartElement _beatchartelement;
22067 
22068 protected:
22069  virtual EXTAG Tag() { return ot_BeatChartElement; }
22070  virtual int DataSizeLoad() { return sizeof(EDTBeatChartElement); }
22071  virtual void* Allocate() { return (void*) &_beatchartelement; }
22072 
22077  virtual void CloneMemoryFrom(__FCBaseData* pSource)
22078  {
22079  memcpy(&_beatchartelement, ((FCBeatChartElement*)pSource)->_GetBeatChartElement(), sizeof(_beatchartelement));
22080  _datablock = &_beatchartelement;
22081  _loadedsize = sizeof(_beatchartelement);
22082  }
22083 
22084  virtual __FCBaseData* CreateObject() { return new FCBeatChartElement(); }
22085 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
22086 public:
22087 
22088  virtual const char* ClassName() { return "FCBeatChartElement"; }
22089  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_BEATCHARTELEMENT; }
22090 
22091 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22092 
22098  void* _GetBeatChartElement() { return &_beatchartelement; }
22099 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
22100 
22107  {
22108  memset(&_beatchartelement, 0, sizeof(_beatchartelement));
22109  _datablock = &_beatchartelement;
22110  _loadedsize = sizeof(_beatchartelement);
22111  }
22112 
22126  TimeEdu32 GetMeasurePos() const { return _beatchartelement.dura; }
22127 
22136  Evpu16 GetHorizontalPosition() const { return _beatchartelement.posi; }
22137 
22147  Evpu16 GetFullSpan() const
22148  {
22149  if (!GetInitElement()) return 0;
22150  return _beatchartelement.posi;
22151  }
22152 
22165  Evpu16 GetReferenceWidth() const
22166  {
22167  if (!GetInitElement()) return 0;
22168  return _beatchartelement.minpos;
22169  }
22170 
22176  Evpu16 GetMinimumPosition() const { return _beatchartelement.minpos; }
22177 
22189  {
22190  if (GetInitElement()) return 0;
22191  return _beatchartelement.nextposi;
22192  }
22193 
22199  bool GetInitElement() const { return _beatchartelement.incizero != 0; }
22200 
22208  Evpu16 CalcWidth()
22209  {
22210  if (GetInitElement()) return 0;
22211  return (GetNextHorizontalPosition() - GetHorizontalPosition());
22212  }
22213 
22219  void SetMeasurePos(TimeEdu32 edupos) { _beatchartelement.dura = edupos; }
22220 
22232  void SetWidth(Evpu16 width)
22233  {
22234  if (GetInitElement()) return;
22235  _beatchartelement.nextposi = width + _beatchartelement.posi;
22236  }
22237 
22245  void SetHorizontalPosition(Evpu16 position)
22246  {
22247  if (GetInitElement()) return;
22248  _beatchartelement.posi = position;
22249  }
22250 
22259  void SetNextHorizontalPosition(Evpu16 value)
22260  {
22261  if (GetInitElement()) return;
22262  _beatchartelement.nextposi = value;
22263  }
22264 
22272  void SetFullSpan(Evpu16 span)
22273  {
22274  if (!GetInitElement()) return;
22275  _beatchartelement.posi = span;
22276  }
22277 
22285  void SetReferenceWidth(Evpu16 width)
22286  {
22287  if (!GetInitElement()) return;
22288  _beatchartelement.minpos = width;
22289  }
22290 
22296  void SetMinimumPosition(Evpu16 value) { _beatchartelement.minpos = value; }
22297 
22311  bool MoveHorizontalPosition(Evpu16 offset, FCBeatChartElements* pBeatChart);
22312 
22313 
22314 #ifdef PDK_FRAMEWORK_DEBUG
22315  virtual void DebugDump()
22316  {
22318  DebugOutDigit("Measure Pos: ", GetMeasurePos());
22319  DebugOutDigit("Horizontal Position: ", GetHorizontalPosition());
22320  DebugOutDigit("Minimum position: ", GetMinimumPosition());
22321  DebugOutDigit("Next horizontal position:", GetNextHorizontalPosition());
22322  DebugOutBool("Init element: ", GetInitElement());
22323  }
22324 #endif
22325 };
22326 
22327 
22335 {
22336 private:
22337 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22338 
22341  EDTTempo _tempo;
22342 
22343 protected:
22344  virtual EXTAG Tag() { return ot_Tempo; }
22345  virtual int DataSizeLoad() { return sizeof(EDTTempo); }
22346  virtual void* Allocate() { return (void*) &_tempo; }
22347 
22352  virtual void CloneMemoryFrom(__FCBaseData* pSource)
22353  {
22354  memcpy(&_tempo, ((FCTempoElement*)pSource)->_GetTempoElement(), sizeof(_tempo));
22355  _datablock = &_tempo;
22356  _loadedsize = sizeof(_tempo);
22357  }
22358 
22359  virtual __FCBaseData* CreateObject() { return new FCTempoElement(); }
22360 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
22361 public:
22362 
22363  virtual const char* ClassName() { return "FCTempoElement"; }
22364  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_TEMPOELEMENT; }
22365 
22366 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22367 
22373  void* _GetTempoElement() { return &_tempo; }
22374 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
22375 
22381  {
22382  memset(&_tempo, 0, sizeof(_tempo));
22383  _tempo.unit = 1000;
22384  _datablock = &_tempo;
22385  _loadedsize = sizeof(_tempo);
22386  }
22387 
22392  void SetMeasurePos(twobyte edupos) { _tempo.eldur = edupos; }
22393 
22398  virtual TimeEdu32 GetMeasurePos() const { return _tempo.eldur; }
22399 
22405  bool GetAbsolute() const { return _tempo.flag == TIMEDIAL_ABSOLUTE; }
22406 
22413  void SetAbsolute(bool value)
22414  {
22415  _tempo.flag = value ? TIMEDIAL_ABSOLUTE : TIMEDIAL_RELATIVE;
22416  }
22417 
22423  fourbyte GetRatio() const { return _tempo.ratio; }
22424 
22429  void SetRatio(fourbyte value) { _tempo.ratio = value; }
22430 
22440  float CalcValue()
22441  {
22442  if (GetAbsolute())
22443  {
22444  float result = _tempo.ratio * _tempo.unit;
22445  result /= 65536;
22446  /* The value here is relative to 60 BPM == 1024 */
22447  result *= 60;
22448  result /= 1024;
22449  /* Round it off to 2 decimals */
22450  fourbyte fb = (fourbyte) (result * 100);
22451  result = fb;
22452  result /= 100;
22453  return result;
22454  }
22455  else
22456  {
22457  /* Relative */
22458  float result = GetRatio();
22459  result /= 10;
22460  return result;
22461  }
22462  }
22463 
22470  void SetAbsoluteValue(float value)
22471  {
22472  SetAbsolute(true);
22473  _tempo.unit = 1000;
22474  value *= 1024;
22475  value /= 60;
22476  value *= 65536;
22477  value /= 1000;
22478  _tempo.ratio = (fourbyte) value;
22479  }
22480 
22487  void SetRelativeValue(float value)
22488  {
22489  SetAbsolute(false);
22490  SetRatio((fourbyte) (value * 10));
22491  }
22492 };
22493 
22494 
22495 
22496 #ifdef PDK_FRAMEWORK_TINYXML
22497 
22504 {
22505  int _midikey;
22506  PERC_NOTE_TYPE _notetype;
22507  FCString _name;
22508 public:
22515  PERCNOTETYPE_BASSDRUM = 13,
22516  PERCNOTETYPE_BELLTREE = 70,
22517  PERCNOTETYPE_BONGO_HIGH = 32,
22518  PERCNOTETYPE_BONGO_LOW = 33,
22519  PERCNOTETYPE_CONGA = 36,
22520  PERCNOTETYPE_COWBELL = 6,
22521  PERCNOTETYPE_CASTANETS = 362,
22522  PERCNOTETYPE_CYMBAL_CHINA = 17,
22523  PERCNOTETYPE_CYMBAL_CRASH = 4,
22524  PERCNOTETYPE_CYMBAL_RIDE = 18,
22525  PERCNOTETYPE_CYMBAL_SIZZLE = 121,
22526  PERCNOTETYPE_CYMBAL_SPLASH = 21,
22527  PERCNOTETYPE_CLAVES = 35,
22528  PERCNOTETYPE_GONG_SMALL = 137,
22529  PERCNOTETYPE_GONG_MEDIUM = 136,
22530  PERCNOTETYPE_GONG_LARGE = 135,
22531  PERCNOTETYPE_HIHAT_CLOSED = 15,
22532  PERCNOTETYPE_HIHAT_FOOT = 16,
22533  PERCNOTETYPE_HIHAT_OPEN = 14,
22534  PERCNOTETYPE_KICKDRUM = 2,
22535  PERCNOTETYPE_RHYTHMCUES = 235,
22536  PERCNOTETYPE_ROTOTOM_MID = 321,
22537  PERCNOTETYPE_SIDEDRUM = 279,
22538  PERCNOTETYPE_SNAREDRUM = 1,
22539  PERCNOTETYPE_TAMBOURINE = 7,
22540  PERCNOTETYPE_TAMTAM = 149,
22541  PERCNOTETYPE_TOM_HIGH = 24,
22542  PERCNOTETYPE_TOM_HIGHMID = 25,
22543  PERCNOTETYPE_TOM_LOW = 27,
22544  PERCNOTETYPE_TRIANGLE_MUTE = 8,
22545  PERCNOTETYPE_TRIANGLE_OPEN = 9,
22546  PERCNOTETYPE_VIBRASLAP = 12,
22547  PERCNOTETYPE_WINDCHIMES = 460,
22548  PERCNOTETYPE_WOODBLOCK_HIGH = 10
22549  };
22550 
22552  FCPercussionMapNote(int midikey, int notetype, const char* pszName) : __FCBase()
22553  {
22554  _midikey = midikey;
22555  _notetype = notetype;
22556  _name.SetCString(pszName);
22557  }
22558 
22563  PERC_NOTE_TYPE GetRawNoteType() const { return _notetype; }
22564 
22572  PERC_NOTE_TYPE GetNoteType() const { return _notetype & 0x0fff; }
22573 
22578  twobyte GetOrderID() const
22579  {
22580  twobyte returnvalue = _notetype & 0xf000;
22581  returnvalue /= 0x1000;
22582  return returnvalue;
22583  }
22584 
22589  int GetMidiNote() const { return _midikey; }
22590 
22593  const char* GetName() const { return _name.GetCString(); }
22594 };
22595 
22596 
22605 {
22606  twobyte _percussionid;
22607 public:
22608 
22614  FCPercussionMapNotes(twobyte percussionid) : __FCCollection()
22615  {
22616  _percussionid = percussionid;
22617  }
22618 
22620  twobyte GetPercussionID() const { return _percussionid; }
22621 
22622  virtual const char* ClassName() { return "FCPercussionMapNotes"; }
22623 
22629 
22636  FCPercussionMapNote* FindRawNoteType(PERC_NOTE_TYPE rawnotetype)
22637  {
22638  for (int i = 0; i < GetCount(); i++)
22639  {
22640  FCPercussionMapNote* pItem = GetItemAt(i);
22641  if (pItem->GetRawNoteType() == rawnotetype) return pItem;
22642  }
22643  return NULL;
22644  }
22645 
22653  {
22654  for (int i = 0; i < GetCount(); i++)
22655  {
22656  FCPercussionMapNote* pItem = GetItemAt(i);
22657  if (pItem->GetMidiNote() == midinote) return pItem;
22658  }
22659  return NULL;
22660  }
22661 };
22662 
22663 class FCInstrumentDef;
22664 
22673 {
22674  public:
22675  virtual const char* ClassName() { return "FCPercussionMapNotesLookup"; }
22676 
22679 
22689  FCPercussionMapNotes* GetPercussionMapNotes(FCInstrumentDef* pInstrumentDef);
22690 };
22691 
22692 #endif /*PDK_FRAMEWORK_TINYXML*/
22693 
22694 
22697 
22706 {
22707 public:
22708  virtual const char* ClassName() { return "FCPercussionLayoutNotesLookup"; }
22709 
22712 
22724  FCPercussionLayoutNotes* GetPercussionLayoutNotes(FCPercussionStaff* pPercussionStaff);
22725 
22732  FCPercussionLayoutNote* FindPercussionLayoutRawNote(FCPercussionStaff* pPercussionStaff, FLAG_16 percussionnote);
22733 
22736 };
22737 
22738 
22739 
22746 {
22747 private:
22748 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22749 
22750  EDTInstDefinition _instrumentdef;
22751 
22752 protected:
22753  virtual EXTAG Tag() { return ot_InstDefinition; }
22754  virtual int DataSizeLoad() { return sizeof(EDTInstDefinition); }
22755  virtual void* Allocate() { return (void*) &_instrumentdef; }
22756 
22761  virtual void CloneMemoryFrom(__FCBaseData* pSource)
22762  {
22763  memcpy(&_instrumentdef, ((FCInstrumentDef*)pSource)->_GetInstrumentDef(), sizeof(_instrumentdef));
22764  _datablock = &_instrumentdef;
22765  _loadedsize = sizeof(_instrumentdef);
22766  }
22767 
22768  virtual __FCBaseData* CreateObject() { return new FCInstrumentDef(); }
22769 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
22770 public:
22771 
22772  virtual const char* ClassName() { return "FCInstrumentDef"; }
22773  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_INSTRUMENTDEF; }
22774 
22775 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22776 
22782  void* _GetInstrumentDef() { return &_instrumentdef; }
22783 
22784 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
22785 
22791 
22802  {
22803  FCInstrumentDefText text;
22804  text.Load(GetItemNo());
22805  return text.CreateString();
22806  }
22807 
22808 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
22809 
22810  FCString* CreateNameString_GC();
22811 #endif
22812 
22817  twobyte GetVirtualChannel() const { return _instrumentdef.virtChannel; }
22818 
22825  twobyte GetPercussionMapID() const { return _instrumentdef.percMapRefID; }
22826 
22833  void SetPercussionMapID(twobyte mapID) { _instrumentdef.percMapRefID = mapID; }
22834 
22835 #ifdef PDK_FRAMEWORK_TINYXML
22836 
22849  FCPercussionMapNotes* CreatePercussionMapNotes();
22850 
22851 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
22852 
22853  FCPercussionMapNotes* CreatePercussionMapNotes_GC();
22854 #endif
22855 #endif
22856 
22862  bool GetPercussionMapLocation(void* pFileSpecLocation, FCString* pMapName, EVERSION finpathspecversion);
22863 
22864 #ifdef PDK_FRAMEWORK_DEBUG
22865  virtual void DebugDump()
22866  {
22868  this->DebugDataDump();
22869  }
22870 #endif
22871 
22872 };
22873 
22874 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22875 
22876 #include "pragma_align_begin.h"
22877 struct __EDTLayerPlayData
22878 {
22879  ePlaybackRoute playbackRouteNum; // twobyte
22880  twobyte velControlLevel;
22881  FLAG_16 velControlSaveFlags;
22882  FLAG_16 playFlags;
22883 };
22884 #include "pragma_align_end.h"
22885 
22886 #include "pragma_align_begin.h"
22887 struct __EDTPlayData2006
22888 {
22889  __EDTLayerPlayData chordPlayData;
22890  __EDTLayerPlayData MIDIExpressionsPlayData;
22891  __EDTLayerPlayData layerPlayData[4]; // Should be MAX_LAYERS
22892 };
22893 #include "pragma_align_end.h"
22894 
22895 const EXTAG __ot_PlayData2006 = MAKEEXTAG(edOther4Inci,'P','L');
22896 
22897 // __EDTLayerPlayData.playFlags
22898 const FLAG_16 __PLAY_LAYER_TRACK = 0x0001;
22899 const FLAG_16 __SOLO_LAYER_TRACK = 0x0002;
22900 
22901 
22902 #endif /* #ifndef DOXYGEN_SHOULD_IGNORE_THIS */
22903 
22904 
22914 {
22915  __EDTLayerPlayData* _pLayerData;
22916 public:
22918  FCLayerPlaybackData(__EDTLayerPlayData* pData) : __FCBase()
22919  {
22920  _pLayerData = pData;
22921  }
22922 
22927  ePlaybackRoute GetInstrumentDefID() const
22928  {
22929  /* The value is 0-based!!! To be able to map to FCInstrumentDef, it
22930  * needs to be 1-based. */
22931  return _pLayerData->playbackRouteNum + 1;
22932  }
22933 
22938  bool GetPlay() const
22939  {
22940  return GetBitFlag(_pLayerData->playFlags, __PLAY_LAYER_TRACK);
22941  }
22942 
22947  bool GetSolo() const
22948  {
22949  return GetBitFlag(_pLayerData->playFlags, __SOLO_LAYER_TRACK);
22950  }
22951 
22958  void SetInstrumentDefID(ePlaybackRoute value)
22959  {
22960  /* The value is 0-based!!! (To be able to map to FCInstrumentDef, it
22961  * needs to be 1-based.) */
22962  _pLayerData->playbackRouteNum = value - 1;
22963  }
22964 
22969  void SetPlay(bool state)
22970  {
22971  return Set16BitFlag(&_pLayerData->playFlags, __PLAY_LAYER_TRACK, state);
22972  }
22973 
22978  void SetSolo(bool state)
22979  {
22980  return Set16BitFlag(&_pLayerData->playFlags, __SOLO_LAYER_TRACK, state);
22981  }
22982 };
22983 
22984 
22992 {
22993 private:
22994 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
22995 
22996  __EDTPlayData2006 _playbackdata;
22997 
22998  FCLayerPlaybackData* _pChordLayer;
22999  FCLayerPlaybackData* _pExpressionLayer;
23000  FCLayerPlaybackData* _pNoteLayers[4];
23001 
23002 protected:
23003  virtual EXTAG Tag() { return __ot_PlayData2006; }
23004  virtual int DataSizeLoad() { return sizeof(__EDTPlayData2006); }
23005  virtual void* Allocate() { return (void*) &_playbackdata; }
23006 
23011  virtual void CloneMemoryFrom(__FCBaseData* pSource)
23012  {
23013  memcpy(&_playbackdata, ((FCInstrumentPlaybackData*)pSource)->_GetPlaybackData(), sizeof(_playbackdata));
23014  _datablock = &_playbackdata;
23015  _loadedsize = sizeof(_playbackdata);
23016  }
23017 
23018  virtual __FCBaseData* CreateObject() { return new FCInstrumentPlaybackData(); }
23019 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23020 public:
23021 
23022  virtual const char* ClassName() { return "FCInstrumentPlaybackData"; }
23023  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_INSTRUMENTPLAYBACKDATA; }
23024 
23025 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23026 
23032  void* _GetPlaybackData() { return &_playbackdata; }
23033 
23034 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23035 
23039  {
23040  _pChordLayer = NULL;
23041  _pExpressionLayer = NULL;
23042  for (int i = 0; i < 4; i++) _pNoteLayers[i] = NULL;
23043  }
23044 
23047  {
23048  delete _pChordLayer;
23049  delete _pExpressionLayer;
23050  for (int i = 0; i < 4; i++) delete _pNoteLayers[i];
23051  }
23052 
23066  {
23067  if (!DataIsLoaded()) return NULL;
23068  if (_pChordLayer) return _pChordLayer;
23069  _pChordLayer = new FCLayerPlaybackData(&_playbackdata.chordPlayData);
23070  return _pChordLayer;
23071  }
23072 
23086  {
23087  if (!DataIsLoaded()) return NULL;
23088  if (_pExpressionLayer) return _pExpressionLayer;
23089  _pExpressionLayer = new FCLayerPlaybackData(&_playbackdata.MIDIExpressionsPlayData);
23090  return _pExpressionLayer;
23091  }
23092 
23093 
23109  {
23110  if ((layernumber < 1) || (layernumber > 4)) return NULL;
23111  if (!DataIsLoaded()) return NULL;
23112  layernumber--; /* Make a 0-based index */
23113  if (_pNoteLayers[layernumber]) return _pNoteLayers[layernumber];
23114  _pNoteLayers[layernumber] = new FCLayerPlaybackData(&_playbackdata.layerPlayData[layernumber]);
23115  return _pNoteLayers[layernumber];
23116  }
23117 
23118 #ifdef PDK_FRAMEWORK_DEBUG
23119  virtual void DebugDump()
23120  {
23122  DebugDataDump();
23123  }
23124 #endif
23125 
23126 };
23127 
23137 {
23138 private:
23139 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23140 
23141  EDTPercussionNoteDef2010 _percussionnotedef2010;
23142 #if FXT_VERSION >= FINALEVERSION_2012
23143  EDTPercussionNoteDef2012 _percussionnotedef2012;
23144 #endif
23145 
23150  EVERSION _VersionToUse() const;
23151 
23152 protected:
23153  virtual EXTAG Tag();
23154 
23155  virtual int DataSizeLoad();
23156 
23157  virtual void* Allocate();
23158 
23163  virtual void CloneMemoryFrom(__FCBaseData* pSource)
23164  {
23165  memcpy(_GetPercussionNoteDef(), ((FCPercussionLayoutNote*)pSource)->_GetPercussionNoteDef(), DataSizeLoad());
23166  _datablock = _GetPercussionNoteDef();
23168  }
23169 
23170  virtual __FCBaseData* CreateObject() { return new FCPercussionLayoutNote(); }
23171 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23172 public:
23173 
23174  virtual const char* ClassName() { return "FCPercussionLayoutNote"; }
23175  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_PERCUSSIONLAYOUTNOTE; }
23176 
23177 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23178 
23184  void* _GetPercussionNoteDef();
23185 
23186 
23187 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23188 
23191  memset(Allocate(), 0, DataSizeLoad());
23192  }
23193 
23200  PERC_NOTE_TYPE GetRawNoteType() const;
23201 
23207  PERC_NOTE_TYPE GetNoteType() const;
23208 
23217  twobyte GetOrderID() const;
23218 
23226  twobyte GetStaffPosition() const;
23227 
23232  fourbyte GetClosedNotehead() const;
23233 
23238  fourbyte GetHalfNotehead() const;
23239 
23244  fourbyte GetWholeNotehead() const;
23245 
23250  fourbyte GetDoubleWholeNotehead() const;
23251 
23252 
23253 
23258  void SetNoteType(PERC_NOTE_TYPE value);
23259 
23268  void SetOrderID(twobyte value);
23269 
23278  void SetStaffPosition(twobyte value);
23279 
23284  void SetClosedNotehead(fourbyte value);
23285 
23290  void SetHalfNotehead(fourbyte value);
23291 
23296  void SetWholeNotehead(fourbyte value);
23297 
23302  void SetDoubleWholeNotehead(fourbyte value);
23303 
23304 #ifdef PDK_FRAMEWORK_TINYXML
23305 
23312  twobyte CalcMidiRawNote(FCPercussionMapNotes* pNotes);
23313 
23321  twobyte CalcMidiNote(FCPercussionMapNotes* pNotes);
23322 #endif
23323 
23324 
23325 #ifdef PDK_FRAMEWORK_DEBUG
23326  virtual void DebugDump()
23327  {
23329  }
23330 #endif
23331 
23332 };
23333 
23334 
23335 
23336 /* Previously undocumented stuff */
23337 const EXTAG __ot_CategoryStaffListScore = MAKEEXTAG(edOther, 'C', 's');
23338 const EXTAG __ot_CategoryStaffListParts = MAKEEXTAG(edOther, 'C', 'p');
23339 const EXTAG __ot_CategoryStaffListScoreOverride = MAKEEXTAG(edOther, 'c',
23340 'o');
23341 const EXTAG __ot_CategoryStaffListPartsOverride = MAKEEXTAG(edOther, 'C',
23342 'o');
23343 
23344 
23345 const EXTAG __ot_StaffAssignStaffListScore = MAKEEXTAG(edOther, 'S', 's');
23346 const EXTAG __ot_StaffAssignStaffListParts = MAKEEXTAG(edOther, 's', 'p');
23347 const EXTAG __ot_StaffAssignStaffListScoreOverride = MAKEEXTAG(edOther, 'S',
23348 'o');
23349 const EXTAG __ot_StaffAssignStaffListPartsOverride = MAKEEXTAG(edOther, 's',
23350 'o');
23351 
23352 
23364 {
23365 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23366  EDTStaffList* _TypeCast() const { return (EDTStaffList*)_datablock; }
23367 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23368 protected:
23369 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23370 
23371  virtual EXTAG Tag() { return GetCustomTag() ? GetCustomTag() : ot_StaffListDataScore; }
23372 
23373  virtual int DataSizeLoad();
23374  virtual int DataSizeSave();
23375  virtual void* Allocate();
23376  virtual void Deallocate();
23377  virtual bool IsDynamicSize() { return true; }
23378 
23379  virtual __FCBaseData* CreateObject() { return new FCStaffList(); }
23380 
23381 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23382 public:
23388  {
23389  SLMODE_SCORE = 0,
23390  SLMODE_PARTS,
23391  SLMODE_FORCESCORE,
23392  SLMODE_FORCEPARTS,
23393 
23394  SLMODE_CATEGORY_SCORE,
23395  SLMODE_CATEGORY_PARTS,
23396  SLMODE_CATEGORY_FORCESCORE,
23397  SLMODE_CATEGORY_FORCEPARTS,
23398 
23399  SLMODE_ASSIGNMENT_SCORE,
23400  SLMODE_ASSIGNMENT_PARTS,
23401  SLMODE_ASSIGNMENT_FORCESCORE,
23402  SLMODE_ASSIGNMENT_FORCEPARTS
23403  };
23404 
23405 
23411  {
23412  }
23413 
23414  virtual const char* ClassName() { return "FCStaffList"; }
23415  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_STAFFLIST; }
23416 
23417 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23418 
23424  void* _GetStaffListElement() { return _datablock; }
23425 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23426 
23427 
23447  void SetMode(
23448 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
23450 #else
23451  int
23452 #endif
23453  mode
23454  )
23455  {
23456  switch (mode)
23457  {
23458  case SLMODE_SCORE:
23459  SetCustomTag(ot_StaffListDataScore);
23460  break;
23461  case SLMODE_PARTS:
23462  SetCustomTag(ot_StaffListDataParts);
23463  break;
23464  case SLMODE_FORCESCORE:
23465  SetCustomTag(ot_StaffListForceScore);
23466  break;
23467  case SLMODE_FORCEPARTS:
23468  SetCustomTag(ot_StaffListForceParts);
23469  break;
23470 
23471  case SLMODE_CATEGORY_SCORE:
23472  SetCustomTag(__ot_CategoryStaffListScore);
23473  break;
23474  case SLMODE_CATEGORY_PARTS:
23475  SetCustomTag(__ot_CategoryStaffListParts);
23476  break;
23477  case SLMODE_CATEGORY_FORCESCORE:
23478  SetCustomTag(__ot_CategoryStaffListScoreOverride);
23479  break;
23480  case SLMODE_CATEGORY_FORCEPARTS:
23481  SetCustomTag(__ot_CategoryStaffListPartsOverride);
23482  break;
23483 
23484  case SLMODE_ASSIGNMENT_SCORE:
23485  SetCustomTag(__ot_StaffAssignStaffListScore);
23486  break;
23487  case SLMODE_ASSIGNMENT_PARTS:
23488  SetCustomTag(__ot_StaffAssignStaffListParts);
23489  break;
23490  case SLMODE_ASSIGNMENT_FORCESCORE:
23491  SetCustomTag(__ot_StaffAssignStaffListScoreOverride);
23492  break;
23493  case SLMODE_ASSIGNMENT_FORCEPARTS:
23494  SetCustomTag(__ot_StaffAssignStaffListPartsOverride);
23495  break;
23496  }
23497  }
23498 
23499 #ifdef PDK_FRAMEWORK_DEBUG
23500  virtual void DebugDump()
23501  {
23503  }
23504 #endif
23505 
23507  virtual bool Load(CMPER itemno);
23508 
23510  virtual bool SaveNew() { return false; }
23511 
23513  virtual bool Save();
23514 
23516  virtual bool DeleteData() { return false; }
23517 
23519  virtual bool LoadNext() { return Load(GetItemNo() + 1); }
23520 
23526  int GetElementCount() const
23527  {
23528  if (!DataIsLoaded()) return 0;
23529  int maxcount = _loadedsize / sizeof(EDTStaffList);
23530  /* Reduce list if some elements are 0 at the end */
23531  while (maxcount > 0)
23532  {
23533  if (_TypeCast()[maxcount - 1].staff == 0)
23534  maxcount --;
23535  else
23536  return maxcount;
23537  }
23538  return maxcount;
23539  }
23540 
23546  int GetStaffCount() const
23547  {
23548  if (!DataIsLoaded()) return 0;
23549  int maxcount = _loadedsize / sizeof(EDTStaffList);
23550  int staffcount = 0;
23551  for (int i = 0; i < maxcount; i++)
23552  {
23553  if (_TypeCast()[i].staff > 0) staffcount++;
23554  }
23555  return staffcount;
23556  }
23557 
23567  int GetStaff(int index)
23568  {
23569  if (index < 0) return 0;
23570  int maxcount = _loadedsize / sizeof(EDTStaffList);
23571  int staffcount = 0;
23572  for (int i = 0; i < maxcount; i++)
23573  {
23574  if (_TypeCast()[i].staff > 0)
23575  {
23576  if (staffcount == index) return _TypeCast()[index].staff;
23577  staffcount++;
23578  }
23579  }
23580  return 0;
23581  }
23582 
23587  bool IsElementAvailable(twobyte stafflistelement)
23588  {
23589  if (stafflistelement == 0) return false; /* This value would not be a valid value in a staff list. */
23590  int maxcount = _loadedsize / sizeof(EDTStaffList);
23591  for (int i = 0; i < maxcount; i++)
23592  {
23593  if (_TypeCast()[i].staff == stafflistelement) return true;
23594  }
23595  return false;
23596  }
23597 
23603  {
23604  return IsElementAvailable(SLD_TOPSTAFF);
23605  }
23606 
23612  {
23613  return IsElementAvailable(SLD_BOTTOMSTAFF);
23614  }
23615 
23622  bool IncludesStaff(twobyte staffnumber)
23623  {
23624  return IsElementAvailable(staffnumber);
23625  }
23626 
23637  FCString* CreateNameString();
23638 
23639 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
23640 
23641  FCString* CreateNameString_GC();
23642 #endif
23643 
23650  bool SaveNameString(FCString* pString);
23651 
23656  bool AddElement(twobyte elementnumber);
23657 
23668  bool AddStaff(twobyte staffnumber)
23669  {
23670  if (staffnumber < 1) return false;
23671  return AddElement(staffnumber);
23672  }
23673 
23682  {
23683  return AddElement(SLD_TOPSTAFF);
23684  }
23685 
23694  {
23695  return AddElement(SLD_BOTTOMSTAFF);
23696  }
23697 
23702  bool RemoveElement(twobyte element);
23703 
23711  {
23712  return RemoveElement(SLD_TOPSTAFF);
23713  }
23714 
23722  {
23723  return RemoveElement(SLD_BOTTOMSTAFF);
23724  }
23725 
23732  bool RemoveStaff(twobyte staffnumber)
23733  {
23734  if (staffnumber < 1) return false;
23735  return RemoveElement(staffnumber);
23736  }
23737 };
23738 
23739 
23740 
23747 {
23748 private:
23749 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23750  EDTFretInstrument _fretinstrumentold; /* Pre 25.3 */
23751 
23752  FIN25_3_CODE( EDTFretInstrument25_3 _fretinstrument25_3; )
23753 
23754  /* Decides which of the structs that should be used, based on
23755  the PDK and running version. Returns true if 25.3 is supported. */
23756  bool _Use25_3Version() const;
23757 
23758  /* Returns a pointer to the 'noOfFrets' member */
23759  const twobyte* _GetNoOfFretsPtr() const
23760  {
23761  FIN25_3_CODE( if (_Use25_3Version()) return &_fretinstrument25_3.noOfFrets; )
23762  return &_fretinstrumentold.noOfFrets;
23763  }
23764 
23765  /* Returns a pointer to the 'noOfStrings' member */
23766  const twobyte* _GetNoOfStringsPtr() const
23767  {
23768  FIN25_3_CODE( if (_Use25_3Version()) return &_fretinstrument25_3.noOfStrings; )
23769  return &_fretinstrumentold.noOfStrings;
23770  }
23771 
23772  /* Returns a pointer to the 'speedyClef' member */
23773  const eClef* _GetSpeedyClefPtr() const
23774  {
23775  FIN25_3_CODE( if (_Use25_3Version()) return &_fretinstrument25_3.speedyClef; )
23776  return &_fretinstrumentold.speedyClef;
23777  }
23778 
23779  /* Returns a pointer to the 'diatonicStepsLo' member */
23780  const utwobyte* _GetDiatonicStepsLoPtr() const
23781  {
23782  FIN25_3_CODE( if (_Use25_3Version()) return &_fretinstrument25_3.diatonicStepsLo; )
23783  return &_fretinstrumentold.diatonicStepsLo;
23784  }
23785 
23786  /* Returns a pointer to the 'diatonicStepsHi' member */
23787  const utwobyte* _GetDiatonicStepsHiPtr() const
23788  {
23789  FIN25_3_CODE( if (_Use25_3Version()) return &_fretinstrument25_3.diatonicStepsHi; )
23790  return &_fretinstrumentold.diatonicStepsHi;
23791  }
23792 
23793  /* Returns a pointer to the 'name' member. On Finale 25.3+, it's an
23794  eUniChar16 buffer. On earlier Finale versions, it's an ECHAR buffer. */
23795  const void* _GetNamePtr() const
23796  {
23797  FIN25_3_CODE( if (_Use25_3Version()) return &_fretinstrument25_3.name; )
23798  return &_fretinstrumentold.name;
23799  }
23800 
23801  /* Returns a pointer to the 'stringTuning' member. The meaning of this pointer is a
23802  bit different in 25.3 PDK versions. */
23803  const void* _GetStringTuningPtr(int stringno) const
23804  {
23805  FIN25_3_CODE( if (_Use25_3Version()) return &_fretinstrument25_3.stringTuning[stringno - 1]; )
23806  return &_fretinstrumentold.stringTuning[stringno - 1];
23807  }
23808 
23809 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23810 protected:
23811 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23812 
23813  virtual EXTAG Tag();
23814  virtual int DataSizeLoad();
23815  virtual void* Allocate();
23816  virtual EVERSION EnigmaVersion() { return _Use25_3Version() ? FINALEVERSION_25_3 : FINALEVERSION_2010; }
23817 
23824  virtual void CloneMemoryFrom(__FCBaseData* pSource)
23825  {
23826  int size = DataSizeLoad();
23827  memcpy(_GetFretInstrumentDef(), ((FCFretInstrumentDef*)pSource)->_GetFretInstrumentDef(), size);
23828  _datablock = _GetFretInstrumentDef();
23829  _loadedsize = size;
23830  }
23831 
23832  virtual __FCBaseData* CreateObject() { return new FCFretInstrumentDef(); }
23833 
23834 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23835 public:
23836  virtual const char* ClassName() { return "FCFretInstrumentDef"; }
23837  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_FRETINSTRUMENTDEF; }
23838 
23840  virtual bool LoadFirst() { return Load(1); }
23841 
23843  virtual bool LoadNext()
23844  {
23845  if (!DataIsLoaded()) return false;
23846  return Load(GetItemNo() + 1);
23847  }
23848 
23849 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
23850 
23856  void* _GetFretInstrumentDef() { return Allocate(); }
23857 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
23858 
23864  {
23865  /* Don't use virtual methods in the constructor */
23866  if (_Use25_3Version())
23867  {
23868 #if FXT_VERSION >= FINALEVERSION_25_3
23869  memset(&_fretinstrument25_3, 0, sizeof(_fretinstrument25_3));
23870  _datablock = &_fretinstrument25_3;
23871  _loadedsize = sizeof(_fretinstrument25_3);
23872 #endif
23873  }
23874  else
23875  {
23876  memset(&_fretinstrumentold, 0, sizeof(_fretinstrumentold));
23877  _datablock = &_fretinstrumentold;
23878  _loadedsize = sizeof(_fretinstrumentold);
23879  }
23880  }
23881 
23886  twobyte GetFretCount() const
23887  {
23888  return *_GetNoOfFretsPtr();
23889  }
23890 
23895  void SetFretCount(twobyte count)
23896  {
23897  *(twobyte*)_GetNoOfFretsPtr() = count;
23898  }
23899 
23904  twobyte GetStringCount() const
23905  {
23906  return *_GetNoOfStringsPtr();
23907  }
23908 
23915  void SetStringCount(twobyte count)
23916  {
23917  if (count < 1) return;
23918  if (count > 24) return;
23919  *(twobyte*)_GetNoOfStringsPtr() = count;
23920  }
23921 
23926  eClef GetSpeedyClef() const
23927  {
23928  return *_GetSpeedyClefPtr();
23929  }
23930 
23935  void SetSpeedyClef(eClef clef)
23936  {
23937  *(eClef*)_GetSpeedyClefPtr() = clef;
23938  }
23939 
23950  bool GetName(FCString* pString)
23951  {
23952  if (!pString) return false;
23953  if (_Use25_3Version())
23954  {
23955  /* Unicode version */
23956  FIN25_3_CODE( pString->SetUnicodeString((eUniChar16*) _GetNamePtr()); )
23957  }
23958  else
23959  {
23960  /* Old ECHAR version */
23961  pString->SetCString((ECHAR*) _GetNamePtr());
23962  }
23963 
23964  return true;
23965  }
23966 
23977  bool SetName(FCString* pString)
23978  {
23979  if (!pString) return false;
23980  if (pString->GetLength() > 47) return false;
23981  if (_Use25_3Version())
23982  {
23983  /* Unicode version */
23984  FIN25_3_CODE( pString->CopyToUnicodeBuffer((eUniChar16*) _GetNamePtr()); )
23985  }
23986  else
23987  {
23988  /* Old ECHAR version */
23989  strcpy((ECHAR*) _GetNamePtr(), pString->GetCString());
23990  }
23991  return true;
23992  }
23993 
24004  twobyte GetStringTuning(int stringnumber)
24005  {
24006  if (stringnumber < 1) return 0;
24007  if (stringnumber > GetStringCount()) return 0;
24008  if (stringnumber > 24) return 0;
24009 
24010  /* The meaning of the StringTuning array has shifted a bit between PDKs.
24011  */
24012 #if FXT_VERSION >= FINALEVERSION_25_3
24013  if (_Use25_3Version())
24014  {
24015  return ((EDTStringData*)_GetStringTuningPtr(stringnumber))->pitch;
24016  }
24017 #endif
24018  return *(twobyte*)_GetStringTuningPtr(stringnumber);
24019  }
24020 
24032  bool SetStringTuning(int stringnumber, twobyte midinumber)
24033  {
24034  if (stringnumber < 1) return false;
24035  if (stringnumber > GetStringCount()) return false;
24036  if (stringnumber > 24) return false;
24037 
24038  if (_Use25_3Version())
24039  {
24040 #if FXT_VERSION >= FINALEVERSION_25_3
24041  ((EDTStringData*)_GetStringTuningPtr(stringnumber))->pitch = midinumber;
24042 #endif
24043  }
24044  else
24045  {
24046  *(twobyte*)_GetStringTuningPtr(stringnumber) = midinumber;
24047  }
24048  return true;
24049  }
24050 
24055  bool IsDiatonic()
24056  {
24057  return (MAKELONG(*_GetDiatonicStepsLoPtr(), *_GetDiatonicStepsHiPtr()) != 0);
24058  }
24059 
24065  {
24066  if (!IsDiatonic()) return 0;
24067  ufourbyte fb = MAKELONG(*_GetDiatonicStepsLoPtr(), *_GetDiatonicStepsHiPtr());
24068  int totalcount = 0;
24069  while (fb)
24070  {
24071  if (fb & 0x01) totalcount ++;
24072  fb = fb >> 1;
24073  }
24074  return totalcount;
24075  }
24076 
24084  bool GetDiatonicInfo(FCNumbers* pNumbers)
24085  {
24086  if (!pNumbers) return false;
24087  pNumbers->ClearAll();
24088  ufourbyte fb = MAKELONG(*_GetDiatonicStepsLoPtr(), *_GetDiatonicStepsHiPtr());
24089  int count = 0;
24090  while (fb != 0)
24091  {
24092  count ++;
24093  if (fb & 0x01)
24094  {
24095  pNumbers->Add(new FCNumber(count));
24096  count = 0;
24097  }
24098  fb = fb >> 1;
24099  }
24100  return true;
24101  }
24102 
24110  bool SetDiatonicInfo(FCNumbers* pNumbers)
24111  {
24112  if (!pNumbers) return false;
24113  ufourbyte fb = 0;
24114  for (int i = pNumbers->GetCount() - 1; i >= 0; i--)
24115  {
24116  FCNumber* pNumber = pNumbers->GetItemAt(i);
24117  if (pNumber->GetInt() < 1) return false;
24118  if (pNumber->GetInt() > 5) return false;
24119  fb = fb << 1; /* Shift to next number */
24120  fb |= 0x01;
24121  for (int bitcount = 0; bitcount < pNumber->GetInt() - 1; bitcount++)
24122  {
24123  fb = fb << 1; /* Shift with extra zeros, if necessary */
24124  }
24125  }
24126  *(utwobyte*)_GetDiatonicStepsLoPtr() = LOWORD(fb);
24127  *(utwobyte*)_GetDiatonicStepsHiPtr() = HIWORD(fb);
24128  return true;
24129  }
24130 
24131 
24132 #ifdef PDK_FRAMEWORK_DEBUG
24133  virtual void DebugDump()
24134  {
24136  DebugOutHex("Diatonic bit set: ", MAKELONG(*_GetDiatonicStepsLoPtr(), *_GetDiatonicStepsHiPtr()));
24137  }
24138 #endif
24139 };
24140 
24141 
24142 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24143 #include "pragma_align_begin.h"
24144 struct __EDTMidClef
24145 {
24146  twobyte clefindex;
24147  twobyte edupos;
24148  twobyte vertadjust;
24149  twobyte resize;
24150  twobyte horizadjust;
24151  FLAG_16 flag;
24152 };
24153 #include "pragma_align_end.h"
24154 
24155 const EXTAG __ot_MidClef = MAKEEXTAG(edOther, 'C', 'E');
24156 #endif
24157 
24158 
24170 {
24171 private:
24172 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24173  __EDTMidClef _midclefdata;
24174 
24175 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
24176 protected:
24177 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24178 
24179  virtual EXTAG Tag() { return __ot_MidClef; }
24180  virtual int DataSizeLoad() { return sizeof(__EDTMidClef); }
24181  virtual void* Allocate() { return (void*) &_midclefdata; }
24182 
24183  virtual void CloneMemoryFrom(__FCBaseData* pSource)
24184  {
24185  memcpy(&_midclefdata, ((FCCellClefChange*)pSource)->_GetCellClefChange(), sizeof(_midclefdata));
24186  _datablock = &_midclefdata;
24187  _loadedsize = sizeof(_midclefdata);
24188  }
24189 
24190  virtual __FCBaseData* CreateObject() { return new FCCellClefChange(); }
24191 
24192 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
24193 public:
24194  virtual const char* ClassName() { return "FCCellClefChange"; }
24195  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_CELLCLEFCHANGE; }
24196 
24197 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24198 
24204  void* _GetCellClefChange() { return Allocate(); }
24205 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
24206 
24212  {
24213  memset(&_midclefdata, 0, sizeof(_midclefdata));
24214  _midclefdata.resize = 75;
24215  _datablock = &_midclefdata;
24216  _loadedsize = sizeof(_midclefdata);
24217  }
24218 
24223  twobyte GetClefIndex() const { return _midclefdata.clefindex; }
24224 
24232  virtual TimeEdu32 GetMeasurePos() const { return _midclefdata.edupos; }
24233 
24238  twobyte GetClefPercent() const { return _midclefdata.resize; }
24239 
24244  twobyte GetHorizontalOffset() const { return _midclefdata.horizadjust; }
24245 
24250  twobyte GetVerticalOffset() const { return _midclefdata.vertadjust; }
24251 
24257  twobyte GetClefShow() const;
24258 
24263  bool GetAllowVerticalDrag() const { return (_midclefdata.flag & 0x04) != 0; }
24264 
24270  bool GetClefAfterBarline() const { return (_midclefdata.flag & 0x0010) != 0; }
24271 
24276  void SetClefIndex(twobyte value) { _midclefdata.clefindex = value; }
24277 
24288  void SetMeasurePos(twobyte value) { _midclefdata.edupos = value; }
24289 
24294  void SetClefPercent(twobyte value) { _midclefdata.resize = value; }
24295 
24300  void SetHorizontalOffset(twobyte value) { _midclefdata.horizadjust = value; }
24301 
24306  void SetVerticalOffset(twobyte value) { _midclefdata.vertadjust = value; }
24307 
24315  void SetClefShow(twobyte showstate);
24316 
24324  void SetAllowVerticalDrag(bool state) { Set16BitFlag(&_midclefdata.flag, 0x04, state); }
24325 
24331  void SetClefAfterBarline(bool state) { Set16BitFlag(&_midclefdata.flag, 0x0010, state); }
24332 
24337  bool IsStartClef() { return (GetMeasurePos() == 0); }
24338 };
24339 
24340 
24351 class FCGuide : public __FCBase
24352 {
24353  Efix32 _position;
24354  public:
24359  FCGuide(Efix32 position) : __FCBase()
24360  {
24361  _position = position;
24362  }
24363 
24372  Efix32 GetPosition() const { return _position; }
24373 
24380  void SetPosition(Efix32 value) { _position = value; }
24381 };
24382 
24383 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24384 
24385 const EXTAG __ot_MetatoolExpression = MAKEEXTAG(edOther, '&', 'd');
24386 const EXTAG __ot_MetatoolArticulation = MAKEEXTAG(edOther, '&', 'a');
24387 const EXTAG __ot_MetatoolRepeat = MAKEEXTAG(edOther, '&', 'r');
24388 const EXTAG __ot_MetatoolClef = MAKEEXTAG(edOther, '&', 'f');
24389 const EXTAG __ot_MetatoolTuplet = MAKEEXTAG(edOther3Inci, '&', 'u');
24390 const EXTAG __ot_MetatoolStaffStyle = MAKEEXTAG(edOther, '&', 's');
24391 
24392 #include "pragma_align_begin.h"
24393 struct __EDTMetatool
24394 {
24395  twobyte item1; /* For most data, this is a cmper */
24396  twobyte item2; /* For expressions, this is a bool */
24397  twobyte item3;
24398  twobyte item4;
24399  twobyte item5;
24400  twobyte item6;
24401 };
24402 #include "pragma_align_end.h"
24403 
24404 #endif /* #ifndef DOXYGEN_SHOULD_IGNORE_THIS */
24405 
24406 class FCClefDef;
24407 #ifdef PDK_FRAMEWORK_ENTRIES
24408 class FCTuplet;
24409 #endif
24410 
24424 {
24425 public:
24428  {
24429  /* Currently unassigned metatool mode. */
24430  MTOOLMODE_UNKNOWN = 0,
24431 
24433  MTOOLMODE_EXPRESSION = 1,
24434 
24436  MTOOLMODE_ARTICULATION = 2,
24437 
24439  MTOOLMODE_REPEAT = 3,
24440 
24442  MTOOLMODE_CLEF = 4,
24443 
24444 #ifdef PDK_FRAMEWORK_ENTRIES
24445 
24447  MTOOLMODE_TUPLET = 5,
24448 #endif
24449 
24451  MTOOLMODE_STAFFSTYLE = 6
24452  };
24453 private:
24454 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24455  METATOOL_MODES _mode; /* The mode of the object. */
24456 
24457  __EDTMetatool _metatool; /* Data for most kind of items */
24458  EDTTuplet2005 _tupletmetatool; /* Data for tuplets */
24459 
24460 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
24461 protected:
24462 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24463 
24464  virtual EXTAG Tag()
24465  {
24466  switch (_mode)
24467  {
24468  case MTOOLMODE_EXPRESSION:
24469  return __ot_MetatoolExpression;
24470  case MTOOLMODE_ARTICULATION:
24471  return __ot_MetatoolArticulation;
24472  case MTOOLMODE_REPEAT:
24473  return __ot_MetatoolRepeat;
24474  case MTOOLMODE_CLEF:
24475  return __ot_MetatoolClef;
24476 #ifdef PDK_FRAMEWORK_ENTRIES
24477  case MTOOLMODE_TUPLET:
24478  return __ot_MetatoolTuplet;
24479 #endif
24480  case MTOOLMODE_STAFFSTYLE:
24481  return __ot_MetatoolStaffStyle;
24482  case MTOOLMODE_UNKNOWN:
24483  return 0;
24484  }
24485  return 0;
24486  }
24487  virtual int DataSizeLoad()
24488  {
24489  switch (_mode)
24490  {
24491 #ifdef PDK_FRAMEWORK_ENTRIES
24492  case MTOOLMODE_TUPLET:
24493  return sizeof(_tupletmetatool);
24494 #endif
24495  case MTOOLMODE_UNKNOWN:
24496  return 0;
24497  default:
24498  return sizeof(__EDTMetatool);
24499  }
24500  }
24501  virtual void* Allocate()
24502  {
24503  switch (_mode)
24504  {
24505 #ifdef PDK_FRAMEWORK_ENTRIES
24506  case MTOOLMODE_TUPLET:
24507  return (void*) &_tupletmetatool;
24508 #endif
24509  case MTOOLMODE_UNKNOWN:
24510  return NULL;
24511  default:
24512  return (void*) &_metatool;
24513  }
24514  }
24515 
24522  virtual void CloneMemoryFrom(__FCBaseData* pSource)
24523  {
24524  if (_mode == MTOOLMODE_UNKNOWN) return;
24525  memcpy(_GetMetatool(), ((FCMetatoolAssignment*)pSource)->_GetMetatool(), DataSizeLoad());
24526  _datablock = _GetMetatool();
24527  _loadedsize = sizeof(DataSizeLoad());
24528  }
24529 
24530  virtual __FCBaseData* CreateObject() { return new FCMetatoolAssignment(); }
24531 
24532 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
24533 public:
24534  virtual const char* ClassName() { return "FCMetatoolAssignment"; }
24535  virtual const PDKFRAMEWORK_CLASSID GetClassID() { return FCID_METATOOLASSIGNMENT; }
24536 
24537 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
24538 
24544  void* _GetMetatool() { return Allocate(); }
24545 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
24546 
24552  {
24553  _mode = MTOOLMODE_UNKNOWN;
24554  // _datablock and _loadedsize is initialized in SetMode()
24555  memset(&_metatool, 0, sizeof(_metatool));
24556  memset(&_tupletmetatool, 0, sizeof(_tupletmetatool));
24557  }
24558 
24568  void SetMode(
24569 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
24571 #else
24572  int
24573 #endif
24574  mode)
24575  {
24576  if (_mode != MTOOLMODE_UNKNOWN) return;
24577  _mode = (METATOOL_MODES) mode;
24578  _datablock = _GetMetatool();
24580  }
24581 
24588 #ifndef PDK_FRAMEWORK_LUAFRIENDLY
24589  METATOOL_MODES
24590 #else
24591  int
24592 #endif
24593  GetMode() const { return (METATOOL_MODES) _mode; }
24594 
24613  CMPER GetDefID() const
24614  {
24615  switch (_mode)
24616  {
24617  case MTOOLMODE_EXPRESSION:
24618  case MTOOLMODE_ARTICULATION:
24619  case MTOOLMODE_REPEAT:
24620  case MTOOLMODE_CLEF:
24621  case MTOOLMODE_STAFFSTYLE:
24622  return _metatool.item1;
24623  default:
24624  return 0;
24625  }
24626  }
24627 
24634  twobyte GetKeystroke() const;
24635 
24645  {
24646  if (_mode != MTOOLMODE_EXPRESSION) return false;
24647  return (_metatool.item2 == 0);
24648  }
24649 
24659  {
24660  if (!pDef) return false;
24661  if (_mode != MTOOLMODE_ARTICULATION) return false;
24662  _metatool.item1 = pDef->GetItemNo();
24663  return true;
24664  }
24665 
24675  {
24676  if (!pDef) return false;
24677  if (_mode != MTOOLMODE_EXPRESSION) return false;
24678  _metatool.item1 = pDef->GetItemNo();
24679  _metatool.item2 = 1;
24680  return true;
24681  }
24682 
24692  {
24693  if (!pDef) return false;
24694  if (_mode != MTOOLMODE_EXPRESSION) return false;
24695  _metatool.item1 = pDef->GetItemNo();
24696  _metatool.item2 = 0;
24697  return true;
24698  }
24699 
24709  {
24710  if (!pDef) return false;
24711  if (_mode != MTOOLMODE_REPEAT) return false;
24712  _metatool.item1 = pDef->GetItemNo();
24713  return true;
24714  }
24715 
24724  bool AssignClefDef(FCClefDef* pDef);
24725 
24726 #ifdef PDK_FRAMEWORK_ENTRIES
24727 
24735  bool AssignTuplet(FCTuplet* pTuplet);
24736 #endif
24737 
24747  {
24748  if (!pStaffStyle) return false;
24749  if (_mode != MTOOLMODE_STAFFSTYLE) return false;
24750  _metatool.item1 = pStaffStyle->GetItemNo();
24751  return true;
24752  }
24753 
24760  bool SaveAsKeystroke(twobyte keystrokeslot)
24761  {
24762  if (_mode == MTOOLMODE_UNKNOWN) return false;
24763  if ((keystrokeslot >= 'A' && keystrokeslot <= 'Z') || (keystrokeslot >= '0' && keystrokeslot <= '9'))
24764  {
24765  return __FCNoInciOther::SaveAs(keystrokeslot);
24766  }
24767  return false;
24768  }
24769 
24771  virtual bool SaveNew() { return false; }
24772 
24775  virtual bool SaveAs(CMPER cmper) { return false; }
24776 
24794  __FCBaseData* CreateLinkedObject();
24795 
24796 #ifdef PDK_FRAMEWORK_LUAFRIENDLY
24797 
24798  __FCBaseData* CreateLinkedObject_GC();
24799 #endif
24800 
24801 #ifdef PDK_FRAMEWORK_DEBUG
24802  virtual void DebugDump()
24803  {
24805  switch (_mode)
24806  {
24807 #ifdef PDK_FRAMEWORK_ENTRIES
24808  case MTOOLMODE_TUPLET:
24809  DebugDataDump();
24810  break;
24811 #endif
24812  default:
24813  DebugOutDigit("item1: ", _metatool.item1);
24814  DebugOutDigit("item2: ", _metatool.item2);
24815  DebugOutDigit("item3: ", _metatool.item3);
24816  DebugOutDigit("item4: ", _metatool.item4);
24817  DebugOutDigit("item5: ", _metatool.item5);
24818  DebugOutDigit("item6: ", _metatool.item6);
24819  break;
24820  }
24821  }
24822 #endif
24823 };
24824 
24825 
24826 #endif /* _FF_OTHER_H */
24827 
static const char * FFUUID_VIHUELASPAIN
Definition: ff_other.h:8247
Definition: ff_other.h:4203
static const char * FFUUID_OCTAVIN
Definition: ff_other.h:7810
void SetPlaybackPass(twobyte value)
Definition: ff_other.h:13987
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:6845
static const char * FFUUID_SLIDEWHISTLE_PERCCLEF
Definition: ff_other.h:8932
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:2343
bool GetShowFretboards() const
Returns true if fretboards should be displayed for the staff.
Definition: ff_other.h:9441
virtual CMPER GetItemNo() const
Returns the item number. This typically points to items such as a page number, a measure number...
Definition: ff_other.h:305
void SetBreakMMRest(bool state)
Sets the "Break multi-measure rest" setting for a specific measure.
Definition: ff_other.h:4396
void SetWordWrap(bool state)
Sets if the text should word wrap automatically.
Definition: ff_other.h:15442
__FCBase * GetItemAt(int index)
Returns the object at the index position. Index is 0-based.
Definition: finaleframework.cpp:12797
void GetFretNumberFontInfo(FCFontInfo *pFontInfo)
Copies the fret number font information to a FCFontInfo object.
Definition: ff_other.h:20806
bool GetFixedSize() const
Returns the "fixed size" state.
Definition: ff_other.h:3159
bool GetIncludeInNumbering() const
Gets the state of the "Include in numbering" setting.
Definition: ff_other.h:5010
FCFontInfo * CreateMultiMeasureFontInfo(bool parts)
Creates a FCFontInfo object with the font information about the multimeasure rest measure numbers...
Definition: ff_other.h:6584
The class for a note definition in a percussion layout.
Definition: ff_other.h:23136
FCString * CreateName()
Creates a string object with the category name.
Definition: ff_other.h:12997
static const char * FFUUID_SOUSAPHONE
Definition: ff_other.h:7932
void SetAltNotationLayer(int value)
Sets the 1-based layer that is used for the alternate notation.
Definition: ff_other.h:10285
void SetUseSymbols(bool value)
Sets if the "Use symbols for rests less than" is used.
Definition: ff_other.h:18448
ECompositeTimeUpper * _GetFirstRecordPtr()
For internal use only.
Definition: ff_other.h:396
const char * GetCString() const
Returns a C-string version of the string.
Definition: finaleframework.cpp:1159
bool GetBreakMMRest() const
Gets the "Break Multi-measure rest" option from the category definition. For many categories...
Definition: ff_other.h:12931
bool GetTransposeUseClef() const
Returns the "Set to clef" state in the transposition dialog.
Definition: ff_other.h:9337
BARLINE_STYLES
Settings used for FCMeasure::SetBarline(), FCMeasure::SetLeftBarline(), FCMeasure::GetBarline() and F...
Definition: ff_other.h:4185
virtual EXTAG Tag()
The Enigma tag for the derived class.
Definition: ff_other.h:16531
void SetFirstMeasure(eMeas measure)
Sets the first measure to start the system.
Definition: ff_other.h:3615
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_base.h:918
FCMultiStaffInstrument()
The constructor.
Definition: ff_other.h:18594
static const char * FFUUID_BASSOON
Definition: ff_other.h:7594
static const char * FFUUID_DONDO
Definition: ff_other.h:8561
bool GetDurationIsPercent() const
Returns the "Values are percentages" for "Duration" playback change.
Definition: ff_other.h:11889
static const char * FFUUID_CHING
Definition: ff_other.h:8841
bool SetFontInfo(int index, FCFontInfo *pFontInfo)
Sets the font info to a "setfont" tag.
Definition: finaleframework.cpp:32457
void SetUseSymbolsLessThan(twobyte value)
Sets the number of measures for the "Use symbols for rests less than" option.
Definition: ff_other.h:18459
int GetGroupElementBeatDuration(int groupindex, int subindex)
Returns the beat duration for a group element.
Definition: ff_other.h:1019
void SetGraceNoteIndex(twobyte index)
Sets the grace note index, for when expression are connected to grace notes.
Definition: ff_other.h:16996
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:15752
static const char * FFUUID_KHAENMOUTHORGAN
Definition: ff_other.h:7896
bool GetOverrideStaffList() const
Gets the value for if staff lists are used for this category.
Definition: ff_other.h:12940
virtual bool DeleteData()
Deletes the associated data from Finale's database. Be careful when deleting multiple objects...
Definition: finaleframework.cpp:808
bool RemoveTopStaff()
Removes a "Top Staff" from the staff list.
Definition: ff_other.h:23710
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 th...
Definition: finaleframework.cpp:375
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:16297
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:6989
static const char * FFUUID_TSUZUMI
Definition: ff_other.h:8686
int AddGroup(int elementcount)
Adds a group to the end of the top composite time sig.
Definition: ff_other.h:654
static const char * FFUUID_OCARINA
Definition: ff_other.h:7620
Class for document-independent font information.
Definition: ff_base.h:1024
eUniChar32 GetAboveSymbolChar() const
Returns the character for the "above" symbol. On Finale 2012 and above, this supports the Unicode ran...
Definition: ff_other.h:11703
static const char * FFUUID_PELOGPANERUSGAMELAN
Definition: ff_other.h:8416
static const char * FFUUID_ALTOCLARINET
Definition: ff_other.h:7586
The class for a measure number region.
Definition: ff_other.h:5254
Evpu16 CalcWidth()
Calculates and returns the width of the beat chart element.
Definition: ff_other.h:22208
virtual bool DeepSaveAs(CMPER itemno)
Reimplemented method that makes a copy of the text string before resaving.
Definition: ff_other.h:13799
void SetBreakMMRest(bool state)
Sets the flag for if the category should break multimeasure rests.
Definition: ff_other.h:13376
static const char * FFUUID_CHACHABELLS
Definition: ff_other.h:8825
static const char * FFUUID_MANDOCELLO
Definition: ff_other.h:8170
Evpu16 GetVerticalOffset1() const
Returns the 1st vertical offset, compared to the standard positioning.
Definition: ff_other.h:16394
static const char * FFUUID_SHAKERS
Definition: ff_other.h:8765
static const char * FFUUID_JARANAJAROCHO
Definition: ff_other.h:8140
void SetShowScoreStaffNames(bool value)
Sets if score staff names should be displayed for the staff.
Definition: ff_other.h:9879
void SetTargetMeasure(eMeas measure)
Returns the target measure number. The value is dependent on GetTargetTrigger(), which is set with Se...
Definition: ff_other.h:21386
void SetID(twobyte id)
Sets the definition ID for the shape or text expresion.
Definition: ff_other.h:16829
void MergeWithPreviousGroup(int groupindex)
Merges the beat group with the previous beat group, by removing the "start group flag" from the group...
Definition: ff_other.h:692
void SetBottomBracketPosition(Evpu16 position)
Sets the vertical bottom position of the bracket.
Definition: ff_other.h:21879
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:374
void SetShowBarlines(bool value)
Sets if barlines should be displayed for the staff.
Definition: ff_other.h:9860
void SetWidth(twobyte value)
Sets the width of the MM rest.
Definition: ff_other.h:18402
static const char * FFUUID_IGIL
Definition: ff_other.h:7435
static const char * FFUUID_VEENA
Definition: ff_other.h:8241
static const char * FFUUID_SUBCONTRABASSTUBA
Definition: ff_other.h:7990
Evpu16 GetHeight() const
Returns the graphic rectangle's height, in EVPUs.
Definition: ff_other.h:19008
static const char * FFUUID_KHOL
Definition: ff_other.h:8603
void SetResize(twobyte value)
Sets the staff system's resize value (in percent).
Definition: ff_other.h:3700
virtual bool LoadNext()
Overridden version of LoadNext, to work with FCFretInstrumentDefs::LoadAll()
Definition: ff_other.h:23843
static const char * FFUUID_CHENDA
Definition: ff_other.h:8541
static const char * FFUUID_BAGLAMA
Definition: ff_other.h:8054
void SetVerticalOffset(twobyte value)
Sets the vertical adjustment for the mid-clef change.
Definition: ff_other.h:24306
static const char * FFUUID_FLAGEOLET
Definition: ff_other.h:7720
int GetInt() const
Returns the integer value version of the number.
Definition: ff_base.h:3883
bool GetUseShowTextRepeats() const
Returns true if the text repeat display setting should be used for the staff style definition...
Definition: ff_other.h:17556
TEXT_ASSIGNMENT
Constants for how text blocks are displayed.
Definition: ff_other.h:15745
bool GetAlwaysPlaceOutsideStaff() const
Returns the state of the "Always place outside staff" setting.
Definition: ff_other.h:11932
static const char * FFUUID_ELECTRICBASS
Definition: ff_other.h:8026
Class for a shape expression definition.
Definition: ff_other.h:14483
Definition: ff_other.h:4200
static const char * FFUUID_MARIMBASINGLESTAFF
Definition: ff_other.h:8347
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:18211
void SetMainSymbolChar(eUniChar32 symbol)
Sets the character for the main symbol. On Finale 2012 and above, this supports the Unicode range...
Definition: ff_other.h:12250
static const char * FFUUID_LAUNEDDAS
Definition: ff_other.h:7804
static const char * FFUUID_SANXIAN
Definition: ff_other.h:8212
static const char * FFUUID_ELECTRICGUITAR
Definition: ff_other.h:8014
bool AssignRepeatDef(FCTextRepeatDef *pDef)
Assigns an text repeat definition to a metatool.
Definition: ff_other.h:24708
static const char * FFUUID_CROTALES
Definition: ff_other.h:8335
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:6888
twobyte GetShapeID() const
Return the layout shape ID for the text block.
Definition: ff_other.h:15240
static const char * FFUUID_TUBA
Definition: ff_other.h:7928
void SetLeftMargin(Evpu16 margin)
Sets the left margin value, in EVPUs.
Definition: ff_other.h:3684
static const char * FFUUID_BOLON
Definition: ff_other.h:8068
static const char * FFUUID_BARITONEVOICE
Definition: ff_other.h:7533
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:2344
bool GetAddToMenu() const
Returns if the staff style definition should be added to the staff style menu, or not...
Definition: ff_other.h:17364
Definition: ff_other.h:4243
virtual bool HasStaffValue()
Overridden version, since this class supports staff returns.
Definition: ff_other.h:16601
bool GetUseSymbols() const
Returns true if the "Use symbols for rests less than" is used.
Definition: ff_other.h:18332
FCCategoryDef()
The constructor.
Definition: ff_other.h:12903
static const char * FFUUID_TIMBALEBELL
Definition: ff_other.h:8954
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:3574
FCStaffStyleDef()
The constructor.
Definition: ff_other.h:17343
bool IsDefaultMiscellaneous()
Returns true if the category is the standard (pre-defined/Finale-created) category "Miscellaneous"...
Definition: ff_other.h:13222
static const char * FFUUID_TAB_DULCIMER_DAAUNISON
Definition: ff_other.h:8303
Simple class for the representation of x, y coordinates.
Definition: ff_base.h:3906
static const char * FFUUID_SNARELINE
Definition: ff_other.h:8503
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:16529
static const char * FFUUID_CONTRABASSOON
Definition: ff_other.h:7596
static const char * FFUUID_ALGAITA
Definition: ff_other.h:7824
static const char * FFUUID_TENORBANJO
Definition: ff_other.h:8020
Definition: ff_other.h:2876
static const char * FFUUID_UKULELE
Definition: ff_other.h:8044
Definition: ff_other.h:2864
void SetVerticalFingeringOffset(Efix32 value)
Sets the vertical offset for fingering numbers, in EFIXes.
Definition: ff_other.h:20897
static const char * FFUUID_TEBYOSHI
Definition: ff_other.h:8942
static const char * FFUUID_WINDCHIMES
Definition: ff_other.h:8701
Evpu16 GetLeftMargin() const
Returns the left margin value, in EVPUs.
Definition: ff_other.h:3813
static const char * FFUUID_BARYTON
Definition: ff_other.h:7405
static const char * FFUUID_OBOEDACACCIA
Definition: ff_other.h:7854
CMPER GetFullNameID()
Returns the text block ID for the full name. Usually not needed, use CreateFullNameString or CreateTr...
Definition: ff_other.h:9664
void SetAbbreviate(bool state)
Sets if the time signature should be abbreviated (to cut and common time).
Definition: ff_timesig.h:124
void GetFontInfo(FCFontInfo *pInfo)
Gets the font info for the text repeat.
Definition: ff_other.h:19605
void SetHorizontalAlignmentPoint(FCCategoryDef::HORIZ_ALIGNMENT value)
Sets the "Horizontal Alignment Point" setting in the shape expression definition. ...
Definition: ff_other.h:14903
void SetFrameEdgeRef(bool state)
Sets if the frame edge of the text block is used as the positioning reference.
Definition: ff_other.h:16205
FCShapeDefInstruction * AddNull()
Adds a Null instruction.
Definition: ff_other.h:1698
void SetNoPrint(bool state)
Sets the "No Print" state.
Definition: ff_other.h:14812
void SetTextFlag(bool state)
Sets the flag that marks if a measure contains any measure-attached text blocks.
Definition: ff_other.h:4427
static const char * FFUUID_ROTOTOMS
Definition: ff_other.h:8499
static const char * FFUUID_MURCHANG
Definition: ff_other.h:8468
twobyte GetExecutableShapeID()
Returns the executable shape ID.
Definition: ff_other.h:14624
void SetCategoryID(twobyte ID)
Sets the category ID for the expression definition.
Definition: ff_other.h:14085
void SetMeasurePos(twobyte value)
Sets the measure position (in EDUs) where the clef is placed in the measure.
Definition: ff_other.h:24288
GRAPHIC_HORIZONTAL_ALIGN GetHorizontalAlignmentRightPage() const
Returns the horizontal alignment for a right-side page graphic.
Definition: ff_other.h:19101
virtual int DataSizeSave()
Returns the data size for the data structure that should be saved or created.
Definition: finaleframework.cpp:813
bool GetFlatBeams() const
Returns the "Flat beams" state.
Definition: ff_other.h:9398
void Init_RLineTo(int x, int y)
Creates a st_rlineto shape instruction.
Definition: ff_other.h:1615
void SetCompositeBottom(bool value)
Sets the composite "mark" of the bottom part of the time signature.
Definition: ff_timesig.h:114
void SetPlaybackTempo(TimeEdu32 eduduration, int tempo)
Sets the playback tempo style for the expression definition.
Definition: ff_other.h:14137
void SetCompositeTop(bool value)
Sets the composite "mark" of the top part of the time signature.
Definition: ff_timesig.h:111
void SetShape(ENCLOSURESHAPE shape)
Sets the shape for the enclosure.
Definition: ff_other.h:2942
Evpu16 GetVerticalPos() const
Returns the graphic rectangle's bottom position, in EVPUs.
Definition: ff_other.h:18990
static const char * FFUUID_SAXONETTE
Definition: ff_other.h:7682
void SetVerticalOffset(twobyte value)
Returns the vertical offset adjustment value.
Definition: ff_other.h:7066
void SetResetOnRepeat(bool state)
Sets the "Reset on Repeat" setting.
Definition: ff_other.h:20077
bool GetUseShowFretboards() const
Returns true if the fretboard display is active for the staff style definition.
Definition: ff_other.h:17418
bool GetUseFullName() const
Returns true if the full staff name should be used for the staff style definition.
Definition: ff_other.h:17570
twobyte GetDoubleWholeRestPosition() const
Returns the vertical position for the double whole rests. This setting is located in the "Staff Setup...
Definition: ff_other.h:9253
static const char * FFUUID_TAB_GUITAR
Definition: ff_other.h:8263
void ClearAll()
Destroys all the objects in the collection and empties the collection.
Definition: ff_basecollection.h:130
void SetAlignment(FLAG_16 alignment)
Sets the default alignment for the staff text.
Definition: ff_other.h:7087
bool GetUseTimeSigForDisplay() const
Returns if the measure should use another time sig for display.
Definition: ff_other.h:4974
void SetRightBracketPosition(Evpu16 position)
Sets the horizontal right-side position of the bracket.
Definition: ff_other.h:21888
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:22773
Efix32 GetVerticalFretOffset() const
For tablature notation: returns the vertical offset for fret numbers.
Definition: ff_other.h:9688
void SetUseShowPartStaffNames(bool state)
Sets if staff name display in parts should be part of the staff style or not.
Definition: ff_other.h:17807
Class to encapsulate enclosures (available for example in expressions and measure numbers...
Definition: ff_other.h:2743
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:15753
FCShapeDefInstruction * AddSetFont(FCFontInfo *pFontInfo)
Adds a SetFont instruction.
Definition: ff_other.h:2023
static const char * FFUUID_QUADTOMS
Definition: ff_other.h:8495
void SetTopMargin(Evpu16 margin)
Sets the top page margin as a positive value.
Definition: ff_other.h:3436
twobyte GetEndMeasure() const
Returns the end measure for the region.
Definition: ff_region.h:408
GRAPHIC_VERTICAL_ALIGN GetVerticalAlignment() const
Returns the vertical alignment for the graphic.
Definition: ff_other.h:19118
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:20292
static const char * FFUUID_ZHONGHU
Definition: ff_other.h:7479
FCTextRepeat::REPSHOWMODES GetShowMode() const
Returns on which staves the backward repeat should be shown.
Definition: ff_other.h:21761
bool GetUseDefaultClef() const
Returns true if the default clef setting should be used for the staff style definition.
Definition: ff_other.h:17518
bool GetLineSpacingIsPercent() const
Returns if the line spacing value should be percent or points.
Definition: ff_other.h:15357
void SetHorizontalHandleOffset(Efix32 value)
Sets the horizontal handle offset, in EFIXes.
Definition: ff_other.h:20917
bool GetUseNotationStyle() const
Returns true if the notation style should be used for the staff style definition. ...
Definition: ff_other.h:17497
void SetAltShowOtherSmartShapes(bool state)
Sets if smart shapes should be displayed on layers other than the altered layer.
Definition: ff_other.h:10342
static const char * FFUUID_ZURNA
Definition: ff_other.h:7894
bool GetBackwardRepeat() const
Returns true if the backward repeat should be displayed for the measure.
Definition: ff_other.h:4844
EXTAG GetCustomTag()
Returns the custom Enigma tag, if any.
Definition: ff_base.h:815
virtual bool SaveAllForItem(CMPER cmper)
Overridden SaveAllForItem method that repacks the composite top time sig according to the cmper...
Definition: ff_other.h:797
twobyte GetCapoPosition() const
For tablature notation: returns the capo position.
Definition: ff_other.h:9670
static const char * FFUUID_VENU
Definition: ff_other.h:7772
static const char * FFUUID_TINAJA
Definition: ff_other.h:8956
void SetVerticalTextPosition(Evpu16 position)
Sets the vertical position of the repeat text.
Definition: ff_other.h:21458
static const char * FFUUID_ALPHORN
Definition: ff_other.h:7950
static const char * FFUUID_BOOMWHACKERS
Definition: ff_other.h:8365
bool InstrumentMatchesUUID(const char *pszUUID)
Returns true if the UUID string matches the instrument UUID for the staff.
Definition: ff_other.h:10832
static const char * FFUUID_DANTYBA
Definition: ff_other.h:8098
void SetRightMargin(Evpu16 margin)
Sets the right system margin value, in EVPUs. This is usually a negative value, since it's the distan...
Definition: ff_other.h:3693
static const char * FFUUID_TAB_GUITARSTEMS
Definition: ff_other.h:8267
bool GetUseFlatBeams() const
Returns true if the flat beams state should be used for the staff style definition.
Definition: ff_other.h:17490
FCFontInfo * CreateMultipleFontInfo(bool parts)
Creates a FCFontInfo object with the font information about the "multiple" measure numbers...
Definition: ff_other.h:6547
static const char * FFUUID_BANJOLELE
Definition: ff_other.h:8060
bool GetKeyless() const
Returns the keyless time signature mode for the measure. Only works on Finale 2014 and above...
Definition: ff_other.h:4754
void SetShowPartTimeSignatures(bool value)
Sets if the time signature should be displayed for the staff in parts. This does nothing on Finale ve...
Definition: ff_other.h:9834
Definition: ff_other.h:19836
TimeEdu32 GetStartMeasurePos() const
Returns the start measure EDU position of the assigned staff style.
Definition: ff_other.h:18131
bool GetIgnoreKeySig() const
Returns true if "Ignore Key Signature" is set for the staff.
Definition: ff_other.h:9047
static const char * FFUUID_CHINESEGONGS
Definition: ff_other.h:8837
static const char * FFUUID_CASTANETS
Definition: ff_other.h:8739
Class that stores one record of a fretboard chord definition.
Definition: ff_other.h:21082
bool IncludesTopStaff()
Returns true if the "Top Staff" is included in the staff list.
Definition: ff_other.h:23602
ALTERNATE_STAFF
Alternate staff notation styles for FCStaff::GetAltNotationStyle() and FCStaff::SetAltNotationStyle()...
Definition: ff_other.h:8995
void SetUseIndependentTimeSig(bool state)
Sets if independent time signatures should be part of the staff style or not.
Definition: ff_other.h:17945
void SetUseStaffResize(bool state)
Sets the flag that marks if any of the staves on the system use individual staff resizing.
Definition: ff_other.h:3737
bool AssignShapeExpressionDef(FCShapeExpressionDef *pDef)
Assigns a shape expression definition to a metatool.
Definition: ff_other.h:24691
void SetMeasurePos(TimeEdu32 value)
Sets the expression position in EDUs.
Definition: ff_other.h:16970
static const char * FFUUID_VIOLADAGAMBA
Definition: ff_other.h:7471
twobyte GetRehearsalMarkOffset() const
Returns the rehearsal mark offset.
Definition: ff_other.h:16695
static const char * FFUUID_TEMPLEBLOCKS
Definition: ff_other.h:8769
Evpu16 GetTopBarlineOffset() const
Returns the top barline offset, in EVPUs. This parameter controls how far the barlines extends upward...
Definition: ff_other.h:9718
static const char * FFUUID_KODAIKO
Definition: ff_other.h:8605
FCShapeDefInstruction * AddStartGroup(FCPoint *pOrigin, FCPoint *pBoundLeftTop, FCPoint *pBoundRightBottom, int xtransform=1000, int ytransform=1000, int rotation=0)
Adds a StartGroup instruction. All instructions in the group will transform according to the group...
Definition: ff_other.h:1749
twobyte GetVerticalEntryOffset() const
Returns the vertical "Additional Entry Offset" in the text expression definition. ...
Definition: ff_other.h:14019
virtual bool LoadFirst()=0
Loads the very first element in the database, if any.
void SetPlaybackController(twobyte controllernumber, twobyte value)
Sets the playback to a specific MIDI CC controller.
Definition: ff_other.h:14124
static const char * FFUUID_KENONGGAMELAN
Definition: ff_other.h:8789
Definition: ff_other.h:19839
static const char * FFUUID_CLARINETA
Definition: ff_other.h:7582
bool GetUseTransposition() const
Returns true if the transposition settings should be used for the staff style definition.
Definition: ff_other.h:17535
static const char * FFUUID_HANG_TCLEF
Definition: ff_other.h:8386
static const char * FFUUID_REQUINTOGUITAR
Definition: ff_other.h:8200
FCShapeDefInstruction * AddStartObject(FCPoint *pOrigin, FCPoint *pBoundLeftTop, FCPoint *pBoundRightBottom, int xtransform=1000, int ytransform=1000, int rotation=0)
Adds a StartObject instruction.
Definition: ff_other.h:1722
int GetCount() const
Returns the number of parameter elements in the instruction.
Definition: ff_other.h:1291
static const char * FFUUID_BONES
Definition: ff_other.h:8817
VERT_ALIGNMENT
The vertical alignment points available to categories and expressions.
Definition: ff_other.h:12799
Definition: ff_other.h:2873
bool GetRepeatBracketFlag() const
Returns true if repeat brackets display for the measure.
Definition: ff_other.h:4857
bool GetNumberFontInfo(FCFontInfo *pInfo)
Gets the font info for the number font.
Definition: ff_other.h:13115
FLAG_16 GetJustification() const
Returns the default justification for the staff text.
Definition: ff_other.h:7030
static const char * FFUUID_GEHU
Definition: ff_other.h:7427
static const char * FFUUID_GOTTUVADHYAM
Definition: ff_other.h:8120
Class for page-assigned graphics. Currently, this class can only be used to edit existing page graphi...
Definition: ff_other.h:18859
twobyte GetTopRepeatDotPosition() const
Returns the top repeat dot position for the staff. This setting is located in the "Staff Setup" dialo...
Definition: ff_other.h:9295
bool SaveWithType(SHAPEDEF_TYPES shapedeftype)
Saves an existing shape definition with the Save() method, but also saves the type of shape with the ...
Definition: ff_other.h:2512
static const char * FFUUID_BASSMARIMBA
Definition: ff_other.h:8345
void Init_CurveTo(int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
Creates a st_curveto shape instruction.
Definition: ff_other.h:1497
static const char * FFUUID_ZARB
Definition: ff_other.h:8692
fourbyte GetDataCount() const
Returns the number of elements in the data array.
Definition: ff_other.h:2540
static const char * FFUUID_TUBAX
Definition: ff_other.h:7702
bool GetRoundedCorners() const
Returns if rounded corners should be used (on Finale 25.4 and later) for the enclosure.
Definition: ff_other.h:3183
FCFontInfo * CreateStartFontInfo(bool parts)
Creates a FCFontInfo object with the font information about the start measure numbers.
Definition: ff_other.h:6510
Class for attaching an tuplet to an entry.
Definition: ff_entrydetails.h:1647
void SetName(FCString *pString)
Sets the name of the category.
Definition: ff_other.h:13324
int GetHorizontalMargin() const
Returns the horizontal margin (which is half the width value in the enclosure dialog box)...
Definition: ff_other.h:3138
static const char * FFUUID_BENDIR
Definition: ff_other.h:8531
int GetStaffCount() const
Returns the number of staves that are part of the staff list. Top/bottom staff settings are not inclu...
Definition: ff_other.h:23546
static const char * FFUUID_KALAAU
Definition: ff_other.h:8898
A collection of __FCCompositeTimeSigTopElement records.
Definition: ff_other.h:495
static const char * FFUUID_GLASSMARIMBA
Definition: ff_other.h:8378
bool SaveAsKeystroke(twobyte keystrokeslot)
Saves the metatool object to a specific keystroke.
Definition: ff_other.h:24760
static void DebugOut(const char *pszLine)
Static method to output a line of text for debugging purposes.
Definition: finaleframework.cpp:465
Int100 GetHorizontalStretch() const
Returns the calculated horizontal stretch of the system contents, in 1/100 of a percent.
Definition: ff_other.h:3886
void * _datablock
Pointer to the object's data block, the meaning is implementation-specific for each derived subclass...
Definition: ff_base.h:640
bool GetUseThisFont() const
Returns the "Use This Font" setting. Only active if the '#' should be replaced by the target text...
Definition: ff_other.h:19630
void SetName(FCString *pString)
Sets the style name, by using a FCString object.
Definition: ff_other.h:20826
static const char * FFUUID_BASSTROMBONE
Definition: ff_other.h:7920
void _SetTextBlockID(CMPER textblockid)
Sets the connected block ID for the text. For use with FCTextBlock.
Definition: ff_other.h:15989
bool IsOverlapping(FCMusicRegion *pRegion)
Returns true if the supplied FCMusicRegion object is within staff style region.
Definition: ff_other.h:18192
Evpu16 GetFlippedHandleVerticalOffset() const
Gets the vertical offset to handle for the flipped symbol.
Definition: ff_other.h:11999
static const char * FFUUID_MANDORE
Definition: ff_other.h:8176
void SetUseShowKeySignatures(bool state)
Sets if "Display Key Sig" should be part of the staff style or not.
Definition: ff_other.h:17688
static const char * FFUUID_KUTIYAPI
Definition: ff_other.h:8162
bool GetShowLyrics() const
Returns true if lyrics should be displayed for the staff.
Definition: ff_other.h:9344
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:23415
bool GetUseIgnoreKeySig() const
Returns true if the "Ignore Key Signature" state should be used for the staff style definition...
Definition: ff_other.h:17605
Class for freezing a system at a specific measure.
Definition: ff_other.h:13506
ECompositeTimeUpper * _GetSecondRecordPtr()
For internal use only.
Definition: ff_other.h:399
static const char * FFUUID_SANGBAN
Definition: ff_other.h:8655
TEXTBLOCKJUSTIFY
Constants for text justification.
Definition: ff_other.h:15175
bool GetTranspose() const
Returns the transposition status of the staff.
Definition: ff_other.h:10612
static const char * FFUUID_DIHU
Definition: ff_other.h:7417
void SetAltNotationDisplayOtherLayerNotes(bool state)
Sets if the non-alternate layers should be displayed or not.
Definition: ff_other.h:10091
void MakeStandard5LineStaff()
Fills the necessary values in the Staff Setup dialog to make a standard 5-line staff.
Definition: ff_other.h:10655
static const char * FFUUID_AIRHORN
Definition: ff_other.h:8731
static const char * FFUUID_PORTUGUESEGUITAR
Definition: ff_other.h:8196
virtual eStaff GetStaff() const
Virtual method for returning the staff number.
Definition: ff_other.h:138
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:20588
void SetLeftBracketPosition(Evpu16 position)
Sets the horizontal left-side position of the bracket.
Definition: ff_other.h:21897
void SetFullSpan(Evpu16 span)
Sets the full span for the beat chart.
Definition: ff_other.h:22272
static const char * FFUUID_EWEDRUMGANGOKUI
Definition: ff_other.h:8859
twobyte GetTotalPasses() const
Returns the number of passes for the text repeat assignment.
Definition: ff_other.h:20041
void SetUseShowFretboards(bool state)
Sets if fretboard display should be part of the staff style or not.
Definition: ff_other.h:17748
void SetThirdStaff(CMPER value)
Sets the staff number of the third staff in the instrument group.
Definition: ff_other.h:18659
void SetUseShowClefs(bool state)
Sets if the clef should be part of the staff style or not.
Definition: ff_other.h:17718
void SetShowTies(bool state)
Sets if ties should be displayed for the staff.
Definition: ff_other.h:10085
void SetFlatBeams(bool state)
Sets the "Flat beams" state.
Definition: ff_other.h:10114
int GetVerticalMargin() const
Returns the vertical margin (which is half the height value in the enclosure dialog box)...
Definition: ff_other.h:3149
void SetRepeatBracketFlag(bool state)
Sets if there are repeat brackets displayed for the measure.
Definition: ff_other.h:4456
static const char * FFUUID_TRIANGLE
Definition: ff_other.h:8711
void SetStaffListID(twobyte list)
Sets the staff list ID to be used.
Definition: ff_other.h:20029
void SetRoundedCorners(bool state)
Sets if the text frame should use rounded corners.
Definition: ff_other.h:15465
void SetIndividualPositioning(bool state)
Returns true if the bracket has individual positioning.
Definition: ff_other.h:21813
void SetTarget(int value)
Sets the target measure or ID for the text repeat. This value is dependent on the GetTargetTrigger() ...
Definition: ff_other.h:19956
static const char * FFUUID_KANTILGAMELAN
Definition: ff_other.h:8414
static const char * FFUUID_SYNTHPAD
Definition: ff_other.h:7504
void SetCenterHorizontally(bool state)
Sets the state of the "Center horizontally" setting.
Definition: ff_other.h:12423
bool GetShowLastFret() const
Returns if the last fret should be shown when drawing the fretboards, or not.
Definition: ff_other.h:20725
virtual bool LoadFirst()
Overridden version of LoadFirst, to work with FCFretInstrumentDefs::LoadAll()
Definition: ff_other.h:23840
void SetVerticalRightBracketPosition(Evpu16 position)
Sets the vertical position of the repeat bracket's right side.
Definition: ff_other.h:21440
void SetTargetTrigger(FCTextRepeat::REPTARGETTRIGGERS value)
Set the target trigger for the backward repeat. This method should also be combined with a SetTargetM...
Definition: ff_other.h:21919
static const char * FFUUID_NOSEFLUTE
Definition: ff_other.h:7746
static const char * FFUUID_PERCUSSIONGENERAL
Definition: ff_other.h:8697
void SetClefIndex(twobyte value)
Sets the clef index.
Definition: ff_other.h:24276
Definition: ff_other.h:4209
bool GetFrameReference() const
Returns if the text block should be positioned by the frame layout or not.
Definition: ff_other.h:15346
void SetTopDuration(twobyte value)
Sets the Top Note Value for "Duration" change of playback.
Definition: ff_other.h:12502
bool GetUseShowKeySignatures() const
Returns true if the "Display Key Signature" is active for the staff style definition.
Definition: ff_other.h:17376
void GetName(FCString *pString)
Copies the style name to a FCString object.
Definition: ff_other.h:20623
twobyte GetStaffListID() const
Returns the staff list ID to be used for the text repeat assignment.
Definition: ff_other.h:21219
static const char * FFUUID_CORNAMUSE
Definition: ff_other.h:7792
CMPER GetTextBlockID() const
Returns the connected block ID for the text. For use with FCTextBlock.
Definition: ff_other.h:15980
void SetTopRepeatDotPosition(twobyte position)
Sets the top repeat dot position for the staff. This setting is located in the "Staff Setup" dialog b...
Definition: ff_other.h:10010
static const char * FFUUID_CHINATEMPLEBLOCKS
Definition: ff_other.h:8833
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:35
void SetUseShowStems(bool state)
Sets if stem display should be part of the staff style or not.
Definition: ff_other.h:17817
Class for a multi-measure rest instance.
Definition: ff_other.h:18234
void SetHorizontalAlignment(TEXT_HORIZONTAL_ALIGN alignment)
Sets the horizontal alignment for left-side (or all) pages.
Definition: ff_other.h:16027
twobyte GetLineSpacing() const
Returns the line spacing value for the text block.
Definition: ff_other.h:15318
Class for a category definition.
Definition: ff_other.h:12571
void SetGroupElementBeats(int groupindex, int subindex, twobyte value)
Sets the beat number for a group element.
Definition: ff_other.h:769
static const char * FFUUID_TAPHON
Definition: ff_other.h:8673
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:375
void SetLineSpacing(twobyte linespacing)
Sets the line spacing value for the text block.
Definition: ff_other.h:15325
static const char * FFUUID_YANGQIN
Definition: ff_other.h:8255
void SetHorizontalTextPosition(Evpu16 position)
Sets the horizontal position of the repeat text.
Definition: ff_other.h:21449
void SetID(twobyte catID)
Sets the internal category ID.
Definition: ff_other.h:13394
static const char * FFUUID_BASSHARMONICA
Definition: ff_other.h:7634
bool GetFixedPercent() const
Returns the state of the "Fixed Percent" checkbox in the graphic attributes dialog box...
Definition: ff_other.h:19070
virtual bool DeepDeleteData()
Reimplementation to delete block and raw text as well.
Definition: ff_other.h:16213
static const char * FFUUID_REBEC
Definition: ff_other.h:7457
static const char * FFUUID_DVOJNICEDRONE
Definition: ff_other.h:7718
void SetSpeedyClef(eClef clef)
Sets the clef number to be used in Speedy Edit.
Definition: ff_other.h:23935
void SetVerticalBaselineOffset(twobyte value)
Sets the vertical "Additional Baseline Offset" value in the category definition.
Definition: ff_other.h:13405
void GetName(FCString *pString)
Gets the name of the category and copies it to an existing string object.
Definition: ff_other.h:12977
static const char * FFUUID_SLIDETRUMPET
Definition: ff_other.h:7976
TimeEdu32 GetEndMeasurePos() const
Returns the end measure EDU position of the assigned staff style.
Definition: ff_other.h:18143
void SetBeats(twobyte value)
Sets the number of beats, or the composite top ID.
Definition: ff_timesig.h:95
static const char * FFUUID_AFOXE
Definition: ff_other.h:8799
int AddGroup()
Adds a group to the end of the top composite time sig.
Definition: ff_other.h:1037
void SetCString(const char *pszBuffer, int maxchars=-1)
Sets the string, using a C-string version of the string.
Definition: finaleframework.cpp:1030
void Init_Bracket(int brackettype)
Creates a bracket shape instruction.
Definition: ff_other.h:1624
void SetAltShowArticulations(bool state)
Sets if articulations should be diplayed on the alternate layer.
Definition: ff_other.h:10300
bool GetTextFlag() const
Gets the flag that marks if a measure contains any measure-attached text blocks.
Definition: ff_other.h:4833
The base class for FCStaff (and its subclass FCCurrentStaffSpec), as well FCStaffStyleDef.
Definition: ff_other.h:7133
void AppendInteger(int value)
Appends an integer value (decimal) to the string.
Definition: finaleframework.cpp:1659
FCPageText()
The constructor.
Definition: ff_other.h:15769
Evpu16 GetMainHandleVerticalOffset() const
Gets the vertical offset to handle for the main symbol.
Definition: ff_other.h:11985
static const char * FFUUID_BOMBO
Definition: ff_other.h:8535
void SetMode(ENCLOSUREMODES enclosuremode)
Set the enclosure sizing option.
Definition: ff_other.h:3059
virtual bool IsIdentical(__FCBase *pTestObject)
Returns true if the shape def instructions are identical.
Definition: ff_other.h:1305
float CalcValue()
Returns the actual value for the tempo. The returned value might be absolute or relative, based on the GetAbsolute return value.
Definition: ff_other.h:22440
bool GetUseIndependentKeySig() const
Returns true if independent key signatures should be used for the staff style definition.
Definition: ff_other.h:17584
void SetShape(bool isshape)
Marks the expression as a shape or a text expression.
Definition: ff_other.h:16928
int GetLineInset() const
Returns the inset between text and border (in EFIXes) for the frame's border.
Definition: ff_other.h:15571
void SetSkipOnIgnore(bool state)
Returns the "Skip ending if ignoring repeats" setting.
Definition: ff_other.h:21376
Definition: ff_other.h:1228
static const char * FFUUID_NIGERIANLOGDRUM
Definition: ff_other.h:8629
static const char * FFUUID_COUNTERTENORVOICE
Definition: ff_other.h:7547
Class for staff (or staff style) name positioning data.
Definition: ff_other.h:6956
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:3575
static const char * FFUUID_DANBAU
Definition: ff_other.h:8090
bool IncludesBottomStaff()
Returns true if the "Bottom Staff" is included in the staff list.
Definition: ff_other.h:23611
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:21178
static const char * FFUUID_VALIHA
Definition: ff_other.h:8239
static const char * FFUUID_CONTRAALTOFLUTE
Definition: ff_other.h:7648
static const char * FFUUID_FRETLESSBASS
Definition: ff_other.h:8028
void SetShapeEndAdjust(twobyte value)
Sets the right-side adjustment for MM shapes.
Definition: ff_other.h:18425
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:21653
void SetWholeRestPosition(twobyte position)
Sets the vertical position for the whole rests. This setting is located in the "Staff Setup" dialog b...
Definition: ff_other.h:9951
FCString * CreateTextString()
Gets a pointer to the text string, as a string object.
Definition: ff_other.h:15784
const char * GetInstrumentUUID() const
Returns the assigned instrument UUID for the staff.
Definition: ff_other.h:9734
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:11221
Definition: ff_other.h:4197
static const char * FFUUID_DVOJNICE
Definition: ff_other.h:7716
static const char * FFUUID_OBOE
Definition: ff_other.h:7574
void SetID(eKey newkey)
Sets the key signature ID.
Definition: ff_keysig.h:76
eMeas GetTargetMeasure() const
Returns the target measure number.
Definition: ff_other.h:21234
Collection class for FCTempoElements class objects for one measure. The tempo elements should be stor...
Definition: ff_othercollection.h:1518
Definition: ff_other.h:19802
Efix32 GetVerticalHandleOffset() const
Returns the vertical handle offset, in EFIXes.
Definition: ff_other.h:20687
METATOOL_MODES GetMode() const
Returns the mode of the object.
Definition: ff_other.h:24593
static const char * FFUUID_CLARINETBFLAT
Definition: ff_other.h:7580
static const char * FFUUID_CONTRALTOVOICE
Definition: ff_other.h:7545
static const char * FFUUID_GUITJODOUBLENECK
Definition: ff_other.h:8128
static const char * FFUUID_SOPRANOGLOCKENSPIEL
Definition: ff_other.h:8339
Evpu16 GetVerticalTopBracketPosition() const
Returns the top vertical position of the bracket.
Definition: ff_other.h:21252
void SetDurationIsPercent(bool value)
Sets the "Values are percentages" for the "Duration" playback change.
Definition: ff_other.h:12522
FCCategoryDef::HORIZ_JUSTIFICATION GetHorizontalJustification() const
Returns the "Horizontal Justification" setting in the shape expression definition.
Definition: ff_other.h:14651
static const char * FFUUID_BIFORA
Definition: ff_other.h:7826
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:21652
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:22675
static const char * FFUUID_CONTRABASSTROMBONE
Definition: ff_other.h:7948
void SetResize(int value)
Sets the resize for the specific staff, in percent. Setting the value to 100 will clear any resize da...
Definition: ff_other.h:6822
Class for an individual note in a percussion map, read from Finale's XML file.
Definition: ff_other.h:22503
Evpu16 GetHeight() const
Returns the fixed height of the frame.
Definition: ff_other.h:15624
static const char * FFUUID_BARITONETC
Definition: ff_other.h:7926
float GetY() const
Returns the y position.
Definition: ff_base.h:3943
twobyte GetMeasure() const
Sets the measure that the separate placement should be matched to.
Definition: ff_other.h:16372
bool IsDefaultExpressiveText()
Returns true if the category is the standard (pre-defined/Finale-created) category "Expressive Text"...
Definition: ff_other.h:13266
bool ContainsMeasure(eMeas measurenumber)
Returns true if the measure number is on the system.
Definition: ff_other.h:3961
void SetBreakWordExtension(bool state)
Sets the "Break Word Extension" state.
Definition: ff_other.h:4609
Class for a page-connected text block.
Definition: ff_other.h:15674
twobyte GetNextSysMeasure() const
Returns the start measure for the subsequent system after the system's frozen measures.
Definition: ff_other.h:13582
static const char * FFUUID_GUITAR8VB
Definition: ff_other.h:8008
static const char * FFUUID_HATHELI
Definition: ff_other.h:8880
void SetEndMeasurePosRight()
Sets the the end measure pos to the right-most edge of the staff style assignment's end measure...
Definition: ff_other.h:18186
void SetLeftBarlineShapeID(twobyte shapeID)
Sets the left barline shape ID (for use with the FCShapeDef class), for custom left barlines...
Definition: ff_other.h:4690
twobyte GetWidth()
Returns the allotment reference width (int EVPUs).
Definition: ff_other.h:18836
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:21110
static const char * FFUUID_MADAL
Definition: ff_other.h:8611
void SetVerticalFretNumberOffset(Efix32 value)
Sets the vertical text offset for fret number text, in EFIXes.
Definition: ff_other.h:20962
static const char * FFUUID_SARONDEMONGGAMELAN
Definition: ff_other.h:8424
static const char * FFUUID_DOUBLEFLUTE
Definition: ff_other.h:7714
twobyte GetRawTextID() const
Returns the text ID for the raw text.
Definition: ff_other.h:15218
int GetInstructionSize(int index)
Returns how many data blocks an instruction contains. (This is a fixed number based on the instructio...
Definition: ff_other.h:2600
static const char * FFUUID_CHIMES
Definition: ff_other.h:8333
void _SetMemory(EDTPathInst *pPathInstruction, void *pPathData, int offset)
For internal use only.
Definition: finaleframework.cpp:32067
static const char * FFUUID_VOCALPERCUSSION
Definition: ff_other.h:7563
static const char * FFUUID_GAOHU
Definition: ff_other.h:7425
static const char * FFUUID_GUITARRAQUINTAHUAPANGUERA
Definition: ff_other.h:8122
bool GetOnScreenOnly() const
Returns true if the main symbol should not print.
Definition: ff_other.h:11664
static const char * FFUUID_KAZOO
Definition: ff_other.h:7559
static const char * FFUUID_DANTRANH
Definition: ff_other.h:8096
static const char * FFUUID_HECKELCLARINA
Definition: ff_other.h:7798
eMeas GetEndMeasure() const
Returns the end measure number of the assigned staff style.
Definition: ff_other.h:18137
void SetUseShowBarlines(bool state)
Sets if the barline display setting should be part of the staff style or not.
Definition: ff_other.h:17917
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:22865
Class for a text block.
Definition: ff_other.h:15039
twobyte GetHorizontalPos() const
Returns the horizontal position for the text block.
Definition: ff_other.h:15924
static const char * FFUUID_KHLUI
Definition: ff_other.h:7734
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:23414
void SetHideMeasureNumbers(bool value)
Sets if the rehearsal mark text expression hides the measure numbers or not.
Definition: ff_other.h:13890
TEXT_VERTICAL_ALIGN
Vertical alignment constants for text blocks.
Definition: ff_other.h:15731
bool CalcProtected()
Returns true if the shape is marked as "protected" by Finale and shouldn't be deleted. (Is this really correct???)
Definition: ff_other.h:2366
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:6689
twobyte GetPercent() const
Returns the resize percentage of the page.
Definition: ff_other.h:3378
static const char * FFUUID_AJAENG
Definition: ff_other.h:7401
static const char * FFUUID_DILLIKAVAL
Definition: ff_other.h:7710
bool RemoveBottomStaff()
Removes a "Bottom Staff" from the staff list.
Definition: ff_other.h:23721
Evpu16 GetWidth() const
Returns the graphic rectangle's width, in EVPUs.
Definition: ff_other.h:18999
FCMultiMeasureRest()
The constructor.
Definition: ff_other.h:18290
twobyte GetHorizontalOffset() const
Gets the "Additional Horizontal Offset" in the category definition.
Definition: ff_other.h:13075
bool GetOpaque() const
Returns the "opaque" state.
Definition: ff_other.h:3169
The class for an articulation definition. On Finale 2012 and above, this class supports the Unicode c...
Definition: ff_other.h:11535
bool GetDrawFingeringWhite() const
Returns if the fingering numbers should be drawn in white.
Definition: ff_other.h:20739
void SetOpaque(bool state)
Sets the "opaque" state.
Definition: ff_other.h:3025
static const char * FFUUID_DIZI
Definition: ff_other.h:7708
FCShapeDefInstruction * AddFillSolid()
Adds a FillSolid instruction, which fills the path.
Definition: ff_other.h:1814
static const char * FFUUID_TAR_PLUCKED
Definition: ff_other.h:8229
static const char * FFUUID_KAVAL
Definition: ff_other.h:7732
bool GetAltRhythmStemsUp() const
Returns if stems should be freezes up in rhythmic notation (for altered layers). This setting is only...
Definition: ff_other.h:9579
bool GetPlay() const
Returns the "Play" state of the layer.
Definition: ff_other.h:22938
static const char * FFUUID_WHAMOLA
Definition: ff_other.h:8251
bool GetAltShowOtherArticulations() const
Returns if articulations should be displayed on layers other than the altered layer.
Definition: ff_other.h:9554
FCPercussionLayoutNotesLookup()
The constructor.
Definition: ff_other.h:22711
bool GetCopyMainSymbol() const
Returns the state of the "Copy the Main Symbol" setting.
Definition: ff_other.h:11844
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:5513
void SetVerticalBaselineOffset(twobyte value)
Sets the vertical "Additional Baseline Offset" in the shape expression definition.
Definition: ff_other.h:14980
static const char * FFUUID_BOUZOUKI
Definition: ff_other.h:8072
bool GetHoldMargins() const
Returns the status of the Hold Margins setting.
Definition: ff_other.h:3392
void SetGroupElementBeatDuration(int groupindex, int subindex, twobyte value)
Sets the beat duration for a group element.
Definition: ff_other.h:1090
static const char * FFUUID_KETUKGAMELAN
Definition: ff_other.h:8791
bool SetStringTuning(int stringnumber, twobyte midinumber)
Sets the MIDI number for a specific open string's tuning.
Definition: ff_other.h:24032
static const char * FFUUID_LOWIRISHWHISTLE
Definition: ff_other.h:7628
static const char * FFUUID_ALTOMETALLOPHONE
Definition: ff_other.h:8394
static const char * FFUUID_MARIMBA
Definition: ff_other.h:8343
virtual ~FCCompositeTimeSigTop()
The destructor.
Definition: ff_other.h:626
static const char * FFUUID_SOPRILLO
Definition: ff_other.h:7688
bool GetUseBreakBarlines() const
Returns true if the "Break barlines between staves" setting should be used for the staff style defini...
Definition: ff_other.h:17542
bool GetIndependentRightPage() const
Returns true if the right-side page positioning is used.
Definition: ff_other.h:19051
FCShapeDefInstruction * AddDrawCharsString(FCString *pString)
Adds a string as a series of DrawChar instructions from a FCString object. This method supports 16-bi...
Definition: ff_other.h:2077
void SetNutThickness(Efix32 value)
Sets the nut thickness, in EFIXes.
Definition: ff_other.h:20877
static const char * FFUUID_SAROD
Definition: ff_other.h:8214
MNJUSTIFICATIONS
The measure number justification values.
Definition: ff_other.h:5500
void SetStaffGroupID(twobyte value)
Sets the "staff group" ID for the staff, which is used for expressions that are one unity in a staff ...
Definition: ff_other.h:16943
static const char * FFUUID_OUD
Definition: ff_other.h:8192
void SetHorizontalOffset2(Evpu16 value)
Sets the 2nd horizontal offset, compared to the standard positioning.
Definition: ff_other.h:16462
void Clear()
Creates an empty string.
Definition: ff_base.h:1831
int GetGroupCount()
Calculates and returns the number of top time sig groups.
Definition: ff_other.h:979
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:6736
void SetPercussionLibrary(CMPER cmper)
Set the percussion library that's used. This is loaded by the percussion layout, (the FCPercussionLay...
Definition: ff_other.h:6924
static const char * FFUUID_INYAHURA
Definition: ff_other.h:8591
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:23175
static const char * FFUUID_ARRAYMBIRA
Definition: ff_other.h:8436
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:24195
void SetUseIndependentKeySig(bool state)
Sets if independent key signatures should be part of the staff style or not.
Definition: ff_other.h:17938
static const char * FFUUID_TAB_VIHUELA
Definition: ff_other.h:8323
Base class for "other" data with incis of the __FCInciOther class (where it's common to collect all i...
Definition: ff_basecollection.h:606
void SetVerticalPosRightPage(twobyte value)
Sets the vertical position for the text block for right-side pages.
Definition: ff_other.h:16158
bool GetAttackIsPercent() const
Returns the "Values are percentages" state for the "Attack" playback change.
Definition: ff_other.h:11869
FCPercussionMapNote * FindMidiNote(twobyte midinote)
Finds and returns a MIDI note in the collection.
Definition: ff_other.h:22652
static const char * FFUUID_POCKETTRUMPET
Definition: ff_other.h:7972
void SetBelowUsesMain(bool state)
Sets the state of the "When Placed Below a Note, Use the" setting.
Definition: ff_other.h:12347
void SetVisible(bool state)
Sets the visibility state of the graphic.
Definition: ff_other.h:19193
void SetStaffListID(twobyte list)
Sets the staff list ID to be used.
Definition: ff_other.h:21365
static const char * FFUUID_PIRI
Definition: ff_other.h:7858
void SetFretCount(twobyte count)
Sets the number of frets for the instrument definition.
Definition: ff_other.h:23895
void SetHorizontalPosition(Evpu16 position)
Sets the position of the beat chart element.
Definition: ff_other.h:22245
static const char * FFUUID_TALKBOX
Definition: ff_other.h:7561
bool GetAllowHorizontalSplit() const
Gets the state of the "Allow Horizontal Split Points" setting.
Definition: ff_other.h:4935
static const char * FFUUID_CONTRABASSSECTION
Definition: ff_other.h:7395
static const char * FFUUID_HOCCHIKU
Definition: ff_other.h:7726
bool GetUseAbbreviatedName() const
Returns true if the abbreviated staff name should be used for the staff style definition.
Definition: ff_other.h:17577
static const char * FFUUID_KULINTANG
Definition: ff_other.h:8454
void SetShowMeasureNumbers(bool value)
Sets if measure numbers should be displayed for the staff.
Definition: ff_other.h:9787
void SetStaffListID(twobyte stafflistid)
Sets the staff list ID.
Definition: ff_other.h:21906
static const char * FFUUID_PICCOLOCLARINET
Definition: ff_other.h:7680
static const char * FFUUID_MUSICALSAW
Definition: ff_other.h:8398
void SetUseShowLyrics(bool state)
Sets if lyrics display should be part of the staff style or not.
Definition: ff_other.h:17758
void SetDoubleWholeRestPosition(twobyte position)
Sets the vertical position for the double whole rests. This setting is located in the "Staff Setup" d...
Definition: ff_other.h:9965
void SetRoundedCornerRadius(Efix32 radius)
Sets the corner radius (in EFIXes) for rounded corners on Finale 25.4 and above.
Definition: ff_other.h:3050
void SetWidth(twobyte width)
Sets the allotment reference width (int EVPUs).
Definition: ff_other.h:18829
Definition: ff_other.h:2895
static const char * FFUUID_MIJWIZ
Definition: ff_other.h:7808
static const char * FFUUID_FLEXATONE_PERC
Definition: ff_other.h:8862
static const char * FFUUID_TAB_SITAR_KHAN
Definition: ff_other.h:8319
static const char * FFUUID_GHATAM
Definition: ff_other.h:8868
void SetTextRepeatFlag(bool state)
Sets the stat that marks if there are text repeats in the measure.
Definition: ff_other.h:4467
static const char * FFUUID_EWEDRUMKPANLOGO3COMBO
Definition: ff_other.h:8575
Evpu16 GetHorizontalOffset1() const
Returns the 1st horizontal offset, compared to the standard positioning.
Definition: ff_other.h:16383
SHAPEDEF_TYPES GetType() const
Returns the shape definition type.
Definition: ff_other.h:2457
Definition: ff_other.h:1258
void SetSpaceAbove(twobyte space)
Sets the space to the previous system, in EVPUs.
Definition: ff_other.h:3650
static const char * FFUUID_DOBRO
Definition: ff_other.h:8102
void Set16BitFlag(FLAG_16 *flag, FLAG_16 flagbits, bool state)
Sets a 16 bit flag in the data block.
Definition: finaleframework.cpp:573
static const char * FFUUID_STRINGENSEMBLE
Definition: ff_other.h:7397
bool AddTopStaff()
Adds a "Top Staff" to the staff list.
Definition: ff_other.h:23681
static const char * FFUUID_TIMPLE
Definition: ff_other.h:8233
void SetBottomMargin(Evpu16 margin)
Sets the bottom margin value, referenced from the staff baseline of the bottom staff, in EVPUs.
Definition: ff_other.h:3674
void SetUseAbbreviatedPosition(bool state)
Sets if the abbreviated name positioning should be part of the staff style or not.
Definition: ff_other.h:17973
static const char * FFUUID_KRINSLITDRUM
Definition: ff_other.h:8910
static const char * FFUUID_BASSDRUMS_5LINE
Definition: ff_other.h:8505
static const char * FFUUID_KHIM
Definition: ff_other.h:8154
Evpu16 GetHorizontalPos() const
Returns the graphic rectangle's left-side position, in EVPUs.
Definition: ff_other.h:18981
static const char * FFUUID_HANDBELLS_TCLEF
Definition: ff_other.h:8382
void SetID(twobyte shapeID)
Sets the shape ID (of the FCShapeDef class).
Definition: ff_other.h:14769
FCShapeDefInstruction * AddStroke()
Adds a Stroke instruction (which draws a path).
Definition: ff_other.h:1938
Definition: ff_other.h:4261
static const char * FFUUID_TAB_SITAR_SHANKAR
Definition: ff_other.h:8317
void SetAlwaysPlaceOutsideStaff(bool state)
Sets the state of the "Always place outside staff" setting.
Definition: ff_other.h:12417
void SetStringCount(twobyte count)
Sets the number of strings for the instrument definition.
Definition: ff_other.h:23915
bool IsShapeUsed()
Returns true if a shape is used for the articulation definition.
Definition: ff_other.h:12030
bool GetUseStafflineAdjustments() const
Returns true if the staffline adjustments settings should be used for the staff style definition...
Definition: ff_other.h:17528
TEXT_VERTICAL_ALIGN GetVerticalAlignment() const
Returns the vertical alignment for the text block.
Definition: ff_other.h:15859
The class for an instrument definition item (in the instrument list/Score Manager).
Definition: ff_other.h:22745
void SetUseIgnoreKeySig(bool state)
Sets if the "Ignore Key Signature" state should be part of the staff style or not.
Definition: ff_other.h:17959
virtual bool SaveNew()
Overridden functionality: SaveNew() is not supported for this class.
Definition: ff_other.h:24771
twobyte GetStemReversalPosition() const
Returns the stem reversal position offset for the staff. This setting is located in the "Staff Setup"...
Definition: ff_other.h:9268
Definition: ff_other.h:1204
static const char * FFUUID_ELECTRICPIANO
Definition: ff_other.h:7500
void SetHorizontalAlignmentPoint(HORIZ_ALIGNMENT value)
Sets the "Horizontal Alignment Point" value in the category definition.
Definition: ff_other.h:13465
twobyte GetBarreShapeID() const
Returns the shape ID of the "barre" shape.
Definition: ff_other.h:20772
twobyte GetID() const
Returns the shape ID (of the FCShapeDef class).
Definition: ff_other.h:14634
ARTPOSITIONING_SIDES
The auto positioning modes for articulations. Used by FCArticulationDef::GetAutoPosSide() and FCArtic...
Definition: ff_other.h:11621
void SetHorizontalAlignmentRightPage(TEXT_HORIZONTAL_ALIGN alignment)
Sets the horizontal alignment for right-side pages.
Definition: ff_other.h:16047
void SetTransposeSimplifyKey(bool state)
Sets the state of the "Simplify Key Sig" in the transposition dialog box.
Definition: ff_other.h:10102
static const char * FFUUID_TAB_BASSGUITAR_5
Definition: ff_other.h:8297
bool GetShowBorders() const
Returns if the borders should display for the txt block, or not.
Definition: ff_other.h:15598
FCPercussionLayoutNote()
The constructor.
Definition: ff_other.h:23190
void SetTopBracketPosition(Evpu16 position)
Sets the vertical position of the bracket.
Definition: ff_other.h:21870
void SetLineSpacingIsPercent(bool state)
Sets if the line spacing value should be percent or points.
Definition: ff_other.h:15431
void SetTotalPasses(twobyte passes)
Sets the number of passes for the playback. This is used as value for "Jump on Pass" as well...
Definition: ff_other.h:21823
static const char * FFUUID_ANGKLUNG
Definition: ff_other.h:8434
static const char * FFUUID_UDAKU
Definition: ff_other.h:8690
static const char * FFUUID_DABAKAN
Definition: ff_other.h:8545
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:403
bool AddStaff(twobyte staffnumber)
Adds a staff number to the staff list.
Definition: ff_other.h:23668
void SetUseDefaultClef(bool state)
Sets if the default clef setting should be part of the staff style or not.
Definition: ff_other.h:17872
REHEARSALMARK_STYLES
The rehearsal number mark types available to text expressions.
Definition: ff_other.h:13640
void SetHideKeySigShowAccis(bool state)
Sets the "Hide key signature and show all accidentals" key signature state for the measure...
Definition: ff_other.h:4369
static const char * FFUUID_TIMPANI
Definition: ff_other.h:8327
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:20227
twobyte GetFlippedSymbolShapeID() const
Returns the shape ID for the flipped symbol.
Definition: ff_other.h:11761
static const char * FFUUID_AHOKO
Definition: ff_other.h:8807
void SetUseShowTies(bool state)
Sets if the display of ties should be part of the staff style or not.
Definition: ff_other.h:17827
static const char * FFUUID_BARITONESAX
Definition: ff_other.h:7606
static const char * FFUUID_CARILLON
Definition: ff_other.h:8369
bool GetPlayback() const
Gets the playback change state bit for the articulation definition.
Definition: ff_other.h:11862
Definition: ff_other.h:5449
void SetUseDisplayEmptyRests(bool state)
Sets if "Display Rests in empty measures" state should be part of the staff style or not...
Definition: ff_other.h:17858
static const char * FFUUID_CHOIRAAHS
Definition: ff_other.h:7551
void SetAutoUpdateTarget(bool state)
Sets the "Auto-update target" setting.
Definition: ff_other.h:19968
void SetHorizontalOffset(twobyte value)
Sets the "Additional Horizontal Offset" in the category definition.
Definition: ff_other.h:13454
Evpu16 GetMinimumPosition() const
Returns the minimum position for the element.
Definition: ff_other.h:22176
bool SetName(FCString *pString)
Sets the name of the fretted instrument definition.
Definition: ff_other.h:23977
FCShapeDefInstruction * AddDrawChar(eUniChar16 character)
Adds a DrawChar instruction.
Definition: finaleframework.cpp:32130
void Make1LineShortBarlineStaff()
Fills the necessary values in the Staff Setup dialog to make a 1-line staff with short-length barline...
Definition: ff_other.h:10699
virtual bool HasStaffValue()
Overridden method (returning true) since this class contains a staff value.
Definition: ff_other.h:16364
static const char * FFUUID_CHOAZHOUGUZHENG
Definition: ff_other.h:8082
static const char * FFUUID_BOMBARDE
Definition: ff_other.h:7828
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:957
bool Load(twobyte number)
Loads the text with the indicated text number.
Definition: finaleframework.cpp:3865
void SetHideCautionary(bool state)
Sets the "Hide cautionary key/clefs/time sigs" setting for the measure.
Definition: ff_other.h:4484
FCCategoryDef::HORIZ_ALIGNMENT GetHorizontalAlignmentPoint() const
Returns the "Horizontal Alignment Point" setting in the shape expression definition.
Definition: ff_other.h:14681
int GetGroupElementCount(int index)
Returns the number of items in the composite time sig group.
Definition: ff_other.h:708
static const char * FFUUID_SISTRE
Definition: ff_other.h:8928
Evpu16 GetHorizontalPosRightPage() const
Returns the horizontal positioning for right-side pages (if used).
Definition: ff_other.h:19057
static const char * FFUUID_YAZHENG
Definition: ff_other.h:8257
PDKFRAMEWORK_CLASSID
Constants for the GetClassID method.
Definition: ff_base.h:60
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:14460
static const char * FFUUID_GUANZI
Definition: ff_other.h:7840
int GetLength() const
Returns the length of the string.
Definition: ff_base.h:2344
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:16528
static const char * FFUUID_ARGHUL
Definition: ff_other.h:7784
void SetHorizontalTextOffset(int value)
Sets the horizontal offset for the text (relative to the left frame side).
Definition: ff_other.h:15508
void Init_Slur(int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
Creates a st_slur shape instruction.
Definition: ff_other.h:1510
Helper class for FCShapeDef.
Definition: ff_other.h:1170
void SetAltShowOtherArticulations(bool state)
Sets if articulations should be displayed on layers other than the altered layer. ...
Definition: ff_other.h:10330
eStaff GetStaff() const
Returns the 1-based staff number for this slot.
Definition: ff_other.h:6801
static const char * FFUUID_PENNYWHISTLE
Definition: ff_other.h:7622
FCFretInstrumentDef()
The constructor.
Definition: ff_other.h:23863
void SetOpenStringShapeID(twobyte value)
Sets the shape ID of the "open string" shape.
Definition: ff_other.h:21007
FCShapeDefInstruction * AddSlur(int ctrlpt_height=72)
Adds a standard Slur instruction.
Definition: ff_other.h:1925
ENCLOSUREMODES
The enclosure sizing options.
Definition: ff_other.h:2892
static const char * FFUUID_DIDGERIDOO
Definition: ff_other.h:7954
virtual eMeas GetMeasure() const
Returns the 1-based measure number that the expression is assigned to.
Definition: ff_other.h:16609
twobyte GetPlaybackTempoDuration()
For tempo expressions, returns the metronome duration (in EDUs) for the defined playback tempo...
Definition: ff_other.h:13963
static const char * FFUUID_THAVIL
Definition: ff_other.h:8680
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:22772
void SetSystemBreak(bool state)
Sets the measure to force a system break.
Definition: ff_other.h:4475
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:13541
Class for a metatool key assignment.
Definition: ff_other.h:24423
void SetShowTimeSignatures(bool value)
Sets if the time signature should be displayed for the staff in both score and parts.
Definition: ff_other.h:9804
bool GetAltNotationDisplayOtherLayerNotes() const
Returns true if notes in the non-alternate layers should be displayed.
Definition: ff_other.h:9375
bool GetDiatonicInfo(FCNumbers *pNumbers)
Fills a number collection with all the defined diatonic steps.
Definition: ff_other.h:24084
Class for text repeat assignments to a measure. The assignment is connected with a FCTextRepeatDef de...
Definition: ff_other.h:19723
static const char * FFUUID_KUBING
Definition: ff_other.h:8452
static const char * FFUUID_DANGAO
Definition: ff_other.h:7415
static const char * FFUUID_BULGARIANTAMBURA
Definition: ff_other.h:8074
static const char * FFUUID_CLAVINET
Definition: ff_other.h:7502
A collection of __FCCompositeTimeSigBottomElement records.
Definition: ff_other.h:830
STAFFNOTATION_STYLE GetNotationStyle() const
Returns the notation style for the staff.
Definition: ff_other.h:9452
void SetVerticalFretOffset(Efix32 value)
For tablature notation: sets the vertical offset for fret numbers.
Definition: ff_other.h:10463
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:18523
static const char * FFUUID_GYIL
Definition: ff_other.h:8450
static const char * FFUUID_FIFE
Definition: ff_other.h:7660
Definition: ff_other.h:1243
static const char * FFUUID_CRWTH
Definition: ff_other.h:7411
void SetShowLyrics(bool value)
Sets if lyrics should be displayed for the staff.
Definition: ff_other.h:10061
void SetUseThisFont(bool state)
Returns the "Use This Font" setting. Only active if the '#' should be replaced by the target text...
Definition: ff_other.h:19640
static const char * FFUUID_STEELDRUMS_BCLEF
Definition: ff_other.h:8404
static const char * FFUUID_BAGPIPES
Definition: ff_other.h:7642
static const char * FFUUID_GUITAR
Definition: ff_other.h:8006
The class for a backward repeat definition.
Definition: ff_other.h:21623
static const char * FFUUID_VIBRAPHONE
Definition: ff_other.h:8351
void SetRelativeValue(float value)
Sets the tempo to an actual relative value in percent.
Definition: ff_other.h:22487
static const char * FFUUID_CHIPPLI
Definition: ff_other.h:8843
void SetBelowSymbolChar(eUniChar32 symbol)
Sets the character for the "below" symbol. On Finale 2012 and above, this supports the Unicode range...
Definition: ff_other.h:12235
static const char * FFUUID_CIMBALOM
Definition: ff_other.h:8084
void SetUseEnclosure(bool value)
Sets if the text expression uses an enclosure or not.
Definition: ff_other.h:13910
FCNumber * GetItemAt(int index)
Overridden GetItemAt method.
Definition: ff_basecollection.h:342
Collection class for FCMeasure class objects.
Definition: ff_othercollection.h:189
bool GetHoldMargins() const
Returns the "Hold Margins" flag for the staff system.
Definition: ff_other.h:3866
void SetFlippedSymbolShapeID(twobyte shapeID)
Sets the shape ID for the flipped symbol.
Definition: ff_other.h:12303
virtual void CloneMemoryFrom(__FCBaseData *pSource)
Definition: finaleframework.cpp:753
static const char * FFUUID_REBAB
Definition: ff_other.h:7455
static const char * FFUUID_PIANONONAME
Definition: ff_other.h:7486
static const char * FFUUID_AUTOHARP
Definition: ff_other.h:8040
static const char * FFUUID_TROUBADORHARP
Definition: ff_other.h:8004
static const char * FFUUID_DAMROO
Definition: ff_other.h:8549
void SetItemNo(CMPER cmper)
Sets the item number. Use with extreme care! This is mostly intended for situations when creating new...
Definition: ff_other.h:314
bool IsPlaybackTempo() const
Returns true if the expression is defined for tempo playback.
Definition: ff_other.h:14318
twobyte GetPlaybackTempoValue()
For tempo expressions, returns the playback tempo value.
Definition: ff_other.h:13949
int GetMidiNote() const
Returns the midi note value.
Definition: ff_other.h:22589
void SetStaffListID(twobyte ID)
Sets the staff list ID for the expression.
Definition: ff_other.h:16936
void SetAltShowOtherNotes(bool state)
Sets if notes should be displayed on layers other than the altered layer.
Definition: ff_other.h:10324
static const char * FFUUID_STROHVIOLIN
Definition: ff_other.h:7463
The class for a fretboard style definition, which reflects the content the "Fretboard Style" dialog b...
Definition: ff_other.h:20547
bool GetShowNoteShapes() const
Returns if the staff should display note colors.
Definition: ff_other.h:9201
void SetRawText(twobyte theid, ETAG tag=LO_UTWOBYTE(tx_TextBlock))
Sets the raw text ID and tag for the raw text. This can be used prior to SaveNewRawTextString to set ...
Definition: ff_other.h:15285
Evpu16 GetNextHorizontalPosition() const
Returns the next position in the measure.
Definition: ff_other.h:22188
static const char * FFUUID_TAB_DULCIMER_DAD
Definition: ff_other.h:8305
static const char * FFUUID_HORNPIPE
Definition: ff_other.h:7678
Evpu32 GetHeight() const
Returns the page height.
Definition: ff_other.h:3335
void SetShowAugmentationDots(bool value)
Sets if augmentation dots should be displayed for the staff.
Definition: ff_other.h:9898
static const char * FFUUID_SABAR
Definition: ff_other.h:8649
static void DebugOutDigit(const char *pszPrefixText, int i)
Static method that outputs a line for debugging purposes. The text appears with the extra digit (in d...
Definition: finaleframework.cpp:274
static const char * FFUUID_DOLLU
Definition: ff_other.h:8559
bool GetUseShowTies() const
Returns true if the display of ties is active for the staff style definition.
Definition: ff_other.h:17476
void SetFirstPage(ePage page)
Sets the page number for the starting page. If a text block page only should appear on one page...
Definition: ff_other.h:16101
static const char * FFUUID_DATANGULIONDRUM
Definition: ff_other.h:8553
bool IsSingleStaffAssigned()
Returns true if the expression is assigned to a single staff.
Definition: ff_other.h:16793
twobyte GetVerticalPos() const
Returns the vertical offset position in EVPUs.
Definition: ff_other.h:16732
bool GetUseIndependentFont() const
Returns true if the independent notehead font state should be used for the staff style definition...
Definition: ff_other.h:17483
static const char * FFUUID_JINGLEBELLS
Definition: ff_other.h:8707
void SetLastPage(ePage page)
Sets the page number for the last page. If a text block page only should appear on one page...
Definition: ff_other.h:16113
void SetAltRhythmStemsUp(bool state)
Sets if stems should be freezes up in rhythmic notation (for altered layers). This setting is only us...
Definition: ff_other.h:10355
FCCompositeTimeSigBottom()
The constructor.
Definition: ff_other.h:960
static const char * FFUUID_KNOTWEEDFLUTE
Definition: ff_other.h:7736
SEPARATEPLACEMENT_MODES
Modes for which placement type to load.
Definition: ff_other.h:16281
void SetTargetMeasure(eMeas measure)
Sets the playback destination measure for the backward repeat.
Definition: ff_other.h:21804
twobyte GetShapeEndAdjust() const
Returns the right-side adjustment for multimeasure shapes.
Definition: ff_other.h:18353
bool GetShowScoreTimeSignatures() const
Returns true if the time signature should be displayed for the staff in the score.
Definition: ff_other.h:9103
static const char * FFUUID_BORDONUA
Definition: ff_other.h:8070
static const char * FFUUID_SOPRANINOSAX
Definition: ff_other.h:7684
FCPage()
The constructor.
Definition: ff_other.h:3283
FCLayerPlaybackData(__EDTLayerPlayData *pData)
The constructor.
Definition: ff_other.h:22918
fourbyte GetInstructionsCount() const
Returns the total number of elements in the instructions array.
Definition: ff_other.h:2562
static const char * FFUUID_GIYINGGAMELAN
Definition: ff_other.h:8412
static const char * FFUUID_BASSBAROTONEVOICE
Definition: ff_other.h:7549
void SetMeasure(twobyte meas)
Sets the measure that the separate placement should be matched to.
Definition: ff_other.h:16430
static const char * FFUUID_PALENDAG
Definition: ff_other.h:7748
bool GetUseShowBarlines() const
Returns true if the barline display setting should be used for the staff style definition.
Definition: ff_other.h:17563
static const char * FFUUID_MANGBETU
Definition: ff_other.h:8178
__FCStaffBase::ALTERNATE_STAFF GetAltNotationStyle()
Returns the alternate notation style for the staff.
Definition: ff_other.h:9507
static const char * FFUUID_PIPA
Definition: ff_other.h:8194
static const char * FFUUID_WASHTUBBASS
Definition: ff_other.h:8249
int GetFirstPage() const
Returns the start page for the graphics.
Definition: ff_other.h:18963
bool GetShowOnlyFirstMeasureClef() const
For tablature notation: returns if the clef should show only on the first measure.
Definition: ff_other.h:9413
static const char * FFUUID_TAB_UKULELE
Definition: ff_other.h:8321
static const char * FFUUID_CLAVICHORD
Definition: ff_other.h:7522
static const char * FFUUID_PICCOLOOBOE
Definition: ff_other.h:7666
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:23023
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:18577
void SetRehearsalMarkStyle(REHEARSALMARK_STYLES value)
Sets the rehearsal mark numbering style.
Definition: ff_other.h:14047
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:11424
static const char * FFUUID_GEMSHORN
Definition: ff_other.h:7724
Base class for the "Other" (ot_*) Enigma structures that don't use the inci parameter.
Definition: ff_other.h:212
const char * GetName() const
The name string for the note type. This is usually empty for standard percussion note types...
Definition: ff_other.h:22593
twobyte GetAltNotationLayer() const
Returns the 1-based layer that is used for the alternate notation.
Definition: ff_other.h:9516
virtual bool LoadFirst()
Loads the very first element in the database, if any.
Definition: ff_other.h:21125
static const char * FFUUID_KANTELE
Definition: ff_other.h:8150
void SetBottomMargin(Evpu16 margin)
Sets the bottom page margin, as a positive value.
Definition: ff_other.h:3444
Class that stores one "inci" of a staff list (for a system or for the global list of staves)...
Definition: ff_other.h:6706
bool GetUseShowTimeSignatures() const
Returns true if the time signature setting is active for the staff style definition.
Definition: ff_other.h:17390
The class for raw text objects. All other text classes are based on this class, but it can also be us...
Definition: ff_text.h:16
Class for a text expression definition.
Definition: ff_other.h:13603
static const char * FFUUID_TAB_TENORBANJO
Definition: ff_other.h:8283
void SetTopAttack(twobyte value)
Sets the Top Note Value for "Attack" change of playback.
Definition: ff_other.h:12385
int GetItemInci() const
Returns the inci (subrecord) value in the data ID for a loaded record.
Definition: ff_other.h:117
twobyte GetStaffListID() const
(Only works on Finale 2014b and above.) Returns the staff list ID for the category def...
Definition: ff_other.h:12965
static const char * FFUUID_FUJARA
Definition: ff_other.h:7722
Helper class for FCInstrumentPlaybackData, providing the playback data for the Chord Layer...
Definition: ff_other.h:22913
static const char * FFUUID_PIBGORN
Definition: ff_other.h:7812
static const char * FFUUID_TAMBOURINE
Definition: ff_other.h:8709
static const char * FFUUID_KUHLOHORN
Definition: ff_other.h:7970
bool IsShapeExpressionDef() const
Returns if an expression metatool is connected to a shape expression definition, or not...
Definition: ff_other.h:24644
twobyte GetShapeStartAdjust() const
Returns the left-side adjustment for multimeasure shapes.
Definition: ff_other.h:18360
static const char * FFUUID_BRAKEDRUM
Definition: ff_other.h:8733
FCInstrumentDef()
The constructor.
Definition: ff_other.h:22790
void SetVerticalAlignmentPoint(FCCategoryDef::VERT_ALIGNMENT value)
Sets the vertical alignment point for the expression definition positioning.
Definition: ff_other.h:14964
void SetBottomRepeatDotPosition(twobyte position)
Sets the bottom repeat dot position for the staff. This setting is located in the "Staff Setup" dialo...
Definition: ff_other.h:10024
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:20201
static const char * FFUUID_BATA
Definition: ff_other.h:8529
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:21135
CMPER GetFirstStaff() const
Returns the staff number of the first staff in the instrument group.
Definition: ff_other.h:18617
int GetLineWidth() const
Returns the line width of the frame's border.
Definition: ff_other.h:15562
void SetTransposeClefIndex(twobyte clefindex)
Sets the clef state in the transposition dialog. This value is valid only of GetTransposeUseClef retu...
Definition: ff_other.h:10388
FCEnclosure()
The construtor.
Definition: ff_other.h:2908
CMPER GetThirdStaff() const
Returns the staff number of the third staff in the instrument group.
Definition: ff_other.h:18629
static const char * FFUUID_BALALAIKA
Definition: ff_other.h:8056
bool GetUseAltNotationStyle() const
Returns true if the alternate notation style should be used for the staff style definition.
Definition: ff_other.h:17626
Definition: ff_other.h:1255
static const char * FFUUID_BASSVOICE
Definition: ff_other.h:7535
Class that handles separate placement for repeats.
Definition: ff_other.h:16251
const EDataID * _GetDataID()
Intended ONLY for the _CloneFrom implementation.
Definition: ff_base.h:793
static const char * FFUUID_FIDDLE
Definition: ff_other.h:7423
static const char * FFUUID_GANDINGAN
Definition: ff_other.h:8864
void SetID(twobyte id)
Use with care! Sets the definition ID for the text repeat.
Definition: ff_other.h:19916
bool IsDefaultRehearsalMarks()
Returns true if the category is the standard (pre-defined/Finale-created) category "Rehearsal Marks"...
Definition: ff_other.h:13288
static const char * FFUUID_KAMANCHA
Definition: ff_other.h:7437
void SetUseShowChords(bool state)
Sets if chords should be part of the staff style or not.
Definition: ff_other.h:17728
static const char * FFUUID_TAB_BASSGUITAR_6
Definition: ff_other.h:8299
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:5512
FCCategoryDef::HORIZ_JUSTIFICATION GetHorizontalJustification() const
Returns the "Horizontal Justification" setting in the text expression definition. ...
Definition: ff_other.h:14193
FCEndingRepeat()
The constructor.
Definition: ff_other.h:21194
static const char * FFUUID_HARMONIUM
Definition: ff_other.h:7514
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:15025
bool GetFontInfo(int index, FCFontInfo *pFontInfo)
Gets the font info from a "setfont" tag.
Definition: finaleframework.cpp:32423
static const char * FFUUID_TAB_GAMBA
Definition: ff_other.h:8307
virtual twobyte GetStaff() const
Returns the 1-based staff number that the expression is assigned to.
Definition: ff_other.h:16598
static const char * FFUUID_SAXHORN
Definition: ff_other.h:7974
static const char * FFUUID_HORNF
Definition: ff_other.h:7916
static const char * FFUUID_FLUGELHORN
Definition: ff_other.h:7912
virtual bool Reload()
Overridden version of Reload(), to support complex (mixed) data types.
Definition: finaleframework.cpp:4175
void SetVisible(bool visible)
Sets if the text block should be visible or not (in the score/part that's currently in focus - works ...
Definition: ff_other.h:16168
static const char * FFUUID_CONCERTINA
Definition: ff_other.h:7636
float GetX() const
Returns the x position.
Definition: ff_base.h:3937
static const char * FFUUID_TAMBURA
Definition: ff_other.h:8226
void SetHorizontalOffset(int offset)
Sets the horizontal offset.
Definition: ff_other.h:2973
bool GetAltShowOtherNotes() const
Returns if notes should be displayed on layers other than the altered layer.
Definition: ff_other.h:9548
void SetVisible(bool state)
Sets the display state of the expression (relative to the active part).
Definition: ff_other.h:16958
virtual bool SaveAs(CMPER cmper)
Overridden functionality: SaveAs() isn't supported for this class. Use SaveAsKeystroke instead...
Definition: ff_other.h:24775
void SetClefAfterBarline(bool state)
Sets if the clef should appear to the right of the barline. Only affects the first clefs in the cell...
Definition: ff_other.h:24331
static const char * FFUUID_CIMBASSO
Definition: ff_other.h:7978
Definition: ff_other.h:19806
static const char * FFUUID_REEDCONTRABASS
Definition: ff_other.h:7864
static const char * FFUUID_BIWA
Definition: ff_other.h:8066
static const char * FFUUID_SOPRANINORECORDER
Definition: ff_other.h:7610
void ParseEnigmaFont(const EEnigmaFont *pEnigmaFont)
Transfers the info from a Finale-internal font structure to the FCFontInfo object.
Definition: ff_base.h:1250
static const char * FFUUID_MEZZOSOPRANOVOICE
Definition: ff_other.h:7543
static const char * FFUUID_TIBETANBELLS
Definition: ff_other.h:8480
static const char * FFUUID_BARBAT
Definition: ff_other.h:8062
void SetExpandSingleWord(bool state)
Sets the "expand single word" state, which effects the full justification modes.
Definition: ff_other.h:15452
bool GetHideMeasureNumbers() const
Returns true if the rehearsal mark text expression hides the measure numbers.
Definition: ff_other.h:13880
Class for tablature instruments definitions.
Definition: ff_other.h:23746
static const char * FFUUID_TUMBAK
Definition: ff_other.h:8684
bool GetUseShowStems() const
Returns true if the stem display is active for the staff style definition.
Definition: ff_other.h:17469
void SetRightMargin(Evpu16 margin)
Sets the right page margin, as a positive value.
Definition: ff_other.h:3428
static const char * FFUUID_BEATBOX
Definition: ff_other.h:7557
bool GetUserCreated() const
Returns true if the category was user created.
Definition: ff_other.h:13212
void SetStringThickness(Efix32 value)
Sets the string thickness, in EFIXes.
Definition: ff_other.h:20847
void SetHeight(Evpu16 height)
Sets the fixed height of the frame.
Definition: ff_other.h:15552
static const char * FFUUID_DAIBYOSI
Definition: ff_other.h:8547
void SetJumpIfIgnore(bool state)
Sets the "Jump if ignoring repeats" setting.
Definition: ff_other.h:20064
static const char * FFUUID_DESCANTRECORDER
Definition: ff_other.h:7618
static const char * FFUUID_ALTOTROMBONE
Definition: ff_other.h:7944
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:18898
void SetHorizontalRightBracketPosition(Evpu16 position)
Sets the horizontal position of the repeat bracket's right side.
Definition: ff_other.h:21431
static const char * FFUUID_KAEKEEKE
Definition: ff_other.h:8894
static const char * FFUUID_EKTARA2
Definition: ff_other.h:8118
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:23022
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:12781
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:20424
FCLayerPlaybackData * GetNoteLayerData(int layernumber)
Returns the MIDI expression playback layer object (of the FCLayerPlaybackData class).
Definition: ff_other.h:23108
static const char * FFUUID_ARABIANFRAMEDRUM
Definition: ff_other.h:8523
eMeas GetNextSysMeasure() const
Returns the starting measure number for the next system.
Definition: ff_other.h:3764
Evpu16 GetHorizontalLeftBracketPosition() const
Returns the horizontal position of the bracket's left side.
Definition: ff_other.h:21261
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:18089
twobyte GetVerticalBaselineOffset() const
Returns the vertical "Additional Baseline Offset" in the text expression definition.
Definition: ff_other.h:14012
static const char * FFUUID_VIOLINOPICCOLO
Definition: ff_other.h:7473
static const char * FFUUID_TAEPYEONGSO
Definition: ff_other.h:7886
bool IsStaffIncluded(twobyte staffnumber)
Returns true if the staff number is with the region.
Definition: finaleframework.cpp:14607
static const char * FFUUID_MELLOPHONE
Definition: ff_other.h:7914
FCPercussionMapNotesLookup()
The constructor.
Definition: ff_other.h:22678
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:1683
twobyte GetStaffListID() const
Returns the staff list ID for the expression.
Definition: ff_other.h:16680
static const char * FFUUID_TRUMPETD
Definition: ff_other.h:7908
static const char * FFUUID_KOKYU
Definition: ff_other.h:7439
void SetHorizontalPos(twobyte value)
Sets the horizontal position offset, in EVPUs.
Definition: ff_other.h:16982
static const char * FFUUID_BOTTLEBLOW
Definition: ff_other.h:7662
Efix32 GetFretThickness() const
Returns the fret thickness, in EFIXes.
Definition: ff_other.h:20651
static const char * FFUUID_SPOONS
Definition: ff_other.h:8767
static const char * FFUUID_HAEGEUM
Definition: ff_other.h:7429
CMPER GetSecondStaff() const
Returns the staff number of the second staff in the instrument group.
Definition: ff_other.h:18623
int GetGroupElementCount(int groupindex)
Returns the number of items in the composite time sig group.
Definition: ff_other.h:996
bool GetRotate() const
Returns if the fret should be rotated or not.
Definition: ff_other.h:20733
static const char * FFUUID_COWBELL
Definition: ff_other.h:8747
static const char * FFUUID_CLASSICALGUITAR
Definition: ff_other.h:8012
twobyte GetStaffListID() const
Returns the staff list ID to be used for the text repeat assignment.
Definition: ff_other.h:20022
bool GetFretLetters() const
For tablature notation: returns if fret letters should be used.
Definition: ff_other.h:9422
int GetStaff(int index)
Gets a staff number for a reference index.
Definition: ff_other.h:23567
TEXT_HORIZONTAL_ALIGN
Horizontal alignment constants for text blocks.
Definition: ff_other.h:15717
twobyte GetTransposeClefIndex() const
Returns the clef state in the transposition dialog. This value is valid only of GetTransposeUseClef r...
Definition: ff_other.h:9595
static const char * FFUUID_CHANCHIKI
Definition: ff_other.h:8829
twobyte GetHalfRestPosition() const
Returns the vertical position for the half rests. This setting is located in the "Staff Setup" dialog...
Definition: ff_other.h:9208
static const char * FFUUID_VIOL
Definition: ff_other.h:7469
REPSHOWMODES
Constants for use with FCTextRepeat::GetShowMode() and FCTextRepeat::SetShowMode().
Definition: ff_other.h:19770
Simple collection class for FCNumber class objects.
Definition: ff_basecollection.h:329
void SetFingeringWhiteout(Efix32 value)
Sets the whiteout for fingering numbers, in EFIXes.
Definition: ff_other.h:20907
void SetVerticalTextOffset(int value)
Sets the vertical offset for the text (relative to the left frame side).
Definition: ff_other.h:15517
void SetClefPercent(twobyte value)
Set the clef resizing, in percent.
Definition: ff_other.h:24294
void SetHorizontalJustification(FCCategoryDef::HORIZ_JUSTIFICATION value)
Sets the "Horizontal Justification" in the text expression definition.
Definition: ff_other.h:14209
void SetOnScreenOnly(bool state)
Sets the flag if the articulation definition should be displayed on the screen only.
Definition: ff_other.h:12149
static const char * FFUUID_AGOGOBLOCK
Definition: ff_other.h:8801
virtual bool DeleteData()
DeleteData() is currently not supported.
Definition: ff_other.h:23516
static const char * FFUUID_HOSHO
Definition: ff_other.h:8882
static const char * FFUUID_UNKNOWN
Definition: ff_other.h:7372
void SetHoldMargins(bool state)
Sets the Hold Margins setting.
Definition: ff_other.h:3469
static const char * FFUUID_ALTORECORDER
Definition: ff_other.h:7612
static const char * FFUUID_XAPHOON
Definition: ff_other.h:7694
twobyte GetShapeID()
Returns the shape ID that is connected to the executable shape.
Definition: ff_other.h:20220
static const char * FFUUID_TAB_GUITAR_DROPD
Definition: ff_other.h:8275
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:24133
twobyte GetHorizontalOffset() const
Returns the horizontal adjustment for the mid-clef change.
Definition: ff_other.h:24244
bool GetMainSymbolIsShape() const
Returns true if the main symbol is a shape.
Definition: ff_other.h:12014
void SetCapoPosition(twobyte value)
For tablature notation: sets the capo position.
Definition: ff_other.h:10452
ETAG GetTag() const
Returns the instruction tag as a constant.
Definition: ff_other.h:1299
void SetBottomBarlineOffset(Evpu16 distance)
Sets the bottom barline offset, in EVPUs. This parameter controls how far the barlines extends downwa...
Definition: ff_other.h:10486
bool GetShowTuplets() const
For tablature notation: returns if tuplets should show or not.
Definition: ff_other.h:9404
ENCLOSUREMODES GetMode() const
Returns the enclosure sizing option.
Definition: ff_other.h:3211
void SetUseBreakBarlines(bool state)
Sets if the "Break barlines between staves" setting should be part of the staff style or not...
Definition: ff_other.h:17896
void SetShowKeySignatures(bool value)
Sets if the key signature should be displayed for the staff.
Definition: ff_other.h:9794
void InstructionDebugDump(int instructionindex)
Special "DebugDump" to get the elements within an instruction.
Definition: finaleframework.cpp:32537
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:19752
static const char * FFUUID_POWWOWDRUM
Definition: ff_other.h:8643
Definition: ff_other.h:1213
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:13479
void SetSize(twobyte fontsize)
Sets the font size as an integer value.
Definition: ff_base.h:1306
static const char * FFUUID_EWEDRUMKPANLOGO2MEDIUM
Definition: ff_other.h:8573
static const char * FFUUID_GOME
Definition: ff_other.h:8872
static const char * FFUUID_RYUTEKI
Definition: ff_other.h:7752
eUniChar16 GetCharacterAt(int index)
Returns the character at the index position.
Definition: finaleframework.cpp:1771
twobyte GetSpaceBeforeMusic() const
Gets the extra space before the music, in EVPUs.
Definition: ff_other.h:3771
bool GetAltShowOtherExpressions() const
Returns if expressions should be displayed on layers other than the altered layer.
Definition: ff_other.h:9572
void SetIndividualPositioning(bool state)
Sets if the repeat bracket has individual staff positioning enabled or not.
Definition: ff_other.h:21395
GRAPHIC_VERTICAL_ALIGN
Vertical alignment constants for graphic.
Definition: ff_other.h:18929
static const char * FFUUID_TELEVI
Definition: ff_other.h:8944
void Make0LineFullBarlineStaff()
Fills the necessary values in the Staff Setup dialog to make a staff without staff lines with full-le...
Definition: ff_other.h:10721
static const char * FFUUID_TAB_BANJO_PLECTRUM
Definition: ff_other.h:8293
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:616
int GetElementCount()
Returns the number of array elements for all the top time sig digits.
Definition: ff_other.h:757
static const char * FFUUID_DHOLAK
Definition: ff_other.h:8557
void SetShapeID(twobyte shapeID)
Sets the shape ID (for use in the FCShapeDef class) for the MM rest.
Definition: ff_other.h:18440
static const char * FFUUID_TASHA
Definition: ff_other.h:8678
void SetUseShowMeasureNumbers(bool state)
Sets if measure numbers should be part of the staff style or not.
Definition: ff_other.h:17698
void SetLineWidth(int value)
Sets the line width (in EFIXes) of the frame's border.
Definition: ff_other.h:15488
static const char * FFUUID_TENOROVERTONEFLUTE
Definition: ff_other.h:7768
virtual bool IsIdentical(__FCBase *pObject)
Overridden method to provide comparison of category definitions.
Definition: ff_other.h:12915
Evpu32 GetDistance() const
Returns the distance between this staff and the top staff.
Definition: ff_other.h:6794
twobyte GetFingeredShapeID() const
Returns the shape ID of the "fingered" shape.
Definition: ff_other.h:20745
void SetAllowVerticalDrag(bool state)
Sets the "Allow Vertical Drag" setting.
Definition: ff_other.h:24324
void SetShowBorders(bool state)
Sets if the borders should display for the txt block, or not.
Definition: ff_other.h:15526
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:19490
void SetUnicodeString(const eUniChar16 *pChar, int maxchars=-1)
Sets the string by using a 16-bit Unicode buffer as input parameter.
Definition: finaleframework.cpp:1087
static const char * FFUUID_SHIVAWHISTLE
Definition: ff_other.h:7760
static const char * FFUUID_BIANZHONG
Definition: ff_other.h:8444
static const char * FFUUID_TEPONAXTLI
Definition: ff_other.h:8946
static const char * FFUUID_PICCOLO
Definition: ff_other.h:7568
bool GetUseShowMeasureNumbers() const
Returns true if the measure number is active for the staff style definition.
Definition: ff_other.h:17383
void SetAltShowLyrics(bool state)
Sets if lyrics should be diplayed on the altered layer.
Definition: ff_other.h:10306
bool GetContainsManualMeasureNumbers() const
Gets the state that marks if the measure contains manually adjusted measure numbers (or not)...
Definition: ff_other.h:4994
void SetScoreAssignment(bool value)
Sets if the expression is assigned to the score.
Definition: ff_other.h:16848
twobyte GetHorizontalPosRightPage() const
Returns the horizontal position for the text block on right-side pages (if used). ...
Definition: ff_other.h:15933
static const char * FFUUID_UILLEANNPIPES
Definition: ff_other.h:7644
static const char * FFUUID_DEF
Definition: ff_other.h:8851
FCTimeSignature * GetTimeSignatureForDisplay() const
Returns a pointer to the time signature object. If time signature for display shouldn't be used...
Definition: ff_other.h:5198
static const char * FFUUID_XUN
Definition: ff_other.h:7776
static const char * FFUUID_BAROQUETRUMPET
Definition: ff_other.h:7962
static const char * FFUUID_DULZAINA
Definition: ff_other.h:7836
static const char * FFUUID_TAMTE
Definition: ff_other.h:8667
static const char * FFUUID_BERIMBAU
Definition: ff_other.h:8813
static const char * FFUUID_AGUNGATAMLANG
Definition: ff_other.h:8805
void SetCopyable(bool value)
Sets if the staff style definition should be copyable or not.
Definition: ff_other.h:17671
void Init_RMoveTo(int x, int y)
Creates a st_rmoveto shape instruction.
Definition: ff_other.h:1488
static const char * FFUUID_MEZZOSOPRANOSAX
Definition: ff_other.h:7686
Evpu16 GetVerticalRightBracketPosition() const
Returns the vertical position of the bracket's right side.
Definition: ff_other.h:21288
static const char * FFUUID_CAJON
Definition: ff_other.h:8737
static const char * FFUUID_KOUDI
Definition: ff_other.h:7740
static const char * FFUUID_HNE
Definition: ff_other.h:7844
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:2842
virtual bool DeepDeleteData()
Deletes the data and all related data available in other data structures.
Definition: ff_other.h:285
static const char * FFUUID_BASSCLARINET
Definition: ff_other.h:7590
static const char * FFUUID_STRINGBASS
Definition: ff_other.h:8030
__FCOther()
The constructor.
Definition: ff_other.h:38
bool IsDefaultDynamics()
Returns true if the category is the standard (pre-defined/Finale-created) category "Dynamics"...
Definition: ff_other.h:13233
FCShapeDefInstruction * GetItemAt(int index)
Overridden version of GetItemAt().
Definition: ff_other.h:1689
static const char * FFUUID_SHAMISEN
Definition: ff_other.h:8224
static const char * FFUUID_NGONI
Definition: ff_other.h:8188
bool GetChordFlag() const
Returns true if chords are available anywhere in the measure.
Definition: ff_other.h:5150
static const char * FFUUID_HANDBELLS
Definition: ff_other.h:8380
static const char * FFUUID_SHVI
Definition: ff_other.h:7762
static const char * FFUUID_HORNF_WWQUINTET
Definition: ff_other.h:7640
Evpu16 GetReferenceWidth() const
Returns the reference width for the beat chart.
Definition: ff_other.h:22165
void SetUseAltNotationStyle(bool state)
Sets if the alternate notation style should be part of the staff style or not.
Definition: ff_other.h:17980
void SetCopyMainSymbol(bool state)
Sets the state of the "Copy the Main Symbol" setting.
Definition: ff_other.h:12353
static const char * FFUUID_GLASSHARMONICA
Definition: ff_other.h:8376
bool GetUseDisplayEmptyRests() const
Returns true if "Display Rests in empty measures" state should be used for the staff style definition...
Definition: ff_other.h:17504
static const char * FFUUID_JUG
Definition: ff_other.h:7664
static const char * FFUUID_SNAP
Definition: ff_other.h:8936
FCFretboardStyleDef()
The constructor.
Definition: ff_other.h:20606
twobyte GetBottomRepeatDotPosition() const
Returns the bottom repeat dot position for the staff. This setting is located in the "Staff Setup" di...
Definition: ff_other.h:9311
static const char * FFUUID_LEIQIN
Definition: ff_other.h:7445
static const char * FFUUID_NAQARA
Definition: ff_other.h:8625
REPTARGETTRIGGERS
The modes used by FCTextRepeat::GetTargetTrigger() and FCTextRepeat::SetTargetTrigger().
Definition: ff_other.h:19792
twobyte GetClefPercent() const
Returns the clef resizing, in percent.
Definition: ff_other.h:24238
void SetVerticalLeftBracketPosition(Evpu16 position)
Sets the vertical position of the repeat bracket's left side.
Definition: ff_other.h:21422
static const char * FFUUID_TAB_GUITAR_G
Definition: ff_other.h:8277
static const char * FFUUID_LUOGONG
Definition: ff_other.h:8914
bool RebuildInstructions(FCShapeDefInstructions *pCollection)
Rebuilds the shape data from a collection (containing all the instructions for the shape)...
Definition: finaleframework.cpp:32258
twobyte GetVerticalPos() const
Returns the vertical position for the text block.
Definition: ff_other.h:15942
static const char * FFUUID_CITTERN
Definition: ff_other.h:8086
static const char * FFUUID_TAB_GUITAR_7STRING
Definition: ff_other.h:8279
bool GetCenterHorizontally() const
Returns the state of the "Center horizontally" setting.
Definition: ff_other.h:11939
bool GetHideKeySigShowAccis() const
Returns the "Hide key signature and show all accidentals" key signature state for the measure...
Definition: ff_other.h:4768
int GetVerticalOffset() const
Returns the vertical offset.
Definition: ff_other.h:3127
The class for one single beat chart element.
Definition: ff_other.h:22059
CMPER CalcTopStaff()
Returns the top staff in the group.
Definition: ff_other.h:18677
void SetCustomTag(EXTAG tag)
Sets the custom Enigma tag, for classes that support multiple Enigma tags.
Definition: ff_base.h:827
twobyte GetHorizontalOffset() const
Returns the "Additional Horizontal Offset" value in the text expression definition.
Definition: ff_other.h:14269
bool GetShowMeasureNumbers() const
Returns true if measure numbers should be displayed for the staff.
Definition: ff_other.h:9066
Base class for all "Other" (ot_*) Enigma structures.
Definition: ff_other.h:23
Evpu16 GetHorizontalPosition() const
Returns the position in the measure for the element (in EVPUs).
Definition: ff_other.h:22136
Definition: ff_other.h:13716
static const char * FFUUID_SAKARA
Definition: ff_other.h:8651
static const char * FFUUID_BAWU
Definition: ff_other.h:7786
bool GetTransposeChromatic() const
Returns the chromatic transposition status for the staff.
Definition: ff_other.h:9329
static const char * FFUUID_TAB_LUTEITALIAN
Definition: ff_other.h:8309
twobyte GetStartMeasure() const
Returns the start measure of the MM rest.
Definition: ff_other.h:18303
twobyte GetPercussionID() const
Returns the percussion map ID for the loaded collection.
Definition: ff_other.h:22620
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:18897
static const char * FFUUID_BASSTUBA
Definition: ff_other.h:7930
static const char * FFUUID_JARANAHUASTECA
Definition: ff_other.h:8138
static const char * FFUUID_SERPENT
Definition: ff_other.h:7988
Efix32 GetPosition() const
Returns the position for a guide, if EFIXes.
Definition: ff_other.h:24372
Efix32 GetHorizontalFingeringOffset() const
Returns the horizontal offset for fingering numbers, in EFIXes.
Definition: ff_other.h:20663
Definition: ff_other.h:19776
static const char * FFUUID_PICCOLOTRUMPETA
Definition: ff_other.h:7936
Class for a shape definition (as in Finale's Shape selection dialog).
Definition: ff_other.h:2109
void SetSmartShapeFlag(bool state)
Set to true if a smart shape runs somewhere through the measure. Use with extreme care! ...
Definition: ff_other.h:4726
The class for a guide in the document.
Definition: ff_other.h:24351
static const char * FFUUID_TOMBAK
Definition: ff_other.h:8682
void SetIndependentFont(bool state)
Sets if a independent notehead font should be used for the staff.
Definition: ff_other.h:9904
static const char * FFUUID_IRISHBOUZOUKI
Definition: ff_other.h:8136
FCEnclosure * GetEnclosureStart(bool parts)
Gets the pointer to the start enclosure object. This object is a part of the measure number region an...
Definition: ff_other.h:6229
void SetVerticalHandleOffset(Efix32 value)
Sets the vertical handle offset, in EFIXes.
Definition: ff_other.h:20927
twobyte GetResize() const
Returns the resize value (in percent) for the system.
Definition: ff_other.h:3839
static const char * FFUUID_AULOCHROME
Definition: ff_other.h:7692
void MakeNormalNotation()
Transforms a staff to "normal" (not TAB and not percussion).
Definition: ff_other.h:10572
__FCCompositeTimeSigBottomElement()
The constructor.
Definition: ff_other.h:459
void SetUseAbbreviatedName(bool state)
Sets if the abbreviated staff name should be part of the staff style or not.
Definition: ff_other.h:17931
Definition: ff_other.h:4194
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:16222
Definition: ff_other.h:16287
static const char * FFUUID_GEDUK
Definition: ff_other.h:8581
virtual void DebugDataDump()
Outputs a memory dump of the data block in the object for debugging purposes.
Definition: ff_base.h:925
static const char * FFUUID_CRYSTALGLASSES
Definition: ff_other.h:8371
static const char * FFUUID_TROMPETACHINA
Definition: ff_other.h:7890
static const char * FFUUID_SOPRANOXYLOPHONE
Definition: ff_other.h:8355
static const char * FFUUID_HYOUSHIGI
Definition: ff_other.h:8884
bool DeleteResizeData()
Deletes the staff resize data connected with the system/staff.
Definition: ff_other.h:6833
static const char * FFUUID_ALTOXYLOPHONE
Definition: ff_other.h:8357
static const char * FFUUID_CELESTA
Definition: ff_other.h:7494
FCShapeDefInstruction * AddSetDash(int dashlength, int spacebetween)
Adds a SetDash instruction.
Definition: ff_other.h:1953
TEXT_ASSIGNMENT GetPageAssignment() const
Returns the page assignment (all/odd/even).
Definition: ff_other.h:15889
void SetFirstPage(int pageno)
Sets the start page for the graphics.
Definition: ff_other.h:19131
FCInstrumentPlaybackData()
The constructor.
Definition: ff_other.h:23038
static const char * FFUUID_TIMBALES
Definition: ff_other.h:8517
void Init_LineWidth(int linewidth)
Creates a st_linewidth shape instruction.
Definition: ff_other.h:1526
static const char * FFUUID_CHAPMANSTICK
Definition: ff_other.h:8076
static const char * FFUUID_KENDANGGAMELAN
Definition: ff_other.h:8599
void SetHoldMargins(bool state)
Sets the flag for "Hold Margins" for the staff system.
Definition: ff_other.h:3746
bool ExportAsSVGFile(FCString *pFileName, float scaling, const char *pszUnit)
Saves the shape as a SVG (Scalable Vector File) file. An existing file with the same full path will b...
Definition: finaleframework.cpp:32493
ECompositeTimeLower * _GetFirstRecordPtr()
For internal use only.
Definition: ff_other.h:467
static const char * FFUUID_SLENDROPANERUSGAMELAN
Definition: ff_other.h:8428
static const char * FFUUID_TAB_BANJO_GMODAL
Definition: ff_other.h:8291
Definition: ff_other.h:1237
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:13540
void SetOverrideStaffList(bool state)
Gets the value for if staff lists are used for this category. Use with care!
Definition: ff_other.h:13385
CMPER GetBarlineShapeID() const
Returns the barline shape ID (for use with the FCShapeDef class), for custom barlines.
Definition: ff_other.h:5078
FCShapeDefInstruction * AddDrawChars(const char *pszString)
Adds a string as a series of DrawChar instructions. This method doesn't support Unicode.
Definition: ff_other.h:2054
static const char * FFUUID_ALTOSAX
Definition: ff_other.h:7602
void SetHorizontalOffset(twobyte value)
Returns the horizontal offset adjustment value.
Definition: ff_other.h:7060
static const char * FFUUID_TENORTROMBONE
Definition: ff_other.h:7946
int GetConnectedDurationPos() const
Returns the connected duration position for loaded data.
Definition: ff_other.h:11511
static const char * FFUUID_BANDURA
Definition: ff_other.h:8058
static const char * FFUUID_XYLOPHONE
Definition: ff_other.h:8353
void SetScaleWithEntry(bool state)
Sets if the expression should scale to entry.
Definition: ff_other.h:16964
static const char * FFUUID_GEOMUNGO
Definition: ff_other.h:8115
FCStaffStyleAssign()
The constructor.
Definition: ff_other.h:18103
int GetCount() const
Returns the number of elements of the collection.
Definition: ff_basecollection.h:86
Class for expression assignments to a measure/staff.
Definition: ff_other.h:16483
void SetFrameReference(bool state)
Sets if the text block should be positioned by the frame layout or not.
Definition: ff_other.h:15420
void SetUseFlatBeams(bool state)
Sets if the flat beams state should be part of the staff style or not.
Definition: ff_other.h:17844
void SetVerticalPos(twobyte value)
Sets the vertical position offset, in EVPUs.
Definition: ff_other.h:16990
void SetShowMode(FCTextRepeat::REPSHOWMODES mode)
Sets where the backward repeat should be shown.
Definition: ff_other.h:21774
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:22315
FCShapeDefInstruction * AddSolidLineStyle()
A shortcut method to add a SetDash(18, 0) instruction.
Definition: ff_other.h:1994
void SetPageEdgeRef(bool state)
Sets if positioning is referenced from the page edge, or from the margin.
Definition: ff_other.h:19209
static const char * FFUUID_ASHIKO
Definition: ff_other.h:8525
void SetMainHandleHorizontalOffset(Evpu16 value)
Sets the horizontal offset to handle for the main symbol.
Definition: ff_other.h:12470
void SetPosition(Efix32 value)
Sets the position for a guide, if EFIXes.
Definition: ff_other.h:24380
static const char * FFUUID_TANGKU
Definition: ff_other.h:8671
Definition: ff_other.h:19830
static const char * FFUUID_SARONBARUNGGAMELAN
Definition: ff_other.h:8422
void SetMeasurePos(TimeEdu32 edupos)
Sets the duration reference position for the element.
Definition: ff_other.h:22219
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.
Definition: ff_base.h:449
twobyte GetCategoryID() const
Returns the category ID for the expression definition.
Definition: ff_other.h:13927
static const char * FFUUID_KULINTANGAKAYO
Definition: ff_other.h:8456
twobyte GetStaffGroupID() const
Returns the "staff group" ID for the staff, which is used for expressions that are one unity in a sta...
Definition: ff_other.h:16687
Evpu16 GetVerticalLeftBracketPosition() const
Returns the vertical position of the bracket's left side.
Definition: ff_other.h:21270
static const char * FFUUID_CORNET
Definition: ff_other.h:7910
Evpu16 GetLeftBracketPosition() const
Returns the horizontal left-side position of the bracket.
Definition: ff_other.h:21736
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:24802
void SetVerticalTopBracketPosition(Evpu16 position)
Sets the top vertical position of the repeat bracket.
Definition: ff_other.h:21404
FCCategoryDef::VERT_ALIGNMENT GetVerticalAlignmentPoint() const
Returns the vertical alignment point for the expression definition positioning.
Definition: ff_other.h:14002
Evpu16 GetSpaceBefore() const
Gets the extra space before the music in the measure.
Definition: ff_other.h:4901
bool GetAvoidStaffLines() const
Returns the state of the "Avoid staff lines" setting.
Definition: ff_other.h:11925
bool GetScoreAssignment() const
Returns true if the expression is assigned to the score.
Definition: ff_other.h:16657
twobyte GetNameByID()
Gets the internal Enigma font ID. This value is document-specific.
Definition: finaleframework.cpp:3297
HORIZ_JUSTIFICATION
The horizontal justification settings for the category.
Definition: ff_other.h:12887
bool GetVisible() const
Returns the display state of the expression (relative to the active part).
Definition: ff_other.h:16702
bool IsDefaultTempoMarks()
Returns true if the category is the standard (pre-defined/Finale-created) category "Tempo Marks"...
Definition: ff_other.h:13244
void SetPlaybackStart(EXPRESSION_PLAYBACK_STARTPOINTS value)
Sets the playback start point for the expression.
Definition: ff_other.h:16886
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:18843
static const char * FFUUID_TABLAS
Definition: ff_other.h:8515
TimeEdu32 GetEndMeasurePos() const
Returns the end position of the region within the measure.
Definition: ff_region.h:485
FCString * CreateString()
Creates a string object with the loaded text. If the string doesn't exist (or if it's empty)...
Definition: finaleframework.cpp:3949
Definition: ff_other.h:19796
static const char * FFUUID_CELLOSECTION
Definition: ff_other.h:7389
bool AssignStaffStyle(FCStaffStyleDef *pStaffStyle)
Assigns an StaffStyle definition object to a metatool.
Definition: ff_other.h:24746
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:18733
void Init_StartGroup(int xorigin, int yorigin, int left, int top, int right, int bottom, int xtransform=1000, int ytransform=1000, int rotation=0)
Creates a st_startgroup shape instruction.
Definition: ff_other.h:1462
FCBeatChartElement()
The constructor.
Definition: ff_other.h:22106
FCFontInfo * CreateTextFontInfo()
Creates a FCFontInfo object from the text font.
Definition: ff_other.h:13194
static const char * FFUUID_SHAKUHACHI
Definition: ff_other.h:7754
static const char * FFUUID_HORNEFLAT
Definition: ff_other.h:7942
HORIZ_ALIGNMENT
The horizontal alignment points available to categories and expressions.
Definition: ff_other.h:12837
static const char * FFUUID_BASSMETALLOPHONE
Definition: ff_other.h:8396
static const char * FFUUID_DUFF
Definition: ff_other.h:8565
static const char * FFUUID_SOPRANOSAX
Definition: ff_other.h:7600
void SetString(FCString *pString)
Copies a string.
Definition: finaleframework.cpp:2132
bool IsEmbedded()
Returns true if the graphic is embedded in the document.
Definition: ff_other.h:18954
FCKeySignature * GetKeySignature() const
Returns a pointer to the key signature object.
Definition: ff_other.h:5118
static const char * FFUUID_TENORDRUM
Definition: ff_other.h:8493
static const char * FFUUID_DAHU
Definition: ff_other.h:7413
Definition: ff_other.h:2867
void SetUseShowRests(bool state)
Sets if "Show Rests" should be part of the staff style or not.
Definition: ff_other.h:17778
void SetShowNoteColors(bool state)
Sets if the staff should display note colors.
Definition: ff_other.h:9910
static const char * FFUUID_BANSURI
Definition: ff_other.h:7704
void SetHorizontalOffset(twobyte value)
Sets the horizontal adjustment for the mid-clef change.
Definition: ff_other.h:24300
static const char * FFUUID_SOPILA
Definition: ff_other.h:7876
bool GetUseExecutableShape() const
Returns true if an executable is used for the expression def.
Definition: ff_other.h:14585
Evpu16 GetWidth() const
Returns the fixed width of the frame.
Definition: ff_other.h:15611
Definition: ff_other.h:12896
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:3265
bool GetRedisplayOtherLayerAccidentals() const
Returns the "Redisplay accidentals in other layers within measures" state.
Definition: ff_other.h:9624
bool GetAltShowSmartShapes() const
Returns if smart shapes should be diplayed n the altered layer.
Definition: ff_other.h:9536
static const char * FFUUID_JOGIBAJA
Definition: ff_other.h:7846
virtual bool Reload()
Overridden Reload() method to support complex data types.
Definition: finaleframework.cpp:4115
void SetFretLetters(bool state)
For tablature notation: sets if sets letters should be used.
Definition: ff_other.h:10138
static const char * FFUUID_DARABUKA
Definition: ff_other.h:8551
static const char * FFUUID_GLOCKENSPIEL
Definition: ff_other.h:8337
static const char * FFUUID_BELL_LYRE
Definition: ff_other.h:8363
static const char * FFUUID_MORINKHUUR
Definition: ff_other.h:7449
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:198
static const char * FFUUID_TIBETANSINGINGBOWLS
Definition: ff_other.h:8482
static const char * FFUUID_TSYMBALY
Definition: ff_other.h:8237
static const char * FFUUID_OKEDODAIKO
Definition: ff_other.h:8635
static const char * FFUUID_BASSFLUTE
Definition: ff_other.h:7650
static const char * FFUUID_BASSTRUMPET
Definition: ff_other.h:7964
CMPER GetAbbreviatedNameID()
Returns the text block ID for the abbreviated name. Usually not needed, use CreateAbbreviatedNameStri...
Definition: ff_other.h:9653
virtual void * Allocate()=0
REPACTIONS
Definition: ff_other.h:19827
static const char * FFUUID_BANJO
Definition: ff_other.h:8018
bool GetDisplayEmptyRests() const
Returns the "Display Rests in empty measures" state.
Definition: ff_other.h:9392
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:23836
static const char * FFUUID_SOPRANOMETALLOPHONE
Definition: ff_other.h:8392
void SetMuteStringShapeID(twobyte value)
Sets the shape ID of the "mute string" shape.
Definition: ff_other.h:21016
twobyte GetEndMeasure() const
Returns the end measure of the MM rest.
Definition: ff_other.h:18310
static const char * FFUUID_LARUAN
Definition: ff_other.h:7443
bool IsMeasureIncluded(twobyte measureno)
Returns true if the measure is within the measure number region.
Definition: ff_other.h:6636
void SetHorizontalJustification(HORIZ_JUSTIFICATION value)
Sets the "Horizontal Justification" in the category definition.
Definition: ff_other.h:13427
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:15653
The class for a staff system on a page.
Definition: ff_other.h:3548
void AppendFloat(float value)
Appends an floating-point value to the string.
Definition: finaleframework.cpp:1666
FCShapeDefInstruction * AddCurveToDetails(int x1, int y1, int x2, int y2, int endpt_x, int endpt_y)
Adds a CurveTo instruction with all parameters set.
Definition: ff_other.h:1910
void SetUseShowNoteColors(bool state)
Sets if note colors should be part of the staff style or not.
Definition: ff_other.h:17987
FCShapeDefInstruction * AddRLineTo(int x, int y)
Adds a RLineTo instruction (=relative line to).
Definition: ff_other.h:1968
static const char * FFUUID_KABOSY
Definition: ff_other.h:8148
static const char * FFUUID_TAIKODRUMS
Definition: ff_other.h:8476
static const char * FFUUID_MANDOBASS
Definition: ff_other.h:8168
twobyte GetVerticalOffset() const
Returns the vertical offset adjustment value.
Definition: ff_other.h:7022
void SetShowScoreTimeSignatures(bool value)
Sets if the time signature should be displayed for the staff in the score.
Definition: ff_other.h:9818
FCFreezeSystem()
The constructor.
Definition: ff_other.h:13557
static const char * FFUUID_TRUMPETBFLAT
Definition: ff_other.h:7904
static const char * FFUUID_SARANGIDRONE
Definition: ff_other.h:7461
Evpu32 GetWidth() const
Returns the page width.
Definition: ff_other.h:3327
bool GetResizeVerticalSpace() const
Returns true if the "Resize Vertical Space" option is set.
Definition: ff_other.h:3847
void SetFlippedSymbolChar(eUniChar32 symbol)
Sets the character for the flipped symbol. On Finale 2012 and above, this supports the Unicode range...
Definition: ff_other.h:12316
bool GetBreakTablatureLines() const
For tablature notation: returns if tablature lines should break at fret numbers.
Definition: ff_other.h:9431
void SetPercussionMapID(twobyte mapID)
Set the percussion mapping ID for the virtual instrument.
Definition: ff_other.h:22833
void SetVelocityIsPercent(bool value)
Sets the "Values are percentages" for the "Velocity" playback change.
Definition: ff_other.h:12548
int GetHorizontalTextOffset() const
Returns the horizontal offset for the text (relative to the left frame side).
Definition: ff_other.h:15580
static const char * FFUUID_ACCORDION
Definition: ff_other.h:7496
static const char * FFUUID_MANDOLIN
Definition: ff_other.h:8032
bool GetShowKeySignatures() const
Returns true if the key signature should be displayed for the staff.
Definition: ff_other.h:9073
bool GetIndependentKeySig() const
Returns true if independent key sigs is set for the staff.
Definition: ff_other.h:9060
FCString * CreateNameString()
Creates a string with the name of the instrument.
Definition: ff_other.h:22801
static const char * FFUUID_NYCKELHARPA
Definition: ff_other.h:7451
void SetWidth(Evpu16 width)
Sets the (relative) measure width.
Definition: ff_other.h:4492
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:18272
EXPRESSION_PLAYBACK_STARTPOINTS GetPlaybackStart() const
Returns the playback start point for the expression.
Definition: ff_other.h:16646
void SetHorizontalAlignmentRightPage(GRAPHIC_HORIZONTAL_ALIGN alignment)
Sets the horizontal alignment for right-side pages.
Definition: ff_other.h:19299
void SetDefaultVerticalPos(Evpu16 value)
Sets the default vertical position for the articulation definition.
Definition: ff_other.h:12448
Definition: ff_other.h:1222
static const char * FFUUID_AGUNG
Definition: ff_other.h:8803
NUMBERINGSTYLE
Numbering styles for measure numbers.
Definition: ff_other.h:5428
void SetStaff(twobyte staffno)
Sets the assigned staff.
Definition: ff_other.h:16918
void Init_SetFont(FCFontInfo *pFontInfo)
Creates a st_setfont shape instruction.
Definition: ff_other.h:1595
void SetShowClefs(bool value)
Sets if clefs should be displayed for the staff.
Definition: ff_other.h:9846
FLAG_16 GetAlignment() const
Returns the default alignment for the staff text.
Definition: ff_other.h:7038
void SetTopVelocity(twobyte value)
Sets the Top Note Value for "Velocity" change of playback.
Definition: ff_other.h:12528
bool GetIndependentFont() const
Returns if a independent notehead font should be used for the staff.
Definition: ff_other.h:9189
void SetVerticalPos(twobyte value)
Sets the vertical position for the text block. Smaller values go downward, higher values go upward...
Definition: ff_other.h:16148
void SetCopyMainSymbolHorizontally(bool state)
Sets the state of the "Horizontally/Vertically" setting that's used (when GetCopyMainSymbol is set)...
Definition: ff_other.h:12363
void SetShowTextRepeats(bool value)
Sets if endings and text repeats should be displayed for the staff.
Definition: ff_other.h:9867
static const char * FFUUID_BASSRECORDER
Definition: ff_other.h:7616
bool GetHideCautionary() const
Gets the state of the "Hide cautionary key/clefs/time sigs" setting for the measure.
Definition: ff_other.h:4877
static const char * FFUUID_SANZA
Definition: ff_other.h:8474
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:197
void SetBreakBarlines(bool state)
Sets the "Break barlines between staves" state.
Definition: ff_other.h:9885
static const char * FFUUID_VIOLINSECTION
Definition: ff_other.h:7385
static const char * FFUUID_TAB_BANJO_C
Definition: ff_other.h:8285
bool SetDiatonicInfo(FCNumbers *pNumbers)
Sets the diatonic steps info, based on the numbers of a FCNumbers collection.
Definition: ff_other.h:24110
static const char * FFUUID_TAB_BANJO_D
Definition: ff_other.h:8287
Efix32 GetVerticalFingeringOffset() const
Returns the vertical offset for fingering numbers, in EFIXes.
Definition: ff_other.h:20669
Evpu16 GetOriginalHeight() const
Returns the original graphic rectangle's height (before stretching), in EVPUs.
Definition: ff_other.h:19026
FCShapeDefInstruction * AddRMoveTo(int x, int y)
Adds a RMoveTo instruction (=relative move to).
Definition: ff_other.h:2006
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:23326
Definition: ff_other.h:19816
FCTextRepeat::REPACTIONS GetAction() const
Returns the action type for the backward repeat. This controls what should happen when the text repea...
Definition: ff_other.h:21971
bool GetInitElement() const
Returns true if it's the first (init) element in the chart. The init element defines the full beat ch...
Definition: ff_other.h:22199
static const char * FFUUID_PANPIPES
Definition: ff_other.h:7658
void SetWidth(Evpu16 width)
Sets the width of the beat chart element.
Definition: ff_other.h:22232
static const char * FFUUID_VIELLE
Definition: ff_other.h:7467
bool GetIndividualPositioning() const
Returns if individual positioning on different staves should be allowed or not.
Definition: ff_other.h:19977
static const char * FFUUID_RIQ
Definition: ff_other.h:8924
Class for time signatures.
Definition: ff_timesig.h:25
bool GetShowScoreStaffNames() const
Returns true if score staff names should be displayed for the staff.
Definition: ff_other.h:9164
static const char * FFUUID_ALTOHORN
Definition: ff_other.h:7952
ECompositeTimeLower * _GetThirdRecordPtr()
For internal use only.
Definition: ff_other.h:473
bool GetExpandSingleWord() const
Returns the default "expand single word" state.
Definition: ff_other.h:7044
void SetUseShowTimeSignatures(bool state)
Sets if time signature should be part of the staff style or not.
Definition: ff_other.h:17708
static const char * FFUUID_CLAPPER
Definition: ff_other.h:8743
static const char * FFUUID_KUDUM
Definition: ff_other.h:8607
static const char * FFUUID_KEMPYANGGAMELAN
Definition: ff_other.h:8787
static const char * FFUUID_ARPEGGIONE
Definition: ff_other.h:7403
void SetExecutableShapeID(twobyte shapeID)
Sets the executable shape ID for the expression def.
Definition: ff_other.h:14782
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:17324
void SetRedisplayOtherLayerAccidentals(bool state)
Sets the "Redisplay accidentals in other layers within measures" state.
Definition: ff_other.h:10415
Definition: ff_other.h:2882
static const char * FFUUID_PANCLAPPERS
Definition: ff_other.h:8918
bool GetShowChords() const
Returns true if chords should be displayed for the staff.
Definition: ff_other.h:9138
static const char * FFUUID_LAMELLAPHONE
Definition: ff_other.h:8460
static const char * FFUUID_BARITONEBC
Definition: ff_other.h:7924
void SetAvoidStaffLines(bool state)
Sets the state of the "Avoid staff lines" setting.
Definition: ff_other.h:12429
static const char * FFUUID_INGOMA
Definition: ff_other.h:8589
void SetInstrumentDefID(ePlaybackRoute value)
Set the ID that maps to the FCInstrumentDef class.
Definition: ff_other.h:22958
The class for a text repeat definition.
Definition: ff_other.h:19396
void SetExecutableShapeID(twobyte shapeID)
Sets the executable shape ID for the expression def.
Definition: ff_other.h:13859
Definition: ff_other.h:19833
static const char * FFUUID_FANGXIANG
Definition: ff_other.h:8446
static const char * FFUUID_ACOUSTICGUITAR
Definition: ff_other.h:8010
static const char * FFUUID_HARP
Definition: ff_other.h:8002
static const char * FFUUID_SLITDRUM
Definition: ff_other.h:8934
void SetInsideSlurs(bool state)
Sets the state of the "Inside slurs" setting.
Definition: ff_other.h:12435
static const char * FFUUID_WHIP
Definition: ff_other.h:8775
Class for staff style assignments to a staff.
Definition: ff_other.h:18060
bool GetShowClefs() const
Returns true if clefs should be displayed for the staff.
Definition: ff_other.h:9131
static const char * FFUUID_CLARINETEFLAT
Definition: ff_other.h:7584
static const char * FFUUID_NATIVELOGDRUM
Definition: ff_other.h:8627
static const char * FFUUID_AFRICANLOGDRUM
Definition: ff_other.h:8519
void GetFretNumberText(FCString *pString)
Copies the fret number text to a FCString object.
Definition: ff_other.h:20697
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:22363
bool SetTextFontInfo(FCFontInfo *pInfo)
Sets the font info for the text font.
Definition: ff_other.h:13130
static const char * FFUUID_BASSGUITAR
Definition: ff_other.h:8024
bool GetAltShowLyrics() const
Returns if lyrics should be diplayed on the altered layer.
Definition: ff_other.h:9530
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:20589
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:4268
void SetFontInfo(FCFontInfo *pInfo)
Sets the font info for the text repeat.
Definition: ff_other.h:19617
int GetConnectedMeasure() const
Returns the connected measure for loaded data.
Definition: ff_other.h:11517
void SetAbsoluteValue(float value)
Sets the tempo to an actual absolute value.
Definition: ff_other.h:22470
void SetUseFullName(bool state)
Sets if the full staff name should be part of the staff style or not.
Definition: ff_other.h:17924
void SetVerticalEntryOffset(twobyte value)
Sets the vertical "Additional Entry Offset" in the shape expression definition.
Definition: ff_other.h:14948
static const char * FFUUID_HIHATCYMBAL
Definition: ff_other.h:8719
static const char * FFUUID_KASHIKLAR
Definition: ff_other.h:8900
static const char * FFUUID_PAKHAVAJ
Definition: ff_other.h:8639
bool GetJumpIfIgnore() const
Returns the "Jump if ignoring repeats" setting.
Definition: ff_other.h:20058
twobyte GetUseSymbolsLessThan() const
Returns the number of measures for the "Use symbols for rests less than" option.
Definition: ff_other.h:18343
static const char * FFUUID_TENORVOICE
Definition: ff_other.h:7531
static const char * FFUUID_DOUNDOUNBA
Definition: ff_other.h:8563
FCShapeDefInstruction * AddCurveTo(int ctrlpt_height=72)
Adds a standard CurveTo instruction.
Definition: ff_other.h:1878
ETAG GetInstructionTag(int index)
Returns the instruction tag at a certain index in the shape path.
Definition: ff_other.h:2590
static const char * FFUUID_NADASWARAM
Definition: ff_other.h:7852
void SetFixedSize(bool state)
Sets the "fixed size" state.
Definition: ff_other.h:3015
Evpu16 GetFullSpan() const
Returns the full span for the beat chart.
Definition: ff_other.h:22147
const char * GetTagAsString() const
Returns the instruction tag as a human-readable C-type string, such as "startobject", "null", etc.
Definition: ff_other.h:1323
Definition: ff_other.h:5458
Definition: ff_other.h:1216
void SetHorizontalFingeringOffset(Efix32 value)
Sets the horizontal offset for fingering numbers, in EFIXes.
Definition: ff_other.h:20887
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:18808
Class for allotment data (in the Document Options).
Definition: ff_other.h:18752
int GetResize() const
Returns the resize for the specific staff, in percent.
Definition: ff_other.h:6808
Definition: ff_other.h:19773
bool GetWordWrap() const
Returns true if the text should word wrap automatically.
Definition: ff_other.h:15368
static const char * FFUUID_IRISHFLUTE
Definition: ff_other.h:7730
void SetSpaceAfter(Evpu16 space)
Sets the extra space after the music in the measure.
Definition: ff_other.h:4527
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:15186
bool GetExpandVertically() const
Returns if the text block is set to "Expand Vertically" for a standard frame.
Definition: ff_other.h:15647
static const char * FFUUID_BANDONEON
Definition: ff_other.h:7638
bool GetAltShowArticulations() const
Returns if articulations should be diplayed on the altered layer.
Definition: ff_other.h:9524
eStaff GetStaff() const
Returns the staff number for a loaded staff style region.
Definition: ff_other.h:18179
static const char * FFUUID_TRES
Definition: ff_other.h:8235
static const char * FFUUID_VIENNAHORN
Definition: ff_other.h:7958
twobyte GetVerticalEntryOffset() const
Returns the vertical "Additional Entry Offset" in the category definition.
Definition: ff_other.h:13035
bool IsIdenticalRecord(__FCOther *pCompare)
Compares an object to see if both objects point to the same data record.
Definition: ff_other.h:47
static const char * FFUUID_TAB_GUITAR_DADGAD
Definition: ff_other.h:8271
Efix32 GetStringSpacing() const
Returns the string spacing, in EFIXes.
Definition: ff_other.h:20633
Utility class to provide a mechanism for loading blob data blocks consisting of more than 1 inci...
Definition: ff_other.h:155
static const char * FFUUID_HULUSI
Definition: ff_other.h:7898
static const char * FFUUID_ALTOVOICE
Definition: ff_other.h:7529
static const char * FFUUID_RANATTHUMLEK
Definition: ff_other.h:8472
void SetStaff(eStaff staff)
Sets the staff that the separate placement should be matched to.
Definition: ff_other.h:16422
static const char * FFUUID_SHEKERE
Definition: ff_other.h:8926
FCString * CreateRawTextString()
Creates a string object for the connected raw text.
Definition: finaleframework.cpp:8792
static const char * FFUUID_BULLROARER
Definition: ff_other.h:8821
void SetTransposeUseClef(bool state)
Sets the "Set to clef" state in the transposition dialog.
Definition: ff_other.h:10047
static const char * FFUUID_SYNTHLEAD
Definition: ff_other.h:7506
static const char * FFUUID_RUAN
Definition: ff_other.h:8202
bool AssignTextExpressionDef(FCTextExpressionDef *pDef)
Assigns a text expression definition to a metatool.
Definition: ff_other.h:24674
static const char * FFUUID_LOGDRUM
Definition: ff_other.h:8513
static const char * FFUUID_CAXIXI
Definition: ff_other.h:8823
virtual bool DeepDeleteData()
Reimplementation to delete raw text as well.
Definition: ff_other.h:15305
SMARTMUSIC_MARKER_TYPES
The different types that can be returned by GetSmartMusicMarkerType.
Definition: ff_other.h:13665
void SetShapeStartAdjust(twobyte value)
Sets the left-side adjustment for MM shapes.
Definition: ff_other.h:18432
static const char * FFUUID_GONG
Definition: ff_other.h:8727
static const char * FFUUID_DOUBLECONTRABASSFLUTE
Definition: ff_other.h:7654
FCShapeDefInstruction * AddLineWidth(int linewidth)
Adds a LineWidth instruction.
Definition: ff_other.h:1788
bool GetPartAssignment() const
Returns true if the expression is assigned to the parts.
Definition: ff_other.h:16667
static const char * FFUUID_MALLETS
Definition: ff_other.h:8329
static const char * FFUUID_CROMORNE
Definition: ff_other.h:7830
static const char * FFUUID_MARACAS
Definition: ff_other.h:8753
static const char * FFUUID_FLEXATONE_PITCHED
Definition: ff_other.h:8374
bool TruncateAt(int newlength)
Truncates the string at the indicated position.
Definition: ff_base.h:2865
static const char * FFUUID_SHEPHERDSPIPE
Definition: ff_other.h:7756
void SetBottomAttack(twobyte value)
Sets the Bottom Note Value for "Attack" change of playback.
Definition: ff_other.h:12395
twobyte GetVerticalBaselineOffset() const
Returns the vertical "Additional Baseline Offset" in the category definition.
Definition: ff_other.h:13028
static const char * FFUUID_RATTLE
Definition: ff_other.h:8761
The class that reference a cell (one measure on one staff) in the musical "grid". ...
Definition: ff_cell.h:17
static const char * FFUUID_HAMMEREDDULCIMER
Definition: ff_other.h:8036
static const char * FFUUID_CHIMTA
Definition: ff_other.h:8831
static const char * FFUUID_BASICINDIANPERCUSSION
Definition: ff_other.h:8811
void SetWidth(Evpu16 width)
Sets the fixed width of the frame.
Definition: ff_other.h:15539
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:6737
int GetGroupCount()
Calculates and returns the number of top time sig groups.
Definition: ff_other.h:638
Contains a clef change inside a cell. This is an item member in a FCCellClefChanges collection (creat...
Definition: ff_other.h:24169
twobyte GetWholeRestPosition() const
Returns the vertical position for the whole rests. This setting is located in the "Staff Setup" dialo...
Definition: ff_other.h:9238
static const char * FFUUID_OKAWA
Definition: ff_other.h:8633
bool GetShowTextRepeats() const
Returns true if endings and text repeats should be displayed for the staff.
Definition: ff_other.h:9152
FCPercussionMapNote * GetItemAt(int index)
Overridden GetItemAt method.
Definition: ff_other.h:22628
void SetStemReversalPosition(twobyte position)
Sets the stem reversal position offset for the staff. This setting is located in the "Staff Setup" di...
Definition: ff_other.h:9979
static const char * FFUUID_VICHITRAVEENA
Definition: ff_other.h:8243
static const char * FFUUID_MOHANVEENA
Definition: ff_other.h:8182
An internal inci holder for composite time signature top elements.
Definition: ff_other.h:345
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:331
static const char * FFUUID_TINWHISTLEBFLAT
Definition: ff_other.h:7630
Efix32 GetVerticalFretNumberOffset() const
Returns the vertical text offset for fret number text, in EFIXes.
Definition: ff_other.h:20713
void SetLastPage(int pageno)
Sets the end page for the graphics.
Definition: ff_other.h:19140
Evpu16 GetHorizontalOffset2() const
Returns the 2nd horizontal offset, compared to the standard positioning.
Definition: ff_other.h:16404
bool GetAttachToTopNote() const
Returns the state of the "Attach to top note" setting.
Definition: ff_other.h:11951
void GetFingeringFontInfo(FCFontInfo *pFontInfo)
Copies the fingering font information to a FCFontInfo object.
Definition: ff_other.h:20792
static const char * FFUUID_SPLASHCYMBAL
Definition: ff_other.h:8723
bool GetUsePositioning() const
Returns if the positioning is activated for the staff (or staff style).
Definition: ff_other.h:7050
bool AssignArticulationDef(FCArticulationDef *pDef)
Assigns an articulation definition to a metatool.
Definition: ff_other.h:24658
twobyte GetFirstPage() const
Returns the page number for the first page.
Definition: ff_other.h:15817
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:12551
void SetVerticalEntryOffset(twobyte value)
Sets the vertical "Additional Entry Offset" in the text expression definition.
Definition: ff_other.h:14176
bool GetUseShowRests() const
Returns true if the "Show Rests" is active for the staff style definition.
Definition: ff_other.h:17439
void SetSpaceAfterMusic(twobyte space)
Sets the extra space after the music, in EVPUs.
Definition: ff_other.h:3642
void SetShowStems(bool value)
Sets if stems should be displayed for the staff.
Definition: ff_other.h:10079
static const char * FFUUID_TALKINGDRUM
Definition: ff_other.h:8661
bool IsSmartMusicMarker() const
Returns true if the text expression's playback style is defined as a SmartMusic marker.
Definition: ff_other.h:14328
bool GetNoPrint() const
Returns the "No Print" state.
Definition: ff_other.h:14604
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:19751
static const char * FFUUID_BASSXYLOPHONE
Definition: ff_other.h:8359
static const char * FFUUID_LIKEMBE
Definition: ff_other.h:8462
static const char * FFUUID_ORGAN
Definition: ff_other.h:7490
Base class for the Finale Framework classes.
Definition: ff_base.h:47
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:6889
CMPER CalcBottomStaff()
Returns the bottom staff in the group.
Definition: ff_other.h:18707
An object that contains one staff list section (out of 4). Before data is loaded/saved, the SetMode() method must be called.
Definition: ff_other.h:23363
static const char * FFUUID_BONGODRUMS
Definition: ff_other.h:8509
static const char * FFUUID_MAROVANY
Definition: ff_other.h:8180
eStaffGroup GetGroupID() const
Returns the staff group ID.
Definition: ff_other.h:18635
static const char * FFUUID_ODAIKO
Definition: ff_other.h:8631
static const char * FFUUID_GUBAN
Definition: ff_other.h:8874
void SetDisplayEmptyRests(bool state)
Sets the "Display Rests in empty measures" state.
Definition: ff_other.h:10108
virtual bool SaveAll()
Saves all data in the collection.
Definition: ff_basecollection.h:506
twobyte GetVirtualChannel() const
Returns the virtual channel number for the instrument.
Definition: ff_other.h:22817
Helper class for FCShapeDef.
Definition: ff_other.h:1680
static const char * FFUUID_VUVUZELA
Definition: ff_other.h:7998
twobyte GetMainSymbolShapeID() const
Returns the shape ID for the main symbol.
Definition: ff_other.h:11744
FCShapeDefInstruction * AddRectangle(int width, int height)
Adds an Rectangle instruction (draws a circle).
Definition: ff_other.h:1857
static const char * FFUUID_SNAREDRUM
Definition: ff_other.h:8487
TEXT_HORIZONTAL_ALIGN GetHorizontalAlignment() const
Returns the horizontal alignment for the text block on left-side (or all) pages.
Definition: ff_other.h:15844
static const char * FFUUID_TENORCRUMHORN
Definition: ff_other.h:7820
twobyte GetHorizontalOffset() const
Returns the "Additional Horizontal Offset" value in the shape expression definition.
Definition: ff_other.h:14710
void SetStaffListID(twobyte value)
(Only works on Finale 2014b and above.) Sets the staff list ID for the category def.
Definition: ff_other.h:13181
static const char * FFUUID_THEORBO
Definition: ff_other.h:8231
static const char * FFUUID_BO
Definition: ff_other.h:8815
void SetVerticalAlignment(TEXT_VERTICAL_ALIGN alignment)
Sets the vertical alignment for the text block.
Definition: ff_other.h:16064
static const char * FFUUID_TAB_GUITAR_D
Definition: ff_other.h:8269
void SetFixedPercent(bool state)
Sets the state of the "Fixed Percent" checkbox in the graphic attributes dialog box.
Definition: ff_other.h:19252
int GetItemCmper() const
Returns the cmper (main record) value for a loaded record.
Definition: ff_other.h:105
static const char * FFUUID_TAMA
Definition: ff_other.h:8663
bool GetUseShowChords() const
Returns true if the chords is active for the staff style definition.
Definition: ff_other.h:17404
static const char * FFUUID_NEY
Definition: ff_other.h:7742
twobyte GetDefaultClef() const
Returns the start/default clef.
Definition: ff_other.h:9601
Evpu16 GetTopBracketPosition() const
Returns the vertical top position of the bracket.
Definition: ff_other.h:21709
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:2841
void SetJustification(FLAG_16 justification)
Sets the default justification for the staff text.
Definition: ff_other.h:7074
static const char * FFUUID_CHIMETREE
Definition: ff_other.h:8703
static const char * FFUUID_CUATRO
Definition: ff_other.h:8088
static const char * FFUUID_BIANQING
Definition: ff_other.h:8442
virtual void Deallocate()
Definition: ff_base.h:670
void SetShowRepeats(bool value)
Sets if repeats should be displayed for the staff.
Definition: ff_other.h:9873
static const char * FFUUID_RHAITA
Definition: ff_other.h:7866
twobyte GetPlaybackPass() const
Definition: ff_other.h:13976
void SetLayerAssignment(twobyte layer)
Sets the layer that the expression is assigned to.
Definition: ff_other.h:16837
SHAPEDEF_TYPES
The shape definition types, to be used with FCShapeDef::SaveNewWithType(), etc.
Definition: ff_other.h:2114
virtual bool LoadNext()
Different approach for loading next for shapes.
Definition: ff_other.h:2393
Class for attaching an articulation definition to an entry.
Definition: ff_entrydetails.h:1450
twobyte GetBottomDuration() const
Returns the Bottom Note Value for "Duration" change of playback.
Definition: ff_other.h:11901
static const char * FFUUID_ORGAN2STAFF
Definition: ff_other.h:7492
virtual bool DeepSaveAs(CMPER itemno)
Saves the data under another item number, but also makes a deep copy of the object.
Definition: ff_other.h:274
Definition: ff_other.h:19779
An internal inci holder for composite time signature bottom elements.
Definition: ff_other.h:416
static const char * FFUUID_XALAM
Definition: ff_other.h:8253
twobyte GetStyleID() const
Returns the staff style ID, for use with the FCStaffStyleDef class. Please note that the style ID is ...
Definition: ff_other.h:18118
FCArticulationDef()
The constructor.
Definition: ff_other.h:11650
static const char * FFUUID_TARKA
Definition: ff_other.h:7766
static const char * FFUUID_CYMBALS
Definition: ff_other.h:8713
static const char * FFUUID_FONTOMFROM
Definition: ff_other.h:8579
static const char * FFUUID_BALAPHON
Definition: ff_other.h:8440
The class for a measure (the full vertical measure stack) in the document. It maps the Measure Attrib...
Definition: ff_other.h:4052
static const char * FFUUID_BABENDIL
Definition: ff_other.h:8809
static const char * FFUUID_LYRE
Definition: ff_other.h:8166
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:23500
Evpu16 GetRightMargin() const
Returns the right page margin as a positive value.
Definition: ff_other.h:3351
void SetAboveSymbolChar(eUniChar32 symbol)
Sets the character for the "above" symbol. On Finale 2012 and above, this supports the Unicode range...
Definition: ff_other.h:12221
static const char * FFUUID_TIBETANCYMBALS
Definition: ff_other.h:8950
static const char * FFUUID_GUITJO
Definition: ff_other.h:8126
void Init_FillSolid()
Inits a FillSolid instruction, which fills the path.
Definition: ff_other.h:1544
void _SetRawTextID(twobyte therawtextid)
Sets the text ID for the raw text.
Definition: ff_other.h:15223
bool GetIndividualPositioning() const
Returns true if the bracket has individual positioning.
Definition: ff_other.h:21690
bool UsesTextFont()
Returns true if the category uses the text font settings.
Definition: ff_other.h:13304
static const char * FFUUID_MANJEERA
Definition: ff_other.h:8916
static const char * FFUUID_AGOGOBELLS
Definition: ff_other.h:8729
Evpu16 GetBottomBracketPosition() const
Returns the vertical bottom position of the bracket.
Definition: ff_other.h:21718
bool SetMusicFontInfo(FCFontInfo *pInfo)
Sets the font info for the music font.
Definition: ff_other.h:13147
static const char * FFUUID_CLAVES
Definition: ff_other.h:8745
static const char * FFUUID_ENGLISHHORN
Definition: ff_other.h:7578
bool IsMeasureIncluded(int measure)
Returns true if the measure number is included in the MM rest.
Definition: ff_other.h:18493
void SetUseBreakRepeatBarlines(bool state)
Sets if the "Break repeat barlines between staves" setting should be part of the staff style or not...
Definition: ff_other.h:17903
bool SetNumberFontInfo(FCFontInfo *pInfo)
Sets the font info for the number font.
Definition: ff_other.h:13164
void SetLineSpacing(Efix32 distance)
Sets the distance between the staff lines, in EFIXs.
Definition: ff_other.h:10254
Definition: ff_other.h:19813
void SetNumberHorizontalAdjust(twobyte value)
Sets the horizontal adjustment value for the multimeasure rest number.
Definition: ff_other.h:18481
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:446
twobyte GetVerticalEntryOffset() const
Returns the vertical "Additional Entry Offset" in the shape expression definition.
Definition: ff_other.h:14720
static const char * FFUUID_JAWHARP
Definition: ff_other.h:8388
twobyte _GetInci()
Returns the inci for the fretboard (which indicates the alternate version of a fretboard).
Definition: ff_other.h:21132
eMeas GetStartMeasure() const
Returns the start measure number of the assigned staff style.
Definition: ff_other.h:18125
Efix32 GetRoundedCornerRadius() const
Returns the rounded corner radius, to use when rounded corners are enabled for the text block frame...
Definition: ff_other.h:15406
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:21179
void SetVerticalPosRightPage(Evpu16 value)
Sets the vertical position for right-side pages (if used).
Definition: ff_other.h:19242
Definition: ff_other.h:2879
void SetVerticalAlignment(GRAPHIC_VERTICAL_ALIGN alignment)
Sets the vertical alignment for the text block.
Definition: ff_other.h:19332
void SetStringSpacing(Efix32 value)
Sets the string spacing, in EFIXes.
Definition: ff_other.h:20837
bool GetFrameEdgeRef() const
Returns if the frame edge is used as the positioning reference or not.
Definition: ff_other.h:15912
static const char * FFUUID_EKTARA1
Definition: ff_other.h:8111
Definition: ff_other.h:2870
void SetVerticalAlignmentPoint(VERT_ALIGNMENT value)
Sets the vertical alignment point for the category definition positioning.
Definition: ff_other.h:13353
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:24534
void SetUseStafflineAdjustments(bool state)
Sets if the staffline adjustments settings should be part of the staff style or not.
Definition: ff_other.h:17882
Collection class for FCSystemStaff class objects, which contains the list of staves available within ...
Definition: ff_othercollection.h:511
twobyte GetID() const
Returns the definition ID for the shape or text expresion.
Definition: ff_other.h:16812
bool GetFlippedSymbolIsShape() const
Returns true if the flipped symbol is a shape.
Definition: ff_other.h:12023
static const char * FFUUID_SAMPHO
Definition: ff_other.h:8653
bool GetExpandHorizontally() const
Returns if the text block is set to "Expand Vertically" for a standard frame.
Definition: ff_other.h:15635
bool IsPercussion()
Returns true if the staff is a percussion staff.
Definition: ff_other.h:10583
static const char * FFUUID_AEOLIANHARP
Definition: ff_other.h:8797
static const char * FFUUID_SIPSI
Definition: ff_other.h:7816
bool IsEqualString(FCString *pString)
Returns true if the string is identical with the parameter. (FCString string version.)
Definition: finaleframework.cpp:1564
static const char * FFUUID_SHOFAR
Definition: ff_other.h:7996
bool UsesStaffList()
Returns true if the category uses a staff list.
Definition: ff_other.h:13298
static const char * FFUUID_BUGLE
Definition: ff_other.h:7938
Class that stores the information for drum mapping, either for a staff or staff style.
Definition: ff_other.h:6860
Efix32 GetLineSpacing() const
Returns the distance between the staff lines, in EFIXes.
Definition: ff_other.h:9497
bool GetExpandSingleWord() const
Returns the "expand single word" state, which effects the full justification modes.
Definition: ff_other.h:15378
bool GetBreakMMRest() const
Gets the state of the "Break multi-measure rest" setting for a specific measure.
Definition: ff_other.h:4796
bool GetVelocityIsPercent() const
Returns the "Values are percentages" for "Velocity" playback change.
Definition: ff_other.h:11907
void SetMode(METATOOL_MODES mode)
Sets the mode of the object.
Definition: ff_other.h:24568
void SetBackwardRepeat(bool state)
Sets if a backward repeat should be displayed for the measure or not.
Definition: ff_other.h:4442
static const char * FFUUID_DANNGUYET
Definition: ff_other.h:8092
static const char * FFUUID_RAINSTICK
Definition: ff_other.h:8757
Evpu16 GetVerticalPosRightPage() const
Returns the vertical positioning for right-side pages (if used).
Definition: ff_other.h:19063
int _loadedsize
Loaded size of the data block for a loaded object, in bytes. Since the datablock is implementation-sp...
Definition: ff_base.h:653
static const char * FFUUID_DOUBLEBELLEUPHONIUM
Definition: ff_other.h:7980
void SetBreakMMRest(bool state)
Sets the "Break Multi-measure rest" option in the text expression definition.
Definition: ff_other.h:14074
static const char * FFUUID_GUQIN
Definition: ff_other.h:8130
static const char * FFUUID_DUXIANQIN
Definition: ff_other.h:8108
twobyte GetExecutableShapeID() const
Returns the executable shape ID.
Definition: ff_other.h:13846
void SetUseCategoryPos(bool value)
Sets if the "use category positioning" should be checked or not.
Definition: ff_other.h:14922
static const char * FFUUID_PERCACCESSORIES
Definition: ff_other.h:8699
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:3266
static const char * FFUUID_ZURLA
Definition: ff_other.h:7892
static const char * FFUUID_GRANDSTAFF
Definition: ff_other.h:7370
static const char * FFUUID_KPOKOKPOKO
Definition: ff_other.h:8908
static const char * FFUUID_PEMADEGAMELAN
Definition: ff_other.h:8418
static const char * FFUUID_BONANGGAMELAN
Definition: ff_other.h:8406
static const char * FFUUID_CRETANLYRA
Definition: ff_other.h:7409
static const char * FFUUID_ALTOCRUMHORN
Definition: ff_other.h:7782
static const char * FFUUID_CMELODYSAX
Definition: ff_other.h:7690
static const char * FFUUID_ADODO
Definition: ff_other.h:8795
Class for a multi-staff instrument defined in the Score Manager.
Definition: ff_other.h:18540
static const char * FFUUID_SURNAY
Definition: ff_other.h:7884
bool GetShape() const
Identical to IsShape().
Definition: ff_other.h:16800
bool GetUseIndependentTimeSig() const
Returns true if independent time signatures should be used for the staff style definition.
Definition: ff_other.h:17591
static const char * FFUUID_KOBZA
Definition: ff_other.h:8156
void SetLineInset(int value)
Sets the inset between text and border (in EFIXes) for the frame's border.
Definition: ff_other.h:15498
Evpu16 GetSpaceAfter() const
Gets the extra space after the music in the measure.
Definition: ff_other.h:4917
static const char * FFUUID_DIDDLEYBOW
Definition: ff_other.h:8100
Evpu16 GetHorizontalPos() const
Returns the horiozontal position (in EVPUs) from the measure's origin. The value is depending on the ...
Definition: ff_other.h:19923
static const char * FFUUID_EWEDRUMKPANLOGO1LARGE
Definition: ff_other.h:8571
static const char * FFUUID_OCTOBASS
Definition: ff_other.h:7453
void SetPartAssignment(bool value)
Sets if the expression is assigned to the parts.
Definition: ff_other.h:16857
virtual ~FCCompositeTimeSigBottom()
The destructor.
Definition: ff_other.h:967
twobyte GetPlaybackLayerAssignment() const
Returns the layer that the playback of the expression is assigned to.
Definition: ff_other.h:16630
static const char * FFUUID_ALBOKA
Definition: ff_other.h:7780
The class for a staff in the score. It is also a base class for staff styles.
Definition: ff_other.h:10912
int GetLastPage() const
Returns the start page for the graphics.
Definition: ff_other.h:18972
bool IsAutoRehearsalMark() const
Returns true if an automatic rehearsal number style is used.
Definition: ff_other.h:14362
static const char * FFUUID_KHARTAL
Definition: ff_other.h:8904
void SetPercent(twobyte percent)
Set the resize percentage of the page.
Definition: ff_other.h:3455
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:6937
bool GetShowRepeats() const
Returns true if repeats should be displayed for the staff.
Definition: ff_other.h:9158
static const char * FFUUID_EWEDRUMSOGO
Definition: ff_other.h:8577
bool GetUseShowNoteColors() const
Returns true if note colors should be used for the staff style definition.
Definition: ff_other.h:17633
Evpu16 GetHorizontalRightBracketPosition() const
Returns the horizontal position of the bracket's right side.
Definition: ff_other.h:21279
void SetDrawFingeringWhite(bool state)
Sets if the fingering numbers should be drawn in white.
Definition: ff_other.h:20992
void _SetCmper(CMPER cmper)
Primarily for internal use.
Definition: ff_other.h:98
static const char * FFUUID_NAGARA
Definition: ff_other.h:8623
bool GetShowPartTimeSignatures() const
Returns true if the time signature should be displayed for the staff in parts.
Definition: ff_other.h:9116
Base class for all data-related classes (that handles Finale data).
Definition: ff_base.h:628
void SetAltNotationStyle(ALTERNATE_STAFF value)
Sets the alternate notation style for the staff or staff style.
Definition: ff_other.h:10266
twobyte GetStartNumberingAt() const
Returns the threshold number where mm rests should start to be created.
Definition: ff_other.h:18375
STAFFNOTATION_STYLE
Styles for the FCStaff::GetNotationStyle() and FCStaff::SetNotationStyle() methods. The constants are also used for the similar FCStaffStyleDef methods.
Definition: ff_other.h:8977
twobyte GetTopDuration() const
Returns the Top Note Value for "Duration" change of playback.
Definition: ff_other.h:11895
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:21109
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:1647
HORIZ_JUSTIFICATION GetHorizontalJustification() const
Gets the "Horizontal Justification" in the category definition.
Definition: ff_other.h:13050
static const char * FFUUID_KENKENI
Definition: ff_other.h:8601
Evpu16 GetWidth() const
Gets the (relative) measure width.
Definition: ff_other.h:4885
static const char * FFUUID_CLAP
Definition: ff_other.h:8741
static const char * FFUUID_SHAWM
Definition: ff_other.h:7872
virtual bool SaveNew(CMPER itemno)
Creates a new inci record with data.
Definition: finaleframework.cpp:4206
bool IsStartClef()
Returns true if it's the starting clef in the cell.
Definition: ff_other.h:24337
bool GetSolo() const
Returns the "Solo" state of the layer.
Definition: ff_other.h:22947
bool GetCopyMainSymbolHorizontally() const
Returns the state of the "Horizontally/Vertically" setting that's used (when GetCopyMainSymbol is set...
Definition: ff_other.h:11854
bool IsDefaultTempoAlterations()
Returns true if the category is the standard (pre-defined/Finale-created) category "Tempo Alterations...
Definition: ff_other.h:13255
static const char * FFUUID_CHABARA
Definition: ff_other.h:8827
eMeas GetTargetMeasure() const
Sets the playback destination measure for the backward repeat.
Definition: ff_other.h:21681
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:20202
twobyte GetSize() const
Returns the font size as an integer number.
Definition: ff_base.h:1115
static const char * FFUUID_BALAFON
Definition: ff_other.h:8438
static const char * FFUUID_GANDINGANAKAYO
Definition: ff_other.h:8448
static const char * FFUUID_CUICA
Definition: ff_other.h:8749
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:22708
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:11631
Efix32 GetFretSpacing() const
Returns the fret spacing, in EFIXes.
Definition: ff_other.h:20645
virtual bool Save()
Saves the currently loaded to its current location.
Definition: finaleframework.cpp:848
static const char * FFUUID_HARPSICHORD
Definition: ff_other.h:7488
void SetAction(FCTextRepeat::REPACTIONS mode)
Sets the action type for the backward repeat. This controls what should happen when the backward repe...
Definition: ff_other.h:21999
static const char * FFUUID_RATTLECOG
Definition: ff_other.h:8922
static const char * FFUUID_STIRDRUM
Definition: ff_other.h:8940
static const char * FFUUID_GUAN
Definition: ff_other.h:7838
virtual ~FCInstrumentPlaybackData()
The destructor.
Definition: ff_other.h:23046
bool GetUseCategoryPos() const
Returns true if the expression is marked to use the category positioning.
Definition: ff_other.h:14694
Collection class for FCPercussionLayoutNote class objects (=a percussion layout). ...
Definition: ff_othercollection.h:1555
static const char * FFUUID_KENBAU
Definition: ff_other.h:7848
static const char * FFUUID_RATCHET
Definition: ff_other.h:8759
static const char * FFUUID_HECKELPHONECLARINET
Definition: ff_other.h:7800
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:4267
void SetShowFretboards(bool value)
Sets if fretboards should be displayed for the staff.
Definition: ff_other.h:10054
ECompositeTimeLower * _GetSecondRecordPtr()
For internal use only.
Definition: ff_other.h:470
bool GetTransposeSimplifyKey() const
Returns the state of the "Simplify Key Sig" in the transposition dialog box.
Definition: ff_other.h:9386
int GetLineWidth() const
Returns the line width (in 64ths of an EVPUs).
Definition: ff_other.h:3107
STAFF_HIDEMODES
The different hide modes for FCStaff::GetHideMode() and FCStaff::SetHideMode().
Definition: ff_other.h:9024
static const char * FFUUID_SE
Definition: ff_other.h:8220
static const char * FFUUID_STEELGUITAR
Definition: ff_other.h:8016
static const char * FFUUID_BUFFALODRUM
Definition: ff_other.h:8539
Efix32 GetNutThickness() const
Returns the nut thickness, in EFIXes.
Definition: ff_other.h:20657
twobyte GetVerticalOffset() const
Returns the vertical adjustment for the mid-clef change.
Definition: ff_other.h:24250
static void DebugOutBool(const char *pszPrefixText, bool state)
Static method that outputs a line for debugging purposes. The boolean state appears afterwards as eit...
Definition: finaleframework.cpp:390
SHOW_STATES
Settings used for FCMeasure::SetShowKeySignature(), FCMeasure::SetShowTimeSignature(), FCMeasure::GetShowKeySignature() and FCMeasure::GetShowKeySignature()
Definition: ff_other.h:4255
void SetFingeredShapeID(twobyte value)
Sets the shape ID of the "fingered" shape.
Definition: ff_other.h:20998
void SetChordFlag(bool state)
Set to true if chords are available anywhere in the measure.
Definition: ff_other.h:4736
bool GetUseEnclosure() const
Returns true if the text expression uses an enclosure.
Definition: ff_other.h:13900
Definition: ff_other.h:2888
static const char * FFUUID_SETAR
Definition: ff_other.h:8222
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 (a...
Definition: finaleframework.cpp:397
void SetRehearsalMarkOffset(twobyte value)
Sets the rehearsal mark offset.
Definition: ff_other.h:16951
void SetHorizontalLeftBracketPosition(Evpu16 position)
Sets the horizontal position of the repeat bracket's left side.
Definition: ff_other.h:21413
Evpu16 GetDefaultVerticalPos() const
Returns the default vertical position for the articulation definition.
Definition: ff_other.h:11960
void SetMainSymbolIsShape(bool useshape)
Set the main symbol to use shape or a font character.
Definition: ff_other.h:12270
FCTextBlock()
The constructor.
Definition: ff_other.h:15199
bool GetShowTies() const
Returns true if ties should be displayed for the staff.
Definition: ff_other.h:9368
bool GetShowNoteColors() const
Returns if the staff should display note colors.
Definition: ff_other.h:9195
void SetTotalPasses(twobyte totalpasses)
Sets the number of passes for the text repeat assignment.
Definition: ff_other.h:20048
FLAG_16 GetJustification() const
Returns the justification for the text block.
Definition: ff_other.h:15334
static const char * FFUUID_PAHUHULA
Definition: ff_other.h:8637
static const char * FFUUID_TUMPONG
Definition: ff_other.h:7770
static const char * FFUUID_HANG
Definition: ff_other.h:8878
void Init_StartObject(int xorigin, int yorigin, int left, int top, int right, int bottom, int xtransform=1000, int ytransform=1000, int rotation=0)
Creates a st_startobject shape instruction.
Definition: ff_other.h:1442
static const char * FFUUID_JANGGU
Definition: ff_other.h:8593
void Init_DrawChar(eUniChar16 character)
Creates a st_drawchar shape instruction.
Definition: ff_other.h:1585
int GetElementCount()
Returns the number of array elements for all the bottom time sig digits.
Definition: ff_other.h:1028
static const char * FFUUID_KULINTANGATINIOK
Definition: ff_other.h:8458
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:477
static const char * FFUUID_VIHUELAMEXICO
Definition: ff_other.h:8245
static const char * FFUUID_YUEQIN
Definition: ff_other.h:8259
Definition: ff_other.h:4206
static const char * FFUUID_EWEDRUMATOKE
Definition: ff_other.h:8855
static const char * FFUUID_ZITHER
Definition: ff_other.h:8050
static const char * FFUUID_XIAO
Definition: ff_other.h:7774
static const char * FFUUID_DRUMSET
Definition: ff_other.h:8491
CATEGORY_MODE
Constants used by the FCString::ReplaceCategoryFonts method.
Definition: ff_other.h:12765
FCTextRepeat()
The constructor.
Definition: ff_other.h:19849
static const char * FFUUID_PUEBLODRUM
Definition: ff_other.h:8645
void SetContainsManualMeasureNumbers(bool state)
Marks the measure that it contains manually adjusted measure numbers (or not).
Definition: ff_other.h:4601
HORIZ_ALIGNMENT GetHorizontalAlignmentPoint() const
Gets the "Horizontal Alignment Point" in the category definition.
Definition: ff_other.h:13065
bool GetUseShowAugmentationDots() const
Returns true if the augmentation dot setting is active for the staff style definition.
Definition: ff_other.h:17411
void SetAltShowOtherExpressions(bool state)
Sets if expressions should be displayed on layers other than the altered layer.
Definition: ff_other.h:10348
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:445
bool IsShape() const
Returns true if the expression is a shape expression.
Definition: ff_other.h:16784
REHEARSALMARK_STYLES GetRehearsalMarkStyle() const
Returns the rehearsal mark numbering style.
Definition: ff_other.h:14034
void SetHorizontalPos(Evpu32 value)
Sets the horizontal position (in EVPUs) from the measure's origin. The value is depending on the FCTe...
Definition: ff_other.h:19930
static const char * FFUUID_TAB_BANJO_DOUBLEC
Definition: ff_other.h:8289
virtual bool Load(CMPER itemno, twobyte inci)
Loads the indicated record within the item number.
Definition: finaleframework.cpp:4169
virtual bool SaveAll()
Overridden SaveAll method that repacks the composite top time sig.
Definition: ff_other.h:778
void SetNameByID(twobyte id)
Sets the font name by using the document's internal Enigma font ID.
Definition: finaleframework.cpp:3330
twobyte GetNumberHorizontalAdjust() const
Returns the horizontal adjustment value for the multimeasure rest number.
Definition: ff_other.h:18382
bool RemoveStaff(twobyte staffnumber)
Removes a staff number from the staff list.
Definition: ff_other.h:23732
static const char * FFUUID_MODERNTAROGATO
Definition: ff_other.h:7818
Simple class to put numbers into collections.
Definition: ff_base.h:3840
FCTextRepeat::REPTARGETTRIGGERS GetTargetTrigger() const
Returns the target trigger for the backwards repeat. This value also affects how the GetTargetMeasure...
Definition: ff_other.h:21842
void SetFlippedHandleVerticalOffset(Evpu16 value)
Sets the vertical offset to handle for the flipped symbol.
Definition: ff_other.h:12481
bool GetBelowUsesMain() const
Return the state of the "When Placed Below a Note, Use the" setting.
Definition: ff_other.h:11837
twobyte GetNumberVerticalAdjust() const
Returns the vertical adjustment value for the multimeasure rest number.
Definition: ff_other.h:18388
static const char * FFUUID_CLARINETTEDAMOUR
Definition: ff_other.h:7790
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:23119
twobyte GetBottomAttack() const
Returns the Bottom Note Value for "Attack" change of playback.
Definition: ff_other.h:11882
void SetShowLastFret(bool state)
Sets if the last fret should be shown when drawing the fretboards, or not.
Definition: ff_other.h:20978
virtual bool LoadFirst()
Loads the first element of 1-based data.
Definition: ff_other.h:328
twobyte GetPercussionMapID() const
Returns the percussion mapping ID for the instrument.
Definition: ff_other.h:22825
void SetMode(STAFFLIST_MODES mode)
Sets the list of data that should be used when reading/saving the record.
Definition: ff_other.h:23447
void SetPageBreak(bool state)
Sets the page break for a specific measure.
Definition: ff_other.h:4386
virtual bool LoadNext()
Overridden LoadNext, since the data loading mechanism requires it for LoadAll() to work...
Definition: ff_other.h:14560
bool GetClefAfterBarline() const
Returns true if the clef should appear to the right of the barline. Only affects the first clefs in t...
Definition: ff_other.h:24270
FCShapeDefInstruction * AddBracket(int brackettype)
Adds a Bracket instruction.
Definition: ff_other.h:1982
bool GetUseShowScoreStaffNames() const
Returns true if the statff name display in the score is active for the staff style definition...
Definition: ff_other.h:17455
void SetUseFullNamePosition(bool state)
Sets if the full name positioning should be part of the staff style or not.
Definition: ff_other.h:17966
void SetSpaceBeforeMusic(twobyte space)
Sets the extra space before the music, in EVPUs.
Definition: ff_other.h:3634
void SetStyleID(twobyte value)
Sets the staff style definition ID for the applied staff style.
Definition: ff_other.h:18173
void SetUseNotationStyle(bool state)
Sets if the notation style should be part of the staff style or not.
Definition: ff_other.h:17851
void SetUseShowAugmentationDots(bool state)
Sets if augmentation dot setting should be part of the staff style or not.
Definition: ff_other.h:17738
static const char * FFUUID_VIOLA
Definition: ff_other.h:7379
void Init_Stroke()
Creates a st_stroke shape instruction.
Definition: ff_other.h:1632
static const char * FFUUID_UCHIWADAIKO
Definition: ff_other.h:8688
FCShapeDef()
The constructor.
Definition: ff_other.h:2347
bool GetAboveUsesMain() const
Return the state of the "When Placed Above a Note, Use the" setting.
Definition: ff_other.h:11828
static const char * FFUUID_KESI
Definition: ff_other.h:8902
static const char * FFUUID_TROMBONE
Definition: ff_other.h:7918
static const char * FFUUID_ALTOFLUTE
Definition: ff_other.h:7572
twobyte GetStringTuning(int stringnumber)
Returns the MIDI number for a specific open string's tuning.
Definition: ff_other.h:24004
twobyte GetSpaceAbove() const
Returns the space to the previous system (or the distance from the top page margin), in EVPUs.
Definition: ff_other.h:3788
void SetDistance(Evpu32 distance)
Sets the distance between this staff and the top staff.
Definition: ff_other.h:6779
twobyte GetOrderID() const
Returns the order ID for the percussion note type.
Definition: ff_other.h:22578
static const char * FFUUID_HANDBELLS_BCLEF
Definition: ff_other.h:8384
bool ContainsStaff(CMPER staffno)
Returns true if the staff is available in the multi-instrument group.
Definition: ff_other.h:18604
void SetNumberVerticalAdjust(twobyte value)
Sets the vertical adjustment value for the multimeasure rest number.
Definition: ff_other.h:18487
static const char * FFUUID_FISCORN
Definition: ff_other.h:7968
void SetAltSlashDots(bool state)
Sets if dots should be added to slashes in compound meters (for altered layers). This setting is only...
Definition: ff_other.h:10362
Evpu16 GetHorizontalTextPosition() const
Returns the horizontal position of the repeat text.
Definition: ff_other.h:21297
static const char * FFUUID_BASSOBOE
Definition: ff_other.h:7672
FCGuide(Efix32 position)
The constructor.
Definition: ff_other.h:24359
static const char * FFUUID_BOUGARABOU
Definition: ff_other.h:8537
virtual TimeEdu32 GetMeasurePos() const
Gets the duration reference position for the element.
Definition: ff_other.h:22398
static const char * FFUUID_TAB_BASSGUITAR_4
Definition: ff_other.h:8295
FCTimeSignature * GetTimeSignature() const
Returns a pointer to the time signature object.
Definition: ff_other.h:5166
static const char * FFUUID_SLENTHEMSGAMELAN
Definition: ff_other.h:8430
static const char * FFUUID_SOPRANORECORDER
Definition: ff_other.h:7608
FCExpression()
The constructor.
Definition: ff_other.h:16547
twobyte GetSymbolSpace() const
Gets the space between multimeasure rest symbols for the mm rest.
Definition: ff_other.h:18367
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:18576
static const char * FFUUID_SHINOBUE
Definition: ff_other.h:7758
bool SaveNewWithType(SHAPEDEF_TYPES shapedeftype)
Saves a new shape definition the with the SaveNew() method, but also saves the type of shape with the...
Definition: ff_other.h:2477
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 h...
Definition: finaleframework.cpp:343
virtual __FCBaseData * CreateObject()=0
Creates a new instance of the object.
bool GetShowAugmentationDots() const
Returns true if augmentation dots should be displayed for the staff.
Definition: ff_other.h:9183
static const char * FFUUID_EWEDRUMKAGAN
Definition: ff_other.h:8569
virtual bool Load(CMPER itemno)
Loads the indicated item in a special way, since there's a crash bug when loading empty shapes...
Definition: ff_other.h:2401
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:18042
bool GetVisible() const
Returns true if the text block is visible (in the score/part that's currently in focus).
Definition: ff_other.h:15961
static const char * FFUUID_GENDERGAMELAN
Definition: ff_other.h:8410
int GetVerticalTextOffset() const
Returns the vertical offset for the text (relative to the left frame side).
Definition: ff_other.h:15589
static const char * FFUUID_CONGADRUMS
Definition: ff_other.h:8511
static const char * FFUUID_QUINTTOMS
Definition: ff_other.h:8497
static const char * FFUUID_LIRONE
Definition: ff_other.h:7447
void SetFretNumberText(FCString *pString)
Sets the fret number text, using a FCString object.
Definition: ff_other.h:20941
static const char * FFUUID_GAIDAPIPES
Definition: ff_other.h:7646
FCPercussionMapNote * FindRawNoteType(PERC_NOTE_TYPE rawnotetype)
Finds and returns the raw note type in the collection.
Definition: ff_other.h:22636
Evpu16 GetVerticalPos() const
Returns the vertical position (in EVPUs) from the top reference line of the measure.
Definition: ff_other.h:19936
static const char * FFUUID_SLIDEWHISTLE
Definition: ff_other.h:8400
static const char * FFUUID_DULCIMER8VB
Definition: ff_other.h:8038
FCPercussionMapNotes(twobyte percussionid)
The constructor. Not supported by Lua.
Definition: ff_other.h:22614
STAFFLIST_MODES
Modes for loading/saving the staff list.
Definition: ff_other.h:23387
FCShapeDefInstruction * AddEllipse(int width, int height)
Adds an Ellipse instruction (draws a circle).
Definition: ff_other.h:1842
void SetBarlineShapeID(twobyte shapeID)
Sets the barline shape ID (for use with the FCShapeDef class), for custom barlines.
Definition: ff_other.h:4673
void SetFretInstrumentDefID(CMPER newid)
Sets the ID for the tablature instrument (for tablature notation).
Definition: ff_other.h:10475
bool GetBreakRepeatBarlines() const
Returns the "Break repeat barlines between staves" state.
Definition: ff_other.h:9176
static const char * FFUUID_WINDMACHINE
Definition: ff_other.h:8777
void SetTopMargin(Evpu16 margin)
Sets the top margin value (the distance between the system top and the topmost staff reference line)...
Definition: ff_other.h:3661
Base class for "other" (ot_*) data with incis.
Definition: ff_other.h:59
__FCNoInciOther()
The constructor.
Definition: ff_other.h:247
FCTempoElement()
The constructor.
Definition: ff_other.h:22380
twobyte GetCustomShapeID() const
Returns the shape ID of the "custom" shape.
Definition: ff_other.h:20781
twobyte GetLayerAssignment() const
Returns the layer that the expression is assigned to.
Definition: ff_other.h:16617
void SetVerticalOffset(int offset)
Sets the vertical offset.
Definition: ff_other.h:2983
Definition: ff_other.h:19799
static const char * FFUUID_EWEDRUMAXATSE
Definition: ff_other.h:8857
static const char * FFUUID_HANDCYMBAL
Definition: ff_other.h:8876
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:19489
static const char * FFUUID_HUN
Definition: ff_other.h:7728
TEXT_HORIZONTAL_ALIGN GetHorizontalAlignmentRightPage() const
Returns the horizontal alignment for a right-side page text block.
Definition: ff_other.h:15875
static const char * FFUUID_ATABAQUE
Definition: ff_other.h:8527
bool GetAltShowOtherSmartShapes() const
Returns if smart shapes should be displayed on layers other than the altered layer.
Definition: ff_other.h:9566
CMPER GetDefID() const
Returns the 1-based (or 0-based) definition ID for supported object types.
Definition: ff_other.h:24613
static const char * FFUUID_ZILLS
Definition: ff_other.h:8968
static const char * FFUUID_SALLANEH
Definition: ff_other.h:8206
void _RestoreTempAllMeasures()
For internal use only.
Definition: ff_other.h:6682
static const char * FFUUID_CHROMANOTESINSTRUMENTS
Definition: ff_other.h:8367
void AppendCharacter(eUniChar16 character)
Appends a character to the string.
Definition: finaleframework.cpp:1617
static const char * FFUUID_DULCIAN
Definition: ff_other.h:7834
void SetHorizontalPosRightPage(twobyte value)
Sets the horizontal position for the text block on right-side pages.
Definition: ff_other.h:16135
void SetShowTopRepeatDot(bool state)
Sets if the top repeat dot should be displayed for the staff. This setting is located in the "Staff S...
Definition: ff_other.h:9990
static const char * FFUUID_KEMPULGAMELAN
Definition: ff_other.h:8785
bool GetTextFontInfo(FCFontInfo *pInfo)
Gets the font info for the text font.
Definition: ff_other.h:13087
twobyte GetTopVelocity() const
Returns the Top Note Value for "Velocity" change of playback.
Definition: ff_other.h:11913
static const char * FFUUID_WASHBOARD
Definition: ff_other.h:8773
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:18807
static const char * FFUUID_ALBOGUE
Definition: ff_other.h:7778
static const char * FFUUID_SRALAI
Definition: ff_other.h:7880
static const char * FFUUID_BYZANTINELYRA
Definition: ff_other.h:7407
static const char * FFUUID_TRYCHEL
Definition: ff_other.h:8964
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:15185
EDataID _dataid
The EdataID for the last loaded/saved object.
Definition: ff_base.h:657
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:20148
EXPRESSION_PLAYBACK_STARTPOINTS
Constants for GetPlaybackStart() and SetPlaybackStart().
Definition: ff_other.h:16515
static const char * FFUUID_DAWURO
Definition: ff_other.h:8849
static const char * FFUUID_KALIMBA
Definition: ff_other.h:8390
void SetFretThickness(Efix32 value)
Sets the fret thickness, in EFIXes.
Definition: ff_other.h:20867
static const char * FFUUID_DOMRA
Definition: ff_other.h:8104
void SetAltShowExpression(bool state)
Sets if expressions should be diplayed on the altered layer.
Definition: ff_other.h:10318
FCCellClefChange()
The constructor.
Definition: ff_other.h:24211
Class that provides storage for text. This is to achieve platform-transparent text handling...
Definition: ff_base.h:1473
static const char * FFUUID_RANATEKLEK
Definition: ff_other.h:8470
__FCCompositeTimeSigTopElement()
The constructor.
Definition: ff_other.h:388
void SetHorizontalPos(twobyte value)
Sets the horizontal position for the text block.
Definition: ff_other.h:16125
static const char * FFUUID_SAUNG
Definition: ff_other.h:8216
PERC_NOTE_TYPE GetNoteType() const
Returns the percussion note type.
Definition: ff_other.h:22572
void SetStaff(eStaff staffno)
Sets the 1-based staff number for this slot.
Definition: ff_other.h:6785
static const char * FFUUID_NOHKAN
Definition: ff_other.h:7744
double GetFloatData(int index)
Returns the floating point data contained at the 0-based index position.
Definition: finaleframework.cpp:32109
FCPercussionLayoutNotes * GetItemAt(int index)
Overridden GetItemAt method.
Definition: ff_other.h:22735
FCPercussionMapNote(int midikey, int notetype, const char *pszName)
The constructor. Not supported by Lua.
Definition: ff_other.h:22552
void SetFretSpacing(Efix32 value)
Sets the fret spacing, in EFIXes.
Definition: ff_other.h:20857
void SetOverrideGroupBarlines(bool state)
Sets the "Override group barlines" setting.
Definition: ff_other.h:4625
bool GetShowTimeSignatures() const
Returns true if the time signature should be displayed for the staff.
Definition: ff_other.h:9087
static const char * FFUUID_POSTHORN
Definition: ff_other.h:7956
Encapsulates a note entry from an owner class (for example FCNoteEntryCell, FCNoteEntryLayer) class...
Definition: ff_noteframe.h:808
void SetResizeVerticalSpace(bool value)
Sets the "Resize Vertical Space" option.
Definition: ff_other.h:3725
Definition: ff_other.h:2898
void SetIndividualPositioning(bool state)
Sets if individual positioning on different staves should be allowed..
Definition: ff_other.h:19986
static const char * FFUUID_DAFF
Definition: ff_other.h:8845
bool GetAltShowOtherLyrics() const
Returns if lyrics should be displayed on layers other than the altered layer.
Definition: ff_other.h:9560
void SetFretCountDefault(int value)
Sets the default number of frets for the style.
Definition: ff_other.h:20972
FCShapeDefInstructions * CreateInstructions()
Creates a collection with all the instructions for the shape.
Definition: finaleframework.cpp:32183
static const char * FFUUID_ROTHPHONE
Definition: ff_other.h:7868
bool GetOverrideGroupBarlines() const
Gets the state of the "Override group barlines" setting.
Definition: ff_other.h:5018
bool LoadDataBlock()
Loads the data. If the object is of dynamic size, the old memory block is freed and a new is allocate...
Definition: finaleframework.cpp:818
twobyte GetGraceNoteIndex() const
Returns the grace note index that the expression is connected to.
Definition: ff_other.h:16738
twobyte GetSpaceAfterMusic() const
Gets the extra space after the music, in EVPUs.
Definition: ff_other.h:3779
Evpu16 GetOriginalWidth() const
Returns the original graphic rectangle's width (before stretching), in EVPUs.
Definition: ff_other.h:19017
static const char * FFUUID_KAGUL
Definition: ff_other.h:8896
bool GetUseShowClefs() const
Returns true if the clef is active for the staff style definition.
Definition: ff_other.h:17397
GRAPHIC_HORIZONTAL_ALIGN
Horizontal alignment constants for graphic.
Definition: ff_other.h:18915
static const char * FFUUID_CONTRALTOCLARINET
Definition: ff_other.h:7588
static const char * FFUUID_CENGCENGGAMELAN
Definition: ff_other.h:8781
void SetHorizontalFretNumberOffset(Efix32 value)
Sets the horizontal text offset for fret number text, in EFIXes.
Definition: ff_other.h:20952
void SetShowTuplets(bool state)
For tablature notation: sets if tuplets should show or not.
Definition: ff_other.h:10120
static const char * FFUUID_PENNYWHISTLEG
Definition: ff_other.h:7626
virtual bool SaveAs(CMPER itemno)
Saves the data under another item number. The object will now be connected to the new item number...
Definition: finaleframework.cpp:4127
static const char * FFUUID_PENNYWHISTLED
Definition: ff_other.h:7624
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:17002
ENCLOSURESHAPE
The enclosure shapes.
Definition: ff_other.h:2861
void SetBreakRepeatBarlines(bool state)
Sets the "Break repeat barlines between staves" state.
Definition: ff_other.h:9891
Collection class for FCBeatChartElement class objects (which is a beat chart for a measure)...
Definition: ff_othercollection.h:1406
static const char * FFUUID_RIDECYMBAL
Definition: ff_other.h:8721
void SetShowBottomRepeatDot(bool state)
Sets if the bottom repeat dot should be displayed for the staff. This setting is located in the "Staf...
Definition: ff_other.h:10000
bool GetName(FCString *pString)
Gets the name of the fretted instrument definition.
Definition: ff_other.h:23950
static const char * FFUUID_BELLS
Definition: ff_other.h:8331
void SetEndMeasurePos(TimeEdu32 value)
Sets the end measure position for the applied staff style.
Definition: ff_other.h:18167
bool GetIndividualPositioning() const
Returns true if the bracket has individual staff positioning enabled.
Definition: ff_other.h:21243
static const char * FFUUID_BASSDRUM
Definition: ff_other.h:8489
bool SetFourbyteData(int index, fourbyte fbvalue)
Sets the fourbyte data contained at the 0-based index position.
Definition: ff_other.h:1413
bool GetUseFullNamePosition() const
Returns true if the full name positioning should be used for the staff style definition.
Definition: ff_other.h:17612
static const char * FFUUID_GUZHENG
Definition: ff_other.h:8132
void SetShapeID(twobyte shapeID)
Sets the shape ID that is connected to the executable shape.
Definition: ff_other.h:20224
bool GetForwardRepeat() const
Returns true if a forward repeat should be displayed for the measure.
Definition: ff_other.h:4812
void SetHorizontalOffset(twobyte value)
Sets the "Additional Horizontal Offset" in the shape expression definition.
Definition: ff_other.h:14938
void SetHorizontalMargin(int margin)
Sets the horizontal margin (which is half the width value in the enclosure dialog box)...
Definition: ff_other.h:2994
void SetVerticalAlignmentPoint(FCCategoryDef::VERT_ALIGNMENT value)
Sets the vertical alignment point for the expression definition positioning.
Definition: ff_other.h:14151
static const char * FFUUID_IBO
Definition: ff_other.h:8886
static const char * FFUUID_BASSETHORN
Definition: ff_other.h:7676
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:11478
GRAPHIC_HORIZONTAL_ALIGN GetHorizontalAlignment() const
Returns the horizontal alignment for the graphic on left-side (or all) pages.
Definition: ff_other.h:19083
void SetVerticalBaselineOffset(twobyte value)
Sets the vertical "Additional Baseline Offset" in the text expression definition. ...
Definition: ff_other.h:14167
void SetOtherRestPosition(twobyte position)
Sets the vertical position for the "other" rests. This setting is located in the "Staff Setup" dialog...
Definition: ff_other.h:9937
static const char * FFUUID_SACKBUT
Definition: ff_other.h:7982
bool GetShowRests() const
Returns true if rests should be displayed for the staff.
Definition: ff_other.h:9350
void SetAltShowOtherLyrics(bool state)
Sets if lyrics should be displayed on layers other than the altered layer.
Definition: ff_other.h:10336
Evpu16 GetTopMargin() const
Returns the top margin value, in EVPUs.
Definition: ff_other.h:3796
static const char * FFUUID_GUITARRON
Definition: ff_other.h:8124
bool IncludesStaff(twobyte staffnumber)
Returns true if the staff number is included in the staff list.
Definition: ff_other.h:23622
static const char * FFUUID_GHUNGROO
Definition: ff_other.h:8870
static const char * FFUUID_VIOLIN
Definition: ff_other.h:7377
static const char * FFUUID_INDIANGONG
Definition: ff_other.h:8888
static const char * FFUUID_DIPLE
Definition: ff_other.h:7712
static const char * FFUUID_ARCHLUTE
Definition: ff_other.h:8052
static const char * FFUUID_CHOIROOHS
Definition: ff_other.h:7553
virtual ~FCShapeDefInstruction()
The destructor.
Definition: finaleframework.cpp:31974
twobyte GetHorizontalPos() const
Returns the horizontal offset position in EVPUs.
Definition: ff_other.h:16724
void SetMinimumPosition(Evpu16 value)
Sets the minimum position for the element.
Definition: ff_other.h:22296
fourbyte GetFourbyteData(int index)
Returns the fourbyte data contained at the 0-based index position.
Definition: finaleframework.cpp:32092
static const char * FFUUID_CHINESEPERCUSSIONENSEMBLE
Definition: ff_other.h:8839
static const char * FFUUID_BELLTREE
Definition: ff_other.h:8705
static const char * FFUUID_HARMONICA
Definition: ff_other.h:7632
static const char * FFUUID_ALTOGLOCKENSPIEL
Definition: ff_other.h:8341
static const char * FFUUID_LAVASTONES
Definition: ff_other.h:8912
static const char * FFUUID_TENORSAX
Definition: ff_other.h:7604
Efix32 GetHorizontalHandleOffset() const
Returns the horizontal handle offset, in EFIXes.
Definition: ff_other.h:20681
static const char * FFUUID_SOPRANOVOICE
Definition: ff_other.h:7527
bool IsDiatonic()
Returns if the instrument has diatonic fretboard information defined or not.
Definition: ff_other.h:24055
static const char * FFUUID_TEMPLEBELLS
Definition: ff_other.h:8478
bool GetUseAbbreviatedPosition() const
Returns true if the abbreviated name positioning should be used for the staff style definition...
Definition: ff_other.h:17619
FCLayerPlaybackData * GetChordLayerData()
Returns the chord playback layer object (of the FCLayerPlaybackData class).
Definition: ff_other.h:23065
static const char * FFUUID_YODEL
Definition: ff_other.h:7555
void SetHorizontalOffset1(Evpu16 value)
Sets the 1st horizontal offset, compared to the standard positioning.
Definition: ff_other.h:16441
static const char * FFUUID_CHUDAIKO
Definition: ff_other.h:8543
bool GetAltSlashDots() const
Returns if dots should be added to slashes in compound meters (for altered layers). This setting is only used with slash notation.
Definition: ff_other.h:9586
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:11222
Evpu16 GetBottomMargin() const
Returns the bottom margin value, in EVPUs.
Definition: ff_other.h:3803
void SetVerticalPos(Evpu16 pos)
Sets the graphic rectangle's bottom position, in EVPUs.
Definition: ff_other.h:19165
void SetInstrumentUUID(const char *pszUUID)
Sets a predefined UUID for the staff.
Definition: ff_other.h:10518
twobyte GetHorizontalOffset() const
Returns the horizontal offset adjustment value.
Definition: ff_other.h:7016
virtual twobyte CalcLastInci()
Overridden version of CalcLastInci for __FCInciOther-based classes.
Definition: finaleframework.cpp:4187
void SetHorizontalAlignment(GRAPHIC_HORIZONTAL_ALIGN alignment)
Sets the horizontal alignment for left-side (or all) pages.
Definition: ff_other.h:19263
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:13782
static const char * FFUUID_SUBCONTRABASSSAX
Definition: ff_other.h:7700
static const char * FFUUID_ANCIENTTAROGATO
Definition: ff_other.h:7888
void SetCustomShapeID(twobyte value)
Sets the shape ID of the "custom" shape.
Definition: ff_other.h:21034
static const char * FFUUID_VIBRASLAP
Definition: ff_other.h:8771
FCFretboardGroupDef()
The constructor.
Definition: ff_other.h:21123
static const char * FFUUID_BRASSSECTION
Definition: ff_other.h:7934
static const char * FFUUID_NAGADODAIKO
Definition: ff_other.h:8621
void SetCmperAndInci(CMPER cmper, twobyte inci)
Sets both the CMPER and the incident number in the dataID record. Mainly for internal use...
Definition: ff_other.h:27
CATEGORY_DEFAULTIDS
The default/predefined category IDs in Finale.
Definition: ff_other.h:12742
static const char * FFUUID_RAUSCHPFEIFE
Definition: ff_other.h:7814
void SetShapeID(twobyte shapeID)
Sets the layout shape ID for the text block.
Definition: ff_other.h:15281
void SetStartMeasurePos(TimeEdu32 value)
Sets the start measure position for the applied staff style.
Definition: ff_other.h:18155
static const char * FFUUID_HECKELPHONE
Definition: ff_other.h:7670
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:13586
static const char * FFUUID_CONCHSHELL
Definition: ff_other.h:7992
static const char * FFUUID_PI
Definition: ff_other.h:7856
void ResetPos()
Resets the position of the expression.
Definition: ff_other.h:16584
Definition: ff_other.h:4191
void SetIndependentRightPage(bool state)
Sets if the right-side page positioning is used.
Definition: ff_other.h:16177
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:2692
Class that encapsulates EREGION and provides additional functionality to region handling.
Definition: ff_region.h:24
void SetFingeringFontInfo(FCFontInfo *pFontInfo)
Copies the fingering font information from a FCFontInfo object.
Definition: ff_other.h:21045
Class for a staff style definition.
Definition: ff_other.h:17040
static const char * FFUUID_LUNTANG
Definition: ff_other.h:8464
TimeEdu32 GetStartMeasurePos() const
Returns the start position of the region within the measure.
Definition: ff_region.h:475
static const char * FFUUID_DOUBLEBASS
Definition: ff_other.h:7383
static const char * FFUUID_DANSO
Definition: ff_other.h:7706
void SetWidth(Evpu32 width)
Sets the page width.
Definition: ff_other.h:3404
static const char * FFUUID_BEGENA
Definition: ff_other.h:8064
static const char * FFUUID_HURDYGURDY
Definition: ff_other.h:7433
The class for a single tempo change in the Tempo Tool. The tempo elements should be stored in measure...
Definition: ff_other.h:22334
static const char * FFUUID_TAMTAM
Definition: ff_other.h:8725
void SetMeasurePos(twobyte edupos)
Sets the duration reference position for the element.
Definition: ff_other.h:22392
void SetTargetTrigger(FCTextRepeat::REPTARGETTRIGGERS value)
Set the target trigger for the ending repeat. This method should also be combined with a SetTargetMea...
Definition: ff_other.h:21536
virtual EXTAG Tag()=0
The Enigma tag for the derived class.
static const char * FFUUID_TARDRUM
Definition: ff_other.h:8676
static const char * FFUUID_REPINIQUE
Definition: ff_other.h:8647
void SetIgnoreKeySig(bool state)
Sets the "Ignore Key Signature" state for the staff.
Definition: ff_other.h:9775
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:23837
The class representing a physical page in Finale.
Definition: ff_other.h:3240
int GetHorizontalOffset() const
Returns the horizontal offset.
Definition: ff_other.h:3117
void SetMainHandleVerticalOffset(Evpu16 value)
Sets the vertical offset to handle for the main symbol.
Definition: ff_other.h:12459
static const char * FFUUID_HORAGAI
Definition: ff_other.h:7994
void SetFlippedSymbolIsShape(bool useshape)
Set the flipped symbol to use shape or a font character.
Definition: ff_other.h:12280
void Init_EndGroup()
Creates a st_endgroup shape instruction.
Definition: ff_other.h:1481
static const char * FFUUID_STAMP
Definition: ff_other.h:8938
static const char * FFUUID_EUPHONIUM
Definition: ff_other.h:7922
bool DeleteGroup(int groupindex)
Deletes a group from the array.
Definition: ff_other.h:1068
bool GetUseStaffResize() const
Returns the flag that marks if any of the staves on the system use individual staff resizing...
Definition: ff_other.h:3857
static const char * FFUUID_TENORRECORDER
Definition: ff_other.h:7614
Definition: ff_other.h:1219
static const char * FFUUID_STEELDRUMS_TCLEF
Definition: ff_other.h:8402
static const char * FFUUID_BONGOBELLS
Definition: ff_other.h:8819
void SetUseShowTextRepeats(bool state)
Sets if the text repeat display setting should be part of the staff style or not. ...
Definition: ff_other.h:17910
static const char * FFUUID_HICHIRIKI
Definition: ff_other.h:7842
The class for instrument playback data. This is also the link between staves/staff styles and the FCI...
Definition: ff_other.h:22991
static const char * FFUUID_DAFLI
Definition: ff_other.h:8847
twobyte GetShapeID() const
Returns the shape ID (for use in the FCShapeDef class) for the MM rest.
Definition: ff_other.h:18325
static const char * FFUUID_TAB_MANDOLIN
Definition: ff_other.h:8313
Definition: ff_other.h:12890
int GetTarget() const
Returns the target measure or ID for the text repeat. This value is dependent on the GetTargetTrigger...
Definition: ff_other.h:19949
bool GetInsideSlurs() const
Returns the state of the "Inside slurs" setting.
Definition: ff_other.h:11945
bool GetPageEdgeRef() const
Returns true if positioning is referenced from the page edge.
Definition: ff_other.h:19045
Collection class for FCExpression class objects.
Definition: ff_othercollection.h:788
void Init_SetGrey(int greyvalue)
Sets the grey percent (0-100).
Definition: ff_other.h:1536
Collection class for FCString class objects.
Definition: ff_basecollection.h:924
Evpu16 GetFlippedHandleHorizontalOffset() const
Gets the horizontal offset to handle for the flipped symbol.
Definition: ff_other.h:12005
int GetFretCountDefault() const
Returns the default number of frets for the style.
Definition: ff_other.h:20719
Definition: ff_other.h:1246
void SetStartNumberingAt(twobyte value)
Sets the threshold number where mm rests should start to be created.
Definition: ff_other.h:18475
twobyte GetStaffHeight() const
Returns the default staff height for the system, in 1/64th of a Evpu32.
Definition: ff_other.h:3832
void SetVerticalMargin(int margin)
Sets the vertical margin (which is half the height value in the enclosure dialog box).
Definition: ff_other.h:3005
static const char * FFUUID_JAWBONE
Definition: ff_other.h:8892
static const char * FFUUID_SYNTHBRASS
Definition: ff_other.h:7508
static const char * FFUUID_VOICE
Definition: ff_other.h:7539
twobyte GetID() const
Returns the internal category ID. This is a read-only value.
Definition: ff_other.h:12953
static const char * FFUUID_WOODBLOCKS
Definition: ff_other.h:8779
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:22364
void SetShowOnlyFirstMeasureClef(bool state)
For tablature notation: sets if the clef should show only on the first measure.
Definition: ff_other.h:10129
static const char * FFUUID_FINGERCYMBALS
Definition: ff_other.h:8715
void SetUsePositioning(bool state)
Sets if the positioning is activated for the staff (or staff style).
Definition: ff_other.h:7108
static const char * FFUUID_OBOEDAMORE
Definition: ff_other.h:7576
void _AssignEDTEnclosure(void *pPointer)
For internal use ONLY! Assigns enclosure data to the class (for structures that doesn't load their ow...
Definition: ff_other.h:2924
void SetAddToMenu(bool value)
Sets if the staff style definition should be added to the staff style menu, or not.
Definition: ff_other.h:17677
bool GetUseShowPartStaffNames() const
Returns true if the staff name display in parts is active for the staff style definition.
Definition: ff_other.h:17462
void SetUseIndependentFont(bool state)
Sets if independent notehead font state should be part of the staff style or not. ...
Definition: ff_other.h:17837
static const char * FFUUID_ALMGLOCKEN
Definition: ff_other.h:8432
void SetHorizontalPos(Evpu16 pos)
Sets the graphic rectangle's left-side position, in EVPUs.
Definition: ff_other.h:19152
void SetPageEdgeRef(bool state)
Sets if positioning is referenced from the page edge, or from the margin.
Definition: ff_other.h:16193
static const char * FFUUID_LAMBEGDRUM
Definition: ff_other.h:8609
void SetIndependentKeySig(bool state)
Sets the state of independent key sigs for the staff.
Definition: ff_other.h:10190
void SetBreakMMRest(bool state)
Sets the "Break Multimeasure Rest" state.
Definition: ff_other.h:14821
static const char * FFUUID_TAB_GUITAR_DOUBLED
Definition: ff_other.h:8273
static const char * FFUUID_CABASA
Definition: ff_other.h:8735
bool GetBreakBarlines() const
Returns the "Break barlines between staves" state.
Definition: ff_other.h:9170
virtual bool DeleteData()
Deletes the associated data from Finale's database. Be careful when deleting multiple objects...
Definition: ff_other.h:2386
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:22622
Evpu16 GetMainHandleHorizontalOffset() const
Gets the horizontal offset to handle for the main symbol.
Definition: ff_other.h:11992
static const char * FFUUID_HARPGUITAR
Definition: ff_other.h:8134
static const char * FFUUID_MAQRUNAH
Definition: ff_other.h:7806
FCMetatoolAssignment()
The constructor.
Definition: ff_other.h:24551
bool GetResetOnRepeatAction() const
Returns the "Reset on Repeat Action" state.
Definition: ff_other.h:21861
twobyte GetOtherRestPosition() const
Returns the vertical position for the "other" rests. This setting is located in the "Staff Setup" dia...
Definition: ff_other.h:9223
static const char * FFUUID_CHARANGO
Definition: ff_other.h:8078
static const char * FFUUID_BASSETCLARINET
Definition: ff_other.h:7674
virtual bool LoadNext()
Overridden LoadNext so the FCStaffLists collection work correctly.
Definition: ff_other.h:23519
Collection class for FCSeparatePlacement records, that handles separate placements in repeats...
Definition: ff_othercollection.h:913
bool UsesMusicFont()
Returns true if the category uses the music font settings.
Definition: ff_other.h:13310
bool GetPositionEvenly() const
Gets the state of the "Position Evenly across Measure" setting.
Definition: ff_other.h:5042
static const char * FFUUID_PATSCHEN
Definition: ff_other.h:8920
Evpu16 GetRightBracketPosition() const
Returns the horizontal right-side position of the bracket.
Definition: ff_other.h:21727
void SetLowestFret(twobyte value)
For tablature notation, set the default lowest fret number.
Definition: ff_other.h:10439
static const char * FFUUID_GONGAGENGGAMELAN
Definition: ff_other.h:8783
FCShapeDefInstruction * AddClosePath()
Adds a ClosePath instruction.
Definition: ff_other.h:1827
void SetMainSymbolShapeID(CMPER shapeID)
Sets the shape ID for the main symbol.
Definition: ff_other.h:12291
static const char * FFUUID_VIRGINAL
Definition: ff_other.h:7520
Evpu16 GetVerticalTextPosition() const
Returns the vertical position of the repeat text.
Definition: ff_other.h:21306
FCCategoryDef::HORIZ_ALIGNMENT GetHorizontalAlignmentPoint() const
Returns the "Horizontal Alignment Point" setting in the text expression definition.
Definition: ff_other.h:14234
void SetShowPartStaffNames(bool value)
Sets if part staff names should be displayed for the staff.
Definition: ff_other.h:10073
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:20291
virtual TimeEdu32 GetMeasurePos() const
Returns the measure position (in EDUs) where the clef is placed in the measure.
Definition: ff_other.h:24232
static const char * FFUUID_RUDRAVEENA
Definition: ff_other.h:8204
void SetStaffHeight(twobyte value)
Sets the default staff height for the system, in 1/64th of a Evpu32.
Definition: ff_other.h:3717
Evpu16 GetRightMargin() const
Returns the right margin value, in EVPUs.
Definition: ff_other.h:3821
static const char * FFUUID_SURDO
Definition: ff_other.h:8659
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:4023
void SetRotate(bool state)
Sets if the fret should be rotated or not.
Definition: ff_other.h:20986
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:13783
static const char * FFUUID_PENYACAHGAMELAN
Definition: ff_other.h:8420
void SetIndependentRightPage(bool state)
Sets if the right-side page positioning is used or not.
Definition: ff_other.h:19219
TimeEdu32 GetDuration()
Returns the duration of the measure, based on the standard time signature.
Definition: ff_other.h:4743
void SetUseTransposition(bool state)
Sets if the transposition settings should be part of the staff style or not.
Definition: ff_other.h:17889
virtual bool LoadFirst()
Overridden LoadFirst, since the data loading mechanism requires it for LoadAll() to work...
Definition: ff_other.h:14557
bool GetAutoUpdateTarget() const
Returns the "Auto-update target" setting.
Definition: ff_other.h:19962
REPEAT_REPLACE_MODE
Constants for use with FCTextRepeatDef::GetReplaceMode() and FCTextRepeatDef::SetReplaceMode().
Definition: ff_other.h:19476
int GetPassNumbersCount() const
Returns the number of pass numbers available to the ending repeat.
Definition: ff_other.h:21328
static const char * FFUUID_FLUTE
Definition: ff_other.h:7570
bool _GetIsEmptyShape()
For internal use.
Definition: ff_other.h:2362
void SetMode(SEPARATEPLACEMENT_MODES mode)
Sets the list of data that should be used when reading/saving the record.
Definition: ff_other.h:16331
static const char * FFUUID_DIPLICA
Definition: ff_other.h:7794
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:22089
void SetReferenceWidth(Evpu16 width)
Sets the reference width for the beat chart.
Definition: ff_other.h:22285
FCStrings * CreateTextStrings()
Returns a string collection with all the texts in the shape.
Definition: finaleframework.cpp:32368
virtual bool SaveNew()
SaveNew() is not supported.
Definition: ff_other.h:23510
twobyte GetVerticalBaselineOffset() const
Returns the vertical "Additional Baseline Offset" in the shape expression definition.
Definition: ff_other.h:14750
void SetShowRests(bool value)
Sets if rests should be displayed for the staff.
Definition: ff_other.h:10067
static const char * FFUUID_CONTRABASSSAX
Definition: ff_other.h:7698
ENCLOSURESHAPE GetShape() const
Returns the shape of the enclosure.
Definition: ff_other.h:3096
static const char * FFUUID_SHENG
Definition: ff_other.h:7900
TimeEdu32 GetMeasurePos() const
Returns the expression position in EDUs.
Definition: ff_other.h:16715
void SetJustification(FLAG_16 justification)
Sets the justification to any of the text block justification styles.
Definition: ff_other.h:15297
void SetHeight(Evpu16 height)
Sets the graphic rectangle's height, in EVPUs.
Definition: ff_other.h:19184
void SetLineWidth(int width)
Sets the line width (in 64ths of a EVPUs).
Definition: ff_other.h:2963
PERC_NOTE_TYPE GetRawNoteType() const
Returns the "raw" percussion note type. This includes the order ID as well.
Definition: ff_other.h:22563
bool UsesNumberFont()
Returns true if the category uses the number font settings.
Definition: ff_other.h:13316
virtual eMeas GetMeasure() const
Virtual method for returning the measure number.
Definition: ff_other.h:129
void SetEndMeasure(eMeas value)
Sets the end measure for the applied staff style.
Definition: ff_other.h:18161
bool GetUseBreakRepeatBarlines() const
Returns true if the "Break repeat barlines between staves" setting should be used for the staff style...
Definition: ff_other.h:17549
static const char * FFUUID_JARANATERCERA
Definition: ff_other.h:8146
Evpu16 GetVerticalOffset2() const
Returns the 2nd horizontal offset, compared to the standard positioning.
Definition: ff_other.h:16414
void SetAllowHorizontalStretching(bool state)
Sets the "Allow Horizontal Stretching" state.
Definition: ff_other.h:14803
void Init_Ellipse(int width, int height)
Inits a Ellipse instruction.
Definition: ff_other.h:1562
Evpu16 GetLeftMargin() const
Returns the left page margin as a positive value.
Definition: ff_other.h:3343
static const char * FFUUID_SISTRUM
Definition: ff_other.h:8930
static const char * FFUUID_PANDERO
Definition: ff_other.h:8641
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:244
bool GetAllowHorizontalStretching() const
Returns the "Allow Horizontal Stretching" state.
Definition: ff_other.h:14595
static const char * FFUUID_GANZA
Definition: ff_other.h:8866
virtual bool IsDynamicSize()
Definition: ff_base.h:678
Definition: ff_other.h:1234
static const char * FFUUID_HIRADAIKO
Definition: ff_other.h:8585
void SetAllowHorizontalSplit(bool state)
Sets the "Allow Horizontal Split Points" setting.
Definition: ff_other.h:4549
bool GetSmartShapeFlag() const
Returns true if a smart shape runs somewhere through the measure.
Definition: ff_other.h:5140
Class that stores one record of a chord suffix definition.
Definition: ff_other.h:20248
void SetRoundedCorners(bool state)
Sets if rounded corners should be used (on Finale 25.4 and later) for the enclosure.
Definition: ff_other.h:3038
static const char * FFUUID_LANGELEIK
Definition: ff_other.h:8164
bool GetIndependentTimeSig() const
Returns true if independent time signatures is set for the staff.
Definition: ff_other.h:9053
bool GetUseExecutableShape() const
Returns true if an executable is used for the expression def.
Definition: ff_other.h:13835
bool GetAbsolute() const
Returns true if the tempo is an absolute or relative tempo setting.
Definition: ff_other.h:22405
static const char * FFUUID_GUIRO
Definition: ff_other.h:8751
static const char * FFUUID_HIRTENSCHALMEI
Definition: ff_other.h:7802
void SetPageAssignment(TEXT_ASSIGNMENT assign)
Sets the page assignment (all/odd/even).
Definition: ff_other.h:16081
Class for key signatures. Instances of this class is auto-created by FCMeasure:GetKeySignature and FC...
Definition: ff_keysig.h:22
Evpu16 GetBottomMargin() const
Returns the bottom page margin as a positive value.
Definition: ff_other.h:3367
static const char * FFUUID_SARRUSOPHONE
Definition: ff_other.h:7870
static const char * FFUUID_CHALUMEAU
Definition: ff_other.h:7788
Evpu16 GetBottomBarlineOffset() const
Returns the bottom barline offset, in EVPUs. This parameter controls how far the barlines extends dow...
Definition: ff_other.h:9708
void SetUseHideMode(bool state)
Sets if the hide mode (such as GetHideMode) should be part of the staff style or not.
Definition: ff_other.h:17952
bool GetUseShowLyrics() const
Returns true if the lyrics display is active for the staff style definition.
Definition: ff_other.h:17425
virtual bool SaveAllForItem(CMPER cmper)
Overridden SaveAllForItem method that repacks the composite top time sig according to the cmper...
Definition: ff_other.h:1118
bool GetAltShowExpression() const
Returns if expressions should be diplayed on the altered layer.
Definition: ff_other.h:9542
static const char * FFUUID_IGIHUMURIZO
Definition: ff_other.h:8587
static const char * FFUUID_PUNGISNAKECHARMER
Definition: ff_other.h:7860
static const char * FFUUID_TONETANG
Definition: ff_other.h:8962
The class for a "current staff state" (the sum of staff changes and staff style changes) at a specifi...
Definition: ff_other.h:11456
twobyte GetLastPage() const
Returns the page number for the last page.
Definition: ff_other.h:15828
virtual bool DeleteDataForItem(CMPER cmper)
Deletes all subrecords (incis) from the Finale database for a specific item (cmper).
Definition: finaleframework.cpp:13080
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:3521
bool IsTablature()
Returns true if the staff is a tablature staff.
Definition: ff_other.h:10593
static const char * FFUUID_VIOLOTTA
Definition: ff_other.h:7477
void SetHorizontalAlignmentPoint(FCCategoryDef::HORIZ_ALIGNMENT value)
Sets the "Horizontal Alignment Point" setting in the text expression definition.
Definition: ff_other.h:14248
void Add(__FCBase *pNewItem)
Adds an element to the end of the collection.
Definition: finaleframework.cpp:12756
FLAG_16 GetEnigmaStyles() const
Gets the font style as standard Enigma bit storage.
Definition: ff_base.h:1164
static const char * FFUUID_TAB_BANJO_G
Definition: ff_other.h:8281
static const char * FFUUID_TENORLINE
Definition: ff_other.h:8501
void SetHalfRestPosition(twobyte position)
Sets the vertical position for the half rests. This setting is located in the "Staff Setup" dialog bo...
Definition: ff_other.h:9923
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:24535
int GetGroupElementBeats(int groupindex, int subindex)
Returns the beat number for a group element.
Definition: ff_other.h:748
static const char * FFUUID_TAB_LUTELETTERS
Definition: ff_other.h:8311
static const char * FFUUID_TROMBAMARINA
Definition: ff_other.h:7465
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:18090
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:19701
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:23174
Efix32 GetStringThickness() const
Returns the string thickness, in EFIXes.
Definition: ff_other.h:20639
twobyte GetStringCount() const
Returns the number of strings for the instrument definition.
Definition: ff_other.h:23904
static const char * FFUUID_KAYAGUM
Definition: ff_other.h:8152
void AppendCString(const char *pOtherString)
Appends a C-style string to the string.
Definition: finaleframework.cpp:1636
void SetSymbolSpace(twobyte space)
Sets the space between multimeasure rest symbols.
Definition: ff_other.h:18469
FCStaffSystem()
The constructor.
Definition: ff_other.h:3591
FCShapeDefInstruction * AddSetGrey(int percent)
Adds a SetGrey instruction.
Definition: ff_other.h:1802
void SetAbsolute(bool value)
Sets the tempo to absolute or relative.
Definition: ff_other.h:22413
static const char * FFUUID_DUMBEK
Definition: ff_other.h:8567
TEXT_REPEAT_JUSTIFICATION
Constants for use with FCTextRepeatDef::GetJustification() and FCTextRepeatDef::SetJustification().
Definition: ff_other.h:19457
void SetNextSysMeasure(eMeas measure)
Sets the measure starting the next system.
Definition: ff_other.h:3626
virtual bool LoadNext()
Loads the next element from the database, if any.
Definition: finaleframework.cpp:877
static const char * FFUUID_DULCIMER
Definition: ff_other.h:8034
void SetPlaybackLayerAssignment(twobyte layer)
Sets the layer that the playback of the expression is assigned to.
Definition: ff_other.h:16872
static const char * FFUUID_OPHICLEIDE
Definition: ff_other.h:7986
eMeas GetFirstMeasure() const
Returns the measure for the first measure of the system.
Definition: ff_other.h:3757
void SetBreakTablatureLines(bool state)
For tablature notation: sets if tablature lines should break at fret numbers.
Definition: ff_other.h:10147
bool GetAllowVerticalDrag() const
Returns the "Allow Vertical Drag" setting.
Definition: ff_other.h:24263
twobyte GetLowestFret() const
For tablature notation, returns the default lowest fret number.
Definition: ff_other.h:9679
static const char * FFUUID_VOICENONAME
Definition: ff_other.h:7541
static const char * FFUUID_WAGNERTUBA
Definition: ff_other.h:7960
static const char * FFUUID_SANTOOR
Definition: ff_other.h:8210
static const char * FFUUID_TENORUKULELE
Definition: ff_other.h:8046
static const char * FFUUID_DOIRA
Definition: ff_other.h:8853
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:16296
twobyte GetTextID() const
Returns the text ID for the expression text. For use with the FCTextBlock class.
Definition: ff_other.h:13941
static const char * FFUUID_DUDUK
Definition: ff_other.h:7832
static const char * FFUUID_TINGSHA
Definition: ff_other.h:8958
void SetResetOnRepeatAction(bool state)
Sets the "Reset on Repeat Action" state.
Definition: ff_other.h:21953
FCEnclosure * GetEnclosureMultiple(bool parts)
Gets the pointer to the multiple enclosure object. This object is a part of the measure number region...
Definition: ff_other.h:6243
static const char * FFUUID_MRIDANGAM
Definition: ff_other.h:8617
A lookup table for FCPercussionMapNotes notes.
Definition: ff_other.h:22672
void SetBeatDuration(twobyte value)
Sets the beat duration (in EDUs), or the composite bottom ID.
Definition: ff_timesig.h:105
static const char * FFUUID_MANDOLA
Definition: ff_other.h:8172
static const char * FFUUID_TOERE
Definition: ff_other.h:8960
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:21068
void SetForwardRepeat(bool state)
Sets if a forward repeat should be displayed for the measure or not.
Definition: ff_other.h:4405
static const char * FFUUID_TICTOCBLOCK
Definition: ff_other.h:8952
static const char * FFUUID_DHOL
Definition: ff_other.h:8555
void SetNotationStyle(STAFFNOTATION_STYLE value)
Sets the notation style for the staff.
Definition: ff_other.h:10160
static const char * FFUUID_THAIGONG
Definition: ff_other.h:8948
void SetWidth(Evpu16 width)
Sets the graphic rectangle's width, in EVPUs.
Definition: ff_other.h:19175
static const char * FFUUID_SYNTHSOUNDTRACK
Definition: ff_other.h:7510
twobyte GetCategoryID() const
Returns the category ID for the expression definition.
Definition: ff_other.h:14833
eClef GetSpeedyClef() const
Returns the clef number to be used in Speedy Edit.
Definition: ff_other.h:23926
virtual bool Load(CMPER itemno)
Loads the indicated item.
Definition: finaleframework.cpp:4109
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: ff_other.h:3220
static const char * FFUUID_VIOLONCELLOPICCOLO
Definition: ff_other.h:7475
void SetTopBarlineOffset(Evpu16 distance)
Sets the top barline offset, in EVPUs. This parameter controls how far the barlines extends upwards...
Definition: ff_other.h:10497
static const char * FFUUID_MBIRA
Definition: ff_other.h:8466
twobyte GetVerticalPosRightPage() const
Returns the vertical position for the text block for right-side pages (if used).
Definition: ff_other.h:15951
bool GetBreakMMRest() const
Returns the "Break Multimeasure Rest" state.
Definition: ff_other.h:14613
static const char * FFUUID_DOUBLECLARINET
Definition: ff_other.h:7796
METATOOL_MODES
Definition: ff_other.h:24427
void SetUserCreated(bool value)
Sets the user-defined state. Use with care!
Definition: ff_other.h:13370
void SetUseExecutableShape(bool state)
Sets the use of executable shape. Normally this isn't called directly. Instead, use SetExecutableShap...
Definition: ff_other.h:14794
static const char * FFUUID_ONDESMARTENOT
Definition: ff_other.h:7516
bool IsShape()
Returns true if a shape is used for the MM rest.
Definition: ff_other.h:18504
bool GetSystemBreak() const
Gets the system break state for the measure.
Definition: ff_other.h:4804
bool GetVisible() const
Returns the visibility status of the page graphic.
Definition: ff_other.h:19037
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:17323
bool GetMusicFontInfo(FCFontInfo *pInfo)
Gets the font info for the music font.
Definition: ff_other.h:13101
bool GetSkipOnIgnore() const
Returns the "Skip ending if ignoring repeats" setting.
Definition: ff_other.h:21225
CMPER GetFretInstrumentDefID() const
Returns the ID for the tablature instrument (for tablature notation). Use the FCFretInstrumentDef cla...
Definition: ff_other.h:9698
void Init_Rectangle(int width, int height)
Inits a Rectangle instruction.
Definition: ff_other.h:1574
void SetNoKeySigShowAccidentals(bool state)
Sets the "Hide key signature & show all accidentals" state, available in the Finale 2014 Score Manage...
Definition: ff_other.h:10428
int CalcTotalGroupBeats(int groupindex)
Returns the accumulated number of beats the composite group element.
Definition: ff_other.h:730
void SetBarreShapeID(twobyte value)
Sets the shape ID of the "barre" shape.
Definition: ff_other.h:21025
void SetStartMeasure(twobyte measure)
Sets the start measure of the MM rest.
Definition: ff_other.h:18411
static const char * FFUUID_UDU
Definition: ff_other.h:8966
bool IsNormalNotation()
Returns true if the staff is using "normal" music notation (not percussion and not TAB notation)...
Definition: ff_other.h:10602
bool GetShowTopRepeatDot() const
Returns if the top repeat dot should be displayed for the staff. This setting is located in the "Staf...
Definition: ff_other.h:9275
static const char * FFUUID_TAB_DULCIMER_DAA
Definition: ff_other.h:8301
static const char * FFUUID_CORNETTO
Definition: ff_other.h:7966
static const char * FFUUID_NAAL
Definition: ff_other.h:8619
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:22088
static const char * FFUUID_MELODICA
Definition: ff_other.h:7498
virtual bool HasStaffValue()
Method that should return true if GetStaff() returns actual values.
Definition: ff_other.h:141
FCSystemStaff()
The constructor.
Definition: ff_other.h:6754
static const char * FFUUID_IPU
Definition: ff_other.h:8890
bool GetScaleWithEntry() const
Returns if the expression should scale to entry or not.
Definition: ff_other.h:16709
static const char * FFUUID_REYONGGAMELAN
Definition: ff_other.h:8793
static const char * FFUUID_KORA
Definition: ff_other.h:7441
void _SetTempAllMeasures(FCMeasures *pAllMeasuresToUse)
For internal use only.
Definition: ff_other.h:6670
void SetHeight(Evpu32 height)
Sets the page height.
Definition: ff_other.h:3412
VERT_ALIGNMENT GetVerticalAlignmentPoint() const
Returns the vertical alignment point for the category definition positioning.
Definition: ff_other.h:13021
FCBackwardRepeat()
The constructor.
Definition: ff_other.h:21669
void SetUseTimeSigForDisplay(bool value)
Turns time sig for display ON or OFF.
Definition: ff_other.h:5230
twobyte GetTopAttack() const
Returns the Top Note Value for "Attack" change of playback.
Definition: ff_other.h:11876
void SetCategoryID(twobyte ID)
Sets the category ID for the expression definition.
Definition: ff_other.h:14848
twobyte GetID() const
Returns the definition ID for the text repeat.
Definition: ff_other.h:19905
void SetUseAllowHiding(bool state)
Sets if the "optimization" state should be part of the staff style or not.
Definition: ff_other.h:17865
FCCategoryDef::VERT_ALIGNMENT GetVerticalAlignmentPoint() const
Returns the vertical alignment point for the expression definition positioning.
Definition: ff_other.h:14740
EXTAG GetRawTextExtag()
Returns the full EXTAG that is used to store the raw text.
Definition: ff_other.h:15226
static const char * FFUUID_HARDANGERFIDDLE
Definition: ff_other.h:7431
void SetPlay(bool state)
Sets the "Play" state of the layer.
Definition: ff_other.h:22969
virtual TimeEdu32 GetMeasurePos() const
Virtual method for returning the position within the measure.
Definition: ff_other.h:148
Data class for the global clef definitions.
Definition: ff_globals.h:42
bool GetResetOnRepeat() const
Returns the "Reset on Repeat" setting.
Definition: ff_other.h:20071
bool GetUseShowRepeats() const
Returns true if the repeat bar display is active for the staff style definition.
Definition: ff_other.h:17432
static const char * FFUUID_CORNETEFLAT
Definition: ff_other.h:7940
bool GetTextRepeatFlag() const
Returns true if there are text repeats in the measure.
Definition: ff_other.h:4868
static const char * FFUUID_TUBULARBELLS
Definition: ff_other.h:8349
bool IsDefaultTechniqueText()
Returns true if the category is the standard (pre-defined/Finale-created) category "Technique Text"...
Definition: ff_other.h:13277
void SetExpandSingleWord(bool state)
Sets the default "expand single word" state.
Definition: ff_other.h:7099
static const char * FFUUID_TAB_REQUINTO
Definition: ff_other.h:8315
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:24194
static const char * FFUUID_SANDBLOCK
Definition: ff_other.h:8763
bool GetShowBottomRepeatDot() const
Returns if the bottom repeat dot should be displayed for the staff. This setting is located in the "S...
Definition: ff_other.h:9285
bool GetUseHideMode() const
Returns true if the hide mode (such as GetHideMode) should be used for the staff style definition...
Definition: ff_other.h:17598
static const char * FFUUID_PICCOLOHECKELPHONE
Definition: ff_other.h:7668
static const char * FFUUID_PIANO
Definition: ff_other.h:7484
static const char * FFUUID_TANTAN
Definition: ff_other.h:8669
static const char * FFUUID_SAZ
Definition: ff_other.h:8218
static const char * FFUUID_CONTRABASSFLUTE
Definition: ff_other.h:7652
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:18273
static const char * FFUUID_SULING
Definition: ff_other.h:7764
void SetKeyless(bool state)
Sets the keyless time signature mode for the measure. Only works on Finale 2014 and above...
Definition: ff_other.h:4359
MNALIGNMENTS
The measure number alignment values.
Definition: ff_other.h:5484
static const char * FFUUID_ACOUSTICBASS
Definition: ff_other.h:8022
twobyte GetClefIndex() const
Returns the clef index.
Definition: ff_other.h:24223
static const char * FFUUID_OCTAVEMANDOLIN
Definition: ff_other.h:8190
static const char * FFUUID_ERHU
Definition: ff_other.h:7419
void SetHorizontalPosRightPage(Evpu16 value)
Sets the horizontal position for right-side pages (if used).
Definition: ff_other.h:19233
static const char * FFUUID_KOMUZ
Definition: ff_other.h:8158
twobyte GetStaffListID() const
Gets the staff list ID.
Definition: ff_other.h:21745
static const char * FFUUID_KKWAENGGWARI
Definition: ff_other.h:8906
static const char * FFUUID_XYLORIMBA
Definition: ff_other.h:8361
static const char * FFUUID_MOROCCODRUM
Definition: ff_other.h:8615
static const char * FFUUID_SHEHNAI
Definition: ff_other.h:7874
static const char * FFUUID_CONTRABASSCLARINET
Definition: ff_other.h:7592
void Init_Null()
Creates a NULL shape instruction.
Definition: ff_other.h:1639
bool IsElementAvailable(twobyte stafflistelement)
Returns true if the element (staff or top/bottom setting) is available.
Definition: ff_other.h:23587
Definition: ff_other.h:19809
static const char * FFUUID_ZHALEIKA
Definition: ff_other.h:7822
virtual int DataSizeLoad()=0
Returns the data size for the data structure that should be loaded.
Collection class for FCPercussionMapNote class objects, used by the FCInstrumentDef class...
Definition: ff_other.h:22604
bool GetUseAllowHiding() const
Returns true if the "optimization" state should be used for the staff style definition.
Definition: ff_other.h:17511
Definition: ff_other.h:5490
bool GetShowStems() const
Returns true if stems should be displayed for the staff.
Definition: ff_other.h:9362
static const char * FFUUID_CHINESECYMBALS
Definition: ff_other.h:8835
CMPER GetLeftBarlineShapeID() const
Returns the left barline shape ID (for use with the FCShapeDef class), for custom left barlines...
Definition: ff_other.h:5094
bool GetCopyable() const
Returns if the staff style definition should be copyable or not.
Definition: ff_other.h:17358
twobyte GetMuteStringShapeID() const
Returns the shape ID of the "mute string" shape.
Definition: ff_other.h:20763
static const char * FFUUID_SHIMEDAIKO
Definition: ff_other.h:8657
FCMeasure()
The constructor.
Definition: ff_other.h:4291
void SetUseExecutableShape(bool state)
Sets the use of executable shape. Normally this isn't called directly. Instead, use SetExecutableShap...
Definition: ff_other.h:13870
static const char * FFUUID_VIOLONCELLOSECTION
Definition: ff_other.h:7391
twobyte GetTotalPasses() const
Returns the number of passes for the playback. This is used as value for "Jump on Pass" as well...
Definition: ff_other.h:21700
Definition: ff_other.h:1231
NUMBERVIEWS
The number views where the region should show.
Definition: ff_other.h:5468
static const char * FFUUID_PSALTERY
Definition: ff_other.h:8198
static const char * FFUUID_KOTO
Definition: ff_other.h:8160
int GetConnectedStaff() const
Returns the connected staff for loaded data.
Definition: ff_other.h:11523
static const char * FFUUID_BLANKSTAFF
Definition: ff_other.h:7368
void SetPositionEvenly(bool state)
Sets the "Position Evenly across Measure" setting.
Definition: ff_other.h:4650
The class for a start of repeat bracket in the document. There can only be one ending repeat in each ...
Definition: ff_other.h:21157
static const char * FFUUID_SARONPANERUSGAMELAN
Definition: ff_other.h:8426
twobyte GetOpenStringShapeID() const
Returns the shape ID of the "open string" shape.
Definition: ff_other.h:20754
FCExecutableShapeDef()
The constructor.
Definition: ff_other.h:20216
void SetFirstStaff(CMPER value)
Sets the staff number of the first staff in the instrument group, Use with care!
Definition: ff_other.h:18646
bool DataIsLoaded() const
Returns true is any data has been loaded into the object.
Definition: ff_base.h:715
static const char * FFUUID_HELICON
Definition: ff_other.h:7984
void SetVerticalOffset1(Evpu16 value)
Sets the 1st horizontal offset, compared to the standard positioning.
Definition: ff_other.h:16452
virtual const char * ClassName()
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition: ff_other.h:6988
twobyte GetWidth() const
Returns the width of the MM rest.
Definition: ff_other.h:18317
static const char * FFUUID_BODHRAN
Definition: ff_other.h:8533
static const char * FFUUID_MADDALE
Definition: ff_other.h:8613
static const char * FFUUID_SUONA
Definition: ff_other.h:7882
bool CopyToUnicodeBuffer(eUniChar16 *pBuffer, int maxbufferlen=0) const
Copies the string to a 16-bit Unicode buffer. The buffer must be big enough to have room for an endin...
Definition: finaleframework.cpp:1111
Definition: ff_other.h:19842
static const char * FFUUID_DUTAR
Definition: ff_other.h:8106
CMPER GetPercussionLibrary()
Returns the number to the percussion library that's used. This is loaded by the percussion layout...
Definition: ff_other.h:6915
void SetDefaultClef(twobyte clefindex)
Sets the start/default clef.
Definition: ff_other.h:10401
static const char * FFUUID_CELLO
Definition: ff_other.h:7381
void SetNextHorizontalPosition(Evpu16 value)
Sets the next position in the measure.
Definition: ff_other.h:22259
bool GetPageBreak() const
Gets the page break state for a specific measure.
Definition: ff_other.h:4787
static const char * FFUUID_SOUNDFX
Definition: ff_other.h:7512
static const char * FFUUID_SITAR
Definition: ff_other.h:8048
static const char * FFUUID_VIOLADAMORE
Definition: ff_other.h:7399
void SetIndependentTimeSig(bool state)
Sets the independent time sigs state for the staff.
Definition: ff_other.h:9781
static const char * FFUUID_LUTE
Definition: ff_other.h:8042
twobyte CalcMeasureSpan()
Calculates the number of measures that MM rest spans.
Definition: ff_other.h:18395
fourbyte GetRatio() const
Returns the tempo ratio value.
Definition: ff_other.h:22423
static const char * FFUUID_JARANASEGUNDA
Definition: ff_other.h:8144
FCPageGraphic()
The constructor.
Definition: ff_other.h:18945
void SetShowNoteShapes(bool state)
Sets if the staff should display note colors.
Definition: ff_other.h:9916
bool HasInstrumentAssigned()
Returns true if there is an instrument assigned to the staff.
Definition: ff_other.h:10875
SHAPEDEFTAGS
The instruction tag constants that can be returned from the GetTag method.
Definition: ff_other.h:1201
twobyte GetStartMeasure() const
Returns the start measure for the region.
Definition: ff_region.h:400
static const char * FFUUID_TRUMPETC
Definition: ff_other.h:7906
FCStaffList()
the constructor.
Definition: ff_other.h:23410
static const char * FFUUID_VOCALS
Definition: ff_other.h:7537
bool IsPortrait()
Returns true if the height is larger than the width.
Definition: ff_other.h:3316
static const char * FFUUID_TAB_GUITARNONAME
Definition: ff_other.h:8265
void SetPlayback(bool state)
Sets the playback change state bit for the articulation definition.
Definition: ff_other.h:12371
virtual bool SaveAll()
Overridden SaveAll method that repacks the composite bottom time sig.
Definition: ff_other.h:1099
FCCompositeTimeSigTop()
The constructor.
Definition: ff_other.h:619
void SetBottomVelocity(twobyte value)
Sets the Bottom Note Value for "Velocity" change of playback.
Definition: ff_other.h:12538
static const char * FFUUID_MUSICALBOW
Definition: ff_other.h:8186
twobyte GetFretCount() const
Returns the number of frets for the instrument definition.
Definition: ff_other.h:23886
bool GetIndependentRightPage() const
Returns true if the right-side page positioning is used.
Definition: ff_other.h:15970
bool GetShowBarlines() const
Returns true if barlines should be displayed for the staff.
Definition: ff_other.h:9145
static const char * FFUUID_HYPERBASSFLUTE
Definition: ff_other.h:7656
void Init_ClosePath()
Inits a ClosePath instruction.
Definition: ff_other.h:1551
Definition: ff_other.h:19482
void SetAltShowSmartShapes(bool state)
Sets if smart shapes should be diplayed n the altered layer.
Definition: ff_other.h:10312
static const char * FFUUID_MOODSWINGER
Definition: ff_other.h:8184
Evpu16 GetTopMargin() const
Returns the top page margin as a positive value.
Definition: ff_other.h:3359
Text used for an instrument definition. Please refer to the FCInstrumentDef class.
Definition: ff_text.h:223
static const char * FFUUID_MIZMAR
Definition: ff_other.h:7850
void SetFlippedHandleHorizontalOffset(Evpu16 value)
Sets the horizontal offset to handle for the flipped symbol.
Definition: ff_other.h:12491
FCLayerPlaybackData * GetMidiExpressionLayerData()
Returns the MIDI expression playback layer object (of the FCLayerPlaybackData class).
Definition: ff_other.h:23085
static const char * FFUUID_DOUBLEBASSSECTION
Definition: ff_other.h:7393
static const char * FFUUID_VIOLASECTION
Definition: ff_other.h:7387
static const char * FFUUID_RACKETT
Definition: ff_other.h:7862
A lookup table for FCPercussionLayoutNotes collections.
Definition: ff_other.h:22705
TimeEdu32 GetMeasurePos() const
Return the duration reference position for the element.
Definition: ff_other.h:22126
bool GetPageEdgeRef() const
Returns true if positioning is referenced from the page edge.
Definition: ff_other.h:15901
virtual bool LoadFirst()
Different approach for loading first for shapes.
Definition: ff_other.h:2381
void SetHorizontalJustification(FCCategoryDef::HORIZ_JUSTIFICATION value)
Sets the "Horizontal Justification" in the shape expression definition.
Definition: ff_other.h:14867
FCPercussionStaff()
The constructor.
Definition: ff_other.h:6902
void SetRatio(fourbyte value)
Sets the tempo ratio value.
Definition: ff_other.h:22429
FCSeparatePlacement()
The constructor.
Definition: ff_other.h:16314
static const char * FFUUID_ERXIAN
Definition: ff_other.h:7421
PERCUSSION_NOTE_TYPES
The predefined "virtual" percussion note types in Finale.
Definition: ff_other.h:22514
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:11632
static const char * FFUUID_THEREMIN
Definition: ff_other.h:7518
void SetVerticalPos(Evpu32 value)
Sets the vertical position (in EVPUs) from the top reference line of the measure. ...
Definition: ff_other.h:19942
void SetNextSysMeasure(twobyte measure)
Sets the start measure for the subsequent system.
Definition: ff_other.h:13573
static const char * FFUUID_TAMBORITA
Definition: ff_other.h:8665
virtual EVERSION EnigmaVersion()
The Enigma version for save/load/create/delete operations.
Definition: ff_base.h:757
POSITIONING_MODES
Settings used for FCMeasure::SetPositioningNotesMode() and FCMeasure::GetPositioningNotesMode() ...
Definition: ff_other.h:4237
virtual bool SaveNew()
Creates the data as completely new item number. The object will now be connected to the new item numb...
Definition: finaleframework.cpp:4133
void SetEndMeasure(twobyte measure)
Sets the end measure of the MM rest.
Definition: ff_other.h:18418
int GetDiatonicCount()
Returns the number of diatonic steps that are defined for the instrument.
Definition: ff_other.h:24064
void SetStartMeasure(eMeas value)
Sets the start measure for the applied staff style.
Definition: ff_other.h:18149
int GetElementCount() const
Returns the number of elements in the staff list. Both staff numbers and top/bottom staff are include...
Definition: ff_other.h:23526
void SetSpaceBefore(Evpu16 space)
Sets the extra space before the music in the measure.
Definition: ff_other.h:4509
static const char * FFUUID_SORNA
Definition: ff_other.h:7878
twobyte GetBottomVelocity() const
Returns the Bottom Note Value for "Velocity" change of playback.
Definition: ff_other.h:11919
static const char * FFUUID_POLICEWHISTLE
Definition: ff_other.h:8755
eUniChar32 GetBelowSymbolChar() const
Returns the character for the "below" symbol. On Finale 2012 and above, this supports the Unicode ran...
Definition: ff_other.h:11720
void SetUseShowRepeats(bool state)
Sets if repeat bar display should be part of the staff style or not.
Definition: ff_other.h:17768
void SetAttackIsPercent(bool state)
Sets the "Values are percentages" state for the "Attack" playback change.
Definition: ff_other.h:12378
void Make1LineFullBarlineStaff()
Fills the necessary values in the Staff Setup dialog to make a 1-line staff with full-length barlines...
Definition: ff_other.h:10677
void SetLeftMargin(Evpu16 margin)
Sets the left page margin, as a positive value.
Definition: ff_other.h:3420
static const char * FFUUID_SARANGI
Definition: ff_other.h:7459
void SetUseShowScoreStaffNames(bool state)
Sets if staff name display in score should be part of the staff style or not.
Definition: ff_other.h:17797
static const char * FFUUID_BASSSAX
Definition: ff_other.h:7696
static const char * FFUUID_CHITARRABATTENTE
Definition: ff_other.h:8080
bool GetBreakMMRest() const
Returns the "Break Multi-measure rest" option in the text expression definition.
Definition: ff_other.h:14064
static const char * FFUUID_SANSHIN
Definition: ff_other.h:8208
virtual eStaff GetStaff() const
Returns the staff that the separate placement should be matched to.
Definition: ff_other.h:16361
Definition: ff_other.h:12893
void SetRoundedCornerRadius(Efix32 radius)
Sets the rounded corner radius, to use when rounded corners are enabled for the text block frame...
Definition: ff_other.h:15479
bool GetNoKeySigShowAccidentals() const
Returns the "Hide key signature & show all accidentals" state, available in the Finale 2014 Score Man...
Definition: ff_other.h:9637
static const char * FFUUID_FLAMENCOGUITAR
Definition: ff_other.h:8113
static const char * FFUUID_APENTEMMA
Definition: ff_other.h:8521
Base class for all collection classes. A collection is a storage that can store multiple objects of s...
Definition: ff_basecollection.h:24
static const char * FFUUID_WINDSECTION
Definition: ff_other.h:7598
The class for an executable shape definition.
Definition: ff_other.h:20161
static const char * FFUUID_KAKKO
Definition: ff_other.h:8595
void SetVerticalEntryOffset(twobyte value)
Sets the vertical "Additional Entry Offset" value in the category definition.
Definition: ff_other.h:13416
Definition: ff_other.h:2885
Efix32 GetRoundedCornerRadius() const
Returns the corner radius (in EFIXes) for rounded corners on Finale 25.4 and above.
Definition: ff_other.h:3196
ePlaybackRoute GetInstrumentDefID() const
Returns the ID that maps to the FCInstrumentDef class.
Definition: ff_other.h:22927
void SetSolo(bool state)
Sets the "Solo" state of the layer.
Definition: ff_other.h:22978
void SetHorizontalOffset(twobyte value)
Sets the "Additional Horizontal Offset" in the text expression definition.
Definition: ff_other.h:14279
FCShapeDefInstruction * AddEndGroup()
Adds a LineWidth instruction, which closes the group that was started with AddStartGroup.
Definition: ff_other.h:1772
bool GetBreakWordExtension() const
Gets the "Break Word Extension" state.
Definition: ff_other.h:5002
FCTextRepeat::REPTARGETTRIGGERS GetTargetTrigger() const
Returns the target trigger for the ending repeat. This value also affects how the GetTargetMeasure() ...
Definition: ff_other.h:21343
void SetAttachToTopNote(bool state)
Sets the state of the "Attach to top note" setting.
Definition: ff_other.h:12441
bool AssignShapeDef(FCShapeDef *pShapeDef)
Assigns a saved FCShapeDef object to the shape expression definition.
Definition: ff_other.h:15001
void SetTransposeChromatic(bool state)
Sets the chromatic transposition status for the staff.
Definition: ff_other.h:10039
bool GetRoundedCorners() const
Returns if the text frame should use rounded corners.
Definition: ff_other.h:15391
bool GetShowPartStaffNames() const
Returns true if part staff names should be displayed for the staff.
Definition: ff_other.h:9356
static const char * FFUUID_HANDDRUM
Definition: ff_other.h:8583
bool IsEmpty()
Returns true if the string is empty.
Definition: ff_base.h:2461
void SetSecondStaff(CMPER value)
Sets the staff number of the second staff in the instrument group. Use with care! ...
Definition: ff_other.h:18652
bool GetExpressionFlag() const
Gets the flag that marks if a measure contains any expressions.
Definition: ff_other.h:4822
virtual bool DeepDeleteData()
Reimplemented method that deletes the enclosure and text string before deleting the data...
Definition: ff_other.h:19521
static const char * FFUUID_KANJIRA
Definition: ff_other.h:8597
__FCInciOther()
The constructor.
Definition: ff_other.h:69
virtual const PDKFRAMEWORK_CLASSID GetClassID()
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition: ff_other.h:12782
void SetExpressionFlag(bool state)
Sets the flag that marks if a measure contains any expressions.
Definition: ff_other.h:4416
static const char * FFUUID_QUENA
Definition: ff_other.h:7750
void SetBottomDuration(twobyte value)
Sets the Bottom Note Value for "Duration" change of playback.
Definition: ff_other.h:12512
FCStaff()
The constructor.
Definition: ff_other.h:11254
Efix32 GetHorizontalFretNumberOffset() const
Returns the horizontal text offset for fret number text, in EFIXes.
Definition: ff_other.h:20707
void SetAboveUsesMain(bool state)
Sets the state of the "When Placed Above a Note, Use the" setting.
Definition: ff_other.h:12338
virtual void DebugDump()
Outputs the class data/information for debugging purposes.
Definition: finaleframework.cpp:547
void SetFretNumberFontInfo(FCFontInfo *pFontInfo)
Copies the fret number font information fro a FCFontInfo object.
Definition: ff_other.h:21059
static const char * FFUUID_DJEMBE
Definition: ff_other.h:8507
static const char * FFUUID_DANTAMTHAPLUC
Definition: ff_other.h:8094
Efix32 GetFingeringWhiteout() const
Returns the whiteout for fingering numbers, in EFIXes.
Definition: ff_other.h:20675
bool AddBottomStaff()
Adds a "Bottom Staff" to the staff list.
Definition: ff_other.h:23693
static const char * FFUUID_CRASHCYMBAL
Definition: ff_other.h:8717
FCAllotment()
The constructor.
Definition: ff_other.h:18821
static const char * FFUUID_KONCOVKAALTOFLUTE
Definition: ff_other.h:7738
void SetEnigmaStyles(FLAG_16 fontstyles)
Sets the font style as standard Enigma bit storage.
Definition: ff_base.h:1261
virtual ~FCMeasure()
Destructor.
Definition: ff_other.h:4302
void Init_SetDash(int dashlength, int spacebetween)
Creates a st_setdash shape instruction.
Definition: ff_other.h:1606
static const char * FFUUID_JARANAMOSQUITO
Definition: ff_other.h:8142
void SetIncludeInNumbering(bool state)
Sets the "Include in numbering" setting.
Definition: ff_other.h:4617
void SetGroupID(eStaffGroup value)
Sets the staff group ID. Use with care!
Definition: ff_other.h:18665
static const char * FFUUID_GANGSAGAMELAN
Definition: ff_other.h:8408
static const char * FFUUID_MANDORA
Definition: ff_other.h:8174
void SetVerticalOffset2(Evpu16 value)
Sets the 2nd vertical offset, compared to the standard positioning.
Definition: ff_other.h:16472
void SetShowChords(bool value)
Sets if chords should be displayed for the staff.
Definition: ff_other.h:9853