mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-26 06:08:42 -05: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…
Reference in New Issue
Block a user