1// abc2svg - ABC to SVG translator 2// @source: https://chiselapp.com/user/moinejf/repository/abc2svg 3// Copyright (C) 2014-2019 Jean-Francois Moine - LGPL3+ 4//soloffs.js-module to set the X offset of some elements at start of music line 5abc2svg.soloffs={set_fmt:function(of,cmd,parm){if(cmd=="soloffs"){var i,v,C=abc2svg.C,soloffs=this.cfmt().soloffs={} 6parm=parm.split(/\s+/) 7while(parm.length){i=parm.shift().split('=') 8v=Number(i[1]) 9if(isNaN(v)) 10continue 11switch(i[0]){case'part':soloffs[C.PART]=v+10 12break 13case'tempo':soloffs[C.TEMPO]=v+16 14break 15case'space':soloffs[C.SPACE]=v 16break}} 17return} 18of(cmd,parm)},set_sym_glue:function(of,width){var s,C=abc2svg.C,tsfirst=this.get_tsfirst(),soloffs=this.cfmt().soloffs;of(width) 19if(!soloffs) 20return 21for(s=tsfirst;s;s=s.ts_next){if(s.dur) 22break 23if(soloffs[s.type]!=undefined) 24s.x=soloffs[s.type]}},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)}} 25abc2svg.modules.hooks.push(abc2svg.soloffs.set_hooks);abc2svg.modules.soloffs.loaded=true 26