diff --git a/plugins/samplesink/CMakeLists.txt b/plugins/samplesink/CMakeLists.txt index 211ecb4c1..7b9574342 100644 --- a/plugins/samplesink/CMakeLists.txt +++ b/plugins/samplesink/CMakeLists.txt @@ -7,10 +7,10 @@ if(LIBUSB_FOUND AND LIBBLADERF_FOUND) add_subdirectory(bladerfoutput) endif(LIBUSB_FOUND AND LIBBLADERF_FOUND) -#find_package(LibHACKRF) -#if(LIBUSB_FOUND AND LIBHACKRF_FOUND) -# add_subdirectory(hackrfoutput) -#endif(LIBUSB_FOUND AND LIBHACKRF_FOUND) +find_package(LibHACKRF) +if(LIBUSB_FOUND AND LIBHACKRF_FOUND) + add_subdirectory(hackrfoutput) +endif(LIBUSB_FOUND AND LIBHACKRF_FOUND) if (BUILD_DEBIAN) add_subdirectory(bladerfoutput) diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputthread.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputthread.cpp index 5e630c4d1..5a2fad987 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputthread.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutputthread.cpp @@ -25,12 +25,10 @@ HackRFOutputThread::HackRFOutputThread(hackrf_device* dev, SampleSourceFifo* sam QThread(parent), m_running(false), m_dev(dev), - m_convertBuffer(HACKRF_BLOCKSIZE), m_sampleFifo(sampleFifo), m_samplerate(10), m_log2Interp(0) { - qDebug("HackRFOutputThread::HackRFOutputThread: m_dev: %lx m_sampleFifo: %lx", (uint64_t) m_dev, (uint64_t) m_sampleFifo); } HackRFOutputThread::~HackRFOutputThread() @@ -81,11 +79,6 @@ void HackRFOutputThread::run() } else { - qDebug("HackRFOutputThread::run: this: %lx start HackRF Tx: m_dev: %lx m_sampleFifo: %lx", - (uint64_t) this, - (uint64_t) m_dev, - (uint64_t) m_sampleFifo); - while ((m_running) && (hackrf_is_streaming(m_dev) == HACKRF_TRUE)) { sleep(1); @@ -107,37 +100,37 @@ void HackRFOutputThread::run() } // Interpolate according to specified log2 (ex: log2=4 => interp=16) -void HackRFOutputThread::callback(qint16* buf, qint32 len) +void HackRFOutputThread::callback(qint8* buf, qint32 len) { SampleVector::iterator beginRead; - m_sampleFifo->readAdvance(beginRead, len/(1<readAdvance(beginRead, len/(2*(1<tx_ctx; - qint32 bytes_to_write = transfer->valid_length; - thread->callback((qint16 *) transfer->buffer, bytes_to_write); + qint32 bytes_to_write = transfer->valid_length; + thread->callback((qint8 *) transfer->buffer, bytes_to_write); return 0; } diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputthread.h b/plugins/samplesink/hackrfoutput/hackrfoutputthread.h index b5752cde6..cd84d0fe5 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputthread.h +++ b/plugins/samplesink/hackrfoutput/hackrfoutputthread.h @@ -25,7 +25,7 @@ #include "dsp/samplesourcefifo.h" #include "dsp/interpolators.h" -#define HACKRF_BLOCKSIZE (1<<17) +#define HACKRF_BLOCKSIZE (1<<18) class HackRFOutputThread : public QThread { Q_OBJECT @@ -45,17 +45,16 @@ private: bool m_running; hackrf_device* m_dev; - qint16 m_buf[2*HACKRF_BLOCKSIZE]; - SampleVector m_convertBuffer; + qint8 m_buf[2*HACKRF_BLOCKSIZE]; SampleSourceFifo* m_sampleFifo; int m_samplerate; unsigned int m_log2Interp; - Interpolators m_interpolators; + Interpolators m_interpolators; void run(); - void callback(qint16* buf, qint32 len); + void callback(qint8* buf, qint32 len); static int tx_callback(hackrf_transfer* transfer); };