phoneclientserver/aiwdialdata/inc/aiwinternaldialdata.h
changeset 0 ff3b6d0fd310
child 12 ae8abd0db65c
--- /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 <s32mem.h>
+#include <AiwGenericParam.h>
+#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