This commit is contained in:
Charles J. Cliffe 2016-01-24 10:38:24 -05:00
commit a9e88256e4
4 changed files with 23 additions and 5 deletions

View File

@ -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) {

View File

@ -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() {

View File

@ -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() {

View File

@ -4,6 +4,10 @@
#include "CubicSDR.h"
#include <string>
#ifdef WIN32
#include <locale>
#endif
std::vector<std::string> SDREnumerator::factories;
std::vector<std::string> 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)
@ -407,10 +419,10 @@ void SDREnumerator::addManual(std::string factory, std::string params) {
}
void SDREnumerator::removeManual(std::string factory, std::string params) {
for (std::vector<SDRManualDef>::const_iterator i = manuals.begin(); i != manuals.end(); i++) {
for (std::vector<SDRManualDef>::iterator i = manuals.begin(); i != manuals.end(); i++) {
if (i->factory == factory && i->params == params) {
manuals.erase(i);
for (std::vector<SDRDeviceInfo *>::const_iterator subdevs_i = devs[""].begin(); subdevs_i != devs[""].end(); subdevs_i++) {
for (std::vector<SDRDeviceInfo *>::iterator subdevs_i = devs[""].begin(); subdevs_i != devs[""].end(); subdevs_i++) {
if ((*subdevs_i)->isManual() && (*subdevs_i)->getDriver() == factory && (*subdevs_i)->getManualParams() == params) {
devs[""].erase(subdevs_i);
break;