|
|
@@ -54,4 +54,46 @@ export class SongService {
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ generateXaml(song: Song): string {
|
|
|
+ const songXml = this.songToXml(song);
|
|
|
+ const xaml = `<Song>${songXml}</Song>`;
|
|
|
+ return xaml;
|
|
|
+ }
|
|
|
+
|
|
|
+ songToXml(song: Song): string {
|
|
|
+ const xmlBuilder = require('xmlbuilder');
|
|
|
+
|
|
|
+ const songXml = xmlBuilder.create('Track', { version: '1.0', encoding: 'UTF-8' });
|
|
|
+
|
|
|
+ if (song.riffs && song.riffs.length > 0) {
|
|
|
+ const riffsXml = songXml.ele('Riffs');
|
|
|
+ for (const riff of song.riffs) {
|
|
|
+ const riffXml = riffsXml.ele('Riff');
|
|
|
+ riffXml.ele('Name', riff.name);
|
|
|
+ riffXml.ele('StartMs', riff.startMs);
|
|
|
+ riffXml.ele('EndMs', riff.endMs);
|
|
|
+ riffXml.up();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ songXml.ele('Name', song.name);
|
|
|
+
|
|
|
+ return songXml.end({ pretty: true });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|