X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-outputter.hh;h=1ac0a74dfde8ee538e003305c4197458db1a3837;hb=e3912ef8ab3397df3c0dd64061bab361f5569ec3;hp=8eeae2cf307246229d9b8a9200dfaa8f08215a7d;hpb=da7dbf5f2f54bc66984ab2524c490335d567b5e7;p=lilypond.git diff --git a/lily/include/paper-outputter.hh b/lily/include/paper-outputter.hh index 8eeae2cf30..1ac0a74dfd 100644 --- a/lily/include/paper-outputter.hh +++ b/lily/include/paper-outputter.hh @@ -1,53 +1,57 @@ /* - paper-outputter.hh -- declare Paper_outputter + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2012 Han-Wen Nienhuys - (c) 1997--1999 Han-Wen Nienhuys -*/ + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ #ifndef PAPER_OUTPUTTER_HH #define PAPER_OUTPUTTER_HH #include "lily-proto.hh" -#include "array.hh" -#include "string.hh" -#include "lily-guile.hh" - -#ifdef __powerpc__ +#include "std-vector.hh" +#include "std-string.hh" #include "protected-scm.hh" -#endif +#include "smobs.hh" -/** - Abstract interface for a Score_element to output itself. - */ +/* + Glue between the backend (grobs, systems, pages) and the output file. + proxy for Scheme backends. +*/ class Paper_outputter { -#ifdef __powerpc__ - Protected_scm port_; -#endif + SCM output_module_; + string file_name_; + SCM file_; + public: - Paper_outputter (Paper_stream *); - ~Paper_outputter (); - - 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); - void start_line (Real height); - void stop_line (); - void stop_last_line (); - void switch_to_font (String fontname); + DECLARE_SMOBS (Paper_outputter); + +public: + Paper_outputter (SCM port, string format); - Paper_stream* outstream_l_; + void close (); + SCM dump_string (SCM); + SCM file () const; + SCM module () const; + void output_scheme (SCM scm); + void output_stencil (Stencil); + SCM scheme_to_string (SCM); }; -#endif // PAPER_OUTPUTTER_HH +Paper_outputter *get_paper_outputter (string, string); +DECLARE_UNSMOB (Paper_outputter, outputter); + +#endif /* PAPER_OUTPUTTER_HH */