2626#define MAKE_INCREMENT_T (x ) ((increment_t) (x))
2727
2828#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))
3030#define INV_FP_ONE (1.0 / FP_ONE)
3131
3232/* Customixe max channls from Kconfig. */
@@ -61,14 +61,14 @@ typedef struct
6161
6262 int coeff_half_len , index_inc ;
6363
64- double src_ratio , input_index ;
64+ fp_t src_ratio , input_index ;
6565
6666 coeff_t const * coeffs ;
6767
6868 int b_current , b_end , b_real_end , b_len ;
6969
7070 /* 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 ] ;
7272
7373 float * buffer ;
7474} SINC_FILTER ;
@@ -131,7 +131,7 @@ static SRC_STATE_VT sinc_mono_state_vt =
131131} ;
132132
133133static inline increment_t
134- double_to_fp (double x )
134+ double_to_fp (fp_t x )
135135{ return (increment_t ) (psf_lrint ((x ) * FP_ONE )) ;
136136} /* double_to_fp */
137137
@@ -150,7 +150,7 @@ fp_fraction_part (increment_t x)
150150{ return ((x ) & ((((increment_t ) 1 ) << SHIFT_BITS ) - 1 )) ;
151151} /* fp_fraction_part */
152152
153- static inline double
153+ static inline fp_t
154154fp_to_double (increment_t x )
155155{ return fp_fraction_part (x ) * INV_FP_ONE ;
156156} /* fp_to_double */
@@ -367,9 +367,9 @@ sinc_copy (SRC_STATE *state)
367367** Beware all ye who dare pass this point. There be dragons here.
368368*/
369369
370- static inline double
370+ static inline fp_t
371371calc_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 ;
373373 increment_t filter_index , max_filter_index ;
374374 int data_index , coeff_count , indx ;
375375
@@ -430,7 +430,7 @@ calc_output_single (SINC_FILTER *filter, increment_t increment, increment_t star
430430static SRC_ERROR
431431sinc_mono_vari_process (SRC_STATE * state , SRC_DATA * data )
432432{ 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 ;
434434 increment_t increment , start_filter_index ;
435435 int half_filter_chan_len , samples_in_hand ;
436436
@@ -521,8 +521,8 @@ sinc_mono_vari_process (SRC_STATE *state, SRC_DATA *data)
521521} /* sinc_mono_vari_process */
522522
523523static 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 ;
526526 increment_t filter_index , max_filter_index ;
527527 int data_index , coeff_count , indx ;
528528
@@ -586,7 +586,7 @@ calc_output_stereo (SINC_FILTER *filter, int channels, increment_t increment, in
586586SRC_ERROR
587587sinc_stereo_vari_process (SRC_STATE * state , SRC_DATA * data )
588588{ 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 ;
590590 increment_t increment , start_filter_index ;
591591 int half_filter_chan_len , samples_in_hand ;
592592
@@ -676,8 +676,8 @@ sinc_stereo_vari_process (SRC_STATE *state, SRC_DATA *data)
676676} /* sinc_stereo_vari_process */
677677
678678static 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 ;
681681 increment_t filter_index , max_filter_index ;
682682 int data_index , coeff_count , indx ;
683683
@@ -742,7 +742,7 @@ calc_output_quad (SINC_FILTER *filter, int channels, increment_t increment, incr
742742SRC_ERROR
743743sinc_quad_vari_process (SRC_STATE * state , SRC_DATA * data )
744744{ 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 ;
746746 increment_t increment , start_filter_index ;
747747 int half_filter_chan_len , samples_in_hand ;
748748
@@ -832,8 +832,8 @@ sinc_quad_vari_process (SRC_STATE *state, SRC_DATA *data)
832832} /* sinc_quad_vari_process */
833833
834834static 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 ;
837837 increment_t filter_index , max_filter_index ;
838838 int data_index , coeff_count , indx ;
839839
@@ -897,7 +897,7 @@ calc_output_hex (SINC_FILTER *filter, int channels, increment_t increment, incre
897897SRC_ERROR
898898sinc_hex_vari_process (SRC_STATE * state , SRC_DATA * data )
899899{ 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 ;
901901 increment_t increment , start_filter_index ;
902902 int half_filter_chan_len , samples_in_hand ;
903903
@@ -987,10 +987,10 @@ sinc_hex_vari_process (SRC_STATE *state, SRC_DATA *data)
987987} /* sinc_hex_vari_process */
988988
989989static 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 ;
992992 /* 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 ;
994994 increment_t filter_index , max_filter_index ;
995995 int data_index , coeff_count , indx ;
996996
@@ -1062,7 +1062,7 @@ calc_output_multi (SINC_FILTER *filter, increment_t increment, increment_t start
10621062static SRC_ERROR
10631063sinc_multichan_vari_process (SRC_STATE * state , SRC_DATA * data )
10641064{ 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 ;
10661066 increment_t increment , start_filter_index ;
10671067 int half_filter_chan_len , samples_in_hand ;
10681068
0 commit comments