diff -r 826cea16efd9 -r 13a33d82ad98 videoutils_plat/dvrengine_api/inc/ipvideo/CRTypeDefs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoutils_plat/dvrengine_api/inc/ipvideo/CRTypeDefs.h Wed Sep 01 12:20:37 2010 +0100 @@ -0,0 +1,216 @@ +/* +* 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 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: Common type definitions for both client and server parts* +*/ + + +#ifndef CRTYPEDEFS_H +#define CRTYPEDEFS_H + +// INCLUDES +#include +#include + +// CONSTANTS +_LIT( KCRServerNameExe, "CommonRecordingEngine.exe" ); +_LIT( KCRServerSemaphoreName, "CommonRecServerSemaphore" ); +_LIT( KCRMsgQueueName, "CRMsgQueue%d" ); + +/** Max RTSP Name/password len */ +const TInt KMaxNameLen( 40 ); +/** Max RTSP URI len */ +const TUint KMaxUrlLen( 256 ); + +// The server version. A version must be specified +// when creating a session with the server +const TUint KCRServMajorVersionNumber( 0 ); +const TUint KCRServMinorVersionNumber( 1 ); +const TUint KCRServBuildVersionNumber( 0 ); +const TUint KCRStackSize( 2 * KDefaultStackSize ); +const TUint KCRHeapSize( 0xF0000 ); +const TUint KCRMaxHeapSize( 0x1F0000 ); + +// Queue name length (10 from fixed part and +// 10 from maximum numbers in 32 value +const TUint KCRQueueNameLength( 20 ); + +// MACROS +// None. + +// DATA TYPES +/** +* Different messagetypes going from DVR engine to client lib. +* Note that client lib maps this to yet another enum before +* reporting the event via MCRStreamObserver::NotifyL +*/ +enum TCRQueueMsg + { + ECRMsgQueueAuthenticationNeeded, /**< Needs new username and password for authentication */ + ECRMsgQueueAttachCompleted, /**< Connection Attach completed and connection ready to be used */ + ECRMsgQueueConnectionError, /**< Unable to open connection in RTP engine & CR engine */ + ECRMsgQueueNotEnoughBandwidth, /**< Stream bitrate higher than (estimated) available connection bandwidth */ + ECRMsgQueueSwitchingToTcp, /**< Switching to tcp-streaming; client is supposed to init player */ + ECRMsgQueueNormalEndOfStream, /**< clip ends normally */ + ECRMsgQueueStreamIsLiveStream, /**< indicates that we are streaming clip that cannot be paused */ + ECRMsgQueueStreamIsRealMedia, /**< Clip would have been (unsupported) realnetworks realmedia over rdt */ + ECRMsgQueueTestSinkData, /**< Data from TestSink (former NullSink) to test client */ + ECRMsgQueueSdpAvailable, /**< Used to communicate SDP availability to client */ + ECRMsgQueueReadyToSeek, /**< Used to communicate seeking possibility */ + ECRMsgQueueRecordingStarted, /**< Used to communicate recording state */ + ECRMsgQueueRecordingPaused, /**< Used to communicate recording state */ + ECRMsgQueueRecordingEnded /**< Used to communicate recording state */ + }; + +/** +* Different message types going from TestSink (NullSink) to client lib. +* Embedded in TCRQueueMsg::ECRMsgQueueTestSinkData +*/ +enum TCRTestSinkData + { + ECRTestSinkStateIdle, + ECRTestSinkStateSdpAvailable, + ECRTestSinkStateSeqAndTSAvailable, + ECRTestSinkStatePlaying, + ECRTestSinkStateClosing, + }; + +/** +* Different record formats. +*/ +enum TCRRecordFormat + { + ECRRecordFormatRtp, /**< Nokia's propriatary RTP clip format */ + ECRRecordFormat3gp, /**< Normal 3GPP file format */ + ECRRecordTimeShift /**< Time shifting with Nokia's propriatary format */ + }; + +/** + * This structure is sent over message queue where + * api sits listening + */ +struct SCRQueueEntry + { + TCRQueueMsg iMsg; /**< Identifies the message */ + TInt iErr; /**< Can be used to pass error value related to message */ + TInt iSessionId; /**< Points to session generating the message. 0 points no session, broadcast */ + }; + +/** +* Structure used to communicate the Internet Access Point that +* DVR engine may use +*/ +struct SCRRtspIapParams + { + TInt32 iIap; /**< Internet Access Point ID from COMMS db. Currently not used */ + TUint32 iConnectionId; /**< Handle of opened RConnection. Currently used */ + TBuf iQueueName; /**< Name of RMSgQueue that DVR engine will use to report progress back */ + }; + +/** +* Data structure specifying RTSP address +*/ +struct SCRRtspParams + { + TBuf iUrl ; /**< usually something like rtsp://server.name... */ + TBuf iUserName; /**< RTSP Username. May be blank if server is not going to reply 401 */ + TBuf iPassword; /**< RTSP password. May be blank if server is not going to reply 401 */ + TBuf iQueueName; /**< Name of RMSgQueue that DVR engine will use to report progress back */ + TName iProxyServerAddr ; /**< Possible rtsp proxy server */ + TInt iProxyServerPort ; /**< Rtsp proxy port number */ + }; + +/** +* Defines live stream params. +*/ +struct SCRLiveParams + { + TPtrC8 iSdpData; + }; + +/** +* Defines RTP playback params. +*/ +struct SCRRtpPlayParams + { + TFileName iFileName; + }; + +/** +* Defines recording params. +*/ +struct SCRRecordParams + { + TPtrC iFileName; + TCRRecordFormat iFormat; + TPtrC iServiceName; + TPtrC iProgramName; + TPtrC8 iSdpData; + TInt iPostRule; + TInt iParental; + TTime iEndTime; + }; + +/** +* Opcodes used in message passing between client and server. +*/ +enum TCRServRqst + { + // Server request + ECRServBase = 450, + ECRServConnect, + ECRServCreateSubSession, + ECRServCloseSubSession, + ECRServCloseSession, + ECRServReset, + ECRServCancelAll, + ECRServLastEnum, + // API for LiveTV specific commands + ECRLiveTvBase = 500, + ECRSetIap, + ECRCancelSetIap, + ECRPlayRtspUrl, + ECRPlayDvbhLive, + ECRChangeService, + ECRPlayRtpFile, + ECRPlayRtpHandle, + ECRRecordCurrentStream, + ECRRecordRtspStream, + ECRRecordDvbhStream, + ECRPauseRecordStream, + ECRStopRecordStream, + ECRStartTimeShift, + ECRStopTimeShift, + ECRPlayCommand, + ECRPauseCommand, + ECRStopCommand, + ECRSetPosition, + ECRGetPosition, + ECRCloseSession, + ECRPlayNullSource, + ECRPlayRtspUrlToNullSink, + ECRLiveTvLastEnum + }; + +/** +* Opcodes used in message passing from server. +*/ +enum TCRServResponse + { + ECRStreamPauseHanling = 550, + ECRStreamEndHandling + }; + +#endif // CRTYPEDEFS_H + +// End of File