diff options
author | Marcus Müller <mmueller@gnuradio.org> | 2019-08-07 21:45:12 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2019-08-09 23:04:28 +0200 |
commit | f7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch) | |
tree | e09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gr-vocoder/lib/codec2_decode_ps_impl.cc | |
parent | 78431dc6941e3acc67c858277dfe4a0ed583643c (diff) |
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-vocoder/lib/codec2_decode_ps_impl.cc')
-rw-r--r-- | gr-vocoder/lib/codec2_decode_ps_impl.cc | 123 |
1 files changed, 60 insertions, 63 deletions
diff --git a/gr-vocoder/lib/codec2_decode_ps_impl.cc b/gr-vocoder/lib/codec2_decode_ps_impl.cc index c3c682bebd..e0140f06b8 100644 --- a/gr-vocoder/lib/codec2_decode_ps_impl.cc +++ b/gr-vocoder/lib/codec2_decode_ps_impl.cc @@ -35,78 +35,75 @@ extern "C" { #include <assert.h> namespace gr { - namespace vocoder { - - codec2_decode_ps::sptr - codec2_decode_ps::make(int mode) - { - CODEC2 *codec2; - int samples_per_frame, bits_per_frame; - - // Check the number of input samples and output bits per frame. - codec2 = codec2_create(mode); - samples_per_frame = codec2_samples_per_frame(codec2); - bits_per_frame = codec2_bits_per_frame(codec2); - codec2_destroy(codec2); - - return gnuradio::get_initial_sptr - (new codec2_decode_ps_impl(mode, samples_per_frame, bits_per_frame)); - } +namespace vocoder { +codec2_decode_ps::sptr codec2_decode_ps::make(int mode) +{ + CODEC2* codec2; + int samples_per_frame, bits_per_frame; - codec2_decode_ps_impl::codec2_decode_ps_impl (int mode, int samples_per_frame, int bits_per_frame) - : sync_interpolator("vocoder_codec2_decode_ps", - io_signature::make(1, 1, bits_per_frame * sizeof(char)), - io_signature::make (1, 1, sizeof(short)), - samples_per_frame), - d_frame_buf((bits_per_frame + 7) / 8, 0) - { - if((d_codec2 = codec2_create(mode)) == 0) - throw std::runtime_error("codec2_decode_ps_impl: codec2_create failed"); - d_samples_per_frame = samples_per_frame; - d_bits_per_frame = bits_per_frame; - d_bytes_per_frame = (bits_per_frame + 7) / 8; - } + // Check the number of input samples and output bits per frame. + codec2 = codec2_create(mode); + samples_per_frame = codec2_samples_per_frame(codec2); + bits_per_frame = codec2_bits_per_frame(codec2); + codec2_destroy(codec2); + + return gnuradio::get_initial_sptr( + new codec2_decode_ps_impl(mode, samples_per_frame, bits_per_frame)); +} - codec2_decode_ps_impl::~codec2_decode_ps_impl() - { - codec2_destroy(d_codec2); - } - int - codec2_decode_ps_impl::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) - { - const unsigned char *in = (const unsigned char*)input_items[0]; - short *out = (short *) output_items[0]; +codec2_decode_ps_impl::codec2_decode_ps_impl(int mode, + int samples_per_frame, + int bits_per_frame) + : sync_interpolator("vocoder_codec2_decode_ps", + io_signature::make(1, 1, bits_per_frame * sizeof(char)), + io_signature::make(1, 1, sizeof(short)), + samples_per_frame), + d_frame_buf((bits_per_frame + 7) / 8, 0) +{ + if ((d_codec2 = codec2_create(mode)) == 0) + throw std::runtime_error("codec2_decode_ps_impl: codec2_create failed"); + d_samples_per_frame = samples_per_frame; + d_bits_per_frame = bits_per_frame; + d_bytes_per_frame = (bits_per_frame + 7) / 8; +} + +codec2_decode_ps_impl::~codec2_decode_ps_impl() { codec2_destroy(d_codec2); } - assert((noutput_items % d_samples_per_frame) == 0); +int codec2_decode_ps_impl::work(int noutput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) +{ + const unsigned char* in = (const unsigned char*)input_items[0]; + short* out = (short*)output_items[0]; - for(int i = 0; i < noutput_items; i += d_samples_per_frame) { - pack_frame(in, &d_frame_buf[0]); - codec2_decode (d_codec2, out, const_cast<unsigned char*>(&d_frame_buf[0])); - in += d_bits_per_frame * sizeof (char); - out += d_samples_per_frame; - } + assert((noutput_items % d_samples_per_frame) == 0); - return noutput_items; + for (int i = 0; i < noutput_items; i += d_samples_per_frame) { + pack_frame(in, &d_frame_buf[0]); + codec2_decode(d_codec2, out, const_cast<unsigned char*>(&d_frame_buf[0])); + in += d_bits_per_frame * sizeof(char); + out += d_samples_per_frame; } - void - codec2_decode_ps_impl::pack_frame(const unsigned char *in_unpacked, unsigned char *out_packed) - { - memset((void *) &d_frame_buf[0], 0x00, d_bytes_per_frame); - - int byte_idx = 0, bit_idx = 0; - for(int k = 0; k < d_bits_per_frame; k++) { - out_packed[byte_idx] |= ((in_unpacked[k] & 0x01) << (7-bit_idx)); - bit_idx = (bit_idx + 1) % 8; - if (bit_idx == 0) { - byte_idx++; - } - } + return noutput_items; +} + +void codec2_decode_ps_impl::pack_frame(const unsigned char* in_unpacked, + unsigned char* out_packed) +{ + memset((void*)&d_frame_buf[0], 0x00, d_bytes_per_frame); + + int byte_idx = 0, bit_idx = 0; + for (int k = 0; k < d_bits_per_frame; k++) { + out_packed[byte_idx] |= ((in_unpacked[k] & 0x01) << (7 - bit_idx)); + bit_idx = (bit_idx + 1) % 8; + if (bit_idx == 0) { + byte_idx++; + } } +} - } /* namespace vocoder */ +} /* namespace vocoder */ } /* namespace gr */ |