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--2015 Jan Nieuwenhuizen <janneke@gnu.org> | 4 Copyright (C) 1998--2015 Jan Nieuwenhuizen <janneke@gnu.org> |
5 Han-Wen Nienhuys <hanwen@xs4all.nl> | 5 Han-Wen Nienhuys <hanwen@xs4all.nl> |
6 | 6 |
7 LilyPond is free software: you can redistribute it and/or modify | 7 LilyPond is free software: you can redistribute it and/or modify |
8 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
9 the Free Software Foundation, either version 3 of the License, or | 9 the Free Software Foundation, either version 3 of the License, or |
10 (at your option) any later version. | 10 (at your option) any later version. |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 67 |
68 Multi_measure_rest_engraver::Multi_measure_rest_engraver () | 68 Multi_measure_rest_engraver::Multi_measure_rest_engraver () |
69 : rest_ev_ (0), | 69 : rest_ev_ (0), |
70 mmrest_ (0), | 70 mmrest_ (0), |
71 start_measure_ (0), | 71 start_measure_ (0), |
72 last_command_item_ (0), | 72 last_command_item_ (0), |
73 first_time_ (true) | 73 first_time_ (true) |
74 { | 74 { |
75 } | 75 } |
76 | 76 |
77 IMPLEMENT_TRANSLATOR_LISTENER (Multi_measure_rest_engraver, multi_measure_rest); | |
78 void | 77 void |
79 Multi_measure_rest_engraver::listen_multi_measure_rest (Stream_event *ev) | 78 Multi_measure_rest_engraver::listen_multi_measure_rest (Stream_event *ev) |
80 { | 79 { |
81 /* FIXME: Should use ASSIGN_EVENT_ONCE. Can't do that yet because of | 80 /* FIXME: Should use ASSIGN_EVENT_ONCE. Can't do that yet because of |
82 the kill-mm-rests hack in part-combine-iterator. */ | 81 the kill-mm-rests hack in part-combine-iterator. */ |
83 rest_ev_ = ev; | 82 rest_ev_ = ev; |
84 const Moment now (now_mom ()); | 83 const Moment now (now_mom ()); |
85 stop_moment_ = now + get_event_length (rest_ev_, now); | 84 stop_moment_ = now + get_event_length (rest_ev_, now); |
86 /* | 85 /* |
87 if (ASSIGN_EVENT_ONCE (rest_ev_, ev)) | 86 if (ASSIGN_EVENT_ONCE (rest_ev_, ev)) |
88 stop_moment_ = now_mom () + get_event_length (rest_ev_); | 87 stop_moment_ = now_mom () + get_event_length (rest_ev_); |
89 */ | 88 */ |
90 | 89 |
91 clear_lapsed_events (now); | 90 clear_lapsed_events (now); |
92 } | 91 } |
93 | 92 |
94 IMPLEMENT_TRANSLATOR_LISTENER (Multi_measure_rest_engraver, multi_measure_text); | |
95 void | 93 void |
96 Multi_measure_rest_engraver::listen_multi_measure_text (Stream_event *ev) | 94 Multi_measure_rest_engraver::listen_multi_measure_text (Stream_event *ev) |
97 { | 95 { |
98 text_events_.push_back (ev); | 96 text_events_.push_back (ev); |
99 } | 97 } |
100 | 98 |
101 void | 99 void |
102 Multi_measure_rest_engraver::add_bound_item_to_grobs (Item *item) | 100 Multi_measure_rest_engraver::add_bound_item_to_grobs (Item *item) |
103 { | 101 { |
104 add_bound_item (mmrest_, item); | 102 add_bound_item (mmrest_, item); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 | 236 |
239 first_time_ = false; | 237 first_time_ = false; |
240 } | 238 } |
241 | 239 |
242 void | 240 void |
243 Multi_measure_rest_engraver::start_translation_timestep () | 241 Multi_measure_rest_engraver::start_translation_timestep () |
244 { | 242 { |
245 clear_lapsed_events (now_mom ()); | 243 clear_lapsed_events (now_mom ()); |
246 } | 244 } |
247 | 245 |
| 246 void |
| 247 Multi_measure_rest_engraver::boot () |
| 248 { |
| 249 ADD_LISTENER (Multi_measure_rest_engraver, multi_measure_rest); |
| 250 ADD_LISTENER (Multi_measure_rest_engraver, multi_measure_text); |
| 251 } |
| 252 |
248 ADD_TRANSLATOR (Multi_measure_rest_engraver, | 253 ADD_TRANSLATOR (Multi_measure_rest_engraver, |
249 /* doc */ | 254 /* doc */ |
250 "Engrave multi-measure rests that are produced with" | 255 "Engrave multi-measure rests that are produced with" |
251 " @samp{R}. It reads @code{measurePosition} and" | 256 " @samp{R}. It reads @code{measurePosition} and" |
252 " @code{internalBarNumber} to determine what number to print" | 257 " @code{internalBarNumber} to determine what number to print" |
253 " over the @ref{MultiMeasureRest}.", | 258 " over the @ref{MultiMeasureRest}.", |
254 | 259 |
255 /* create */ | 260 /* create */ |
256 "MultiMeasureRest " | 261 "MultiMeasureRest " |
257 "MultiMeasureRestNumber " | 262 "MultiMeasureRestNumber " |
258 "MultiMeasureRestText ", | 263 "MultiMeasureRestText ", |
259 | 264 |
260 /* read */ | 265 /* read */ |
261 "internalBarNumber " | 266 "internalBarNumber " |
262 "restNumberThreshold " | 267 "restNumberThreshold " |
263 "currentCommandColumn " | 268 "currentCommandColumn " |
264 "measurePosition " | 269 "measurePosition " |
265 "whichBar ", | 270 "whichBar ", |
266 | 271 |
267 /* write */ | 272 /* write */ |
268 "" | 273 "" |
269 ); | 274 ); |
OLD | NEW |