summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-02-11 13:03:24 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-02-11 13:03:24 -0500
commite6b06597b75010c955c6b44db0025a3e8642d9b0 (patch)
treeee90c7c9a14394588bd6618dd5b9262fbcd19dc7 /gtk2_ardour
parent2429308bac5751fb136515027f6762ba76a7eb3d (diff)
remove all traces of "prolooks" and related classes
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/monitor_section.cc2
-rw-r--r--gtk2_ardour/monitor_section.h3
-rw-r--r--gtk2_ardour/volume_controller.cc280
-rw-r--r--gtk2_ardour/volume_controller.h60
-rw-r--r--gtk2_ardour/wscript1
5 files changed, 0 insertions, 346 deletions
diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc
index d07ca51dd5..d940258011 100644
--- a/gtk2_ardour/monitor_section.cc
+++ b/gtk2_ardour/monitor_section.cc
@@ -26,7 +26,6 @@
#include "gtkmm2ext/bindable_button.h"
#include "gtkmm2ext/tearoff.h"
#include "gtkmm2ext/actions.h"
-#include "gtkmm2ext/motionfeedback.h"
#include "gtkmm2ext/utils.h"
#include <gtkmm/menu.h>
@@ -45,7 +44,6 @@
#include "public_editor.h"
#include "timers.h"
#include "tooltips.h"
-#include "volume_controller.h"
#include "ui_config.h"
#include "utils.h"
diff --git a/gtk2_ardour/monitor_section.h b/gtk2_ardour/monitor_section.h
index 67d22d0af0..a0339a74bb 100644
--- a/gtk2_ardour/monitor_section.h
+++ b/gtk2_ardour/monitor_section.h
@@ -36,11 +36,8 @@
namespace Gtkmm2ext {
class TearOff;
- class MotionFeedback;
}
-class VolumeController;
-
class MonitorSection : public RouteUI
{
public:
diff --git a/gtk2_ardour/volume_controller.cc b/gtk2_ardour/volume_controller.cc
deleted file mode 100644
index 346ed6e33b..0000000000
--- a/gtk2_ardour/volume_controller.cc
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- Copyright (C) 1998-2007 Paul Davis
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: volume_controller.cc,v 1.4 2000/05/03 15:54:21 pbd Exp $
-*/
-
-#include <algorithm>
-
-#include <string.h>
-#include <limits.h>
-
-#include "pbd/controllable.h"
-#include "pbd/stacktrace.h"
-
-#include "gtkmm2ext/gui_thread.h"
-
-#include "ardour/dB.h"
-#include "ardour/rc_configuration.h"
-#include "ardour/utils.h"
-
-#include "volume_controller.h"
-
-using namespace Gtk;
-
-VolumeController::VolumeController (Glib::RefPtr<Gdk::Pixbuf> p,
- boost::shared_ptr<PBD::Controllable> c,
- double def,
- double step,
- double page,
- bool with_numeric,
- int subw,
- int subh,
- bool linear)
-
- : MotionFeedback (p, MotionFeedback::Rotary, c, def, step, page, "", with_numeric, subw, subh)
- , _linear (linear)
-{
- set_print_func (VolumeController::_dB_printer, this);
- value->set_width_chars (8);
-}
-
-void
-VolumeController::_dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& c, void* arg)
-{
- VolumeController* vc = reinterpret_cast<VolumeController*>(arg);
- vc->dB_printer (buf, c);
-}
-
-void
-VolumeController::dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& c)
-{
- if (c) {
-
- if (_linear) {
-
- double val = accurate_coefficient_to_dB (c->get_value());
-
- if (step_inc < 1.0) {
- if (val >= 0.0) {
- snprintf (buf, 32, "+%5.2f dB", val);
- } else {
- snprintf (buf, 32, "%5.2f dB", val);
- }
- } else {
- if (val >= 0.0) {
- snprintf (buf, 32, "+%2ld dB", lrint (val));
- } else {
- snprintf (buf, 32, "%2ld dB", lrint (val));
- }
- }
-
- } else {
-
- double dB = accurate_coefficient_to_dB (c->get_value());
-
- if (step_inc < 1.0) {
- if (dB >= 0.0) {
- snprintf (buf, 32, "+%5.2f dB", dB);
- } else {
- snprintf (buf, 32, "%5.2f dB", dB);
- }
- } else {
- if (dB >= 0.0) {
- snprintf (buf, 32, "+%2ld dB", lrint (dB));
- } else {
- snprintf (buf, 32, "%2ld dB", lrint (dB));
- }
- }
- }
- } else {
- snprintf (buf, 32, "--");
- }
-}
-
-double
-VolumeController::to_control_value (double display_value)
-{
- double v;
-
- /* display value is always clamped to 0.0 .. 1.0 */
- display_value = std::max (0.0, std::min (1.0, display_value));
-
- if (_linear) {
- v = _controllable->lower() + ((_controllable->upper() - _controllable->lower()) * display_value);
- } else {
- v = ARDOUR::slider_position_to_gain_with_max (display_value, ARDOUR::Config->get_max_gain());
- }
-
- return v;
-}
-
-double
-VolumeController::to_display_value (double control_value)
-{
- double v;
-
- if (_linear) {
- v = (control_value - _controllable->lower ()) / (_controllable->upper() - _controllable->lower());
- } else {
- v = ARDOUR::gain_to_slider_position_with_max (control_value, _controllable->upper());
- }
-
- return v;
-}
-
-double
-VolumeController::adjust (double control_delta)
-{
- double v;
-
- if (!_linear) {
- /* we map back into the linear/fractional slider position,
- * because this kind of control goes all the way down
- * to -inf dB, and we want this occur in a reasonable way in
- * terms of user interaction. if we leave the adjustment in the
- * gain coefficient domain (or dB domain), the lower end of the
- * control range (getting close to -inf dB) takes forever.
- */
-#if 0
- /* convert to linear/fractional slider position domain */
- v = ARDOUR::gain_to_slider_position_with_max (_controllable->get_value (), _controllable->upper());
- /* increment in this domain */
- v += control_delta;
- /* clamp to appropriate range for linear/fractional slider domain */
- v = std::max (0.0, std::min (1.0, v));
- /* convert back to gain coefficient domain */
- v = ARDOUR::slider_position_to_gain_with_max (v, _controllable->upper());
- /* clamp in controller domain */
- v = std::max (_controllable->lower(), std::min (_controllable->upper(), v));
- /* convert to dB domain */
- v = accurate_coefficient_to_dB (v);
- /* round up/down to nearest 0.1dB */
- if (control_delta > 0.0) {
- v = ceil (v * 10.0) / 10.0;
- } else {
- v = floor (v * 10.0) / 10.0;
- }
- /* and return it */
- return dB_to_coefficient (v);
-#else
- /* ^^ Above algorithm is not symmetric. Scroll up to steps, scoll down two steps, -> different gain.
- *
- * see ./libs/gtkmm2ext/gtkmm2ext/motionfeedback.h and gtk2_ardour/monitor_section.cc:
- * min-delta (corr) = MIN(0.01 * page inc, 1 * size_inc) // (gain_control uses size_inc=0.01, page_inc=0.1)
- * range corr: 0..2 -> -inf..+6dB
- * step sizes [0.01, 0.10, 0.20] * page_inc, [1,2,10,100] * step_inc. [1,2,10,100] * page_inc
- *
- * 0.001, 0.01, 0.02, 0.1, .2, 1, 10
- * -> 1k steps between -inf..0dB
- * -> 1k steps between 0..+dB
- *
- * IOW:
- * the range is from *0 (-inf dB) to *2.0 ( +6dB)
- * the knob is configured to to go in steps of 0.001 - that's 2000 steps between 0 and 2.
- * or 1000 steps between 0 and 1.
- *
- * we cannot round to .01dB steps because
- * There are only 600 possible values between +0db and +6dB when going in steps of .01dB
- * 1000/600 = 1.66666...
- *
- ******
- * idea: make the 'controllable use a fixed range of dB.
- * do a 1:1 mapping between values. :et's stick with the range of 0..2 in 0.001 steps
- *
- * "-80" becomes 0 and "+6" becomes 2000. (NB +6dB is actually 1995, but we clamp that to the top)
- *
- * This approach is better (more consistet) but not good. At least the dial does not annoy me as much
- * anymore as it did before.
- *
- * const double stretchfactor = rint((_controllable->upper() - _controllable->lower()) / 0.001); // 2000;
- * const double logfactor = stretchfactor / ((20.0 * log10( _controllable->upper())) + 80.0); // = 23.250244732
- */
- v = _controllable->get_value ();
- /* assume everything below -60dB is silent (.001 ^= -60dB)
- * but map range -80db..+6dB to a scale of 0..2000
- * 80db was motivated because 2000/((20.0 * log(1)) + 80.0) is an integer value. "0dB" is included on the scale.
- * but this leaves a dead area at the bottom of the meter..
- */
- double arange = (v >= 0.001) ? ( ((20.0 * log10(v)) + 80.0) * 23.250244732 ) : ( 0 );
- /* add the delta */
- v = rint(arange) + rint(control_delta * 1000.0); // (min steps is 1.0/0.001 == 1000.0)
- /* catch bottom -80..-60 db in one step */
- if (v < 466) v = (control_delta > 0) ? 0.001 : 0;
- /* reverse operation (pow(10, .05 * ((v / 23.250244732) - 80.0)))
- * can be simplified to :*/
- else v = pow(10, (v * 0.00215051499) - 4.0);
- /* clamp value in coefficient domain */
- v = std::max (_controllable->lower(), std::min (_controllable->upper(), v));
- return v;
-#endif
- } else {
- double mult;
-
- if (control_delta < 0.0) {
- mult = -1.0;
- } else {
- mult = 1.0;
- }
-
- if (fabs (control_delta) < 0.05) {
- control_delta = mult * 0.05;
- } else {
- control_delta = mult * 0.1;
- }
-
- v = _controllable->get_value();
-
- if (v == 0.0) {
- /* if we don't special case this, we can't escape from
- the -infinity dB black hole.
- */
- if (control_delta > 0.0) {
- v = dB_to_coefficient (-100 + control_delta);
- }
- } else {
- static const double dB_minus_200 = dB_to_coefficient (-200.0);
- static const double dB_minus_100 = dB_to_coefficient (-100.0);
- static const double dB_minus_50 = dB_to_coefficient (-50.0);
- static const double dB_minus_20 = dB_to_coefficient (-20.0);
-
- if (control_delta < 0 && v < dB_minus_200) {
- v = 0.0;
- } else {
-
- /* non-linear scaling as the dB level gets low
- so that we can hit -inf and get back out of
- it appropriately.
- */
-
- if (v < dB_minus_100) {
- control_delta *= 1000.0;
- } else if (v < dB_minus_50) {
- control_delta *= 100.0;
- } else if (v < dB_minus_20) {
- control_delta *= 10.0;
- }
-
- v = accurate_coefficient_to_dB (v);
- v += control_delta;
- v = dB_to_coefficient (v);
- }
- }
-
- return std::max (_controllable->lower(), std::min (_controllable->upper(), v));
- }
-
-}
diff --git a/gtk2_ardour/volume_controller.h b/gtk2_ardour/volume_controller.h
deleted file mode 100644
index 28877b7987..0000000000
--- a/gtk2_ardour/volume_controller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- Copyright (C) 1998-2007 Paul Davis
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: volume_controller.h,v 1.4 2000/05/03 15:54:21 pbd Exp $
-*/
-
-#ifndef __gtk_ardour_vol_controller_h__
-#define __gtk_ardour_vol_controller_h__
-
-#include <gtkmm/adjustment.h>
-
-#include "gtkmm2ext/motionfeedback.h"
-
-class VolumeController : public Gtkmm2ext::MotionFeedback
-{
- public:
- VolumeController (Glib::RefPtr<Gdk::Pixbuf>,
- boost::shared_ptr<PBD::Controllable>,
- double def,
- double step,
- double page,
- bool with_numeric = true,
- int image_width = 40,
- int image_height = 40,
- bool linear = true);
-
- virtual ~VolumeController () {}
-
- static void _dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& adj, void* arg);
-
- protected:
- double to_control_value (double);
- double to_display_value (double);
- double adjust (double nominal_delta);
-
- double display_value () const;
- double control_value () const;
-
- private:
- bool _linear;
-
- void dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& adj);
-};
-
-#endif // __gtk_ardour_vol_controller_h__
-
-
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
index b8606a3185..9b864be6b4 100644
--- a/gtk2_ardour/wscript
+++ b/gtk2_ardour/wscript
@@ -246,7 +246,6 @@ gtk2_ardour_sources = [
'utils.cc',
'verbose_cursor.cc',
'visibility_group.cc',
- 'volume_controller.cc',
'window_manager.cc',
# video-timeline related sources:
'video_image_frame.cc',