Verovio
Source code documentation
options.h
1 // Name: options.h
3 // Author: Laurent Pugin
4 // Created: 2005
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_OPTIONS_H__
9 #define __VRV_OPTIONS_H__
10 
11 #ifdef CUSTOM_VEROVIO_OPTIONS
12 #include "custom_options.h"
13 #else
14 
15 #include <map>
16 #include <string>
17 #include <vector>
18 
19 //----------------------------------------------------------------------------
20 
21 #include "attalternates.h"
22 #include "atttypes.h"
23 #include "smufl.h"
24 #include "toolkitdef.h"
25 #include "vrvdef.h"
26 
27 //----------------------------------------------------------------------------
28 
29 #include "jsonxx.h"
30 
31 //----------------------------------------------------------------------------
32 
33 namespace vrv {
34 
35 class OptionGrp;
36 
37 //----------------------------------------------------------------------------
38 // Default scaling (%) and spacing (units) values
39 //----------------------------------------------------------------------------
40 
41 #define DEFAULT_SCALE 100
42 #define MIN_SCALE 1
43 #define MAX_SCALE 1000
44 
45 //----------------------------------------------------------------------------
46 // Options
47 //----------------------------------------------------------------------------
48 
49 // the space between each lyric line in units
50 #define TEMP_LYRIC_LINE_SPACE 5.0
51 // the key signature spacing factor
52 #define TEMP_KEYSIG_STEP 0.4
53 // the key signature spacing factor for natural (usually slighly larger)
54 #define TEMP_KEYSIG_NATURAL_STEP 0.6
55 
56 //----------------------------------------------------------------------------
57 // Option defines
58 //----------------------------------------------------------------------------
59 
60 enum option_BREAKS { BREAKS_none = 0, BREAKS_auto, BREAKS_line, BREAKS_smart, BREAKS_encoded };
61 
62 enum option_CONDENSE { CONDENSE_none = 0, CONDENSE_auto, CONDENSE_all, CONDENSE_encoded };
63 
64 enum option_DURATION_EQ { DURATION_EQ_brevis = 0, DURATION_EQ_semibrevis, DURATION_EQ_minima };
65 
66 enum option_ELISION {
67  ELISION_regular = SMUFL_E551_lyricsElision,
68  ELISION_narrow = SMUFL_E550_lyricsElisionNarrow,
69  ELISION_wide = SMUFL_E552_lyricsElisionWide,
70  ELISION_unicode = UNICODE_UNDERTIE
71 };
72 
73 enum option_FONT_FALLBACK { FONT_FALLBACK_Leipzig = 0, FONT_FALLBACK_Bravura };
74 
75 enum option_FOOTER { FOOTER_none = 0, FOOTER_auto, FOOTER_encoded, FOOTER_always };
76 
77 enum option_HEADER { HEADER_none = 0, HEADER_auto, HEADER_encoded };
78 
79 enum option_LIGATURE_OBL { LIGATURE_OBL_auto = 0, LIGATURE_OBL_straight, LIGATURE_OBL_curved };
80 
81 enum option_MULTIRESTSTYLE {
82  MULTIRESTSTYLE_auto = 0,
83  MULTIRESTSTYLE_default,
84  MULTIRESTSTYLE_block,
85  MULTIRESTSTYLE_symbols
86 };
87 
88 enum option_SYSTEMDIVIDER { SYSTEMDIVIDER_none = 0, SYSTEMDIVIDER_auto, SYSTEMDIVIDER_left, SYSTEMDIVIDER_left_right };
89 
90 enum option_SMUFLTEXTFONT { SMUFLTEXTFONT_embedded = 0, SMUFLTEXTFONT_linked, SMUFLTEXTFONT_none };
91 
92 //----------------------------------------------------------------------------
93 // Option
94 //----------------------------------------------------------------------------
95 
96 enum class OptionsCategory { None, Base, General, Json, Layout, Mensural, Margins, Midi, Selectors, Full };
97 
101 class Option {
102 public:
103  // constructors and destructors
104  Option()
105  {
106  m_shortOption = 0;
107  m_isCmdOnly = false;
108  }
109  virtual ~Option() {}
110  virtual void CopyTo(Option *option) = 0;
111 
112  void SetKey(const std::string &key) { m_key = key; }
113  std::string GetKey() const { return m_key; }
114 
115  virtual bool SetValueBool(bool value);
116  virtual bool SetValueDbl(double value);
117  virtual bool SetValueArray(const std::vector<std::string> &values);
118  virtual bool SetValue(const std::string &value);
119  virtual std::string GetStrValue() const = 0;
120  virtual std::string GetDefaultStrValue() const = 0;
121 
122  virtual void Reset() = 0;
123  virtual bool IsSet() const = 0;
124 
125  void SetInfo(const std::string &title, const std::string &description);
126  std::string GetTitle() const { return m_title; }
127  std::string GetDescription() const { return m_description; }
128 
129  void SetShortOption(char shortOption, bool isCmdOnly);
130  char GetShortOption() const { return m_shortOption; }
131  bool IsCmdOnly() const { return m_isCmdOnly; }
132  virtual bool IsArgumentRequired() const { return true; }
133 
137  jsonxx::Object ToJson() const;
138 
139 public:
140  //----------------//
141  // Static members //
142  //----------------//
143 
147  static const std::map<int, std::string> s_breaks;
148  static const std::map<int, std::string> s_condense;
149  static const std::map<int, std::string> s_durationEq;
150  static const std::map<int, std::string> s_elision;
151  static const std::map<int, std::string> s_fontFallback;
152  static const std::map<int, std::string> s_footer;
153  static const std::map<int, std::string> s_header;
154  static const std::map<int, std::string> s_ligatureOblique;
155  static const std::map<int, std::string> s_multiRestStyle;
156  static const std::map<int, std::string> s_pedalStyle;
157  static const std::map<int, std::string> s_systemDivider;
158  static const std::map<int, std::string> s_smuflTextFont;
159 
160 protected:
161  std::string m_title;
162  std::string m_description;
163 
164 private:
165  std::string m_key;
166  /* the character for a short option - not set (0) by default) */
167  char m_shortOption;
168  /* a flag indicating that the option is available only on the command line */
169  bool m_isCmdOnly;
170 };
171 
172 //----------------------------------------------------------------------------
173 // OptionBool
174 //----------------------------------------------------------------------------
175 
179 class OptionBool : public Option {
180 public:
181  // constructors and destructors
182  OptionBool() { m_defaultValue = false; }
183  virtual ~OptionBool() {}
184  void CopyTo(Option *option) override;
185  void Init(bool defaultValue);
186 
187  bool SetValueBool(bool value) override;
188  bool SetValueDbl(double value) override;
189  bool SetValue(const std::string &value) override;
190  std::string GetStrValue() const override;
191  std::string GetDefaultStrValue() const override;
192 
193  void Reset() override;
194  bool IsSet() const override;
195 
196  bool GetValue() const { return m_value; }
197  bool GetDefault() const { return m_defaultValue; }
198  bool SetValue(bool value);
199 
200  bool IsArgumentRequired() const override { return false; }
201 
202 private:
203  //
204 public:
205  //
206 private:
207  bool m_value;
208  bool m_defaultValue;
209 };
210 
211 //----------------------------------------------------------------------------
212 // OptionDbl
213 //----------------------------------------------------------------------------
214 
218 class OptionDbl : public Option {
219 public:
220  // constructors and destructors
221  OptionDbl()
222  {
223  m_defaultValue = 0.0;
224  m_minValue = 0.0;
225  m_maxValue = 0.0;
226  m_definitionFactor = false;
227  }
228  virtual ~OptionDbl() {}
229  void CopyTo(Option *option) override;
230  void Init(double defaultValue, double minValue, double maxValue, bool definitionFactor = false);
231 
232  bool SetValueDbl(double value) override;
233  bool SetValue(const std::string &value) override;
234  std::string GetStrValue() const override;
235  std::string GetDefaultStrValue() const override;
236 
237  void Reset() override;
238  bool IsSet() const override;
239 
240  double GetValue() const;
241  double GetUnfactoredValue() const;
242  double GetDefault() const { return m_defaultValue; }
243  double GetMin() const { return m_minValue; }
244  double GetMax() const { return m_maxValue; }
245  bool SetValue(double value);
246 
247 private:
248  //
249 public:
250  //
251 private:
252  double m_value;
253  double m_defaultValue;
254  double m_minValue;
255  double m_maxValue;
256  bool m_definitionFactor;
257 };
258 
259 //----------------------------------------------------------------------------
260 // OptionInt
261 //----------------------------------------------------------------------------
262 
266 class OptionInt : public Option {
267 public:
268  // constructors and destructors
269  OptionInt()
270  {
271  m_defaultValue = 0;
272  m_minValue = 0;
273  m_maxValue = 0;
274  m_definitionFactor = false;
275  }
276  virtual ~OptionInt() {}
277  void CopyTo(Option *option) override;
278  void Init(int defaultValue, int minValue, int maxValue, bool definitionFactor = false);
279 
280  bool SetValueDbl(double value) override;
281  bool SetValue(const std::string &value) override;
282  std::string GetStrValue() const override;
283  std::string GetDefaultStrValue() const override;
284 
285  void Reset() override;
286  bool IsSet() const override;
287 
288  int GetValue() const;
289  int GetUnfactoredValue() const;
290  int GetDefault() const { return m_defaultValue; }
291  int GetMin() const { return m_minValue; }
292  int GetMax() const { return m_maxValue; }
293  bool SetValue(int value);
294 
295 private:
296  //
297 public:
298  //
299 private:
300  int m_value;
301  int m_defaultValue;
302  int m_minValue;
303  int m_maxValue;
304  bool m_definitionFactor;
305 };
306 
307 //----------------------------------------------------------------------------
308 // OptionString
309 //----------------------------------------------------------------------------
310 
314 class OptionString : public Option {
315 public:
316  // constructors and destructors
317  OptionString() {}
318  virtual ~OptionString() {}
319  void CopyTo(Option *option) override;
320  void Init(const std::string &defaultValue);
321 
322  bool SetValue(const std::string &value) override;
323  std::string GetStrValue() const override { return m_value; }
324  std::string GetDefaultStrValue() const override { return m_defaultValue; }
325 
326  std::string GetValue() const { return m_value; }
327  std::string GetDefault() const { return m_defaultValue; }
328 
329  void Reset() override;
330  bool IsSet() const override;
331 
332 private:
333  //
334 public:
335  //
336 private:
337  std::string m_value;
338  std::string m_defaultValue;
339 };
340 
341 //----------------------------------------------------------------------------
342 // OptionArray
343 //----------------------------------------------------------------------------
344 
348 class OptionArray : public Option {
349 public:
350  // constructors and destructors
351  OptionArray() {}
352  virtual ~OptionArray() {}
353  void CopyTo(Option *option) override;
354  void Init();
355 
356  bool SetValueArray(const std::vector<std::string> &values) override;
357  bool SetValue(const std::string &value) override;
358  std::string GetStrValue() const override;
359  std::string GetDefaultStrValue() const override;
360 
361  std::vector<std::string> GetValue() const { return m_values; }
362  std::vector<std::string> GetDefault() const { return m_defaultValues; }
363  bool SetValue(std::vector<std::string> const &values);
364 
365  void Reset() override;
366  bool IsSet() const override;
367 
368 private:
369  std::string GetStr(const std::vector<std::string> &values) const;
370 
371 public:
372  //
373 private:
374  std::vector<std::string> m_values;
375  std::vector<std::string> m_defaultValues;
376 };
377 
378 //----------------------------------------------------------------------------
379 // OptionIntMap
380 //----------------------------------------------------------------------------
381 
385 class OptionIntMap : public Option {
386 public:
387  // constructors and destructors
388  OptionIntMap();
389  virtual ~OptionIntMap() {}
390  void CopyTo(Option *option) override;
391  void Init(int defaultValue, const std::map<int, std::string> *values);
392 
393  bool SetValue(const std::string &value) override;
394  std::string GetStrValue() const override;
395  std::string GetDefaultStrValue() const override;
396 
397  int GetValue() const { return m_value; }
398  int GetDefault() const { return m_defaultValue; }
399  bool SetValue(int value);
400 
401  std::vector<std::string> GetStrValues(bool withoutDefault) const;
402  std::string GetStrValuesAsStr(bool withoutDefault) const;
403 
404  void Reset() override;
405  bool IsSet() const override;
406 
407 private:
408  //
409 public:
410  //
411 private:
412  const std::map<int, std::string> *m_values;
413  int m_value;
414  int m_defaultValue;
415 };
416 
417 //----------------------------------------------------------------------------
418 // OptionStaffrel
419 //----------------------------------------------------------------------------
420 
424 class OptionStaffrel : public Option {
425 public:
426  // constructors and destructors
427  OptionStaffrel() {}
428  virtual ~OptionStaffrel() {}
429  void CopyTo(Option *option) override;
430  // Alternate type style cannot have a restricted list of possible values
431  void Init(data_STAFFREL defaultValue);
432 
433  bool SetValue(const std::string &value) override;
434  std::string GetStrValue() const override;
435  std::string GetDefaultStrValue() const override;
436 
437  void Reset() override;
438  bool IsSet() const override;
439 
440  // For alternate types return a reference to the value
441  // Alternatively we can have a values vector for each sub-type
442  const data_STAFFREL *GetValueAlternate() const { return &m_value; }
443  const data_STAFFREL *GetDefaultAlernate() const { return &m_defaultValue; }
444 
445 private:
446  //
447 public:
448  //
449 private:
450  data_STAFFREL m_value;
451  data_STAFFREL m_defaultValue;
452 };
453 
454 //----------------------------------------------------------------------------
455 // OptionJson
456 //----------------------------------------------------------------------------
457 
459 enum class JsonSource { String, FilePath };
460 
465 class OptionJson : public Option {
466  using JsonPath = std::vector<std::reference_wrapper<jsonxx::Value>>;
467 
468 public:
473  OptionJson() = default;
474  virtual ~OptionJson() = default;
475  void CopyTo(Option *option) override;
476  void Init(JsonSource source, const std::string &defaultValue);
478 
482  JsonSource GetSource() const;
483  jsonxx::Object GetValue(bool getDefault = false) const;
484 
489  bool SetValue(const std::string &value) override;
490  std::string GetStrValue() const override;
491  std::string GetDefaultStrValue() const override;
492 
493  void Reset() override;
494  bool IsSet() const override;
496 
501  bool HasValue(const std::vector<std::string> &jsonNodePath) const;
502  int GetIntValue(const std::vector<std::string> &jsonNodePath, bool getDefault = false) const;
503  double GetDblValue(const std::vector<std::string> &jsonNodePath, bool getDefault = false) const;
504  std::string GetStrValue(const std::vector<std::string> &jsonNodePath, bool getDefault = false) const;
505  bool UpdateNodeValue(const std::vector<std::string> &jsonNodePath, const std::string &value);
507 
512  std::set<std::string> GetKeys() const;
513  std::set<std::string> GetKeysByNode(const std::string &nodeName, std::list<std::string> &jsonNodePath) const;
515 
516 protected:
517  JsonPath StringPath2NodePath(const jsonxx::Object &obj, const std::vector<std::string> &jsonNodePath) const;
518 
519  // Find node by recursively processing all elements within. Only nodes of OBJECT_ type are processed
520  const jsonxx::Object *FindNodeByName(
521  const jsonxx::Object &obj, const std::string &jsonNodeName, std::list<std::string> &jsonNodePath) const;
522 
524  bool ReadJson(jsonxx::Object &output, const std::string &input) const;
525 
526 private:
527  JsonSource m_source = JsonSource::String;
528 
529  jsonxx::Object m_values;
530  jsonxx::Object m_defaultValues;
531 };
532 
533 //----------------------------------------------------------------------------
534 // OptionGrp
535 //----------------------------------------------------------------------------
536 
540 class OptionGrp {
541 public:
542  // constructors and destructors
543  OptionGrp() {}
544  virtual ~OptionGrp() {}
545 
546  void SetLabel(const std::string &label, const std::string &id)
547  {
548  m_label = label;
549  m_id = id;
550  }
551  std::string GetLabel() const { return m_label; }
552  std::string GetId() const { return m_id; }
553 
554  void SetCategory(OptionsCategory category) { m_category = category; }
555  OptionsCategory GetCategory() const { return m_category; }
556 
557  void AddOption(Option *option) { m_options.push_back(option); }
558 
559  const std::vector<Option *> *GetOptions() const { return &m_options; }
560 
561 public:
562  //
563 protected:
564  std::string m_id;
565  std::string m_label;
566  std::vector<Option *> m_options;
567  OptionsCategory m_category = OptionsCategory::None;
568 };
569 
570 //----------------------------------------------------------------------------
571 // Options
572 //----------------------------------------------------------------------------
573 
577 class Options {
578 public:
579  // constructors and destructors
580  Options();
581  virtual ~Options();
582 
583  Options(const Options &options);
584  Options &operator=(const Options &options);
585 
586  bool SetInputFrom(std::string const &inputFrom);
587  bool SetOutputTo(std::string const &outputTo);
588  FileFormat GetInputFrom() const { return m_inputFromFormat; }
589  FileFormat GetOutputTo() const { return m_outputToFormat; }
590 
591  const MapOfStrOptions *GetItems() const { return &m_items; }
592 
593  const std::vector<OptionGrp *> *GetGrps() const { return &m_grps; }
594 
595  jsonxx::Object GetBaseOptGrp();
596 
597  const std::vector<Option *> *GetBaseOptions() const;
598 
599  // post processing of parameters
600  void Sync();
601 
602 private:
603  void Register(Option *option, const std::string &key, OptionGrp *grp);
604 
605 public:
610 
611  // These options are only given for documentation - except for m_scale
612  // They are ordered by short option alphabetical order
613  OptionBool m_standardOutput;
614  OptionString m_help;
615  OptionBool m_allPages;
616  OptionString m_inputFrom;
617  OptionString m_logLevel;
618  OptionString m_outfile;
619  OptionInt m_page;
620  OptionString m_resourcePath;
621  OptionInt m_scale;
622  OptionString m_outputTo;
623  OptionBool m_version;
624  OptionInt m_xmlIdSeed;
625 
626  FileFormat m_inputFromFormat;
627  FileFormat m_outputToFormat;
628 
633 
634  OptionBool m_adjustPageHeight;
635  OptionBool m_adjustPageWidth;
636  OptionIntMap m_breaks;
637  OptionDbl m_breaksSmartSb;
638  OptionIntMap m_condense;
639  OptionBool m_condenseFirstPage;
640  OptionBool m_condenseNotLastSystem;
641  OptionBool m_condenseTempoPages;
642  OptionBool m_evenNoteSpacing;
643  OptionIntMap m_footer;
644  OptionIntMap m_header;
645  OptionBool m_humType;
646  OptionBool m_incip;
647  OptionBool m_justifyVertically;
648  OptionBool m_landscape;
649  OptionDbl m_minLastJustification;
650  OptionBool m_mmOutput;
651  OptionBool m_moveScoreDefinitionToStaff;
652  OptionBool m_neumeAsNote;
653  OptionBool m_noJustification;
654  OptionBool m_openControlEvents;
655  OptionBool m_outputFormatRaw;
656  OptionInt m_outputIndent;
657  OptionBool m_outputIndentTab;
658  OptionBool m_outputSmuflXmlEntities;
659  OptionInt m_pageHeight;
660  OptionInt m_pageMarginBottom;
661  OptionInt m_pageMarginLeft;
662  OptionInt m_pageMarginRight;
663  OptionInt m_pageMarginTop;
664  OptionInt m_pageWidth;
665  OptionIntMap m_pedalStyle;
666  OptionBool m_preserveAnalyticalMarkup;
667  OptionBool m_removeIds;
668  OptionBool m_scaleToPageSize;
669  OptionBool m_setLocale;
670  OptionBool m_showRuntime;
671  OptionBool m_shrinkToFit;
672  OptionIntMap m_smuflTextFont;
673  OptionBool m_staccatoCenter;
674  OptionBool m_svgBoundingBoxes;
675  OptionBool m_svgContentBoundingBoxes;
676  OptionString m_svgCss;
677  OptionBool m_svgViewBox;
678  OptionBool m_svgHtml5;
679  OptionBool m_svgFormatRaw;
680  OptionBool m_svgRemoveXlink;
681  OptionArray m_svgAdditionalAttribute;
682  OptionDbl m_unit;
683  OptionBool m_useFacsimile;
684  OptionBool m_usePgFooterForAll;
685  OptionBool m_usePgHeaderForAll;
686  OptionBool m_useBraceGlyph;
687  OptionBool m_xmlIdChecksum;
688 
693 
694  OptionDbl m_barLineSeparation;
695  OptionDbl m_barLineWidth;
696  OptionBool m_beamFrenchStyle;
697  OptionInt m_beamMaxSlope;
698  OptionBool m_beamMixedPreserve;
699  OptionDbl m_beamMixedStemMin;
700  OptionDbl m_bracketThickness;
701  OptionBool m_breaksNoWidow;
702  OptionDbl m_dashedBarLineDashLength;
703  OptionDbl m_dashedBarLineGapLength;
704  OptionDbl m_dynamDist;
705  OptionBool m_dynamSingleGlyphs;
706  OptionJson m_engravingDefaults;
707  OptionJson m_engravingDefaultsFile;
708  OptionDbl m_extenderLineMinSpace;
709  OptionDbl m_fingeringScale;
710  OptionString m_font;
711  OptionArray m_fontAddCustom;
712  OptionIntMap m_fontFallback;
713  OptionBool m_fontLoadAll;
714  OptionBool m_fontTextLiberation;
715  OptionDbl m_graceFactor;
716  OptionBool m_graceRhythmAlign;
717  OptionBool m_graceRightAlign;
718  OptionDbl m_hairpinSize;
719  OptionDbl m_hairpinThickness;
720  OptionArray m_handwrittenFont;
721  OptionDbl m_harmDist;
722  OptionDbl m_justificationBraceGroup;
723  OptionDbl m_justificationBracketGroup;
724  OptionDbl m_justificationStaff;
725  OptionDbl m_justificationSystem;
726  OptionDbl m_justificationMaxVertical;
727  OptionDbl m_ledgerLineThickness;
728  OptionDbl m_ledgerLineExtension;
729  OptionIntMap m_lyricElision;
730  OptionDbl m_lyricHeightFactor;
731  OptionDbl m_lyricLineThickness;
732  OptionBool m_lyricNoStartHyphen;
733  OptionDbl m_lyricSize;
734  OptionDbl m_lyricTopMinMargin;
735  OptionBool m_lyricVerseCollapse;
736  OptionDbl m_lyricWordSpace;
737  OptionInt m_measureMinWidth;
738  OptionInt m_mnumInterval;
739  OptionIntMap m_multiRestStyle;
740  OptionDbl m_multiRestThickness;
741  OptionBool m_octaveAlternativeSymbols;
742  OptionDbl m_octaveLineThickness;
743  OptionBool m_octaveNoSpanningParentheses;
744  OptionDbl m_ossiaStaffSize;
745  OptionDbl m_pedalLineThickness;
746  OptionDbl m_repeatBarLineDotSeparation;
747  OptionDbl m_repeatEndingLineThickness;
748  OptionDbl m_slurCurveFactor;
749  OptionDbl m_slurEndpointFlexibility;
750  OptionDbl m_slurEndpointThickness;
751  OptionDbl m_slurMargin;
752  OptionInt m_slurMaxSlope;
753  OptionDbl m_slurMidpointThickness;
754  OptionDbl m_slurSymmetry;
755  OptionInt m_spacingBraceGroup;
756  OptionInt m_spacingBracketGroup;
757  OptionBool m_spacingDurDetection;
758  OptionDbl m_spacingLinear;
759  OptionDbl m_spacingNonLinear;
760  OptionDbl m_spacingOssia;
761  OptionInt m_spacingStaff;
762  OptionInt m_spacingSystem;
763  OptionDbl m_staffLineWidth;
764  OptionDbl m_stemWidth;
765  OptionDbl m_subBracketThickness;
766  OptionIntMap m_systemDivider;
767  OptionInt m_systemMaxPerPage;
768  OptionDbl m_textEnclosureThickness;
769  OptionDbl m_thickBarlineThickness;
770  OptionDbl m_tieEndpointThickness;
771  OptionDbl m_tieMidpointThickness;
772  OptionDbl m_tieMinLength;
773  OptionBool m_tupletAngledOnBeams;
774  OptionDbl m_tupletBracketThickness;
775  OptionBool m_tupletNumHead;
776 
781 
782  OptionArray m_appXPathQuery;
783  OptionArray m_choiceXPathQuery;
784  OptionString m_expand;
785  OptionBool m_expandAlways;
786  OptionBool m_expandNever;
787  OptionBool m_loadSelectedMdivOnly;
788  OptionBool m_mdivAll;
789  OptionString m_mdivXPathQuery;
790  OptionBool m_ossiaHidden;
791  OptionArray m_substXPathQuery;
792  OptionString m_transpose;
793  OptionJson m_transposeMdiv;
794  OptionBool m_transposeSelectedOnly;
795  OptionBool m_transposeToSoundingPitch;
796 
801 
802  OptionDbl m_defaultBottomMargin;
803  OptionDbl m_defaultLeftMargin;
804  OptionDbl m_defaultRightMargin;
805  OptionDbl m_defaultTopMargin;
806  //
807  OptionDbl m_bottomMarginArtic;
808  OptionDbl m_bottomMarginHarm;
809  OptionDbl m_bottomMarginOctave;
810  OptionDbl m_bottomMarginPgHead;
811  //
812  OptionDbl m_leftMarginAccid;
813  OptionDbl m_leftMarginBarLine;
814  OptionDbl m_leftMarginBeatRpt;
815  OptionDbl m_leftMarginChord;
816  OptionDbl m_leftMarginClef;
817  OptionDbl m_leftMarginKeySig;
818  OptionDbl m_leftMarginLeftBarLine;
819  OptionDbl m_leftMarginMensur;
820  OptionDbl m_leftMarginMeterSig;
821  OptionDbl m_leftMarginMRest;
822  OptionDbl m_leftMarginMRpt2;
823  OptionDbl m_leftMarginMultiRest;
824  OptionDbl m_leftMarginMultiRpt;
825  OptionDbl m_leftMarginNote;
826  OptionDbl m_leftMarginRest;
827  OptionDbl m_leftMarginRightBarLine;
828  OptionDbl m_leftMarginTabDurSym;
829  //
830  OptionDbl m_rightMarginAccid;
831  OptionDbl m_rightMarginBarLine;
832  OptionDbl m_rightMarginBeatRpt;
833  OptionDbl m_rightMarginChord;
834  OptionDbl m_rightMarginClef;
835  OptionDbl m_rightMarginKeySig;
836  OptionDbl m_rightMarginLeftBarLine;
837  OptionDbl m_rightMarginMensur;
838  OptionDbl m_rightMarginMeterSig;
839  OptionDbl m_rightMarginMRest;
840  OptionDbl m_rightMarginMRpt2;
841  OptionDbl m_rightMarginMultiRest;
842  OptionDbl m_rightMarginMultiRpt;
843  OptionDbl m_rightMarginNote;
844  OptionDbl m_rightMarginRest;
845  OptionDbl m_rightMarginRightBarLine;
846  OptionDbl m_rightMarginTabDurSym;
847  //
848  OptionDbl m_topMarginArtic;
849  OptionDbl m_topMarginHarm;
850  OptionDbl m_topMarginPgFooter;
851 
856 
857  OptionBool m_midiNoCue;
858  OptionDbl m_midiTempoAdjustment;
859 
864 
865  OptionIntMap m_durationEquivalence;
866  OptionBool m_ligatureAsBracket;
867  OptionIntMap m_ligatureOblique;
868  OptionBool m_mensuralScoreUp;
869  OptionBool m_mensuralResponsiveView;
870  OptionBool m_mensuralToCmn;
871 
876 
877  OptionString m_timemapOptions;
878 
883 
884 private:
886  MapOfStrOptions m_items;
887 
888  std::vector<OptionGrp *> m_grps;
889 };
890 
891 } // namespace vrv
892 
893 #endif // CUSTOM_VEROVIO_OPTIONS
894 
895 #endif // __VRV_DEF_H__
This class is for array (string) styling params.
Definition: options.h:348
This class is for boolean styling params.
Definition: options.h:179
This class is for integer styling params.
Definition: options.h:218
This class is a base class of each styling parameter.
Definition: options.h:540
This class is a base class of each styling parameter.
Definition: options.h:101
static const std::map< int, std::string > s_breaks
Static maps used my OptionIntMap objects.
Definition: options.h:147
jsonxx::Object ToJson() const
Return a JSON object for the option.
This class is for integer styling params.
Definition: options.h:266
This class is for map break options.
Definition: options.h:385
This class is for Json input params.
Definition: options.h:465
std::set< std::string > GetKeys() const
Accessing all keys.
bool ReadJson(jsonxx::Object &output, const std::string &input) const
Read json from string or file.
JsonSource GetSource() const
Member access.
bool HasValue(const std::vector< std::string > &jsonNodePath) const
Accessing values as json node path.
bool SetValue(const std::string &value) override
Interface methods: accessing values as string.
This class is for map styling params.
Definition: options.h:424
This class is for string styling params.
Definition: options.h:314
This class contains the document styling parameters.
Definition: options.h:577
OptionGrp m_generalLayout
General layout.
Definition: options.h:692
OptionGrp m_baseOptions
Comments in implementation file options.cpp.
Definition: options.h:609
OptionGrp m_general
General.
Definition: options.h:632
OptionGrp m_midi
Midi.
Definition: options.h:855
OptionGrp m_elementMargins
Element margins.
Definition: options.h:800
OptionGrp m_deprecated
Deprecated options.
Definition: options.h:882
OptionGrp m_mensural
Mensural.
Definition: options.h:863
OptionGrp m_jsonCmdLineOptions
Additional options for passing method JSON options to the command-line.
Definition: options.h:875
OptionGrp m_selectors
Selectors.
Definition: options.h:780