along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id$
*/
#include <iostream>
using namespace PBD;
Curve::Curve (double minv, double maxv, double canv, bool nostate)
- : AutomationList (canv, nostate)
+ : AutomationList (canv)
{
min_yval = minv;
max_yval = maxv;
max_yval = other.max_yval;
}
+Curve::Curve (const XMLNode& node)
+ : AutomationList (node)
+{
+}
+
Curve::~Curve ()
{
}
void
Curve::solve ()
{
- uint32_t npoints;
+ uint64_t npoints;
if (!_dirty) {
return;
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) {
}
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);
}
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) {
*/
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);
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;
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);
}