Fixes Issue 1504, allowing feather beam line breaking.
[lilypond/patrick.git] / lily / control-track-performer.cc
blob611bd6b48bcbf310361a6be6a2437c26b7c15446
3 #include "warn.hh"
4 #include "audio-item.hh"
5 #include "audio-staff.hh"
6 #include "performer.hh"
7 #include "string-convert.hh"
8 #include "lily-version.hh"
10 #include "translator.icc"
12 class Control_track_performer : public Performer
14 Audio_staff *control_track_;
16 void add_text (Audio_text::Type, string);
17 TRANSLATOR_DECLARATIONS (Control_track_performer);
18 protected:
20 virtual void initialize ();
21 virtual void acknowledge_audio_element (Audio_element_info info);
25 Control_track_performer::Control_track_performer ()
27 control_track_ = 0;
30 void
31 Control_track_performer::acknowledge_audio_element (Audio_element_info info)
33 if (Audio_tempo *tempo = dynamic_cast<Audio_tempo*> (info.elem_))
35 control_track_->add_audio_item (tempo);
37 if (Audio_time_signature * sig = dynamic_cast<Audio_time_signature *> (info.elem_))
39 control_track_->add_audio_item (sig);
43 void
44 Control_track_performer::add_text (Audio_text::Type text_type, string str)
46 Audio_item *text = new Audio_text (text_type, str);
47 control_track_->add_audio_item (text);
49 announce_element (Audio_element_info (text, 0));
53 void
54 Control_track_performer::initialize ()
56 control_track_ = new Audio_staff;
57 announce_element (Audio_element_info (control_track_, 0));
59 string id_string = String_convert::pad_to (gnu_lilypond_version_string (), 30);
61 add_text (Audio_text::TRACK_NAME, "control track");
62 add_text (Audio_text::TEXT, "creator: ");
63 add_text (Audio_text::TEXT, id_string);
66 ADD_TRANSLATOR (Control_track_performer,
67 /* doc */
68 "",
70 /* create */
71 "",
73 /* read */
74 "",
76 /* write */