]> git.donarmstrong.com Git - lilypond.git/blob - lib/duration.cc
release: 0.0.44
[lilypond.git] / lib / duration.cc
1 /*
2   duration.cc -- implement Duration, Plet, 
3
4   source file of the LilyPond music typesetter
5
6   copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
7
8   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 */
10
11 // split into 4?
12
13 #include "proto.hh"
14 #include "plist.hh"
15 #include "string.hh"
16 #include "source-file.hh"
17 #include "source.hh"
18 #include "moment.hh"
19 #include "duration.hh"
20 #include "debug.hh"  //ugh
21 #include "duration-convert.hh"
22
23 // statics Duration
24 int Duration::division_1_i_s = 384 * 4;
25
26 Duration::Duration( int type_i, int dots_i = 0)
27 {
28         type_i_ = type_i;
29         dots_i_ = dots_i;
30         ticks_i_ = 0;
31 }
32 void
33 Duration::set_plet(int i, int t)
34 {
35     plet_.iso_i_ = i; 
36     plet_.type_i_ = t;
37 }
38
39 Moment
40 Duration::length() const
41 {
42     return Duration_convert::dur2_mom(*this);
43 }
44 void
45 Duration::set_ticks( int ticks_i )
46 {
47         assert( !type_i_ );
48         assert( !dots_i_ );
49         ticks_i_ = ticks_i;
50 }
51 String
52 Duration::str()const
53 {
54     return Duration_convert::dur2_str(*this);
55 }
56 Plet::Plet( int iso_i, int type_i )
57 {
58         iso_i_ = iso_i;
59         type_i_ = type_i;
60 }
61 Moment
62 Plet::mom()const
63 {
64     return  Moment( iso_i_, type_i_ );
65 }
66
67 Plet::Plet()
68 {
69     type_i_ = 1;
70     iso_i_ = 1;
71 }
72 bool
73 Plet::unit_b()const
74 {
75     return type_i_ == 1 && iso_i_ == 1;
76 }
77 bool
78 Duration::plet_b()
79 {
80     return !plet_.unit_b();
81 }