2 audio-item.hh -- declare Audio_items
4 (c) 1996, 1997--1998 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.
21 virtual Niff_item* niff_item_p() = 0;
23 virtual CSound_item* score_item_p() = 0;
25 struct Audio_item : public Audio_element {
26 Audio_item (Request* req_l);
28 /// Create a midi-item from myself.
29 virtual Midi_item* midi_item_p() = 0;
31 Audio_column* audio_column_l_;
33 THIS SUX. This ties the output system to the input system. Bad move.
39 virtual void do_print () const;
42 Audio_item (Audio_item const&);
43 Audio_item& operator=( Audio_item const&);
46 struct Audio_key : public Audio_item {
47 Audio_key (Request* req_l);
49 virtual Midi_item* midi_item_p();
52 struct Audio_instrument : public Audio_item {
53 Audio_instrument (String instrument_str);
54 virtual Midi_item* midi_item_p();
59 struct Audio_note : public Audio_item {
61 Audio_note (Request* req_l, int transposing_i = 0);
62 virtual Midi_item* midi_item_p();
66 struct Audio_text : Audio_item {
68 TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
72 Audio_text (Audio_text::Type type, String text_str);
73 virtual Midi_item* midi_item_p();
79 struct Audio_tempo : Audio_item {
80 Audio_tempo (int per_minute_4_i);
81 virtual Midi_item* midi_item_p();
86 struct Audio_time_signature : Audio_item {
87 Audio_time_signature (Request* req_l);
88 virtual Midi_item* midi_item_p();
92 #endif // AUDIO_ITEM_HH