* lily/include/context.hh (class Context): make members protected.
(children_contexts): new accessor function.
* lily/include/context.hh (class Context): make daddy_context_
private.
* lily/lyric-engraver.cc (get_voice_to_lyrics): recursively go
higher for finding Voice. (backportme)
* lily/include/context.hh (class Context): remove
find_context_below() as a method.
/* If an accidental was not found or the accidental was too old */
if (prev == SCM_BOOL_F ||
- (is_number (lazyness) && curbarnum_i > accbarnum_i + ly_scm2int (lazyness)))
+ (ly_c_number_p (lazyness) && curbarnum_i > accbarnum_i + ly_scm2int (lazyness)))
prev = scm_assoc (scm_int2num (n), sig);
SCM prev_acc = (prev == SCM_BOOL_F) ? scm_int2num (0) : ly_cdr (prev);
- int p = is_number (prev_acc) ? ly_scm2int (prev_acc) : 0;
+ int p = ly_c_number_p (prev_acc) ? ly_scm2int (prev_acc) : 0;
int num;
- if (a == p && is_number (prev_acc))
+ if (a == p && ly_c_number_p (prev_acc))
num = 0;
else if ( (abs (a)<abs (p) || p*a<0) && a != 0 )
num = 2;
Moment mp = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0);
if (mp.main_part_ < Rational (0)
- && is_number (barnum))
+ && ly_c_number_p (barnum))
barnum = scm_int2num (ly_scm2int (barnum) - 1);
return barnum ;
SCM d = me->get_property ("stacking-dir");
- Direction stacking_dir = is_number (d) ? to_dir (d) : CENTER;
+ Direction stacking_dir = ly_c_number_p (d) ? to_dir (d) : CENTER;
if (!stacking_dir)
stacking_dir = DOWN;
SCM d = me->get_property ("stacking-dir");
- Direction stacking_dir = is_number (d) ? to_dir (d) : CENTER;
+ Direction stacking_dir = ly_c_number_p (d) ? to_dir (d) : CENTER;
if (!stacking_dir)
stacking_dir = DOWN;
FIXME: uncommenting freaks out the Y-alignment of
line-of-score.
*/
- if (is_number (align))
+ if (ly_c_number_p (align))
center_offset = total.linear_combination (ly_scm2double (align));
for (int j = 0 ; j < all_grobs.size (); j++)
{
while (g)
{
- if (is_number (g->get_property ("forced-distance")))
+ if (ly_c_number_p (g->get_property ("forced-distance")))
return g;
g = g->get_parent (Y_AXIS);
prev = scm_assoc (scm_int2num (notename), key_signature);
SCM prev_acc = (prev == SCM_BOOL_F) ? scm_int2num (0) : ly_cdr (prev);
- int sig_alteration = is_number (prev_acc) ? ly_scm2int (prev_acc) : 0;
+ int sig_alteration = ly_c_number_p (prev_acc) ? ly_scm2int (prev_acc) : 0;
if (alteration == sig_alteration) // no accidental at all needed
return 0;
}
SCM c0 = me->get_property ("c0-position");
- if (is_number (c0))
+ if (ly_c_number_p (c0))
{
p_min += ly_scm2int (c0);
p_max += ly_scm2int (c0);
Grob*me = unsmob_grob (smob);
Real ss = Staff_symbol_referencer::staff_space (me);
SCM size = me->get_property ("bar-size");
- if (is_number (size))
+ if (ly_c_number_p (size))
return scm_make_real (ly_scm2double (size)*ss);
else if (Staff_symbol_referencer::get_staff_symbol (me))
{
{
SCM bn = get_property ("currentBarNumber");
SCM proc = get_property ("barNumberVisibility");
- if (is_number (bn) && ly_c_procedure_p (proc)
+ if (ly_c_number_p (bn) && ly_c_procedure_p (proc)
&& to_boolean (scm_call_1(proc, bn)))
{
create_items ();
Real slt = Staff_symbol_referencer::line_thickness (me) / ss;
SCM sdy = me->get_property ("least-squares-dy");
- Real dy_mus = is_number (sdy) ? ly_scm2double (sdy) : 0.0;
+ Real dy_mus = ly_c_number_p (sdy) ? ly_scm2double (sdy) : 0.0;
Real straddle = 0.0;
Real sit = (thickness - slt) / 2;
Stencil gapped;
int gap_count = 0;
- if (is_number (me->get_property ("gap-count")))
+ if (ly_c_number_p (me->get_property ("gap-count")))
{
gap_count = ly_scm2int (me->get_property ("gap-count"));
gapped = Lookup::beam (dydx, w - 2 * gap_length, thick, blot);
scm_cons (scm_int2num (total[UP]),
scm_int2num (total[DOWN])));
- if (is_number (s) && ly_scm2int (s))
+ if (ly_c_number_p (s) && ly_scm2int (s))
return to_dir (s);
/* If dir is not determined: get default */
Beam::consider_auto_knees (Grob* me)
{
SCM scm = me->get_property ("auto-knee-gap");
- if (!is_number (scm))
+ if (!ly_c_number_p (scm))
return ;
Real threshold = ly_scm2double (scm);
*/
bool is_concave1 = false;
SCM gap = me->get_property ("concaveness-gap");
- if (is_number (gap))
+ if (ly_c_number_p (gap))
{
Real r1 = ly_scm2double (gap);
Real dy = Stem::chord_start_y (stems.top ())
Real concaveness2 = 0;
SCM thresh = me->get_property ("concaveness-threshold");
Real r2 = infinity_f;
- if (!is_concave1 && is_number (thresh))
+ if (!is_concave1 && ly_c_number_p (thresh))
{
r2 = ly_scm2double (thresh);
bool gap = false;
Real thick =0.0;
- if (is_number (me->get_property ("gap-count"))
+ if (ly_c_number_p (me->get_property ("gap-count"))
&&ly_scm2int (me->get_property ("gap-count")))
{
gap = true;
Grob *rest = unsmob_grob (element_smob);
Axis a = (Axis) ly_scm2int (axis);
- if (is_number (rest->get_property ("staff-position")))
+ if (ly_c_number_p (rest->get_property ("staff-position")))
return scm_int2num (0);
assert (a == Y_AXIS);
Drul_array<Real> pos (0, 0);
SCM s = beam->get_property ("positions");
- if (ly_c_pair_p (s) && is_number (ly_car (s)))
+ if (ly_c_pair_p (s) && ly_c_number_p (ly_car (s)))
pos = ly_scm2interval (s);
Real staff_space = Staff_symbol_referencer::staff_space (rest);
if (inversion_event)
{
SCM oct = inversion_event->get_property ("octavation");
- if (is_number (oct))
+ if (ly_c_number_p (oct))
{
Pitch *p = unsmob_pitch (inversion_event->get_property ("pitch"));
int octavation = ly_scm2int (oct);
clef_ = c;
SCM cpos = get_property ("clefPosition");
- if (is_number (cpos))
+ if (ly_c_number_p (cpos))
Staff_symbol_referencer::set_position (clef_, ly_scm2int (cpos));
SCM oct = get_property ("clefOctavation");
- if (is_number (oct) && ly_scm2int (oct))
+ if (ly_c_number_p (oct) && ly_scm2int (oct))
{
Item * g = make_item ("OctavateEight");
{
SCM c0scm = get_property ("middleCPosition");
- int c0 = is_number (c0scm) ? ly_scm2int (c0scm) : 0;
+ int c0 = ly_c_number_p (c0scm) ? ly_scm2int (c0scm) : 0;
int pmax = INT_MIN;
int pmin = INT_MAX;
int pos = pit->steps ();
SCM c0 = get_property ("middleCPosition");
- if (is_number (c0))
+ if (ly_c_number_p (c0))
pos += ly_scm2int (c0);
note->set_property ("staff-position", scm_int2num (pos));
bool
Context::try_music (Music* m)
{
- Translator* t = unsmob_translator (implementation_);
+ Translator* t = implementation ();
if (!t)
return false;
{
return daddy_context_;
}
+
+Translator_group*
+Context::implementation () const
+{
+ return dynamic_cast<Translator_group*> (unsmob_translator (implementation_));
+}
int p = pitches_[i].steps ();
SCM c0 = get_property ("middleCPosition");
- if (is_number (c0))
+ if (ly_c_number_p (c0))
p += ly_scm2int (c0);
SCM c = sc->get_property ("dot-count");
- if (is_number (c))
+ if (ly_c_number_p (c))
{
Stencil d = Font_interface::get_default_font (sc)->find_by_name (String ("dots-dot"));
Real dw = d.extent (X_AXIS).length ();
bool compress = false;
if (num != SCM_UNDEFINED)
{
- SCM_ASSERT_TYPE (is_number (num), length, SCM_ARG3, __FUNCTION__, "integer");
+ SCM_ASSERT_TYPE (ly_c_number_p (num), length, SCM_ARG3, __FUNCTION__, "integer");
compress = true;
}
else
if (den != SCM_UNDEFINED)
{
- SCM_ASSERT_TYPE (is_number (den), length, SCM_ARG4, __FUNCTION__, "integer");
+ SCM_ASSERT_TYPE (ly_c_number_p (den), length, SCM_ARG4, __FUNCTION__, "integer");
compress = true;
}
else
1, 0, 0, (SCM d),
"The 2-logarithm of 1/@var{d}.")
{
- SCM_ASSERT_TYPE (is_number (d), d, SCM_ARG1, __FUNCTION__, "integer");
+ SCM_ASSERT_TYPE (ly_c_number_p (d), d, SCM_ARG1, __FUNCTION__, "integer");
int log = intlog2 (ly_scm2int (d));
return scm_int2num (log);
}
DynamicText doesn't really have a script-priority field.
*/
- if (is_number (p)
+ if (ly_c_number_p (p)
&& ly_scm2int (p) < ly_scm2int (script_->get_property ("script-priority")))
{
Side_position_interface::add_support (line_spanner_, i.grob_);
*/
SCM min = get_property ("midiMinimumVolume");
SCM max = get_property ("midiMaximumVolume");
- if (is_number (min) || is_number (max))
+ if (ly_c_number_p (min) || ly_c_number_p (max))
{
Interval iv (0, 1);
- if (is_number (min))
+ if (ly_c_number_p (min))
iv[MIN] = ly_scm2double (min);
- if (is_number (max))
+ if (ly_c_number_p (max))
iv[MAX] = ly_scm2double (max);
volume = iv[MIN] + iv.length () * volume;
}
recurse_down_engravers (Context * c, Engraver_method ptr, bool context_first)
{
Engraver_group_engraver * tg
- = dynamic_cast<Engraver_group_engraver*> (unsmob_translator (c->implementation_));
+ = dynamic_cast<Engraver_group_engraver*> (c->implementation ());
if (!context_first)
}
-
Engraver::Engraver ()
{
}
Score_engraver*
Engraver::get_score_engraver () const
{
- SCM t = get_score_context ()->implementation_;
- return dynamic_cast<Score_engraver*> (unsmob_translator (t));
+ return dynamic_cast<Score_engraver*> (get_score_context ()->implementation ());
}
new_pit = new_pit.to_relative_octave (last);
SCM check = get_property ("absolute-octave");
- if (is_number (check) &&
+ if (ly_c_number_p (check) &&
new_pit.get_octave () != ly_scm2int (check))
{
Pitch expected_pit (ly_scm2int (check),
newlist = scm_cons (scm_cons (key, scm_int2num (orig.get_alteration ())),
newlist);
}
- else if (is_number (key))
+ else if (ly_c_number_p (key))
{
Pitch orig (0, ly_scm2int (key), ly_scm2int (alter));
orig = orig.transposed (*p);
// Hmm
int priority = 200;
SCM s = fingering->get_property ("script-priority");
- if (is_number (s))
+ if (ly_c_number_p (s))
priority = ly_scm2int (s);
/* See script-engraver.cc */
{
Font_metric *fm = unsmob_metrics (font);
SCM_ASSERT_TYPE (fm, font, SCM_ARG1, __FUNCTION__, "font-metric");
- SCM_ASSERT_TYPE (is_number (index), index, SCM_ARG2, __FUNCTION__, "number");
+ SCM_ASSERT_TYPE (ly_c_number_p (index), index, SCM_ARG2, __FUNCTION__, "number");
return fm->get_ascii_char_stencil (ly_scm2int (index)).smobbed_copy ();
}
if (gi.origin_trans_->get_parent_context () != get_parent_context ())
return ;
- if (is_number (sz) && ly_scm2double (sz))
+ if (ly_c_number_p (sz) && ly_scm2double (sz))
{
Real font_size = ly_scm2double (sz);
if (pc->original_)
{
SCM pen = pc->get_property ("penalty");
- if (is_number (pen) && fabs (ly_scm2double (pen)) < 10000)
+ if (ly_c_number_p (pen) && fabs (ly_scm2double (pen)) < 10000)
{
break_penalties += ly_scm2double (pen);
}
{
Grob *me = unsmob_grob (g);
SCM_ASSERT_TYPE (me, g, SCM_ARG1, __FUNCTION__, "grob");
- SCM_ASSERT_TYPE (is_number (d), d, SCM_ARG2, __FUNCTION__, "dimension");
+ SCM_ASSERT_TYPE (ly_c_number_p (d), d, SCM_ARG2, __FUNCTION__, "dimension");
SCM_ASSERT_TYPE (is_axis (a), a, SCM_ARG3, __FUNCTION__, "axis");
me->translate_axis (ly_scm2double (d), Axis (ly_scm2int (a)));
void terminate ();
+private:
+ friend class Interpretation_context_handle;
+ int iterator_count_;
+ bool init_;
+
protected:
Context * daddy_context_;
SCM definition_;
SCM context_list_;
SCM accepts_list_;
SCM aliases_;
+ SCM implementation_;
friend class Context_def;
public:
SCM children_contexts () const { return context_list_; }
SCM default_child_context_name () const;
-
+ Translator_group* implementation () const;
+
Context * get_parent_context () const;
Context ();
Music_output_def*) const;
virtual Context *get_default_interpreter ();
String id_string_;
-
- SCM implementation_;
-private:
- friend class Interpretation_context_handle;
- int iterator_count_;
- bool init_;
};
/*
return scm_acons(key, val, scm_assoc_remove_x (alist, key));
}
inline bool ly_c_pair_p (SCM x) { return SCM_NFALSEP (scm_pair_p (x)); }
-inline bool ly_c_symbol_pi (SCM x) { return SCM_SYMBOLP (x); }
+inline bool ly_c_symbol_p (SCM x) { return SCM_SYMBOLP (x); }
inline bool ly_c_boolean_p (SCM x) { return SCM_BOOLP (x); }
inline bool ly_c_char_p (SCM x) { return SCM_CHARP (x); }
-inline bool is_number (SCM x) { return SCM_NUMBERP (x); }
+inline bool ly_c_number_p (SCM x) { return SCM_NUMBERP (x); }
inline bool ly_c_string_p (SCM x) { return SCM_STRINGP (x); }
inline bool ly_c_vector_p (SCM x) { return SCM_VECTORP (x); }
inline bool ly_c_list_p (SCM x) { return SCM_NFALSEP (scm_list_p (x)); }
SCM c0s = me->get_property ("c0-position");
int c0p = 0;
- if (is_number (c0s))
+ if (ly_c_number_p (c0s))
c0p = ly_scm2int (c0s);
/*
"@code{1}, where @code{-1} represents "
"left or down and @code{1} represents right or up.")
{
- if (is_number (s))
+ if (ly_c_number_p (s))
{
int i = ly_scm2int (s);
return (i>= -1 && i <= 1) ? SCM_BOOL_T : SCM_BOOL_F;
bool
is_number_pair (SCM p)
{
- return ly_c_pair_p (p) && is_number (ly_car (p)) && is_number (ly_cdr (p));
+ return ly_c_pair_p (p) && ly_c_number_p (ly_car (p)) && ly_c_number_p (ly_cdr (p));
}
typedef void (*Void_fptr) ();
bool
is_direction (SCM s)
{
- if (is_number (s))
+ if (ly_c_number_p (s))
{
int i = ly_scm2int (s);
return i>= -1 && i <= 1;
bool
is_axis (SCM s)
{
- if (is_number (s))
+ if (ly_c_number_p (s))
{
int i = ly_scm2int (s);
return i== 0 || i == 1;
1, 0, 0, (SCM s),
"Convert @var{num} to a string without generating many decimals.")
{
- SCM_ASSERT_TYPE (is_number (s), s, SCM_ARG1, __FUNCTION__, "number");
+ SCM_ASSERT_TYPE (ly_c_number_p (s), s, SCM_ARG1, __FUNCTION__, "number");
char str[400]; // ugh.
Slice s;
s.set_empty ();
for (; ly_c_pair_p (l); l = ly_cdr (l))
- if (is_number (ly_car (l)))
+ if (ly_c_number_p (ly_car (l)))
s.add_point (ly_scm2int (ly_car (l)));
return s;
}
Real
robust_scm2double (SCM k, double x)
{
- if (is_number (k))
+ if (ly_c_number_p (k))
x = ly_scm2double (k);
return x;
}
SCM type = me->get_property ("style");
SCM dash_fraction = me->get_property ("dash-fraction");
- if (is_number (dash_fraction) || type == ly_symbol2scm ("dotted-line"))
+ if (ly_c_number_p (dash_fraction) || type == ly_symbol2scm ("dotted-line"))
{
Real fraction
{
SCM_ASSERT_TYPE (is_axis (a), a, SCM_ARG1, __FUNCTION__, "axis") ;
SCM_ASSERT_TYPE (is_number_pair (iv), iv, SCM_ARG2, __FUNCTION__, "number pair") ;
- SCM_ASSERT_TYPE (is_number (t), a, SCM_ARG3, __FUNCTION__, "number") ;
- SCM_ASSERT_TYPE (is_number (p), a, SCM_ARG4, __FUNCTION__, "number") ;
+ SCM_ASSERT_TYPE (ly_c_number_p (t), a, SCM_ARG3, __FUNCTION__, "number") ;
+ SCM_ASSERT_TYPE (ly_c_number_p (p), a, SCM_ARG4, __FUNCTION__, "number") ;
return Lookup::bracket ((Axis)ly_scm2int (a), ly_scm2interval (iv),
{
SCM_ASSERT_TYPE (is_number_pair (xext), xext, SCM_ARG1, __FUNCTION__, "number pair") ;
SCM_ASSERT_TYPE (is_number_pair (yext), yext, SCM_ARG2, __FUNCTION__, "number pair") ;
- SCM_ASSERT_TYPE (is_number (blot), blot, SCM_ARG3, __FUNCTION__, "number") ;
+ SCM_ASSERT_TYPE (ly_c_number_p (blot), blot, SCM_ARG3, __FUNCTION__, "number") ;
return Lookup::round_filled_box (Box (ly_scm2interval (xext), ly_scm2interval (yext)),
ly_scm2double (blot)).smobbed_copy ();
if (!Text_item::markup_p (m) &&
ly_c_procedure_p (proc))
{
- if (!is_number (m))
+ if (!ly_c_number_p (m))
m = get_property ("rehearsalMark");
if (scm_integer_p (m) == SCM_BOOL_T
scm_int2num (mark_count));
}
- if (is_number (m))
+ if (ly_c_number_p (m))
m = scm_call_2 (proc, m, get_parent_context ()->self_scm ());
else
warning ("rehearsalMark does not have integer value.");
{
SCM thres = get_property ("restNumberThreshold");
int t = 1;
- if (is_number (thres))
+ if (ly_c_number_p (thres))
t = ly_scm2int (thres);
if (num <= t)
int measures = 0;
SCM m (me->get_property ("measure-count"));
- if (is_number (m))
+ if (ly_c_number_p (m))
{
measures = ly_scm2int (m);
}
{
int measures = 0;
SCM m (me->get_property ("measure-count"));
- if (is_number (m))
+ if (ly_c_number_p (m))
{
measures = ly_scm2int (m);
}
SCM sh
= clashes[i]->get_property ("horizontal-shift");
- if (is_number (sh))
+ if (ly_c_number_p (sh))
shift.push (ly_scm2int (sh));
else
shift.push (0);
Grob * se = unsmob_grob (ly_car (s));
SCM force = se->get_property ("force-hshift");
- if (is_number (force))
+ if (ly_c_number_p (force))
{
tups = scm_cons (scm_cons (se->self_scm (), force),
tups);
SCM s1 = p1->get_property ("horizontal-shift");
SCM s2 = p2->get_property ("horizontal-shift");
- int h1 = (is_number (s1))? ly_scm2int (s1) :0;
- int h2 = (is_number (s2)) ? ly_scm2int (s2):0;
+ int h1 = (ly_c_number_p (s1))? ly_scm2int (s1) :0;
+ int h2 = (ly_c_number_p (s2)) ? ly_scm2int (s2):0;
return h1 - h2;
}
Note_column::translate_rests (Grob*me, int dy)
{
Grob * r = unsmob_grob (me->get_property ("rest"));
- if (r && !is_number (r->get_property ("staff-position")))
+ if (r && !ly_c_number_p (r->get_property ("staff-position")))
{
r->translate_axis (dy * Staff_symbol_referencer::staff_space (r)/2.0, Y_AXIS);
}
Note_head::get_balltype (Grob*me)
{
SCM s = me->get_property ("duration-log");
- return is_number (s) ? ly_scm2int (s) <? 2 : 0;
+ return ly_c_number_p (s) ? ly_scm2int (s) <? 2 : 0;
}
ADD_INTERFACE (Note_head,"note-head-interface",
int pos = pit ? pit->steps () : 0;
SCM c0 = get_property ("middleCPosition");
- if (is_number (c0))
+ if (ly_c_number_p (c0))
pos += ly_scm2int (c0);
note->set_property ("staff-position", scm_int2num (pos));
"Return a vector with line numbers of page breaks.")
{
SCM_ASSERT_TYPE (scm_pair_p (lines), lines, SCM_ARG1, __FUNCTION__, "list");
- SCM_ASSERT_TYPE (is_number (book), book, SCM_ARG2, __FUNCTION__, "real");
- SCM_ASSERT_TYPE (is_number (text), text, SCM_ARG2, __FUNCTION__, "real");
- SCM_ASSERT_TYPE (is_number (first), first, SCM_ARG2, __FUNCTION__, "real");
- SCM_ASSERT_TYPE (is_number (last), last, SCM_ARG2, __FUNCTION__, "real");
+ SCM_ASSERT_TYPE (ly_c_number_p (book), book, SCM_ARG2, __FUNCTION__, "real");
+ SCM_ASSERT_TYPE (ly_c_number_p (text), text, SCM_ARG2, __FUNCTION__, "real");
+ SCM_ASSERT_TYPE (ly_c_number_p (first), first, SCM_ARG2, __FUNCTION__, "real");
+ SCM_ASSERT_TYPE (ly_c_number_p (last), last, SCM_ARG2, __FUNCTION__, "real");
return c_ragged_page_breaks (lines,
ly_scm2double (book), ly_scm2double (text),
Music *m = unsmob_music ($1);
if ($2) {
SCM salter = m->get_property ("alteration");
- int alter = is_number (salter) ? ly_scm2int (salter) : 0;
+ int alter = ly_c_number_p (salter) ? ly_scm2int (salter) : 0;
m->set_property ("alteration",
scm_int2num (alter + $2));
} else {
n->set_property ("pitch", $1);
n->set_property ("duration", $5);
- if (is_number ($4))
+ if (ly_c_number_p ($4))
{
int q = ly_scm2int ($4);
n->set_property ("absolute-octave", scm_int2num (q-1));
if (ly_c_string_p (sid)) {
*destination = sid;
return STRING_IDENTIFIER;
- } else if (is_number (sid)) {
+ } else if (ly_c_number_p (sid)) {
*destination = sid;
return NUMBER_IDENTIFIER;
} else if (unsmob_context_def (sid)) {
{
announce_infos_.push (info);
Translator *t
- = unsmob_translator (get_parent_context ()->get_parent_context ()->implementation_);
+ = get_parent_context ()->get_parent_context ()->implementation ();
if (Performer_group_performer * eg = dynamic_cast<Performer_group_performer*> (t))
eg->announce_element (info);
Pitch_squash_engraver::acknowledge_grob (Grob_info i)
{
SCM newpos = get_property ("squashedPosition");
- if (is_number (newpos)
+ if (ly_c_number_p (newpos)
&& Note_head::has_interface (i.grob_))
{
i.grob_->set_property ("staff-position", newpos);
{
int pos= p->steps ();
SCM c0 = get_property ("middleCPosition");
- if (is_number (c0))
+ if (ly_c_number_p (c0))
pos += ly_scm2int (c0);
rest_->set_property ("staff-position", scm_int2num (pos));
Grob* me = unsmob_grob (smob);
SCM balltype_scm = me->get_property ("duration-log");
- if (!is_number (balltype_scm))
+ if (!ly_c_number_p (balltype_scm))
return Stencil ().smobbed_copy ();
int balltype = ly_scm2int (balltype_scm);
Rest::polyphonic_offset_callback (SCM smob, SCM)
{
Grob* me = unsmob_grob (smob);
- if (is_number (me->get_property ("staff-position")))
+ if (ly_c_number_p (me->get_property ("staff-position")))
return scm_make_real (0);
Direction d = get_grob_direction (me);
Rhythmic_head::duration_log (Grob*me)
{
SCM s = me->get_property ("duration-log");
- return is_number (s) ? ly_scm2int (s) : 0;
+ return ly_c_number_p (s) ? ly_scm2int (s) : 0;
}
ADD_INTERFACE (Rhythmic_head,"rhythmic-head-interface",
void
Score_context::prepare (Moment w)
{
- Translator* t = unsmob_translator (implementation_);
+ Translator* t = implementation ();
Score_translator * s = dynamic_cast<Score_translator *> (t);
s->prepare (w);
void
Score_context::finish ()
{
- Translator* t = unsmob_translator (implementation_);
+ Translator* t = implementation ();
Score_translator * s = dynamic_cast<Score_translator *> (t);
s->finish ();
void
Score_context::one_time_step ()
{
- Translator* t = unsmob_translator (implementation_);
+ Translator* t = implementation ();
Score_translator * s = dynamic_cast<Score_translator *> (t);
s->one_time_step ();
}
Music_output*
Score_context::get_output ()
{
- Translator *t = unsmob_translator (implementation_);
+ Translator *t = implementation ();
Score_translator *s = dynamic_cast<Score_translator *> (t);
return s->get_output ();
}
if (m->is_mus_type ("break-event"))
{
SCM pen = command_column_->get_property ("penalty");
- Real total_penalty = is_number (pen) ? ly_scm2double (pen) : 0.0;
+ Real total_penalty = ly_c_number_p (pen) ? ly_scm2double (pen) : 0.0;
SCM mpen = m->get_property ("penalty");
- if (is_number (mpen))
+ if (ly_c_number_p (mpen))
total_penalty += ly_scm2double (mpen);
command_column_->set_property ("penalty", scm_make_real (total_penalty));
forbid_breaks ();
SCM page_pen = command_column_->get_property ("page-penalty");
- Real total_pp = is_number (page_pen) ? ly_scm2double (page_pen) : 0.0;
+ Real total_pp = ly_c_number_p (page_pen) ? ly_scm2double (page_pen) : 0.0;
SCM mpage_pen = m->get_property ("page-penalty");
- if (is_number (mpage_pen))
+ if (ly_c_number_p (mpage_pen))
total_pp += ly_scm2double (mpage_pen);
command_column_->set_property ("page-penalty", scm_make_real (total_pp));
Script_column::add_staff_sided (Grob *me, Item *i)
{
SCM p = i->get_property ("script-priority");
- if (!is_number (p))
+ if (!ly_c_number_p (p))
return;
Pointer_group_interface::add_grob (me, ly_symbol2scm ("scripts"),i);
SCM sym= (a == X_AXIS) ? ly_symbol2scm ("self-alignment-X"): ly_symbol2scm ("self-alignment-Y");
SCM align_prop (me->internal_get_property (sym));
- if (!is_number (align_prop))
+ if (!ly_c_number_p (align_prop))
return scm_int2num (0);
Real x = 0.0;
SCM sym= (a == X_AXIS) ? ly_symbol2scm ("self-alignment-X"): ly_symbol2scm ("self-alignment-Y");
SCM align (me->internal_get_property (sym));
- if (is_number (align))
+ if (ly_c_number_p (align))
{
Interval ext (me->extent (me,a));
Grob * st = Staff_symbol_referencer::get_staff_symbol (me);
bool include_staff = (st
&& a == Y_AXIS
- && is_number (me->get_property ("staff-padding")));
+ && ly_c_number_p (me->get_property ("staff-padding")));
Interval dim;
if (include_staff)
*/
Grob * st = Staff_symbol_referencer::get_staff_symbol (me);
if (st && a == Y_AXIS
- && is_number (me->get_property ("staff-padding")))
+ && ly_c_number_p (me->get_property ("staff-padding")))
{
Real padding=
Staff_symbol_referencer::staff_space (me)
for (int i = sz; i--; )
{
SCM p = positions->cols_[i]->get_property ( "penalty");
- if (is_number (p))
+ if (ly_c_number_p (p))
{
if (ly_scm2double (p) < -9999)
break_satisfy = break_satisfy && (i == 0 || i == sz -1);
Avoid too steep slurs.
*/
SCM s = me->get_property ("slope-limit");
- if (is_number (s))
+ if (ly_c_number_p (s))
{
Array<Offset> encompass = get_encompass_offsets (me);
Drul_array<Offset> attachment;
TODO: replace dashed with generic property.
*/
SCM d = me->get_property ("dashed");
- if (is_number (d))
+ if (ly_c_number_p (d))
a = Lookup::dashed_slur (one, thick, thick * robust_scm2double (d, 0));
else
a = Lookup::slur (one, get_grob_direction (me) * base_thick * ss / 10.0,
SCM ssb = me->get_property ("beautiful");
Real sb = 0;
- if (is_number (ssb))
+ if (ly_c_number_p (ssb))
sb = ly_scm2double (ssb);
bb.minimise_enclosed_area (sb, details);
SCM sbf = scm_assq (ly_symbol2scm ("force-blowfit"), details);
Real bff = 1.0;
- if (ly_c_pair_p (sbf) && is_number (ly_cdr (sbf)))
+ if (ly_c_pair_p (sbf) && ly_c_number_p (ly_cdr (sbf)))
bff = ly_scm2double (ly_cdr (sbf));
bb.curve_.control_[1][Y_AXIS] *= bff;
SCM pos = me->get_property ("staff-position");
Real off = 0.0;
- if (is_number (pos))
+ if (ly_c_number_p (pos))
{
Real space = Staff_symbol_referencer::staff_space (me);
off = ly_scm2double (pos) * space / 2.0;
do
{
SCM width_scm = me->get_property ("width");
- if (d == RIGHT && is_number (width_scm))
+ if (d == RIGHT && ly_c_number_p (width_scm))
{
/*
don't multiply by Staff_symbol_referencer::staff_space (me),
Staff_symbol::line_count (Grob*me)
{
SCM c = me->get_property ("line-count");
- if (is_number (c))
+ if (ly_c_number_p (c))
return ly_scm2int (c);
else
return 0;
int requested_type = ly_scm2int (tremolo_ev_->get_property ("tremolo-type"));
SCM f = get_property ("tremoloFlags");
if (!requested_type)
- if (is_number (f))
+ if (ly_c_number_p (f))
requested_type = ly_scm2int (f);
else
requested_type = 8;
toDO: junk these properties.
*/
SCM prop = get_property ("stemLeftBeamCount");
- if (is_number (prop))
+ if (ly_c_number_p (prop))
{
Stem::set_beaming (stem_,ly_scm2int (prop),LEFT);
get_parent_context ()->unset_property (ly_symbol2scm ("stemLeftBeamCount"));
}
prop = get_property ("stemRightBeamCount");
- if (is_number (prop))
+ if (ly_c_number_p (prop))
{
Stem::set_beaming (stem_,ly_scm2int (prop), RIGHT);
get_parent_context ()->unset_property (ly_symbol2scm ("stemRightBeamCount"));
int tremolo_flags = 0;
SCM s = me->get_property ("flag-count");
- if (is_number (s))
+ if (ly_c_number_p (s))
tremolo_flags = ly_scm2int (s);
if (!tremolo_flags)
Real beamthickness = 0.0;
SCM sbt = (beam) ? beam->get_property ("thickness") : SCM_EOL ;
- if (is_number (sbt))
+ if (ly_c_number_p (sbt))
{
beamthickness = ly_scm2double (sbt) * ss;
}
{
SCM p =me->get_property ("stem-end-position");
Real pos;
- if (!is_number (p))
+ if (!ly_c_number_p (p))
{
pos = get_default_stem_end_position (me);
me->set_property ("stem-end-position", scm_make_real (pos));
Real length = 7; // WARNING: IN HALF SPACES
SCM scm_len = me->get_property ("length");
- if (is_number (scm_len))
+ if (ly_c_number_p (scm_len))
{
length = ly_scm2double (scm_len);
}
Stem::duration_log (Grob*me)
{
SCM s = me->get_property ("duration-log");
- return (is_number (s)) ? ly_scm2int (s) : 2;
+ return (ly_c_number_p (s)) ? ly_scm2int (s) : 2;
}
void
{
Stencil *s = unsmob_stencil (stil);
SCM_ASSERT_TYPE (s, stil, SCM_ARG1, __FUNCTION__, "stencil");
- SCM_ASSERT_TYPE (is_number (amount), amount, SCM_ARG2, __FUNCTION__, "number pair");
+ SCM_ASSERT_TYPE (ly_c_number_p (amount), amount, SCM_ARG2, __FUNCTION__, "number pair");
SCM_ASSERT_TYPE (is_axis (axis), axis, SCM_ARG3, __FUNCTION__, "axis");
SCM new_s = s->smobbed_copy ();
Real p = 0.0;
if (padding != SCM_UNDEFINED)
{
- SCM_ASSERT_TYPE (is_number (padding), padding, SCM_ARG5, __FUNCTION__, "number");
+ SCM_ASSERT_TYPE (ly_c_number_p (padding), padding, SCM_ARG5, __FUNCTION__, "number");
p = ly_scm2double (padding);
}
Real m = 0.0;
if (minimum != SCM_UNDEFINED)
{
- SCM_ASSERT_TYPE (is_number (minimum), minimum, SCM_ARG6, __FUNCTION__, "number");
+ SCM_ASSERT_TYPE (ly_c_number_p (minimum), minimum, SCM_ARG6, __FUNCTION__, "number");
m = ly_scm2double (minimum);
}
Real p = 0.0;
if (padding != SCM_UNDEFINED)
{
- SCM_ASSERT_TYPE (is_number (padding), padding, SCM_ARG5, __FUNCTION__, "number");
+ SCM_ASSERT_TYPE (ly_c_number_p (padding), padding, SCM_ARG5, __FUNCTION__, "number");
p = ly_scm2double (padding);
}
Real m = 0.0;
if (minimum != SCM_UNDEFINED)
{
- SCM_ASSERT_TYPE (is_number (minimum), minimum, SCM_ARG6, __FUNCTION__, "number");
+ SCM_ASSERT_TYPE (ly_c_number_p (minimum), minimum, SCM_ARG6, __FUNCTION__, "number");
m = ly_scm2double (minimum);
}
{
SCM_ASSERT_TYPE (unsmob_stencil (stil), stil, SCM_ARG1, __FUNCTION__, "stencil");
SCM_ASSERT_TYPE (is_axis (axis), axis, SCM_ARG2, __FUNCTION__, "axis");
- SCM_ASSERT_TYPE (is_number (dir), dir, SCM_ARG3, __FUNCTION__, "number");
+ SCM_ASSERT_TYPE (ly_c_number_p (dir), dir, SCM_ARG3, __FUNCTION__, "number");
unsmob_stencil (stil)->align_to ((Axis)ly_scm2int (axis),
ly_scm2double (dir));
Grob *col = it->get_column ();
SCM s = col->get_property ("page-penalty");
// FIXME; page breaking is not discrete at +-10000
- if (is_number (s)) // && fabs (ly_scm2double (s)) < 10000)
+ if (ly_c_number_p (s)) // && fabs (ly_scm2double (s)) < 10000)
penalty += ly_scm2double (s);
}
}
SCM scm_pitch = event->get_property ("pitch");
SCM proc = get_property ("tablatureFormat");
SCM min_fret_scm = get_property ("minimumFret");
- int min_fret = is_number (min_fret_scm) ? ly_scm2int (min_fret_scm) : 0;
+ int min_fret = ly_c_number_p (min_fret_scm) ? ly_scm2int (min_fret_scm) : 0;
while (!string_found)
{
// Hmm
int priority = 200;
SCM s = text->get_property ("script-priority");
- if (is_number (s))
+ if (ly_c_number_p (s))
priority = ly_scm2int (s);
/* see script-engraver.cc */
SCM barn = get_property ("currentBarNumber");
int b = 0;
- if (is_number (barn))
+ if (ly_c_number_p (barn))
{
b = ly_scm2int (barn);
}
recurse_over_translators (Context * c, Translator_method ptr, Direction dir)
{
Translator_group * tg
- = dynamic_cast<Translator_group*> (unsmob_translator (c->implementation_));
+ = dynamic_cast<Translator_group*> (c->implementation ());
/*
SCM lp = me->get_property ("left-position");
SCM rp = me->get_property ("right-position");
- if (!is_number (rp) || !is_number (lp))
+ if (!ly_c_number_p (rp) || !ly_c_number_p (lp))
after_line_breaking (smob);
}
SCM lp = me->get_property ("left-position");
SCM rp = me->get_property ("right-position");
- if (is_number (lp) && !is_number (rp))
+ if (ly_c_number_p (lp) && !ly_c_number_p (rp))
{
rp = scm_make_real (ly_scm2double (lp) + dy);
}
- else if (is_number (rp) && !is_number (lp))
+ else if (ly_c_number_p (rp) && !ly_c_number_p (lp))
{
lp = scm_make_real (ly_scm2double (rp) - dy);
}
- else if (!is_number (rp) && !is_number (lp))
+ else if (!ly_c_number_p (rp) && !ly_c_number_p (lp))
{
lp = scm_make_real (offset);
rp = scm_make_real (offset +dy);
*tail = scm_cons (ly_car (s),SCM_EOL);
tail = SCM_CDRLOC (*tail);
- if (!is_number (mag))
+ if (!ly_c_number_p (mag))
/* Ugh. */
mag = ly_cdr (fm->description_);