From ae4ce3912626401acc41cbcc6b07284d1e740569 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 29 May 2018 20:46:52 +0200 Subject: [PATCH] Server: added SDRdaemon source plugin --- .../sdrdaemonsource/sdrdaemonsourceinput.cpp | 1 - .../sdrdaemonsource/sdrdaemonsourceplugin.cpp | 19 ++++- pluginssrv/samplesource/CMakeLists.txt | 9 +++ .../sdrdaemonsource/CMakeLists.txt | 79 +++++++++++++++++++ 4 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 pluginssrv/samplesource/sdrdaemonsource/CMakeLists.txt diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp index df62efdf6..9c1350a49 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp @@ -39,7 +39,6 @@ #include #include -#include "sdrdaemonsourcegui.h" #include "sdrdaemonsourceinput.h" #include "sdrdaemonsourceudphandler.h" diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp index f470d454a..e9fad0b43 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceplugin.cpp @@ -15,13 +15,16 @@ /////////////////////////////////////////////////////////////////////////////////// #include -#include + #include "plugin/pluginapi.h" #include "util/simpleserializer.h" +#include "device/devicesourceapi.h" -#include - +#ifdef SERVER_MODE +#include "sdrdaemonsourceinput.h" +#else #include "sdrdaemonsourcegui.h" +#endif #include "sdrdaemonsourceplugin.h" const PluginDescriptor SDRdaemonSourcePlugin::m_pluginDescriptor = { @@ -69,6 +72,15 @@ PluginInterface::SamplingDevices SDRdaemonSourcePlugin::enumSampleSources() return result; } +#ifdef SERVER_MODE +PluginInstanceGUI* SDRdaemonSourcePlugin::createSampleSourcePluginInstanceGUI( + const QString& sourceId __attribute((unused)), + QWidget **widget __attribute((unused)), + DeviceUISet *deviceUISet __attribute((unused))) +{ + return 0; +} +#else PluginInstanceGUI* SDRdaemonSourcePlugin::createSampleSourcePluginInstanceGUI( const QString& sourceId, QWidget **widget, @@ -85,6 +97,7 @@ PluginInstanceGUI* SDRdaemonSourcePlugin::createSampleSourcePluginInstanceGUI( return 0; } } +#endif DeviceSampleSource *SDRdaemonSourcePlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) { diff --git a/pluginssrv/samplesource/CMakeLists.txt b/pluginssrv/samplesource/CMakeLists.txt index 58dcd79d3..a93c57bed 100644 --- a/pluginssrv/samplesource/CMakeLists.txt +++ b/pluginssrv/samplesource/CMakeLists.txt @@ -63,6 +63,12 @@ if(LIBUSB_FOUND AND LIBRTLSDR_FOUND) add_subdirectory(rtlsdr) endif(LIBUSB_FOUND AND LIBRTLSDR_FOUND) +find_package(CM256cc) +find_package(LibNANOMSG) +if(CM256CC_FOUND AND LIBNANOMSG_FOUND) + add_subdirectory(sdrdaemonsource) +endif(CM256CC_FOUND AND LIBNANOMSG_FOUND) + if (BUILD_DEBIAN) add_subdirectory(airspy) add_subdirectory(airspyhf) @@ -71,6 +77,9 @@ if (BUILD_DEBIAN) add_subdirectory(perseus) add_subdirectory(plutosdrinput) add_subdirectory(rtlsdr) + if (LIBNANOMSG_FOUND) + add_subdirectory(sdrdaemonsource) + endif (LIBNANOMSG_FOUND) endif (BUILD_DEBIAN) add_subdirectory(filesource) diff --git a/pluginssrv/samplesource/sdrdaemonsource/CMakeLists.txt b/pluginssrv/samplesource/sdrdaemonsource/CMakeLists.txt new file mode 100644 index 000000000..8d4bdd555 --- /dev/null +++ b/pluginssrv/samplesource/sdrdaemonsource/CMakeLists.txt @@ -0,0 +1,79 @@ +project(sdrdaemonsource) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(PLUGIN_PREFIX "../../../plugins/samplesource/sdrdaemonsource") + +if (HAS_SSSE3) + message(STATUS "SDRdaemonSource: use SSSE3 SIMD" ) +elseif (HAS_NEON) + message(STATUS "SDRdaemonSource: use Neon SIMD" ) +else() + message(STATUS "SDRdaemonSource: Unsupported architecture") + return() +endif() + +set(sdrdaemonsource_SOURCES + ${PLUGIN_PREFIX}/sdrdaemonsourcebuffer.cpp + ${PLUGIN_PREFIX}/sdrdaemonsourceinput.cpp + ${PLUGIN_PREFIX}/sdrdaemonsourcesettings.cpp + ${PLUGIN_PREFIX}/sdrdaemonsourceplugin.cpp + ${PLUGIN_PREFIX}/sdrdaemonsourceudphandler.cpp +) + +set(sdrdaemonsource_HEADERS + ${PLUGIN_PREFIX}/sdrdaemonsourcebuffer.h + ${PLUGIN_PREFIX}/sdrdaemonsourceinput.h + ${PLUGIN_PREFIX}/sdrdaemonsourcesettings.h + ${PLUGIN_PREFIX}/sdrdaemonsourceplugin.h + ${PLUGIN_PREFIX}/sdrdaemonsourceudphandler.h +) + + +add_definitions(${QT_DEFINITIONS}) +add_definitions(-DQT_PLUGIN) +add_definitions(-DQT_SHARED) + +add_library(inputsdrdaemonsourcesrv SHARED + ${sdrdaemonsource_SOURCES} + ${sdrdaemonsource_HEADERS_MOC} +) + +if (BUILD_DEBIAN) +target_include_directories(inputsdrdaemonsourcesrv PUBLIC + . + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${LIBCM256CCSRC} + ${LIBNANOMSG_INCLUDE_DIR} +) +else (BUILD_DEBIAN) +target_include_directories(inputsdrdaemonsourcesrv PUBLIC + . + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${CM256CC_INCLUDE_DIR} + ${LIBNANOMSG_INCLUDE_DIR} +) +endif (BUILD_DEBIAN) + +if (BUILD_DEBIAN) +target_link_libraries(inputsdrdaemonsourcesrv + ${QT_LIBRARIES} + cm256cc + ${LIBNANOMSG_LIBRARIES} + sdrbase + swagger +) +else (BUILD_DEBIAN) +target_link_libraries(inputsdrdaemonsourcesrv + ${QT_LIBRARIES} + ${CM256CC_LIBRARIES} + ${LIBNANOMSG_LIBRARIES} + sdrbase + swagger +) +endif (BUILD_DEBIAN) + +qt5_use_modules(inputsdrdaemonsourcesrv Core) + +install(TARGETS inputsdrdaemonsourcesrv DESTINATION lib/pluginssrv/samplesource)