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

Method _parseMasterBar

packages/alphatab/src/importer/GpifParser.ts:1352–1452  ·  view source on GitHub ↗
(node: XmlNode)

Source from the content-addressed store, hash-verified

1350 }
1351
1352 private _parseMasterBar(node: XmlNode): void {
1353 const masterBar: MasterBar = new MasterBar();
1354 if (this._masterBars.length === 0 && this._hasAnacrusis) {
1355 masterBar.isAnacrusis = true;
1356 }
1357 for (const c of node.childElements()) {
1358 switch (c.localName) {
1359 case 'Time':
1360 const timeParts: string[] = c.innerText.split('/');
1361 masterBar.timeSignatureNumerator = GpifParser._parseIntSafe(timeParts[0], 4);
1362 masterBar.timeSignatureDenominator = GpifParser._parseIntSafe(timeParts[1], 4);
1363 break;
1364 case 'FreeTime':
1365 masterBar.isFreeTime = true;
1366 break;
1367 case 'DoubleBar':
1368 masterBar.isDoubleBar = true;
1369 this._doubleBars.add(masterBar);
1370 break;
1371 case 'Section':
1372 masterBar.section = new Section();
1373 masterBar.section.marker = c.findChildElement('Letter')?.innerText ?? '';
1374 masterBar.section.text = c.findChildElement('Text')?.innerText ?? '';
1375 break;
1376 case 'Repeat':
1377 if (c.getAttribute('start').toLowerCase() === 'true') {
1378 masterBar.isRepeatStart = true;
1379 }
1380 if (c.getAttribute('end').toLowerCase() === 'true' && c.getAttribute('count')) {
1381 masterBar.repeatCount = GpifParser._parseIntSafe(c.getAttribute('count'), 1);
1382 }
1383 break;
1384 case 'AlternateEndings':
1385 const alternateEndings: string[] = GpifParser._splitSafe(c.innerText);
1386 let i: number = 0;
1387 for (let k: number = 0; k < alternateEndings.length; k++) {
1388 i = i | (1 << (-1 + GpifParser._parseIntSafe(alternateEndings[k], 0)));
1389 }
1390 masterBar.alternateEndings = i;
1391 break;
1392 case 'Bars':
1393 this._barsOfMasterBar.push(GpifParser._splitSafe(c.innerText));
1394 break;
1395 case 'TripletFeel':
1396 switch (c.innerText) {
1397 case 'NoTripletFeel':
1398 masterBar.tripletFeel = TripletFeel.NoTripletFeel;
1399 break;
1400 case 'Triplet8th':
1401 masterBar.tripletFeel = TripletFeel.Triplet8th;
1402 break;
1403 case 'Triplet16th':
1404 masterBar.tripletFeel = TripletFeel.Triplet16th;
1405 break;
1406 case 'Dotted8th':
1407 masterBar.tripletFeel = TripletFeel.Dotted8th;
1408 break;
1409 case 'Dotted16th':

Callers 1

_parseMasterBarsNodeMethod · 0.95

Calls 11

_parseFermatasMethod · 0.95
_parseDirectionsMethod · 0.95
childElementsMethod · 0.80
_parseIntSafeMethod · 0.80
addMethod · 0.80
findChildElementMethod · 0.80
getAttributeMethod · 0.80
_splitSafeMethod · 0.80
pushMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected