2 audio-item.hh -- declare Audio_items
4 (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
10 #include "lily-proto.hh"
14 Any piece of audio information.
15 We need virtual constructors,
16 let's try decentralised factory for specific audio implemenations.
19 Audio_item( Request* req_l );
21 /// Create a midi-item from myself.
22 virtual Midi_item* midi_item_p() = 0;
25 /// Not implemented. Anyone?
26 virtual Niff_item* niff_item_p() = 0;
28 /// Not implemented. Anyone?
29 virtual Cscore_item* score_item_p() = 0;
32 Audio_column* audio_column_l_;
36 Audio_item( Audio_item const& );
37 Audio_item& operator=( Audio_item const& );
40 struct Audio_key : public Audio_item {
41 Audio_key( Request* req_l );
43 virtual Midi_item* midi_item_p();
47 struct Audio_instrument : public Audio_item {
48 Audio_instrument( Request* req_l );
52 struct Audio_note : public Audio_item {
53 Audio_note( Request* req_l, bool on_b );
54 virtual Midi_item* midi_item_p();
58 struct Audio_text : Audio_item {
60 TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
64 Audio_text( Audio_text::Type type, String text_str );
65 virtual Midi_item* midi_item_p();
71 struct Audio_tempo : Audio_item {
72 Audio_tempo( int per_minute_4_i );
73 virtual Midi_item* midi_item_p();
78 struct Audio_meter : Audio_item {
79 Audio_meter( Request* req_l );
80 virtual Midi_item* midi_item_p();
83 #endif // AUDIO_ITEM_HH