WSJT-X/commons.h
Bill Somerville d5bc774641 Get rid of jt9com and npar common blocks
Also  use correct  C binding  and have  compilers determine  sizes and
offsets.

The wsjtx.exe program now owns the  decoder shared data that is shared
with symspec.  It is now in  struct dec_data, still a  global variable
for now but hopefully a MainWindow member variable soon.

The struct  dec_data (in both C/C++  and Fortran) has a  sub structure
with the decoder  parameters which enables copying  and manipulating a
lot cleaner.

New  of  changed types  of  shared  data  must  still be  modified  in
commons.h and a  new file lib/jt9com.f90, they must stay  in sync as a
pointer to the structure is passed between C and Fortran.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6290 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-17 20:29:55 +00:00

75 lines
1.6 KiB
C

#ifndef COMMONS_H
#define COMMONS_H
#define NSMAX 6827
#define NTMAX 120
#define RX_SAMPLE_RATE 12000
#ifdef __cplusplus
extern "C" {
#endif
/*
* This structure is shared with Fortran code, it MUST be kept in
* sync with lib/jt9com.f90
*/
extern struct dec_data {
float ss[184*NSMAX];
float savg[NSMAX];
short int d2[NTMAX*RX_SAMPLE_RATE];
struct
{
int nutc; //UTC as integer, HHMM
int ndiskdat; //1 ==> data read from *.wav file
int ntrperiod; //TR period (seconds)
int nfqso; //User-selected QSO freq (kHz)
int newdat; //1 ==> new data, must do long FFT
int npts8; //npts for c0() array
int nfa; //Low decode limit (Hz)
int nfSplit; //JT65 | JT9 split frequency
int nfb; //High decode limit (Hz)
int ntol; //+/- decoding range around fQSO (Hz)
int kin;
int nzhsym;
int nsubmode;
int nagain;
int ndepth;
int ntxmode;
int nmode;
int minw;
int nclearave;
int minSync;
float emedelay;
float dttol;
int nlist;
int listutc[10];
int n2pass;
int nranera;
int naggressive;
int nrobust;
int nexp_decode;
char datetime[20];
char mycall[12];
char mygrid[6];
char hiscall[12];
char hisgrid[6];
} params;
} dec_data;
extern struct {
float syellow[NSMAX];
} jt9w_;
extern struct {
int nclearave;
int nsum;
float blue[4096];
float red[4096];
} echocom_;
#ifdef __cplusplus
}
#endif
#endif // COMMONS_H