GUIDOLib  1.7.7
Guido Engine Internal Documentation
AROctava.h
1 #ifndef AROctava_H
2 #define AROctava_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7  Copyright (C) 2002-2017 Grame
8 
9  This Source Code Form is subject to the terms of the Mozilla Public
10  License, v. 2.0. If a copy of the MPL was not distributed with this
11  file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 
13  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
14  research@grame.fr
15 
16 */
17 
18 #include "ARMTParameter.h"
19 #include "ARPositionTag.h"
20 
21 class TagParameterInt;
22 class TagParameterString;
23 
24 /*@mkdoc
25 
26 @group:Notes
27 
28 @tagname:\octava
29 @tagalias:\oct
30 @tagtype:RP
31 @tagnotation:displays an octava sign and transposes the notes accordingly
32 @tagdesc
33 @tagend
34 
35 @params:
36 @param:i:integer:a signed number of octaves (up or down):*none*:false
37 @param:hidden:bool:hides the octava sign:false:true
38 @paramdesc
39 @paramend
40 
41 */
42 
45 class AROctava : public ARMTParameter, public ARPositionTag
46 {
47  const TagParameterInt * fOctava = nullptr;
48  bool fHidden = false;
49  TYPE_TIMEPOSITION fEnd = 0;
50 
51  public:
52  AROctava(const AROctava * p_saveoct = NULL, const AROctava * copyoct = NULL);
53  virtual ~AROctava() {}
54 
55  virtual bool IsStateTag() const { return true; }
56 
57  virtual ARMusicalObject * getEndTag() const { return new AROctava(NULL, fSaveoct); }
58 
59  virtual void setTagParameters(const TagParameterMap & params);
60  virtual int getOctava() const;
61  virtual bool getHidden() const { return fHidden; }
62 
63  virtual const char* getParamsStr() const { return kAROctavaParams; };
64  virtual const char* getTagName() const { return "AROctava"; };
65  virtual std::string getGMNName() const { return "\\octava"; };
66 
67  virtual AROctava* isAROctava() { return this; }
68 
69  void setEnd (TYPE_TIMEPOSITION pos) { fEnd = pos; }
70  TYPE_TIMEPOSITION getEnd () const { return fEnd; }
71 
72  private:
73  const AROctava * fSaveoct; // this is required to save the current octava state ...
74 };
75 
76 #endif
77 
AROctava::~AROctava
virtual ~AROctava()
Definition: AROctava.h:53
Fraction
Numerator and denominator.
Definition: Fraction.h:23
AROctava::getParamsStr
virtual const char * getParamsStr() const
Definition: AROctava.h:63
AROctava::getTagName
virtual const char * getTagName() const
Definition: AROctava.h:64
AROctava::getHidden
virtual bool getHidden() const
Definition: AROctava.h:61
AROctava::IsStateTag
virtual bool IsStateTag() const
Definition: AROctava.h:55
AROctava
The Octava tag.
Definition: AROctava.h:45
AROctava::getGMNName
virtual std::string getGMNName() const
Definition: AROctava.h:65
AROctava::setEnd
void setEnd(TYPE_TIMEPOSITION pos)
Definition: AROctava.h:69
ARMTParameter
not yet documented
Definition: ARMTParameter.h:24
AROctava::setTagParameters
virtual void setTagParameters(const TagParameterMap &params)
AROctava::isAROctava
virtual AROctava * isAROctava()
Definition: AROctava.h:67
AROctava::getEndTag
virtual ARMusicalObject * getEndTag() const
Definition: AROctava.h:57
TagParameterInt
not yet documented
Definition: TagParameterInt.h:24
ARPositionTag::pos
GuidoPos pos
Definition: ARPositionTag.h:73
TagParameterString
A string-type tag parameter.
Definition: TagParameterString.h:25
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
TagParameterMap
A list of tag parameters represented as a map.
Definition: TagParameterMap.h:31
AROctava::AROctava
AROctava(const AROctava *p_saveoct=NULL, const AROctava *copyoct=NULL)
ARMusicalObject
The base class for all AR objects. It contains all musical information : duration and time position.
Definition: ARMusicalObject.h:33
AROctava::getEnd
TYPE_TIMEPOSITION getEnd() const
Definition: AROctava.h:70
AROctava::getOctava
virtual int getOctava() const

Guido Project Copyright © 2019 Grame-CNCM