source file of the LilyPond music typesetter
- copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1999 Jan Nieuwenhuizen <janneke@gnu.org>
+ Han-Wen Nienhuys <hanwen@cs.uu.nl>
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+
+ UGH. Duration is broken.
*/
-// split into 4?
+#include <assert.h>
#include "proto.hh"
-#include "plist.hh"
#include "string.hh"
#include "source-file.hh"
#include "source.hh"
#include "moment.hh"
#include "duration.hh"
-#include "debug.hh" //ugh
#include "duration-convert.hh"
+#include "duration-iter.hh"
// statics Duration
int Duration::division_1_i_s = 384 * 4;
-Duration::Duration( int type_i, int dots_i = 0)
-{
- type_i_ = type_i;
- dots_i_ = dots_i;
- ticks_i_ = 0;
-}
-Moment
-Duration::length() const
+Duration::Duration ()
{
- return Duration_convert::dur2_mom(*this);
+ durlog_i_ = 0;
+ dots_i_ = 0;
+ ticks_i_ = 0;
}
-void
-Duration::set_plet(int i, int t)
+bool
+Duration::duration_type_b (int t)
{
- plet_.iso_i_ = i;
- plet_.type_i_ = t;
+ /*
+ ugh. Assuming behavior of conversion funcs on broken input.
+ */
+ return t == Duration_convert::type2_i (Duration_convert::i2_type (t));
}
void
-Duration::set_ticks( int ticks_i )
+Duration::compress (Moment m)
{
- assert( !type_i_ );
- assert( !dots_i_ );
- ticks_i_ = ticks_i;
+ plet_.iso_i_ *= m.num_i ();
+ plet_.type_i_ *= m.den_i ();
}
-String
-Duration::str()const
+Moment
+Duration::length_mom () const
{
- return Duration_convert::dur2_str(*this);
+ return Duration_convert::dur2_mom (*this);
}
-Plet::Plet()
+void
+Duration::set_plet (int i, int t)
{
- type_i_ = 1;
- iso_i_ = 1;
+ plet_.iso_i_ = i;
+ plet_.type_i_ = t;
}
-Plet::Plet( int iso_i, int type_i )
+/*
+void
+Duration::set_plet (Duration d)
{
- iso_i_ = iso_i;
- type_i_ = type_i;
+ plet_.iso_i_ = d.plet_.iso_i_;
+ plet_.type_i_ = d.plet_.type_i_;
}
+*/
-Moment
-Plet::mom()const
+void
+Duration::set_ticks (int ticks_i)
{
- return Moment( iso_i_, type_i_ );
+ assert (durlog_i_ <10);
+ assert (!dots_i_);
+ ticks_i_ = ticks_i;
}
-bool
-Duration::plet_b()
+String
+Duration::str () const
{
- return !plet_.unit_b();
+ return Duration_convert::dur2_str (*this);
}
+
bool
-Plet::unit_b()const
+Duration::plet_b ()
{
- return type_i_ == 1 && iso_i_ == 1;
+ return !plet_.unit_b ();
}