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))) {