GUIDOLib  1.7.7
Guido Engine Internal Documentation
PrintVisitor.h
1 /*
2  GUIDO Library
3  Copyright (C) 2014 Grame
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 
14 #ifndef __PrintVisitor__
15 #define __PrintVisitor__
16 
17 
18 #include <ostream>
19 
20 #include "ARVisitor.h"
21 #include "defines.h"
22 
23 class ARMusicalObject;
24 class ARMusicalTag;
25 class ARMusicalVoice;
26 
27 class PrintVisitor : public ARVisitor
28 {
29 public:
30  PrintVisitor(std::ostream& stream);
31  virtual ~PrintVisitor() {};
32 
33  void visitIn (ARMusicalVoice* voice);
34  void visitOut(ARMusicalVoice* voice);
35  void visitIn (ARMusicalObject* object);
36  void visitIn (ARMusicalTag* tag);
37 
38 private:
39  void printMusicalVoice (ARMusicalVoice* voice) const;
40  void printMusicalObject (ARMusicalObject* object) const;
41  void printTag (ARMusicalTag* tag);
42  void printHeader(int state = 0) const; // state = -1 : position tag end ("-")
43  // state = 1 : position tag beginning ("+")
44  // state = 0 : neutral ("x");
45  std::string getIndentStr(int indentNumber) const;
46 
47  int currentIndentNumber;
48  TYPE_TIMEPOSITION currentStartDate;
49 
50  std::ostream *os;
51 };
52 
53 #endif
ARMusicalVoice
The class for GUIDO sequence, list of timepositions of events of a stream.
Definition: ARMusicalVoice.h:76
ARVisitor
Definition: ARVisitor.h:22
Fraction
Numerator and denominator.
Definition: Fraction.h:23
PrintVisitor::visitIn
void visitIn(ARMusicalVoice *voice)
PrintVisitor::~PrintVisitor
virtual ~PrintVisitor()
Definition: PrintVisitor.h:31
ARMusicalTag
The base class for all musical tag classes.
Definition: ARMusicalTag.h:34
PrintVisitor::visitOut
void visitOut(ARMusicalVoice *voice)
PrintVisitor
Definition: PrintVisitor.h:27
ARMusicalObject
The base class for all AR objects. It contains all musical information : duration and time position.
Definition: ARMusicalObject.h:33
PrintVisitor::PrintVisitor
PrintVisitor(std::ostream &stream)

Guido Project Copyright © 2019 Grame-CNCM