]> git.donarmstrong.com Git - lilypond.git/blob - lily/audio-item.cc
release: 1.1.1
[lilypond.git] / lily / audio-item.cc
1 /*
2   audio-item.cc -- implement Audio items.
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8 #include "debug.hh"
9 #include "audio-item.hh"
10 #include "midi-item.hh"
11 #include "request.hh"
12 #include "audio-column.hh"
13
14 Audio_instrument::Audio_instrument (String instrument_str)
15   : Audio_item (0)
16 {
17   str_ = instrument_str;
18 }
19
20 Midi_item*
21 Audio_instrument::midi_item_p()
22 {
23   return str_.length_i() ? new Midi_instrument(0, str_) : 0;
24 }
25 IMPLEMENT_IS_TYPE_B1(Audio_instrument, Audio_item);
26
27 Audio_item::Audio_item (Request* req_l)
28 {
29   audio_column_l_ = 0;
30   req_l_ = req_l;
31 }
32
33 Audio_key::Audio_key (Request* req_l)
34   : Audio_item (req_l)
35 {
36 }
37
38 Midi_item*
39 Audio_key::midi_item_p()
40 {
41   return new Midi_key (this);
42 }
43 IMPLEMENT_IS_TYPE_B1 (Audio_key, Audio_item);
44
45 Audio_note::Audio_note (Request* req_l, int transposing_i)
46   : Audio_item (req_l)
47 {
48   transposing_i_ = transposing_i;
49 }
50
51 Midi_item*
52 Audio_note::midi_item_p()
53 {
54   return new Midi_note (this);
55 }
56
57 IMPLEMENT_IS_TYPE_B1(Audio_note, Audio_item);
58
59 Audio_tempo::Audio_tempo (int per_minute_4_i)
60   : Audio_item (0)
61 {
62   per_minute_4_i_ = per_minute_4_i;
63 }
64
65 Midi_item*
66 Audio_tempo::midi_item_p()
67 {
68   return new Midi_tempo (this);
69 }
70
71 IMPLEMENT_IS_TYPE_B1(Audio_tempo, Audio_item);
72
73 Audio_time_signature::Audio_time_signature (Request* req_l)
74   : Audio_item (req_l)
75 {
76 }
77
78 Midi_item*
79 Audio_time_signature::midi_item_p()
80 {
81   return new Midi_time_signature (this);
82 }
83
84 IMPLEMENT_IS_TYPE_B1(Audio_time_signature, Audio_item);
85
86 Audio_text::Audio_text (Audio_text::Type type, String text_str)
87   : Audio_item (0)
88 {
89   text_str_ = text_str;
90   type_ = type;
91 }
92
93 Midi_item*
94 Audio_text::midi_item_p()
95 {
96   return text_str_.length_i() ? new Midi_text(this) : 0;
97 }
98
99 IMPLEMENT_IS_TYPE_B1(Audio_text, Audio_item);
100 IMPLEMENT_IS_TYPE_B1(Audio_item, Audio_element);
101
102 void
103 Audio_item::do_print () const
104 {
105 #ifndef NPRINT
106   if (audio_column_l_)
107     {
108       DOUT << "at: "<< audio_column_l_->at_mom ();
109     }
110   if (req_l_)
111     {
112       DOUT << "from: ";
113       req_l_->print ();
114     }
115 #endif
116 }
117