LibMusicXML  3.18
xml2lyOah.h
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 ___xml2lyOah___
14 #define ___xml2lyOah___
15 
16 //#include "exports.h"
17 
18 //#include "xml2lyManPageOah.h"
19 
20 #include "xml2lyOah2ManPageGenerator.h"
21 
22 
23 namespace MusicXML2
24 {
25 
26 //_______________________________________________________________________________
27 class EXP xml2lyOahHandler : public oahHandler
28 {
29  public:
30 
31  // creation
32  // ------------------------------------------------------
33 
34  static SMARTP<xml2lyOahHandler> create (
35  string executableName,
36  indentedOstream& ios);
37 
38  protected:
39 
40  // constructors/destructor
41  // ------------------------------------------------------
42 
44  string executableName,
45  indentedOstream& ios);
46 
47  virtual ~xml2lyOahHandler ();
48 
49  private:
50 
51  // initialization
52  // ------------------------------------------------------
53 
54  void initializeXml2lyOptionsHandler (
55  string executableName,
57  theOah2ManPageGenerator);
58 
59  public:
60 
61  // quiet mode
62  // ------------------------------------------------------
63 
64  void enforceOahHandlerQuietness ();
65 
66  public:
67 
68  // services
69  // ------------------------------------------------------
70 
71  void checkOptionsAndArguments ();
72 
73  public:
74 
75  // visitors
76  // ------------------------------------------------------
77 
78  public:
79 
80  // print
81  // ------------------------------------------------------
82 
83  void print (ostream& os) const;
84 
85  private:
86 
87  // fields
88  // ------------------------------------------------------
89 };
91 EXP ostream& operator<< (ostream& os, const S_xml2lyOahHandler& elt);
92 
93 //______________________________________________________________________________
94 class xml2lyOah : public oahGroup
95 {
96  public:
97 
98  static SMARTP<xml2lyOah> create (
99  S_oahHandler handlerUpLink);
100 
101  public:
102 
103  // initialisation
104  // ------------------------------------------------------
105 
106  void initializeXml2lyOah ();
107 
108  protected:
109 
110  // constructors/destructor
111  // ------------------------------------------------------
112 
113  xml2lyOah (
114  S_oahHandler handlerUpLink);
115 
116  virtual ~xml2lyOah ();
117 
118  public:
119 
120  // quiet mode
121  // ------------------------------------------------------
122 
123  void enforceQuietness ();
124 
125  public:
126 
127  // consistency check
128  // ------------------------------------------------------
129 
130  void checkOptionsConsistency ();
131 
132  public:
133 
134  // services
135  // ------------------------------------------------------
136 
137  public:
138 
139  // visitors
140  // ------------------------------------------------------
141 
142  virtual void acceptIn (basevisitor* v);
143  virtual void acceptOut (basevisitor* v);
144 
145  virtual void browseData (basevisitor* v);
146 
147  public:
148 
149  // print
150  // ------------------------------------------------------
151 
152  void printXml2lyOahHelp ();
153 
154  void printXml2lyOahValues (int fieldWidth);
155 
156  public:
157 
158  // output file
159  // --------------------------------------
160 
161  string fOutputFileName;
162  bool fAutoOutputFileName;
163 };
165 EXP ostream& operator<< (ostream& os, const S_xml2lyOah& elt);
166 
167 EXP extern S_xml2lyOah gXml2lyOah;
168 
169 //______________________________________________________________________________
170 void initializeXml2lyOah (
171  S_oahHandler handler);
172 
173 
174 }
175 
176 
177 #endif
MusicXML2::oahGroup
Definition: oahBasicTypes.h:2854
MusicXML2::xml2lyOahHandler
Definition: xml2lyOah.h:28
MusicXML2::oahHandler
Definition: oahBasicTypes.h:2979
MusicXML2::SMARTP
the smart pointer implementation
Definition: smartpointer.h:58
MusicXML2::xml2lyOah
Definition: xml2lyOah.h:95
MusicXML2::basevisitor
Definition: basevisitor.h:25
MusicXML2::indentedOstream
Definition: utilities.h:213