vtengines/videoteleng/CallCtrl/Inc/MVtCtlCallControl.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 23 Nov 2009 14:47:47 +0200
changeset 0 ed9695c8bcbe
permissions -rw-r--r--
Revision: 200948

/*
* Copyright (c) 2004 - 2007 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:  Call control interface
*
*/



#ifndef MVTCTLCALLCONTROL_H
#define MVTCTLCALLCONTROL_H

//  INCLUDES
#include "VtCtlDefs.h"
#include "TVtCtlType.h"

// CLASS DECLARATION

/**
*  Call control class
*  
*  @lib CSCallCtrl
*  @since 2.6
*/
class MVtCtlCallControl
    {
    public:  // new functions

        /**
        * Session state
        * EIdle          idle, no connection
        * EInitializing  initializing MO session
        * EAlerting      alerting at remote end 
        * ERinging       incoming session ringing
        * EConnected     session is established
        * EDisconnecting disconnecting session
        */
        enum TVtCtlState {
            EUnknown,       // 0
            EIdle,          // 1
            EInitializing,  // 2
            EAlerting,      // 3
            ERinging,       // 4
            EConnected,     // 5
            EDisconnecting  // 6
            };        

        /**
        * Session direction
        * EDirectionUnknown          unknown direction
        * EDirectionMobileOriginated MO session
        * DirectionMobileTerminated  MT session
        */
        enum TVtCtlDirection
            {
            EDirectionUnknown,
            EDirectionMobileOriginated,
            DirectionMobileTerminated
            };

        /**
        * Gets session duration
        * @param aId session id
        * @param aDuration session duration
        * @return Symbian OS error code
        */
        virtual TInt GetDuration( 
            TVtCtlSessionId aId,
            TVtCtlDuration& aDuration ) = 0;

        /**
        * Gets information on a session. 
        * @param aId session id
        * @param aInfo packetized object derived from TVtCtlType
        */
        virtual void GetSessionInfoL( 
            TVtCtlSessionId aId,
            TDes8& aInfo ) = 0;

        /**
        * Returns session state
        * @param aId session id
        * @return session state
        */
        virtual TVtCtlState GetSessionState( 
            TVtCtlSessionId aId ) const = 0;

        /**
        * Returns previous session state
        * @param aId session id
        * @return session state
        */
        virtual TVtCtlState GetPreviousPreviousState( 
            TVtCtlSessionId aId ) const = 0;

    };

#endif      // MVTCTLCALLCONTROL_H
 
// End of File