# Controller Kernel Library

## Data Structures

struct | SceCtrlData
| Returned controller data. More...
struct | SceCtrlLatch

## Typedefs

typedef SceCtrlData | SceCtrlData
| Returned controller data.
typedef SceCtrlLatch | SceCtrlLatch

## Enumerations

enum

PspCtrlButtons {
PSP_CTRL_SELECT = 0x000001, PSP_CTRL_START = 0x000008, PSP_CTRL_UP = 0x000010, PSP_CTRL_RIGHT = 0x000020,
PSP_CTRL_DOWN = 0x000040, PSP_CTRL_LEFT = 0x000080, PSP_CTRL_LTRIGGER = 0x000100, PSP_CTRL_RTRIGGER = 0x000200,
PSP_CTRL_TRIANGLE = 0x001000, PSP_CTRL_CIRCLE = 0x002000, PSP_CTRL_CROSS = 0x004000, PSP_CTRL_SQUARE = 0x008000,
PSP_CTRL_HOME = 0x010000, PSP_CTRL_HOLD = 0x020000, PSP_CTRL_NOTE = 0x800000
}

| Enumeration for the digital controller buttons. More...
enum | PspCtrlMode { PSP_CTRL_MODE_DIGITAL = 0, PSP_CTRL_MODE_ANALOG }
| Controller mode. More...

## Functions

int | sceCtrlSetSamplingCycle (int cycle)
| Set the controller cycle setting.
int | sceCtrlGetSamplingCycle (int *pcycle)
| Get the controller current cycle setting.
int | sceCtrlSetSamplingMode (int mode)
| Set the controller mode.
int | sceCtrlGetSamplingMode (int *pmode)
| Get the current controller mode.
int | sceCtrlPeekBufferPositive (SceCtrlData *pad_data, int count)
int | sceCtrlPeekBufferNegative (SceCtrlData *pad_data, int count)
int | sceCtrlReadBufferPositive (SceCtrlData *pad_data, int count)
| Read buffer positive.
int | sceCtrlReadBufferNegative (SceCtrlData *pad_data, int count)
int | sceCtrlPeekLatch (SceCtrlLatch *latch_data)
int | sceCtrlReadLatch (SceCtrlLatch *latch_data)

## Typedef Documentation

typedef struct SceCtrlData SceCtrlData

| Returned controller data.

typedef struct SceCtrlLatch SceCtrlLatch

## Enumeration Type Documentation

enum PspCtrlButtons

Enumeration for the digital controller buttons.

Note:
  PSP_CTRL_NOTE can only be read in kernel mode

Enumerator:

  PSP_CTRL_SELECT | Select button.
  PSP_CTRL_START | Start button.
  PSP_CTRL_UP | Up D-Pad button.
  PSP_CTRL_RIGHT | Right D-Pad button.
  PSP_CTRL_DOWN | Down D-Pad button.
  PSP_CTRL_LEFT | Left D-Pad button.
  PSP_CTRL_LTRIGGER | Left trigger.
  PSP_CTRL_RTRIGGER | Right trigger.
  PSP_CTRL_TRIANGLE | Triangle button.
  PSP_CTRL_CIRCLE | Circle button.
  PSP_CTRL_CROSS | Cross button.
  PSP_CTRL_SQUARE | Square button.
  PSP_CTRL_HOME | Home button.
  PSP_CTRL_HOLD | Hold button.
  PSP_CTRL_NOTE | Music Note button.

enum PspCtrlMode

Controller mode.

Enumerator:

  PSP_CTRL_MODE_DIGITAL |
  PSP_CTRL_MODE_ANALOG |

## Function Documentation

int sceCtrlGetSamplingCycle | ( | int * | pcycle | ) |

Get the controller current cycle setting.

Parameters:

  | pcycle | - Return value.

Returns:
  0.

int sceCtrlGetSamplingMode | ( | int * | pmode | ) |

Get the current controller mode.

Parameters:

  | pmode | - Return value.

Returns:
  0.

int sceCtrlPeekBufferNegative | ( | SceCtrlData * | pad_data,
|  | int | count
| ) |

int sceCtrlPeekBufferPositive | ( | SceCtrlData * | pad_data,
|  | int | count
| ) |

int sceCtrlPeekLatch | ( | SceCtrlLatch * | latch_data | ) |

int sceCtrlReadBufferNegative | ( | SceCtrlData * | pad_data,
|  | int | count
| ) |

int sceCtrlReadBufferPositive | ( | SceCtrlData * | pad_data,
|  | int | count
| ) |

Read buffer positive.

Example:

       SceCtrlData pad;

       sceCtrlSetSamplingCycle(0);
       sceCtrlSetSamplingMode(1);
       sceCtrlReadBufferPositive(&pad, 1);
       // Do something with the read controller data

Parameters:

  | pad_data | - Pointer to a SceCtrlData structure used hold the returned pad data.
  | count | - Number of SceCtrlData buffers to read.

int sceCtrlReadLatch | ( | SceCtrlLatch * | latch_data | ) |

int sceCtrlSetSamplingCycle | ( | int | cycle | ) |

Set the controller cycle setting.

Parameters:

  | cycle | - Cycle. Normally set to 0.

Returns:
  The previous cycle setting.

int sceCtrlSetSamplingMode | ( | int | mode | ) |

Set the controller mode.

Parameters:

  | mode | - One of PspCtrlMode.

Returns:
  The previous mode.