1 /* 2 MusicXML Library 3 Copyright (C) Grame 2006-2013 4 5 This Source Code Form is subject to the terms of the Mozilla Public 6 License, v. 2.0. If a copy of the MPL was not distributed with this 7 file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 9 Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France 10 research@grame.fr 11 */ 12 13 #ifndef ___lilypondOah___ 14 #define ___lilypondOah___ 15 16 #include "oahBasicTypes.h" 17 18 19 namespace MusicXML2 20 { 21 22 //______________________________________________________________________________ 23 class lilypondScoreOutputKindAtom : public oahValuedAtom 24 { 25 public: 26 27 // creation 28 // ------------------------------------------------------ 29 30 static SMARTP<lilypondScoreOutputKindAtom> create ( 31 string shortName, 32 string longName, 33 string description, 34 string valueSpecification, 35 string variableName, 36 lpsrScoreOutputKind& lilypondScoreOutputKindVariable); 37 38 protected: 39 40 // constructors/destructor 41 // ------------------------------------------------------ 42 43 lilypondScoreOutputKindAtom ( 44 string shortName, 45 string longName, 46 string description, 47 string valueSpecification, 48 string variableName, 49 lpsrScoreOutputKind& lilypondScoreOutputKindVariable); 50 51 virtual ~lilypondScoreOutputKindAtom (); 52 53 public: 54 55 // set and get 56 // ------------------------------------------------------ 57 setScoreOutputKindVariableValue(lpsrScoreOutputKind value)58 void setScoreOutputKindVariableValue ( 59 lpsrScoreOutputKind value) 60 { fLpsrScoreOutputKindVariable = value; } 61 62 public: 63 64 // services 65 // ------------------------------------------------------ 66 67 S_oahValuedAtom handleOptionUnderName ( 68 string optionName, 69 ostream& os); 70 71 void handleValue ( 72 string theString, 73 ostream& os); 74 75 public: 76 77 // visitors 78 // ------------------------------------------------------ 79 80 virtual void acceptIn (basevisitor* v); 81 virtual void acceptOut (basevisitor* v); 82 83 virtual void browseData (basevisitor* v); 84 85 // print 86 // ------------------------------------------------------ 87 88 string asShortNamedOptionString () const; 89 string asActualLongNamedOptionString () const; 90 91 void print (ostream& os) const; 92 93 void printAtomOptionsValues ( 94 ostream& os, 95 int valueFieldWidth) const; 96 97 private: 98 99 // fields 100 // ------------------------------------------------------ 101 102 lpsrScoreOutputKind& fLpsrScoreOutputKindVariable; 103 }; 104 typedef SMARTP<lilypondScoreOutputKindAtom> S_lilypondScoreOutputKindAtom; 105 EXP ostream& operator<< (ostream& os, const S_lilypondScoreOutputKindAtom& elt); 106 107 //______________________________________________________________________________ 108 class lilypondAbsoluteOctaveEntryAtom : public oahAtomWithVariableName 109 { 110 public: 111 112 // creation 113 // ------------------------------------------------------ 114 115 static SMARTP<lilypondAbsoluteOctaveEntryAtom> create ( 116 string shortName, 117 string longName, 118 string description, 119 string variableName, 120 lpsrOctaveEntryKind& lpsrOctaveEntryKindVariable); 121 122 protected: 123 124 // constructors/destructor 125 // ------------------------------------------------------ 126 127 lilypondAbsoluteOctaveEntryAtom ( 128 string shortName, 129 string longName, 130 string description, 131 string variableName, 132 lpsrOctaveEntryKind& lpsrOctaveEntryKindVariable); 133 134 virtual ~lilypondAbsoluteOctaveEntryAtom (); 135 136 public: 137 138 // set and get 139 // ------------------------------------------------------ 140 141 public: 142 143 // services 144 // ------------------------------------------------------ 145 146 S_oahValuedAtom handleOptionUnderName ( 147 string optionName, 148 ostream& os); 149 150 public: 151 152 // visitors 153 // ------------------------------------------------------ 154 155 virtual void acceptIn (basevisitor* v); 156 virtual void acceptOut (basevisitor* v); 157 158 virtual void browseData (basevisitor* v); 159 160 public: 161 162 // print 163 // ------------------------------------------------------ 164 165 void print (ostream& os) const; 166 167 void printAtomOptionsValues ( 168 ostream& os, 169 int valueFieldWidth) const; 170 171 private: 172 173 // fields 174 // ------------------------------------------------------ 175 176 lpsrOctaveEntryKind& fLpsrOctaveEntryKindVariable; 177 }; 178 typedef SMARTP<lilypondAbsoluteOctaveEntryAtom> S_lilypondAbsoluteOctaveEntryAtom; 179 EXP ostream& operator<< (ostream& os, const S_lilypondAbsoluteOctaveEntryAtom& elt); 180 181 //______________________________________________________________________________ 182 class lilypondRelativeOctaveEntryAtom : public oahValuedAtom 183 { 184 public: 185 186 // creation 187 // ------------------------------------------------------ 188 189 static SMARTP<lilypondRelativeOctaveEntryAtom> create ( 190 string shortName, 191 string longName, 192 string description, 193 string valueSpecification, 194 string variableName, 195 lpsrOctaveEntryKind& lpsrOctaveEntryKindVariable, 196 S_msrSemiTonesPitchAndOctave& lilypondRelativeOctaveEntryVariable); 197 198 protected: 199 200 // constructors/destructor 201 // ------------------------------------------------------ 202 203 lilypondRelativeOctaveEntryAtom ( 204 string shortName, 205 string longName, 206 string description, 207 string valueSpecification, 208 string variableName, 209 lpsrOctaveEntryKind& lpsrOctaveEntryKindVariable, 210 S_msrSemiTonesPitchAndOctave& lilypondRelativeOctaveEntryVariable); 211 212 virtual ~lilypondRelativeOctaveEntryAtom (); 213 214 public: 215 216 // set and get 217 // ------------------------------------------------------ 218 setRelativeOctaveEntryVariableValue(S_msrSemiTonesPitchAndOctave value)219 void setRelativeOctaveEntryVariableValue ( 220 S_msrSemiTonesPitchAndOctave value) 221 { 222 fMsrSemiTonesPitchAndOctaveVariable = value; 223 } 224 225 public: 226 227 // services 228 // ------------------------------------------------------ 229 230 S_oahValuedAtom handleOptionUnderName ( 231 string optionName, 232 ostream& os); 233 234 void handleValue ( 235 string theString, 236 ostream& os); 237 238 public: 239 240 // visitors 241 // ------------------------------------------------------ 242 243 virtual void acceptIn (basevisitor* v); 244 virtual void acceptOut (basevisitor* v); 245 246 virtual void browseData (basevisitor* v); 247 248 public: 249 250 // print 251 // ------------------------------------------------------ 252 253 string asShortNamedOptionString () const; 254 string asActualLongNamedOptionString () const; 255 256 void print (ostream& os) const; 257 258 void printAtomOptionsValues ( 259 ostream& os, 260 int valueFieldWidth) const; 261 262 private: 263 264 // fields 265 // ------------------------------------------------------ 266 267 lpsrOctaveEntryKind& fLpsrOctaveEntryKindVariable; 268 269 S_msrSemiTonesPitchAndOctave& 270 fMsrSemiTonesPitchAndOctaveVariable; 271 }; 272 typedef SMARTP<lilypondRelativeOctaveEntryAtom> S_lilypondRelativeOctaveEntryAtom; 273 EXP ostream& operator<< (ostream& os, const S_lilypondRelativeOctaveEntryAtom& elt); 274 275 //______________________________________________________________________________ 276 class lilypondFixedOctaveEntryAtom : public oahValuedAtom 277 { 278 public: 279 280 // creation 281 // ------------------------------------------------------ 282 283 static SMARTP<lilypondFixedOctaveEntryAtom> create ( 284 string shortName, 285 string longName, 286 string description, 287 string valueSpecification, 288 string variableName, 289 lpsrOctaveEntryKind& lpsrOctaveEntryKindVariable, 290 S_msrSemiTonesPitchAndOctave& lilypondFixedOctaveEntryVariable); 291 292 protected: 293 294 // constructors/destructor 295 // ------------------------------------------------------ 296 297 lilypondFixedOctaveEntryAtom ( 298 string shortName, 299 string longName, 300 string description, 301 string valueSpecification, 302 string variableName, 303 lpsrOctaveEntryKind& lpsrOctaveEntryKindVariable, 304 S_msrSemiTonesPitchAndOctave& lilypondFixedOctaveEntryVariable); 305 306 virtual ~lilypondFixedOctaveEntryAtom (); 307 308 public: 309 310 // set and get 311 // ------------------------------------------------------ 312 setFixedOctaveEntryVariableValue(S_msrSemiTonesPitchAndOctave value)313 void setFixedOctaveEntryVariableValue ( 314 S_msrSemiTonesPitchAndOctave value) 315 { 316 fMsrSemiTonesPitchAndOctaveVariable = value; 317 } 318 319 public: 320 321 // services 322 // ------------------------------------------------------ 323 324 S_oahValuedAtom handleOptionUnderName ( 325 string optionName, 326 ostream& os); 327 328 void handleValue ( 329 string theString, 330 ostream& os); 331 332 public: 333 334 // visitors 335 // ------------------------------------------------------ 336 337 virtual void acceptIn (basevisitor* v); 338 virtual void acceptOut (basevisitor* v); 339 340 virtual void browseData (basevisitor* v); 341 342 public: 343 344 // print 345 // ------------------------------------------------------ 346 347 string asShortNamedOptionString () const; 348 string asActualLongNamedOptionString () const; 349 350 void print (ostream& os) const; 351 352 void printAtomOptionsValues ( 353 ostream& os, 354 int valueFieldWidth) const; 355 356 private: 357 358 // fields 359 // ------------------------------------------------------ 360 361 lpsrOctaveEntryKind& fLpsrOctaveEntryKindVariable; 362 363 S_msrSemiTonesPitchAndOctave& 364 fMsrSemiTonesPitchAndOctaveVariable; 365 }; 366 typedef SMARTP<lilypondFixedOctaveEntryAtom> S_lilypondFixedOctaveEntryAtom; 367 EXP ostream& operator<< (ostream& os, const S_lilypondFixedOctaveEntryAtom& elt); 368 369 //______________________________________________________________________________ 370 class lilypondAccidentalStyleKindAtom : public oahValuedAtom 371 { 372 public: 373 374 // creation 375 // ------------------------------------------------------ 376 377 static SMARTP<lilypondAccidentalStyleKindAtom> create ( 378 string shortName, 379 string longName, 380 string description, 381 string valueSpecification, 382 string variableName, 383 lpsrAccidentalStyleKind& 384 lilypondAccidentalStyleKindVariable); 385 386 protected: 387 388 // constructors/destructor 389 // ------------------------------------------------------ 390 391 lilypondAccidentalStyleKindAtom ( 392 string shortName, 393 string longName, 394 string description, 395 string valueSpecification, 396 string variableName, 397 lpsrAccidentalStyleKind& 398 lilypondAccidentalStyleKindVariable); 399 400 virtual ~lilypondAccidentalStyleKindAtom (); 401 402 public: 403 404 // set and get 405 // ------------------------------------------------------ 406 setLpsrAccidentalStyleKindVariable(lpsrAccidentalStyleKind value)407 void setLpsrAccidentalStyleKindVariable ( 408 lpsrAccidentalStyleKind value) 409 { 410 fLpsrAccidentalStyleKindVariable = value; 411 } 412 413 public: 414 415 // services 416 // ------------------------------------------------------ 417 418 S_oahValuedAtom handleOptionUnderName ( 419 string optionName, 420 ostream& os); 421 422 void handleValue ( 423 string theString, 424 ostream& os); 425 426 public: 427 428 // visitors 429 // ------------------------------------------------------ 430 431 virtual void acceptIn (basevisitor* v); 432 virtual void acceptOut (basevisitor* v); 433 434 virtual void browseData (basevisitor* v); 435 436 public: 437 438 // print 439 // ------------------------------------------------------ 440 441 string asShortNamedOptionString () const; 442 string asActualLongNamedOptionString () const; 443 444 void print (ostream& os) const; 445 446 void printAtomOptionsValues ( 447 ostream& os, 448 int valueFieldWidth) const; 449 450 private: 451 452 // fields 453 // ------------------------------------------------------ 454 455 lpsrAccidentalStyleKind& 456 fLpsrAccidentalStyleKindVariable; 457 }; 458 typedef SMARTP<lilypondAccidentalStyleKindAtom> S_lilypondAccidentalStyleKindAtom; 459 EXP ostream& operator<< (ostream& os, const S_lilypondAccidentalStyleKindAtom& elt); 460 461 //______________________________________________________________________________ 462 class lilypondChordsDisplayAtom : public oahValuedAtom 463 { 464 public: 465 466 // creation 467 // ------------------------------------------------------ 468 469 static SMARTP<lilypondChordsDisplayAtom> create ( 470 string shortName, 471 string longName, 472 string description, 473 string valueSpecification, 474 string variableName, 475 list<pair<string, string> >& 476 lilypondChordsDisplayVariable); 477 478 protected: 479 480 // constructors/destructor 481 // ------------------------------------------------------ 482 483 lilypondChordsDisplayAtom ( 484 string shortName, 485 string longName, 486 string description, 487 string valueSpecification, 488 string variableName, 489 list<pair<string, string> >& 490 lilypondChordsDisplayVariable); 491 492 virtual ~lilypondChordsDisplayAtom (); 493 494 public: 495 496 // set and get 497 // ------------------------------------------------------ 498 setStringsPairListVariable(pair<string,string> value)499 void setStringsPairListVariable ( 500 pair<string, string> value) 501 { 502 fStringsPairListVariable.push_back (value); 503 } 504 505 const list<pair<string, string> >& getStringsPairListVariable()506 getStringsPairListVariable () 507 { return fStringsPairListVariable; } 508 509 public: 510 511 // services 512 // ------------------------------------------------------ 513 514 S_oahValuedAtom handleOptionUnderName ( 515 string optionName, 516 ostream& os); 517 518 void handleValue ( 519 string theString, 520 ostream& os); 521 522 public: 523 524 // visitors 525 // ------------------------------------------------------ 526 527 string asShortNamedOptionString () const; 528 string asActualLongNamedOptionString () const; 529 530 virtual void acceptIn (basevisitor* v); 531 virtual void acceptOut (basevisitor* v); 532 533 virtual void browseData (basevisitor* v); 534 535 public: 536 537 // print 538 // ------------------------------------------------------ 539 540 void print (ostream& os) const; 541 542 void printAtomOptionsValues ( 543 ostream& os, 544 int valueFieldWidth) const; 545 546 private: 547 548 // fields 549 // ------------------------------------------------------ 550 551 list<pair<string, string> >& 552 fStringsPairListVariable; 553 }; 554 typedef SMARTP<lilypondChordsDisplayAtom> S_lilypondChordsDisplayAtom; 555 EXP ostream& operator<< (ostream& os, const S_lilypondChordsDisplayAtom& elt); 556 557 //______________________________________________________________________________ 558 class lilypondLyricsDurationsKindAtom : public oahValuedAtom 559 { 560 public: 561 562 // creation 563 // ------------------------------------------------------ 564 565 static SMARTP<lilypondLyricsDurationsKindAtom> create ( 566 string shortName, 567 string longName, 568 string description, 569 string valueSpecification, 570 string variableName, 571 lpsrLyricsDurationsKind& 572 lilypondLyricsDurationsKindVariable); 573 574 protected: 575 576 // constructors/destructor 577 // ------------------------------------------------------ 578 579 lilypondLyricsDurationsKindAtom ( 580 string shortName, 581 string longName, 582 string description, 583 string valueSpecification, 584 string variableName, 585 lpsrLyricsDurationsKind& 586 lilypondLyricsDurationsKindVariable); 587 588 virtual ~lilypondLyricsDurationsKindAtom (); 589 590 public: 591 592 // set and get 593 // ------------------------------------------------------ 594 setLpsrLyricsDurationsKindVariable(lpsrLyricsDurationsKind value)595 void setLpsrLyricsDurationsKindVariable ( 596 lpsrLyricsDurationsKind value) 597 { 598 fLpsrLyricsDurationsKindVariable = value; 599 } 600 601 public: 602 603 // services 604 // ------------------------------------------------------ 605 606 S_oahValuedAtom handleOptionUnderName ( 607 string optionName, 608 ostream& os); 609 610 void handleValue ( 611 string theString, 612 ostream& os); 613 614 public: 615 616 // visitors 617 // ------------------------------------------------------ 618 619 virtual void acceptIn (basevisitor* v); 620 virtual void acceptOut (basevisitor* v); 621 622 virtual void browseData (basevisitor* v); 623 624 public: 625 626 // print 627 // ------------------------------------------------------ 628 629 string asShortNamedOptionString () const; 630 string asActualLongNamedOptionString () const; 631 632 void print (ostream& os) const; 633 634 void printAtomOptionsValues ( 635 ostream& os, 636 int valueFieldWidth) const; 637 638 private: 639 640 // fields 641 // ------------------------------------------------------ 642 643 lpsrLyricsDurationsKind& 644 fLpsrLyricsDurationsKindVariable; 645 }; 646 typedef SMARTP<lilypondLyricsDurationsKindAtom> S_lilypondLyricsDurationsKindAtom; 647 EXP ostream& operator<< (ostream& os, const S_lilypondLyricsDurationsKindAtom& elt); 648 649 //______________________________________________________________________________ 650 class lilypondOah : public oahGroup 651 { 652 public: 653 654 // data types 655 // ------------------------------------------------------ 656 657 enum scoreNotationKind { 658 kWesternNotation, kJianpuNotation, kABCNotation }; 659 660 static string scoreNotationKindAsString ( 661 scoreNotationKind notationKind); 662 663 public: 664 665 // creation 666 // ------------------------------------------------------ 667 668 static SMARTP<lilypondOah> create ( 669 S_oahHandler handlerUpLink); 670 671 SMARTP<lilypondOah> createCloneWithDetailedTrace (); 672 673 public: 674 675 // initialisation 676 // ------------------------------------------------------ 677 678 void initializeLilypondOah ( 679 bool boolOptionsInitialValue); 680 681 public: 682 683 // constructors/destructor 684 // ------------------------------------------------------ 685 686 lilypondOah ( 687 S_oahHandler handlerUpLink); 688 689 virtual ~lilypondOah (); 690 691 // set and get 692 // ------------------------------------------------------ 693 694 // JMI bool setAccidentalStyleKind ( 695 // lpsrAccidentalStyleKind accidentalStyleKind); 696 697 bool setScoreOutputKind ( 698 string outputKind); 699 700 public: 701 702 // quiet mode 703 // ------------------------------------------------------ 704 705 void enforceQuietness (); 706 707 public: 708 709 // consistency check 710 // ------------------------------------------------------ 711 712 virtual void checkOptionsConsistency (); 713 714 public: 715 716 // public services 717 // ------------------------------------------------------ 718 719 private: 720 721 // private services 722 // ------------------------------------------------------ 723 724 void initializeIdentificationOptions ( 725 bool boolOptionsInitialValue); 726 727 void initializeEngraversOptions ( 728 bool boolOptionsInitialValue); 729 730 void initializeClefsKeysTimesOptions ( 731 bool boolOptionsInitialValue); 732 733 void initializeNotesOptions ( 734 bool boolOptionsInitialValue); 735 736 void initializeBarsOptions ( 737 bool boolOptionsInitialValue); 738 739 void initializeLineBreaksOptions ( 740 bool boolOptionsInitialValue); 741 742 void initializePageBreaksOptions ( 743 bool boolOptionsInitialValue); 744 745 void initializeStavesOptions ( 746 bool boolOptionsInitialValue); 747 748 void initializeChordsOptions ( 749 bool boolOptionsInitialValue); 750 751 void initializeTupletsOptions ( 752 bool boolOptionsInitialValue); 753 754 void initializeRepeatOptions ( 755 bool boolOptionsInitialValue); 756 757 void initializeOrnamentsOptions ( 758 bool boolOptionsInitialValue); 759 760 void initializeChordsDisplayOptions ( 761 bool boolOptionsInitialValue); 762 763 void initializeLyricsOptions ( 764 bool boolOptionsInitialValue); 765 766 void initializeFontsOptions ( 767 bool boolOptionsInitialValue); 768 769 void initializeCodeGenerationOptions ( 770 bool boolOptionsInitialValue); 771 772 void initializeScoreNotationOptions ( 773 bool boolOptionsInitialValue); 774 775 void initializeMidiOptions ( 776 bool boolOptionsInitialValue); 777 setOctaveEntryKindToAbsolute()778 void setOctaveEntryKindToAbsolute () // JMI ??? 779 { 780 fOctaveEntryKind = 781 kOctaveEntryAbsolute; 782 } 783 784 public: 785 786 // visitors 787 // ------------------------------------------------------ 788 789 virtual void acceptIn (basevisitor* v); 790 virtual void acceptOut (basevisitor* v); 791 792 virtual void browseData (basevisitor* v); 793 794 public: 795 796 // print 797 // ------------------------------------------------------ 798 799 void printLilypondOahHelp (); 800 801 void printLilypondOahValues (int fieldWidth); 802 803 virtual void printAtomOptionsValues ( 804 ostream& os, 805 int valueFieldWidth) const; 806 807 public: 808 809 // identification 810 // -------------------------------------- 811 812 // MusicXML informations 813 string fRights; 814 string fComposer; 815 string fArranger; 816 string fPoet; 817 string fLyricist; 818 string fSoftware; 819 820 // LilyPond informations 821 string fDedication; 822 string fPiece; 823 string fOpus; 824 string fTitle; 825 string fSubTitle; 826 string fSubSubTitle; 827 string fInstrument; 828 string fMeter; 829 string fTagline; 830 string fCopyright; 831 832 833 // names 834 // -------------------------------------- 835 836 837 // engravers 838 // -------------------------------------- 839 840 bool fAmbitusEngraver; 841 bool fCustosEngraver; 842 843 844 // clefs, keys, times 845 // -------------------------------------- 846 847 bool fCommentClefChanges; 848 849 bool fNumericalTime; 850 851 // notes 852 // -------------------------------------- 853 854 lpsrOctaveEntryKind fOctaveEntryKind; 855 856 // this is relevant only for relative octave entry kinds 857 S_msrSemiTonesPitchAndOctave 858 fRelativeOctaveEntrySemiTonesPitchAndOctave; 859 // this is relevant only for fixed octave entry kinds 860 S_msrSemiTonesPitchAndOctave 861 fFixedOctaveEntrySemiTonesPitchAndOctave; 862 863 S_msrSemiTonesPitchAndOctave 864 fSemiTonesPitchAndOctaveDefaultValue; 865 866 867 bool fAllDurations; 868 869 bool fStems; 870 871 bool fNoAutoBeaming; 872 bool fNoBeams; 873 874 bool fRomanStringNumbers; 875 bool fAvoidOpenStrings; 876 877 lpsrAccidentalStyleKind 878 fAccidentalStyleKind; 879 880 bool fCompressFullMeasureRests; 881 882 bool fInputLineNumbers; 883 bool fOriginalMeasureNumbers; 884 bool fPositionsInMeasures; 885 886 887 // bars and measures 888 // -------------------------------------- 889 890 bool fShowAllBarNumbers; 891 892 map<string, int> fResetMeasureElementMeasureNumberMap; 893 map<string, int> fAddEmptyMeasuresAfterMeasureNumberMap; 894 895 set<int> fBoxAroundBarNumberSet; 896 897 898 // line breaks 899 // -------------------------------------- 900 901 bool fIgnoreMusicXMLLineBreaks; 902 903 bool fBreakLinesAtIncompleteRightMeasures; 904 905 int fSeparatorLineEveryNMeasures; 906 907 set<string> fBreakLineAfterMeasureNumberSet; 908 909 // page breaks 910 // -------------------------------------- 911 912 bool fIgnoreMusicXMLPageBreaks; 913 914 set<string> fBreakPageAfterMeasureNumberSet; 915 916 917 // staves 918 // -------------------------------------- 919 920 bool fModernTab; 921 bool fTabFullNotation; 922 923 bool fKeepStaffSize; 924 925 msrRGBColor fLedgerLinesRGBColor; // #(rgb-color 1.0 0.9 0.5) 926 bool fLedgerLinesRGBColorHasBeenSet; 927 928 // chords 929 // -------------------------------------- 930 931 bool fConnectArpeggios; 932 933 934 // tuplets 935 // -------------------------------------- 936 937 bool fIndentTuplets; 938 939 940 // repeats 941 // -------------------------------------- 942 943 bool fKeepRepeatBarlines; // otherwise let LilyPond do the job 944 bool fRepeatBrackets; 945 bool fIgnoreRepeatNumbers; // and let LilyPond do the job 946 947 948 // ornaments 949 // -------------------------------------- 950 951 rational fDelayedOrnamentsFraction; 952 953 954 // chords display 955 // -------------------------------------- 956 957 list<pair<string, string> > 958 fChordsDisplayList; 959 bool fJazzChordsDisplay; 960 string fJazzChordsDisplayLilypondcode; 961 962 963 // fonts 964 // -------------------------------------- 965 966 bool fJazzFonts; 967 968 969 // code generation 970 // -------------------------------------- 971 972 bool fXml2lyInfos; 973 974 bool fComments; 975 976 bool fGlobal; 977 978 bool fDisplayMusic; 979 980 bool fNoLilypondCode; 981 982 bool fNoLilypondLyrics; 983 984 bool fLilypondCompileDate; 985 986 bool fPointAndClickOff; 987 988 bool fDraftMode; 989 990 bool fWhiteNoteHeads; 991 992 993 // score notation 994 // -------------------------------------- 995 996 // scoreNotationKind fScoreNotationKind; JMI ??? 997 bool fJianpu; 998 999 1000 // lyrics alignment 1001 // -------------------------------------- 1002 1003 lpsrLyricsDurationsKind 1004 fLyricsDurationsKind; 1005 1006 // midi 1007 // -------------------------------------- 1008 1009 msrMidiTempo fMidiTempo; 1010 1011 bool fNoMidi; 1012 }; 1013 typedef SMARTP<lilypondOah> S_lilypondOah; 1014 EXP ostream& operator<< (ostream& os, const S_lilypondOah& elt); 1015 1016 EXP extern S_lilypondOah gLilypondOah; 1017 EXP extern S_lilypondOah gLilypondOahUserChoices; 1018 EXP extern S_lilypondOah gLilypondOahWithDetailedTrace; 1019 1020 // JMI typedef void (lilypondOah::*lilypondOahMethodPtr)(); //MyTypedef is a type! 1021 1022 /* 1023 It's worth noting that, as of C++11, you could write this expression 1024 as a more legible using statement: 1025 using lilypondOahMethodPtr = void (lilypondOah::*)(); 1026 */ 1027 1028 //______________________________________________________________________________ 1029 void initializeLilypondOahHandling ( 1030 S_oahHandler handler); 1031 1032 1033 } 1034 1035 1036 #endif 1037 1038 /* JMI ??? 1039 workNumber 1040 workTitle 1041 movementNumber, 1042 movementTitle, 1043 scoreInstrument 1044 miscellaneousField 1045 1046 partGroupName 1047 partGroupNameDisplayText 1048 partGroupAbbrevation 1049 partGroupInstrumentName 1050 1051 partID 1052 partMsrName 1053 partName 1054 partAbbrevation 1055 partInstrumentName 1056 partInstrumentAbbreviation 1057 1058 staffInstrumentName 1059 staffInstrumentAbbreviation 1060 1061 pickDedication 1062 pickTitle 1063 pickSubTitle 1064 pickSubSubTitle 1065 1066 pickInstrument 1067 1068 pickTagline 1069 pickCopyright 1070 */ 1071 1072 1073 /* JMI 1074 //______________________________________________________________________________ 1075 class lilypondBreakPageAfterMeasureNumberAtom : public oahValuedAtom 1076 { 1077 public: 1078 1079 // creation 1080 // ------------------------------------------------------ 1081 1082 static SMARTP<lilypondBreakPageAfterMeasureNumberAtom> create ( 1083 string shortName, 1084 string longName, 1085 string description, 1086 string valueSpecification, 1087 string variableName, 1088 set<string>& S_lilypondAbsoluteOctaveEntryAtomtringSetVariable); 1089 1090 protected: 1091 1092 // constructors/destructor 1093 // ------------------------------------------------------ 1094 1095 lilypondBreakPageAfterMeasureNumberAtom ( 1096 string shortName, 1097 string longName, 1098 string description, 1099 string valueSpecification, 1100 string variableName, 1101 set<string>& fStringSetVariable); 1102 1103 virtual ~lilypondBreakPageAfterMeasureNumberAtom (); 1104 1105 public: 1106 1107 // set and get 1108 // ------------------------------------------------------ 1109 1110 const set<string>& getStringSetVariable () 1111 { return fStringSetVariable; } 1112 1113 // services 1114 // ------------------------------------------------------ 1115 1116 S_oahValuedAtom handleOptionUnderName ( 1117 string optionName, 1118 ostream& os); 1119 1120 void handleValue ( 1121 string theString, 1122 ostream& os); 1123 1124 // print 1125 // ------------------------------------------------------ 1126 1127 void print (ostream& os) const; 1128 1129 void printAtomOptionsValues ( 1130 ostream& os, 1131 int valueFieldWidth) const; 1132 1133 private: 1134 1135 // fields 1136 // ------------------------------------------------------ 1137 1138 set<string>& fStringSetVariable; 1139 }; 1140 typedef SMARTP<lilypondBreakPageAfterMeasureNumberAtom> S_lilypondBreakPageAfterMeasureNumberAtom; 1141 EXP ostream& operator<< (ostream& os, const S_lilypondBreakPageAfterMeasureNumberAtom& elt); 1142 */ 1143 1144 /* 1145 enum { 1146 workNumber 1147 workTitle 1148 movementNumber, 1149 movementTitle, 1150 scoreInstrument 1151 miscellaneousField 1152 1153 partGroupName 1154 partGroupNameDisplayText 1155 partGroupAbbrevation 1156 partGroupInstrumentName 1157 1158 partID 1159 partMsrName 1160 partName 1161 partAbbrevation 1162 partInstrumentName 1163 partInstrumentAbbreviation 1164 1165 staffInstrumentName 1166 staffInstrumentAbbreviation 1167 }; 1168 */ 1169 1170