]> git.donarmstrong.com Git - lilypond.git/blob - lily/control-track-performer.cc
Merge branch 'master' into lilypond/translation
[lilypond.git] / lily / control-track-performer.cc
1
2
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"
9
10 #include "translator.icc"
11
12 class Control_track_performer : public Performer
13 {
14   Audio_staff *control_track_;
15
16   void add_text (Audio_text::Type, string);
17   TRANSLATOR_DECLARATIONS (Control_track_performer);
18 protected:
19
20   virtual void initialize ();
21   virtual void acknowledge_audio_element (Audio_element_info info);
22 };
23
24 Control_track_performer::Control_track_performer ()
25 {
26   control_track_ = 0;
27 }
28
29 void
30 Control_track_performer::acknowledge_audio_element (Audio_element_info info)
31 {
32   if (Audio_tempo *tempo = dynamic_cast<Audio_tempo *> (info.elem_))
33     {
34       control_track_->add_audio_item (tempo);
35     }
36   if (Audio_time_signature *sig = dynamic_cast<Audio_time_signature *> (info.elem_))
37     {
38       control_track_->add_audio_item (sig);
39     }
40 }
41
42 void
43 Control_track_performer::add_text (Audio_text::Type text_type, string str)
44 {
45   Audio_item *text = new Audio_text (text_type, str);
46   control_track_->add_audio_item (text);
47
48   announce_element (Audio_element_info (text, 0));
49
50 }
51
52 void
53 Control_track_performer::initialize ()
54 {
55   control_track_ = new Audio_staff;
56   announce_element (Audio_element_info (control_track_, 0));
57
58   string id_string = String_convert::pad_to (gnu_lilypond_version_string (), 30);
59
60   add_text (Audio_text::TRACK_NAME, "control track");
61   add_text (Audio_text::TEXT, "creator: ");
62   add_text (Audio_text::TEXT, id_string);
63 }
64
65 ADD_TRANSLATOR (Control_track_performer,
66                 /* doc */
67                 "",
68
69                 /* create */
70                 "",
71
72                 /* read */
73                 "",
74
75                 /* write */
76                 ""
77                );