1
/***************************************************************************
2
linpskview.h - description
4
begin : Sat Mar 4 22:29:25 /etc/localtime 2000
5
copyright : (C) 2000 by Volker Schroer
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* based on the work of Moe Wheatley, AE4JY *
16
***************************************************************************/
21
// include files for QT
24
#include <qstatusbar.h>
26
#include <qdatetime.h>
28
#include <qmessagebox.h>
33
#include <qtextstream.h>
36
// application specific includes
38
//#include "crxdisplay.h"
39
#include "ctxdisplay.h"
41
#include "parameter.h"
45
#include "textinput.h"
46
#include "waveinput.h"
47
#include "cledbutton.h"
48
#include "bpskdemodulator.h"
49
#include "qpskdemodulator.h"
50
#include "rttydemodulator.h"
52
#include "cmodulator.h"
53
#include "rttymodulator.h"
56
extern Parameter settings;
60
* This class defines the application view.
63
class LinPskView : public QWidget
68
LinPskView(QWidget *parent=0);
70
void AddGaussian(double * pData, int n, double std);
71
void initRxChannels(int from,int to);
72
/* Stops the current activity */
76
// Window - Components
79
CDemodulator *demodulator[4];
84
QStatusBar *statusBar;
86
// Timer for idle loop for receiving and Transmitting
93
void resizeEvent(QResizeEvent *);
97
public slots: // Public slots
98
/** Reading and processing Data from input source */
99
void process_rxdata();
100
/** Processing txdata and writing to Soundcard*/
101
void process_txdata();
102
/** Starting receiving/transmitting */
103
void start_process_loop();
107
void executeMacro(int);
109
void executeMacro0();
111
void executeMacro1();
116
/** Select appropriate Rx- Window*/
117
void selectRxWindow(int);
118
/** Change RxFrequency of apprpriate RxWindow */
119
void rxfreqchanged(int);
120
/** changes the Demodulator to the new Mode */
121
void setMode(Mode,int);
123
/** Stop PSK31 in case of unrecoverable error */
127
/** Decimation Filter to reduce samplerate */
128
void ProcDec2Fir(double *pIn, double *pOut,int BlockSize);
129
void sendString(const char *);
131
double *inbuf; //Input Buffer
132
double *dec2fir; // queue for decimation by 2 filter
133
double *outbuf; // outputbuffer
134
double *m_pDec2InPtr;
136
CModulator *Modulator;
137
int txcount; // Number of transmitted Data; 0 if Soundcard Buffer is full;
138
/** Some Labels in the Statusbar*/
146
/** For Debugging AFC */
148
QLabel *Error; // Total
149
QLabel *Df; // Frequency component
150
QLabel *Dp; // Phase component
155
QString prepareMacro(QString Macro);
157
bool processingMacros; // To ensure that Macro will be completly execute