2 audio-item.hh -- declare Audio_items
4 (c) 1996, 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
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.
37 DECLARE_MY_RUNTIME_TYPEINFO;
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);
48 DECLARE_MY_RUNTIME_TYPEINFO;
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();
56 DECLARE_MY_RUNTIME_TYPEINFO;
59 struct Audio_note : public Audio_item {
60 DECLARE_MY_RUNTIME_TYPEINFO;
61 Audio_note (Request* req_l);
62 virtual Midi_item* midi_item_p();
65 struct Audio_text : Audio_item {
67 TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
70 DECLARE_MY_RUNTIME_TYPEINFO;
71 Audio_text (Audio_text::Type type, String text_str);
72 virtual Midi_item* midi_item_p();
78 struct Audio_tempo : Audio_item {
79 Audio_tempo (int per_minute_4_i);
80 virtual Midi_item* midi_item_p();
81 DECLARE_MY_RUNTIME_TYPEINFO;
85 struct Audio_meter : Audio_item {
86 Audio_meter (Request* req_l);
87 virtual Midi_item* midi_item_p();
88 DECLARE_MY_RUNTIME_TYPEINFO;
91 #endif // AUDIO_ITEM_HH