mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
WFM использует новые wfmd/wfmmod из нашего форка WDSP. Демодулятор —
квадратурный дискриминатор на dsp_rate, поэтому при штатных 48 кГц
девиация 75 кГц не помещается в полосу. В WFM цепь RXA поднимается до
WFMDSPRate (наибольший FAudioRate*2^k <= 192 кГц, делящий SampleRate
нацело), rsmpin децимирует вход сам. Выше 192 кГц смысла нет: энергия
демодулированного тона выходит на полку (33.5k при 192 кГц против 31.8k
при 576 кГц), а FFT дорожает.
Две ловушки WDSP, найденные по дороге:
* firmin.c: nfor = nc / size, idxmask = nfor - 1. Все fircore создаются
с nc = max(2048, dsp_size), поэтому смена dsp_size без RXASetNC даёт
nfor = 0 — пустой массив планов и падение в fftw_execute.
* fir.c/bandpass.c планируют с FFTW_PATIENT, а wisdom.c пишет в
wdspWisdom00 только степени двойки. При SampleRate 576 кГц наивный
dsp_size = in_size = 12288 требовал FFT на 24576 точек — FFTW мерил
план 25 секунд. Отсюда потолок 192 кГц и dsp_size = степень двойки.
RXA и TXA гейтятся раздельно: рейты TXA (48 кГц вход, 192 кГц выход) от
SampleRate не зависят, поэтому wfmmod уходит на широкий dsp_rate даже
когда приёмник остался на 48 кГц.
Заодно исправлен WDSP_SAM: было 12, а RXA_SAM = 10. Раньше 12 было вне
диапазона и WDSP молча игнорировал (SAM работал как DSB); после появления
RXA_WFM = 12 это включало бы WFM-демодулятор вместо SAM. txaMode
расходится с rxaMode после DRM (WFM: RXA 12, TXA 14) — отсюда ModeToWDSPTX.
DIGI-U/DIGI-L получили свою таблицу фильтров (3.0k…300) и полосу от нуля,
а не от среза на 100 Гц, как у SSB. В CAT они замаплены на коды Kenwood 6
(FSK) и 9 (FSK-R) — раньше эти коды сваливались в USB/LSB.
Новые индексы дописаны в конец (DIGU=8, DIGL=9, WFM=10): индекс режима
уходит в settings.json, band-cache, CAT и web-API. В VfoOverlay пришлось
развести хит-коды — режимы кодировались как -(I+1) и налезли на HIT_NR/
HIT_NB/HIT_SNB, а полосы кодировались значением BW, и WFM-овские
120000/160000/200000 налезли на HIT_AGC_PICK_BASE/HIT_DEV_BASE.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
969 lines
63 KiB
ObjectPascal
969 lines
63 KiB
ObjectPascal
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;
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 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.
|