From 362e8a629d0ed369897e1f7c69ec2dd24518a2e7 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 29 May 2018 17:35:20 +0200 Subject: [PATCH] Server: added Perseus input plugin --- .../samplesource/perseus/perseusplugin.cpp | 17 ++++- pluginssrv/samplesource/CMakeLists.txt | 7 ++ .../samplesource/fcdproplus/CMakeLists.txt | 48 +++++++++++++ .../samplesource/perseus/CMakeLists.txt | 69 +++++++++++++++++++ 4 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 pluginssrv/samplesource/fcdproplus/CMakeLists.txt create mode 100644 pluginssrv/samplesource/perseus/CMakeLists.txt diff --git a/plugins/samplesource/perseus/perseusplugin.cpp b/plugins/samplesource/perseus/perseusplugin.cpp index 227b875e2..f51ee3005 100644 --- a/plugins/samplesource/perseus/perseusplugin.cpp +++ b/plugins/samplesource/perseus/perseusplugin.cpp @@ -15,7 +15,6 @@ /////////////////////////////////////////////////////////////////////////////////// #include -#include #include "perseus-sdr.h" #include @@ -23,11 +22,15 @@ #include "util/simpleserializer.h" #include "perseus/deviceperseus.h" #include "perseusplugin.h" +#ifdef SERVER_MODE +#include "perseusinput.h" +#else #include "perseusgui.h" +#endif const PluginDescriptor PerseusPlugin::m_pluginDescriptor = { QString("Perseus Input"), - QString("3.14.6"), + QString("4.0.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, @@ -84,6 +87,15 @@ PluginInterface::SamplingDevices PerseusPlugin::enumSampleSources() return result; } +#ifdef SERVER_MODE +PluginInstanceGUI* PerseusPlugin::createSampleSourcePluginInstanceGUI( + const QString& sourceId __attribute__((unused)), + QWidget **widget __attribute__((unused)), + DeviceUISet *deviceUISet __attribute__((unused))) +{ + return 0; +} +#else PluginInstanceGUI* PerseusPlugin::createSampleSourcePluginInstanceGUI( const QString& sourceId, QWidget **widget, @@ -100,6 +112,7 @@ PluginInstanceGUI* PerseusPlugin::createSampleSourcePluginInstanceGUI( return 0; } } +#endif DeviceSampleSource *PerseusPlugin::createSampleSourcePluginInstanceInput(const QString& sourceId, DeviceSourceAPI *deviceAPI) { diff --git a/pluginssrv/samplesource/CMakeLists.txt b/pluginssrv/samplesource/CMakeLists.txt index 702b153b7..4262445ce 100644 --- a/pluginssrv/samplesource/CMakeLists.txt +++ b/pluginssrv/samplesource/CMakeLists.txt @@ -47,6 +47,12 @@ if(LIBUSB_FOUND AND LIMESUITE_FOUND) add_subdirectory(limesdrinput) endif(LIBUSB_FOUND AND LIMESUITE_FOUND) +find_package(LibPerseus) +if(LIBUSB_FOUND AND RX_SAMPLE_24BIT AND LIBPERSEUS_FOUND) + message(STATUS "Server: add Persesus plugin") + add_subdirectory(perseus) +endif(LIBUSB_FOUND AND RX_SAMPLE_24BIT AND LIBPERSEUS_FOUND) + find_package(LibRTLSDR) if(LIBUSB_FOUND AND LIBRTLSDR_FOUND) add_subdirectory(rtlsdr) @@ -57,6 +63,7 @@ if (BUILD_DEBIAN) add_subdirectory(airspyhf) add_subdirectory(hackrfinput) add_subdirectory(limesdrinput) + add_subdirectory(perseus) add_subdirectory(rtlsdr) endif (BUILD_DEBIAN) diff --git a/pluginssrv/samplesource/fcdproplus/CMakeLists.txt b/pluginssrv/samplesource/fcdproplus/CMakeLists.txt new file mode 100644 index 000000000..e23a61855 --- /dev/null +++ b/pluginssrv/samplesource/fcdproplus/CMakeLists.txt @@ -0,0 +1,48 @@ +project(fcdproplus) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(PLUGIN_PREFIX "../../../plugins/samplesource/fcdproplus") + +set(fcdproplus_SOURCES + ${PLUGIN_PREFIX}/fcdproplusinput.cpp + ${PLUGIN_PREFIX}/fcdproplusplugin.cpp + ${PLUGIN_PREFIX}/fcdproplussettings.cpp + ${PLUGIN_PREFIX}/fcdproplusthread.cpp +) + +set(fcdproplus_HEADERS + ${PLUGIN_PREFIX}/fcdproplusinput.h + ${PLUGIN_PREFIX}/fcdproplusplugin.h + ${PLUGIN_PREFIX}/fcdproplussettings.h + ${PLUGIN_PREFIX}/fcdproplusthread.h +) + +include_directories( + . + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${CMAKE_SOURCE_DIR}/fcdhid + ${CMAKE_SOURCE_DIR}/fcdlib +) + +add_definitions(${QT_DEFINITIONS}) +add_definitions(-DQT_PLUGIN) +add_definitions(-DQT_SHARED) + +add_library(inputfcdproplussrv SHARED + ${fcdproplus_SOURCES} + ${fcdproplus_HEADERS_MOC} +) + +target_link_libraries(inputfcdproplussrv + ${QT_LIBRARIES} + asound + fcdhid + fcdlib + sdrbase + swagger +) + +qt5_use_modules(inputfcdproplussrv Core) + +install(TARGETS inputfcdproplussrv DESTINATION lib/pluginssrv/samplesource) diff --git a/pluginssrv/samplesource/perseus/CMakeLists.txt b/pluginssrv/samplesource/perseus/CMakeLists.txt new file mode 100644 index 000000000..732db4f69 --- /dev/null +++ b/pluginssrv/samplesource/perseus/CMakeLists.txt @@ -0,0 +1,69 @@ +project(perseus) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(PLUGIN_PREFIX "../../../plugins/samplesource/perseus") + +set(perseus_SOURCES + ${PLUGIN_PREFIX}/perseusinput.cpp + ${PLUGIN_PREFIX}/perseusplugin.cpp + ${PLUGIN_PREFIX}/perseussettings.cpp + ${PLUGIN_PREFIX}/perseusthread.cpp +) + +set(perseus_HEADERS + ${PLUGIN_PREFIX}/perseusinput.h + ${PLUGIN_PREFIX}/perseusplugin.h + ${PLUGIN_PREFIX}/perseussettings.h + ${PLUGIN_PREFIX}/perseusthread.h +) + +if (BUILD_DEBIAN) +include_directories( + . + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${CMAKE_SOURCE_DIR}/devices + ${LIBPERSEUSSRC} + ${LIBPERSEUSSRC}/libperseus/src +) +else (BUILD_DEBIAN) +include_directories( + . + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${CMAKE_SOURCE_DIR}/devices + ${LIBPERSEUS_INCLUDE_DIR} +) +endif (BUILD_DEBIAN) + +add_definitions("${QT_DEFINITIONS} -DLIBAIRSPY_DYN_RATES") +add_definitions(-DQT_PLUGIN) +add_definitions(-DQT_SHARED) + +add_library(inputperseussrv SHARED + ${perseus_SOURCES} + ${perseus_HEADERS_MOC} +) + +if (BUILD_DEBIAN) +target_link_libraries(inputperseussrv + ${QT_LIBRARIES} + perseus + sdrbase + swagger + perseusdevice +) +else (BUILD_DEBIAN) +target_link_libraries(inputperseussrv + ${QT_LIBRARIES} + ${LIBPERSEUS_LIBRARIES} + sdrbase + swagger + perseusdevice +) +endif (BUILD_DEBIAN) + + +qt5_use_modules(inputperseussrv Core) + +install(TARGETS inputperseussrv DESTINATION lib/pluginssrv/samplesource)