diff options
author | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
commit | 9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (patch) | |
tree | 96ec400b83b8c1c06852b1936f684b5fbcd47a79 /libs/ardour/ardour/logcurve.h | |
parent | 2f3f697bb8e185eb43c2c50b4eefc2bcb937f269 (diff) |
remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/logcurve.h')
-rw-r--r-- | libs/ardour/ardour/logcurve.h | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/libs/ardour/ardour/logcurve.h b/libs/ardour/ardour/logcurve.h deleted file mode 100644 index dd58263313..0000000000 --- a/libs/ardour/ardour/logcurve.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - Copyright (C) 2001 Steve Harris & 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_logcurve_h__ -#define __ardour_logcurve_h__ - -#include <pbd/fastlog.h> -#include <glibmm/thread.h> - -namespace ARDOUR { - -class LogCurve { - public: - LogCurve (float steepness = 0.2, uint32_t len = 0) { - l = len; - S = steepness; - a = log(S); - b = 1.0f / log(1.0f + (1.0f / S)); - } - - bool operator== (const LogCurve& other) const { - return S == other.S && l == other.l; - } - - bool operator!= (const LogCurve& other) const { - return S != other.S || l != other.l; - } - - float value (float frac) const { - return (fast_log(frac + S) - a) * b; - } - - float value (uint32_t pos) const { - return (fast_log(((float) pos/l) + S) - a) * b; - } - - float invert_value (float frac) const { - return (a - fast_log(frac + S)) * b; - } - - float invert_value (uint32_t pos) const { - return (a - fast_log(((float) pos/l) + S)) * b; - } - - void fill (float *vec, uint32_t veclen, bool invert) const { - float dx = 1.0f/veclen; - float x; - uint32_t i; - - if (!invert) { - - vec[0] = 0.0; - vec[veclen-1] = 1.0; - - for (i = 1, x = 0; i < veclen - 1; x += dx, i++) { - vec[i] = value (x); - } - - } else { - - vec[0] = 1.0; - vec[veclen-1] = 0.0; - - for (i = veclen-2, x = 0.0f; i > 0; x += dx, i--) { - vec[i] = value (x); - } - } - } - - float steepness() const { return S; } - uint32_t length() const { return l; } - - void set_steepness (float steepness) { - S = steepness; - a = log(S); - b = 1.0f / log(1.0f + (1.0f / S)); - } - void set_length (uint32_t len) { l = len; } - - mutable Glib::Mutex lock; - - protected: - float a; - float b; - float S; - uint32_t l; -}; - -class LogCurveIn : public LogCurve -{ - public: - LogCurveIn (float steepness = 0.2, uint32_t len = 0) - : LogCurve (steepness, len) {} - - float value (float frac) const { - return (fast_log(frac + S) - a) * b; - } - - float value (uint32_t pos) const { - return (fast_log(((float) pos/l) + S) - a) * b; - } -}; - -class LogCurveOut : public LogCurve -{ - public: - LogCurveOut (float steepness = 0.2, uint32_t len = 0) - : LogCurve (steepness, len) {} - -}; - -} // namespace ARDOUR - -#endif /* __ardour_logcurve_h__ */ - - |