The LUT changes in 2e7d343fed inadvertently started interpreting
samples as unsigned. This change puts it back to signed (and fixes an
outdated comment).
From 20db66e66f3281b74b8995c8b331f0c9dd0bfb00 Mon Sep 17 00:00:00 2001
From: Mike Walters <[email protected]>
Date: Wed, 5 Aug 2020 21:06:25 +0100
Subject: [PATCH] HackRF: fix hackrf_source signedness
The LUT changes in 2e7d343fed inadvertently started interpreting samples
as unsigned. This change puts it back to signed (and fixes an outdated
comment).
---
lib/hackrf/hackrf_common.h | 2 +-
lib/hackrf/hackrf_source_c.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/hackrf/hackrf_common.h b/lib/hackrf/hackrf_common.h
index ea093b9680..bb553c3bc6 100644
--- a/lib/hackrf/hackrf_common.h
+++ b/lib/hackrf/hackrf_common.h
@@ -34,7 +34,7 @@
#define BUF_LEN (16 * 32 * 512) /* must be multiple of 512 */
#define BUF_NUM 15
-#define BYTES_PER_SAMPLE 2 /* HackRF device produces/consumes 8 bit unsigned IQ data */
+#define BYTES_PER_SAMPLE 2 /* HackRF device produces/consumes 8 bit signed IQ data */
#define HACKRF_FORMAT_ERROR(ret, msg) \
boost::str( boost::format(msg " (%1%) %2%") \
diff --git a/lib/hackrf/hackrf_source_c.cc b/lib/hackrf/hackrf_source_c.cc
index 4f2fb789f6..662d04a11c 100644
--- a/lib/hackrf/hackrf_source_c.cc
+++ b/lib/hackrf/hackrf_source_c.cc
@@ -88,7 +88,7 @@ hackrf_source_c::hackrf_source_c (const std::string &args)
// create a lookup table for gr_complex values
for (unsigned int i = 0; i <= 0xff; i++) {
- _lut.push_back( float(i) * (1.0f/128.0f) );
+ _lut.push_back( float(int8_t(i)) * (1.0f/128.0f) );
}
if ( BUF_NUM != _buf_num || BUF_LEN != _buf_len ) {
--
2.25.1