]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/performance.hh
Run grand replace for 2015.
[lilypond.git] / lily / include / performance.hh
index 3e34dc7cf595d9b48e68363aa49489724339459d..14c811b150231cc2867de9ecdec455cf9d068f9c 100644 (file)
@@ -1,41 +1,56 @@
 /*
-  performance.hh -- declare Performance
+  This file is part of LilyPond, the GNU music typesetter.
 
-  (c)  1997--1999 Jan Nieuwenhuizen <janneke@gnu.org>
- */
+  Copyright (C) 1997--2015 Jan Nieuwenhuizen <janneke@gnu.org>
+
+  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 <http://www.gnu.org/licenses/>.
+*/
 
 #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> audio_staff_l_arr_;
-  Cons<Audio_element> *audio_elem_p_list_;
-  Midi_def  * midi_l_;
+  DECLARE_CLASSNAME (Performance);
+
+  static Performance *unsmob (SCM p) {
+    return dynamic_cast <Performance *> (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_staff *> audio_staffs_;
+  vector<Audio_element *> audio_elements_;
+  Output_def *midi_;
+  bool ports_;
 };
 
-#endif // PERFORMANCE_HH
+#endif /* PERFORMANCE_HH */