+/*
+ Copyright (C) 2000-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.
+
+*/
+
#ifndef __ardour_gtk_log_meter_h__
#define __ardour_gtk_log_meter_h__
-#if 0
-inline float
+#if 1
+static inline float
_log_meter (float power, double lower_db, double upper_db, double non_linearity)
{
return (power < lower_db ? 0.0 : pow((power-lower_db)/(upper_db-lower_db), non_linearity));
}
-inline float
-log_meter (float power)
+static inline float
+alt_log_meter (float power)
{
return _log_meter (power, -192.0, 0.0, 8.0);
}
log_meter (float db)
{
gfloat def = 0.0f; /* Meter deflection %age */
-
+
if (db < -70.0f) {
def = 0.0f;
} else if (db < -60.0f) {
} else {
def = 115.0f;
}
-
- /* 115 is the deflection %age that would be
+
+ /* 115 is the deflection %age that would be
when db=6.0. this is an arbitrary
endpoint for our scaling.
*/