diff --git a/plugins/samplesink/filesink/filesink.pro b/plugins/samplesink/filesink/filesink.pro index 8b26b5f35..18e83f81d 100644 --- a/plugins/samplesink/filesink/filesink.pro +++ b/plugins/samplesink/filesink/filesink.pro @@ -20,6 +20,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase INCLUDEPATH += ../../../sdrgui +INCLUDEPATH += ../../../swagger/sdrangel/code/qt5/client CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -40,5 +41,6 @@ FORMS += filesinkgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui +LIBS += -L../../../swagger/$${build_subdir} -lswagger RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesink/filesink/filesinkoutput.cpp b/plugins/samplesink/filesink/filesinkoutput.cpp index 2eeaeaa53..80497575b 100644 --- a/plugins/samplesink/filesink/filesinkoutput.cpp +++ b/plugins/samplesink/filesink/filesinkoutput.cpp @@ -16,8 +16,12 @@ #include #include +#include #include +#include "SWGDeviceSettings.h" +#include "SWGDeviceState.h" + #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" @@ -271,3 +275,32 @@ void FileSinkOutput::applySettings(const FileSinkSettings& settings, bool force) } } + +int FileSinkOutput::webapiRunGet( + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage __attribute__((unused))) +{ + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); + return 200; +} + +int FileSinkOutput::webapiRun( + bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage __attribute__((unused))) +{ + MsgStartStop *message = MsgStartStop::create(run); + m_inputMessageQueue.push(message); + + if (m_guiMessageQueue) + { + MsgStartStop *messagetoGui = MsgStartStop::create(run); + m_guiMessageQueue->push(messagetoGui); + } + + usleep(100000); + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); + return 200; +} + + diff --git a/plugins/samplesink/filesink/filesinkoutput.h b/plugins/samplesink/filesink/filesinkoutput.h index 014455568..afecc5ddd 100644 --- a/plugins/samplesink/filesink/filesinkoutput.h +++ b/plugins/samplesink/filesink/filesinkoutput.h @@ -184,6 +184,15 @@ public: virtual bool handleMessage(const Message& message); + virtual int webapiRunGet( + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage); + + virtual int webapiRun( + bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage); + private: DeviceSinkAPI *m_deviceAPI; QMutex m_mutex; diff --git a/plugins/samplesink/sdrdaemonsink/CMakeLists.txt b/plugins/samplesink/sdrdaemonsink/CMakeLists.txt index 2e37b4482..a18319650 100644 --- a/plugins/samplesink/sdrdaemonsink/CMakeLists.txt +++ b/plugins/samplesink/sdrdaemonsink/CMakeLists.txt @@ -1,5 +1,7 @@ project(sdrdaemonsink) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + if (HAS_SSSE3) message(STATUS "SDRdaemonFEC: use SSSE3 SIMD" ) elseif (HAS_NEON) @@ -37,6 +39,7 @@ if (BUILD_DEBIAN) include_directories( . ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client ${LIBCM256CCSRC} ${LIBNANOMSG_INCLUDE_DIR} ) @@ -44,6 +47,7 @@ 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} @@ -67,6 +71,7 @@ target_link_libraries(outputsdrdaemonsink ${QT_LIBRARIES} sdrbase sdrgui + swagger cm256cc ${LIBNANOMSG_LIBRARIES} ) @@ -75,6 +80,7 @@ target_link_libraries(outputsdrdaemonsink ${QT_LIBRARIES} sdrbase sdrgui + swagger ${CM256CC_LIBRARIES} ${LIBNANOMSG_LIBRARIES} ) diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp index 65d083099..2db6bd872 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp @@ -16,8 +16,12 @@ #include #include +#include #include +#include "SWGDeviceSettings.h" +#include "SWGDeviceState.h" + #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" @@ -292,5 +296,33 @@ void SDRdaemonSinkOutput::applySettings(const SDRdaemonSinkSettings& settings, b DSPSignalNotification *notif = new DSPSignalNotification(m_settings.m_sampleRate, m_settings.m_centerFrequency); m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } - } + +int SDRdaemonSinkOutput::webapiRunGet( + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage __attribute__((unused))) +{ + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); + return 200; +} + +int SDRdaemonSinkOutput::webapiRun( + bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage __attribute__((unused))) +{ + MsgStartStop *message = MsgStartStop::create(run); + m_inputMessageQueue.push(message); + + if (m_guiMessageQueue) + { + MsgStartStop *messagetoGui = MsgStartStop::create(run); + m_guiMessageQueue->push(messagetoGui); + } + + usleep(100000); + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); + return 200; +} + + diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.h b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.h index 24af6f7a8..2aad5cac9 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.h +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.h @@ -165,6 +165,15 @@ public: virtual bool handleMessage(const Message& message); + virtual int webapiRunGet( + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage); + + virtual int webapiRun( + bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage); + private: DeviceSinkAPI *m_deviceAPI; QMutex m_mutex;