MCPcopy Create free account
hub / github.com/CoderLine/alphaTab / _parseFermata

Method _parseFermata

packages/alphatab/src/importer/GpifParser.ts:1540–1572  ·  view source on GitHub ↗
(masterBar: MasterBar, node: XmlNode)

Source from the content-addressed store, hash-verified

1538 }
1539
1540 private _parseFermata(masterBar: MasterBar, node: XmlNode): void {
1541 let offset: number = 0;
1542 const fermata: Fermata = new Fermata();
1543 for (const c of node.childElements()) {
1544 switch (c.localName) {
1545 case 'Type':
1546 switch (c.innerText) {
1547 case 'Short':
1548 fermata.type = FermataType.Short;
1549 break;
1550 case 'Medium':
1551 fermata.type = FermataType.Medium;
1552 break;
1553 case 'Long':
1554 fermata.type = FermataType.Long;
1555 break;
1556 }
1557 break;
1558 case 'Length':
1559 fermata.length = GpifParser._parseFloatSafe(c.innerText, 0);
1560 break;
1561 case 'Offset':
1562 const parts: string[] = c.innerText.split('/');
1563 if (parts.length === 2) {
1564 const numerator: number = GpifParser._parseIntSafe(parts[0], 4);
1565 const denominator: number = GpifParser._parseIntSafe(parts[1], 4);
1566 offset = ((numerator / denominator) * MidiUtils.QuarterTime) | 0;
1567 }
1568 break;
1569 }
1570 }
1571 masterBar.addFermata(offset, fermata);
1572 }
1573
1574 //
1575 // <Bars>...</Bars>

Callers 1

_parseFermatasMethod · 0.95

Calls 4

childElementsMethod · 0.80
_parseFloatSafeMethod · 0.80
_parseIntSafeMethod · 0.80
addFermataMethod · 0.80

Tested by

no test coverage detected