[SCM] calf/master: Added 6 new LED's and peak hold function for VU-meters

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


The following commit has been merged in the master branch:
commit 81cfb6dbc82f73a8d251238a5a342d152c39adb2
Author: Markus Schmidt <schmidt at boomshop.net>
Date:   Fri Oct 16 11:24:01 2009 +0200

    Added 6 new LED's and peak hold function for VU-meters

diff --git a/gui/gui-compressor.xml b/gui/gui-compressor.xml
index 101bd03..4bf5caa 100644
--- a/gui/gui-compressor.xml
+++ b/gui/gui-compressor.xml
@@ -35,7 +35,7 @@
     <table attach-x="0" attach-y="2" expand-y="0" expand-x="1" spacing="10" rows="1" cols="3">
         <vbox expand-x="1" fill-x="1" expand="1" fill="1" attach-x="0" attach-y="0">
             <label param="compression" />
-            <vumeter param="compression" mode="2" />
+            <vumeter param="compression" mode="2" hold="2" />
         </vbox>
         <vbox shrink-x="1" expand-x="0" fill-x="0" expand="0" fill="0" attach-x="1" attach-y="0">
             <label param="clip" expand="0" fill="0" />
@@ -43,7 +43,7 @@
         </vbox>
         <vbox expand-x="1" fill-x="1" expand="1" fill="1" attach-x="2" attach-y="0">
             <label param="peak" />
-            <vumeter param="peak" mode="0" shrink-y="0" />
+            <vumeter param="peak" mode="0" hold="2" shrink-y="0" />
         </vbox>
     </table>
     <table attach-x="0" attach-y="3" expand-y="0" rows="1" cols="6" homogeneous="1" spacing="10">
@@ -51,31 +51,37 @@
             <label param="attack" />
             <knob param="attack" />
             <value param="attack" />
+            <led param="peak" mode="2" expand="0" fill="0" />
         </vbox>
         <vbox expand="0" attach-x="1" attach-y="0">
             <label param="release" />
             <knob param="release" />
             <value param="release" />
+            <led param="peak" mode="3" expand="0" fill="0" />
         </vbox>
         <vbox expand="0" attach-x="2" attach-y="0">
             <label param="threshold" />
             <knob param="threshold"/>
             <value param="threshold" />
+            <led param="peak" mode="4" expand="0" fill="0" />
         </vbox>
         <vbox expand="0" attach-x="3" attach-y="0">
             <label param="ratio" />
             <knob param="ratio" />
             <value param="ratio" />
+            <led param="peak" mode="5" expand="0" fill="0" />
         </vbox>
         <vbox expand="0" attach-x="4" attach-y="0">
             <label param="makeup" />
             <knob param="makeup" />
             <value param="makeup" />
+            <led param="peak" mode="6" expand="0" fill="0" />
         </vbox>
         <vbox expand="0" attach-x="5" attach-y="0">
             <label param="knee" />
             <knob param="knee" />
             <value param="knee" />
+            <led param="peak" mode="7" expand="0" fill="0" />
         </vbox>
     </table>
 </table>
diff --git a/gui/gui-multibandcompressor.xml b/gui/gui-multibandcompressor.xml
index 091e5c6..301e2e0 100644
--- a/gui/gui-multibandcompressor.xml
+++ b/gui/gui-multibandcompressor.xml
@@ -7,8 +7,8 @@
         </vbox>
         <vbox shrink-x="1" expand-x="1" fill-x="1" expand="0" fill="0" attach-x="1" attach-y="0" pad-y="24">
             <label param="meter_inL" />
-            <vumeter param="meter_inL" mode="0" shrink-y="0" height="30" />
-            <vumeter param="meter_inR" mode="0" shrink-y="0" height="30" />
+            <vumeter param="meter_inL" mode="0" hold="2" shrink-y="0" height="30" />
+            <vumeter param="meter_inR" mode="0" hold="2" shrink-y="0" height="30" />
             <label param="meter_inR" />
         </vbox>
         <vbox shrink-x="1" expand-x="0" fill-x="0" expand="0" fill="0" attach-x="2" attach-y="0" pad-y="24">
@@ -70,14 +70,14 @@
         </table>
         <vbox shrink-x="1" expand-x="1" fill-x="1" expand="0" fill="0" attach-x="7" attach-y="0" pad-y="24">
             <label param="meter_outL" />
-            <vumeter param="meter_outL" mode="0" shrink-y="0" height="30" />
-            <vumeter param="meter_outR" mode="0" shrink-y="0" height="30" />
+            <vumeter param="meter_outL" mode="0" hold="2" shrink-y="0" height="30" />
+            <vumeter param="meter_outR" mode="0" hold="2" shrink-y="0" height="30" />
             <label param="meter_outR" />
         </vbox>
         <vbox shrink-x="1" expand-x="0" fill-x="0" expand="0" fill="0" attach-x="8" attach-y="0" pad-y="24">
             <label param="clip_outL" expand="0" fill="0" />
-            <led param="clip_outL" expand="0" fill="0" />
-            <led param="clip_outR" expand="0" fill="0" />
+            <led param="clip_outL" expand="0" mode="1" fill="0" />
+            <led param="clip_outR" expand="0" mode="1" fill="0" />
             <label param="clip_outR" expand="0" fill="0" />
         </vbox>
         <vbox shrink-x="1" expand-x="0" fill-x="0" expand="0" fill="0" attach-x="9" attach-y="0">
@@ -134,10 +134,10 @@
             </table>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
                 <label param="compression0" />
-                <vumeter param="compression0" mode="2" />
+                <vumeter param="compression0" mode="2" hold="2" />
             </vbox>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
-                <vumeter param="output0" mode="0" shrink-y="0" />
+                <vumeter param="output0" mode="0" hold="2" shrink-y="0" />
                 <label param="output0" />
             </vbox>
             <table expand-y="0" expand-x="1" cols="3" rows="1" spacing="5">
@@ -194,10 +194,10 @@
             </table>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
                 <label param="compression1" />
-                <vumeter param="compression1" mode="2" />
+                <vumeter param="compression1" mode="2" hold="2" />
             </vbox>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
-                <vumeter param="output1" mode="0" shrink-y="0" />
+                <vumeter param="output1" mode="0" hold="2" shrink-y="0" />
                 <label param="output1" />
             </vbox>
             <table expand-y="0" expand-x="1" cols="3" rows="1" spacing="5">
@@ -254,10 +254,10 @@
             </table>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
                 <label param="compression2" />
-                <vumeter param="compression2" mode="2" />
+                <vumeter param="compression2" mode="2" hold="2" />
             </vbox>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
-                <vumeter param="output2" mode="0" shrink-y="0" />
+                <vumeter param="output2" mode="0" hold="2" shrink-y="0" />
                 <label param="output2" />
             </vbox>
             <table expand-y="0" expand-x="1" cols="3" rows="1" spacing="5">
@@ -314,10 +314,10 @@
             </table>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
                 <label param="compression3" />
-                <vumeter param="compression3" mode="2" />
+                <vumeter param="compression3" mode="2" hold="2" />
             </vbox>
             <vbox expand-x="1" fill-x="1" expand="1" fill="1">
-                <vumeter param="output3" mode="0" shrink-y="0" />
+                <vumeter param="output3" mode="0" hold="2" shrink-y="0" />
                 <label param="output3" />
             </vbox>
             <table expand-y="0" expand-x="1" cols="3" rows="1" spacing="5">
diff --git a/src/calf/ctl_led.h b/src/calf/ctl_led.h
index f57030d..2ab5aa9 100644
--- a/src/calf/ctl_led.h
+++ b/src/calf/ctl_led.h
@@ -37,7 +37,7 @@ struct CalfLed
 {
     GtkWidget parent;
     int led_mode;
-    gboolean led_state;
+    float led_value;
 };
 
 /// Class object for CalfLed
@@ -53,10 +53,10 @@ extern GtkWidget *calf_led_new();
 extern GType calf_led_get_type();
 
 /// Set LED state (true - lit, false - unlit)
-extern void calf_led_set_state(CalfLed *led, gboolean state);
+extern void calf_led_set_value(CalfLed *led, float value);
 
 /// Get LED state (true - lit, false - unlit)
-extern gboolean calf_led_get_state(CalfLed *led);
+extern gboolean calf_led_get_value(CalfLed *led);
 
 G_END_DECLS
 
diff --git a/src/calf/custom_ctl.h b/src/calf/custom_ctl.h
index 33f99fd..1016ac9 100644
--- a/src/calf/custom_ctl.h
+++ b/src/calf/custom_ctl.h
@@ -76,6 +76,10 @@ struct CalfVUMeter
     GtkDrawingArea parent;
     CalfVUMeterMode mode;
     float value;
+    int vumeter_hold;
+    bool holding;
+    long last_hold;
+    float last_value;
     cairo_surface_t *cache_surface;
 };
 
diff --git a/src/ctl_led.cpp b/src/ctl_led.cpp
index 4eba021..6f3c90f 100644
--- a/src/ctl_led.cpp
+++ b/src/ctl_led.cpp
@@ -51,20 +51,72 @@ calf_led_expose (GtkWidget *widget, GdkEventExpose *event)
     int yc = widget->allocation.height / 2;
     
     cairo_pattern_t *pt = cairo_pattern_create_radial(xc, yc, 0, xc, yc, xc > yc ? xc : yc);
+    
+    float value = self->led_value;
+    
+    if(self->led_mode >= 4 && self->led_mode <= 5 && value > 1.f) {
+        value = 1.f;
+    }
     switch (self->led_mode) {
         default:
         case 0:
-            cairo_pattern_add_color_stop_rgb(pt, 0.0, self->led_state ? 0.2 : 0.0, self->led_state ? 1.0 : 0.25, self->led_state ? 1.0 : 0.5);
-            cairo_pattern_add_color_stop_rgb(pt, 0.5, self->led_state ? 0.1 : 0.0, self->led_state ? 0.6 : 0.15, self->led_state ? 0.75 : 0.3);
-            cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.0,                         self->led_state ? 0.3 : 0.1,  self->led_state ? 0.5 : 0.2);
+            // blue-on/off
+            cairo_pattern_add_color_stop_rgb(pt, 0.0, value > 0.f ? 0.2 : 0.0, value > 0.f ? 1.0 : 0.25, value > 0.f ? 1.0 : 0.5);
+            cairo_pattern_add_color_stop_rgb(pt, 0.5, value > 0.f ? 0.1 : 0.0, value > 0.f ? 0.6 : 0.15, value > 0.f ? 0.75 : 0.3);
+            cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.0,                     value > 0.f ? 0.3 : 0.1,  value > 0.f ? 0.5 : 0.2);
             break;
         case 1:
-            cairo_pattern_add_color_stop_rgb(pt, 0.0, self->led_state ? 1.0 : 0.5, self->led_state ? 0.5 : 0.0, self->led_state ? 0.2 : 0.0);
-            cairo_pattern_add_color_stop_rgb(pt, 0.5, self->led_state ? 0.75 : 0.3, self->led_state ? 0.2 : 0.0, self->led_state ? 0.1 : 0.0);
-            cairo_pattern_add_color_stop_rgb(pt, 1.0, self->led_state ? 0.5 : 0.2, self->led_state ? 0.1 : 0.0, 0.0);
+            // red-on/off
+            cairo_pattern_add_color_stop_rgb(pt, 0.0, value > 0.f ? 1.0 : 0.5,  value > 0.f ? 0.5 : 0.0, value > 0.f ? 0.2 : 0.0);
+            cairo_pattern_add_color_stop_rgb(pt, 0.5, value > 0.f ? 0.75 : 0.3, value > 0.f ? 0.2 : 0.0, value > 0.f ? 0.1 : 0.0);
+            cairo_pattern_add_color_stop_rgb(pt, 1.0, value > 0.f ? 0.5 : 0.2,  value > 0.f ? 0.1 : 0.0, 0.0);
+            break;
+        case 2:
+        case 4:
+            // blue-dynamic (limited)
+            cairo_pattern_add_color_stop_rgb(pt, 0.0, value * 0.2, value * 0.75 + 0.25, value * 0.5 + 0.5);
+            cairo_pattern_add_color_stop_rgb(pt, 0.5, value * 0.1, value * 0.45 + 0.15, value * 0.45 + 0.3);
+            cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.0,         value * 0.2 + 0.1,   value * 0.3 + 0.2);
+            break;
+        case 3:
+        case 5:
+            // red-dynamic (limited)
+            cairo_pattern_add_color_stop_rgb(pt, 0.0, value * 0.5 + 0.5,  value * 0.5, value * 0.2);
+            cairo_pattern_add_color_stop_rgb(pt, 0.5, value * 0.45 + 0.3, value * 0.2, value * 0.1);
+            cairo_pattern_add_color_stop_rgb(pt, 1.0, value * 0.3 + 0.2,  value * 0.1, 0.0);
+            break;
+        case 6:
+            // blue-dynamic with red peak at >= 1.f
+            if(value < 1.0) {
+                cairo_pattern_add_color_stop_rgb(pt, 0.0, value * 0.2, value * 0.75 + 0.25, value * 0.5 + 0.5);
+                cairo_pattern_add_color_stop_rgb(pt, 0.5, value * 0.1, value * 0.45 + 0.15, value * 0.45 + 0.3);
+                cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.0,         value * 0.2 + 0.1,   value * 0.3 + 0.2);
+            } else {
+                cairo_pattern_add_color_stop_rgb(pt, 0.0, 1.0,  0.5, 0.2);
+                cairo_pattern_add_color_stop_rgb(pt, 0.5, 0.75, 0.2, 0.1);
+                cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.5,  0.1, 0.0);
+            }
+            break;
+        case 7:
+            // off @ 0.0, blue < 1.0, red @ 1.0
+            if(value < 1.f and value > 0.f) {
+                // blue
+                cairo_pattern_add_color_stop_rgb(pt, 0.0, 0.2, 1.0, 1.0);
+                cairo_pattern_add_color_stop_rgb(pt, 0.5, 0.1, 0.6, 0.75);
+                cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.0, 0.3, 0.5);
+            } else if(value == 0.f) {
+                // off
+                cairo_pattern_add_color_stop_rgb(pt, 0.0, 0.0, 0.25, 0.5);
+                cairo_pattern_add_color_stop_rgb(pt, 0.5, 0.0, 0.15, 0.3);
+                cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.0, 0.1,  0.2);
+            } else {
+                // red
+                cairo_pattern_add_color_stop_rgb(pt, 0.0, 1.0,  0.5, 0.2);
+                cairo_pattern_add_color_stop_rgb(pt, 0.5, 0.75, 0.2, 0.1);
+                cairo_pattern_add_color_stop_rgb(pt, 1.0, 0.5,  0.1, 0.0);
+            }
             break;
     }
-
     cairo_rectangle(c, ox, oy, sx, sy);
     cairo_set_source (c, pt);
     cairo_fill(c);
@@ -146,23 +198,23 @@ calf_led_init (CalfLed *self)
 {
     // GtkWidget *widget = GTK_WIDGET(self);
     // GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
-    self->led_state = FALSE;
+    self->led_value = 0.f;
 }
 
-void calf_led_set_state(CalfLed *led, gboolean state)
+void calf_led_set_value(CalfLed *led, float value)
 {
-    if (state != led->led_state)
+    if (value != led->led_value)
     {
-        led->led_state = state;
+        led->led_value = value;
         GtkWidget *widget = GTK_WIDGET (led);
         if (GTK_WIDGET_REALIZED(widget))
             gtk_widget_queue_draw (widget);
     }
 }
 
-gboolean calf_led_get_state(CalfLed *led)
+gboolean calf_led_get_value(CalfLed *led)
 {
-    return led->led_state;
+    return led->led_value;
 }
 
 GType
diff --git a/src/custom_ctl.cpp b/src/custom_ctl.cpp
index d585605..9a18af0 100644
--- a/src/custom_ctl.cpp
+++ b/src/custom_ctl.cpp
@@ -484,15 +484,56 @@ calf_vumeter_expose (GtkWidget *widget, GdkEventExpose *event)
     cairo_set_source_rgba( c, 0,0,0, 0.6 );
 
     float value = vu->value > 1.f ? 1.f : vu->value;
-    if( vu->mode == VU_MONOCHROME_REVERSE )
-        cairo_rectangle( c, ox + 1,oy + 1, value * (sx - 2), sy - 2);
-    else
-        cairo_rectangle( c, ox + 1 + value * (sx - 2), oy + 1, (sx - 2) * (1 - value), sy - 2 );
     
+    if(vu->vumeter_hold > 0) {
+        // peak hold timer
+        time_t t = time(NULL);
+        if((long)t - (long)vu->vumeter_hold > (long)vu->last_hold) {
+            // time's up, reset
+            vu->last_value = value;
+            vu->last_hold = (long)t;
+            vu->holding = false;
+        }
+        
+        if( vu->mode == VU_MONOCHROME_REVERSE ) {
+            if(value < vu->last_value) {
+                // value is above peak hold
+                vu->last_value = value;
+                vu->last_hold = (long)t;
+                vu->holding = true;
+            }
+            int hpx = round(vu->last_value * (sx - 2));
+            hpx = hpx + (1 - (hpx + 1) % 3);
+            int vpx = round((1 - value) * (sx - 2));
+            vpx = vpx + (1 - (vpx + 1) % 3);
+            int widthA = std::min(3 + hpx, (sx - 2));
+            int widthB = std::min(std::max((sx - 2) - vpx - 3 - hpx, 0), (sx - 2));
+            cairo_rectangle( c, ox + 1, oy + 1, hpx, sy - 2);
+            cairo_rectangle( c, ox + 1 + widthA, oy + 1, widthB, sy - 2);
+        } else {
+            if(value > vu->last_value) {
+                // value is above peak hold
+                vu->last_value = value;
+                vu->last_hold = (long)t;
+                vu->holding = true;
+            }
+            int hpx = round((1 - vu->last_value) * (sx - 2));
+            hpx = hpx + (1 - (hpx + 1) % 3);
+            int vpx = round(value * (sx - 2));
+            vpx = vpx + (1 - (vpx + 1) % 3);
+            int width = std::min(std::max((sx - 2) - vpx - 3 - hpx, 0), (sx - 2));
+            cairo_rectangle( c, ox + 1 + vpx, oy + 1, width, sy - 2);
+            cairo_rectangle( c, ox + 1 + (sx - 2) - hpx, oy + 1, hpx, sy - 2);
+        }
+    } else {
+        // darken normally
+        if( vu->mode == VU_MONOCHROME_REVERSE )
+            cairo_rectangle( c, ox + 1,oy + 1, value * (sx - 2), sy - 2);
+        else
+            cairo_rectangle( c, ox + 1 + value * (sx - 2), oy + 1, (sx - 2) * (1 - value), sy - 2 );
+    }
     cairo_fill( c );
-    
     cairo_destroy(c);
-
     gtk_paint_shadow(widget->style, widget->window, GTK_STATE_NORMAL, GTK_SHADOW_IN, NULL, widget, NULL, ox - 2, oy - 2, sx + 4, sy + 4);
     //printf("exposed %p %d+%d\n", widget->window, widget->allocation.x, widget->allocation.y);
 
@@ -542,6 +583,9 @@ calf_vumeter_init (CalfVUMeter *self)
     widget->requisition.width = 50;
     widget->requisition.height = 16;
     self->value = 0.5;
+    self->last_hold = 0.f;
+    self->last_value = 0.f;
+    self->holding = false;
     self->cache_surface = NULL;
 }
 
@@ -589,7 +633,7 @@ calf_vumeter_get_type (void)
 
 extern void calf_vumeter_set_value(CalfVUMeter *meter, float value)
 {
-    if (value != meter->value)
+    if (value != meter->value or meter->holding)
     {
         meter->value = value;
         gtk_widget_queue_draw(GTK_WIDGET(meter));
diff --git a/src/gui_controls.cpp b/src/gui_controls.cpp
index 469fb89..2e27311 100644
--- a/src/gui_controls.cpp
+++ b/src/gui_controls.cpp
@@ -304,6 +304,7 @@ GtkWidget *vumeter_param_control::create(plugin_gui *_gui, int _param_no)
     // parameter_properties &props = get_props();
     widget = calf_vumeter_new ();
     calf_vumeter_set_mode (CALF_VUMETER (widget), (CalfVUMeterMode)get_int("mode", 0));
+    CALF_VUMETER(widget)->vumeter_hold = get_int("hold", 0);
     return widget;
 }
 
@@ -331,7 +332,7 @@ void led_param_control::set()
 {
     _GUARD_CHANGE_
     // parameter_properties &props = get_props();
-    calf_led_set_state (CALF_LED (widget), gui->plugin->get_param_value(param_no) > 0);
+    calf_led_set_value (CALF_LED (widget), gui->plugin->get_param_value(param_no));
     if (label)
         update_label();
 }
diff --git a/src/main_win.cpp b/src/main_win.cpp
index 34369b7..b7b2531 100644
--- a/src/main_win.cpp
+++ b/src/main_win.cpp
@@ -405,7 +405,7 @@ gboolean main_window::on_idle(void *data)
                 calf_vumeter_set_value(CALF_VUMETER(strip->audio_out[1]), LVL(plugin->get_level(idx++)));
             }
             if (plugin->get_midi()) {
-                calf_led_set_state (CALF_LED (strip->midi_in), plugin->get_level(idx++) > 0.f);
+                calf_led_set_value (CALF_LED (strip->midi_in), plugin->get_level(idx++));
             }
         }
     }
diff --git a/src/modules.cpp b/src/modules.cpp
index a697dbd..bc15225 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -225,7 +225,7 @@ CALF_PORT_PROPS(compressor) = {
     { 0,      0,  4,   0, PF_ENUM | PF_CTL_COMBO, compressor_weighting_names, "aweighting", "Weighting" },
     { 0, 0.03125, 1,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_CTLO_REVERSE | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL| PF_PROP_GRAPH, NULL, "compression", "Compression" },
     { 0,      0,  1,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "peak", "Peak Output" },
-    { 0,      0,  1,    0, PF_BOOL | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip", "0dB" },
+    { 0,      0,  1,    0, PF_FLOAT | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip", "0dB" },
     { 0,      0,  1,    0, PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass", "Bypass" },
     // { 2000,      10,20000,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_HZ | PF_PROP_GRAPH, NULL, "deess_freq", "Frequency" },
     // { 0.707,  0.707,   32,    0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF, NULL, "deess_res", "Q" },
@@ -247,10 +247,10 @@ CALF_PORT_PROPS(multibandcompressor) = {
     { 0,           0,           1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "meter_inR", "Input R" },
     { 0,           0,           1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "meter_outL", "Output L" },
     { 0,           0,           1,     0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_METER | PF_CTLO_LABEL | PF_UNIT_DB | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "meter_outR", "Output R" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_inL", "0dB" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_inR", "0dB" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_outL", "0dB" },
-    { 0,           0,           1,     0,  PF_BOOL | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_outR", "0dB" },
+    { 0,           0,           1,     0,  PF_FLOAT | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_inL", "0dB" },
+    { 0,           0,           1,     0,  PF_FLOAT | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_inR", "0dB" },
+    { 0,           0,           1,     0,  PF_FLOAT | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_outL", "0dB" },
+    { 0,           0,           1,     0,  PF_FLOAT | PF_CTL_LED | PF_PROP_OUTPUT | PF_PROP_OPTIONAL, NULL, "clip_outR", "0dB" },
     
     { 100,         10,          20000, 0,  PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_HZ | PF_PROP_GRAPH, NULL, "freq0", "Split 1/2" },
     { 1000,        10,          20000, 0,  PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_HZ | PF_PROP_GRAPH, NULL, "freq1", "Split 2/3" },

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list