Remove beat entry from meter dialog (beats are not allowed in API), clean up some...
[ardour.git] / libs / ardour / curve.cc
index 977b6dfd7be5088fc88df669e594497e57564a71..249d84642b14b3fbb07ba3219a1a3b8e4496d084 100644 (file)
@@ -18,7 +18,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #include <iostream>
@@ -41,7 +40,7 @@ using namespace sigc;
 using namespace PBD;
 
 Curve::Curve (double minv, double maxv, double canv, bool nostate)
-       : AutomationList (canv, nostate)
+       : AutomationList (canv)
 {
        min_yval = minv;
        max_yval = maxv;
@@ -61,6 +60,11 @@ Curve::Curve (const Curve& other, double start, double end)
        max_yval = other.max_yval;
 }
 
+Curve::Curve (const XMLNode& node)
+       : AutomationList (node)
+{
+}
+
 Curve::~Curve ()
 {
 }
@@ -68,7 +72,7 @@ Curve::~Curve ()
 void
 Curve::solve ()
 {
-       uint32_t npoints;
+       uint64_t npoints;
 
        if (!_dirty) {
                return;
@@ -83,7 +87,7 @@ Curve::solve ()
 
                double x[npoints];
                double y[npoints];
-               uint32_t i;
+               uint64_t i;
                AutomationEventList::iterator xx;
 
                for (i = 0, xx = events.begin(); xx != events.end(); ++xx, ++i) {
@@ -202,7 +206,7 @@ Curve::solve ()
 }
 
 bool
-Curve::rt_safe_get_vector (double x0, double x1, float *vec, int32_t veclen)
+Curve::rt_safe_get_vector (double x0, double x1, float *vec, int64_t veclen)
 {
        Glib::Mutex::Lock lm (lock, Glib::TRY_LOCK);
 
@@ -215,19 +219,19 @@ Curve::rt_safe_get_vector (double x0, double x1, float *vec, int32_t veclen)
 }
 
 void
-Curve::get_vector (double x0, double x1, float *vec, int32_t veclen)
+Curve::get_vector (double x0, double x1, float *vec, int64_t veclen)
 {
        Glib::Mutex::Lock lm (lock);
        _get_vector (x0, x1, vec, veclen);
 }
 
 void
-Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen)
+Curve::_get_vector (double x0, double x1, float *vec, int64_t veclen)
 {
        double rx, dx, lx, hx, max_x, min_x;
-       int32_t i;
-       int32_t original_veclen;
-       int32_t npoints;
+       int64_t i;
+       int64_t original_veclen;
+       int64_t npoints;
 
         if ((npoints = events.size()) == 0) {
                  for (i = 0; i < veclen; ++i) {
@@ -258,7 +262,7 @@ Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen)
                */
 
                double frac = (min_x - x0) / (x1 - x0);
-               int32_t subveclen = (int32_t) floor (veclen * frac);
+               int64_t subveclen = (int64_t) floor (veclen * frac);
                
                subveclen = min (subveclen, veclen);
 
@@ -276,7 +280,7 @@ Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen)
 
                double frac = (x1 - max_x) / (x1 - x0);
 
-               int32_t subveclen = (int32_t) floor (original_veclen * frac);
+               int64_t subveclen = (int64_t) floor (original_veclen * frac);
 
                float val;
                
@@ -430,18 +434,10 @@ Curve::point_factory (const ControlEvent& other) const
        return new CurvePoint (other.when, other.value);
 }
 
-Change
-Curve::restore_state (StateManager::State& state)
-{
-       mark_dirty ();
-       return AutomationList::restore_state (state);
-}
-
-
 extern "C" {
 
 void 
-curve_get_vector_from_c (void *arg, double x0, double x1, float* vec, int32_t vecsize)
+curve_get_vector_from_c (void *arg, double x0, double x1, float* vec, int64_t vecsize)
 {
        static_cast<Curve*>(arg)->get_vector (x0, x1, vec, vecsize);
 }