/****************************************************************************/ /* Low-level receiver interface code. */ /* Copyright (C) 2000 WiNRADiO Communications. */ /* */ /* 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; Version 2, June 1991. */ /* */ /* 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. */ /****************************************************************************/ #ifndef _WRAPI_H_ #define _WRAPI_H_ #ifdef __cplusplus extern "C" { #endif /* WiNRADiO Information Features (capabilities) */ #define RIF_USVERSION 0x00000001 /* set if hardware is US version */ #define RIF_DSP 0x00000002 /* set if DSP is present */ #define RIF_LSBUSB 0x00000004 /* set if receiver as CW/LSB/USB instead of SSB */ #define RIF_CWIFSHIFT 0x00000008 /* set if receiver uses IFShift in CW (not BFOOffset) */ #define RIF_AGC 0x00000100 /* set if receiver supports AGC on/off */ #define RIF_IFGAIN 0x00000200 /* set if receiver has manual IF gain control */ /* WiNRADiO Modes */ #define RMD_CW 0 #define RMD_AM 1 #define RMD_FMN 2 #define RMD_FMW 3 #define RMD_LSB 4 #define RMD_USB 5 #define RMD_FMM 6 /* 50kHz FM */ #define RMD_FM6 7 /* 6kHz FMN */ /* WiNRADiO Hardware Versions */ #define RHV_1000a 0x0100 /* older WR-1000 series */ #define RHV_1000b 0x010a /* current WR-1000 series */ #define RHV_1500 0x0132 #define RHV_1550 0x0137 /* new WR-1550 receiver */ #define RHV_3000 0x0200 /* Spectrum Monitor series */ #define RHV_3100 0x020a #define RHV_3150 0x020f /* new WR-3150 receiver */ #define RHV_3200 0x0214 #define RHV_3500 0x0232 #define RHV_3700 0x0246 #define RHV_2000 0x0300 /* frequency x10 multiplier (ie. 2-20 GHz maximum support) */ #define RFQ_X10 0x80000000L /* WiNRADiO Hardware Interfaces */ #define RHI_ISA 0 #define RHI_SERIAL 1 #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif typedef unsigned long DWORD; typedef int BOOL; typedef unsigned int UINT; typedef unsigned char BYTE; typedef unsigned short WORD; typedef float FLOAT; typedef FLOAT *PFLOAT; typedef BOOL *PBOOL; typedef BOOL *LPBOOL; typedef BYTE *PBYTE; typedef BYTE *LPBYTE; typedef int *PINT; typedef int *LPINT; typedef UINT *PUINT; typedef UINT *LPUINT; typedef WORD *PWORD; typedef WORD *LPWORD; typedef long *LPLONG; typedef DWORD *PDWORD; typedef DWORD *LPDWORD; typedef void *LPVOID; typedef int *MODELIST; typedef MODELIST *LPMODELIST; typedef struct _RADIOINFO { DWORD dwSize; /* size of structure (must be set before calling GetRadioDeviceInfo) */ DWORD dwFeatures; /* bit flags for extra features (RIF_XXX) */ WORD wAPIVer; /* driver version */ WORD wHWVer; /* hardware version (RHV_XXX) */ DWORD dwMinFreq; /* minimum frequency receiver can tune to */ DWORD dwMaxFreq; /* maximum frequency receiver can tune to */ int iFreqRes; /* resolution of receiver in Hz */ int iNumModes; /* number of modes that can be set */ int iMaxVolume; /* maximum volume level */ int iMaxBFO; /* maximum BFO offset range (+/- in Hz) */ int iMaxFMScanRate; /* maximum scan rate for FM scanning/sweeping */ int iMaxAMScanRate; /* maximum scan rate for AM scanning/sweeping */ int iHWInterface; /* physical interface radio is connected to (RHI_XXX) */ int iDeviceNum; /* logical radio device number */ int iNumSources; /* number of selectable audio sources */ int iMaxIFShift; /* maximum IF shift */ DWORD dwWaveFormats; /* bit array of supported rec/play formats (RWF_XXX) */ int iDSPSources; /* number of selectable DSP input sources */ LPMODELIST lpSupportedModes; /* list of available modes (length specified by iNumModes) */ DWORD dwMaxFreqkHz; /* same as dwMaxFreq, but in kHz */ char szDeviceName[64]; /* not used in DOSRADIO */ int iMaxIFGain; /* the maximum manual IF gain level */ char descr[80]; /* Description (PB) */ } RADIOINFO, *PRADIOINFO, *LPRADIOINFO; int OpenRadioDevice(WORD); BOOL CloseRadioDevice(int); int GetRadioDeviceInfo(int, LPRADIOINFO); int GetSignalStrength(int); BOOL SetFrequency(int, DWORD); BOOL SetMode(int, int); BOOL SetVolume(int, int); BOOL SetAtten(int, BOOL); BOOL SetMute(int, BOOL); BOOL SetPower(int, BOOL); BOOL SetBFOOffset(int, int); BOOL SetIFShift(int, int); BOOL SetAGC(int, BOOL); BOOL SetIFGain(int, int); DWORD GetFrequency(int); int GetMode(int); int GetMaxVolume(int); int GetVolume(int); BOOL GetAtten(int); BOOL GetMute(int); BOOL GetPower(int); int GetBFOOffset(int); int GetIFShift(int); BOOL GetAGC(int); int GetMaxIFGain(int); int GetIFGain(int); char *GetDescr(int); #ifdef __cplusplus } #endif #ifdef __KERNEL__ /* Hooks called when rescheduling */ extern void (*yield_hook)(); extern void (*reenter_hook)(); #endif #endif