(staff_eligible): new function.
[lilypond.git] / lily / simple-music-iterator.cc
blob75939374903ba5c175217bd2c4785e06cb41df08
1 /*
2 simple-music-iterator.cc -- implement Simple_music_iterator
4 source file of the GNU LilyPond music typesetter
6 (c) 2000--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 */
10 #include "simple-music-iterator.hh"
11 #include "music.hh"
12 #include "input.hh"
14 Simple_music_iterator::Simple_music_iterator ()
15 : Music_iterator ()
17 last_processed_mom_ = -1;
20 Simple_music_iterator::Simple_music_iterator (Simple_music_iterator const &src)
21 : Music_iterator (src)
23 last_processed_mom_ = src.last_processed_mom_;
26 bool
27 Simple_music_iterator::ok ()const
29 return last_processed_mom_ < music_get_length ();
33 TODO: remove last_processed_mom_, and the complete shit. We should
34 only process a simple-music once, and that is at its start.
36 Engravers can detect and event the end-moments to be processed as
37 well.
40 Moment
41 Simple_music_iterator::pending_moment ()const
43 if (last_processed_mom_ < Moment (0))
44 return Moment (0);
45 else
46 return music_get_length ();
49 void
50 Simple_music_iterator::skip (Moment m)
53 docme??!!
55 uncommented because setting MUSIC_L_ = 0 causes core dumps with
56 grace notes. */
58 // music_ = 0;
60 last_processed_mom_ = m;
63 void
64 Simple_music_iterator::process (Moment m)
67 don't do try_music (), since it would make the function useless for
68 base classes */
70 skip (m);
73 IMPLEMENT_CTOR_CALLBACK (Simple_music_iterator);