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

📄 simapptoolkit.cpp

📁 mtk simulator v2 new source code
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/**
 *	Copyright Notice
 *	?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
 *	Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
 *  (It is illegal to remove this copyright notice from this software or any
 *  portion of it)
 */
/**************************************************************

	FILENAME	: SimAppToolkit.cpp

  	PURPOSE		: Plugin for SAT

	REMARKS		: nil

	AUTHOR		:  Neeraj

	DATE		: Oct 5,03

**************************************************************/


#include "stdafx.h"
//#include "QMMINWSimulator.h"
#include "SimAppToolkit.h"
#include "MemAllocator.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define __ASCII
#define ENCODING_LENGTH 1

//////////////////////////////////////////////////////////////////////
// Global Variables
//////////////////////////////////////////////////////////////////////
SATMENUITEM mainMenu[]=
{
	{12,SAT_8BIT_DCS,0,"SELECT ITEM"},
	{12,SAT_8BIT_DCS,1,"DISPLAY TEXT"},
	{12,SAT_8BIT_DCS,2,"GET INPUT"},
	{12,SAT_8BIT_DCS,3,"GET INKEY"}
};

SATMENUITEM subMenu[]=
{
	{12,SAT_8BIT_DCS,4,"GAMES"},
	{12,SAT_8BIT_DCS,5,"HOROSCOPE"},
	{12,SAT_8BIT_DCS,7,"NEWS"},
	{12,SAT_8BIT_DCS,8,"STOCKS"},
	{12,SAT_8BIT_DCS,9,"RAILWAYS"},
	{12,SAT_8BIT_DCS,10,"AIRWAYS"},
	{12,SAT_8BIT_DCS,11,"CRICKET"},
	{12,SAT_8BIT_DCS,12,"YOUR CITY"},
	{12,SAT_8BIT_DCS,13,"CONTACT US"},
};

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSimAppToolkit::CSimAppToolkit()
{

}

CSimAppToolkit::~CSimAppToolkit()
{

}


//////////////////////////////////////////////////////////////////////
// Member functions
//////////////////////////////////////////////////////////////////////

void *CSimAppToolkit::SetupMenuPlugin(void)
{
	return(CreateMainMenu((PU8)"PIXTEL SAT",mainMenu,4));
}
/**************************************************************

	FUNCTION NAME		: CreateMainMenu

  	PURPOSE				: Creates the SAT main menu

	INPUT PARAMETERS	: U8 * alphaId, SATMENUITEM *menuPtr,U8 noOfMenuItems

	OUTPUT PARAMETERS	: nil

	RETURNS				: void*

	REMARKS				: Plugin for SAT main menu. This will return a buffer for SAT main menu
							description.
**************************************************************/

void *CSimAppToolkit::CreateMainMenu(U8 * alphaId, SATMENUITEM *menuPtr,U8 noOfMenuItems)
{
	SATSETUPMENUIND *SetupMenu;
	SATMENUITEM MenuItem[MAX_ITEMS_IN_MENU];
	U8 *tempDataPtr;
	U16 i;
	U8 *lenLSB;
	U8 *lenMSB;
	U16 tempLen;
	U8 tempMenuItems[1024];
	SetupMenu = (SATSETUPMENUIND *)CMemAllocator::MyMallocDataPtr (sizeof (SATSETUPMENUIND));
	SetupMenu->isHelpInfoAvailable =TRUE;
	SetupMenu->isSoftKeyPreferred =TRUE;
	SetupMenu->isIconAvailable =FALSE;
	SetupMenu->noAlphaId=strlen((PS8)alphaId);
	SetupMenu->dcsOfAlphaId=SAT_8BIT_DCS;
	SetupMenu->alphaId=(U8 *)malloc(SetupMenu->noAlphaId);
	memcpy(SetupMenu->alphaId,alphaId,SetupMenu->noAlphaId);
	for(i=0;i<noOfMenuItems;i++)
	{
		MenuItem[i].itemId=menuPtr[i].itemId;
		MenuItem[i].itemDcs=menuPtr[i].itemDcs;
		MenuItem[i].itemLen=strlen((PS8)menuPtr[i].itemData);
		tempDataPtr=SATCovertStringForSIM(menuPtr[i].itemData, MenuItem[i].itemLen, MenuItem[i].itemDcs, &tempLen);
		MenuItem[i].itemLen=tempLen;
		memcpy(MenuItem[i].itemData,tempDataPtr,MenuItem[i].itemLen);
		free(tempDataPtr);
	}
	SetupMenu->numOfItem=noOfMenuItems;
	tempDataPtr=tempMenuItems;
	SetupMenu->noItemData=0;
	for(i=0;i<SetupMenu->numOfItem;i++)
	{
		lenLSB=(U8 *)&MenuItem[i].itemLen;
		lenMSB = lenLSB+1;
		*tempDataPtr++ = *lenMSB;
		*tempDataPtr++ = *lenLSB;
		*tempDataPtr++ = MenuItem[i].itemId;
		*tempDataPtr++ = MenuItem[i].itemDcs;
		SetupMenu->noItemData+=4;
		memcpy(tempDataPtr,MenuItem[i].itemData,MenuItem[i].itemLen);
		tempDataPtr += MenuItem[i].itemLen;
		SetupMenu->noItemData += MenuItem[i].itemLen;
	}
	SetupMenu->itemData=(U8 *)malloc(SetupMenu->noItemData);
	memcpy(SetupMenu->itemData,tempMenuItems,SetupMenu->noItemData);
	
	SetupMenu->noItemIconIdList=0;
	SetupMenu->noNextActionIndList=0;

	return (void *)SetupMenu;
}

/**************************************************************

	FUNCTION NAME		: SelectItemPlugin

  	PURPOSE				: Plugin for Select indication in SAT

	INPUT PARAMETERS	: void

	OUTPUT PARAMETERS	: nil

	RETURNS				: void*

	REMARKS				: Returns buffer for SAT sub menu
**************************************************************/

void *CSimAppToolkit::SelectItemPlugin(void)
{
	return(CreateSubMenu((PU8)"PIXTEL SAT",subMenu,9));
}

/**************************************************************

	FUNCTION NAME		: CreateSubMenu

  	PURPOSE				: Creates a sat sub menu with the alpha id

	INPUT PARAMETERS	: U8 * alphaId, SATMENUITEM *menuPtr,U8 noOfMenuItems

	OUTPUT PARAMETERS	: nil

	RETURNS				: void*

	REMARKS				: Returns buffer for SAT sub menu with the alpha id 
**************************************************************/


void *CSimAppToolkit::CreateSubMenu(U8 * alphaId, SATMENUITEM *menuPtr,U8 noOfMenuItems)
{
	
	SATSELECTITEMIND *SetupMenu;
	SATMENUITEM MenuItem[MAX_ITEMS_IN_MENU];
	U8 *tempDataPtr;
	U16 i;
	U8 *lenLSB;
	U8 *lenMSB;
	U16 tempLen;
	U8 tempMenuItems[1024];
	SetupMenu = (SATSELECTITEMIND *)CMemAllocator::MyMallocDataPtr (sizeof (SATSELECTITEMIND));
	SetupMenu->isHelpInfoAvailable =TRUE;
	SetupMenu->isSoftKeyPreferred =TRUE;
	SetupMenu->isIconAvailable =FALSE;
	SetupMenu->isItemIdAvailable=FALSE;
	SetupMenu->noAlphaId=strlen((PS8)alphaId);
	SetupMenu->dcsOfAlphaId=SAT_8BIT_DCS;
	SetupMenu->alphaId=(U8 *)malloc(SetupMenu->noAlphaId);
	memcpy(SetupMenu->alphaId,alphaId,SetupMenu->noAlphaId);
	for(i=0;i<noOfMenuItems;i++)
	{
		MenuItem[i].itemId=menuPtr[i].itemId;
		MenuItem[i].itemDcs=menuPtr[i].itemDcs;
		MenuItem[i].itemLen=strlen((PS8)menuPtr[i].itemData);
		tempDataPtr=SATCovertStringForSIM(menuPtr[i].itemData, MenuItem[i].itemLen, MenuItem[i].itemDcs, &tempLen);
		MenuItem[i].itemLen=tempLen;
		memcpy(MenuItem[i].itemData,tempDataPtr,MenuItem[i].itemLen);
		free(tempDataPtr);
	}

	SetupMenu->numOfItem=noOfMenuItems;
	tempDataPtr=tempMenuItems;
	SetupMenu->noItemData=0;
	for(i=0;i<SetupMenu->numOfItem;i++)
	{
		lenLSB=(U8 *)&MenuItem[i].itemLen;
		lenMSB = lenLSB+1;
		*tempDataPtr++ = *lenMSB;
		*tempDataPtr++ = *lenLSB;
		*tempDataPtr++ = MenuItem[i].itemId;
		*tempDataPtr++ = MenuItem[i].itemDcs;
		SetupMenu->noItemData+=4;
		memcpy(tempDataPtr,MenuItem[i].itemData,MenuItem[i].itemLen);
		tempDataPtr += MenuItem[i].itemLen;
		SetupMenu->noItemData += MenuItem[i].itemLen;
	}
	
	SetupMenu->itemData=(U8 *)malloc(SetupMenu->noItemData);
	memcpy(SetupMenu->itemData,tempMenuItems,SetupMenu->noItemData);
	
	SetupMenu->noItemIconIdList=0;
	SetupMenu->noNextActionIndList=0;
	
	return (void *)SetupMenu;
}
/**************************************************************

	FUNCTION NAME		: DisplayTextPlugin

  	PURPOSE				: Plugin for Display Text indication

	INPUT PARAMETERS	: void

	OUTPUT PARAMETERS	: nil

	RETURNS				: void*

	REMARKS				: Returns buffer for SAT display text
**************************************************************/

void *CSimAppToolkit::DisplayTextPlugin(void)
{
	return(CreateDisplayText("This is a sample text to test the functionality of Display Text",SAT_8BIT_DCS));
}
/**************************************************************

	FUNCTION NAME		: CreateSubMenu

  	PURPOSE				: Creates a buffer for sat display text 
	INPUT PARAMETERS	: U8 * alphaId, U8 dcs

	OUTPUT PARAMETERS	: nil

	RETURNS				: void*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -