?? aphearsay.c
字號:
{EVENT_KEY, MVK_ENTER, (FPGUIHANDLEEVENT)HearSayEvent_KeyEnter},
{EVENT_KEY, MVK_ESC, (FPGUIHANDLEEVENT)HearSayEvent_KeyEsc},
{EVENT_KEY, MVK_UP, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},
{EVENT_KEYREPEAT, MVK_UP, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},
{EVENT_KEYUP, MVK_UP, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},
{EVENT_KEY, MVK_DOWN, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//Down},
{EVENT_KEYREPEAT, MVK_DOWN, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//Down},
{EVENT_KEYUP, MVK_DOWN, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//Down},
{EVENT_KEY, MVK_LEFT, (FPGUIHANDLEEVENT)HearSayEvent_KeyLeftRight},
{EVENT_KEYREPEAT, MVK_LEFT, (FPGUIHANDLEEVENT)HearSayEvent_KeyLeftRight},
//// {EVENT_KEYUP, MVK_LEFT, (FPGUIHANDLEEVENT)HearSayEvent_KeyLeftRight},
{EVENT_KEY, MVK_RIGHT, (FPGUIHANDLEEVENT)HearSayEvent_KeyLeftRight},
{EVENT_KEYREPEAT, MVK_RIGHT, (FPGUIHANDLEEVENT)HearSayEvent_KeyLeftRight},
//// {EVENT_KEYUP, MVK_RIGHT, (FPGUIHANDLEEVENT)HearSayEvent_KeyLeftRight},
{EVENT_KEY, MVK_PAGEUP, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//PgUp},
{EVENT_KEYREPEAT, MVK_PAGEUP, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//PgUp},
{EVENT_KEYUP, MVK_PAGEUP, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//PgUp},
{EVENT_KEY, MVK_PAGEDOWN, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//PgDn},
{EVENT_KEYREPEAT, MVK_PAGEDOWN, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//PgDn},
{EVENT_KEYUP, MVK_PAGEDOWN, (FPGUIHANDLEEVENT)HearSayEvent_KeyUp},//PgDn},
{EVENT_KEY, 'A', (FPGUIHANDLEEVENT)HearSayEvent_KeyAB},
// {EVENT_KEYUP, 'A', (FPGUIHANDLEEVENT)HearSayEvent_KeyA},
{EVENT_KEY, 'a', (FPGUIHANDLEEVENT)HearSayEvent_KeyAB},
// {EVENT_KEYUP, 'a', (FPGUIHANDLEEVENT)HearSayEvent_KeyA},
{EVENT_KEY, 'b', (FPGUIHANDLEEVENT)HearSayEvent_KeyAB},
// {EVENT_KEYUP, 'b', (FPGUIHANDLEEVENT)HearSayEvent_KeyB},
{EVENT_KEY, 'B', (FPGUIHANDLEEVENT)HearSayEvent_KeyAB},
// {EVENT_KEYUP, 'B', (FPGUIHANDLEEVENT)HearSayEvent_KeyB},
{EVENT_KEY, 's', (FPGUIHANDLEEVENT)HearSayEvent_KeySet},
// {EVENT_KEYUP, 's', (FPGUIHANDLEEVENT)HearSayEvent_KeySet},
{EVENT_KEY, 'S', (FPGUIHANDLEEVENT)HearSayEvent_KeySet},
// {EVENT_KEYUP, 'S', (FPGUIHANDLEEVENT)HearSayEvent_KeySet},
//-------------
// Command area
{EVENT_COMMAND, CM_SDCARD_PULLOUT, (FPGUIHANDLEEVENT)HearSayEvent_SDPullout},
// {EVENT_COMMAND, HEARSAY_BTN1_CMD, (FPGUIHANDLEEVENT)HearSayEvent_C1}, // Play /pause
// {EVENT_COMMAND, HEARSAY_BTN2_CMD, (FPGUIHANDLEEVENT)HearSayEvent_C1}, // Stop
{EVENT_COMMAND, HEARSAY_BTN1_CMD, (FPGUIHANDLEEVENT)HearSayEvent_CPlay}, // Play /pause
// {EVENT_COMMAND, 'Q', (FPGUIHANDLEEVENT)HearSayEvent_CPlay}, // Play /pause
// {EVENT_COMMAND, 'q', (FPGUIHANDLEEVENT)HearSayEvent_CPlay}, // Play /pause
{EVENT_COMMAND, HEARSAY_BTN7_CMD, (FPGUIHANDLEEVENT)HearSayEvent_CStop}, // Stop
// {EVENT_COMMAND, 'W', (FPGUIHANDLEEVENT)HearSayEvent_CStop}, // Stop
// {EVENT_COMMAND, 'w', (FPGUIHANDLEEVENT)HearSayEvent_CStop}, // Stop
{EVENT_COMMAND, HEARSAY_BTN2_CMD, (FPGUIHANDLEEVENT)HearSayEvent_C2}, // Repreat
// {EVENT_COMMAND, 'E', (FPGUIHANDLEEVENT)HearSayEvent_C2}, // Repreat
// {EVENT_COMMAND, 'e', (FPGUIHANDLEEVENT)HearSayEvent_C2}, // Repreat
{EVENT_COMMAND, HEARSAY_BTN4_CMD, (FPGUIHANDLEEVENT)HearSayEvent_C4}, // jump
// {EVENT_COMMAND, 'R', (FPGUIHANDLEEVENT)HearSayEvent_C4}, // jump
// {EVENT_COMMAND, 'r', (FPGUIHANDLEEVENT)HearSayEvent_C4}, // jump
{EVENT_COMMAND, HEARSAY_BTN5_CMD, (FPGUIHANDLEEVENT)HearSayEvent_C5},
{EVENT_COMMAND, HEARSAY_BTN6_CMD, (FPGUIHANDLEEVENT)HearSayEvent_C6},
{EVENT_COMMAND, CMD_HS_OPENFAIL, (FPGUIHANDLEEVENT)HearSayEvent_OpenFail},
{EVENT_COMMAND, CMD_HS_STOP, (FPGUIHANDLEEVENT)HearSayEvent_PlayStop},
{NULL, NULL, NULL }
};
/****************************************************************************/
/* FUNCTION: INT HearSayEventProc( APGUI_STRUCT *pGui, UINT uEvent, */
/* UINT uParam ) */
/* DESCRIPTION:HearSay應用事件處理函數 */
/* INPUTS: NONE */
/* OUTPUTS: NONE */
/* RETURN: 事件處理結束后的的返回值 */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-01-26 First Issue */
/****************************************************************************/
INT HearSayEventProc( APGUI_STRUCT *pGui, UINT uEvent, UINT uParam )
{
INT nRet;
nRet = HanldeEventTable( pGui, uEvent, uParam,
(APEV_HANDLE_TABLE*)g_aHearSayEvTable );
if ( nRet == 0 )
nRet = HanldeEventTableEx( pGui, uEvent, uParam,
(APEV_HANDLE_TABLE_EX*)g_aHearSayEvTableEx );
return nRet;
}
/****************************************************************************/
/* FUNCTION: INT HearSayEvent_Initialize( APGUI_STRUCT *pGui, */
/* UINT uEvent, UINT uParam ) */
/* DESCRIPTION:HearSay應用初始化事件處理 */
/* INPUTS: NONE */
/* OUTPUTS: NONE */
/* RETURN: 運行初始化事件的返回值 */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-01-26 First Issue */
/****************************************************************************/
INT HearSayEvent_Initialize( APGUI_STRUCT *pGui, UINT uEvent, UINT uParam )
{
//===================================
// SHow One Message for Initialize
#ifndef _WIN32
//---------
{
#define APHS_INIT_MSG_W (12*8+8)
#define APHS_INIT_MSG_H 20
#define APHS_INIT_MSG_X ((LCD_SCREEN_WIDTH-APHS_INIT_MSG_W)/2)
#define APHS_INIT_MSG_Y ((LCD_SCREEN_HEIGHT-APHS_INIT_MSG_H)/2)
#define APHS_INIT_MSG_TX (APHS_INIT_MSG_X+4)
#define APHS_INIT_MSG_TY (APHS_INIT_MSG_Y+4)
#define APHS_INIT_MSG ((const char *)" 正在打開......")
GraphDisableRefresh();
GraphClearRect( APHS_INIT_MSG_X,APHS_INIT_MSG_Y,
APHS_INIT_MSG_X+APHS_INIT_MSG_W-1,
APHS_INIT_MSG_Y+APHS_INIT_MSG_H-1);
GraphDrawRect( APHS_INIT_MSG_X,APHS_INIT_MSG_Y,
APHS_INIT_MSG_X+APHS_INIT_MSG_W-1,
APHS_INIT_MSG_Y+APHS_INIT_MSG_H-1);
GraphDrawText( APHS_INIT_MSG_TX,APHS_INIT_MSG_TY,
0, 0, (UINT8*)APHS_INIT_MSG);
GraphEnableRefresh();
}
#endif
//==================-----------
SetGuiHelp(HEARSAY_HELP_ID);
g_RrParam.hRrMstFile = NUF_NOFILE;
g_RrParam.hTimer=TimerCreateTimer(APHS_TIMERID, APHS_TIMER_LEN);
if (g_RrParam.hTimer==NULL)
{
ExitAp(EXIT_CODE_NORMAL);
return 1;
}
g_RrParam.pBwrGui=HS_BWR_GUI(pGui);
//=========================================
// Flow control
g_RrParam.wSndMode=APHS_SOUND_NONE;
//---------------------------------
g_RrParam.pDispBuf=NULL;
//---------------------------------------------
// Open sound file and time stamp
g_RrParam.aPlay[0].hPlay=-1;
g_RrParam.aPlay[1].hPlay=-1;
if (!ApHsOpenPlay(0))
{
ExitAp(EXIT_CODE_NORMAL);
return 1;
}
// Init file
if (!__RrReadText() )
{
ExitAp(EXIT_CODE_NORMAL);
}
else
{
if ( !(g_RrParam.wRptMode&RR_MODE_NOMST))
{ // is MST file Mode, do not supprot BROWSER_OPTION_RELOAD;
pGui->uCurrentIme &= (~BROWSER_OPTION_RELOAD);
}
EditLoadSetting();
if (g_RrParam.wRptMode& RR_MODE_NOTEXT)
{
BrowserLoadData((MBrowser *)HS_BWR_GUI(pGui),NULL,BROWSER_STATE_NULL,0);
}
else
{
BrowserLoadData((MBrowser *)HS_BWR_GUI(pGui),g_RrParam.pTextBuf,BROWSER_STATE_NULL,0);
}
ApHsSetTextOffset();
ApHSSetTmAStep(0);
ApHSSetTmBStep((UINT16)400); // to Max
}
// 在此進行AP的初始化;
return 1;
}
/****************************************************************************/
/* FUNCTION: INT HearSayEvent_Destroy( APGUI_STRUCT *pGui, */
/* UINT uEvent, UINT uParam ) */
/* DESCRIPTION:HearSay應用銷毀事件處理 */
/* INPUTS: NONE */
/* OUTPUTS: NONE */
/* RETURN: 運行銷毀事件的返回值 */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-01-26 First Issue */
/****************************************************************************/
INT HearSayEvent_Destroy( APGUI_STRUCT *pGui, UINT uEvent, UINT uParam )
{
// 銷毀創建的定時器等;
if (g_RrParam.hTimer)
{
TimerDestroyTimer(g_RrParam.hTimer);
}
// 釋放申請的內存
if (g_RrParam.pDispBuf)
{
MemFree(g_RrParam.pDispBuf);
}
APHSSndReturn();
// Del Recorded File
ApHsDelRecordFile();
if ( (g_RrParam.hRrMstFile != NUF_NOFILE)
&& (g_RrParam.hRrMstFile>=0 ) )
{
FileClose( g_RrParam.hRrMstFile );
}
ApHsFileTextDel();
return 1;
}
/****************************************************************************/
/* FUNCTION: INT HearSayEvent_Exit( APGUI_STRUCT *pGui, */
/* UINT uEvent, UINT uParam ) */
/* DESCRIPTION:HearSay應用退出事件處理 */
/* INPUTS: NONE */
/* OUTPUTS: NONE */
/* RETURN: 運行退出事件的返回值 */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-01-26 First Issue */
/****************************************************************************/
INT HearSayEvent_Exit( APGUI_STRUCT *pGui, UINT uEvent, UINT uParam )
{
return HearSayEvent_KeyEsc( pGui,uEvent,uParam );
// 不允許退出則返回1表示已經處理此消息;
// 如果允許缺省退出,則直接返回0表示不處理此消息即可
return 0;
// 如果要特殊退出,則返回1,并調用函數“ExitAp”退出本AP
}
/****************************************************************************/
/* FUNCTION: INT HearSayEvent_Draw( APGUI_STRUCT *pGui, */
/* UINT uEvent, UINT uParam ) */
/* DESCRIPTION:HearSay應用顯示事件處理 */
/* INPUTS: NONE */
/* OUTPUTS: NONE */
/* RETURN: 運行顯示事件的返回值 */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-01-26 First Issue */
/****************************************************************************/
INT HearSayEvent_Draw( APGUI_STRUCT *pGui, UINT uEvent, UINT uParam )
{
GraphDisableRefresh();
GraphClearScreen();
// Draw title
ApDrawTitleBar(IDB_TITLEAUD,(UINT8*)g_RrParam.pTitle,TITLETEXT_STYLE_LEFT);
ApDrawFrame();
// ClearPgui(num ,UINT8 * NumberID);
/*
GraphClearRect(0,(pGui+1)->nY+(pGui+1)->uHeight,
LCD_SCREEN_WIDTH-1,
LCD_SCREEN_HEIGHT-1);*/
//=================================
// Draw the "A" and "B" and Hint Area
//=================================
HearSayDraw_ProBar (pGui, EVENT_DRAW,0 );
//----------------------------------------------------
GraphEnableRefresh();
return 1;
}
/****************************************************************************/
/* FUNCTION: INT HearSayDraw_ProBar( APGUI_STRUCT *pGui, */
/* UINT uEvent, UINT uParam ) */
/* DESCRIPTION:HearSay應用顯示事件處理 */
/* INPUTS: NONE */
/* OUTPUTS: NONE */
/* RETURN: 運行顯示事件的返回值 */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-01-26 First Issue */
/****************************************************************************/
#if 0
const char * const g_aHSHint[]=
{
"",
"請按\"A/B\"設置復讀點",
"正在播放......",
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -