X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fperformance.hh;h=14c811b150231cc2867de9ecdec455cf9d068f9c;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=3e34dc7cf595d9b48e68363aa49489724339459d;hpb=73be5f6fe264e90a56e45f2d70129b133731188b;p=lilypond.git diff --git a/lily/include/performance.hh b/lily/include/performance.hh index 3e34dc7cf5..14c811b150 100644 --- a/lily/include/performance.hh +++ b/lily/include/performance.hh @@ -1,41 +1,56 @@ /* - performance.hh -- declare Performance + This file is part of LilyPond, the GNU music typesetter. - (c) 1997--1999 Jan Nieuwenhuizen - */ + Copyright (C) 1997--2015 Jan Nieuwenhuizen + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ #ifndef PERFORMANCE_HH #define PERFORMANCE_HH -#include "parray.hh" -#include "lily-proto.hh" -#include "cons.hh" +#include "std-vector.hh" #include "music-output.hh" -/** all stuff which goes onto midi. notes, signs, symbols in a score - #Performance# contains the items, the columns. - */ - -class Performance : public Music_output { +/* MIDI output. */ +class Performance : public Music_output +{ public: - Performance (); + Performance (bool ports = false); ~Performance (); - - void add_column (Audio_column*); - void add_staff (Audio_staff* l); - void add_element (Audio_element*p); - - - void output (Midi_stream& midi_stream_r); - void output_header_track (Midi_stream& midi_stream_r); - - void print() const; - void process(); - - - Link_array audio_staff_l_arr_; - Cons *audio_elem_p_list_; - Midi_def * midi_l_; + DECLARE_CLASSNAME (Performance); + + static Performance *unsmob (SCM p) { + return dynamic_cast (Music_output::unsmob (p)); + } + static bool is_smob (SCM p) { + return Music_output::is_smob (p) && unsmob (p); + } + + void add_element (Audio_element *p); + virtual void process (); + void remap_grace_durations (); + void output (Midi_stream &midi_stream) const; + void output_header_track (Midi_stream &midi_stream) const; + + void print () const; + void write_output (string filename) const; + + vector audio_staffs_; + vector audio_elements_; + Output_def *midi_; + bool ports_; }; -#endif // PERFORMANCE_HH +#endif /* PERFORMANCE_HH */