source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "duration.hh"
#include "string.hh"
//#include "array.hh"
-#include "varray.hh"
+#include "array.hh"
/**
Duration_convert handles all conversions to -n fro Duration (dur).
*/
struct Duration_convert {
- /* Urgh. statics.
- */
- static bool const midi_as_plet_b_s = true;
- static bool no_quantify_b_s;
- static bool no_double_dots_b_s;
- static bool no_triplets_b_s;
- static int no_smaller_than_i_s;
- static Array<Duration> dur_array_s;
-
- /// Return number of ticks in (ticks, division_1) representation
- static int dur2ticks_i (Duration dur );
+ /* Urgh. statics.
+ */
+ static bool const midi_as_plet_b_s = true;
+ static bool no_quantify_b_s;
+ static bool no_double_dots_b_s;
+ static bool no_triplets_b_s;
+ static int no_smaller_than_i_s;
+ static Array<Duration> dur_array_s;
+
+ /// Return number of ticks in (ticks, division_1) representation
+ static int dur2ticks_i (Duration dur );
- /// Return the type_i representation of note length i
- static int i2_type (int i);
+ /// Return the type_i representation of note length i
+ static int i2_type (int i);
- /// Return the note length corresponding to the type_i representation
- /// Return 0 if longer than whole note.
- static int type2_i (int type);
+ /// Return the note length corresponding to the type_i representation
+ /// Return 0 if longer than whole note.
+ static int type2_i (int type);
- /// Return Moment representation (fraction of whole note).
- static Moment dur2_mom (Duration dur );
+ /// Return Moment representation (fraction of whole note).
+ static Moment dur2_mom (Duration dur );
- /// Return Mudela string representation.
- static String dur2_str (Duration dur );
+ /// Return Mudela string representation.
+ static String dur2_str (Duration dur );
- /// Return duration from Moment (fraction of whole) representation.
- static Duration mom2_dur (Moment mom );
+ /// Return duration from Moment (fraction of whole) representation.
+ static Duration mom2_dur (Moment mom );
- /// Return standardised duration, best guess if not exact.
- static Duration mom2standardised_dur (Moment mom );
+ /// Return standardised duration, best guess if not exact.
+ static Duration mom2standardised_dur (Moment mom );
- /// Return plet factor (not a Moment: should use Rational?).
- static Moment plet_factor_mom (Duration dur );
+ /// Return plet factor (not a Moment: should use Rational?).
+ static Moment plet_factor_mom (Duration dur );
- static void set_array ();
+ static void set_array ();
- /** Return synchronisation factor for mom, so that
+ /** Return synchronisation factor for mom, so that
mom2_dur (mom / sync_f ) will return the duration dur.
- */
- static Real sync_f (Duration dur, Moment mom );
+ */
+ static Real sync_f (Duration dur, Moment mom );
- /// Return exact duration, in midi-ticks if not-exact.
- static Duration ticks2_dur (int ticks_i );
+ /// Return exact duration, in midi-ticks if not-exact.
+ static Duration ticks2_dur (int ticks_i );
- /// Return standardised duration, best guess if not exact.
- static Duration ticks2standardised_dur (int ticks_i );
-};
-
-/// (iter_dur)
-struct Duration_iterator {
- /// start at shortest: 128:2/3
- Duration_iterator ();
-
- // **** what about these three here ?
- /// return forward_dur ();
- Duration operator ++(int);
-
- /// return ok ()
- operator bool ();
-
- /// return dur ()
- Duration operator ()();
- // ****
-
- /// return current dur
- Duration dur ();
-
- /// return dur (), step to next
- Duration forward_dur ();
-
- /// durations left?
- bool ok ();
-
-private:
- Duration cursor_dur_;
+ /// Return standardised duration, best guess if not exact.
+ static Duration ticks2standardised_dur (int ticks_i );
};