From 50cd172a6db15aab8f2b5cbb5f65b274caa69929 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:46:14 +0000 Subject: [PATCH] lilypond-0.0.70pre --- TODO | 33 +++++++++------------------------ lily/script.cc | 40 +++++++++++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 33 deletions(-) diff --git a/TODO b/TODO index f7a191fe75..4350bd6d0b 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,4 @@ -Features you cannot find in the doco as working, should be mentioned her. +Features you cannot find in the doco as working, should be mentioned here. This is an assorted collection of stuff that will be done, might be done, or is an idea that I want to think about @@ -6,15 +6,7 @@ done, or is an idea that I want to think about Most of the items are marked in the code as well, with full explanation. grep for TODO and ugh/ugr -bugs introduced in pl68: - - * lyrics broken, - - * midi broken - - * scripts broken - -IMPORTANT + * * piano staff @@ -28,7 +20,7 @@ IMPORTANT * decent TeX page layout - * script priority + * enter script priority * a Hands on tutorial [HKN] @@ -58,7 +50,6 @@ PROJECTS - PostScript output (esp. Beams, Slurs, etc) - Move PScore, Items, Spanners etc. into libmutype.a - * separate Score_elem settings in user-settable (properties .. ) and non-user-settable part. Maybe use something like X-resources: "Staff=oboe*dir: 0", "Staff=*.Voice_group=solo*dir: 1" @@ -94,7 +85,6 @@ PROJECTS - hack up mf sources for decent spacing info (and then read AFM/TFM directly, for text too) - * lines: - Ledger lines, should be separate item: Ledger_lines, Ledger_lines_reg - set different line sizes / thicknesses @@ -104,7 +94,7 @@ PROJECTS * Collisions - bring Collision::do_pre_processing to haircutter - left/right note balls should be handled by Collision: - < \multivoice { \stem 1; } { } > + < \multi 2; { \stem 1; } { } > * Keys: - merge key{item} & localkey{item}? @@ -122,24 +112,21 @@ HKN buglist: tekst staat erg ver van notenbalken af -waarom geen ; achter dingen in \paper? (\textwidth 180\mm) -(sowieso: wanneer wel en geen ; ?) - Onduidelijk wanneer wel en geen \ voor een woord. Maak liever verplichte regels - BUGS - * spurious Weird stem size warnings - * staccato dot positions. + * spurious Weird stem size warnings - * stacked scripts. + * fix mysterious Flex malloc bug * should adjust stemlength for flag number. * lilypond - -> crash + * scales.ly + * standchen triool beam up/down * (where are the) gcc compile warnings on linux @@ -204,7 +191,7 @@ SMALLISH PROJECTS * A range for context errors (eg. mark both { and }. ) - * text in staff (sharpsharp in staff, text below) + * lyric in staff (sharpsharp in staff, text below) * fix Egler definitions ( see tex/eglerdefs.tex ) @@ -273,7 +260,6 @@ SMALLISH PROJECTS * script-spacing * Brackets - * use (char *) iso. String for communication between lexer and parser. @@ -346,7 +332,6 @@ IDEAS * Spacing_request for manually adjusting spacing - * caching breakpoints * #c <-> cis diff --git a/lily/script.cc b/lily/script.cc index 2a39c57a0d..bf01359399 100644 --- a/lily/script.cc +++ b/lily/script.cc @@ -5,7 +5,7 @@ (c) 1997 Han-Wen Nienhuys */ - +#include "script-def.hh" #include "musical-request.hh" #include "paper-def.hh" #include "script.hh" @@ -13,7 +13,22 @@ #include "molecule.hh" #include "lookup.hh" +void +Script::do_print() const +{ +#ifndef NPRINT + specs_l_->print(); +#endif +} +void +Script::do_substitute_dependency(Score_elem*o,Score_elem*n) +{ + Staff_side::do_substitute_dependency(o,n); + if (o == stem_l_) { + stem_l_ = n ? (Stem*)n->item() : 0; + } +} void Script::set_stem(Stem*st_l) @@ -23,23 +38,30 @@ Script::set_stem(Stem*st_l) } -Script::Script(Script_req* rq) +Script::Script() { - specs_l_ = rq->scriptdef_p_; - inside_staff_b_ = specs_l_->inside_b(); + specs_l_ = 0; + inside_staff_b_ = false; stem_l_ = 0; pos_i_ = 0; - dir_i_ =rq->dir_i_; + dir_i_ = 0; } + void Script::set_default_dir() { int s_i=specs_l_->rel_stem_dir_i(); - if (s_i && stem_l_) - dir_i_ = stem_l_->dir_i_ * s_i; - else { + if (s_i) { + if(stem_l_) + dir_i_ = stem_l_->dir_i_ * s_i; + else{ + specs_l_->warning("Script needs stem direction"); + dir_i_ = -1; + } + } else { dir_i_ =specs_l_->staff_dir_i(); } + assert(dir_i_); } void @@ -59,7 +81,7 @@ Script::do_pre_processing() { if (!dir_i_) set_default_dir(); - + inside_staff_b_ = specs_l_->inside_b(); } void -- 2.39.5