aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2009-01-13 17:03:08 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2009-01-13 17:03:08 +0000
commit2b8d4b4aa6c0e423bf4512c09261dca225954ba0 (patch)
tree6ab007be3ddcf89be9127d6521befd18b77556f2
parent78d3861035fad392bcf7b7a424931beaf589bc72 (diff)
really made array access 64bit able
svn path=/trunk/externals/iem/iem_spec2/; revision=10531
-rw-r--r--src/spec2_tab_conv~.c7
-rw-r--r--src/spec2_tabreceive_enable~.c44
-rw-r--r--src/spec2_tabreceive~.c54
3 files changed, 57 insertions, 48 deletions
diff --git a/src/spec2_tab_conv~.c b/src/spec2_tab_conv~.c
index 42d279c..9b596ce 100644
--- a/src/spec2_tab_conv~.c
+++ b/src/spec2_tab_conv~.c
@@ -39,7 +39,8 @@ static t_int *spec2_tab_conv_tilde_perform(t_int *w)
t_float *out = (t_float *)(w[2]);
t_spec2_tab_conv_tilde *x = (t_spec2_tab_conv_tilde *)(w[3]);
t_float sum=0.0f;
- t_float *vec1, *vec2, *vec3, *win;
+ t_float *vec1, *vec2, *vec3;
+ iemarray_t*win;
int i, m, n = (int)(w[4])+1;
int j, ws=x->x_winsize;
@@ -61,7 +62,7 @@ static t_int *spec2_tab_conv_tilde_perform(t_int *w)
{
sum = 0.0f;
for(j=0; j<ws; j++)
- sum += win[j] * vec2[j];
+ sum += iemarray_getfloat(win, j) * vec2[j];
out[i] = sum;
vec2++;
}
@@ -125,7 +126,7 @@ static void *spec2_tab_conv_tilde_new(t_symbol *s, int argc, t_atom *argv)
argv++;
x->x_winsize = (int)(atom_getint(argv));
x->x_spec = (t_float *)0;
- x->x_beg_array = (t_float *)0;
+ x->x_beg_array = (iemarray_t *)0;
x->x_blocksize = 0;
x->x_has_changed = 1;
outlet_new(&x->x_obj, &s_signal);
diff --git a/src/spec2_tabreceive_enable~.c b/src/spec2_tabreceive_enable~.c
index 54efc38..96377db 100644
--- a/src/spec2_tabreceive_enable~.c
+++ b/src/spec2_tabreceive_enable~.c
@@ -38,11 +38,13 @@ static t_int *spec2_tabreceive_enable_tilde_perform(t_int *w)
t_spec2_tabreceive_enable_tilde *x = (t_spec2_tabreceive_enable_tilde *)(w[1]);
t_float *out = (t_float *)(w[2]);
int n = w[3]+1;
- t_float *vec = x->x_vec;
+ iemarray_t *vec = x->x_vec;
if(vec && x->x_enable)
- while(n--)
- *out++ = *vec++;
+ while(n--) {
+ *out++ = iemarray_getfloat(vec, 0);
+ vec++;
+ }
else
while(n--)
*out++ = 0.0f;
@@ -54,34 +56,34 @@ static t_int *spec2_tabreceive_enable_tilde_perf16(t_int *w)
t_spec2_tabreceive_enable_tilde *x = (t_spec2_tabreceive_enable_tilde *)(w[1]);
t_float *out = (t_float *)(w[2]);
int n = w[3];
- t_float *vec = x->x_vec;
+ iemarray_t *vec = x->x_vec;
if(vec && x->x_enable)
{
while(n)
{
- out[0] = vec[0];
- out[1] = vec[1];
- out[2] = vec[2];
- out[3] = vec[3];
- out[4] = vec[4];
- out[5] = vec[5];
- out[6] = vec[6];
- out[7] = vec[7];
- out[8] = vec[8];
- out[9] = vec[9];
- out[10] = vec[10];
- out[11] = vec[11];
- out[12] = vec[12];
- out[13] = vec[13];
- out[14] = vec[14];
- out[15] = vec[15];
+ out[0] = iemarray_getfloat(vec, 0);
+ out[1] = iemarray_getfloat(vec, 1);
+ out[2] = iemarray_getfloat(vec, 2);
+ out[3] = iemarray_getfloat(vec, 3);
+ out[4] = iemarray_getfloat(vec, 4);
+ out[5] = iemarray_getfloat(vec, 5);
+ out[6] = iemarray_getfloat(vec, 6);
+ out[7] = iemarray_getfloat(vec, 7);
+ out[8] = iemarray_getfloat(vec, 8);
+ out[9] = iemarray_getfloat(vec, 9);
+ out[10] = iemarray_getfloat(vec, 10);
+ out[11] = iemarray_getfloat(vec, 11);
+ out[12] = iemarray_getfloat(vec, 12);
+ out[13] = iemarray_getfloat(vec, 13);
+ out[14] = iemarray_getfloat(vec, 14);
+ out[15] = iemarray_getfloat(vec, 15);
vec += 16;
out += 16;
n -= 16;
}
- out[0] = vec[0];
+ out[0] = iemarray_getfloat(vec, 0);
}
else
{
diff --git a/src/spec2_tabreceive~.c b/src/spec2_tabreceive~.c
index f0b3577..4c5d3c4 100644
--- a/src/spec2_tabreceive~.c
+++ b/src/spec2_tabreceive~.c
@@ -28,14 +28,20 @@ static t_int *spec2_tabreceive_tilde_perform(t_int *w)
t_float *out = (t_float *)(w[2]);
int n = w[3]+1;
iemarray_t *vec = x->x_vec;
-
if(vec)
- while(n--)
+ while(n--) {
+#ifdef __x86_64__
+ t_word wp=*vec++;
+ *out++=wp.w_float;
+#else
*out++ = *vec++;
- else
- while(n--)
- *out++ = 0.0f;
- return(w+4);
+#endif
+ }
+ else
+ while(n--)
+ *out++ = 0.0f;
+ return(w+4);
+
}
static t_int *spec2_tabreceive_tilde_perf16(t_int *w)
@@ -49,28 +55,28 @@ static t_int *spec2_tabreceive_tilde_perf16(t_int *w)
{
while(n)
{
- out[0] = vec[0];
- out[1] = vec[1];
- out[2] = vec[2];
- out[3] = vec[3];
- out[4] = vec[4];
- out[5] = vec[5];
- out[6] = vec[6];
- out[7] = vec[7];
- out[8] = vec[8];
- out[9] = vec[9];
- out[10] = vec[10];
- out[11] = vec[11];
- out[12] = vec[12];
- out[13] = vec[13];
- out[14] = vec[14];
- out[15] = vec[15];
-
+ out[0] = iemarray_getfloat(vec, 0);
+ out[1] = iemarray_getfloat(vec, 1);
+ out[2] = iemarray_getfloat(vec, 2);
+ out[3] = iemarray_getfloat(vec, 3);
+ out[4] = iemarray_getfloat(vec, 4);
+ out[5] = iemarray_getfloat(vec, 5);
+ out[6] = iemarray_getfloat(vec, 6);
+ out[7] = iemarray_getfloat(vec, 7);
+ out[8] = iemarray_getfloat(vec, 8);
+ out[9] = iemarray_getfloat(vec, 9);
+ out[10] = iemarray_getfloat(vec, 10);
+ out[11] = iemarray_getfloat(vec, 11);
+ out[12] = iemarray_getfloat(vec, 12);
+ out[13] = iemarray_getfloat(vec, 13);
+ out[14] = iemarray_getfloat(vec, 14);
+ out[15] = iemarray_getfloat(vec, 15);
+
vec += 16;
out += 16;
n -= 16;
}
- out[0] = vec[0];
+ out[0] = iemarray_getfkiat(vec, 0);
}
else
{