mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
HackRF input plugin: pass thread pointer in the callback instead of using a static variable
This commit is contained in:
parent
5d51fde9f7
commit
212a8ad2f9
@ -10,7 +10,7 @@ endif(LIBUSB_FOUND AND LIBBLADERF_FOUND)
|
|||||||
#find_package(LibHACKRF)
|
#find_package(LibHACKRF)
|
||||||
#if(LIBUSB_FOUND AND LIBHACKRF_FOUND)
|
#if(LIBUSB_FOUND AND LIBHACKRF_FOUND)
|
||||||
# add_subdirectory(hackrfoutput)
|
# add_subdirectory(hackrfoutput)
|
||||||
3endif(LIBUSB_FOUND AND LIBHACKRF_FOUND)
|
#endif(LIBUSB_FOUND AND LIBHACKRF_FOUND)
|
||||||
|
|
||||||
if (BUILD_DEBIAN)
|
if (BUILD_DEBIAN)
|
||||||
add_subdirectory(bladerfoutput)
|
add_subdirectory(bladerfoutput)
|
||||||
|
@ -14,14 +14,12 @@
|
|||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "../hackrfinput/hackrfinputthread.h"
|
#include "hackrfinputthread.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "../../../sdrbase/dsp/samplesinkfifo.h"
|
#include "dsp/samplesinkfifo.h"
|
||||||
|
|
||||||
HackRFInputThread *HackRFInputThread::m_this = 0;
|
|
||||||
|
|
||||||
HackRFInputThread::HackRFInputThread(hackrf_device* dev, SampleSinkFifo* sampleFifo, QObject* parent) :
|
HackRFInputThread::HackRFInputThread(hackrf_device* dev, SampleSinkFifo* sampleFifo, QObject* parent) :
|
||||||
QThread(parent),
|
QThread(parent),
|
||||||
@ -33,13 +31,11 @@ HackRFInputThread::HackRFInputThread(hackrf_device* dev, SampleSinkFifo* sampleF
|
|||||||
m_log2Decim(0),
|
m_log2Decim(0),
|
||||||
m_fcPos(0)
|
m_fcPos(0)
|
||||||
{
|
{
|
||||||
m_this = this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HackRFInputThread::~HackRFInputThread()
|
HackRFInputThread::~HackRFInputThread()
|
||||||
{
|
{
|
||||||
stopWork();
|
stopWork();
|
||||||
m_this = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HackRFInputThread::startWork()
|
void HackRFInputThread::startWork()
|
||||||
@ -82,7 +78,7 @@ void HackRFInputThread::run()
|
|||||||
//m_running = true;
|
//m_running = true;
|
||||||
m_startWaiter.wakeAll();
|
m_startWaiter.wakeAll();
|
||||||
|
|
||||||
rc = (hackrf_error) hackrf_start_rx(m_dev, rx_callback, NULL);
|
rc = (hackrf_error) hackrf_start_rx(m_dev, rx_callback, this);
|
||||||
|
|
||||||
if (rc != HACKRF_SUCCESS)
|
if (rc != HACKRF_SUCCESS)
|
||||||
{
|
{
|
||||||
@ -207,7 +203,8 @@ void HackRFInputThread::callback(const qint8* buf, qint32 len)
|
|||||||
|
|
||||||
int HackRFInputThread::rx_callback(hackrf_transfer* transfer)
|
int HackRFInputThread::rx_callback(hackrf_transfer* transfer)
|
||||||
{
|
{
|
||||||
|
HackRFInputThread *thread = (HackRFInputThread *) transfer->rx_ctx;
|
||||||
qint32 bytes_to_write = transfer->valid_length;
|
qint32 bytes_to_write = transfer->valid_length;
|
||||||
m_this->callback((qint8 *) transfer->buffer, bytes_to_write);
|
thread->callback((qint8 *) transfer->buffer, bytes_to_write);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,6 @@ private:
|
|||||||
int m_samplerate;
|
int m_samplerate;
|
||||||
unsigned int m_log2Decim;
|
unsigned int m_log2Decim;
|
||||||
int m_fcPos;
|
int m_fcPos;
|
||||||
static HackRFInputThread *m_this;
|
|
||||||
|
|
||||||
Decimators<qint8, SDR_SAMP_SZ, 8> m_decimators;
|
Decimators<qint8, SDR_SAMP_SZ, 8> m_decimators;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user