/******************************************************************************/ /** * * \file osdgame_if.h * * * \brief The header file for the declaration of the osd game Interface API Functions and Data Structures. \n * * \note Copyright (c) 2009 Sunmedia Technology Co., Ltd. \n * All rights reserved. * * * author xy.zhu@sunmedia.com.cn * ******************************************************************************/ #ifndef _OSDGAME_IF_H #define _OSDGAME_IF_H #ifdef OSDGAME_IF_IMPLEMENTATION #define EBD_IF_EXTERN #else #define EBD_IF_EXTERN extern #endif #define USER_NAME_LEN (4) #define DEFAULT_SCORE_LIST_NUM (5) /* For the boxman game. The Apis. */ #ifdef CONFIG_OSDGAME_BOXMAN_SUPPORT #define BOX_MAN_SYSINFO_SIZE (152) #else #define BOX_MAN_SYSINFO_SIZE (0) #endif #ifdef CONFIG_OSDGAME_TETRIS_SUPPORT #define RUSSIA_SYSINFO_SIZE (1 + 1 + 1 + 1+ USER_NAME_LEN * DEFAULT_SCORE_LIST_NUM + 2 * DEFAULT_SCORE_LIST_NUM + 2)//speed, difficult, listnum, aligned, score_list, aligned #else #define RUSSIA_SYSINFO_SIZE (0) #endif #ifdef CONFIG_OSDGAME_HITRAT_SUPPORT #define HITRAT_SYSINFO_SIZE (1 + 1 + 2+ USER_NAME_LEN * DEFAULT_SCORE_LIST_NUM + 2 * DEFAULT_SCORE_LIST_NUM + 2)//level, list_num, aligner, score_list, aligned #else #define HITRAT_SYSINFO_SIZE (0) #endif #ifdef CONFIG_OSDGAME_SUDOKU_SUPPORT #define SUDOKU_SYSINFO_SIZE (1 + 1 + 2)//Level, count, aligned #else #define SUDOKU_SYSINFO_SIZE (0) #endif #ifdef CONFIG_OSDGAME_GOBANG_SUPPORT #define GOBANG_SYSINFO_SIZE (4)// Reserved 4 bytes for future #else #define GOBANG_SYSINFO_SIZE (0) #endif #define OSDGAME_USERDATE_LEN (RUSSIA_SYSINFO_SIZE + BOX_MAN_SYSINFO_SIZE + HITRAT_SYSINFO_SIZE + SUDOKU_SYSINFO_SIZE + GOBANG_SYSINFO_SIZE) #define MESSAGE_QUEUE_TYPE_GAMEDRV (1<<25) typedef enum { GAME_RESPOND_N32GAME_RUNNING_DONE = 1, GAME_RESPOND_N32GAME_RUNNING_MPG, GAME_RESPOND_N32GAME_RUNNING_MPG_DONE, GAME_RESPOND_NESGAME_RUNNING_DONE, GAME_RESPOND_NESGAME_HOMEMENU_DONE, GAME_RESPOND_GOTO_HOMEMENU, GAME_RESPOND_NESGAME_POWER_DONE, GAME_RESPOND_NESGAME_EJECT_DONE, GAME_RESPOND_OSDGAME_RUNNING_DONE, GAME_RESPOND_MDGAME_RUNNING_DONE, GAME_RESPOND_RUNNING_EBOOK, GAME_RESPOND_RUNNING_KARAOKE, GAME_RESPOND_RUNNING_KARAOKE_NES, GAME_RESPOND_RUNNING_DONE_BY_READ_ERROR, GAME_RESPOND_RUNNING_DONE_BY_UNSUPPORT_GAME, GAME_RESPOND_OSDGAME_NAME_EDIT, GAME_RESPOND_OSDGAME_EXIT_GAME, GAME_RESPOND_MAX }GAME_RESPOND_Message_t; typedef enum _OsdGame_Type_e { OSDGAMA_GOBANG = 1, OSDGAMA_SUDOKU, OSDGAMA_BOXMAN, OSDGAMA_RUSSIA, OSDGAMA_HITRAT, } OsdGame_Type_e; typedef enum _OSDGAME_NATIVEGAME_E_ { NUM_EVENT_0 = 0, NUM_EVENT_1, NUM_EVENT_2, NUM_EVENT_3, NUM_EVENT_4, NUM_EVENT_5, NUM_EVENT_6, NUM_EVENT_7, NUM_EVENT_8, NUM_EVENT_9, LEFT_EVENT, RIGHT_EVENT, UP_EVENT, DN_EVENT, PAGEUP_EVENT, PAGEDN_EVENT, SELECT_EVENT, RETURN_EVENT, UPDATE_UI_EVENT, UPDATE_PIC_EVENT, TIMER_EVENT, UPDATE_TIMER_COUNT, EXIT_EVENT, DELETE_EVENT, BOSS_QUEUE_EVENT, MAX_EVENT_NUM }OSDGAME_NATIVEGAME_E; #define OSDGAME_MESSAGE_MASK (0x0000FFFF) #define OSDGAME_MESSAGE_TYPE_MASK (0xFFFF0000) #define OSDGAME_GLOBAL_EVENT_TYPE (1<<31) #define OSDGAME_INTERNAL_MESSAGE_TYPE (1<<28) #define OSDGAME_TASKCREATE_FAIL 0 #define OSDGAME_TASKCREATE_SUCCESS 1 typedef struct _OSDGAME_MessageBody_t { UINT32 dMessage; UINT32 dParam; UINT32 dParam2; } OSDGAME_MessageBody_t; #define OSDGAME_APP_MESSAGE_BODY_SIZE (sizeof(OSDGAME_MessageBody_t)) typedef int (*OSD_Game_EventCallback) (GAME_RESPOND_Message_t dGMWCallbackType, UINT32 dParam); extern OSD_Game_EventCallback g_pfOsdGameCallback; typedef struct _OsdGameParaStructure_t { UINT8 u8FontSize; bool bIsFullScreen; OsdGame_Type_e bOsdType; GL_Queue_t* pIRMSGQueueHandle; OSD_Game_EventCallback pfEvenCallback; } OsdGameParaStructure_t; /****************************IR PART***********************************************/ /**************************** return value define*************************************/ #define OSDGAME_IF_SUCCESSFUL (0) #define OSDGAME_IF_FAIL (-1) #define OSDGAME_IF_ERROE_PROCESS (-2) #define OSDGAME_IF_ERROE_QUEUE_CREAT_FAIL (-3) /****************************FUNCTION PART****************************************/ /**************************************************************************************/ /******************************************************************************************/ /**fun: int OsdGame_Initilaize(OsdGame_Type_e bOsdType,GL_Queue_t* pIRMSGQueueHandle, GL_Queue_t* pNavQueueHandle); * * \brief Play OsdGame API * \param bOsdType:OsdGame type:Gobang Sudoku Hitrat Russia Boxman * \param pIRMSGQueueHandle: ir_event QueueHandle * \param pfEvenCallback: game driver Respond MSG Handle * * \return OSDGAME_IF_SUCCESSFUL if the gamedriver is initialized. * * \note You must creat two message queue (IRMsgHandle & NavMsgHandle) and set this message handle to gamedriver.\n * When game is running,you must send Ir event message to pIRMSGQueueHandle,receive nav message from pNavQueueHandle.\n * The message body definetion defined in this *.h file too. * *\author xy.zhu@sunmedia.com.cn ******************************************************************************************/ /*******************************************************************************************************************/ EBD_IF_EXTERN int OsdGame_Initilaize(OsdGameParaStructure_t* tParaStructure); EBD_IF_EXTERN UINT8 *OsdGame_GetGameDataAddr(void);//jgliu 2009-12-08 add for game saving EBD_IF_EXTERN void OsdGame_Reset(void);//jgliu 2009-12-08 add for game saving EBD_IF_EXTERN void OsdGame_Exit(void);//2010/01/12 yhong 0077217 When Timer Wake at Game, System block. EBD_IF_EXTERN void OsdGame_SetFontBmpSize(UINT8 u8Width,UINT8 u8Height); EBD_IF_EXTERN int OsdGame_GetExitTime(void);//jgliu 2010-06-24 add for mantis:92771 EBD_IF_EXTERN void OsdGame_ExitGame(void); //fanzhang add 2010/09/08 for mantis bug 104051 start { EBD_IF_EXTERN void OsdGame_SetTransparency(UINT8 bValue); EBD_IF_EXTERN UINT8 OsdGame_GetTransparency(void); //fanzhang add 2010/09/08 for mantis bug 104051 end } #endif //_OSDGAME_IF_H