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"
14 class Control_track_performer : public Performer
16 Audio_staff *control_track_;
18 void add_text (Audio_text::Type, const string&);
19 TRANSLATOR_DECLARATIONS (Control_track_performer);
22 virtual void initialize ();
23 virtual void acknowledge_audio_element (Audio_element_info info);
26 Control_track_performer::Control_track_performer ()
32 Control_track_performer::acknowledge_audio_element (Audio_element_info info)
34 if (Audio_tempo *tempo = dynamic_cast<Audio_tempo *> (info.elem_))
36 control_track_->add_audio_item (tempo);
38 if (Audio_time_signature *sig = dynamic_cast<Audio_time_signature *> (info.elem_))
40 control_track_->add_audio_item (sig);
45 Control_track_performer::add_text (Audio_text::Type text_type, const string &str)
47 Audio_item *text = new Audio_text (text_type, str);
48 control_track_->add_audio_item (text);
50 announce_element (Audio_element_info (text, 0));
55 Control_track_performer::initialize ()
57 control_track_ = new Audio_control_track_staff;
58 announce_element (Audio_element_info (control_track_, 0));
60 string id_string = String_convert::pad_to (gnu_lilypond_version_string (), 30);
62 // The first audio element in the control track is a placeholder for the
63 // name of the MIDI sequence. The actual name is stored in the element
64 // later before outputting the track (in Performance::output, see
66 add_text (Audio_text::TRACK_NAME, "control track");
67 add_text (Audio_text::TEXT, "creator: ");
68 add_text (Audio_text::TEXT, id_string);
71 ADD_TRANSLATOR (Control_track_performer,