dvrengine/CommonRecordingEngineClient/inc/RCRService.h
branchRCL_3
changeset 48 13a33d82ad98
parent 0 822a42b6c3f1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dvrengine/CommonRecordingEngineClient/inc/RCRService.h	Wed Sep 01 12:20:37 2010 +0100
@@ -0,0 +1,301 @@
+/*
+* 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:    Interface for RC Client's Service class*
+*/
+
+
+
+
+#ifndef RCRSERVICE_H
+#define RCRSERVICE_H
+
+// INCLUDES
+#include "RCRServiceBase.h"
+#include <es_sock.h>
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// DATA TYPES
+// None
+
+// FORWARD DECLARATIONS
+class RCRClient;
+
+// CLASS DECLARATION
+
+/**
+*  This is the actual client API that passes commands
+*  to server side. CCRDvrApi and other classes visible
+*  to client application are merely wrappers to this
+*  class. If CCRDvrApi has method foo, it will just
+*  call method foo if this class here and this will in 
+*  turn say something like return SendReceive( ECRDoFooInServer, args );
+*  This needs to have implementations of all the engine
+*  methods of all client classes.
+*
+*  @lib CommonRecordingEngineClient.lib
+*  @since Series 60 3.0
+*/
+NONSHARABLE_CLASS( RCRService ) : public RCRServiceBase
+    {
+    
+public: // Constructors and destructor
+    
+    /**
+    * Constructor.
+    */
+    RCRService();
+
+public: // New methods
+
+	/**
+	* Tells receiving engine which IAP to use.
+    * @since Series 60 3.0
+	* @param aIapId is the internet access point id. 
+    * @return none.
+	*/						  
+	TInt SetIap( const TSubConnectionUniqueId& aIapId );
+
+	/**
+	* Tells receiving engine to cancel IAP selection.
+    * @since Series 60 3.0
+	*/						  
+	TInt CancelSetIap();
+
+    /**
+    * Prepares live IPTV PTSP stream.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aRtspParams parameter set for rtsp.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PlayRtspUrl( TUint& aSessionChk,
+                      const SCRRtspParams& aRtspParams );
+
+    /**
+    * Prepares DVB-H live stream.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aLiveParams parameter set for DVB-H.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PlayDvbhStream( TUint& aSessionChk,
+                         const SCRLiveParams& aLiveParams );
+
+    /**
+    * Changes DVB-H live stream service.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aLiveParams parameter set for DVB-H.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt ChangeDvbhService( TUint& aSessionChk,
+                            const SCRLiveParams& aLiveParams );
+
+    /**
+    * Prepares clip RTP stream from a name.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aRtpFile parameter set for rtsp.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PlayRtpFile( TUint& aSessionChk,
+                      const SCRRtpPlayParams& aRtpFile );
+
+    /**
+    * Prepares clip RTP stream from a file handle.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aRtpHandle a open file handle for RTP file.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PlayRtpFile( TUint& aSessionChk,
+                      const RFile& aRtpHandle );
+
+    /**
+    * Starts currently active stream recording.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aRecordParams a parameters for recording.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt RecordCurrentStream( const TUint aSessionChk,
+                              const SCRRecordParams& aRecordParams );
+    
+    /**
+    * Starts recording for RTSP live stream.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aRtspUrl is set of parameters required for rtsp.
+    * @param aRecordParams a parameters for recording.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt RecordRtspStream( TUint& aSessionChk,
+                           const SCRRtspParams& aRtspUrl,
+                           const SCRRecordParams& aRecordParams );
+    
+    /**
+    * Starts DVB-H recording.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aLiveParams is set of parameters required for DVB-H.
+    * @param aRecordParams a parameters for recording.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt RecordDvbhStream( TUint& aSessionChk,
+                           const SCRLiveParams& aLiveParams,
+                           const SCRRecordParams& aRecordParams );
+    
+    /**
+    * Pauses/Resumes recording.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aStart a start or end pausing.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PauseRecordStream( const TUint aSessionChk,
+                            const TBool& aStart );
+
+    /**
+    * Stops recording.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt StopRecordStream( const TUint aSessionChk );
+
+    /**
+    * Starts time shift mode.
+    * @since Series 60 3.0
+    * @param aTimeShiftChk a session definition checksum.
+    * @param aSessionChk a session definition of existing session.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt StartTimeShift( TUint& aTimeShiftChk,
+                         const TUint aSessionChk );
+
+    /**
+    * Stops time shift mode.
+    * @since Series 60 3.0
+    * @param aTimeShiftChk a session definition checksum.
+    * @param aCurrentChk a session definition of existing session.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt StopTimeShift( const TUint aTimeShiftChk,
+                        const TUint aCurrentChk );
+
+    /**
+    * Method for ordering "play" for packet source.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aStartPos is start position in seconds.
+    * @param aEndPos is end position in seconds.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PlayCommand( const TUint aSessionChk,
+                      const TReal& aStartPos,
+                      const TReal& aEndPos );
+
+    /**
+    * Method for ordering "pause" for packet source.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PauseCommand( const TUint aSessionChk );
+
+    /**
+    * Method for ordering "stop" for packet source.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt StopCommand( const TUint aSessionChk );
+
+    /**
+    * Setter for play position of packet source.		 
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aPosition a postion of RTP playback.
+    * @param aDuration a duration of RTP clip.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt SetPosition( const TUint aSessionChk,
+                      const TInt64 aPosition );
+
+    /**
+    * Getter for play position of packet source.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aPosition a postion of RTP playback.
+    * @param aDuration a duration of RTP clip.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt GetPosition( const TUint aSessionChk,
+                      TInt64& aPosition,
+                      TInt64& aDuration );
+
+    /**
+    * Method for ordering closing a source and all sinks.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @return KErrNone if ok, otherwise system-wide error codes.
+    */
+    TInt CloseSession( const TUint aSessionChk );
+
+    /**
+    * Prepares rtp file playing as a live source.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PlayNullSource( TUint& aSessionChk );
+
+    /**
+    * Prepares live IPTV PTSP stream to null sink.
+    * @since Series 60 3.0
+    * @param aSessionChk a session definition checksum.
+    * @param aRtspParams a active live parameters.
+    * @return KErrNone if successful,
+    *         otherwise another of the system-wide  error codes.
+    */
+    TInt PlayRtspUrlToNullSink( TUint& aSessionChk,
+                                const SCRRtspParams& aRtspParams );
+    };
+
+#endif // RCRSERVICE_H
+
+// End of File