[SCM] calf/master: + Knob: implement dead zone for bipolar knobs + Organ: use bipolar knobs for transpose and detune
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:37:29 UTC 2013
The following commit has been merged in the master branch:
commit f56a5ab87605ce5af88374fc8001c905b6957b1c
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date: Wed Aug 6 22:20:53 2008 +0000
+ Knob: implement dead zone for bipolar knobs
+ Organ: use bipolar knobs for transpose and detune
git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@259 78b06b96-2940-0410-b7fc-879d825d01d8
diff --git a/src/custom_ctl.cpp b/src/custom_ctl.cpp
index 4097366..437ac8c 100644
--- a/src/custom_ctl.cpp
+++ b/src/custom_ctl.cpp
@@ -457,6 +457,23 @@ static inline float endless(float value)
return fmod(1.f - fmod(1.f - value, 1.f), 1.f);
}
+static inline float deadzone(float value, float incr)
+{
+ float dzw = 3 / 32.0;
+ if (value >= 0.501)
+ value += dzw;
+ if (value < 0.499)
+ value -= dzw;
+
+ value += incr;
+
+ if (value >= (0.5 - dzw) && value <= (0.5 + dzw))
+ return 0.5;
+ if (value < 0.5)
+ return value + dzw;
+ return value - dzw;
+}
+
static gboolean
calf_knob_pointer_motion (GtkWidget *widget, GdkEventMotion *event)
{
@@ -470,6 +487,11 @@ calf_knob_pointer_motion (GtkWidget *widget, GdkEventMotion *event)
gtk_range_set_value(GTK_RANGE(widget), endless(self->start_value - (event->y - self->start_y) / 100));
}
else
+ if (self->knob_type == 1)
+ {
+ gtk_range_set_value(GTK_RANGE(widget), deadzone(self->start_value, -(event->y - self->start_y) / 100));
+ }
+ else
{
gtk_range_set_value(GTK_RANGE(widget), self->start_value - (event->y - self->start_y) / 100);
}
diff --git a/src/organ.cpp b/src/organ.cpp
index 1e55faf..dcf37ab 100644
--- a/src/organ.cpp
+++ b/src/organ.cpp
@@ -352,12 +352,12 @@ const char *organ_audio_module::get_gui_xml()
"<hbox>"
"<vbox>"
"<label param=\"transpose\"/>"
- "<align><knob param=\"transpose\"/></align>"
+ "<align><knob param=\"transpose\" type=\"1\"/></align>"
"<value param=\"transpose\"/>"
"</vbox>"
"<vbox>"
"<label param=\"detune\"/>"
- "<align><knob param=\"detune\"/></align>"
+ "<align><knob param=\"detune\" type=\"1\"/></align>"
"<value param=\"detune\"/>"
"</vbox>"
"<vbox>"
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list