From eb11b05298dde8df750e903fe7d791050666278d Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Tue, 15 Nov 2011 09:32:05 -0800 Subject: convert: added generic conversion for sc8 wire -> sc8 host --- host/lib/convert/convert_common.hpp | 14 ++++++++++++++ host/lib/convert/gen_convert_general.py | 11 +++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) (limited to 'host/lib') diff --git a/host/lib/convert/convert_common.hpp b/host/lib/convert/convert_common.hpp index cc287114a..699d6301b 100644 --- a/host/lib/convert/convert_common.hpp +++ b/host/lib/convert/convert_common.hpp @@ -134,6 +134,20 @@ static UHD_INLINE fc64_t item32_sc16_to_fc64(item32_t item, double scale_factor) ); } +/*********************************************************************** + * Convert items32 sc8 buffer to complex char + **********************************************************************/ +static UHD_INLINE void item32_sc8_to_sc8(item32_t item, sc8_t &out0, sc8_t &out1, double){ + out0 = sc8_t( + boost::int8_t(item >> 8), + boost::int8_t(item >> 0) + ); + out1 = sc8_t( + boost::int8_t(item >> 24), + boost::int8_t(item >> 16) + ); +} + /*********************************************************************** * Convert items32 sc8 buffer to complex short **********************************************************************/ diff --git a/host/lib/convert/gen_convert_general.py b/host/lib/convert/gen_convert_general.py index a1bc7aaaf..b8d64aa4b 100644 --- a/host/lib/convert/gen_convert_general.py +++ b/host/lib/convert/gen_convert_general.py @@ -48,7 +48,7 @@ DECLARE_CONVERTER(sc16_item32_$(end), 1, item32, 1, PRIORITY_GENERAL){ } """ -TMPL_CONV_GEN2_COMPLEX = """ +TMPL_CONV_GEN2_SC16 = """ DECLARE_CONVERTER($(cpu_type), 1, sc16_item32_$(end), 1, PRIORITY_GENERAL){ const $(cpu_type)_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); @@ -66,7 +66,9 @@ DECLARE_CONVERTER(sc16_item32_$(end), 1, $(cpu_type), 1, PRIORITY_GENERAL){ output[i] = item32_sc16_to_$(cpu_type)($(to_host)(input[i]), scale_factor); } } +""" +TMPL_CONV_GEN2_SC8 = """ DECLARE_CONVERTER(sc8_item32_$(end), 1, $(cpu_type), 1, PRIORITY_GENERAL){ const item32_t *input = reinterpret_cast(size_t(inputs[0]) & ~0x3); $(cpu_type)_t *output = reinterpret_cast<$(cpu_type)_t *>(outputs[0]); @@ -160,7 +162,12 @@ if __name__ == '__main__': ): for cpu_type in 'fc64', 'fc32', 'sc16': output += parse_tmpl( - TMPL_CONV_GEN2_COMPLEX, + TMPL_CONV_GEN2_SC16, + end=end, to_host=to_host, to_wire=to_wire, cpu_type=cpu_type + ) + for cpu_type in 'fc64', 'fc32', 'sc16', 'sc8': + output += parse_tmpl( + TMPL_CONV_GEN2_SC8, end=end, to_host=to_host, to_wire=to_wire, cpu_type=cpu_type ) output += parse_tmpl( -- cgit v1.2.3