[SCM] calf/master: + Small modules: logical AND/OR/NOT control signal plugins, add custom classification instead of polluting "Utility" class, refer to lv2:portProperty properly

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:37:37 UTC 2013


The following commit has been merged in the master branch:
commit d63c33bc0167907f7f7ac9f797d3e5bd7aaeccb2
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date:   Thu Sep 25 20:37:53 2008 +0000

    + Small modules: logical AND/OR/NOT control signal plugins, add custom classification instead of polluting "Utility" class, refer to lv2:portProperty properly
    
    
    git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@297 78b06b96-2940-0410-b7fc-879d825d01d8

diff --git a/src/calf/modulelist.h b/src/calf/modulelist.h
index 34c5389..aceed87 100644
--- a/src/calf/modulelist.h
+++ b/src/calf/modulelist.h
@@ -33,6 +33,9 @@
     PER_SMALL_MODULE_ITEM(exp_inertia_c, "exp_inertia_c")
     PER_SMALL_MODULE_ITEM(sample_hold_edge_c, "sample_hold_edge_c")
     PER_SMALL_MODULE_ITEM(sample_hold_level_c, "sample_hold_level_c")
+    PER_SMALL_MODULE_ITEM(logical_and_c, "logical_and_c")
+    PER_SMALL_MODULE_ITEM(logical_or_c, "logical_or_c")
+    PER_SMALL_MODULE_ITEM(logical_not_c, "logical_not_c")
 #endif
 #undef PER_MODULE_ITEM
 #undef PER_SMALL_MODULE_ITEM
diff --git a/src/makerdf.cpp b/src/makerdf.cpp
index ac811b9..32343d8 100644
--- a/src/makerdf.cpp
+++ b/src/makerdf.cpp
@@ -246,9 +246,9 @@ struct lv2_control_port_info: public lv2_port_base, public control_port_info_ifa
         ss << ind << "lv2:symbol \"" << symbol << "\" ;\n";
         ss << ind << "lv2:name \"" << name << "\" ;\n";
         if (is_toggle)
-            ss << ind << ":portProperty lv2:toggled ;\n";
+            ss << ind << "lv2:portProperty lv2:toggled ;\n";
         if (is_integer)
-            ss << ind << ":portProperty lv2:integer ;\n";
+            ss << ind << "lv2:portProperty lv2:integer ;\n";
         if (is_input)
             ss << ind << "lv2:default " << def_value << " ;\n";
         if (has_min)
@@ -321,6 +321,7 @@ void make_ttl(string path_prefix)
         "@prefix pg: <http://ll-plugins.nongnu.org/lv2/ext/portgroups#> .\n"
         "@prefix ue: <http://lv2plug.in/ns/extensions/units#> .\n"
         "@prefix epp: <http://lv2plug.in/ns/dev/extportinfo#> .\n"
+        "@prefix kf: <http://foltman.com/ns/> .\n"
 
         "\n"
     ;
@@ -444,7 +445,12 @@ void make_manifest()
     
     ttl = 
         "@prefix lv2:  <http://lv2plug.in/ns/lv2core#> .\n"
-        "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n\n";
+        "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n"
+        "@prefix kf: <http://foltman.com/ns/> .\n"
+        "\n"
+        "kf:BooleanPlugin a rdfs:Class ; rdfs:label \"Boolean functions\" ; rdfs:subClassOf lv2:UtilityPlugin ; rdfs:comment \"\"\"Operations on boolean signals\"\"\" .\n"
+        "kf:MathOperatorPlugin a rdfs:Class ; rdfs:label \"Math operators\" ; rdfs:subClassOf lv2:UtilityPlugin ; rdfs:comment \"\"\"Mathematical operators and utility functions\"\"\" .\n"
+    ;
     
     vector<synth::giface_plugin_info> plugins;
     synth::get_all_plugins(plugins);
diff --git a/src/modules_small.cpp b/src/modules_small.cpp
index 123ab60..bfd462f 100644
--- a/src/modules_small.cpp
+++ b/src/modules_small.cpp
@@ -231,7 +231,7 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("min", "Function min (A)", "lv2:UtilityPlugin");
+        pii->names("min", "Function min (A)", "kf:MathOperatorPlugin");
         port_info(pii);
     }
 };
@@ -245,7 +245,7 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("max", "Function max (A)", "lv2:UtilityPlugin");
+        pii->names("max", "Function max (A)", "kf:MathOperatorPlugin");
         port_info(pii);
     }
 };
@@ -259,7 +259,7 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("minus", "Subtract (A)", "lv2:UtilityPlugin");
+        pii->names("minus", "Subtract (A)", "kf:MathOperatorPlugin");
         port_info(pii);
     }
 };
@@ -273,7 +273,7 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("mul", "Multiply (A)", "lv2:UtilityPlugin");
+        pii->names("mul", "Multiply (A)", "kf:MathOperatorPlugin");
         port_info(pii);
     }
 };
@@ -287,7 +287,7 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("neg", "Negative value (A)", "lv2:UtilityPlugin");
+        pii->names("neg", "Negative value (A)", "kf:MathOperatorPlugin");
         port_info(pii);
     }
 };
@@ -324,13 +324,63 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("level2edge_c", "Level to edge (C)", "lv2:UtilityPlugin");
+        pii->names("level2edge_c", "Level to edge (C)", "kf:BooleanPlugin");
         control_port_info_iface *cports[2];
         port_info(pii, cports);
         cports[0]->toggle().trigger();
     }
 };
 
+class logical_and_c_audio_module: public control_operator_audio_module<2>
+{
+public:
+    void process(uint32_t count) {
+        *outs[0] = (*ins[0] > 0 && *ins[1] > 0) ? 1.f : 0.f;
+    }
+    static void plugin_info(plugin_info_iface *pii)
+    {
+        pii->names("logical_and_c", "Logical AND (C)", "kf:BooleanPlugin");
+        control_port_info_iface *cports[3];
+        port_info(pii, cports);
+        cports[0]->toggle();
+        cports[1]->toggle();
+        cports[2]->toggle();
+    }
+};
+
+class logical_or_c_audio_module: public control_operator_audio_module<2>
+{
+public:
+    void process(uint32_t count) {
+        *outs[0] = (*ins[0] > 0 || *ins[1] > 0) ? 1.f : 0.f;
+    }
+    static void plugin_info(plugin_info_iface *pii)
+    {
+        pii->names("logical_or_c", "Logical OR (C)", "kf:BooleanPlugin");
+        control_port_info_iface *cports[3];
+        port_info(pii, cports);
+        cports[0]->toggle();
+        cports[1]->toggle();
+        cports[2]->toggle();
+    }
+};
+
+class logical_not_c_audio_module: public control_operator_audio_module<1>
+{
+public:
+    void process(uint32_t count) {
+        *outs[0] = (*ins[0] > 0) ? 0.f : 1.f;
+    }
+    static void plugin_info(plugin_info_iface *pii)
+    {
+        pii->names("logical_not_c", "Logical NOT (C)", "kf:BooleanPlugin");
+        control_port_info_iface *cports[2];
+        port_info(pii, cports);
+        cports[0]->toggle();
+        cports[1]->toggle();
+    }
+};
+
 class map_lin2exp_audio_module: public null_small_audio_module
 {
 public:    
@@ -544,9 +594,9 @@ public:
     {
         const char *names[8] = {"xa", "x*a^1", "xaa", "x*a^2", "xaaa", "x*a^3", "xaaaa", "x*a^4" };
         if (audio)
-            pii->names("quadpower_a", "Quad Power (A)", "lv2:UtilityPlugin");
+            pii->names("quadpower_a", "Quad Power (A)", "kf:MathOperatorPlugin");
         else
-            pii->names("quadpower_c", "Quad Power (C)", "lv2:UtilityPlugin");
+            pii->names("quadpower_c", "Quad Power (C)", "kf:MathOperatorPlugin");
         if (audio)
             pii->audio_port("x", "x").input();
         else
@@ -686,7 +736,7 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("sample_hold_edge", "Sample&Hold (Edge, C)", "lv2:FilterPlugin");
+        pii->names("sample_hold_edge", "Sample&Hold (Edge, C)", "lv2:UtilityPlugin");
         port_info(pii, "clock", "Clock");
     }
 };
@@ -707,7 +757,7 @@ public:
     }
     static void plugin_info(plugin_info_iface *pii)
     {
-        pii->names("sample_hold_level", "Sample&Hold (Level, C)", "lv2:FilterPlugin");
+        pii->names("sample_hold_level", "Sample&Hold (Level, C)", "lv2:UtilityPlugin");
         port_info(pii, "gate", "Gate");
     }
 };

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list