App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/res/abc/abc2svg/soloffs-1.js view on Meta::CPAN
if (typeof abc2svg == "undefined")
var abc2svg = {}
abc2svg.soloffs = {
set_fmt: function(of, cmd, parm) {
if (cmd == "soloffs") {
var i, v,
C = abc2svg.C,
soloffs = this.cfmt().soloffs = {}
parm = parm.split(/\s+/)
while (parm.length) {
i = parm.shift().split('=')
v = Number(i[1])
if (isNaN(v))
continue // error
switch (i[0]) {
// case 'bar':
// soloffs[C.BAR] = v
// break
case 'part':
soloffs[C.PART] = v // see deco.js
break
case 'tempo':
soloffs[C.TEMPO] = v + 16 // see deco.js
break
case 'space':
soloffs[C.SPACE] = v
break
// default:
// // error
// break
}
}
return
}
of(cmd, parm)
},
set_sym_glue: function(of, width) {
var s,
tsfirst = this.get_tsfirst(),
soloffs = this.cfmt().soloffs;
of(width) // compute the x offset of the symbols
if (!soloffs)
return
for (s = tsfirst; s; s = s.ts_next) {
if (s.time != tsfirst.time)
break
if (soloffs[s.type] != undefined)
s.x = soloffs[s.type]
if (s.part && soloffs[abc2svg.C.PART] != undefined)
s.part.x = soloffs[abc2svg.C.PART]
}
}, // set_sym_glue()
set_hooks: function(abc) {
abc.set_sym_glue = abc2svg.soloffs.set_sym_glue.bind(abc, abc.set_sym_glue);
abc.set_format = abc2svg.soloffs.set_fmt.bind(abc, abc.set_format)
}
} // soloffs
if (!abc2svg.mhooks)
abc2svg.mhooks = {}
abc2svg.mhooks.soloffs = abc2svg.soloffs.set_hooks
( run in 1.338 second using v1.01-cache-2.11-cpan-2398b32b56e )