phoneclientserver/CallUI/Inc/CaUiEngine/CaUiEng.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) 2004-2005 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:  API for CallUiEngine usage.
*
*/


#ifndef CAUIENG_H
#define CAUIENG_H


//  INCLUDES
#include <e32base.h>
#include <spdefinitions.h>  //RIdArray
#include "CaUI.hrh"


// FORWARD DECLARATIONS
class MCaUiReconnectQueryObserver;
class MDesC16Array;
class MCaUiDialResultObserver;
class CPhCntMatcher;


// CLASS DECLARATION

/**
*  The API for CallUIEngine usage.
*
*  @lib CaUiEngine.lib
*  @since 2.6
*/
class CCaUiEngApi 
:   public CBase
    {
    public: // Data types

        /**
        * Enumerate all supported resource types.
        *
        * ECaUiResVoice         - Pure voice call resources.
        * ECaUiResVoiceAndVideo - Voice and video call resources.
        * ECaUiResVoiceInternetAndVideo - All Internet, voice and video call resources.
        * ECaUiResOnlyInternet  - Only Internet call resources.
        */
        enum TCaUiEngResource 
            {
            ECaUiResVoice                   = 0,
            ECaUiResVoiceAndVideo           = 1,
            ECaUiResVoiceInternetAndVideo   = 2,
            ECaUiResOnlyInternet            = 3
            };


        /**
        * Enumerate all supported localized text.
        *
        * ECallMenuItemText      - Menu item text for call.
        * EVoiceCallMenuItemText - Menu item text for voice call.
        * EVideoCallMenuItemText - Menu item text for video call.
        * EInternetCallMenuItemText - Menu item text for internet call.
        */
        enum TCaUiEngText 
            {
            ECallMenuItemText          = 0,
            EVoiceCallMenuItemText     = 1,
            EVideoCallMenuItemText     = 2,
            EInternetCallMenuItemText  = 3
            };

    public: // New functions

        /**
        * Make the dial operation.
        * 
        * @param aObserver The observer to handle dial result.
        * @param aDialData The TCallUIDialDataV1 dial data information in
        *                  packaged format.
        * @param aCallType If not equal to ECaUiCallTypeUnknown, then 
        *                  overwrites the call type in aDialData.
        */
        virtual void DialL(
            MCaUiDialResultObserver& aObserver,
            const TDesC8& aDialData,
            const TCaUiCallType aCallType ) = 0;

        /**
        * Launch the qtn.tel.no.video.network information note.
        * 
        */
        virtual void LaunchNoNetSupNoteL() = 0;


        /**
        * Launch the reconnect confirmation query shown to user.
        * 
        * @param aObserver The observer to handle query result.
        * @param aPhCntMatcher The Phone Contact Matcher. 
        *        Ownership not transferred. If NULL, then matcher is created 
        *        inside CaUIEngine.
        * @param aPhoneNumber Pointer to the number where dial was tried.
        * @param aIncludeVideoCallOption If set to ETrue, video call option is
        *        included to query, otherwise it is left out.
        */
        virtual void LaunchReconConfQueryL( 
            MCaUiReconnectQueryObserver& aObserver,
            CPhCntMatcher* aPhCntMatcher,
            const TPtrC aPhoneNumber,
            const TBool aIncludeVideoCallOption ) = 0;


        /**
        * Cancel reconnect query launched with LaunchReconConfQueryL.
        * 
        */
        virtual void CancelReconConfQuery() = 0;


        /**
        * Launch note and reconnect confirmation query in sequence.
        * 
        * @param aObserver The observer to handle query result.
        * @param aPhCntMatcher The Phone Contact Matcher. 
        *        Ownership not transferred. If NULL, then matcher is created 
        *        inside CaUIEngine.
        * @param aPhoneNumber Pointer to the number where dial was tried.
        * @param aIncludeVideoCallOption If set to ETrue, video call option is
        *        included to query, otherwise it is left out.
        * @param aNoteText The text shown in information note. If empty, then 
        *        qtn.tel.no.video.network text is shown.
        */
        virtual void LaunchNoteAndReconConfQueryL( 
            MCaUiReconnectQueryObserver& aObserver,
            CPhCntMatcher* aPhCntMatcher,
            const TPtrC aPhoneNumber,
            const TBool aIncludeVideoCallOption,
            const TPtrC aNoteText ) = 0;

        /**
        * Cancel note and reconnection query launched with 
        * LaunchNoteAndReconConfQueryL.
        * 
        */
        virtual void CancelNoteAndReconConfQuery() = 0;

        /**
        * Launch address selection. If contact contains default number or 
        * only one number, number will be returned directly. 
        * Otherwise address selection list displayed.
        * @since 3.0
        * 
        * @param aTelNum Contains selected number after execution.
        * @param aContactId The contact id from PhoneBook.
        * @param aVoIPAddressSelect If ETrue VoIP address select is used. 
        * @return TBool, ETrue if number selected, 
        *     EFalse otherwice (E.g. list canceled).
        */
        virtual TBool LaunchAddressSelectL( 
            TDes& aTelNum, 
            const TInt aContactId,
            const TBool aVoIPAddressSelect ) = 0;

        /**
        * Cancel address selection launched with LaunchAddressSelectL.
        * 
        */
        virtual void CancelAddressSelect() = 0;
        
        /**
        * Get VoIP services
        * @param aVoipServiceIds On return, contains the list of VoIP services
        */
        virtual void GetVoIPServiceIdsL( RIdArray& aVoipServiceIds  ) const = 0;
        
        /**
        * Get the service provider name
        * @param aServiceId The service, whose name is requested
        * @param aServiceName On return, contains the service name
        */
        virtual void GetVoipServiceNameL( TServiceId aServiceId, TDes& aServiceName ) const = 0;
    };




/**
*  Interface for CaUiEngine creation.
*
*  @lib 
*  @since 2.6
*/
class CCaUiEngFactory : public CBase
    {
    public:

        /**
        * Creates CallUIEngine.
        * CCaUiEngFactory instance is deleted even in leave case.
        * 
        * @return CCaUiEngApi implementation. NULL if not supported.
        *         Ownership transferred.
        */
        virtual CCaUiEngApi* CCaUiEngApiLD() = 0;

    };

/**
* Only exported function. This is in index 1 in the lookup table.
* Call this function to create CCaUiEngFactory instance.
* 
* IMPORT_C CCaUiEngFactory* CreateCaUiEngFactoryL();
*/ 




#endif      // CAUIENG_H 

// End of File