mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-02-03 09:44:26 -05:00
Add NBFM mode, add mode selector button height font reduction when scaled down
This commit is contained in:
parent
68b095ef8d
commit
419085d27a
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "Modem.h"
|
||||
|
||||
#include "ModemFM.h"
|
||||
#include "ModemNBFM.h"
|
||||
#include "ModemFMStereo.h"
|
||||
#include "ModemAM.h"
|
||||
#include "ModemUSB.h"
|
||||
|
36
src/modules/modem/analog/ModemNBFM.cpp
Normal file
36
src/modules/modem/analog/ModemNBFM.cpp
Normal 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);
|
||||
}
|
20
src/modules/modem/analog/ModemNBFM.h
Normal file
20
src/modules/modem/analog/ModemNBFM.h
Normal 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;
|
||||
};
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user