📄 common.c
字号:
DispBootAnim(pApp);//启动动画
SPRINTF(Req,URL);
STRCAT(Req,"idView=100");
STRCAT(Req,"&HandsetType=");
STRCAT(Req,HANDSETTYPE);
STRCAT(Req,"&PhoneNumber=");
STRCAT(Req,pApp->chPhoneNumber);
SPRINTF(Request,"GET %s HTTP/1.0\r\n\r\n",Req);
SPRINTF(pApp->pszSendData,Request);
pApp->err=ERR_OK;
StartSocket(pApp);
return;
}
//////////////////////////////////////////////////////////////////////////
void OpenDatabase(CTheApp* pApp)
{
if(ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_DBMGR,(void **)&pApp->pIDBMgr)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
// Create a database.
if((pApp->pIDatabase=IDBMGR_OpenDatabase(pApp->pIDBMgr,"favorite.db",TRUE))==NULL)
{
IDBMGR_Release (pApp->pIDBMgr);
return;
}
return;
}
//////////////////////////////////////////////////////////////////////////
boolean SaveFavorite(CTheApp* pApp)
{
IFileMgr* pIFileMgr;
//FileInfo fi;
uint32 nFreeSpace,pdwTotal;
if (ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_FILEMGR,(void **)&pIFileMgr)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return FALSE;
}
nFreeSpace=IFILEMGR_GetFreeSpace(pIFileMgr,&pdwTotal);
if(nFreeSpace<1024)//有没有1k空间
{
IFILEMGR_Release(pIFileMgr);
pIFileMgr=NULL;
return FALSE;
}
if(AddDBRecoder(pApp)==FALSE)
{
IFILEMGR_Release(pIFileMgr);
return FALSE;
}
IFILEMGR_Release(pIFileMgr);
return TRUE;
}
//////////////////////////////////////////////////////////////////////////
/*
boolean SaveFavoriteFile(CTheApp* pApp)
{
uint16 nFileCount=0;
IFileMgr* pIFileMgr;
IFile* pIFile;
FileInfo fi;
char strFileName[12]={0};
char strPathName[24]={0};
uint32 nFreeSpace,pdwTotal;
if (ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_FILEMGR,(void **)&pIFileMgr)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return FALSE;
}
nFreeSpace=IFILEMGR_GetFreeSpace(pIFileMgr,&pdwTotal);
if(nFreeSpace<10240)//有没有10k空间
{
IFILEMGR_Release(pIFileMgr);
pIFileMgr=NULL;
return FALSE;
}
//GenerateFileName(pApp);
TimeAsChar(strFileName,GET_SECONDS());
SPRINTF(strPathName,"%s%s","fav/",strFileName);
if(IFILEMGR_EnumInit(pIFileMgr,"fav/",FALSE)==SUCCESS)
while (IFILEMGR_EnumNext(pIFileMgr,&fi)==TRUE)
nFileCount++;
if(nFileCount>50)//文件数小于50
{
IFILEMGR_Release(pIFileMgr);
pIFileMgr=NULL;
return FALSE;
}
pIFile=IFILEMGR_OpenFile(pIFileMgr,strPathName,_OFM_CREATE);
if(IFILE_Write(pIFile,(char*)pApp->pContent,pApp->nTxtLength)==0)
{
IFILEMGR_Release(pIFileMgr);
pIFileMgr=NULL;
return FALSE;
}
if(AddDBRecoder(pApp,strFileName)==FALSE)
{
IFILEMGR_Remove(pIFileMgr,strPathName);
IFILE_Release(pIFile);
IFILEMGR_Release(pIFileMgr);
return FALSE;
}
IFILE_Release(pIFile);
IFILEMGR_Release(pIFileMgr);
return TRUE;
}
*/
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
boolean AddDBRecoder(CTheApp* pApp)
{
IDBRecord* pIDBRec=NULL;
AEEDBField dbField[2];
AECHAR HeadlineName[100]={'\0'};
char LinkAddr[200]={'\0'};
WSTRCPY(HeadlineName,pApp->unicHeadline);
SPRINTF(LinkAddr,pApp->pszLinkAddr);
dbField[0].fName = AEEDBFIELD_TEXT;
dbField[0].fType = AEEDB_FT_STRING;
dbField[0].pBuffer = (AECHAR *)HeadlineName;
dbField[0].wDataLen = WSTRLEN (HeadlineName);
dbField[1].fName = AEEDBFIELD_TEXT;
dbField[1].fType = AEEDB_FT_STRING;
dbField[1].pBuffer = (void*)LinkAddr;
dbField[1].wDataLen = STRLEN (LinkAddr);
pIDBRec = IDATABASE_CreateRecord(
pApp->pIDatabase,dbField,2);
if(pIDBRec==NULL)//建立记录失败
return FALSE;
IDBRECORD_Release(pIDBRec);
pIDBRec=NULL;
IDATABASE_Reset(pApp->pIDatabase);
return TRUE;
}
//////////////////////////////////////////////////////////////////////////
void TimeAsChar(char a[],uint32 time)
{
int i;
char c;
for(i=0;i<=9;i++)
{
c=(char)(time%10)+0x30;
a[9-i]=c;
time=time/10;
}
return;
}
///////////////////////////////
//////////////////////////////////////////////////////////////////////////
void PopFavoriteMenu(CTheApp* pApp)
{
AEERect rc;
AEEMenuColors mc;
uint16 i;
IDBRecord * pIDBRec=NULL;
uint16 RecordCount=0;
//CtlAddItem pai;
uint16 fieldLen;
AEEDBFieldType fieldType; // stores field type
AEEDBFieldName fieldName; // stores field name
//byte* data=NULL;
AECHAR* data=NULL;
uint16 fileCount=0;
rc.x=MENULEFTSPACE;
rc.y=pApp->nHeaderHeight;
rc.dx=pApp->cxScreen-MENURIGHTSPACE;
rc.dy=pApp->cyScreen-pApp->nNormalFontHeight-pApp->nHeaderHeight-MENUADJUST;
mc.wMask=mc.wMask|MC_BACK|MC_TEXT|MC_SEL_TEXT|MC_SEL_BACK|MC_FRAME|MC_SCROLLBAR|MC_SCROLLBAR_FILL;
mc.cBack=ITEMBACKCOLOR
mc.cSelBack=ITEMSELBAKCOLOR
mc.cText=ITEMTEXTCOLOR
mc.cSelText=ITEMSELTEXTCOLOR
mc.cFrame=MAKE_RGB(0xff,0xff,0xff);
mc.cScrollbar=MAKE_RGB(0xff,0xda,0xff);
mc.cScrollbarFill=MAKE_RGB(0xff,0xb9,0xf3);
DispBackground(pApp);
if(ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_MENUCTL,
(void **)&pApp->pIMenuCtl1)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
IMENUCTL_SetRect(pApp->pIMenuCtl1,&rc);
IMENUCTL_SetColors(pApp->pIMenuCtl1, &mc);
RecordCount=IDATABASE_GetRecordCount(pApp->pIDatabase);
if(RecordCount<1)//数据库中没有记录
{
ShowMSG(pApp,0,pApp->cyScreen-pApp->nNormalFontHeight,IDS_EMPTYINFAV);//收藏夹中为空
return;
}
IDATABASE_Reset(pApp->pIDatabase);
for(i=1;i<=RecordCount;i++)
{
pIDBRec=IDATABASE_GetNextRecord (pApp->pIDatabase);//下一条记录
IDBRECORD_Reset( pIDBRec);//字段复位
if ((fieldType = IDBRECORD_NextField (pIDBRec, &fieldName,
&fieldLen)) == AEEDB_FT_STRING)
{
if(data=IDBRECORD_GetFieldString(pIDBRec))
{
IMENUCTL_AddItem(pApp->pIMenuCtl1,NULL,NULL,(uint16)i,(AECHAR*)data,0);
}
}
IDBRECORD_Release(pIDBRec);
pIDBRec=NULL;
}
ShowMSG1(pApp,0,pApp->cyScreen-pApp->nNormalFontHeight,IDS_DELETE);
IMENUCTL_SetActive(pApp->pIMenuCtl1,TRUE);
IMENUCTL_Redraw(pApp->pIMenuCtl1);
return;
}
void GetFavoriteLink(CTheApp* pApp,uint16 wParam)
{
IDBRecord* pIDBRec=NULL;
uint16 RecordCount=0;
uint16 i,fieldLen;//idItem;
AEEDBFieldType fieldType; // stores field type
AEEDBFieldName fieldName; // stores field name
//AECHAR* data=NULL;
char* data=NULL;
RecordCount = IDATABASE_GetRecordCount(pApp->pIDatabase);
IDATABASE_Reset(pApp->pIDatabase);
for(i=1;i<=RecordCount;i++)
{
pIDBRec=IDATABASE_GetNextRecord(pApp->pIDatabase);
IDBRECORD_Reset( pIDBRec);
if(i==wParam)
{
//IDBRECORD_Reset( pIDBRec);
fieldType = IDBRECORD_NextField(pIDBRec, &fieldName, &fieldLen);
fieldType = IDBRECORD_NextField(pIDBRec, &fieldName, &fieldLen);
data = (char*)IDBRECORD_GetField(pIDBRec, &fieldName, &fieldType, &fieldLen);
SPRINTF(pApp->pszSendData,data);
//SPRINTF(pApp->chKeepMenuItem,data);//保存下来供读图时用
break;
}
if(pIDBRec)
{
IDBRECORD_Release(pIDBRec);
pIDBRec=NULL;
data=NULL;
}
}
if(pIDBRec)
IDBRECORD_Release(pIDBRec);
//if(data)
// FREE(data);
return;
}
//////////////////////////////////////////////////////////////////////////
void GetNextPage(CTheApp* pApp)
{
char Request[200]={0};
//char Req[200]={0};
char chR[200]={0};//Req
//char chId[7]={0};
char chCity[7]={0};
if(pApp->pMenuItem->link==NULL)
{
ShowMSG(pApp,0,pApp->cyScreen-pApp->nNormalFontHeight,IDS_THELASTPAGE);
return;
}
SPRINTF(chR,URL);
STRCAT(chR,"&idView=");
//MEMSET((void*)pApp->unicHeadline,0,20);
//WSTRCPY(pApp->unicHeadline,p->content);
STRCAT(chR,pApp->pMenuItem->link->idView);
pApp->idKeep1=Str2Int(pApp->pMenuItem->link->idView);//300 显示内容
//pApp->idKeep1=300;//按了子菜单项,进入内容显示
STRCAT(chR,"&idContext=");
STRCAT(chR,pApp->pMenuItem->link->idMenuItem);
STRCAT(chR,"&idCity=");
Int2Str(chCity,pApp->nCityId);//城市号(数字=>字符串)
STRCAT(chR,chCity);
SPRINTF(Request,"GET %s HTTP/1.0\r\n\r\n",chR);
SPRINTF(pApp->pszSendData,Request);
SPRINTF(pApp->pszLinkAddr,Request);//keep the link address to favorite
//log(pApp,pApp->pszSendData);
//!!!{modify by wishing 2005-02-18保持pApp->pszReceiveData中的数据 为连接时被短信中断
pApp->pszKeepReceiveData=(char*)MALLOC(STRLEN(pApp->pszReceiveData));
if(pApp->pszKeepReceiveData==NULL)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
MEMSET(pApp->pszKeepReceiveData,0,STRLEN(pApp->pszReceiveData));
MEMCPY(pApp->pszKeepReceiveData,pApp->pszReceiveData,STRLEN(pApp->pszReceiveData));
if(pApp->pszReceiveData)
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
//!!!modify by wishing}
DispLoadAnim(pApp);//下载动画
StartSocket(pApp);
pApp->vtCurrent=SUBMENU_VIEW;
pApp->bIsFromNextPage=TRUE;//表示从下一篇来
return;
}
//////////////////////////////////////////////////////////////////////////
void EmptyFavorite(CTheApp* pApp)
{
uint16 i;//ItemId;
uint16 RecordCount=0;
IDBRecord* pIDBRec=NULL;
RecordCount=IDATABASE_GetRecordCount(pApp->pIDatabase);
IDATABASE_Reset(pApp->pIDatabase);
for(i=1;i<=RecordCount;i++)
{
pIDBRec=IDATABASE_GetNextRecord(pApp->pIDatabase);
IDBRECORD_Remove(pIDBRec);
}
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
IDISPLAY_Update(pApp->a.m_pIDisplay);
if(pApp->pIMenuCtl1)//去掉收藏夹菜单
{
IMENUCTL_Release(pApp->pIMenuCtl1);
pApp->pIMenuCtl1=NULL;
}
if(pApp->pSubMenuItem)//这是没有的
{
CleanSubMenuItemList(pApp);
pApp->pSubMenuItem=NULL;
}
if(pApp->pIImage)//也没有必要
{
IIMAGE_Release(pApp->pIImage);
pApp->pIImage=NULL;
}
CreateMainMenu(pApp);//返回主菜单
pApp->vtCurrent=MAINMENU_VIEW;
return;
}
//////////////////////////////////////////////////////////////////////////
void PlayMusic(CTheApp* pApp)
{
if(ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_SOUNDPLAYER,(void **)&pApp->pISoundPlayer)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
ISOUNDPLAYER_Set(pApp->pISoundPlayer, SDT_FILE,"welcome.mid");
ISOUNDPLAYER_SetVolume(pApp->pISoundPlayer,AEE_MAX_VOLUME);
ISOUNDPLAYER_Play (pApp->pISoundPlayer);
return;
}
//////////////////////////////////////////////////////////////////////////
void StopMusic(CTheApp* pApp)
{
if(pApp->pISoundPlayer)
{
ISOUNDPLAYER_Stop(pApp->pISoundPlayer);
ISOUNDPLAYER_Release(pApp->pISoundPlayer);
pApp->pISoundPlayer=NULL;
}
return;
}
//////////////////////////////////////////////////////////////////////////
//处理许可信息
/*
void DoLicense(CTheApp* pApp)
{
AEELicenseType licType = 0;
uint32 dwLicRemain = 0;
if(ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_LICENSE,(void **)&pApp->pILicense)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
licType = ILICENSE_GetInfo(pApp->pILicense, &dwLicRemain);
switch( licType )
{
case LT_NONE:
break;
case LT_USES:
break;
case LT_DAYS:
break;
case LT_DATE:
break;
case LT_MINUTES_OF_USE:
if( dwLicRemain == -1 )
{
break;
}
}
return;
}
*/
//////////////////////////////////////////////////////////////////////////
#ifdef DEBUG_
void log(CTheApp* pApp,char* info)
{
char* szBuf;
IFileMgr* pIFileMgr;
IFile* pIFile;
szBuf=info;
ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_FILEMGR,(void**)&pIFileMgr);
pIFile=IFILEMGR_OpenFile(pIFileMgr,"log.txt",_OFM_CREATE);
IFILE_Write(pIFile,info,STRLEN(szBuf));
IFILE_Release(pIFile);
pIFile=NULL;
IFILEMGR_Release(pIFileMgr);
pIFileMgr=NULL;
return;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -