diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index e8e2b2e..e69b628 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -15,9 +15,6 @@ IF(SDR_WITH_PORTAUDIO) add_executable(sdr_rec sdr_rec.cc) target_link_libraries(sdr_rec ${LIBS} libsdr) - add_executable(sdr_wspr sdr_wspr.cc) - target_link_libraries(sdr_wspr ${LIBS} libsdr) - add_executable(sdr_afsk1200 sdr_afsk1200.cc) target_link_libraries(sdr_afsk1200 ${LIBS} libsdr) ENDIF(SDR_WITH_PORTAUDIO) @@ -30,6 +27,4 @@ ENDIF(SDR_WITH_QT5 AND SDR_WITH_FFTW AND SDR_WITH_PORTAUDIO) add_executable(sdr_psk31 sdr_psk31.cc) target_link_libraries(sdr_psk31 ${LIBS} ${QT_LIBRARIES} libsdr libsdr-gui) -add_executable(sdr_rtty sdr_rtty.cc) -target_link_libraries(sdr_rtty ${LIBS} libsdr) diff --git a/examples/sdr_qrss.cc b/examples/sdr_qrss.cc new file mode 100644 index 0000000..505d92d --- /dev/null +++ b/examples/sdr_qrss.cc @@ -0,0 +1,60 @@ +#include "sdr.hh" +#include "rtlsource.hh" +#include "baseband.hh" +#include "utils.hh" +#include "gui/gui.hh" +#include +#include "portaudio.hh" + +#include +#include +#include + +using namespace sdr; + +static void __sigint_handler(int signo) { + // On SIGINT -> stop queue properly + Queue::get().stop(); +} + +#define F_SAMPLE 11000.0 +#define B_SIZE 16384 + +int main(int argc, char *argv[]) +{ + Queue &queue = Queue::get(); + + // Register handler: + signal(SIGINT, __sigint_handler); + + PortAudio::init(); + + QApplication app(argc, argv); + + QMainWindow *win = new QMainWindow(); + gui::Spectrum *spec = new gui::Spectrum(F_SAMPLE/B_SIZE, 1024, 8); + gui::WaterFallView *spec_view = new gui::WaterFallView(spec); + win->setCentralWidget(spec_view); + win->setMinimumSize(640, 240); + + win->show(); + + // Assemble processing chain + PortSource< int16_t > src(F_SAMPLE, 2048); + AGC< int16_t > agc; + + src.connect(&agc); + agc.connect(spec); + + queue.addIdle(&src, &PortSource< int16_t >::next); + + queue.start(); + app.exec(); + + queue.stop(); + queue.wait(); + + PortAudio::terminate(); + + return 0; +}