Add NBFM mode, add mode selector button height font reduction when scaled down

This commit is contained in:
Charles J. Cliffe 2016-05-11 23:05:56 -04:00
parent 68b095ef8d
commit 419085d27a
7 changed files with 65 additions and 2 deletions

View File

@ -287,6 +287,7 @@ SET (cubicsdr_sources
src/modules/modem/analog/ModemAM.cpp
src/modules/modem/analog/ModemDSB.cpp
src/modules/modem/analog/ModemFM.cpp
src/modules/modem/analog/ModemNBFM.cpp
src/modules/modem/analog/ModemFMStereo.cpp
src/modules/modem/analog/ModemIQ.cpp
src/modules/modem/analog/ModemLSB.cpp
@ -384,6 +385,7 @@ SET (cubicsdr_headers
src/modules/modem/analog/ModemAM.h
src/modules/modem/analog/ModemDSB.h
src/modules/modem/analog/ModemFM.h
src/modules/modem/analog/ModemNBFM.h
src/modules/modem/analog/ModemFMStereo.h
src/modules/modem/analog/ModemIQ.h
src/modules/modem/analog/ModemLSB.h

View File

@ -76,6 +76,7 @@ AppFrame::AppFrame() :
demodModeSelector = new ModeSelectorCanvas(demodPanel, attribList);
demodModeSelector->addChoice("FM");
demodModeSelector->addChoice("FMS");
demodModeSelector->addChoice("NBFM");
demodModeSelector->addChoice("AM");
demodModeSelector->addChoice("LSB");
demodModeSelector->addChoice("USB");
@ -1940,7 +1941,9 @@ int AppFrame::OnGlobalKeyUp(wxKeyEvent &event) {
case 'F':
if (demodModeSelector->getSelectionLabel() == "FM") {
demodModeSelector->setSelection("FMS");
} else {
} else if (demodModeSelector->getSelectionLabel() == "FMS") {
demodModeSelector->setSelection("NBFM");
} else if (demodModeSelector->getSelectionLabel() == "NBFM") {
demodModeSelector->setSelection("FM");
}
return 1;

View File

@ -179,6 +179,7 @@ bool CubicSDR::OnInit() {
#endif
Modem::addModemFactory(new ModemFM);
Modem::addModemFactory(new ModemNBFM);
Modem::addModemFactory(new ModemFMStereo);
Modem::addModemFactory(new ModemAM);
Modem::addModemFactory(new ModemLSB);

View File

@ -30,6 +30,7 @@
#include "Modem.h"
#include "ModemFM.h"
#include "ModemNBFM.h"
#include "ModemFMStereo.h"
#include "ModemAM.h"
#include "ModemUSB.h"

View File

@ -0,0 +1,36 @@
#include "ModemNBFM.h"
ModemNBFM::ModemNBFM() : ModemAnalog() {
demodFM = freqdem_create(0.5);
}
ModemNBFM::~ModemNBFM() {
freqdem_destroy(demodFM);
}
Modem *ModemNBFM::factory() {
return new ModemNBFM;
}
std::string ModemNBFM::getName() {
return "NBFM";
}
int ModemNBFM::getDefaultSampleRate() {
return 12500;
}
void ModemNBFM::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) {
ModemKitAnalog *fmkit = (ModemKitAnalog *)kit;
initOutputBuffers(fmkit, input);
if (!bufSize) {
input->decRefCount();
return;
}
freqdem_demodulate_block(demodFM, &input->data[0], bufSize, &demodOutputData[0]);
buildAudioOutput(fmkit, audioOut, false);
}

View File

@ -0,0 +1,20 @@
#pragma once
#include "Modem.h"
#include "ModemAnalog.h"
class ModemNBFM : public ModemAnalog {
public:
ModemNBFM();
~ModemNBFM();
std::string getName();
Modem *factory();
int getDefaultSampleRate();
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut);
private:
freqdem demodFM;
};

View File

@ -33,7 +33,7 @@ void ModeSelectorContext::DrawSelector(std::string label, int c, int cMax, bool
int fontHeight = 16;
if (viewWidth < 30) {
if (viewWidth < 30 || viewHeight < 200) {
fontSize = GLFont::GLFONT_SIZE12;
fontHeight = 12;
}