| 
									
										
										
										
											2012-05-22 17:09:48 +00:00
										 |  |  | #ifndef SOUNDIN_H
 | 
					
						
							|  |  |  | #define SOUNDIN_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QtCore>
 | 
					
						
							|  |  |  | #include <QtNetwork/QUdpSocket>
 | 
					
						
							|  |  |  | #include <QDebug>
 | 
					
						
							|  |  |  | #include <valarray>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Thread gets audio data from soundcard and signals when a buffer of
 | 
					
						
							|  |  |  | // specified size is available.
 | 
					
						
							|  |  |  | class SoundInThread : public QThread | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   Q_OBJECT | 
					
						
							|  |  |  |   bool quitExecution;           // if true, thread exits gracefully
 | 
					
						
							|  |  |  |   double m_rate;                // sample rate
 | 
					
						
							|  |  |  |   unsigned bufSize;             // user's buffer size
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |   virtual void run(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |   bool m_dataSinkBusy; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   SoundInThread(): | 
					
						
							|  |  |  |     quitExecution(false), | 
					
						
							|  |  |  |     m_rate(0), | 
					
						
							| 
									
										
										
										
											2012-09-13 19:34:50 +00:00
										 |  |  |     bufSize(0), | 
					
						
							|  |  |  |     m_dataSinkBusy(false) | 
					
						
							| 
									
										
										
										
											2012-05-22 17:09:48 +00:00
										 |  |  |   { | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void setSwapIQ(bool b); | 
					
						
							|  |  |  |   void set10db(bool b); | 
					
						
							|  |  |  |   void setPort(qint32 n); | 
					
						
							|  |  |  |   void setInputDevice(qint32 n); | 
					
						
							|  |  |  |   void setRate(double rate); | 
					
						
							|  |  |  |   void setBufSize(unsigned bufSize); | 
					
						
							|  |  |  |   void setNetwork(bool b); | 
					
						
							|  |  |  |   void setMonitoring(bool b); | 
					
						
							|  |  |  |   void setFadd(double x); | 
					
						
							|  |  |  |   void setNrx(int n); | 
					
						
							|  |  |  |   void setForceCenterFreqBool(bool b); | 
					
						
							|  |  |  |   void setForceCenterFreqMHz(double d); | 
					
						
							| 
									
										
										
										
											2012-08-31 15:51:58 +00:00
										 |  |  |   void setPeriod(int n); | 
					
						
							| 
									
										
										
										
											2012-05-22 17:09:48 +00:00
										 |  |  |   int  nrx(); | 
					
						
							|  |  |  |   int  mhsym(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | signals: | 
					
						
							|  |  |  |   void bufferAvailable(std::valarray<qint16> samples, double rate); | 
					
						
							|  |  |  |   void readyForFFT(int k); | 
					
						
							|  |  |  |   void error(const QString& message); | 
					
						
							|  |  |  |   void status(const QString& message); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public slots: | 
					
						
							|  |  |  |   void quit(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |   void inputUDP(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   double m_fAdd; | 
					
						
							|  |  |  |   bool   m_net; | 
					
						
							|  |  |  |   bool   m_monitoring; | 
					
						
							|  |  |  |   bool   m_bForceCenterFreq; | 
					
						
							|  |  |  |   bool   m_IQswap; | 
					
						
							|  |  |  |   bool   m_10db; | 
					
						
							|  |  |  |   double m_dForceCenterFreq; | 
					
						
							|  |  |  |   qint32 m_nrx; | 
					
						
							|  |  |  |   qint32 m_hsym; | 
					
						
							|  |  |  |   qint32 m_nDevIn; | 
					
						
							|  |  |  |   qint32 m_udpPort; | 
					
						
							| 
									
										
										
										
											2012-08-31 15:51:58 +00:00
										 |  |  |   qint32 m_TRperiod; | 
					
						
							| 
									
										
										
										
											2012-09-13 18:42:02 +00:00
										 |  |  |   qint32 m_TRperiod0; | 
					
						
							| 
									
										
										
										
											2012-05-22 17:09:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   QUdpSocket *udpSocket; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  |   void recvpkt_(int* nsam, quint16* iblk, qint8* nrx, int* k, double s1[], | 
					
						
							|  |  |  |                 double s2[], double s3[]); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // SOUNDIN_H
 |