Restructure: Move sdr from common code to 'libsdr'
This commit is contained in:
parent
45a5568f70
commit
1650cc5ad2
|
@ -38,6 +38,7 @@ src/libwave/libwave.a
|
||||||
src/libfft/libfft.a
|
src/libfft/libfft.a
|
||||||
src/libmncc/libmncc.a
|
src/libmncc/libmncc.a
|
||||||
src/libsound/libsound.a
|
src/libsound/libsound.a
|
||||||
|
src/libsdr/libsdr.a
|
||||||
src/common/libcommon.a
|
src/common/libcommon.a
|
||||||
src/common/libmobile.a
|
src/common/libmobile.a
|
||||||
src/anetz/libgermanton.a
|
src/anetz/libgermanton.a
|
||||||
|
|
|
@ -93,6 +93,7 @@ AC_OUTPUT(
|
||||||
src/libfft/Makefile
|
src/libfft/Makefile
|
||||||
src/libmncc/Makefile
|
src/libmncc/Makefile
|
||||||
src/libsound/Makefile
|
src/libsound/Makefile
|
||||||
|
src/libsdr/Makefile
|
||||||
src/common/Makefile
|
src/common/Makefile
|
||||||
src/anetz/Makefile
|
src/anetz/Makefile
|
||||||
src/bnetz/Makefile
|
src/bnetz/Makefile
|
||||||
|
|
|
@ -1,3 +1,41 @@
|
||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
SUBDIRS = libsound libimage libcompandor libgoertzel libjitter libsquelch libhagelbarger libdtmf libtimer libsamplerate libscrambler libemphasis libfsk libfm libfilter libwave libfft libmncc common anetz bnetz cnetz nmt amps tacs jtacs r2000 tv test
|
|
||||||
|
SUBDIRS = \
|
||||||
|
libimage \
|
||||||
|
libcompandor \
|
||||||
|
libgoertzel \
|
||||||
|
libjitter \
|
||||||
|
libsquelch \
|
||||||
|
libhagelbarger \
|
||||||
|
libdtmf \
|
||||||
|
libtimer \
|
||||||
|
libsamplerate \
|
||||||
|
libscrambler \
|
||||||
|
libemphasis \
|
||||||
|
libfsk \
|
||||||
|
libfm \
|
||||||
|
libfilter \
|
||||||
|
libwave \
|
||||||
|
libfft \
|
||||||
|
libmncc \
|
||||||
|
libsound
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
SUBDIRS += \
|
||||||
|
libsdr
|
||||||
|
endif
|
||||||
|
|
||||||
|
SUBDIRS += \
|
||||||
|
common \
|
||||||
|
anetz \
|
||||||
|
bnetz \
|
||||||
|
cnetz \
|
||||||
|
nmt \
|
||||||
|
amps \
|
||||||
|
tacs \
|
||||||
|
jtacs \
|
||||||
|
r2000 \
|
||||||
|
tv \
|
||||||
|
test
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,10 +34,8 @@ amps_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -45,3 +43,10 @@ amps_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
amps_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -26,10 +26,8 @@ anetz_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -37,3 +35,10 @@ anetz_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
anetz_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -22,10 +22,8 @@ bnetz_LDADD = \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfsk/libfsk.a \
|
$(top_builddir)/src/libfsk/libfsk.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -33,3 +31,10 @@ bnetz_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
bnetz_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -25,10 +25,8 @@ cnetz_LDADD = \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libscrambler/libscrambler.a \
|
$(top_builddir)/src/libscrambler/libscrambler.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -36,3 +34,10 @@ cnetz_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
cnetz_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
AM_CPPFLAGS = -Wall -Wextra -g $(all_includes) $(GRAPHICSMAGICK_CFLAGS) $(IMAGEMAGICK_CFLAGS) $(UHD_CFLAGS) $(SOAPY_CFLAGS)
|
AM_CPPFLAGS = -Wall -Wextra -g $(all_includes)
|
||||||
|
|
||||||
noinst_LIBRARIES = libcommon.a libmobile.a
|
noinst_LIBRARIES = libcommon.a libmobile.a
|
||||||
|
|
||||||
|
@ -16,25 +16,5 @@ libmobile_a_SOURCES = \
|
||||||
|
|
||||||
if HAVE_SDR
|
if HAVE_SDR
|
||||||
AM_CPPFLAGS += -DHAVE_SDR
|
AM_CPPFLAGS += -DHAVE_SDR
|
||||||
|
|
||||||
libcommon_a_SOURCES += \
|
|
||||||
sdr_config.c \
|
|
||||||
sdr.c \
|
|
||||||
display_iq.c \
|
|
||||||
display_spectrum.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_UHD
|
|
||||||
AM_CPPFLAGS += -DHAVE_UHD
|
|
||||||
|
|
||||||
libcommon_a_SOURCES += \
|
|
||||||
uhd.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_SOAPY
|
|
||||||
AM_CPPFLAGS += -DHAVE_SOAPY
|
|
||||||
|
|
||||||
libcommon_a_SOURCES += \
|
|
||||||
soapy.c
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,8 @@
|
||||||
#include "../libmncc/mncc_sock.h"
|
#include "../libmncc/mncc_sock.h"
|
||||||
#include "../libmncc/mncc_cross.h"
|
#include "../libmncc/mncc_cross.h"
|
||||||
#ifdef HAVE_SDR
|
#ifdef HAVE_SDR
|
||||||
#include "sdr.h"
|
#include "../libsdr/sdr.h"
|
||||||
#include "sdr_config.h"
|
#include "../libsdr/sdr_config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int got_init = 0;
|
static int got_init = 0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "../libsound/sound.h"
|
#include "../libsound/sound.h"
|
||||||
#ifdef HAVE_SDR
|
#ifdef HAVE_SDR
|
||||||
#include "sdr.h"
|
#include "../libsdr/sdr.h"
|
||||||
#endif
|
#endif
|
||||||
#include "../libwave/wave.h"
|
#include "../libwave/wave.h"
|
||||||
#include "../libsamplerate/samplerate.h"
|
#include "../libsamplerate/samplerate.h"
|
||||||
|
|
|
@ -20,10 +20,8 @@ jtacs_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -31,3 +29,10 @@ jtacs_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
jtacs_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
AM_CPPFLAGS = -Wall -Wextra -g $(all_includes)
|
AM_CPPFLAGS = -Wall -Wextra -g $(all_includes) $(GRAPHICSMAGICK_CFLAGS) $(IMAGEMAGICK_CFLAGS)
|
||||||
|
|
||||||
noinst_LIBRARIES = libimage.a
|
noinst_LIBRARIES = libimage.a
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
AM_CPPFLAGS = -Wall -Wextra -g $(all_includes)
|
||||||
|
|
||||||
|
noinst_LIBRARIES = libsdr.a
|
||||||
|
|
||||||
|
libsdr_a_SOURCES = \
|
||||||
|
dd sdr_config.c \
|
||||||
|
sdr.c \
|
||||||
|
display_iq.c \
|
||||||
|
display_spectrum.c
|
||||||
|
|
||||||
|
AM_CPPFLAGS += -DHAVE_SDR
|
||||||
|
|
||||||
|
if HAVE_UHD
|
||||||
|
AM_CPPFLAGS += -DHAVE_UHD
|
||||||
|
|
||||||
|
libsdr_a_SOURCES += \
|
||||||
|
uhd.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
if HAVE_SOAPY
|
||||||
|
AM_CPPFLAGS += -DHAVE_SOAPY
|
||||||
|
|
||||||
|
libsdr_a_SOURCES += \
|
||||||
|
soapy.c
|
||||||
|
endif
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "sample.h"
|
#include "../common/sample.h"
|
||||||
#include "sender.h"
|
#include "../common/sender.h"
|
||||||
|
|
||||||
/* must be odd value! */
|
/* must be odd value! */
|
||||||
#define SIZE 23
|
#define SIZE 23
|
|
@ -22,8 +22,8 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "sample.h"
|
#include "../common/sample.h"
|
||||||
#include "sender.h"
|
#include "../common/sender.h"
|
||||||
#include "../libfft/fft.h"
|
#include "../libfft/fft.h"
|
||||||
|
|
||||||
#define HEIGHT 20
|
#define HEIGHT 20
|
|
@ -29,10 +29,10 @@ enum paging_signal;
|
||||||
#define __USE_GNU
|
#define __USE_GNU
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "sample.h"
|
#include "../common/sample.h"
|
||||||
#include "../libfm/fm.h"
|
#include "../libfm/fm.h"
|
||||||
#include "../libtimer/timer.h"
|
#include "../libtimer/timer.h"
|
||||||
#include "sender.h"
|
#include "../common/sender.h"
|
||||||
#include "sdr_config.h"
|
#include "sdr_config.h"
|
||||||
#include "sdr.h"
|
#include "sdr.h"
|
||||||
#ifdef HAVE_UHD
|
#ifdef HAVE_UHD
|
||||||
|
@ -41,7 +41,7 @@ enum paging_signal;
|
||||||
#ifdef HAVE_SOAPY
|
#ifdef HAVE_SOAPY
|
||||||
#include "soapy.h"
|
#include "soapy.h"
|
||||||
#endif
|
#endif
|
||||||
#include "debug.h"
|
#include "../common/debug.h"
|
||||||
|
|
||||||
/* enable to debug buffer handling */
|
/* enable to debug buffer handling */
|
||||||
//#define DEBUG_BUFFER
|
//#define DEBUG_BUFFER
|
||||||
|
@ -52,6 +52,8 @@ enum paging_signal;
|
||||||
/* usable bandwidth of IQ rate, because no filter is perfect */
|
/* usable bandwidth of IQ rate, because no filter is perfect */
|
||||||
#define USABLE_BANDWIDTH 0.75
|
#define USABLE_BANDWIDTH 0.75
|
||||||
|
|
||||||
|
int sdr_rx_overflow = 0;
|
||||||
|
|
||||||
typedef struct sdr_thread {
|
typedef struct sdr_thread {
|
||||||
int use;
|
int use;
|
||||||
volatile int running, exit; /* flags to control exit of threads */
|
volatile int running, exit; /* flags to control exit of threads */
|
||||||
|
@ -399,17 +401,6 @@ static void *sdr_write_child(void *arg)
|
||||||
while (sdr->thread_write.running) {
|
while (sdr->thread_write.running) {
|
||||||
/* write to SDR */
|
/* write to SDR */
|
||||||
fill = (sdr->thread_write.in - sdr->thread_write.out + sdr->thread_write.buffer_size) % sdr->thread_write.buffer_size;
|
fill = (sdr->thread_write.in - sdr->thread_write.out + sdr->thread_write.buffer_size) % sdr->thread_write.buffer_size;
|
||||||
if (fill > sdr->thread_write.max_fill)
|
|
||||||
sdr->thread_write.max_fill = fill;
|
|
||||||
if (sdr->thread_write.max_fill_timer == 0.0)
|
|
||||||
sdr->thread_write.max_fill_timer = get_time();
|
|
||||||
if (get_time() - sdr->thread_write.max_fill_timer > 1.0) {
|
|
||||||
double delay;
|
|
||||||
delay = (double)sdr->thread_write.max_fill / 2.0 / (double)sdr->samplerate;
|
|
||||||
sdr->thread_write.max_fill = 0;
|
|
||||||
sdr->thread_write.max_fill_timer += 1.0;
|
|
||||||
PDEBUG(DSDR, DEBUG_DEBUG, "write delay = %.3f ms\n", delay * 1000.0);
|
|
||||||
}
|
|
||||||
num = fill / 2;
|
num = fill / 2;
|
||||||
if (num) {
|
if (num) {
|
||||||
#ifdef DEBUG_BUFFER
|
#ifdef DEBUG_BUFFER
|
||||||
|
@ -668,9 +659,24 @@ int sdr_write(void *inst, sample_t **samples, uint8_t **power, int num, enum pag
|
||||||
|
|
||||||
if (sdr->threads) {
|
if (sdr->threads) {
|
||||||
/* store data towards SDR in ring buffer */
|
/* store data towards SDR in ring buffer */
|
||||||
int space, in;
|
int fill, space, in;
|
||||||
|
|
||||||
|
fill = (sdr->thread_write.in - sdr->thread_write.out + sdr->thread_write.buffer_size) % sdr->thread_write.buffer_size;
|
||||||
space = (sdr->thread_write.out - sdr->thread_write.in - 2 + sdr->thread_write.buffer_size) % sdr->thread_write.buffer_size;
|
space = (sdr->thread_write.out - sdr->thread_write.in - 2 + sdr->thread_write.buffer_size) % sdr->thread_write.buffer_size;
|
||||||
|
|
||||||
|
/* debug fill level */
|
||||||
|
if (fill > sdr->thread_write.max_fill)
|
||||||
|
sdr->thread_write.max_fill = fill;
|
||||||
|
if (sdr->thread_write.max_fill_timer == 0.0)
|
||||||
|
sdr->thread_write.max_fill_timer = get_time();
|
||||||
|
if (get_time() - sdr->thread_write.max_fill_timer > 1.0) {
|
||||||
|
double delay;
|
||||||
|
delay = (double)sdr->thread_write.max_fill / 2.0 / (double)sdr->samplerate;
|
||||||
|
sdr->thread_write.max_fill = 0;
|
||||||
|
sdr->thread_write.max_fill_timer += 1.0;
|
||||||
|
PDEBUG(DSDR, DEBUG_DEBUG, "write delay = %.3f ms\n", delay * 1000.0);
|
||||||
|
}
|
||||||
|
|
||||||
if (space < num * 2) {
|
if (space < num * 2) {
|
||||||
PDEBUG(DSDR, DEBUG_ERROR, "Write SDR buffer overflow!\n");
|
PDEBUG(DSDR, DEBUG_ERROR, "Write SDR buffer overflow!\n");
|
||||||
num = space / 2;
|
num = space / 2;
|
||||||
|
@ -725,6 +731,8 @@ int sdr_read(void *inst, sample_t **samples, int num, int channels, double *rf_l
|
||||||
int fill, out;
|
int fill, out;
|
||||||
|
|
||||||
fill = (sdr->thread_read.in - sdr->thread_read.out + sdr->thread_read.buffer_size) % sdr->thread_read.buffer_size;
|
fill = (sdr->thread_read.in - sdr->thread_read.out + sdr->thread_read.buffer_size) % sdr->thread_read.buffer_size;
|
||||||
|
|
||||||
|
/* debug fill level */
|
||||||
if (fill > sdr->thread_read.max_fill)
|
if (fill > sdr->thread_read.max_fill)
|
||||||
sdr->thread_read.max_fill = fill;
|
sdr->thread_read.max_fill = fill;
|
||||||
if (sdr->thread_read.max_fill_timer == 0.0)
|
if (sdr->thread_read.max_fill_timer == 0.0)
|
||||||
|
@ -736,6 +744,7 @@ int sdr_read(void *inst, sample_t **samples, int num, int channels, double *rf_l
|
||||||
sdr->thread_read.max_fill_timer += 1.0;
|
sdr->thread_read.max_fill_timer += 1.0;
|
||||||
PDEBUG(DSDR, DEBUG_DEBUG, "read delay = %.3f ms\n", delay * 1000.0);
|
PDEBUG(DSDR, DEBUG_DEBUG, "read delay = %.3f ms\n", delay * 1000.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fill / 2 / sdr->oversample < num)
|
if (fill / 2 / sdr->oversample < num)
|
||||||
num = fill / 2 / sdr->oversample;
|
num = fill / 2 / sdr->oversample;
|
||||||
#ifdef DEBUG_BUFFER
|
#ifdef DEBUG_BUFFER
|
||||||
|
@ -762,6 +771,11 @@ int sdr_read(void *inst, sample_t **samples, int num, int channels, double *rf_l
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sdr_rx_overflow) {
|
||||||
|
PDEBUG(DSDR, DEBUG_ERROR, "SDR RX overflow!\n");
|
||||||
|
sdr_rx_overflow = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (sdr->wave_rx_rec.fp) {
|
if (sdr->wave_rx_rec.fp) {
|
||||||
sample_t *spl_list[2] = { sdr->wavespl0, sdr->wavespl1 };
|
sample_t *spl_list[2] = { sdr->wavespl0, sdr->wavespl1 };
|
||||||
for (s = 0, ss = 0; s < count; s++) {
|
for (s = 0, ss = 0; s < count; s++) {
|
|
@ -24,7 +24,7 @@ enum paging_signal;
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include "sample.h"
|
#include "../common/sample.h"
|
||||||
#include "sdr.h"
|
#include "sdr.h"
|
||||||
#include "sdr_config.h"
|
#include "sdr_config.h"
|
||||||
|
|
|
@ -26,7 +26,9 @@
|
||||||
#include <SoapySDR/Device.h>
|
#include <SoapySDR/Device.h>
|
||||||
#include <SoapySDR/Formats.h>
|
#include <SoapySDR/Formats.h>
|
||||||
#include "soapy.h"
|
#include "soapy.h"
|
||||||
#include "debug.h"
|
#include "../common/debug.h"
|
||||||
|
|
||||||
|
extern int sdr_rx_overflow;
|
||||||
|
|
||||||
static SoapySDRDevice *sdr = NULL;
|
static SoapySDRDevice *sdr = NULL;
|
||||||
SoapySDRStream *rxStream = NULL;
|
SoapySDRStream *rxStream = NULL;
|
||||||
|
@ -413,7 +415,7 @@ int soapy_receive(float *buff, int max)
|
||||||
while (1) {
|
while (1) {
|
||||||
if (max < rx_samps_per_buff) {
|
if (max < rx_samps_per_buff) {
|
||||||
/* no more space this time */
|
/* no more space this time */
|
||||||
PDEBUG(DSOAPY, DEBUG_ERROR, "SDR RX overflow!\n");
|
sdr_rx_overflow = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* read RX stream */
|
/* read RX stream */
|
|
@ -25,11 +25,13 @@
|
||||||
#include <uhd.h>
|
#include <uhd.h>
|
||||||
#include <uhd/usrp/usrp.h>
|
#include <uhd/usrp/usrp.h>
|
||||||
#include "uhd.h"
|
#include "uhd.h"
|
||||||
#include "debug.h"
|
#include "../common/debug.h"
|
||||||
|
|
||||||
/* use to TX time stamp */
|
/* use to TX time stamp */
|
||||||
//#define TX_TIMESTAMP
|
//#define TX_TIMESTAMP
|
||||||
|
|
||||||
|
extern int sdr_rx_overflow;
|
||||||
|
|
||||||
static uhd_usrp_handle usrp = NULL;
|
static uhd_usrp_handle usrp = NULL;
|
||||||
static uhd_tx_streamer_handle tx_streamer = NULL;
|
static uhd_tx_streamer_handle tx_streamer = NULL;
|
||||||
static uhd_rx_streamer_handle rx_streamer = NULL;
|
static uhd_rx_streamer_handle rx_streamer = NULL;
|
||||||
|
@ -519,7 +521,7 @@ int uhd_receive(float *buff, int max)
|
||||||
while (1) {
|
while (1) {
|
||||||
if (max < (int)rx_samps_per_buff) {
|
if (max < (int)rx_samps_per_buff) {
|
||||||
/* no more space this time */
|
/* no more space this time */
|
||||||
PDEBUG(DUHD, DEBUG_ERROR, "SDR RX overflow!\n");
|
sdr_rx_overflow = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* read RX stream */
|
/* read RX stream */
|
|
@ -36,7 +36,6 @@ nmt_LDADD = \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
$(top_builddir)/src/libfm/libfm.a \
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -44,3 +43,9 @@ nmt_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
nmt_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,6 @@ radiocom2000_LDADD = \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
$(top_builddir)/src/libfm/libfm.a \
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -32,3 +31,9 @@ radiocom2000_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
radiocom2000_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -21,10 +21,8 @@ tacs_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -32,3 +30,10 @@ tacs_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
tacs_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
|
@ -19,10 +19,8 @@ test_filter_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -30,6 +28,13 @@ test_filter_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
test_filter_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
test_compandor_SOURCES = dummy.x test_compandor.c
|
test_compandor_SOURCES = dummy.x test_compandor.c
|
||||||
|
|
||||||
test_compandor_LDADD = \
|
test_compandor_LDADD = \
|
||||||
|
@ -52,10 +57,8 @@ test_emphasis_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -63,6 +66,13 @@ test_emphasis_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
test_emphasis_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
test_dms_SOURCES = test_dms.c dummy.c
|
test_dms_SOURCES = test_dms.c dummy.c
|
||||||
|
|
||||||
test_dms_LDADD = \
|
test_dms_LDADD = \
|
||||||
|
@ -74,10 +84,8 @@ test_dms_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -85,6 +93,13 @@ test_dms_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
test_dms_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
test_sms_SOURCES = dummy.c test_sms.c
|
test_sms_SOURCES = dummy.c test_sms.c
|
||||||
|
|
||||||
test_sms_LDADD = \
|
test_sms_LDADD = \
|
||||||
|
@ -96,10 +111,8 @@ test_sms_LDADD = \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
$(top_builddir)/src/libtimer/libtimer.a \
|
||||||
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
$(top_builddir)/src/libsamplerate/libsamplerate.a \
|
||||||
$(top_builddir)/src/libemphasis/libemphasis.a \
|
$(top_builddir)/src/libemphasis/libemphasis.a \
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(top_builddir)/src/libmncc/libmncc.a \
|
$(top_builddir)/src/libmncc/libmncc.a \
|
||||||
$(top_builddir)/src/libsound/libsound.a \
|
$(top_builddir)/src/libsound/libsound.a \
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
|
@ -107,6 +120,13 @@ test_sms_LDADD = \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
test_sms_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a \
|
||||||
|
$(top_builddir)/src/libfm/libfm.a
|
||||||
|
endif
|
||||||
|
|
||||||
test_performance_SOURCES = dummy.c test_performance.c
|
test_performance_SOURCES = dummy.c test_performance.c
|
||||||
|
|
||||||
test_performance_LDADD = \
|
test_performance_LDADD = \
|
||||||
|
|
|
@ -16,29 +16,28 @@ osmotv_LDADD = \
|
||||||
$(COMMON_LA) \
|
$(COMMON_LA) \
|
||||||
$(top_builddir)/src/libimage/libimage.a \
|
$(top_builddir)/src/libimage/libimage.a \
|
||||||
$(top_builddir)/src/common/libcommon.a \
|
$(top_builddir)/src/common/libcommon.a \
|
||||||
$(top_builddir)/src/libtimer/libtimer.a \
|
|
||||||
$(top_builddir)/src/libfm/libfm.a \
|
$(top_builddir)/src/libfm/libfm.a \
|
||||||
$(top_builddir)/src/libfilter/libfilter.a \
|
$(top_builddir)/src/libfilter/libfilter.a \
|
||||||
$(top_builddir)/src/libwave/libwave.a \
|
$(top_builddir)/src/libwave/libwave.a \
|
||||||
$(top_builddir)/src/libfft/libfft.a \
|
|
||||||
$(ALSA_LIBS) \
|
$(ALSA_LIBS) \
|
||||||
$(UHD_LIBS) \
|
$(UHD_LIBS) \
|
||||||
$(SOAPY_LIBS) \
|
$(SOAPY_LIBS) \
|
||||||
$(GRAPHICSMAGICK_LIBS) $(IMAGEMAGICK_LIBS) \
|
$(GRAPHICSMAGICK_LIBS) $(IMAGEMAGICK_LIBS) \
|
||||||
-lm
|
-lm
|
||||||
|
|
||||||
|
if HAVE_SDR
|
||||||
|
osmotv_LDADD += \
|
||||||
|
$(top_builddir)/src/libsdr/libsdr.a \
|
||||||
|
$(top_builddir)/src/libfft/libfft.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
osmotv_LDADD += \
|
||||||
|
$(top_builddir)/src/libtimer/libtimer.a
|
||||||
|
|
||||||
if HAVE_SDR
|
if HAVE_SDR
|
||||||
AM_CPPFLAGS += -DHAVE_SDR
|
AM_CPPFLAGS += -DHAVE_SDR
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if HAVE_UHD
|
|
||||||
AM_CPPFLAGS += -DHAVE_UHD
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_SOAPY
|
|
||||||
AM_CPPFLAGS += -DHAVE_SOAPY
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ENABLE_MAGICK
|
if ENABLE_MAGICK
|
||||||
AM_CPPFLAGS += -DWITH_MAGICK
|
AM_CPPFLAGS += -DWITH_MAGICK
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -34,8 +34,8 @@ enum paging_signal;
|
||||||
#include "../libimage/img.h"
|
#include "../libimage/img.h"
|
||||||
#include "../common/debug.h"
|
#include "../common/debug.h"
|
||||||
#ifdef HAVE_SDR
|
#ifdef HAVE_SDR
|
||||||
#include "../common/sdr_config.h"
|
#include "../libsdr/sdr_config.h"
|
||||||
#include "../common/sdr.h"
|
#include "../libsdr/sdr.h"
|
||||||
#endif
|
#endif
|
||||||
#include "bas.h"
|
#include "bas.h"
|
||||||
#include "tv_modulate.h"
|
#include "tv_modulate.h"
|
||||||
|
|
Loading…
Reference in New Issue