]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/command-request.hh
release: 1.1.15
[lilypond.git] / lily / include / command-request.hh
index 11491edc4163c9fa705cc74991586b2eda8b012f..81990b4f3f29f864aa343c42aeff569b068536e1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #define COMMANDREQUEST_HH
 
 #include "request.hh"
-#include "varray.hh"
+#include "array.hh"
 #include "duration.hh"
+#include "musical-pitch.hh"
 
 /** Request which are  assumed to be "happening" before the
-  musical requests. */
+  musical requests.  Not coupled to a note or rest. */
 class Command_req  : public virtual Request  {
 public:
-  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 Disallow_break_req *disallowbreak() { return 0; }
-  virtual Timing_req*timing() {  return 0; }
-  virtual Command_script_req*commandscript() { return 0;}
-  virtual Break_force_req *forcebreak () { return 0; }
+  REQUESTMETHODS(Command_req);
+
 };
 
 
-class Break_force_req : public Command_req {
+class Break_req : public Command_req {
+public:
+  enum { DISALLOW = -10000, FORCE = 10000 };
+  int penalty_i_;
+  Break_req ();
+  REQUESTMETHODS (Break_req);
+};
+
+class Mark_req : public Command_req {
 public:
-  REQUESTMETHODS(Break_force_req, forcebreak);
+  Mark_req (String);
+  String str_;
+  REQUESTMETHODS (Mark_req);
 };
 
 class Command_script_req : public Command_req,  public Script_req {
@@ -43,22 +44,19 @@ public:
   // huh? 
   Command_script_req();
   ~Command_script_req();
-  REQUESTMETHODS(Command_script_req, commandscript);
+  REQUESTMETHODS(Command_script_req);
 };
 
-
-class Disallow_break_req : public Command_req {
+class Command_tie_req : public Command_req {
 public:
-  REQUESTMETHODS(Disallow_break_req, disallowbreak);
+  REQUESTMETHODS(Command_tie_req);
 };
 
-
-/** Baseclass for meter/partial req. It has to be handled by
+/** Baseclass for time_signature/partial req. It has to be handled by
   Staff_{walker,column} baseclass.  */
 class Timing_req  : public Command_req  {
 public:
-  REQUESTMETHODS(Timing_req, timing);
-  virtual Tempo_req * tempo(){return 0; }
+  REQUESTMETHODS(Timing_req);
 };
 
 
@@ -69,7 +67,7 @@ public:
   int metronome_i_;
 
   Tempo_req();
-  REQUESTMETHODS(Tempo_req, tempo);
+  REQUESTMETHODS(Tempo_req);
   bool do_equal_b (Request *) const;
 };
 
@@ -78,21 +76,20 @@ public:
   Moment duration_;
 
   Partial_measure_req (Moment);
-  REQUESTMETHODS(Partial_measure_req, partial);
+  REQUESTMETHODS(Partial_measure_req);
   bool do_equal_b (Request*) const;
 };
 
 /**
-  todo: allow C meter
+  todo: allow C time_signature
  */
-class Meter_change_req  : public Timing_req  {
+class Time_signature_change_req  : public Timing_req  {
 public:
   int beats_i_, one_beat_i_;
 
-  Meter_change_req();
-  void set (int,int);
+  Time_signature_change_req();
   bool do_equal_b (Request*) const;
-  REQUESTMETHODS(Meter_change_req, meterchange);
+  REQUESTMETHODS(Time_signature_change_req);
 };
 
 /// toggle Cadenza mode
@@ -102,14 +99,14 @@ public:
   bool on_b_;
   bool do_equal_b (Request*) const;
   Cadenza_req (bool);
-  REQUESTMETHODS(Cadenza_req,cadenza);
+  REQUESTMETHODS(Cadenza_req);
 };
 
 /// check if we're at start of a  measure.
 class Barcheck_req  : public Timing_req  {
 public:
   bool do_equal_b (Request *) const;
-  REQUESTMETHODS(Barcheck_req,barcheck);
+  REQUESTMETHODS(Barcheck_req);
 };
 
 class Measure_grouping_req : public Timing_req  {
@@ -117,7 +114,7 @@ public:
   Array<int> beat_i_arr_;
   Array<Moment> elt_length_arr_;
   bool do_equal_b (Request *) const;
-  REQUESTMETHODS(Measure_grouping_req, measuregrouping);
+  REQUESTMETHODS(Measure_grouping_req);
 };
 
 /** draw a (repeat)-bar. This something different than #Barcheck_req#,
@@ -128,7 +125,7 @@ public:
   Bar_req (String);
   bool do_equal_b (Request*) const;
 
-  REQUESTMETHODS(Bar_req,bar);
+  REQUESTMETHODS(Bar_req);
 };
 
 
@@ -139,15 +136,12 @@ public:
 */
 class Key_change_req  : public Command_req  {
 public:
-  Array<Melodic_req*> melodic_p_arr_;
-  bool minor_b_;
+  Array<Musical_pitch> pitch_arr_;
+  int modality_i_;
+  bool ordinary_key_b_;
 
-  /// don't ignore the  octaves in #melodic_p_arr_#?
-  bool multi_octave_b_;
   Key_change_req();
-  Key_change_req (Key_change_req const&);
-  ~Key_change_req();
-  REQUESTMETHODS(Key_change_req, keychange);
+  REQUESTMETHODS(Key_change_req);
 
   /// squash the octaves to 1
   void squash_octaves();
@@ -157,16 +151,22 @@ public:
   /// return number of sharps in key
   int sharps_i();
 
-  void transpose (Melodic_req const * d) const;
-  /// is minor key?
-  int minor_b();
+  void transpose (Musical_pitch  d);
+  bool minor_b() const;
 };
 
 class Clef_change_req  : public Command_req  {
 public:
   String clef_str_;
   Clef_change_req (String);
-  REQUESTMETHODS(Clef_change_req, clefchange);
+  REQUESTMETHODS(Clef_change_req);
 };
 
+class Bracket_req :  public Span_req, public Command_req {
+
+public:
+  REQUESTMETHODS(Bracket_req);
+};
+
+
 #endif // COMMANDREQUEST_HH