lilypond-1.5.9
[lilypond.git] / midi2ly / duration.cc
blob6e1e9b54ae9daeee477a40fbb2891582e3455508
1 /*
2 duration.cc -- implement Duration, Plet,
4 source file of the LilyPond music typesetter
6 (c) 1997--2001 Jan Nieuwenhuizen <janneke@gnu.org>
7 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 UGH. Duration is broken.
13 #include <assert.h>
15 #include "flower-proto.hh"
16 #include "string.hh"
17 #include "source-file.hh"
18 #include "source.hh"
19 #include "rational.hh"
20 #include "duration.hh"
21 #include "duration-convert.hh"
22 #include "duration-iter.hh"
24 // statics Duration
25 int Duration::division_1_i_s = 384 * 4;
28 Duration::Duration ()
30 durlog_i_ = 0;
31 dots_i_ = 0;
32 ticks_i_ = 0;
35 bool
36 Duration::duration_type_b (int t)
39 ugh. Assuming behavior of conversion funcs on broken input.
41 return t == Duration_convert::type2_i (Duration_convert::i2_type (t));
44 void
45 Duration::compress (Rational m)
47 plet_.iso_i_ *= m.num ();
48 plet_.type_i_ *= m.den ();
51 Rational
52 Duration::length_mom () const
54 return Duration_convert::dur2_mom (*this);
57 void
58 Duration::set_plet (int i, int t)
60 plet_.iso_i_ = i;
61 plet_.type_i_ = t;
65 void
66 Duration::set_plet (Duration d)
68 plet_.iso_i_ = d.plet_.iso_i_;
69 plet_.type_i_ = d.plet_.type_i_;
73 void
74 Duration::set_ticks (int ticks_i)
76 assert (durlog_i_ <10);
77 assert (!dots_i_);
78 ticks_i_ = ticks_i;
81 String
82 Duration::str () const
84 return Duration_convert::dur2_str (*this);
88 bool
89 Duration::plet_b ()
91 return !plet_.unit_b ();