RADIOINFO structure

C/C++ declaration

typedef int FAR *LPMODELIST;

typedef struct _RADIOINFO {

    DWORD       dwSize;

    DWORD       dwFeatures;

    WORD        wAPIVer;

    WORD        wHWVer;

    DWORD       dwMinFreq;

    DWORD       dwMaxFreq;

    int         iFreqRes;

    int         iNumModes;

    int         iMaxVolume;

    int         iMaxBFO;

    int         iMaxFMScanRate;

    int         iMaxAMScanRate;

    int         iHWInterface;

    int         iDeviceNum;

    int         iNumSources;

    int         iMaxIFShift;

    DWORD       dwWaveFormats;

    int         iDSPSources;

    LPMODELIST  lpSupportedModes;

    DWORD       dwMaxFreqkHz;

    char        szDeviceName[MAX_DEVNAME];

    int         iMaxIFGain;

    DWORD       dwSquelchFlags;


// For the above structure, make sure byte packing is set:

//   Microsoft Visual C++: #pragma pack(1)

//   Borland C++: #pragma option -a-

Delphi declaration


  TModeList = array [0..999] of Integer;

  PModeList = ^TModeList;

  TRadioInfo = packed record

    dwSize            : Longint;

    dwFeatures        : Longint;

    wAPIVer           : Word;

    wHWVer            : Word;

    dwMinFreq         : Longint;

    dwMaxFreq         : Longint;

    iFreqRes          : Integer;

    iNumModes         : Integer;

    iMaxVolume        : Integer;

    iMaxBFO           : Integer;

    iMaxFMScanRate    : Integer;

    iMaxAMScanRate    : Integer;

    iHWInterface      : Integer;

    iDeviceNum        : Integer;

    iNumSources       : Integer;

    iMaxIFShift       : Integer;

    dwWaveFormats     : Integer;

    iDSPSources       : Integer;

    lpSupportedModes  : PModeList;

    dwMaxFreqkHz      : Longint;

    szDeviceName      : array [0..MAX_DEVNAME-1] of Char;

    iMaxIFGain        : Integer;

    dwSquelchFlags    : Longint;


  PRadioInfo = ^TRadioInfo;



Specifies the size of the structure, in bytes. This must be filled before calling GetRadioDeviceInfo.


A bit array specifying the hardware features available on the radio device:
Constant Bit Description
RIF_USVERSION 0 Indicates the hardware blocks reception of cellular phone bands.
RIF_DSP 1 Indicates that a DSP is present on the receiver device.
RIF_LSBUSB 2 Indicates that the receiver has separate LSB, USB and CW reception modes instead of a single SSB mode. It also supports the SetIFShift and GetIFShift functions in LSB and USB mode.
RIF_CWIFSHIFT 3 Indicates that SetIFShift has to be used (and SetBFOOffset cannot be used) in CW mode.
RIF_SQUELCH 4 Set if the receiver supports squelch control.
RIF_BLOCKSCAN 5 Set if the receiver supports block scanning.
RIF_AGC 8 Set if the AGC can be turned on or off.
RIF_IFGAIN 9 Set if the IF gain can be adjusted.
RIF_ADJAGC 10 Set if the AGC time constant can be adjusted.
RIF_PREAMP 11 Set if the receiver has a switchable preamp.
RIF_FMSTEREO 12 Set if the receiver supports FMW stereo reception.
RIF_AMSTEREO 13 Set if the receiver support AM stereo reception.
RIF_AUDIOCAP 16 Set if the hardware has Hi-Fi audio capture factilities.
RIF_VIDEOCAP 17 Set if the hardware has video capture factilities.


Specifies the version of the API, major version in the high byte, minor version in the low byte.


Specifies the hardware version of the radio device, major version in the high byte, minor version in the low byte. The following constants have been defined:
Constant Value Ver Receiver
RHV_1000a 0x0100 1.00 WR-1000i and WR-1000e
RHV_1000b 0x010A 1.10 as above
RHV_1200 0x0114 1.20 FMW only receiver
RHV_1500 0x0132 1.50 WR-1500i and WR-1500e
RHV_1550 0x0137 1.55 Series II 1500
RHV_3000 0x0200 2.00 WR-3000i-DSP
RHV_3100 0x020A 2.10 WR-3100i-DSP and WR-3100e
RHV_3150 0x020F 2.15 Series II 3100
RHV_3200 0x0214 2.20 Series II 2000 + FM6 + SSB filter + 1.6GHz
RHV_3500 0x0232 2.50 3200 + 2.6GHz down converter
RHV_3700 0x0246 2.70 3200 + 4GHz down converter
RHV_2000 0x0300 3.00 Series II + FMM + adj IF gain
RHV_2900 0x035A 3.90 Sonobuoy receiver
RHV_2902 0x035C 3.92 Sonobuoy 1550


Specifies the lowest frequency the receiver can tune to in Hz. See SetFrequency.


Specifies the highest frequency the receiver can tune to in Hz.


Specifies the minimum tuning resolution of the receiver in Hz. Frequencies will always be rounded according to the resolution.


Specifies how many reception modes the receiver supports. The lpSupportedModes field (below) specifies these modes. Also see SetMode.


Specifies the maximum value that sets the volume to its highest level. See SetVolume.


Specifies the maximum frequency range (above and below zero) of the BFO offset. See SetBFOOffset.


Specifies the maximum number of stations per second the receiver can scan in FM modes. See SetScanMode.


Specifies the maximum number of stations per second the receiver can scan in AM and SSB modes.


Specifies the interface the radio device is connected to. If the value is 0x180 or higher, it is an internal card. The following specifies the possible interface constants:
Constant Value Interface
RHI_ISA 0 The original internal WiNRADiO card that plugs into the ISA bus in a PC.
RHI_SERIAL 1 An external WiNRADiO that is connected to the PC with the serial (RS-232) port.
RHI_PCMCIA 2 An external WiNRADiO connected to the PC with a "PC Card" (also known as PCMCIA). This is typically used in portable notebook applications.
RHI_USB 3 Universal Serial Bus (1.5Mb) connection.
RHI_NETWORK 4 Ethernet or remote connection.
RHI_PCI 5 PCI card.
RHI_PnPISA 6 Plug-n-Play ISA card.


Specifies the logical device number of the radio device.


Specifies the number of audio sources that the audio output can be switched to. There is always at least one source (the radio itself). On the WR-3000i-DSP series, the second source is the DSP. See SetAudioSource.


Specifies the maximum range for the IF shift above and below zero in Hz. See SetIFShift.


Specifies what waveform-audio formats the DSP supports. The bit flags include:
Constant Bit Description
RWF_8kHz 0 8000 samples per second, speech and telephony
RWF_11kHz 1 11025 samples per second, low quality audio
RWF_16kHz 2 16000 samples per second
RWF_8BIT 16 8 bits per sample
RWF_16BIT 17 16 bits per sample, CD quality
RWF_MONO 24 monaural, single channel


Specifies the number of sources the DSP can be connected to. There is always at least one source (the radio itself). On the WR-3000i-DSP series, the second source is the FMN discriminator (RDS_DATA) for data decoding. See SetDSPSource.


Points to an integer array (LPMODELIST or PModeList) that contains a list of all the modes the devices can receive. All the modes specify noth the actual mode (RMD_xxx) and the bandwidth (RBW_xxx). See SetMode for more information. The list is read-only and cannot be modified.


The same as dwMaxFreq except the maximum frequency is specified in kHz.


Zero terminated string containing device name. MAX_DEVNAME = 64.


Maximum IF Gain value.


Combination of SPU_XXX flags for squelch suppor:
Constant Value Description
SPU_SLEVEL 1 Signal level is the squelch condition.

DSPHDR structure

C/C++ declaration

typedef struct _DSPHdr{

    char       *lpData;

    long int   dwBufferLength;

    long int   dwBytesTransferred;

    long int   dwUser;

    long int   dwFlags;

    long int   dwDateTransferred;

    long int   dwTimeTransferred;

}DSPHdr, *PDSPHdr;

Delphi declaration


  TDSPHdr = record

    lpData             : PChar;

    dwBufferLength     : Longint;

    dwBytesTransferred : Longint;

    dwUser             : Longint;

    dwFlags            : Longint;

    dwDateTransferred  : Longint;

    dwTimeTransferred  : Longint;


  PDSPHdr = ^TDSPHdr;



Pointer to allocated memory.


Size of memory allocated for lpData.


Number of transferred bytes, this value is set by API.


This member is optional and can be used for any purposes.


Specifies header status returned in messages RM_DSPACKWRITE and RM_DSPACKREAD. The following constants have been defined:
Constant Value Interface
DHDR_DONE 1 Finished in normal way.
DHDR_RESET 2 Finished after dspReset or dspClose functions.


Days since 30/12/1899.


Milliseconds since midnight.

ADUINFO structure

C/C++ declaration

typedef struct _AduInfo{

    long int         iNumReceivers;

    long int         iNumAntennas;

    char             szAduName[MAX_DEVNAME];

    AduAntennaInfo   aiAntennaInfo[4];

}AduInfo, *PAduInfo;

Delphi declaration


  TAduInfo = record

    iNumReceivers  : Longint;

    iNumAntennas   : Longint;

    szAduName      : array [0..MAX_DEVNAME-1] of Char;  

    aiAntennaInfo  : array [0..3] of TAduAntennaInfo;


  PAduInfo = ^TAduInfo;


C/C++ declaration

typedef struct _AduAntennaInfo{

    long int    dwLowFreqkHz;

    long int    dwHighFreqkHz;

    long int    dwLowFilterFreqkHz;

    long int    dwHighFilterFreqkHz;

    long int    dwAtten;

    long bool   fHasPreamp;  

}AduAntennaInfo, *PAduAntennaInfo;

Delphi declaration


  TAduAntennaInfo = record

    dwLowFreqkHz         : Longint;

    dwHighFreqkHz        : Longint;

    dwLowFilterFreqkHz   : Longint;

    dwHighFilterFreqkHz  : Longint;

    dwAtten              : Longint;

    fHasPreamp           : LongBool;




Designed low frequency point of antenna.


Designed high frequency point of antenna.


Low frequency of bandstop filter.


High frequency of bandstop filter.


Attenuator in dB (0 = not supported).


Antenna supports switchable preamplifier supply.