convergedcallengine/serviceselector/inc/cssservicehandlervoip.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:15:03 +0100
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2008 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:  This file contains the header file of the
*              : CSsServiceHandlerVoip class.
*
*/



#ifndef CSSSERVICEHANDLERVOIP_H
#define CSSSERVICEHANDLERVOIP_H

//  INCLUDES
#include "cservicehandler.h"
#include <e32base.h>
#include <badesca.h>
#include <AknIconArray.h>
#include <gulicon.h>

// CONSTANTS
//None

// MACROS
//None

// DATA TYPES
//None.

// FUNCTION PROTOTYPES
//None

// FORWARD DECLARATIONS
class CSsConnectionHandler;
class CSsUiUtilities;
class CSsSettingsHandler;
class CSPSettingsVoIPUtils;
class CSsBsHandler;

// CLASS DECLARATION

/**
*  VoIP service handler class for service selector
*
*  @lib ServiceSelector.lib
*  @since Series60_5.0
*/
NONSHARABLE_CLASS( CSsServiceHandlerVoip )
        : public CServiceHandler
    {
    public:  // Constructors and destructor
      
        /**
        * Two-phased constructor.
        */
        static CSsServiceHandlerVoip* NewL();
        
        /**
        * Destructor.
        */
        virtual ~CSsServiceHandlerVoip();

    public: // New functions


    protected:  // New functions
        
        /**
        * From MServiceHandler
        */     
        void ExecuteServiceSelectionL( 
            CConvergedServiceSelector::TSsResult& aResult, 
            CConvergedServiceSelector::TSsCallType aCallType,
            TUint aServiceId,
            TBool aSendKey,
            const TDesC& aString = KNullDesC );

    private:  // New functions
        
        /**
        * Gets calling service by known service id.
        * @param aResult        Selection results are returned by this param.
        * @param aServiceId     Current service id of the call.
        * @param aSendKey       Is sendkey used for call.
        * @param aString        Known number/address.
        */
        void GetServiceByServiceId(
            CConvergedServiceSelector::TSsResult& aResult, 
            TUint aServiceId,
            TBool aSendKey,
            const TDesC& aString ) const;
            
        /**
        * Gets calling service without service id.
        * Leaves on failure.
        *   -Leaves with KErrCancel if some user query canceled by
        *    the user
        * @param aResult        Selection results are returned by this param.
        */
        void GetCallingServiceL(
            CConvergedServiceSelector::TSsResult& aResult );
 
        /**
        * Fills results by parameters and shows list query for the user
        * if more that one possible service available.
        * Leaves on failure.
        *   -Leaves with KErrCancel if some user query canceled by
        *    the user.
        * @param aResult        Selection results are returned by this param.
        * @param aServices      Known service id's.
        * @param aRegistered    Services registered or not.
        */
        void SelectServiceL( 
            CConvergedServiceSelector::TSsResult& aResult, 
            RArray<TUint>& aServices,
            TBool aRegistered );
 
        /**
        * Returns reference to uiutilities class
        * @return UiUtils class.
        */
        CSsUiUtilities& UiUtilitiesL();
 
        /**
        * Returns reference to settings handler class
        * @return SettingsHandler class.
        */
        CSsSettingsHandler& SettingsHandlerL();
        
        /**
        * Returns reference to branding handler class
        * @return CSsBsHandler class.
        */
        CSsBsHandler& BrandingHandlerL();
  
        /**
        * Checks should voip call be changed as cs voice call.
        * @param aServices      Known service id.
        * @param aString    Known number/address.
        * @return ETrue if CS voice call should be made.
        */
        TBool ChangeTypeAsCsVoice( 
                TUint aServiceId,
                const TDesC& aString ) const;

        /**
        * Adds icon to the list.
        * @param aIcons On completion, contains new icon
        * @param aServiceId Used Service Id
        * @param aIconId On completion, contains icon's icon list id
        */
        void AddBrandIconL( CArrayPtr<CGulIcon>* aIcons, 
                            TUint aServiceId, 
                            TInt& aIconId );
 
        /**
        * Gets item text array and icons for the query list box
        * by service id list.
        * @param aServices Used Services.
        * @param aLbxItems On completion, contains list box item texts.
        * @param aIcons On completion, contains list icons.
        */
        void GetListBoxItemsAndIconsL(
                RArray<TUint>& aServices,
                CDesCArrayFlat* aLbxItems,
                CArrayPtr<CGulIcon>* aIcons );
        
        /**
        * Gets branded bitmap for service.
        * @param aServiceId Used Service Id.
        * @param aBrandedBitmap Branded bitmap.
        * @param aBrandedBitmapMask Bitmap mask.
        */
        void GetBrandIconL( TUint aServiceId,
                            CFbsBitmap*& aBrandedBitmap,
                            CFbsBitmap*& aBrandedBitmapMask );
        
    private:

        /**
        * C++ default constructor.
        */
        CSsServiceHandlerVoip();

        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL();
        

    private:    // Data
        
        // Pointer to Connection Handler
        CSsConnectionHandler*   iConnectionHandler;
        
        // Pointer to UI Utils
        CSsUiUtilities*         iUiUtils;
        
        // Pointer to Settings handler
        CSsSettingsHandler*     iSettings;
        
        // Pointer to voip utils
        CSPSettingsVoIPUtils*   iVoipUtils;

        // Pointer to branding handler
        CSsBsHandler*           iBsHandler;
    };

#endif      // CSSSERVICEHANDLERVOIP_H
            
// End of File