home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Enigma Amiga Life 113
/
EnigmaAmiga113CD.iso
/
software
/
sviluppo
/
quake_src
/
psxport.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-06-17
|
2KB
|
85 lines
#ifndef PSXPORT_H
#define PSXPORT_H
/*
** $VER: psxport.h 1.2 (18.01.2000)
**
** psxport.device definitions
**
** (C) Copyright 1999-2000 Joseph Fenton. All rights reserved.
*/
#ifndef DEVICES_INPUTEVENT_H
#include "devices/inputevent.h"
#endif
/* extension command for psxport.device */
#define GPD_COMMUNICATE 14
/* all controllers */
#define PSX_CLASS(e) e.ie_Class
#define PSX_SUBCLASS(e) e.ie_SubClass
#define PSX_BUTTONS(e) e.ie_Code
/* class/subclass */
#define PSX_CLASS_MOUSE 0x12
#define PSX_CLASS_WHEEL 0x23
#define PSX_CLASS_JOYPAD 0x41
#define PSX_CLASS_ANALOG_MODE2 0x53
#define PSX_CLASS_ANALOG 0x73
#define PSX_CLASS_MULTITAP 0x80 /* will never be received */
#define PSX_CLASS_ANALOG2 0xF3 /* only Mad Catz Dual Shock returns this */
#define PSX_SUBCLASS_PSX 0x5A /* all PSX controllers and cards return this */
/* note: all buttons are active low */
/* joypad */
#define PSX_LEFT 0x8000
#define PSX_DOWN 0x4000
#define PSX_RIGHT 0x2000
#define PSX_UP 0x1000
#define PSX_START 0x0800
#define PSX_R3 0x0400 /* R3 and L3 only if PSX_CLASS_ANALOG */
#define PSX_L3 0x0200 /* or PSX_CLASS_ANALOG2 */
#define PSX_SELECT 0x0100
#define PSX_SQUARE 0x0080
#define PSX_CROSS 0x0040
#define PSX_CIRCLE 0x0020
#define PSX_TRIANGLE 0x0010
#define PSX_R1 0x0008
#define PSX_L1 0x0004
#define PSX_R2 0x0002
#define PSX_L2 0x0001
#define PSX_RIGHTX(e) (e.ie_X>>8)&0xFF
#define PSX_RIGHTY(e) (e.ie_X)&0xFF
#define PSX_LEFTX(e) (e.ie_Y>>8)&0xFF
#define PSX_LEFTY(e) (e.ie_Y)&0xFF
/* mouse */
#define PSX_LMB PSX_R1
#define PSX_RMB PSX_L1
#define PSX_MOUSEDX(e) e.ie_X
#define PSX_MOUSEDY(e) e.ie_Y
/* wheel */
#define PSX_A PSX_CIRCLE
#define PSX_B PSX_TRIANGLE
#define PSX_R PSX_R1
#define PSX_WHEEL(e) (e.ie_X>>8)&0xFF
#define PSX_I(e) (e.ie_X)&0xFF
#define PSX_II(e) (e.ie_Y>>8)&0xFF
#define PSX_L(e) (e.ie_Y)&0xFF
#endif