diff -r 000000000000 -r ff3b6d0fd310 phoneclientserver/aiwdialdata/inc/aiwinternaldialdata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneclientserver/aiwdialdata/inc/aiwinternaldialdata.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,519 @@ +/* +* Copyright (c) 2005-2006 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: Dial data used with AIW for making calls. +* +*/ + + +#ifndef CAIWINTERNALDIALDATA_H +#define CAIWINTERNALDIALDATA_H + +// INCLUDES +#include +#include +#include "aiwdialdata.h" + +/** Constants used by aiwinternaldialdata interface. */ +namespace AIWInternalDialData + { + /** Maximum name length. */ + const TInt KMaximumNameLength = 50; + + /** Maximum phone number length same as used by phone. */ + const TInt KMaximumPhoneNumberLength = 100; + + /** The subaddress length, see ITU-T I.330 and 3GPP TS 11.14. */ + const TInt KAiwSubAddressLength = 21; + + /** The maximum bearer length. The bearer capabilities as + defined in GSM 04.08. */ + const TInt KAiwBearerLength = 14; + + /** Maximum length of UUI data. */ + const TInt KAiwUUILength = 129; + } + +// CLASS DECLARATION + +/** +* Dial data for SAT application. +* +* @lib aiwdialdata.lib +* @since S60 3.2 +*/ +NONSHARABLE_CLASS( CAiwInternalDialData ): public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor for implementation class. + * Use this method for creating a instance with null items. + * + * @since S60 3.2 + * @return A pointer to the new object. + */ + IMPORT_C static CAiwInternalDialData* NewL(); + + /** + * Two-phased constructor for implementation class. Leaves the + * pointer to the cleanup stack. + * Use this method for creating a instance with null items. + * + * @since S60 3.2 + * @return A pointer to the new object. + */ + IMPORT_C static CAiwInternalDialData* NewLC(); + + /** + * Two-phased constructor for implementation class. + * Use this method for creating a instance with null items. + * + * @since S60 3.2 + * @param aPackage descriptor parameter. + * @return A pointer to the new object. + */ + IMPORT_C static CAiwInternalDialData* NewL( const TDesC8& aPackage ); + + /** + * Two-phased constructor for implementation class. Leaves the + * pointer to the cleanup stack. + * Use this method for creating a instance with null items. + * + * @since S60 3.2 + * @param aPackage descriptor parameter. + * @return A pointer to the new object. + */ + IMPORT_C static CAiwInternalDialData* NewLC( const TDesC8& aPackage ); + + /** + * Destructor. + */ + virtual ~CAiwInternalDialData(); + + public: // New + + /** + * Composes data set package and inserts data to aInParamList. + * + * @since S60 3.2 + * @param aInParamList In parameter used with CAiwService. + */ + IMPORT_C void FillInParamListL( CAiwGenericParamList& aInParamList ); + + public: // Access - Setters + + /** + * Sets the phone number. If phone number and contact link are both + * defined call will be made to contact link. + * + * @since S60 3.2 + * @param aPhoneNumber Phone number, which maximum length is + * KMaximumPhoneNumberLength. + * Default: empty. + * @leaves KErrArgument if aPhoneNumber length is over + * KMaximumPhoneNumberLength. + */ + IMPORT_C void SetPhoneNumberL( const TDesC& aPhoneNumber ); + + /** + * Sets call type. + * + * @since S60 3.2 + * @param aCallType defines the call type. + * Default: EAIWVoice. + */ + IMPORT_C void SetCallType( CAiwDialData::TCallType aCallType ); + + /** + * Sets the window group identifier. When call is ended, + * set window group is actived. + * + * @since S60 3.2 + * @param aWindowGroup Window group id. + * Default: KAiwGoToIdle. + */ + IMPORT_C void SetWindowGroup( TInt aWindowGroup ); + + /** + * Sets initiate call. + * + * @since S60 3.2 + * @param aInitCall ETrue if call is created by using + * long press of send key otherwise EFalse. + * Default: EFalse. + */ + IMPORT_C void SetInitiateCall( TBool aInitCall ); + + /** + * Sets the name of the person who is to be called. If client sets name + * then set name is shown not contact card defined name. Set name is shown + * also in log event. + * + * @since S60 3.2 + * @param aName The name of the person being called. + * @leaves KErrArgument if aName length is over KMaximumNameLength. + * Default: Empty. + */ + IMPORT_C void SetNameL( const TDesC& aName ); + + /** + * Change the redial mode. For used parameters see redial related + * constants above. + * + * @since S60 3.2 + * @param aRedial the new redial status. + * Default: KAIWRedialDefault. + */ + IMPORT_C void SetRedial( TInt aRedial ); + + /** + * Set the number visibility in the phone app. + * If this is set to EFalse, then number is not shown at all in callbubble + * If number has defined contact card contact name is shown in call bubble. + * + * @since S60 3.2 + * @param aShowNumber Whether or not to show the number. + * Default: ETrue. + */ + IMPORT_C void SetShowNumber( TBool aShowNumber ); + + /** + * Set whether the phone number should be matched + * against the personal directory. + * + * If ETrue and name is set then number is matched to + * phonebook but set name is shown in call bubble. + * If name is not set then no name is shown in call bubble + * just phone number. + * + * This should be set EFalse only if phone number has not been + * taken from phonebook. + * + * @since S60 3.2 + * @param aAllowMatch Whether to allow matches. + * Default: ETrue. + */ + IMPORT_C void SetAllowMatch( TBool aAllowMatch ); + + /** + * Set contact link. If phone number and contact link are both + * defined call will be made to contact link. + * + * @since S60 3.2 + * @param aContactLink Contact link information. + * Default: Empty. + */ + IMPORT_C void SetContactLinkL( const TDesC8& aContactLink ); + + /** + * Set wheteher this is a SAT originated call or not. + * If this function is not called, the originator is assumed to + * be other than SAT. + * + * @since S60 3.2 + * @param aSATCall ETrue if SAT originated the call, EFalse otherwise. + * Default: EFalse. + */ + IMPORT_C void SetSATCall( TBool aSATCall ); + + /** + * Set the calling party subaddress. + * Defined in ITU-T I.330 and 3GPP TS 11.14. + * + * @since S60 3.2 + * @param aSubAddress The calling party subaddress. + * @leaves KErrArgument if aSubAddress length is longer than + * 50 characters. + * Default: Empty. + */ + IMPORT_C void SetSubAddressL( const TDesC& aSubAddress ); + + /** + * Set parameter for end other calls. + * If this is set to ETrue, other calls will be terminated + * before dial. + * + * @since S60 3.2 + * @param aEndCalls Are the other calls ended. + * Default: EFalse. + */ + IMPORT_C void SetEndOtherCalls( TBool aEndOtherCalls ); + + /** + * Set the bearer capability. + * + * @since S60 3.2 + * @param aBearer The bearer capabilities as defined in GSM 04.08. + * @leaves KErrArgument if aBearer's length is longer than 14 + * characters. + * Default: Empty. + */ + IMPORT_C void SetBearerL( const TDesC8& aBearer ); + + /** + * Set redial max duration time. + * + * @since S60 3.2 + * @param aMaxDuration The value of duration in seconds. + * Default: Empty. + */ + IMPORT_C void SetRedialMaximumDuration( + const TTimeIntervalSeconds aMaximumRedialDuration ); + + /** + * Set id of used call service. + * + * @param aServiceId The value of Service Id. + * Default: Null. + */ + IMPORT_C void SetServiceId( TUint32 aServiceId ); + + /** + * Sets the user to user information. If this is set then the UUI data + * is sent to the recipient via UUS mechanism at call setup phase. + * + * Note that UUI is not sent if telephony local variation + * KTelephonyLVFlagUUS is not set. + * + * @since S60 v3.2 + * @param aUUI User to user information. Maxmimum length of UUI is + * defined by constant KAiwUUILength. Leaves with KErrArgument if + * given data is longer than KAiwUUILength. + */ + IMPORT_C void SetUUIL( const TDesC& aUUI ); + + public: // Access - Getters + + /** + * Phone number. + * + * @since S60 3.2 + * @return Phone number. + */ + IMPORT_C const TDesC& PhoneNumber() const; + + /** + * Call type. + * + * @since S60 3.2 + * @return Current call type. + */ + IMPORT_C CAiwDialData::TCallType CallType() const; + + /** + * Window group id. + * + * @since S60 3.2 + * @return Window group id. + */ + IMPORT_C TInt WindowGroup() const; + + /** + * Initiate call. + * + * @since S60 3.2 + * @return Returns ETrue if client wants to initialize voice/video + * call by using long key press. EFalse otherwise. + */ + IMPORT_C TBool InitiateCall() const; + + /** + * Name. + * + * @since S60 3.2 + * @return Returns name. + */ + IMPORT_C const TDesC& Name() const; + + /** + * Redial information. + * + * @since S60 3.2 + * @return Return the redial status, + */ + IMPORT_C TInt Redial() const; + + /** + * Show Number. + * + * @since S60 3.2 + * @return Returns the number visibility. + */ + IMPORT_C TBool ShowNumber() const; + + /** + * Defines if mathing is allowed. + * + * @since S60 3.2 + * @return Returns the allow match setting information. + */ + IMPORT_C TBool AllowMatch() const; + + /** + * Contact link field. + * + * @since S60 3.2 + * @return Returns contack link item. + */ + IMPORT_C const TDesC8& ContactLink() const; + + /** + * SAT Call. + * + * @since S60 3.2 + * @return Returns ETrue if SAT call EFalse if not. + */ + IMPORT_C TBool SATCall() const; + + /** + * Sub address. + * + * @since S60 3.2 + * @return Returns SAT call sub address. + */ + IMPORT_C const TDesC& SubAddress() const; + + /** + * End other calls param. + * + * @since S60 3.2 + * @return Returns ETrue if other calls will be terminated. + * EFalse if calls are not terminated. + */ + IMPORT_C TBool EndOtherCalls() const; + + /** + * Bearer capability. + * + * @since S60 3.2 + * @return Returns bearer capability. + */ + IMPORT_C const TDesC8& Bearer() const; + + /** + * Automatic redial maximum duration. + * + * @since S60 3.2 + * @return value of duration in seconds. + */ + IMPORT_C const TTimeIntervalSeconds RedialMaximumDuration() const; + + /** + * Read used Service Id. + * + * @return Return service id. + */ + IMPORT_C TUint32 ServiceId() const; + + /** + * User to user information. + * + * @since S60 v3.2 + * @return User to user information. + */ + IMPORT_C const TDesC& UUI() const; + + private: + + TInt CalculatePackageSize() const; + + TInt CalculateDescriptorSize( const TDesC& aDescriptor ) const; + + TInt CalculateDescriptorSize( const TDesC8& aDescriptor ) const; + + void ReadDescriptorFromStreamL( RDesReadStream& aStream, + HBufC*& aDescriptor ); + + void ReadDescriptorFromStreamL( RDesReadStream& aStream, + HBufC8*& aDescriptor ); + + void WriteDescriptorToStreamL( RDesWriteStream& aStream, + const TDesC& aDescriptor ); + + void WriteDescriptorToStreamL( RDesWriteStream& aStream, + const TDesC8& aDescriptor ); + + void CopyDescriptorToMemberDescriptorL( const TDesC& aSource, + HBufC*& aMemberDescriptor ); + + void CopyDescriptorToMemberDescriptorL( const TDesC8& aSource, + HBufC8*& aMemberDescriptor ); + + /** + * Leaves with KErrArgument if aDescriptorLength + * is greated that aMaxAllowedDescriptorLenght + */ + void CheckDescriptorMaxLengthL( TInt aDescriptorLength, + TInt aMaxAllowedDescriptorLength ) const; + + HBufC8* PackLC(); + + private: + + /** + * C++ default constructor. + */ + CAiwInternalDialData(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL( const TDesC8& aPackage ); + + private: // Data + + HBufC* iPhoneNumber; + + CAiwDialData::TCallType iCallType; + + HBufC* iName; + + TInt iWindowGroup; + + TInt iRedial; + + TTimeIntervalSeconds iRedialMaximumDuration; + + HBufC8* iContactLink; + + HBufC* iSubAddress; + + TBool iShowNumber; + + TBool iAllowMatch; + + TBool iSATCall; + + TBool iEndOtherCalls; + + HBufC8* iBearer; + + TBool iInitCall; + + /* + * Used service id. + */ + TUint32 iServiceId; + + HBufC* iUUI; + }; + +#endif // CAIWINTERNALDIALDATA_H + +// End of File