Reloaded / Anim Fx : Fix param with no zero lower bound

This commit is contained in:
Jerome Blanchi aka d.j.a.y
2017-10-16 23:13:26 +02:00
parent 0cd330153a
commit c74e22eeb3
2 changed files with 8 additions and 4 deletions

View File

@@ -2630,8 +2630,11 @@ void on_curve_buttonstore_clicked(GtkWidget *widget, gpointer user_data )
unsigned char *ptr = buf + hdr_len; unsigned char *ptr = buf + hdr_len;
int k; int k;
int diff = max - min;
for( k = 0 ; k < length ; k++ ) { for( k = 0 ; k < length ; k++ ) {
int pval = (int) ( (float) min + ( data[k] * ((float) max) )); // pval = ((Input - InputLow) / (InputHigh - InputLow)) * (OutputHigh - OutputLow) + OutputLow;
// with InputLow==0 and InputHigh==1 in gtkcurve range
int pval = ((data[k]) * ((float)diff)) + min;
ptr[0] = pval & 0xff; ptr[0] = pval & 0xff;
ptr[1] = (pval >> 8) & 0xff; ptr[1] = (pval >> 8) & 0xff;
ptr[2] = (pval >> 16) & 0xff; ptr[2] = (pval >> 16) & 0xff;

View File

@@ -62,15 +62,16 @@ int set_points_in_curve_ext( GtkWidget *curve, unsigned char *blob, int id, int
unsigned int k = 0; unsigned int k = 0;
unsigned char *in = blob + 27; unsigned char *in = blob + 27;
float *vec = (float*) vj_calloc(sizeof(float) * len ); float *vec = (float*) vj_calloc(sizeof(float) * len );
int diff = max - min;
for(i = start ; i < end; i ++ ) for(i = start ; i < end; i ++ )
{ {
unsigned char *ptr = in + (k * 4); unsigned char *ptr = in + (k * 4);
int value = int value =
( ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24) ); ( ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24) );
// val = ((Input - InputLow) / (InputHigh - InputLow)) * (OutputHigh - OutputLow) + OutputLow;
float top = 1.0 / (float) max; // with OutputLow==0 and OutputHigh==1 in gtkcurve range
float val = ( (float)value * top ); float val = ((float)(value - min) / (diff));
vec[k] = val; vec[k] = val;
k++; k++;