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; } RADIOINFO, *PRADIOINFO, FAR *LPRADIOINFO; // For the above structure, make sure byte packing is set: // Microsoft Visual C++: #pragma pack(1) // Borland C++: #pragma option -a-
Delphi declaration
type 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; end; PRadioInfo = ^TRadioInfo;
Members
dwSize
Specifies the size of the structure, in bytes. This must be filled before calling GetRadioDeviceInfo.
dwFeatures
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. |
wAPIVer
Specifies the version of the API, major version in the high byte, minor version in the low byte.
wHWVer
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 |
dwMinFreq
Specifies the lowest frequency the receiver can tune to in Hz. See SetFrequency.
dwMaxFreq
Specifies the highest frequency the receiver can tune to in Hz.
iFreqRes
Specifies the minimum tuning resolution of the receiver in Hz. Frequencies will always be rounded according to the resolution.
iNumModes
Specifies how many reception modes the receiver supports. The lpSupportedModes field (below) specifies these modes. Also see SetMode.
iMaxVolume
Specifies the maximum value that sets the volume to its highest level. See SetVolume.
iMaxBFO
Specifies the maximum frequency range (above and below zero) of the BFO offset. See SetBFOOffset.
iMaxFMScanRate
Specifies the maximum number of stations per second the receiver can scan in FM modes. See SetScanMode.
iMaxAMScanRate
Specifies the maximum number of stations per second the receiver can scan in AM and SSB modes.
iHWInterface
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. |
iDeviceNum
Specifies the logical device number of the radio device.
iNumSources
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.
iMaxIFShift
Specifies the maximum range for the IF shift above and below zero in Hz. See SetIFShift.
dwWaveFormats
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 |
iDSPSources
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.
lpSupportedModes
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.
dwMaxFreqkHz
The same as dwMaxFreq except the maximum frequency is specified in kHz.
szDeviceName
Zero terminated string containing device name. MAX_DEVNAME = 64.
iMaxIFGain
Maximum IF Gain value.
dwSquelchFlags
Combination of SPU_XXX flags for squelch suppor:
Constant | Value | Description |
---|---|---|
SPU_SLEVEL | 1 | Signal level is the squelch condition. |
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
type TDSPHdr = record lpData : PChar; dwBufferLength : Longint; dwBytesTransferred : Longint; dwUser : Longint; dwFlags : Longint; dwDateTransferred : Longint; dwTimeTransferred : Longint; end; PDSPHdr = ^TDSPHdr;
Members
lpData
Pointer to allocated memory.
dwBufferLength
Size of memory allocated for lpData.
dwBytesTransferred
Number of transferred bytes, this value is set by API.
dwUser
This member is optional and can be used for any purposes.
dwFlags
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. |
dwDateTransferred
Days since 30/12/1899.
dwTimeTransferred
Milliseconds since midnight.
C/C++ declaration
typedef struct _AduInfo{ long int iNumReceivers; long int iNumAntennas; char szAduName[MAX_DEVNAME]; AduAntennaInfo aiAntennaInfo[4]; }AduInfo, *PAduInfo;
Delphi declaration
type TAduInfo = record iNumReceivers : Longint; iNumAntennas : Longint; szAduName : array [0..MAX_DEVNAME-1] of Char; aiAntennaInfo : array [0..3] of TAduAntennaInfo; end; 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
type TAduAntennaInfo = record dwLowFreqkHz : Longint; dwHighFreqkHz : Longint; dwLowFilterFreqkHz : Longint; dwHighFilterFreqkHz : Longint; dwAtten : Longint; fHasPreamp : LongBool; end;
Members
dwLowFreqkHz
Designed low frequency point of antenna.
dwHighFreqkHz
Designed high frequency point of antenna.
dwLowFilterFreqkHz
Low frequency of bandstop filter.
dwHighFilterFreqkHz
High frequency of bandstop filter.
dwAtten
Attenuator in dB (0 = not supported).
fHasPreamp
Antenna supports switchable preamplifier supply.