|
|
@ -403,13 +403,12 @@ void full_demod(unsigned char *buf, uint32_t len, struct fm_state *fm) |
|
|
|
|
|
|
|
|
|
|
|
static void rtlsdr_callback(unsigned char *buf, uint32_t len, void *ctx) |
|
|
|
static void rtlsdr_callback(unsigned char *buf, uint32_t len, void *ctx) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct fm_state *fm2; |
|
|
|
struct fm_state *fm2 = ctx; |
|
|
|
int dr_val; |
|
|
|
int dr_val; |
|
|
|
if (do_exit) { |
|
|
|
if (do_exit) { |
|
|
|
return;} |
|
|
|
return;} |
|
|
|
if (!ctx) { |
|
|
|
if (!ctx) { |
|
|
|
return;} |
|
|
|
return;} |
|
|
|
fm2 = (struct fm_struct*)(ctx); // warning?
|
|
|
|
|
|
|
|
/* single threaded uses 25% less CPU? */ |
|
|
|
/* single threaded uses 25% less CPU? */ |
|
|
|
/* full_demod(buf, len, fm2); */ |
|
|
|
/* full_demod(buf, len, fm2); */ |
|
|
|
memcpy(fm2->buf, buf, len); |
|
|
|
memcpy(fm2->buf, buf, len); |
|
|
@ -421,9 +420,7 @@ static void rtlsdr_callback(unsigned char *buf, uint32_t len, void *ctx) |
|
|
|
|
|
|
|
|
|
|
|
static void *demod_thread_fn(void *arg) |
|
|
|
static void *demod_thread_fn(void *arg) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct fm_state *fm2; |
|
|
|
struct fm_state *fm2 = arg; |
|
|
|
int r = 0; |
|
|
|
|
|
|
|
fm2 = (struct fm_struct*)(arg); // warning?
|
|
|
|
|
|
|
|
while (!do_exit) { |
|
|
|
while (!do_exit) { |
|
|
|
sem_wait(&data_ready); |
|
|
|
sem_wait(&data_ready); |
|
|
|
full_demod(fm2->buf, fm2->buf_len, fm2); |
|
|
|
full_demod(fm2->buf, fm2->buf_len, fm2); |
|
|
|