11 Commits

Author SHA1 Message Date
c266a37a6b fix sdrplay configuration bug
Some checks failed
Build Binaries / build_debian_buster (push) Failing after 4s
Build Binaries / build_debian_bullseye (push) Failing after 4s
Build Binaries / build_debian_bookworm (push) Failing after 4s
Build Binaries / build_debian_sid (push) Failing after 6s
Build Binaries / build_ubuntu_focal (push) Failing after 4s
Build Binaries / build_ubuntu_jammy (push) Failing after 4s
Build Binaries / build_ubuntu_mantic (push) Failing after 4s
Build Binaries / build_ubuntu_noble (push) Failing after 3s
Build Binaries / build_android (push) Failing after 4s
Build Binaries / check_spelling (push) Failing after 4s
Build Binaries / check_formatting (push) Successful in 4s
Build Binaries / create_full_archive (push) Has been cancelled
Build Binaries / update_nightly_release (push) Has been cancelled
Build Binaries / build_windows (push) Has been cancelled
Build Binaries / build_macos_intel (push) Has been cancelled
Build Binaries / build_macos_arm (push) Has been cancelled
Build Binaries / build_raspios_bullseye_armhf (push) Has been cancelled
2024-12-18 23:19:40 +01:00
895199ae94 fix RSPdx bug
Some checks failed
Build Binaries / build_windows (push) Waiting to run
Build Binaries / build_macos_intel (push) Waiting to run
Build Binaries / build_macos_arm (push) Waiting to run
Build Binaries / build_raspios_bullseye_armhf (push) Waiting to run
Build Binaries / create_full_archive (push) Blocked by required conditions
Build Binaries / update_nightly_release (push) Blocked by required conditions
Build Binaries / build_debian_buster (push) Failing after 4s
Build Binaries / build_debian_bullseye (push) Failing after 5s
Build Binaries / build_debian_bookworm (push) Failing after 4s
Build Binaries / build_debian_sid (push) Failing after 4s
Build Binaries / build_ubuntu_focal (push) Failing after 4s
Build Binaries / build_ubuntu_jammy (push) Failing after 4s
Build Binaries / build_ubuntu_mantic (push) Failing after 4s
Build Binaries / build_ubuntu_noble (push) Failing after 4s
Build Binaries / build_android (push) Failing after 4s
Build Binaries / check_spelling (push) Failing after 4s
Build Binaries / check_formatting (push) Successful in 4s
2024-12-18 23:02:49 +01:00
d62426364a finish implementing support for RSP1B and RSPdx R2 + Improve samplerate and bandwidth code 2024-12-18 22:59:57 +01:00
304d5c42cc some fucking changes too lazy to name this shit 2024-11-27 21:49:46 +01:00
11f87e0fe2 fix menu order bug
Some checks failed
Build Binaries / build_debian_buster (push) Failing after 5s
Build Binaries / build_debian_bullseye (push) Failing after 5s
Build Binaries / build_debian_bookworm (push) Failing after 4s
Build Binaries / build_debian_sid (push) Failing after 4s
Build Binaries / build_ubuntu_focal (push) Failing after 5s
Build Binaries / build_ubuntu_jammy (push) Failing after 4s
Build Binaries / build_ubuntu_mantic (push) Failing after 5s
Build Binaries / build_ubuntu_noble (push) Failing after 5s
Build Binaries / build_android (push) Failing after 5s
Build Binaries / check_spelling (push) Failing after 4s
Build Binaries / check_formatting (push) Successful in 4s
Build Binaries / build_windows (push) Has been cancelled
Build Binaries / build_macos_intel (push) Has been cancelled
Build Binaries / build_macos_arm (push) Has been cancelled
Build Binaries / build_raspios_bullseye_armhf (push) Has been cancelled
Build Binaries / create_full_archive (push) Has been cancelled
Build Binaries / update_nightly_release (push) Has been cancelled
2024-11-09 19:28:34 +01:00
e192cb963b fix MacOS ARM CI
Some checks failed
Build Binaries / build_debian_buster (push) Failing after 5s
Build Binaries / build_debian_bullseye (push) Failing after 4s
Build Binaries / build_debian_sid (push) Failing after 5s
Build Binaries / build_debian_bookworm (push) Failing after 5s
Build Binaries / build_ubuntu_focal (push) Failing after 5s
Build Binaries / build_ubuntu_jammy (push) Failing after 5s
Build Binaries / build_ubuntu_mantic (push) Failing after 4s
Build Binaries / build_ubuntu_noble (push) Failing after 4s
Build Binaries / build_android (push) Failing after 5s
Build Binaries / check_spelling (push) Failing after 4s
Build Binaries / check_formatting (push) Successful in 5s
Build Binaries / build_windows (push) Has been cancelled
Build Binaries / build_macos_intel (push) Has been cancelled
Build Binaries / build_macos_arm (push) Has been cancelled
Build Binaries / build_raspios_bullseye_armhf (push) Has been cancelled
Build Binaries / create_full_archive (push) Has been cancelled
Build Binaries / update_nightly_release (push) Has been cancelled
2024-11-08 00:29:46 +01:00
fe407a2f27 Merge pull request #1521 from AlexandreRouma/new_source_menu
New source menu
2024-11-08 00:20:26 +01:00
f205d97b52 Merge pull request #1518 from Oskar-Dudek/patch-3
Some checks failed
Build Binaries / build_windows (push) Waiting to run
Build Binaries / build_macos_intel (push) Waiting to run
Build Binaries / build_macos_arm (push) Waiting to run
Build Binaries / build_raspios_bullseye_armhf (push) Waiting to run
Build Binaries / create_full_archive (push) Blocked by required conditions
Build Binaries / update_nightly_release (push) Blocked by required conditions
Build Binaries / build_debian_buster (push) Failing after 4s
Build Binaries / build_debian_bullseye (push) Failing after 4s
Build Binaries / build_debian_bookworm (push) Failing after 5s
Build Binaries / build_debian_sid (push) Failing after 4s
Build Binaries / build_ubuntu_focal (push) Failing after 4s
Build Binaries / build_ubuntu_jammy (push) Failing after 8s
Build Binaries / build_ubuntu_mantic (push) Failing after 4s
Build Binaries / build_ubuntu_noble (push) Failing after 5s
Build Binaries / build_android (push) Failing after 5s
Build Binaries / check_spelling (push) Failing after 4s
Build Binaries / check_formatting (push) Successful in 4s
Fix ireland.json
2024-11-07 17:36:13 +01:00
628dcfcce0 Fix ireland.json
I used jsonlint.com and i edited it in some places and it says json valid, please can you try this version
2024-11-07 16:26:37 +00:00
d1e7cc56b4 re-disable the M17 decoder module in MacOS ARM nightly builds due to codec2 package bug 2024-11-07 15:02:16 +01:00
334860c963 attempt to enable M17 Decoder on MacOS ARM 2024-11-07 14:53:27 +01:00
3 changed files with 196 additions and 128 deletions

View File

@ -147,12 +147,12 @@ int sdrpp_main(int argc, char* argv[]) {
defConfig["menuElements"][3]["name"] = "Sinks";
defConfig["menuElements"][3]["open"] = true;
defConfig["menuElements"][3]["name"] = "Frequency Manager";
defConfig["menuElements"][3]["open"] = true;
defConfig["menuElements"][4]["name"] = "VFO Color";
defConfig["menuElements"][4]["name"] = "Frequency Manager";
defConfig["menuElements"][4]["open"] = true;
defConfig["menuElements"][5]["name"] = "VFO Color";
defConfig["menuElements"][5]["open"] = true;
defConfig["menuElements"][6]["name"] = "Band Plan";
defConfig["menuElements"][6]["open"] = true;

View File

@ -23,6 +23,12 @@
"start": 531000,
"end": 1602000
},
{
"name": "160m ham band",
"type": "amateur",
"start": 1810000,
"end": 2000000
},
{
"name": "120m SW broadcast",
"type": "broadcast",
@ -35,6 +41,12 @@
"start": 3200000,
"end": 3400000
},
{
"name": "80m ham band",
"type": "amateur",
"start": 3500000,
"end": 3800000
},
{
"name": "75m SW Broadcast",
"type": "broadcast",
@ -47,12 +59,24 @@
"start": 4750000,
"end": 5060000
},
{
"name": "60m ham band",
"type": "amateur",
"start": 5351500,
"end": 5366500
},
{
"name": "49m SW Broadcast",
"type": "broadcast",
"start": 5900000,
"end": 6200000
},
{
"name": "40m ham band",
"type": "amateur",
"start": 7000000,
"end": 7200000
},
{
"name": "40m SW Broadcast",
"type": "broadcast",
@ -65,6 +89,12 @@
"start": 9400000,
"end": 9900000
},
{
"name": "30m ham band",
"type": "amateur",
"start": 10100000,
"end": 10150000
},
{
"name": "25m SW Broadcast",
"type": "broadcast",
@ -77,12 +107,24 @@
"start": 13570000,
"end": 13870000
},
{
"name": "20m ham band",
"type": "amateur",
"start": 14000000,
"end": 14350000
},
{
"name": "19m SW Broadcast",
"type": "broadcast",
"start": 15100000,
"end": 15800000
},
{
"name": "17m ham band",
"type": "amateur",
"start": 18068000,
"end": 18168000
},
{
"name": "16m SW Broadcast",
"type": "broadcast",
@ -95,23 +137,65 @@
"start": 18900000,
"end": 19020000
},
{
"name": "15m ham band",
"type": "amateur",
"start": 21000000,
"end": 21450000
},
{
"name": "13m SW Broadcast",
"type": "broadcast",
"start": 21450000,
"end": 21850000
},
{
"name": "12m ham band",
"type": "amateur",
"start": 24890000,
"end": 24990000
},
{
"name": "11m SW Broadcast",
"type": "broadcast",
"start": 25670000,
"end": 26100000
},
{
"name": "10m ham band",
"type": "amateur",
"start": 28000000,
"end": 29700000
},
{
"name": "FM Broadcast",
"type": "broadcast",
"start": 87500000,
"end": 108000000
},
{
"name": "6m ham band",
"type": "amateur",
"start": 50000000,
"end": 52000000
},
{
"name": "4m ham band",
"type": "amateur",
"start": 70000000,
"end": 70500000
},
{
"name": "2m ham band",
"type": "amateur",
"start": 144000000,
"end": 146000000
},
{
"name": "70cm ham band",
"type": "amateur",
"start": 430000000,
"end": 440000000
}
]
}

View File

@ -8,6 +8,7 @@
#include <config.h>
#include <sdrplay_api.h>
#include <gui/smgui.h>
#include <utils/optionlist.h>
#define CONCAT(a, b) ((std::string(a) + b).c_str())
@ -15,57 +16,12 @@ SDRPP_MOD_INFO{
/* Name: */ "sdrplay_source",
/* Description: */ "SDRplay source module for SDR++",
/* Author: */ "Ryzerth",
/* Version: */ 0, 1, 0,
/* Version: */ 0, 2, 0,
/* Max instances */ 1
};
ConfigManager config;
unsigned int sampleRates[] = {
2000000,
3000000,
4000000,
5000000,
6000000,
7000000,
8000000,
9000000,
10000000
};
const char* sampleRatesTxt =
"2MHz\0"
"3MHz\0"
"4MHz\0"
"5MHz\0"
"6MHz\0"
"7MHz\0"
"8MHz\0"
"9MHz\0"
"10MHz\0";
sdrplay_api_Bw_MHzT bandwidths[] = {
sdrplay_api_BW_0_200,
sdrplay_api_BW_0_300,
sdrplay_api_BW_0_600,
sdrplay_api_BW_1_536,
sdrplay_api_BW_5_000,
sdrplay_api_BW_6_000,
sdrplay_api_BW_7_000,
sdrplay_api_BW_8_000,
};
const char* bandwidthsTxt =
"200KHz\0"
"300KHz\0"
"600KHz\0"
"1.536MHz\0"
"5MHz\0"
"6MHz\0"
"7MHz\0"
"8MHz\0"
"Auto\0";
sdrplay_api_Bw_MHzT preferedBandwidth[] = {
sdrplay_api_BW_5_000,
sdrplay_api_BW_5_000,
@ -208,6 +164,11 @@ public:
name += devArr[i].SerNo;
name += ')';
break;
case SDRPLAY_RSP1B_ID:
name = "RSP1B (";
name += devArr[i].SerNo;
name += ')';
break;
case SDRPLAY_RSP2_ID:
name = "RSP2 (";
name += devArr[i].SerNo;
@ -223,6 +184,11 @@ public:
name += devArr[i].SerNo;
name += ')';
break;
case SDRPLAY_RSPdxR2_ID:
name = "RSPdx-R2 (";
name += devArr[i].SerNo;
name += ')';
break;
default:
name = "Unknown (";
name += devArr[i].SerNo;
@ -290,6 +256,30 @@ public:
return;
}
// Define the valid samplerates
samplerates.clear();
samplerates.define(2e6, "2MHz", 2e6);
samplerates.define(3e6, "3MHz", 3e6);
samplerates.define(4e6, "4MHz", 4e6);
samplerates.define(5e6, "5MHz", 5e6);
samplerates.define(6e6, "6MHz", 6e6);
samplerates.define(7e6, "7MHz", 7e6);
samplerates.define(8e6, "8MHz", 8e6);
samplerates.define(9e6, "9MHz", 9e6);
samplerates.define(10e6, "10MHz", 10e6);
// Define the valid bandwidths
bandwidths.clear();
bandwidths.define(200e3, "200KHz", sdrplay_api_BW_0_200);
bandwidths.define(300e3, "300KHz", sdrplay_api_BW_0_300);
bandwidths.define(600e3, "600KHz", sdrplay_api_BW_0_600);
bandwidths.define(1.536e6, "1.536MHz", sdrplay_api_BW_1_536);
bandwidths.define(5e6, "5MHz", sdrplay_api_BW_5_000);
bandwidths.define(6e6, "6MHz", sdrplay_api_BW_6_000);
bandwidths.define(7e6, "7MHz", sdrplay_api_BW_7_000);
bandwidths.define(8e6, "8MHz", sdrplay_api_BW_8_000);
bandwidths.define(0, "Auto", sdrplay_api_BW_Undefined);
channelParams = openDevParams->rxChannelA;
selectedName = devNameList[id];
@ -297,7 +287,7 @@ public:
if (openDev.hwVer == SDRPLAY_RSP1_ID) {
lnaSteps = 4;
}
else if (openDev.hwVer == SDRPLAY_RSP1A_ID) {
else if (openDev.hwVer == SDRPLAY_RSP1A_ID || openDev.hwVer == SDRPLAY_RSP1B_ID) {
lnaSteps = 10;
}
else if (openDev.hwVer == SDRPLAY_RSP2_ID) {
@ -306,78 +296,54 @@ public:
else if (openDev.hwVer == SDRPLAY_RSPduo_ID) {
lnaSteps = 10;
}
else if (openDev.hwVer == SDRPLAY_RSPdx_ID) {
else if (openDev.hwVer == SDRPLAY_RSPdx_ID || openDev.hwVer == SDRPLAY_RSPdxR2_ID) {
lnaSteps = 28;
}
bool created = false;
// Select default settings
srId = 0;
sampleRate = samplerates.value(0);
bandwidthId = 8;
lnaGain = lnaSteps - 1;
gain = 59;
agc = false;
agcAttack = 500;
agcDecay = 500;
agcDecayDelay = 200;
agcDecayThreshold = 5;
agcSetPoint = -30;
ifModeId = 0;
rsp1a_fmmwNotch = false;
rsp2_fmmwNotch = false;
rspdx_fmmwNotch = false;
rspduo_fmmwNotch = false;
rsp1a_dabNotch = false;
rspdx_dabNotch = false;
rspduo_dabNotch = false;
rsp1a_biasT = false;
rsp2_biasT = false;
rspdx_biasT = false;
rspduo_biasT = false;
rsp2_antennaPort = 0;
rspdx_antennaPort = 0;
rspduo_antennaPort = 0;
config.acquire();
if (!config.conf["devices"].contains(selectedName)) {
created = true;
config.conf["devices"][selectedName]["sampleRate"] = sampleRates[0];
config.conf["devices"][selectedName]["bwMode"] = 8; // Auto
config.conf["devices"][selectedName]["lnaGain"] = lnaSteps - 1;
config.conf["devices"][selectedName]["ifGain"] = 59;
config.conf["devices"][selectedName]["agc"] = false;
config.conf["devices"][selectedName]["agcAttack"] = 500;
config.conf["devices"][selectedName]["agcDecay"] = 500;
config.conf["devices"][selectedName]["agcDecayDelay"] = 200;
config.conf["devices"][selectedName]["agcDecayThreshold"] = 5;
config.conf["devices"][selectedName]["agcSetPoint"] = -30;
config.conf["devices"][selectedName]["ifModeId"] = 0;
if (openDev.hwVer == SDRPLAY_RSP1_ID) {
// No config to load
}
else if (openDev.hwVer == SDRPLAY_RSP1A_ID) {
config.conf["devices"][selectedName]["fmmwNotch"] = false;
config.conf["devices"][selectedName]["dabNotch"] = false;
config.conf["devices"][selectedName]["biast"] = false;
}
else if (openDev.hwVer == SDRPLAY_RSP2_ID) {
config.conf["devices"][selectedName]["antenna"] = 0;
config.conf["devices"][selectedName]["fmmwNotch"] = false;
config.conf["devices"][selectedName]["biast"] = false;
}
else if (openDev.hwVer == SDRPLAY_RSPduo_ID) {
config.conf["devices"][selectedName]["antenna"] = 0;
config.conf["devices"][selectedName]["fmmwNotch"] = false;
config.conf["devices"][selectedName]["dabNotch"] = false;
config.conf["devices"][selectedName]["biast"] = false;
}
else if (openDev.hwVer == SDRPLAY_RSPdx_ID) {
config.conf["devices"][selectedName]["antenna"] = 0;
config.conf["devices"][selectedName]["fmmwNotch"] = false;
config.conf["devices"][selectedName]["dabNotch"] = false;
config.conf["devices"][selectedName]["biast"] = false;
}
}
// General options
if (config.conf["devices"][selectedName].contains("sampleRate")) {
sampleRate = config.conf["devices"][selectedName]["sampleRate"];
bool found = false;
for (int i = 0; i < 9; i++) {
if (sampleRates[i] == sampleRate) {
srId = i;
found = true;
}
}
if (!found) {
sampleRate = sampleRates[0];
srId = 0;
if (config.conf["devices"][selectedName].contains("samplerate")) {
int sr = config.conf["devices"][selectedName]["samplerate"];
if (samplerates.keyExists(sr)) {
srId = samplerates.keyId(sr);
sampleRate = samplerates[srId];
}
}
if (config.conf["devices"][selectedName].contains("ifModeId")) {
ifModeId = config.conf["devices"][selectedName]["ifModeId"];
if (ifModeId != 0) {
sampleRate = ifModes[ifModeId].effectiveSamplerate;
}
}
if (config.conf["devices"][selectedName].contains("bwMode")) {
bandwidthId = config.conf["devices"][selectedName]["bwMode"];
}
@ -388,11 +354,6 @@ public:
gain = config.conf["devices"][selectedName]["ifGain"];
}
if (config.conf["devices"][selectedName].contains("agc")) {
if (!config.conf["devices"][selectedName]["agc"].is_boolean()) {
int oldMode = config.conf["devices"][selectedName]["agc"];
config.conf["devices"][selectedName]["agc"] = (bool)(oldMode != 0);
created = true;
}
agc = config.conf["devices"][selectedName]["agc"];
}
if (config.conf["devices"][selectedName].contains("agcAttack")) {
@ -415,7 +376,7 @@ public:
if (openDev.hwVer == SDRPLAY_RSP1_ID) {
// No config to load
}
else if (openDev.hwVer == SDRPLAY_RSP1A_ID) {
else if (openDev.hwVer == SDRPLAY_RSP1A_ID || openDev.hwVer == SDRPLAY_RSP1B_ID) {
if (config.conf["devices"][selectedName].contains("fmmwNotch")) {
rsp1a_fmmwNotch = config.conf["devices"][selectedName]["fmmwNotch"];
}
@ -451,7 +412,7 @@ public:
rspduo_biasT = config.conf["devices"][selectedName]["biast"];
}
}
else if (openDev.hwVer == SDRPLAY_RSPdx_ID) {
else if (openDev.hwVer == SDRPLAY_RSPdx_ID || openDev.hwVer == SDRPLAY_RSPdxR2_ID) {
if (config.conf["devices"][selectedName].contains("antenna")) {
rspdx_antennaPort = config.conf["devices"][selectedName]["antenna"];
}
@ -466,7 +427,7 @@ public:
}
}
config.release(created);
config.release();
if (lnaGain >= lnaSteps) { lnaGain = lnaSteps - 1; }
@ -614,7 +575,7 @@ private:
// General options
if (_this->ifModeId == 0) {
_this->bandwidth = (_this->bandwidthId == 8) ? preferedBandwidth[_this->srId] : bandwidths[_this->bandwidthId];
_this->bandwidth = (_this->bandwidthId == 8) ? preferedBandwidth[_this->srId] : _this->bandwidths[_this->bandwidthId];
_this->openDevParams->devParams->fsFreq.fsHz = _this->sampleRate;
_this->channelParams->tunerParams.bwType = _this->bandwidth;
}
@ -693,14 +654,14 @@ private:
}
if (_this->ifModeId == 0) {
if (SmGui::Combo(CONCAT("##sdrplay_sr", _this->name), &_this->srId, sampleRatesTxt)) {
_this->sampleRate = sampleRates[_this->srId];
if (SmGui::Combo(CONCAT("##sdrplay_sr", _this->name), &_this->srId, _this->samplerates.txt)) {
_this->sampleRate = _this->samplerates[_this->srId];
if (_this->bandwidthId == 8) {
_this->bandwidth = preferedBandwidth[_this->srId];
}
core::setInputSampleRate(_this->sampleRate);
config.acquire();
config.conf["devices"][_this->selectedName]["sampleRate"] = _this->sampleRate;
config.conf["devices"][_this->selectedName]["samplerate"] = _this->samplerates.key(_this->srId);
config.release(true);
}
@ -715,8 +676,8 @@ private:
SmGui::LeftLabel("Bandwidth");
SmGui::FillWidth();
if (SmGui::Combo(CONCAT("##sdrplay_bw", _this->name), &_this->bandwidthId, bandwidthsTxt)) {
_this->bandwidth = (_this->bandwidthId == 8) ? preferedBandwidth[_this->srId] : bandwidths[_this->bandwidthId];
if (SmGui::Combo(CONCAT("##sdrplay_bw", _this->name), &_this->bandwidthId, _this->bandwidths.txt)) {
_this->bandwidth = (_this->bandwidthId == 8) ? preferedBandwidth[_this->srId] : _this->bandwidths[_this->bandwidthId];
if (_this->running) {
_this->channelParams->tunerParams.bwType = _this->bandwidth;
sdrplay_api_Update(_this->openDev.dev, _this->openDev.tuner, sdrplay_api_Update_Tuner_BwType, sdrplay_api_Update_Ext1_None);
@ -745,10 +706,28 @@ private:
}
else {
config.acquire();
_this->sampleRate = config.conf["devices"][_this->selectedName]["sampleRate"];
_this->bandwidthId = config.conf["devices"][_this->selectedName]["bwMode"];
config.release(false);
_this->bandwidth = (_this->bandwidthId == 8) ? preferedBandwidth[_this->srId] : bandwidths[_this->bandwidthId];
// Reload samplerate
if (config.conf["devices"][_this->selectedName].contains("samplerate")) {
int sr = config.conf["devices"][_this->selectedName]["samplerate"];
if (_this->samplerates.keyExists(sr)) {
_this->srId = _this->samplerates.keyId(sr);
}
}
else {
_this->srId = 0;
}
// Reload bandwidth
if (config.conf["devices"][_this->selectedName].contains("bwMode")) {
_this->bandwidthId = config.conf["devices"][_this->selectedName]["bwMode"];
}
else {
// Auto
_this->bandwidthId = 8;
}
_this->sampleRate = _this->samplerates[_this->srId];
config.release();
_this->bandwidth = (_this->bandwidthId == 8) ? preferedBandwidth[_this->srId] : _this->bandwidths[_this->bandwidthId];
}
core::setInputSampleRate(_this->sampleRate);
config.acquire();
@ -854,6 +833,7 @@ private:
_this->RSP1Menu();
break;
case SDRPLAY_RSP1A_ID:
case SDRPLAY_RSP1B_ID:
_this->RSP1AMenu();
break;
case SDRPLAY_RSP2_ID:
@ -863,6 +843,7 @@ private:
_this->RSPduoMenu();
break;
case SDRPLAY_RSPdx_ID:
case SDRPLAY_RSPdxR2_ID:
_this->RSPdxMenu();
break;
default:
@ -1146,7 +1127,7 @@ private:
sdrplay_api_RxChannelParamsT* channelParams;
sdrplay_api_Bw_MHzT bandwidth;
int bandwidthId = 0;
int bandwidthId = 8; // Auto
int devId = 0;
int srId = 0;
@ -1201,6 +1182,9 @@ private:
std::string devListTxt;
std::vector<std::string> devNameList;
std::string selectedName;
OptionList<int, int> samplerates;
OptionList<int, sdrplay_api_Bw_MHzT> bandwidths;
};
MOD_EXPORT void _INIT_() {