source file of the GNU LilyPond music typesetter
- (c) 2000--2005 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 2000--2006 Jan Nieuwenhuizen <janneke@gnu.org>
Chris Jackson <chris@fluffhouse.org.uk> - extended to support
bracketed pedals.
virtual void initialize ();
virtual void finalize ();
virtual bool try_music (Music *);
- virtual void stop_translation_timestep ();
- virtual void acknowledge_grob (Grob_info);
- virtual void process_music ();
+ void stop_translation_timestep ();
+ DECLARE_ACKNOWLEDGER (note_column);
+ void process_music ();
private:
{
char *names [] = { "Sostenuto", "Sustain", "UnaCorda", 0 };
- info_list_ = new Pedal_info[sizeof (names) / sizeof (const char *)];
+ info_list_ = new Pedal_info[sizeof (names) / sizeof (char const *)];
Pedal_info *p = info_list_;
char **np = names;
I'm a script
*/
void
-Piano_pedal_engraver::acknowledge_grob (Grob_info info)
+Piano_pedal_engraver::acknowledge_note_column (Grob_info info)
{
for (Pedal_info *p = info_list_; p && p->name_; p++)
{
- if (Note_column::has_interface (info.grob ()))
+ if (p->line_spanner_)
{
- if (p->line_spanner_)
- {
- Side_position_interface::add_support (p->line_spanner_, info.grob ());
- add_bound_item (p->line_spanner_, info.grob ());
- }
- if (p->bracket_)
- add_bound_item (p->bracket_, info.grob ());
- if (p->finished_bracket_)
- add_bound_item (p->finished_bracket_, info.grob ());
+ Side_position_interface::add_support (p->line_spanner_, info.grob ());
+ add_bound_item (p->line_spanner_, info.grob ());
}
+ if (p->bracket_)
+ add_bound_item (p->bracket_, info.grob ());
+ if (p->finished_bracket_)
+ add_bound_item (p->finished_bracket_, info.grob ());
}
}
for (Pedal_info *p = info_list_; p->name_; p++)
{
String nm = p->name_ + String ("Event");
- if (ly_c_equal_p (m->get_property ("name"),
- scm_str2symbol (nm.to_str0 ())))
+ if (ly_is_equal (m->get_property ("name"),
+ scm_str2symbol (nm.to_str0 ())))
{
Direction d = to_dir (m->get_property ("span-direction"));
p->event_drul_[d] = m;
if (!mixed)
{
if (!p->start_ev_)
- {
- p->event_drul_[STOP]->origin ()->warning (_f ("can't find start of piano pedal: `%s'", p->name_));
- }
+ p->event_drul_[STOP]->origin ()->warning (_f ("can't find start of piano pedal: `%s'", p->name_));
else
- {
- s = scm_cadr (strings);
- }
+ s = scm_cadr (strings);
p->start_ev_ = p->event_drul_[START];
}
}
if (!mixed)
{
if (!p->start_ev_)
- {
- p->event_drul_[STOP]->origin ()->warning (_f ("can't find start of piano pedal: `%s'", p->name_));
- }
+ p->event_drul_[STOP]->origin ()->warning (_f ("can't find start of piano pedal: `%s'", p->name_));
else
- {
- s = scm_caddr (strings);
- }
+ s = scm_caddr (strings);
p->start_ev_ = 0;
}
}
{
SCM flare = p->bracket_->get_property ("bracket-flare");
p->bracket_->set_property ("bracket-flare", scm_cons (scm_car (flare),
- scm_make_real (0)));
+ scm_from_double (0)));
}
p->finished_bracket_ = p->bracket_;
if (!p->finished_bracket_)
{
SCM flare = p->bracket_->get_property ("bracket-flare");
- p->bracket_->set_property ("bracket-flare", scm_cons (scm_make_real (0), scm_cdr (flare)));
+ p->bracket_->set_property ("bracket-flare", scm_cons (scm_from_double (0), scm_cdr (flare)));
}
/* Set this property for 'mixed style' pedals, Ped._______/\ ,
WTF is pedal-text not the bound of the object? --hwn
*/
if (p->item_)
- p->bracket_->set_property ("pedal-text", p->item_->self_scm ());
+ p->bracket_->set_object ("pedal-text", p->item_->self_scm ());
}
/*
SCM cc = get_property ("currentCommandColumn");
Item *c = unsmob_item (cc);
if (p->line_spanner_)
- {
- p->line_spanner_->set_bound (RIGHT, c);
- }
+ p->line_spanner_->set_bound (RIGHT, c);
p->bracket_->set_bound (RIGHT, c);
p->finished_bracket_ = p->bracket_;
p->finished_bracket_ = 0;
if (p->item_)
- {
- p->item_ = 0;
- }
+ p->item_ = 0;
if (p->finished_bracket_)
{
Grob *r = p->finished_bracket_->get_bound (RIGHT);
if (!r)
- {
- p->finished_bracket_->set_bound (RIGHT, unsmob_grob (get_property ("currentMusicalColumn")));
- }
+ p->finished_bracket_->set_bound (RIGHT, unsmob_grob (get_property ("currentMusicalColumn")));
p->finished_bracket_ = 0;
}
}
}
+#include "translator.icc"
+ADD_ACKNOWLEDGER (Piano_pedal_engraver, note_column);
ADD_TRANSLATOR (Piano_pedal_engraver,
- /* descr */ "Engrave piano pedal symbols and brackets.",
- /* creats*/ "SostenutoPedal SustainPedal UnaCordaPedal SostenutoPedalLineSpanner SustainPedalLineSpanner UnaCordaPedalLineSpanner",
- /* accepts */ "pedal-event",
- /* acks */ "note-column-interface",
- /* reads */ "currentCommandColumn "
- "pedalSostenutoStrings pedalSustainStrings "
- "pedalUnaCordaStrings pedalSostenutoStyle "
- "pedalSustainStyle pedalUnaCordaStyle",
+ /* doc */ "Engrave piano pedal symbols and brackets.",
+ /* create */ "SostenutoPedal SustainPedal UnaCordaPedal SostenutoPedalLineSpanner SustainPedalLineSpanner UnaCordaPedalLineSpanner",
+ /* accept */ "pedal-event",
+ /* read */ "currentCommandColumn "
+ "pedalSostenutoStrings "
+ "pedalSustainStrings "
+ "pedalUnaCordaStrings "
+ "pedalSostenutoStyle "
+ "pedalSustainStyle "
+ "pedalUnaCordaStyle",
/* write */ "");