/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2000--2014 Jan Nieuwenhuizen <janneke@gnu.org>,
+ Copyright (C) 2000--2015 Jan Nieuwenhuizen <janneke@gnu.org>,
Erik Sandberg <mandolaerik@gmail.com>
Chris Jackson <chris@fluffhouse.org.uk> - extended to support
protected:
virtual void initialize ();
virtual void finalize ();
- DECLARE_TRANSLATOR_LISTENER (sustain);
- DECLARE_TRANSLATOR_LISTENER (una_corda);
- DECLARE_TRANSLATOR_LISTENER (sostenuto);
+ void listen_sustain (Stream_event *);
+ void listen_una_corda (Stream_event *);
+ void listen_sostenuto (Stream_event *);
void stop_translation_timestep ();
void process_music ();
be careful, as we don't want to loose references to the _sym_ members.
*/
Pedal_type_info info;
- info.event_class_sym_ = scm_from_locale_symbol ((base_ident + "-event").c_str ());
- info.style_sym_ = scm_from_locale_symbol (("pedal" + base_name + "Style").c_str ());
- info.strings_sym_ = scm_from_locale_symbol (("pedal" + base_name + "Strings").c_str ());
+ info.event_class_sym_ = scm_from_ascii_symbol ((base_ident + "-event").c_str ());
+ info.style_sym_ = scm_from_ascii_symbol (("pedal" + base_name + "Style").c_str ());
+ info.strings_sym_ = scm_from_ascii_symbol (("pedal" + base_name + "Strings").c_str ());
info.base_name_ = name;
info.pedal_c_str_ = strdup ((base_name + "Pedal").c_str ());
ADD_SCM_INIT_FUNC (Piano_pedal_engraver_init_pedal_types_, init_pedal_types);
-Piano_pedal_engraver::Piano_pedal_engraver ()
+Piano_pedal_engraver::Piano_pedal_engraver (Context *c)
+ : Engraver (c)
{
}
info_list_[NUM_PEDAL_TYPES].type_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Piano_pedal_engraver, sostenuto);
void
Piano_pedal_engraver::listen_sostenuto (Stream_event *ev)
{
ASSIGN_EVENT_ONCE (info_list_[SOSTENUTO].event_drul_[d], ev);
}
-IMPLEMENT_TRANSLATOR_LISTENER (Piano_pedal_engraver, sustain);
void
Piano_pedal_engraver::listen_sustain (Stream_event *ev)
{
ASSIGN_EVENT_ONCE (info_list_[SUSTAIN].event_drul_[d], ev);
}
-IMPLEMENT_TRANSLATOR_LISTENER (Piano_pedal_engraver, una_corda);
void
Piano_pedal_engraver::listen_una_corda (Stream_event *ev)
{
mixed: Ped. _____/\____|
*/
- SCM style = internal_get_property (p->type_->style_sym_);
+ SCM style = get_property (p->type_->style_sym_);
- bool mixed = style == ly_symbol2scm ("mixed");
+ bool mixed = scm_is_eq (style, ly_symbol2scm ("mixed"));
bool bracket = (mixed
- || style == ly_symbol2scm ("bracket"));
- bool text = (style == ly_symbol2scm ("text")
- || mixed);
+ || scm_is_eq (style, ly_symbol2scm ("bracket")));
+ bool text = (mixed
+ || scm_is_eq (style, ly_symbol2scm ("text")));
if (text && !p->item_)
create_text_grobs (p, mixed);
Piano_pedal_engraver::create_text_grobs (Pedal_info *p, bool mixed)
{
SCM s = SCM_EOL;
- SCM strings = internal_get_property (p->type_->strings_sym_);
+ SCM strings = get_property (p->type_->strings_sym_);
if (scm_ilength (strings) < 3)
{
{
assert (!p->finished_bracket_);
- Grob *cmc = Grob::unsmob (get_property ("currentMusicalColumn"));
+ Grob *cmc = unsmob<Grob> (get_property ("currentMusicalColumn"));
p->bracket_->set_bound (RIGHT, cmc);
/*
if (p->bracket_)
{
SCM cc = get_property ("currentCommandColumn");
- Item *c = unsmob_item (cc);
+ Item *c = unsmob<Item> (cc);
p->bracket_->set_bound (RIGHT, c);
p->finished_bracket_ = p->bracket_;
typeset_all (p);
if (p->bracket_ && !p->bracket_->get_bound (LEFT))
{
- Grob *cmc = Grob::unsmob (get_property ("currentMusicalColumn"));
+ Grob *cmc = unsmob<Grob> (get_property ("currentMusicalColumn"));
p->bracket_->set_bound (LEFT, cmc);
}
}
{
Grob *r = p->finished_bracket_->get_bound (RIGHT);
if (!r)
- p->finished_bracket_->set_bound (RIGHT, Grob::unsmob (get_property ("currentMusicalColumn")));
+ p->finished_bracket_->set_bound (RIGHT, unsmob<Grob> (get_property ("currentMusicalColumn")));
p->finished_bracket_ = 0;
}
}
+void
+Piano_pedal_engraver::boot ()
+{
+ ADD_LISTENER (Piano_pedal_engraver, sostenuto);
+ ADD_LISTENER (Piano_pedal_engraver, sustain);
+ ADD_LISTENER (Piano_pedal_engraver, una_corda);
+}
+
ADD_TRANSLATOR (Piano_pedal_engraver,
/* doc */
"Engrave piano pedal symbols and brackets.",