[SCM] calf/master: + Small modules: added bitwise AND, OR and XOR operations

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


The following commit has been merged in the master branch:
commit a4faecb54ac29b69f1843507b02accc9410549b4
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date:   Mon Oct 6 21:10:41 2008 +0000

    + Small modules: added bitwise AND, OR and XOR operations
    
    
    git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@319 78b06b96-2940-0410-b7fc-879d825d01d8

diff --git a/src/calf/modulelist.h b/src/calf/modulelist.h
index c4a5e55..e62c8ba 100644
--- a/src/calf/modulelist.h
+++ b/src/calf/modulelist.h
@@ -44,6 +44,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(bit_and_c, "bit_and_c")
+    PER_SMALL_MODULE_ITEM(bit_or_c, "bit_or_c")
+    PER_SMALL_MODULE_ITEM(bit_xor_c, "bit_xor_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_xor_c, "logical_xor_c")
diff --git a/src/makerdf.cpp b/src/makerdf.cpp
index 72b196d..c3cfa70 100644
--- a/src/makerdf.cpp
+++ b/src/makerdf.cpp
@@ -491,8 +491,9 @@ void make_manifest()
         "@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:BooleanPlugin a rdfs:Class ; rdfs:label \"Boolean-oriented\" ; rdfs:subClassOf lv2:UtilityPlugin ; rdfs:comment \"\"\"Modules heavily inspired by digital electronics (gates, flip-flops)\"\"\" .\n"
         "kf:MathOperatorPlugin a rdfs:Class ; rdfs:label \"Math operators\" ; rdfs:subClassOf lv2:UtilityPlugin ; rdfs:comment \"\"\"Mathematical operators and utility functions\"\"\" .\n"
+        "kf:IntegerPlugin a rdfs:Class ; rdfs:label \"Integer-oriented\" ; rdfs:subClassOf lv2:UtilityPlugin ; rdfs:comment \"\"\"Operations using integer values (counters, multiplexers)\"\"\" .\n"
     ;
     
     vector<synth::giface_plugin_info> plugins;
diff --git a/src/modules_small.cpp b/src/modules_small.cpp
index c110cc2..86912f0 100644
--- a/src/modules_small.cpp
+++ b/src/modules_small.cpp
@@ -417,6 +417,71 @@ public:
     }
 };
 
+class int_c_audio_module: public control_operator_audio_module<1>
+{
+public:
+    void process(uint32_t count) {
+        *outs[0] = (int)*ins[0];
+    }
+    static void plugin_info(plugin_info_iface *pii)
+    {
+        pii->names("int_c", "Integer value (C)", "kf:IntegerPlugin");
+        control_port_info_iface *cports[2];
+        port_info(pii, cports);
+        cports[0]->integer();
+        cports[1]->integer();
+    }
+};
+
+class bitwise_op_c_module_base: public control_operator_audio_module<2>
+{
+public:
+    static void port_info(plugin_info_iface *pii)
+    {
+        pii->control_port("in_1", "In 1", 0, "").integer().input();
+        pii->control_port("in_2", "In 2", 0, "").integer().input();
+        pii->control_port("out", "Out", 0, "").integer().output();
+    }
+};
+class bit_and_c_audio_module: public bitwise_op_c_module_base
+{
+public:
+    void process(uint32_t count) {
+        *outs[0] = ((int)*ins[0]) & ((int)*ins[1]);
+    }
+    static void plugin_info(plugin_info_iface *pii)
+    {
+        pii->names("bit_and_c", "Bitwise AND (C)", "kf:IntegerPlugin");
+        port_info(pii);
+    }
+};
+
+class bit_or_c_audio_module: public bitwise_op_c_module_base
+{
+public:
+    void process(uint32_t count) {
+        *outs[0] = ((int)*ins[0]) | ((int)*ins[1]);
+    }
+    static void plugin_info(plugin_info_iface *pii)
+    {
+        pii->names("bit_or_c", "Bitwise OR (C)", "kf:IntegerPlugin");
+        port_info(pii);
+    }
+};
+
+class bit_xor_c_audio_module: public bitwise_op_c_module_base
+{
+public:
+    void process(uint32_t count) {
+        *outs[0] = ((int)*ins[0]) ^ ((int)*ins[1]);
+    }
+    static void plugin_info(plugin_info_iface *pii)
+    {
+        pii->names("bit_xor_c", "Bitwise XOR (C)", "kf:IntegerPlugin");
+        port_info(pii);
+    }
+};
+
 class flipflop_c_audio_module: public control_operator_audio_module<1>
 {
 public:

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list