X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fglobal-context.hh;h=e0aca0a7d6cc35aeea203bb3c524e985eedd80ba;hb=6786ba7b5cd73f94eec0a49fd68d0e6d9d283437;hp=ba75d260871d7f3b3b5423ecfdf5960e32b9de93;hpb=e37010af17faa8b185de836664b6544bd29dc1d0;p=lilypond.git diff --git a/lily/include/global-context.hh b/lily/include/global-context.hh index ba75d26087..e0aca0a7d6 100644 --- a/lily/include/global-context.hh +++ b/lily/include/global-context.hh @@ -1,11 +1,21 @@ /* - global-context.hh -- declare Global_context + 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 GLOBAL_CONTEXT_HH #define GLOBAL_CONTEXT_HH @@ -13,36 +23,43 @@ #include "context.hh" #include "pqueue.hh" -class Global_context : public virtual Context +struct Preinit_Global_context +{ + Output_def *output_def_; + Preinit_Global_context (); +}; + +class Global_context : Preinit_Global_context, public Context { PQueue extra_mom_pq_; - Music_output_def* output_def_; - - friend class Music_output_def; + virtual void derived_mark () const; + + DECLARE_CLASSNAME (Global_context); + + friend class Output_def; public: - Global_context (Music_output_def*); + Global_context (Output_def *); int get_moments_left () const; Moment sneaky_insert_extra_moment (Moment); void add_moment_to_process (Moment); - void run_iterator_on_me (Music_iterator*); - virtual Score_context*get_score_context () const; - + void run_iterator_on_me (Music_iterator *); + virtual Context *get_score_context () const; + void apply_finalizations (); void add_finalization (SCM); - virtual Music_output *get_output (); - virtual void prepare (Moment); - virtual void one_time_step (); - virtual void finish (); - virtual Music_output_def* get_output_def () const; + void prepare (SCM); + virtual SCM get_output (); + virtual Output_def *get_output_def () const; virtual Moment now_mom () const; + virtual Context *get_default_interpreter (const string &context_id = ""); - Moment final_mom_; + Moment previous_moment () const; +protected: Moment prev_mom_; Moment now_mom_; -protected: }; - +SCM ly_format_output (SCM); #endif // GLOBAL_CONTEXT_HH