⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.c

📁 brew中开发的个人小游戏
💻 C
📖 第 1 页 / 共 3 页
字号:
	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 + -