From: Jan Nieuwenhuizen Date: Thu, 15 Oct 1998 14:27:35 +0000 (+0300) Subject: patch::: 1.0.16.jcn1: geile pats X-Git-Tag: release/1.0.17~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ab8cc216b5483e35ed900c2761cb5a627bc419f4;p=lilypond.git patch::: 1.0.16.jcn1: geile pats pl 16.jcn1 - dashed-slur through scheme pl 15.jcn4 - more scheme hacks pl 15.jcn3 - try at scheme in Atom pl 15.jcn2 # rest of - graphical-lisp-element + silly half hook-up with autuplet --- diff --git a/NEWS b/NEWS index 4473e4ea12..2dd704fb08 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,15 @@ +pl 16.jcn1 + - dashed-slur through scheme + +pl 15.jcn4 + - more scheme hacks + +pl 15.jcn3 + - try at scheme in Atom + +pl 15.jcn2 # rest of + - graphical-lisp-element + silly half hook-up with autuplet + pl 16 - read property ydirection and tieYDirection for tie direction. - bf: slur over rest. diff --git a/VERSION b/VERSION index 2021fd4c57..b9c75efb2e 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=0 PATCH_LEVEL=16 -MY_PATCH_LEVEL= +MY_PATCH_LEVEL=jcn1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/configure.in b/configure.in index 69f8966897..6209c8af22 100644 --- a/configure.in +++ b/configure.in @@ -42,7 +42,7 @@ AC_STEPMAKE_MSGFMT AC_STEPMAKE_TEXMF # AC_STEPMAKE_TEXMF_DIRS AC_STEPMAKE_YODL - +AC_CHECK_LIB(guile, scm_shell) dnl should check out -print dnl huh? diff --git a/init/declarations.ly b/init/declarations.ly index d28a53c62f..c1bc0fd333 100644 --- a/init/declarations.ly +++ b/init/declarations.ly @@ -35,5 +35,7 @@ nobreak = { \penalty = -10000; } \include "property.ly" +\include "scm.ly" + % music = "\melodic\relative c" diff --git a/init/scm.ly b/init/scm.ly new file mode 100644 index 0000000000..0c56301f88 --- /dev/null +++ b/init/scm.ly @@ -0,0 +1,30 @@ +\scm " + +(define (add-column p) (display \"adding column (in guile): \") (display p) (newline)) + +(define + (control->string c) + (string-append + (string-append (number->string (car c)) \" \") + (string-append (number->string (cadr c)) \" \"))) + +(define + (dashed-slur-ps thick dash l) + (string-append + (apply string-append (map control->string l)) + (number->string thick) + \" [ 0 \" (number->string dash) \" ] 0 draw_dashed_slur\")) + +(define + (dashed-slur-tex thick dash l) + (string-append + \"\\embedded_ps{\" + (dashed-slur-ps thick dash l) + \"}\")) + +(define + (dashed-slur o thick dash l) + ((eval-string (string-append \"dashed-slur-\" o)) thick dash l)) + +"; + diff --git a/lily/atom.cc b/lily/atom.cc index 76b59197d3..3f79970b71 100644 --- a/lily/atom.cc +++ b/lily/atom.cc @@ -76,12 +76,14 @@ Atom::Atom () But Atom is used as a simple type *everywhere*, and we don't have virtual contructors. */ + lambda_ = 0; str_ = global_lookup_l->unknown_str (); } Atom::Atom (String s, Box b) : dim_ (b) { + lambda_ = 0; str_ = s; } diff --git a/lily/auto-plet-engraver.cc b/lily/auto-plet-engraver.cc index 8812f6245c..3ed45b2a46 100644 --- a/lily/auto-plet-engraver.cc +++ b/lily/auto-plet-engraver.cc @@ -9,7 +9,7 @@ #include "auto-plet-engraver.hh" #include "command-request.hh" -#include "slur.hh" +#include "graphical-lisp-element.hh" #include "note-column.hh" bool @@ -27,12 +27,11 @@ Tuplet_engraver::do_try_request (Request *r) return true; } - void Tuplet_engraver::do_process_requests () { int stopcount =0; - Link_array start_arr; + Link_array start_arr; for (int i=0; i < bracket_req_arr_.size (); i++) { @@ -40,16 +39,17 @@ Tuplet_engraver::do_process_requests () stopcount++; if (bracket_req_arr_[i]->spantype == Span_req::START) { - Slur *sp =new Slur; - start_arr.push (sp); - announce_element (Score_element_info (sp, bracket_req_arr_[i])); + Graphical_lisp_element* glep = new Graphical_lisp_element ("tuplet"); + start_arr.push (glep); +// lots of stuff does info->elem_l_->is_type () +// announce_element (Score_element_info (glep, bracket_req_arr_[i])); } } for (; stopcount--; ) { - Slur *sp = started_span_p_arr_.pop (); - stop_now_span_p_arr_.push (sp); + Graphical_lisp_element* glep = started_span_p_arr_.pop (); + stop_now_span_p_arr_.push (glep); } for (int i=0; i < start_arr.size (); i++) @@ -63,7 +63,8 @@ Tuplet_engraver::acknowledge_element (Score_element_info i) { Note_column *nc = (Note_column*)i.elem_l_->access_Item (); for (int j =0; j add_column (nc); +// started_span_p_arr_[j]->add_column (nc); + started_span_p_arr_[j]->call ("add-column", (void*)nc); } } diff --git a/lily/engraver.cc b/lily/engraver.cc index ecad055870..3ecd606e92 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -26,13 +26,18 @@ Engraver::announce_element (Score_element_info i) daddy_grav_l()->announce_element (i); } - void Engraver::typeset_element (Score_element*p) { daddy_grav_l()->typeset_element (p); } +void +Engraver::typeset_element (Graphical_lisp_element*p) +{ + daddy_grav_l ()->typeset_element (p); +} + Paper_def* Engraver::paper() const { diff --git a/lily/graphical-lisp-element.cc b/lily/graphical-lisp-element.cc new file mode 100644 index 0000000000..8b9fdefc1a --- /dev/null +++ b/lily/graphical-lisp-element.cc @@ -0,0 +1,47 @@ +/* + graphical-lisp-element.cc -- implement Graphical_lisp_element + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "graphical-lisp-element.hh" +#include "string.hh" +#include "debug.hh" + +#undef IMPLEMENT_STATIC_NAME +#define IMPLEMENT_STATIC_NAME(c)\ +char const* c::static_name ()\ +{ return type_str_.ch_C (); }\ +size_t c::static_class_size () { return sizeof (c); } + +IMPLEMENT_IS_TYPE_B (Graphical_lisp_element); + +Graphical_lisp_element::Graphical_lisp_element (String str) +{ + type_str_ = str; +} + +void* +Graphical_lisp_element::access (String str) +{ + SCM scm; +// scm = gh_cons (gh_str02scm (str.ch_C ())); +// scm = gh_cons (gh_symbol2scm (str.ch_C ())); + return 0; +} + +void +Graphical_lisp_element::call (String str, void* p) +{ +// gh_apply (str.ch_C (), SCM_EOL); +// gh_apply (str.ch_C (), SCM_EOL); + +// mm, common lisp only? +// String ptr = to_str (" \\%x", p); + String ptr = to_str (" '%x", p); + str = "(" + str + ptr + ")"; + gh_eval_str (str.ch_l ()); +// gh_eval_str ("(add-column 0)"); +} diff --git a/lily/include/atom.hh b/lily/include/atom.hh index 0d88e7ce31..fcd434f0ab 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -9,17 +9,18 @@ #ifndef ATOM_HH #define ATOM_HH +#include "lily-guile.hh" #include "string.hh" #include "box.hh" #include "lily-proto.hh" - /// a symbol which can be translated, and freely copied class Atom { Offset off_; public: String str_; String font_; + SCM lambda_; Box dim_; Offset offset () const; diff --git a/lily/include/auto-plet-engraver.hh b/lily/include/auto-plet-engraver.hh index a8cafb9c7c..14b1fefcc4 100644 --- a/lily/include/auto-plet-engraver.hh +++ b/lily/include/auto-plet-engraver.hh @@ -23,8 +23,8 @@ public: protected: Link_array bracket_req_arr_; - Link_array started_span_p_arr_; - Link_array stop_now_span_p_arr_; + Link_array started_span_p_arr_; + Link_array stop_now_span_p_arr_; virtual void do_removal_processing (); virtual void acknowledge_element (Score_element_info); diff --git a/lily/include/engraver.hh b/lily/include/engraver.hh index a8086af1f5..04fc21baa5 100644 --- a/lily/include/engraver.hh +++ b/lily/include/engraver.hh @@ -36,6 +36,7 @@ protected: Invoke walker method to typeset element. Default: pass on to daddy. */ virtual void typeset_element (Score_element*elem_p); + virtual void typeset_element (Graphical_lisp_element*); /** take note of item/spanner diff --git a/lily/include/graphical-lisp-element.hh b/lily/include/graphical-lisp-element.hh new file mode 100644 index 0000000000..036b727c77 --- /dev/null +++ b/lily/include/graphical-lisp-element.hh @@ -0,0 +1,39 @@ +/* + graphical-lisp-element.hh -- declare Graphical_lisp_element + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + + +#ifndef GRAPHICAL_LISP_ELEMENT_HH +#define GRAPHICAL_LISP_ELEMENT_HH + +#include "lily-guile.hh" +#include "lily-proto.hh" +#include "string.hh" + +#define virtual +#define static +#include "virtual-methods.hh" + +class Graphical_lisp_element +{ +public: + DECLARE_MY_RUNTIME_TYPEINFO; + + Graphical_lisp_element (String); + + void* access (String); + void call (String, void*); + +private: + String type_str_; +}; + +#undef virtual +#undef static + +#endif // GRAPHICAL_LISP_ELEMENT_HH + diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index 1ea707038e..845a2a1f87 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -11,6 +11,10 @@ #include "config.hh" +#ifdef __cplusplus +extern "C" { +#endif + #ifdef HAVE_LIBGUILE extern "C" { #include @@ -18,4 +22,17 @@ extern "C" { #else typedef long SCM; #endif + +SCM gh_append (SCM a, SCM b); +SCM gh_eval (SCM a); +SCM gh_func_o (char const* name); +SCM gh_lambda_o (); +SCM gh_list1 (SCM a); +SCM gh_list2(SCM a, SCM b); +SCM gh_quote (); + +#ifdef __cplusplus +} +#endif + #endif // LILY_GUILE_HH diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index b7af83ec16..184eec14c0 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -77,6 +77,7 @@ struct Element_group_item; struct Engraver_group_engraver; struct General_script_def; struct Graphical_element; +struct Graphical_lisp_element; struct Graphical_axis_group; struct Mark_req; struct Music_output; diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index 7efe60bb7e..493b1b735e 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -40,7 +40,7 @@ public: Atom beam (Real,Real, Real) const; virtual String character_str (int i) const; Atom clef (String) const; - virtual Atom dashed_slur (Array controls, Real thick, Real dash) const = 0; + virtual Atom dashed_slur (Array controls, Real thick, Real dash) const; Atom dots () const; Atom dynamic (String) const; Atom fill (Box b) const; diff --git a/lily/include/paper-outputter.hh b/lily/include/paper-outputter.hh index 5fa1204b2f..0c6ff778df 100644 --- a/lily/include/paper-outputter.hh +++ b/lily/include/paper-outputter.hh @@ -24,7 +24,7 @@ public: virtual ~Paper_outputter (); virtual void output_molecule (Molecule const *, Offset, char const *)=0; - void output_molecule (Molecule const *, Offset, char const *, String); + void output_molecule (Molecule const *, Offset, char const *, String, String); virtual void start_line ()=0; virtual void stop_line ()=0; virtual void switch_to_font (String fontname)=0; diff --git a/lily/include/ps-lookup.hh b/lily/include/ps-lookup.hh index 2eb9ed025a..0b6481be6d 100644 --- a/lily/include/ps-lookup.hh +++ b/lily/include/ps-lookup.hh @@ -22,7 +22,6 @@ public: virtual Atom afm_find (String s) const; virtual Atom* atom_p (String, int, Box) const; virtual String character_str (int i) const; - virtual Atom dashed_slur (Array controls, Real thick, Real dash) const; virtual Atom hairpin (Real width, bool decresc, bool continued) const; virtual Lookup* lookup_p (Lookup const&) const; virtual Lookup* lookup_p (Symtables const&) const; diff --git a/lily/include/score-element-info.hh b/lily/include/score-element-info.hh index 95d69a0d48..34a5a49716 100644 --- a/lily/include/score-element-info.hh +++ b/lily/include/score-element-info.hh @@ -19,10 +19,12 @@ */ struct Score_element_info { Score_element * elem_l_; + Graphical_lisp_element * lisp_l_; Request*req_l_; Array origin_grav_l_arr_; Score_element_info (Score_element*, Request*); + Score_element_info (Graphical_lisp_element*, Request*); Score_element_info(); }; diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh index 5d59fc06f7..2f7883bb41 100644 --- a/lily/include/score-engraver.hh +++ b/lily/include/score-engraver.hh @@ -53,6 +53,7 @@ protected: virtual void announce_element (Score_element_info); virtual void do_announces(); virtual void typeset_element (Score_element*elem_p); + virtual void typeset_element (Graphical_lisp_element*elem_p); virtual void do_pre_move_processing(); virtual void do_add_processing (); }; diff --git a/lily/include/tex-lookup.hh b/lily/include/tex-lookup.hh index cdb9839fcc..2341c4484c 100644 --- a/lily/include/tex-lookup.hh +++ b/lily/include/tex-lookup.hh @@ -22,7 +22,6 @@ public: virtual Atom afm_find (String s) const; virtual String character_str (int i) const; - virtual Atom dashed_slur (Array controls, Real thick, Real dash) const; virtual Atom* atom_p (String, int, Box) const; Atom embed (Atom a) const; virtual Atom hairpin (Real width, bool decresc, bool continued) const; diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc new file mode 100644 index 0000000000..a5c47bd39b --- /dev/null +++ b/lily/lily-guile.cc @@ -0,0 +1,61 @@ +/* + lily-guile.cc -- implement assorted guile functions + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "lily-guile.hh" + +#ifdef __cplusplus +extern "C" { +#endif + +SCM +gh_append (SCM a, SCM b) +{ + return gh_call2 (gh_eval_str ("append"), a, b); +} + +SCM +gh_list1 (SCM a) +{ + return gh_call1 (gh_eval_str ("list"), a); +} + +SCM +gh_list2(SCM a, SCM b) +{ + return gh_call2 (gh_eval_str ("list"), a, b); +} + +SCM +gh_quote () +{ + return gh_eval_str ("'quote"); +} + +SCM +gh_eval (SCM a) +{ + return gh_call1 (gh_eval_str ("eval"), a); +} + +SCM +gh_lambda_o () +{ + return gh_eval_str ("'(lambda (o))"); +} + +SCM +gh_func_o (char const* name) +{ + char buf[200]; + snprintf (buf, 200, "'(%s o)", name); + return gh_eval_str (buf); +} + +#ifdef __cplusplus +} +#endif diff --git a/lily/lookup.cc b/lily/lookup.cc index 8ba88483f5..7f67472b14 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -20,6 +20,7 @@ #include "paper-def.hh" #include "string-convert.hh" #include "main.hh" +#include "lily-guile.hh" Lookup::Lookup () { @@ -150,6 +151,58 @@ Lookup::clef (String st) const return afm_find (String ("clefs") + String ("-") + st); } +Atom +Lookup::dashed_slur (Array controls, Real thick, Real dash) const +{ + assert (controls.size () == 8); + + Real dx = controls[3].x () - controls[0].x (); + Real dy = controls[3].y () - controls[0].y (); + + Atom a; + a.font_ = font_; + a.dim_[X_AXIS] = Interval (0, dx); + a.dim_[Y_AXIS] = Interval (0 ? dy); + +#ifndef HAVE_LIBGUILE + + String ps; + for (int i = 1; i < 4; i++) + ps += String_convert::double_str (controls[i].x ()) + " " + + String_convert::double_str (controls[i].y ()) + " "; + + ps += String_convert::double_str (controls[0].x ()) + " " + + String_convert::double_str (controls[0].y ()) + " "; + + ps += String_convert::double_str (thick) + " "; + Real on = dash > 1? thick * dash - thick : 0; + Real off = 2 * thick; + ps += "[" + String_convert::double_str (on) + " "; + ps += String_convert::double_str (off) + "] "; + ps += String_convert::int_str (0) + " "; + ps += "draw_dashed_slur "; + + a.str_ = ps; + +#else // HAVE_LIBGUILE + + // (lambda (o) (dashed-slur o '((0.1 0.2) (1.1 1.2) (2.1 2.2) (3.1 3.2)))) + a.lambda_ = + gh_append (gh_lambda_o (), + gh_list1 (gh_append (gh_func_o ("dashed-slur"), + gh_cons (gh_double2scm (thick), gh_cons (gh_double2scm (dash), + gh_list1 (gh_list2 (gh_quote (), + gh_cons (gh_list2 (gh_double2scm (controls[0].x ()), gh_double2scm (controls[0].y ())), + gh_cons (gh_list2 (gh_double2scm (controls[1].x ()), gh_double2scm (controls[1].y ())), + gh_cons (gh_list2 (gh_double2scm (controls[2].x ()), gh_double2scm (controls[2].y ())), + gh_cons (gh_list2 (gh_double2scm (controls[3].x ()), gh_double2scm (controls[3].y ())), + SCM_EOL))))))))))); + +#endif // HAVE_LIBGUILE + + return a; +} + Atom Lookup::dots () const { diff --git a/lily/main.cc b/lily/main.cc index 87af66cfe9..74543baf2c 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -10,6 +10,8 @@ #include #include #include +#include "lily-guile.hh" + #include "proto.hh" #include "dimensions.hh" #include "plist.hh" @@ -186,19 +188,9 @@ identify () *mlog << get_version_str () << endl; } -void -guile_init () -{ -#ifdef HAVE_LIBGUILE - gh_eval_str ("(define (add-column p) (display \"adding column (in guile): \") (display p) (newline))"); -#endif -} - -int +void main_prog (int argc, char **argv) { - guile_init (); - // facilitate binary distributions char const *env_lily = getenv ("LILYPONDPREFIX"); String prefix_directory; @@ -251,6 +243,7 @@ main_prog (int argc, char **argv) case 't': experimental_features_global_b = true; global_lookup_l = &ps_lookup; + *mlog << "*** enabling experimental features, you're on your own now ***\n"; break; case 'o': outname_str = oparser.optional_argument_ch_C_; @@ -336,8 +329,18 @@ main_prog (int argc, char **argv) default_outname_base_global = outname_str; do_one_file (i, default_outname_base_global); } +} +int +main (int argc, char **argv) +{ +#ifdef HAVE_LIBGUILE + gh_enter (argc, argv, (void(*)())main_prog); + return exit_status_i_; +#else + main_prog (argc, argv); return exit_status_i_; +#endif } /* @@ -377,19 +380,3 @@ distill_inname_str (String name_str, String& ext_r) return str; } - -#ifdef HAVE_LIBGUILE -int -main (int argc, char **argv) -{ - gh_enter (argc, argv, (void(*)())main_prog); - return exit_status_i_; -} - -#else -int main (int argc, char **argv) -{ - return main_prog (argc, argv); -} - -#endif diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 82948a3067..4c7d05a9a2 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -55,6 +55,7 @@ static Keyword_ent the_key_tab[]={ {"pt", PT_T}, {"relative", RELATIVE}, {"remove", REMOVE}, + {"scm", SCHEME}, {"score", SCORE}, {"script", SCRIPT}, {"shape", SHAPE}, diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index 1e8d450c7b..2ecf72a5ca 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -27,7 +27,7 @@ Paper_outputter::~Paper_outputter () } void -Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm, String s) +Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm, String s, String output_str) { if (check_debug) *outstream_l_ << String ("\n%start: ") << nm << "\n"; @@ -44,7 +44,15 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm, St a.push (global_lookup_l->print_dimen (a_off.y())); a.push (global_lookup_l->print_dimen (a_off.x())); - a.push (i->str_); + if (i->lambda_) + { + SCM str_scm = gh_call1 (gh_eval (i->lambda_), gh_eval_str ("'ps")); + char* c = gh_scm2newstr (str_scm, NULL); + a.push (String (c)); + free (c); + } + else + a.push (i->str_); r += global_lookup_l->substitute_args (s, a); *outstream_l_ << r; } diff --git a/lily/parser.yy b/lily/parser.yy index 428fff3c37..c73b8b812b 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -10,6 +10,7 @@ */ #include +#include "lily-guile.hh" #include "notename-table.hh" #include "scalar.hh" #include "translation-property.hh" @@ -195,6 +196,7 @@ yylex (YYSTYPE *s, void * v_l) %token PT_T %token RELATIVE %token REMOVE +%token SCHEME /* token vs typedef; can't be named SCM */ %token SCORE %token SCRIPT %token SHAPE @@ -321,8 +323,18 @@ toplevel_expression: Midi_def_identifier ($1, MIDI_IDENTIFIER); THIS->lexer_p_->set_identifier ("$defaultmidi", id) } + | embedded_scm { + } ; +embedded_scm: + SCHEME STRING ';' { + #ifdef HAVE_LIBGUILE + gh_eval_str ($2->ch_C ()); + #endif + delete $2; + }; + check_version: VERSION STRING ';' { Mudela_version ver (*$2); diff --git a/lily/ps-lookup.cc b/lily/ps-lookup.cc index 8d160b1f88..e0978b7b45 100644 --- a/lily/ps-lookup.cc +++ b/lily/ps-lookup.cc @@ -62,40 +62,6 @@ Ps_lookup::character_str (int i) const return to_str (i, "(\\%03o)"); } -Atom -Ps_lookup::dashed_slur (Array controls, Real thick, Real dash) const -{ - assert (controls.size () == 8); - - String ps; - - Real dx = controls[3].x () - controls[0].x (); - Real dy = controls[3].y () - controls[0].y (); - - for (int i = 1; i < 4; i++) - ps += String_convert::double_str (controls[i].x ()) + " " - + String_convert::double_str (controls[i].y ()) + " "; - - ps += String_convert::double_str (controls[0].x ()) + " " - + String_convert::double_str (controls[0].y ()) + " "; - - ps += String_convert::double_str (thick) + " "; - Real on = dash > 1? thick * dash - thick : 0; - Real off = 2 * thick; - ps += "[" + String_convert::double_str (on) + " "; - ps += String_convert::double_str (off) + "] "; - ps += String_convert::int_str (0) + " "; - ps += "draw_dashed_slur "; - - Atom a; - a.str_ = ps; - - a.dim_[X_AXIS] = Interval (0, dx); - a.dim_[Y_AXIS] = Interval (0 ? dy); - a.font_ = font_; - return a; -} - Atom Ps_lookup::hairpin (Real width, bool decresc, bool continued) const { diff --git a/lily/ps-outputter.cc b/lily/ps-outputter.cc index d0ad70ef39..4600f9b40d 100644 --- a/lily/ps-outputter.cc +++ b/lily/ps-outputter.cc @@ -14,6 +14,8 @@ #include "array.hh" #include "string-convert.hh" #include "debug.hh" +#include "lookup.hh" +#include "main.hh" Ps_outputter::Ps_outputter (Paper_stream *s) :Paper_outputter (s) @@ -62,7 +64,7 @@ Ps_outputter::output_molecule (Molecule const*m, Offset o, char const *nm) if (check_debug) *outstream_l_ << String ("\n%start: ") << nm << "\n"; - Paper_outputter::output_molecule (m, o, nm, "% % {%}placebox \n"); + Paper_outputter::output_molecule (m, o, nm, "% % {%}placebox \n", "'ps"); } void diff --git a/lily/score-element-info.cc b/lily/score-element-info.cc index a0c6f68e85..8288c16cc1 100644 --- a/lily/score-element-info.cc +++ b/lily/score-element-info.cc @@ -12,12 +12,21 @@ Score_element_info::Score_element_info (Score_element*s_l, Request*r_l) { elem_l_ = s_l; + lisp_l_ = 0; + req_l_ = r_l; +} + +Score_element_info::Score_element_info (Graphical_lisp_element*g_l, Request*r_l) +{ + elem_l_ = 0; + lisp_l_ = g_l; req_l_ = r_l; } Score_element_info::Score_element_info() { elem_l_ = 0; + lisp_l_ = 0; req_l_ = 0; } diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 1b30731fd7..1c43b8c59e 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -16,6 +16,7 @@ #include "score-column.hh" #include "command-request.hh" #include "paper-def.hh" +#include "graphical-lisp-element.hh" Score_engraver::Score_engraver() @@ -117,7 +118,14 @@ Score_engraver::do_announces() void Score_engraver::typeset_element (Score_element *elem_p) { - elem_p_arr_.push(elem_p); + elem_p_arr_.push (elem_p); +} + +void +Score_engraver::typeset_element (Graphical_lisp_element* elem_p) +{ + *mlog << "not typesetting: " << elem_p->static_name () << "\n"; + delete elem_p; } void @@ -131,9 +139,7 @@ Score_engraver::typeset_all() Spanner *s = elem_p->access_Spanner (); pscore_p_->typeset_unbroken_spanner (s); - - - /* + /* do something sensible if spanner not spanned on 2 items. */ @@ -228,7 +234,6 @@ Score_engraver::get_staff_info() const } - Music_output* Score_engraver::get_output_p () { diff --git a/lily/tex-lookup.cc b/lily/tex-lookup.cc index 4f10886e11..2e774352af 100644 --- a/lily/tex-lookup.cc +++ b/lily/tex-lookup.cc @@ -63,12 +63,6 @@ Tex_lookup::character_str (int i) const return Lookup::character_str (i); } -Atom -Tex_lookup::dashed_slur (Array controls, Real thick, Real dash) const -{ - return embed (Ps_lookup::dashed_slur (controls, thick, dash)); -} - Atom Tex_lookup::embed (Atom a) const { diff --git a/lily/tex-outputter.cc b/lily/tex-outputter.cc index 89ebf31623..df6a43268a 100644 --- a/lily/tex-outputter.cc +++ b/lily/tex-outputter.cc @@ -60,7 +60,7 @@ Tex_outputter::output_molecule (Molecule const*m, Offset o, char const *nm) if (check_debug) *outstream_l_ << String ("\n%start: ") << nm << "\n"; - Paper_outputter::output_molecule (m, o, nm, "\\placebox{%}{%}{%}"); + Paper_outputter::output_molecule (m, o, nm, "\\placebox{%}{%}{%}", "'tex"); } void diff --git a/make/STATE-VECTOR b/make/STATE-VECTOR index 010ed0a6f9..966c59a4a2 100644 --- a/make/STATE-VECTOR +++ b/make/STATE-VECTOR @@ -102,3 +102,4 @@ 1.0.15 1.0.15.uu1 1.0.16 +1.0.16.jcn1