📄 aphearsay.c
字号:
// {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((UINT8*)g_RrParam.pTitle,TITLETEXT_STYLE_LEFT);
/*
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\"设置复读点",
"正在播放......",
"正在复读......",
"正在录音......",
"正在对比:录音播放......",
"正在对比:原音播放......",
"请按\"B\"设置复读点",
"模式: 自动",
"模式: A-B",
};
VOID __HearSayDraw_ProBarHInt (VOID)
{
const UINT8* p;
INT x;
GraphDisableRefresh();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -