]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/duration.hh
* Another grand 2003 update.
[lilypond.git] / lily / include / duration.hh
index 0423d47353197a327e9c89618fc6d84e835b8799..69498e3efb740e73ea9dafe4db8718a7632f6ee4 100644 (file)
@@ -3,35 +3,50 @@
   
   source file of the LilyPond music typesetter
 
-  (c)  1997--1999 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c)  1997--2003 Jan Nieuwenhuizen <janneke@gnu.org>
 
 */
 
 #ifndef DURATION_HH
 #define DURATION_HH
 
-#include "fproto.hh"
-#include "rational.hh"
-
+#include "flower-proto.hh"
+#include "moment.hh"
+#include "smobs.hh"
 
 /**
    A musical duration.
   */
 struct Duration {
+public:
+  
   Duration ();
-  /// is the "plet factor" of this note != 1 ?
-  bool plet_b ();
-  String str () const;
-  void set_plet (int,int );
-  void compress (Rational);
-  Rational length_mom () const ;
-
-  /// Logarithm of the base duration.
-  int durlog_i_;
-  int dots_i_;
-  int tuplet_iso_i_;  // 2/3; 2 is not duration, maar of count!
-  int tuplet_type_i_; 
+  Duration (int, int);
+  String to_string () const;
+
+  Duration compressed (Rational) const;
+  Rational get_length () const ;
+  Rational factor () const { return factor_; }
+  int duration_log ()const;
+  int dot_count () const;
+
+  static int compare (Duration const&, Duration const&);
 
+  SCM smobbed_copy () const;
+  DECLARE_SCHEME_CALLBACK (less_p, (SCM a, SCM b));
+  DECLARE_SIMPLE_SMOBS (Duration,);
+
+private:
+    /// Logarithm of the base duration.
+  int durlog_;
+  int dots_;
+
+  Rational factor_;
 };
+
+#include "compare.hh"
+INSTANTIATE_COMPARE (Duration, Duration::compare);
+DECLARE_UNSMOB (Duration, duration);
+
 #endif // DURATION_HH