File: generateTs.py

package info (click to toggle)
musescore3 3.2.3%2Bdfsg2-21
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 219,852 kB
  • sloc: cpp: 291,412; xml: 200,226; sh: 3,779; ansic: 1,447; python: 393; makefile: 246; perl: 82; pascal: 79
file content (83 lines) | stat: -rw-r--r-- 3,177 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/env python

import xml.etree.ElementTree as ET
import os

def addMessage(f, text, comment='', category='InstrumentsXML'):
    if (comment):
        f.write('QT_TRANSLATE_NOOP3("'+category+'", "' + text.encode('utf8') + '", "' + comment.encode('utf8') + '"),\n')
    else:
        f.write('QT_TRANSLATE_NOOP("'+category+'", "' + text.encode('utf8') + '"),\n')


f = open('instrumentsxml.h', 'w')

#include template names and template categories
d = "../templates"
for o in os.listdir(d):
    ofullPath = os.path.join(d, o)
    if os.path.isdir(ofullPath):
        templateCategory = o.split("-")[1].replace("_", " ")
        addMessage(f, templateCategory, '', 'Templates')
        print templateCategory
        for t in os.listdir(ofullPath):
            if (os.path.isfile(os.path.join(ofullPath, t))):
                templateName = os.path.splitext(t)[0].split("-")[1].replace("_", " ")
                addMessage(f, templateName, '', 'Templates')
                print "    " + templateName

#instruments.xml
tree = ET.parse('instruments.xml')
root = tree.getroot()

previousLongName = ""
for child in root:
    if child.tag == "Genre":
        genre = child.find("name")
        print "Genre " + genre.text
        addMessage(f, genre.text)
    elif child.tag == "InstrumentGroup":
        instrGroup = child.find("name")
        print "Instr Group : " + instrGroup.text
        addMessage(f, instrGroup.text)
        instruments = child.findall("Instrument")
        for instrument in instruments:
            longName = instrument.find("longName")
            if longName is not None:
                print "  longName : " + longName.text.encode('utf8')
                addMessage(f, longName.text)
                previousLongName = longName.text

            shortName = instrument.find("shortName")
            if shortName is not None:
                print "  shortName : " + shortName.text.encode('utf8')
                addMessage(f, shortName.text, previousLongName)
                previousLongName = ""

            trackName = instrument.find("trackName")
            if trackName is not None:
                print "  trackName " + trackName.text.encode('utf8')
                addMessage(f, trackName.text)
                previousLongName = ""

            channels = instrument.findall("Channel")
            for channel in channels:
                channelName = channel.get("name")
                if channelName is not None:
                    print "  Channel name : " + channelName
                    addMessage(f, channelName)
                cMidiActions = channel.findall("MidiAction")
                for cma in cMidiActions:
                    cmaName = cma.get("name")
                    if cmaName is not None:
                        print "    Channel, MidiAction name :" + cmaName
                        addMessage(f, cma)

            iMidiActions = instrument.findall("MidiAction")
            for ima in iMidiActions:
                imaName = ima.get("name")
                if imaName is not None:
                    print "  Instrument, MidiAction name :" + imaName
                    addMessage(f, ima)

f.close()