• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1diff --git a/src/makerdf.cpp b/src/makerdf.cpp
2index 430fb91..ee82152 100644
3--- a/src/makerdf.cpp
4+++ b/src/makerdf.cpp
5@@ -168,16 +168,16 @@ static void add_port(string &ports, const char *symbol, const char *name, const
6         ss << ind << "lv2ev:supportsTimestamp <lv2ev:TimeStamp> ;\n";
7     }
8     if (!strcmp(symbol, "in_l"))
9-        ss << ind << "pg:membership [ pg:group <#stereoIn>; pg:role pg:leftChannel ] ;" << endl;
10+        ss << ind << "pg:inGroup <#stereoIn> ; pg:role pg:leftChannel ;" << endl;
11     else
12     if (!strcmp(symbol, "in_r"))
13-        ss << ind << "pg:membership [ pg:group <#stereoIn>; pg:role pg:rightChannel ] ;" << endl;
14+        ss << ind << "pg:inGroup <#stereoIn> ; pg:role pg:rightChannel ;" << endl;
15     else
16     if (!strcmp(symbol, "out_l"))
17-        ss << ind << "pg:membership [ pg:group <#stereoOut>; pg:role pg:leftChannel ] ;" << endl;
18+        ss << ind << "pg:inGroup <#stereoOut> ; pg:role pg:leftChannel ;" << endl;
19     else
20     if (!strcmp(symbol, "out_r"))
21-        ss << ind << "pg:membership [ pg:group <#stereoOut>; pg:role pg:rightChannel ] ;" << endl;
22+        ss << ind << "pg:inGroup <#stereoOut> ; pg:role pg:rightChannel ;" << endl;
23     ss << "    ]";
24     ports += ss.str();
25 }
26@@ -469,7 +469,7 @@ void make_ttl(string path_prefix)
27         "@prefix lv2midi: <http://lv2plug.in/ns/ext/midi#> .\n"
28         "@prefix lv2ctx: <http://lv2plug.in/ns/dev/contexts#> .\n"
29         "@prefix strport: <http://lv2plug.in/ns/dev/string-port#> .\n"
30-        "@prefix pg: <http://ll-plugins.nongnu.org/lv2/ext/portgroups#> .\n"
31+        "@prefix pg: <http://lv2plug.in/ns/dev/port-groups#> .\n"
32         "@prefix ue: <http://lv2plug.in/ns/extensions/units#> .\n"
33         "@prefix epp: <http://lv2plug.in/ns/dev/extportinfo#> .\n"
34         "@prefix kf: <http://foltman.com/ns/> .\n"
35@@ -538,7 +538,17 @@ void make_ttl(string path_prefix)
36                 ttl += gui_uri + " uiext:portNotification [\n    uiext:plugin " + uri + " ;\n    uiext:portIndex " + i2s(j) + "\n] .\n\n";
37         }
38 #endif
39-
40+
41+        if (pi->get_input_count() == 2)
42+            ttl += "<#stereoIn> a pg:StereoGroup ;\n    lv2:symbol \"in\";\n    lv2:name \"Input\" .\n\n";
43+
44+        if (pi->get_output_count() == 2) {
45+            ttl += "<#stereoOut> a pg:StereoGroup ;\n    lv2:symbol \"out\" ;\n    lv2:name \"Output\"";
46+            if (pi->get_input_count() == 2)
47+                ttl += " ;\n    pg:source <#stereoIn>";
48+            ttl += " .\n\n";
49+        }
50+
51         ttl += uri + " a lv2:Plugin ;\n";
52
53         if (classes.count(lpi.plugin_type))
54@@ -583,12 +593,13 @@ void make_ttl(string path_prefix)
55
56         string ports = "";
57         int pn = 0;
58-        const char *in_names[] = { "in_l", "in_r" };
59-        const char *out_names[] = { "out_l", "out_r" };
60+        const char *in_syms[] = { "in_l", "in_r" };
61+        const char *out_syms[] = { "out_l", "out_r" };
62+        const char *names[] = { "Left", "Right" };
63         for (int i = 0; i < pi->get_input_count(); i++)
64-            add_port(ports, in_names[i], in_names[i], "Input", pn++);
65+            add_port(ports, in_syms[i], names[i], "Input", pn++);
66         for (int i = 0; i < pi->get_output_count(); i++)
67-            add_port(ports, out_names[i], out_names[i], "Output", pn++);
68+            add_port(ports, out_syms[i], names[i], "Output", pn++);
69         for (int i = 0; i < pi->get_param_count(); i++)
70             add_ctl_port(ports, *pi->get_param_props(i), pn++, pi, i);
71         if (pi->get_midi()) {
72