Files
ewsdr/WDSP.pas
T

990 lines
64 KiB
ObjectPascal

{
Copyright (C)
2026 - Uladzimir Karpenka, EW8BAK
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit WDSP;
{
Pascal/Lazarus binding for the WDSP (Wideband DSP) library.
Автоматически переведено из заголовочного файла wdsp.h.
Использование:
1. Поместите wdsp.dll (Linux: libwdsp.so) рядом с исполняемым файлом.
2. Подключите unit в секции uses: uses WDSP;
3. Вызывайте функции напрямую, например: OpenChannel(0, 1024, ...);
}
{$IFDEF FPC}
{$MODE Delphi}
{$ENDIF}
// Если wdsp.dll / libwdsp.so отсутствует — функции будут nil вместо краша.
// WDSPEngine.Open вернёт False и программа продолжит работу в демо-режиме.
{$IFDEF DARWIN}
{$linklib wdsp}
{$ENDIF}
interface
uses
SysUtils;
const
{$IFDEF WINDOWS}
WDSP_LIB = 'wdsp.dll';
{$ENDIF}
{$IFDEF LINUX}
WDSP_LIB = 'libwdsp.so';
{$ENDIF}
{$IFDEF DARWIN}
WDSP_LIB = 'libwdsp.dylib';
{$ENDIF}
// Analyzer detector modes
DETECTOR_MODE_PEAK = 0;
DETECTOR_MODE_ROSENFELL = 1;
DETECTOR_MODE_AVERAGE = 2;
DETECTOR_MODE_SAMPLE = 3;
DETECTOR_MODE_RMS = 4;
// Average hold/modes
AVERAGE_PEAK_HOLD = -1;
AVERAGE_MODE_NONE = 0;
AVERAGE_MODE_RECURSIVE = 1;
AVERAGE_MODE_TIME_WINDOW = 2;
AVERAGE_MODE_LOG_RECURSIVE = 3;
type
INREAL = Single;
OUTREAL = Single;
dINREAL = Single;
dOUTREAL = Single;
PDWORD = ^DWORD;
PINREAl = ^INREAL;
POUTREAl = ^OUTREAL;
PdINREAL = ^dINREAL;
PdOUTREAL = ^dOUTREAL;
PDouble = ^Double;
PInteger = ^Integer;
PSingle = ^Single;
PPDouble = ^PDouble;
PPSingle = ^PSingle;
PPVoid = ^Pointer;
// Opaque pointers (void* in C)
TEER = Pointer;
TANB = Pointer;
TNOB = Pointer;
TRESAMPLE = Pointer;
TGAIN = Pointer;
TLPCRITICAL_SECTION = Pointer;
// RXA Meter types
TrxaMeterType = (
RXA_S_PK,
RXA_S_AV,
RXA_ADC_PK,
RXA_ADC_AV,
RXA_AGC_GAIN,
RXA_AGC_PK,
RXA_AGC_AV,
RXA_METERTYPE_LAST
);
// TXA Meter types
TtxaMeterType = (
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
);
// Callback type for DEXP VOX push
TPushVoxProc = procedure(id: Integer; active: Integer); cdecl;
// ---------------------------------------------------------------------------
// RXA.c
// ---------------------------------------------------------------------------
procedure SetRXAMode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure RXASetPassband(channel: Integer; f_low: Double; f_high: Double); cdecl; external WDSP_LIB;
procedure RXASetNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure RXASetMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// TXA.c
// ---------------------------------------------------------------------------
procedure SetTXAMode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetTXABandpassFreqs(channel: Integer; f_low: Double; f_high: Double); cdecl; external WDSP_LIB;
procedure TXASetNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure TXASetMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetTXAFMAFFilter(channel: Integer; low: Double; high: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// amd.c
// ---------------------------------------------------------------------------
procedure SetRXAAMDRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAAMDSBMode(channel: Integer; sbmode: Integer); cdecl; external WDSP_LIB;
procedure SetRXAAMDFadeLevel(channel: Integer; levelfade: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// ammod.c
// ---------------------------------------------------------------------------
procedure SetTXAAMCarrierLevel(channel: Integer; c_level: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// amsq.c
// ---------------------------------------------------------------------------
procedure SetRXAAMSQRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAAMSQThreshold(channel: Integer; threshold: Double); cdecl; external WDSP_LIB;
procedure SetRXAAMSQMaxTail(channel: Integer; tail: Double); cdecl; external WDSP_LIB;
procedure SetTXAAMSQRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAAMSQMutedGain(channel: Integer; dBlevel: Double); cdecl; external WDSP_LIB;
procedure SetTXAAMSQThreshold(channel: Integer; threshold: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// analyzer.c
// ---------------------------------------------------------------------------
procedure SetupDetectMaxBin(run: Integer; disp: Integer; ss: Integer; LO: Integer;
rate: Double; fLow: Double; fHigh: Double; tau: Double; frame_rate: Integer); cdecl; external WDSP_LIB;
function GetDetectMaxBin(disp: Integer): Double; cdecl; external WDSP_LIB;
procedure XCreateAnalyzer(disp: Integer; success: PInteger; m_size: Integer;
m_num_fft: Integer; m_stitch: Integer; app_data_path: PAnsiChar); cdecl; external WDSP_LIB;
procedure DestroyAnalyzer(disp: Integer); cdecl; external WDSP_LIB;
procedure GetPixels(disp: Integer; pixout: Integer; pix: PdOUTREAL; flag: PInteger); cdecl; external WDSP_LIB;
procedure SnapSpectrum(disp: Integer; ss: Integer; LO: Integer; snap_buff: PDouble); cdecl; external WDSP_LIB;
procedure SnapSpectrumTimeout(disp: Integer; ss: Integer; LO: Integer;
snap_buff: PDouble; timeout: DWORD; flag: PInteger); cdecl; external WDSP_LIB;
// SetCalibration: cal is pointer to array of [n_points][dMAX_M+1] doubles
procedure SetCalibration(disp: Integer; set_num: Integer; n_points: Integer;
cal: PDouble); cdecl; external WDSP_LIB;
procedure OpenBuffer(disp: Integer; ss: Integer; LO: Integer;
Ipointer: PPVoid; Qpointer: PPVoid); cdecl; external WDSP_LIB;
procedure CloseBuffer(disp: Integer; ss: Integer; LO: Integer); cdecl; external WDSP_LIB;
procedure Spectrum(disp: Integer; ss: Integer; LO: Integer;
pI: PdINREAL; pQ: PdINREAL); cdecl; external WDSP_LIB;
procedure Spectrum2(run: Integer; disp: Integer; ss: Integer; LO: Integer;
pbuff: PdINREAL); cdecl; external WDSP_LIB;
procedure Spectrum0(run: Integer; disp: Integer; ss: Integer; LO: Integer;
pbuff: PDouble); cdecl; external WDSP_LIB;
procedure SetDisplayDetectorMode(disp: Integer; pixout: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetDisplayAverageMode(disp: Integer; pixout: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetDisplayNumAverage(disp: Integer; pixout: Integer; num: Integer); cdecl; external WDSP_LIB;
procedure SetDisplayAvBackmult(disp: Integer; pixout: Integer; mult: Double); cdecl; external WDSP_LIB;
procedure SetDisplaySampleRate(disp: Integer; rate: Integer); cdecl; external WDSP_LIB;
procedure SetDisplayNormOneHz(disp: Integer; pixout: Integer; norm: Integer); cdecl; external WDSP_LIB;
// SetAnalyzer — главная функция настройки анализатора (см. WDSP Guide §SetAnalyzer)
// void SetAnalyzer(disp, n_pixout, n_fft, typ, flp, sz, bf_sz, win_type,
// pi, ovrlp, clp, fscLin, fscHin, n_pix, n_stch,
// calset, fmin, fmax, max_w)
procedure SetAnalyzer(disp: Integer; n_pixout: Integer; n_fft: Integer;
typ: Integer; flp: PInteger; sz: Integer; bf_sz: Integer;
win_type: Integer; pi: Double; ovrlp: Integer; clp: Integer;
fscLin: Double; fscHin: Double; n_pix: Integer;
n_stch: Integer; calset: Integer; fmin: Double;
fmax: Double; max_w: Integer); cdecl; external WDSP_LIB;
procedure ResetPixelBuffers(disp: Integer); cdecl; external WDSP_LIB;
function GetDisplayENB(disp: Integer): Double; cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// anf.c
// ---------------------------------------------------------------------------
procedure SetRXAANFRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAANFVals(channel: Integer; taps: Integer; delay: Integer;
gain: Double; leakage: Double); cdecl; external WDSP_LIB;
procedure SetRXAANFTaps(channel: Integer; taps: Integer); cdecl; external WDSP_LIB;
procedure SetRXAANFDelay(channel: Integer; delay: Integer); cdecl; external WDSP_LIB;
procedure SetRXAANFGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetRXAANFLeakage(channel: Integer; leakage: Double); cdecl; external WDSP_LIB;
procedure SetRXAANFPosition(channel: Integer; position: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// anr.c
// ---------------------------------------------------------------------------
procedure SetRXAANRRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAANRVals(channel: Integer; taps: Integer; delay: Integer;
gain: Double; leakage: Double); cdecl; external WDSP_LIB;
procedure SetRXAANRTaps(channel: Integer; taps: Integer); cdecl; external WDSP_LIB;
procedure SetRXAANRDelay(channel: Integer; delay: Integer); cdecl; external WDSP_LIB;
procedure SetRXAANRGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetRXAANRLeakage(channel: Integer; leakage: Double); cdecl; external WDSP_LIB;
procedure SetRXAANRPosition(channel: Integer; position: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// apfshadow.c (SPCW / Synchronous Peak CW filter)
// ---------------------------------------------------------------------------
procedure SetRXASPCWSelection(channel: Integer; selection: Integer); cdecl; external WDSP_LIB;
procedure SetRXASPCWRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXASPCWFreq(channel: Integer; f_center: Double); cdecl; external WDSP_LIB;
procedure SetRXASPCWBandwidth(channel: Integer; bandwidth: Double); cdecl; external WDSP_LIB;
procedure SetRXASPCWGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// bandpass.c
// ---------------------------------------------------------------------------
procedure SetRXABPSRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXABPSFreqs(channel: Integer; f_low: Double; f_high: Double); cdecl; external WDSP_LIB;
procedure SetRXABPSWindow(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure SetTXABPSRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXABPSFreqs(channel: Integer; f_low: Double; f_high: Double); cdecl; external WDSP_LIB;
procedure SetTXABPSWindow(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure SetRXABandpassRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXABandpassFreqs(channel: Integer; f_low: Double; f_high: Double); cdecl; external WDSP_LIB;
procedure SetRXABandpassWindow(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure SetRXABandpassNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetRXABandpassMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetTXABandpassRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXABandpassWindow(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure SetTXABandpassNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetTXABandpassMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// calcc.c (Predistortion / PA calibration)
// ---------------------------------------------------------------------------
procedure pscc(channel: Integer; size: Integer; tx: PDouble; rx: PDouble); cdecl; external WDSP_LIB;
procedure psccF(channel: Integer; size: Integer; Itxbuff: PSingle; Qtxbuff: PSingle;
Irxbuff: PSingle; Qrxbuff: PSingle; mox: Integer; solidmox: Integer); cdecl; external WDSP_LIB;
procedure PSSaveCorr(channel: Integer; filename: PAnsiChar); cdecl; external WDSP_LIB;
procedure PSRestoreCorr(channel: Integer; filename: PAnsiChar); cdecl; external WDSP_LIB;
procedure SetPSRunCal(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetPSMox(channel: Integer; mox: Integer); cdecl; external WDSP_LIB;
procedure GetPSInfo(channel: Integer; info: PInteger); cdecl; external WDSP_LIB;
procedure SetPSReset(channel: Integer; reset: Integer); cdecl; external WDSP_LIB;
procedure SetPSMancal(channel: Integer; mancal: Integer); cdecl; external WDSP_LIB;
procedure SetPSAutomode(channel: Integer; automode: Integer); cdecl; external WDSP_LIB;
procedure SetPSTurnon(channel: Integer; turnon: Integer); cdecl; external WDSP_LIB;
procedure SetPSControl(channel: Integer; reset: Integer; mancal: Integer;
automode: Integer; turnon: Integer); cdecl; external WDSP_LIB;
procedure SetPSLoopDelay(channel: Integer; delay: Double); cdecl; external WDSP_LIB;
procedure SetPSMoxDelay(channel: Integer; delay: Double); cdecl; external WDSP_LIB;
function SetPSTXDelay(channel: Integer; delay: Double): Double; cdecl; external WDSP_LIB;
procedure SetPSHWPeak(channel: Integer; peak: Double); cdecl; external WDSP_LIB;
procedure GetPSHWPeak(channel: Integer; peak: PDouble); cdecl; external WDSP_LIB;
procedure GetPSMaxTX(channel: Integer; maxtx: PDouble); cdecl; external WDSP_LIB;
procedure SetPSPtol(channel: Integer; ptol: Double); cdecl; external WDSP_LIB;
procedure GetPSDisp(channel: Integer; x: PDouble; ym: PDouble; yc: PDouble;
ys: PDouble; cm: PDouble; cc: PDouble; cs: PDouble); cdecl; external WDSP_LIB;
procedure SetPSFeedbackRate(channel: Integer; rate: Integer); cdecl; external WDSP_LIB;
procedure SetPSPinMode(channel: Integer; pin: Integer); cdecl; external WDSP_LIB;
procedure SetPSMapMode(channel: Integer; map: Integer); cdecl; external WDSP_LIB;
procedure SetPSStabilize(channel: Integer; stbl: Integer); cdecl; external WDSP_LIB;
procedure SetPSIntsAndSpi(channel: Integer; ints: Integer; spi: Integer); cdecl; external WDSP_LIB;
// eu2av: медианный (MAD) outlier-фильтр перед кубическим фитом calcc; 0 = выкл.
procedure SetPSOutlierSigma(channel: Integer; sigma: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// cblock.c
// ---------------------------------------------------------------------------
procedure SetRXACBLRun(channel: Integer; setit: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// cfcomp.c
// ---------------------------------------------------------------------------
procedure SetTXACFCOMPRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXACFCOMPPosition(channel: Integer; pos: Integer); cdecl; external WDSP_LIB;
procedure SetTXACFCOMPprofile(channel: Integer; nfreqs: Integer;
F: PDouble; G: PDouble; E: PDouble); cdecl; external WDSP_LIB;
procedure SetTXACFCOMPPrecomp(channel: Integer; precomp: Double); cdecl; external WDSP_LIB;
procedure SetTXACFCOMPPeqRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXACFCOMPPrePeq(channel: Integer; prepeq: Double); cdecl; external WDSP_LIB;
procedure GetTXACFCOMPDisplayCompression(channel: Integer;
comp_values: PDouble; ready: PInteger); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// cfir.c
// ---------------------------------------------------------------------------
procedure SetTXACFIRRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXACFIRNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// channel.c
// ---------------------------------------------------------------------------
procedure OpenChannel(channel: Integer; in_size: Integer; dsp_size: Integer;
input_samplerate: Integer; dsp_rate: Integer; output_samplerate: Integer;
atype: Integer; state: Integer; tdelayup: Double; tslewup: Double;
tdelaydown: Double; tslewdown: Double; bfo: Integer); cdecl; external WDSP_LIB;
procedure CloseChannel(channel: Integer); cdecl; external WDSP_LIB;
procedure SetType(channel: Integer; atype: Integer); cdecl; external WDSP_LIB;
procedure SetInputBuffsize(channel: Integer; in_size: Integer); cdecl; external WDSP_LIB;
procedure SetDSPBuffsize(channel: Integer; dsp_size: Integer); cdecl; external WDSP_LIB;
procedure SetInputSamplerate(channel: Integer; in_rate: Integer); cdecl; external WDSP_LIB;
procedure SetDSPSamplerate(channel: Integer; dsp_rate: Integer); cdecl; external WDSP_LIB;
procedure SetOutputSamplerate(channel: Integer; out_rate: Integer); cdecl; external WDSP_LIB;
procedure SetAllRates(channel: Integer; in_rate: Integer; dsp_rate: Integer;
out_rate: Integer); cdecl; external WDSP_LIB;
function SetChannelState(channel: Integer; state: Integer; dmode: Integer): Integer; cdecl; external WDSP_LIB;
procedure SetChannelTDelayUp(channel: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetChannelTSlewUp(channel: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetChannelTDelayDown(channel: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetChannelTSlewDown(channel: Integer; time: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// compress.c
// ---------------------------------------------------------------------------
procedure SetTXACompressorRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXACompressorGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// dexp.c (Downward EXPander / VOX gate)
// ---------------------------------------------------------------------------
procedure create_dexp(id: Integer; run_dexp: Integer; size: Integer;
ain: PDouble; aout: PDouble; rate: Integer; dettau: Double;
tattack: Double; tdecay: Double; thold: Double; exp_ratio: Double;
hyst_ratio: Double; attack_thresh: Double; nc: Integer; wtype: Integer;
lowcut: Double; highcut: Double; run_filt: Integer; run_vox: Integer;
run_audelay: Integer; audelay: Double; pushvox: TPushVoxProc;
antivox_run: Integer; antivox_size: Integer; antivox_rate: Integer;
antivox_gain: Double; antivox_tau: Double); cdecl; external WDSP_LIB;
procedure destroy_dexp(id: Integer); cdecl; external WDSP_LIB;
procedure flush_dexp(id: Integer); cdecl; external WDSP_LIB;
procedure xdexp(id: Integer); cdecl; external WDSP_LIB;
procedure SendCBPushDexpVox(id: Integer; pushvox: TPushVoxProc); cdecl; external WDSP_LIB;
procedure SetDEXPRun(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetDEXPSize(id: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure SetDEXPIOBuffers(id: Integer; ain: PDouble; aout: PDouble); cdecl; external WDSP_LIB;
procedure SetDEXPRate(id: Integer; rate: Double); cdecl; external WDSP_LIB;
procedure SetDEXPDetectorTau(id: Integer; tau: Double); cdecl; external WDSP_LIB;
procedure SetDEXPAttackTime(id: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetDEXPReleaseTime(id: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetDEXPHoldTime(id: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetDEXPExpansionRatio(id: Integer; ratio: Double); cdecl; external WDSP_LIB;
procedure SetDEXPHysteresisRatio(id: Integer; ratio: Double); cdecl; external WDSP_LIB;
procedure SetDEXPAttackThreshold(id: Integer; thresh: Double); cdecl; external WDSP_LIB;
procedure SetDEXPFilterTaps(id: Integer; taps: Integer); cdecl; external WDSP_LIB;
procedure SetDEXPWindowType(id: Integer; atype: Integer); cdecl; external WDSP_LIB;
procedure SetDEXPLowCut(id: Integer; lowcut: Double); cdecl; external WDSP_LIB;
procedure SetDEXPHighCut(id: Integer; highcut: Double); cdecl; external WDSP_LIB;
procedure SetDEXPRunSideChannelFilter(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetDEXPRunVox(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetDEXPRunAudioDelay(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetDEXPAudioDelay(id: Integer; delay: Double); cdecl; external WDSP_LIB;
procedure GetDEXPPeakSignal(id: Integer; peak: PDouble); cdecl; external WDSP_LIB;
procedure SetAntiVOXRun(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetAntiVOXSize(id: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure SetAntiVOXRate(id: Integer; rate: Double); cdecl; external WDSP_LIB;
procedure SetAntiVOXGain(id: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetAntiVOXDetectorTau(id: Integer; tau: Double); cdecl; external WDSP_LIB;
procedure SendAntiVOXData(id: Integer; nsamples: Integer; data: PDouble); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// div.c (Diversity combining)
// ---------------------------------------------------------------------------
procedure create_divEXT(id: Integer; run: Integer; nr: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure destroy_divEXT(id: Integer); cdecl; external WDSP_LIB;
procedure flush_divEXT(id: Integer); cdecl; external WDSP_LIB;
procedure xdivEXT(id: Integer; nsamples: Integer; ain: PPDouble; aout: PDouble); cdecl; external WDSP_LIB;
procedure SetEXTDIVRun(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetEXTDIVBuffsize(id: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure SetEXTDIVNr(id: Integer; nr: Integer); cdecl; external WDSP_LIB;
procedure SetEXTDIVOutput(id: Integer; output: Integer); cdecl; external WDSP_LIB;
procedure SetEXTDIVRotate(id: Integer; nr: Integer;
Irotate: PDouble; Qrotate: PDouble); cdecl; external WDSP_LIB;
procedure xdivEXTF(id: Integer; size: Integer; input: PPSingle;
Iout: PSingle; Qout: PSingle); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// doublepole.c
// ---------------------------------------------------------------------------
procedure SetRXADoublepoleRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXADoublepoleFreqs(channel: Integer; f_center: Double; bandwidth: Double); cdecl; external WDSP_LIB;
procedure SetRXADoublepoleGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// eer.c (Envelope Elimination and Restoration)
// ---------------------------------------------------------------------------
function create_eer(run: Integer; size: Integer; ain: PDouble; aout: PDouble;
outM: PDouble; rate: Integer; mgain: Double; pgain: Double;
rundelays: Integer; mdelay: Double; pdelay: Double; amiq: Integer): TEER; cdecl; external WDSP_LIB;
procedure destroy_eer(a: TEER); cdecl; external WDSP_LIB;
procedure flush_eer(a: TEER); cdecl; external WDSP_LIB;
procedure xeer(a: TEER); cdecl; external WDSP_LIB;
procedure create_eerEXT(id: Integer; run: Integer; size: Integer; rate: Integer;
mgain: Double; pgain: Double; rundelays: Integer; mdelay: Double;
pdelay: Double; amiq: Integer); cdecl; external WDSP_LIB;
procedure destroy_eerEXT(id: Integer); cdecl; external WDSP_LIB;
procedure flush_eerEXT(id: Integer); cdecl; external WDSP_LIB;
procedure SetEERRun(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetEERAMIQ(id: Integer; amiq: Integer); cdecl; external WDSP_LIB;
procedure SetEERMgain(id: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetEERPgain(id: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetEERRunDelays(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetEERMdelay(id: Integer; delay: Double); cdecl; external WDSP_LIB;
procedure SetEERPdelay(id: Integer; delay: Double); cdecl; external WDSP_LIB;
procedure SetEERSize(id: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure SetEERSamplerate(id: Integer; rate: Integer); cdecl; external WDSP_LIB;
procedure pSetEERRun(a: TEER; run: Integer); cdecl; external WDSP_LIB;
procedure pSetEERAMIQ(a: TEER; amiq: Integer); cdecl; external WDSP_LIB;
procedure pSetEERMgain(a: TEER; gain: Double); cdecl; external WDSP_LIB;
procedure pSetEERPgain(a: TEER; gain: Double); cdecl; external WDSP_LIB;
procedure pSetEERRunDelays(a: TEER; run: Integer); cdecl; external WDSP_LIB;
procedure pSetEERMdelay(a: TEER; delay: Double); cdecl; external WDSP_LIB;
procedure pSetEERPdelay(a: TEER; delay: Double); cdecl; external WDSP_LIB;
procedure pSetEERSize(a: TEER; size: Integer); cdecl; external WDSP_LIB;
procedure pSetEERSamplerate(a: TEER; rate: Integer); cdecl; external WDSP_LIB;
procedure xeerEXTF(id: Integer; inI: PSingle; inQ: PSingle; outI: PSingle;
outQ: PSingle; outMI: PSingle; outMQ: PSingle; mox: Integer; size: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// emnr.c (Enhanced Minimum Noise Reduction)
// ---------------------------------------------------------------------------
procedure SetRXAEMNRpost2Run(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEMNRpost2Factor(channel: Integer; factor: Double); cdecl; external WDSP_LIB;
procedure SetRXAEMNRpost2Nlevel(channel: Integer; nlevel: Double); cdecl; external WDSP_LIB;
procedure SetRXAEMNRpost2Taper(channel: Integer; taper: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEMNRpost2Rate(channel: Integer; tc: Double); cdecl; external WDSP_LIB;
procedure SetRXAEMNRRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEMNRgainMethod(channel: Integer; method: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEMNRnpeMethod(channel: Integer; method: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEMNRaeRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEMNRPosition(channel: Integer; position: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEMNRaeZetaThresh(channel: Integer; zetathresh: Double); cdecl; external WDSP_LIB;
procedure SetRXAEMNRaePsi(channel: Integer; psi: Double); cdecl; external WDSP_LIB;
procedure SetRXAEMNRtrainZetaThresh(channel: Integer; thresh: Double); cdecl; external WDSP_LIB;
procedure SetRXAEMNRtrainT2(channel: Integer; t2: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// emph.c (FM Pre/De-emphasis)
// ---------------------------------------------------------------------------
procedure SetTXAFMEmphPosition(channel: Integer; position: Integer); cdecl; external WDSP_LIB;
procedure SetTXAFMEmphMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetTXAFMEmphNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetTXAFMPreEmphFreqs(channel: Integer; low: Double; high: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// eq.c (Equalizer)
// ---------------------------------------------------------------------------
procedure SetRXAEQRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEQNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEQMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEQProfile(channel: Integer; nfreqs: Integer; F: PDouble; G: PDouble); cdecl; external WDSP_LIB;
procedure SetRXAEQCtfmode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetRXAEQWintype(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure SetRXAGrphEQ(channel: Integer; rxeq: PInteger); cdecl; external WDSP_LIB;
procedure SetRXAGrphEQ10(channel: Integer; rxeq: PInteger); cdecl; external WDSP_LIB;
procedure SetTXAEQRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAEQNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetTXAEQMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetTXAEQProfile(channel: Integer; nfreqs: Integer; F: PDouble; G: PDouble); cdecl; external WDSP_LIB;
procedure SetTXAEQCtfmode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetTXAEQWintype(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure SetTXAEQMethod(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure SetTXAGrphEQ(channel: Integer; txeq: PInteger); cdecl; external WDSP_LIB;
procedure SetTXAGrphEQ10(channel: Integer; txeq: PInteger); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// fmd.c (FM Demodulator)
// ---------------------------------------------------------------------------
procedure SetRXAFMDeviation(channel: Integer; deviation: Double); cdecl; external WDSP_LIB;
procedure SetRXACTCSSFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetRXACTCSSRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMNCde(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMMPde(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMNCaud(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMMPaud(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMLimRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMLimGain(channel: Integer; gaindB: Double); cdecl; external WDSP_LIB;
procedure SetRXAFMAFFilter(channel: Integer; low: Double; high: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// fmmod.c (FM Modulator)
// ---------------------------------------------------------------------------
procedure SetTXAFMDeviation(channel: Integer; deviation: Double); cdecl; external WDSP_LIB;
procedure SetTXACTCSSFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXACTCSSRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAFMNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetTXAFMMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetTXAFMAFFreqs(channel: Integer; low: Double; high: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// wfmd.c (Wideband FM Demodulator)
// ---------------------------------------------------------------------------
procedure SetRXAWFMDeviation(channel: Integer; deviation: Double); cdecl; external WDSP_LIB;
procedure SetRXAWFMNCaud(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetRXAWFMMPaud(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetRXAWFMAFFilter(channel: Integer; low: Double; high: Double); cdecl; external WDSP_LIB;
procedure SetRXAWFMDeemphRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAWFMDeemphTau(channel: Integer; tau: Double); cdecl; external WDSP_LIB;
procedure SetRXAWFMLimRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAWFMLimGain(channel: Integer; gaindB: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// wfmmod.c (Wideband FM Modulator)
// ---------------------------------------------------------------------------
procedure SetTXAWFMDeviation(channel: Integer; deviation: Double); cdecl; external WDSP_LIB;
procedure SetTXAWFMNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetTXAWFMMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure SetTXAWFMAFFreqs(channel: Integer; low: Double; high: Double); cdecl; external WDSP_LIB;
procedure SetTXAWFMPreEmphRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAWFMPreEmphTau(channel: Integer; tau: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// fmsq.c (FM Squelch)
// ---------------------------------------------------------------------------
procedure SetRXAFMSQRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMSQThreshold(channel: Integer; threshold: Double); cdecl; external WDSP_LIB;
procedure SetRXAFMSQNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure SetRXAFMSQMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// gain.c
// ---------------------------------------------------------------------------
function create_gain(run: Integer; prun: PInteger; size: Integer;
ain: PDouble; aout: PDouble; Igain: Double; Qgain: Double): TGAIN; cdecl; external WDSP_LIB;
procedure destroy_gain(a: TGAIN); cdecl; external WDSP_LIB;
procedure flush_gain(a: TGAIN); cdecl; external WDSP_LIB;
procedure xgain(a: TGAIN); cdecl; external WDSP_LIB;
procedure pSetTXOutputLevel(a: TGAIN; level: Double); cdecl; external WDSP_LIB;
procedure pSetTXOutputLevelRun(a: TGAIN; run: Integer); cdecl; external WDSP_LIB;
procedure pSetTXOutputLevelSize(a: TGAIN; size: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// gaussian.c
// ---------------------------------------------------------------------------
procedure SetRXAGaussianRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAGaussianFreqs(channel: Integer; f_center: Double; bandwidth: Double); cdecl; external WDSP_LIB;
procedure SetRXAGaussianGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetRXAGaussianNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// gen.c (Signal generators)
// ---------------------------------------------------------------------------
procedure SetRXAPreGenRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAPreGenMode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetRXAPreGenToneMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetRXAPreGenToneFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetRXAPreGenNoiseMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetRXAPreGenSweepMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetRXAPreGenSweepFreq(channel: Integer; freq1: Double; freq2: Double); cdecl; external WDSP_LIB;
procedure SetRXAPreGenSweepRate(channel: Integer; rate: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPreGenMode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPreGenToneMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenToneFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenNoiseMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenSweepMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenSweepFreq(channel: Integer; freq1: Double; freq2: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenSweepRate(channel: Integer; rate: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenSawtoothMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenSawtoothFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenTriangleMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenTriangleFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenPulseMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenPulseFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenPulseDutyCycle(channel: Integer; dc: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenPulseToneFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPreGenPulseTransition(channel: Integer; transtime: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPostGenMode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPostGenToneMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenToneFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTMag(channel: Integer; mag1: Double; mag2: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTFreq(channel: Integer; freq1: Double; freq2: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenSweepMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenSweepFreq(channel: Integer; freq1: Double; freq2: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenSweepRate(channel: Integer; rate: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenPulseMag(channel: Integer; mag: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenPulseFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenPulseDutyCycle(channel: Integer; dc: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenPulseToneFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenPulseTransition(channel: Integer; transtime: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenPulseIQout(channel: Integer; IQout: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTPulseMag(channel: Integer; mag1: Double; mag2: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTPulseFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTPulseDutyCycle(channel: Integer; dc: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTPulseToneFreq(channel: Integer; freq1: Double; freq2: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTPulseTransition(channel: Integer; transtime: Double); cdecl; external WDSP_LIB;
procedure SetTXAPostGenTTPulseIQout(channel: Integer; IQout: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// iir.c
// ---------------------------------------------------------------------------
procedure SetRXABiQuadRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXABiQuadFreq(channel: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetRXABiQuadBandwidth(channel: Integer; bw: Double); cdecl; external WDSP_LIB;
procedure SetRXABiQuadGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetRXAmpeakRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAmpeakNpeaks(channel: Integer; npeaks: Integer); cdecl; external WDSP_LIB;
procedure SetRXAmpeakFilEnable(channel: Integer; fil: Integer; enable: Integer); cdecl; external WDSP_LIB;
procedure SetRXAmpeakFilFreq(channel: Integer; fil: Integer; freq: Double); cdecl; external WDSP_LIB;
procedure SetRXAmpeakFilBw(channel: Integer; fil: Integer; bw: Double); cdecl; external WDSP_LIB;
procedure SetRXAmpeakFilGain(channel: Integer; fil: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetTXAPHROTRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPHROTCorner(channel: Integer; corner: Double); cdecl; external WDSP_LIB;
procedure SetTXAPHROTNstages(channel: Integer; nstages: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPHROTReverse(channel: Integer; reverse: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// impulse_cache.c
// ---------------------------------------------------------------------------
function save_impulse_cache(path: PAnsiChar): Integer; cdecl; external WDSP_LIB;
function read_impulse_cache(path: PAnsiChar): Integer; cdecl; external WDSP_LIB;
procedure use_impulse_cache(use: Integer); cdecl; external WDSP_LIB;
procedure init_impulse_cache(use: Integer); cdecl; external WDSP_LIB;
procedure destroy_impulse_cache; cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// iobuffs.c
// ---------------------------------------------------------------------------
procedure fexchange0(channel: Integer; ain: PDouble; aout: PDouble; error: PInteger); cdecl; external WDSP_LIB;
procedure fexchange2(channel: Integer; Iin: PINREAL; Qin: PINREAL;
Iout: POUTREAL; Qout: POUTREAL; error: PInteger); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// iqc.c (IQ Correction)
// ---------------------------------------------------------------------------
procedure GetTXAiqcValues(channel: Integer; cm: PDouble; cc: PDouble; cs: PDouble); cdecl; external WDSP_LIB;
procedure SetTXAiqcValues(channel: Integer; cm: PDouble; cc: PDouble; cs: PDouble); cdecl; external WDSP_LIB;
procedure SetTXAiqcSwap(channel: Integer; cm: PDouble; cc: PDouble; cs: PDouble); cdecl; external WDSP_LIB;
procedure SetTXAiqcStart(channel: Integer; cm: PDouble; cc: PDouble; cs: PDouble); cdecl; external WDSP_LIB;
procedure SetTXAiqcEnd(channel: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// matchedCW.c
// ---------------------------------------------------------------------------
procedure SetRXAMatchedRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAMatchedFreqs(channel: Integer; f_center: Double; bandwidth: Double); cdecl; external WDSP_LIB;
procedure SetRXAMatchedGain(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// meter.c
// ---------------------------------------------------------------------------
function GetRXAMeter(channel: Integer; mt: Integer): Double; cdecl; external WDSP_LIB;
function GetTXAMeter(channel: Integer; mt: Integer): Double; cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// nbp.c (Notch Band Pass)
// ---------------------------------------------------------------------------
function RXANBPAddNotch(channel: Integer; notch: Integer; fcenter: Double;
fwidth: Double; active: Integer): Integer; cdecl; external WDSP_LIB;
function RXANBPGetNotch(channel: Integer; notch: Integer; fcenter: PDouble;
fwidth: PDouble; active: PInteger): Integer; cdecl; external WDSP_LIB;
function RXANBPDeleteNotch(channel: Integer; notch: Integer): Integer; cdecl; external WDSP_LIB;
function RXANBPEditNotch(channel: Integer; notch: Integer; fcenter: Double;
fwidth: Double; active: Integer): Integer; cdecl; external WDSP_LIB;
procedure RXANBPGetNumNotches(channel: Integer; nnotches: PInteger); cdecl; external WDSP_LIB;
procedure RXANBPSetTuneFrequency(channel: Integer; tunefreq: Double); cdecl; external WDSP_LIB;
procedure RXANBPSetShiftFrequency(channel: Integer; shift: Double); cdecl; external WDSP_LIB;
procedure RXANBPSetNotchesRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure RXANBPSetRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure RXANBPSetFreqs(channel: Integer; flow: Double; fhigh: Double); cdecl; external WDSP_LIB;
procedure RXANBPSetWindow(channel: Integer; wintype: Integer); cdecl; external WDSP_LIB;
procedure RXANBPSetNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure RXANBPSetMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
procedure RXANBPGetMinNotchWidth(channel: Integer; minwidth: PDouble); cdecl; external WDSP_LIB;
procedure RXANBPSetAutoIncrease(channel: Integer; autoincr: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// nob.c (Noise/Impulse Blankers - ANB and NOB)
// ---------------------------------------------------------------------------
function create_anb(run: Integer; buffsize: Integer; ain: PDouble; aout: PDouble;
samplerate: Double; tau: Double; hangtime: Double; advtime: Double;
backtau: Double; threshold: Double): TANB; cdecl; external WDSP_LIB;
procedure destroy_anb(a: TANB); cdecl; external WDSP_LIB;
procedure flush_anb(a: TANB); cdecl; external WDSP_LIB;
procedure xanb(a: TANB); cdecl; external WDSP_LIB;
procedure pSetRCVRANBRun(a: TANB; run: Integer); cdecl; external WDSP_LIB;
procedure pSetRCVRANBBuffsize(a: TANB; size: Integer); cdecl; external WDSP_LIB;
procedure pSetRCVRANBSamplerate(a: TANB; rate: Integer); cdecl; external WDSP_LIB;
procedure pSetRCVRANBTau(a: TANB; tau: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRANBHangtime(a: TANB; time: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRANBAdvtime(a: TANB; time: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRANBBacktau(a: TANB; tau: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRANBThreshold(a: TANB; thresh: Double); cdecl; external WDSP_LIB;
procedure create_anbEXT(id: Integer; run: Integer; buffsize: Integer;
samplerate: Double; tau: Double; hangtime: Double; advtime: Double;
backtau: Double; threshold: Double); cdecl; external WDSP_LIB;
procedure destroy_anbEXT(id: Integer); cdecl; external WDSP_LIB;
procedure flush_anbEXT(id: Integer); cdecl; external WDSP_LIB;
procedure xanbEXT(id: Integer; ain: PDouble; aout: PDouble); cdecl; external WDSP_LIB;
procedure SetEXTANBRun(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetEXTANBBuffsize(id: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure SetEXTANBSamplerate(id: Integer; rate: Integer); cdecl; external WDSP_LIB;
procedure SetEXTANBTau(id: Integer; tau: Double); cdecl; external WDSP_LIB;
procedure SetEXTANBHangtime(id: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetEXTANBAdvtime(id: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetEXTANBBacktau(id: Integer; tau: Double); cdecl; external WDSP_LIB;
procedure SetEXTANBThreshold(id: Integer; thresh: Double); cdecl; external WDSP_LIB;
procedure xanbEXTF(id: Integer; I: PSingle; Q: PSingle); cdecl; external WDSP_LIB;
// NOB (Noise Blanker II)
function create_nob(run: Integer; buffsize: Integer; ain: PDouble; aout: PDouble;
samplerate: Double; mode: Integer; advslewtime: Double; advtime: Double;
hangslewtime: Double; hangtime: Double; max_imp_seq_time: Double;
backtau: Double; threshold: Double): TNOB; cdecl; external WDSP_LIB;
procedure destroy_nob(a: TNOB); cdecl; external WDSP_LIB;
procedure flush_nob(a: TNOB); cdecl; external WDSP_LIB;
procedure xnob(a: TNOB); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBRun(a: TNOB; run: Integer); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBMode(a: TNOB; mode: Integer); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBBuffsize(a: TNOB; size: Integer); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBSamplerate(a: TNOB; rate: Integer); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBTau(a: TNOB; tau: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBHangtime(a: TNOB; time: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBAdvtime(a: TNOB; time: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBBacktau(a: TNOB; tau: Double); cdecl; external WDSP_LIB;
procedure pSetRCVRNOBThreshold(a: TNOB; thresh: Double); cdecl; external WDSP_LIB;
procedure create_nobEXT(id: Integer; run: Integer; mode: Integer; buffsize: Integer;
samplerate: Double; slewtime: Double; hangtime: Double; advtime: Double;
backtau: Double; threshold: Double); cdecl; external WDSP_LIB;
procedure destroy_nobEXT(id: Integer); cdecl; external WDSP_LIB;
procedure flush_nobEXT(id: Integer); cdecl; external WDSP_LIB;
procedure xnobEXT(id: Integer; ain: PDouble; aout: PDouble); cdecl; external WDSP_LIB;
procedure SetEXTNOBRun(id: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetEXTNOBMode(id: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetEXTNOBBuffsize(id: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure SetEXTNOBSamplerate(id: Integer; rate: Integer); cdecl; external WDSP_LIB;
procedure SetEXTNOBTau(id: Integer; tau: Double); cdecl; external WDSP_LIB;
procedure SetEXTNOBHangtime(id: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetEXTNOBAdvtime(id: Integer; time: Double); cdecl; external WDSP_LIB;
procedure SetEXTNOBBacktau(id: Integer; tau: Double); cdecl; external WDSP_LIB;
procedure SetEXTNOBThreshold(id: Integer; thresh: Double); cdecl; external WDSP_LIB;
procedure xnobEXTF(id: Integer; I: PSingle; Q: PSingle); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// osctrl.c
// ---------------------------------------------------------------------------
procedure SetTXAosctrlRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// patchpanel.c
// ---------------------------------------------------------------------------
procedure SetRXAPanelRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAPanelSelect(channel: Integer; select: Integer); cdecl; external WDSP_LIB;
procedure SetRXAPanelGain1(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetRXAPanelGain2(channel: Integer; gainI: Double; gainQ: Double); cdecl; external WDSP_LIB;
procedure SetRXAPanelPan(channel: Integer; pan: Double); cdecl; external WDSP_LIB;
procedure SetRXAPanelCopy(channel: Integer; copy: Integer); cdecl; external WDSP_LIB;
procedure SetRXAPanelBinaural(channel: Integer; bin: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPanelRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetTXAPanelGain1(channel: Integer; gain: Double); cdecl; external WDSP_LIB;
procedure SetTXAPanelSelect(channel: Integer; select: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// resample.c
// ---------------------------------------------------------------------------
function create_resample(run: Integer; size: Integer; ain: PDouble; aout: PDouble;
in_rate: Integer; out_rate: Integer; fc: Double; ncoef: Integer;
gain: Double): TRESAMPLE; cdecl; external WDSP_LIB;
procedure destroy_resample(a: TRESAMPLE); cdecl; external WDSP_LIB;
procedure flush_resample(a: TRESAMPLE); cdecl; external WDSP_LIB;
function xresample(a: TRESAMPLE): Integer; cdecl; external WDSP_LIB;
function create_resampleV(in_rate: Integer; out_rate: Integer): Pointer; cdecl; external WDSP_LIB;
procedure xresampleV(input: PDouble; output: PDouble; numsamps: Integer;
outsamps: PInteger; ptr: Pointer); cdecl; external WDSP_LIB;
procedure destroy_resampleV(ptr: Pointer); cdecl; external WDSP_LIB;
function create_resampleFV(in_rate: Integer; out_rate: Integer): Pointer; cdecl; external WDSP_LIB;
procedure xresampleFV(input: PSingle; output: PSingle; numsamps: Integer;
outsamps: PInteger; ptr: Pointer); cdecl; external WDSP_LIB;
procedure destroy_resampleFV(ptr: Pointer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// rmatch.c (Rate Matching buffer)
// ---------------------------------------------------------------------------
procedure xrmatchIN(b: Pointer; ain: PDouble); cdecl; external WDSP_LIB;
procedure xrmatchOUT(b: Pointer; aout: PDouble); cdecl; external WDSP_LIB;
procedure getRMatchDiags(b: Pointer; underflows: PInteger; overflows: PInteger;
var_: PDouble; ringsize: PInteger; nring: PInteger); cdecl; external WDSP_LIB;
procedure resetRMatchDiags(b: Pointer); cdecl; external WDSP_LIB;
procedure forceRMatchVar(b: Pointer; force: Integer; fvar: Double); cdecl; external WDSP_LIB;
function create_rmatchV(in_size: Integer; out_size: Integer; nom_inrate: Integer;
nom_outrate: Integer; ringsize: Integer; var_: Double): Pointer; cdecl; external WDSP_LIB;
procedure destroy_rmatchV(ptr: Pointer); cdecl; external WDSP_LIB;
procedure setRMatchInsize(ptr: Pointer; insize: Integer); cdecl; external WDSP_LIB;
procedure setRMatchOutsize(ptr: Pointer; outsize: Integer); cdecl; external WDSP_LIB;
procedure setRMatchNomInrate(ptr: Pointer; nom_inrate: Integer); cdecl; external WDSP_LIB;
procedure setRMatchNomOutrate(ptr: Pointer; nom_outrate: Integer); cdecl; external WDSP_LIB;
procedure setRMatchRingsize(ptr: Pointer; ringsize: Integer); cdecl; external WDSP_LIB;
procedure setRMatchFeedbackGain(b: Pointer; feedback_gain: Double); cdecl; external WDSP_LIB;
procedure setRMatchSlewTime(b: Pointer; slew_time: Double); cdecl; external WDSP_LIB;
procedure setRMatchSlewTime1(b: Pointer; slew_time: Double); cdecl; external WDSP_LIB;
procedure setRMatchPropRingMin(ptr: Pointer; prop_min: Integer); cdecl; external WDSP_LIB;
procedure setRMatchPropRingMax(ptr: Pointer; prop_max: Integer); cdecl; external WDSP_LIB;
procedure setRMatchFFRingMin(ptr: Pointer; ff_ringmin: Integer); cdecl; external WDSP_LIB;
procedure setRMatchFFRingMax(ptr: Pointer; ff_ringmax: Integer); cdecl; external WDSP_LIB;
procedure setRMatchFFAlpha(ptr: Pointer; ff_alpha: Double); cdecl; external WDSP_LIB;
procedure getControlFlag(ptr: Pointer; control_flag: PInteger); cdecl; external WDSP_LIB;
function create_rmatchLegacyV(in_size: Integer; out_size: Integer; nom_inrate: Integer;
nom_outrate: Integer; ringsize: Integer): Pointer; cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// rnnr.c (RNN-based Noise Reduction)
// ---------------------------------------------------------------------------
procedure SetRXARNNRRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure RNNRloadModel(file_path: PAnsiChar); cdecl; external WDSP_LIB;
procedure SetRXARNNRPosition(channel: Integer; position: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// sbnr.c (Spectral Blind Noise Reduction)
// ---------------------------------------------------------------------------
procedure SetRXASBNRRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXASBNRreductionAmount(channel: Integer; amount: Single); cdecl; external WDSP_LIB;
procedure SetRXASBNRsmoothingFactor(channel: Integer; factor: Single); cdecl; external WDSP_LIB;
procedure SetRXASBNRwhiteningFactor(channel: Integer; factor: Single); cdecl; external WDSP_LIB;
procedure SetRXASBNRnoiseRescale(channel: Integer; factor: Single); cdecl; external WDSP_LIB;
procedure SetRXASBNRpostFilterThreshold(channel: Integer; threshold: Single); cdecl; external WDSP_LIB;
procedure SetRXASBNRnoiseScalingType(channel: Integer; noise_scaling_type: Integer); cdecl; external WDSP_LIB;
procedure SetRXASBNRPosition(channel: Integer; position: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// sender.c
// ---------------------------------------------------------------------------
procedure SetRXASpectrum(channel: Integer; flag: Integer; disp: Integer;
ss: Integer; LO: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// shift.c
// ---------------------------------------------------------------------------
procedure SetRXAShiftRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXAShiftFreq(channel: Integer; fshift: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// siphon.c
// ---------------------------------------------------------------------------
procedure RXAGetaSipF(channel: Integer; aout: PSingle; size: Integer); cdecl; external WDSP_LIB;
procedure RXAGetaSipF1(channel: Integer; aout: PSingle; size: Integer); cdecl; external WDSP_LIB;
procedure TXASetSipPosition(channel: Integer; pos: Integer); cdecl; external WDSP_LIB;
procedure TXASetSipMode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure TXASetSipDisplay(channel: Integer; disp: Integer); cdecl; external WDSP_LIB;
procedure TXAGetaSipF(channel: Integer; aout: PSingle; size: Integer); cdecl; external WDSP_LIB;
procedure TXAGetaSipF1(channel: Integer; aout: PSingle; size: Integer); cdecl; external WDSP_LIB;
procedure TXASetSipSpecmode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure TXAGetSpecF1(channel: Integer; aout: PSingle); cdecl; external WDSP_LIB;
procedure TXASetSipAllocDisps(channel: Integer; n_alloc_disps: Integer;
alloc_run: PInteger; alloc_disp: PInteger); cdecl; external WDSP_LIB;
procedure create_siphonEXT(id: Integer; run: Integer; insize: Integer;
sipsize: Integer; fftsize: Integer; specmode: Integer); cdecl; external WDSP_LIB;
procedure destroy_siphonEXT(id: Integer); cdecl; external WDSP_LIB;
procedure flush_siphonEXT(id: Integer); cdecl; external WDSP_LIB;
procedure xsiphonEXT(id: Integer; buff: PDouble); cdecl; external WDSP_LIB;
procedure GetaSipF1EXT(id: Integer; aout: PSingle; size: Integer); cdecl; external WDSP_LIB;
procedure SetSiphonInsize(id: Integer; size: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// slew.c
// ---------------------------------------------------------------------------
procedure SetTXAuSlewTime(channel: Integer; time: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// snb.c (Spectral Noise Blanker A)
// ---------------------------------------------------------------------------
procedure SetRXASNBARun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXASNBAovrlp(channel: Integer; ovrlp: Integer); cdecl; external WDSP_LIB;
procedure SetRXASNBAasize(channel: Integer; size: Integer); cdecl; external WDSP_LIB;
procedure SetRXASNBAnpasses(channel: Integer; npasses: Integer); cdecl; external WDSP_LIB;
procedure SetRXASNBAk1(channel: Integer; k1: Double); cdecl; external WDSP_LIB;
procedure SetRXASNBAk2(channel: Integer; k2: Double); cdecl; external WDSP_LIB;
procedure SetRXASNBAbridge(channel: Integer; bridge: Integer); cdecl; external WDSP_LIB;
procedure SetRXASNBApresamps(channel: Integer; presamps: Integer); cdecl; external WDSP_LIB;
procedure SetRXASNBApostsamps(channel: Integer; postsamps: Integer); cdecl; external WDSP_LIB;
procedure SetRXASNBApmultmin(channel: Integer; pmultmin: Double); cdecl; external WDSP_LIB;
procedure SetRXASNBAOutputBandwidth(channel: Integer; flow: Double; fhigh: Double); cdecl; external WDSP_LIB;
procedure RXABPSNBASetNC(channel: Integer; nc: Integer); cdecl; external WDSP_LIB;
procedure RXABPSNBASetMP(channel: Integer; mp: Integer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// ssql.c (Signal Squelch)
// ---------------------------------------------------------------------------
procedure SetRXASSQLRun(channel: Integer; run: Integer); cdecl; external WDSP_LIB;
procedure SetRXASSQLThreshold(channel: Integer; threshold: Double); cdecl; external WDSP_LIB;
procedure SetRXASSQLTauMute(channel: Integer; tau_mute: Double); cdecl; external WDSP_LIB;
procedure SetRXASSQLTauUnMute(channel: Integer; tau_unmute: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// utilities.c
// ---------------------------------------------------------------------------
function malloc0(size: Integer): Pointer; cdecl; external WDSP_LIB;
function NewCriticalSection: Pointer; cdecl; external WDSP_LIB;
procedure DestroyCriticalSection(cs_ptr: TLPCRITICAL_SECTION); cdecl; external WDSP_LIB;
procedure analyze_bandpass_filter(N: Integer; f_low: Double; f_high: Double;
samplerate: Double; wintype: Integer; rtype: Integer; scale: Double); cdecl; external WDSP_LIB;
procedure print_buffer_parameters(filename: PAnsiChar; channel: Integer); cdecl; external WDSP_LIB;
function create_bfcu(id: Integer; min_size: Integer; max_size: Integer;
rate: Double; corner: Double; points: Integer): Integer; cdecl; external WDSP_LIB;
procedure destroy_bfcu(id: Integer); cdecl; external WDSP_LIB;
procedure getFilterCorners(id: Integer; lower_index: PInteger; upper_index: PInteger); cdecl; external WDSP_LIB;
procedure getFilterCurve(id: Integer; size: Integer; w_type: Integer;
index_low: Integer; index_high: Integer; segment: PDouble); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// varsamp.c
// ---------------------------------------------------------------------------
function create_varsampV(in_rate: Integer; out_rate: Integer; R: Integer): Pointer; cdecl; external WDSP_LIB;
procedure xvarsampV(input: PDouble; output: PDouble; numsamps: Integer;
var_: Double; outsamps: PInteger; ptr: Pointer); cdecl; external WDSP_LIB;
procedure destroy_varsampV(ptr: Pointer); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// version.c
// ---------------------------------------------------------------------------
function GetWDSPVersion: Integer; cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// wcpAGC.c (Wideband Constant Power AGC)
// ---------------------------------------------------------------------------
procedure SetRXAAGCMode(channel: Integer; mode: Integer); cdecl; external WDSP_LIB;
procedure SetRXAAGCAttack(channel: Integer; attack: Integer); cdecl; external WDSP_LIB;
procedure SetRXAAGCDecay(channel: Integer; decay: Integer); cdecl; external WDSP_LIB;
procedure SetRXAAGCHang(channel: Integer; hang: Integer); cdecl; external WDSP_LIB;
procedure GetRXAAGCHangLevel(channel: Integer; hangLevel: PDouble); cdecl; external WDSP_LIB;
procedure SetRXAAGCHangLevel(channel: Integer; hangLevel: Double); cdecl; external WDSP_LIB;
procedure GetRXAAGCHangThreshold(channel: Integer; hangthreshold: PInteger); cdecl; external WDSP_LIB;
procedure SetRXAAGCHangThreshold(channel: Integer; hangthreshold: Integer); cdecl; external WDSP_LIB;
procedure GetRXAAGCThresh(channel: Integer; thresh: PDouble; size: Double; rate: Double); cdecl; external WDSP_LIB;
procedure SetRXAAGCThresh(channel: Integer; thresh: Double; size: Double; rate: Double); cdecl; external WDSP_LIB;
procedure GetRXAAGCTop(channel: Integer; max_agc: PDouble); cdecl; external WDSP_LIB;
procedure SetRXAAGCTop(channel: Integer; max_agc: Double); cdecl; external WDSP_LIB;
procedure SetRXAAGCSlope(channel: Integer; slope: Integer); cdecl; external WDSP_LIB;
procedure SetRXAAGCFixed(channel: Integer; fixed_agc: Double); cdecl; external WDSP_LIB;
procedure SetRXAAGCMaxInputLevel(channel: Integer; level: Double); cdecl; external WDSP_LIB;
procedure SetTXAALCSt(channel: Integer; state: Integer); cdecl; external WDSP_LIB;
procedure SetTXAALCAttack(channel: Integer; attack: Integer); cdecl; external WDSP_LIB;
procedure SetTXAALCDecay(channel: Integer; decay: Integer); cdecl; external WDSP_LIB;
procedure SetTXAALCHang(channel: Integer; hang: Integer); cdecl; external WDSP_LIB;
procedure SetTXAALCMaxGain(channel: Integer; maxgain: Double); cdecl; external WDSP_LIB;
procedure SetTXALevelerSt(channel: Integer; state: Integer); cdecl; external WDSP_LIB;
procedure SetTXALevelerAttack(channel: Integer; attack: Integer); cdecl; external WDSP_LIB;
procedure SetTXALevelerDecay(channel: Integer; decay: Integer); cdecl; external WDSP_LIB;
procedure SetTXALevelerHang(channel: Integer; hang: Integer); cdecl; external WDSP_LIB;
procedure SetTXALevelerTop(channel: Integer; maxgain: Double); cdecl; external WDSP_LIB;
// ---------------------------------------------------------------------------
// wisdom.c (FFTW wisdom)
// ---------------------------------------------------------------------------
function wisdom_get_status: PAnsiChar; cdecl; external WDSP_LIB;
function WDSPwisdom(directory: PAnsiChar): Integer; cdecl; external WDSP_LIB;
implementation
end.