/*===========================================================================
FILE: XRead.c
08-10-14 0.0.1
08-10-22 0.1.0
08-11-01 0.2.0
08-11-07 0.3.0
===========================================================================*/
#include "XRead.h"
/*===============================================================================
FUNCTION DEFINITIONS
=============================================================================== */
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
*ppObj = NULL;
if( ClsId == AEECLSID_XREAD )
{
if( AEEApplet_New(sizeof(XRead),
ClsId,
pIShell,
po,
(IApplet**)ppObj,
(AEEHANDLER)XRead_HandleEvent,
(PFNFREEAPPDATA)XRead_FreeAppData) )
{
if(XRead_InitAppData((XRead*)*ppObj))
{
return(AEE_SUCCESS);
}
else
{
IAPPLET_Release((IApplet*)*ppObj);
return EFAILED;
}
}
}
return(EFAILED);
}
static boolean XRead_HandleEvent(XRead* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
int i;
switch (eCode)
{
case EVT_APP_START:
File_Getlist(pMe,pme->folder);
return(TRUE);
case EVT_APP_STOP:
return(TRUE);
case EVT_APP_SUSPEND:
if(pme->text==1)
Text_TagSave(pme);
if(pme->menu==1)
{
IMENUCTL_Release(pme->menuctl2);
IMENUCTL_Release(pme->menuctl3);
pme->menu=0;
}
if(pme->time2==1)
ISHELL_CancelTimer(pMe->a.m_pIShell, (PFNNOTIFY)Time_OnTimerExpired2, pMe);
return(TRUE);
case EVT_APP_RESUME:
HandleEvent(pme);
if(pme->mediamenu==1)
Media_Menu(pme);
else if(pme->mediaon==1)
Media_File(pme,pme->mediafolder);
else if(pme->freemenu==1)
Free_Show(pme);
else if(pme->fontmenu==1)
Font_Show(pme);
else if(pme->turn==1)
Turn_Show(pme);
else if(pme->autoon==1)
Auto_Show(pme);
else if(pme->pic==1)
Pic_Show(pme,pme->filen);
//else if(pme->menu==1)
if(pme->time2==1)
Time_OnTimerExpired2(pme);
return(TRUE);
case EVT_APP_MESSAGE:
return(TRUE);
case EVT_COMMAND:
return(TRUE);
case EVT_FLIP:
if(pme->text==1)
{
if(wParam==FALSE)
{
Text_TagSave(pme);
}
}
return(TRUE);
case EVT_KEY_RELEASE:
{
if(pme->pic==1)
switch (wParam)
{
case AVK_UP:
case AVK_DOWN:
case AVK_LEFT:
case AVK_RIGHT:
ISHELL_CancelTimer(pme->a.m_pIShell, (PFNNOTIFY)Pic_Key, pme);
return(TRUE);
default:
break;
}
}
return(TRUE);
case EVT_KEY:
if(wParam!=AVK_VIDEO_PHONE&&(wParam!=AVK_5||pme->mediamenu!=0))
{
if(pme->play==1&&wParam==AVK_FUNCTION)
{
if(pme->stop==0)
{
if (pme->pause==1)
{
IMEDIA_Resume(pme->media);
pme->pause=0;
}
else
{
IMEDIA_Pause(pme->media);
pme->pause=1;
}
}
if(pme->mediamenu==1)
Media_Menu(pme);
}
if(pme->time==1)
{
Time_End(pme);
pme->time=0;
HandleEvent(pme);
}
if(pme->mediamenu==1)
Media_Menu_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->mediaon==1)
Media_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->freemenu==1)
Free_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->fontmenu==1)
Font_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->turn==1)
Turn_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->autoon==1)
Auto_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->menu==1)
Menu_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->pic==1)
Pic_HandleEvent(pme,eCode,wParam,dwParam);
else if(pme->text==1)
Text_HandleEvent(pme,eCode,wParam,dwParam);
else
File_HandleEvent(pme,eCode,wParam,dwParam);
}
else if(wParam==AVK_VIDEO_PHONE)
{
if(pme->time==1)
{
Time_End(pme);
pme->time=0;
HandleEvent(pme);
}
else
{
Time_Start(pme);
pme->time=1;
}
}
else
{
if(pme->time2==1)
{
ISHELL_CancelTimer(pMe->a.m_pIShell, (PFNNOTIFY)Time_OnTimerExpired2, pMe);
pme->time2=0;
HandleEvent(pme);
}
else
{
Time_OnTimerExpired2(pme);
pme->time2=1;
}
}
return(TRUE);
default:
break;
}
return FALSE;
}
void HandleEvent(XRead* pMe)
{
if(pme->text==1)
Text_ChangePage(pme,pme->txtfolder);
else
File_Getlist(pme,pme->folder);
}
boolean XRead_InitAppData(XRead* pMe)
{
pme->TestStr[0]=0x3000;
pme->TestStr[1]=0;
pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);
pme->textpos=MALLOC(60100);
pme->gbkmap=MALLOC(50000);
MEMSET(pme->textpos,0,sizeof(pme->textpos));
pme->folder = MALLOC(1024);
pme->mediafolder = MALLOC(1024);
pme->folder2 = MALLOC(1024);
pme->txtfolder = MALLOC(1024);
pme->sz = MALLOC(1024);
pme->fontp = MALLOC(1024);
pme->foldername = MALLOC(1024);
pme->median = MALLOC(1024);
pme->filen = MALLOC(1024);
STRCPY(pme->folder,DIR_NAME1);
//STRCPY(pme->fontp,TTF_FONT);
STRCPY(pme->mediafolder,DIR_NAME2);
pme->count=0;
pme->mediacount=0;
pme->mediamenu=0;
pme->mediaon=0;
pme->foldernum=1;
pme->foldercount=0;
//pme->fontsize=15;//
pme->time=0;
//pme->time2=1;
pme->text=0;
//pme->invert=0;
pme->backcount=0;
pme->autopage=0;
pme->autoon=0;
//pme->autotime=9;//
pme->percent=0;
pme->turn=0;
pme->menu=0;
pme->gbk=0;
//pme->freepage=40;//
pme->changefont=0;
pme->play=0;
pme->pause=0;
pme->stop=0;
//pme->rand=0;
//pme->playone=0;
//pme->vol=1;
pme->picoffset=1;
pme->pic=0;
pme->zoom=10;
LoadSetting(pMe);
if(pme->fontp[0]!=0||pme->DeviceInfo.dwLang==LNG_SCHINESE)
LoadFont(pMe);
if(pme->time2==1)
Time_OnTimerExpired2(pme);
Text_LoadMap(pme);
return TRUE;
}
void XRead_FreeAppData(XRead* pMe)
{
if(pme->fontp!=0)
FreeFont(pMe);
SaveSetting(pMe);
FREE(pme->folder);
FREE(pme->sz);
FREE(pme->folder2);
FREE(pme->mediafolder);
FREE(pme->textpos);
FREE(pme->txtfolder);
FREE(pme->gbkmap);
FREE(pme->foldername);
FREE(pme->filen);
FREE(pme->median);
FREE(pme->fontp);
if(pme->time==1)
Time_End(pme);
if(pme->time2==1)
ISHELL_CancelTimer(pMe->a.m_pIShell, (PFNNOTIFY)Time_OnTimerExpired2, pMe);
if(pme->menuctl!=NULL)
IMENUCTL_Release(pme->menuctl);
if(pme->menuctl4!=NULL)
{
IMENUCTL_Release(pme->menuctl4);
pme->menuctl4=NULL;
}
if (pme->media != NULL)
{
FREE(pme->mdata.pData);
IMEDIA_Release(pme->media);
pme->media = NULL;
}
if (pme->pImageCtl != NULL)
{
IIMAGECTL_Release(pme->pImageCtl);
pme->pImageCtl = NULL;
}
}
void LoadSetting(XRead* pMe)
{
ISHELL_CreateInstance(shell,AEECLSID_FILEMGR,(void*)&pme->filemgr);
if(IFILEMGR_Test(pme->filemgr,INI_NAME)==SUCCESS)
{
IFILEMGR_GetInfo(pme->filemgr,INI_NAME,&pme->finfo);
pme->file = IFILEMGR_OpenFile(pme->filemgr,INI_NAME,_OFM_READ);
MEMSET(pme->sz,0,sizeof(pme->sz));
IFILE_Read(pme->file,pme->sz,pme->finfo.dwSize);
pme->fontsize=pme->sz[0];
pme->autotime=pme->sz[1]-2;
pme->freepage=pme->sz[2];
pme->time2=pme->sz[3]-2;
pme->invert=pme->sz[4]-2;
pme->rand=pme->sz[5]-2;
pme->playone=pme->sz[6]-2;
pme->vol=pme->sz[7]-2;
STRCPY(pme->fontp,pme->sz+8);
if(IFILEMGR_Test(pme->filemgr,pme->fontp)!=SUCCESS)
pme
BREW平台上开发的手机 电子书
需积分: 9 152 浏览量
2010-09-27
01:14:14
上传
评论 2
收藏 53KB RAR 举报
shihe8925
- 粉丝: 0
- 资源: 2
最新资源
- 冯璐阳 42105650—祝福.docx
- 基于多种算法及改进算法实现的移动机器人路径规划matlab源码(含A星算法+PRM+RRT的改进等).zip
- 布里斯托尔纸细分市场、总体规模、先进性、市占率行业分析报告2024年.docx
- Obi绳子插件,好用的很 6.5.4版本
- openjfx-22.0.1-windows-x64-bin-sdk.zip
- 基于ros和stm32f1的小车代码(含串口通信)+项目说明.zip
- 人体姿态估计-基于Tensorflow实现的人体姿态估计算法-附项目源码-优质项目分享.zip
- java实现所有算法大全
- JDBC DAO模式 (复习)
- Proteus仿真AT89C51电子密码锁
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈