]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/musical-request.hh
release: 0.1.15
[lilypond.git] / lily / include / musical-request.hh
index 64328afc97688b28d6875fc88c979f0a88d9e179..5ebe4cb3a382b390e7073c5e83ec32dada0ef803 100644 (file)
@@ -28,6 +28,7 @@ public:
   virtual Melodic_req *melodic() { return 0; }
   virtual Slur_req *slur() { return 0 ; }
   virtual Beam_req *beam() { return 0 ; }
+  virtual Abbreviation_beam_req* abbrev_beam() { return 0 ; }
   virtual Rhythmic_req*rhythmic() { return 0; }
   virtual Musical_script_req*musicalscript() { return 0; }
   virtual Text_req*text() { return 0; }
@@ -37,6 +38,7 @@ public:
   virtual Absolute_dynamic_req * absdynamic() { return 0; }
   virtual Tie_req * tie() { return 0; }
   virtual Span_dynamic_req * span_dynamic() { return 0; }
+  virtual Abbreviation_req* abbrev() { return 0; }
   REQUESTMETHODS(Musical_req, musical);
 };
 
@@ -62,6 +64,7 @@ class Skip_req  : public Rhythmic_req  {
 public:
   REQUESTMETHODS(Skip_req, skip);
 };
+
 struct Spacing_req :virtual Request {
   Moment next;
   Real distance;
@@ -71,6 +74,12 @@ struct Spacing_req :virtual Request {
   REQUESTMETHODS(Spacing_req, spacing);
 };
 
+struct Abbreviation_req : public Musical_req {
+  REQUESTMETHODS (Abbreviation_req, abbrev);
+  Abbreviation_req ();
+  int type_i_;
+};
+
 class Blank_req  : public Spacing_req, Rhythmic_req  {
 public:
   REQUESTMETHODS(Spacing_req, spacing);
@@ -177,6 +186,18 @@ public:
   Beam_req();
 };
 
+/** 
+ Start / stop an abbreviation beam at this note. 
+ */
+class Abbreviation_beam_req : public Span_req  {
+public:
+  REQUESTMETHODS (Abbreviation_beam_req, abbrev_beam);
+
+  Abbreviation_beam_req ();
+
+  int type_i_;
+};
+
 /**
   Start a tie at this voice element, end it at the next
  */
@@ -200,17 +221,23 @@ public:
 
 class Dynamic_req  : public virtual Musical_req  {
 public:
-  /// for absolute dynamics
+  /**
+    for absolute dynamics
+
+    This sux. We'd want increasing numbers for FFF till PPP, but not 
+    for FP, SF, SFZ (FP is *not* louder than FFF)
+   */
   enum Loudness {
-    FFF, FF, F, MF, MP, P, PP, PPP
+    FFF, FF, F, MF, MP, P, PP, PPP, FP, SF, SFZ
   };
-  static String loudness_str (Loudness);
+  static String loudness_static_str (Loudness);
   REQUESTMETHODS(Dynamic_req, dynamic);
 };
 
 class Absolute_dynamic_req  : public Dynamic_req  {
 public:
   Loudness loudness_;
+  String loudness_str () const;
   Absolute_dynamic_req();
   REQUESTMETHODS(Absolute_dynamic_req, absdynamic);
 };