2 audio-item.hh -- declare Audio_items
4 (c) 1996, 1997--1999 Jan Nieuwenhuizen <janneke@gnu.org>
10 #include "lily-proto.hh"
12 #include "audio-element.hh"
15 Any piece of audio information.
16 We need virtual constructors,
17 let's try decentralised factory for specific audio implemenations.
20 struct Audio_item : public Audio_element {
21 Audio_item (Request* req_l);
23 /// Create a midi-item from myself.
24 virtual Midi_item* midi_item_p() = 0;
26 Audio_column* audio_column_l_;
28 THIS SUX. This ties the output system to the input system. Bad move.
34 virtual void do_print () const;
37 Audio_item (Audio_item const&);
38 Audio_item& operator=( Audio_item const&);
41 struct Audio_key : public Audio_item {
42 Audio_key (Request* req_l);
44 virtual Midi_item* midi_item_p();
47 struct Audio_instrument : public Audio_item {
48 Audio_instrument (String instrument_str);
49 virtual Midi_item* midi_item_p();
54 struct Audio_note : public Audio_item {
56 Audio_note (Request* req_l, int transposing_i = 0);
57 virtual Midi_item* midi_item_p();
61 struct Audio_text : Audio_item {
63 TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
67 Audio_text (Audio_text::Type type, String text_str);
68 virtual Midi_item* midi_item_p();
74 struct Audio_tempo : Audio_item {
75 Audio_tempo (int per_minute_4_i);
76 virtual Midi_item* midi_item_p();
81 struct Audio_time_signature : Audio_item {
82 Audio_time_signature (Request* req_l);
83 virtual Midi_item* midi_item_p();
87 #endif // AUDIO_ITEM_HH