X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Finclude%2Faudio-item.hh;h=1e7bfec32af1955df611231fdb9080ba9a07fbea;hb=68d7330f72a14a8df49c49ed1566179248096092;hp=b745c5b931bfab198c0afe982e5fb68f1b7113e4;hpb=1cf3d59c1559fb9774c4c1c8cae155cfe54a927c;p=lilypond.git diff --git a/lily/include/audio-item.hh b/lily/include/audio-item.hh index b745c5b931..1e7bfec32a 100644 --- a/lily/include/audio-item.hh +++ b/lily/include/audio-item.hh @@ -1,92 +1,107 @@ /* audio-item.hh -- declare Audio_items - (c) 1996, 1997--1998 Jan Nieuwenhuizen - */ + (c) 1996--2006 Jan Nieuwenhuizen +*/ #ifndef AUDIO_ITEM_HH #define AUDIO_ITEM_HH -#include "lily-proto.hh" -#include "string.hh" #include "audio-element.hh" +#include "moment.hh" +#include "pitch.hh" /** - Any piece of audio information. - We need virtual constructors, - let's try decentralised factory for specific audio implemenations. - - TODO: - - virtual Niff_item* niff_item_p() = 0; - - virtual CSound_item* score_item_p() = 0; - */ -struct Audio_item : public Audio_element { - Audio_item (Request* req_l); - - /// Create a midi-item from myself. - virtual Midi_item* midi_item_p() = 0; - - Audio_column* audio_column_l_; - /* - THIS SUX. This ties the output system to the input system. Bad move. - */ - Request* req_l_; - - DECLARE_MY_RUNTIME_TYPEINFO; -protected: - virtual void do_print () const; - + +Any piece of audio information. We need virtual constructors, let's +try decentralised factory for specific audio implemenations. +*/ +class Audio_item : public Audio_element +{ +public: + Audio_item (); + Audio_column *audio_column_; + private: - Audio_item (Audio_item const&); - Audio_item& operator=( Audio_item const&); + Audio_item (Audio_item const &); + Audio_item &operator = (Audio_item const &); }; -struct Audio_key : public Audio_item { - Audio_key (Request* req_l); - DECLARE_MY_RUNTIME_TYPEINFO; - virtual Midi_item* midi_item_p(); +class Audio_dynamic : public Audio_item +{ +public: + Audio_dynamic (Real volume); + + Real volume_; }; -struct Audio_instrument : public Audio_item { - Audio_instrument (String instrument_str); - virtual Midi_item* midi_item_p(); - String str_; - DECLARE_MY_RUNTIME_TYPEINFO; +class Audio_key : public Audio_item +{ +public: + Audio_key (int acc, bool major); + + int accidentals_; + bool major_; }; - -struct Audio_note : public Audio_item { - DECLARE_MY_RUNTIME_TYPEINFO; - Audio_note (Request* req_l, int transposing_i = 0); - virtual Midi_item* midi_item_p(); - int transposing_i_; + +class Audio_instrument : public Audio_item +{ +public: + Audio_instrument (string instrument_string); + + string str_; }; -struct Audio_text : Audio_item { - enum Type { - TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, - MARKER, CUE_POINT - }; - DECLARE_MY_RUNTIME_TYPEINFO; - Audio_text (Audio_text::Type type, String text_str); - virtual Midi_item* midi_item_p(); +class Audio_note : public Audio_item +{ +public: + Audio_note (Pitch p, Moment m, int transposing_i = 0); + + void tie_to (Audio_note *); + + Pitch pitch_; + Moment length_mom_; + int transposing_; + Audio_note *tied_; +}; + +class Audio_piano_pedal : public Audio_item +{ +public: + string type_string_; + Direction dir_; +}; + +class Audio_text : public Audio_item +{ +public: + enum Type + { + TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, + MARKER, CUE_POINT + }; + + Audio_text (Audio_text::Type type, string text_string); Type type_; - String text_str_; + string text_string_; }; -struct Audio_tempo : Audio_item { +class Audio_tempo : public Audio_item +{ +public: Audio_tempo (int per_minute_4_i); - virtual Midi_item* midi_item_p(); - DECLARE_MY_RUNTIME_TYPEINFO; - int per_minute_4_i_; + + int per_minute_4_; }; -struct Audio_time_signature : Audio_item { - Audio_time_signature (Request* req_l); - virtual Midi_item* midi_item_p(); - DECLARE_MY_RUNTIME_TYPEINFO; +class Audio_time_signature : public Audio_item +{ +public: + Audio_time_signature (int beats, int one_beat); + + int beats_; + int one_beat_; }; #endif // AUDIO_ITEM_HH