From f61e9d2bd73d3e6735fafe678b6f8f7b9eef2ae1 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sun, 16 Mar 2014 10:31:17 -0600 Subject: [PATCH] write unsigned chars to .wav file instead of signed chars --- host/hackrf-tools/src/hackrf_transfer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/host/hackrf-tools/src/hackrf_transfer.c b/host/hackrf-tools/src/hackrf_transfer.c index bf32d182..6441aae1 100644 --- a/host/hackrf-tools/src/hackrf_transfer.c +++ b/host/hackrf-tools/src/hackrf_transfer.c @@ -334,6 +334,7 @@ uint32_t baseband_filter_bw_hz = 0; int rx_callback(hackrf_transfer* transfer) { size_t bytes_to_write; + int i; if( fd != NULL ) { @@ -346,6 +347,12 @@ int rx_callback(hackrf_transfer* transfer) { } bytes_to_xfer -= bytes_to_write; } + if (receive_wav) { + /* convert .wav contents from signed to unsigned */ + for (i = 0; i < bytes_to_write; i++) { + *(transfer->buffer + i) ^= (uint8_t)0x80; + } + } bytes_written = fwrite(transfer->buffer, 1, bytes_to_write, fd); if ((bytes_written != bytes_to_write) || (limit_num_samples && (bytes_to_xfer == 0))) {