The checks from the new clang-tidy file are applied to the source tree
using:
$ find . -name "*.cpp" | sort -u | xargs \
--max-procs 8 --max-args 1 clang-tidy --format-style=file \
--fix -p /path/to/compile_commands.json
Create missing sc12-sc16 and sc16-sc12 type converters. To avoid
replicating the full sc12 converter class object, overload the
converter calls with C++11 std::enable_if metafunctions. When
used with std::is_floating and std::is_integral templates, this
allow a single template interface with compile time function
selection and static type checking.
Note the below std::enable_if interface is confusing, but quite
effective in this case.
typename enable_if<is_floating_point<type>::value>::type* = NULL
Fixes: #966
Related: #967, #1721
- Also removes all references to boost/cstdint.hpp and replaces it with
stdint.h (The 'correct' replacement would be <cstdint>, but not all of our
compilers support that).
This patch addresses issue #648 "B200: TX with SC12 format and MIMO".
The observed MIMO header corruption was caused by overwriting the
end of the packed 12-bit sample output buffer. The overwrite was due to
the converter call always writing out 4 complex samples even if less
than 4 samples were available. The extra samples would corrupt data with
zero padding.
Avoid the overwrite condition by only writing the minimum number of
32-bit lines necessary rather than the entire 12 byte struct.
Samples 32-bit lines
1 1
2 2
3 3
4 3
Signed-off-by: Tom Tsou <tom@tsou.cc>