dependencies/uncategorized/aiwdialdata.h
author Kashif.sayed
Thu, 25 Mar 2010 23:48:15 +0530
branchv5backport
changeset 25 1161e0025932
permissions -rw-r--r--
.

/*
* 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 CAIWDIALDATA_H
#define CAIWDIALDATA_H

//  INCLUDES
#include <e32base.h>
                        
// FORWARD DECLARATIONS
class CAiwGenericParamList;
class CAiwInternalDialData;

/** Constant used by aiwdialdata interface. */ 
namespace AIWDialData
    {
    /** Maximum phone number length same as used by phone. */ 
    const TInt KMaximumPhoneNumberLength = 100;
    
    /** Default windowgroup value */ 
    const TInt KAiwGoToIdle(0);
    }

// CLASS DECLARATION

/**
*   Creating call using CAiwDialData API. 
*
*   @code
*
*   - Client must be Service Handler client. For more information see
*     service handler desing document.
*
*   - Client creates intance of CAiwDialData:
*
*   CAiwDialData* dialData = CAiwDialData::NewLC();
*
*   - Define call parameters(phone number is compulsory parameter ):
*   
*   dialData->SetCallType( CAiwDialData::EAIWVoice );
*   _LIT(phoneNumber, "050123456");
*   dialData->SetPhoneNumberL( phoneNumber );
*   dialData->SetWindowGroup( AIWDialData::KAiwGoToIdle );
*   
*   - Client creates reference to CAiwGenericParamList and fills paramlist:
*
*   CAiwGenericParamList& paramList = iServiceHandler->InParamListL();
*   dialData->FillInParamListL( paramList );
*
*  - Now client can give execute command to service handler.
*
*  iServiceHandler->ExecuteServiceCmdL( KAiwCmdCall, paramList,
*                                 iServiceHandler->OutParamListL(),
*                                 0, NULL );
*  @endcode
*  
*  Dial data for SDK applications.
* 
*  @lib aiwdialdata.lib
*  @since S60 3.2
*/
NONSHARABLE_CLASS( CAiwDialData ): public CBase
    {
    public:  // Enum.
    
        /**  Different type of calls. */ 
        enum TCallType
            {
            /* Voice call. If there is a VoIP service that is registered and set as preferred, the 
             * call is created as VoIP call, otherwise CS call. */
            EAIWVoice           = 0,
            /** Video call.             */
            EAIWVideo           = 1,
            /** Forced video call, creates video call directly without
             *  queries.                */
            EAIWForcedVideo     = 2, 
            /** Voip call.              */
            EAIWVoiP            = 3,
            /* Forced voice call, creates always CS voice call. Use this value if the call type is
             * not allowed to be changed */
            EAIWForcedCS        = 4
            };
            
    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 CAiwDialData* 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 CAiwDialData* NewLC();
        
        /**
        * Destructor.
        */
        virtual ~CAiwDialData();
        
    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.
        * 
        * @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( 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 );
        
     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 TCallType CallType() const;      
          
        /**
        * Window group id.
        *
        * @since S60 3.2
        * @return Window group id. 
        */     
        IMPORT_C TInt WindowGroup() const;

    private:

        /**
        * C++ default constructor.
        */
        CAiwDialData();
        
        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL();
    
    private:
        
        CAiwInternalDialData* iInternalDialData;   
    };

#endif      // CAIWDIALDATA_H   
            
// End of File