2 audio-item.hh -- declare Audio_items
4 (c) 1996, 1997 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_;
34 DECLARE_MY_RUNTIME_TYPEINFO;
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();
53 struct Audio_note : public Audio_item {
54 Audio_note( Request* req_l );
55 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