--- a/dvrengine/CommonRecordingEngine/inc/CCRStreamingSession.h Fri Apr 16 16:02:30 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,469 +0,0 @@
-/*
-* 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: Streaming session, eg one url, one channel...*
-*/
-
-
-
-
-#ifndef _CCRSTREAMINGSESSION_
-#define _CCRSTREAMINGSESSION_
-
-// INCLUDES
-#include <ipvideo/CRTypeDefs.h>
-#include "MCRStreamObserver.h"
-#include <e32base.h>
-#include <es_sock.h>
-
-// CONSTANTS
-// None
-
-// MACROS
-// None
-
-// DATA TYPES
-// None
-
-// FORWARD DECLARATIONS
-class CCRPacketBuffer;
-class CAsyncCallBack;
-class CCRConnection;
-class CCRPacketSourceBase;
-class CCRPacketSinkBase;
-class CRtpClipHandler;
-class CCREngine;
-class MCRPacketSource;
-
-// CLASS DECLARATION
-
-/**
-* Streaming session.
-*
-* @lib CommonRecordingEngine.lib
-* @since Series 60 3.0
-*/
-
-class CCRStreamingSession : public CBase,
- public MCRStreamObserver
- {
-
-public: // Datatype definitions
-
- enum TCRSinkId
- {
- ECRRtspSinkId = 7000,
- ECRXpsSinkId,
- ECR3gpRecSinkId,
- ECRRtpRecSinkId,
- ECRNullSinkId
- };
-
- enum TCRSourceId
- {
- ECRRtspSourceId = 7100,
- ECRDvbhSourceId,
- ECRRtpSourceId,
- ECRNullSourceId
- };
-
-public: // Constructors and destructors
-
- /**
- * Two-phased constructor.
- * @return CCRStreamingSession pointer.
- */
- static CCRStreamingSession* NewL( RSocketServ& aSockServer,
- CCRConnection* aConnection,
- CCREngine& aEngine );
-
- /**
- * Destructor
- */
- virtual ~CCRStreamingSession();
-
-public: // New methods
-
- /**
- * Method used to start a new RTSP session with parameters.
- * @since Series 60 3.0
- * @param aParams specifies the connection addr.
- * @param aClipHandler a reference pointer to RTP clip handler.
- * @param aSessionDefinition a session definition string.
- * @return none.
- */
- void OpenSourceL( const SCRRtspParams& aParams,
- const TDesC& aSessionDefinition );
-
- /**
- * Method used to start a new RTP session with parameters.
- * @since Series 60 3.0
- * @param aParams specifies the RTP clip parameters.
- * @param aClipHandler a reference pointer to RTP clip handler.
- * @param aSessionDefinition a session definition string.
- * @return none.
- */
- void OpenSourceL( const SCRRtpPlayParams& aParams,
- CRtpClipHandler*& aClipHandler,
- const TDesC& aSessionDefinition );
-
- /**
- * Method used to start a new RTP session with parameters.
- * @since Series 60 3.0
- * @param aRtpHandle a open file handle for RTP file.
- * @param aParams specifies the RTP clip parameters.
- * @param aSessionDefinition a session definition string.
- * @return none.
- */
- void OpenSourceL( const RFile& aRtpHandle,
- CRtpClipHandler*& aClipHandler,
- const TDesC& aSessionDefinition );
-
- /**
- * Method used to start a new DVB-H session with parameters.
- * @since Series 60 3.0
- * @param aLiveParams specifies DVB-H live parameters.
- * @param aSessionDefinition a session definition string.
- * @return none.
- */
- void OpenSourceL( const SCRLiveParams& aLiveParams,
- const TDesC& aSessionDefinition );
-
- /**
- * Method used to start a new Null source session.
- * @since Series 60 3.0
- * @param aSessionDefinition a session definition string.
- * @return none.
- */
- void OpenSourceL( const TDesC& aSessionDefinition );
-
- /**
- * Calculates source definition checksum: URL, file name etc.
- * @since Series 60 3.0
- * @param aName a pointer to defination name.
- * @return none.
- */
- TUint SourceDefinition( const TDesC& aName );
-
- /**
- * Getter for source definition checksum.
- * @since Series 60 3.0
- * @param none.
- * @return a value of source definition checksum.
- */
- TUint SourceChecksum();
-
- /**
- * Method that creates a set of buffers depending on
- * number of rtp streams to handle.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void CreateAndSetBufferL();
-
- /**
- * Method that creates a packet sink that forwards
- * packets to rop plugin for rendering.
- * @since Series 60 3.0
- * @param aLoopbackPort a RTSP port for loopback socket.
- * @return none.
- */
- void CreateRtspSinkL( const TInt& aLoopbackPort );
-
- /**
- * Creates XPS sink for passing packets to Helix player.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void CreateXpsSinkL();
-
- /**
- * Creates RTP clip sink for saving packets to a clip.
- * @since Series 60 3.0
- * @param aRecordParams a recording parameters.
- * @return none.
- */
- void Create3gpRecordSinkL( const SCRRecordParams& aRecordParams );
-
- /**
- * Creates RTP clip sink for saving packets to a clip.
- * @since Series 60 3.0
- * @param aRecordParams a recording parameters.
- * @param aClipHandler a reference pointer to RTP clip handler.
- * @return none.
- */
- void CreateRtpRecordSinkL( const SCRRecordParams& aRecordParams,
- CRtpClipHandler*& aClipHandler );
-
- /**
- * Post action after source initialized.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void PostActionL();
-
- /**
- * Play command for current source.
- * @since Series 60 3.0
- * @param aStartPos is start position in seconds.
- * @param aEndPos is end position in seconds.
- * @return a system wide error code.
- */
- TInt PlayCommand( const TReal& aStartPos,
- const TReal& aEndPos );
-
- /**
- * Pause command for current source.
- * @since Series 60 3.0
- * @param none.
- * @return a system wide error code.
- */
- TInt PauseCommand();
-
- /**
- * Stop command for current source.
- * @since Series 60 3.0
- * @param none.
- * @return a system wide error code.
- */
- TInt StopCommand();
-
- /**
- * Setter for source position.
- * @since Series 60 3.0
- * @param aPosition a current play position of the clip.
- * @return a system wide error code.
- */
- TInt SetPosition( const TInt64 aPosition );
-
- /**
- * Getter for source position.
- * @since Series 60 3.0
- * @param aPosition a current play position of the clip.
- * @param aDuration a duration of the clip.
- * @return a system wide error code.
- */
- TInt GetPosition( TInt64& aPosition,
- TInt64& aDuration );
-
- /**
- * Pause command for wanted sink.
- * @since Series 60 3.0
- * @param aSinkId identifies the sink.
- * @return a system wide error code.
- */
- TInt PauseCommand( const TCRSinkId& aSinkId );
-
- /**
- * Restore command for wanted sink.
- * @since Series 60 3.0
- * @param aSinkId identifies the sink.
- * @return a system wide error code.
- */
- TInt RestoreCommand( const TCRSinkId& aSinkId );
-
- /**
- * Stop command for wanted sink.
- * @since Series 60 3.0
- * @param aSinkId identifies the sink.
- * @return a system wide error code.
- */
- TInt StopCommand( const TCRSinkId& aSinkId );
-
- /**
- * Method to transfer ownership of existing sink.
- * @since Series 60 3.0
- * @param aSinkId identifies the sink.
- * @param aTargetSession identifies the sink.
- * @return a system wide error code.
- */
- TInt TransferSink( const TCRSinkId& aSinkId,
- CCRStreamingSession& aTargetSession );
-
- /**
- * Method to add new sink to session.
- * @since Series 60 3.0
- * @param aSink a pointer to the sink to add.
- * @return a system wide error code.
- */
- TInt AddNewSink( CCRPacketSinkBase* aSink );
-
- /**
- * Veryfies if source or any sink on session uses RTP clip handler.
- * @since Series 60 3.0
- * @param none.
- * @return true if clip handler user, otherwise false.
- */
- TBool ClipHandlerUsed();
-
- /**
- * Method that creates a packet sink that forwards.
- * packets to bit bucket.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void CreateNullSinkL();
-
- /**
- * Sets SDP and buffer for sinks.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void InitializeSinks();
-
- /**
- * Set timestamp and sequence numbers from source to sinks.
- * If Range is available, sets it too.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void SetSeqAndTs();
-
- /**
- * Method that sink calls to communicate that it wants to quit its business.
- * It is now our responsibility to delete the sink after buffers have been
- * notified about the situation.
- * @since Series 60 3.0
- * @param aSinkId identifies the sink.
- * @return none.
- */
- void SinkStops( const TCRSinkId& aSinkId );
-
- /**
- * Method that source uses to communicate that it wants more packets.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void SourceRestore();
-
- /**
- * Method that source uses to communicate that it wants to be deleted.
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void SourceStop();
-
-private: // Constructors and destructors
-
- /**
- * by default default constructor is private
- * @param aSockServer is the socketserver to use when opening socks.
- * @param aConnection
- * @param aEngine
- */
- CCRStreamingSession( RSocketServ& aSockServer,
- CCRConnection* aConnection,
- CCREngine& aEngine );
-
- /**
- * second phase of 2-phased construction
- */
- void ConstructL();
-
-private: // Functions from base classes
-
- /**
- * From MCRStreamObserver.
- * Source status indication.
- * @since Series 60 3.0
- * @param aStatus
- * @return none.
- */
- void StatusChanged( MCRPacketSource::TCRPacketSourceState aStatus );
-
-private: // New methods
-
- /**
- * Static callback called via CAsyncCallBack to initiate cleaning of a sink
- * @since Series 60 3.0
- * @param aThis a pointer to owner of call back.
- * @return none.
- */
- static TInt SinkStopCallBack( TAny* aThis );
-
- /**
- * Method for cleaning a sink. Called from SinkStopCallBack
- * @since Series 60 3.0
- * @param none.
- * @return none.
- */
- void DoSinkStop( void );
-
- /**
- * Method that deletes a packet sink.
- * @since Series 60 3.0
- * @param aSinkId identifies the sink.
- * @return none.
- */
- void DeleteSink( const TCRSinkId& aSinkId );
-
-public: // Data
-
- /**
- * Socket server.
- */
- RSocketServ& iSockServer;
-
- /**
- * Connections.
- */
- CCRConnection* iConnection;
-
- /**
- * Reference to engine object owning this instance.
- */
- CCREngine& iEngine;
-
- /**
- * Callback for cutting the call stack in cleanup.
- */
- CAsyncCallBack *iCleanUp;
-
- /**
- * Packet sources.
- */
- CCRPacketSourceBase* iSource;
-
- /**
- * Source definition checksum.
- */
- TUint iSourceChecksum;
-
- /**
- * Packet buffer.
- */
- CCRPacketBuffer* iBuffer;
-
- /**
- * Packet sinks.
- */
- RPointerArray<CCRPacketSinkBase> iSinks;
-
- /**
- * Array of sinks that have declared that they want to be deleted.
- */
- RArray<TCRSinkId> iSinksToDelete;
-
-};
-
-#endif // _CCRSTREAMINGSESSION_
-
-// End of File