videoutils_plat/dvrengine_api/inc/ipvideo/MCREngineObserver.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 09:14:38 +0200
changeset 0 822a42b6c3f1
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:    Engine observer to get event notifications.*
*/


#ifndef MCRENGINEOBSERVER_H
#define MCRENGINEOBSERVER_H

// INCLUDES
#include <e32def.h>

// CONSTANTS
// None

// MACROS
// None.

// DATA TYPES
/**
* Different messages that DVR engine may send via client lib callback
*/
enum TCRObserverInfo
    {
    ECRAuthenticationNeeded, /**< CR needs new username and password for authentication */
    ECRAttachCompleted,      /**< Connection attach is completed and is ready to be used */
    ECRConnectionError,      /**< Unable to open connection in RTP engine & CR engine */
    ECRNotEnoughBandwidth,   /**< Stream bitrate higher than (estimated) available connection bandwidth */
    ECRNormalEndOfStream,    /**< Used to communicate end of streaming */
    ECRSwitchingToTcp,       /**< Switch to tcp, client needs to initiate possible player */   
    ECRStreamIsLiveStream,   /**< We have a stream that cannot be paused */
    ECRRealNetworksStream,   /**< RealMedia stream format, cannot support */
    ECRTestSinkData,         /**< Placeholder for TestSink (NullSink) feedback information to test client */
    ECRSdpAvailable,         /**< Used to communicate availability of SDP */            
    ECRReadyToSeek,          /**< Used to communicate seeking posibility */
    ECRRecordingStarted,     /**< Used to communicate recording state */
    ECRRecordingPaused,      /**< Used to communicate recording state */
    ECRRecordingEnded        /**< Used to communicate recording state */
    };

/**
* This structure is sent over message queue where
* api sits listening
*/
struct SCRObserverMsg
    {
    TCRObserverInfo iMsg;    /**< Identifies the message */
    TInt            iErr;    /**< Can be used to pass error value related to message */
    };

// FORWARD DECLARATIONS
// None

// CLASS DECLARATION

/**
*  Engine observer to get event notifications.
*
*  @lib CommonRecordingEngineClient.lib
*  @since Series 60 3.0
*/
class MCREngineObserver 
    {

public: // New methods

    /**
    * Notify call back for statuses.
    * @since Series 60 3.0
    * @param aInfo a notify info.
    * @return none.
    */
    virtual void NotifyL( const SCRObserverMsg& aInfo ) = 0;
    
    };
    
#endif MCRENGINEOBSERVER_H

// End of file.