26
26
#define MAKE_INCREMENT_T (x ) ((increment_t) (x))
27
27
28
28
#define SHIFT_BITS 12
29
- #define FP_ONE ((double ) (((increment_t) 1) << SHIFT_BITS))
29
+ #define FP_ONE ((fp_t ) (((increment_t) 1) << SHIFT_BITS))
30
30
#define INV_FP_ONE (1.0 / FP_ONE)
31
31
32
32
/* Customixe max channls from Kconfig. */
@@ -61,14 +61,14 @@ typedef struct
61
61
62
62
int coeff_half_len , index_inc ;
63
63
64
- double src_ratio , input_index ;
64
+ fp_t src_ratio , input_index ;
65
65
66
66
coeff_t const * coeffs ;
67
67
68
68
int b_current , b_end , b_real_end , b_len ;
69
69
70
70
/* Sure hope noone does more than 128 channels at once. */
71
- double left_calc [MAX_CHANNELS ], right_calc [MAX_CHANNELS ] ;
71
+ fp_t left_calc [MAX_CHANNELS ], right_calc [MAX_CHANNELS ] ;
72
72
73
73
float * buffer ;
74
74
} SINC_FILTER ;
@@ -131,7 +131,7 @@ static SRC_STATE_VT sinc_mono_state_vt =
131
131
} ;
132
132
133
133
static inline increment_t
134
- double_to_fp (double x )
134
+ double_to_fp (fp_t x )
135
135
{ return (increment_t ) (psf_lrint ((x ) * FP_ONE )) ;
136
136
} /* double_to_fp */
137
137
@@ -150,7 +150,7 @@ fp_fraction_part (increment_t x)
150
150
{ return ((x ) & ((((increment_t ) 1 ) << SHIFT_BITS ) - 1 )) ;
151
151
} /* fp_fraction_part */
152
152
153
- static inline double
153
+ static inline fp_t
154
154
fp_to_double (increment_t x )
155
155
{ return fp_fraction_part (x ) * INV_FP_ONE ;
156
156
} /* fp_to_double */
@@ -367,9 +367,9 @@ sinc_copy (SRC_STATE *state)
367
367
** Beware all ye who dare pass this point. There be dragons here.
368
368
*/
369
369
370
- static inline double
370
+ static inline fp_t
371
371
calc_output_single (SINC_FILTER * filter , increment_t increment , increment_t start_filter_index )
372
- { double fraction , left , right , icoeff ;
372
+ { fp_t fraction , left , right , icoeff ;
373
373
increment_t filter_index , max_filter_index ;
374
374
int data_index , coeff_count , indx ;
375
375
@@ -430,7 +430,7 @@ calc_output_single (SINC_FILTER *filter, increment_t increment, increment_t star
430
430
static SRC_ERROR
431
431
sinc_mono_vari_process (SRC_STATE * state , SRC_DATA * data )
432
432
{ SINC_FILTER * filter ;
433
- double input_index , src_ratio , count , float_increment , terminate , rem ;
433
+ fp_t input_index , src_ratio , count , float_increment , terminate , rem ;
434
434
increment_t increment , start_filter_index ;
435
435
int half_filter_chan_len , samples_in_hand ;
436
436
@@ -521,8 +521,8 @@ sinc_mono_vari_process (SRC_STATE *state, SRC_DATA *data)
521
521
} /* sinc_mono_vari_process */
522
522
523
523
static inline void
524
- calc_output_stereo (SINC_FILTER * filter , int channels , increment_t increment , increment_t start_filter_index , double scale , float * output )
525
- { double fraction , left [2 ], right [2 ], icoeff ;
524
+ calc_output_stereo (SINC_FILTER * filter , int channels , increment_t increment , increment_t start_filter_index , fp_t scale , float * output )
525
+ { fp_t fraction , left [2 ], right [2 ], icoeff ;
526
526
increment_t filter_index , max_filter_index ;
527
527
int data_index , coeff_count , indx ;
528
528
@@ -586,7 +586,7 @@ calc_output_stereo (SINC_FILTER *filter, int channels, increment_t increment, in
586
586
SRC_ERROR
587
587
sinc_stereo_vari_process (SRC_STATE * state , SRC_DATA * data )
588
588
{ SINC_FILTER * filter ;
589
- double input_index , src_ratio , count , float_increment , terminate , rem ;
589
+ fp_t input_index , src_ratio , count , float_increment , terminate , rem ;
590
590
increment_t increment , start_filter_index ;
591
591
int half_filter_chan_len , samples_in_hand ;
592
592
@@ -676,8 +676,8 @@ sinc_stereo_vari_process (SRC_STATE *state, SRC_DATA *data)
676
676
} /* sinc_stereo_vari_process */
677
677
678
678
static inline void
679
- calc_output_quad (SINC_FILTER * filter , int channels , increment_t increment , increment_t start_filter_index , double scale , float * output )
680
- { double fraction , left [4 ], right [4 ], icoeff ;
679
+ calc_output_quad (SINC_FILTER * filter , int channels , increment_t increment , increment_t start_filter_index , fp_t scale , float * output )
680
+ { fp_t fraction , left [4 ], right [4 ], icoeff ;
681
681
increment_t filter_index , max_filter_index ;
682
682
int data_index , coeff_count , indx ;
683
683
@@ -742,7 +742,7 @@ calc_output_quad (SINC_FILTER *filter, int channels, increment_t increment, incr
742
742
SRC_ERROR
743
743
sinc_quad_vari_process (SRC_STATE * state , SRC_DATA * data )
744
744
{ SINC_FILTER * filter ;
745
- double input_index , src_ratio , count , float_increment , terminate , rem ;
745
+ fp_t input_index , src_ratio , count , float_increment , terminate , rem ;
746
746
increment_t increment , start_filter_index ;
747
747
int half_filter_chan_len , samples_in_hand ;
748
748
@@ -832,8 +832,8 @@ sinc_quad_vari_process (SRC_STATE *state, SRC_DATA *data)
832
832
} /* sinc_quad_vari_process */
833
833
834
834
static inline void
835
- calc_output_hex (SINC_FILTER * filter , int channels , increment_t increment , increment_t start_filter_index , double scale , float * output )
836
- { double fraction , left [6 ], right [6 ], icoeff ;
835
+ calc_output_hex (SINC_FILTER * filter , int channels , increment_t increment , increment_t start_filter_index , fp_t scale , float * output )
836
+ { fp_t fraction , left [6 ], right [6 ], icoeff ;
837
837
increment_t filter_index , max_filter_index ;
838
838
int data_index , coeff_count , indx ;
839
839
@@ -897,7 +897,7 @@ calc_output_hex (SINC_FILTER *filter, int channels, increment_t increment, incre
897
897
SRC_ERROR
898
898
sinc_hex_vari_process (SRC_STATE * state , SRC_DATA * data )
899
899
{ SINC_FILTER * filter ;
900
- double input_index , src_ratio , count , float_increment , terminate , rem ;
900
+ fp_t input_index , src_ratio , count , float_increment , terminate , rem ;
901
901
increment_t increment , start_filter_index ;
902
902
int half_filter_chan_len , samples_in_hand ;
903
903
@@ -987,10 +987,10 @@ sinc_hex_vari_process (SRC_STATE *state, SRC_DATA *data)
987
987
} /* sinc_hex_vari_process */
988
988
989
989
static inline void
990
- calc_output_multi (SINC_FILTER * filter , increment_t increment , increment_t start_filter_index , int channels , double scale , float * output )
991
- { double fraction , icoeff ;
990
+ calc_output_multi (SINC_FILTER * filter , increment_t increment , increment_t start_filter_index , int channels , fp_t scale , float * output )
991
+ { fp_t fraction , icoeff ;
992
992
/* The following line is 1999 ISO Standard C. If your compiler complains, get a better compiler. */
993
- double * left , * right ;
993
+ fp_t * left , * right ;
994
994
increment_t filter_index , max_filter_index ;
995
995
int data_index , coeff_count , indx ;
996
996
@@ -1062,7 +1062,7 @@ calc_output_multi (SINC_FILTER *filter, increment_t increment, increment_t start
1062
1062
static SRC_ERROR
1063
1063
sinc_multichan_vari_process (SRC_STATE * state , SRC_DATA * data )
1064
1064
{ SINC_FILTER * filter ;
1065
- double input_index , src_ratio , count , float_increment , terminate , rem ;
1065
+ fp_t input_index , src_ratio , count , float_increment , terminate , rem ;
1066
1066
increment_t increment , start_filter_index ;
1067
1067
int half_filter_chan_len , samples_in_hand ;
1068
1068
0 commit comments