From da1b7c26582d1bfc5cb8a5371fb2a75f7375eade Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 29 May 2018 22:14:37 +0200 Subject: [PATCH] Server: added SDRdaemon sink plugin --- .../sdrdaemonsink/sdrdaemonsinkoutput.cpp | 1 - .../sdrdaemonsink/sdrdaemonsinkplugin.cpp | 17 +++- pluginssrv/samplesink/CMakeLists.txt | 11 ++- .../samplesink/sdrdaemonsink/CMakeLists.txt | 81 +++++++++++++++++++ 4 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 pluginssrv/samplesink/sdrdaemonsink/CMakeLists.txt diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp index c81f50c47..a90b8a301 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp @@ -30,7 +30,6 @@ #include "device/devicesinkapi.h" -#include "sdrdaemonsinkgui.h" #include "sdrdaemonsinkoutput.h" #include "sdrdaemonsinkthread.h" diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp index f5bc24726..76a3c0bb0 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp @@ -15,13 +15,16 @@ /////////////////////////////////////////////////////////////////////////////////// #include -#include + #include "plugin/pluginapi.h" #include "util/simpleserializer.h" - #include "device/devicesinkapi.h" +#ifdef SERVER_MODE +#include "sdrdaemonsinkoutput.h" +#else #include "sdrdaemonsinkgui.h" +#endif #include "sdrdaemonsinkplugin.h" const PluginDescriptor SDRdaemonSinkPlugin::m_pluginDescriptor = { @@ -69,6 +72,15 @@ PluginInterface::SamplingDevices SDRdaemonSinkPlugin::enumSampleSinks() return result; } +#ifdef SERVER_MODE +PluginInstanceGUI* SDRdaemonSinkPlugin::createSampleSinkPluginInstanceGUI( + const QString& sinkId __attribute((unused)), + QWidget **widget __attribute((unused)), + DeviceUISet *deviceUISet __attribute((unused))) +{ + return 0; +} +#else PluginInstanceGUI* SDRdaemonSinkPlugin::createSampleSinkPluginInstanceGUI( const QString& sinkId, QWidget **widget, @@ -85,6 +97,7 @@ PluginInstanceGUI* SDRdaemonSinkPlugin::createSampleSinkPluginInstanceGUI( return 0; } } +#endif DeviceSampleSink* SDRdaemonSinkPlugin::createSampleSinkPluginInstanceOutput(const QString& sinkId, DeviceSinkAPI *deviceAPI) { diff --git a/pluginssrv/samplesink/CMakeLists.txt b/pluginssrv/samplesink/CMakeLists.txt index 2e3eb6639..1e1bd6ba2 100644 --- a/pluginssrv/samplesink/CMakeLists.txt +++ b/pluginssrv/samplesink/CMakeLists.txt @@ -22,11 +22,20 @@ if(LIBUSB_FOUND AND LIBIIO_FOUND) add_subdirectory(plutosdroutput) endif(LIBUSB_FOUND AND LIBIIO_FOUND) +find_package(CM256cc) +find_package(LibNANOMSG) +if(CM256CC_FOUND AND LIBNANOMSG_FOUND) + add_subdirectory(sdrdaemonsink) +endif(CM256CC_FOUND AND LIBNANOMSG_FOUND) + if (BUILD_DEBIAN) add_subdirectory(bladerfoutput) add_subdirectory(hackrfoutput) add_subdirectory(limesdroutput) - add_subdirectory(bladerfoutput) + add_subdirectory(plutosdroutput) + if (LIBNANOMSG_FOUND) + add_subdirectory(sdrdaemonsink) + endif (LIBNANOMSG_FOUND) endif (BUILD_DEBIAN) add_subdirectory(filesink) diff --git a/pluginssrv/samplesink/sdrdaemonsink/CMakeLists.txt b/pluginssrv/samplesink/sdrdaemonsink/CMakeLists.txt new file mode 100644 index 000000000..f24f23701 --- /dev/null +++ b/pluginssrv/samplesink/sdrdaemonsink/CMakeLists.txt @@ -0,0 +1,81 @@ +project(sdrdaemonsink) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(PLUGIN_PREFIX "../../../plugins/samplesink/sdrdaemonsink") + +if (HAS_SSSE3) + message(STATUS "SDRdaemonFEC: use SSSE3 SIMD" ) +elseif (HAS_NEON) + message(STATUS "SDRdaemonFEC: use Neon SIMD" ) +else() + message(STATUS "SDRdaemonFEC: Unsupported architecture") + return() +endif() + +set(sdrdaemonsink_SOURCES + ${PLUGIN_PREFIX}/sdrdaemonsinkoutput.cpp + ${PLUGIN_PREFIX}/sdrdaemonsinkplugin.cpp + ${PLUGIN_PREFIX}/sdrdaemonsinksettings.cpp + ${PLUGIN_PREFIX}/sdrdaemonsinkthread.cpp + ${PLUGIN_PREFIX}/udpsinkfec.cpp + ${PLUGIN_PREFIX}/UDPSocket.cpp +) + +set(sdrdaemonsink_HEADERS + ${PLUGIN_PREFIX}/sdrdaemonsinkoutput.h + ${PLUGIN_PREFIX}/sdrdaemonsinkplugin.h + ${PLUGIN_PREFIX}/sdrdaemonsinksettings.h + ${PLUGIN_PREFIX}/sdrdaemonsinkthread.h + ${PLUGIN_PREFIX}/udpsinkfec.h + ${PLUGIN_PREFIX}/UDPSocket.h +) + +if (BUILD_DEBIAN) +include_directories( + . + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${LIBCM256CCSRC} + ${LIBNANOMSG_INCLUDE_DIR} +) +else (BUILD_DEBIAN) +include_directories( + . + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${CMAKE_SOURCE_DIR}/devices + ${CM256CC_INCLUDE_DIR} + ${LIBNANOMSG_INCLUDE_DIR} +) +endif (BUILD_DEBIAN) + +add_definitions(${QT_DEFINITIONS}) +add_definitions(-DQT_PLUGIN) +add_definitions(-DQT_SHARED) + +add_library(outputsdrdaemonsinksrv SHARED + ${sdrdaemonsink_SOURCES} + ${sdrdaemonsink_HEADERS_MOC} +) + +if (BUILD_DEBIAN) +target_link_libraries(outputsdrdaemonsinksrv + ${QT_LIBRARIES} + sdrbase + swagger + cm256cc + ${LIBNANOMSG_LIBRARIES} +) +else (BUILD_DEBIAN) +target_link_libraries(outputsdrdaemonsinksrv + ${QT_LIBRARIES} + sdrbase + swagger + ${CM256CC_LIBRARIES} + ${LIBNANOMSG_LIBRARIES} +) +endif (BUILD_DEBIAN) + +qt5_use_modules(outputsdrdaemonsinksrv Core) + +install(TARGETS outputsdrdaemonsinksrv DESTINATION lib/pluginssrv/samplesink)