From 1d7d22c0171288be6009b68e611beaed18be993c Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sun, 4 Apr 1999 00:42:55 +0200 Subject: [PATCH] patch::: 1.1.37.script1 pl 37.script1 - major Script rehack. - junked Text_def, changed \property textstyle -> \property textStyle (todo -> convert-mudela) - Line_of_score is an Axis_group_element, no more overlapping lines, hopefully. - mf: whole diamond head tweak --- Generated by hanwen@cs.uu.nl using package-diff 0.62, From = lilypond-1.1.37, To = lilypond-1.1.37.script1 usage cd lilypond-source-dir; patch -E -p1 < lilypond-1.1.37.script1.diff Patches do not contain automatically generated files or (urg) empty directories, i.e., you should rerun autoconf, configure and possibly make outdirs. --state 1.1.37 1.1.37.script1 ++state --- NEWS | 17 ++- TODO | 10 +- VERSION | 2 +- input/test/hara-kiri.ly | 6 +- lily/axis-align-item.cc | 8 +- lily/axis-group-spanner.cc | 13 +- lily/command-request.cc | 53 +------ lily/direction.cc | 5 +- lily/extender-engraver.cc | 1 - lily/g-script-engraver.cc | 135 +++++++++++++++++ lily/g-script.cc | 69 +++++++++ lily/g-staff-side.cc | 29 ++-- lily/g-stem-staff-side.cc | 55 +++++++ lily/general-script-def.cc | 2 + lily/identifier.cc | 5 - lily/include/axis-align-item.hh | 3 +- lily/include/axis-group-spanner.hh | 4 +- lily/include/clef-item.hh | 2 +- lily/include/command-request.hh | 84 ++++++----- lily/include/g-script-engraver.hh | 31 ++++ lily/include/g-script.hh | 39 +++++ lily/include/g-staff-side.hh | 15 +- lily/include/g-stem-staff-side.hh | 40 +++++ lily/include/g-text-item.hh | 3 + lily/include/general-script-def.hh | 2 + lily/include/identifier.hh | 3 +- lily/include/lily-proto.hh | 3 + lily/include/line-of-score.hh | 15 +- lily/include/lookup.hh | 2 +- lily/include/lookup.hh.orig | 61 ++++++++ lily/include/ly-symbols.hh | 1 + lily/include/musical-request.hh | 128 ++++++++-------- lily/include/paper-outputter.hh | 2 +- lily/include/request.hh | 32 ++-- lily/include/script-def.hh | 1 + lily/include/script-engraver.hh | 30 ---- lily/include/super-element.hh | 12 +- lily/include/text-def.hh | 40 ----- lily/include/text-spanner.hh | 41 ----- lily/include/tuplet-spanner.hh | 9 +- lily/include/volta-spanner.hh | 6 +- lily/line-of-score.cc | 70 +++++---- lily/lookup.cc | 11 +- lily/lyric-performer.cc | 1 - lily/multi-measure-rest.cc | 9 +- lily/music-output-def.cc | 2 + lily/musical-request.cc | 182 ++-------------------- lily/p-score.cc | 3 +- lily/paper-outputter.cc | 6 +- lily/parser.yy | 232 ++++++++++++----------------- lily/repeat-engraver.cc | 8 +- lily/rhythmic-column-engraver.cc | 2 +- lily/score-element.cc | 7 +- lily/score-engraver.cc | 7 +- lily/script-column.cc | 4 +- lily/script-def.cc | 94 ------------ lily/script-engraver.cc | 97 ------------ lily/script.cc | 2 +- lily/slur-engraver.cc | 5 +- lily/spanner.cc | 15 +- lily/super-element.cc | 7 - lily/text-def.cc | 65 -------- lily/text-engraver.cc | 27 ++-- lily/text-spanner.cc | 96 ------------ lily/time-signature-performer.cc | 11 +- lily/tuplet-engraver.cc | 7 +- lily/tuplet-spanner.cc | 9 +- lily/volta-spanner.cc | 21 +-- ly/engraver.ly | 3 +- ly/script.ly | 93 ++++-------- mf/feta-bolletjes.mf | 2 +- scm/lily.scm | 17 ++- scm/script.scm | 38 +++++ 73 files changed, 971 insertions(+), 1201 deletions(-) create mode 100644 lily/g-script-engraver.cc create mode 100644 lily/g-script.cc create mode 100644 lily/g-stem-staff-side.cc create mode 100644 lily/include/g-script-engraver.hh create mode 100644 lily/include/g-script.hh create mode 100644 lily/include/g-stem-staff-side.hh create mode 100644 lily/include/lookup.hh.orig delete mode 100644 lily/include/script-engraver.hh delete mode 100644 lily/include/text-def.hh delete mode 100644 lily/include/text-spanner.hh delete mode 100644 lily/script-def.cc delete mode 100644 lily/script-engraver.cc delete mode 100644 lily/text-def.cc delete mode 100644 lily/text-spanner.cc create mode 100644 scm/script.scm diff --git a/NEWS b/NEWS index f56f8067e8..c22ee296aa 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,19 @@ -pl 37.mb1 +--- ../lilypond-1.1.37/NEWS Wed Mar 31 21:50:35 1999 +++ b/NEWS Sun Apr 4 00:42:55 1999 +@@ -1,4 +1,13 @@ +pl 37.script1 + - major Script rehack. + - junked Text_def, changed \property textstyle -> \property textStyle +(todo -> convert-mudela) + - Line_of_score is an Axis_group_element, no more overlapping +lines, hopefully. + - mf: whole diamond head tweak + +***** +pl 37 (march 30, 1999) + - diamond heads (probably really ugly). + - cross head. + - tweaked harmonic head a bit.pl 37.mb1 - Added property restStyle. - mensural 4th, 8th and 16th rests. diff --git a/TODO b/TODO index 328e9d3615..d87dbf09f7 100644 --- a/TODO +++ b/TODO @@ -16,7 +16,6 @@ Grep for TODO and ugh/ugr/urg. > lines from the staff to the note will have a blob too. For example, > with the note "a4" there will be a black note at the ledger line where > "c" would be too. However, only the "a4" will have the extra blob. - . * ps/lily.ps . * AFM for BlueSky AFM files. . * devise standard for functioning of Vertical_align_element. @@ -24,6 +23,7 @@ Grep for TODO and ugh/ugr/urg. . * staff size for post/prebreaks . * .ly files . * input/star-spangled-banner +. * input/scripts.ly . * mutopia/J.S.Bach/wtk1-fugue2.ly . * input/test/grace . * fix: text on rests: ridiculous dims @@ -84,6 +84,7 @@ specify the third. Should there be? .* TODO before 1.2 . * \selectmusic to cut pieces from music. +. * TODO: merge atom & molecule; make tree from molecule. . * break priority setting from SCM. . * Gade score . * remove [] in favour of auto-beamer @@ -128,11 +129,10 @@ compilation. . * fix Repeated_music design . * one big ly2dvi input that includes *all* tests. . * store req -> element, element -> element causes for warnings -. * junk Text_def, use G_text_item in stead. +. * use G_text_item in stead. . * junk Script_def . * include examples in RPM. . * fix partial measures in meaningful way. - . * add scripts to bars eg. |^"bla" . * relative mode for mi2mu . * uniformise recent feta contributions. @@ -167,10 +167,10 @@ length? . * fix convert-mudela manpage . * decimal point in \paper {} . * { \voiceone [g''8 fis'' e''] d''4 |} - and=20 + and { \voicetwo d'4 d'2.*2/3 } spacing . * tied notes for MIDI -. * sharp /flat on trills (in MIDI ??) +. * sharp / flat on trills (in MIDI ??) . * scm-ify \property values. . * move class Lookup {} into scm . * msgfmt -o check? diff --git a/VERSION b/VERSION index 5be3db6e5e..a412d44357 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 PATCH_LEVEL=37 -MY_PATCH_LEVEL=mb1 +MY_PATCH_LEVEL=script1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/test/hara-kiri.ly b/input/test/hara-kiri.ly index 3acad5cad5..bdfbe78404 100644 --- a/input/test/hara-kiri.ly +++ b/input/test/hara-kiri.ly @@ -29,7 +29,7 @@ toeters = \type Staff = toeters < \toeter_ii > -zager = \type Staff = zager \notes \relative c { +zager = \type Staff = zager \notes \relative c'' { \clef bass; \property Staff.instrument = "Zager" \property Staff.instr = "Zag." @@ -45,7 +45,7 @@ zager = \type Staff = zager \notes \relative c { f e d c } -zoger = \type Staff = zoger \notes \relative c { +zoger = \type Staff = zoger \notes \relative c'' { \clef bass; \property Staff.instrument = "Zoger" \property Staff.instr = "Zog." @@ -76,7 +76,7 @@ zagers = \type GrandStaff < > \paper{ linewidth = 40.0\mm; - \translator { \HaraKiriStaffContext } +% \translator { \HaraKiriStaffContext } %uh? % \translator { \OrchestralScoreContext } % \translator { \OrchestralPartStaffContext } diff --git a/lily/axis-align-item.cc b/lily/axis-align-item.cc index a8859ba588..8990872b21 100644 --- a/lily/axis-align-item.cc +++ b/lily/axis-align-item.cc @@ -1,5 +1,5 @@ /* - axis-align-item.cc -- implement + axis-align-item.cc -- implement Axis_align_item source file of the GNU LilyPond music typesetter @@ -12,3 +12,9 @@ Axis_align_item::Axis_align_item () { } + +void +Axis_align_item::do_print () const +{ + Axis_group_item::do_print (); +} diff --git a/lily/axis-group-spanner.cc b/lily/axis-group-spanner.cc index 58214f5137..b625c6c6b3 100644 --- a/lily/axis-group-spanner.cc +++ b/lily/axis-group-spanner.cc @@ -34,15 +34,24 @@ Axis_group_spanner::do_break_processing_if_unbroken() item_l->find_prebroken_piece (my_line); add_element (broken_item_l); } - remove_element (elems[i]); + + Spanner *spanner_l = dynamic_cast (elems[i]); + if (spanner_l) + { + Spanner *broken_spanner_l = + spanner_l->find_broken_piece (my_line); + add_element (broken_spanner_l); + } + remove_element (elems[i]); } + } } void Axis_group_spanner::do_break_processing() { - DOUT << "do_break_processing ()\n"; + bool breaking_self_b = ! Spanner::line_l(); if (!breaking_self_b) { diff --git a/lily/command-request.cc b/lily/command-request.cc index 904c74da9a..84ff56f9f7 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -10,17 +10,6 @@ #include "debug.hh" #include "musical-request.hh" -void -Command_script_req::do_print() const -{} -Command_script_req::Command_script_req(){} -Command_script_req::~Command_script_req(){} - - - - - - void Cadenza_req::do_print() const { @@ -58,14 +47,11 @@ Bar_req::do_equal_b (Request*r) const void Bar_req::do_print() const { +#ifndef NPRINT DOUT << type_str_; +#endif } -void -Bracket_req::do_print () const -{ - Span_req::do_print (); -} Bar_req::Bar_req (String s) { @@ -87,21 +73,6 @@ Partial_measure_req::do_equal_b (Request* r) const - -void -Timing_req::do_print() const{} - - - - -void -Command_req::do_print() const{} - - - -void -Barcheck_req::do_print() const{} - bool Barcheck_req::do_equal_b (Request*r) const { @@ -109,9 +80,6 @@ Barcheck_req::do_equal_b (Request*r) const return b; } - - - void Clef_change_req::do_print() const { @@ -125,11 +93,6 @@ Clef_change_req::Clef_change_req (String s) clef_str_ = s; } - - - - - void Partial_measure_req::do_print() const { @@ -184,11 +147,6 @@ Tempo_req::do_equal_b (Request *r) const return t&& t->dur_.length_mom ()== dur_.length_mom () && metronome_i_ == t->metronome_i_; } - - - - - void Measure_grouping_req::do_print() const { @@ -333,13 +291,6 @@ Break_req::Break_req () penalty_i_ = 0; } -void -Break_req::do_print () const -{ -} - - - Mark_req::Mark_req (String s) { str_ = s; diff --git a/lily/direction.cc b/lily/direction.cc index a0ac3e6bbf..f4b46b1f5e 100644 --- a/lily/direction.cc +++ b/lily/direction.cc @@ -9,8 +9,8 @@ #include "direction.hh" -#if 0 -String direction_str (Direction d, Axis a) +String +direction_str (Direction d, Axis a) { String s("center"); if (a == Y_AXIS) @@ -23,4 +23,3 @@ String direction_str (Direction d, Axis a) } return s; } -#endif diff --git a/lily/extender-engraver.cc b/lily/extender-engraver.cc index f0478bebe2..1f616ec795 100644 --- a/lily/extender-engraver.cc +++ b/lily/extender-engraver.cc @@ -8,7 +8,6 @@ #include "musical-request.hh" #include "extender-engraver.hh" #include "extender-spanner.hh" -#include "text-def.hh" #include "score-column.hh" #include "g-text-item.hh" diff --git a/lily/g-script-engraver.cc b/lily/g-script-engraver.cc new file mode 100644 index 0000000000..7ddb4f7028 --- /dev/null +++ b/lily/g-script-engraver.cc @@ -0,0 +1,135 @@ +/* + script-engraver.cc -- implement G_script_engraver + + (c) 1997--1999 Han-Wen Nienhuys +*/ + +#include "g-script-engraver.hh" +#include "g-script.hh" +#include "g-stem-staff-side.hh" +#include "musical-request.hh" +#include "stem.hh" +#include "staff-symbol.hh" +#include "rhythmic-head.hh" + +G_script_engraver::G_script_engraver() +{ + do_post_move_processing(); +} + +bool +G_script_engraver::do_try_music (Music *r_l) +{ + if (Articulation_req *mr = dynamic_cast (r_l)) + { + for (int i=0; i < script_req_l_arr_.size(); i++) + { + if (script_req_l_arr_[i]->equal_b (mr)) + return true; + } + script_req_l_arr_.push (mr); + return true; + } + return false; +} + +void +G_script_engraver::do_process_requests() +{ + for (int i=0; i < script_req_l_arr_.size(); i++) + { + Articulation_req* l=script_req_l_arr_[i]; + + + SCM list = gh_eval_str (("(articulation-to-scriptdef \"" + l->articulation_str_ + "\")").ch_C()); + + if (list == SCM_BOOL_F) + { + l->warning(_f("don't know how to interpret articulation `%s'\n", + l->articulation_str_.ch_C())); + continue; + } + G_script *p =new G_script; + G_stem_staff_side_item * ss =new G_stem_staff_side_item; + list = SCM_CDR (list); + + p->indices_drul_[LEFT] = ly_scm2string(SCM_CAAR (list)); + p->indices_drul_[RIGHT] = ly_scm2string(SCM_CDAR (list)); + list = SCM_CDR(list); + bool follow_staff = gh_scm2bool (SCM_CAR(list)); + list = SCM_CDR(list); + int relative_stem_dir = gh_scm2int (SCM_CAR(list)); + list = SCM_CDR(list); + int force_dir =gh_scm2int (SCM_CAR(list)); + list = SCM_CDR(list); + SCM priority = SCM_CAR(list); + + if (relative_stem_dir) + ss->relative_dir_ = relative_stem_dir; + else + ss->dir_ = force_dir; + + if (l->dir_) + ss->dir_ = l->dir_; + + ss->staff_support_b_ = !follow_staff; + p->set_staff_side (ss); + ss->set_elt_property (script_priority_scm_sym, priority); + ss->set_elt_property (padding_scm_sym, gh_double2scm(1.0)); + script_p_arr_.push (p); + staff_side_p_arr_.push (ss); + + announce_element (Score_element_info (p, l)); + announce_element (Score_element_info (ss, l)); + } +} + +void +G_script_engraver::acknowledge_element (Score_element_info inf) +{ + if (Stem *s = dynamic_cast(inf.elem_l_)) + { + for (int i=0; i < staff_side_p_arr_.size(); i++) + if (G_stem_staff_side_item * ss = dynamic_cast(staff_side_p_arr_[i])) + { + ss->set_stem (s); + ss->add_support (s); + } + } + else if (Rhythmic_head * rh = dynamic_cast(inf.elem_l_)) + { + for (int i=0; i < staff_side_p_arr_.size(); i++) + { + G_staff_side_item * ss = dynamic_cast(staff_side_p_arr_[i]); + + if (!ss->dim_cache_[X_AXIS].parent_l_) + { + ss->dim_cache_[X_AXIS].parent_l_ = &inf.elem_l_->dim_cache_[X_AXIS]; + } + ss->add_support (rh); + } + } +} + +void +G_script_engraver::do_pre_move_processing() +{ + for (int i=0; i < script_p_arr_.size(); i++) + { + typeset_element (script_p_arr_[i]); + typeset_element (staff_side_p_arr_[i]); + } + script_p_arr_.clear(); + staff_side_p_arr_.clear (); +} + +void +G_script_engraver::do_post_move_processing() +{ + script_req_l_arr_.clear(); +} + + + +ADD_THIS_TRANSLATOR(G_script_engraver); + diff --git a/lily/g-script.cc b/lily/g-script.cc new file mode 100644 index 0000000000..9ad7c9aca2 --- /dev/null +++ b/lily/g-script.cc @@ -0,0 +1,69 @@ +/* + g-script.cc -- implement G_script + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +/* + + TODO: Quantisation support (staccato dots between stafflines) + +*/ + +#include "g-script.hh" +#include "lookup.hh" +#include "g-staff-side.hh" + +G_script::G_script () +{ + staff_side_l_ =0; +} + +void +G_script::do_substitute_element_pointer (Score_element*o, Score_element*n) +{ + if (o == staff_side_l_) + staff_side_l_ = dynamic_cast(n); +} + + + +Molecule +G_script::get_molecule(Direction d) const +{ + return lookup_l ()->afm_find ("scripts-" + indices_drul_[d]); +} + + +void +G_script::do_pre_processing () +{ + Graphical_element * e + = staff_side_l_->dim_cache_[X_AXIS].parent_l_->element_l(); + translate_axis (e->extent (X_AXIS).center (), X_AXIS); +} + +void +G_script::do_post_processing () +{ + Direction d = staff_side_l_->dir_; + Molecule m (get_molecule(d)); + translate_axis (- m.dim_[Y_AXIS][Direction (-d)], Y_AXIS); +} + +void +G_script::set_staff_side (G_staff_side_item*g) +{ + staff_side_l_ = g; + add_dependency (g); + dim_cache_[Y_AXIS].parent_l_ = & g->dim_cache_[Y_AXIS]; +} + +Molecule* +G_script::do_brew_molecule_p () const +{ + return new Molecule (get_molecule (staff_side_l_->dir_)); +} diff --git a/lily/g-staff-side.cc b/lily/g-staff-side.cc index 20812e55ad..db1b29cd69 100644 --- a/lily/g-staff-side.cc +++ b/lily/g-staff-side.cc @@ -15,25 +15,26 @@ G_staff_side_item::G_staff_side_item () dir_ = CENTER; to_position_l_ = 0; set_elt_property (transparent_scm_sym, SCM_BOOL_T); - + staff_support_b_ = true; axis_ = Y_AXIS; } + void G_staff_side_item::do_pre_processing () { if (!dir_) - set_default_direction (); + dir_ = get_default_direction (); if (axis_ == X_AXIS) position_self (); } -void -G_staff_side_item::set_default_direction () +Direction +G_staff_side_item::get_default_direction () const { - dir_ = DOWN; + return DOWN; } @@ -66,6 +67,7 @@ G_staff_side_item::do_substitute_element_pointer (Score_element*o, Score_element void G_staff_side_item::position_self () { + Interval dim; Dimension_cache *common = 0; if (support_l_arr_.size ()) @@ -85,15 +87,21 @@ G_staff_side_item::position_self () dim = Interval(0,0); common = dim_cache_[axis_].parent_l_; } - Interval sym_dim = to_position_l_->extent (axis_); + + + Interval sym_dim + = to_position_l_ + ? to_position_l_->extent (axis_) + : Interval(0,0); + Real off = dim_cache_[axis_].relative_coordinate (common); - SCM pad = remove_elt_property (padding_scm_sym); + SCM pad = remove_elt_property (padding_scm_sym); if (pad != SCM_BOOL_F) { - off -= gh_scm2double (SCM_CDR(pad)) * dir_; + off += gh_scm2double (SCM_CDR(pad)) * dir_; } - dim_cache_[axis_].set_offset (dim[dir_] - sym_dim[-dir_] - off); + dim_cache_[axis_].set_offset (dim[dir_] - sym_dim[-dir_] + off); } void @@ -107,7 +115,8 @@ G_staff_side_item::do_post_processing () void G_staff_side_item::do_add_processing () { - if (axis_ == Y_AXIS && staff_symbol_l ()) + if (staff_support_b_ + && axis_ == Y_AXIS && staff_symbol_l ()) { add_support (staff_symbol_l ()); } diff --git a/lily/g-stem-staff-side.cc b/lily/g-stem-staff-side.cc new file mode 100644 index 0000000000..446e0649a6 --- /dev/null +++ b/lily/g-stem-staff-side.cc @@ -0,0 +1,55 @@ +/* + g-stem-staff-side.cc -- implement G_stem_staff_side + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#include "g-stem-staff-side.hh" +#include "stem.hh" + +G_stem_staff_side_item::G_stem_staff_side_item () +{ + stem_l_ =0; + relative_dir_ = CENTER; +} + +void +G_stem_staff_side_item::do_substitute_element_pointer (Score_element*o, + Score_element*n) +{ + if (o == stem_l_) + { + stem_l_ = dynamic_cast (n); + } +} + +void +G_stem_staff_side_item::set_stem (Stem*s) +{ + stem_l_ =s; + add_dependency (s); +} + + +Direction +G_stem_staff_side_item::get_default_direction () const +{ + return relative_dir_ * stem_l_->dir_; +} + +void +G_stem_staff_side_item::do_pre_processing () +{ + SCM p = remove_elt_property (padding_scm_sym); + if (p != SCM_BOOL_F && stem_l_) + { + p = SCM_CDR (p); + set_elt_property (padding_scm_sym, + gh_double2scm(stem_l_->staff_line_leading_f () + * gh_scm2double (p))); + } + G_staff_side_item :: do_pre_processing (); +} diff --git a/lily/general-script-def.cc b/lily/general-script-def.cc index c69988242f..a425c9f387 100644 --- a/lily/general-script-def.cc +++ b/lily/general-script-def.cc @@ -1,3 +1,4 @@ + /* general-script-def.cc -- implement General_script_def @@ -70,3 +71,4 @@ General_script_def::get_molecule (Paper_def*, Direction) const + diff --git a/lily/identifier.cc b/lily/identifier.cc index bf9205579f..8419dd3607 100644 --- a/lily/identifier.cc +++ b/lily/identifier.cc @@ -13,7 +13,6 @@ #include "identifier.hh" #include "my-lily-lexer.hh" #include "debug.hh" -#include "script-def.hh" #include "request.hh" #include "translator.hh" #include "notename-table.hh" @@ -82,7 +81,6 @@ Class ## _identifier::do_print () const { \ -DEFAULT_PRINT(General_script_def); DEFAULT_PRINT(Translator); DEFAULT_PRINT(Music); DEFAULT_PRINT(Request); @@ -99,7 +97,6 @@ Class ## _identifier::do_str () const { \ DUMMY_STR(Notename_table); -DUMMY_STR(General_script_def); DUMMY_STR(Translator); DUMMY_STR(Music); DUMMY_STR(Request); @@ -171,7 +168,6 @@ IMPLEMENT_ID_CLASS(Translator); IMPLEMENT_ID_CLASS(int); IMPLEMENT_ID_CLASS(Real); IMPLEMENT_ID_CLASS(String); -IMPLEMENT_ID_CLASS(General_script_def); IMPLEMENT_ID_CLASS(Music); IMPLEMENT_ID_CLASS(Score); IMPLEMENT_ID_CLASS(Request); @@ -181,7 +177,6 @@ IMPLEMENT_ID_CLASS(Notename_table); VIRTUAL_ACCESSOR(Music); VIRTUAL_ACCESSOR(Request); VIRTUAL_ACCESSOR(Translator); -VIRTUAL_ACCESSOR(General_script_def); DEFAULT_ACCESSOR(Notename_table); DEFAULT_ACCESSOR(Duration); DEFAULT_ACCESSOR(int); diff --git a/lily/include/axis-align-item.hh b/lily/include/axis-align-item.hh index 659919425b..b6a0ab5231 100644 --- a/lily/include/axis-align-item.hh +++ b/lily/include/axis-align-item.hh @@ -19,7 +19,8 @@ class Axis_align_item : public virtual Align_element, public: Axis_align_item (); protected: - virtual void do_print () const {} + virtual void do_print ()const; + }; #endif /* AXIS_ALIGN_ITEM_HH */ diff --git a/lily/include/axis-group-spanner.hh b/lily/include/axis-group-spanner.hh index 40753a8a9a..0de8cc51ef 100644 --- a/lily/include/axis-group-spanner.hh +++ b/lily/include/axis-group-spanner.hh @@ -7,8 +7,8 @@ */ -#ifndef SPAN_AXIS_GROUP_HH -#define SPAN_AXIS_GROUP_HH +#ifndef AXIS_GROUP_SPANNER_HH +#define AXIS_GROUP_SPANNER_HH #include "spanner.hh" #include "axis-group-element.hh" diff --git a/lily/include/clef-item.hh b/lily/include/clef-item.hh index effd9886b5..c37277e312 100644 --- a/lily/include/clef-item.hh +++ b/lily/include/clef-item.hh @@ -7,7 +7,7 @@ #ifndef CLEFITEM_HH #define CLEFITEM_HH #include "item.hh" -#include "text-def.hh" + #include "direction.hh" #include "pointer.hh" #include "staff-symbol-referencer.hh" diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh index 75004fb803..63f8c11135 100644 --- a/lily/include/command-request.hh +++ b/lily/include/command-request.hh @@ -15,44 +15,30 @@ #include "duration.hh" #include "musical-pitch.hh" -/** Request which are assumed to be "happening" before the - musical requests. Not coupled to a note or rest. */ -class Command_req : public virtual Request { -public: - REQUESTMETHODS(Command_req); - -}; - - -class Break_req : public Command_req { +class Break_req : public Request { public: enum { DISALLOW = -10000, FORCE = 10000 }; int penalty_i_; Break_req (); - REQUESTMETHODS (Break_req); +protected: + VIRTUAL_COPY_CONS(Music); }; -class Mark_req : public Command_req { +class Mark_req : public Request { public: Mark_req (String); String str_; - REQUESTMETHODS (Mark_req); -}; - -class Command_script_req : public Command_req, public Script_req { -public: - // huh? - Command_script_req(); - ~Command_script_req(); - REQUESTMETHODS(Command_script_req); +protected: + virtual void do_print () const; + VIRTUAL_COPY_CONS(Music); }; /** Baseclass for time_signature/partial req. It has to be handled by Staff_{walker,column} baseclass. */ -class Timing_req : public Command_req { +class Timing_req : public Request { public: - REQUESTMETHODS(Timing_req); + VIRTUAL_COPY_CONS(Music); }; @@ -63,7 +49,9 @@ public: int metronome_i_; Tempo_req(); - REQUESTMETHODS(Tempo_req); +protected: + virtual void do_print () const; + VIRTUAL_COPY_CONS(Music); bool do_equal_b (Request *) const; }; @@ -72,7 +60,9 @@ public: Moment length_mom_; Partial_measure_req (Moment); - REQUESTMETHODS(Partial_measure_req); +protected: + VIRTUAL_COPY_CONS(Music); + virtual void do_print () const; bool do_equal_b (Request*) const; }; @@ -81,11 +71,14 @@ public: */ class Time_signature_change_req : public Timing_req { public: - int beats_i_, one_beat_i_; + int beats_i_; + int one_beat_i_; Time_signature_change_req(); +protected: + virtual void do_print () const; bool do_equal_b (Request*) const; - REQUESTMETHODS(Time_signature_change_req); + VIRTUAL_COPY_CONS(Music); }; /// toggle Cadenza mode @@ -93,35 +86,42 @@ class Cadenza_req : public Timing_req { public: /// turn on? bool on_b_; - bool do_equal_b (Request*) const; Cadenza_req (bool); - REQUESTMETHODS(Cadenza_req); +protected: + virtual void do_print () const; + + bool do_equal_b (Request*) const; + VIRTUAL_COPY_CONS(Music); }; /// 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); + VIRTUAL_COPY_CONS(Music); }; class Measure_grouping_req : public Timing_req { public: Array beat_i_arr_; Array elt_length_arr_; +protected: + virtual void do_print () const; bool do_equal_b (Request *) const; - REQUESTMETHODS(Measure_grouping_req); + VIRTUAL_COPY_CONS(Music); }; /** draw a (repeat)-bar. This something different than #Barcheck_req#, the latter should only happen at the start of a measure. */ -class Bar_req : public Command_req { +class Bar_req : public Request { public: String type_str_; Bar_req (String); +protected: + virtual void do_print () const; bool do_equal_b (Request*) const; - REQUESTMETHODS(Bar_req); + VIRTUAL_COPY_CONS(Music); }; @@ -130,14 +130,13 @@ public: Routines for sharps and flats are separated, so that caller may identify non-conventional keys. */ -class Key_change_req : public Command_req { +class Key_change_req : public Request { public: Array pitch_arr_; int modality_i_; bool ordinary_key_b_; Key_change_req(); - REQUESTMETHODS(Key_change_req); /// squash the octaves to 1 void squash_octaves(); @@ -146,22 +145,27 @@ public: /// return number of sharps in key int sharps_i(); + bool minor_b() const; +protected: + VIRTUAL_COPY_CONS(Music); void transpose (Musical_pitch d); - bool minor_b() const; + virtual void do_print () const; }; -class Clef_change_req : public Command_req { +class Clef_change_req : public Request { public: String clef_str_; Clef_change_req (String); - REQUESTMETHODS(Clef_change_req); +protected: + virtual void do_print () const; + VIRTUAL_COPY_CONS(Music); }; -class Bracket_req : public Span_req, public Command_req { +class Bracket_req : public Span_req { public: - REQUESTMETHODS(Bracket_req); + VIRTUAL_COPY_CONS(Music); }; diff --git a/lily/include/g-script-engraver.hh b/lily/include/g-script-engraver.hh new file mode 100644 index 0000000000..7f1774c6de --- /dev/null +++ b/lily/include/g-script-engraver.hh @@ -0,0 +1,31 @@ +/* + script-engraver.hh -- part of GNU LilyPond + + (c) 1997--1999 Han-Wen Nienhuys +*/ + + +#ifndef G_SCRIPT_GRAV +#define G_SCRIPT_GRAV + +#include "engraver.hh" + + +class G_script_engraver : public Engraver { + Link_array script_p_arr_; + Link_array staff_side_p_arr_; + Link_array script_req_l_arr_; + +public: + VIRTUAL_COPY_CONS(Translator); + + G_script_engraver(); +protected: + virtual bool do_try_music (Music*); + virtual void do_process_requests (); + virtual void do_pre_move_processing (); + virtual void do_post_move_processing (); + virtual void acknowledge_element (Score_element_info); +}; + +#endif // G_SCRIPT_GRAV diff --git a/lily/include/g-script.hh b/lily/include/g-script.hh new file mode 100644 index 0000000000..f1309638ad --- /dev/null +++ b/lily/include/g-script.hh @@ -0,0 +1,39 @@ +/* + g-script.hh -- declare G_script + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef G_STEM_SCRIPT_HH +#define G_STEM_SCRIPT_HH + +#include "item.hh" +#include "drul-array.hh" + +/** + articulation marks (and the like) that are attached to notes/stems. + Needs support from G_staff_side for proper operation. + */ +class G_script : public Item +{ + G_staff_side_item * staff_side_l_; + + Molecule get_molecule (Direction d) const; +public: + Drul_array indices_drul_; + G_script (); + void set_staff_side (G_staff_side_item*); + +protected: + virtual void do_substitute_element_pointer (Score_element*o, + Score_element*n); + virtual void do_pre_processing (); + virtual void do_post_processing (); + Molecule* do_brew_molecule_p () const; +}; + +#endif /* G_STEM_SCRIPT_HH */ + diff --git a/lily/include/g-staff-side.hh b/lily/include/g-staff-side.hh index c463360e27..5f527141e0 100644 --- a/lily/include/g-staff-side.hh +++ b/lily/include/g-staff-side.hh @@ -13,21 +13,34 @@ #include "item.hh" #include "staff-symbol-referencer.hh" +/** + Position myself next to a set of elements. Configurable in axis + and direction. + + Properties: + + padding :: Real + + Amount of extra space to add. +*/ class G_staff_side_item : public Item, public Staff_symbol_referencer { void position_self (); public: + Score_element * to_position_l_; Direction dir_; Link_array support_l_arr_; Axis axis_; + + bool staff_support_b_; G_staff_side_item (); void set_victim (Score_element*); void add_support (Score_element*); - virtual void set_default_direction (); VIRTUAL_COPY_CONS(Score_element); + virtual Direction get_default_direction () const; protected: virtual void do_add_processing (); virtual void do_substitute_element_pointer (Score_element*,Score_element*); diff --git a/lily/include/g-stem-staff-side.hh b/lily/include/g-stem-staff-side.hh new file mode 100644 index 0000000000..59e51cec9d --- /dev/null +++ b/lily/include/g-stem-staff-side.hh @@ -0,0 +1,40 @@ +/* + g-stem-staff-side.hh -- declare G_stem_staff_side + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef G_STEM_STAFF_SIDE_HH +#define G_STEM_STAFF_SIDE_HH + +#include "g-staff-side.hh" +/** + Position self, analogous to G_staff_side_item, but use Stem direction + for determining direction. + + Properties: + + padding :: Real + + Padding in staffline leading + + */ +class G_stem_staff_side_item : public G_staff_side_item +{ + Stem *stem_l_; +public: + Direction relative_dir_; + + void set_stem (Stem*); + G_stem_staff_side_item (); +protected: + virtual Direction get_default_direction ()const; + virtual void do_pre_processing (); + virtual void do_substitute_element_pointer (Score_element*o,Score_element*e); +}; + +#endif /* G_STEM_STAFF_SIDE_HH */ + diff --git a/lily/include/g-text-item.hh b/lily/include/g-text-item.hh index 2362a5d9be..c27ad99a69 100644 --- a/lily/include/g-text-item.hh +++ b/lily/include/g-text-item.hh @@ -12,6 +12,9 @@ #include "item.hh" +/** + Print a text in specified style. + */ class G_text_item : public Item { public: diff --git a/lily/include/general-script-def.hh b/lily/include/general-script-def.hh index fe76de9e74..74b2075ae7 100644 --- a/lily/include/general-script-def.hh +++ b/lily/include/general-script-def.hh @@ -10,6 +10,8 @@ #ifndef GENERAL_SCRIPT_DEF_HH #define GENERAL_SCRIPT_DEF_HH + + #include "lily-proto.hh" #include "input.hh" #include "virtual-methods.hh" diff --git a/lily/include/identifier.hh b/lily/include/identifier.hh index 0ebfc65bcd..4d705020fb 100644 --- a/lily/include/identifier.hh +++ b/lily/include/identifier.hh @@ -18,7 +18,7 @@ class Notename_table_identifier; class Translator_identifier; class Music_identifier; -class General_script_def_identifier; +class Articulation_req_identifier; class Symtables_identifier; class Midi_def_identifier; class Paper_def_identifier; @@ -54,7 +54,6 @@ struct Identifier : public Input { IDACCESSOR(Translator) IDACCESSOR(Notename_table) IDACCESSOR(Music) - IDACCESSOR(General_script_def) IDACCESSOR(Symtables) IDACCESSOR(Midi_def) IDACCESSOR(Paper_def) diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 367ff2febd..68667ae067 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -19,6 +19,7 @@ struct Abbreviation_req; struct Adobe_font_metric; struct Adobe_font_char_metric; struct All_font_metrics; +struct Articulation_req; struct Atom; struct Audio_element; struct Audio_column; @@ -81,6 +82,8 @@ struct Engraver; struct Engraver_group_engraver; struct Extender; struct Extender_req; +struct G_script; +struct G_script_req; struct G_staff_side_item; struct G_text_item; struct General_script_def; diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh index 187947afec..2410acc285 100644 --- a/lily/include/line-of-score.hh +++ b/lily/include/line-of-score.hh @@ -8,27 +8,30 @@ #define SCORELINE_HH #include "colhpos.hh" -#include "spanner.hh" +#include "axis-group-spanner.hh" #include "super-element.hh" /// the columns of a score that form one line. -class Line_of_score : public Spanner, public Super_element +class Line_of_score : public Axis_group_spanner, public Super_element { -public: Link_array cols_; +public: + Line_of_score(); - void add_element (Score_element *); - /// is #c# contained in #*this#? bool contains_b (Paper_column const *c) const; Link_array get_lines() const; Line_of_score * set_breaking (Array const&, int j) const; + + void output_all (); + void add_column (Paper_column*); + protected: + virtual void do_substitute_element_pointer (Score_element*, Score_element*); virtual Link_array get_extra_dependencies () const; - virtual Interval do_width() const; virtual void do_print() const; VIRTUAL_COPY_CONS(Score_element); }; diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index abf3434a8b..827e094f03 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -41,7 +41,7 @@ public: Molecule plet (Real dy, Real dx, Direction dir) const; Molecule rest (int, bool outside, String) const; Molecule rule_symbol (Real height, Real width) const; - Molecule script (String idx) const; + Molecule stem (Real y1_pos, Real y2_pos) const; Molecule slur (Array controls) const; Molecule streepje (int type) const; diff --git a/lily/include/lookup.hh.orig b/lily/include/lookup.hh.orig new file mode 100644 index 0000000000..abf3434a8b --- /dev/null +++ b/lily/include/lookup.hh.orig @@ -0,0 +1,61 @@ +/* + lookup.hh -- declare Lookup + + source file of the GNU LilyPond music typesetter + + (c) 1997--1999 Han-Wen Nienhuys + Jan Nieuwenhuizen +*/ + +#ifndef LOOKUP_HH +#define LOOKUP_HH + +#include "molecule.hh" +#include "fproto.hh" +#include "direction.hh" +#include "box.hh" + +/** handy interface to symbol table + */ +class Lookup +{ +public: + Lookup (); + Lookup (Lookup const&); + + Molecule simple_bar (String s, Real w) const; + Molecule accidental (int, bool cautionary) const; + Molecule afm_find (String, bool warn=true) const; + Molecule notehead (int, String) const; + + Molecule bar (String, Real height) const; + Molecule beam (Real, Real, Real) const; + Molecule clef (String) const; + Molecule dashed_slur (Array controls, Real thick, Real dash) const; + Molecule dots () const; + Molecule ledger_line (Interval) const; + Molecule fill (Box b) const; + Molecule filledbox (Box b) const; + Molecule flag (int, Direction) const; + Molecule hairpin (Real width, bool decresc, bool continued) const; + Molecule plet (Real dy, Real dx, Direction dir) const; + Molecule rest (int, bool outside, String) const; + Molecule rule_symbol (Real height, Real width) const; + Molecule script (String idx) const; + Molecule stem (Real y1_pos, Real y2_pos) const; + Molecule slur (Array controls) const; + Molecule streepje (int type) const; + Molecule text (String style, String text) const; + Molecule staff_brace (Real dy) const; + Molecule staff_bracket (Real dy) const; + Molecule volta (Real w, bool last_b) const; + Molecule special_time_signature (String, int,int) const; + Molecule time_signature (int n,int d) const; + + Paper_def * paper_l_; + + String font_name_; + Adobe_font_metric * afm_l_; +}; + +#endif // LOOKUP_HH diff --git a/lily/include/ly-symbols.hh b/lily/include/ly-symbols.hh index 1e2c85eecb..322d4ab8cb 100644 --- a/lily/include/ly-symbols.hh +++ b/lily/include/ly-symbols.hh @@ -47,6 +47,7 @@ DECLARE_LY_SYMBOL(pianobrace); DECLARE_LY_SYMBOL(placebox); DECLARE_LY_SYMBOL(rulesym); DECLARE_LY_SYMBOL(rulethickness); +DECLARE_LY_SYMBOL(script_priority); DECLARE_LY_SYMBOL(staffheight); DECLARE_LY_SYMBOL(style); DECLARE_LY_SYMBOL(text); diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index 28d949b497..1fd514cde2 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -15,84 +15,87 @@ #include "duration.hh" #include "musical-pitch.hh" -/** - A request which is coupled to a note (that has duration). - Base class only - */ -class Musical_req : public virtual Request { -public: - - - REQUESTMETHODS(Musical_req); -}; - - /** a request with a duration. This request is used only used as a base class. */ -class Rhythmic_req : public virtual Musical_req { +class Rhythmic_req : public virtual Request { public: Duration duration_; - + virtual void do_print () const; + + bool do_equal_b (Request*) const; void compress (Moment); virtual Moment length_mom () const; static int compare (Rhythmic_req const&,Rhythmic_req const&); - REQUESTMETHODS(Rhythmic_req); + VIRTUAL_COPY_CONS(Music); }; class Skip_req : public Rhythmic_req { public: - REQUESTMETHODS(Skip_req); + VIRTUAL_COPY_CONS(Music); }; -struct Spacing_req :virtual Request { - Moment next; - Real distance; - Real strength; - Spacing_req(); - REQUESTMETHODS(Spacing_req); -}; -struct Abbreviation_req : public Musical_req { - REQUESTMETHODS (Abbreviation_req); +struct Abbreviation_req : public Request { + VIRTUAL_COPY_CONS (Abbreviation_req); Abbreviation_req (); int type_i_; + virtual void do_print () const; }; -class Blank_req : public Spacing_req, Rhythmic_req { -public: - REQUESTMETHODS(Spacing_req); -}; /** a syllable or lyric is a string with rhythm. */ class Lyric_req : public Rhythmic_req { public: + virtual void do_print () const; String text_str_; - REQUESTMETHODS(Lyric_req); + VIRTUAL_COPY_CONS(Music); }; +class Articulation_req : public G_script_req +{ +public: + String articulation_str_; +protected: + virtual void do_print () const; + VIRTUAL_COPY_CONS(Music); +}; + +class Text_script_req : public G_script_req { +public: + String text_str_; + + // should be generic property of some kind.. + String style_str_; +protected: + VIRTUAL_COPY_CONS(Music); + virtual void do_print () const; +}; + /// request which has some kind of pitch -struct Melodic_req :virtual Musical_req +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); - Melodic_req(); - bool do_equal_b (Request*) const; - static int compare (Melodic_req const&,Melodic_req const&); - REQUESTMETHODS(Melodic_req); + virtual bool do_equal_b (Request*) const; + virtual void do_print () const; + VIRTUAL_COPY_CONS(Music); }; /// specify tonic of a chord struct Tonic_req : public Melodic_req { - Tonic_req (); - REQUESTMETHODS(Tonic_req); + VIRTUAL_COPY_CONS(Music); }; /// Put a note of specified type, height, and with accidental on the staff. @@ -104,8 +107,10 @@ public: /// Cautionary, i.e. parenthesized accidental. bool cautionary_b_; Note_req(); +protected: + virtual void do_print () const; bool do_equal_b (Request*) const; - REQUESTMETHODS(Note_req); + VIRTUAL_COPY_CONS(Music); }; /** @@ -113,7 +118,7 @@ Put a rest on the staff. Why a request? It might be a good idea to not typeset t */ class Rest_req : public Rhythmic_req { public: - REQUESTMETHODS(Rest_req); + VIRTUAL_COPY_CONS(Music); }; /** @@ -122,24 +127,17 @@ public: */ class Multi_measure_rest_req : public Rhythmic_req { public: - REQUESTMETHODS(Multi_measure_rest_req); + VIRTUAL_COPY_CONS(Music); }; -class Musical_span_req : public Span_req, public virtual Musical_req -{ -public: - REQUESTMETHODS(Musical_span_req); - -}; - /** Start / stop an abbreviation beam at this note. */ -class Abbreviation_beam_req : public Musical_span_req { +class Abbreviation_beam_req : public Span_req { public: - REQUESTMETHODS (Abbreviation_beam_req); + VIRTUAL_COPY_CONS(Abbreviation_beam_req); Abbreviation_beam_req (); @@ -149,46 +147,48 @@ public: /// a slur -class Slur_req : public Musical_span_req { +class Slur_req : public Span_req { public: - REQUESTMETHODS(Slur_req); + VIRTUAL_COPY_CONS(Music); }; /// an extender line class Extender_req : public Request { public: - REQUESTMETHODS(Extender_req); - Extender_req (); -}; + VIRTUAL_COPY_CONS(Music); -class Musical_script_req : public Musical_req, public Script_req { -public: - REQUESTMETHODS(Musical_script_req); }; -class Dynamic_req : public virtual Musical_req { +class Dynamic_req : public virtual Request { public: - REQUESTMETHODS(Dynamic_req); + VIRTUAL_COPY_CONS(Music); }; class Absolute_dynamic_req : public Dynamic_req { public: String loudness_str_; - virtual bool do_equal_b (Request*) const; String loudness_str () const; Absolute_dynamic_req(); - REQUESTMETHODS(Absolute_dynamic_req); + +protected: + virtual void do_print () const; + virtual bool do_equal_b (Request*) const; + VIRTUAL_COPY_CONS(Music); }; -class Span_dynamic_req : public Dynamic_req, public Musical_span_req { +class Span_dynamic_req : public Dynamic_req, public Span_req { public: - virtual bool do_equal_b (Request*) const; + /// Grow or shrink the volume: 1=cresc, -1 = decresc Direction dynamic_dir_; + Span_dynamic_req(); - REQUESTMETHODS(Span_dynamic_req); +protected: + virtual bool do_equal_b (Request*) const; + virtual void do_print () const; + VIRTUAL_COPY_CONS(Music); }; #endif // MUSICALREQUESTS_HH diff --git a/lily/include/paper-outputter.hh b/lily/include/paper-outputter.hh index ef4d41a2c2..1b62555d03 100644 --- a/lily/include/paper-outputter.hh +++ b/lily/include/paper-outputter.hh @@ -35,7 +35,7 @@ public: void output_molecule (Molecule const *, Offset, char const *); void output_comment (String s); void output_scheme (SCM scm); - void start_line (); + void start_line (Real height); void stop_line (); void switch_to_font (String fontname); diff --git a/lily/include/request.hh b/lily/include/request.hh index 8cd5e4abdd..72134e8c33 100644 --- a/lily/include/request.hh +++ b/lily/include/request.hh @@ -25,14 +25,9 @@ */ class Request : public Music { - public: - virtual ~Request(){} - - VIRTUAL_COPY_CONS(Music); - bool equal_b (Request*) const; protected: virtual bool do_equal_b (Request*) const; @@ -40,26 +35,27 @@ protected: }; -#define REQUESTMETHODS(T) \ -\ -VIRTUAL_COPY_CONS(Request);\ -virtual void do_print() const - +class G_script_req : public virtual Request +{ +public: + Direction dir_; + VIRTUAL_COPY_CONS(Music); +}; /** Put a script above or below this ``note'' or bar. eg upbow, downbow. Why a request? These symbols may conflict with slurs and brackets, so this also a request */ -class Script_req : public virtual Request { +class Script_req : public virtual G_script_req { public: - Direction dir_; General_script_def *scriptdef_p_; bool do_equal_b (Request*) const; Script_req(); - REQUESTMETHODS(Script_req); + VIRTUAL_COPY_CONS(Music); + virtual void do_print () const; ~Script_req(); Script_req (Script_req const&); }; @@ -73,10 +69,12 @@ class Span_req : public virtual Request { public: /// should the spanner start or stop, or is it unwanted? Direction spantype_; - bool do_equal_b (Request*) const; - REQUESTMETHODS(Span_req); Span_req(); +protected: + virtual bool do_equal_b (Request*) const; + virtual void do_print() const; + VIRTUAL_COPY_CONS(Music); }; /** @@ -84,13 +82,13 @@ public: */ class Tie_req : public Request { public: - REQUESTMETHODS(Tie_req); + VIRTUAL_COPY_CONS(Music); }; /** Start / stop a beam at this note */ class Beam_req : public Span_req { public: - REQUESTMETHODS(Beam_req); + VIRTUAL_COPY_CONS(Music); }; #endif diff --git a/lily/include/script-def.hh b/lily/include/script-def.hh index c0c92d4074..f3d17d75b4 100644 --- a/lily/include/script-def.hh +++ b/lily/include/script-def.hh @@ -9,6 +9,7 @@ #include "string.hh" #include "general-script-def.hh" +#error /** The characteristics of a certain kind of accent. It is not the accent itself. */ class Script_def : public General_script_def { diff --git a/lily/include/script-engraver.hh b/lily/include/script-engraver.hh deleted file mode 100644 index efa5aa6e78..0000000000 --- a/lily/include/script-engraver.hh +++ /dev/null @@ -1,30 +0,0 @@ -/* - script-engraver.hh -- part of GNU LilyPond - - (c) 1997--1999 Han-Wen Nienhuys -*/ - - -#ifndef SCRIPTGRAV_HH -#define SCRIPTGRAV_HH - -#include "engraver.hh" - - -class Script_engraver : public Engraver { - Link_array