source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "array.hh"
#include "string.hh"
#include "lily-guile.hh"
+#include "protected-scm.hh"
/**
- 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_;
public:
- Paper_outputter (Paper_stream *);
+
+ SCM output_func_ ;
+ Protected_scm file_;
+
+ String basename_;
+ Paper_outputter (String nm);
~Paper_outputter ();
+
+ void dump_scheme (SCM);
- 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_metadata (SCM, Paper_def*);
+ void output_music_output_def (Music_output_def* odef);
void output_scheme (SCM scm);
- void start_line ();
- void stop_line ();
- void switch_to_font (String fontname);
-
- Array<String> font_arr_;
- String current_font_;
- Paper_stream* outstream_l_;
};
#endif // PAPER_OUTPUTTER_HH