// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).// All rights reserved.// This component and the accompanying materials are made available// under the terms of "Eclipse Public License v1.0"// which accompanies this distribution, and is available// at the URL "http://www.eclipse.org/legal/epl-v10.html".//// Initial Contributors:// Nokia Corporation - initial contribution.//// Contributors://// Description:///** @file @internalAll */#ifndef __SIM_UTILS_H__#define __SIM_UTILS_H__#include <etel.h>#include <et_phone.h>#include <etelmm.h>#include <etelpckt.h>// This should always be used for calling the ReqCompleted() func when possible#define SYMBIAN_EXTERR(aExtended, aBasic) ((aExtended << 16) | (aBasic & 0x0000FFFF))#define SYMBIAN_REQEXTERR(aHandle, aExtended, aBasic) \ ReqCompleted(aHandle, SYMBIAN_EXTERR(aExtended, aBasic));RCall::THookStatus ConvertStateToHook(RMobileCall::TMobileCallStatus aStatus);RPhone::TMode ConvertStateToMode(RMobileCall::TMobileCallStatus aStatus);TBool IsStateActive(RMobileCall::TMobileCallStatus aStatus);void ConvertAsciiSms(const TDesC8& aAsciiPdu, TDes8& aOctetPdu);void ConvertTextToBinary(const TDesC& aSrc, TDes8& aDst);TInt AsciiToNum(const TPtrC8 aParam, TUint8& aVal);TInt AsciiToNum(const TPtrC8 aParam, TUint16& aVal);TInt AsciiToNum(const TPtrC8 aParam, TUint32& aVal);TInt AsciiToNum(const TPtrC8 aParam, TInt32& aVal);TInt ParseMixedBinaryAsciiDataL(TDes8& aTextToConvert);TInt CharToSeptNumL(const TChar& aChar);inline TInt AsciiHexToNum(const TPtrC8 aParam, TUint8& aVal);// Most CSim Class will need this notification data.struct TNotifyData { TBool iNotifyPending; //indicates if a notification is pending TTsyReqHandle iNotifyHandle; //the TSY notification handle TAny* iNotifyData; //Holds the data for the notification pending };/**Used to specify format of the additional parameter in the config file that will go into the PCO buffer.*/enum TConfigDataFormat { EConfigDataFormatAscii, // 0 EConfigDataFormatMixedBinaryAndAscii, // 1 EMaxConfigDataFormat };// Inline functionsinline TInt AsciiHexToNum(const TPtrC8 aParam, TUint8& aVal)/*** Converts a hexadecimal value stored in a TPtrC to its TUint value** @param aParam TPtr pointing to the hexadecimal or number to convert* @param aVal TUint reference to the val converted.* @return TInt Standard error return.*/ { TLex8 lex(aParam.Left(2)); return lex.Val(aVal,EHex); }#endif // __SIM_UTILS_H__