X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fstream-event.hh;h=27a83ed72ff83e5f274398842029e69d2ce01fb7;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=4e1688f6f466a7fa3436b3ebfd082f67845f1181;hpb=abbdb46061be5c0a0682059d1f86bf3e44ca5cf3;p=lilypond.git diff --git a/lily/include/stream-event.hh b/lily/include/stream-event.hh index 4e1688f6f4..27a83ed72f 100644 --- a/lily/include/stream-event.hh +++ b/lily/include/stream-event.hh @@ -1,9 +1,20 @@ /* - stream-event.hh -- declare Stream_event + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2015 Erik Sandberg - (c) 2005-2006 Erik Sandberg + 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 STREAM_EVENT_HH @@ -18,23 +29,30 @@ class Stream_event : public Prob public: Stream_event (); VIRTUAL_COPY_CONSTRUCTOR (Stream_event, Stream_event); - // todo: remove unneeded constructors - Stream_event (SCM event_class, SCM mutable_props=SCM_EOL); + + static Stream_event *unsmob (SCM s) { + return dynamic_cast (Prob::unsmob (s)); + } + static bool is_smob (SCM s) { + return Prob::is_smob (s) && unsmob (s); + } + + Stream_event (SCM event_class, SCM immutable_props = SCM_EOL); Stream_event (SCM class_name, Input *); - Stream_event (Stream_event *ev); Input *origin () const; void set_spot (Input *i); bool internal_in_event_class (SCM class_name); + void make_transposable (); + + virtual SCM copy_mutable_properties () const; DECLARE_SCHEME_CALLBACK (undump, (SCM)); DECLARE_SCHEME_CALLBACK (dump, (SCM)); - }; #define in_event_class(class_name) internal_in_event_class (ly_symbol2scm (class_name)) -Stream_event *unsmob_stream_event (SCM); -DECLARE_TYPE_P (Stream_event); +SCM ly_event_deep_copy (SCM); #endif /* STREAM_EVENT_HH */