X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmusic.hh;h=d669d39e52d89e361ee8fe3d6fefb564dfb771c1;hb=4190a75c5b6022eff073d9bd9280990c46d9e5d2;hp=500eb003dc1d4e793fbb10e45ff2c34390ec2a16;hpb=5c2afd9ecbe4d91998a325f6323f05ea4d658d96;p=lilypond.git diff --git a/lily/include/music.hh b/lily/include/music.hh index 500eb003dc..d669d39e52 100644 --- a/lily/include/music.hh +++ b/lily/include/music.hh @@ -3,11 +3,9 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2001 Han-Wen Nienhuys + (c) 1997--2004 Han-Wen Nienhuys */ - - #ifndef MUSIC_HH #define MUSIC_HH @@ -18,6 +16,7 @@ #include "smobs.hh" #include "music-constructor.hh" +#define is_mus_type(x) internal_is_music_type (ly_symbol2scm (x)) /** Music is anything that has duration and supports both time compression and transposition. @@ -32,24 +31,26 @@ TODO: make a equalp function for general music. */ -class Music { +class Music +{ public: + Music (); + Music (Music const &m); + VIRTUAL_COPY_CONSTRUCTOR (Music, Music); + Input *origin () const; void set_spot (Input); - - SCM get_mus_property (const char*) const; - SCM get_mus_property (SCM) const; - void set_mus_property (const char * , SCM val); - void set_immutable_mus_property (const char * , SCM val); - void set_immutable_mus_property (SCM key, SCM val); - void set_mus_property (SCM , SCM val); - void set_mus_pointer (const char*, SCM val); - SCM remove_mus_property (const char* nm); + SCM internal_get_property (SCM) const; + void internal_set_property (SCM , SCM val); + SCM get_property_alist (bool mut) const; + bool internal_is_music_type (SCM) const; + int duration_log () const; + virtual Pitch to_relative_octave (Pitch); - + String name () const; /// The duration of this piece of music - virtual Moment length_mom () const; + virtual Moment get_length () const; virtual Moment start_mom () const; void print () const; /// Transpose, with the interval central C to #p# @@ -57,19 +58,19 @@ public: /// Scale the music in time by #factor#. virtual void compress (Moment factor); - VIRTUAL_COPY_CONS (Music); - Music (); - Music (Music const &m); - Music (SCM); + protected: DECLARE_SMOBS (Music,); SCM immutable_property_alist_; SCM mutable_property_alist_; + friend SCM ly_extended_make_music (SCM, SCM); }; - +DECLARE_TYPE_P(Music); DECLARE_UNSMOB(Music,music); -#endif // MUSIC_HH - +Music *make_music_by_name (SCM sym); +SCM ly_music_deep_copy (SCM); +SCM ly_music_scorify (SCM, SCM); +#endif /* MUSIC_HH */