/*
score.hh -- declare Score
- source file of the LilyPond music typesetter
+ source file of the GNU LilyPond music typesetter
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#define SCORE_HH
#include "varray.hh"
-#include "proto.hh"
+#include "lily-proto.hh"
#include "plist.hh"
#include "moment.hh"
#include "assoc.hh"
#include "string.hh"
+#include "input.hh"
+#include "lily-proto.hh"
/// the total music def of one movement
-struct Score {
+class Score: public Input {
+public:
/// paper_, staffs_ and commands_ form the problem definition.
Paper_def *paper_p_;
Midi_def *midi_p_;
- IPointerList<Staff*> staffs_;
-
- /// "runtime" fields for setting up spacing
- IPointerList<Score_column*> cols_;
- PScore *pscore_p_;
+ Music * music_p_;
+ Paper_score *pscore_p_;
+ Audio_score* audio_score_p_;
- char const *defined_ch_C_;
int errorlevel_i_;
/* *************************************************************** */
/// construction
Score();
+ Score (Score const&);
~Score();
- void add(Staff*);
/// do everything except outputting to file
void process();
/// output to file
- void output(String fn);
+ void output (String fn);
-
///
- void set(Midi_def* midi_p);
+ void set (Midi_def* midi_p);
///
- void set(Paper_def* midi_p);
+ void set (Paper_def* midi_p);
- // standard
- void OK() const;
void print() const;
- /// find a column.
- PCursor<Score_column *> find_col(Moment,bool);
-
- /// when does the last *musical* element finish?
- Moment last() const;
-
private:
+ void run_translator (Global_translator*);
+ void midi_output();
void paper_output();
- void setup_music();
- void process_music();
+
/// do midi stuff
void midi();
void paper();
// utils:
- PCursor<Score_column*> create_cols(Moment, PCursor<Score_column*> &last);
-
- Score(Score const&){}
+ PCursor<Score_column*> create_cols (Moment, PCursor<Score_column*> &last);
/**
make the pcol_l_ fields of each Score_column point to the correct PCol,