亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfwmanager.h

?? 這是法國Kaleido公司提供了一個手機mmi設計平臺
?? H
字號:
/***************************************************************************
					CFWManager.h  -  
					-------------
				begin                : Tue Mar 3 2004
				copyright            : (C) 2004 by DigitalAirways
				email                : info@digitalairways.com
***************************************************************************/

/*
* Copyright (c) 2003-2006 DigitalAirways, sarl. All Rights Reserved.
*
* This software is the confidential and proprietary information of
* DigitalAirways, sarl. ("Confidential Information").  You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with DigitalAirways.
* A copy of this license is included in the licence.txt file included
* in this software package.
*
* $Id: CFWManager.h,v 1.53 2007-04-24 15:04:33 charles.gorand Exp $
*

**************************************************************
* TODO
**************************************************************


**************************************************************
* HISTORY
**************************************************************

-

**************************************************************
* RELEASE NOTES
**************************************************************


*/

#ifndef __CFWManager__
#define __CFWManager__

#define CFWManager_BUILD "48-HEAD"
#define CFWManager_DEV   "0"

extern "C"
{
#include "CFW.h"#include "EVENT.h"
#include "cswtype.h"
#include "sul.h"


}


#include <stdio.h> // For sprintf...

#include "KIDEfines.h"
#include "EB_Utils.h"
#include "EB_GContext.h"
#include "KR_Messages.h"
#include "EB_Layout.h"
#include "EB_Slicer.h"
#include "EBO_Services.h"

class CFWManager ;

#define CFW_NW_UTI    0
#define CFW_SIM_UTI   1
#define CFW_SMS_UTI   2 


#define HAVE_CFW_MGR  1
/* K1Z to make dynamic */
#define TMP_COMMAND_BUFFER 5000

#define MAX_PARSE_PHONE_INFO 100
/* Default Timeout at 10 secondes. */
// #define AT_COMMANDER_DEFAULT_TIMEOUT		3000
// CG : only one timeout !!!
#define AT_COMMANDER_DEFAULT_TIMEOUT		COMMAND_DEF_TIMEOUT

#define POLL_FREQUENCY 500 /* Polling frequency for the sliced function */

#include "TAPIManager.h"


// Width and Height of command_list tab.
#define TAPI_COMMAND_LIST_WIDTH		5
#define TAPI_COMMAND_LIST_HEIGHT	10

// K1Z: please document these symbols
#define COMMAND_LIST_ENUM	0
#define COMMAND_LIST_CODE	1
#define COMMAND_LIST_PARAM	2
#define COMMAND_LIST_AT_COM 3
#define COMMAND_LIST_USER	4


#define AT_INMSG_OK	0
#define AT_INMSG_UNKNOWNTYPE	1
#define AT_INMSG_UNKNOWNFORMAT	2
#define AT_INMSG_UNIMPLEMENTED	3

static const char* barringCodes[] = { 
	"AO", // TAPI_SS_BARRING_OUT
	"OI", // TAPI_SS_BARRING_OUT_TO_INTL
	"OX", // TAPI_SS_BARRING_OUT_TO_INTL_BUT_HOME
	"AI", // TAPI_SS_BARRING_INC
	"IR", // TAPI_SS_BARRING_INC_ROAMED
	"AB", // TAPI_SS_BARRING_CANCEL_ALL
	"AG", // TAPI_SS_BARRING_CANCEL_ALL_OUT
	"AC"  // TAPI_SS_BARRING_CANCEL_ALL_INC
	} ;

#define AT_COM_PHONEBOOK_NOTHING_ASKED			0
#define AT_COM_PHONEBOOK_ASK_NUMBER_OF_CONTACTS		1
#define AT_COM_PHONEBOOK_ASK_CONTACTS			2
#define AT_COM_PHONEBOOK_RECEIVING_CONTACT		3

#define AT_COM_SMS_NOTHING_ASKED			0
#define AT_COM_SMS_LIST_ASKED				1
#define AT_COM_SMS_LIST_RECEIVING			2


void CFWManager_sliced_poller(EBSliceMsgs* slicer,GContext* gContext,void* context,int msgComplete,int actComplete, unsigned long option);

typedef int (*commandFMHandler)(CFWManager*, char**) ;

struct commandDescriptor {
	int commandID;
	char* commandString;
	char commandFormat;
	} ;

struct commandFMDescriptor {
	char* commandString;
	commandFMHandler commandHandler;
} ;


class ModemManager;


class CFWManager : public TAPIManager {
	public: 
		int modemManuf; // Modem manufacturer. This allows to define some modem's specific behaviours.
		char* tmpBuffer;
		int currentBufferLen;
		// These attributes may be used to manage multiple lines unsollicited command
		// They may be both resetted by ack'ing commands (OK, ERROR,...)
		int waitedLines; // Total number of lines to wait
		int lastLine ; // Number of the last line read
		KALEIDO_TIME_TYPE lastGeneralStatusRefresh; // Time of the last request to refresh the general status

		// Check private data
		// Used to store the SS' reason of the current call. 
		// This is unfortunately necessary because the answers to status requests do not contain the reason specified in the request.
		int currentSSReason ; 

	private:
		ModemManager* modem;

		EBSliceMsgs* slicer;
		char deviceS[20]; // This string is used to 
		char initialPIN[MAX_PIN_LEN]; // This is the PIN code declared at instanciation
		// This default command handler is the one that is
		// called when there is no more specific handler.
		commandFMHandler defaultCommandHandler;
		/* Contain the list of SIM contact during receiption. */
		SmallArrayList* temporaryPhoneBookList;
		/* This boolean is set to true when temporaryPhoneBookList->size() > 0
		and message OK is recceived from Modem. */
		boolean isPhoneBookListReceived;
		/* This int allows to know if there is no contact in sim. When it
		sets to 1, it's mean we have ask the list. If msgOK is catch it is set to 2, or 0 on
		msgERROR. If msgOK is catch instead of msgCPBR, and askPhoneBookList=2,
		that's mean there is no contact in SIM.*/
		int askPhoneBookList;
		/* This int allow to know the status of getting all SMS process. */
		int statusSMSList;
		SmallArrayList* temporarySMSList;
		SmallArrayList* messagesTranslations; /* each entry is composed by 3 long : plateformMessage, krebMessageOK and krebMessageError */
	public:
		SmallArrayList* callTidList;
		int newCallId;
		int newCalltId;

	private:
		boolean extractLineFromCurrentBuffer(char* commandData, int* commandLen);
		void processFMData(char* inData, int inLen, boolean reset=false) ;
		boolean fetchPDU_SMS(char* status, char* alpha, char* msglen, char* buffer);
		void addUnreadSMS(char* queryString) ;
		void setDivert(int reason, int action, char* number, int delay, int classX ,unsigned long newMsgOK, unsigned long newMsgERROR, KALEIDO_TIME_TYPE timeout);
		void manageDivert(int reason, char* propertyName, boolean forceWrite, unsigned long newMsgOK, unsigned long newMsgERROR, KALEIDO_TIME_TYPE timeout);
		void setBarring(int reason, int action, char* password, char* newPassword,int classX, unsigned long newMsgOK, unsigned long newMsgERROR, KALEIDO_TIME_TYPE timeout);
		void manageBarring(int reason, char* propertyName, boolean forceWrite, unsigned long newMsgOK, unsigned long newMsgERROR, KALEIDO_TIME_TYPE timeout);
		int setMesssageTranslation(long platformMessage, long krebMessageOK, long krebMessageErr);
		int notifyMMI(long platformMessage, boolean ok);
		/* allow process specials actions */
		void ackCurrentCommand(int status);
		
		/**
		 *  Allow to handle updateProperty depending on module
		 * @return the same things as updateProperty. If it returns not implemented it means that
		 * the function is not available in this function.
		 */
		int update_call_property(char* propertyName, boolean forceWrite=false, unsigned long newMsgOK=0l, unsigned long newMsgERROR=0l,KALEIDO_TIME_TYPE timeout=COMMAND_DEF_TIMEOUT);
		
		// This is used to define the type of current STK request.
		// The possible value are STK_TYP_***
		int stkCurrentType ;  

		
	public:
		DEFINE_NEW(CFWManager);
		DEFINE_DELETE(CFWManager) ;		
		CFWManager(char* newPinCode, char* newServer, int newPort=0);
		virtual ~CFWManager() ;
		void setGContext(GContext* newGContext);
		//******************************************
		//***** B: public TAPIManager's methods
		//******************************************		

		/*
		 * This function allows to request the update of a property. This update induces a synchronisation between the modem (or any equivalent device)
		 * and the values known in the global store.
		 *  propertyName : a string containing the name of the concerned property. Please use the TAPI_** constants defined in TAPIManager.h
		 *  forceWrite   : ==false -> the value currently used by the device must update the one known in the global store
		 *                 !=false -> the value currently known in the global store must update the one used in the device
		 *  newMsgOK     : !=0 -> if the update is correctly processed, this action will be sent 
		 *  newMsgERROR  : !=0 -> if the update is NOT correctly processed, this action will be sent 
		 *  timeout      : the update must be processed in a maximum delay of "timeout" milliseconds. When this delay is reached, the update is considered as failed.
		 *                 BEWARE: in this case, there is no guaranty that the value known in the global store is synchronized with the one used by the modem
		 *
		 * This function may return:
		 * TAPI_PROPERTY_AVAILABLE	   : The property is available and accurate 
		 * TAPI_PROPERTY_REFRESHING    : The property is being refreshed 
		 * TAPI_PROPERTY_UNIMPLEMENTED : The property is not yet implemented
		 * TAPI_PROPERTY_UNKNOWN       : The property is unknown 
		 *
		 */
		virtual int updateProperty(char* propertyName, boolean forceWrite=false, unsigned long newMsgOK=0l, unsigned long newMsgERROR=0l,KALEIDO_TIME_TYPE timeout=COMMAND_DEF_TIMEOUT);
		virtual void initialize();
		//******************************************
		//**** Generale purpose methods
		virtual KALEIDO_TIME_TYPE poll(boolean reset=false, char* inData=NULL, int inLen=0);
	
		virtual void test(int testNum, char* message) ;
		//******************************************
		//**** Access to internal states 		
		//******************************************
		//***** E: public TAPIManager's methods
		//******************************************
	public: // These method are supposed to be used only by xxManagers sub-classes
		//**** Access to managers sub-classes
		ModemManager* getModemManager() { return modem; }
		//**** Main AT commands encapsulation ******
		int testATCommand();
	private:		
		/* 
		* Returns an array of char*. The first one that is NULL may be used to know
		* the array's size.
		*/
		char** parsePhoneInfo(char* curScan) ;
		/*
		* This method is used to parse the messages and to update the status variables.
		*/
		void processMessage(char* msg);

	public:
		/* 
		* Returns the number of strings contained in the array rslt, considering the fact
		* that the first empty element is the end of the array.
		*/
		int stringArrayLength(char** rslt);
		int getCurrentSTKType() { return stkCurrentType; }
		void setCurrentSTKType(int val) {stkCurrentType=val;getContext()->replaceIntData(TAPI_STK_STATUS,val); }

		/********************************
		 ****** FM commands processing **
		 **********$*********************/
		// Final result codes
		int msg_ATI(char** args);		// Receive the modem's identification. BEWARE: this command is not prefixed
		int msgOK(char** args);			// Acknowledges correct execution of a command line
		int msgPrompt(char** args);		// More data needed...
		int msgERROR(char** args);		// Command not accepted
		int msgCME_ERROR(char** args);	// Error from GSM 07.05 commands
		int msgCMS_ERROR(char** args);	// Error from SMS commands (07.07).
		int msgBUSY(char** args);		// Busy signal detected
		int msgNO_ANSWER(char** args);	// Connection completion timeout
		int msgNO_CARRIER(char** args);	// Connection terminated
		int msgCONNECT_SPEECH(char** args);	// Outgoing call accepted
		// Unsolicited result codes
		int msgRING(char** args);	// Incoming call signal from network
		int msgCMTI(char** args);	// Incoming message stored in <mem> ("SM") at location <index>
		int msgCMT(char** args);	// Incoming message directly displayed
		int msgCDS(char** args);	// SMS status report after sending a SMS
		int msgCCCM(char** args);	// Current Call Meter value
		int msgCKEV(char** args);	// Key press or release
		int DoCallWaiting(CFW_EVENT * pCFW);	// Call Waiting number
		int DoCallForwarding(CFW_EVENT * pCFW);

		int msgCLIP(char** args);	// Incoming Call Presentation
		int msgCLIR(char** args);	// Outgoing Call Presentation
		int msgCREG(char** args);	// Network registration indication
		int msgCRING(char** args);	// Incoming call type (VOICE, FAX ...)
#ifdef MODEM_TYPE_WAVECOM
		int msgWIND(char** args);	// (specific) Specific unsolicited indication (SIM Insert/Remove, End of init, Reset, Alerting, Call creation/release)
#endif // def MODEM_TYPE_WAVECOM
		int msgCSQ(char** args);	// 
		int msgCSSI(char** args);	// Supplementary service notification during a call setup
		// Intermediate result codes
		int msgCOLP(char** args);	// Outgoing Call Presentation
		int msgCR(char** args);		// Outgoing Call report control
		int msgILRR(char** args);	// Local TA-TE data rate
		int msgCONNECT(char** args);// Data connection at xxxxx bauds
		int msgCSSU(char** args);	// Supplementary service notification during a call
		// Request result codes
		int msgCBC(char** args);	//
		int msgCPAS(char** args);	//
		int msgCPIN(char** args);	//
		int msgCPBR(char** args);	//
		int msgCRTC(char** args);	//
		int msgCMGR(char** args);	//
		int msgCMGL(char** args);	//
		int msgCPMS(char** args);	//
		int msgCMGF(char** args);	//	
		int msgCOPS(char** args);	//	
		// For USSD manager
		int msgCUSD(char** args);
		int msgCCFC(char** args);
		int msgCLCK(char** args);
		int msgCOLR(char** args);
		int msgCLCC(char** args);
		int msgCPBS(char** args);
		// For STK manager		
#ifdef MODEM_TYPE_SE /* This is a Sony Ericsson modem */
		int msgSTKM(char** args);
		int msgSTKL(char** args);
		int msgSTKI(char** args);
		int msgSTKTO(char** args);
		int msgSTKC(char** args);
		int msgSTKE(char** args);
#endif // def MODEM_TYPE_SE /* This is a Sony Ericsson modem */
#ifdef MODEM_TYPE_MXC /* This is a MXC modem */
// 		int MXC_STKphase;
// 		boolean MXC_getAlphaText(char* inText, char* gsKey, int requestType);
// 		boolean MXC_getOptionText(char* inText, char* gsKey);
// 		int msgGSTK(char** args);
#endif // def MODEM_TYPE_MXC /* This is a MXC modem */
  private: 
    virtual UINT32 DispatchEvent(COS_EVENT *pEvent){ return 0;};
    UINT32 DoCfwInit(CFW_EVENT* pEvent);
    UINT32 DispatchCfwEvent(CFW_EVENT* pEvent);
    UINT32 DispatchPMEvent(COS_EVENT* pEvent);
    UINT32 DoCallEventProc(CFW_EVENT* pEvent);
    UINT32 DoSpeechCallInd(CFW_EVENT* pEvent);
    UINT32 DoSmsEventProc(CFW_EVENT* pEvent);

    VOID OperatorId2Plmn(UINT8 *OperatorId, UINT32 *plmn);

    UINT32 DoSsEventProc(CFW_EVENT* pEvent);
		} ;
#endif	
// ndef __CFWManager__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品麻豆网站| 激情文学综合插| 国产福利一区在线| 欧美性极品少妇| 亚洲色图在线看| 国产一区二区女| 欧美一区二区网站| 亚洲成av人片在www色猫咪| 成人爽a毛片一区二区免费| 日韩视频在线永久播放| 亚洲二区在线观看| 色欧美日韩亚洲| 中文成人av在线| 国产麻豆一精品一av一免费| 8x8x8国产精品| 亚洲午夜激情网站| 91丨国产丨九色丨pron| 国产精品超碰97尤物18| 国产传媒久久文化传媒| 久久精品一区二区| 国产尤物一区二区| 久久亚洲综合av| 国产在线播精品第三| 精品国产在天天线2019| 美腿丝袜亚洲三区| 日韩一级大片在线观看| 日本美女一区二区三区| 欧美一级二级三级乱码| 免费人成网站在线观看欧美高清| 精品视频1区2区| 午夜av一区二区| 9191久久久久久久久久久| 亚洲成人av在线电影| 欧美日韩三级一区二区| 日韩不卡手机在线v区| 欧美肥妇free| 奇米精品一区二区三区四区 | 婷婷综合另类小说色区| 欧美吻胸吃奶大尺度电影 | 精品一区二区三区免费视频| 日韩无一区二区| 国产成人免费xxxxxxxx| 中文字幕+乱码+中文字幕一区| 国产成人99久久亚洲综合精品| 国产精品女同一区二区三区| 91影院在线观看| 亚洲一区二区精品视频| 欧美一区二区三区小说| 激情六月婷婷综合| 国产精品毛片久久久久久久| 96av麻豆蜜桃一区二区| 亚洲国产你懂的| 日韩精品一区二区在线| 岛国精品在线播放| 亚洲伊人色欲综合网| 欧美一区二区三区婷婷月色| 懂色一区二区三区免费观看| 亚洲综合久久久久| 精品免费视频一区二区| av在线播放成人| 日韩国产精品久久久| 国产亚洲女人久久久久毛片| 91天堂素人约啪| 久久成人麻豆午夜电影| 亚洲美女免费视频| 日韩欧美一级片| 成人av综合在线| 蜜臀91精品一区二区三区 | 欧美在线啊v一区| 蜜臀久久久久久久| 国产精品短视频| 欧美一卡2卡三卡4卡5免费| 成人一级黄色片| 三级一区在线视频先锋| 国产欧美日韩卡一| 欧美女孩性生活视频| 成人久久18免费网站麻豆| 日本成人在线看| 亚洲女人****多毛耸耸8| 精品国产第一区二区三区观看体验 | 欧美精品一区二区三区蜜桃 | 欧美v日韩v国产v| 在线视频你懂得一区二区三区| 久久不见久久见中文字幕免费| 亚洲乱码中文字幕| 日本一区二区久久| 日韩一区二区三区电影在线观看 | 亚洲欧美在线aaa| 精品国偷自产国产一区| 欧美日本在线看| 色哦色哦哦色天天综合| 懂色av噜噜一区二区三区av| 久久国产精品99精品国产| 亚洲成a人v欧美综合天堂| 亚洲人亚洲人成电影网站色| 久久精品免费在线观看| 日韩一区在线免费观看| 精品久久免费看| 欧美精品xxxxbbbb| 欧美日韩在线播放三区四区| 不卡免费追剧大全电视剧网站| 国产麻豆日韩欧美久久| 另类人妖一区二区av| 日韩精品91亚洲二区在线观看| 亚洲欧洲综合另类| 亚洲日本青草视频在线怡红院| 国产精品午夜在线观看| 国产色婷婷亚洲99精品小说| 精品国产乱码久久久久久蜜臀| 日韩三级高清在线| 欧美一级二级三级乱码| 在线综合亚洲欧美在线视频| 6080午夜不卡| 日韩亚洲欧美综合| 欧美不卡一区二区三区| 精品国内二区三区| 国产欧美日韩综合精品一区二区| 久久午夜色播影院免费高清| 久久奇米777| 国产精品乱码一区二三区小蝌蚪| 亚洲国产精品黑人久久久| 欧美激情一区二区三区不卡| 中文字幕第一区第二区| 亚洲欧美另类在线| 亚洲第一av色| 美女一区二区三区| 丰满放荡岳乱妇91ww| 99久久精品一区| 欧美无乱码久久久免费午夜一区 | 欧美日韩在线播放三区四区| 欧美二区乱c少妇| 精品99久久久久久| 久久av中文字幕片| 97aⅴ精品视频一二三区| 99re热视频这里只精品| av一区二区三区| 欧美三级在线看| 日韩欧美亚洲国产精品字幕久久久| 欧美tickling网站挠脚心| 国产日韩欧美电影| 亚洲国产日韩a在线播放性色| 免费日韩伦理电影| 成人黄色免费短视频| 欧美婷婷六月丁香综合色| 日韩欧美不卡一区| 亚洲人成亚洲人成在线观看图片 | 亚洲精品中文字幕在线观看| 午夜久久久久久电影| 国内精品写真在线观看| 91香蕉视频污| 日韩精品中文字幕在线一区| 中文字幕一区免费在线观看| 婷婷久久综合九色综合伊人色| 亚洲欧美影音先锋| 久久精品一二三| 国产欧美日韩麻豆91| 亚洲在线一区二区三区| 美女尤物国产一区| 91网站在线播放| 久久久久久毛片| 丝袜美腿亚洲综合| 色综合久久中文综合久久97| 日韩欧美久久一区| 一区二区日韩电影| 成人妖精视频yjsp地址| 日韩一区二区精品葵司在线| 中文字幕综合网| 国产成人综合亚洲网站| 在线观看网站黄不卡| 国产视频一区二区在线观看| 日韩在线一二三区| 91网站视频在线观看| 久久精品人人做人人综合| 日本网站在线观看一区二区三区| 色呦呦一区二区三区| 国产欧美日韩在线看| 精一区二区三区| 欧美日韩国产区一| 亚洲精品高清视频在线观看| 国产精一品亚洲二区在线视频| 色欲综合视频天天天| 中文字幕欧美激情一区| 久久福利资源站| 日韩小视频在线观看专区| 亚洲二区在线观看| 在线观看网站黄不卡| 亚洲欧美欧美一区二区三区| 成人午夜又粗又硬又大| 久久久久国产成人精品亚洲午夜| 久久成人久久鬼色| 日韩欧美在线观看一区二区三区| 午夜精品福利一区二区三区av | 一区二区三区鲁丝不卡| 国产伦精品一区二区三区视频青涩| 91精品国产一区二区三区蜜臀| 一区二区三区精品视频在线| 色成年激情久久综合| 亚洲自拍偷拍网站| 欧美视频在线播放| 亚洲国产一区二区三区青草影视 |