wiiremote.h

説明を見る。
00001 /************************************************************
00002 * Copyright (C) 2006-2008 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 
00023 #define WRMT_MAX_DEVICES 32
00024 
00025 #define WRMT_MASK_BUTTON_TWO    0x0001
00026 #define WRMT_MASK_BUTTON_ONE    0x0002
00027 #define WRMT_MASK_BUTTON_B      0x0004
00028 #define WRMT_MASK_BUTTON_A      0x0008
00029 #define WRMT_MASK_BUTTON_MINUS  0x0010
00030 #define WRMT_MASK_BUTTON_HOME   0x0080
00031 #define WRMT_MASK_BUTTON_LEFT   0x0100
00032 #define WRMT_MASK_BUTTON_RIGHT  0x0200
00033 #define WRMT_MASK_BUTTON_DOWN   0x0400
00034 #define WRMT_MASK_BUTTON_UP     0x0800
00035 #define WRMT_MASK_BUTTON_PLUS   0x1000
00036 #define WRMT_MASK_BUTTONS (\
00037     WRMT_MASK_BUTTON_TWO|WRMT_MASK_BUTTON_ONE| \
00038     WRMT_MASK_BUTTON_B|WRMT_MASK_BUTTON_A| \
00039     WRMT_MASK_BUTTON_MINUS|WRMT_MASK_BUTTON_HOME| \
00040     WRMT_MASK_BUTTON_LEFT|WRMT_MASK_BUTTON_RIGHT| \
00041     WRMT_MASK_BUTTON_DOWN|WRMT_MASK_BUTTON_UP| \
00042     WRMT_MASK_BUTTON_PLUS)
00043 
00044 #define WRMT_MASK_LED_1    0x0001
00045 #define WRMT_MASK_LED_2    0x0002
00046 #define WRMT_MASK_LED_3    0x0004
00047 #define WRMT_MASK_LED_4    0x0008
00048 #define WRMT_MASK_LEDS (\
00049     WRMT_MASK_LED_1|WRMT_MASK_LED_2|\
00050     WRMT_MASK_LED_3|WRMT_MASK_LED_4)
00051 
00061 typedef enum 
00062 {
00063     WRMT_FUNCTION_CONTINUOUS = 0,
00064     WRMT_FUNCTION_MOTION,
00065     WRMT_FUNCTION_IR,
00066     WRMT_FUNCTION_SPEAKER,
00067     WRMT_NUMBER_OF_FUNCTIONS,
00068 } WRMT_FunctionType;
00069 
00075 typedef enum 
00076 {
00077     /* read write data */
00078     WRMT_DATA_FORCE_FEEDBACK = 0,
00079     WRMT_DATA_LEDS,
00080     WRMT_DATA_SPEAKER_FORMAT,
00081     WRMT_DATA_SPEAKER_VOLUME,
00082     WRMT_DATA_SPEAKER_SAMPLE_RATE,
00083     /* read only data */
00084     WRMT_DATA_BUTTONS,
00085     WRMT_DATA_MOTION_X,
00086     WRMT_DATA_MOTION_Y,
00087     WRMT_DATA_MOTION_Z,
00088     WRMT_DATA_IR1_FOUND,
00089     WRMT_DATA_IR1_SIZE,
00090     WRMT_DATA_IR1_X,
00091     WRMT_DATA_IR1_Y,
00092     WRMT_DATA_IR2_FOUND,
00093     WRMT_DATA_IR2_SIZE,
00094     WRMT_DATA_IR2_X,
00095     WRMT_DATA_IR2_Y,
00096     WRMT_DATA_IR_FOUND,
00097     WRMT_DATA_IR_SIZE,
00098     WRMT_DATA_IR_X,
00099     WRMT_DATA_IR_Y,
00100     WRMT_DATA_BATTERY_LEVEL, /* 0 - 200(?) */
00101     WRMT_NUMBER_OF_DATA_TYPE,
00102 } WRMT_DataType;
00103 
00104 typedef enum 
00105 {
00106     WRMT_IO_TIMEOUT = -2,
00107     WRMT_IO_ERROR = -1,
00108     WRMT_IO_SUCCESS = 0,
00109 } WRMT_IOReturn;
00110 
00111 struct wrmt_wiiremote;
00112 typedef struct wrmt_wiiremote WRMT_WiiRemote;
00113 
00118 /* WRMT_DECLSPEC for win32 */
00119 #ifndef WRMT_DECLSPEC
00120 # if defined(WIN32) && (!defined(__GNUC__)) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
00121 #  ifdef LIBWIIREMOTE_EXPORTS
00122 #   define WRMT_DECLSPEC __declspec(dllexport)
00123 #  else
00124 #   define WRMT_DECLSPEC __declspec(dllimport)
00125 #  endif
00126 # endif
00127 #endif
00128 
00129 /* WRMT_DECLSPEC for others */
00130 #ifndef WRMT_DECLSPEC
00131 # define WRMT_DECLSPEC
00132 #endif
00133 
00134 
00138 extern
00139 WRMT_DECLSPEC
00140 void
00141 WRMT_SetError(const char *message);
00142 
00146 extern
00147 WRMT_DECLSPEC
00148 char *
00149 WRMT_GetError();
00150 
00156 extern
00157 WRMT_DECLSPEC
00158 int
00159 WRMT_Init();
00160 
00165 extern
00166 WRMT_DECLSPEC
00167 void
00168 WRMT_Quit();
00169 
00176 extern
00177 WRMT_DECLSPEC
00178 void
00179 WRMT_Sleep(int ms);
00180 
00187 extern
00188 WRMT_DECLSPEC
00189 int
00190 WRMT_Update();
00191 
00199 extern
00200 WRMT_DECLSPEC
00201 int
00202 WRMT_Poll();
00203 
00209 extern
00210 WRMT_DECLSPEC
00211 int
00212 WRMT_GetNumWiiRemote();
00213 
00223 extern
00224 WRMT_DECLSPEC
00225 WRMT_WiiRemote *
00226 WRMT_GetWiiRemoteAt(int device_index);
00227 
00233 extern
00234 WRMT_DECLSPEC
00235 WRMT_IOReturn
00236 WRMT_WiiRemote_Open(WRMT_WiiRemote *self);
00237 
00243 extern
00244 WRMT_DECLSPEC
00245 int
00246 WRMT_WiiRemote_IsOpened(WRMT_WiiRemote *self);
00247 
00251 extern
00252 WRMT_DECLSPEC
00253 void
00254 WRMT_WiiRemote_Close(WRMT_WiiRemote *self);
00255 
00264 extern
00265 WRMT_DECLSPEC
00266 int 
00267 WRMT_WiiRemote_IsEnabled(WRMT_WiiRemote *self,
00268     WRMT_FunctionType function_type);
00269 
00279 extern
00280 WRMT_DECLSPEC
00281 WRMT_IOReturn
00282 WRMT_WiiRemote_SetEnabled(WRMT_WiiRemote *self,
00283     WRMT_FunctionType function_type, int value);
00284 
00293 extern
00294 WRMT_DECLSPEC
00295 int 
00296 WRMT_WiiRemote_GetState(WRMT_WiiRemote *self, WRMT_DataType data_type);
00297 
00307 extern
00308 WRMT_DECLSPEC
00309 WRMT_IOReturn
00310 WRMT_WiiRemote_SetState(WRMT_WiiRemote *self, WRMT_DataType data_type,
00311     int value);
00312 
00316 extern
00317 WRMT_DECLSPEC
00318 WRMT_IOReturn
00319 WRMT_WiiRemote_WriteDataToMemory(WRMT_WiiRemote *self,
00320     int address, const unsigned char *data, size_t data_size);
00321 
00322 
00323 #ifdef __cplusplus
00324 }
00325 #endif
00326 
00327 #endif /* WIIREMOTE_H */
00328 

libwiiremoteに対してTue Jan 22 15:51:21 2008に生成されました。  doxygen 1.5.1