Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/alexmarsev/libbs2b.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorboris_mikhaylov <boris_mikhaylov@bc0edfbe-c936-4687-b64d-f70bc3985e72>2009-03-24 11:08:39 +0300
committerboris_mikhaylov <boris_mikhaylov@bc0edfbe-c936-4687-b64d-f70bc3985e72>2009-03-24 11:08:39 +0300
commit61e8e665b6c665474c56939893826d6c2b9d4652 (patch)
tree5577663d0c725cd1420a63afc09d4013e20d8869
parent3dd53c440f45cf7a69869b76fe35a7744e0cb840 (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--ChangeLog3
-rw-r--r--src/bs2b.c303
-rw-r--r--src/bs2b.h27
-rw-r--r--src/bs2bclass.cpp45
-rw-r--r--src/bs2bclass.h45
5 files changed, 405 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e1b920..63d3c36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/src/bs2b.c b/src/bs2b.c
index a5ca601..f0b3293 100644
--- a/src/bs2b.c
+++ b/src/bs2b.c
@@ -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() */
diff --git a/src/bs2b.h b/src/bs2b.h
index d06224b..811351f 100644
--- a/src/bs2b.h
+++ b/src/bs2b.h
@@ -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