00001
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #ifndef __CIRCLE_API_H
00042 #define __CIRCLE_API_H
00043
00044 #include "stdint.h"
00045
00046
00047 #include "circle_types.h"
00048
00049
00050 #include "circle_spe.h"
00051
00052
00059 extern enum eSpeed
00060 {
00061 SPEED_VERY_LOW = 1,
00062 SPEED_LOW = 2,
00063 SPEED_MEDIUM = 3,
00064 SPEED_HIGH = 4,
00065 SPEED_VERY_HIGH = 5
00066 } CurrentSpeed;
00067
00068 enum eSchHandler
00069 {
00070 MEMS_SCHHDL_ID = 0,
00071 LED_SCHHDL_ID = 1,
00072 BUTTON_SCHHDL_ID = 2,
00073 BUZZER_SCHHDL_ID = 3,
00074 MENU_SCHHDL_ID = 4,
00075 POINTER_SCHHDL_ID = 5,
00076 LCD_SCHHDL_ID = 6,
00077 DRAW_SCHHDL_ID = 7,
00078 RTC_SCHHDL_ID = 8,
00079 AUDIO_SCHHDL_ID = 9,
00080 TOUCHSCR_SCHHDL_ID = 10,
00081 TOOLBAR_SCHHDL_ID = 11,
00082 POWER_SCHHDL_ID = 12,
00083 UNUSED5_SCHHDL_ID = 13,
00084 UNUSED6_SCHHDL_ID = 14,
00085 UNUSED7_SCHHDL_ID = 15,
00086 UNUSED8_SCHHDL_ID = 16
00087 };
00088
00089
00091
00092
00093 typedef u32( *tCircleFunc0 )( void );
00094 typedef u32( *tCircleFunc1 )( u32 param1 );
00095 typedef u32( *tCircleFunc2 )( u32 param1, u32 param2 );
00096 typedef u32( *tCircleFunc3 )( u32 param1, u32 param2, u32 param3 );
00097 typedef u32( *tCircleFunc4 )( u32 param1, u32 param2, u32 param3, u32 param4 );
00098 typedef u32( *tCircleFunc5 )( u32 param1, u32 param2, u32 param3, u32 param4, u32 param5 );
00099 typedef u32( *tCircleFunc6 )( u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6 );
00100 typedef u32( *tCircleFunc7 )( u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7 );
00101 typedef u32( *tCircleFunc8 )( u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8 );
00102
00103 extern tCircleFunc0( *ptrCircle_API )[];
00104
00105
00106 #define Circle_API (*ptrCircle_API)
00107
00108 #define POINTER_ID 0x00
00109 #define DRAW_ID 0x20
00110 #define LCD_ID 0x40
00111 #define LED_ID 0x60
00112 #define TOUCHSCR_ID 0x61
00113 #define TOOLBAR_ID 0x6A
00114 #define MEMS_ID 0x70
00115 #define BUTTON_ID 0x80
00116 #define JOYSTICK_ID 0x84
00117 #define BUZZER_ID 0x90
00118 #define AUDIO_ID 0x93
00119 #define MENU_ID 0xA0
00120 #define UTIL_ID 0xB0
00121 #define RTC_ID 0xC0
00122 #define AUDIO2_ID 0xC3
00123 #define UTIL2_ID 0xC8
00124 #define SHUTDOWN_ID 0xD0
00125 #define FS_ID 0xD8
00126
00127
00128 #define UTIL_SET_PLL_ID (UTIL_ID + 0)
00129 #define UTIL_GET_PLL_ID (UTIL_ID + 1)
00130 #define UTIL_UINT2STR_ID (UTIL_ID + 2)
00131 #define UTIL_INT2STR_ID (UTIL_ID + 3)
00132 #define UTIL_GET_VERSION_ID (UTIL_ID + 4)
00133 #define UTIL_READ_BACKUPREGISTER_ID (UTIL_ID + 5)
00134 #define UTIL_WRITE_BACKUPREGISTER_ID (UTIL_ID + 6)
00135 #define UTIL_GET_BAT_ID (UTIL_ID + 7)
00136 #define UTIL_GET_USB_ID (UTIL_ID + 8)
00137 #define UTIL_SET_IRQ_HANDLER_ID (UTIL_ID + 9)
00138 #define UTIL_GET_IRQ_HANDLER_ID (UTIL_ID + 10)
00139 #define UTIL_SET_SCH_HANDLER_ID (UTIL_ID + 11)
00140 #define UTIL_GET_SCH_HANDLER_ID (UTIL_ID + 12)
00141 #define UTIL_GET_TEMP_ID (UTIL_ID + 13)
00142 #define UTIL_SET_TEMPMODE_ID (UTIL_ID + 14)
00143 #define UTIL_GET_PRIMERTYPE_ID (UTIL_ID + 15)
00144 #define UTIL_GET_APP_ADDRESS_ID (UTIL2_ID + 0)
00145 #define UTIL_IS_STAND_ALONE_ID (UTIL2_ID + 1)
00146
00147 typedef void ( *tHandler )( void );
00148
00149
00150 #define UTIL_SetPll(a) ( (tCircleFunc1)(Circle_API [UTIL_SET_PLL_ID])) ((u32)(a))
00151 #define UTIL_GetPll() (u32) (((tCircleFunc0)(Circle_API [UTIL_GET_PLL_ID])) ())
00152 #define UTIL_uint2str(a,b,c,d) ( (tCircleFunc4)(Circle_API [UTIL_UINT2STR_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00153 #define UTIL_int2str(a,b,c,d) ( (tCircleFunc4)(Circle_API [UTIL_INT2STR_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00154 #define UTIL_GetVersion() (const u8*) (((tCircleFunc0)(Circle_API [UTIL_GET_VERSION_ID])) ())
00155 #define UTIL_ReadBackupRegister(a) (u32) (((tCircleFunc1)(Circle_API [UTIL_READ_BACKUPREGISTER_ID])) ((u32)(a)))
00156 #define UTIL_WriteBackupRegister(a,b) ( (tCircleFunc2)(Circle_API [UTIL_WRITE_BACKUPREGISTER_ID])) ((u32)(a),(u32)(b))
00157 #define UTIL_GetBat() (u32) (((tCircleFunc0)(Circle_API [UTIL_GET_BAT_ID])) ())
00158 #define UTIL_GetUsb() (u32) (((tCircleFunc0)(Circle_API [UTIL_GET_USB_ID])) ())
00159 #define UTIL_SetIrqHandler(a,b) (((tCircleFunc2)(Circle_API [UTIL_SET_IRQ_HANDLER_ID])) ((s32)a,(u32) b))
00160 #define UTIL_GetIrqHandler(a) (u32) (((tCircleFunc1)(Circle_API [UTIL_GET_IRQ_HANDLER_ID])) ((s32)a))
00161 #define UTIL_SetSchHandler(a,b) (((tCircleFunc2)(Circle_API [UTIL_SET_SCH_HANDLER_ID])) ((s32)a,(u32)b))
00162 #define UTIL_GetSchHandler(a) (u32) (((tCircleFunc1)(Circle_API [UTIL_GET_SCH_HANDLER_ID])) ((s32)a))
00163 #define UTIL_GetTemp() (u32) (((tCircleFunc0)(Circle_API [UTIL_GET_TEMP_ID])) ())
00164 #define UTIL_SetTempMode(a) (((tCircleFunc1)(Circle_API [UTIL_SET_TEMPMODE_ID])) ((s32)a))
00165 #define UTIL_GetPrimerType() (u32) (((tCircleFunc0)(Circle_API [UTIL_GET_PRIMERTYPE_ID])) ())
00166 #define UTIL_GetAppAddress(a) (u32) (((tCircleFunc1)(Circle_API [UTIL_GET_APP_ADDRESS_ID])) ((u32)(a)))
00167 #define UTIL_IsStandAloneMode() (u32) (((tCircleFunc0)(Circle_API [UTIL_IS_STAND_ALONE_ID])) ())
00168
00170
00171
00172
00173
00174
00181 typedef enum
00182 {
00183 V12 = 0,
00184 V3 = 1,
00185 V6 = 2,
00186 V9 = 3,
00187 V12BMP = 4,
00188 V3BMP = 5,
00189 V6BMP = 6,
00190 V9BMP = 7
00191 } Rotate_H12_V_Match_TypeDef;
00192
00197 typedef struct
00198 {
00199 s16 OutX;
00200 s16 OutX_F4;
00201 s16 OutX_F16;
00202 s32 OutX_F64;
00203 s32 OutX_F256;
00204 s16 OutY;
00205 s16 OutY_F4;
00206 s16 OutY_F16;
00207 s32 OutY_F64;
00208 s32 OutY_F256;
00209 s16 OutZ;
00210 s16 OutZ_F4;
00211 s16 OutZ_F16;
00212 s32 OutZ_F64;
00213 s32 OutZ_F256;
00214 s16 Shocked;
00215 s16 RELATIVE_X;
00216 s16 RELATIVE_Y;
00217 s16 DoubleClick;
00218 } tMEMS_Info;
00219
00221
00222
00223
00224
00225 #define MEMS_GET_POSITION_ID (MEMS_ID + 0)
00226 #define MEMS_GET_ROTATION_ID (MEMS_ID + 1)
00227 #define MEMS_SET_NEUTRAL_ID (MEMS_ID + 2)
00228 #define MEMS_GET_INFO_ID (MEMS_ID + 3)
00229
00230
00231 #define MEMS_GetPosition(a,b) ((tCircleFunc2)(Circle_API [MEMS_GET_POSITION_ID])) ((u32)(a),(u32)(b))
00232 #define MEMS_GetRotation(a) ((tCircleFunc1)(Circle_API [MEMS_GET_ROTATION_ID])) ((u32)(a))
00233 #define MEMS_SetNeutral() ((tCircleFunc0)(Circle_API [MEMS_SET_ROTATION_ID])) ()
00234 #define MEMS_GetInfo() ( (tMEMS_Info*) (((tCircleFunc0)(Circle_API [MEMS_GET_INFO_ID])) ()))
00235
00237
00238
00239
00240
00241
00248 enum POINTER_mode
00249 {
00250 POINTER_UNDEF = -1,
00251 POINTER_OFF = 0,
00252 POINTER_ON = 1,
00253 POINTER_MENU = 2,
00254 POINTER_APPLICATION = 3,
00255 POINTER_RESTORE_LESS = 4
00256 };
00257
00264 enum POINTER_state
00265 {
00266 POINTER_S_UNDEF = -1,
00267 POINTER_S_DISABLED = 0,
00268 POINTER_S_ENABLED = 1
00269 };
00270
00275 typedef struct
00276 {
00277 s16 xPos;
00278 s16 yPos;
00279 s16 shift_PosX;
00280 s16 shift_PosY;
00281 s16 X_PosMin;
00282 s16 Y_PosMin;
00283 s16 X_PosMax;
00284 s16 Y_PosMax;
00285 } tPointer_Info;
00286
00288
00289
00290 #define POINTER_WIDTH 7
00291
00292
00293 #define POINTER_SET_RECT_ID (POINTER_ID + 0)
00294 #define POINTER_SETRECTSCREEN_ID (POINTER_ID + 1)
00295 #define POINTER_GETCURRENTANGLESTART_ID (POINTER_ID + 2)
00296 #define POINTER_SETCURRENTANGLESTART_ID (POINTER_ID + 3)
00297 #define POINTER_GETCURRENTSPEEDONANGLE_ID (POINTER_ID + 4)
00298 #define POINTER_SETCURRENTSPEEDONANGLE_ID (POINTER_ID + 5)
00299 #define POINTER_SETMODE_ID (POINTER_ID + 6)
00300 #define POINTER_GETMODE_ID (POINTER_ID + 7)
00301 #define POINTER_SETCURRENTPOINTER_ID (POINTER_ID + 8)
00302 #define POINTER_GETSTATE_ID (POINTER_ID + 9)
00303 #define POINTER_DRAW_ID (POINTER_ID + 10)
00304 #define POINTER_SAVE_ID (POINTER_ID + 11)
00305 #define POINTER_RESTORE_ID (POINTER_ID + 12)
00306 #define POINTER_GETPOSITION_ID (POINTER_ID + 13)
00307 #define POINTER_SETPOSITION_ID (POINTER_ID + 14)
00308 #define POINTER_SETAPPLICATION_POINTER_MGR_ID (POINTER_ID + 15)
00309 #define POINTER_SETCOLOR_ID (POINTER_ID + 16)
00310 #define POINTER_GETCOLOR_ID (POINTER_ID + 17)
00311 #define POINTER_GETINFO_ID (POINTER_ID + 18)
00312 #define POINTER_SET_CURRENT_AREASTORE_ID (POINTER_ID + 19)
00313
00314
00315 #define POINTER_SetRect(a,b,c,d) ((tCircleFunc4)(Circle_API [POINTER_SET_RECT_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00316 #define POINTER_SetRectScreen() ((tCircleFunc0)(Circle_API [POINTER_SETRECTSCREEN_ID])) ()
00317 #define POINTER_GetCurrentAngleStart() (u16) (((tCircleFunc0)(Circle_API [POINTER_GETCURRENTANGLESTART_ID])) ())
00318 #define POINTER_SetCurrentAngleStart(a) ((tCircleFunc1)(Circle_API [POINTER_SETCURRENTANGLESTART_ID])) ((u32)(a))
00319 #define POINTER_GetCurrentSpeedOnAngle() (u16) (((tCircleFunc0)(Circle_API [POINTER_GETCURRENTSPEEDONANGLE_ID])) ())
00320 #define POINTER_SetCurrentSpeedOnAngle(a) ((tCircleFunc1)(Circle_API [POINTER_SETCURRENTSPEEDONANGLE_ID])) ((u32)(a))
00321 #define POINTER_SetMode(a) ((tCircleFunc1)(Circle_API [POINTER_SETMODE_ID])) ((u32)(a))
00322 #define POINTER_GetMode() (enum POINTER_mode)(((tCircleFunc0)(Circle_API [POINTER_GETMODE_ID])) ())
00323 #define POINTER_SetCurrentPointer(a,b,c) ((tCircleFunc3)(Circle_API [POINTER_SETCURRENTPOINTER_ID])) ((u32)(a),(u32)(b),(u32)(c))
00324 #define POINTER_GetState() (enum POINTER_state)(((tCircleFunc0)(Circle_API [POINTER_GETSTATE_ID])) ())
00325 #define POINTER_Draw(a,b,c,d,e) ((tCircleFunc5)(Circle_API [POINTER_DRAW_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e))
00326 #define POINTER_Save(a,b,c,d) ((tCircleFunc4)(Circle_API [POINTER_SAVE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00327 #define POINTER_Restore(a,b,c,d) ((tCircleFunc4)(Circle_API [POINTER_RESTORE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00328 #define POINTER_GetPos() (u16)(((tCircleFunc0)(Circle_API [POINTER_GETPOSITION_ID])) ())
00329 #define POINTER_SetPos(a,b) ((tCircleFunc2)(Circle_API [POINTER_SETPOSITION_ID])) ((u32)(a),(u32)(b))
00330 #define POINTER_SetApplication_Pointer_Mgr(a) ((tCircleFunc1)(Circle_API [POINTER_SETAPPLICATION_POINTER_MGR_ID])) ((u32)(a))
00331 #define POINTER_SetColor(a) ((tCircleFunc1)(Circle_API [POINTER_SETCOLOR_ID])) ((u32)(a))
00332 #define POINTER_GetColor() (u16)(((tCircleFunc0)(Circle_API [POINTER_GETCOLOR_ID])) ())
00333 #define POINTER_GetInfo() (tPointer_Info*) (((tCircleFunc0)(Circle_API [POINTER_GETINFO_ID])) ())
00334 #define POINTER_SetCurrentAreaStore(a) ((tCircleFunc1)(Circle_API [POINTER_SET_CURRENT_AREASTORE_ID])) ((u32)(a))
00335
00337
00338
00339
00340
00341
00348 enum BUTTON_mode
00349 {
00350 BUTTON_DISABLED = -1,
00351 BUTTON_ONOFF = 0,
00352 BUTTON_ONOFF_FORMAIN = 1,
00353 BUTTON_WITHCLICK = 2
00354 };
00355
00362 enum BUTTON_state
00363 {
00364 BUTTON_UNDEF = -1,
00365 BUTTON_RELEASED = 0,
00366 BUTTON_PUSHED = 1,
00367 BUTTON_PUSHED_FORMAIN = 2,
00368 BUTTON_CLICK = 3,
00369 BUTTON_DBLCLICK = 4
00370 };
00371
00373
00374
00375
00376
00377
00378 #define BUTTON_GETSTATE_ID (BUTTON_ID + 0)
00379 #define BUTTON_SETMODE_ID (BUTTON_ID + 1)
00380 #define BUTTON_GETMODE_ID (BUTTON_ID + 2)
00381 #define BUTTON_WAITFORRELEASE_ID (BUTTON_ID + 3)
00382
00383
00384 #define BUTTON_GetState() (enum BUTTON_state)(((tCircleFunc0)(Circle_API [BUTTON_GETSTATE_ID])) ())
00385 #define BUTTON_SetMode(a) ((tCircleFunc1)(Circle_API [BUTTON_SETMODE_ID])) ((u32)(a))
00386 #define BUTTON_GetMode() (enum BUTTON_mode)(((tCircleFunc0)(Circle_API [BUTTON_GETMODE_ID])) ())
00387 #define BUTTON_WaitForRelease() ((tCircleFunc0)(Circle_API [BUTTON_WAITFORRELEASE_ID])) ()
00388
00390
00391
00392
00393
00394
00401 enum JOYSTICK_state
00402 {
00403 JOYSTICK_UNDEF = -1,
00404 JOYSTICK_RELEASED = 0,
00405 JOYSTICK_LEFT = 1,
00406 JOYSTICK_UP = 2,
00407 JOYSTICK_RIGHT = 3,
00408 JOYSTICK_DOWN = 4,
00409 JOYSTICK_RIGHT_UP = 11,
00410 JOYSTICK_LEFT_UP = 5,
00411 JOYSTICK_RIGHT_DOWN = 13,
00412 JOYSTICK_LEFT_DOWN = 7,
00413 };
00414
00416
00417
00418
00419
00420
00421 #define JOYSTICK_GETSTATE_ID (JOYSTICK_ID + 0)
00422 #define JOYSTICK_WAITFORRELEASE_ID (JOYSTICK_ID + 1)
00423
00424
00425 #define JOYSTICK_GetState() (enum JOYSTICK_state) (((tCircleFunc0)(Circle_API [JOYSTICK_GETSTATE_ID])) ()) // enum JOYSTICK_state JOYSTICK_GetState(void);
00426 #define JOYSTICK_WaitForRelease() ((tCircleFunc0)(Circle_API [JOYSTICK_WAITFORRELEASE_ID])) () // void JOYSTICK_WaitForRelease(void);
00427
00429
00430
00431
00432
00433
00434
00435 #define RGB_MAKE(xR,xG,xB) ( ( (((xG)>>2)&0x07)<<13 ) + ( (xG)>>5 ) + \
00436 ( ((xB)>>3) << 8 ) + \
00437 ( ((xR)>>3) << 3 ) )
00439 // Major HTML Color codes
00440 #define RGB_RED RGB_MAKE(0xFF, 0x00, 0x00) //0x00F8
00441 #define RGB_GREEN RGB_MAKE(0x00, 0xFF, 0x00) //0xE007 (official name is PASTELGREEN)
00442 #define RGB_PASTELGREEN RGB_MAKE(0x00, 0xFF, 0x00)
00443 #define RGB_LIGHTBLUE RGB_MAKE(0x00, 0x00, 0xFF) //0x1F00 (was 0xFF07 in CircleOS 3)
00444 #define RGB_BLUE RGB_MAKE(0x00, 0x00, 0xFF) //0x1F00 (official name is LIGHTBLUE)
00445 #define RGB_BLACK RGB_MAKE(0x00, 0x00, 0x00) //0x0000
00446 #define RGB_WHITE RGB_MAKE(0xFF, 0xFF, 0xFF) //0xFFFF
00447 #define RGB_YELLOW RGB_MAKE(0xFF, 0xFF, 0x00) //0xE0FF
00448 #define RGB_MAGENTA RGB_MAKE(0xFF, 0x00, 0xFF) //0x1FF8
00449 #define RGB_TURQUOISE RGB_MAKE(0x00, 0xFF, 0xFF)
00450 #define RGB_ORANGE RGB_MAKE(0xFF, 0x80, 0x40) //0x08FC (was 0xE0F9 in CircleOS 3)
00451 #define RGB_PINK RGB_MAKE(0xFF, 0x3F, 0xFF) //0xFFF9
00452 #define RGB_LIGHTGREY RGB_MAKE(0xC0, 0xC0, 0xC0)
00453 #define RGB_DARKGREY RGB_MAKE(0x80, 0x80, 0x80)
00454 #define RGB_DARKBLUE RGB_MAKE(0x00, 0x00, 0xA0)
00455 #define RGB_LIGHTPURPLE RGB_MAKE(0xFF, 0x00, 0x80)
00456 #define RGB_DARKPURPLE RGB_MAKE(0x80, 0x00, 0x80)
00457 #define RGB_BROWN RGB_MAKE(0x80, 0x40, 0x00)
00458 #define RGB_BURGUNDY RGB_MAKE(0x80, 0x00, 0x00)
00459 #define RGB_FORESTGREEN RGB_MAKE(0x80, 0x80, 0x00)
00460 #define RGB_GRASSGREEN RGB_MAKE(0x40, 0x80, 0x80)
00461
00462
00463 #define BACKLIGHTMIN 0x1000
00464 #define DEFAULT_CCR_BACKLIGHTSTART 0x8000
00466
00467 #define CHAR_WIDTH 7
00468 #define CHAR_HEIGHT 14
00470
00471 #define MAX_FONT_NB 20
00472
00473 typedef enum
00474 {
00475 FONT_PRIMER = 0,
00476 FONT_PRIMERX2 = 1,
00477 FONT_MEDIUM = 2,
00478 FONT_MEDIUMX2 = 3,
00479 FONT_NUMBERS = 4
00480 } ENUM_FontID;
00481
00482 typedef struct
00483 {
00484 ENUM_FontID ID;
00485 u8 width;
00486 u8 height;
00487 u8 FontCoeff;
00488 u8 ASCII_start;
00489 u8 ASCII_end;
00490 u8 *font;
00491 u8 title[16];
00492 } tFontDef;
00493
00494 typedef struct
00495 {
00496 u8 nb;
00497 tFontDef fonts[MAX_FONT_NB];
00498 } tFontTable;
00499
00500
00502
00503
00504 #define LCD_SETRECTFORCMD_ID (LCD_ID + 0)
00505 #define LCD_GETPIXEL_ID (LCD_ID + 1)
00506 #define LCD_DRAWPIXEL_ID (LCD_ID + 2)
00507 #define LCD_SENDLCDCMD_ID (LCD_ID + 3)
00508 #define LCD_SENDLCDDATA_ID (LCD_ID + 4)
00509 #define LCD_READLCDDATA_ID (LCD_ID + 5)
00510 #define LCD_FILLRECT_ID (LCD_ID + 6)
00511 #define LCD_DRAWRECT_ID (LCD_ID + 7)
00512 #define LCD_DISPLAYCHAR_ID (LCD_ID + 8)
00513 #define LCD_RECTREAD_ID (LCD_ID + 9)
00514 #define LCD_SETBACKLIGHT_ID (LCD_ID + 10)
00515 #define LCD_GETBACKLIGHT_ID (LCD_ID + 11)
00516 #define LCD_SETROTATESCREEN_ID (LCD_ID + 12)
00517 #define LCD_GETROTATESCREEN_ID (LCD_ID + 13)
00518 #define LCD_SETSCREENORIENTATION_ID (LCD_ID + 14)
00519 #define LCD_GETSCREENORIENTATION_ID (LCD_ID + 15)
00520 #define LCD_SETBACKLIGHT_OFF_ID (LCD_ID + 16)
00521 #define LCD_SETBACKLIGHT_ON_ID (LCD_ID + 17)
00522 #define LCD_SETFONT_ID (LCD_ID + 18)
00523 #define LCD_SETDEFAULT_ID (LCD_ID + 19)
00524 #define LCD_SETOFFSET_ID (LCD_ID + 20)
00525 #define LCD_GETSCREENWIDTH_ID (LCD_ID + 21)
00526 #define LCD_GETSCREENHEIGHT_ID (LCD_ID + 22)
00527 #define LCD_SETFONTDEF_ID (LCD_ID + 23)
00528 #define LCD_GETFONTDEF_ID (LCD_ID + 24)
00529 #define LCD_CHANGEFONT_ID (LCD_ID + 25)
00530 #define LCD_SETTRANSPARENCY_ID (LCD_ID + 26)
00531 #define LCD_GETTRANSPARENCY_ID (LCD_ID + 27)
00532 #define LCD_FULLSCREEN_ID (LCD_ID + 28)
00533
00534
00535 #define LCD_SetRect_For_Cmd(a,b,c,d) ((tCircleFunc4)(Circle_API [LCD_SETRECTFORCMD_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00536 #define LCD_GetPixel(a,b) (u16)(((tCircleFunc2)(Circle_API [LCD_GETPIXEL_ID])) ((u32)(a),(u32)(b)))
00537 #define LCD_DrawPixel(a,b,c) ((tCircleFunc3)(Circle_API [LCD_DRAWPIXEL_ID])) ((u32)(a),(u32)(b),(u32)(c))
00538 #define LCD_SendLCDCmd(a) ((tCircleFunc1)(Circle_API [LCD_SENDLCDCMD_ID])) ((u32)(a))
00539 #define LCD_SendLCDData(a) ((tCircleFunc1)(Circle_API [LCD_SENDLCDDATA_ID])) ((u32)(a))
00540 #define LCD_ReadLCDData() (u32)(((tCircleFunc0)(Circle_API [LCD_READLCDDATA_ID])) ())
00541 #define LCD_FillRect(a,b,c,d,e) ((tCircleFunc5)(Circle_API [LCD_FILLRECT_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e))
00542 #define LCD_DrawRect(a,b,c,d,e) ((tCircleFunc5)(Circle_API [LCD_DRAWRECT_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e))
00543 #define LCD_DisplayChar(a,b,c,d,e,f) ((tCircleFunc6)(Circle_API [LCD_DISPLAYCHAR_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e),(mag_t)(f))
00544 #define LCD_RectRead(a,b,c,d,e) ((tCircleFunc5)(Circle_API [LCD_RECTREAD_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e))
00545 #define LCD_SetBackLight(a) ((tCircleFunc1)(Circle_API [LCD_SETBACKLIGHT_ID])) ((u32)(a))
00546 #define LCD_GetBackLight() (u32)(((tCircleFunc0)(Circle_API [LCD_GETBACKLIGHT_ID])) ())
00547 #define LCD_SetRotateScreen(a) ((tCircleFunc1)(Circle_API [LCD_SETROTATESCREEN_ID])) ((u32)(a))
00548 #define LCD_GetRotateScreen() (u32)(((tCircleFunc0)(Circle_API [LCD_GETROTATESCREEN_ID])) ())
00549 #define LCD_SetScreenOrientation(a) ((tCircleFunc1)(Circle_API [LCD_SETSCREENORIENTATION_ID])) ((u32)(a))
00550 #define LCD_GetScreenOrientation() (u32)(((tCircleFunc0)(Circle_API [LCD_GETSCREENORIENTATION_ID])) ())
00551 #define LCD_SetBackLightOff() ((tCircleFunc0)(Circle_API [LCD_SETBACKLIGHT_OFF_ID])) ()
00552 #define LCD_SetBackLightOn() ((tCircleFunc0)(Circle_API [LCD_SETBACKLIGHT_ON_ID])) ()
00553 #define LCD_SetFont(a) ((tCircleFunc1)(Circle_API [LCD_SETFONT_ID])) ((u32)(a))
00554 #define LCD_SetDefaultFont() ((tCircleFunc0)(Circle_API [LCD_SETDEFAULT_ID])) ()
00555 #define LCD_SetOffset(a) ((tCircleFunc1)(Circle_API [LCD_SETOFFSET_ID])) ((u32)(a))
00556 #define LCD_GetScreenWidth() (s16)(((tCircleFunc0)(Circle_API [LCD_GETSCREENWIDTH_ID])) ())
00557 #define LCD_GetScreenHeight() (s16)(((tCircleFunc0)(Circle_API [LCD_GETSCREENHEIGHT_ID])) ())
00558 #define LCD_SetFontDef(a) ((tCircleFunc1)(Circle_API [LCD_SETFONTDEF_ID])) ((u32)(a))
00559 #define LCD_GetFontDef(a) (tFontDef*)((tCircleFunc0)(Circle_API [LCD_GETFONTDEF_ID])) ()
00560 #define LCD_ChangeFont(a) ((tCircleFunc1)(Circle_API [LCD_CHANGEFONT_ID])) ((u8)(a))
00561 #define LCD_SetTransparency(a) ((tCircleFunc1)(Circle_API [LCD_SETTRANSPARENCY_ID])) ((bool)(a))
00562 #define LCD_GetTransparency() (u8)(((tCircleFunc0)(Circle_API [LCD_GETTRANSPARENCY_ID])) ())
00563 #define LCD_FullScreen(a) ((tCircleFunc1)(Circle_API [LCD_FULLSCREEN_ID])) ((u8)(a))
00564
00565
00566
00567
00568
00569 enum Align { LEFT = 0, CENTER = 1, RIGHT = 2 };
00570 #define INVERTED_TEXT 1
00571 #define NORMAL_TEXT 0
00572 #define ALL_SCREEN -1
00573
00575
00576
00577 #define DRAW_SETDEFAULTCOLOR_ID (DRAW_ID + 0)
00578 #define DRAW_CLEAR_ID (DRAW_ID + 1)
00579 #define DRAW_SETIMAGE_ID (DRAW_ID + 2)
00580 #define DRAW_SETIMAGEBW_ID (DRAW_ID + 3)
00581 #define DRAW_SETLOGOBW_ID (DRAW_ID + 4)
00582 #define DRAW_DISPLAYVBAT_ID (DRAW_ID + 5)
00583 #define DRAW_DISPLAYTIME_ID (DRAW_ID + 6)
00584 #define DRAW_DISPLAYSTRING_ID (DRAW_ID + 7)
00585 #define DRAW_DISPLAYSTRINGINVERTED_ID (DRAW_ID + 8)
00586 #define DRAW_GETCHARMAGNICOEFF_ID (DRAW_ID + 9)
00587 #define DRAW_SETCHARMAGNICOEFF_ID (DRAW_ID + 10)
00588 #define DRAW_GETTEXTCOLOR_ID (DRAW_ID + 11)
00589 #define DRAW_SETTEXTCOLOR_ID (DRAW_ID + 12)
00590 #define DRAW_GETBGNDCOLOR_ID (DRAW_ID + 13)
00591 #define DRAW_SETBGNDCOLOR_ID (DRAW_ID + 14)
00592 #define DRAW_LINE_ID (DRAW_ID + 15)
00593 #define DRAW_SETIMAGESEL_ID (DRAW_ID + 16)
00594 #define DRAW_PUTC_ID (DRAW_ID + 17)
00595 #define DRAW_PUTS_ID (DRAW_ID + 18)
00596 #define DRAW_SETCURSOR_POS_ID (DRAW_ID + 19)
00597 #define DRAW_GETCURSOR_POS_ID (DRAW_ID + 20)
00598 #define DRAW_SETCURSORMARGIN_ID (DRAW_ID + 21)
00599 #define DRAW_GETCURSORMARGIN_ID (DRAW_ID + 22)
00600 #define DRAW_DISPLAYSTRINGMODE_ID (DRAW_ID + 23)
00601 #define DRAW_DRAW_CIRCLE_ID (DRAW_ID + 24)
00602 #define DRAW_DRAW_ELLIPSE_ID (DRAW_ID + 25)
00603 #define DRAW_DRAW_POLYGONE_ID (DRAW_ID + 26)
00604
00605
00606 #define DRAW_SetDefaultColor() ((tCircleFunc0)(Circle_API [DRAW_SETDEFAULTCOLOR_ID])) ()
00607 #define DRAW_Clear() ((tCircleFunc0)(Circle_API [DRAW_CLEAR_ID])) ()
00608 #define DRAW_SetImage(a,b,c,d,e) ((tCircleFunc5)(Circle_API [DRAW_SETIMAGE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e))
00609 #define DRAW_SetImageBW(a,b,c,d,e) ((tCircleFunc5)(Circle_API [DRAW_SETIMAGEBW_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e))
00610 #define DRAW_SetLogoBW() ((tCircleFunc0)(Circle_API [DRAW_SETLOGOBW_ID])) ()
00611 #define DRAW_DisplayVbat(a,b) ((tCircleFunc2)(Circle_API [DRAW_DISPLAYVBAT_ID])) ((u32)(a),(u32)(b))
00612 #define DRAW_DisplayTime(a,b) ((tCircleFunc2)(Circle_API [DRAW_DISPLAYTIME_ID])) ((u32)(a),(u32)(b))
00613 #define DRAW_DisplayString(a,b,c,d) ((tCircleFunc4)(Circle_API [DRAW_DISPLAYSTRING_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00614 #define DRAW_DisplayStringInverted(a,b,c,d) ((tCircleFunc4)(Circle_API [DRAW_DISPLAYSTRINGINVERTED_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00615 #define DRAW_GetCharMagniCoeff() (u16)(((tCircleFunc0)(Circle_API [DRAW_GETCHARMAGNICOEFF_ID])) ())
00616 #define DRAW_SetCharMagniCoeff(a) ((tCircleFunc1)(Circle_API [DRAW_SETCHARMAGNICOEFF_ID])) ((u32)(a))
00617 #define DRAW_GetTextColor() (u16)(((tCircleFunc0)(Circle_API [DRAW_GETTEXTCOLOR_ID])) ())
00618 #define DRAW_SetTextColor(a) ((tCircleFunc1)(Circle_API [DRAW_SETTEXTCOLOR_ID])) ((u32)(a))
00619 #define DRAW_GetBGndColor() (u16)(((tCircleFunc0)(Circle_API [DRAW_GETBGNDCOLOR_ID])) ())
00620 #define DRAW_SetBGndColor(a) ((tCircleFunc1)(Circle_API [DRAW_SETBGNDCOLOR_ID])) ((u32)(a))
00621 #define DRAW_Line(a,b,c,d,e) ((tCircleFunc5)(Circle_API [DRAW_LINE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e))
00622 #define DRAW_SetImageSel(a,b,c,d,e,f,g) ((tCircleFunc7)(Circle_API [DRAW_SETIMAGESEL_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e),(u32)(f),(u32)(g))
00623 #define DRAW_Putc(a) ((tCircleFunc1)(Circle_API [DRAW_PUTC_ID])) ((u32)(a))
00624 #define DRAW_Puts(a) ((tCircleFunc1)(Circle_API [DRAW_PUTS_ID])) ((u32)(a))
00625 #define DRAW_SetCursorPos(a,b) ((tCircleFunc2)(Circle_API [DRAW_SETCURSOR_POS_ID])) ((u32)(a),(u32)(b))
00626 #define DRAW_GetCursorPos() (u16)(((tCircleFunc0)(Circle_API [DRAW_GETCURSOR_POS_ID])) ())
00627 #define DRAW_SetCursorMargin(a,b,c,d) ((tCircleFunc4)(Circle_API [DRAW_SETCURSORMARGIN_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00628 #define DRAW_GetCursorMargin(a,b,c,d) ((tCircleFunc4)(Circle_API [DRAW_GETCURSORMARGIN_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d))
00629 #define DRAW_DisplayStringWithMode(a,b,c,d,e,f) ((tCircleFunc6)(Circle_API [DRAW_DISPLAYSTRINGMODE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e),(u32)(f))
00630 #define DRAW_Circle(a,b,c,d,e,f,g) ((tCircleFunc7)(Circle_API [DRAW_DRAW_CIRCLE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e),(u32)(f),(u32)(g))
00631 #define DRAW_Ellipse(a,b,c,d,e,f,g,h) ((tCircleFunc8)(Circle_API [DRAW_DRAW_ELLIPSE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d),(u32)(e),(u32)(f),(u32)(g),(u32)(h))
00632 #define DRAW_Polygon(a,b,c) ((tCircleFunc3)(Circle_API [DRAW_DRAW_POLYGONE_ID])) ((u32)(a),(u32)(b),(u32)(c))
00633
00635
00636
00637
00638
00639
00640
00647 enum BUZZER_mode
00648 {
00649 BUZZER_UNDEF = -1,
00650 BUZZER_OFF = 0,
00651 BUZZER_ON = 1,
00652 BUZZER_SHORTBEEP = 2,
00653 BUZZER_LONGBEEP = 3,
00654 BUZZER_PLAYMUSIC = 4
00655 };
00656
00658
00659
00660 #define BUZZER_BEEP BUZZER_SHORTBEEP
00661
00662
00663 #define BUZZER_SETMODE_ID (BUZZER_ID + 0)
00664 #define BUZZER_GETMODE_ID (BUZZER_ID + 1)
00665 #define BUZZER_PLAY_MUSIC_ID (BUZZER_ID + 2)
00666
00667
00668 #define BUZZER_SetMode(a) ((tCircleFunc1)(Circle_API [BUZZER_SETMODE_ID])) ((u32)(a))
00669 #define BUZZER_GetMode() (enum BUZZER_mode)(((tCircleFunc0)(Circle_API [BUZZER_GETMODE_ID])) ())
00670 #define BUZZER_PlayMusic(a) ((tCircleFunc1)(Circle_API [BUZZER_PLAY_MUSIC_ID])) ((u32)(a))
00671
00672
00674
00675
00676
00677
00678
00679 #define REMOVE_MENU 0x01
00680 #define APP_MENU 0x02
00681 #define MENU_MAXITEM 8
00683
00684
00689 typedef struct
00690 {
00691 const u8* Text;
00692 enum MENU_code( *Fct_Init )( void );
00693 enum MENU_code( *Fct_Manage )( void );
00694 s32 fRemoveMenu;
00695 } tMenuItem;
00696
00701 typedef struct
00702 {
00703 unsigned fdispTitle: 1;
00704 const u8* Title;
00705 s32 NbItems;
00706 s32 LgMax;
00707 s32 XPos;
00708 s32 YPos;
00709 s32 XSize;
00710 s32 YSize;
00711 u32 SelectedItem;
00712 tMenuItem Items[MENU_MAXITEM];
00713 } tMenu;
00714
00721 enum MENU_code
00722 {
00723 MENU_LEAVE = 0,
00724 MENU_CONTINUE = 1,
00725 MENU_REFRESH = 2,
00726 MENU_CHANGE = 3,
00727 MENU_CONTINUE_COMMAND = 4,
00728 MENU_LEAVE_AS_IT = 5,
00729 MENU_RESTORE_COMMAND = 6
00730 };
00731
00733
00734
00735
00736
00737 #define MENU_SET_ID (MENU_ID + 0)
00738 #define MENU_REMOVE_ID (MENU_ID + 1)
00739 #define MENU_QUESTION_ID (MENU_ID + 2)
00740 #define MENU_PRINT_ID (MENU_ID + 3)
00741 #define MENU_CLEAR_CURRENT_COMMAND_ID (MENU_ID + 4)
00742 #define MENU_SET_LEVELTITLE_ID (MENU_ID + 5)
00743 #define MENU_SET_TEXTCOLOR_ID (MENU_ID + 6)
00744 #define MENU_GET_TEXTCOLOR_ID (MENU_ID + 7)
00745 #define MENU_SET_BGNDCOLOR_ID (MENU_ID + 8)
00746 #define MENU_GET_BGNDCOLOR_ID (MENU_ID + 9)
00747 #define MENU_QUIT_ID (MENU_ID + 10)
00748 #define MENU_SET_LEVELINI_ID (MENU_ID + 11)
00749 #define MENU_CLEAR_CURRENT_MENU_ID (MENU_ID + 12)
00750 #define MENU_SET_LEVEL_MGR_ID (MENU_ID + 13)
00751 #define MENU_SET_APP_DIVIDER_ID (MENU_ID + 14)
00752 #define MENU_RESTORE_APP_DIVIDER_ID (MENU_ID + 15)
00753
00754
00755 #define MENU_Set(a) ((tCircleFunc1)(Circle_API [MENU_SET_ID])) ((u32)(a))
00756 #define MENU_Remove() ((tCircleFunc0)(Circle_API [MENU_REMOVE_ID])) ()
00757 #define MENU_Question(a,b) ((tCircleFunc2)(Circle_API [MENU_QUESTION_ID])) ((u32)(a),(bool*)(b))
00758 #define MENU_Print(a) ((tCircleFunc1)(Circle_API [MENU_PRINT_ID])) ((u32)(a))
00759 #define MENU_ClearCurrentCommand() ((tCircleFunc0)(Circle_API [MENU_CLEAR_CURRENT_COMMAND_ID])) ()
00760 #define MENU_SetLevelTitle(a) ((tCircleFunc1)(Circle_API [MENU_SET_LEVELTITLE_ID])) ((u32)(a))
00761 #define MENU_SetTextColor(a) ((tCircleFunc1)(Circle_API [MENU_SET_TEXTCOLOR_ID])) ((u32)(a))
00762 #define MENU_GetTextColor() (color_t)(((tCircleFunc0)(Circle_API [MENU_GET_TEXTCOLOR_ID])) ())
00763 #define MENU_SetBGndColor(a) ((tCircleFunc1)(Circle_API [MENU_SET_BGNDCOLOR_ID])) ((u32)(a))
00764 #define MENU_GetBGndColor() (color_t)(((tCircleFunc0)(Circle_API [MENU_GET_BGNDCOLOR_ID])) ())
00765 #define MENU_Quit() (enum MENU_code)(((tCircleFunc0)(Circle_API [MENU_QUIT_ID])) ())
00766 #define MENU_SetLevel_Ini() (enum MENU_code)(((tCircleFunc0)(Circle_API [MENU_SET_LEVELINI_ID])) ())
00767 #define MENU_ClearCurrentMenu() ((tCircleFunc0)(Circle_API [MENU_CLEAR_CURRENT_MENU_ID])) ()
00768 #define MENU_SetLevel_Mgr(a,b) (enum MENU_code)((tCircleFunc2)(Circle_API [MENU_SET_LEVEL_MGR_ID])) ((u32)(a),(u32)(b))
00769 #define MENU_SetAppliDivider(a) ((tCircleFunc1)(Circle_API [MENU_SET_APP_DIVIDER_ID])) ((u32)(a))
00770 #define MENU_RestoreAppliDivider() ((tCircleFunc0)(Circle_API [MENU_RESTORE_APP_DIVIDER_ID])) ()
00771
00773
00774
00775
00776
00777
00784 enum LED_mode
00785 {
00786 LED_UNDEF = -1,
00787 LED_OFF = 0,
00788 LED_ON = 1,
00789 LED_BLINKING_LF = 2,
00790 LED_BLINKING_HF = 3
00791 };
00792
00799 enum LED_id
00800 {
00801 LED_GREEN = 0,
00802 LED_RED = 1
00803 };
00804
00806
00807
00808
00809
00810 #define LED_SET_ID (LED_ID + 0)
00811
00812
00813 #define LED_Set(a,b) ((tCircleFunc2)(Circle_API [LED_SET_ID])) ((u32)(a),(u32)(b))
00814
00816
00817
00818
00819
00820
00821
00822 #define BKP_SYS1 1
00823 #define BKP_SYS2 2
00824 #define BKP_SYS3 3
00825 #define BKP_SYS4 4
00826 #define BKP_SYS5 5
00827 #define BKP_SYS6 6
00828 #define BKP_SYS7 11
00829 #define BKP_SYS8 12
00830 #define BKP_SYS9 13
00831 #define BKP_SYS10 14
00832 #define BKP_SYS11 15
00833 #define BKP_SYS12 16
00834 #define BKP_SYS13 17
00835 #define BKP_SYS14 18
00837 #define BKP_USER1 7
00838 #define BKP_USER2 8
00839 #define BKP_USER3 9
00840 #define BKP_USER4 10
00842
00843
00844
00845 #define RTC_SET_TIME_ID (RTC_ID + 0)
00846 #define RTC_GET_TIME_ID (RTC_ID + 1)
00847 #define RTC_DISPLAY_TIME_ID (RTC_ID + 2)
00848
00849
00850 #define RTC_SetTime(a,b,c) ((tCircleFunc3)(Circle_API [RTC_SET_TIME_ID])) ((u32)(a),(u32)(b),(u32)(c))
00851 #define RTC_GetTime(a,b,c) ((tCircleFunc3)(Circle_API [RTC_GET_TIME_ID])) ((u32)(a),(u32)(b),(u32)(c))
00852 #define RTC_DisplayTime() ((tCircleFunc0)(Circle_API [RTC_DISPLAY_TIME_ID])) ()
00853
00855
00856
00857
00858
00859 #define TOOLBAR_MAXITEMS 4
00860
00861
00866 typedef struct
00867 {
00868 const u16* icon;
00869 enum MENU_code( *Fct_Manage )( void );
00870 } tToolbarItem;
00871
00876 typedef struct
00877 {
00878 index_t NbItems;
00879 u32 FirstDispItem;
00880 tToolbarItem Items[TOOLBAR_MAXITEMS];
00881 } tToolbar;
00882
00883
00885
00886
00887 #define TOOLBAR_SET_ID (TOOLBAR_ID + 0)
00888 #define TOOLBAR_SET_DEFAULT_TOOLBAR_ID (TOOLBAR_ID + 1)
00889 #define TOOLBAR_CHANGE_BUTTON_ID (TOOLBAR_ID + 2)
00890
00891
00892 #define TOOLBAR_Set(a) (((tCircleFunc1)(Circle_API [TOOLBAR_SET_ID])) ((u32)(a)))
00893 #define TOOLBAR_SetDefaultToolbar() ((tCircleFunc0)(Circle_API [TOOLBAR_SET_DEFAULT_TOOLBAR_ID])) ()
00894 #define TOOLBAR_ChangeButton(a,b,c) (((tCircleFunc3)(Circle_API [TOOLBAR_CHANGE_BUTTON_ID])) ((u32)(a),(u32)(b),(u32)(c) ))
00895
00896
00897
00898
00899
00900 #define LIST_MAXITEM 64
00901
00902
00903 typedef enum {TS_NORMAL, TS_DRAWING, TS_CALIBRATION} TOUCHSCR_Mode_enum;
00904
00909 typedef struct
00910 {
00911 const u8* Text;
00912 } tListItem;
00913
00918 typedef struct
00919 {
00920 unsigned fdispTitle : 1;
00921 const u8* Title;
00922 s32 NbItems;
00923 s32 LgMax;
00924 s32 XPos, YPos;
00925 s32 XSize, YSize;
00926 s32 NbDisp;
00927 u32 SelectedItem;
00928 u32 FirstDisplayItem;
00929 tListItem Items[LIST_MAXITEM];
00930 } tList;
00931
00933
00934
00935 #define TOUCHSCR_GET_POS_ID (TOUCHSCR_ID + 0)
00936 #define TOUCHSCR_GET_ABS_POS_ID (TOUCHSCR_ID + 1)
00937 #define TOUCHSCR_IS_PRESSED_ID (TOUCHSCR_ID + 2)
00938 #define TOUCHSCR_GET_MODE_ID (TOUCHSCR_ID + 3)
00939 #define TOUCHSCR_SET_SENS_ID (TOUCHSCR_ID + 4)
00940 #define LIST_MANAGER_ID (TOUCHSCR_ID + 5)
00941 #define LIST_SET_ID (TOUCHSCR_ID + 6)
00942 #define TOUCHSCR_GET_POSX_ID (TOUCHSCR_ID + 7)
00943 #define TOUCHSCR_GET_POSY_ID (TOUCHSCR_ID + 8)
00944
00945
00946 #define TOUCHSCR_GetPos() (u16) (((tCircleFunc0)(Circle_API [TOUCHSCR_GET_POS_ID])) () )
00947 #define TOUCHSCR_GetAbsPos() (u16) (((tCircleFunc0)(Circle_API [TOUCHSCR_GET_ABS_POS_ID])) () )
00948 #define TOUCHSCR_IsPressed() (bool) (((tCircleFunc0)(Circle_API [TOUCHSCR_IS_PRESSED_ID])) () )
00949 #define TOUCHSCR_GetMode() (TOUCHSCR_Mode_enum) (((tCircleFunc0)(Circle_API [TOUCHSCR_GET_MODE_ID])) () )
00950 #define TOUCHSCR_SetSensibility(a) (((tCircleFunc1)(Circle_API [TOUCHSCR_SET_SENS_ID])) ((u32)(a)) )
00951 #define LIST_Manager() (s32) (((tCircleFunc0)(Circle_API [LIST_MANAGER_ID])) () )
00952 #define LIST_Set(a,b,c,d) (((tCircleFunc4)(Circle_API [LIST_SET_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d)) )
00953 #define TOUCHSCR_GetPosX() (s32) (((tCircleFunc0)(Circle_API [TOUCHSCR_GET_POSX_ID])) () )
00954 #define TOUCHSCR_GetPosY() (s32) (((tCircleFunc0)(Circle_API [TOUCHSCR_GET_POSY_ID])) () )
00955
00956
00958
00959
00960
00961
00962 typedef enum { OFF, ON} ON_OFF_enum ;
00963 typedef enum { AUDIO_MODE, VOICE_MODE, AUDIO_CIRCULAR_MODE, VOICE_CIRCULAR_MODE} AUDIO_DeviceMode_enum;
00964 typedef enum { NO_SOUND, IS_PLAYING } AUDIO_Playback_status_enum;
00965 typedef enum { NO_RECORD, IS_RECORDING } AUDIO_Recording_status_enum ;
00966 typedef enum { LG_8_BITS, LG_16_BITS} AUDIO_Length_enum;
00967 typedef enum { FRQ_48KHZ , FRQ_44KHZ , FRQ_22KHZ , FRQ_16KHZ , FRQ_8KHZ} AUDIO_Frequency_enum;
00968 typedef enum { MONO, STEREO} AUDIO_Format_enum;
00969 typedef enum { FULL = 0, LOW_EMPTY = 1, HIGH_EMPTY = 2 } AUDIO_PlaybackBuffer_Status ;
00970 typedef enum { EMPTY = 0, LOW_FULL = 1, HIGH_FULL = 2 } AUDIO_RecordBuffer_Status ;
00971 typedef s8 sound_type;
00972
00974
00975
00976 #define AUDIO_SET_MODE_ID (AUDIO_ID + 0)
00977 #define AUDIO_GET_MODE_ID (AUDIO_ID + 1)
00978 #define AUDIO_PLAY_ID (AUDIO_ID + 2)
00979 #define AUDIO_SPEAKER_ONOFF_ID (AUDIO_ID + 3)
00980 #define AUDIO_MUTE_ONOFF_ID (AUDIO_ID + 4)
00981 #define AUDIO_ISMUTE_ID (AUDIO_ID + 5)
00982 #define AUDIO_INC_VOLUME_ID (AUDIO_ID + 6)
00983 #define AUDIO_DEC_VOLUME_ID (AUDIO_ID + 7)
00984 #define AUDIO_PLAYBACK_GETSTATUS_ID (AUDIO_ID + 8)
00985 #define AUDIO_RECORD_GETSTATUS_ID (AUDIO_ID + 9)
00986 #define AUDIO_RECORD_ID (AUDIO_ID + 10)
00987 #define AUDIO_READ_REGISTER_ID (AUDIO_ID + 11)
00988 #define AUDIO_WRITE_REGISTER_ID (AUDIO_ID + 12)
00989
00990 #define AUDIO_SET_BUFFER_SIZE_ID (AUDIO2_ID + 0)
00991 #define AUDIO_RECORD_BUFF_GETSTATUS_ID (AUDIO2_ID + 1)
00992 #define AUDIO_RECORD_STOP_ID (AUDIO2_ID + 2)
00993 #define AUDIO_PLAY_BUFF_GETSTATUS_ID (AUDIO2_ID + 3)
00994 #define AUDIO_PLAY_STOP_ID (AUDIO2_ID + 4)
00995
00996
00997 #define AUDIO_SetMode(a,b,c,d) (((tCircleFunc4)(Circle_API [AUDIO_SET_MODE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d)))
00998
00999
01000
01001 #define AUDIO_GetMode() (AUDIO_DeviceMode_enum)(((tCircleFunc0)(Circle_API [AUDIO_GET_MODE_ID])) () )
01002 #define AUDIO_Play(a,b) ((tCircleFunc2)(Circle_API[AUDIO_PLAY_ID])) ((u32) (a), (u32) (b))
01003 #define AUDIO_SPEAKER_OnOff(a) ((tCircleFunc1)(Circle_API [AUDIO_SPEAKER_ONOFF_ID])) ((u32) (a))
01004 #define AUDIO_MUTE_OnOff(a) ((tCircleFunc1)(Circle_API [AUDIO_MUTE_ONOFF_ID])) ((u32) (a))
01005 #define AUDIO_IsMute() (bool)(((tCircleFunc0)(Circle_API [AUDIO_ISMUTE_ID])) () )
01006 #define AUDIO_Inc_Volume(a) ((tCircleFunc1)(Circle_API [AUDIO_INC_VOLUME_ID])) ((u32) (a))
01007 #define AUDIO_Dec_Volume(a) ((tCircleFunc1)(Circle_API [AUDIO_DEC_VOLUME_ID])) ((u32) (a))
01008 #define AUDIO_Playback_GetStatus() (AUDIO_Playback_status_enum)(((tCircleFunc0)(Circle_API [AUDIO_PLAYBACK_GETSTATUS_ID])) () )
01009 #define AUDIO_Recording_GetStatus() (AUDIO_Recording_status_enum)(((tCircleFunc0)(Circle_API [AUDIO_RECORD_GETSTATUS_ID])) () )
01010 #define AUDIO_Record(a,b) ((tCircleFunc2)(Circle_API[AUDIO_RECORD_ID])) ((u32) (a), (u32) (b))
01011 #define AUDIO_ReadRegister(a) (u8)((tCircleFunc1)(Circle_API[AUDIO_READ_REGISTER_ID])) ((u32) (a))
01012 #define AUDIO_WriteRegister(a,b) ((tCircleFunc2)(Circle_API[AUDIO_WRITE_REGISTER_ID])) ((u32) (a), (u32) (b))
01013 #define AUDIO_RecordBuffer_GetStatus(a) (AUDIO_RecordBuffer_Status)((tCircleFunc1)(Circle_API[AUDIO_RECORD_BUFF_GETSTATUS_ID])) ((u32) (a))
01014 #define AUDIO_Record_Stop() ((tCircleFunc0)(Circle_API [AUDIO_RECORD_STOP_ID])) ()
01015 #define AUDIO_PlaybackBuffer_GetStatus(a) (AUDIO_PlaybackBuffer_Status)((tCircleFunc1)(Circle_API[AUDIO_PLAY_BUFF_GETSTATUS_ID])) ((u32) (a))
01016 #define AUDIO_Playback_Stop() ((tCircleFunc0)(Circle_API [AUDIO_PLAY_STOP_ID])) ()
01017 #define AUDIO_SetLocalBufferSize(a) ((tCircleFunc1)(Circle_API [AUDIO_SET_BUFFER_SIZE_ID])) ((u32) (a))
01018
01020
01021
01022
01023
01024
01025
01026
01028
01029
01030
01031
01032 #define SHUTDOWN_ACTION_ID (SHUTDOWN_ID + 0)
01033
01034
01035 #define SHUTDOWN_Action() ((tCircleFunc0)(Circle_API [SHUTDOWN_ACTION_ID])) ()
01036
01038
01039
01040
01041
01042
01043 #define MAX_PATH_LENGTH 200
01044
01045
01046
01047 #define FS_OK 0 // no error
01048 #define FS_EOF 1 // end of file (not an error)
01049 #define FS_WRITEPROT 2 // volume is write protected
01050 #define FS_NOTFOUND 3 // path or file not found
01051 #define FS_PATHLEN 4 // path too long
01052 #define FS_ALLOCNEW 5 // must allocate new directory cluster
01053 #define FS_ERRMISC 0xffffffff // generic error
01054
01055
01056
01057 #define FS_READ 1 // read-only
01058 #define FS_WRITE 2 // write-only
01059 #define FS_CREATEDIR (2+4) // create dir (NTRF100521)
01060
01061
01062
01063 #define FS_ATTR_READ_ONLY 0x01
01064 #define FS_ATTR_HIDDEN 0x02
01065 #define FS_ATTR_SYSTEM 0x04
01066 #define FS_ATTR_VOLUME_ID 0x08
01067 #define FS_ATTR_DIRECTORY 0x10
01068 #define FS_ATTR_ARCHIVE 0x20
01069 #define FS_ATTR_LONG_NAME (FS_ATTR_READ_ONLY | FS_ATTR_HIDDEN | FS_ATTR_SYSTEM | FS_ATTR_VOLUME_ID)
01070
01071
01072
01073 typedef enum STORAGE_device
01074 {
01075 MMCSD_SDIO,
01076 INTERNAL_FLASH
01077 } eSTORAGE_device;
01078
01083 typedef struct _tagVOLINFO
01084 {
01085 u8 unit;
01086 u8 filesystem;
01087
01088
01089
01090
01091
01092
01093
01094
01095 u8 label[12];
01096 u32 startsector;
01097 u8 secperclus;
01098 u16 reservedsecs;
01099 u32 numsecs;
01100 u32 secperfat;
01101 u16 rootentries;
01102
01103 u32 numclusters;
01104
01105
01106 u32 fat1;
01107 u32 rootdir;
01108 u32 dataarea;
01109 } VOLINFO, *PVOLINFO;
01110
01111
01112
01129 typedef struct _tagDIRENT
01130 {
01131 u8 name[11];
01132 u8 attr;
01133 u8 reserved;
01134 u8 crttimetenth;
01135 u8 crttime_l;
01136 u8 crttime_h;
01137 u8 crtdate_l;
01138 u8 crtdate_h;
01139 u8 lstaccdate_l;
01140 u8 lstaccdate_h;
01141 u8 startclus_h_l;
01142 u8 startclus_h_h;
01143 u8 wrttime_l;
01144 u8 wrttime_h;
01145 u8 wrtdate_l;
01146 u8 wrtdate_h;
01147 u8 startclus_l_l;
01148 u8 startclus_l_h;
01149 u8 filesize_0;
01150 u8 filesize_1;
01151 u8 filesize_2;
01152 u8 filesize_3;
01153 } DIRENT, *PDIRENT;
01154
01155
01160 typedef struct _tagDIRINFO
01161 {
01162 u32 currentcluster;
01163 u8 currentsector;
01164 u8 currententry;
01165 u8* scratch;
01166 u8 flags;
01167 } DIRINFO, *PDIRINFO;
01168
01173 typedef struct _tagFILEINFO
01174 {
01175 PVOLINFO volinfo;
01176 u32 dirsector;
01177 u8 diroffset;
01178 u8 mode;
01179 u32 firstcluster;
01180 u32 filelen;
01181
01182 u32 cluster;
01183 u32 pointer;
01184 } FILEINFO, *PFILEINFO;
01185
01186
01188
01189
01190
01191 #define FS_MOUNT_ID (FS_ID+0)
01192 #define FS_UNMOUNT_ID (FS_ID+1)
01193 #define FS_OPENFILE_ID (FS_ID+2)
01194 #define FS_READFILE_ID (FS_ID+3)
01195 #define FS_WRITEFILE_ID (FS_ID+4)
01196 #define FS_CLOSE_ID (FS_ID+5)
01197 #define FS_SEEK_ID (FS_ID+6)
01198 #define FS_DELETE_ID (FS_ID+7)
01199 #define FS_GET_NEXT_ENTRY_ID (FS_ID+8)
01200 #define FS_OPEN_DIRECTORY_ID (FS_ID+9)
01201 #define FS_GET_VOLUME_INFO_ID (FS_ID+10)
01202 #define FS_EXPLORER_INI_ID (FS_ID+11)
01203 #define FS_EXPLORER_ID (FS_ID+12)
01204 #define FS_GET_SD_CURRENT_PATH_ID (FS_ID+13)
01205 #define FS_GET_SD_VOLINFO_ID (FS_ID+14)
01206 #define FS_GET_PATH_FILTER_ID (FS_ID+15)
01207 #define FS_SET_PATH_FILTER_ID (FS_ID+16)
01208
01209
01210 #define FS_Mount(a) (u32)((tCircleFunc1)(Circle_API [FS_MOUNT_ID])) ((u32) (a))
01211 #define FS_Unmount(a) (u32)((tCircleFunc1)(Circle_API [FS_UNMOUNT_ID])) ((u32) (a))
01212 #define FS_OpenFile(a,b,c,d) (u32)(((tCircleFunc4)(Circle_API [FS_OPENFILE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d)) )
01213 #define FS_ReadFile(a,b,c,d) (u32)(((tCircleFunc4)(Circle_API [FS_READFILE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d)) )
01214 #define FS_WriteFile(a,b,c,d) (u32)(((tCircleFunc4)(Circle_API [FS_WRITEFILE_ID])) ((u32)(a),(u32)(b),(u32)(c),(u32)(d)) )
01215 #define FS_Close(a) (u32)((tCircleFunc1)(Circle_API [FS_CLOSE_ID])) ((u32) (a))
01216 #define FS_Seek(a,b) ((tCircleFunc2)(Circle_API[FS_SEEK_ID])) ((u32) (a), (u32) (b))
01217 #define FS_Delete(a,b) (u32)((tCircleFunc2)(Circle_API[FS_DELETE_ID])) ((u32) (a), (u32) (b))
01218 #define FS_GetNextEntry(a,b,c) (u32)(((tCircleFunc3)(Circle_API [FS_GET_NEXT_ENTRY_ID])) ((u32)(a),(u32)(b),(u32)(c) ))
01219 #define FS_OpenDirectory(a,b,c) (u32)(((tCircleFunc3)(Circle_API [FS_OPEN_DIRECTORY_ID])) ((u32)(a),(u32)(b),(u32)(c) ))
01220 #define FS_GetVolumeInfo(a,b,c) (u32)(((tCircleFunc3)(Circle_API [FS_GET_VOLUME_INFO_ID])) ((u32)(a),(u32)(b),(u32)(c) ))
01221 #define FS_Explorer_Ini() (u32)(((tCircleFunc0)(Circle_API [FS_EXPLORER_INI_ID])) () )
01222 #define FS_Explorer() (u32)(((tCircleFunc0)(Circle_API [FS_EXPLORER_ID])) () )
01223 #define FS_GetSDCardCurrentPath() (u32)(((tCircleFunc0)(Circle_API [FS_GET_SD_CURRENT_PATH_ID])) () )
01224 #define FS_GetSDCardVolInfo() (u32)(((tCircleFunc0)(Circle_API [FS_GET_SD_VOLINFO_ID])) () )
01225 #define FS_GetPathFilter() (u32)(((tCircleFunc0)(Circle_API [FS_GET_PATH_FILTER_ID])) () )
01226 #define FS_SetPathFilter(a) ((tCircleFunc1)(Circle_API [FS_SET_PATH_FILTER_ID])) ((u32) (a))
01227
01229
01230
01231 typedef void ( *tAppPtrMgr )( coord_t sposX, coord_t sposY );
01232
01233
01234 #endif