App-Music-ChordPro

 view release on metacpan or  search on metacpan

lib/ChordPro/res/abc/abc2svg/roman-1.js  view on Meta::CPAN

			if (ty == 2 && p[o2] == 'm') {
				n = n.toLowerCase()
				o2++
			}
			csa[i] = p.slice(0, o)
				+ n
				+ p.slice(o2)
		}
		return csa.join('/')
	} // set_nm()

	if (ty && s.a_gch) {
		for (ix = 0; ix < s.a_gch.length; ix++) {
			gch = s.a_gch[ix]
			t = gch.text
			if (gch.type == 'g' && t && t[0] != 'N') {
				t = set_nm(t)
				if (t)
					gch.text = t
			}
		}
	}
	of(s)
    }, // gch_build()

    // hook before the generation
    o_mus: function(of) {
    var	tsfirst = this.get_tsfirst()

	if (this.cfmt().roman) {
		abc2svg.roman.tr = (tsfirst.p_v.key.k_sf + 12) * 5
						// transposition to "C"
		if (tsfirst.p_v.key.k_mode) {
			abc2svg.roman.tr += 3		// minor
			abc2svg.roman.nm = abc2svg.roman.nm_m
		} else {
			abc2svg.roman.nm = abc2svg.roman.nm_M
		}
	}
	of()
    }, // o_mus()

    set_fmt: function(of, cmd, parm) {
    var	ty,
	cfmt = this.cfmt()

	if (cmd == "roman") {
		if (!parm)
			parm = "1"
		ty = Number(parm)
		if (isNaN(ty))
			this.syntax(1, this.errs.bad_val, "%%roman")
		else
			cfmt.roman = ty
		return
	}
	of(cmd, parm)
    }, // set_fmt()

    set_hooks: function(abc) {
	abc.gch_build = abc2svg.roman.gch_build.bind(abc, abc.gch_build)
	abc.output_music = abc2svg.roman.o_mus.bind(abc, abc.output_music)
	abc.set_format = abc2svg.roman.set_fmt.bind(abc, abc.set_format)
    } // set_hooks()
} // roman

if (!abc2svg.mhooks)
	abc2svg.mhooks = {}
abc2svg.mhooks.roman = abc2svg.roman.set_hooks



( run in 0.713 second using v1.01-cache-2.11-cpan-2398b32b56e )