mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 04:50:29 -04:00 
			
		
		
		
	
		
			
	
	
		
			38 lines
		
	
	
		
			586 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			586 B
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #ifndef INCLUDE_FFTWENGINE_H
 | ||
|  | #define INCLUDE_FFTWENGINE_H
 | ||
|  | 
 | ||
|  | #include <QMutex>
 | ||
|  | #include <fftw3.h>
 | ||
|  | #include <list>
 | ||
|  | #include "dsp/fftengine.h"
 | ||
|  | 
 | ||
|  | class FFTWEngine : public FFTEngine { | ||
|  | public: | ||
|  | 	FFTWEngine(); | ||
|  | 	~FFTWEngine(); | ||
|  | 
 | ||
|  | 	void configure(int n, bool inverse); | ||
|  | 	void transform(); | ||
|  | 
 | ||
|  | 	Complex* in(); | ||
|  | 	Complex* out(); | ||
|  | 
 | ||
|  | protected: | ||
|  | 	static QMutex m_globalPlanMutex; | ||
|  | 
 | ||
|  | 	struct Plan { | ||
|  | 		int n; | ||
|  | 		bool inverse; | ||
|  | 		fftwf_plan plan; | ||
|  | 		fftwf_complex* in; | ||
|  | 		fftwf_complex* out; | ||
|  | 	}; | ||
|  | 	typedef std::list<Plan*> Plans; | ||
|  | 	Plans m_plans; | ||
|  | 	Plan* m_currentPlan; | ||
|  | 
 | ||
|  | 	void freeAll(); | ||
|  | }; | ||
|  | 
 | ||
|  | #endif // INCLUDE_FFTWENGINE_H
 |