-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathSound.h
More file actions
171 lines (130 loc) · 4.34 KB
/
Sound.h
File metadata and controls
171 lines (130 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
//Copyright+LGPL
//-----------------------------------------------------------------------------------------------------------------------------------------------
// Copyright 2000-2013 Makoto Mori, Nobuyuki Oba, Dave Bernstein
//-----------------------------------------------------------------------------------------------------------------------------------------------
// This file is part of MMTTY.
// MMTTY is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
// MMTTY is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
// You should have received a copy of the GNU Lesser General Public License along with MMTTY. If not, see
// <http://www.gnu.org/licenses/>.
//-----------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------
#ifndef FilterH
#define FilterH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include "Wave.h"
#include "fft.h"
#include "rtty.h"
//---------------------------------------------------------------------------
class CWaveFile
{
private:
HMMIO m_Handle;
int m_dis;
BYTE m_Head[4];
public:
long m_length;
long m_pos;
int m_mode;
int m_pause;
int m_autopause;
AnsiString m_FileName;
__fastcall CWaveFile();
__fastcall ~CWaveFile();
void __fastcall FileClose(void);
void __fastcall Rec(LPCSTR pName);
BOOL __fastcall Play(LPCSTR pName);
void __fastcall Rewind(void);
void __fastcall ReadWrite(double *s, int size);
long __fastcall GetPos(void);
void __fastcall Seek(int n);
int __fastcall ChangeSampFreq(LPCSTR tName, LPCSTR pName, int sSamp);
};
class TSound : public TThread
{
private:
double ZBPF[TAPMAX+1];
BOOL m_Stop;
WAVEFORMATEX m_WFX;
int m_FFTMax;
int m_FFTSumMax;
int m_WaterMax;
int m_WaterSumMax;
int m_WaterMin;
CWave Wave;
CNoise Noise;
int m_ReqFifoSize;
void __fastcall ErrorMsg(void);
double __fastcall GetScopeRange(double &low, double center, double shift);
void __fastcall ReadWrite(double *s, int size);
int __fastcall UpdateFifoSize(void);
BOOL __fastcall ReInitSound(void);
void __fastcall JobSuspend(void);
protected:
void __fastcall Execute();
public:
__fastcall TSound(bool CreateSuspended);
__fastcall ~TSound();
void __fastcall Stop(void);
void __fastcall ReqStop(void);
void __fastcall WaitStop(void);
void __fastcall TimingWait(void);
void __fastcall InitSound(void);
double __fastcall GetScreenFreq(int x, int XW, int XRD);
int __fastcall DrawFFT(Graphics::TBitmap *pBitmap, int sw, int XRD);
int __fastcall DrawFFTWater(Graphics::TBitmap *pBitmap, int sw, int XRD);
void __fastcall SetTXRX(int sw);
int __fastcall DoAFC(void);
void __fastcall CalcBPF(void);
void __fastcall CalcBPF(double fl, double fh, double fw);
void __fastcall TaskPriority(void);
LPCSTR __fastcall GetInputSoundcard(unsigned int ID);
LPCSTR __fastcall GetOutputSoundcard(unsigned int ID);
CFSKDEM FSKDEM;
CFSKMOD FSKMOD;
CWaveFile WaveFile;
int m_Test;
void __fastcall FileClose(void);
void __fastcall Rec(LPCSTR pName);
void __fastcall Play(LPCSTR pName);
void __fastcall Rewind(void);
void __fastcall InitWFX(void);
UINT m_IDDevice;
UINT m_IDOutDevice; //AA6YQ 1.66
int m_playmode;
int m_susp;
int m_suspack;
int m_bpf;
int m_bpftap;
int m_bpfafc;
double m_bpffw;
int m_lmsbpf;
CLMS m_lms;
double HBPF[TAPMAX+1];
int m_Tx;
int m_ReqTx;
CFFT fftIN;
int m_Err;
int m_BuffSize;
int m_Noise;
int m_FFTSW;
int m_FFTFW;
int m_FFTWINDOW;
int m_ReqSpeedTest;
DWORD m_SpeedValue;
void __fastcall JobSpeedTest();
inline int __fastcall GetOutCount(int sw){
return (sw ? Wave.GetOutBCC() : Wave.GetOutBC()) * m_BuffSize;
}
inline void __fastcall TrigBCC(void){
Wave.SetOutBCC(Wave.GetOutBC());
}
inline int __fastcall GetBCC(void){
return Wave.GetOutBCC();
}
};
//---------------------------------------------------------------------------
#endif