]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/command-request.hh
release: 1.3.145
[lilypond.git] / lily / include / command-request.hh
index 3d5a1eb18d496d336700c1e2c873acad06d60060..8c4cbeeb51fb9e5928af904a09b836c6a6cb1a6d 100644 (file)
@@ -1,9 +1,9 @@
 /*
-  command-request.hh -- declare Non musical requests
+  command-request.hh -- declare non-musical requests
 
-  source file of the LilyPond music typesetter
+  source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #define COMMANDREQUEST_HH
 
 #include "request.hh"
-#include "varray.hh"
-
-/** Request which are  assumed to be "happening" before the
-  musical requests. */
-struct Command_req : virtual Request {
-    REQUESTMETHODS(Command_req, command);
-
-    virtual Measure_grouping_req * measuregrouping() { return 0; }
-    virtual Clef_change_req * clefchange() { return 0; }
-    virtual Key_change_req * keychange() { return 0; }
-    virtual Partial_measure_req * partial() { return 0; }
-    virtual Meter_change_req * meterchange() { return 0; }
-    virtual Bar_req *bar() { return 0; }
-    virtual Cadenza_req *cadenza() { return 0; }
-    virtual Timing_req*timing() {  return 0; }
+#include "array.hh"
+#include "duration.hh"
+#include "pitch.hh"
+#include "protected-scm.hh"
+
+class Break_req : public Request {
+public:
+protected:
+  VIRTUAL_COPY_CONS (Music);
 };
 
-
-/** Baseclass for meter/partial req. It has to be handled by
-  Staff_{walker,column} baseclass.  */
-struct Timing_req : Command_req {
-    REQUESTMETHODS(Timing_req, timing);
-};
-
-
-struct Partial_measure_req : Timing_req {
-    Moment duration_;
-
-    Partial_measure_req(Moment);
-    REQUESTMETHODS(Partial_measure_req, partial);
+class Mark_req : public Request {
+public:
+  virtual bool do_equal_b (Request const*) const;
+  SCM mark_label ();
+  VIRTUAL_COPY_CONS (Music);
 };
 
-/**
-  todo: allow C meter
+/*
+    int metronome_i_;
  */
-struct Meter_change_req : Timing_req {
-    int beats_i_, one_beat_i_;
-
-    Meter_change_req();
-    void set(int,int);
-    REQUESTMETHODS(Meter_change_req, meterchange);
-};
-
-/// toggle Cadenza mode
-struct Cadenza_req : Timing_req {
-    /// turn on?
-    bool on_b_;
-    Cadenza_req(bool);
-    REQUESTMETHODS(Cadenza_req,cadenza);
+class Tempo_req : public Request
+{
+public:
+  Tempo_req ();
+protected:
+  VIRTUAL_COPY_CONS (Music);
 };
 
 /// check if we're at start of a  measure.
-struct Barcheck_req : Timing_req {
-
-    REQUESTMETHODS(Barcheck_req,barcheck);
-};
-
-struct Measure_grouping_req: Timing_req {
-    Array<int> beat_i_arr_;
-    Array<Moment> elt_length_arr_;
-
-    REQUESTMETHODS(Measure_grouping_req, measuregrouping);
-};
-
-struct Group_change_req : Command_req {
-    String newgroup_str_;
-    REQUESTMETHODS(Group_change_req, groupchange);
-};
-
-/** draw a (repeat)-bar. This something different than #Barcheck_req#,
-  the latter should only happen at the start of a measure.  */
-struct Bar_req : Command_req {
-    String type_str_;
-    Bar_req(String);
-    int compare(const Bar_req&)const;
-    REQUESTMETHODS(Bar_req,bar);
-};
-struct Terminate_voice_req : Command_req {
-    REQUESTMETHODS(Terminate_voice_req,terminate);
+class Barcheck_req  : public Request  {
+public:
+  bool do_equal_b (Request const *) const;
+  VIRTUAL_COPY_CONS (Music);
 };
 
-struct Group_feature_req : Command_req {
-    int stemdir_i_;
-    Group_feature_req();
-    REQUESTMETHODS(Group_feature_req, groupfeature);
+class Breathing_sign_req : public Request {
+  VIRTUAL_COPY_CONS (Music);
 };
 
-
-struct Key_change_req : Command_req {
-    Array<Melodic_req*> melodic_p_arr_;
-
-    Key_change_req();
-    Key_change_req(Key_change_req const&);
-    ~Key_change_req();
-    REQUESTMETHODS(Key_change_req, keychange);
-};
-
-struct Clef_change_req : Command_req {
-    String clef_str_;
-    Clef_change_req(String);
-    REQUESTMETHODS(Clef_change_req, clefchange);
+/**
+    Handle key changes.
+*/
+class Key_change_req  : public Request
+{
+public:
+  SCM pitch_alist ();
+  
+protected:
+  VIRTUAL_COPY_CONS (Music);
+  bool do_equal_b (Request const * ) const;
+  void transpose (Pitch  d);
 };
 
 #endif // COMMANDREQUEST_HH
+