diff -r 000000000000 -r 63b37f68c1ce adaptationlayer/tsy/simatktsy_dll/inc/satutil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/tsy/simatktsy_dll/inc/satutil.h Fri Nov 06 17:28:23 2009 +0000 @@ -0,0 +1,324 @@ +/* +* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + + + +#ifndef SATUTIL_H +#define SATUTIL_H + + +// INCLUDES +#include // etel sat api +#include // etel multimode api + + +// CONSTANTS + +//UCS2 coding +const TUint8 KUCS2ArabicCoding = 0x80; +const TUint8 KUCS2GreekCoding = 0x81; +const TUint8 KUCS2TurkishCoding = 0x82; + +// USIM Status words +const TUint8 KAtkSwDataNtfSw1NormalEnding = 0x90; +const TUint8 KAtkSwDataNtfSw2NormalEnding = 0x00; +const TUint8 KAtkSwDataNtfSw1busy = 0x93; + +const TUint8 KAllowed = 0x01; +const TUint8 KModified = 0x02; +const TUint8 KChanged = 0x03; +const TUint8 KRejected = 0x04; +const TUint8 KError = 0x08; +const TUint8 KNoTonNpi = 0xFF; +const TUint8 KTonNpiInternational = 0x91; +const TUint8 KTonNpiUnknown = 0x81; + + +// DATA TYPES + +// Sms data coding schemes +enum TSmsDcs + { + ESmsUnknownOrReservedDcs = 0xFF, + ESms7BitDcs = 0x00, + ESms8BitDcs = 0x04, + ESms16BitDcs = 0x08 + }; + + +// FORWARD DECLARATIONS +class CBerTlv; +class CTlv; + + +// CLASS DECLARATION +/** +* SAT Transaction Id Message class. +* Handles and stores the current ID of SAT messages, and +* transaction ID setting and verifying. +* +* @lib simatktsy.lib +* @since Series60_ver 2.6 +*/ +class TTransIdMessage + { + public: + + /** + * C++ default constructor. + */ + TTransIdMessage(); + + public: // New functions + + /** + * Gets a new transaction id and saves it to transaction id + * table. + * @since Series60_ver 2.6 + * @return none + */ + TUint8 GetTransactionId(); + + protected: // Data + + TUint8 iTransNum; + }; + + +/** +* SAT Utility class. +* This class includes small aid fuctions +* for MMSAT specific use. +* +* @lib ?library +* @since Series60_ver 2.6 +*/ +class TSatUtility + { + private: // Constructors + + /** + * C++ default constructor. Static utility library isn't meant to be + * instanced + * @since NCP 5.0 + */ + TSatUtility(); + + + public: // New functions + + /** + * Map TON and NPI to RSat TON and NPI values + * @since Series60_ver 2.6 + * @param aTonAndNpi: Source TON and NPI + * @param aTon: Mapped Type of number + * @param aNpi: Mapped Numbering plan + * @return void: none + */ + static void GetTonAndNpi( TInt aTonAndNpi, RSat::TTypeOfNumber* aTon, + RSat::TNumberingPlan* aNpi ); + + /** + * Map TON and NPI to Etel MM TON and NPI values + * @since NCP 5.0 + * @param aTonAndNpi: Source TON and NPI + * @param aTon: Mapped Type of number + * @param aNpi: Mapped Numbering plan + * @return void: none + */ + static void GetTonAndNpi( TInt aTonAndNpi, + RMobilePhone::TMobileTON& aTon, RMobilePhone::TMobileNPI& aNpi ); + + /** + * Converts 7-bit packed string to 8-bit unpacked format + * @since Series60_ver 2.6 + * @param aString is source + * @param aOutput converted 8-bit unpacked string + * @return void: none + */ + static void Packed7to8Unpacked( TPtrC8 aString, TDes8& aOutput ); + + /** + * Converts UCS2 string to 7-bit packed format + * @since Series60_ver 2.6 + * @param aString: is source + * @param aOutput: converted 7-bit packed string + * @return void: none + */ + static void UCSToPacket7( TPtrC aString, TDes8& aOutput ); + + /** + * Converts Binary Coded Decimal to ASCII + * @since Series60_ver 2.6 + * @param aTring is source + * @param aOutput converted 8-bit string + * @return void: none + */ + static void BCDToAscii( TPtrC8 aString, TDes8& aOutput ); + + /** + * Converts Ascii string to Binary Coded Decimal + * @since Series60_ver 2.6 + * @param aString is source + * @param aOutput converted 8-bit string + */ + static void AsciiToBCD(const TDesC8& aString, TDes8& aOutput ); + + /** + * Remove expansion digit '.' from phone number string if present. + * @since NCP 3.1 + * @param aPhoneNumber Number to be converted + * @return void: none + */ + static void RemoveExpansionDigit( TDes8& aPhoneNumber ); + + /** + * Set Alpha identifier as a Unicode text string + * and according to the alphabet used + * @since Series60_ver 2.6 + * @param aRawData input data that was extracted with + * ETLV_AlphaIdentifier + * @param aAlphaId output + * @return void: none + */ + static void SetAlphaId( TPtrC8 aRawData, TDes& aAlphaId ); + + /** + * Convert integer to BCD format. If number is more than 100 only last + * two digits is converted. + * @since Series60_ver 2.6 + * @param aTime time + * @return TUint8 converted BCD value + */ + static TUint8 ConvertToSemiOctet( TInt aTime ); + + /** + * Browse a text in Unicode format, and for some specific characters + * replace with the correct byte value + * @since Series60_ver 2.6 + * @param aOutput unicode format string + * @param aInput input + * @return None + */ + static void ConvertSms7ToUnicode16( TDes16& aOutput, TDesC8& aInput); + + /** + * Converts unicode16 string to sms 7 + * @since Series60_ver 2.6 + * @param sms 7 string + * @param unicode 16 + * @return None + */ + static void ConvertUnicode16ToSms7( TDes8& aOutput, TDesC16& aInput); + + /** + * Fill in a TDuration structure + * @since Series60_ver 2.6 + * @param aBerTlv tlv containing duration data + * @param aTDuration duration structure + * @return None + */ + static void FillDurationStructure( CBerTlv& aBerTlv, + RSat::TDuration& aTDuration ); + + /** + * Fill in a TIconId structure + * @since Series60_ver 2.6 + * @param tlv data containing icon address data + * @param icon id structure + * @param item number + * @return None + */ + static void FillIconStructure( CBerTlv& aBerTlv, + RSat::TIconId& aTIconId, TInt aItemNmb = 0 ); + + /** + * Checks Sw1 and Sw2 bytes coming from Sim server + * @since Series60_ver 2.6 + * @param aSw1 status word 1 + * @param aSw2 status word 2 + * @return TInt8 Type of sim atk error + */ + static TInt8 Sw1Sw2Check( TUint8 aSw1, TUint8 aSw2 ); + + /** + * Set Text string as a Unicode text string + * @since Series60_ver 2.6 + * @param aTextString text string + * @param aText unicode output text string + * @return None + */ + static void SetText( CTlv& aTextString, TDes& aText ); + + /** + * Convert Alpha field text string to a Unicode text string. + * @since Series60_ver 2.6 + * @param aSource text string + * @param aText unicode output text string + * @return None + */ + static void ConvertAlphaFieldsToUnicode( TDesC8& aSource, + TDes& aText ); + + /** + * Finds whether the data coding scheme, coded in CBS format, + * is 7-bit, 8-bit or 16-bit + * @since Series60_ver 2.6 + * @param aDcs Input data coding scheme + * @param aIs7bit Output boolean indicating 7-bit DCS + * @param aIs8bit Output boolean indicating 8-bit DCS + * @param aIs16bit Output boolean indicating 16-bit DCS + * @return None + */ + static TSmsDcs DecodeCbsDcs( const TUint8 aDcs ); + + /** + * Get 16-bit word from descriptor + * @since NCP 5.0 + * @param aTarget 16-bit unsigned descriptor + * @param aSource + * @param aIndex to point location in descriptor from where to copy word + * @return None + */ + static void GetWord( TUint16& aTarget, TDesC8& aSource, TInt aIndex ); + + /** + * Set 16-bit word to descriptor + * @since NCP 5.0 + * @param aSource 16-bit unsigned descriptor + * @param aTarget + * @return None + */ + static void AppendWord( TUint16 aWord, TDes8& aTarget ); + + /** + * Set Text string User Login and User Password data + * @since PP 5.2 + * @param aBerTlv tlv containing User Login and User Password data + * @param aUserLogin User Login data + * @param aUserPassword User Password data + * @return None + */ + static void SetUserLoginAndUserPassword( CBerTlv& aBerTlv, + RSat::TTextString& aUserLogin, + RSat::TTextString& aUserPassword ); + }; + + +#endif // SATUTIL_H + +// End of File