mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-02-03 09:44:26 -05:00
Merge branch 'master' of https://github.com/cjcliffe/CubicSDR
This commit is contained in:
commit
a9e88256e4
@ -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) {
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user