diff --git a/CMakeLists.txt b/CMakeLists.txt index 84cb10750..efb5e20db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -185,12 +185,14 @@ endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fmax-errors=10 -ffast-math -ftree-vectorize ${EXTRA_FLAGS}") ############################################################################## -# SDRbase library +# base libraries add_subdirectory(sdrbase) +add_subdirectory(sdrgui) include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/sdrbase + ${CMAKE_SOURCE_DIR}/sdrgui ${OPENGL_INCLUDE_DIR} ) @@ -208,6 +210,7 @@ add_executable(sdrangel target_link_libraries(sdrangel sdrbase + sdrgui ${QT_LIBRARIES} ${OPENGL_LIBRARIES} ) diff --git a/app/app.pro b/app/app.pro index bdd7bf26e..d39bdef7d 100644 --- a/app/app.pro +++ b/app/app.pro @@ -11,12 +11,14 @@ QMAKE_CXXFLAGS += -std=c++11 TEMPLATE = app TARGET = sdrangel INCLUDEPATH += $$PWD/../sdrbase +INCLUDEPATH += $$PWD/../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug SOURCES += main.cpp LIBS += -L../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../sdrgui/$${build_subdir} -lsdrgui CONFIG(ANDROID):CONFIG += mobility CONFIG(ANDROID):MOBILITY = diff --git a/apple/deploy.sh b/apple/deploy.sh index aee2afb8b..355f0a2b6 100755 --- a/apple/deploy.sh +++ b/apple/deploy.sh @@ -15,6 +15,7 @@ cp -v fcdhid/libfcdhid.dylib $APP_LIB cp -v fcdlib/libfcdlib.dylib $APP_LIB cp -v mbelib/libmbelib.dylib $APP_LIB cp -v sdrbase/libsdrbase.dylib $APP_LIB +cp -v sdrbase/libsdrgui.dylib $APP_LIB cp -v devices/libdevices.dylib $APP_LIB cp -v dsdcc/libdsdcc.dylib $APP_LIB diff --git a/plugins/channelrx/chanalyzer/CMakeLists.txt b/plugins/channelrx/chanalyzer/CMakeLists.txt index f1dfbbb6a..1d099f8fe 100644 --- a/plugins/channelrx/chanalyzer/CMakeLists.txt +++ b/plugins/channelrx/chanalyzer/CMakeLists.txt @@ -38,6 +38,7 @@ add_library(chanalyzer SHARED target_link_libraries(chanalyzer ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(chanalyzer Core Widgets ) diff --git a/plugins/channelrx/chanalyzer/chanalyzer.pro b/plugins/channelrx/chanalyzer/chanalyzer.pro index db8c770e7..67a4d5588 100644 --- a/plugins/channelrx/chanalyzer/chanalyzer.pro +++ b/plugins/channelrx/chanalyzer/chanalyzer.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(ANDROID):INCLUDEPATH += /opt/softs/boost_1_60_0 CONFIG(MINGW32):INCLUDEPATH += "D:\boost_1_58_0" @@ -39,5 +40,6 @@ chanalyzerplugin.h FORMS += chanalyzergui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/chanalyzer/chanalyzergui.ui b/plugins/channelrx/chanalyzer/chanalyzergui.ui index d0c96d801..bec5d53ad 100644 --- a/plugins/channelrx/chanalyzer/chanalyzergui.ui +++ b/plugins/channelrx/chanalyzer/chanalyzergui.ui @@ -507,7 +507,7 @@ - + diff --git a/plugins/channelrx/chanalyzerng/CMakeLists.txt b/plugins/channelrx/chanalyzerng/CMakeLists.txt index efedaadc0..773912188 100644 --- a/plugins/channelrx/chanalyzerng/CMakeLists.txt +++ b/plugins/channelrx/chanalyzerng/CMakeLists.txt @@ -38,6 +38,7 @@ add_library(chanalyzerng SHARED target_link_libraries(chanalyzerng ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(chanalyzerng Core Widgets ) diff --git a/plugins/channelrx/chanalyzerng/chanalyzerng.pro b/plugins/channelrx/chanalyzerng/chanalyzerng.pro index 65cb0023f..19a0d8987 100644 --- a/plugins/channelrx/chanalyzerng/chanalyzerng.pro +++ b/plugins/channelrx/chanalyzerng/chanalyzerng.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(ANDROID):INCLUDEPATH += /opt/softs/boost_1_60_0 CONFIG(MINGW32):INCLUDEPATH += "D:\boost_1_58_0" @@ -39,5 +40,6 @@ chanalyzerngplugin.h FORMS += chanalyzernggui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/chanalyzerng/chanalyzernggui.ui b/plugins/channelrx/chanalyzerng/chanalyzernggui.ui index 4776e1e36..e909030cc 100644 --- a/plugins/channelrx/chanalyzerng/chanalyzernggui.ui +++ b/plugins/channelrx/chanalyzerng/chanalyzernggui.ui @@ -188,7 +188,7 @@ - + :/arrow_down.png:/arrow_down.png @@ -614,35 +614,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channelrx/demodam/CMakeLists.txt b/plugins/channelrx/demodam/CMakeLists.txt index cbbd3ae9c..7ec8181dc 100644 --- a/plugins/channelrx/demodam/CMakeLists.txt +++ b/plugins/channelrx/demodam/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(demodam SHARED target_link_libraries(demodam ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodam Core Widgets) diff --git a/plugins/channelrx/demodam/amdemodgui.ui b/plugins/channelrx/demodam/amdemodgui.ui index bccc9f7ae..01b80ae3f 100644 --- a/plugins/channelrx/demodam/amdemodgui.ui +++ b/plugins/channelrx/demodam/amdemodgui.ui @@ -177,7 +177,7 @@ ... - + :/sound_on.png :/sound_off.png:/sound_on.png @@ -252,7 +252,7 @@ Toggle boxcar bandpass filter with 300 Hz low cuttof - + :/filter_bandpass.png :/filter_bandpass.png:/filter_bandpass.png @@ -425,27 +425,7 @@ - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channelrx/demodam/demodam.pro b/plugins/channelrx/demodam/demodam.pro index ed42eeec6..1ab4a6d8b 100644 --- a/plugins/channelrx/demodam/demodam.pro +++ b/plugins/channelrx/demodam/demodam.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += amdemod.h\ FORMS += amdemodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demodatv/CMakeLists.txt b/plugins/channelrx/demodatv/CMakeLists.txt index b1be5cbc3..7c783ecc1 100644 --- a/plugins/channelrx/demodatv/CMakeLists.txt +++ b/plugins/channelrx/demodatv/CMakeLists.txt @@ -42,6 +42,7 @@ add_library(demodatv SHARED target_link_libraries(demodatv ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodatv Core Widgets) diff --git a/plugins/channelrx/demodatv/atvdemodgui.ui b/plugins/channelrx/demodatv/atvdemodgui.ui index 2e8d6cb9f..d48aa0577 100644 --- a/plugins/channelrx/demodatv/atvdemodgui.ui +++ b/plugins/channelrx/demodatv/atvdemodgui.ui @@ -123,7 +123,7 @@ - + :/arrow_down.png:/arrow_down.png @@ -188,7 +188,7 @@ - :/carrier.png + :/carrier.png @@ -383,7 +383,7 @@ - + :/filter_bandpass.png:/filter_bandpass.png @@ -1142,34 +1142,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channelrx/demodatv/demodatv.pro b/plugins/channelrx/demodatv/demodatv.pro index 9bd4cf39d..a6d46d75e 100644 --- a/plugins/channelrx/demodatv/demodatv.pro +++ b/plugins/channelrx/demodatv/demodatv.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -42,5 +43,6 @@ HEADERS += atvdemod.h\ FORMS += atvdemodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demodbfm/CMakeLists.txt b/plugins/channelrx/demodbfm/CMakeLists.txt index 17f901d0f..096dce3bb 100644 --- a/plugins/channelrx/demodbfm/CMakeLists.txt +++ b/plugins/channelrx/demodbfm/CMakeLists.txt @@ -47,6 +47,7 @@ add_library(demodbfm SHARED target_link_libraries(demodbfm ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodbfm Core Widgets) diff --git a/plugins/channelrx/demodbfm/bfmdemodgui.ui b/plugins/channelrx/demodbfm/bfmdemodgui.ui index 926858447..31c050a94 100644 --- a/plugins/channelrx/demodbfm/bfmdemodgui.ui +++ b/plugins/channelrx/demodbfm/bfmdemodgui.ui @@ -181,7 +181,7 @@ - + :/mono.png :/stereo.png:/mono.png @@ -199,7 +199,7 @@ - + :/lsb.png:/lsb.png @@ -219,7 +219,7 @@ - + :/carrier.png:/carrier.png @@ -262,7 +262,7 @@ . - + :/rds.png:/rds.png @@ -801,7 +801,7 @@ - + :/recycle.png:/recycle.png @@ -1889,27 +1889,7 @@ - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channelrx/demodbfm/demodbfm.pro b/plugins/channelrx/demodbfm/demodbfm.pro index 908d69982..4a8cd67df 100644 --- a/plugins/channelrx/demodbfm/demodbfm.pro +++ b/plugins/channelrx/demodbfm/demodbfm.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(ANDROID):INCLUDEPATH += /opt/softs/boost_1_60_0 CONFIG(MINGW32):INCLUDEPATH += "D:\boost_1_58_0" @@ -49,5 +50,6 @@ HEADERS += bfmdemod.h\ FORMS += bfmdemodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demoddsd/CMakeLists.txt b/plugins/channelrx/demoddsd/CMakeLists.txt index 02a1b533a..43faa4559 100644 --- a/plugins/channelrx/demoddsd/CMakeLists.txt +++ b/plugins/channelrx/demoddsd/CMakeLists.txt @@ -55,6 +55,7 @@ if (BUILD_DEBIAN) target_link_libraries(demoddsd ${QT_LIBRARIES} sdrbase + sdrgui dsdcc mbelib ) @@ -62,6 +63,7 @@ else (BUILD_DEBIAN) target_link_libraries(demoddsd ${QT_LIBRARIES} sdrbase + sdrgui ${LIBDSDCC_LIBRARIES} ${LIBMBE_LIBRARY} ) diff --git a/plugins/channelrx/demoddsd/demoddsd.pro b/plugins/channelrx/demoddsd/demoddsd.pro index 1779fcd1c..ff90fb57a 100644 --- a/plugins/channelrx/demoddsd/demoddsd.pro +++ b/plugins/channelrx/demoddsd/demoddsd.pro @@ -31,6 +31,7 @@ CONFIG(macx):INCLUDEPATH += "../../../../../boost_1_64_0" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += $$LIBDSDCCSRC INCLUDEPATH += $$LIBMBELIBSRC @@ -54,6 +55,7 @@ dsddemodsettings.h FORMS = dsddemodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../dsdcc/$${build_subdir} -ldsdcc -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demoddsd/dsddemodgui.ui b/plugins/channelrx/demoddsd/dsddemodgui.ui index 32e9dc008..9dd65adb2 100644 --- a/plugins/channelrx/demoddsd/dsddemodgui.ui +++ b/plugins/channelrx/demoddsd/dsddemodgui.ui @@ -237,7 +237,7 @@ ... - + :/unlocked.png :/locked.png:/unlocked.png @@ -296,7 +296,7 @@ - + :/dsb.png:/dsb.png @@ -310,7 +310,7 @@ - + :/constellation.png :/slopep_icon.png:/constellation.png @@ -673,7 +673,7 @@ - + :/slot1_off.png :/slot1_on.png:/slot1_off.png @@ -691,7 +691,7 @@ - + :/slot2_off.png :/slot2_on.png:/slot2_off.png @@ -709,7 +709,7 @@ - + :/mono.png :/stereo.png:/mono.png @@ -834,7 +834,7 @@ ... - + :/sound_on.png :/sound_off.png:/sound_on.png @@ -1002,27 +1002,7 @@ - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channelrx/demodlora/CMakeLists.txt b/plugins/channelrx/demodlora/CMakeLists.txt index ba22f3c7b..d8076dac0 100644 --- a/plugins/channelrx/demodlora/CMakeLists.txt +++ b/plugins/channelrx/demodlora/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(demodlora SHARED target_link_libraries(demodlora ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodlora Core Widgets) diff --git a/plugins/channelrx/demodlora/demodlora.pro b/plugins/channelrx/demodlora/demodlora.pro index 52ce48462..29438cf8f 100644 --- a/plugins/channelrx/demodlora/demodlora.pro +++ b/plugins/channelrx/demodlora/demodlora.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += lorademod.h\ FORMS += lorademodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demodnfm/CMakeLists.txt b/plugins/channelrx/demodnfm/CMakeLists.txt index 7a3267b50..e90f874af 100644 --- a/plugins/channelrx/demodnfm/CMakeLists.txt +++ b/plugins/channelrx/demodnfm/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(demodnfm SHARED target_link_libraries(demodnfm ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodnfm Core Widgets) diff --git a/plugins/channelrx/demodnfm/demodnfm.pro b/plugins/channelrx/demodnfm/demodnfm.pro index 10775629a..ab9a447aa 100644 --- a/plugins/channelrx/demodnfm/demodnfm.pro +++ b/plugins/channelrx/demodnfm/demodnfm.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += nfmdemod.h\ FORMS += nfmdemodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demodnfm/nfmdemodgui.ui b/plugins/channelrx/demodnfm/nfmdemodgui.ui index 88a03d65e..0abea44fa 100644 --- a/plugins/channelrx/demodnfm/nfmdemodgui.ui +++ b/plugins/channelrx/demodnfm/nfmdemodgui.ui @@ -589,7 +589,7 @@ ... - + :/sound_on.png :/sound_off.png:/sound_on.png @@ -642,27 +642,7 @@ - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channelrx/demodssb/CMakeLists.txt b/plugins/channelrx/demodssb/CMakeLists.txt index 53cf45296..f70d0a7e5 100644 --- a/plugins/channelrx/demodssb/CMakeLists.txt +++ b/plugins/channelrx/demodssb/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(demodssb SHARED target_link_libraries(demodssb ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodssb Core Widgets) diff --git a/plugins/channelrx/demodssb/demodssb.pro b/plugins/channelrx/demodssb/demodssb.pro index 6b347d66f..11e37b289 100644 --- a/plugins/channelrx/demodssb/demodssb.pro +++ b/plugins/channelrx/demodssb/demodssb.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += ssbdemod.h\ FORMS += ssbdemodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demodssb/ssbdemodgui.ui b/plugins/channelrx/demodssb/ssbdemodgui.ui index 2d185d643..95e712e77 100644 --- a/plugins/channelrx/demodssb/ssbdemodgui.ui +++ b/plugins/channelrx/demodssb/ssbdemodgui.ui @@ -178,7 +178,7 @@ ... - + :/mono.png :/stereo.png:/mono.png @@ -196,7 +196,7 @@ ... - + :/flip_lr.png :/flip_rl.png:/flip_lr.png @@ -214,7 +214,7 @@ ... - + :/usb.png :/dsb.png:/usb.png @@ -638,7 +638,7 @@ - + :/sound_on.png :/sound_off.png:/sound_on.png @@ -739,35 +739,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channelrx/demodwfm/CMakeLists.txt b/plugins/channelrx/demodwfm/CMakeLists.txt index c4d1040c4..625af826b 100644 --- a/plugins/channelrx/demodwfm/CMakeLists.txt +++ b/plugins/channelrx/demodwfm/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(demodwfm SHARED target_link_libraries(demodwfm ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodwfm Core Widgets) diff --git a/plugins/channelrx/demodwfm/demodwfm.pro b/plugins/channelrx/demodwfm/demodwfm.pro index d4614bfbd..a07d4d6b6 100644 --- a/plugins/channelrx/demodwfm/demodwfm.pro +++ b/plugins/channelrx/demodwfm/demodwfm.pro @@ -18,7 +18,7 @@ QMAKE_CXXFLAGS += -msse4.1 QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD -INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +36,6 @@ HEADERS += wfmdemod.h\ FORMS += wfmdemodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/demodwfm/wfmdemodgui.ui b/plugins/channelrx/demodwfm/wfmdemodgui.ui index 1bee28707..6fabad5e6 100644 --- a/plugins/channelrx/demodwfm/wfmdemodgui.ui +++ b/plugins/channelrx/demodwfm/wfmdemodgui.ui @@ -380,7 +380,7 @@ - + :/sound_on.png :/sound_off.png:/sound_on.png @@ -415,7 +415,7 @@ - + diff --git a/plugins/channelrx/tcpsrc/CMakeLists.txt b/plugins/channelrx/tcpsrc/CMakeLists.txt index b80fbc1e9..6986907b6 100644 --- a/plugins/channelrx/tcpsrc/CMakeLists.txt +++ b/plugins/channelrx/tcpsrc/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(demodtcpsrc SHARED target_link_libraries(demodtcpsrc ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodtcpsrc Core Widgets Network) diff --git a/plugins/channelrx/tcpsrc/tcpsrc.pro b/plugins/channelrx/tcpsrc/tcpsrc.pro index 52c03f591..0b50cace3 100644 --- a/plugins/channelrx/tcpsrc/tcpsrc.pro +++ b/plugins/channelrx/tcpsrc/tcpsrc.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += tcpsrc.h\ FORMS += tcpsrcgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/udpsrc/CMakeLists.txt b/plugins/channelrx/udpsrc/CMakeLists.txt index 66a427bb1..c3bd55b6e 100644 --- a/plugins/channelrx/udpsrc/CMakeLists.txt +++ b/plugins/channelrx/udpsrc/CMakeLists.txt @@ -39,6 +39,7 @@ add_library(demodudpsrc SHARED target_link_libraries(demodudpsrc ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(demodudpsrc Core Widgets Network) diff --git a/plugins/channelrx/udpsrc/udpsrc.pro b/plugins/channelrx/udpsrc/udpsrc.pro index 7a35582a1..87118283f 100644 --- a/plugins/channelrx/udpsrc/udpsrc.pro +++ b/plugins/channelrx/udpsrc/udpsrc.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += udpsrc.h\ FORMS += udpsrcgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channelrx/udpsrc/udpsrcgui.ui b/plugins/channelrx/udpsrc/udpsrcgui.ui index d1bee88ca..9ab8bc856 100644 --- a/plugins/channelrx/udpsrc/udpsrcgui.ui +++ b/plugins/channelrx/udpsrc/udpsrcgui.ui @@ -479,7 +479,7 @@ ... - + :/sound_off.png :/sound_on.png:/sound_off.png @@ -497,7 +497,7 @@ ... - + :/mono.png :/stereo.png:/mono.png @@ -776,7 +776,7 @@ - + diff --git a/plugins/channeltx/modam/CMakeLists.txt b/plugins/channeltx/modam/CMakeLists.txt index 5e7ee66b5..0be430f84 100644 --- a/plugins/channeltx/modam/CMakeLists.txt +++ b/plugins/channeltx/modam/CMakeLists.txt @@ -38,6 +38,7 @@ add_library(modam SHARED target_link_libraries(modam ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(modam Core Widgets) diff --git a/plugins/channeltx/modam/ammodgui.ui b/plugins/channeltx/modam/ammodgui.ui index 74d88fec7..1b98dafa4 100644 --- a/plugins/channeltx/modam/ammodgui.ui +++ b/plugins/channeltx/modam/ammodgui.ui @@ -172,7 +172,7 @@ ... - + :/txon.png :/txoff.png:/txon.png @@ -376,7 +376,7 @@ ... - + :/carrier.png:/carrier.png @@ -390,7 +390,7 @@ ... - + :/morsekey.png:/morsekey.png @@ -455,7 +455,7 @@ ... - + :/microphone.png:/microphone.png @@ -526,7 +526,7 @@ - + :/preset-load.png:/preset-load.png @@ -540,7 +540,7 @@ ... - + :/playloop.png:/playloop.png @@ -554,7 +554,7 @@ ... - + :/play.png :/pause.png :/play.png @@ -690,29 +690,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channeltx/modam/modam.pro b/plugins/channeltx/modam/modam.pro index 9ac12eef5..239a16ddf 100644 --- a/plugins/channeltx/modam/modam.pro +++ b/plugins/channeltx/modam/modam.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += ammod.h\ FORMS += ammodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channeltx/modatv/CMakeLists.txt b/plugins/channeltx/modatv/CMakeLists.txt index 4188a2389..4d89f8fe7 100644 --- a/plugins/channeltx/modatv/CMakeLists.txt +++ b/plugins/channeltx/modatv/CMakeLists.txt @@ -42,6 +42,7 @@ target_link_libraries(modatv ${OpenCV_LIBS} ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(modatv Core Widgets) diff --git a/plugins/channeltx/modatv/atvmodgui.ui b/plugins/channeltx/modatv/atvmodgui.ui index 10f6bf925..e311e0f1d 100644 --- a/plugins/channeltx/modatv/atvmodgui.ui +++ b/plugins/channeltx/modatv/atvmodgui.ui @@ -136,7 +136,7 @@ - + :/arrow_down.png:/arrow_down.png @@ -219,7 +219,7 @@ ... - + :/txon.png :/txoff.png:/txon.png @@ -936,7 +936,7 @@ - + :/picture.png:/picture.png @@ -980,7 +980,7 @@ - + :/film_reel.png:/film_reel.png @@ -1005,7 +1005,7 @@ ... - + :/playloop.png:/playloop.png @@ -1019,7 +1019,7 @@ ... - + :/play.png :/pause.png :/play.png @@ -1141,7 +1141,7 @@ - :/camera.png + :/camera.png @@ -1157,7 +1157,7 @@ - + :/play.png :/pause.png :/play.png @@ -1324,34 +1324,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channeltx/modatv/modatv.pro b/plugins/channeltx/modatv/modatv.pro index dc8acb30e..464796e74 100644 --- a/plugins/channeltx/modatv/modatv.pro +++ b/plugins/channeltx/modatv/modatv.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -40,9 +41,10 @@ HEADERS += atvmod.h\ FORMS += atvmodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui CONFIG(MINGW32):LIBS += -LD:\softs\opencv\build\mw32\install\x86\mingw\bin -llibopencv_core2413 -llibopencv_highgui2413 -llibopencv_imgproc2413 CONFIG(MINGW64):LIBS += -LD:\softs\opencv\build\mw64\install\x64\mingw\bin -llibopencv_core2413 -llibopencv_highgui2413 -llibopencv_imgproc2413 CONFIG(macx):LIBS += -L/opt/local/lib -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_video -lopencv_videoio -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channeltx/modnfm/CMakeLists.txt b/plugins/channeltx/modnfm/CMakeLists.txt index 10d579e3a..d9d2d6ecb 100644 --- a/plugins/channeltx/modnfm/CMakeLists.txt +++ b/plugins/channeltx/modnfm/CMakeLists.txt @@ -38,6 +38,7 @@ add_library(modnfm SHARED target_link_libraries(modnfm ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(modnfm Core Widgets) diff --git a/plugins/channeltx/modnfm/modnfm.pro b/plugins/channeltx/modnfm/modnfm.pro index 7a938e07f..f849c1f2b 100644 --- a/plugins/channeltx/modnfm/modnfm.pro +++ b/plugins/channeltx/modnfm/modnfm.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += nfmmod.h\ FORMS += nfmmodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channeltx/modnfm/nfmmodgui.ui b/plugins/channeltx/modnfm/nfmmodgui.ui index db9377cfe..3805fd725 100644 --- a/plugins/channeltx/modnfm/nfmmodgui.ui +++ b/plugins/channeltx/modnfm/nfmmodgui.ui @@ -172,7 +172,7 @@ ... - + :/txon.png :/txoff.png:/txon.png @@ -416,7 +416,7 @@ ... - + :/carrier.png:/carrier.png @@ -430,7 +430,7 @@ ... - + :/morsekey.png:/morsekey.png @@ -495,7 +495,7 @@ ... - + :/microphone.png:/microphone.png @@ -603,7 +603,7 @@ - + :/preset-load.png:/preset-load.png @@ -617,7 +617,7 @@ ... - + :/playloop.png:/playloop.png @@ -631,7 +631,7 @@ ... - + :/play.png :/pause.png :/play.png @@ -767,29 +767,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channeltx/modssb/CMakeLists.txt b/plugins/channeltx/modssb/CMakeLists.txt index 74df7ef54..fc652b3a4 100644 --- a/plugins/channeltx/modssb/CMakeLists.txt +++ b/plugins/channeltx/modssb/CMakeLists.txt @@ -38,6 +38,7 @@ add_library(modssb SHARED target_link_libraries(modssb ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(modssb Core Widgets) diff --git a/plugins/channeltx/modssb/modssb.pro b/plugins/channeltx/modssb/modssb.pro index 6b928a460..5bc58f2c4 100644 --- a/plugins/channeltx/modssb/modssb.pro +++ b/plugins/channeltx/modssb/modssb.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += ssbmod.h\ FORMS += ssbmodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channeltx/modssb/ssbmodgui.ui b/plugins/channeltx/modssb/ssbmodgui.ui index 22ae22040..bdbd01702 100644 --- a/plugins/channeltx/modssb/ssbmodgui.ui +++ b/plugins/channeltx/modssb/ssbmodgui.ui @@ -178,7 +178,7 @@ ... - + :/mono.png :/stereo.png:/mono.png @@ -196,7 +196,7 @@ ... - + :/flip_lr.png :/flip_rl.png:/flip_lr.png @@ -214,7 +214,7 @@ ... - + :/usb.png :/dsb.png:/usb.png @@ -417,7 +417,7 @@ - + :/sound_on.png :/sound_off.png:/sound_on.png @@ -707,7 +707,7 @@ ... - + :/carrier.png:/carrier.png @@ -721,7 +721,7 @@ ... - + :/morsekey.png:/morsekey.png @@ -786,7 +786,7 @@ ... - + :/microphone.png:/microphone.png @@ -850,7 +850,7 @@ - + :/preset-load.png:/preset-load.png @@ -864,7 +864,7 @@ ... - + :/playloop.png:/playloop.png @@ -881,7 +881,7 @@ ... - + :/play.png :/pause.png :/play.png @@ -1078,27 +1078,7 @@ - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channeltx/modwfm/CMakeLists.txt b/plugins/channeltx/modwfm/CMakeLists.txt index 8c69d91bb..d712b8597 100644 --- a/plugins/channeltx/modwfm/CMakeLists.txt +++ b/plugins/channeltx/modwfm/CMakeLists.txt @@ -38,6 +38,7 @@ add_library(modwfm SHARED target_link_libraries(modwfm ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(modwfm Core Widgets) diff --git a/plugins/channeltx/modwfm/modwfm.pro b/plugins/channeltx/modwfm/modwfm.pro index 5f495adc8..abe2358bd 100644 --- a/plugins/channeltx/modwfm/modwfm.pro +++ b/plugins/channeltx/modwfm/modwfm.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += wfmmod.h\ FORMS += wfmmodgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channeltx/modwfm/wfmmodgui.ui b/plugins/channeltx/modwfm/wfmmodgui.ui index 69566c531..5291a1f21 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.ui +++ b/plugins/channeltx/modwfm/wfmmodgui.ui @@ -172,7 +172,7 @@ ... - + :/txon.png :/txoff.png:/txon.png @@ -416,7 +416,7 @@ ... - + :/carrier.png:/carrier.png @@ -430,7 +430,7 @@ ... - + :/morsekey.png:/morsekey.png @@ -495,7 +495,7 @@ ... - + :/microphone.png:/microphone.png @@ -566,7 +566,7 @@ - + :/preset-load.png:/preset-load.png @@ -580,7 +580,7 @@ ... - + :/playloop.png:/playloop.png @@ -594,7 +594,7 @@ ... - + :/play.png :/pause.png :/play.png @@ -730,29 +730,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/channeltx/udpsink/CMakeLists.txt b/plugins/channeltx/udpsink/CMakeLists.txt index c753e707d..b856fa4af 100644 --- a/plugins/channeltx/udpsink/CMakeLists.txt +++ b/plugins/channeltx/udpsink/CMakeLists.txt @@ -43,6 +43,7 @@ add_library(modudpsink SHARED target_link_libraries(modudpsink ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(modudpsink Core Widgets Network) diff --git a/plugins/channeltx/udpsink/udpsink.pro b/plugins/channeltx/udpsink/udpsink.pro index 133e97dae..4904bbc8c 100644 --- a/plugins/channeltx/udpsink/udpsink.pro +++ b/plugins/channeltx/udpsink/udpsink.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -40,5 +41,6 @@ HEADERS += udpsink.h\ FORMS += udpsinkgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/channeltx/udpsink/udpsinkgui.ui b/plugins/channeltx/udpsink/udpsinkgui.ui index 13adbd7ec..4ad726adb 100644 --- a/plugins/channeltx/udpsink/udpsinkgui.ui +++ b/plugins/channeltx/udpsink/udpsinkgui.ui @@ -625,7 +625,7 @@ - + :/txon.png :/txoff.png:/txon.png @@ -868,7 +868,7 @@ - + :/mono.png :/stereo.png:/mono.png @@ -963,7 +963,7 @@ - + diff --git a/plugins/samplesink/bladerfoutput/CMakeLists.txt b/plugins/samplesink/bladerfoutput/CMakeLists.txt index 8ec0cf45a..41779498f 100644 --- a/plugins/samplesink/bladerfoutput/CMakeLists.txt +++ b/plugins/samplesink/bladerfoutput/CMakeLists.txt @@ -56,6 +56,7 @@ target_link_libraries(outputbladerf ${QT_LIBRARIES} bladerf sdrbase + sdrgui bladerfdevice ) else (BUILD_DEBIAN) @@ -63,6 +64,7 @@ target_link_libraries(outputbladerf ${QT_LIBRARIES} ${LIBBLADERF_LIBRARIES} sdrbase + sdrgui bladerfdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesink/bladerfoutput/bladerfoutput.pro b/plugins/samplesink/bladerfoutput/bladerfoutput.pro index 2e80329f2..be58c5383 100644 --- a/plugins/samplesink/bladerfoutput/bladerfoutput.pro +++ b/plugins/samplesink/bladerfoutput/bladerfoutput.pro @@ -21,6 +21,7 @@ CONFIG(MINGW32):LIBBLADERFSRC = "D:\softs\bladeRF\host\libraries\libbladeRF\incl CONFIG(MINGW64):LIBBLADERFSRC = "D:\softs\bladeRF\host\libraries\libbladeRF\include" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices INCLUDEPATH += $$LIBBLADERFSRC @@ -42,7 +43,8 @@ HEADERS += bladerfoutputgui.h\ FORMS += bladerfoutputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../libbladerf/$${build_subdir} -llibbladerf LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesink/bladerfoutput/bladerfoutputgui.ui b/plugins/samplesink/bladerfoutput/bladerfoutputgui.ui index 97e462e49..d6902578b 100644 --- a/plugins/samplesink/bladerfoutput/bladerfoutputgui.ui +++ b/plugins/samplesink/bladerfoutput/bladerfoutputgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -573,31 +573,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesink/filesink/CMakeLists.txt b/plugins/samplesink/filesink/CMakeLists.txt index decb41d0c..813dd6f1b 100644 --- a/plugins/samplesink/filesink/CMakeLists.txt +++ b/plugins/samplesink/filesink/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(outputfilesink SHARED target_link_libraries(outputfilesink ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(outputfilesink Core Widgets) diff --git a/plugins/samplesink/filesink/filesink.pro b/plugins/samplesink/filesink/filesink.pro index 0c051f04e..8b26b5f35 100644 --- a/plugins/samplesink/filesink/filesink.pro +++ b/plugins/samplesink/filesink/filesink.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -38,5 +39,6 @@ HEADERS += filesinkgui.h\ FORMS += filesinkgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesink/filesink/filesinkgui.ui b/plugins/samplesink/filesink/filesinkgui.ui index f396763fd..b500b42d4 100644 --- a/plugins/samplesink/filesink/filesinkgui.ui +++ b/plugins/samplesink/filesink/filesinkgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -197,7 +197,7 @@ - + :/preset-load.png:/preset-load.png @@ -397,37 +397,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesink/hackrfoutput/CMakeLists.txt b/plugins/samplesink/hackrfoutput/CMakeLists.txt index cd9f2f590..c6fec4c68 100644 --- a/plugins/samplesink/hackrfoutput/CMakeLists.txt +++ b/plugins/samplesink/hackrfoutput/CMakeLists.txt @@ -57,6 +57,7 @@ target_link_libraries(outputhackrf ${QT_LIBRARIES} hackrf sdrbase + sdrgui hackrfdevice ) else (BUILD_DEBIAN) @@ -64,6 +65,7 @@ target_link_libraries(outputhackrf ${QT_LIBRARIES} ${LIBHACKRF_LIBRARIES} sdrbase + sdrgui hackrfdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.pro b/plugins/samplesink/hackrfoutput/hackrfoutput.pro index ed46f58ae..e99f4a8c7 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutput.pro +++ b/plugins/samplesink/hackrfoutput/hackrfoutput.pro @@ -21,6 +21,7 @@ CONFIG(MINGW32):LIBHACKRFSRC = "D:\softs\hackrf\host" CONFIG(MINGW64):LIBHACKRFSRC = "D:\softs\hackrf\host" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices !macx:INCLUDEPATH += $$LIBHACKRFSRC macx:INCLUDEPATH += /opt/local/include @@ -43,8 +44,9 @@ HEADERS += hackrfoutputgui.h\ FORMS += hackrfoutputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui !macx:LIBS += -L../../../libhackrf/$${build_subdir} -llibhackrf macx:LIBS += -L/opt/local/lib -lhackrf LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui b/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui index 078483613..1c98afb3c 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui +++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui @@ -68,7 +68,7 @@ - + :/play.png :/stop.png:/play.png @@ -499,31 +499,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesink/limesdroutput/CMakeLists.txt b/plugins/samplesink/limesdroutput/CMakeLists.txt index 2316eaa56..c6de9456c 100644 --- a/plugins/samplesink/limesdroutput/CMakeLists.txt +++ b/plugins/samplesink/limesdroutput/CMakeLists.txt @@ -65,6 +65,7 @@ target_link_libraries(outputlimesdr ${QT_LIBRARIES} limesuite sdrbase + sdrgui limesdrdevice ) else (BUILD_DEBIAN) @@ -72,6 +73,7 @@ target_link_libraries(outputlimesdr ${QT_LIBRARIES} ${LIMESUITE_LIBRARY} sdrbase + sdrgui limesdrdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesink/limesdroutput/limesdroutput.pro b/plugins/samplesink/limesdroutput/limesdroutput.pro index 79677077f..d1bff8379 100644 --- a/plugins/samplesink/limesdroutput/limesdroutput.pro +++ b/plugins/samplesink/limesdroutput/limesdroutput.pro @@ -22,6 +22,7 @@ CONFIG(MINGW64):LIBLIMESUITESRC = "D:\softs\LimeSuite" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices INCLUDEPATH += ../../../liblimesuite/srcmw INCLUDEPATH += $$LIBLIMESUITESRC/src @@ -53,7 +54,8 @@ HEADERS += limesdroutputgui.h\ FORMS += limesdroutputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../liblimesuite/$${build_subdir} -lliblimesuite LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesink/limesdroutput/limesdroutputgui.ui b/plugins/samplesink/limesdroutput/limesdroutputgui.ui index c5d84b101..ef0755699 100644 --- a/plugins/samplesink/limesdroutput/limesdroutputgui.ui +++ b/plugins/samplesink/limesdroutput/limesdroutputgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -653,7 +653,7 @@ - :/antenna.png + :/antenna.png @@ -729,7 +729,7 @@ - :/stream.png + :/stream.png @@ -921,35 +921,7 @@ QToolTip{background-color: white; color: black;} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesink/plutosdroutput/CMakeLists.txt b/plugins/samplesink/plutosdroutput/CMakeLists.txt index 4bd08ca9a..6e54c74c9 100644 --- a/plugins/samplesink/plutosdroutput/CMakeLists.txt +++ b/plugins/samplesink/plutosdroutput/CMakeLists.txt @@ -55,6 +55,7 @@ target_link_libraries(outputplutosdr ${QT_LIBRARIES} iio sdrbase + sdrgui plutosdrdevice ) else (BUILD_DEBIAN) @@ -62,6 +63,7 @@ target_link_libraries(outputplutosdr ${QT_LIBRARIES} ${LIBIIO_LIBRARIES} sdrbase + sdrgui plutosdrdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesink/plutosdroutput/plutosdroutput.pro b/plugins/samplesink/plutosdroutput/plutosdroutput.pro index c79a94ddc..7128c214f 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutput.pro +++ b/plugins/samplesink/plutosdroutput/plutosdroutput.pro @@ -22,6 +22,7 @@ CONFIG(MINGW64):LIBIIOSRC = "D:\softs\libiio" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices INCLUDEPATH += ../../../libiio/includemw INCLUDEPATH += $$LIBIIOSRC @@ -44,7 +45,8 @@ HEADERS += plutosdroutputgui.h\ FORMS += plutosdroutputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../libiio/$${build_subdir} -llibiio LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesink/plutosdroutput/plutosdroutputgui.ui b/plugins/samplesink/plutosdroutput/plutosdroutputgui.ui index ea61bf9c4..a996fa364 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutputgui.ui +++ b/plugins/samplesink/plutosdroutput/plutosdroutputgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -342,7 +342,7 @@ - :/antenna.png + :/antenna.png @@ -789,102 +789,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesink/sdrdaemonsink/CMakeLists.txt b/plugins/samplesink/sdrdaemonsink/CMakeLists.txt index 108ecd7e0..2e37b4482 100644 --- a/plugins/samplesink/sdrdaemonsink/CMakeLists.txt +++ b/plugins/samplesink/sdrdaemonsink/CMakeLists.txt @@ -66,6 +66,7 @@ if (BUILD_DEBIAN) target_link_libraries(outputsdrdaemonsink ${QT_LIBRARIES} sdrbase + sdrgui cm256cc ${LIBNANOMSG_LIBRARIES} ) @@ -73,6 +74,7 @@ else (BUILD_DEBIAN) target_link_libraries(outputsdrdaemonsink ${QT_LIBRARIES} sdrbase + sdrgui ${CM256CC_LIBRARIES} ${LIBNANOMSG_LIBRARIES} ) diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkgui.ui b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkgui.ui index 5a83c0d17..aa388601f 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkgui.ui +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -439,7 +439,7 @@ - + :/locked.png:/locked.png @@ -682,34 +682,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesource/airspy/CMakeLists.txt b/plugins/samplesource/airspy/CMakeLists.txt index 0ab3d561f..56cd563f0 100644 --- a/plugins/samplesource/airspy/CMakeLists.txt +++ b/plugins/samplesource/airspy/CMakeLists.txt @@ -55,12 +55,14 @@ target_link_libraries(inputairspy ${QT_LIBRARIES} airspy sdrbase + sdrgui ) else (BUILD_DEBIAN) target_link_libraries(inputairspy ${QT_LIBRARIES} ${LIBAIRSPY_LIBRARIES} sdrbase + sdrgui ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/airspy/airspy.pro b/plugins/samplesource/airspy/airspy.pro index f2db2fdaf..5cded93f4 100644 --- a/plugins/samplesource/airspy/airspy.pro +++ b/plugins/samplesource/airspy/airspy.pro @@ -15,6 +15,7 @@ CONFIG(MINGW32):LIBAIRSPYSRC = "D:\softs\libairspy" CONFIG(MINGW64):LIBAIRSPYSRC = "D:\softs\libairspy" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += $$LIBAIRSPYSRC DEFINES += LIBAIRSPY_DYN_RATES @@ -42,6 +43,7 @@ HEADERS += airspygui.h\ FORMS += airspygui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../libairspy/$${build_subdir} -llibairspy -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesource/airspy/airspygui.ui b/plugins/samplesource/airspy/airspygui.ui index f26919185..722d960e7 100644 --- a/plugins/samplesource/airspy/airspygui.ui +++ b/plugins/samplesource/airspy/airspygui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png:/record_off.png @@ -668,7 +668,7 @@ - + diff --git a/plugins/samplesource/airspy/airspythread.cpp b/plugins/samplesource/airspy/airspythread.cpp index 647d24df7..5576f4673 100644 --- a/plugins/samplesource/airspy/airspythread.cpp +++ b/plugins/samplesource/airspy/airspythread.cpp @@ -19,7 +19,7 @@ #include "airspythread.h" -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" AirspyThread *AirspyThread::m_this = 0; diff --git a/plugins/samplesource/airspy/airspythread.h b/plugins/samplesource/airspy/airspythread.h index 35d72bc11..52fa601e3 100644 --- a/plugins/samplesource/airspy/airspythread.h +++ b/plugins/samplesource/airspy/airspythread.h @@ -22,7 +22,7 @@ #include #include -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" #include "dsp/decimators.h" #define AIRSPY_BLOCKSIZE (1<<17) diff --git a/plugins/samplesource/bladerfinput/CMakeLists.txt b/plugins/samplesource/bladerfinput/CMakeLists.txt index 92d927007..a905044da 100644 --- a/plugins/samplesource/bladerfinput/CMakeLists.txt +++ b/plugins/samplesource/bladerfinput/CMakeLists.txt @@ -56,6 +56,7 @@ target_link_libraries(inputbladerf ${QT_LIBRARIES} bladerf sdrbase + sdrgui bladerfdevice ) else (BUILD_DEBIAN) @@ -63,6 +64,7 @@ target_link_libraries(inputbladerf ${QT_LIBRARIES} ${LIBBLADERF_LIBRARIES} sdrbase + sdrgui bladerfdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/bladerfinput/bladerfinput.pro b/plugins/samplesource/bladerfinput/bladerfinput.pro index 608b8b84b..2d452f5bd 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.pro +++ b/plugins/samplesource/bladerfinput/bladerfinput.pro @@ -21,6 +21,7 @@ CONFIG(MINGW32):LIBBLADERFSRC = "D:\softs\bladeRF\host\libraries\libbladeRF\incl CONFIG(MINGW64):LIBBLADERFSRC = "D:\softs\bladeRF\host\libraries\libbladeRF\include" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices INCLUDEPATH += $$LIBBLADERFSRC @@ -42,7 +43,8 @@ HEADERS += bladerfinputgui.h\ FORMS += bladerfinputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../libbladerf/$${build_subdir} -llibbladerf LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesource/bladerfinput/bladerfinputgui.ui b/plugins/samplesource/bladerfinput/bladerfinputgui.ui index ea5ecef05..744d3e7cf 100644 --- a/plugins/samplesource/bladerfinput/bladerfinputgui.ui +++ b/plugins/samplesource/bladerfinput/bladerfinputgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png :/record_on.png:/record_off.png @@ -716,7 +716,7 @@ - + diff --git a/plugins/samplesource/fcdpro/CMakeLists.txt b/plugins/samplesource/fcdpro/CMakeLists.txt index 426337b5c..559c461b6 100644 --- a/plugins/samplesource/fcdpro/CMakeLists.txt +++ b/plugins/samplesource/fcdpro/CMakeLists.txt @@ -47,6 +47,7 @@ target_link_libraries(inputfcdpro fcdhid fcdlib sdrbase + sdrgui ) qt5_use_modules(inputfcdpro Core Widgets) diff --git a/plugins/samplesource/fcdpro/fcdprogui.ui b/plugins/samplesource/fcdpro/fcdprogui.ui index f368fea64..d7a31d4c2 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.ui +++ b/plugins/samplesource/fcdpro/fcdprogui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png:/record_off.png @@ -507,7 +507,7 @@ - + diff --git a/plugins/samplesource/fcdpro/fcdprothread.cpp b/plugins/samplesource/fcdpro/fcdprothread.cpp index 83be7c3cc..e1fbbb721 100644 --- a/plugins/samplesource/fcdpro/fcdprothread.cpp +++ b/plugins/samplesource/fcdpro/fcdprothread.cpp @@ -20,7 +20,7 @@ #include #include "fcdprothread.h" -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" #include "fcdtraits.h" FCDProThread::FCDProThread(SampleSinkFifo* sampleFifo, QObject* parent) : diff --git a/plugins/samplesource/fcdpro/fcdprothread.h b/plugins/samplesource/fcdpro/fcdprothread.h index e7d8b72e5..ce3e47da5 100644 --- a/plugins/samplesource/fcdpro/fcdprothread.h +++ b/plugins/samplesource/fcdpro/fcdprothread.h @@ -22,7 +22,7 @@ #include #include "dsp/inthalfbandfilter.h" #include -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" class FCDProThread : public QThread { Q_OBJECT diff --git a/plugins/samplesource/fcdproplus/CMakeLists.txt b/plugins/samplesource/fcdproplus/CMakeLists.txt index 0a06d5ce4..96bd616b0 100644 --- a/plugins/samplesource/fcdproplus/CMakeLists.txt +++ b/plugins/samplesource/fcdproplus/CMakeLists.txt @@ -47,6 +47,7 @@ target_link_libraries(inputfcdproplus fcdhid fcdlib sdrbase + sdrgui ) qt5_use_modules(inputfcdproplus Core Widgets) diff --git a/plugins/samplesource/fcdproplus/fcdproplus.pro b/plugins/samplesource/fcdproplus/fcdproplus.pro index c6ea9344f..104c57167 100644 --- a/plugins/samplesource/fcdproplus/fcdproplus.pro +++ b/plugins/samplesource/fcdproplus/fcdproplus.pro @@ -18,6 +18,7 @@ QMAKE_CXXFLAGS += -msse4.1 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../fcdhid INCLUDEPATH += ../../../fcdlib @@ -41,3 +42,4 @@ FORMS += fcdproplusgui.ui LIBS += -L../../../fcdlib/$${build_subdir} -lfcdlib LIBS += -L../../../fcdhid/$${build_subdir} -lfcdhid LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.ui b/plugins/samplesource/fcdproplus/fcdproplusgui.ui index 270db02c2..82431d645 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.ui +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png:/record_off.png @@ -414,7 +414,7 @@ - + diff --git a/plugins/samplesource/fcdproplus/fcdproplusreader.cpp b/plugins/samplesource/fcdproplus/fcdproplusreader.cpp index ad392cec3..c12366a5c 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusreader.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusreader.cpp @@ -26,7 +26,7 @@ #include #include "fcdproplusreader.h" -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" #include "fcdtraits.h" FCDProPlusReader::FCDProPlusReader(SampleSinkFifo* sampleFifo, QObject* parent) : diff --git a/plugins/samplesource/fcdproplus/fcdproplusreader.h b/plugins/samplesource/fcdproplus/fcdproplusreader.h index 76aae634e..db78b5e29 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusreader.h +++ b/plugins/samplesource/fcdproplus/fcdproplusreader.h @@ -22,7 +22,7 @@ #include #include -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" #include "dsp/inthalfbandfilter.h" class QAudioInput; diff --git a/plugins/samplesource/fcdproplus/fcdproplusthread.cpp b/plugins/samplesource/fcdproplus/fcdproplusthread.cpp index 5bf083590..a29ca1411 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusthread.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusthread.cpp @@ -20,7 +20,7 @@ #include #include "fcdproplusthread.h" -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" #include "fcdtraits.h" FCDProPlusThread::FCDProPlusThread(SampleSinkFifo* sampleFifo, QObject* parent) : diff --git a/plugins/samplesource/fcdproplus/fcdproplusthread.h b/plugins/samplesource/fcdproplus/fcdproplusthread.h index 75629c726..74e7f6d75 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusthread.h +++ b/plugins/samplesource/fcdproplus/fcdproplusthread.h @@ -23,7 +23,7 @@ #include #include "dsp/inthalfbandfilter.h" #include -#include "../../../sdrbase/dsp/samplesinkfifo.h" +#include "dsp/samplesinkfifo.h" class FCDProPlusThread : public QThread { Q_OBJECT diff --git a/plugins/samplesource/filesource/CMakeLists.txt b/plugins/samplesource/filesource/CMakeLists.txt index a0ffde4b6..d8df4336c 100644 --- a/plugins/samplesource/filesource/CMakeLists.txt +++ b/plugins/samplesource/filesource/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(inputfilesource SHARED target_link_libraries(inputfilesource ${QT_LIBRARIES} sdrbase + sdrgui ) qt5_use_modules(inputfilesource Core Widgets) diff --git a/plugins/samplesource/filesource/filesource.pro b/plugins/samplesource/filesource/filesource.pro index 35e22b06c..976aa4243 100644 --- a/plugins/samplesource/filesource/filesource.pro +++ b/plugins/samplesource/filesource/filesource.pro @@ -19,6 +19,7 @@ QMAKE_CXXFLAGS += -std=c++11 INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui CONFIG(Release):build_subdir = release CONFIG(Debug):build_subdir = debug @@ -36,5 +37,6 @@ HEADERS += filesourcegui.h\ FORMS += filesourcegui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesource/filesource/filesourcegui.ui b/plugins/samplesource/filesource/filesourcegui.ui index 97309dbf9..f33b1e2a7 100644 --- a/plugins/samplesource/filesource/filesourcegui.ui +++ b/plugins/samplesource/filesource/filesourcegui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -197,7 +197,7 @@ - + :/preset-load.png:/preset-load.png @@ -306,7 +306,7 @@ - + :/playloop.png:/playloop.png @@ -329,7 +329,7 @@ - + :/play.png :/pause.png :/stop.png @@ -493,37 +493,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesource/hackrfinput/CMakeLists.txt b/plugins/samplesource/hackrfinput/CMakeLists.txt index 270820836..bb2c25c72 100644 --- a/plugins/samplesource/hackrfinput/CMakeLists.txt +++ b/plugins/samplesource/hackrfinput/CMakeLists.txt @@ -57,6 +57,7 @@ target_link_libraries(inputhackrf ${QT_LIBRARIES} hackrf sdrbase + sdrgui hackrfdevice ) else (BUILD_DEBIAN) @@ -64,6 +65,7 @@ target_link_libraries(inputhackrf ${QT_LIBRARIES} ${LIBHACKRF_LIBRARIES} sdrbase + sdrgui hackrfdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/hackrfinput/hackrfinput.pro b/plugins/samplesource/hackrfinput/hackrfinput.pro index 1ba5c9bfc..d031d124c 100644 --- a/plugins/samplesource/hackrfinput/hackrfinput.pro +++ b/plugins/samplesource/hackrfinput/hackrfinput.pro @@ -21,6 +21,7 @@ CONFIG(MINGW32):LIBHACKRFSRC = "D:\softs\hackrf\host" CONFIG(MINGW64):LIBHACKRFSRC = "D:\softs\hackrf\host" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices !macx:INCLUDEPATH += $$LIBHACKRFSRC macx:INCLUDEPATH += /opt/local/include @@ -43,8 +44,9 @@ HEADERS += hackrfinputgui.h\ FORMS += hackrfinputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui !macx:LIBS += -L../../../libhackrf/$${build_subdir} -llibhackrf macx:LIBS += -L/opt/local/lib -lhackrf LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.ui b/plugins/samplesource/hackrfinput/hackrfinputgui.ui index f45602539..dc2d7d917 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.ui +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.ui @@ -68,7 +68,7 @@ - + :/play.png :/stop.png:/play.png @@ -83,7 +83,7 @@ - + :/record_off.png:/record_off.png @@ -301,7 +301,7 @@ ... - + :/link.png:/link.png @@ -684,7 +684,7 @@ - + diff --git a/plugins/samplesource/limesdrinput/CMakeLists.txt b/plugins/samplesource/limesdrinput/CMakeLists.txt index 8287f7a5f..4d27c0bf1 100644 --- a/plugins/samplesource/limesdrinput/CMakeLists.txt +++ b/plugins/samplesource/limesdrinput/CMakeLists.txt @@ -65,6 +65,7 @@ target_link_libraries(inputlimesdr ${QT_LIBRARIES} limesuite sdrbase + sdrgui limesdrdevice ) else (BUILD_DEBIAN) @@ -72,6 +73,7 @@ target_link_libraries(inputlimesdr ${QT_LIBRARIES} ${LIMESUITE_LIBRARY} sdrbase + sdrgui limesdrdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/limesdrinput/limesdrinput.pro b/plugins/samplesource/limesdrinput/limesdrinput.pro index 12ef70008..38552c3af 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.pro +++ b/plugins/samplesource/limesdrinput/limesdrinput.pro @@ -24,6 +24,7 @@ CONFIG(MINGW64):LIBLIMESUITESRC = "D:\softs\LimeSuite" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices INCLUDEPATH += ../../../liblimesuite/srcmw INCLUDEPATH += $$LIBLIMESUITESRC/src @@ -55,7 +56,8 @@ HEADERS += limesdrinputgui.h\ FORMS += limesdrinputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../liblimesuite/$${build_subdir} -lliblimesuite LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.ui b/plugins/samplesource/limesdrinput/limesdrinputgui.ui index 82c290313..b15ecd167 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.ui +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png :/record_on.png:/record_off.png @@ -863,7 +863,7 @@ - :/antenna.png + :/antenna.png @@ -954,7 +954,7 @@ - :/stream.png + :/stream.png @@ -1149,7 +1149,7 @@ QToolTip{background-color: white; color: black;} - + diff --git a/plugins/samplesource/plutosdrinput/CMakeLists.txt b/plugins/samplesource/plutosdrinput/CMakeLists.txt index 4a9252d90..68a1fe431 100644 --- a/plugins/samplesource/plutosdrinput/CMakeLists.txt +++ b/plugins/samplesource/plutosdrinput/CMakeLists.txt @@ -55,6 +55,7 @@ target_link_libraries(inputplutosdr ${QT_LIBRARIES} iio sdrbase + sdrgui plutosdrdevice ) else (BUILD_DEBIAN) @@ -62,6 +63,7 @@ target_link_libraries(inputplutosdr ${QT_LIBRARIES} ${LIBIIO_LIBRARIES} sdrbase + sdrgui plutosdrdevice ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.pro b/plugins/samplesource/plutosdrinput/plutosdrinput.pro index 0f6a7297c..5d335f85d 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.pro +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.pro @@ -22,6 +22,7 @@ CONFIG(MINGW64):LIBIIOSRC = "D:\softs\libiio" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../devices INCLUDEPATH += ../../../libiio/includemw INCLUDEPATH += $$LIBIIOSRC @@ -44,7 +45,8 @@ HEADERS += plutosdrinputgui.h\ FORMS += plutosdrinputgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../libiio/$${build_subdir} -llibiio LIBS += -L../../../devices/$${build_subdir} -ldevices -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui index abdb83670..853cbad14 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png :/record_on.png:/record_off.png @@ -417,7 +417,7 @@ - :/antenna.png + :/antenna.png @@ -979,7 +979,7 @@ - + diff --git a/plugins/samplesource/rtlsdr/CMakeLists.txt b/plugins/samplesource/rtlsdr/CMakeLists.txt index 7e127242d..2dc991b57 100644 --- a/plugins/samplesource/rtlsdr/CMakeLists.txt +++ b/plugins/samplesource/rtlsdr/CMakeLists.txt @@ -54,12 +54,14 @@ target_link_libraries(inputrtlsdr ${QT_LIBRARIES} rtlsdr sdrbase + sdrgui ) else (BUILD_DEBIAN) target_link_libraries(inputrtlsdr ${QT_LIBRARIES} ${LIBRTLSDR_LIBRARIES} sdrbase + sdrgui ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/rtlsdr/rtlsdr.pro b/plugins/samplesource/rtlsdr/rtlsdr.pro index bd40d5c32..da86b8ad7 100644 --- a/plugins/samplesource/rtlsdr/rtlsdr.pro +++ b/plugins/samplesource/rtlsdr/rtlsdr.pro @@ -21,6 +21,7 @@ CONFIG(MINGW32):LIBRTLSDRSRC = "D:\softs\librtlsdr" CONFIG(MINGW64):LIBRTLSDRSRC = "D:\softs\librtlsdr" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui !macx:INCLUDEPATH += $$LIBRTLSDRSRC/include macx:INCLUDEPATH += /opt/local/include @@ -42,7 +43,8 @@ HEADERS += rtlsdrgui.h\ FORMS += rtlsdrgui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui !macx:LIBS += -L../../../librtlsdr/$${build_subdir} -llibrtlsdr macx:LIBS += -L/opt/local/lib -lrtlsdr -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.ui b/plugins/samplesource/rtlsdr/rtlsdrgui.ui index c09070110..358850187 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.ui +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png:/record_off.png @@ -607,7 +607,7 @@ - + diff --git a/plugins/samplesource/sdrdaemonsource/CMakeLists.txt b/plugins/samplesource/sdrdaemonsource/CMakeLists.txt index dc9ee1a84..327325e6e 100644 --- a/plugins/samplesource/sdrdaemonsource/CMakeLists.txt +++ b/plugins/samplesource/sdrdaemonsource/CMakeLists.txt @@ -67,6 +67,7 @@ target_link_libraries(inputsdrdaemonsource cm256cc ${LIBNANOMSG_LIBRARIES} sdrbase + sdrgui ) else (BUILD_DEBIAN) target_link_libraries(inputsdrdaemonsource @@ -74,6 +75,7 @@ target_link_libraries(inputsdrdaemonsource ${CM256CC_LIBRARIES} ${LIBNANOMSG_LIBRARIES} sdrbase + sdrgui ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsource.pro b/plugins/samplesource/sdrdaemonsource/sdrdaemonsource.pro index 93805a728..bd1208a55 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsource.pro +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsource.pro @@ -19,6 +19,7 @@ CONFIG(MINGW64):LIBCM256CCSRC = "D:\softs\cm256cc" INCLUDEPATH += $$PWD INCLUDEPATH += ../../../sdrbase +INCLUDEPATH += ../../../sdrgui INCLUDEPATH += $$LIBNANOMSGSRC/src INCLUDEPATH += $$LIBCM256CCSRC @@ -53,9 +54,10 @@ sdrdaemonsourceudphandler.h FORMS += sdrdaemonsourcegui.ui LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase +LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../nanomsg/$${build_subdir} -lnanomsg LIBS += -L../../../cm256cc/$${build_subdir} -lcm256cc -RESOURCES = ../../../sdrbase/resources/res.qrc +RESOURCES = ../../../sdrgui/resources/res.qrc CONFIG(MINGW32):DEFINES += USE_INTERNAL_TIMER=1 diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.ui b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.ui index 82f103cb9..d337548c1 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.ui +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourcegui.ui @@ -59,7 +59,7 @@ - + :/play.png :/stop.png:/play.png @@ -74,7 +74,7 @@ - + :/record_off.png:/record_off.png @@ -439,7 +439,7 @@ ... - + :/locked.png:/locked.png @@ -1074,24 +1074,7 @@ - - - - - - - - - - - - - - - - - - + diff --git a/plugins/samplesource/sdrplay/CMakeLists.txt b/plugins/samplesource/sdrplay/CMakeLists.txt index 6e0a81dd3..2b698a4f1 100644 --- a/plugins/samplesource/sdrplay/CMakeLists.txt +++ b/plugins/samplesource/sdrplay/CMakeLists.txt @@ -51,12 +51,14 @@ target_link_libraries(inputsdrplay ${QT_LIBRARIES} mirisdr sdrbase + sdrgui ) else (BUILD_DEBIAN) target_link_libraries(inputsdrplay ${QT_LIBRARIES} ${LIBMIRISDR_LIBRARIES} sdrbase + sdrgui ) endif (BUILD_DEBIAN) diff --git a/plugins/samplesource/sdrplay/sdrplaygui.ui b/plugins/samplesource/sdrplay/sdrplaygui.ui index f6c3045a1..95d7ecb82 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.ui +++ b/plugins/samplesource/sdrplay/sdrplaygui.ui @@ -65,7 +65,7 @@ - + :/play.png :/stop.png:/play.png @@ -80,7 +80,7 @@ - + :/record_off.png :/record_on.png:/record_off.png @@ -704,27 +704,7 @@ - - - - - - - - - - - - - - - - - - - - - + diff --git a/sdrbase/CMakeLists.txt b/sdrbase/CMakeLists.txt index d046a42ce..1ad0fc81d 100644 --- a/sdrbase/CMakeLists.txt +++ b/sdrbase/CMakeLists.txt @@ -1,8 +1,6 @@ project (sdrbase) set(sdrbase_SOURCES - mainwindow.cpp - audio/audiodeviceinfo.cpp audio/audiofifo.cpp audio/audiooutput.cpp @@ -39,56 +37,14 @@ set(sdrbase_SOURCES dsp/basebandsamplesource.cpp dsp/nullsink.cpp dsp/recursivefilters.cpp - dsp/spectrumscopecombovis.cpp - dsp/spectrumscopengcombovis.cpp - dsp/scopevis.cpp - dsp/scopevisng.cpp - dsp/scopevismulti.cpp - dsp/spectrumvis.cpp dsp/threadedbasebandsamplesink.cpp dsp/threadedbasebandsamplesource.cpp dsp/wfir.cpp - gui/aboutdialog.cpp - gui/addpresetdialog.cpp - gui/basicchannelsettingswidget.cpp - gui/basicchannelsettingsdialog.cpp - gui/buttonswitch.cpp - gui/channelwindow.cpp - gui/clickablelabel.cpp - gui/colormapper.cpp - gui/cwkeyergui.cpp - gui/glscope.cpp - gui/glscopegui.cpp - gui/glscopeng.cpp - gui/glscopemulti.cpp - gui/glscopenggui.cpp - gui/glscopemultigui.cpp - gui/glshadersimple.cpp - gui/glshadertextured.cpp - gui/glspectrum.cpp - gui/glspectrumgui.cpp - gui/indicator.cpp - gui/levelmeter.cpp - gui/mypositiondialog.cpp - gui/pluginsdialog.cpp - gui/audiodialog.cpp - gui/presetitem.cpp - gui/rollupwidget.cpp - gui/samplingdevicecontrol.cpp - gui/scale.cpp - gui/scaleengine.cpp - gui/transverterbutton.cpp - gui/transverterdialog.cpp - gui/valuedial.cpp - gui/valuedialz.cpp - dsp/devicesamplesource.cpp dsp/devicesamplesink.cpp - plugin/pluginapi.cpp plugin/plugininterface.cpp - plugin/pluginmanager.cpp settings/preferences.cpp settings/preset.cpp @@ -103,14 +59,9 @@ set(sdrbase_SOURCES util/samplesourceserializer.cpp util/simpleserializer.cpp #util/spinlock.cpp - - device/devicesourceapi.cpp - device/devicesinkapi.cpp ) set(sdrbase_HEADERS - mainwindow.h - audio/audiodeviceinfo.h audio/audiofifo.h audio/audiooutput.h @@ -163,57 +114,15 @@ set(sdrbase_HEADERS dsp/basebandsamplesink.h dsp/basebandsamplesource.h dsp/nullsink.h - dsp/spectrumscopecombovis.h - dsp/spectrumscopengcombovis.h - dsp/scopevis.h - dsp/scopevisng.h - dsp/scopevismulti.h - dsp/spectrumvis.h dsp/threadedbasebandsamplesink.h dsp/threadedbasebandsamplesource.h dsp/wfir.h - gui/aboutdialog.h - gui/addpresetdialog.h - gui/basicchannelsettingswidget.h - gui/basicchannelsettingsdialog.h - gui/buttonswitch.h - gui/channelwindow.h - gui/colormapper.h - gui/cwkeyergui.h - gui/glscope.h - gui/glscopegui.h - gui/glscopeng.h - gui/glscopemulti.h - gui/glscopenggui.h - gui/glscopemultigui.h - gui/glshadersimple.h - gui/glshadertextured.h - gui/glspectrum.h - gui/glspectrumgui.h - gui/indicator.h - gui/levelmeter.h - gui/mypositiondialog.h - gui/physicalunit.h - gui/pluginsdialog.h - gui/audiodialog.h - gui/presetitem.h - gui/rollupwidget.h - gui/samplingdevicecontrol.h - gui/scale.h - gui/scaleengine.h - gui/transverterbutton.h - gui/transverterdialog.h - gui/valuedial.h - gui/valuedialz.h - dsp/devicesamplesource.h dsp/devicesamplesink.h - plugin/pluginapi.h plugin/plugininstancegui.h plugin/plugininterface.h - plugin/pluginmanager.h settings/preferences.h settings/preset.h @@ -231,9 +140,6 @@ set(sdrbase_HEADERS util/samplesourceserializer.h util/simpleserializer.h #util/spinlock.h - - device/devicesourceapi.h - device/devicesinkapi.h ) set(sdrbase_SOURCES @@ -241,29 +147,6 @@ set(sdrbase_SOURCES ${sdrbase_HEADERS} ) -set(sdrbase_FORMS - mainwindow.ui - - gui/aboutdialog.ui - gui/addpresetdialog.ui - gui/basicchannelsettingswidget.ui - gui/basicchannelsettingsdialog.ui - gui/cwkeyergui.ui - gui/glscopegui.ui - gui/glscopenggui.ui - gui/glscopemultigui.ui - gui/glspectrumgui.ui - gui/pluginsdialog.ui - gui/audiodialog.ui - gui/samplingdevicecontrol.ui - gui/myposdialog.ui - gui/transverterdialog.ui -) - -set(sdrbase_RESOURCES - resources/res.qrc -) - if(FFTW3F_FOUND) set(sdrbase_SOURCES ${sdrbase_SOURCES} diff --git a/sdrbase/mainwindow.ui b/sdrbase/mainwindow.ui index e5a44eecb..316f1a48b 100644 --- a/sdrbase/mainwindow.ui +++ b/sdrbase/mainwindow.ui @@ -20,7 +20,7 @@ SDRangel - + :/sdrangel_icon.png:/sdrangel_icon.png @@ -327,7 +327,7 @@ ... - + :/preset-save.png:/preset-save.png @@ -347,7 +347,7 @@ ... - + :/preset-load.png:/preset-load.png @@ -380,7 +380,7 @@ ... - + :/preset-delete.png:/preset-delete.png @@ -434,7 +434,7 @@ ... - + :/preset-update.png:/preset-update.png @@ -467,7 +467,7 @@ ... - + :/preset-last.png:/preset-last.png @@ -487,7 +487,7 @@ - + :/export.png:/export.png @@ -514,7 +514,7 @@ - + :/import.png:/import.png @@ -696,26 +696,7 @@ presetLoad - - - - - - - - - - - - - - - - - - - - + diff --git a/sdrgui/CMakeLists.txt b/sdrgui/CMakeLists.txt new file mode 100644 index 000000000..2146018cc --- /dev/null +++ b/sdrgui/CMakeLists.txt @@ -0,0 +1,166 @@ +project (sdrgui) + +set(sdrgui_SOURCES + mainwindow.cpp + gui/aboutdialog.cpp + gui/addpresetdialog.cpp + gui/basicchannelsettingswidget.cpp + gui/basicchannelsettingsdialog.cpp + gui/buttonswitch.cpp + gui/channelwindow.cpp + gui/clickablelabel.cpp + gui/colormapper.cpp + gui/cwkeyergui.cpp + gui/glscope.cpp + gui/glscopegui.cpp + gui/glscopeng.cpp + gui/glscopemulti.cpp + gui/glscopenggui.cpp + gui/glscopemultigui.cpp + gui/glshadersimple.cpp + gui/glshadertextured.cpp + gui/glspectrum.cpp + gui/glspectrumgui.cpp + gui/indicator.cpp + gui/levelmeter.cpp + gui/mypositiondialog.cpp + gui/pluginsdialog.cpp + gui/audiodialog.cpp + gui/presetitem.cpp + gui/rollupwidget.cpp + gui/samplingdevicecontrol.cpp + gui/scale.cpp + gui/scaleengine.cpp + gui/transverterbutton.cpp + gui/transverterdialog.cpp + gui/valuedial.cpp + gui/valuedialz.cpp + + dsp/scopevis.cpp + dsp/scopevisng.cpp + dsp/scopevismulti.cpp + dsp/spectrumvis.cpp + dsp/spectrumscopecombovis.cpp + dsp/spectrumscopengcombovis.cpp + + device/devicesourceapi.cpp + device/devicesinkapi.cpp + + plugin/pluginapi.cpp + plugin/pluginmanager.cpp +) + +set(sdrgui_HEADERS + mainwindow.h + gui/aboutdialog.h + gui/addpresetdialog.h + gui/basicchannelsettingswidget.h + gui/basicchannelsettingsdialog.h + gui/buttonswitch.h + gui/channelwindow.h + gui/colormapper.h + gui/cwkeyergui.h + gui/glscope.h + gui/glscopegui.h + gui/glscopeng.h + gui/glscopemulti.h + gui/glscopenggui.h + gui/glscopemultigui.h + gui/glshadersimple.h + gui/glshadertextured.h + gui/glspectrum.h + gui/glspectrumgui.h + gui/indicator.h + gui/levelmeter.h + gui/mypositiondialog.h + gui/physicalunit.h + gui/pluginsdialog.h + gui/audiodialog.h + gui/presetitem.h + gui/rollupwidget.h + gui/samplingdevicecontrol.h + gui/scale.h + gui/scaleengine.h + gui/transverterbutton.h + gui/transverterdialog.h + gui/valuedial.h + gui/valuedialz.h + + dsp/scopevis.h + dsp/scopevisng.h + dsp/scopevismulti.h + dsp/spectrumvis.h + dsp/spectrumscopecombovis.h + dsp/spectrumscopengcombovis.h + + device/devicesourceapi.h + device/devicesinkapi.h + + plugin/pluginapi.h + plugin/pluginmanager.h +) + +set(sdrgui_SOURCES + ${sdrgui_SOURCES} + ${sdrgui_HEADERS} +) + +set(sdrgui_FORMS + mainwindow.ui + gui/aboutdialog.ui + gui/addpresetdialog.ui + gui/basicchannelsettingswidget.ui + gui/basicchannelsettingsdialog.ui + gui/cwkeyergui.ui + gui/glscopegui.ui + gui/glscopenggui.ui + gui/glscopemultigui.ui + gui/glspectrumgui.ui + gui/pluginsdialog.ui + gui/audiodialog.ui + gui/samplingdevicecontrol.ui + gui/myposdialog.ui + gui/transverterdialog.ui +) + +set(sdrgui_RESOURCES + resources/res.qrc +) + +add_definitions(${QT_DEFINITIONS}) +add_definitions(-DQT_SHARED) + +qt5_wrap_ui(sdrgui_FORMS_HEADERS ${sdrgui_FORMS}) +qt5_add_resources(sdrgui_RESOURCES_RCC ${sdrgui_RESOURCES}) + +if(WIN32) + SET(sdrgui_SOURCES ${sdrgui_SOURCES} resources/sdrangel.rc) +endif(WIN32) + +add_library(sdrgui SHARED + ${sdrgui_SOURCES} + ${sdrgui_HEADERS_MOC} + ${sdrgui_FORMS_HEADERS} + ${sdrgui_RESOURCES_RCC} +) + +include_directories( + . + ${CMAKE_SOURCE_DIR}/sdrbase + ${CMAKE_CURRENT_BINARY_DIR} + ${OPENGL_INCLUDE_DIR} +) + +target_link_libraries(sdrgui + ${QT_LIBRARIES} + ${OPENGL_LIBRARIES} + sdrbase +) + +set_target_properties(sdrgui PROPERTIES DEFINE_SYMBOL "sdrangel_EXPORTS") +target_compile_features(sdrgui PRIVATE cxx_generalized_initializers) # cmake >= 3.1.0 + +qt5_use_modules(sdrgui Core Widgets OpenGL Multimedia) + +install(TARGETS sdrgui DESTINATION lib) + diff --git a/sdrbase/device/devicesinkapi.cpp b/sdrgui/device/devicesinkapi.cpp similarity index 100% rename from sdrbase/device/devicesinkapi.cpp rename to sdrgui/device/devicesinkapi.cpp diff --git a/sdrbase/device/devicesinkapi.h b/sdrgui/device/devicesinkapi.h similarity index 100% rename from sdrbase/device/devicesinkapi.h rename to sdrgui/device/devicesinkapi.h diff --git a/sdrbase/device/devicesourceapi.cpp b/sdrgui/device/devicesourceapi.cpp similarity index 100% rename from sdrbase/device/devicesourceapi.cpp rename to sdrgui/device/devicesourceapi.cpp diff --git a/sdrbase/device/devicesourceapi.h b/sdrgui/device/devicesourceapi.h similarity index 100% rename from sdrbase/device/devicesourceapi.h rename to sdrgui/device/devicesourceapi.h diff --git a/sdrbase/dsp/scopevis.cpp b/sdrgui/dsp/scopevis.cpp similarity index 100% rename from sdrbase/dsp/scopevis.cpp rename to sdrgui/dsp/scopevis.cpp diff --git a/sdrbase/dsp/scopevis.h b/sdrgui/dsp/scopevis.h similarity index 100% rename from sdrbase/dsp/scopevis.h rename to sdrgui/dsp/scopevis.h diff --git a/sdrbase/dsp/scopevismulti.cpp b/sdrgui/dsp/scopevismulti.cpp similarity index 100% rename from sdrbase/dsp/scopevismulti.cpp rename to sdrgui/dsp/scopevismulti.cpp diff --git a/sdrbase/dsp/scopevismulti.h b/sdrgui/dsp/scopevismulti.h similarity index 100% rename from sdrbase/dsp/scopevismulti.h rename to sdrgui/dsp/scopevismulti.h diff --git a/sdrbase/dsp/scopevisng.cpp b/sdrgui/dsp/scopevisng.cpp similarity index 100% rename from sdrbase/dsp/scopevisng.cpp rename to sdrgui/dsp/scopevisng.cpp diff --git a/sdrbase/dsp/scopevisng.h b/sdrgui/dsp/scopevisng.h similarity index 100% rename from sdrbase/dsp/scopevisng.h rename to sdrgui/dsp/scopevisng.h diff --git a/sdrbase/dsp/spectrumscopecombovis.cpp b/sdrgui/dsp/spectrumscopecombovis.cpp similarity index 100% rename from sdrbase/dsp/spectrumscopecombovis.cpp rename to sdrgui/dsp/spectrumscopecombovis.cpp diff --git a/sdrbase/dsp/spectrumscopecombovis.h b/sdrgui/dsp/spectrumscopecombovis.h similarity index 100% rename from sdrbase/dsp/spectrumscopecombovis.h rename to sdrgui/dsp/spectrumscopecombovis.h diff --git a/sdrbase/dsp/spectrumscopengcombovis.cpp b/sdrgui/dsp/spectrumscopengcombovis.cpp similarity index 100% rename from sdrbase/dsp/spectrumscopengcombovis.cpp rename to sdrgui/dsp/spectrumscopengcombovis.cpp diff --git a/sdrbase/dsp/spectrumscopengcombovis.h b/sdrgui/dsp/spectrumscopengcombovis.h similarity index 100% rename from sdrbase/dsp/spectrumscopengcombovis.h rename to sdrgui/dsp/spectrumscopengcombovis.h diff --git a/sdrbase/dsp/spectrumvis.cpp b/sdrgui/dsp/spectrumvis.cpp similarity index 100% rename from sdrbase/dsp/spectrumvis.cpp rename to sdrgui/dsp/spectrumvis.cpp diff --git a/sdrbase/dsp/spectrumvis.h b/sdrgui/dsp/spectrumvis.h similarity index 98% rename from sdrbase/dsp/spectrumvis.h rename to sdrgui/dsp/spectrumvis.h index 854c89970..b411956a0 100644 --- a/sdrbase/dsp/spectrumvis.h +++ b/sdrgui/dsp/spectrumvis.h @@ -4,7 +4,7 @@ #include #include #include "dsp/fftengine.h" -#include "fftwindow.h" +#include "dsp/fftwindow.h" #include "util/export.h" #include "util/message.h" diff --git a/sdrbase/gui/aboutdialog.cpp b/sdrgui/gui/aboutdialog.cpp similarity index 100% rename from sdrbase/gui/aboutdialog.cpp rename to sdrgui/gui/aboutdialog.cpp diff --git a/sdrbase/gui/aboutdialog.h b/sdrgui/gui/aboutdialog.h similarity index 100% rename from sdrbase/gui/aboutdialog.h rename to sdrgui/gui/aboutdialog.h diff --git a/sdrbase/gui/aboutdialog.ui b/sdrgui/gui/aboutdialog.ui similarity index 100% rename from sdrbase/gui/aboutdialog.ui rename to sdrgui/gui/aboutdialog.ui diff --git a/sdrbase/gui/addpresetdialog.cpp b/sdrgui/gui/addpresetdialog.cpp similarity index 100% rename from sdrbase/gui/addpresetdialog.cpp rename to sdrgui/gui/addpresetdialog.cpp diff --git a/sdrbase/gui/addpresetdialog.h b/sdrgui/gui/addpresetdialog.h similarity index 100% rename from sdrbase/gui/addpresetdialog.h rename to sdrgui/gui/addpresetdialog.h diff --git a/sdrbase/gui/addpresetdialog.ui b/sdrgui/gui/addpresetdialog.ui similarity index 100% rename from sdrbase/gui/addpresetdialog.ui rename to sdrgui/gui/addpresetdialog.ui diff --git a/sdrbase/gui/audiodialog.cpp b/sdrgui/gui/audiodialog.cpp similarity index 100% rename from sdrbase/gui/audiodialog.cpp rename to sdrgui/gui/audiodialog.cpp diff --git a/sdrbase/gui/audiodialog.h b/sdrgui/gui/audiodialog.h similarity index 100% rename from sdrbase/gui/audiodialog.h rename to sdrgui/gui/audiodialog.h diff --git a/sdrbase/gui/audiodialog.ui b/sdrgui/gui/audiodialog.ui similarity index 100% rename from sdrbase/gui/audiodialog.ui rename to sdrgui/gui/audiodialog.ui diff --git a/sdrbase/gui/basicchannelsettingsdialog.cpp b/sdrgui/gui/basicchannelsettingsdialog.cpp similarity index 100% rename from sdrbase/gui/basicchannelsettingsdialog.cpp rename to sdrgui/gui/basicchannelsettingsdialog.cpp diff --git a/sdrbase/gui/basicchannelsettingsdialog.h b/sdrgui/gui/basicchannelsettingsdialog.h similarity index 100% rename from sdrbase/gui/basicchannelsettingsdialog.h rename to sdrgui/gui/basicchannelsettingsdialog.h diff --git a/sdrbase/gui/basicchannelsettingsdialog.ui b/sdrgui/gui/basicchannelsettingsdialog.ui similarity index 100% rename from sdrbase/gui/basicchannelsettingsdialog.ui rename to sdrgui/gui/basicchannelsettingsdialog.ui diff --git a/sdrbase/gui/basicchannelsettingswidget.cpp b/sdrgui/gui/basicchannelsettingswidget.cpp similarity index 100% rename from sdrbase/gui/basicchannelsettingswidget.cpp rename to sdrgui/gui/basicchannelsettingswidget.cpp diff --git a/sdrbase/gui/basicchannelsettingswidget.h b/sdrgui/gui/basicchannelsettingswidget.h similarity index 100% rename from sdrbase/gui/basicchannelsettingswidget.h rename to sdrgui/gui/basicchannelsettingswidget.h diff --git a/sdrbase/gui/basicchannelsettingswidget.ui b/sdrgui/gui/basicchannelsettingswidget.ui similarity index 100% rename from sdrbase/gui/basicchannelsettingswidget.ui rename to sdrgui/gui/basicchannelsettingswidget.ui diff --git a/sdrbase/gui/buttonswitch.cpp b/sdrgui/gui/buttonswitch.cpp similarity index 100% rename from sdrbase/gui/buttonswitch.cpp rename to sdrgui/gui/buttonswitch.cpp diff --git a/sdrbase/gui/buttonswitch.h b/sdrgui/gui/buttonswitch.h similarity index 100% rename from sdrbase/gui/buttonswitch.h rename to sdrgui/gui/buttonswitch.h diff --git a/sdrbase/gui/channelwindow.cpp b/sdrgui/gui/channelwindow.cpp similarity index 100% rename from sdrbase/gui/channelwindow.cpp rename to sdrgui/gui/channelwindow.cpp diff --git a/sdrbase/gui/channelwindow.h b/sdrgui/gui/channelwindow.h similarity index 100% rename from sdrbase/gui/channelwindow.h rename to sdrgui/gui/channelwindow.h diff --git a/sdrbase/gui/clickablelabel.cpp b/sdrgui/gui/clickablelabel.cpp similarity index 100% rename from sdrbase/gui/clickablelabel.cpp rename to sdrgui/gui/clickablelabel.cpp diff --git a/sdrbase/gui/clickablelabel.h b/sdrgui/gui/clickablelabel.h similarity index 100% rename from sdrbase/gui/clickablelabel.h rename to sdrgui/gui/clickablelabel.h diff --git a/sdrbase/gui/colormapper.cpp b/sdrgui/gui/colormapper.cpp similarity index 100% rename from sdrbase/gui/colormapper.cpp rename to sdrgui/gui/colormapper.cpp diff --git a/sdrbase/gui/colormapper.h b/sdrgui/gui/colormapper.h similarity index 100% rename from sdrbase/gui/colormapper.h rename to sdrgui/gui/colormapper.h diff --git a/sdrbase/gui/cwkeyergui.cpp b/sdrgui/gui/cwkeyergui.cpp similarity index 100% rename from sdrbase/gui/cwkeyergui.cpp rename to sdrgui/gui/cwkeyergui.cpp diff --git a/sdrbase/gui/cwkeyergui.h b/sdrgui/gui/cwkeyergui.h similarity index 100% rename from sdrbase/gui/cwkeyergui.h rename to sdrgui/gui/cwkeyergui.h diff --git a/sdrbase/gui/cwkeyergui.ui b/sdrgui/gui/cwkeyergui.ui similarity index 100% rename from sdrbase/gui/cwkeyergui.ui rename to sdrgui/gui/cwkeyergui.ui diff --git a/sdrbase/gui/glscope.cpp b/sdrgui/gui/glscope.cpp similarity index 100% rename from sdrbase/gui/glscope.cpp rename to sdrgui/gui/glscope.cpp diff --git a/sdrbase/gui/glscope.h b/sdrgui/gui/glscope.h similarity index 100% rename from sdrbase/gui/glscope.h rename to sdrgui/gui/glscope.h diff --git a/sdrbase/gui/glscopegui.cpp b/sdrgui/gui/glscopegui.cpp similarity index 100% rename from sdrbase/gui/glscopegui.cpp rename to sdrgui/gui/glscopegui.cpp diff --git a/sdrbase/gui/glscopegui.h b/sdrgui/gui/glscopegui.h similarity index 100% rename from sdrbase/gui/glscopegui.h rename to sdrgui/gui/glscopegui.h diff --git a/sdrbase/gui/glscopegui.ui b/sdrgui/gui/glscopegui.ui similarity index 100% rename from sdrbase/gui/glscopegui.ui rename to sdrgui/gui/glscopegui.ui diff --git a/sdrbase/gui/glscopemulti.cpp b/sdrgui/gui/glscopemulti.cpp similarity index 100% rename from sdrbase/gui/glscopemulti.cpp rename to sdrgui/gui/glscopemulti.cpp diff --git a/sdrbase/gui/glscopemulti.h b/sdrgui/gui/glscopemulti.h similarity index 100% rename from sdrbase/gui/glscopemulti.h rename to sdrgui/gui/glscopemulti.h diff --git a/sdrbase/gui/glscopemultigui.cpp b/sdrgui/gui/glscopemultigui.cpp similarity index 100% rename from sdrbase/gui/glscopemultigui.cpp rename to sdrgui/gui/glscopemultigui.cpp diff --git a/sdrbase/gui/glscopemultigui.h b/sdrgui/gui/glscopemultigui.h similarity index 100% rename from sdrbase/gui/glscopemultigui.h rename to sdrgui/gui/glscopemultigui.h diff --git a/sdrbase/gui/glscopemultigui.ui b/sdrgui/gui/glscopemultigui.ui similarity index 100% rename from sdrbase/gui/glscopemultigui.ui rename to sdrgui/gui/glscopemultigui.ui diff --git a/sdrbase/gui/glscopeng.cpp b/sdrgui/gui/glscopeng.cpp similarity index 100% rename from sdrbase/gui/glscopeng.cpp rename to sdrgui/gui/glscopeng.cpp diff --git a/sdrbase/gui/glscopeng.h b/sdrgui/gui/glscopeng.h similarity index 100% rename from sdrbase/gui/glscopeng.h rename to sdrgui/gui/glscopeng.h diff --git a/sdrbase/gui/glscopenggui.cpp b/sdrgui/gui/glscopenggui.cpp similarity index 100% rename from sdrbase/gui/glscopenggui.cpp rename to sdrgui/gui/glscopenggui.cpp diff --git a/sdrbase/gui/glscopenggui.h b/sdrgui/gui/glscopenggui.h similarity index 100% rename from sdrbase/gui/glscopenggui.h rename to sdrgui/gui/glscopenggui.h diff --git a/sdrbase/gui/glscopenggui.ui b/sdrgui/gui/glscopenggui.ui similarity index 100% rename from sdrbase/gui/glscopenggui.ui rename to sdrgui/gui/glscopenggui.ui diff --git a/sdrbase/gui/glshadersimple.cpp b/sdrgui/gui/glshadersimple.cpp similarity index 100% rename from sdrbase/gui/glshadersimple.cpp rename to sdrgui/gui/glshadersimple.cpp diff --git a/sdrbase/gui/glshadersimple.h b/sdrgui/gui/glshadersimple.h similarity index 100% rename from sdrbase/gui/glshadersimple.h rename to sdrgui/gui/glshadersimple.h diff --git a/sdrbase/gui/glshadertextured.cpp b/sdrgui/gui/glshadertextured.cpp similarity index 100% rename from sdrbase/gui/glshadertextured.cpp rename to sdrgui/gui/glshadertextured.cpp diff --git a/sdrbase/gui/glshadertextured.h b/sdrgui/gui/glshadertextured.h similarity index 100% rename from sdrbase/gui/glshadertextured.h rename to sdrgui/gui/glshadertextured.h diff --git a/sdrbase/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp similarity index 100% rename from sdrbase/gui/glspectrum.cpp rename to sdrgui/gui/glspectrum.cpp diff --git a/sdrbase/gui/glspectrum.h b/sdrgui/gui/glspectrum.h similarity index 100% rename from sdrbase/gui/glspectrum.h rename to sdrgui/gui/glspectrum.h diff --git a/sdrbase/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp similarity index 100% rename from sdrbase/gui/glspectrumgui.cpp rename to sdrgui/gui/glspectrumgui.cpp diff --git a/sdrbase/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h similarity index 100% rename from sdrbase/gui/glspectrumgui.h rename to sdrgui/gui/glspectrumgui.h diff --git a/sdrbase/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui similarity index 100% rename from sdrbase/gui/glspectrumgui.ui rename to sdrgui/gui/glspectrumgui.ui diff --git a/sdrbase/gui/indicator.cpp b/sdrgui/gui/indicator.cpp similarity index 100% rename from sdrbase/gui/indicator.cpp rename to sdrgui/gui/indicator.cpp diff --git a/sdrbase/gui/indicator.h b/sdrgui/gui/indicator.h similarity index 100% rename from sdrbase/gui/indicator.h rename to sdrgui/gui/indicator.h diff --git a/sdrbase/gui/levelmeter.cpp b/sdrgui/gui/levelmeter.cpp similarity index 100% rename from sdrbase/gui/levelmeter.cpp rename to sdrgui/gui/levelmeter.cpp diff --git a/sdrbase/gui/levelmeter.h b/sdrgui/gui/levelmeter.h similarity index 100% rename from sdrbase/gui/levelmeter.h rename to sdrgui/gui/levelmeter.h diff --git a/sdrbase/gui/myposdialog.ui b/sdrgui/gui/myposdialog.ui similarity index 100% rename from sdrbase/gui/myposdialog.ui rename to sdrgui/gui/myposdialog.ui diff --git a/sdrbase/gui/mypositiondialog.cpp b/sdrgui/gui/mypositiondialog.cpp similarity index 100% rename from sdrbase/gui/mypositiondialog.cpp rename to sdrgui/gui/mypositiondialog.cpp diff --git a/sdrbase/gui/mypositiondialog.h b/sdrgui/gui/mypositiondialog.h similarity index 100% rename from sdrbase/gui/mypositiondialog.h rename to sdrgui/gui/mypositiondialog.h diff --git a/sdrbase/gui/physicalunit.h b/sdrgui/gui/physicalunit.h similarity index 100% rename from sdrbase/gui/physicalunit.h rename to sdrgui/gui/physicalunit.h diff --git a/sdrbase/gui/pluginsdialog.cpp b/sdrgui/gui/pluginsdialog.cpp similarity index 100% rename from sdrbase/gui/pluginsdialog.cpp rename to sdrgui/gui/pluginsdialog.cpp diff --git a/sdrbase/gui/pluginsdialog.h b/sdrgui/gui/pluginsdialog.h similarity index 100% rename from sdrbase/gui/pluginsdialog.h rename to sdrgui/gui/pluginsdialog.h diff --git a/sdrbase/gui/pluginsdialog.ui b/sdrgui/gui/pluginsdialog.ui similarity index 100% rename from sdrbase/gui/pluginsdialog.ui rename to sdrgui/gui/pluginsdialog.ui diff --git a/sdrbase/gui/presetitem.cpp b/sdrgui/gui/presetitem.cpp similarity index 100% rename from sdrbase/gui/presetitem.cpp rename to sdrgui/gui/presetitem.cpp diff --git a/sdrbase/gui/presetitem.h b/sdrgui/gui/presetitem.h similarity index 100% rename from sdrbase/gui/presetitem.h rename to sdrgui/gui/presetitem.h diff --git a/sdrbase/gui/rollupwidget.cpp b/sdrgui/gui/rollupwidget.cpp similarity index 100% rename from sdrbase/gui/rollupwidget.cpp rename to sdrgui/gui/rollupwidget.cpp diff --git a/sdrbase/gui/rollupwidget.h b/sdrgui/gui/rollupwidget.h similarity index 100% rename from sdrbase/gui/rollupwidget.h rename to sdrgui/gui/rollupwidget.h diff --git a/sdrbase/gui/samplingdevicecontrol.cpp b/sdrgui/gui/samplingdevicecontrol.cpp similarity index 100% rename from sdrbase/gui/samplingdevicecontrol.cpp rename to sdrgui/gui/samplingdevicecontrol.cpp diff --git a/sdrbase/gui/samplingdevicecontrol.h b/sdrgui/gui/samplingdevicecontrol.h similarity index 100% rename from sdrbase/gui/samplingdevicecontrol.h rename to sdrgui/gui/samplingdevicecontrol.h diff --git a/sdrbase/gui/samplingdevicecontrol.ui b/sdrgui/gui/samplingdevicecontrol.ui similarity index 100% rename from sdrbase/gui/samplingdevicecontrol.ui rename to sdrgui/gui/samplingdevicecontrol.ui diff --git a/sdrbase/gui/scale.cpp b/sdrgui/gui/scale.cpp similarity index 100% rename from sdrbase/gui/scale.cpp rename to sdrgui/gui/scale.cpp diff --git a/sdrbase/gui/scale.h b/sdrgui/gui/scale.h similarity index 100% rename from sdrbase/gui/scale.h rename to sdrgui/gui/scale.h diff --git a/sdrbase/gui/scaleengine.cpp b/sdrgui/gui/scaleengine.cpp similarity index 100% rename from sdrbase/gui/scaleengine.cpp rename to sdrgui/gui/scaleengine.cpp diff --git a/sdrbase/gui/scaleengine.h b/sdrgui/gui/scaleengine.h similarity index 100% rename from sdrbase/gui/scaleengine.h rename to sdrgui/gui/scaleengine.h diff --git a/sdrbase/gui/scopewindow.ui b/sdrgui/gui/scopewindow.ui similarity index 100% rename from sdrbase/gui/scopewindow.ui rename to sdrgui/gui/scopewindow.ui diff --git a/sdrbase/gui/transverterbutton.cpp b/sdrgui/gui/transverterbutton.cpp similarity index 100% rename from sdrbase/gui/transverterbutton.cpp rename to sdrgui/gui/transverterbutton.cpp diff --git a/sdrbase/gui/transverterbutton.h b/sdrgui/gui/transverterbutton.h similarity index 100% rename from sdrbase/gui/transverterbutton.h rename to sdrgui/gui/transverterbutton.h diff --git a/sdrbase/gui/transverterdialog.cpp b/sdrgui/gui/transverterdialog.cpp similarity index 100% rename from sdrbase/gui/transverterdialog.cpp rename to sdrgui/gui/transverterdialog.cpp diff --git a/sdrbase/gui/transverterdialog.h b/sdrgui/gui/transverterdialog.h similarity index 100% rename from sdrbase/gui/transverterdialog.h rename to sdrgui/gui/transverterdialog.h diff --git a/sdrbase/gui/transverterdialog.ui b/sdrgui/gui/transverterdialog.ui similarity index 100% rename from sdrbase/gui/transverterdialog.ui rename to sdrgui/gui/transverterdialog.ui diff --git a/sdrbase/gui/valuedial.cpp b/sdrgui/gui/valuedial.cpp similarity index 100% rename from sdrbase/gui/valuedial.cpp rename to sdrgui/gui/valuedial.cpp diff --git a/sdrbase/gui/valuedial.h b/sdrgui/gui/valuedial.h similarity index 100% rename from sdrbase/gui/valuedial.h rename to sdrgui/gui/valuedial.h diff --git a/sdrbase/gui/valuedialz.cpp b/sdrgui/gui/valuedialz.cpp similarity index 100% rename from sdrbase/gui/valuedialz.cpp rename to sdrgui/gui/valuedialz.cpp diff --git a/sdrbase/gui/valuedialz.h b/sdrgui/gui/valuedialz.h similarity index 100% rename from sdrbase/gui/valuedialz.h rename to sdrgui/gui/valuedialz.h diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp new file mode 100644 index 000000000..6c5ecd10d --- /dev/null +++ b/sdrgui/mainwindow.cpp @@ -0,0 +1,1161 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include "device/devicesourceapi.h" +#include "device/devicesinkapi.h" +#include "audio/audiodeviceinfo.h" +#include "gui/indicator.h" +#include "gui/presetitem.h" +#include "gui/addpresetdialog.h" +#include "gui/pluginsdialog.h" +#include "gui/aboutdialog.h" +#include "gui/rollupwidget.h" +#include "gui/channelwindow.h" +#include "gui/audiodialog.h" +#include "gui/samplingdevicecontrol.h" +#include "gui/mypositiondialog.h" +#include "dsp/dspengine.h" +#include "dsp/spectrumvis.h" +#include "dsp/dspcommands.h" +#include "dsp/devicesamplesource.h" +#include "dsp/devicesamplesink.h" +#include "plugin/pluginapi.h" +#include "gui/glspectrum.h" +#include "gui/glspectrumgui.h" + +#include +#include + +MainWindow::MainWindow(QWidget* parent) : + QMainWindow(parent), + ui(new Ui::MainWindow), + m_settings(), + m_masterTabIndex(0), + m_dspEngine(DSPEngine::instance()), + m_lastEngineState((DSPDeviceSourceEngine::State)-1), + m_inputGUI(0), + m_sampleRate(0), + m_centerFrequency(0), + m_sampleFileName(std::string("./test.sdriq")) +{ + qDebug() << "MainWindow::MainWindow: start"; + + m_settings.setAudioDeviceInfo(&m_audioDeviceInfo); + + ui->setupUi(this); + createStatusBar(); + + setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); + setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); + setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); + setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); + + // work around broken Qt dock widget ordering + removeDockWidget(ui->inputViewDock); + removeDockWidget(ui->inputSelectDock); + removeDockWidget(ui->spectraDisplayDock); + removeDockWidget(ui->presetDock); + removeDockWidget(ui->channelDock); + addDockWidget(Qt::LeftDockWidgetArea, ui->inputViewDock); + addDockWidget(Qt::LeftDockWidgetArea, ui->inputSelectDock); + addDockWidget(Qt::LeftDockWidgetArea, ui->spectraDisplayDock); + addDockWidget(Qt::LeftDockWidgetArea, ui->presetDock); + addDockWidget(Qt::RightDockWidgetArea, ui->channelDock); + + ui->inputViewDock->show(); + ui->inputSelectDock->show(); + ui->spectraDisplayDock->show(); + ui->presetDock->show(); + ui->channelDock->show(); + + ui->menu_Window->addAction(ui->inputViewDock->toggleViewAction()); + ui->menu_Window->addAction(ui->inputSelectDock->toggleViewAction()); + ui->menu_Window->addAction(ui->spectraDisplayDock->toggleViewAction()); + ui->menu_Window->addAction(ui->presetDock->toggleViewAction()); + ui->menu_Window->addAction(ui->channelDock->toggleViewAction()); + + ui->tabInputsView->setStyleSheet("QWidget { background: rgb(50,50,50); } " + "QToolButton::checked { background: rgb(128,70,0); } " + "QComboBox::item:selected { color: rgb(255,140,0); } " + "QTabWidget::pane { border: 1px solid #C06900; } " + "QTabBar::tab:selected { background: rgb(128,70,0); }"); + ui->tabInputsSelect->setStyleSheet("QWidget { background: rgb(50,50,50); } " + "QToolButton::checked { background: rgb(128,70,0); } " + "QComboBox::item:selected { color: rgb(255,140,0); } " + "QTabWidget::pane { border: 1px solid #808080; } " + "QTabBar::tab:selected { background: rgb(100,100,100); }"); + + m_pluginManager = new PluginManager(this); + m_pluginManager->loadPlugins(); + + connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleMessages()), Qt::QueuedConnection); + + connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); + m_statusTimer.start(1000); + + m_masterTimer.start(50); + + qDebug() << "MainWindow::MainWindow: add the first device..."; + + addSourceDevice(); // add the first device + + qDebug() << "MainWindow::MainWindow: load settings..."; + + loadSettings(); + + qDebug() << "MainWindow::MainWindow: select SampleSource from settings..."; + + int sampleSourceIndex = m_settings.getSourceIndex(); + sampleSourceIndex = m_pluginManager->selectSampleSourceByIndex(sampleSourceIndex, m_deviceUIs.back()->m_deviceSourceAPI); + + if (sampleSourceIndex < 0) + { + qCritical("MainWindow::MainWindow: no sample source. Exit"); + exit(0); + } + + DeviceSampleSource *source = m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceInput( + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceId(), m_deviceUIs.back()->m_deviceSourceAPI); + m_deviceUIs.back()->m_deviceSourceAPI->setSampleSource(source); + QWidget *gui; + PluginInstanceGUI *pluginGUI = m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceGUI( + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceId(), &gui, m_deviceUIs.back()->m_deviceSourceAPI); + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(pluginGUI->getInputMessageQueue()); + m_deviceUIs.back()->m_deviceSourceAPI->setSampleSourcePluginInstanceGUI(pluginGUI); + setDeviceGUI(0, gui, m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceDisplayName()); + + m_deviceUIs.back()->m_deviceSourceAPI->setBuddyLeader(true); // the first device is always the leader + + bool sampleSourceSignalsBlocked = m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector()->blockSignals(true); + m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector()->setCurrentIndex(sampleSourceIndex); + m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector()->blockSignals(sampleSourceSignalsBlocked); + + qDebug() << "MainWindow::MainWindow: load current preset settings..."; + + loadPresetSettings(m_settings.getWorkingPreset(), 0); + + qDebug() << "MainWindow::MainWindow: apply settings..."; + + applySettings(); + + qDebug() << "MainWindow::MainWindow: update preset controls..."; + + updatePresetControls(); + + connect(ui->tabInputsView, SIGNAL(currentChanged(int)), this, SLOT(tabInputViewIndexChanged())); + + qDebug() << "MainWindow::MainWindow: end"; +} + +MainWindow::~MainWindow() +{ + delete m_pluginManager; + delete m_dateTimeWidget; + delete m_showSystemWidget; + + delete ui; +} + +void MainWindow::addSourceDevice() +{ + DSPDeviceSourceEngine *dspDeviceSourceEngine = m_dspEngine->addDeviceSourceEngine(); + dspDeviceSourceEngine->start(); + + uint dspDeviceSourceEngineUID = dspDeviceSourceEngine->getUID(); + char uidCStr[16]; + sprintf(uidCStr, "UID:%d", dspDeviceSourceEngineUID); + + m_deviceUIs.push_back(new DeviceUISet(m_masterTimer)); + m_deviceUIs.back()->m_deviceSourceEngine = dspDeviceSourceEngine; + + int deviceTabIndex = m_deviceUIs.size()-1; + char tabNameCStr[16]; + sprintf(tabNameCStr, "R%d", deviceTabIndex); + + DeviceSourceAPI *deviceSourceAPI = new DeviceSourceAPI(this, deviceTabIndex, dspDeviceSourceEngine, m_deviceUIs.back()->m_spectrum, m_deviceUIs.back()->m_channelWindow); + + m_deviceUIs.back()->m_deviceSourceAPI = deviceSourceAPI; + m_deviceUIs.back()->m_samplingDeviceControl->setDeviceAPI(deviceSourceAPI); + m_deviceUIs.back()->m_samplingDeviceControl->setPluginManager(m_pluginManager); + m_pluginManager->populateRxChannelComboBox(m_deviceUIs.back()->m_samplingDeviceControl->getChannelSelector()); + + connect(m_deviceUIs.back()->m_samplingDeviceControl->getAddChannelButton(), SIGNAL(clicked(bool)), this, SLOT(on_channel_addClicked(bool))); + + dspDeviceSourceEngine->addSink(m_deviceUIs.back()->m_spectrumVis); + ui->tabSpectra->addTab(m_deviceUIs.back()->m_spectrum, tabNameCStr); + ui->tabSpectraGUI->addTab(m_deviceUIs.back()->m_spectrumGUI, tabNameCStr); + ui->tabChannels->addTab(m_deviceUIs.back()->m_channelWindow, tabNameCStr); + + bool sampleSourceSignalsBlocked = m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector()->blockSignals(true); + m_pluginManager->duplicateLocalSampleSourceDevices(dspDeviceSourceEngineUID); + m_pluginManager->fillSampleSourceSelector(m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector(), dspDeviceSourceEngineUID); + + connect(m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelectionConfirm(), SIGNAL(clicked(bool)), this, SLOT(on_sampleSource_confirmClicked(bool))); + + m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector()->blockSignals(sampleSourceSignalsBlocked); + ui->tabInputsSelect->addTab(m_deviceUIs.back()->m_samplingDeviceControl, tabNameCStr); + ui->tabInputsSelect->setTabToolTip(deviceTabIndex, QString(uidCStr)); + + // Create a file source instance by default + m_pluginManager->selectSampleSourceBySerialOrSequence("sdrangel.samplesource.filesource", "0", 0, m_deviceUIs.back()->m_deviceSourceAPI); + DeviceSampleSource *source = m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceInput( + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceId(), m_deviceUIs.back()->m_deviceSourceAPI); + m_deviceUIs.back()->m_deviceSourceAPI->setSampleSource(source); + QWidget *gui; + PluginInstanceGUI *pluginGUI = m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceGUI( + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceId(), &gui, m_deviceUIs.back()->m_deviceSourceAPI); + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(pluginGUI->getInputMessageQueue()); + m_deviceUIs.back()->m_deviceSourceAPI->setSampleSourcePluginInstanceGUI(pluginGUI); + setDeviceGUI(deviceTabIndex, gui, m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceDisplayName()); + +} + +void MainWindow::addSinkDevice() +{ + DSPDeviceSinkEngine *dspDeviceSinkEngine = m_dspEngine->addDeviceSinkEngine(); + dspDeviceSinkEngine->start(); + + uint dspDeviceSinkEngineUID = dspDeviceSinkEngine->getUID(); + char uidCStr[16]; + sprintf(uidCStr, "UID:%d", dspDeviceSinkEngineUID); + + m_deviceUIs.push_back(new DeviceUISet(m_masterTimer)); + m_deviceUIs.back()->m_deviceSourceEngine = 0; + m_deviceUIs.back()->m_deviceSinkEngine = dspDeviceSinkEngine; + + int deviceTabIndex = m_deviceUIs.size()-1; + char tabNameCStr[16]; + sprintf(tabNameCStr, "T%d", deviceTabIndex); + + DeviceSinkAPI *deviceSinkAPI = new DeviceSinkAPI(this, deviceTabIndex, dspDeviceSinkEngine, m_deviceUIs.back()->m_spectrum, m_deviceUIs.back()->m_channelWindow); + + m_deviceUIs.back()->m_deviceSourceAPI = 0; + m_deviceUIs.back()->m_deviceSinkAPI = deviceSinkAPI; + m_deviceUIs.back()->m_samplingDeviceControl->setDeviceAPI(deviceSinkAPI); + m_deviceUIs.back()->m_samplingDeviceControl->setPluginManager(m_pluginManager); + m_pluginManager->populateTxChannelComboBox(m_deviceUIs.back()->m_samplingDeviceControl->getChannelSelector()); + + connect(m_deviceUIs.back()->m_samplingDeviceControl->getAddChannelButton(), SIGNAL(clicked(bool)), this, SLOT(on_channel_addClicked(bool))); + + dspDeviceSinkEngine->addSpectrumSink(m_deviceUIs.back()->m_spectrumVis); + ui->tabSpectra->addTab(m_deviceUIs.back()->m_spectrum, tabNameCStr); + ui->tabSpectraGUI->addTab(m_deviceUIs.back()->m_spectrumGUI, tabNameCStr); + ui->tabChannels->addTab(m_deviceUIs.back()->m_channelWindow, tabNameCStr); + + bool sampleSourceSignalsBlocked = m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector()->blockSignals(true); + m_pluginManager->duplicateLocalSampleSinkDevices(dspDeviceSinkEngineUID); + m_pluginManager->fillSampleSinkSelector(m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector(), dspDeviceSinkEngineUID); + + connect(m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelectionConfirm(), SIGNAL(clicked(bool)), this, SLOT(on_sampleSink_confirmClicked(bool))); + + m_deviceUIs.back()->m_samplingDeviceControl->getDeviceSelector()->blockSignals(sampleSourceSignalsBlocked); + ui->tabInputsSelect->addTab(m_deviceUIs.back()->m_samplingDeviceControl, tabNameCStr); + ui->tabInputsSelect->setTabToolTip(deviceTabIndex, QString(uidCStr)); + + // create a file sink by default + m_pluginManager->selectSampleSinkBySerialOrSequence("sdrangel.samplesink.filesink", "0", 0, m_deviceUIs.back()->m_deviceSinkAPI); + DeviceSampleSink *sink = m_deviceUIs.back()->m_deviceSinkAPI->getPluginInterface()->createSampleSinkPluginInstanceOutput( + m_deviceUIs.back()->m_deviceSinkAPI->getSampleSinkId(), m_deviceUIs.back()->m_deviceSinkAPI); + m_deviceUIs.back()->m_deviceSinkAPI->setSampleSink(sink); + QWidget *gui; + PluginInstanceGUI *pluginUI = m_deviceUIs.back()->m_deviceSinkAPI->getPluginInterface()->createSampleSinkPluginInstanceGUI( + m_deviceUIs.back()->m_deviceSinkAPI->getSampleSinkId(), &gui, m_deviceUIs.back()->m_deviceSinkAPI); + m_deviceUIs.back()->m_deviceSinkAPI->getSampleSink()->setMessageQueueToGUI(pluginUI->getInputMessageQueue()); + m_deviceUIs.back()->m_deviceSinkAPI->setSampleSinkPluginInstanceUI(pluginUI); + setDeviceGUI(deviceTabIndex, gui, m_deviceUIs.back()->m_deviceSinkAPI->getSampleSinkDisplayName(), false); +} + +void MainWindow::removeLastDevice() +{ + if (m_deviceUIs.back()->m_deviceSourceEngine) // source tab + { + DSPDeviceSourceEngine *lastDeviceEngine = m_deviceUIs.back()->m_deviceSourceEngine; + lastDeviceEngine->stopAcquistion(); + lastDeviceEngine->removeSink(m_deviceUIs.back()->m_spectrumVis); + + ui->tabSpectraGUI->removeTab(ui->tabSpectraGUI->count() - 1); + ui->tabSpectra->removeTab(ui->tabSpectra->count() - 1); + + // deletes old UI and input object + m_deviceUIs.back()->m_deviceSourceAPI->freeChannels(); // destroys the channel instances + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(0); // have source stop sending messages to the GUI + m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->deleteSampleSourcePluginInstanceGUI( + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourcePluginInstanceGUI()); + m_deviceUIs.back()->m_deviceSourceAPI->resetSampleSourceId(); + m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->deleteSampleSourcePluginInstanceInput( + m_deviceUIs.back()->m_deviceSourceAPI->getSampleSource()); + m_deviceUIs.back()->m_deviceSourceAPI->clearBuddiesLists(); // clear old API buddies lists + + ui->tabChannels->removeTab(ui->tabChannels->count() - 1); + + ui->tabInputsSelect->removeTab(ui->tabInputsSelect->count() - 1); + + m_deviceWidgetTabs.removeLast(); + ui->tabInputsView->clear(); + + for (int i = 0; i < m_deviceWidgetTabs.size(); i++) + { + qDebug("MainWindow::removeLastDevice: adding back tab for %s", m_deviceWidgetTabs[i].displayName.toStdString().c_str()); + ui->tabInputsView->addTab(m_deviceWidgetTabs[i].gui, m_deviceWidgetTabs[i].tabName); + ui->tabInputsView->setTabToolTip(i, m_deviceWidgetTabs[i].displayName); + } + + delete m_deviceUIs.back(); + + lastDeviceEngine->stop(); + m_dspEngine->removeLastDeviceSourceEngine(); + } + else if (m_deviceUIs.back()->m_deviceSinkEngine) // sink tab + { + DSPDeviceSinkEngine *lastDeviceEngine = m_deviceUIs.back()->m_deviceSinkEngine; + lastDeviceEngine->stopGeneration(); + lastDeviceEngine->removeSpectrumSink(m_deviceUIs.back()->m_spectrumVis); + + ui->tabSpectraGUI->removeTab(ui->tabSpectraGUI->count() - 1); + ui->tabSpectra->removeTab(ui->tabSpectra->count() - 1); + + // deletes old UI and output object + m_deviceUIs.back()->m_deviceSinkAPI->freeChannels(); + m_deviceUIs.back()->m_deviceSinkAPI->getSampleSink()->setMessageQueueToGUI(0); // have sink stop sending messages to the GUI + m_deviceUIs.back()->m_deviceSinkAPI->getPluginInterface()->deleteSampleSourcePluginInstanceGUI( + m_deviceUIs.back()->m_deviceSinkAPI->getSampleSinkPluginInstanceGUI()); + m_deviceUIs.back()->m_deviceSinkAPI->resetSampleSinkId(); + m_deviceUIs.back()->m_deviceSinkAPI->getPluginInterface()->deleteSampleSinkPluginInstanceOutput( + m_deviceUIs.back()->m_deviceSinkAPI->getSampleSink()); + m_deviceUIs.back()->m_deviceSinkAPI->clearBuddiesLists(); // clear old API buddies lists + + ui->tabChannels->removeTab(ui->tabChannels->count() - 1); + + ui->tabInputsSelect->removeTab(ui->tabInputsSelect->count() - 1); + + m_deviceWidgetTabs.removeLast(); + ui->tabInputsView->clear(); + + for (int i = 0; i < m_deviceWidgetTabs.size(); i++) + { + qDebug("MainWindow::removeLastDevice: adding back tab for %s", m_deviceWidgetTabs[i].displayName.toStdString().c_str()); + ui->tabInputsView->addTab(m_deviceWidgetTabs[i].gui, m_deviceWidgetTabs[i].tabName); + ui->tabInputsView->setTabToolTip(i, m_deviceWidgetTabs[i].displayName); + } + + delete m_deviceUIs.back(); + + lastDeviceEngine->stop(); + m_dspEngine->removeLastDeviceSinkEngine(); + } + + m_deviceUIs.pop_back(); +} + +void MainWindow::addChannelRollup(int deviceTabIndex, QWidget* widget) +{ + if (deviceTabIndex < ui->tabInputsView->count()) + { + DeviceUISet *deviceUI = m_deviceUIs[deviceTabIndex]; + deviceUI->m_channelWindow->addRollupWidget(widget); + ui->channelDock->show(); + ui->channelDock->raise(); + } +} + +void MainWindow::addViewAction(QAction* action) +{ + ui->menu_Window->addAction(action); +} + +void MainWindow::setDeviceGUI(int deviceTabIndex, QWidget* gui, const QString& deviceDisplayName, bool sourceDevice) +{ + char tabNameCStr[16]; + + if (sourceDevice) + { + sprintf(tabNameCStr, "R%d", deviceTabIndex); + } + else + { + sprintf(tabNameCStr, "T%d", deviceTabIndex); + } + + qDebug("MainWindow::setDeviceGUI: insert %s tab at %d", sourceDevice ? "Rx" : "Tx", deviceTabIndex); + + if (deviceTabIndex < m_deviceWidgetTabs.size()) + { + m_deviceWidgetTabs[deviceTabIndex] = {gui, deviceDisplayName, QString(tabNameCStr)}; + } + else + { + m_deviceWidgetTabs.append({gui, deviceDisplayName, QString(tabNameCStr)}); + } + + ui->tabInputsView->clear(); + + for (int i = 0; i < m_deviceWidgetTabs.size(); i++) + { + qDebug("MainWindow::setDeviceGUI: adding tab for %s", m_deviceWidgetTabs[i].displayName.toStdString().c_str()); + ui->tabInputsView->addTab(m_deviceWidgetTabs[i].gui, m_deviceWidgetTabs[i].tabName); + ui->tabInputsView->setTabToolTip(i, m_deviceWidgetTabs[i].displayName); + } + + ui->tabInputsView->setCurrentIndex(deviceTabIndex); +} + +void MainWindow::loadSettings() +{ + qDebug() << "MainWindow::loadSettings"; + + m_settings.load(); + m_settings.sortPresets(); + + for(int i = 0; i < m_settings.getPresetCount(); ++i) + { + ui->presetTree->setCurrentItem(addPresetToTree(m_settings.getPreset(i))); + } +} + +void MainWindow::loadPresetSettings(const Preset* preset, int tabIndex) +{ + qDebug("MainWindow::loadPresetSettings: preset [%s | %s]", + qPrintable(preset->getGroup()), + qPrintable(preset->getDescription())); + + if (tabIndex >= 0) + { + DeviceUISet *deviceUI = m_deviceUIs[tabIndex]; + + if (deviceUI->m_deviceSourceEngine) // source device + { + deviceUI->m_spectrumGUI->deserialize(preset->getSpectrumConfig()); + deviceUI->m_deviceSourceAPI->loadSourceSettings(preset); + deviceUI->m_deviceSourceAPI->loadChannelSettings(preset, &(m_pluginManager->m_pluginAPI)); + } + else if (deviceUI->m_deviceSinkEngine) // sink device + { + deviceUI->m_spectrumGUI->deserialize(preset->getSpectrumConfig()); + deviceUI->m_deviceSinkAPI->loadSinkSettings(preset); + deviceUI->m_deviceSinkAPI->loadChannelSettings(preset, &(m_pluginManager->m_pluginAPI)); + } + } + + // has to be last step + restoreState(preset->getLayout()); +} + +void MainWindow::savePresetSettings(Preset* preset, int tabIndex) +{ + qDebug("MainWindow::savePresetSettings: preset [%s | %s]", + qPrintable(preset->getGroup()), + qPrintable(preset->getDescription())); + + // Save from currently selected source tab + //int currentSourceTabIndex = ui->tabInputsView->currentIndex(); + DeviceUISet *deviceUI = m_deviceUIs[tabIndex]; + + if (deviceUI->m_deviceSourceEngine) // source device + { + preset->setSpectrumConfig(deviceUI->m_spectrumGUI->serialize()); + preset->clearChannels(); + deviceUI->m_deviceSourceAPI->saveChannelSettings(preset); + deviceUI->m_deviceSourceAPI->saveSourceSettings(preset); + } + else if (deviceUI->m_deviceSinkEngine) // sink device + { + preset->setSpectrumConfig(deviceUI->m_spectrumGUI->serialize()); + preset->clearChannels(); + preset->setSourcePreset(false); + deviceUI->m_deviceSinkAPI->saveChannelSettings(preset); + deviceUI->m_deviceSinkAPI->saveSinkSettings(preset); + } + + preset->setLayout(saveState()); +} + +void MainWindow::createStatusBar() +{ + QString qtVersionStr = QString("Qt %1 ").arg(QT_VERSION_STR); +#if QT_VERSION >= 0x050400 + m_showSystemWidget = new QLabel("SDRangel v3.7.6 " + qtVersionStr + QSysInfo::prettyProductName(), this); +#else + m_showSystemWidget = new QLabel("SDRangel v3.7.6 " + qtVersionStr, this); +#endif + statusBar()->addPermanentWidget(m_showSystemWidget); + + m_dateTimeWidget = new QLabel(tr("Date"), this); + m_dateTimeWidget->setToolTip(tr("Current date/time")); + statusBar()->addPermanentWidget(m_dateTimeWidget); +} + +void MainWindow::closeEvent(QCloseEvent*) +{ +} + +void MainWindow::updatePresetControls() +{ + ui->presetTree->resizeColumnToContents(0); + + if(ui->presetTree->currentItem() != 0) + { + ui->presetDelete->setEnabled(true); + ui->presetLoad->setEnabled(true); + } + else + { + ui->presetDelete->setEnabled(false); + ui->presetLoad->setEnabled(false); + } +} + +QTreeWidgetItem* MainWindow::addPresetToTree(const Preset* preset) +{ + QTreeWidgetItem* group = 0; + + for(int i = 0; i < ui->presetTree->topLevelItemCount(); i++) + { + if(ui->presetTree->topLevelItem(i)->text(0) == preset->getGroup()) + { + group = ui->presetTree->topLevelItem(i); + break; + } + } + + if(group == 0) + { + QStringList sl; + sl.append(preset->getGroup()); + group = new QTreeWidgetItem(ui->presetTree, sl, PGroup); + group->setFirstColumnSpanned(true); + group->setExpanded(true); + ui->presetTree->sortByColumn(0, Qt::AscendingOrder); + } + + QStringList sl; + sl.append(QString("%1").arg(preset->getCenterFrequency() / 1e6f, 0, 'f', 3)); // frequency column + sl.append(QString("%1").arg(preset->isSourcePreset() ? 'R' : 'T')); // mode column + sl.append(preset->getDescription()); // description column + PresetItem* item = new PresetItem(group, sl, preset->getCenterFrequency(), PItem); + item->setTextAlignment(0, Qt::AlignRight); + item->setData(0, Qt::UserRole, qVariantFromValue(preset)); + ui->presetTree->resizeColumnToContents(0); // Resize frequency column to minimum + ui->presetTree->resizeColumnToContents(1); // Resize mode column to minimum + + updatePresetControls(); + return item; +} + +void MainWindow::applySettings() +{ +} + +void MainWindow::handleMessages() +{ + Message* message; + + while ((message = m_inputMessageQueue.pop()) != 0) + { + qDebug("MainWindow::handleMessages: message: %s", message->getIdentifier()); + delete message; + } +} + +void MainWindow::on_action_View_Fullscreen_toggled(bool checked) +{ + if(checked) + showFullScreen(); + else showNormal(); +} + +void MainWindow::on_presetSave_clicked() +{ + QStringList groups; + QString group; + QString description = ""; + for(int i = 0; i < ui->presetTree->topLevelItemCount(); i++) + groups.append(ui->presetTree->topLevelItem(i)->text(0)); + + QTreeWidgetItem* item = ui->presetTree->currentItem(); + if(item != 0) { + if(item->type() == PGroup) + group = item->text(0); + else if(item->type() == PItem) { + group = item->parent()->text(0); + description = item->text(0); + } + } + + AddPresetDialog dlg(groups, group, this); + + if (description.length() > 0) { + dlg.setDescription(description); + } + + if(dlg.exec() == QDialog::Accepted) { + Preset* preset = m_settings.newPreset(dlg.group(), dlg.description()); + savePresetSettings(preset, ui->tabInputsView->currentIndex()); + + ui->presetTree->setCurrentItem(addPresetToTree(preset)); + } +} + +void MainWindow::on_presetUpdate_clicked() +{ + QTreeWidgetItem* item = ui->presetTree->currentItem(); + + if(item != 0) { + if(item->type() == PItem) { + const Preset* preset = qvariant_cast(item->data(0, Qt::UserRole)); + if (preset != 0) { + Preset* preset_mod = const_cast(preset); + savePresetSettings(preset_mod, ui->tabInputsView->currentIndex()); + } + } + } +} + +void MainWindow::on_presetExport_clicked() +{ + QTreeWidgetItem* item = ui->presetTree->currentItem(); + + if(item != 0) { + if(item->type() == PItem) + { + const Preset* preset = qvariant_cast(item->data(0, Qt::UserRole)); + QString base64Str = preset->serialize().toBase64(); + QString fileName = QFileDialog::getSaveFileName(this, + tr("Open preset export file"), ".", tr("Preset export files (*.prex)")); + + if (fileName != "") + { + QFileInfo fileInfo(fileName); + + if (fileInfo.suffix() != "prex") { + fileName += ".prex"; + } + + QFile exportFile(fileName); + + if (exportFile.open(QIODevice::WriteOnly | QIODevice::Text)) + { + QTextStream outstream(&exportFile); + outstream << base64Str; + exportFile.close(); + } + else + { + QMessageBox::information(this, tr("Message"), tr("Cannot open file for writing")); + } + } + } + } +} + +void MainWindow::on_presetImport_clicked() +{ + QTreeWidgetItem* item = ui->presetTree->currentItem(); + + if(item != 0) + { + QString group; + + if (item->type() == PGroup) { + group = item->text(0); + } else if (item->type() == PItem) { + group = item->parent()->text(0); + } else { + return; + } + + QString fileName = QFileDialog::getOpenFileName(this, + tr("Open preset export file"), ".", tr("Preset export files (*.prex)")); + + if (fileName != "") + { + QFile exportFile(fileName); + + if (exportFile.open(QIODevice::ReadOnly | QIODevice::Text)) + { + QByteArray base64Str; + QTextStream instream(&exportFile); + instream >> base64Str; + exportFile.close(); + + Preset* preset = m_settings.newPreset("", ""); + preset->deserialize(QByteArray::fromBase64(base64Str)); + preset->setGroup(group); // override with current group + + ui->presetTree->setCurrentItem(addPresetToTree(preset)); + } + else + { + QMessageBox::information(this, tr("Message"), tr("Cannot open file for reading")); + } + } + } +} + +void MainWindow::on_settingsSave_clicked() +{ + savePresetSettings(m_settings.getWorkingPreset(), ui->tabInputsView->currentIndex()); + m_settings.save(); +} + +void MainWindow::on_presetLoad_clicked() +{ + qDebug() << "MainWindow::on_presetLoad_clicked"; + + QTreeWidgetItem* item = ui->presetTree->currentItem(); + + if(item == 0) + { + qDebug("MainWindow::on_presetLoad_clicked: item null"); + updatePresetControls(); + return; + } + + const Preset* preset = qvariant_cast(item->data(0, Qt::UserRole)); + + if(preset == 0) + { + qDebug("MainWindow::on_presetLoad_clicked: preset null"); + return; + } + + loadPresetSettings(preset, ui->tabInputsView->currentIndex()); + applySettings(); +} + +void MainWindow::on_presetDelete_clicked() +{ + QTreeWidgetItem* item = ui->presetTree->currentItem(); + if(item == 0) { + updatePresetControls(); + return; + } + const Preset* preset = qvariant_cast(item->data(0, Qt::UserRole)); + if(preset == 0) + return; + + if(QMessageBox::question(this, tr("Delete Preset"), tr("Do you want to delete preset '%1'?").arg(preset->getDescription()), QMessageBox::No | QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) { + delete item; + m_settings.deletePreset(preset); + } +} + +void MainWindow::on_presetTree_currentItemChanged(QTreeWidgetItem *current __attribute__((unused)), QTreeWidgetItem *previous __attribute__((unused))) +{ + updatePresetControls(); +} + +void MainWindow::on_presetTree_itemActivated(QTreeWidgetItem *item __attribute__((unused)), int column __attribute__((unused))) +{ + on_presetLoad_clicked(); +} + +void MainWindow::on_action_Loaded_Plugins_triggered() +{ + PluginsDialog pluginsDialog(m_pluginManager, this); + pluginsDialog.exec(); +} + +void MainWindow::on_action_Audio_triggered() +{ + AudioDialog audioDialog(&m_audioDeviceInfo, this); + audioDialog.exec(); + m_dspEngine->setAudioInputVolume(m_audioDeviceInfo.getInputVolume()); + m_dspEngine->setAudioInputDeviceIndex(m_audioDeviceInfo.getInputDeviceIndex()); + m_dspEngine->setAudioOutputDeviceIndex(m_audioDeviceInfo.getOutputDeviceIndex()); +} + +void MainWindow::on_action_My_Position_triggered() +{ + MyPositionDialog myPositionDialog(m_settings, this); + myPositionDialog.exec(); +} + +void MainWindow::on_action_DV_Serial_triggered(bool checked) +{ + m_dspEngine->setDVSerialSupport(checked); + + if (checked) + { + std::vector deviceNames; + m_dspEngine->getDVSerialNames(deviceNames); + + if (deviceNames.size() == 0) + { + QMessageBox::information(this, tr("Message"), tr("No DV serial devices found")); + } + else + { + std::vector::iterator it = deviceNames.begin(); + std::string deviceNamesStr = "DV Serial devices found: "; + + while (it != deviceNames.end()) + { + if (it != deviceNames.begin()) { + deviceNamesStr += ","; + } + + deviceNamesStr += *it; + ++it; + } + + QMessageBox::information(this, tr("Message"), tr(deviceNamesStr.c_str())); + } + } +} + +void MainWindow::on_sampleSource_confirmClicked(bool checked __attribute__((unused))) +{ + // Do it in the currently selected source tab + int currentSourceTabIndex = ui->tabInputsSelect->currentIndex(); + + if (currentSourceTabIndex >= 0) + { + qDebug("MainWindow::on_sampleSource_confirmClicked: tab at %d", currentSourceTabIndex); + DeviceUISet *deviceUI = m_deviceUIs[currentSourceTabIndex]; + deviceUI->m_deviceSourceAPI->saveSourceSettings(m_settings.getWorkingPreset()); // save old API settings + int selectedComboIndex = deviceUI->m_samplingDeviceControl->getDeviceSelector()->currentIndex(); + void *devicePtr = deviceUI->m_samplingDeviceControl->getDeviceSelector()->itemData(selectedComboIndex).value(); + deviceUI->m_deviceSourceAPI->stopAcquisition(); + + // deletes old UI and input object + deviceUI->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(0); // have source stop sending messages to the GUI + deviceUI->m_deviceSourceAPI->getPluginInterface()->deleteSampleSourcePluginInstanceGUI( + deviceUI->m_deviceSourceAPI->getSampleSourcePluginInstanceGUI()); + deviceUI->m_deviceSourceAPI->resetSampleSourceId(); + deviceUI->m_deviceSourceAPI->getPluginInterface()->deleteSampleSourcePluginInstanceInput( + deviceUI->m_deviceSourceAPI->getSampleSource()); + deviceUI->m_deviceSourceAPI->clearBuddiesLists(); // clear old API buddies lists + + m_pluginManager->selectSampleSourceByDevice(devicePtr, deviceUI->m_deviceSourceAPI); // sets the new API + + // add to buddies list + std::vector::iterator it = m_deviceUIs.begin(); + int nbOfBuddies = 0; + + for (; it != m_deviceUIs.end(); ++it) + { + if (*it != deviceUI) // do not add to itself + { + if ((*it)->m_deviceSourceEngine) // it is a source device + { + if ((deviceUI->m_deviceSourceAPI->getHardwareId() == (*it)->m_deviceSourceAPI->getHardwareId()) && + (deviceUI->m_deviceSourceAPI->getSampleSourceSerial() == (*it)->m_deviceSourceAPI->getSampleSourceSerial())) + { + (*it)->m_deviceSourceAPI->addSourceBuddy(deviceUI->m_deviceSourceAPI); + nbOfBuddies++; + } + } + + if ((*it)->m_deviceSinkEngine) // it is a sink device + { + if ((deviceUI->m_deviceSourceAPI->getHardwareId() == (*it)->m_deviceSinkAPI->getHardwareId()) && + (deviceUI->m_deviceSourceAPI->getSampleSourceSerial() == (*it)->m_deviceSinkAPI->getSampleSinkSerial())) + { + (*it)->m_deviceSinkAPI->addSourceBuddy(deviceUI->m_deviceSourceAPI); + nbOfBuddies++; + } + } + } + } + + if (nbOfBuddies == 0) { + deviceUI->m_deviceSourceAPI->setBuddyLeader(true); + } + + // constructs new GUI and input object + DeviceSampleSource *source = deviceUI->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceInput( + deviceUI->m_deviceSourceAPI->getSampleSourceId(), deviceUI->m_deviceSourceAPI); + deviceUI->m_deviceSourceAPI->setSampleSource(source); + QWidget *gui; + PluginInstanceGUI *pluginUI = deviceUI->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceGUI( + deviceUI->m_deviceSourceAPI->getSampleSourceId(), &gui, deviceUI->m_deviceSourceAPI); + deviceUI->m_deviceSourceAPI->getSampleSource()->setMessageQueueToGUI(pluginUI->getInputMessageQueue()); + deviceUI->m_deviceSourceAPI->setSampleSourcePluginInstanceGUI(pluginUI); + setDeviceGUI(currentSourceTabIndex, gui, deviceUI->m_deviceSourceAPI->getSampleSourceDisplayName()); + + deviceUI->m_deviceSourceAPI->loadSourceSettings(m_settings.getWorkingPreset()); // load new API settings + + if (currentSourceTabIndex == 0) + { + m_settings.setSourceIndex(deviceUI->m_samplingDeviceControl->getDeviceSelector()->currentIndex()); + } + } +} + +void MainWindow::on_sampleSink_confirmClicked(bool checked __attribute__((unused))) +{ + // Do it in the currently selected source tab + int currentSinkTabIndex = ui->tabInputsSelect->currentIndex(); + + if (currentSinkTabIndex >= 0) + { + qDebug("MainWindow::on_sampleSink_confirmClicked: tab at %d", currentSinkTabIndex); + DeviceUISet *deviceUI = m_deviceUIs[currentSinkTabIndex]; + deviceUI->m_deviceSinkAPI->saveSinkSettings(m_settings.getWorkingPreset()); // save old API settings + int selectedComboIndex = deviceUI->m_samplingDeviceControl->getDeviceSelector()->currentIndex(); + void *devicePtr = deviceUI->m_samplingDeviceControl->getDeviceSelector()->itemData(selectedComboIndex).value(); + deviceUI->m_deviceSinkAPI->stopGeneration(); + + // deletes old UI and output object + deviceUI->m_deviceSinkAPI->getSampleSink()->setMessageQueueToGUI(0); // have sink stop sending messages to the GUI + deviceUI->m_deviceSinkAPI->getPluginInterface()->deleteSampleSourcePluginInstanceGUI( + deviceUI->m_deviceSinkAPI->getSampleSinkPluginInstanceGUI()); + deviceUI->m_deviceSinkAPI->resetSampleSinkId(); + deviceUI->m_deviceSinkAPI->getPluginInterface()->deleteSampleSinkPluginInstanceOutput( + deviceUI->m_deviceSinkAPI->getSampleSink()); + deviceUI->m_deviceSinkAPI->clearBuddiesLists(); // clear old API buddies lists + + m_pluginManager->selectSampleSinkByDevice(devicePtr, deviceUI->m_deviceSinkAPI); // sets the new API + + // add to buddies list + std::vector::iterator it = m_deviceUIs.begin(); + int nbOfBuddies = 0; + + for (; it != m_deviceUIs.end(); ++it) + { + if (*it != deviceUI) // do not add to itself + { + if ((*it)->m_deviceSourceEngine) // it is a source device + { + if ((deviceUI->m_deviceSinkAPI->getHardwareId() == (*it)->m_deviceSourceAPI->getHardwareId()) && + (deviceUI->m_deviceSinkAPI->getSampleSinkSerial() == (*it)->m_deviceSourceAPI->getSampleSourceSerial())) + { + (*it)->m_deviceSourceAPI->addSinkBuddy(deviceUI->m_deviceSinkAPI); + nbOfBuddies++; + } + } + + if ((*it)->m_deviceSinkEngine) // it is a sink device + { + if ((deviceUI->m_deviceSinkAPI->getHardwareId() == (*it)->m_deviceSinkAPI->getHardwareId()) && + (deviceUI->m_deviceSinkAPI->getSampleSinkSerial() == (*it)->m_deviceSinkAPI->getSampleSinkSerial())) + { + (*it)->m_deviceSinkAPI->addSinkBuddy(deviceUI->m_deviceSinkAPI); + nbOfBuddies++; + } + } + } + } + + if (nbOfBuddies == 0) { + deviceUI->m_deviceSinkAPI->setBuddyLeader(true); + } + + // constructs new GUI and output object + DeviceSampleSink *sink = deviceUI->m_deviceSinkAPI->getPluginInterface()->createSampleSinkPluginInstanceOutput( + deviceUI->m_deviceSinkAPI->getSampleSinkId(), deviceUI->m_deviceSinkAPI); + deviceUI->m_deviceSinkAPI->setSampleSink(sink); + QWidget *gui; + PluginInstanceGUI *pluginUI = deviceUI->m_deviceSinkAPI->getPluginInterface()->createSampleSinkPluginInstanceGUI( + deviceUI->m_deviceSinkAPI->getSampleSinkId(), &gui, deviceUI->m_deviceSinkAPI); + deviceUI->m_deviceSinkAPI->getSampleSink()->setMessageQueueToGUI(pluginUI->getInputMessageQueue()); + deviceUI->m_deviceSinkAPI->setSampleSinkPluginInstanceUI(pluginUI); + setDeviceGUI(currentSinkTabIndex, gui, deviceUI->m_deviceSinkAPI->getSampleSinkDisplayName(), false); + + deviceUI->m_deviceSinkAPI->loadSinkSettings(m_settings.getWorkingPreset()); // load new API settings + } +} + +void MainWindow::on_channel_addClicked(bool checked __attribute__((unused))) +{ + // Do it in the currently selected source tab + int currentSourceTabIndex = ui->tabInputsSelect->currentIndex(); + + if (currentSourceTabIndex >= 0) + { + DeviceUISet *deviceUI = m_deviceUIs[currentSourceTabIndex]; + + if (deviceUI->m_deviceSourceEngine) // source device => Rx channels + { + m_pluginManager->createRxChannelInstance(deviceUI->m_samplingDeviceControl->getChannelSelector()->currentIndex(), deviceUI->m_deviceSourceAPI); + } + else if (deviceUI->m_deviceSinkEngine) // sink device => Tx channels + { + uint32_t nbSources = deviceUI->m_deviceSinkAPI->getNumberOfSources(); + + if (nbSources > 0) { + QMessageBox::information(this, tr("Message"), tr("%1 channel(s) already in use. Multiple transmission channels is experimental. You may experience performance problems").arg(nbSources)); + } + + m_pluginManager->createTxChannelInstance(deviceUI->m_samplingDeviceControl->getChannelSelector()->currentIndex(), deviceUI->m_deviceSinkAPI); + } + } + +} + +void MainWindow::on_action_About_triggered() +{ + AboutDialog dlg(this); + dlg.exec(); +} + +void MainWindow::on_action_addSourceDevice_triggered() +{ + addSourceDevice(); +} + +void MainWindow::on_action_addSinkDevice_triggered() +{ + addSinkDevice(); +} + +void MainWindow::on_action_removeLastDevice_triggered() +{ + if (m_deviceUIs.size() > 1) + { + removeLastDevice(); + } +} + +void MainWindow::on_action_reloadDevices_triggered() +{ + // all devices must be stopped + std::vector::iterator it = m_deviceUIs.begin(); + for (; it != m_deviceUIs.end(); ++it) + { + if ((*it)->m_deviceSourceEngine) // it is a source device + { + if ((*it)->m_deviceSourceEngine->state() == DSPDeviceSourceEngine::StRunning) + { + QMessageBox::information(this, tr("Message"), tr("Stop all devices for reload to take effect")); + return; + } + } + + if ((*it)->m_deviceSinkEngine) // it is a sink device + { + if ((*it)->m_deviceSinkEngine->state() == DSPDeviceSinkEngine::StRunning) + { + QMessageBox::information(this, tr("Message"), tr("Stop all devices for reload to take effect")); + return; + } + } + } + + // re-scan devices + m_pluginManager->updateSampleSourceDevices(); + m_pluginManager->updateSampleSinkDevices(); + + // re-populate device selectors keeping the same selection + it = m_deviceUIs.begin(); + for (; it != m_deviceUIs.end(); ++it) + { + if ((*it)->m_deviceSourceEngine) // it is a source device + { + QComboBox *deviceSelectorComboBox = (*it)->m_samplingDeviceControl->getDeviceSelector(); + bool sampleSourceSignalsBlocked = deviceSelectorComboBox->blockSignals(true); + uint dspDeviceSourceEngineUID = (*it)->m_deviceSourceEngine->getUID(); + m_pluginManager->duplicateLocalSampleSourceDevices(dspDeviceSourceEngineUID); + m_pluginManager->fillSampleSourceSelector(deviceSelectorComboBox, dspDeviceSourceEngineUID); + int newIndex = m_pluginManager->getSampleSourceSelectorIndex(deviceSelectorComboBox, (*it)->m_deviceSourceAPI); + deviceSelectorComboBox->setCurrentIndex(newIndex); + deviceSelectorComboBox->blockSignals(sampleSourceSignalsBlocked); + } + + if ((*it)->m_deviceSinkEngine) // it is a sink device + { + QComboBox *deviceSelectorComboBox = (*it)->m_samplingDeviceControl->getDeviceSelector(); + bool sampleSinkSignalsBlocked = deviceSelectorComboBox->blockSignals(true); + uint dspDeviceSinkEngineUID = (*it)->m_deviceSinkEngine->getUID(); + m_pluginManager->duplicateLocalSampleSinkDevices(dspDeviceSinkEngineUID); + m_pluginManager->fillSampleSinkSelector(deviceSelectorComboBox, dspDeviceSinkEngineUID); + int newIndex = m_pluginManager->getSampleSinkSelectorIndex(deviceSelectorComboBox, (*it)->m_deviceSinkAPI); + deviceSelectorComboBox->setCurrentIndex(newIndex); + deviceSelectorComboBox->blockSignals(sampleSinkSignalsBlocked); + } + } +} + +void MainWindow::on_action_Exit_triggered() +{ + savePresetSettings(m_settings.getWorkingPreset(), 0); + m_settings.save(); + + while (m_deviceUIs.size() > 0) + { + removeLastDevice(); + } +} + +void MainWindow::tabInputViewIndexChanged() +{ + int inputViewIndex = ui->tabInputsView->currentIndex(); + + if ((inputViewIndex >= 0) && (m_masterTabIndex >= 0) && (inputViewIndex != m_masterTabIndex)) + { + DeviceUISet *deviceUI = m_deviceUIs[inputViewIndex]; + DeviceUISet *lastdeviceUI = m_deviceUIs[m_masterTabIndex]; + lastdeviceUI->m_mainWindowState = saveState(); + restoreState(deviceUI->m_mainWindowState); + m_masterTabIndex = inputViewIndex; + } + + ui->tabSpectra->setCurrentIndex(inputViewIndex); + ui->tabChannels->setCurrentIndex(inputViewIndex); + ui->tabInputsSelect->setCurrentIndex(inputViewIndex); + ui->tabSpectraGUI->setCurrentIndex(inputViewIndex); +} + +void MainWindow::updateStatus() +{ + m_dateTimeWidget->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss t")); +} + +MainWindow::DeviceUISet::DeviceUISet(QTimer& timer) +{ + m_spectrum = new GLSpectrum; + m_spectrumVis = new SpectrumVis(m_spectrum); + m_spectrum->connectTimer(timer); + m_spectrumGUI = new GLSpectrumGUI; + m_spectrumGUI->setBuddies(m_spectrumVis->getInputMessageQueue(), m_spectrumVis, m_spectrum); + m_channelWindow = new ChannelWindow; + m_samplingDeviceControl = new SamplingDeviceControl; + m_deviceSourceEngine = 0; + m_deviceSourceAPI = 0; + m_deviceSinkEngine = 0; + m_deviceSinkAPI = 0; + + // m_spectrum needs to have its font to be set since it cannot be inherited from the main window + QFont font; + font.setFamily(QStringLiteral("Sans Serif")); + font.setPointSize(9); + m_spectrum->setFont(font); + +} + +MainWindow::DeviceUISet::~DeviceUISet() +{ + delete m_samplingDeviceControl; + delete m_channelWindow; + delete m_spectrumGUI; + delete m_spectrumVis; + delete m_spectrum; +} diff --git a/sdrgui/mainwindow.h b/sdrgui/mainwindow.h new file mode 100644 index 000000000..3137730b2 --- /dev/null +++ b/sdrgui/mainwindow.h @@ -0,0 +1,170 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_MAINWINDOW_H +#define INCLUDE_MAINWINDOW_H + +#include +#include +#include + +#include "settings/mainsettings.h" +#include "util/messagequeue.h" +#include "util/export.h" + +class QLabel; +class QTreeWidgetItem; +class QDir; +class SamplingDeviceControl; + +class AudioDeviceInfo; +class DSPEngine; +class DSPDeviceSourceEngine; +class DSPDeviceSinkEngine; +class Indicator; +class SpectrumVis; +class GLSpectrum; +class GLSpectrumGUI; +class ChannelWindow; +class PluginAPI; +class PluginInstanceGUI; +class ChannelMarker; +class PluginManager; +class DeviceSourceAPI; +class DeviceSinkAPI; +class PluginInterface; +class QWidget; + +namespace Ui { + class MainWindow; +} + +class SDRANGEL_API MainWindow : public QMainWindow { + Q_OBJECT + +public: + struct DeviceUISet + { + SpectrumVis *m_spectrumVis; + GLSpectrum *m_spectrum; + GLSpectrumGUI *m_spectrumGUI; + ChannelWindow *m_channelWindow; + SamplingDeviceControl *m_samplingDeviceControl; + DSPDeviceSourceEngine *m_deviceSourceEngine; + DeviceSourceAPI *m_deviceSourceAPI; + DSPDeviceSinkEngine *m_deviceSinkEngine; + DeviceSinkAPI *m_deviceSinkAPI; + QByteArray m_mainWindowState; + + DeviceUISet(QTimer& timer); + ~DeviceUISet(); + }; + + explicit MainWindow(QWidget* parent = 0); + ~MainWindow(); + + MessageQueue* getInputMessageQueue() { return &m_inputMessageQueue; } + + void addViewAction(QAction* action); + + void addChannelRollup(int deviceTabIndex, QWidget* widget); + void setDeviceGUI(int deviceTabIndex, QWidget* gui, const QString& deviceDisplayName, bool sourceDevice = true); + + const QTimer& getMasterTimer() const { return m_masterTimer; } + const MainSettings& getMainSettings() const { return m_settings; } + +private: + enum { + PGroup, + PItem + }; + + struct DeviceWidgetTabData + { + QWidget *gui; + QString displayName; + QString tabName; + }; + + Ui::MainWindow* ui; + AudioDeviceInfo m_audioDeviceInfo; + MessageQueue m_inputMessageQueue; + MainSettings m_settings; + std::vector m_deviceUIs; + QList m_deviceWidgetTabs; + int m_masterTabIndex; + + DSPEngine* m_dspEngine; + PluginManager* m_pluginManager; + + QTimer m_masterTimer; + QTimer m_statusTimer; + int m_lastEngineState; + + QLabel* m_dateTimeWidget; + QLabel* m_showSystemWidget; + + QWidget* m_inputGUI; + + int m_sampleRate; + quint64 m_centerFrequency; + std::string m_sampleFileName; + + void loadSettings(); + void loadPresetSettings(const Preset* preset, int tabIndex); + void savePresetSettings(Preset* preset, int tabIndex); + + void createStatusBar(); + void closeEvent(QCloseEvent*); + void updatePresetControls(); + QTreeWidgetItem* addPresetToTree(const Preset* preset); + void applySettings(); + + void addSourceDevice(); + void addSinkDevice(); + void removeLastDevice(); + +private slots: + void handleMessages(); + void updateStatus(); + void on_action_View_Fullscreen_toggled(bool checked); + void on_presetSave_clicked(); + void on_presetUpdate_clicked(); + void on_presetExport_clicked(); + void on_presetImport_clicked(); + void on_settingsSave_clicked(); + void on_presetLoad_clicked(); + void on_presetDelete_clicked(); + void on_presetTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); + void on_presetTree_itemActivated(QTreeWidgetItem *item, int column); + void on_action_Audio_triggered(); + void on_action_DV_Serial_triggered(bool checked); + void on_action_My_Position_triggered(); + void on_sampleSource_confirmClicked(bool checked); + void on_sampleSink_confirmClicked(bool checked); + void on_channel_addClicked(bool checked); + void on_action_Loaded_Plugins_triggered(); + void on_action_About_triggered(); + void on_action_addSourceDevice_triggered(); + void on_action_addSinkDevice_triggered(); + void on_action_removeLastDevice_triggered(); + void on_action_reloadDevices_triggered(); + void on_action_Exit_triggered(); + void tabInputViewIndexChanged(); +}; + +#endif // INCLUDE_MAINWINDOW_H diff --git a/sdrgui/mainwindow.ui b/sdrgui/mainwindow.ui new file mode 100644 index 000000000..316f1a48b --- /dev/null +++ b/sdrgui/mainwindow.ui @@ -0,0 +1,719 @@ + + + MainWindow + + + + 0 + 0 + 1012 + 767 + + + + + Sans Serif + 9 + + + + SDRangel + + + + :/sdrangel_icon.png:/sdrangel_icon.png + + + true + + + + + Sans Serif + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + Sans Serif + 9 + + + + QTabWidget::East + + + QTabWidget::Rounded + + + -1 + + + Qt::ElideNone + + + + + + + + + 0 + 0 + 1012 + 19 + + + + + + Sans Serif + 9 + + + + &File + + + + + + + Sans Serif + 9 + + + + &Devices + + + + + + + + + + Sans Serif + 9 + + + + &View + + + + + + + Sans Serif + 9 + + + + &Help + + + + + + + + + Sans Serif + 9 + + + + &Window + + + + + &Preferences + + + + + + + + + + + + + + + + Sans Serif + 9 + + + + + + Sampling devices + + + 1 + + + + + 0 + 0 + + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 0 + 200 + + + + + + + + + + Sampling devices control + + + 1 + + + + + 0 + 0 + + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 0 + 110 + + + + -1 + + + + + + + + + Spectrum Display + + + 1 + + + + + 0 + 0 + + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + -1 + + + + + + + + + Presets + + + 1 + + + + + 2 + + + 2 + + + 2 + + + 2 + + + 3 + + + + + Save current settings as new preset + + + ... + + + + :/preset-save.png:/preset-save.png + + + + 16 + 16 + + + + + + + + Load selected preset + + + ... + + + + :/preset-load.png:/preset-load.png + + + + 16 + 16 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Delete selected preset + + + ... + + + + :/preset-delete.png:/preset-delete.png + + + + 16 + 16 + + + + + + + + 10 + + + true + + + 5 + + + + Freq (MHz) + + + Center frequency in MHz + + + + + M + + + Mode: R: Rx or source, T: Tx or sink + + + + + Description + + + + + + + + Update selected preset with current settings + + + ... + + + + :/preset-update.png:/preset-update.png + + + + 16 + 16 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Save the current settings (inc. presets) + + + ... + + + + :/preset-last.png:/preset-last.png + + + + 16 + 16 + + + + + + + + Export current preset to file + + + + + + + :/export.png:/export.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Import preset from file into current group + + + + + + + :/import.png:/import.png + + + + + + + + + Channels + + + 2 + + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + QTabWidget::East + + + -1 + + + + + + + + + E&xit + + + + + + Ctrl+Q + + + + + &Start + + + + + + F5 + + + + + &Stop + + + + + + F6 + + + + + true + + + &Fullscreen + + + + + + F11 + + + + + true + + + &Oscilloscope + + + F8 + + + + + &About SDRangel... + + + + + + + + &Preferences... + + + + + + + + Loaded &Plugins... + + + + + + + + Add source device + + + + + + + + Remove last device + + + + + + + + &Audio + + + + + true + + + DV Serial + + + + + My Position + + + + + Add sink device + + + + + Reload devices + + + presetDock + channelDock + + + + presetTree + presetSave + presetDelete + presetLoad + + + + + + + action_Exit + triggered() + MainWindow + close() + + + -1 + -1 + + + 462 + 332 + + + + + diff --git a/sdrbase/plugin/pluginapi.cpp b/sdrgui/plugin/pluginapi.cpp similarity index 100% rename from sdrbase/plugin/pluginapi.cpp rename to sdrgui/plugin/pluginapi.cpp diff --git a/sdrbase/plugin/pluginapi.h b/sdrgui/plugin/pluginapi.h similarity index 100% rename from sdrbase/plugin/pluginapi.h rename to sdrgui/plugin/pluginapi.h diff --git a/sdrbase/plugin/pluginmanager.cpp b/sdrgui/plugin/pluginmanager.cpp similarity index 100% rename from sdrbase/plugin/pluginmanager.cpp rename to sdrgui/plugin/pluginmanager.cpp diff --git a/sdrbase/plugin/pluginmanager.h b/sdrgui/plugin/pluginmanager.h similarity index 100% rename from sdrbase/plugin/pluginmanager.h rename to sdrgui/plugin/pluginmanager.h diff --git a/sdrbase/resources/antenna.png b/sdrgui/resources/antenna.png similarity index 100% rename from sdrbase/resources/antenna.png rename to sdrgui/resources/antenna.png diff --git a/sdrbase/resources/appicon.png b/sdrgui/resources/appicon.png similarity index 100% rename from sdrbase/resources/appicon.png rename to sdrgui/resources/appicon.png diff --git a/sdrbase/resources/arrow_down.png b/sdrgui/resources/arrow_down.png similarity index 100% rename from sdrbase/resources/arrow_down.png rename to sdrgui/resources/arrow_down.png diff --git a/sdrbase/resources/arrow_up.png b/sdrgui/resources/arrow_up.png similarity index 100% rename from sdrbase/resources/arrow_up.png rename to sdrgui/resources/arrow_up.png diff --git a/sdrbase/resources/camera.png b/sdrgui/resources/camera.png similarity index 100% rename from sdrbase/resources/camera.png rename to sdrgui/resources/camera.png diff --git a/sdrbase/resources/carrier.png b/sdrgui/resources/carrier.png similarity index 100% rename from sdrbase/resources/carrier.png rename to sdrgui/resources/carrier.png diff --git a/sdrbase/resources/checkmark.png b/sdrgui/resources/checkmark.png similarity index 100% rename from sdrbase/resources/checkmark.png rename to sdrgui/resources/checkmark.png diff --git a/sdrbase/resources/clear.png b/sdrgui/resources/clear.png similarity index 100% rename from sdrbase/resources/clear.png rename to sdrgui/resources/clear.png diff --git a/sdrbase/resources/compressed.png b/sdrgui/resources/compressed.png similarity index 100% rename from sdrbase/resources/compressed.png rename to sdrgui/resources/compressed.png diff --git a/sdrbase/resources/constellation.png b/sdrgui/resources/constellation.png similarity index 100% rename from sdrbase/resources/constellation.png rename to sdrgui/resources/constellation.png diff --git a/sdrbase/resources/current.png b/sdrgui/resources/current.png similarity index 100% rename from sdrbase/resources/current.png rename to sdrgui/resources/current.png diff --git a/sdrbase/resources/display1.png b/sdrgui/resources/display1.png similarity index 100% rename from sdrbase/resources/display1.png rename to sdrgui/resources/display1.png diff --git a/sdrbase/resources/display1_w.png b/sdrgui/resources/display1_w.png similarity index 100% rename from sdrbase/resources/display1_w.png rename to sdrgui/resources/display1_w.png diff --git a/sdrbase/resources/display2.png b/sdrgui/resources/display2.png similarity index 100% rename from sdrbase/resources/display2.png rename to sdrgui/resources/display2.png diff --git a/sdrbase/resources/display2_w.png b/sdrgui/resources/display2_w.png similarity index 100% rename from sdrbase/resources/display2_w.png rename to sdrgui/resources/display2_w.png diff --git a/sdrbase/resources/dsb.png b/sdrgui/resources/dsb.png similarity index 100% rename from sdrbase/resources/dsb.png rename to sdrgui/resources/dsb.png diff --git a/sdrbase/resources/export.png b/sdrgui/resources/export.png similarity index 100% rename from sdrbase/resources/export.png rename to sdrgui/resources/export.png diff --git a/sdrbase/resources/film.png b/sdrgui/resources/film.png similarity index 100% rename from sdrbase/resources/film.png rename to sdrgui/resources/film.png diff --git a/sdrbase/resources/film_reel.png b/sdrgui/resources/film_reel.png similarity index 100% rename from sdrbase/resources/film_reel.png rename to sdrgui/resources/film_reel.png diff --git a/sdrbase/resources/filter_bandpass.png b/sdrgui/resources/filter_bandpass.png similarity index 100% rename from sdrbase/resources/filter_bandpass.png rename to sdrgui/resources/filter_bandpass.png diff --git a/sdrbase/resources/flip_lr.png b/sdrgui/resources/flip_lr.png similarity index 100% rename from sdrbase/resources/flip_lr.png rename to sdrgui/resources/flip_lr.png diff --git a/sdrbase/resources/flip_rl.png b/sdrgui/resources/flip_rl.png similarity index 100% rename from sdrbase/resources/flip_rl.png rename to sdrgui/resources/flip_rl.png diff --git a/sdrbase/resources/grid.png b/sdrgui/resources/grid.png similarity index 100% rename from sdrbase/resources/grid.png rename to sdrgui/resources/grid.png diff --git a/sdrbase/resources/histogram.png b/sdrgui/resources/histogram.png similarity index 100% rename from sdrbase/resources/histogram.png rename to sdrgui/resources/histogram.png diff --git a/sdrbase/resources/horizontal.png b/sdrgui/resources/horizontal.png similarity index 100% rename from sdrbase/resources/horizontal.png rename to sdrgui/resources/horizontal.png diff --git a/sdrbase/resources/horizontal_w.png b/sdrgui/resources/horizontal_w.png similarity index 100% rename from sdrbase/resources/horizontal_w.png rename to sdrgui/resources/horizontal_w.png diff --git a/sdrbase/resources/iambickey.png b/sdrgui/resources/iambickey.png similarity index 100% rename from sdrbase/resources/iambickey.png rename to sdrgui/resources/iambickey.png diff --git a/sdrbase/resources/import.png b/sdrgui/resources/import.png similarity index 100% rename from sdrbase/resources/import.png rename to sdrgui/resources/import.png diff --git a/sdrbase/resources/invertspectrum.png b/sdrgui/resources/invertspectrum.png similarity index 100% rename from sdrbase/resources/invertspectrum.png rename to sdrgui/resources/invertspectrum.png diff --git a/sdrbase/resources/link.png b/sdrgui/resources/link.png similarity index 100% rename from sdrbase/resources/link.png rename to sdrgui/resources/link.png diff --git a/sdrbase/resources/locked.png b/sdrgui/resources/locked.png similarity index 100% rename from sdrbase/resources/locked.png rename to sdrgui/resources/locked.png diff --git a/sdrbase/resources/lsb.png b/sdrgui/resources/lsb.png similarity index 100% rename from sdrbase/resources/lsb.png rename to sdrgui/resources/lsb.png diff --git a/sdrbase/resources/maxhold.png b/sdrgui/resources/maxhold.png similarity index 100% rename from sdrbase/resources/maxhold.png rename to sdrgui/resources/maxhold.png diff --git a/sdrbase/resources/mem.png b/sdrgui/resources/mem.png similarity index 100% rename from sdrbase/resources/mem.png rename to sdrgui/resources/mem.png diff --git a/sdrbase/resources/microphone.png b/sdrgui/resources/microphone.png similarity index 100% rename from sdrbase/resources/microphone.png rename to sdrgui/resources/microphone.png diff --git a/sdrbase/resources/minus.png b/sdrgui/resources/minus.png similarity index 100% rename from sdrbase/resources/minus.png rename to sdrgui/resources/minus.png diff --git a/sdrbase/resources/minusrx.png b/sdrgui/resources/minusrx.png similarity index 100% rename from sdrbase/resources/minusrx.png rename to sdrgui/resources/minusrx.png diff --git a/sdrbase/resources/minusw.png b/sdrgui/resources/minusw.png similarity index 100% rename from sdrbase/resources/minusw.png rename to sdrgui/resources/minusw.png diff --git a/sdrbase/resources/mono.png b/sdrgui/resources/mono.png similarity index 100% rename from sdrbase/resources/mono.png rename to sdrgui/resources/mono.png diff --git a/sdrbase/resources/morsekey.png b/sdrgui/resources/morsekey.png similarity index 100% rename from sdrbase/resources/morsekey.png rename to sdrgui/resources/morsekey.png diff --git a/sdrbase/resources/pause.png b/sdrgui/resources/pause.png similarity index 100% rename from sdrbase/resources/pause.png rename to sdrgui/resources/pause.png diff --git a/sdrbase/resources/picture.png b/sdrgui/resources/picture.png similarity index 100% rename from sdrbase/resources/picture.png rename to sdrgui/resources/picture.png diff --git a/sdrbase/resources/play.png b/sdrgui/resources/play.png similarity index 100% rename from sdrbase/resources/play.png rename to sdrgui/resources/play.png diff --git a/sdrbase/resources/playloop.png b/sdrgui/resources/playloop.png similarity index 100% rename from sdrbase/resources/playloop.png rename to sdrgui/resources/playloop.png diff --git a/sdrbase/resources/plus.png b/sdrgui/resources/plus.png similarity index 100% rename from sdrbase/resources/plus.png rename to sdrgui/resources/plus.png diff --git a/sdrbase/resources/plusrx.png b/sdrgui/resources/plusrx.png similarity index 100% rename from sdrbase/resources/plusrx.png rename to sdrgui/resources/plusrx.png diff --git a/sdrbase/resources/plusw.png b/sdrgui/resources/plusw.png similarity index 100% rename from sdrbase/resources/plusw.png rename to sdrgui/resources/plusw.png diff --git a/sdrbase/resources/preset-delete.png b/sdrgui/resources/preset-delete.png similarity index 100% rename from sdrbase/resources/preset-delete.png rename to sdrgui/resources/preset-delete.png diff --git a/sdrbase/resources/preset-last.png b/sdrgui/resources/preset-last.png similarity index 100% rename from sdrbase/resources/preset-last.png rename to sdrgui/resources/preset-last.png diff --git a/sdrbase/resources/preset-load.png b/sdrgui/resources/preset-load.png similarity index 100% rename from sdrbase/resources/preset-load.png rename to sdrgui/resources/preset-load.png diff --git a/sdrbase/resources/preset-save.png b/sdrgui/resources/preset-save.png similarity index 100% rename from sdrbase/resources/preset-save.png rename to sdrgui/resources/preset-save.png diff --git a/sdrbase/resources/preset-update.png b/sdrgui/resources/preset-update.png similarity index 100% rename from sdrbase/resources/preset-update.png rename to sdrgui/resources/preset-update.png diff --git a/sdrbase/resources/questionmark.png b/sdrgui/resources/questionmark.png similarity index 100% rename from sdrbase/resources/questionmark.png rename to sdrgui/resources/questionmark.png diff --git a/sdrbase/resources/rds.png b/sdrgui/resources/rds.png similarity index 100% rename from sdrbase/resources/rds.png rename to sdrgui/resources/rds.png diff --git a/sdrbase/resources/record_off.png b/sdrgui/resources/record_off.png similarity index 100% rename from sdrbase/resources/record_off.png rename to sdrgui/resources/record_off.png diff --git a/sdrbase/resources/record_on.png b/sdrgui/resources/record_on.png similarity index 100% rename from sdrbase/resources/record_on.png rename to sdrgui/resources/record_on.png diff --git a/sdrbase/resources/recycle.png b/sdrgui/resources/recycle.png similarity index 100% rename from sdrbase/resources/recycle.png rename to sdrgui/resources/recycle.png diff --git a/sdrbase/resources/res.qrc b/sdrgui/resources/res.qrc similarity index 100% rename from sdrbase/resources/res.qrc rename to sdrgui/resources/res.qrc diff --git a/sdrbase/resources/sdrangel.rc b/sdrgui/resources/sdrangel.rc similarity index 100% rename from sdrbase/resources/sdrangel.rc rename to sdrgui/resources/sdrangel.rc diff --git a/sdrbase/resources/sdrangel_icon.ico b/sdrgui/resources/sdrangel_icon.ico similarity index 100% rename from sdrbase/resources/sdrangel_icon.ico rename to sdrgui/resources/sdrangel_icon.ico diff --git a/sdrbase/resources/sdrangel_icon.png b/sdrgui/resources/sdrangel_icon.png similarity index 100% rename from sdrbase/resources/sdrangel_icon.png rename to sdrgui/resources/sdrangel_icon.png diff --git a/sdrbase/resources/sdrangel_logo.png b/sdrgui/resources/sdrangel_logo.png similarity index 100% rename from sdrbase/resources/sdrangel_logo.png rename to sdrgui/resources/sdrangel_logo.png diff --git a/sdrbase/resources/slopeb_icon.png b/sdrgui/resources/slopeb_icon.png similarity index 100% rename from sdrbase/resources/slopeb_icon.png rename to sdrgui/resources/slopeb_icon.png diff --git a/sdrbase/resources/slopen_icon.png b/sdrgui/resources/slopen_icon.png similarity index 100% rename from sdrbase/resources/slopen_icon.png rename to sdrgui/resources/slopen_icon.png diff --git a/sdrbase/resources/slopep_icon.png b/sdrgui/resources/slopep_icon.png similarity index 100% rename from sdrbase/resources/slopep_icon.png rename to sdrgui/resources/slopep_icon.png diff --git a/sdrbase/resources/slot1_off.png b/sdrgui/resources/slot1_off.png similarity index 100% rename from sdrbase/resources/slot1_off.png rename to sdrgui/resources/slot1_off.png diff --git a/sdrbase/resources/slot1_on.png b/sdrgui/resources/slot1_on.png similarity index 100% rename from sdrbase/resources/slot1_on.png rename to sdrgui/resources/slot1_on.png diff --git a/sdrbase/resources/slot2_off.png b/sdrgui/resources/slot2_off.png similarity index 100% rename from sdrbase/resources/slot2_off.png rename to sdrgui/resources/slot2_off.png diff --git a/sdrbase/resources/slot2_on.png b/sdrgui/resources/slot2_on.png similarity index 100% rename from sdrbase/resources/slot2_on.png rename to sdrgui/resources/slot2_on.png diff --git a/sdrbase/resources/sound_off.png b/sdrgui/resources/sound_off.png similarity index 100% rename from sdrbase/resources/sound_off.png rename to sdrgui/resources/sound_off.png diff --git a/sdrbase/resources/sound_on.png b/sdrgui/resources/sound_on.png similarity index 100% rename from sdrbase/resources/sound_on.png rename to sdrgui/resources/sound_on.png diff --git a/sdrbase/resources/stereo.png b/sdrgui/resources/stereo.png similarity index 100% rename from sdrbase/resources/stereo.png rename to sdrgui/resources/stereo.png diff --git a/sdrbase/resources/stop.png b/sdrgui/resources/stop.png similarity index 100% rename from sdrbase/resources/stop.png rename to sdrgui/resources/stop.png diff --git a/sdrbase/resources/stream.png b/sdrgui/resources/stream.png similarity index 100% rename from sdrbase/resources/stream.png rename to sdrgui/resources/stream.png diff --git a/sdrbase/resources/txoff.png b/sdrgui/resources/txoff.png similarity index 100% rename from sdrbase/resources/txoff.png rename to sdrgui/resources/txoff.png diff --git a/sdrbase/resources/txon.png b/sdrgui/resources/txon.png similarity index 100% rename from sdrbase/resources/txon.png rename to sdrgui/resources/txon.png diff --git a/sdrbase/resources/unlocked.png b/sdrgui/resources/unlocked.png similarity index 100% rename from sdrbase/resources/unlocked.png rename to sdrgui/resources/unlocked.png diff --git a/sdrbase/resources/usb.png b/sdrgui/resources/usb.png similarity index 100% rename from sdrbase/resources/usb.png rename to sdrgui/resources/usb.png diff --git a/sdrbase/resources/vertical.png b/sdrgui/resources/vertical.png similarity index 100% rename from sdrbase/resources/vertical.png rename to sdrgui/resources/vertical.png diff --git a/sdrbase/resources/vertical_w.png b/sdrgui/resources/vertical_w.png similarity index 100% rename from sdrbase/resources/vertical_w.png rename to sdrgui/resources/vertical_w.png diff --git a/sdrbase/resources/waterfall.png b/sdrgui/resources/waterfall.png similarity index 100% rename from sdrbase/resources/waterfall.png rename to sdrgui/resources/waterfall.png