App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/res/abc/abc2svg/break-1.js view on Meta::CPAN
// insert the EOLs of %%break
do_break: function() {
var i, m, t, brk, s, seq,
voice_tb = this.get_voice_tb(),
v = this.get_cur_sy().top_voice,
s1 = voice_tb[v].sym,
cfmt = this.cfmt()
for (i = 0; i < cfmt.break.length; i++) {
brk = cfmt.break[i];
m = brk.m
for (s = s1; s; s = s.next) {
if (s.bar_num == m)
break
}
if (!s)
continue
if (brk.sq) {
seq = brk.sq
for (s = s.ts_next; s; s = s.ts_next) {
if (s.bar_num == m) {
if (--seq == 0)
break
}
}
if (!s)
continue
}
t = brk.t
if (t) {
t = s.time + t
for ( ; s; s = s.next) {
if (s.time >= t)
break
}
} else {
s = s.next
}
if (s)
s.soln = true
}
}, // do_break()
do_pscom: function (of, text) {
if (text.slice(0, 6) == "break ")
abc2svg.break.get_break.call(this, text)
else
of(text)
},
set_bar_num: function(of) {
of()
if (this.cfmt().break)
abc2svg.break.do_break.call(this)
},
set_hooks: function(abc) {
abc.do_pscom = abc2svg.break.do_pscom.bind(abc, abc.do_pscom);
abc.set_bar_num = abc2svg.break.set_bar_num.bind(abc, abc.set_bar_num)
}
} // break
if (!abc2svg.mhooks)
abc2svg.mhooks = {}
abc2svg.mhooks.break = abc2svg.break.set_hooks
( run in 1.353 second using v1.01-cache-2.11-cpan-2398b32b56e )