]> git.donarmstrong.com Git - lilypond.git/blob - hdr/score.hh
release: 0.0.14
[lilypond.git] / hdr / score.hh
1 #ifndef SCORE_HH
2 #define SCORE_HH
3 #include "vray.hh"
4 #include "proto.hh"
5 #include "plist.hh"
6
7
8 /// the total music def of one movement
9 struct Score {
10     /// paper_, staffs_ and commands_ form the problem definition.
11     Paperdef *paper_;
12     IPointerList<Staff*> staffs_;
13     
14     /// "runtime" fields for setting up spacing    
15     IPointerList<Score_column*> cols_;
16     PScore *pscore_;
17
18     /****************************************************************/
19
20     /// construction
21     Score(Paperdef*);
22     ~Score();    
23     void add(Staff*);        
24
25
26
27     void OK() const;
28     PCursor<Score_column *> find_col(Real,bool);
29     void process();
30     void output(String fn);
31     PCursor<Score_column*> create_cols(Real);
32     void print() const;
33     Real last() const;
34     
35 private:
36     void do_pcols();    
37     void clean_cols();
38     void distribute_commands();
39     void do_connect(PCol *c1, PCol *c2, Real d,Real);
40     void connect(PCol* c1, PCol *c2, Real d,Real = 1.0);
41     
42     /// add #Idealspacings# to #pscore_#
43     void calc_idealspacing();
44     /** add the score wide commands (bars, breaks) to each staff so
45     they can process (typeset) them if needed */
46 };
47 /**
48         
49     */
50 #endif