source file of the GNU LilyPond music typesetter
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "lily-guile.hh"
#include "protected-scm.hh"
-#ifdef __powerpc__
-#include "protected-scm.hh"
-#endif
-
/**
- Abstract interface for a Score_element to output itself.
- */
+ Interface for a Grob to output itself; The Paper_score contains a
+ pointer to a Paper_outputter, and this enables every grob to output
+ itself.
+
+ The Paper_outputter contains a reference to an output stream
+ (Paper_stream). */
+
class Paper_outputter
{
+ bool verbatim_scheme_b_;
+ SCM output_module_;
+ Protected_scm file_;
+ String filename_;
+
+ void output_expr (SCM expr, Offset o);
+ void output_metadata (Paper_def*, SCM);
+ void output_music_output_def (Music_output_def* odef);
+
public:
- Protected_scm molecules_;
- SCM last_cons_;
- Paper_outputter ();
-
- void dump_onto (Paper_stream *);
-
-
- void output_int_def (String k, int v);
- void output_Real_def (String k, Real v);
- void output_String_def (String k, String v);
- void output_scope (Scope*, String prefix);
- void output_version ();
- void output_font_def (int i, String str);
- void output_font_switch (int i);
- void output_header ();
- void output_molecule (Molecule const *, Offset, char const *);
- void output_comment (String s);
- void output_scheme (SCM scm);
+ Paper_outputter (String nm);
+ ~Paper_outputter ();
- void start_line (Real height);
- void stop_line ();
- void stop_last_line ();
+ void dump_scheme (SCM);
+ void output_scheme (SCM scm);
+ void output_stencil (Stencil*);
+ void output_header (Paper_def*, SCM, int, bool);
+ void output_line (SCM, Offset*, bool);
+ void output_page (Page*, bool);
};
-#endif // PAPER_OUTPUTTER_HH
+#endif /* PAPER_OUTPUTTER_HH */