mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	Clean up the transition from JT9 tones to CW ID.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3151 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									5dfa36988f
								
							
						
					
					
						commit
						c652a0338f
					
				
										
											Binary file not shown.
										
									
								
							| @ -1,4 +1,4 @@ | |||||||
| //------------------------------------------------------------ MainWindow
 | //------------------------------------------------------------- MainWindow
 | ||||||
| #include "mainwindow.h" | #include "mainwindow.h" | ||||||
| #include "ui_mainwindow.h" | #include "ui_mainwindow.h" | ||||||
| #include "devsetup.h" | #include "devsetup.h" | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								soundout.cpp
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								soundout.cpp
									
									
									
									
									
								
							| @ -41,6 +41,7 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer, | |||||||
|   static double freq; |   static double freq; | ||||||
|   static double snr; |   static double snr; | ||||||
|   static double fac; |   static double fac; | ||||||
|  |   static double amp; | ||||||
|   static int ic=0,j=0; |   static int ic=0,j=0; | ||||||
|   static short int i2; |   static short int i2; | ||||||
|   int isym,nspd; |   int isym,nspd; | ||||||
| @ -50,7 +51,7 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer, | |||||||
|  // Time according to this computer
 |  // Time according to this computer
 | ||||||
|     qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; |     qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; | ||||||
|     int mstr = ms % (1000*udata->ntrperiod ); |     int mstr = ms % (1000*udata->ntrperiod ); | ||||||
|     if(mstr<1000) return 0; |     if(mstr<1000) return paContinue; | ||||||
|     ic=(mstr-1000)*48; |     ic=(mstr-1000)*48; | ||||||
|     udata->bRestart=false; |     udata->bRestart=false; | ||||||
|     srand(mstr);                                //Initialize random seed
 |     srand(mstr);                                //Initialize random seed
 | ||||||
| @ -74,7 +75,7 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer, | |||||||
|       phi += dphi; |       phi += dphi; | ||||||
|       if(phi>twopi) phi -= twopi; |       if(phi>twopi) phi -= twopi; | ||||||
|       i2=32767.0*sin(phi); |       i2=32767.0*sin(phi); | ||||||
|       j=(ic-ic0)/nspd; |       j=(ic-ic0)/nspd + 1; | ||||||
|       if(icw[j]==0) i2=0; |       if(icw[j]==0) i2=0; | ||||||
|       if(udata->txsnrdb < 0.0) { |       if(udata->txsnrdb < 0.0) { | ||||||
|         int i4=fac*(gran() + i2*snr/32768.0); |         int i4=fac*(gran() + i2*snr/32768.0); | ||||||
| @ -89,24 +90,21 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer, | |||||||
| #endif | #endif | ||||||
|       ic++; |       ic++; | ||||||
|     } |     } | ||||||
|  |     if(j>icw[0]) return paComplete; | ||||||
|     return paContinue; |     return paContinue; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   if(isym>=85 and icw[0]>=0) { |  | ||||||
| //    qDebug() << "C" << isym << icw[0];
 |  | ||||||
|     return paComplete; |  | ||||||
|   } |  | ||||||
|   baud=12000.0/udata->nsps; |   baud=12000.0/udata->nsps; | ||||||
|   freq=udata->ntxfreq + itone[isym]*baud; |   freq=udata->ntxfreq + itone[isym]*baud; | ||||||
|   dphi=twopi*freq/48000.0; |   dphi=twopi*freq/48000.0; | ||||||
|   double amp=32767.0; |   amp=32767.0; | ||||||
|   int i0=84.983*4.0*udata->nsps; |   int i0=84.983*4.0*udata->nsps; | ||||||
|  |   int i1=85*4*udata->nsps; | ||||||
|   for(uint i=0 ; i<framesToProcess; i++ )  { |   for(uint i=0 ; i<framesToProcess; i++ )  { | ||||||
|     phi += dphi; |     phi += dphi; | ||||||
|     if(phi>twopi) phi -= twopi; |     if(phi>twopi) phi -= twopi; | ||||||
|     if(ic>i0) { |     if(ic>i0) amp=0.98*amp; | ||||||
|       amp=0.98*amp; |     if(ic>i1) amp=0.0; | ||||||
|     } |  | ||||||
|     i2=amp*sin(phi); |     i2=amp*sin(phi); | ||||||
|     if(udata->txsnrdb < 0.0) { |     if(udata->txsnrdb < 0.0) { | ||||||
|       int i4=fac*(gran() + i2*snr/32768.0); |       int i4=fac*(gran() + i2*snr/32768.0); | ||||||
| @ -121,9 +119,9 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer, | |||||||
| #endif | #endif | ||||||
|     ic++; |     ic++; | ||||||
|   } |   } | ||||||
|   if(amp<1.0 and icw[0]==0) { |   if(amp==0.0) { | ||||||
| //    qDebug() << "A" << isym << amp << icw[0];
 |     if(icw[0]==0) return paComplete; | ||||||
|     return paComplete; |     phi=0.0; | ||||||
|   } |   } | ||||||
|   return paContinue; |   return paContinue; | ||||||
| } | } | ||||||
| @ -192,7 +190,6 @@ void SoundOutThread::run() | |||||||
|       qint64 ms = QDateTime::currentMSecsSinceEpoch(); |       qint64 ms = QDateTime::currentMSecsSinceEpoch(); | ||||||
|       m_SamFacOut=udata.ncall*FRAMES_PER_BUFFER*1000.0/(48000.0*(ms-ms0-50)); |       m_SamFacOut=udata.ncall*FRAMES_PER_BUFFER*1000.0/(48000.0*(ms-ms0-50)); | ||||||
|     } |     } | ||||||
|     //qDebug() << "btxok = " << btxok << "btxMute = " << btxMute;
 |  | ||||||
|     msleep(100); |     msleep(100); | ||||||
|   } |   } | ||||||
|   Pa_StopStream(outStream); |   Pa_StopStream(outStream); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user