]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/command-request.hh
release: 1.3.105
[lilypond.git] / lily / include / command-request.hh
1 /*
2   command-request.hh -- declare non-musical requests
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef COMMANDREQUEST_HH
11 #define COMMANDREQUEST_HH
12
13 #include "request.hh"
14 #include "array.hh"
15 #include "duration.hh"
16 #include "musical-pitch.hh"
17 #include "protected-scm.hh"
18
19 /*
20   Real penalty_f_;
21  */
22 class Break_req : public Request {
23 public:
24
25   Break_req ();
26 protected:
27   VIRTUAL_COPY_CONS(Music);
28 };
29
30 class Mark_req : public Request {
31 public:
32   virtual bool do_equal_b (Request const*) const;
33   SCM mark_label ();
34   VIRTUAL_COPY_CONS(Music);
35 };
36
37
38 /** Baseclass for time_signature/partial req. It has to be handled by
39   Staff_{walker,column} baseclass.  */
40 class Timing_req  : public Request  {
41 public:
42   VIRTUAL_COPY_CONS(Music);
43 };
44
45 /*
46     int metronome_i_;
47  */
48 class Tempo_req : public Timing_req
49 {
50 public:
51   Duration dur_;
52
53
54   Tempo_req();
55 protected:
56
57   VIRTUAL_COPY_CONS(Music);
58   bool do_equal_b (Request const *) const;
59 };
60
61
62 /**
63   todo: allow C time_signature
64
65   int beats_i_;
66   int one_beat_i_;
67   
68  */
69 class Time_signature_change_req  : public Timing_req  {
70 public:
71   Time_signature_change_req();
72
73 protected:
74   bool do_equal_b (Request const *) const;
75   VIRTUAL_COPY_CONS(Music);
76 };
77
78
79 /// check if we're at start of a  measure.
80 class Barcheck_req  : public Timing_req  {
81 public:
82   bool do_equal_b (Request const *) const;
83   VIRTUAL_COPY_CONS(Music);
84 };
85
86
87 /** draw a (repeat)-bar. This something different than #Barcheck_req#,
88   the latter should only happen at the start of a measure.  */
89 class Bar_req  : public Request  {
90 public:
91
92   Bar_req (String);
93 protected:
94   VIRTUAL_COPY_CONS(Music);
95 };
96
97 class Breathing_sign_req : public Request {
98   VIRTUAL_COPY_CONS(Music);
99 };
100
101 /**
102     Handle key changes.
103 */
104 class Key_change_req  : public Request
105 {
106 public:
107   SCM pitch_alist ();
108   
109 protected:
110   VIRTUAL_COPY_CONS(Music);
111   void transpose (Musical_pitch  d);
112   bool do_equal_b (Request const * )const; 
113 };
114
115 /*
116   String clef_str_;
117  */
118
119 class Clef_change_req  : public Request  {
120 public:
121   
122   Clef_change_req ();
123 protected:
124
125   VIRTUAL_COPY_CONS(Music);
126 };
127
128
129 #endif // COMMANDREQUEST_HH