wiiremote.h

Go to the documentation of this file.
00001 /************************************************************
00002 * Copyright (C) 2006-2007 Masahiko SAWAI All Rights Reserved. 
00003 ************************************************************/
00004 #ifndef WIIREMOTE_H
00005 #define WIIREMOTE_H
00006 
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019 
00020 #include <stdlib.h> /* size_t */
00021 
00022 #define WRMT_MAX_DEVICES 32
00023 
00024 #define WRMT_MASK_BUTTON_TWO    0x0001
00025 #define WRMT_MASK_BUTTON_ONE    0x0002
00026 #define WRMT_MASK_BUTTON_B      0x0004
00027 #define WRMT_MASK_BUTTON_A      0x0008
00028 #define WRMT_MASK_BUTTON_MINUS  0x0010
00029 #define WRMT_MASK_BUTTON_HOME   0x0080
00030 #define WRMT_MASK_BUTTON_LEFT   0x0100
00031 #define WRMT_MASK_BUTTON_RIGHT  0x0200
00032 #define WRMT_MASK_BUTTON_DOWN   0x0400
00033 #define WRMT_MASK_BUTTON_UP     0x0800
00034 #define WRMT_MASK_BUTTON_PLUS   0x1000
00035 
00036 #define WRMT_MASK_LED_1   0x0001
00037 #define WRMT_MASK_LED_2   0x0002
00038 #define WRMT_MASK_LED_3   0x0004
00039 #define WRMT_MASK_LED_4   0x0008
00040 
00050 typedef enum 
00051 {
00052     WRMT_FUNCTION_CONTINUOUS = 0,
00053     WRMT_FUNCTION_MOTION,
00054     WRMT_FUNCTION_IR,
00055     WRMT_FUNCTION_SPEAKER,
00056     WRMT_NUMBER_OF_FUNCTIONS,
00057 } WRMT_FunctionType;
00058 
00064 typedef enum 
00065 {
00066     /* read write data */
00067     WRMT_DATA_FORCE_FEEDBACK = 0,
00068     WRMT_DATA_LEDS,
00069     WRMT_DATA_SPEAKER_FORMAT,
00070     WRMT_DATA_SPEAKER_VOLUME,
00071     WRMT_DATA_SPEAKER_SAMPLE_RATE,
00072     /* read only data */
00073     WRMT_DATA_BUTTONS,
00074     WRMT_DATA_MOTION_X,
00075     WRMT_DATA_MOTION_Y,
00076     WRMT_DATA_MOTION_Z,
00077     WRMT_DATA_IR1_FOUND,
00078     WRMT_DATA_IR1_SIZE,
00079     WRMT_DATA_IR1_X,
00080     WRMT_DATA_IR1_Y,
00081     WRMT_DATA_IR2_FOUND,
00082     WRMT_DATA_IR2_SIZE,
00083     WRMT_DATA_IR2_X,
00084     WRMT_DATA_IR2_Y,
00085     WRMT_DATA_IR_FOUND,
00086     WRMT_DATA_IR_SIZE,
00087     WRMT_DATA_IR_X,
00088     WRMT_DATA_IR_Y,
00089     WRMT_DATA_BATTERY_LEVEL, /* 0 - 200(?) */
00090     WRMT_NUMBER_OF_DATA_TYPE,
00091 } WRMT_DataType;
00092 
00093 typedef enum 
00094 {
00095     WRMT_IO_ERROR = -1,
00096     WRMT_IO_SUCCESS = 0,
00097     WRMT_IO_TIMEOUT = 1,
00098 } WRMT_IOReturn;
00099 
00100 struct wrmt_wiiremote;
00101 typedef struct wrmt_wiiremote WRMT_WiiRemote;
00102 
00110 extern
00111 void
00112 WRMT_SetError(const char *message);
00113 
00117 extern
00118 char *
00119 WRMT_GetError();
00120 
00126 extern
00127 int
00128 WRMT_Init();
00129 
00133 extern
00134 void
00135 WRMT_Quit();
00136 
00140 extern
00141 void
00142 WRMT_Sleep(int ms);
00143 
00147 extern
00148 void
00149 WRMT_Update();
00150 
00155 extern
00156 WRMT_IOReturn
00157 WRMT_Poll(int *updated_device_index_pointer);
00158 
00162 extern
00163 int
00164 WRMT_GetNumWiiRemote();
00165 
00169 extern
00170 WRMT_WiiRemote *
00171 WRMT_GetWiiRemoteAt(int device_index);
00172 
00176 extern
00177 WRMT_IOReturn
00178 WRMT_WiiRemote_Open(WRMT_WiiRemote *self);
00179 
00183 extern
00184 int
00185 WRMT_WiiRemote_IsOpened(WRMT_WiiRemote *self);
00186 
00190 extern
00191 void
00192 WRMT_WiiRemote_Close(WRMT_WiiRemote *self);
00193 
00197 extern
00198 int 
00199 WRMT_WiiRemote_IsEnabled(WRMT_WiiRemote *self, WRMT_FunctionType type);
00200 
00204 extern
00205 void
00206 WRMT_WiiRemote_SetEnabled(WRMT_WiiRemote *self, WRMT_FunctionType type, int value);
00207 
00211 extern
00212 int 
00213 WRMT_WiiRemote_GetState(WRMT_WiiRemote *self, WRMT_DataType type);
00214 
00218 extern
00219 void
00220 WRMT_WiiRemote_SetState(WRMT_WiiRemote *self, WRMT_DataType type, int value);
00221 
00225 extern
00226 int
00227 WRMT_WiiRemote_WriteDataToMemory(WRMT_WiiRemote *self,
00228     int address, const unsigned char *data, size_t data_size);
00229 
00230 
00231 #ifdef __cplusplus
00232 }
00233 #endif
00234 
00235 #endif /* WIIREMOTE_H */
00236 

Generated on Sat Dec 22 14:45:38 2007 for libwiiremote by  doxygen 1.5.1