Hamlib/winradio/linradio/wrapi.h

172 wiersze
6.0 KiB
C

/****************************************************************************/
/* 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