Main Page | Modules | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Related Pages

Controllers
[C API]


Detailed Description

read controller status

Remarks:
All functions and variables of this modules used a wrong orthography for the word controller with a missing 'L'.
Author:
benjamin gerard

vincent penne


Files

file  controler.h
 Controllers access.


Data Structures

struct  controler_state_t
 controller state. More...


Controllers key codes.

Defines keycodes binded to controler buttons and moves.

#define KBD_CONT1_C   (0x80)
 Keycodes for 1st controller.

#define KBD_CONT1_B   (0x81)
 Keycodes for 1st controller.

#define KBD_CONT1_A   (0x82)
 Keycodes for 1st controller.

#define KBD_CONT1_START   (0x83)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD_UP   (0x84)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD_DOWN   (0x85)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD_LEFT   (0x86)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD_RIGHT   (0x87)
 Keycodes for 1st controller.

#define KBD_CONT1_Z   (0x88)
 Keycodes for 1st controller.

#define KBD_CONT1_Y   (0x89)
 Keycodes for 1st controller.

#define KBD_CONT1_X   (0x8a)
 Keycodes for 1st controller.

#define KBD_CONT1_D   (0x8b)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD2_UP   (0x8c)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD2_DOWN   (0x8d)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD2_LEFT   (0x8e)
 Keycodes for 1st controller.

#define KBD_CONT1_DPAD2_RIGHT   (0x8f)
 Keycodes for 1st controller.

#define KBD_CONT2_C   (0x90)
 Keycodes for 2nd controller.

#define KBD_CONT2_B   (0x91)
 Keycodes for 1st controller.

#define KBD_CONT2_A   (0x92)
 Keycodes for 1st controller.

#define KBD_CONT2_START   (0x93)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD_UP   (0x94)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD_DOWN   (0x95)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD_LEFT   (0x96)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD_RIGHT   (0x97)
 Keycodes for 1st controller.

#define KBD_CONT2_Z   (0x98)
 Keycodes for 1st controller.

#define KBD_CONT2_Y   (0x99)
 Keycodes for 1st controller.

#define KBD_CONT2_X   (0x9a)
 Keycodes for 1st controller.

#define KBD_CONT2_D   (0x9b)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD2_UP   (0x9c)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD2_DOWN   (0x9d)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD2_LEFT   (0x9e)
 Keycodes for 1st controller.

#define KBD_CONT2_DPAD2_RIGHT   (0x9f)
 Keycodes for 1st controller.

#define KBD_CONT3_C   (0xa0)
 Keycodes for 3td controller.

#define KBD_CONT3_B   (0xa1)
 Keycodes for 1st controller.

#define KBD_CONT3_A   (0xa2)
 Keycodes for 1st controller.

#define KBD_CONT3_START   (0xa3)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD_UP   (0xa4)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD_DOWN   (0xa5)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD_LEFT   (0xa6)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD_RIGHT   (0xa7)
 Keycodes for 1st controller.

#define KBD_CONT3_Z   (0xa8)
 Keycodes for 1st controller.

#define KBD_CONT3_Y   (0xa9)
 Keycodes for 1st controller.

#define KBD_CONT3_X   (0xaa)
 Keycodes for 1st controller.

#define KBD_CONT3_D   (0xab)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD2_UP   (0xac)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD2_DOWN   (0xad)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD2_LEFT   (0xae)
 Keycodes for 1st controller.

#define KBD_CONT3_DPAD2_RIGHT   (0xaf)
 Keycodes for 1st controller.

#define KBD_CONT4_C   (0xb0)
 Keycodes for 4th controller.

#define KBD_CONT4_B   (0xb1)
 Keycodes for 1st controller.

#define KBD_CONT4_A   (0xb2)
 Keycodes for 1st controller.

#define KBD_CONT4_START   (0xb3)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD_UP   (0xb4)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD_DOWN   (0xb5)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD_LEFT   (0xb6)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD_RIGHT   (0xb7)
 Keycodes for 1st controller.

#define KBD_CONT4_Z   (0xb8)
 Keycodes for 1st controller.

#define KBD_CONT4_Y   (0xb9)
 Keycodes for 1st controller.

#define KBD_CONT4_X   (0xba)
 Keycodes for 1st controller.

#define KBD_CONT4_D   (0xbb)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD2_UP   (0xbc)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD2_DOWN   (0xbd)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD2_LEFT   (0xbe)
 Keycodes for 1st controller.

#define KBD_CONT4_DPAD2_RIGHT   (0xbf)
 Keycodes for 1st controller.

#define KBD_CON_C(N)   (0x80+((N)<<4))
 Keycodes for Nth controller.

#define KBD_CON_B(N)   (0x81+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_A(N)   (0x82+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_START(N)   (0x83+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD_UP(N)   (0x84+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD_DOWN(N)   (0x85+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD_LEFT(N)   (0x86+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD_RIGHT(N)   (0x87+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_Z(N)   (0x88+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_Y(N)   (0x89+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_X(N)   (0x8a+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_D(N)   (0x8b+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD2_UP(N)   (0x8c+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD2_DOWN(N)   (0x8d+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD2_LEFT(N)   (0x8e+((N)<<4))
 Keycodes for 1st controller.

#define KBD_CON_DPAD2_RIGHT(N)   (0x8f+((N)<<4))
 Keycodes for 1st controller.


Key code function.

Controllers buttons and pad directions are mapped to some special keycode used by event system .

Warning:
The keycode are defined up-to 4 controllers whereas the controller has a define that allow up-to 32 controllers.


int controler_getchar (void)
 Get a keycode.

int controler_peekchar (void)
 Peek a keycode.


Functions

int controler_init (void)
 Inititialize the controller system.

void controler_shutdown (void)
 Shutdown the controller system.

int controler_read (controler_state_t *state, unsigned int idx)
 Get state of a controller.

int controler_pressed (const controler_state_t *state, uint32 mask)
 Test if some buttons are currently pressed.

int controler_released (const controler_state_t *state, uint32 mask)
 Test if some buttons have been released.

int controler_binding (int clear, int modify)
 Set controller keyboard binding status.


Function Documentation

int controler_read controler_state_t state,
unsigned int  idx
 

Get state of a controller.

Parameters:
state controller state to fill
idx controller identifier (0 based)

int controler_pressed const controler_state_t state,
uint32  mask
 

Test if some buttons are currently pressed.

Parameters:
state filled controller state
mask buttons to test
Returns:
pressed button mask

int controler_released const controler_state_t state,
uint32  mask
 

Test if some buttons have been released.

Parameters:
state filled controller state
mask buttons to test
Returns:
released button mask

int controler_binding int  clear,
int  modify
 

Set controller keyboard binding status.

Each controller may be bind to keyboard or not. When binded a controller generates key-code. The binding status is a bit field value where bit 0 is the binding of the first controller... The controler_binding() function performs the following operation :

 int controler_binding(int clear, int modify)
 {
   int old = cond_connected_mask;  // Save current status;
   cond_connected_mask &= ~clear;  // Clear bits
   cond_connected_mask ^= ~modify; // Toggle bits
   return old;
 }

So if you want to set a bit, you just have to set it in both clear and modify. If you want to clear a bit, you set it in clear only and finally if you want to toggle a bit youy set it in modify only.

Parameters:
clear bits to clear
modify bits to toggle
Returns:
old binding.


dcplaya documentation version 1.2 Generated on January 2004 by doxygen 1.3.5