X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finstrument-switch-engraver.cc;h=cfc3cd5c825e2ddc491048a177ad08ed668b7113;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=717d06d6776ba2119febe790733692d3011b4659;hpb=e18531db1f79fb685fbd16d6a2a67bf4b6c09915;p=lilypond.git diff --git a/lily/instrument-switch-engraver.cc b/lily/instrument-switch-engraver.cc index 717d06d677..cfc3cd5c82 100644 --- a/lily/instrument-switch-engraver.cc +++ b/lily/instrument-switch-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2006--2010 Han-Wen Nienhuys + Copyright (C) 2006--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify @@ -21,8 +21,8 @@ #include "engraver.hh" #include "item.hh" #include "text-interface.hh" -#include "translator.icc" +#include "translator.icc" class Instrument_switch_engraver : public Engraver { @@ -34,10 +34,18 @@ protected: void stop_translation_time_step (); void process_music (); + + virtual void derived_mark () const; }; +void +Instrument_switch_engraver::derived_mark () const +{ + scm_gc_mark (cue_name_); +} -Instrument_switch_engraver::Instrument_switch_engraver () +Instrument_switch_engraver::Instrument_switch_engraver (Context *c) + : Engraver (c) { cue_name_ = SCM_EOL; text_ = 0; @@ -50,7 +58,7 @@ void Instrument_switch_engraver::process_music () { SCM cue_text = get_property ("instrumentCueName"); - + if (!scm_is_eq (cue_name_, cue_text)) { if (Text_interface::is_markup (cue_text)) @@ -68,16 +76,22 @@ Instrument_switch_engraver::stop_translation_time_step () text_ = 0; } +void +Instrument_switch_engraver::boot () +{ + +} + ADD_TRANSLATOR (Instrument_switch_engraver, - /* doc */ - "Create a cue text for taking instrument.", - - /* create */ - "InstrumentSwitch ", - - /* read */ - "instrumentCueName ", - - /* write */ - "" - ); + /* doc */ + "Create a cue text for taking instrument.", + + /* create */ + "InstrumentSwitch ", + + /* read */ + "instrumentCueName ", + + /* write */ + "" + );