@@ -268,9 +268,11 @@ void array2sh_calculate_sht_matrix
268268 /* Compute modal responses */
269269 free (pData -> bN );
270270 pData -> bN = malloc1d ((HYBRID_BANDS )* (order + 1 )* sizeof (double_complex ));
271- switch (arraySpecs -> arrayType ){
272- case ARRAY_CYLINDRICAL :
273- switch (arraySpecs -> weightType ){
271+ ARRAY2SH_ARRAY_TYPES arrayType = arraySpecs -> arrayType ;
272+ switch (arrayType ){
273+ case ARRAY_CYLINDRICAL : {
274+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> weightType ;
275+ switch (weightType ){
274276 case WEIGHT_RIGID_OMNI : cylModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_RIGID , pData -> bN ); break ;
275277 case WEIGHT_RIGID_CARD : saf_print_error ("weightType is not supported" ); break ;
276278 case WEIGHT_RIGID_DIPOLE : saf_print_error ("weightType is not supported" ); break ;
@@ -279,8 +281,10 @@ void array2sh_calculate_sht_matrix
279281 case WEIGHT_OPEN_DIPOLE : saf_print_error ("weightType is not supported" ); break ;
280282 }
281283 break ;
282- case ARRAY_SPHERICAL :
283- switch (arraySpecs -> weightType ){
284+ }
285+ case ARRAY_SPHERICAL : {
286+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> weightType ;
287+ switch (weightType ){
284288 case WEIGHT_OPEN_OMNI : sphModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_OPEN , 1.0 , pData -> bN ); break ;
285289 case WEIGHT_OPEN_CARD : sphModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_OPEN_DIRECTIONAL , 0.5 , pData -> bN ); break ;
286290 case WEIGHT_OPEN_DIPOLE : sphModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_OPEN_DIRECTIONAL , 0.0 , pData -> bN ); break ;
@@ -303,6 +307,7 @@ void array2sh_calculate_sht_matrix
303307 break ;
304308 }
305309 break ;
310+ }
306311 }
307312
308313 for (band = 0 ; band < HYBRID_BANDS ; band ++ )
@@ -364,7 +369,8 @@ void array2sh_calculate_sht_matrix
364369 double_complex Hs [HYBRID_BANDS ][MAX_SH_ORDER + 1 ];
365370
366371 /* find suitable cut-off frequencies */
367- switch (arraySpecs -> weightType ){
372+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> weightType ;
373+ switch (weightType ){
368374 case WEIGHT_OPEN_OMNI : sphArrayNoiseThreshold (order , arraySpecs -> Q , arraySpecs -> r , pData -> c , ARRAY_CONSTRUCTION_OPEN , 1.0 , pData -> regPar , f_lim ); break ;
369375 case WEIGHT_OPEN_CARD : sphArrayNoiseThreshold (order , arraySpecs -> Q , arraySpecs -> r , pData -> c , ARRAY_CONSTRUCTION_OPEN_DIRECTIONAL , 0.5 , pData -> regPar , f_lim ); break ;
370376 case WEIGHT_OPEN_DIPOLE : sphArrayNoiseThreshold (order , arraySpecs -> Q , arraySpecs -> r , pData -> c , ARRAY_CONSTRUCTION_OPEN_DIRECTIONAL , 0.0 , pData -> regPar , f_lim ); break ;
@@ -398,9 +404,11 @@ void array2sh_calculate_sht_matrix
398404 /* compute inverse radial response */
399405 free (pData -> bN );
400406 pData -> bN = malloc1d ((HYBRID_BANDS )* (order + 1 )* sizeof (double_complex ));
401- switch (arraySpecs -> arrayType ){
402- case ARRAY_CYLINDRICAL :
403- switch (arraySpecs -> weightType ){
407+ ARRAY2SH_ARRAY_TYPES arrayType = arraySpecs -> arrayType ;
408+ switch (arrayType ){
409+ case ARRAY_CYLINDRICAL :{
410+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> arrayType ;
411+ switch (weightType ){
404412 case WEIGHT_RIGID_OMNI : cylModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_RIGID , pData -> bN ); break ;
405413 case WEIGHT_RIGID_CARD : /* not supported */ break ;
406414 case WEIGHT_RIGID_DIPOLE : /* not supported */ break ;
@@ -409,8 +417,10 @@ void array2sh_calculate_sht_matrix
409417 case WEIGHT_OPEN_DIPOLE : /* not supported */ break ;
410418 }
411419 break ;
412- case ARRAY_SPHERICAL :
413- switch (arraySpecs -> weightType ){
420+ }
421+ case ARRAY_SPHERICAL :{
422+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> arrayType ;
423+ switch (weightType ){
414424 case WEIGHT_OPEN_OMNI : sphModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_OPEN , 1.0 , pData -> bN ); break ;
415425 case WEIGHT_OPEN_CARD : sphModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_OPEN_DIRECTIONAL , 0.5 , pData -> bN ); break ;
416426 case WEIGHT_OPEN_DIPOLE : sphModalCoeffs (order , kr , HYBRID_BANDS , ARRAY_CONSTRUCTION_OPEN_DIRECTIONAL , 0.0 , pData -> bN ); break ;
@@ -433,6 +443,7 @@ void array2sh_calculate_sht_matrix
433443 break ;
434444 }
435445 break ;
446+ }
436447 }
437448
438449 /* direct inverse (only required for GUI) */
@@ -544,12 +555,14 @@ void array2sh_apply_diff_EQ(void* const hA2sh)
544555 }
545556
546557 /* Get theoretical diffuse coherence matrix */
547- switch (arraySpecs -> arrayType ){
558+ ARRAY2SH_ARRAY_TYPES arrayType = arraySpecs -> arrayType ;
559+ switch (arrayType ){
548560 case ARRAY_CYLINDRICAL :
549561 return ; /* Unsupported */
550562 break ;
551- case ARRAY_SPHERICAL :
552- switch (arraySpecs -> weightType ){
563+ case ARRAY_SPHERICAL :{
564+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> weightType ;
565+ switch (weightType ){
553566 case WEIGHT_RIGID_OMNI : /* Does not handle the case where kr != kR ! */
554567 sphDiffCohMtxTheory (array_order , (float * )sensorCoords_rad_local , arraySpecs -> Q , ARRAY_CONSTRUCTION_RIGID , 1.0 , kr , HYBRID_BANDS , dM_diffcoh );
555568 break ;
@@ -570,6 +583,7 @@ void array2sh_apply_diff_EQ(void* const hA2sh)
570583 break ;
571584 }
572585 break ;
586+ }
573587 }
574588
575589 /* determine band index for the spatial aliasing limit */
@@ -671,9 +685,11 @@ void array2sh_evaluateSHTfilters(void* hA2sh)
671685 kR [band ] = 2.0 * SAF_PId * (pData -> freqVector [band ])* (arraySpecs -> R )/pData -> c ;
672686 }
673687 H_array = malloc1d ((HYBRID_BANDS ) * (arraySpecs -> Q ) * 812 * sizeof (float_complex ));
674- switch (arraySpecs -> arrayType ){
675- case ARRAY_SPHERICAL :
676- switch (arraySpecs -> weightType ){
688+ ARRAY2SH_ARRAY_TYPES arrayType = arraySpecs -> arrayType ;
689+ switch (arrayType ){
690+ case ARRAY_SPHERICAL :{
691+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> weightType ;
692+ switch (weightType ){
677693 default :
678694 case WEIGHT_RIGID_OMNI :
679695 simulateSphArray (simOrder , kr , kR , HYBRID_BANDS , (float * )arraySpecs -> sensorCoords_rad , arraySpecs -> Q ,
@@ -701,9 +717,10 @@ void array2sh_evaluateSHTfilters(void* hA2sh)
701717 break ;
702718 }
703719 break ;
704-
705- case ARRAY_CYLINDRICAL :
706- switch (arraySpecs -> weightType ){
720+ }
721+ case ARRAY_CYLINDRICAL :{
722+ ARRAY2SH_WEIGHT_TYPES weightType = arraySpecs -> weightType ;
723+ switch (weightType ){
707724 default :
708725 case WEIGHT_RIGID_OMNI :
709726 case WEIGHT_RIGID_CARD :
@@ -717,6 +734,7 @@ void array2sh_evaluateSHTfilters(void* hA2sh)
717734 break ;
718735 }
719736 break ;
737+ }
720738 }
721739
722740 strcpy (pData -> progressBarText ,"Evaluating encoding performance" );
0 commit comments