Пример #1
0
	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;
}
Пример #2
0
//
//
//	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);
}
Пример #3
0
//
//	... 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;
}
Пример #4
0
	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;
}
Пример #5
0
	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;
}
Пример #6
0
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;
}
Пример #7
0
void	dabStick::exit		(void) {
	stopReader ();
}
Пример #8
0
void	cardReader::exit	(void) {
	stopReader ();
}