]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/music.hh
release: 0.0.67
[lilypond.git] / lily / include / music.hh
1 /*
2   music.hh -- declare Music
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10
11 #ifndef MUSIC_HH
12 #define MUSIC_HH
13
14 #include "plist.hh"
15 #include "virtual-methods.hh"
16 #include "input.hh"
17 #include "minterval.hh"
18 #include "lily-proto.hh"
19
20 class Music:public Input {
21 public:
22     virtual MInterval time_int()const;
23     virtual ~Music(){}
24     void print() const;
25     virtual void transpose(Melodic_req const *);
26     virtual void translate(Moment dt);
27     VIRTUAL_COPY_CONS(Music,Music)
28     NAME_MEMBERS();
29     Music();
30 protected:
31     virtual void do_print() const;
32   
33 };
34
35 class Music_list : public Music {
36 public:
37     Music_list(Music_list const&);    
38     Music_list();
39     NAME_MEMBERS();
40     VIRTUAL_COPY_CONS(Music_list,Music)
41     virtual void add(Music*);
42     virtual void transpose(Melodic_req const *);
43 protected:
44     Pointer_list<Music*> music_p_list_;
45  
46     virtual void do_print() const;
47 };
48
49
50 class Chord : public Music_list {
51 public:
52     NAME_MEMBERS();
53     VIRTUAL_COPY_CONS(Chord,Music)
54     virtual void translate(Moment dt);
55     virtual MInterval time_int()const;
56 };
57
58
59 class MVoice : public Music_list {
60 public:
61     NAME_MEMBERS();
62     VIRTUAL_COPY_CONS(MVoice, Music)
63     virtual void translate(Moment dt);
64     virtual MInterval time_int()const;
65 };
66
67 #endif // MUSIC_HH
68
69
70