first commit
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
/* TXA.h
|
||||
|
||||
This file is part of a program that implements a Software-Defined Radio.
|
||||
|
||||
Copyright (C) 2013, 2017 Warren Pratt, NR0V
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
The author can be reached by email at
|
||||
|
||||
warren@wpratt.com
|
||||
|
||||
*/
|
||||
|
||||
#ifndef _txa_h
|
||||
#define _txa_h
|
||||
#include "comm.h"
|
||||
|
||||
enum txaMode
|
||||
{
|
||||
TXA_LSB,
|
||||
TXA_USB,
|
||||
TXA_DSB,
|
||||
TXA_CWL,
|
||||
TXA_CWU,
|
||||
TXA_FM,
|
||||
TXA_AM,
|
||||
TXA_DIGU,
|
||||
TXA_SPEC,
|
||||
TXA_DIGL,
|
||||
TXA_SAM,
|
||||
TXA_DRM,
|
||||
TXA_AM_LSB,
|
||||
TXA_AM_USB
|
||||
};
|
||||
|
||||
enum txaMeterType
|
||||
{
|
||||
TXA_MIC_PK,
|
||||
TXA_MIC_AV,
|
||||
TXA_EQ_PK,
|
||||
TXA_EQ_AV,
|
||||
TXA_LVLR_PK,
|
||||
TXA_LVLR_AV,
|
||||
TXA_LVLR_GAIN,
|
||||
TXA_CFC_PK,
|
||||
TXA_CFC_AV,
|
||||
TXA_CFC_GAIN,
|
||||
TXA_COMP_PK,
|
||||
TXA_COMP_AV,
|
||||
TXA_ALC_PK,
|
||||
TXA_ALC_AV,
|
||||
TXA_ALC_GAIN,
|
||||
TXA_OUT_PK,
|
||||
TXA_OUT_AV,
|
||||
TXA_METERTYPE_LAST
|
||||
};
|
||||
|
||||
struct _txa
|
||||
{
|
||||
double* inbuff;
|
||||
double* outbuff;
|
||||
double* midbuff;
|
||||
int mode;
|
||||
double f_low;
|
||||
double f_high;
|
||||
double meter[TXA_METERTYPE_LAST];
|
||||
CRITICAL_SECTION* pmtupdate[TXA_METERTYPE_LAST];
|
||||
struct
|
||||
{
|
||||
METER p;
|
||||
} micmeter, eqmeter, lvlrmeter, cfcmeter, compmeter, alcmeter, outmeter;
|
||||
struct
|
||||
{
|
||||
RESAMPLE p;
|
||||
} rsmpin, rsmpout;
|
||||
struct
|
||||
{
|
||||
PANEL p;
|
||||
} panel;
|
||||
struct
|
||||
{
|
||||
AMSQ p;
|
||||
} amsq;
|
||||
struct
|
||||
{
|
||||
EQP p;
|
||||
} eqp;
|
||||
struct
|
||||
{
|
||||
PHROT p;
|
||||
} phrot;
|
||||
struct
|
||||
{
|
||||
CFCOMP p;
|
||||
} cfcomp;
|
||||
struct
|
||||
{
|
||||
COMPRESSOR p;
|
||||
} compressor;
|
||||
struct
|
||||
{
|
||||
BANDPASS p;
|
||||
} bp0, bp1, bp2;
|
||||
struct
|
||||
{
|
||||
OSCTRL p;
|
||||
} osctrl;
|
||||
struct
|
||||
{
|
||||
WCPAGC p;
|
||||
} leveler, alc;
|
||||
struct
|
||||
{
|
||||
AMMOD p;
|
||||
} ammod;
|
||||
struct
|
||||
{
|
||||
EMPHP p;
|
||||
} preemph;
|
||||
struct
|
||||
{
|
||||
FMMOD p;
|
||||
} fmmod;
|
||||
struct
|
||||
{
|
||||
SIPHON p;
|
||||
} sip1;
|
||||
struct
|
||||
{
|
||||
GEN p;
|
||||
} gen0, gen1;
|
||||
struct
|
||||
{
|
||||
USLEW p;
|
||||
} uslew;
|
||||
struct
|
||||
{
|
||||
CALCC p;
|
||||
CRITICAL_SECTION cs_update;
|
||||
} calcc;
|
||||
struct
|
||||
{
|
||||
IQC p0, p1;
|
||||
// p0 for dsp-synchronized reference, p1 for other
|
||||
} iqc;
|
||||
struct
|
||||
{
|
||||
CFIR p;
|
||||
} cfir;
|
||||
};
|
||||
|
||||
extern struct _txa txa[];
|
||||
|
||||
extern void create_txa (int channel);
|
||||
|
||||
extern void destroy_txa (int channel);
|
||||
|
||||
extern void flush_txa (int channel);
|
||||
|
||||
extern void xtxa (int channel);
|
||||
|
||||
extern int TXAUslewCheck (int channel);
|
||||
|
||||
extern void setInputSamplerate_txa (int channel);
|
||||
|
||||
extern void setOutputSamplerate_txa (int channel);
|
||||
|
||||
extern void setDSPSamplerate_txa (int channel);
|
||||
|
||||
extern void setDSPBuffsize_txa (int channel);
|
||||
|
||||
// TXA Properties
|
||||
|
||||
extern __declspec (dllexport) void SetTXAMode (int channel, int mode);
|
||||
|
||||
extern void TXAResCheck (int channel);
|
||||
|
||||
extern void TXASetupBPFilters (int channel);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user