return sp;
}
-Engraver *
-Engraver::unsmob (SCM eng)
-{
- return dynamic_cast<Engraver *> (Translator::unsmob (eng));
-}
-
bool
ly_is_grob_cause (SCM obj)
{
else
return Context::get_default_interpreter ();
}
-
-Global_context *
-Global_context::unsmob (SCM x)
-{
- return dynamic_cast<Global_context *> (Context::unsmob (x));
-}
override other ctor
*/
TRANSLATOR_DECLARATIONS (Engraver);
- static Engraver *unsmob (SCM eng);
+ static Engraver *unsmob (SCM eng) {
+ return dynamic_cast<Engraver *> (Translator::unsmob (eng));
+ }
+ static bool is_smob (SCM eng) {
+ return Translator::is_smob (eng) && unsmob (eng);
+ }
};
#define make_item(x, cause) internal_make_item (ly_symbol2scm (x), cause, x, __FILE__, __LINE__, __FUNCTION__)
virtual Moment now_mom () const;
virtual Context *get_default_interpreter (const string &context_id = "");
- static Global_context *unsmob (SCM x);
+ static Global_context *unsmob (SCM x) {
+ return dynamic_cast<Global_context *> (Context::unsmob (x));
+ }
+ static bool is_smob (SCM x) {
+ return Context::is_smob (x) && unsmob (x);
+ }
Moment previous_moment () const;
protected:
Item (SCM);
Item (Item const &);
- static Item *unsmob (SCM);
+ static Item *unsmob (SCM g) {
+ return dynamic_cast <Item *> (Grob::unsmob (g));
+ }
+ static bool is_smob (SCM g) {
+ return Grob::is_smob (g) && unsmob (g);
+ }
virtual Grob *clone () const;
Moment get_length () const;
Moment start_mom () const;
void print () const;
- static Music *unsmob (SCM);
+ static Music *unsmob (SCM m) {
+ return dynamic_cast <Music *> (Prob::unsmob (m));
+ }
+ static bool is_smob (SCM m) {
+ return Prob::is_smob (m) && unsmob (m);
+ }
/// Transpose, with the interval central C to #p#
void transpose (Pitch p);
DECLARE_CLASSNAME (Paper_score);
- static Paper_score *unsmob (SCM);
+ static Paper_score *unsmob (SCM ps) {
+ return dynamic_cast <Paper_score *> (Music_output::unsmob (ps));
+ }
+ static bool is_smob (SCM ps) {
+ return Music_output::is_smob (ps) && unsmob (ps);
+ }
Output_def *layout () const;
System *root_system () const;
~Performance ();
DECLARE_CLASSNAME (Performance);
- static Performance *unsmob (SCM);
+ static Performance *unsmob (SCM p) {
+ return dynamic_cast <Performance *> (Music_output::unsmob (p));
+ }
+ static bool is_smob (SCM p) {
+ return Music_output::is_smob (p) && unsmob (p);
+ }
void add_element (Audio_element *p);
virtual void process ();
VIRTUAL_COPY_CONSTRUCTOR (Translator, Performer);
friend class Performer_group;
Performer_group *get_daddy_performer () const;
- static Performer *unsmob (SCM perf);
+ static Performer *unsmob (SCM perf) {
+ return dynamic_cast <Performer *> (Translator::unsmob (perf));
+ }
+ static bool is_smob (SCM perf) {
+ return Translator::is_smob (perf) && unsmob (perf);
+ }
protected:
virtual void announce_element (Audio_element_info);
DECLARE_SCHEME_CALLBACK (bounds_width, (SCM));
DECLARE_SCHEME_CALLBACK (kill_zero_spanned_time, (SCM));
- static Spanner *unsmob (SCM);
+ static Spanner *unsmob (SCM s) {
+ return dynamic_cast <Spanner *> (Grob::unsmob (s));
+ }
+ static bool is_smob (SCM s) {
+ return Grob::is_smob (s) && unsmob (s);
+ }
vector<Spanner *> broken_intos_;
Stream_event ();
VIRTUAL_COPY_CONSTRUCTOR (Stream_event, Stream_event);
- static Stream_event *unsmob (SCM);
+ static Stream_event *unsmob (SCM s) {
+ return dynamic_cast <Stream_event *> (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 *);
scm_gc_mark (broken_to_drul_[RIGHT]->self_scm ());
}
-Item *
-Item::unsmob (SCM s)
-{
- return dynamic_cast<Item *> (Grob::unsmob (s));
-}
-
Interval
Item::pure_height (Grob *g, int start, int end)
{
mom = d->get_length ();
return mom.smobbed_copy ();
}
-
-Music *
-Music::unsmob (SCM m)
-{
- return dynamic_cast<Music *> (Prob::unsmob (m));
-}
}
return paper_systems_;
}
-
-Paper_score *
-Paper_score::unsmob (SCM x)
-{
- return dynamic_cast<Paper_score *> (Music_output::unsmob (x));
-}
Performance::process ()
{
}
-
-Performance *
-Performance::unsmob (SCM x)
-{
- return dynamic_cast<Performance *> (Music_output::unsmob (x));
-}
get_daddy_performer ()->announce_element (i);
}
-
-Performer *
-Performer::unsmob (SCM perf)
-{
- return dynamic_cast<Performer *> (Translator::unsmob (perf));
-}
return result;
}
-Spanner *
-Spanner::unsmob (SCM s)
-{
- return dynamic_cast<Spanner *> (Grob::unsmob (s));
-}
-
MAKE_SCHEME_CALLBACK (Spanner, bounds_width, 1);
SCM
Spanner::bounds_width (SCM grob)
obj->mutable_property_alist_ = scm_reverse (scm_cdr (data));
return obj->unprotect ();
}
-
-Stream_event *
-Stream_event::unsmob (SCM m)
-{
- return dynamic_cast<Stream_event *> (Prob::unsmob (m));
-}