libdragon
Data Structures | Functions
controller.h File Reference

Controller Subsystem. More...

Go to the source code of this file.

Data Structures

struct  _SI_condat
 SI Nintendo 64 controller data. More...
 
struct  _SI_condat_gc
 SI GameCube controller data. More...
 
struct  SI_origdat_gc
 SI GameCube controller origin data. More...
 
struct  SI_controllers_state_t
 SI controller data for all controller ports. More...
 
struct  SI_controllers_origin_t
 SI GameCube controller origin data for all controller ports. More...
 
union  _SI_condat.__unnamed11__
 
struct  _SI_condat.__unnamed11__.__unnamed13__
 
struct  _SI_condat.__unnamed11__.__unnamed15__
 
union  _SI_condat_gc.__unnamed17__
 
struct  _SI_condat_gc.__unnamed17__.__unnamed19__
 
struct  _SI_condat_gc.__unnamed17__.__unnamed21__
 

Macros

Bitmasks for controller status
#define CONTROLLER_1_INSERTED   0xF000
 Controller 1 Inserted.
 
#define CONTROLLER_2_INSERTED   0x0F00
 Controller 2 Inserted.
 
#define CONTROLLER_3_INSERTED   0x00F0
 Controller 3 Inserted.
 
#define CONTROLLER_4_INSERTED   0x000F
 Controller 4 Inserted.
 
Accessory ID Values
#define ACCESSORY_NONE   0
 No accessory present.
 
#define ACCESSORY_MEMPAK   1
 Mempak present.
 
#define ACCESSORY_RUMBLEPAK   2
 Rumblepak present.
 
#define ACCESSORY_VRU   3
 VRU present.
 
#define ACCESSORY_TRANSFERPAK   4
 Transferpak present.
 
SI Error Values
#define ERROR_NONE   0x0
 No error occured.
 
#define ERROR_BAD_COMMAND   0x1
 Command not recognized or malformed.
 
#define ERROR_NOT_PRESENT   0x2
 Controller not present.
 

Functions

void controller_init (void)
 Initialize the controller subsystem. More...
 
void controller_read (struct controller_data *output)
 Read the controller button status for all controllers. More...
 
void controller_read_gc (struct controller_data *outdata, const uint8_t rumble[4])
 Read the controller button status for all controllers, GC version. More...
 
void controller_read_gc_origin (struct controller_origin_data *outdata)
 Read the controller origin status for all controllers, GC version. More...
 
int get_controllers_present (void)
 Return a bitmask representing which controllers are present. More...
 
int get_accessories_present (struct controller_data *out)
 Return a bitmask specifying which controllers have recognized accessories. More...
 
void controller_scan (void)
 Fetch the current controller state. More...
 
struct controller_data get_keys_down (void)
 Get keys that were pressed since the last inspection. More...
 
struct controller_data get_keys_up (void)
 Get keys that were released since the last inspection. More...
 
struct controller_data get_keys_held (void)
 Get keys that were held since the last inspection. More...
 
struct controller_data get_keys_pressed (void)
 Get keys that are currently pressed, regardless of previous state. More...
 
int get_dpad_direction (int controller)
 Return the DPAD calculated direction. More...
 
int read_mempak_address (int controller, uint16_t address, uint8_t *data)
 Read a chunk of data from a mempak. More...
 
int write_mempak_address (int controller, uint16_t address, uint8_t *data)
 Write a chunk of data to a mempak. More...
 
int identify_accessory (int controller)
 Identify the accessory connected to a controller. More...
 
void rumble_start (int controller)
 Turn rumble on for a particular controller. More...
 
void rumble_stop (int controller)
 Turn rumble off for a particular controller. More...
 
void execute_raw_command (int controller, int command, int bytesout, int bytesin, unsigned char *out, unsigned char *in)
 Execute a raw PIF command. More...
 

Detailed Description

Controller Subsystem.