1#!/usr/bin/env python3
2
3#spencer jackson
4# this generates a template for a function that will map the rkr bank data to carla preset data
5
6import os
7
8print("#!/usr/bin/env python3")
9print()
10print("def remap(efxindex, paramindex):")
11print("    return{")
12
13#get ttl files (excluding presets)
14files = [f for f in os.listdir('../lv2/ttl/') if ( f.find("presets")==-1 and f.find("swp")==-1 \
15    and f.find("manifest")==-1 )]
16
17fxindex = -1
18#open file
19for fn in files:
20
21    f = open("../lv2/ttl/"+fn,"r")
22    pindex = 0
23    fxindex += 1
24
25    #plugin header data
26    data = f.read()
27    #uri
28    p = data.find("<http://rakarrack") # first one is GUI
29    p = data.find("<http://rakarrack",p)
30    n = data.find("\n",p);
31    uri = data[p+1:n-1]# disclude <>
32    #name
33    p = data.find("doap:name ",p)
34    p = data.find("\"",p)
35    p += 1
36    n = data.find("\"",p)
37    name = data[p:n]
38    print("        ",(fxindex,-1),":",(name, uri),",")
39
40    #parameters
41    p = data.find("Bypass",p) #skip bypass
42    p = data.find("lv2:symbol ",p)
43    while p > 0:
44        p = data.find("\"",p) #skip ws
45        p += 1;
46        n = data.find("\"",p) #find end
47        psymbol = data[p:n]
48        p = data.find("lv2:name ",p)
49        p = data.find("\"",p) #skip ws
50        p += 1;
51        n = data.find("\"",p) #find end
52        pname = data[p:n]
53        pindex += 1
54        p = data.find("lv2:symbol ",p)
55        #prints as (carla index, parameter name, parameter URI, offset)
56        print("        ", (fxindex,pindex-1),":",(pindex, pname, psymbol, 0),",")
57    print("        ", (fxindex,pindex),":",(-1, ),",") # mark end of effect
58print("    }[(efxindex,paramindex)]")
59