]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/musical-request.hh
release: 0.0.74pre
[lilypond.git] / lily / include / musical-request.hh
index ae4a9359395c680cff56e74a6209ce0a55677f0d..122f1c20a8954893b68283bed700584add646790 100644 (file)
 
 
 /**
-  A request which is coupled to a #Voice_element# with nonzero duration.
+  A request which is coupled to a #Voice_element#
   Base class only
  */
 class Musical_req  : public virtual Request  {
 public:
     
+    virtual Lyric_req* lreq_l() { return 0; }
+    virtual Note_req *note() { return 0;}
+    virtual Stem_req *stem() { return 0;}
+    virtual Melodic_req *melodic() { return 0; }
+    virtual Slur_req *slur() { return 0 ; }
+    virtual Beam_req *beam() { return 0 ; }
+    virtual Rhythmic_req*rhythmic() { return 0; }
+    virtual Musical_script_req*musicalscript() { return 0; }
+    virtual Text_req*text() { return 0; }
+    virtual Rest_req *rest() { return 0; }
     virtual Skip_req* skip() { return 0; }
     virtual Dynamic_req* dynamic() { return 0; }
     virtual Absolute_dynamic_req * absdynamic() { return 0; }
@@ -32,13 +42,6 @@ public:
 };
 
 
-class Skip_req  : public Musical_req  {
-public:
-    Moment duration_;
-    
-    virtual Moment duration() const;
-    REQUESTMETHODS(Skip_req, skip);
-};
 
 /** a request with a duration.
   This request is used only a base class.
@@ -55,6 +58,10 @@ public:
     REQUESTMETHODS(Rhythmic_req, rhythmic);
 };
 
+class Skip_req  : public Rhythmic_req  {
+public:
+    REQUESTMETHODS(Skip_req, skip);
+};
 struct Spacing_req :virtual Request {
     Moment next;
     Real distance;
@@ -167,21 +174,6 @@ public:
   
 };
 
-/** 
- request for backward plet generation.
-
- ugr. Place in hierarchy?
- */
-class Plet_req  : public virtual Request  {
-public:
-     char type_c_;
-     int dur_i_;
-     int type_i_;
-     Plet_req();
-     REQUESTMETHODS(Plet_req,plet);
-};
-
 /** Start / stop a beam at this note.  if #nplet# is set, the staff
 will try to put an appropriate number over the beam */
 class Beam_req  : public Span_req  {
@@ -209,23 +201,12 @@ public:
 
 };
 
-
-/** Put a script above or below this ``note''. eg upbow, downbow. Why
-  a request? These symbols may conflict with slurs and brackets, so
-  this also a request */
-class Script_req  : public Musical_req  {
+class Musical_script_req : public Musical_req,  public Script_req {
 public:
-    int dir_i_;
-    Script_def *scriptdef_p_;
-
-    /* *************** */
-    static int compare(const Script_req &, const Script_req &);
-    Script_req(int d, Script_def*);
-    REQUESTMETHODS(Script_req,script);
-    ~Script_req();
-    Script_req(Script_req const&);
+    REQUESTMETHODS(Musical_script_req, musicalscript);
 };
 
+
 /** A helper in the hierarchy. Each dynamic is bound to one note ( a
     crescendo spanning multiple notes is thought to be made of two
     "dynamics": a start and a stop).  Dynamic changes can occur in a