backwards compatible a-comp stereo sidechain ports
authorRobin Gareus <robin@gareus.org>
Sat, 27 Aug 2016 16:08:46 +0000 (18:08 +0200)
committerRobin Gareus <robin@gareus.org>
Sat, 27 Aug 2016 16:08:46 +0000 (18:08 +0200)
libs/plugins/a-comp.lv2/a-comp#stereo.ttl.in
libs/plugins/a-comp.lv2/a-comp.c

index 0687c4f451d3fd40c9c3fde9ac5fc10edac5269d..7a45e5ad06fdcd613e875cee33f743094d8d3080 100644 (file)
     [
         a lv2:InputPort, lv2:AudioPort ;
         lv2:index 11 ;
+        lv2:symbol "in_2" ;
+        lv2:name "Audio Input 2" ;
+    ] ,
+    [
+        a lv2:InputPort, lv2:AudioPort ;
+        lv2:index 12 ;
         lv2:symbol "sidechain_in" ;
         lv2:name "Sidechain Input" ;
         lv2:portProperty lv2:isSideChain ;
-    ],
+    ] ,
     [
         a lv2:OutputPort, lv2:AudioPort ;
-        lv2:index 12 ;
+        lv2:index 13 ;
         lv2:symbol "out_1" ;
         lv2:name "Audio Output 1" ;
     ],
-    [
-        a lv2:InputPort, lv2:AudioPort ;
-        lv2:index 13 ;
-        lv2:symbol "in_2" ;
-        lv2:name "Audio Input 2" ;
-    ] ,
     [
         a lv2:OutputPort, lv2:AudioPort ;
         lv2:index 14 ;
index a584f57ffbc00ab01c721cb1cc19a4b62e267068..b27ab1d3f6600193d5b0ad6da56ae627f5a188c6 100644 (file)
@@ -44,11 +44,11 @@ typedef enum {
        ACOMP_SIDECHAIN,
        ACOMP_ENABLE,
 
-       ACOMP_INPUT,
-       ACOMP_SC,
-       ACOMP_OUTPUT,
-       ACOMP_STEREO_INPUT,
-       ACOMP_STEREO_OUTPUT,
+       ACOMP_A0,
+       ACOMP_A1,
+       ACOMP_A2,
+       ACOMP_A3,
+       ACOMP_A4,
 } PortIndex;
 
 typedef struct {
@@ -133,50 +133,89 @@ connect_port(LV2_Handle instance,
        AComp* acomp = (AComp*)instance;
 
        switch ((PortIndex)port) {
-       case ACOMP_ATTACK:
-               acomp->attack = (float*)data;
-               break;
-       case ACOMP_RELEASE:
-               acomp->release = (float*)data;
-               break;
-       case ACOMP_KNEE:
-               acomp->knee = (float*)data;
-               break;
-       case ACOMP_RATIO:
-               acomp->ratio = (float*)data;
-               break;
-       case ACOMP_THRESHOLD:
-               acomp->thresdb = (float*)data;
-               break;
-       case ACOMP_MAKEUP:
-               acomp->makeup = (float*)data;
-               break;
-       case ACOMP_GAINR:
-               acomp->gainr = (float*)data;
-               break;
-       case ACOMP_OUTLEVEL:
-               acomp->outlevel = (float*)data;
-               break;
-       case ACOMP_SIDECHAIN:
-               acomp->sidechain = (float*)data;
-               break;
-       case ACOMP_ENABLE:
-               acomp->enable = (float*)data;
-               break;
-       case ACOMP_INPUT:
-               acomp->input0 = (float*)data;
-               break;
-       case ACOMP_SC:
-               acomp->sc = (float*)data;
-               break;
-       case ACOMP_OUTPUT:
-               acomp->output0 = (float*)data;
-               break;
-       case ACOMP_STEREO_INPUT:
-               acomp->input1 = (float*)data;
+               case ACOMP_ATTACK:
+                       acomp->attack = (float*)data;
+                       break;
+               case ACOMP_RELEASE:
+                       acomp->release = (float*)data;
+                       break;
+               case ACOMP_KNEE:
+                       acomp->knee = (float*)data;
+                       break;
+               case ACOMP_RATIO:
+                       acomp->ratio = (float*)data;
+                       break;
+               case ACOMP_THRESHOLD:
+                       acomp->thresdb = (float*)data;
+                       break;
+               case ACOMP_MAKEUP:
+                       acomp->makeup = (float*)data;
+                       break;
+               case ACOMP_GAINR:
+                       acomp->gainr = (float*)data;
+                       break;
+               case ACOMP_OUTLEVEL:
+                       acomp->outlevel = (float*)data;
+                       break;
+               case ACOMP_SIDECHAIN:
+                       acomp->sidechain = (float*)data;
+                       break;
+               case ACOMP_ENABLE:
+                       acomp->enable = (float*)data;
+                       break;
+               default:
+                       break;
+       }
+}
+
+static void
+connect_mono(LV2_Handle instance,
+             uint32_t port,
+             void* data)
+{
+       AComp* acomp = (AComp*)instance;
+       connect_port (instance, port, data);
+
+       switch ((PortIndex)port) {
+               case ACOMP_A0:
+                       acomp->input0 = (float*)data;
+                       break;
+               case ACOMP_A1:
+                       acomp->sc = (float*)data;
+                       break;
+               case ACOMP_A2:
+                       acomp->output0 = (float*)data;
+                       break;
+       default:
                break;
-       case ACOMP_STEREO_OUTPUT:
-               acomp->output1 = (float*)data;
+       }
+}
+
+static void
+connect_stereo(LV2_Handle instance,
+               uint32_t port,
+               void* data)
+{
+       AComp* acomp = (AComp*)instance;
+       connect_port (instance, port, data);
+
+       switch ((PortIndex)port) {
+               case ACOMP_A0:
+                       acomp->input0 = (float*)data;
+                       break;
+               case ACOMP_A1:
+                       acomp->input1 = (float*)data;
+                       break;
+               case ACOMP_A2:
+                       acomp->sc = (float*)data;
+                       break;
+               case ACOMP_A3:
+                       acomp->output0 = (float*)data;
+                       break;
+               case ACOMP_A4:
+                       acomp->output1 = (float*)data;
+                       break;
+       default:
                break;
        }
 }
@@ -642,7 +681,7 @@ extension_data(const char* uri)
 static const LV2_Descriptor descriptor_mono = {
        ACOMP_URI,
        instantiate,
-       connect_port,
+       connect_mono,
        activate,
        run_mono,
        deactivate,
@@ -653,7 +692,7 @@ static const LV2_Descriptor descriptor_mono = {
 static const LV2_Descriptor descriptor_stereo = {
        ACOMP_STEREO_URI,
        instantiate,
-       connect_port,
+       connect_stereo,
        activate,
        run_stereo,
        deactivate,