X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fglobal-context.hh;h=49436bcf87b04277b1bf8afa52d86d24c0bf4f44;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=720147e03d4e488e97291d5ddc952f37ddb21f82;hpb=1cd3b2484a4095d4e3fb6422dbc695a1a1219eea;p=lilypond.git diff --git a/lily/include/global-context.hh b/lily/include/global-context.hh index 720147e03d..49436bcf87 100644 --- a/lily/include/global-context.hh +++ b/lily/include/global-context.hh @@ -1,9 +1,20 @@ /* - 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--2005 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 @@ -12,34 +23,40 @@ #include "context.hh" #include "pqueue.hh" -class Global_context : public virtual Context +class Global_context : public Context { PQueue extra_mom_pq_; Output_def *output_def_; + DECLARE_CLASSNAME (Global_context); + friend class Output_def; public: - Global_context (Output_def *, Moment final, Object_key *key); + 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; + virtual Context *get_score_context () const; void apply_finalizations (); void add_finalization (SCM); + DECLARE_LISTENER (prepare); virtual SCM get_output (); - virtual void prepare (Moment); - virtual void one_time_step (); - virtual void finish (); virtual Output_def *get_output_def () const; virtual Moment now_mom () const; - virtual Context *get_default_interpreter (); + virtual Context *get_default_interpreter (const string &context_id = ""); + + static Global_context *unsmob (SCM x) { + return dynamic_cast (Context::unsmob (x)); + } + static bool is_smob (SCM x) { + return Context::is_smob (x) && unsmob (x); + } Moment previous_moment () const; protected: - Moment final_mom_; Moment prev_mom_; Moment now_mom_; };