GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARFingering.h
1 #ifndef ARFingering_H
2 #define ARFingering_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 "ARText.h"
19 
20 /*@mkdoc
21 
22 @group:Text
23 
24 @tagname:\fingering
25 @tagalias:\fing
26 @tagtype:P
27 @tagnotation:fingering
28 @tagdesc
29 @tagend
30 
31 @params:
32 @param:text:string:the fingering string:*none*:true
33 @param:position:string:above or below:*none*:true
34 @fontparams:
35 @paramdesc
36 The default position for fingering is close to the note head. When **position** is specified, the fingering is placed above or below the note, avoiding collisions with the stems and always outside the staff.
37 
38 The position can be set at global voice level using the [\auto](../Miscellaneous/) tag.
39 
40 **Note about the fingering string:** a comma can be used as a text separator. In this case, comma separated strings are stacked verticaly. This form can be used to express chords fingering. In this case, you should place the fingering on the highest note when the fingering positon is above, or on the lowest note on the contrary.
41 
42 See the [Beethoven](@EXAMPLES/beethoven/) example.
43 @paramend
44 
45 */
46 
47 #include <vector>
48 #include <string>
49 
50 #include "ARText.h"
51 
54 class ARFingering : public ARText
55 {
56  void scanText(const std::string&);
57 
58  public:
60 
62  virtual ~ARFingering() {}
63 
64  virtual void setTagParameters (const TagParameterMap& params);
65  virtual int getFingeringPosition () const { return fPosition; }
66  virtual void setFingeringSize (float size) { fSize = size; }
67 
68  virtual const char* getTagName() const { return "ARFingering"; };
69  virtual std::string getGMNName() const { return "\\fingering"; };
70 
71  const std::vector<std::string>& fingerings() const { return fFingerings; }
72  size_t countFingerings() const { return fFingerings.size(); }
73 
74  protected:
75  int fPosition;
76  float fSize = 0;
77  std::vector<std::string> fFingerings;
78 };
79 
80 #endif
ARFingering::~ARFingering
virtual ~ARFingering()
Definition: ARFingering.h:62
ARFingering
not yet documented
Definition: ARFingering.h:54
ARFingering::fingerings
const std::vector< std::string > & fingerings() const
Definition: ARFingering.h:71
ARFingering::getFingeringPosition
virtual int getFingeringPosition() const
Definition: ARFingering.h:65
ARFingering::setTagParameters
virtual void setTagParameters(const TagParameterMap &params)
ARFingering::getGMNName
virtual std::string getGMNName() const
Definition: ARFingering.h:69
ARFingering::ARFingering
ARFingering(int pos=kDefaultPosition)
ARFingering::fSize
float fSize
Definition: ARFingering.h:76
ARFingering::fFingerings
std::vector< std::string > fFingerings
Definition: ARFingering.h:77
ARFingering::kAbove
Definition: ARFingering.h:59
ARFingering::countFingerings
size_t countFingerings() const
Definition: ARFingering.h:72
ARPositionTag::pos
GuidoPos pos
Definition: ARPositionTag.h:73
ARFingering::setFingeringSize
virtual void setFingeringSize(float size)
Definition: ARFingering.h:66
ARFingering::kDefaultPosition
Definition: ARFingering.h:59
TagParameterMap
A list of tag parameters represented as a map.
Definition: TagParameterMap.h:31
ARFingering::kBelow
Definition: ARFingering.h:59
ARText
The text tag.
Definition: ARText.h:49
ARFingering::getTagName
virtual const char * getTagName() const
Definition: ARFingering.h:68
ARFingering::fPosition
int fPosition
Definition: ARFingering.h:75

Guido Project Copyright © 2019 Grame-CNCM