source file of the GNU LilyPond music typesetter
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#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_;
- Paper_stream * stream_p_;
public:
- /**
- Assumes responsibility for deletion of P
- */
- Paper_outputter (Paper_stream*p);
+
+ 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_comment (String s);
- void output_string (SCM s);
+ void output_metadata (SCM, Paper_def*);
+ void output_music_output_def (Music_output_def* odef);
void output_scheme (SCM scm);
+ void output_expr (SCM expr, Offset o);
+ void output_header (Paper_def*);
+ void output_line (SCM, bool);
};
-#endif // PAPER_OUTPUTTER_HH
+#endif /* PAPER_OUTPUTTER_HH */