X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fduration.hh;h=a7efb98eab5647bffb6502aeeb10328a0518f3f8;hb=32a34dcef0c0041c6d62677487a380b5c8b85712;hp=bdb988a1c3c3bb8c4e13f6058cfc834a95665250;hpb=4995fea559cd5399b4f462de546a15195d76f4c3;p=lilypond.git diff --git a/lily/include/duration.hh b/lily/include/duration.hh index bdb988a1c3..a7efb98eab 100644 --- a/lily/include/duration.hh +++ b/lily/include/duration.hh @@ -1,52 +1,62 @@ /* - duration.hh -- declare Duration - - source file of the LilyPond music typesetter + This file is part of LilyPond, the GNU music typesetter. - (c) 1997--2001 Jan Nieuwenhuizen + Copyright (C) 1997--2012 Jan Nieuwenhuizen + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef DURATION_HH #define DURATION_HH -#include "flower-proto.hh" #include "moment.hh" -#include "smobs.hh" /** A musical duration. - */ -struct Duration { +*/ +struct Duration +{ +public: + Duration (); Duration (int, int); - String str () const; - void set_plet (int,int ); + Duration (Rational, bool scale); + string to_string () const; + Duration compressed (Rational) const; - Rational length_mom () const ; - static int compare (Duration const&, Duration 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,); + DECLARE_SIMPLE_SMOBS (Duration); -public: - int duration_log ()const; - int dot_count () const; - private: - /// Logarithm of the base duration. - int durlog_i_; - int dots_i_; + /// Logarithm of the base duration. + int durlog_; + int dots_; Rational factor_; - }; -#include "compare.hh" INSTANTIATE_COMPARE (Duration, Duration::compare); -Duration*unsmob_duration (SCM); -// int compare (Array*, Array*); +DECLARE_UNSMOB (Duration, duration); + +extern SCM Duration_type_p_proc; #endif // DURATION_HH