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
23namespace MusicXML2
24{
25
26//_______________________________________________________________________________
27class 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};
91EXP ostream& operator<< (ostream& os, const S_xml2lyOahHandler& elt);
92
93//______________________________________________________________________________
94class 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};
165EXP ostream& operator<< (ostream& os, const S_xml2lyOah& elt);
166
167EXP extern S_xml2lyOah gXml2lyOah;
168
169//______________________________________________________________________________
170void initializeXml2lyOah (
171 S_oahHandler handler);
172
173
174}
175
176
177#endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: utilities.h:213
Definition: oahBasicTypes.h:2854
Definition: oahBasicTypes.h:2979
Definition: xml2lyOah.h:28
Definition: xml2lyOah.h:95