]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/event.hh
* gcc-3.4 snapshot: 3.4.0 20040215 (prerelease) compile fixes, and
[lilypond.git] / lily / include / event.hh
1 /*
2   event.hh -- declare Event baseclasses.
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9 #ifndef EVENT_HH
10 #define EVENT_HH
11
12
13 #include "string.hh"
14 #include "moment.hh"
15 #include "virtual-methods.hh"
16 #include "input.hh"
17 #include "music.hh"
18 #include "duration.hh"
19 #include "pitch.hh"
20
21 /* An atom of musical information.  This is an abstract class for any
22   piece of music that does not contain other Music.  */
23 class Event : public Music
24 {
25 public:
26   Event ();
27   VIRTUAL_COPY_CONSTRUCTOR (Music, Event);
28   virtual void compress (Moment);
29   virtual void transpose (Pitch);
30   virtual Moment get_length () const;
31   virtual Pitch to_relative_octave (Pitch);
32 };
33
34
35 /**
36     Handle key changes.
37 */
38 class Key_change_ev  : public Event
39 {
40 public:
41   SCM pitch_alist ();
42   
43 protected:
44   VIRTUAL_COPY_CONSTRUCTOR (Music, Key_change_ev);
45   void transpose (Pitch  d);
46 };
47
48 SCM ly_transpose_key_alist (SCM,SCM);
49
50
51
52 #endif