X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-outputter.hh;h=cd1a5e2c92fb4ffb34a0581f85398750c1276d28;hb=e56df084666dbf9905d90c062b1f462aeb6f5f4a;hp=7cf2a75e5ddbb8e7f8842556a4234ffd0cf76718;hpb=14ca3493aab1a1f4f837f1b483ad9ea1d1e444ad;p=lilypond.git diff --git a/lily/include/paper-outputter.hh b/lily/include/paper-outputter.hh index 7cf2a75e5d..cd1a5e2c92 100644 --- a/lily/include/paper-outputter.hh +++ b/lily/include/paper-outputter.hh @@ -1,51 +1,56 @@ /* - 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--2015 Han-Wen Nienhuys - (c) 1997--2004 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" +#include "std-vector.hh" +#include "std-string.hh" #include "protected-scm.hh" +#include "smobs.hh" -/** - 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 +/* + Glue between the backend (grobs, systems, pages) and the output file. + proxy for Scheme backends. +*/ +class Paper_outputter : public Smob { - bool verbatim_scheme_b_; +public: + SCM mark_smob () const; + virtual ~Paper_outputter (); +private: SCM output_module_; - Protected_scm file_; - String filename_; - Paper_def * paper_ ; // THIS IS BROKEN. - - void output_expr (SCM expr, Offset o); - void output_metadata (Paper_def*, SCM); - void output_music_output_def (Music_output_def* odef); + string file_name_; + SCM file_; public: - Paper_outputter (String nm); - ~Paper_outputter (); + Paper_outputter (SCM port, const string &format); - void dump_scheme (SCM); - void output_scheme (SCM scm); + void close (); + SCM dump_string (SCM); + SCM file () const; + SCM module () const; + SCM 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); + SCM scheme_to_string (SCM); }; + #endif /* PAPER_OUTPUTTER_HH */