source file of the GNU LilyPond music typesetter
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "lily-proto.hh"
#include "request.hh"
#include "duration.hh"
-#include "musical-pitch.hh"
-
+#include "pitch.hh"
+#include "array.hh"
/** a request with a duration.
This request is used only used as a base class.
*/
class Rhythmic_req : public virtual Request {
public:
- Duration duration_;
- virtual void do_print () const;
-
- bool do_equal_b (Request*) const;
+ bool do_equal_b (Request const*) const;
void compress (Moment);
virtual Moment length_mom () const;
static int compare (Rhythmic_req const&,Rhythmic_req const&);
- VIRTUAL_COPY_CONS(Music);
+ VIRTUAL_COPY_CONS (Music);
};
class Skip_req : public Rhythmic_req {
public:
- VIRTUAL_COPY_CONS(Music);
+ VIRTUAL_COPY_CONS (Music);
};
-struct Abbreviation_req : public Request {
- VIRTUAL_COPY_CONS (Abbreviation_req);
- Abbreviation_req ();
- int type_i_;
- virtual void do_print () const;
+struct Tremolo_req : public Request {
+ VIRTUAL_COPY_CONS (Music);
+ Tremolo_req ();
};
+struct Chord_tremolo_notify_req : public Request
+{
-/** a syllable or lyric is a string with rhythm.
- */
-class Lyric_req : public Rhythmic_req {
-public:
- virtual void do_print () const;
- String text_str_;
- VIRTUAL_COPY_CONS(Music);
+ Rational factor_;
+ VIRTUAL_COPY_CONS(Chord_tremolo_notify_req);
+ Chord_tremolo_notify_req();
};
-class Articulation_req : public G_script_req
+/**
+ a syllable or lyric is a string with rhythm.
+ */
+class Lyric_req : public Rhythmic_req
{
-public:
- String articulation_str_;
protected:
- virtual bool do_equal_b (Request*) const;
- virtual void do_print () const;
- VIRTUAL_COPY_CONS(Music);
+ VIRTUAL_COPY_CONS (Music);
};
-class Text_script_req : public G_script_req {
+
+class Articulation_req : public Script_req
+{
public:
- String text_str_;
+ String get_articulation_string ();
+protected:
+ virtual bool do_equal_b (Request const*) const;
- // should be generic property of some kind..
- String style_str_;
+ VIRTUAL_COPY_CONS (Music);
+};
+
+class Text_script_req : public Script_req
+{
protected:
- VIRTUAL_COPY_CONS(Music);
- virtual void do_print () const;
+ VIRTUAL_COPY_CONS (Music);
+ virtual bool do_equal_b (Request const*) const;
};
+class String_number_req : public Script_req
+{
+protected:
+ VIRTUAL_COPY_CONS (Music);
+ virtual bool do_equal_b (Request const*) const;
+};
/// request which has some kind of pitch
struct Melodic_req :virtual Request
{
- Musical_pitch pitch_;
-
static int compare (Melodic_req const&,Melodic_req const&);
protected:
- /// transpose. #delta# is relative to central c.
- virtual void transpose (Musical_pitch delta);
- virtual bool do_equal_b (Request*) const;
- virtual void do_print () const;
- VIRTUAL_COPY_CONS(Music);
-};
+ virtual bool do_equal_b (Request const*) const;
-/// specify tonic of a chord
-struct Tonic_req : public Melodic_req
-{
- VIRTUAL_COPY_CONS(Music);
+ VIRTUAL_COPY_CONS (Music);
};
-/// Put a note of specified type, height, and with accidental on the staff.
-class Note_req : public Rhythmic_req, virtual public Melodic_req {
-public:
-
- /// force/supress printing of accidental.
+/*
+ Put a note of specified type, height, and with accidental on the staff.
+ /// force/supress printing of accidental.
bool forceacc_b_;
/// Cautionary, i.e. parenthesized accidental.
bool cautionary_b_;
- Note_req();
+
+ */
+class Note_req : public Rhythmic_req, virtual public Melodic_req {
+public:
+
+ Note_req ();
protected:
- virtual void do_print () const;
- bool do_equal_b (Request*) const;
- VIRTUAL_COPY_CONS(Music);
+
+ bool do_equal_b (Request const*) const;
+ VIRTUAL_COPY_CONS (Music);
};
/**
*/
class Rest_req : public Rhythmic_req {
public:
- VIRTUAL_COPY_CONS(Music);
+ VIRTUAL_COPY_CONS (Music);
};
-/**
- Part: typeset a measure with the number of measures rest
- Score: typeset all individual measures ass full rests
+
+/// an extender line
+class Extender_req : public Request {
+public:
+ VIRTUAL_COPY_CONS (Music);
+};
+
+/// a centred hyphen
+class Hyphen_req : public Request {
+public:
+ VIRTUAL_COPY_CONS (Music);
+};
+
+/** is anyone playing a note?
+ Used for communication between Music & Lyrics
*/
-class Multi_measure_rest_req : public Rhythmic_req {
+class Busy_playing_req : public Request
+{
public:
- VIRTUAL_COPY_CONS(Music);
+ VIRTUAL_COPY_CONS (Music);
};
-/// an extender line
-class Extender_req : public Request {
+
+
+/**
+ instruct lyric context to alter typesetting. */
+class Melisma_req : public Span_req
+{
+public:
+ VIRTUAL_COPY_CONS (Music);
+};
+
+
+/**
+ Helping req to signal start of a melisma from within a context, and
+ to */
+class Melisma_playing_req : public Request
+{
+public:
+ VIRTUAL_COPY_CONS (Music);
+};
+
+class Arpeggio_req : public Request
+{
+public:
+ VIRTUAL_COPY_CONS (Music);
+};
+
+class Glissando_req : public Request
+{
+public:
+ VIRTUAL_COPY_CONS (Music);
+};
+
+class Bass_figure_req: public Rhythmic_req
+{
public:
VIRTUAL_COPY_CONS(Music);
};