palm-os-sdk/sdk-3.1/include/Core/System/IrLib.h
2016-08-25 07:53:48 -03:00

201 lines
6.1 KiB
C

/*******************************************************************
* Pilot Software
*
* Copyright(c) 1997, Palm Computing Inc., All Rights Reserved
*
*-------------------------------------------------------------------
* FileName:
* IrLib.h
*
* Description:
* Include file for IrDA Library
*
* History:
* 5/23/97 Created by Gavin Peacock
*
*******************************************************************/
#ifndef __IR_LIB_H
#define __IR_LIB_H
// The Ir library is used mainly as an Obx library. ObxLib.h defines all the
// primary entrypoints into the library. The rest of this include file defines the
// direct stack API for apps not using the OBX interface. The Stack API comes after
// the Obx API in the library.
#include <ExgLib.h>
// include counterpoint library headers - fix this later so that we only include
// what is needed for our API...
#include <irias.h>
// name of Ir library
#define irLibName "IrDA Library"
// Feature Creators and numbers, for use with the FtrGet() call. This
// feature can be obtained to get the current version of the Ir Library
#define irFtrCreator sysFileCIrLib
#define irFtrNumVersion 0 // get version of Net Library
// 0xMMmfsbbb, where MM is major version, m is minor version
// f is bug fix, s is stage: 3-release,2-beta,1-alpha,0-development,
// bbb is build number for non-releases
// V1.12b3 would be: 0x01122003
// V2.00a2 would be: 0x02001002
// V1.01 would be: 0x01013000
// Options values for IrOpen
#define irOpenOptBackground 0x80000000
#define irOpenOptSpeed115200 IRLAP_SPEED115200
#define irOpenOptSpeed57600 IRLAP_SPEED57600
#define irOpenOptSpeed9600 IRLAP_SPEED9600
// Option codes for ExgLibControl
// These options are all unique to the Ir transport
#define irGetScanningMode exgLibCtlSpecificOp | 1 // returns scanning enabled
#define irSetScanningMode exgLibCtlSpecificOp | 2 // en/disables ir scanning mode
#define irGetStatistics exgLibCtlSpecificOp | 3 // returns performance stats
#define irSetSerialMode exgLibCtlSpecificOp | 4 // sets driver to use direct serial
#define irSetBaudMask exgLibCtlSpecificOp | 5 // set possible baud rates (irOpenOpts)
#define irSetSupported exgLibCtlSpecificOp | 6 // disables the ir not supported dialog
// structure returned by irGetStatistics
typedef struct {
Word recLineErrors; // # of serial errors since library opend
Word crcErrors; // # of crc errors ...
} IrStatsType;
//-----------------------------------------------------------------------------
// Ir library call ID's. Each library call gets the trap number:
// irLibTrapXXXX which serves as an index into the library's dispatch table.
// The constant sysLibTrapCustom is the first available trap number after
// the system predefined library traps Open,Close,Sleep & Wake.
//
// WARNING!!! This order of these traps MUST match the order of the dispatch
// table in IrLibDispatch.c!!!
//-----------------------------------------------------------------------------
#pragma mark Traps
typedef enum {
irLibTrapBind = exgLibTrapLast, // these start after the ObxLib interface...
irLibTrapUnBind,
irLibTrapDiscoverReq,
irLibTrapConnectIrLap,
irLibTrapDisconnectIrLap,
irLibTrapConnectReq,
irLibTrapConnectRsp,
irLibTrapDataReq,
irLibTrapLocalBusy,
irLibTrapMaxTxSize,
irLibTrapMaxRxSize,
irLibTrapSetDeviceInfo,
irLibTrapIsNoProgress,
irLibTrapIsRemoteBusy,
irLibTrapIsMediaBusy,
irLibTrapIsIrLapConnected,
irLibTrapTestReq,
irLibTrapIAS_Add,
irLibTrapIAS_Query,
irLibTrapIAS_SetDeviceName,
irLibTrapIAS_Next,
irLibTrapIrOpen,
irLibTrapHandleEvent,
irLibTrapWaitForEvent,
irLibTrapLast
} IrLibTrapNumberEnum;
/************************************************************
* Net Library procedures.
*************************************************************/
#pragma mark Functions
#ifdef __cplusplus
extern "C" {
#endif
#if EMULATION_LEVEL != EMULATION_NONE
// Private entrypoint used by emulator to install library
Err IrdPrvInstallDispatcher(UInt refNum, SysLibTblEntryPtr entryP);
#endif
IrStatus IrBind(UInt refNum,IrConnect* con, IrCallBack callBack)
SYS_TRAP(irLibTrapBind);
IrStatus IrUnbind(UInt refNum,IrConnect* con)
SYS_TRAP(irLibTrapUnBind);
IrStatus IrDiscoverReq(UInt refNum,IrConnect* con)
SYS_TRAP(irLibTrapDiscoverReq);
IrStatus IrConnectIrLap(UInt refNum,IrDeviceAddr deviceAddr)
SYS_TRAP(irLibTrapConnectIrLap);
IrStatus IrDisconnectIrLap(UInt refNum)
SYS_TRAP(irLibTrapDisconnectIrLap);
IrStatus IrConnectReq(UInt refNum,IrConnect* con, IrPacket* packet, U8 credit)
SYS_TRAP(irLibTrapConnectReq);
IrStatus IrConnectRsp(UInt refNum,IrConnect* con,IrPacket* packet, U8 credit)
SYS_TRAP(irLibTrapConnectRsp);
IrStatus IrDataReq(UInt refNum,IrConnect* con, IrPacket* packet)
SYS_TRAP(irLibTrapDataReq);
void IrLocalBusy(UInt refNum,BOOL flag)
SYS_TRAP(irLibTrapLocalBusy);
U16 IrMaxTxSize(UInt refNum,IrConnect* con)
SYS_TRAP(irLibTrapMaxTxSize);
U16 IrMaxRxSize(UInt refNum,IrConnect* con)
SYS_TRAP(irLibTrapMaxRxSize);
IrStatus IrSetDeviceInfo(UInt refNum,U8* info, U8 len)
SYS_TRAP(irLibTrapSetDeviceInfo);
BOOL IrIsNoProgress(UInt refNum)
SYS_TRAP(irLibTrapIsNoProgress);
BOOL IrIsRemoteBusy(UInt refNum)
SYS_TRAP(irLibTrapIsRemoteBusy);
BOOL IrIsMediaBusy(UInt refNum)
SYS_TRAP(irLibTrapIsMediaBusy);
BOOL IrIsIrLapConnected(UInt refNum)
SYS_TRAP(irLibTrapIsIrLapConnected);
IrStatus IrTestReq(UInt refNum,IrDeviceAddr devAddr, IrConnect* con, IrPacket* packet)
SYS_TRAP(irLibTrapTestReq);
IrStatus IrIAS_Add(UInt refNum,IrIasObject* obj)
SYS_TRAP(irLibTrapIAS_Add);
IrStatus IrIAS_Query(UInt refNum,IrIasQuery* token)
SYS_TRAP(irLibTrapIAS_Query);
IrStatus IrIAS_SetDeviceName(UInt refNum,U8* name, U8 len)
SYS_TRAP(irLibTrapIAS_SetDeviceName);
U8* IrIAS_Next(UInt refNum,IrIasQuery* token)
SYS_TRAP(irLibTrapIAS_Next);
Err IrOpen(UInt refNum,ULong options)
SYS_TRAP(irLibTrapIrOpen);
Err IrClose (Word libRefnum)
SYS_TRAP(sysLibTrapClose);
Boolean IrHandleEvent(Word libRefnum)
SYS_TRAP(irLibTrapHandleEvent);
Err IrWaitForEvent(Word libRefnum,Long timeout)
SYS_TRAP(irLibTrapWaitForEvent);
#endif // IR_LIB_H