]> git.donarmstrong.com Git - lilypond.git/blob - lily/audio-item.cc
release: 0.1.61
[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 <jan@digicash.com>
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)
46   : Audio_item (req_l)
47 {
48 }
49
50 Midi_item*
51 Audio_note::midi_item_p()
52 {
53   return new Midi_note (this);
54 }
55
56 IMPLEMENT_IS_TYPE_B1(Audio_note, Audio_item);
57
58 Audio_tempo::Audio_tempo (int per_minute_4_i)
59   : Audio_item (0)
60 {
61   per_minute_4_i_ = per_minute_4_i;
62 }
63
64 Midi_item*
65 Audio_tempo::midi_item_p()
66 {
67   return new Midi_tempo (this);
68 }
69
70 IMPLEMENT_IS_TYPE_B1(Audio_tempo, Audio_item);
71
72 Audio_meter::Audio_meter (Request* req_l)
73   : Audio_item (req_l)
74 {
75 }
76
77 Midi_item*
78 Audio_meter::midi_item_p()
79 {
80   return new Midi_meter (this);
81 }
82 IMPLEMENT_IS_TYPE_B1(Audio_meter, Audio_item);
83
84 Audio_text::Audio_text (Audio_text::Type type, String text_str)
85   : Audio_item (0)
86 {
87   text_str_ = text_str;
88   type_ = type;
89 }
90
91 Midi_item*
92 Audio_text::midi_item_p()
93 {
94   return text_str_.length_i() ? new Midi_text(this) : 0;
95 }
96
97 IMPLEMENT_IS_TYPE_B1(Audio_text, Audio_item);
98
99 IMPLEMENT_IS_TYPE_B1(Audio_item, Audio_element);
100
101 void
102 Audio_item::do_print () const
103 {
104 #ifndef NPRINT
105   if (audio_column_l_)
106     {
107       DOUT << "at: "<< audio_column_l_->at_mom ();
108     }
109   if (req_l_)
110     {
111       DOUT << "from: ";
112       req_l_->print ();
113     }
114 #endif
115 }
116