diff options
author | boris_mikhaylov <boris_mikhaylov@bc0edfbe-c936-4687-b64d-f70bc3985e72> | 2009-03-24 11:08:39 +0300 |
---|---|---|
committer | boris_mikhaylov <boris_mikhaylov@bc0edfbe-c936-4687-b64d-f70bc3985e72> | 2009-03-24 11:08:39 +0300 |
commit | 61e8e665b6c665474c56939893826d6c2b9d4652 (patch) | |
tree | 5577663d0c725cd1420a63afc09d4013e20d8869 | |
parent | 3dd53c440f45cf7a69869b76fe35a7744e0cb840 (diff) |
Added unsigned 16/24/32 integer handling.
git-svn-id: svn://svn.code.sf.net/p/bs2b/code/trunk/libbs2b@85 bc0edfbe-c936-4687-b64d-f70bc3985e72
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/bs2b.c | 303 | ||||
-rw-r--r-- | src/bs2b.h | 27 | ||||
-rw-r--r-- | src/bs2bclass.cpp | 45 | ||||
-rw-r--r-- | src/bs2bclass.h | 45 |
5 files changed, 405 insertions, 18 deletions
@@ -1,3 +1,6 @@ +2009-03-24 Boris Mikhaylov <http://www.tmn.ru/~bor> + * Added unsigned 16/24/32 integer handling. + 2009-03-23 Boris Mikhaylov <http://www.tmn.ru/~bor> * Normalization of integer samples are removed. * Added more switches to bs2bstream. @@ -538,6 +538,33 @@ void bs2b_cross_feed_s32( t_bs2bdp bs2bdp, int32_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s32() */ +void bs2b_cross_feed_u32( t_bs2bdp bs2bdp, uint32_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + sample_d[ 0 ] = ( double )( ( int32_t )( sample[ 0 ] ^ 0x80000000 ) ); + sample_d[ 1 ] = ( double )( ( int32_t )( sample[ 1 ] ^ 0x80000000 ) ); + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT32_VALUE ) sample_d[ 0 ] = MAX_INT32_VALUE; + if( sample_d[ 0 ] < MIN_INT32_VALUE ) sample_d[ 0 ] = MIN_INT32_VALUE; + if( sample_d[ 1 ] > MAX_INT32_VALUE ) sample_d[ 1 ] = MAX_INT32_VALUE; + if( sample_d[ 1 ] < MIN_INT32_VALUE ) sample_d[ 1 ] = MIN_INT32_VALUE; + + sample[ 0 ] = ( ( uint32_t )sample_d[ 0 ] ) ^ 0x80000000; + sample[ 1 ] = ( ( uint32_t )sample_d[ 1 ] ) ^ 0x80000000; + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u32() */ + void bs2b_cross_feed_s32be( t_bs2bdp bs2bdp, int32_t *sample, int n ) { double sample_d[ 2 ]; @@ -575,6 +602,43 @@ void bs2b_cross_feed_s32be( t_bs2bdp bs2bdp, int32_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s32be() */ +void bs2b_cross_feed_u32be( t_bs2bdp bs2bdp, uint32_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + #ifndef WORDS_BIGENDIAN + int32swap( sample ); + int32swap( sample + 1 ); + #endif + + sample_d[ 0 ] = ( double )( ( int32_t )( sample[ 0 ] ^ 0x80000000 ) ); + sample_d[ 1 ] = ( double )( ( int32_t )( sample[ 1 ] ^ 0x80000000 ) ); + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT32_VALUE ) sample_d[ 0 ] = MAX_INT32_VALUE; + if( sample_d[ 0 ] < MIN_INT32_VALUE ) sample_d[ 0 ] = MIN_INT32_VALUE; + if( sample_d[ 1 ] > MAX_INT32_VALUE ) sample_d[ 1 ] = MAX_INT32_VALUE; + if( sample_d[ 1 ] < MIN_INT32_VALUE ) sample_d[ 1 ] = MIN_INT32_VALUE; + + sample[ 0 ] = ( ( uint32_t )sample_d[ 0 ] ) ^ 0x80000000; + sample[ 1 ] = ( ( uint32_t )sample_d[ 1 ] ) ^ 0x80000000; + + #ifndef WORDS_BIGENDIAN + int32swap( sample ); + int32swap( sample + 1 ); + #endif + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u32be() */ + void bs2b_cross_feed_s32le( t_bs2bdp bs2bdp, int32_t *sample, int n ) { double sample_d[ 2 ]; @@ -612,6 +676,43 @@ void bs2b_cross_feed_s32le( t_bs2bdp bs2bdp, int32_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s32le() */ +void bs2b_cross_feed_u32le( t_bs2bdp bs2bdp, uint32_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + #ifdef WORDS_BIGENDIAN + int32swap( sample ); + int32swap( sample + 1 ); + #endif + + sample_d[ 0 ] = ( double )( ( int32_t )( sample[ 0 ] ^ 0x80000000 ) ); + sample_d[ 1 ] = ( double )( ( int32_t )( sample[ 1 ] ^ 0x80000000 ) ); + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT32_VALUE ) sample_d[ 0 ] = MAX_INT32_VALUE; + if( sample_d[ 0 ] < MIN_INT32_VALUE ) sample_d[ 0 ] = MIN_INT32_VALUE; + if( sample_d[ 1 ] > MAX_INT32_VALUE ) sample_d[ 1 ] = MAX_INT32_VALUE; + if( sample_d[ 1 ] < MIN_INT32_VALUE ) sample_d[ 1 ] = MIN_INT32_VALUE; + + sample[ 0 ] = ( ( uint32_t )sample_d[ 0 ] ) ^ 0x80000000; + sample[ 1 ] = ( ( uint32_t )sample_d[ 1 ] ) ^ 0x80000000; + + #ifdef WORDS_BIGENDIAN + int32swap( sample ); + int32swap( sample + 1 ); + #endif + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u32le() */ + void bs2b_cross_feed_s16( t_bs2bdp bs2bdp, int16_t *sample, int n ) { double sample_d[ 2 ]; @@ -639,6 +740,33 @@ void bs2b_cross_feed_s16( t_bs2bdp bs2bdp, int16_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s16() */ +void bs2b_cross_feed_u16( t_bs2bdp bs2bdp, uint16_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + sample_d[ 0 ] = ( double )( ( int16_t )( sample[ 0 ] ^ 0x8000 ) ); + sample_d[ 1 ] = ( double )( ( int16_t )( sample[ 1 ] ^ 0x8000 ) ); + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT16_VALUE ) sample_d[ 0 ] = MAX_INT16_VALUE; + if( sample_d[ 0 ] < MIN_INT16_VALUE ) sample_d[ 0 ] = MIN_INT16_VALUE; + if( sample_d[ 1 ] > MAX_INT16_VALUE ) sample_d[ 1 ] = MAX_INT16_VALUE; + if( sample_d[ 1 ] < MIN_INT16_VALUE ) sample_d[ 1 ] = MIN_INT16_VALUE; + + sample[ 0 ] = ( ( uint16_t )sample_d[ 0 ] ) ^ 0x8000; + sample[ 1 ] = ( ( uint16_t )sample_d[ 1 ] ) ^ 0x8000; + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u16() */ + void bs2b_cross_feed_s16be( t_bs2bdp bs2bdp, int16_t *sample, int n ) { double sample_d[ 2 ]; @@ -676,6 +804,43 @@ void bs2b_cross_feed_s16be( t_bs2bdp bs2bdp, int16_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s16be() */ +void bs2b_cross_feed_u16be( t_bs2bdp bs2bdp, uint16_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + #ifndef WORDS_BIGENDIAN + int16swap( sample ); + int16swap( sample + 1 ); + #endif + + sample_d[ 0 ] = ( double )( ( int16_t )( sample[ 0 ] ^ 0x8000 ) ); + sample_d[ 1 ] = ( double )( ( int16_t )( sample[ 1 ] ^ 0x8000 ) ); + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT16_VALUE ) sample_d[ 0 ] = MAX_INT16_VALUE; + if( sample_d[ 0 ] < MIN_INT16_VALUE ) sample_d[ 0 ] = MIN_INT16_VALUE; + if( sample_d[ 1 ] > MAX_INT16_VALUE ) sample_d[ 1 ] = MAX_INT16_VALUE; + if( sample_d[ 1 ] < MIN_INT16_VALUE ) sample_d[ 1 ] = MIN_INT16_VALUE; + + sample[ 0 ] = ( ( uint16_t )sample_d[ 0 ] ) ^ 0x8000; + sample[ 1 ] = ( ( uint16_t )sample_d[ 1 ] ) ^ 0x8000; + + #ifndef WORDS_BIGENDIAN + int16swap( sample ); + int16swap( sample + 1 ); + #endif + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u16be() */ + void bs2b_cross_feed_s16le( t_bs2bdp bs2bdp, int16_t *sample, int n ) { double sample_d[ 2 ]; @@ -713,6 +878,43 @@ void bs2b_cross_feed_s16le( t_bs2bdp bs2bdp, int16_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s16le() */ +void bs2b_cross_feed_u16le( t_bs2bdp bs2bdp, uint16_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + #ifdef WORDS_BIGENDIAN + int16swap( sample ); + int16swap( sample + 1 ); + #endif + + sample_d[ 0 ] = ( double )( ( int16_t )( sample[ 0 ] ^ 0x8000 ) ); + sample_d[ 1 ] = ( double )( ( int16_t )( sample[ 1 ] ^ 0x8000 ) ); + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT16_VALUE ) sample_d[ 0 ] = MAX_INT16_VALUE; + if( sample_d[ 0 ] < MIN_INT16_VALUE ) sample_d[ 0 ] = MIN_INT16_VALUE; + if( sample_d[ 1 ] > MAX_INT16_VALUE ) sample_d[ 1 ] = MAX_INT16_VALUE; + if( sample_d[ 1 ] < MIN_INT16_VALUE ) sample_d[ 1 ] = MIN_INT16_VALUE; + + sample[ 0 ] = ( ( uint16_t )sample_d[ 0 ] ) ^ 0x8000; + sample[ 1 ] = ( ( uint16_t )sample_d[ 1 ] ) ^ 0x8000; + + #ifdef WORDS_BIGENDIAN + int16swap( sample ); + int16swap( sample + 1 ); + #endif + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u16le() */ + void bs2b_cross_feed_s8( t_bs2bdp bs2bdp, int8_t *sample, int n ) { double sample_d[ 2 ]; @@ -794,6 +996,33 @@ void bs2b_cross_feed_s24( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s24() */ +void bs2b_cross_feed_u24( t_bs2bdp bs2bdp, bs2b_uint24_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + sample_d[ 0 ] = uint242double( sample ) - MAX_INT24_VALUE - 1.0; + sample_d[ 1 ] = uint242double( sample + 1 ) - MAX_INT24_VALUE - 1.0; + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT24_VALUE ) sample_d[ 0 ] = MAX_INT24_VALUE; + if( sample_d[ 0 ] < MIN_INT24_VALUE ) sample_d[ 0 ] = MIN_INT24_VALUE; + if( sample_d[ 1 ] > MAX_INT24_VALUE ) sample_d[ 1 ] = MAX_INT24_VALUE; + if( sample_d[ 1 ] < MIN_INT24_VALUE ) sample_d[ 1 ] = MIN_INT24_VALUE; + + double2uint24( sample_d[ 0 ] + MAX_INT24_VALUE + 1.0 , sample ); + double2uint24( sample_d[ 1 ] + MAX_INT24_VALUE + 1.0 , sample + 1 ); + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u24() */ + void bs2b_cross_feed_s24be( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ) { double sample_d[ 2 ]; @@ -831,6 +1060,43 @@ void bs2b_cross_feed_s24be( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ) } /* if */ } /* bs2b_cross_feed_s24be() */ +void bs2b_cross_feed_u24be( t_bs2bdp bs2bdp, bs2b_uint24_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + #ifndef WORDS_BIGENDIAN + int24swap( ( bs2b_uint24_t * )sample ); + int24swap( ( bs2b_uint24_t * )( sample + 1 ) ); + #endif + + sample_d[ 0 ] = uint242double( sample ) - MAX_INT24_VALUE - 1.0; + sample_d[ 1 ] = uint242double( sample + 1 ) - MAX_INT24_VALUE - 1.0; + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT24_VALUE ) sample_d[ 0 ] = MAX_INT24_VALUE; + if( sample_d[ 0 ] < MIN_INT24_VALUE ) sample_d[ 0 ] = MIN_INT24_VALUE; + if( sample_d[ 1 ] > MAX_INT24_VALUE ) sample_d[ 1 ] = MAX_INT24_VALUE; + if( sample_d[ 1 ] < MIN_INT24_VALUE ) sample_d[ 1 ] = MIN_INT24_VALUE; + + double2uint24( sample_d[ 0 ] + MAX_INT24_VALUE + 1.0 , sample ); + double2uint24( sample_d[ 1 ] + MAX_INT24_VALUE + 1.0 , sample + 1 ); + + #ifndef WORDS_BIGENDIAN + int24swap( ( bs2b_uint24_t * )sample ); + int24swap( ( bs2b_uint24_t * )( sample + 1 ) ); + #endif + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u24be() */ + void bs2b_cross_feed_s24le( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ) { double sample_d[ 2 ]; @@ -867,3 +1133,40 @@ void bs2b_cross_feed_s24le( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ) } /* while */ } /* if */ } /* bs2b_cross_feed_s24le() */ + +void bs2b_cross_feed_u24le( t_bs2bdp bs2bdp, bs2b_uint24_t *sample, int n ) +{ + double sample_d[ 2 ]; + + if( n > 0 ) + { + while( n-- ) + { + #ifdef WORDS_BIGENDIAN + int24swap( ( bs2b_uint24_t * )sample ); + int24swap( ( bs2b_uint24_t * )( sample + 1 ) ); + #endif + + sample_d[ 0 ] = uint242double( sample ) - MAX_INT24_VALUE - 1.0; + sample_d[ 1 ] = uint242double( sample + 1 ) - MAX_INT24_VALUE - 1.0; + + cross_feed_d( bs2bdp, sample_d ); + + /* Clipping of overloaded samples */ + if( sample_d[ 0 ] > MAX_INT24_VALUE ) sample_d[ 0 ] = MAX_INT24_VALUE; + if( sample_d[ 0 ] < MIN_INT24_VALUE ) sample_d[ 0 ] = MIN_INT24_VALUE; + if( sample_d[ 1 ] > MAX_INT24_VALUE ) sample_d[ 1 ] = MAX_INT24_VALUE; + if( sample_d[ 1 ] < MIN_INT24_VALUE ) sample_d[ 1 ] = MIN_INT24_VALUE; + + double2uint24( sample_d[ 0 ] + MAX_INT24_VALUE + 1.0 , sample ); + double2uint24( sample_d[ 1 ] + MAX_INT24_VALUE + 1.0 , sample + 1 ); + + #ifdef WORDS_BIGENDIAN + int24swap( ( bs2b_uint24_t * )sample ); + int24swap( ( bs2b_uint24_t * )( sample + 1 ) ); + #endif + + sample += 2; + } /* while */ + } /* if */ +} /* bs2b_cross_feed_u24le() */ @@ -127,21 +127,39 @@ void bs2b_cross_feed_fle( t_bs2bdp bs2bdp, float *sample, int n ); /* sample poits to 32bit signed integers native endians */ void bs2b_cross_feed_s32( t_bs2bdp bs2bdp, int32_t *sample, int n ); +/* sample poits to 32bit unsigned integers native endians */ +void bs2b_cross_feed_u32( t_bs2bdp bs2bdp, uint32_t *sample, int n ); + /* sample poits to 32bit signed integers big endians */ void bs2b_cross_feed_s32be( t_bs2bdp bs2bdp, int32_t *sample, int n ); +/* sample poits to 32bit unsigned integers big endians */ +void bs2b_cross_feed_u32be( t_bs2bdp bs2bdp, uint32_t *sample, int n ); + /* sample poits to 32bit signed integers little endians */ void bs2b_cross_feed_s32le( t_bs2bdp bs2bdp, int32_t *sample, int n ); +/* sample poits to 32bit unsigned integers little endians */ +void bs2b_cross_feed_u32le( t_bs2bdp bs2bdp, uint32_t *sample, int n ); + /* sample poits to 16bit signed integers native endians */ void bs2b_cross_feed_s16( t_bs2bdp bs2bdp, int16_t *sample, int n ); +/* sample poits to 16bit unsigned integers native endians */ +void bs2b_cross_feed_u16( t_bs2bdp bs2bdp, uint16_t *sample, int n ); + /* sample poits to 16bit signed integers big endians */ void bs2b_cross_feed_s16be( t_bs2bdp bs2bdp, int16_t *sample, int n ); +/* sample poits to 16bit unsigned integers big endians */ +void bs2b_cross_feed_u16be( t_bs2bdp bs2bdp, uint16_t *sample, int n ); + /* sample poits to 16bit signed integers little endians */ void bs2b_cross_feed_s16le( t_bs2bdp bs2bdp, int16_t *sample, int n ); +/* sample poits to 16bit unsigned integers little endians */ +void bs2b_cross_feed_u16le( t_bs2bdp bs2bdp, uint16_t *sample, int n ); + /* sample poits to 8bit signed integers */ void bs2b_cross_feed_s8( t_bs2bdp bs2bdp, int8_t *sample, int n ); @@ -151,12 +169,21 @@ void bs2b_cross_feed_u8( t_bs2bdp bs2bdp, uint8_t *sample, int n ); /* sample poits to 24bit signed integers native endians */ void bs2b_cross_feed_s24( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ); +/* sample poits to 24bit unsigned integers native endians */ +void bs2b_cross_feed_u24( t_bs2bdp bs2bdp, bs2b_uint24_t *sample, int n ); + /* sample poits to 24bit signed integers be endians */ void bs2b_cross_feed_s24be( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ); +/* sample poits to 24bit unsigned integers be endians */ +void bs2b_cross_feed_u24be( t_bs2bdp bs2bdp, bs2b_uint24_t *sample, int n ); + /* sample poits to 24bit signed integers little endians */ void bs2b_cross_feed_s24le( t_bs2bdp bs2bdp, bs2b_int24_t *sample, int n ); +/* sample poits to 24bit unsigned integers little endians */ +void bs2b_cross_feed_u24le( t_bs2bdp bs2bdp, bs2b_uint24_t *sample, int n ); + #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ diff --git a/src/bs2bclass.cpp b/src/bs2bclass.cpp index 2158d9e..72f3f48 100644 --- a/src/bs2bclass.cpp +++ b/src/bs2bclass.cpp @@ -108,31 +108,61 @@ void bs2b_base::cross_feed( int32_t *sample, int n ) bs2b_cross_feed_s32( bs2bdp, sample, n ); } +void bs2b_base::cross_feed( uint32_t *sample, int n ) +{ + bs2b_cross_feed_u32( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed_be( int32_t *sample, int n ) { bs2b_cross_feed_s32be( bs2bdp, sample, n ); } +void bs2b_base::cross_feed_be( uint32_t *sample, int n ) +{ + bs2b_cross_feed_u32be( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed_le( int32_t *sample, int n ) { bs2b_cross_feed_s32le( bs2bdp, sample, n ); } +void bs2b_base::cross_feed_le( uint32_t *sample, int n ) +{ + bs2b_cross_feed_u32le( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed( int16_t *sample, int n ) { bs2b_cross_feed_s16( bs2bdp, sample, n ); } +void bs2b_base::cross_feed( uint16_t *sample, int n ) +{ + bs2b_cross_feed_u16( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed_be( int16_t *sample, int n ) { bs2b_cross_feed_s16be( bs2bdp, sample, n ); } +void bs2b_base::cross_feed_be( uint16_t *sample, int n ) +{ + bs2b_cross_feed_u16be( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed_le( int16_t *sample, int n ) { bs2b_cross_feed_s16le( bs2bdp, sample, n ); } +void bs2b_base::cross_feed_le( uint16_t *sample, int n ) +{ + bs2b_cross_feed_u16le( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed( int8_t *sample, int n ) { bs2b_cross_feed_s8( bs2bdp, sample, n ); @@ -148,12 +178,27 @@ void bs2b_base::cross_feed( bs2b_int24_t *sample, int n ) bs2b_cross_feed_s24( bs2bdp, sample, n ); } +void bs2b_base::cross_feed( bs2b_uint24_t *sample, int n ) +{ + bs2b_cross_feed_u24( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed_be( bs2b_int24_t *sample, int n ) { bs2b_cross_feed_s24be( bs2bdp, sample, n ); } +void bs2b_base::cross_feed_be( bs2b_uint24_t *sample, int n ) +{ + bs2b_cross_feed_u24be( bs2bdp, sample, n ); +} + void bs2b_base::cross_feed_le( bs2b_int24_t *sample, int n ) { bs2b_cross_feed_s24le( bs2bdp, sample, n ); } + +void bs2b_base::cross_feed_le( bs2b_uint24_t *sample, int n ) +{ + bs2b_cross_feed_u24le( bs2bdp, sample, n ); +} diff --git a/src/bs2bclass.h b/src/bs2bclass.h index 8ec25c2..57fe17f 100644 --- a/src/bs2bclass.h +++ b/src/bs2bclass.h @@ -45,29 +45,38 @@ public: char const *runtime_version( void ); uint32_t runtime_version_int( void ); - void cross_feed( double *sample, int n = 1 ); - void cross_feed( float *sample, int n = 1 ); - void cross_feed( int32_t *sample, int n = 1 ); - void cross_feed( int16_t *sample, int n = 1 ); - void cross_feed( int8_t *sample, int n = 1 ); - void cross_feed( uint8_t *sample, int n = 1 ); + void cross_feed( double *sample, int n = 1 ); + void cross_feed( float *sample, int n = 1 ); + void cross_feed( int32_t *sample, int n = 1 ); + void cross_feed( uint32_t *sample, int n = 1 ); + void cross_feed( int16_t *sample, int n = 1 ); + void cross_feed( uint16_t *sample, int n = 1 ); + void cross_feed( int8_t *sample, int n = 1 ); + void cross_feed( uint8_t *sample, int n = 1 ); void cross_feed( bs2b_int24_t *sample, int n = 1 ); + void cross_feed( bs2b_uint24_t *sample, int n = 1 ); - void cross_feed_be( double *sample, int n = 1 ); - void cross_feed_be( float *sample, int n = 1 ); - void cross_feed_be( int32_t *sample, int n = 1 ); - void cross_feed_be( int16_t *sample, int n = 1 ); - void cross_feed_be( int8_t *sample, int n = 1 ); - void cross_feed_be( uint8_t *sample, int n = 1 ); + void cross_feed_be( double *sample, int n = 1 ); + void cross_feed_be( float *sample, int n = 1 ); + void cross_feed_be( int32_t *sample, int n = 1 ); + void cross_feed_be( uint32_t *sample, int n = 1 ); + void cross_feed_be( int16_t *sample, int n = 1 ); + void cross_feed_be( uint16_t *sample, int n = 1 ); + void cross_feed_be( int8_t *sample, int n = 1 ); + void cross_feed_be( uint8_t *sample, int n = 1 ); void cross_feed_be( bs2b_int24_t *sample, int n = 1 ); + void cross_feed_be( bs2b_uint24_t *sample, int n = 1 ); - void cross_feed_le( double *sample, int n = 1 ); - void cross_feed_le( float *sample, int n = 1 ); - void cross_feed_le( int32_t *sample, int n = 1 ); - void cross_feed_le( int16_t *sample, int n = 1 ); - void cross_feed_le( int8_t *sample, int n = 1 ); - void cross_feed_le( uint8_t *sample, int n = 1 ); + void cross_feed_le( double *sample, int n = 1 ); + void cross_feed_le( float *sample, int n = 1 ); + void cross_feed_le( int32_t *sample, int n = 1 ); + void cross_feed_le( uint32_t *sample, int n = 1 ); + void cross_feed_le( int16_t *sample, int n = 1 ); + void cross_feed_le( uint16_t *sample, int n = 1 ); + void cross_feed_le( int8_t *sample, int n = 1 ); + void cross_feed_le( uint8_t *sample, int n = 1 ); void cross_feed_le( bs2b_int24_t *sample, int n = 1 ); + void cross_feed_le( bs2b_uint24_t *sample, int n = 1 ); }; // class bs2b_base #endif // BS2BCLASS_H |