phonesrv_plat/converged_call_provider_api/inc/mccpconferencecallobserver.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) 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:  CCP Conference Call observer
*
*/


#ifndef MCCPCONFERENCECALLOBSERVER_H
#define MCCPCONFERENCECALLOBSERVER_H

class MCCPCall;

// INCLUDES
#include <e32base.h>

#include <ccpdefs.h> // conference call error defenitions

/**
* CCP API call ConferenceCall observer class
*
*  @since S60 3.2
*/
class MCCPConferenceCallObserver
    {
public: 
    enum TCCPConferenceCallEvent
       {
       /** Conference call added. */
       ECCPConferenceCallAdded,
       /** Conference call removed */
       ECCPConferenceCallRemoved,
       /** Names of the two calls used to build the conference call returned in aCallName. */
       ECCPConferenceBuilt,
       /** No name provided */
       ECCPConferenceTerminated,
       /** No name provided. */
       ECCPConferenceSwapped,
       /** Name of the call being seperated. */
       ECCPConferenceSplit
       };


    /** Conference call status. */
    enum TCCPConferenceCallState
       {
       /** The conference call is in the idle state. */
       ECCPConferenceIdle,
       /** The conference call is in the active, connected state. */
       ECCPConferenceActive,
       /** The conference call is in the held, connected state. */
       ECCPConferenceHold,
       };

    /** Conference call capabilities. */
    enum TCCPConferenceCallCaps
      {
      /** Indicates that a conference call can be created. */
      ECCPCapsCreate = 0x00000001,
      /** Indicates that a conference call can be terminated. */
      ECCPCapsHangUp = 0x00000002,
      /** Indicates that a conference call exists and can be swapped to the opposite 
      state (active or hold). */
      ECCPCapsSwap = 0x00000004
      };



protected:
    /** 
    * Protects the observer being deleted through the observer interface 
    * @since S60 3.2
    */
    virtual inline ~MCCPConferenceCallObserver() {};
    
public:

    /**
    * The state of the conference call has changed.
    * @since S60 3.2
    * @param aState Conference call state.
    * @return none
    */
    virtual void ConferenceCallStateChanged( 
                 const MCCPConferenceCallObserver::TCCPConferenceCallState aState ) = 0;

    /**
    * A ConferenceCall event has occurred.
    * @since S60 3.2
    * @param aEvent Occurred event.
    * @param aReferredCall Pointer to call that the event refers to. 
    * Used e.g. for 
    * MCCPConferenceCall::AddCallL and 
    * MCCPConferenceCall::RemoveCallL
    * Default value is NULL.
    * @return none
    */
    virtual void ConferenceCallEventOccurred( 
                 const MCCPConferenceCallObserver::TCCPConferenceCallEvent aEvent,
                 MCCPCall* aReferredCall=NULL ) = 0;
                 
    /**
    * Notifies changed conference call capabilities.
    * @since S60 3.2
    * @param aCaps New capabilities for the conference call.
    * @return none
    */
	virtual void ConferenceCallCapsChanged( 
	             const MCCPConferenceCallObserver::TCCPConferenceCallCaps aCaps ) = 0;
    
    /**
    * An error has occurred concerning a conference call.
    * @since S60 3.2
    * @param aError Error code.
    * @return none
    */
    virtual void ErrorOccurred( TCCPConferenceCallError aError ) = 0;
    };

#endif // MCCPCONFERENCECALLOBSERVER_H

// End of File