From b413c8454bd8f3bd5bd9261aadfe5fdec22e3d57 Mon Sep 17 00:00:00 2001 From: "Charles J. Cliffe" Date: Fri, 22 Jan 2016 20:26:22 -0500 Subject: [PATCH] MSVC fix-up --- src/modules/modem/Modem.h | 4 ++++ src/modules/modem/analog/ModemLSB.cpp | 3 ++- src/modules/modem/analog/ModemUSB.cpp | 3 ++- src/sdr/SDREnumerator.cpp | 14 +++++++++++++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/modules/modem/Modem.h b/src/modules/modem/Modem.h index 0ce8d46..0172ea5 100644 --- a/src/modules/modem/Modem.h +++ b/src/modules/modem/Modem.h @@ -8,6 +8,10 @@ #define MIN_BANDWIDTH 500 +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + class ModemKit { public: ModemKit() : sampleRate(0), audioSampleRate(0) { diff --git a/src/modules/modem/analog/ModemLSB.cpp b/src/modules/modem/analog/ModemLSB.cpp index d418426..fe6628d 100644 --- a/src/modules/modem/analog/ModemLSB.cpp +++ b/src/modules/modem/analog/ModemLSB.cpp @@ -11,11 +11,12 @@ ModemLSB::ModemLSB() : ModemAnalog() { // estimate required filter length and generate filter unsigned int h_len = estimate_req_filter_len(ft,As); - float h[h_len]; + float *h = (float *) malloc(h_len * sizeof(float)); liquid_firdes_kaiser(h_len,fc,As,mu,h); ssbFilt = firfilt_crcf_create(h,h_len); ssbShift = nco_crcf_create(LIQUID_NCO); nco_crcf_set_frequency(ssbShift, (2.0 * M_PI) * 0.25); + free(h); } Modem *ModemLSB::factory() { diff --git a/src/modules/modem/analog/ModemUSB.cpp b/src/modules/modem/analog/ModemUSB.cpp index dac0073..bb64c9a 100644 --- a/src/modules/modem/analog/ModemUSB.cpp +++ b/src/modules/modem/analog/ModemUSB.cpp @@ -11,11 +11,12 @@ ModemUSB::ModemUSB() : ModemAnalog() { // estimate required filter length and generate filter unsigned int h_len = estimate_req_filter_len(ft,As); - float h[h_len]; + float *h = (float *) malloc(h_len * sizeof(float)); liquid_firdes_kaiser(h_len,fc,As,mu,h); ssbFilt = firfilt_crcf_create(h,h_len); ssbShift = nco_crcf_create(LIQUID_NCO); nco_crcf_set_frequency(ssbShift, (2.0 * M_PI) * 0.25); + free(h); } Modem *ModemUSB::factory() { diff --git a/src/sdr/SDREnumerator.cpp b/src/sdr/SDREnumerator.cpp index 75af11b..ce0c4bf 100644 --- a/src/sdr/SDREnumerator.cpp +++ b/src/sdr/SDREnumerator.cpp @@ -4,6 +4,10 @@ #include "CubicSDR.h" #include +#ifdef WIN32 +#include +#endif + std::vector SDREnumerator::factories; std::vector SDREnumerator::modules; @@ -24,10 +28,18 @@ SDREnumerator::~SDREnumerator() { // Some utility from SoapySDR :) static std::string trim(const std::string &s) { - std::string out = s; +#if WIN32 + std::string out = s; + locale loc(""); + while (not out.empty() and std::isspace(out[0], loc)) out = out.substr(1); + while (not out.empty() and std::isspace(out[out.size() - 1], loc)) out = out.substr(0, out.size() - 1); + return out; +#else + std::string out = s; while (not out.empty() and std::isspace(out[0])) out = out.substr(1); while (not out.empty() and std::isspace(out[out.size()-1])) out = out.substr(0, out.size()-1); return out; +#endif } SoapySDR::Kwargs SDREnumerator::argsStrToKwargs(const std::string &args)