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; }
virtual Dynamic_req* dynamic() { return 0; }
virtual Absolute_dynamic_req * absdynamic() { return 0; }
virtual Tie_req * tie() { return 0; }
+ virtual Plet_req* plet() { return 0; }
virtual Span_dynamic_req * span_dynamic() { return 0; }
+ virtual Abbreviation_req* abbrev() { return 0; }
REQUESTMETHODS(Musical_req, musical);
};
public:
REQUESTMETHODS(Skip_req, skip);
};
+
struct Spacing_req :virtual Request {
Moment next;
Real distance;
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);
int height() const;
/// transpose. #delta# is relative to central c.
- void transpose (Melodic_req const &delta);
+ virtual void transpose (Melodic_req const *delta);
/// return pitch from central c (in halfnotes)
int pitch() const;
Melodic_req();
class Span_req : public virtual Musical_req {
public:
/// should the spanner start or stop, or is it unwanted?
- enum {
+ enum Spantype {
NOSPAN, START, STOP
- } spantype ;
+ } spantype;
bool do_equal_b (Request*) const;
REQUESTMETHODS(Span_req,span);
};
-/** Start / stop a beam at this note. if #nplet# is set, the staff
-will try to put an appropriate number over the beam */
+/** Start / stop a beam at this note */
class Beam_req : public Span_req {
public:
- int nplet;
-
/* *************** */
REQUESTMETHODS(Beam_req,beam);
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
*/
};
+/// a plet (bracket with) number
+class Plet_req : public Span_req {
+public:
+ int plet_i_;
+
+ REQUESTMETHODS(Plet_req,plet);
+
+ Plet_req ();
+};
+
class Musical_script_req : public Musical_req, public Script_req {
public:
REQUESTMETHODS(Musical_script_req, musicalscript);
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_;
+ virtual bool do_equal_b (Request*) const;
+ String loudness_str () const;
Absolute_dynamic_req();
REQUESTMETHODS(Absolute_dynamic_req, absdynamic);
};