lilypond-1.3.118
[lilypond.git] / lily / include / paper-outputter.hh
bloba4149faa92568aca13723d1989b8a8529b3365d5
1 /*
2 paper-outputter.hh -- declare Paper_outputter
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
10 #ifndef PAPER_OUTPUTTER_HH
11 #define PAPER_OUTPUTTER_HH
13 #include "lily-proto.hh"
14 #include "array.hh"
15 #include "string.hh"
16 #include "lily-guile.hh"
17 #include "protected-scm.hh"
19 /**
20 Interface for a Grob to output itself; The Paper_score contains a
21 pointer to a Paper_outputter, and this enables every grob to output
22 itself.
24 The Paper_outputter contains a reference to an output stream
25 (Paper_stream). */
27 class Paper_outputter
29 bool verbatim_scheme_b_;
30 Paper_stream * stream_p_;
31 public:
32 String basename_;
33 Paper_outputter (String nm);
34 ~Paper_outputter ();
36 void dump_scheme (SCM);
38 void output_int_def (String k, int v);
39 void output_Real_def (String k, Real v);
40 void output_String_def (String k, String v);
41 void output_scope (Scope*, String prefix);
42 void output_version ();
43 void output_font_def (int i, String str);
44 void output_font_switch (int i);
45 void output_header ();
46 void output_comment (String s);
47 void output_string (SCM s);
48 void output_scheme (SCM scm);
50 static void write_header_field_to_file (String filename, String key, String value);
51 void write_header_fields_to_file (Scope *);
54 #endif // PAPER_OUTPUTTER_HH