Merge branch 'master' of https://github.com/f4exb/sdrangel into osx

This commit is contained in:
ZigaS 2018-12-21 12:46:13 +01:00
commit bb8de6dd99
617 changed files with 12037 additions and 2271 deletions

View File

@ -346,6 +346,7 @@ if (BUILD_DEBIAN)
add_subdirectory(libmirisdr)
add_subdirectory(libperseus)
add_subdirectory(libiio)
add_subdirectory(libsoapysdr)
endif (BUILD_DEBIAN)
add_subdirectory(devices)

View File

@ -35,7 +35,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
*/
QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangel");
QCoreApplication::setApplicationVersion("4.3.0");
QCoreApplication::setApplicationVersion("4.3.1");
#if QT_VERSION >= 0x050600
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps

View File

@ -57,7 +57,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangelBench");
QCoreApplication::setApplicationVersion("4.3.0");
QCoreApplication::setApplicationVersion("4.3.1");
int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP};
std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int));

View File

@ -56,7 +56,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangelSrv");
QCoreApplication::setApplicationVersion("4.3.0");
QCoreApplication::setApplicationVersion("4.3.1");
int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP};
std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int));

View File

@ -9,8 +9,11 @@ QT += core
TEMPLATE = lib
TARGET = cm256cc
CONFIG(MSVC):DEFINES += cm256cc_EXPORTS
CONFIG(MINGW32):LIBCM256CCSRC = "C:\softs\cm256cc"
CONFIG(MINGW64):LIBCM256CCSRC = "C:\softs\cm256cc"
CONFIG(MSVC):LIBCM256CCSRC = "C:\softs\cm256cc"
CONFIG(macx):LIBCM256CCSRC = "../../deps/cm256cc"
INCLUDEPATH += $$LIBCM256CCSRC
@ -26,4 +29,5 @@ SOURCES = $$LIBCM256CCSRC/gf256.cpp\
$$LIBCM256CCSRC/cm256.cpp
HEADERS = $$LIBCM256CCSRC/gf256.h\
$$LIBCM256CCSRC/cm256.h
$$LIBCM256CCSRC/cm256.h\
$$LIBCM256CCSRC/export.h

View File

@ -137,7 +137,7 @@ if (NOT FFMPEG_LIBRARIES)
endif ()
# Now set the noncached _FOUND vars for the components.
foreach (_component AVCODEC AVDEVICE AVFORMAT AVUTIL POSTPROCESS SWSCALE)
foreach (_component AVCODEC AVDEVICE AVFORMAT AVUTIL POSTPROC SWSCALE)
set_component_found(${_component})
endforeach ()

12
debian/changelog vendored
View File

@ -1,9 +1,19 @@
sdrangel (4.3.1-1) unstable; urgency=medium
* RTL-SDR: offset tuning support
* SoapySDR support: 250 ms minimum timeout
* LimeSDR REST API: support GPIO
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Fri, 30 Nov 2018 21:14:18 +0100
sdrangel (4.3.0-1) unstable; urgency=medium
* SoapySDR support
* BladeRF2 corrections
* Scope fixes possible seg fault and correct memory processing
* FCDPro/FCDProPlus critical fixes to make it work again
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Sun, 18 Nov 2018 21:14:18 +0100
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Thu, 22 Nov 2018 21:14:18 +0100
sdrangel (4.2.4-1) unstable; urgency=medium

2
debian/rules vendored
View File

@ -21,5 +21,5 @@
# dh_make generated override targets
# This is example for Cmake (See https://bugs.debian.org/641051 )
override_dh_auto_configure:
dh_auto_configure -- -DCMAKE_INSTALL_PREFIX=/opt/sdrangel -DDEBUG_OUTPUT=ON -DBUILD_TYPE=DEBIAN -DRX_SAMPLE_24BIT=ON -DLIBCM256CCSRC=/z1/development/cm256cc -DLIBDSDCCSRC=/z1/development/dsdcc -DLIBAIRSPYSRC=/z1/development/libairspy -DLIBAIRSPYHFSRC=/z1/softs/airspyhf -DLIBHACKRFSRC=/z1/development/hackrf/host -DLIBRTLSDRSRC=/z1/development/librtlsdr.f4exb -DLIBMBELIBSRC=/z1/development/mbelib -DLIBSERIALDVSRC=/z1/development/serialDV -DLIBBLADERFSRC=/z1/softs/bladeRF -DLIBBLADERFCOMMONSRC=/z1/softs/bladeRF/host/common -DLIBBLADERFLIBSRC=/z1/softs/bladeRF/host/libraries/libbladeRF -DLIBMIRISDRSRC=/z1/development/libmirisdr-4 -DLIBLIMESUITESRC=/z1/softs/LimeSuite -DLIBIIOSRC=/z1/softs/libiio -DLIBPERSEUSSRC=/z1/softs/libperseus-sdr
dh_auto_configure -- -DCMAKE_INSTALL_PREFIX=/opt/sdrangel -DDEBUG_OUTPUT=ON -DBUILD_TYPE=DEBIAN -DRX_SAMPLE_24BIT=ON -DLIBCM256CCSRC=/z1/development/cm256cc -DLIBDSDCCSRC=/z1/development/dsdcc -DLIBAIRSPYSRC=/z1/development/libairspy -DLIBAIRSPYHFSRC=/z1/softs/airspyhf -DLIBHACKRFSRC=/z1/development/hackrf/host -DLIBRTLSDRSRC=/z1/development/librtlsdr.f4exb -DLIBMBELIBSRC=/z1/development/mbelib -DLIBSERIALDVSRC=/z1/development/serialDV -DLIBBLADERFSRC=/z1/softs/bladeRF -DLIBBLADERFCOMMONSRC=/z1/softs/bladeRF/host/common -DLIBBLADERFLIBSRC=/z1/softs/bladeRF/host/libraries/libbladeRF -DLIBMIRISDRSRC=/z1/development/libmirisdr-4 -DLIBLIMESUITESRC=/z1/softs/LimeSuite -DLIBIIOSRC=/z1/softs/libiio -DLIBPERSEUSSRC=/z1/softs/libperseus-sdr -DSOAPYSDR_SOURCE_DIR=/z1/softs/SoapySDR

View File

@ -1,5 +1,7 @@
project(devices)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(LibUSB)
if (BUILD_DEBIAN)

View File

@ -14,13 +14,13 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
///////////////////////////////////////////////////////////////////////////////////
#include "../bladerf1/devicebladerf1.h"
#include <QtGlobal>
#include <cstdio>
#include <cstring>
#include "devicebladerf1.h"
bool DeviceBladeRF1::open_bladerf(struct bladerf **dev, const char *serial)
{
int fpga_loaded;

View File

@ -30,7 +30,7 @@ private:
static struct bladerf *open_bladerf_from_serial(const char *serial);
};
class BladerfBandwidths {
class DEVICES_API BladerfBandwidths {
public:
static unsigned int getBandwidth(unsigned int bandwidth_index);
static unsigned int getBandwidthIndex(unsigned int bandwidth);

View File

@ -31,7 +31,7 @@ class BladeRF2Output;
class DEVICES_API DeviceBladeRF2Shared
{
public:
class MsgReportBuddyChange : public Message {
class DEVICES_API MsgReportBuddyChange : public Message {
MESSAGE_CLASS_DECLARATION
public:

View File

@ -61,7 +61,7 @@ MINGW32 || MINGW64 || macx {
}
MSVC {
INCLUDEPATH += "C:\softs\PothosSDR\include"
INCLUDEPATH += "C:\Program Files\PothosSDR\include"
}
INCLUDEPATH += $$LIBPERSEUSSRC
@ -136,6 +136,13 @@ macx {
}
MSVC {
SOURCES += bladerf1/devicebladerf1.cpp\
bladerf1/devicebladerf1values.cpp\
bladerf1/devicebladerf1shared.cpp
SOURCES += bladerf2/devicebladerf2.cpp\
bladerf2/devicebladerf2shared.cpp
SOURCES += hackrf/devicehackrf.cpp\
hackrf/devicehackrfvalues.cpp\
hackrf/devicehackrfshared.cpp
@ -144,6 +151,25 @@ MSVC {
limesdr/devicelimesdrparam.cpp\
limesdr/devicelimesdrshared.cpp
SOURCES += soapysdr/devicesoapysdr.cpp\
soapysdr/devicesoapysdrparams.cpp\
soapysdr/devicesoapysdrscan.cpp\
soapysdr/devicesoapysdrshared.cpp
SOURCES += plutosdr/deviceplutosdr.cpp\
plutosdr/deviceplutosdrbox.cpp\
plutosdr/deviceplutosdrparams.cpp\
plutosdr/deviceplutosdrscan.cpp\
plutosdr/deviceplutosdrshared.cpp
HEADERS += bladerf1/devicebladerf1.h\
bladerf1/devicebladerf1param.h\
bladerf1/devicebladerf1values.h\
bladerf1/devicebladerf1shared.h
HEADERS += bladerf2/devicebladerf2.h\
bladerf2/devicebladerf2shared.h
HEADERS += hackrf/devicehackrf.h\
hackrf/devicehackrfparam.h\
hackrf/devicehackrfvalues.h\
@ -152,6 +178,17 @@ MSVC {
HEADERS += limesdr/devicelimesdr.h\
limesdr/devicelimesdrparam.h\
limesdr/devicelimesdrshared.h
HEADERS += soapysdr/devicesoapysdr.h\
soapysdr/devicesoapysdrparams.h\
soapysdr/devicesoapysdrscan.h\
soapysdr/devicesoapysdrshared.h
HEADERS += plutosdr/deviceplutosdr.h\
plutosdr/deviceplutosdrbox.h\
plutosdr/deviceplutosdrparams.h\
plutosdr/deviceplutosdrscan.h\
plutosdr/deviceplutosdrshared.h
}
LIBS += -L../sdrbase/$${build_subdir} -lsdrbase
@ -171,5 +208,8 @@ macx {
MSVC {
LIBS += -L../libhackrf/$${build_subdir} -llibhackrf
LIBS += -LC:\softs\PothosSDR\lib -lLimeSuite
LIBS += -L"C:\Program Files\PothosSDR\bin" -L"C:\Program Files\PothosSDR\lib" -lbladeRF
LIBS += -L"C:\Program Files\PothosSDR\bin" -L"C:\Program Files\PothosSDR\lib" -lLimeSuite
LIBS += -L"C:\Program Files\PothosSDR\bin" -L"C:\Program Files\PothosSDR\lib" -lSoapySDR
LIBS += -L"C:\Program Files\PothosSDR\bin" -L"C:\Program Files\PothosSDR\lib" -llibiio
}

View File

@ -15,6 +15,7 @@
///////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <QtGlobal>
#include "devicehackrf.h"
DeviceHackRF::DeviceHackRF()
@ -22,7 +23,7 @@ DeviceHackRF::DeviceHackRF()
hackrf_error rc = (hackrf_error) hackrf_init();
if (rc != HACKRF_SUCCESS) {
fprintf(stderr, "DeviceHackRF::open_hackrf: failed to initiate HackRF library %s\n", hackrf_error_name(rc));
qCritical("DeviceHackRF::open_hackrf: failed to initiate HackRF library %s", hackrf_error_name(rc));
}
}
@ -59,6 +60,7 @@ hackrf_device *DeviceHackRF::open_hackrf(const char * const serial)
}
else
{
qCritical("DeviceHackRF::open_hackrf: error #%d: %s", (int) rc, hackrf_error_name(rc));
return 0;
}
}
@ -79,6 +81,7 @@ hackrf_device *DeviceHackRF::open_hackrf_from_sequence(int sequence)
}
else
{
qCritical("DeviceHackRF::open_hackrf_from_sequence: error #%d: %s", (int) rc, hackrf_error_name(rc));
return 0;
}
}

View File

@ -30,11 +30,7 @@ public:
protected:
DeviceHackRF();
DeviceHackRF(const DeviceHackRF&) {}
#ifdef _MSC_VER
DeviceHackRF& operator=(const DeviceHackRF& other) { return *this; }
#else
DeviceHackRF& operator=(const DeviceHackRF& other __attribute__((unused))) { return *this; }
#endif
DeviceHackRF& operator=(const DeviceHackRF& other) { (void) other; return *this; }
~DeviceHackRF();
private:
static hackrf_device *open_hackrf_from_sequence(int sequence);

View File

@ -23,7 +23,7 @@
class DEVICES_API DeviceHackRFShared
{
public:
class MsgConfigureFrequencyDelta : public Message
class DEVICES_API MsgConfigureFrequencyDelta : public Message
{
MESSAGE_CLASS_DECLARATION

View File

@ -19,7 +19,9 @@
bool DeviceLimeSDRParams::open(lms_info_str_t deviceStr)
{
qDebug("DeviceLimeSDRParams::open: serial: %s", (const char *) deviceStr);
getHardwareType((const char *) deviceStr);
qDebug("DeviceLimeSDRParams::open: serial: %s type: %d", (const char *) deviceStr, (int) m_type);
if (LMS_Open(&m_dev, deviceStr, 0) < 0)
{
@ -105,3 +107,18 @@ void DeviceLimeSDRParams::close()
}
}
void DeviceLimeSDRParams::getHardwareType(const char *device_str)
{
QString deviceStr(device_str);
if (deviceStr.contains(QString("LimeSDR Mini"))) {
m_type = LimeMini;
} else if (deviceStr.contains(QString("LimeSDR-USB"))) {
m_type = LimeUSB;
} else if (deviceStr.contains(QString("media=SPI"))) {
m_type = LimeSPI;
} else {
m_type = LimeUndefined;
}
}

View File

@ -30,6 +30,14 @@
*/
struct DEVICES_API DeviceLimeSDRParams
{
enum LimeType
{
LimeSPI,
LimeMini,
LimeUSB,
LimeUndefined
};
lms_device_t *m_dev; //!< device handle
uint32_t m_nbRxChannels; //!< number of Rx channels (normally 2, we'll see if we really use it...)
uint32_t m_nbTxChannels; //!< number of Tx channels (normally 2, we'll see if we really use it...)
@ -44,6 +52,7 @@ struct DEVICES_API DeviceLimeSDRParams
int m_log2OvSRTx; //!< log2 of Tx oversampling (0..5)
float m_rxFrequency; //!< Rx frequency
float m_txFrequency; //!< Tx frequency
LimeType m_type; //!< Hardware type
DeviceLimeSDRParams() :
m_dev(0),
@ -53,7 +62,8 @@ struct DEVICES_API DeviceLimeSDRParams
m_log2OvSRRx(0),
m_log2OvSRTx(0),
m_rxFrequency(1e6),
m_txFrequency(1e6)
m_txFrequency(1e6),
m_type(LimeUndefined)
{
m_lpfRangeRx.max = 0.0f;
m_lpfRangeRx.min = 0.0f;
@ -90,6 +100,9 @@ struct DEVICES_API DeviceLimeSDRParams
~DeviceLimeSDRParams()
{
}
private:
void getHardwareType(const char *device_str);
};
#endif /* DEVICES_LIMESDR_DEVICELIMESDRPARAM_H_ */

View File

@ -18,6 +18,7 @@
MESSAGE_CLASS_DEFINITION(DeviceLimeSDRShared::MsgReportBuddyChange, Message)
MESSAGE_CLASS_DEFINITION(DeviceLimeSDRShared::MsgReportClockSourceChange, Message)
MESSAGE_CLASS_DEFINITION(DeviceLimeSDRShared::MsgReportGPIOChange, Message)
MESSAGE_CLASS_DEFINITION(DeviceLimeSDRShared::MsgReportDeviceInfo, Message)
const float DeviceLimeSDRShared::m_sampleFifoLengthInSeconds = 0.25;

View File

@ -28,7 +28,7 @@
class DEVICES_API DeviceLimeSDRShared
{
public:
class MsgReportBuddyChange : public Message {
class DEVICES_API MsgReportBuddyChange : public Message {
MESSAGE_CLASS_DECLARATION
public:
@ -69,7 +69,7 @@ public:
{ }
};
class MsgReportClockSourceChange : public Message {
class DEVICES_API MsgReportClockSourceChange : public Message {
MESSAGE_CLASS_DECLARATION
public:
@ -98,27 +98,52 @@ public:
{ }
};
class MsgReportDeviceInfo : public Message {
class DEVICES_API MsgReportDeviceInfo : public Message {
MESSAGE_CLASS_DECLARATION
public:
float getTemperature() const { return m_temperature; }
uint8_t getGPIOPins() const { return m_gpioPins; }
static MsgReportDeviceInfo* create(float temperature)
static MsgReportDeviceInfo* create(float temperature, uint8_t gpioPins)
{
return new MsgReportDeviceInfo(temperature);
return new MsgReportDeviceInfo(temperature, gpioPins);
}
private:
float m_temperature;
uint8_t m_gpioPins;
MsgReportDeviceInfo(float temperature) :
MsgReportDeviceInfo(float temperature, uint8_t gpioPins) :
Message(),
m_temperature(temperature)
m_temperature(temperature),
m_gpioPins(gpioPins)
{ }
};
class ThreadInterface
class DEVICES_API MsgReportGPIOChange : public Message {
MESSAGE_CLASS_DECLARATION
public:
uint8_t getGPIODir() const { return m_gpioDir; }
uint8_t getGPIOPins() const { return m_gpioPins; }
static MsgReportGPIOChange* create(uint8_t gpioDir, uint8_t gpioPins)
{
return new MsgReportGPIOChange(gpioDir, gpioPins);
}
private:
uint8_t m_gpioDir;
uint8_t m_gpioPins;
MsgReportGPIOChange(uint8_t gpioDir, uint8_t gpioPins) :
m_gpioDir(gpioDir),
m_gpioPins(gpioPins)
{}
};
class DEVICES_API ThreadInterface
{
public:
virtual void startWork() = 0;

View File

@ -32,7 +32,7 @@ public:
protected:
DevicePerseus();
DevicePerseus(const DevicePerseus&) : m_nbDevices(0) {}
DevicePerseus& operator=(const DevicePerseus& other __attribute__((unused))) { return *this; }
DevicePerseus& operator=(const DevicePerseus& other) { (void) other; return *this; }
~DevicePerseus();
private:

View File

@ -24,6 +24,11 @@
#include "export.h"
#if defined(_MSC_VER)
#include <BaseTsd.h>
typedef SSIZE_T ssize_t;
#endif
class DEVICES_API DevicePlutoSDRBox
{
public:

View File

@ -30,7 +30,7 @@ class DEVICES_API DevicePlutoSDRBox;
* There is only one copy that is constructed by the first participant and destroyed by the last.
* A participant knows it is the first or last by checking the lists of buddies (Rx + Tx).
*/
class DevicePlutoSDRParams
class DEVICES_API DevicePlutoSDRParams
{
public:
DevicePlutoSDRParams();

View File

@ -42,7 +42,7 @@ public:
virtual bool isRunning() = 0;
};
class MsgCrossReportToBuddy : public Message {
class DEVICES_API MsgCrossReportToBuddy : public Message {
MESSAGE_CLASS_DECLARATION
public:
uint64_t getDevSampleRate() const { return m_devSampleRate; }

View File

@ -20,7 +20,8 @@ if (BUILD_DEBIAN)
include_directories(
.
${CMAKE_CURRENT_BINARY_DIR}
${SOAPYSDRSRC}
${SOAPYSDR_SOURCE_DIR}/include
${SOAPYSDR_SOURCE_DIR}/src
)
else (BUILD_DEBIAN)
include_directories(
@ -39,7 +40,7 @@ add_library(soapysdrdevice SHARED
if (BUILD_DEBIAN)
target_link_libraries(soapysdrdevice
soapysdr
SoapySDR
sdrbase
)
else (BUILD_DEBIAN)

View File

@ -38,7 +38,7 @@ public:
protected:
DeviceSoapySDR();
DeviceSoapySDR(const DeviceSoapySDR&) {}
DeviceSoapySDR& operator=(const DeviceSoapySDR& other __attribute__((unused))) { return *this; }
DeviceSoapySDR& operator=(const DeviceSoapySDR& other) { (void) other; return *this; }
~DeviceSoapySDR();
private:

View File

@ -68,6 +68,8 @@ public:
DeviceSoapySDRParams(SoapySDR::Device *device);
~DeviceSoapySDRParams();
const SoapySDR::ArgInfoList& getDeviceArgs() const { return m_deviceSettingsArgs; }
const ChannelSettings* getRxChannelSettings(uint32_t index)
{
if (index < m_nbRx) {

View File

@ -66,15 +66,17 @@ void DeviceSoapySDRScan::scan()
SoapySDR::Kwargs::const_iterator kargIt;
if ((kargIt = kit->find("label")) != kit->end())
{
if ((kargIt = kit->find("label")) != kit->end()) {
m_deviceEnums.back().m_label = QString(kargIt->second.c_str());
qDebug("DeviceSoapySDRScan::scan: %s #%u %s",
m_deviceEnums.back().m_driverName.toStdString().c_str(),
deviceSeq,
kargIt->second.c_str());
} else { // if no label is registered for this device then create a label with the driver name and sequence
m_deviceEnums.back().m_label = QString("%1-%2").arg(m_deviceEnums.back().m_driverName).arg(deviceSeq);
}
qDebug("DeviceSoapySDRScan::scan: %s #%u %s",
m_deviceEnums.back().m_driverName.toStdString().c_str(),
deviceSeq,
m_deviceEnums.back().m_label.toStdString().c_str());
if ((kargIt = kit->find("serial")) != kit->end())
{
m_deviceEnums.back().m_idKey = QString(kargIt->first.c_str());

View File

@ -17,6 +17,7 @@
#include "devicesoapysdrshared.h"
MESSAGE_CLASS_DEFINITION(DeviceSoapySDRShared::MsgReportBuddyChange, Message)
MESSAGE_CLASS_DEFINITION(DeviceSoapySDRShared::MsgReportDeviceArgsChange, Message)
const float DeviceSoapySDRShared::m_sampleFifoLengthInSeconds = 0.25;
const int DeviceSoapySDRShared::m_sampleFifoMinSize = 75000; // 300 kS/s knee
@ -24,6 +25,7 @@ const int DeviceSoapySDRShared::m_sampleFifoMinSize32 = 150000; // Fixed for
DeviceSoapySDRShared::DeviceSoapySDRShared() :
m_device(0),
m_deviceParams(0),
m_channel(-1),
m_source(0),
m_sink(0)

View File

@ -17,6 +17,9 @@
#ifndef DEVICES_SOAPYSDR_DEVICESOAPYSDRSHARED_H_
#define DEVICES_SOAPYSDR_DEVICESOAPYSDRSHARED_H_
#include <QMap>
#include <QVariant>
#include <SoapySDR/Device.hpp>
#include "util/message.h"
@ -32,7 +35,7 @@ class SoapySDROutput;
class DEVICES_API DeviceSoapySDRShared
{
public:
class MsgReportBuddyChange : public Message {
class DEVICES_API MsgReportBuddyChange : public Message {
MESSAGE_CLASS_DECLARATION
public:
@ -79,6 +82,24 @@ public:
{ }
};
class DEVICES_API MsgReportDeviceArgsChange : public Message {
MESSAGE_CLASS_DECLARATION
public:
const QMap<QString, QVariant>& getDeviceArgSettings() const { return m_deviceArgSettings; }
static MsgReportDeviceArgsChange* create(const QMap<QString, QVariant>& deviceArgSettings) {
return new MsgReportDeviceArgsChange(deviceArgSettings);
}
private:
QMap<QString, QVariant> m_deviceArgSettings;
MsgReportDeviceArgsChange(const QMap<QString, QVariant>& deviceArgSettings) :
m_deviceArgSettings(deviceArgSettings)
{ }
};
DeviceSoapySDRShared();
~DeviceSoapySDRShared();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

View File

@ -1,5 +1,7 @@
project(dsdcc)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(dsdcc_SOURCES
${LIBDSDCCSRC}/descramble.cpp
${LIBDSDCCSRC}/dmr.cpp

View File

@ -9,12 +9,16 @@ QT += core
TEMPLATE = lib
TARGET = dsdcc
CONFIG(MSVC):DEFINES += dsdcc_EXPORTS
CONFIG(MINGW32):LIBDSDCCSRC = "C:\softs\dsdcc"
CONFIG(MINGW64):LIBDSDCCSRC = "C:\softs\dsdcc"
CONFIG(MSVC):LIBDSDCCSRC = "C:\softs\dsdcc"
CONFIG(macx):LIBDSDCCSRC = "../../deps/dsdcc"
CONFIG(MINGW32):LIBMBELIBSRC = "C:\softs\mbelib"
CONFIG(MINGW64):LIBMBELIBSRC = "C:\softs\mbelib"
CONFIG(MSVC):LIBMBELIBSRC = "C:\softs\mbelib"
CONFIG(macx):LIBMBELIBSRC = "../../deps/mbelib"
INCLUDEPATH += $$LIBDSDCCSRC
@ -50,7 +54,8 @@ $$LIBDSDCCSRC/viterbi5.cpp\
$$LIBDSDCCSRC/pn.cpp\
$$LIBDSDCCSRC/mbefec.cpp\
$$LIBDSDCCSRC/phaselock.cpp\
$$LIBDSDCCSRC/locator.cpp
$$LIBDSDCCSRC/locator.cpp\
$$LIBDSDCCSRC/timeutil.cpp
HEADERS = $$LIBDSDCCSRC/descramble.h\
$$LIBDSDCCSRC/dmr.h\
@ -80,6 +85,8 @@ $$LIBDSDCCSRC/viterbi5.h\
$$LIBDSDCCSRC/pn.h\
$$LIBDSDCCSRC/mbefec.h\
$$LIBDSDCCSRC/phaselock.h\
$$LIBDSDCCSRC/locator.h
$$LIBDSDCCSRC/locator.h\
$$LIBDSDCCSRC/timeutil.h\
$$LIBDSDCCSRC/export.h
LIBS += -L../mbelib/$${build_subdir} -lmbelib

View File

@ -102,6 +102,18 @@
# define QRTPLIB_API
#endif
/* the 'SERIALDV_API' controls the import/export of 'serialdv' symbols
*/
#if !defined(sdrangel_STATIC)
# ifdef serialdv_EXPORTS
# define SERIALDV_API __SDR_EXPORT
# else
# define SERIALDV_API __SDR_IMPORT
# endif
#else
# define SERIALDV_API
#endif
/* the 'SWG_API' controls the import/export of 'swagger' symbols
*/
#if !defined(sdrangel_STATIC)

View File

@ -1,15 +1,27 @@
/*
* fcdtraits.cpp
*
* Created on: Sep 5, 2015
* Author: f4exb
*/
///////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2015-2018 Edouard Griffiths, F4EXB //
// //
// 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 <http://www.gnu.org/licenses/>. //
///////////////////////////////////////////////////////////////////////////////////
#include "fcdtraits.h"
const char *fcd_traits<Pro>::alsaDeviceName = "hw:CARD=V10";
const char *fcd_traits<ProPlus>::alsaDeviceName = "hw:CARD=V20";
const char *fcd_traits<Pro>::qtDeviceName = "FUNcube_Dongle_V1.0";
const char *fcd_traits<ProPlus>::qtDeviceName = "FUNcube_Dongle_V2.0";
const char *fcd_traits<Pro>::hardwareID = "FCDPro";
const char *fcd_traits<ProPlus>::hardwareID = "FCDPro+";
@ -22,8 +34,8 @@ const char *fcd_traits<ProPlus>::displayedName = "FunCube Dongle Pro+";
const char *fcd_traits<Pro>::pluginDisplayedName = "FunCube Pro Input";
const char *fcd_traits<ProPlus>::pluginDisplayedName = "FunCube Pro+ Input";
const char *fcd_traits<Pro>::pluginVersion = "4.0.0";
const char *fcd_traits<ProPlus>::pluginVersion = "4.0.0";
const char *fcd_traits<Pro>::pluginVersion = "4.3.0";
const char *fcd_traits<ProPlus>::pluginVersion = "4.3.0";
const int64_t fcd_traits<Pro>::loLowLimitFreq = 64000000L;
const int64_t fcd_traits<ProPlus>::loLowLimitFreq = 150000L;

View File

@ -1,9 +1,18 @@
/*
* fcdtraits.h
*
* Created on: 3 Sep 2015
* Author: egriffiths
*/
///////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2015-2018 Edouard Griffiths, F4EXB //
// //
// 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 <http://www.gnu.org/licenses/>. //
///////////////////////////////////////////////////////////////////////////////////
#ifndef FCDLIB_FCDTRAITS_H_
#define FCDLIB_FCDTRAITS_H_
@ -23,8 +32,8 @@ struct fcd_traits
static const uint16_t productId = 0x0;
static const int sampleRate = 48000;
static const int convBufSize = (1<<11);
static const int fcdBufSize = (1<<12);
static const char *alsaDeviceName;
static const char *qtDeviceName;
static const char *hardwareID;
static const char *interfaceIID;
static const char *displayedName;
@ -41,8 +50,8 @@ struct fcd_traits<Pro>
static const uint16_t productId = 0xFB56;
static const int sampleRate = 96000;
static const int convBufSize = (1<<11);
static const int fcdBufSize = (1<<12);
static const char *alsaDeviceName;
static const char *qtDeviceName;
static const char *hardwareID;
static const char *interfaceIID;
static const char *displayedName;
@ -58,9 +67,9 @@ struct fcd_traits<ProPlus>
static const uint16_t vendorId = 0x04D8;
static const uint16_t productId = 0xFB31;
static const int sampleRate = 192000;
static const int convBufSize = (1<<12);
static const int fcdBufSize = (1<<18);
static const int convBufSize = (1<<10);
static const char *alsaDeviceName;
static const char *qtDeviceName;
static const char *hardwareID;
static const char *interfaceIID;
static const char *displayedName;

View File

@ -1,5 +1,7 @@
project(httpserver)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(httpserver_SOURCES
httpglobal.cpp
httplistener.cpp

View File

@ -17,6 +17,8 @@ QMAKE_CXXFLAGS += -std=c++11
CONFIG(Release):build_subdir = release
CONFIG(Debug):build_subdir = debug
CONFIG(MSVC):DEFINES += httpserver_EXPORTS
# Enable very detailed debug messages when compiling the debug version
CONFIG(debug, debug|release) {
DEFINES += SUPERVERBOSE

View File

@ -1,5 +1,7 @@
project(airspy)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(LibUSB)
remove_definitions(-DUSE_SSE2)

View File

@ -1,5 +1,7 @@
project(airspyhf)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(LibUSB)
set(airspyhf_SOURCES

View File

@ -1,5 +1,7 @@
project(bladerf)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(LibUSB)
add_definitions(-DBLADERF_OS_LINUX)

View File

@ -1,5 +1,7 @@
project(hackrf)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(LibUSB)
set(hackrf_SOURCES

View File

@ -1,6 +1,8 @@
cmake_minimum_required(VERSION 2.8.7)
project(iio)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(LIBIIO_VERSION_MAJOR 0)
set(LIBIIO_VERSION_MINOR 10)
set(VERSION "${LIBIIO_VERSION_MAJOR}.${LIBIIO_VERSION_MINOR}")

View File

@ -1,5 +1,7 @@
project(limesuite)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(LibUSB)
set(limesuite_SOURCES

View File

@ -1,5 +1,7 @@
project(mirisdr)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_definitions(-DDETACH_KERNEL_DRIVER=ON)
find_package(LibUSB)

View File

@ -1,5 +1,7 @@
project(perseus)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(LibUSB)
add_definitions(-DHAVE_CONFIG_H)

View File

@ -1,5 +1,7 @@
project(rtlsdr)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_definitions(-DDETACH_KERNEL_DRIVER=ON)
find_package(LibUSB)

161
libsoapysdr/CMakeLists.txt Normal file
View File

@ -0,0 +1,161 @@
########################################################################
# Project setup
########################################################################
cmake_minimum_required(VERSION 2.8.7)
project(SoapySDR)
enable_language(CXX)
enable_testing()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#set(SOAPYSDR_SOURCE_DIR "/opt/build/SoapySDR")
########################################################################
# gather version information
# packagers may specify -DSOAPY_SDR_EXTVER="foo" to replace the git hash
########################################################################
file(READ "${SOAPYSDR_SOURCE_DIR}/Changelog.txt" changelog_txt)
string(REGEX MATCH "Release ([0-9]+\\.[0-9]+\\.[0-9]+) \\(" CHANGELOG_MATCH "${changelog_txt}")
if(NOT CHANGELOG_MATCH)
message(FATAL_ERROR "Failed to extract version number from Changelog.txt")
endif(NOT CHANGELOG_MATCH)
set(SOAPY_SDR_LIBVER "${CMAKE_MATCH_1}")
if (NOT SOAPY_SDR_EXTVER)
include(${SOAPYSDR_SOURCE_DIR}/cmake/Modules/GetGitRevisionDescription.cmake)
get_git_head_revision(GITREFSPEC GITHASH)
if (GITHASH)
string(SUBSTRING "${GITHASH}" 0 8 GITHASH)
set(SOAPY_SDR_EXTVER "g${GITHASH}")
else (GITHASH)
set(SOAPY_SDR_EXTVER "unknown")
endif (GITHASH)
endif()
set(SOAPY_SDR_VERSION "${SOAPY_SDR_LIBVER}-${SOAPY_SDR_EXTVER}")
#SOAPY_SDR_ROOT is compiled into the library to locate the install base.
#By default, the SOAPY_SDR_ROOT is set to the CMAKE_INSTALL_PREFIX.
#However users may overload this by specifying -DSOAPY_SDR_ROOT=<path>.
set(SOAPY_SDR_ROOT "${CMAKE_INSTALL_PREFIX}" CACHE PATH
"Installation root for SoapySDR::getRootPath()")
file(TO_CMAKE_PATH "${SOAPY_SDR_ROOT}" SOAPY_SDR_ROOT)
#SOAPY_SDR_ROOT_ENV is the name of the environment variable
#which tells SoapySDR where to find the root installation.
#By default, the environment variable SOAPY_SDR_ROOT is used.
#Example: set -DSOAPY_SDR_ROOT_ENV=SNAP for snappy packages.
set(SOAPY_SDR_ROOT_ENV "SOAPY_SDR_ROOT" CACHE STRING
"Environment variable for SoapySDR::getRootPath()")
########################################################################
# select the release build type by default to get optimization flags
########################################################################
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
message(STATUS "Build type not specified: defaulting to release.")
endif(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
########################################################################
# rpath setup - http://www.cmake.org/Wiki/CMake_RPATH_handling
########################################################################
# use, i.e. don't skip the full RPATH for the build tree
option(CMAKE_SKIP_BUILD_RPATH "skip rpath build" FALSE)
# when building, don't use the install RPATH already
# (but later on when installing)
option(CMAKE_BUILD_WITH_INSTALL_RPATH "build with install rpath" FALSE)
# the RPATH to be used when installing, but only if it's not a system directory
option(CMAKE_AUTOSET_INSTALL_RPATH TRUE)
if(CMAKE_AUTOSET_INSTALL_RPATH)
LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" isSystemDir)
IF("${isSystemDir}" STREQUAL "-1")
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
ENDIF("${isSystemDir}" STREQUAL "-1")
endif(CMAKE_AUTOSET_INSTALL_RPATH)
# add the automatically determined parts of the RPATH
# which point to directories outside the build tree to the install RPATH
option(CMAKE_INSTALL_RPATH_USE_LINK_PATH "build with automatic rpath" TRUE)
if(APPLE)
set(CMAKE_MACOSX_RPATH ON)
endif()
########################################################################
# Allows in-tree module util
########################################################################
set(SoapySDR_DIR ${SOAPYSDR_SOURCE_DIR}/cmake/Modules)
set(SOAPY_SDR_IN_TREE_SOURCE_DIR ${SOAPYSDR_SOURCE_DIR})
find_package(SoapySDR NO_MODULE REQUIRED)
include_directories(${SoapySDR_INCLUDE_DIRS}) #local include precedence
########################################################################
# Install cmake helper modules
########################################################################
configure_file(
${SOAPYSDR_SOURCE_DIR}/cmake/Modules/SoapySDRConfigVersion.in.cmake
${PROJECT_BINARY_DIR}/SoapySDRConfigVersion.cmake
@ONLY)
set(cmake_files
${SOAPYSDR_SOURCE_DIR}/cmake/Modules/SoapySDRConfig.cmake
${SOAPYSDR_SOURCE_DIR}/cmake/Modules/SoapySDRUtil.cmake
${PROJECT_BINARY_DIR}/SoapySDRConfigVersion.cmake)
if (UNIX)
install(FILES ${cmake_files} DESTINATION share/cmake/${PROJECT_NAME})
elseif (WIN32)
install(FILES ${cmake_files} DESTINATION cmake)
endif ()
########################################################################
# Install headers
########################################################################
#install(DIRECTORY include/SoapySDR DESTINATION include)
########################################################################
# Build subdirs
########################################################################
add_subdirectory(${SOAPYSDR_SOURCE_DIR}/lib ${PROJECT_BINARY_DIR}/lib)
#add_subdirectory(apps)
#add_subdirectory(tests)
#add_subdirectory(docs)
########################################################################
# uninstall target
########################################################################
configure_file(
"${SOAPYSDR_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${SOAPYSDR_SOURCE_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
#only add uninstall target if this is the top project
if(${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME})
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif()
#########################################################################
# summary
#########################################################################
include(FeatureSummary)
message(STATUS "")
message(STATUS "######################################################")
message(STATUS "## ${PROJECT_NAME} enabled features")
message(STATUS "######################################################")
feature_summary(WHAT ENABLED_FEATURES)
message(STATUS "######################################################")
message(STATUS "## ${PROJECT_NAME} disabled features")
message(STATUS "######################################################")
feature_summary(WHAT DISABLED_FEATURES)
message(STATUS "SoapySDR version: v${SOAPY_SDR_VERSION}")
message(STATUS "ABI/so version: v${SOAPY_SDR_ABI_VERSION}")
message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
#add_definitions(-DQT_SHARED)
#
#message( STATUS "soapysdr_SOURCES: ${soapysdr_SOURCES}" )
#
#add_library(soapysdr SHARED
# ${soapysdr_SOURCES}
#)
#
#install(TARGETS soapysdr DESTINATION lib)

View File

@ -1,5 +1,7 @@
project(logging)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(logging_SOURCES
dualfilelogger.cpp
loggerwithfile.cpp

View File

@ -1,5 +1,7 @@
project(mbelib)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(mbelib_SOURCES
${LIBMBELIBSRC}/ambe3600x2400.c
${LIBMBELIBSRC}/ambe3600x2450.c

View File

@ -9,6 +9,8 @@ QT += core
TEMPLATE = lib
TARGET = mbelib
CONFIG(MSVC):DEFINES += mbelib_EXPORTS
CONFIG(MINGW32):LIBMBELIBSRC = "C:\softs\mbelib"
CONFIG(MINGW64):LIBMBELIBSRC = "C:\softs\mbelib"
CONFIG(MSVC):LIBMBELIBSRC = "C:\softs\mbelib"
@ -28,4 +30,5 @@ $$LIBMBELIBSRC/ambe3600x2450_const.h\
$$LIBMBELIBSRC/ecc_const.h\
$$LIBMBELIBSRC/imbe7200x4400_const.h\
$$LIBMBELIBSRC/mbelib.h\
$$LIBMBELIBSRC/export.h\
$$LIBMBELIBSRC/mbelib_const.h

View File

@ -1,5 +1,7 @@
project(chanalyzer)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(chanalyzer_SOURCES
chanalyzer.cpp
chanalyzergui.cpp

View File

@ -89,8 +89,9 @@ void ChannelAnalyzer::configure(MessageQueue* messageQueue,
messageQueue->push(cmd);
}
void ChannelAnalyzer::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly __attribute__((unused)))
void ChannelAnalyzer::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly)
{
(void) positiveOnly;
fftfilt::cmplx *sideband = 0;
Complex ci;

View File

@ -205,7 +205,7 @@ public:
virtual qint64 getCenterFrequency() const { return m_settings.m_frequency; }
virtual QByteArray serialize() const { return QByteArray(); }
virtual bool deserialize(const QByteArray& data __attribute__((unused))) { return false; }
virtual bool deserialize(const QByteArray& data) { (void) data; return false; }
static const QString m_channelIdURI;
static const QString m_channelId;

View File

@ -25,6 +25,7 @@ INCLUDEPATH += ../../../sdrgui
CONFIG(ANDROID):INCLUDEPATH += /opt/softs/boost_1_60_0
CONFIG(MINGW32):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(MINGW64):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(MSVC):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(macx):INCLUDEPATH += "../../../../../boost_1_64_0"
CONFIG(Release):build_subdir = release

View File

@ -312,16 +312,18 @@ void ChannelAnalyzerGUI::on_rrcRolloff_valueChanged(int value)
applySettings();
}
void ChannelAnalyzerGUI::on_BW_valueChanged(int value __attribute__((unused)))
void ChannelAnalyzerGUI::on_BW_valueChanged(int value)
{
(void) value;
setFiltersUIBoundaries();
m_settings.m_bandwidth = ui->BW->value() * 100;
m_settings.m_lowCutoff = ui->lowCut->value() * 100;
applySettings();
}
void ChannelAnalyzerGUI::on_lowCut_valueChanged(int value __attribute__((unused)))
void ChannelAnalyzerGUI::on_lowCut_valueChanged(int value)
{
(void) value;
setFiltersUIBoundaries();
m_settings.m_bandwidth = ui->BW->value() * 100;
m_settings.m_lowCutoff = ui->lowCut->value() * 100;
@ -351,8 +353,10 @@ void ChannelAnalyzerGUI::on_ssb_toggled(bool checked)
applySettings();
}
void ChannelAnalyzerGUI::onWidgetRolled(QWidget* widget __attribute__((unused)), bool rollDown __attribute__((unused)))
void ChannelAnalyzerGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;
(void) rollDown;
}
void ChannelAnalyzerGUI::onMenuDialogCalled(const QPoint& p)

View File

@ -23,7 +23,7 @@
const PluginDescriptor ChannelAnalyzerPlugin::m_pluginDescriptor = {
QString("Channel Analyzer"),
QString("4.2.4"),
QString("4.3.0"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,

View File

@ -97,8 +97,9 @@ void DaemonSink::setNbBlocksFEC(int nbBlocksFEC)
m_nbBlocksFEC = nbBlocksFEC;
}
void DaemonSink::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
void DaemonSink::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
{
(void) firstOfBurst;
SampleVector::const_iterator it = begin;
while (it != end)
@ -134,7 +135,10 @@ void DaemonSink::feed(const SampleVector::const_iterator& begin, const SampleVec
superBlock.m_header.m_blockIndex = m_txBlockIndex;
superBlock.m_header.m_sampleBytes = (SDR_RX_SAMP_SZ <= 16 ? 2 : 4);
superBlock.m_header.m_sampleBits = SDR_RX_SAMP_SZ;
memcpy((void *) &superBlock.m_protectedBlock, (const void *) &metaData, sizeof(SDRDaemonMetaDataFEC));
SDRDaemonMetaDataFEC *destMeta = (SDRDaemonMetaDataFEC *) &superBlock.m_protectedBlock;
*destMeta = metaData;
//memcpy((void *) &superBlock.m_protectedBlock, (const void *) &metaData, sizeof(SDRDaemonMetaDataFEC));
if (!(metaData == m_currentMetaFEC))
{
@ -238,8 +242,9 @@ void DaemonSink::stop()
m_running = false;
}
bool DaemonSink::handleMessage(const Message& cmd __attribute__((unused)))
bool DaemonSink::handleMessage(const Message& cmd)
{
(void) cmd;
if (DownChannelizer::MsgChannelizerNotification::match(cmd))
{
DownChannelizer::MsgChannelizerNotification& notif = (DownChannelizer::MsgChannelizerNotification&) cmd;
@ -293,8 +298,9 @@ QByteArray DaemonSink::serialize() const
return m_settings.serialize();
}
bool DaemonSink::deserialize(const QByteArray& data __attribute__((unused)))
bool DaemonSink::deserialize(const QByteArray& data)
{
(void) data;
if (m_settings.deserialize(data))
{
MsgConfigureDaemonSink *msg = MsgConfigureDaemonSink::create(m_settings, true);
@ -341,8 +347,9 @@ void DaemonSink::applySettings(const DaemonSinkSettings& settings, bool force)
int DaemonSink::webapiSettingsGet(
SWGSDRangel::SWGChannelSettings& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
response.setDaemonSinkSettings(new SWGSDRangel::SWGDaemonSinkSettings());
response.getDaemonSinkSettings()->init();
webapiFormatChannelSettings(response, m_settings);
@ -353,8 +360,9 @@ int DaemonSink::webapiSettingsPutPatch(
bool force,
const QStringList& channelSettingsKeys,
SWGSDRangel::SWGChannelSettings& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
DaemonSinkSettings settings = m_settings;
if (channelSettingsKeys.contains("nbFECBlocks"))

View File

@ -48,8 +48,9 @@ qint64 DaemonSinkGUI::getCenterFrequency() const {
return 0;
}
void DaemonSinkGUI::setCenterFrequency(qint64 centerFrequency __attribute__((unused)))
void DaemonSinkGUI::setCenterFrequency(qint64 centerFrequency)
{
(void) centerFrequency;
}
void DaemonSinkGUI::resetToDefaults()
@ -207,8 +208,10 @@ void DaemonSinkGUI::handleSourceMessages()
}
}
void DaemonSinkGUI::onWidgetRolled(QWidget* widget __attribute__((unused)), bool rollDown __attribute__((unused)))
void DaemonSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;
(void) rollDown;
}
void DaemonSinkGUI::onMenuDialogCalled(const QPoint &p)
@ -249,8 +252,9 @@ void DaemonSinkGUI::on_dataPort_returnPressed()
applySettings();
}
void DaemonSinkGUI::on_dataApplyButton_clicked(bool checked __attribute__((unused)))
void DaemonSinkGUI::on_dataApplyButton_clicked(bool checked)
{
(void) checked;
m_settings.m_dataAddress = ui->dataAddress->text();
bool dataOk;

View File

@ -39,6 +39,7 @@ void DaemonSinkSettings::resetToDefaults()
m_dataPort = 9090;
m_rgbColor = QColor(140, 4, 4).rgb();
m_title = "Daemon sink";
m_channelMarker = nullptr;
}
QByteArray DaemonSinkSettings::serialize() const

View File

@ -68,7 +68,7 @@ public slots:
private:
QMutex m_startWaitMutex;
QWaitCondition m_startWaiter;
bool m_running;
volatile bool m_running;
CM256 m_cm256;
CM256 *m_cm256p;

View File

@ -98,8 +98,9 @@ AMDemod::~AMDemod()
delete SSBFilter;
}
void AMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
void AMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
{
(void) firstOfBurst;
Complex ci;
if (!m_running) {
@ -502,8 +503,9 @@ bool AMDemod::deserialize(const QByteArray& data)
int AMDemod::webapiSettingsGet(
SWGSDRangel::SWGChannelSettings& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
response.setAmDemodSettings(new SWGSDRangel::SWGAMDemodSettings());
response.getAmDemodSettings()->init();
webapiFormatChannelSettings(response, m_settings);
@ -514,8 +516,9 @@ int AMDemod::webapiSettingsPutPatch(
bool force,
const QStringList& channelSettingsKeys,
SWGSDRangel::SWGChannelSettings& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
AMDemodSettings settings = m_settings;
bool frequencyOffsetChanged = false;
@ -584,8 +587,9 @@ int AMDemod::webapiSettingsPutPatch(
int AMDemod::webapiReportGet(
SWGSDRangel::SWGChannelReport& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
response.setAmDemodReport(new SWGSDRangel::SWGAMDemodReport());
response.getAmDemodReport()->init();
webapiFormatChannelReport(response);

View File

@ -92,8 +92,9 @@ bool AMDemodGUI::deserialize(const QByteArray& data)
}
}
bool AMDemodGUI::handleMessage(const Message& message __attribute__((unused)))
bool AMDemodGUI::handleMessage(const Message& message)
{
(void) message;
if (AMDemod::MsgConfigureAMDemod::match(message))
{
qDebug("AMDemodGUI::handleMessage: AMDemod::MsgConfigureAMDemod");
@ -192,8 +193,10 @@ void AMDemodGUI::on_audioMute_toggled(bool checked)
applySettings();
}
void AMDemodGUI::onWidgetRolled(QWidget* widget __attribute__((unused)), bool rollDown __attribute__((unused)))
void AMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;
(void) rollDown;
/*
if((widget == ui->spectrumContainer) && (m_nfmDemod != NULL))
m_nfmDemod->setSpectrum(m_threadedSampleSink->getMessageQueue(), rollDown);

View File

@ -1,5 +1,7 @@
project(atv)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(atv_SOURCES
atvdemod.cpp
atvdemodsettings.cpp

View File

@ -164,8 +164,9 @@ void ATVDemod::configureRF(
objMessageQueue->push(msgCmd);
}
void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
{
(void) firstOfBurst;
float fltI;
float fltQ;
Complex ci;

View File

@ -65,7 +65,8 @@ public:
ATV_FM3, //!< Classical frequency modulation with phase derivative discriminator
ATV_AM, //!< Classical amplitude modulation
ATV_USB, //!< AM with vestigial lower side band (main signal is in the upper side)
ATV_LSB //!< AM with vestigial upper side band (main signal is in the lower side)
ATV_LSB, //!< AM with vestigial upper side band (main signal is in the lower side)
ATV_NONE //!< No modulation just produces zeros
};
struct ATVConfig
@ -229,7 +230,7 @@ public:
virtual qint64 getCenterFrequency() const { return m_rfRunning.m_intFrequencyOffset; }
virtual QByteArray serialize() const { return QByteArray(); }
virtual bool deserialize(const QByteArray& data __attribute__((unused))) { return false; }
virtual bool deserialize(const QByteArray& data) { (void) data; return false; }
void setTVScreen(TVScreen *objScreen); //!< set by the GUI
int getSampleRate();

View File

@ -263,8 +263,10 @@ void ATVDemodGUI::handleSourceMessages()
}
}
void ATVDemodGUI::onWidgetRolled(QWidget* widget __attribute__((unused)), bool rollDown __attribute__((unused)))
void ATVDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;
(void) rollDown;
}
ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* objParent) :
@ -534,32 +536,37 @@ void ATVDemodGUI::on_halfImage_clicked()
applySettings();
}
void ATVDemodGUI::on_nbLines_currentIndexChanged(int index __attribute__((unused)))
void ATVDemodGUI::on_nbLines_currentIndexChanged(int index)
{
(void) index;
lineTimeUpdate();
topTimeUpdate();
applySettings();
}
void ATVDemodGUI::on_fps_currentIndexChanged(int index __attribute__((unused)))
void ATVDemodGUI::on_fps_currentIndexChanged(int index)
{
(void) index;
lineTimeUpdate();
topTimeUpdate();
applySettings();
}
void ATVDemodGUI::on_standard_currentIndexChanged(int index __attribute__((unused)))
void ATVDemodGUI::on_standard_currentIndexChanged(int index)
{
(void) index;
applySettings();
}
void ATVDemodGUI::on_reset_clicked(bool checked __attribute__((unused)))
void ATVDemodGUI::on_reset_clicked(bool checked)
{
(void) checked;
resetToDefaults();
}
void ATVDemodGUI::on_modulation_currentIndexChanged(int index __attribute__((unused)))
void ATVDemodGUI::on_modulation_currentIndexChanged(int index)
{
(void) index;
setRFFiltersSlidersRange(m_atvDemod->getEffectiveSampleRate());
setChannelMarkerBandwidth();
applyRFSettings();
@ -579,15 +586,17 @@ void ATVDemodGUI::on_rfOppBW_valueChanged(int value)
applyRFSettings();
}
void ATVDemodGUI::on_rfFiltering_toggled(bool checked __attribute__((unused)))
void ATVDemodGUI::on_rfFiltering_toggled(bool checked)
{
(void) checked;
setRFFiltersSlidersRange(m_atvDemod->getEffectiveSampleRate());
setChannelMarkerBandwidth();
applyRFSettings();
}
void ATVDemodGUI::on_decimatorEnable_toggled(bool checked __attribute__((unused)))
void ATVDemodGUI::on_decimatorEnable_toggled(bool checked)
{
(void) checked;
setChannelMarkerBandwidth();
applyRFSettings();
}
@ -610,8 +619,9 @@ void ATVDemodGUI::on_fmDeviation_valueChanged(int value)
applyRFSettings();
}
void ATVDemodGUI::on_screenTabWidget_currentChanged(int index __attribute__((unused)))
void ATVDemodGUI::on_screenTabWidget_currentChanged(int index)
{
(void) index;
applySettings();
}

View File

@ -27,7 +27,7 @@
const PluginDescriptor ATVDemodPlugin::m_ptrPluginDescriptor =
{
QString("ATV Demodulator"),
QString("4.2.4"),
QString("4.3.0"),
QString("(c) F4HKW for F4EXB / SDRAngel"),
QString("https://github.com/f4exb/sdrangel"),
true,

View File

@ -27,6 +27,7 @@ CONFIG(Debug):build_subdir = debug
CONFIG(MINGW32):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(MINGW64):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(MSVC):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(macx):INCLUDEPATH += "../../../../../boost_1_64_0"
SOURCES += atvdemod.cpp\

View File

@ -113,8 +113,9 @@ BFMDemod::~BFMDemod()
delete m_rfFilter;
}
void BFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused)))
void BFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
{
(void) firstOfBurst;
Complex ci, cs, cr;
fftfilt::cmplx *rf;
int rf_out;
@ -538,8 +539,9 @@ bool BFMDemod::deserialize(const QByteArray& data)
int BFMDemod::webapiSettingsGet(
SWGSDRangel::SWGChannelSettings& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
response.setBfmDemodSettings(new SWGSDRangel::SWGBFMDemodSettings());
response.getBfmDemodSettings()->init();
webapiFormatChannelSettings(response, m_settings);
@ -550,8 +552,9 @@ int BFMDemod::webapiSettingsPutPatch(
bool force,
const QStringList& channelSettingsKeys,
SWGSDRangel::SWGChannelSettings& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
BFMDemodSettings settings = m_settings;
bool frequencyOffsetChanged = false;
@ -618,8 +621,9 @@ int BFMDemod::webapiSettingsPutPatch(
int BFMDemod::webapiReportGet(
SWGSDRangel::SWGChannelReport& response,
QString& errorMessage __attribute__((unused)))
QString& errorMessage)
{
(void) errorMessage;
response.setBfmDemodReport(new SWGSDRangel::SWGBFMDemodReport());
response.getBfmDemodReport()->init();
webapiFormatChannelReport(response);

View File

@ -225,8 +225,9 @@ void BFMDemodGUI::on_rds_clicked()
applySettings();
}
void BFMDemodGUI::on_clearData_clicked(bool checked __attribute__((unused)))
void BFMDemodGUI::on_clearData_clicked(bool checked)
{
(void) checked;
if (ui->rds->isChecked())
{
m_bfmDemod->getRDSParser().clearAllFields();
@ -288,26 +289,31 @@ void BFMDemodGUI::on_g14ProgServiceNames_currentIndexChanged(int _index)
}
}
void BFMDemodGUI::on_g00AltFrequenciesBox_activated(int index __attribute__((unused)))
void BFMDemodGUI::on_g00AltFrequenciesBox_activated(int index)
{
(void) index;
qint64 f = (qint64) ((ui->g00AltFrequenciesBox->currentText()).toDouble() * 1e6);
changeFrequency(f);
}
void BFMDemodGUI::on_g14MappedFrequencies_activated(int index __attribute__((unused)))
void BFMDemodGUI::on_g14MappedFrequencies_activated(int index)
{
(void) index;
qint64 f = (qint64) ((ui->g14MappedFrequencies->currentText()).toDouble() * 1e6);
changeFrequency(f);
}
void BFMDemodGUI::on_g14AltFrequencies_activated(int index __attribute__((unused)))
void BFMDemodGUI::on_g14AltFrequencies_activated(int index)
{
(void) index;
qint64 f = (qint64) ((ui->g14AltFrequencies->currentText()).toDouble() * 1e6);
changeFrequency(f);
}
void BFMDemodGUI::onWidgetRolled(QWidget* widget __attribute__((unused)), bool rollDown __attribute__((unused)))
void BFMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;
(void) rollDown;
}
void BFMDemodGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -26,6 +26,7 @@ INCLUDEPATH += ../../../swagger/sdrangel/code/qt5/client
CONFIG(ANDROID):INCLUDEPATH += /opt/softs/boost_1_60_0
CONFIG(MINGW32):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(MINGW64):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(MSVC):INCLUDEPATH += "C:\softs\boost_1_66_0"
CONFIG(macx):INCLUDEPATH += "../../../../../boost_1_64_0"
CONFIG(Release):build_subdir = release

View File

@ -66,8 +66,9 @@ RDSDemod::~RDSDemod()
//delete m_socket;
}
void RDSDemod::setSampleRate(int srate __attribute__((unused))) /// FIXME: fix rate for now
void RDSDemod::setSampleRate(int srate) /// FIXME: fix rate for now
{
(void) srate;
}
bool RDSDemod::process(Real demod, bool& bit)

View File

@ -532,20 +532,16 @@ void RDSParser::decode_type0(unsigned int *group, bool B)
if (af_1)
{
// @TODO: Find proper header or STL on OSX
#ifndef __APPLE__
std::pair<std::_Rb_tree_const_iterator<double>, bool> res = m_g0_alt_freq.insert(af_1/1e3);
m_g0_af_updated = m_g0_af_updated || res.second;
#endif
auto res = m_g0_alt_freq.insert(af_1/1e3);
m_g0_af_updated = m_g0_af_updated || res.second;
no_af += 1;
}
if (af_2)
{
// @TODO: Find proper header or STL on OSX
#ifndef __APPLE__
std::pair<std::_Rb_tree_const_iterator<double>, bool> res = m_g0_alt_freq.insert(af_2/1e3);
auto res = m_g0_alt_freq.insert(af_2/1e3);
m_g0_af_updated = m_g0_af_updated || res.second;
#endif
no_af += 2;
}
@ -828,19 +824,25 @@ void RDSParser::decode_type4(unsigned int *group, bool B)
//send_message(5,time);
}
void RDSParser::decode_type5(unsigned int *group __attribute__((unused)), bool B __attribute__((unused))) {
void RDSParser::decode_type5(unsigned int *group, bool B) {
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type5: type5 not implemented yet";
m_g5_updated = true;
m_g5_count++;
}
void RDSParser::decode_type6(unsigned int *group __attribute__((unused)), bool B __attribute__((unused))) {
void RDSParser::decode_type6(unsigned int *group, bool B) {
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type6: type 6 not implemented yet";
m_g6_updated = true;
m_g6_count++;
}
void RDSParser::decode_type7(unsigned int *group __attribute__((unused)), bool B __attribute__((unused))) {
void RDSParser::decode_type7(unsigned int *group, bool B) {
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type7: type 7 not implemented yet";
m_g7_updated = true;
m_g7_count++;
@ -971,29 +973,37 @@ void RDSParser::decode_type9(unsigned int *group, bool B){
m_g9_count++;
}
void RDSParser::decode_type10(unsigned int *group __attribute__((unused)), bool B __attribute__((unused)))
void RDSParser::decode_type10(unsigned int *group, bool B)
{
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type10: type 10 not implemented yet";
m_g10_updated = true;
m_g10_count++;
}
void RDSParser::decode_type11(unsigned int *group __attribute__((unused)), bool B __attribute__((unused)))
void RDSParser::decode_type11(unsigned int *group, bool B)
{
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type11: type 11 not implemented yet";
m_g11_updated = true;
m_g11_count++;
}
void RDSParser::decode_type12(unsigned int *group __attribute__((unused)), bool B __attribute__((unused)))
void RDSParser::decode_type12(unsigned int *group, bool B)
{
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type12: type 12 not implemented yet";
m_g12_updated = true;
m_g12_count++;
}
void RDSParser::decode_type13(unsigned int *group __attribute__((unused)), bool B __attribute__((unused)))
void RDSParser::decode_type13(unsigned int *group, bool B)
{
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type13: type 13 not implemented yet";
m_g13_updated = true;
m_g13_count++;
@ -1180,8 +1190,10 @@ void RDSParser::decode_type14(unsigned int *group, bool B)
}*/
}
void RDSParser::decode_type15(unsigned int *group __attribute__((unused)), bool B __attribute__((unused)))
void RDSParser::decode_type15(unsigned int *group, bool B)
{
(void) group;
(void) B;
qDebug() << "RDSParser::decode_type5: type 15 not implemented yet";
m_g15_updated = true;
m_g15_count++;

View File

@ -1,5 +1,7 @@
project(datv)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(datv_SOURCES
datvdemod.cpp
datvdemodgui.cpp

View File

@ -19,7 +19,6 @@
#ifndef DATVCONSTELLATION_H
#define DATVCONSTELLATION_H
#include <sys/time.h>
#include <vector>
#include "leansdr/framework.h"
@ -69,12 +68,8 @@ template<typename T> struct datvconstellation: runnable
for (; p < pend; ++p)
{
if (m_objDATVScreen != 0)
{
m_objDATVScreen->selectRow(256 * (p->re - xymin) / (xymax - xymin));
m_objDATVScreen->setDataColor(256 - 256 * ((p->im - xymin) / (xymax - xymin)), 255, 0, 255);
}
m_objDATVScreen->selectRow(256 * (p->re - xymin) / (xymax - xymin));
m_objDATVScreen->setDataColor(256 - 256 * ((p->im - xymin) / (xymax - xymin)), 255, 0, 255);
}
if (cstln && (*cstln))

Some files were not shown because too many files have changed in this diff Show More