diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2009-01-13 18:00:10 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2009-01-13 18:00:10 +0000 |
commit | a30cbb586a36c7f3485b46e990ef485fd8a8da58 (patch) | |
tree | 4433c74dadef16eefbff56a756da2b47b8b66686 /src/bin_ambi_reduced_decode2.c | |
parent | 524ba817b76fdd27c6833cc948d27aba18280332 (diff) |
hopefully made 64bit able
svn path=/trunk/externals/iem/iem_bin_ambi/; revision=10534
Diffstat (limited to 'src/bin_ambi_reduced_decode2.c')
-rw-r--r-- | src/bin_ambi_reduced_decode2.c | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/src/bin_ambi_reduced_decode2.c b/src/bin_ambi_reduced_decode2.c index ea176db..d8bc40a 100644 --- a/src/bin_ambi_reduced_decode2.c +++ b/src/bin_ambi_reduced_decode2.c @@ -50,10 +50,10 @@ typedef struct _bin_ambi_reduced_decode2 int *x_sym_flag; BIN_AMBI_COMPLEX *x_spec; BIN_AMBI_COMPLEX *x_sin_cos; - float *x_beg_fade_out_hrir; + iemarray_t *x_beg_fade_out_hrir; float *x_beg_hrir; - float **x_beg_hrtf_re; - float **x_beg_hrtf_im; + iemarray_t **x_beg_hrtf_re; + iemarray_t **x_beg_hrtf_im; t_symbol **x_hrir_filename; t_symbol **x_s_hrir; t_symbol **x_s_hrtf_re; @@ -664,9 +664,9 @@ static void bin_ambi_reduced_decode2_calc_pinv(t_bin_ambi_reduced_decode2 *x) { t_garray *a; int npoints; - t_float *fadevec; + iemarray_t *fadevec; - if((int)(x->x_beg_fade_out_hrir) == 0) + if(x->x_beg_fade_out_hrir == 0) { if (!(a = (t_garray *)pd_findbyclass(x->x_s_fade_out_hrir, garray_class))) error("%s: no such array", x->x_s_fade_out_hrir->s_name); @@ -728,7 +728,8 @@ static void bin_ambi_reduced_decode2_check_HRIR_arrays(t_bin_ambi_reduced_decode t_garray *a; int npoints; t_symbol *hrir; - t_float *vec_hrir, *vec, *vec_fade_out_hrir; + iemarray_t *vec_hrir, *vec_fade_out_hrir; + t_float *vec; float decr, sum; if(index < 0) @@ -750,11 +751,11 @@ static void bin_ambi_reduced_decode2_check_HRIR_arrays(t_bin_ambi_reduced_decode vec = x->x_beg_hrir; vec += index * fftsize; - if((int)(x->x_beg_fade_out_hrir)) + if(x->x_beg_fade_out_hrir) { vec_fade_out_hrir = x->x_beg_fade_out_hrir; for(j=0; j<fs2; j++) - vec[j] = vec_hrir[j]*vec_fade_out_hrir[j]; + vec[j] = iemarray_getfloat(vec_hrir,j)*iemarray_getfloat(vec_fade_out_hrir,j); } else { @@ -762,13 +763,13 @@ static void bin_ambi_reduced_decode2_check_HRIR_arrays(t_bin_ambi_reduced_decode n = fs2 * 3; n /= 4; for(j=0; j<n; j++) - vec[j] = vec_hrir[j]; + vec[j] = iemarray_getfloat(vec_hrir,j); sum = 1.0f; decr = 4.0f / (float)fs2; for(j=n, k=0; j<fs2; j++, k++) { sum -= decr; - vec[j] = vec_hrir[j] * sum; + vec[j] = iemarray_getfloat(vec_hrir,j) * sum; } } } @@ -780,7 +781,7 @@ static void bin_ambi_reduced_decode2_check_HRTF_arrays(t_bin_ambi_reduced_decode t_garray *a; int npoints; int fftsize = x->x_fftsize; - t_float *vec_hrtf_re, *vec_hrtf_im; + iemarray_t *vec_hrtf_re, *vec_hrtf_im; t_symbol *hrtf_re, *hrtf_im; if(index < 0) @@ -818,7 +819,8 @@ static void bin_ambi_reduced_decode2_calc_reduced(t_bin_ambi_reduced_decode2 *x, BIN_AMBI_COMPLEX old1, old2, w; BIN_AMBI_COMPLEX *sincos = x->x_sin_cos; BIN_AMBI_COMPLEX *val = x->x_spec;/*weighted decoder-matrix with n_ls lines and n_ambi columns*/ - t_float *vec_hrir, *vec_hrtf_re, *vec_hrtf_im; + t_float *vec_hrir; + iemarray_t *vec_hrtf_re, *vec_hrtf_im; double *dv, *db=x->x_prod; int n_ambi = x->x_n_ambi; int n_ls = x->x_n_ls; @@ -902,15 +904,15 @@ static void bin_ambi_reduced_decode2_calc_reduced(t_bin_ambi_reduced_decode2 *x, } for(i = 0; i<fs2; i++) { - vec_hrtf_re[i] = val[i].real; - vec_hrtf_im[i] = val[i].imag; + iemarray_getfloat(vec_hrtf_re,i) = val[i].real; + iemarray_getfloat(vec_hrtf_im,i) = val[i].imag; } - vec_hrtf_re[fs2] = val[fs2].real; - vec_hrtf_im[fs2] = 0.0f; + iemarray_getfloat(vec_hrtf_re,fs2) = val[fs2].real; + iemarray_getfloat(vec_hrtf_im,fs2) = 0.0f; for(i = fs2+1; i < fftsize; i++) { - vec_hrtf_re[i] = 0.0f; - vec_hrtf_im[i] = 0.0f; + iemarray_getfloat(vec_hrtf_re,i) = 0.0f; + iemarray_getfloat(vec_hrtf_im,i) = 0.0f; } } } @@ -1284,10 +1286,10 @@ static void *bin_ambi_reduced_decode2_new(t_symbol *s, int argc, t_atom *argv) x->x_spec = (BIN_AMBI_COMPLEX *)getbytes(x->x_fftsize * sizeof(BIN_AMBI_COMPLEX)); x->x_sin_cos = (BIN_AMBI_COMPLEX *)getbytes(x->x_fftsize * sizeof(BIN_AMBI_COMPLEX)); - x->x_beg_fade_out_hrir = (float *)0; - x->x_beg_hrir = (float *)getbytes(x->x_fftsize * x->x_n_ls * sizeof(float)); - x->x_beg_hrtf_re = (float **)getbytes(x->x_n_ambi * sizeof(float *)); - x->x_beg_hrtf_im = (float **)getbytes(x->x_n_ambi * sizeof(float *)); + x->x_beg_fade_out_hrir = 0; + x->x_beg_hrir = (float *)getbytes(x->x_fftsize * x->x_n_ls * sizeof(float)); + x->x_beg_hrtf_re = (iemarray_t **)getbytes(x->x_n_ambi * sizeof(iemarray_t *)); + x->x_beg_hrtf_im = (iemarray_t **)getbytes(x->x_n_ambi * sizeof(iemarray_t *)); x->x_sqrt3 = sqrt(3.0); x->x_sqrt5_2 = sqrt(5.0) / 2.0; |