OLD | NEW |
1 /* | 1 /* |
2 This file is part of LilyPond, the GNU music typesetter. | 2 This file is part of LilyPond, the GNU music typesetter. |
3 | 3 |
4 Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl> | 4 Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl> |
5 | 5 |
6 LilyPond is free software: you can redistribute it and/or modify | 6 LilyPond is free software: you can redistribute it and/or modify |
7 it under the terms of the GNU General Public License as published by | 7 it under the terms of the GNU General Public License as published by |
8 the Free Software Foundation, either version 3 of the License, or | 8 the Free Software Foundation, either version 3 of the License, or |
9 (at your option) any later version. | 9 (at your option) any later version. |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... |
34 vector<Item *> fingerings_; | 34 vector<Item *> fingerings_; |
35 | 35 |
36 public: | 36 public: |
37 TRANSLATOR_DECLARATIONS (Fingering_engraver); | 37 TRANSLATOR_DECLARATIONS (Fingering_engraver); |
38 protected: | 38 protected: |
39 void stop_translation_timestep (); | 39 void stop_translation_timestep (); |
40 void process_music (); | 40 void process_music (); |
41 DECLARE_TRANSLATOR_LISTENER (fingering); | 41 DECLARE_TRANSLATOR_LISTENER (fingering); |
42 DECLARE_ACKNOWLEDGER (rhythmic_head); | 42 DECLARE_ACKNOWLEDGER (rhythmic_head); |
43 DECLARE_ACKNOWLEDGER (stem); | 43 DECLARE_ACKNOWLEDGER (stem); |
| 44 DECLARE_ACKNOWLEDGER (flag); |
44 | 45 |
45 private: | 46 private: |
46 void make_script (Direction, Stream_event *, int); | 47 void make_script (Direction, Stream_event *, int); |
47 }; | 48 }; |
48 | 49 |
49 IMPLEMENT_TRANSLATOR_LISTENER (Fingering_engraver, fingering); | 50 IMPLEMENT_TRANSLATOR_LISTENER (Fingering_engraver, fingering); |
50 void | 51 void |
51 Fingering_engraver::listen_fingering (Stream_event *ev) | 52 Fingering_engraver::listen_fingering (Stream_event *ev) |
52 { | 53 { |
53 events_.push_back (ev); | 54 events_.push_back (ev); |
54 } | 55 } |
55 | 56 |
56 void | 57 void |
57 Fingering_engraver::acknowledge_stem (Grob_info inf) | 58 Fingering_engraver::acknowledge_stem (Grob_info inf) |
58 { | 59 { |
59 for (vsize i = 0; i < fingerings_.size (); i++) | 60 for (vsize i = 0; i < fingerings_.size (); i++) |
60 Side_position_interface::add_support (fingerings_[i], inf.grob ()); | 61 Side_position_interface::add_support (fingerings_[i], inf.grob ()); |
61 } | 62 } |
62 | 63 |
63 void | 64 void |
| 65 Fingering_engraver::acknowledge_flag (Grob_info inf) |
| 66 { |
| 67 for (vsize i = 0; i < fingerings_.size (); i++) |
| 68 Side_position_interface::add_support (fingerings_[i], inf.grob ()); |
| 69 } |
| 70 |
| 71 void |
64 Fingering_engraver::acknowledge_rhythmic_head (Grob_info inf) | 72 Fingering_engraver::acknowledge_rhythmic_head (Grob_info inf) |
65 { | 73 { |
66 for (vsize i = 0; i < fingerings_.size (); i++) | 74 for (vsize i = 0; i < fingerings_.size (); i++) |
67 { | 75 { |
68 Grob *t = fingerings_[i]; | 76 Grob *t = fingerings_[i]; |
69 Side_position_interface::add_support (t, inf.grob ()); | 77 Side_position_interface::add_support (t, inf.grob ()); |
70 if (!t->get_parent (X_AXIS)) | 78 if (!t->get_parent (X_AXIS)) |
71 t->set_parent (inf.grob (), X_AXIS); | 79 t->set_parent (inf.grob (), X_AXIS); |
72 } | 80 } |
73 } | 81 } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 fingerings_.clear (); | 140 fingerings_.clear (); |
133 events_.clear (); | 141 events_.clear (); |
134 } | 142 } |
135 | 143 |
136 Fingering_engraver::Fingering_engraver () | 144 Fingering_engraver::Fingering_engraver () |
137 { | 145 { |
138 } | 146 } |
139 | 147 |
140 ADD_ACKNOWLEDGER (Fingering_engraver, rhythmic_head); | 148 ADD_ACKNOWLEDGER (Fingering_engraver, rhythmic_head); |
141 ADD_ACKNOWLEDGER (Fingering_engraver, stem); | 149 ADD_ACKNOWLEDGER (Fingering_engraver, stem); |
| 150 ADD_ACKNOWLEDGER (Fingering_engraver, flag); |
142 | 151 |
143 ADD_TRANSLATOR (Fingering_engraver, | 152 ADD_TRANSLATOR (Fingering_engraver, |
144 /* doc */ | 153 /* doc */ |
145 "Create fingering scripts.", | 154 "Create fingering scripts.", |
146 | 155 |
147 /* create */ | 156 /* create */ |
148 "Fingering ", | 157 "Fingering ", |
149 | 158 |
150 /* read */ | 159 /* read */ |
151 "", | 160 "", |
152 | 161 |
153 /* write */ | 162 /* write */ |
154 "" | 163 "" |
155 ); | 164 ); |
OLD | NEW |