📄 sample.final
字号:
pi->pHelp = NULL;
break;
case STATUS_GIVENAME:
if(!pi->pText)
pi->pText = (AECHAR*)MALLOC(NAME_LEN);
if(!pi->pText)
return FALSE;
ITEXTCTL_GetText(pi->pDogName,pi->pText,NAME_LEN/2);
ITEXTCTL_SetActive(pi->pDogName,FALSE);
ITEXTCTL_Release(pi->pDogName);
IMENUCTL_Release(pi->pSoftkey);
pi->pDogName = NULL;
pi->pSoftkey = NULL;
break;
// lab 10
case STATUS_ENTER:
IIMAGE_Release(pi->pImage);
pi->pImage = NULL;
IMEDIA_Stop(pi->pMedia);
IMEDIA_Release(pi->pMedia);
pi->pMedia = NULL;
break;
// end of lab 10
}
return TRUE;
case EVT_APP_RESUME:
switch(pi->status)
{
case STATUS_MAINMENU:
BuildMainMenu(pi);
break;
case STATUS_ABOUT:
DisplayAbout(pi);
break;
case STATUS_HELP:
DisplayHelp(pi);
break;
case STATUS_GIVENAME:
SetDogName(pi);
break;
// lab 11
case STATUS_ENTER:
PlayMusic(pi);
PlayImage(pi);
break;
// end of lab 11
}
return TRUE;
// lab 12
case EVT_APP_NO_SLEEP: //If there is none key been pressed after a long time, the action speed will be slower. It will be called in order to show the application is working.
return TRUE;
// end of lab 12
default:
break;
}
return FALSE;
}
static boolean SampleApp_Init(SampleApp *pi)
{
ISHELL_GetDeviceInfo(pi->a.m_pIShell,&pi->info);
pi->status = 0;
pi->pMenu = NULL;
pi->pDogName = NULL;
pi->pSoftkey = NULL;
pi->pText = NULL;
pi->pAbout = NULL;
pi->pHelp = NULL;
// lab 4
pi->pMedia = NULL;
pi->pImage = NULL;
// end of lab 4
return TRUE;
}
static void SampleApp_Free(SampleApp *pi)
{
if(pi->pMenu)
IMENUCTL_Release(pi->pMenu);
if(pi->pDogName)
ITEXTCTL_Release(pi->pDogName);
if(pi->pSoftkey)
IMENUCTL_Release(pi->pSoftkey);
if(pi->pText)
FREE(pi->pText);
if(pi->pAbout)
ISTATIC_Release(pi->pAbout);
if(pi->pHelp)
ISTATIC_Release(pi->pHelp);
// lab 5
if(pi->pMedia)
IMEDIA_Release(pi->pMedia);
if(pi->pImage)
IIMAGE_Release(pi->pImage);
// end of lab 5
}
static void DisplaySplash(SampleApp *pi)
{
AECHAR szText[12];
ISHELL_LoadResString(pi->a.m_pIShell,SAMPLE_RES_FILE,IDS_SAMPLE,szText,sizeof(szText));
IDISPLAY_DrawText(pi->a.m_pIDisplay, // Display instance
AEE_FONT_BOLD, // Use BOLD font
szText, // Text - Normally comes from resource
-1, // -1 = Use full string length
0, // Ignored - IDF_ALIGN_CENTER
0, // Ignored - IDF_ALIGN_MIDDLE
NULL, // No clipping
IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
IDISPLAY_Update (pi->a.m_pIDisplay);
pi->status = STATUS_SPLASH;
}
static void BuildMainMenu(SampleApp *pi)
{
if(ISHELL_CreateInstance(pi->a.m_pIShell,AEECLSID_MENUCTL,(void**)&pi->pMenu) != SUCCESS)
return ;
IMENUCTL_SetTitle(pi->pMenu,SAMPLE_RES_FILE,IDS_TITLE,NULL);
IMENUCTL_AddItem(pi->pMenu,SAMPLE_RES_FILE,IDS_NAME,ID_NAME,NULL,0);
IMENUCTL_AddItem(pi->pMenu,SAMPLE_RES_FILE,IDS_ENTER,ID_ENTER,NULL,0);
IMENUCTL_AddItem(pi->pMenu,SAMPLE_RES_FILE,IDS_HELP,ID_HELP,NULL,0);
IMENUCTL_AddItem(pi->pMenu,SAMPLE_RES_FILE,IDS_ABOUT,ID_ABOUT,NULL,0);
IMENUCTL_SetActive(pi->pMenu,TRUE);
pi->status = STATUS_MAINMENU;
}
static void SetDogName(SampleApp *pi)
{
AEERect rect;
pi->status = STATUS_GIVENAME;
if(!pi->pDogName)
{
if(ISHELL_CreateInstance(pi->a.m_pIShell,AEECLSID_TEXTCTL,(void**)&pi->pDogName) != SUCCESS)
return;
if(ISHELL_CreateInstance(pi->a.m_pIShell,AEECLSID_SOFTKEYCTL,(void**)&pi->pSoftkey) != SUCCESS)
{
pi->pDogName = NULL;
return ;
}
}
IMENUCTL_SetActive(pi->pMenu,FALSE);
IDISPLAY_ClearScreen(pi->a.m_pIDisplay);
ITEXTCTL_SetTitle(pi->pDogName,SAMPLE_RES_FILE,IDS_DOG_NAME,NULL);
ITEXTCTL_SetProperties(pi->pDogName,TP_FRAME);
ITEXTCTL_SetMaxSize(pi->pDogName,5);
SETAEERECT(&rect,0,20,pi->info.cxScreen,pi->info.cyScreen/2);
ITEXTCTL_SetRect(pi->pDogName,&rect);
if(pi->pText)
ITEXTCTL_SetText(pi->pDogName,pi->pText,-1);
ITEXTCTL_SetCursorPos(pi->pDogName,TC_CURSOREND);
ITEXTCTL_SetSoftKeyMenu(pi->pDogName,pi->pSoftkey);
ITEXTCTL_SetInputMode(pi->pDogName,AEE_TM_FIRST_OEM+1);
IMENUCTL_AddItem(pi->pSoftkey,SAMPLE_RES_FILE,IDS_OK,ID_OK,NULL,0);
ITEXTCTL_SetActive(pi->pDogName,TRUE);
}
// lab 5
static void DisplayDog(SampleApp *pi)
{
pi->status = STATUS_ENTER;
pi->flag = 0;
pi->TickTime = 0;
IMENUCTL_SetActive(pi->pMenu,FALSE);
PlayMusic(pi);
PlayImage(pi);
}
// end of lab 5
static void DisplayAbout(SampleApp *pi)
{
AEERect rect;
AECHAR title[12];
AECHAR data[80];
pi->status = STATUS_ABOUT;
IMENUCTL_SetActive(pi->pMenu,FALSE);
IDISPLAY_ClearScreen(pi->a.m_pIDisplay );
if(!pi->pAbout)
{
if(ISHELL_CreateInstance(pi->a.m_pIShell,AEECLSID_STATIC,(void**)&pi->pAbout) != SUCCESS)
return ;
}
SETAEERECT(&rect,0,0,pi->info.cxScreen,pi->info.cyScreen);
ISTATIC_SetRect(pi->pAbout,&rect);
ISHELL_LoadResString(pi->a.m_pIShell,SAMPLE_RES_FILE,IDS_ABOUT,title,sizeof(title));
ISHELL_LoadResString(pi->a.m_pIShell,SAMPLE_RES_FILE,IDS_ABOUT_DATA,data,sizeof(data));
ISTATIC_SetText(pi->pAbout,title,data,AEE_FONT_BOLD,AEE_FONT_NORMAL);
ISTATIC_SetActive(pi->pAbout,TRUE);
ISTATIC_Redraw(pi->pAbout);
}
static void DisplayHelp(SampleApp *pi)
{
AEERect rect;
AECHAR title[24];
IImage *pImage;
IMENUCTL_SetActive(pi->pMenu,FALSE);
IDISPLAY_ClearScreen(pi->a.m_pIDisplay );
if(!pi->pHelp)
{
if(ISHELL_CreateInstance(pi->a.m_pIShell,AEECLSID_STATIC,(void**)&pi->pHelp) != SUCCESS)
return ;
}
ISTATIC_SetProperties(pi->pHelp,ST_ICONTEXT);
SETAEERECT(&rect,0,0,pi->info.cxScreen,pi->info.cyScreen);
ISTATIC_SetRect(pi->pHelp,&rect);
ISHELL_LoadResString(pi->a.m_pIShell,SAMPLE_RES_FILE,IDS_HELP,title,sizeof(title));
pImage = ISHELL_LoadResImage(pi->a.m_pIShell,SAMPLE_RES_FILE,IDB_HELP);
ISTATIC_SetText(pi->pHelp,title,(AECHAR*)pImage,AEE_FONT_NORMAL,AEE_FONT_NORMAL);
ISTATIC_Redraw(pi->pHelp);
IIMAGE_Release(pImage);
pi->status = STATUS_HELP;
}
// lab 8
static void MediaCallback(SampleApp *pi,AEEMediaCmdNotify *data)
{
switch(data->nCmd)
{
case MM_CMD_PLAY:
switch(data->nStatus)
{
case MM_STATUS_DONE:
pi->TickTime = 0;
if(!pi->flag) //in order to play the music again
IMEDIA_Play(pi->pMedia);
break;
case MM_STATUS_TICK_UPDATE:
pi->TickTime++;
break;
case MM_STATUS_START:
IMEDIA_FastForward(pi->pMedia,pi->TickTime*1000);
break;
}
break;
default:
break;
}
}
// end of lab 8
// lab 6
static void PlayImage(SampleApp *pi)
{
uint16 x,y;
AEEImageInfo ImageInfo;
IDISPLAY_ClearScreen(pi->a.m_pIDisplay);
if(pi->pText)
IDISPLAY_DrawText(pi->a.m_pIDisplay, // Display instance
AEE_FONT_BOLD, // Use BOLD font
pi->pText,
-1, // -1 = Use full string length
0, // Ignored - IDF_ALIGN_CENTER
0, // Ignored - IDF_ALIGN_MIDDLE
NULL, // No clipping
IDF_ALIGN_CENTER);
pi->pImage = ISHELL_LoadResImage(pi->a.m_pIShell,SAMPLE_RES_FILE,IDB_DOG);
if(pi->pImage)
{
IIMAGE_GetInfo(pi->pImage,&ImageInfo);
x = (pi->info.cxScreen - ImageInfo.cx)/2;
y = (pi->info.cyScreen - ImageInfo.cy)/2;
IIMAGE_Start(pi->pImage,x,y);
}
IDISPLAY_Update(pi->a.m_pIDisplay);
}
// end of lab 6
// lab 7
static void PlayMusic(SampleApp *pi)
{
AEEMediaData music;
if(ISHELL_CreateInstance(pi->a.m_pIShell,AEECLSID_MEDIAMIDI,(void**)&pi->pMedia) != SUCCESS)
return ;
music.clsData = MMD_FILE_NAME;
music.pData = "Sample.mid";
music.dwSize = 0;
IMEDIA_SetMediaData(pi->pMedia,&music);
IMEDIA_RegisterNotify(pi->pMedia,(PFNMEDIANOTIFY)MediaCallback,pi);
IMEDIA_Play(pi->pMedia);
}
// end of lab 7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -