lilypond-0.0.32
[lilypond.git] / src / inputscore.cc
bloba8a653982cdb9ab2639a393b71fcc3123d405ac3
1 /*
2 inputscore.cc -- implement Input_score
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
9 #include "debug.hh"
10 #include "inputscore.hh"
11 #include "inputstaff.hh"
12 #include "inputmusic.hh"
13 #include "score.hh"
14 #include "paperdef.hh"
15 #include "staff.hh"
18 void
19 Input_score::add(Input_staff*s)
21 staffs_.bottom().add(s);
24 void
25 Input_score::set(Paperdef*p)
27 delete paper_p_;
28 paper_p_ = p;
31 Input_score::Input_score(Input_score const&s)
33 paper_p_ = (s.paper_p_)? new Paperdef(*s.paper_p_) :0;
34 defined_ch_c_l_ = s.defined_ch_c_l_;
35 errorlevel_i_ = s.errorlevel_i_;
36 score_wide_music_p_ = (s.score_wide_music_p_) ?
37 s.score_wide_music_p_->clone():0;
40 Score*
41 Input_score::parse()
43 Paperdef* paper_p=new Paperdef(*paper_p_);
44 Score *s_p = new Score(paper_p);
45 s_p->defined_ch_c_l_= defined_ch_c_l_;
46 s_p->errorlevel_i_ = errorlevel_i_;
48 for (iter_top(staffs_,i); i.ok(); i++) {
49 Staff* staf_p=i->parse(s_p, score_wide_music_p_);
50 s_p->add(staf_p);
53 return s_p;
56 void
57 Input_score::set(Input_music *m_p)
59 delete score_wide_music_p_;
60 score_wide_music_p_ =m_p;
64 Input_score::~Input_score()
66 delete paper_p_;
67 delete score_wide_music_p_;
70 Input_score::Input_score()
72 score_wide_music_p_ =0;
73 defined_ch_c_l_=0;
74 paper_p_= 0;
75 errorlevel_i_ = 0;
78 void
79 Input_score::print()const
81 #ifndef NPRINT
82 mtor << "Input_score {\n";
83 for (iter_top(staffs_,i); i.ok(); i++) {
84 i->print();
86 mtor << "}\n";
87 #endif