dabStick::~dabStick (void) { if (open && libraryLoaded && dabSettings != NULL) { dabSettings -> beginGroup ("dabstick"); dabSettings -> setValue ("dab_externalGain", gainSlider -> value ()); dabSettings -> setValue ("dab_correction", f_correction -> value ()); dabSettings -> setValue ("dab_khzOffset", khzOffset -> value ()); dabSettings -> setValue ("dab_hzOffset", hzOffset -> value ()); dabSettings -> endGroup (); } if (open && libraryLoaded) stopReader (); if (open) rtlsdr_close (device); if (libraryLoaded) #ifdef __MINGW32__ FreeLibrary (Handle); #else dlclose (Handle); #endif if (_I_Buffer != NULL) delete _I_Buffer; if (d_filter != NULL) delete d_filter; d_filter = NULL; delete myFrame; if (gains != NULL) delete gains; }
// // // Note that selecting a new rate implies // restarting the program void dabStick::set_rateSelector (const QString &s) { int32_t newRate = s. toInt (); int32_t r; if (outputRate == newRate) return; outputRate = newRate; inputRate = getInputRate (outputRate); if (workerHandle == NULL) { r = rtlsdr_set_sample_rate (device, inputRate); (void)rtlsdr_set_center_freq (device, vfoFrequency + vfoOffset); } else { // we stop the transmission!!! stopReader (); r = rtlsdr_set_sample_rate (device, inputRate); r = rtlsdr_reset_buffer (device); rtlsdr_set_center_freq (device, vfoFrequency + vfoOffset); } (void)r; delete d_filter; d_filter = new DecimatingFIR (inputRate / outputRate * 5 - 1, - outputRate / 2, outputRate / 2, inputRate, inputRate / outputRate); emit set_changeRate (outputRate); }
// // ... that will allow a decent destructor eladHandler::~eladHandler (void) { eladSettings -> beginGroup ("sw-elad-s1"); eladSettings -> setValue ("elad-offset", vfoOffset); eladSettings -> setValue ("elad-rate", theRate); eladSettings -> setValue ("elad-attenuation", attenuationSlider -> value ()); eladSettings -> endGroup (); stopReader (); if (_I_Buffer != NULL) delete _I_Buffer; if (theLoader != NULL) delete theLoader; if (theWorker != NULL) delete theWorker; }
uhdInput::~uhdInput (void) { if (theBuffer != NULL) { stopReader(); uhdSettings -> beginGroup ("uhdSettings"); uhdSettings -> setValue ("externalGain", externalGain -> value ()); uhdSettings -> setValue ("f_correction", f_correction -> value ()); uhdSettings -> setValue ("KhzOffset", KhzOffset -> value ()); uhdSettings -> endGroup (); delete theBuffer; } delete myFrame; }
sdrplay::~sdrplay (void) { sdrplaySettings -> beginGroup ("sdrplaySettings"); sdrplaySettings -> setValue ("externalGain", externalGain -> value ()); sdrplaySettings -> setValue ("f_correction", f_correction -> value ()); sdrplaySettings -> setValue ("KhzOffset", KhzOffset -> value ()); sdrplaySettings -> endGroup (); stopReader (); if (_I_Buffer != NULL) delete _I_Buffer; if (theLoader != NULL) delete theLoader; if (theWorker != NULL) delete theWorker; delete myFrame; }
void sdrplay::setVFOFrequency (int32_t newFrequency) { int32_t realFreq = newFrequency + vfoOffset; if (bankFor_sdr (realFreq) == -1) return; if (theWorker == NULL) { vfoFrequency = newFrequency + vfoOffset; return; } if (bankFor_sdr (realFreq) != bankFor_sdr (vfoFrequency)) { stopReader (); vfoFrequency = realFreq; restartReader (); return; } else theWorker -> setVFOFrequency (realFreq); vfoFrequency = realFreq; }
void dabStick::exit (void) { stopReader (); }
void cardReader::exit (void) { stopReader (); }