diff -r 798ee5f1972c -r 826cea16efd9 videoutils_plat/dvrengine_api/inc/ipvideo/CRtpMetaHeader.h --- a/videoutils_plat/dvrengine_api/inc/ipvideo/CRtpMetaHeader.h Thu Aug 19 10:54:18 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,478 +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: RTP clip metaheader write/read functionalities.* -*/ - - - - -#ifndef CRTPMETAHEADER_H -#define CRTPMETAHEADER_H - -// INCLUDES -#include -#include - -// CONSTANTS -const TInt KStringLengthBytes( 1 ); -const TInt KMaxMetaHeaderLength( 2048 ); -const TInt KMetaLengthPoint( 0 ); -const TInt KAttributesPoint( KMetaLengthPoint + KIntegerBytes ); // 4 -const TInt KPlayCountPoint( KAttributesPoint + KIntegerBytes ); // 8 -const TInt KPlaySpotPoint( KPlayCountPoint + KIntegerBytes ); // 12 -const TInt KReservedPoint1( KPlaySpotPoint + KIntegerBytes ); // 16 -const TInt KReservedPoint2( KReservedPoint1 + KIntegerBytes ); // 20 -const TInt KReservedPoint3( KReservedPoint2 + KIntegerBytes ); // 24 -const TInt KReservedPoint4( KReservedPoint3 + KIntegerBytes ); // 28 -const TInt KStartTimePoint( KReservedPoint4 + KIntegerBytes ); // 32 -const TInt KEndTimePoint( KStartTimePoint + 2 * KIntegerBytes ); // 40 -const TInt KDurationPoint( KEndTimePoint + 2 * KIntegerBytes ); // 48 -const TInt KSeekArrayPoint( KDurationPoint + KIntegerBytes ); // 52 -const TInt KUserIdPoint( KSeekArrayPoint + KIntegerBytes ); // 56 -const TInt KDeviceInfoPoint( KUserIdPoint + KStringLengthBytes + // 72 - KUserIdLength ); -// Metaheader attributes -const TInt KOngoingFlagShift( 0 ); -const TInt KCompletedFlagShift( 1 ); -const TInt KProtectedFlagShift( 2 ); -const TInt KFailedFlagShift( 3 ); -const TInt KVersionFieldShift( 4 ); -const TInt KQualityFieldShift( 8 ); -const TInt KPostRuleFieldShift( 16 ); -const TInt KParentalFieldShift( 24 ); - -// MACROS -// None - -// DATA TYPES -// None - -// FORWARD DECLARATIONS -// None - -// CLASS DECLARATION - -/** -* Meta header handling for RTP file format. -* -* @lib CommonRecordingEngine.lib -* @since Series 60 3.0 -*/ -class CRtpMetaHeader : public CBase - { - -public: // Enumeration - - // Defines mode - enum TMetaMode - { - EMetaRead = 200, - EMetaWrite, - EMetaUpdate - }; - -public: // Data types - - // Defines clip attributes struct - class SAttributes - { - public: // Data - - /** - * Recording ongoing. - */ - TBool iOngoing; - - /** - * Recording completed. - */ - TBool iCompleted; - - /** - * Clip protected. - */ - TBool iProtected; - - /** - * Recording failed. - */ - TBool iFailed; - - /** - * Clip version. - */ - TUint8 iVersion; - - /** - * Clip quality. - */ - TUint8 iQuality; - - /** - * Clip's post accuisition rule. - */ - TUint8 iPostRule; - - /** - * Parental rate. - */ - TUint8 iParental; - - /** - * Viewed counter. - */ - TInt iPlayCount; - - /** - * Point where vieving stopped. - */ - TInt iPlaySpot; - - }; - -public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aFile a reference to file operations. - * @param aMode a meta data read or write mode. - */ - static CRtpMetaHeader* NewL( RFile& aFile, - const TMetaMode& aMode ); - - /** - * Two-phased constructor. - * @param aFile a reference to file operations. - * @param aMode a meta data read or write mode. - */ - static CRtpMetaHeader* NewLC( RFile& aFile, - const TMetaMode& aMode ); - - /** - * Destructor. - */ - virtual ~CRtpMetaHeader(); - -public: // New functions - - /** - * Getter for seek header point. - * @since Series 60 3.0 - * @return seek header point. - */ - TInt SeekHeaderPoint(); - - /** - * Writes whole meta header to the clip. - * Note, need use only with node: EMetaWrite. - * @since Series 60 3.0 - * @return None. - */ - void CommitL(); - - /** - * Writes clip's attributes of meta data header to a file. - * @since Series 60 3.0 - * @param aAtt a struct of attributes to write. - * @return None. - */ - void WriteAttributesL( const SAttributes& aAtt ); - - /** - * Writes start date/time to meta data header of the clip. - * @since Series 60 3.0 - * @param aTime a date/time value to write - * @return None. - */ - void WriteStartTimeL( const TTime& aTime ); - - /** - * Writes start date/time to meta data header of the clip. - * @since Series 60 3.0 - * @param aTime a date/time value to write - * @return None. - */ - void WriteEndTimeL( const TTime& aTime ); - - /** - * Writes duration to meta data header of the clip. - * @since Series 60 3.0 - * @param aDuration a duration value to write - * @return None. - */ - void WriteDurationL( const TInt aDuration ); - - /** - * Writes seek array point to meta data header of the clip. - * @since Series 60 3.0 - * @param aPoint a value to write - * @return None. - */ - void WriteSeekArrayPointL( const TInt aPoint ); - - /** - * Writes device info to meta data header of the clip. - * @since Series 60 3.0 - * @param aId a id to write - * @return None. - */ - void WriteUserIdL( const TDesC& aId ); - - /** - * Writes device info to meta data header of the clip. - * @since Series 60 3.0 - * @param aInfo a device info to write - * @return None. - */ - void WriteDeviceInfoL( const TDesC& aInfo ); - - /** - * Writes ESG to meta data header of the clip. - * @since Series 60 3.0 - * @param aService a name of the service - * @param aProgram a name of the program - * @return None. - */ - void WriteEsgDataL( const TDesC& aService, - const TDesC& aProgram ); - - /** - * Writes SRTP data to meta data header of the clip. - * @since Series 60 3.0 - * @param aSrtpData a SRTP data to write. - * @return None. - */ - void WriteSrtpDataL( const TDesC8& aSrtpData ); - - /** - * Writes SDP file data to meta data header of the clip. - * @since Series 60 3.0 - * @param aSdpData a SDP file data. - * @return None. - */ - void WriteSdpDataL( const TDesC8& aSdpData ); - - /** - * Reads clip's attributes of meta data header from a file. - * @since Series 60 3.0 - * @param aAtt a struct of attributes to read. - * @return None. - */ - void ReadAttributesL( SAttributes& aAtt ); - - /** - * Reads start date/time of meta data header from the clip. - * @since Series 60 3.0 - * @param aTime a readed date/time value - * @return None. - */ - void ReadStartTimeL( TTime& aTime ); - - /** - * Reads end date/time of meta data header from the clip. - * @since Series 60 3.0 - * @param aTime a readed date/time value - * @return None. - */ - void ReadEndTimeL( TTime& aTime ); - - /** - * Reads duration in seconds of meta data header from the clip. - * @since Series 60 3.0 - * @param aDuration a readed duration value - * @return None. - */ - void ReadDurationL( TInt& aDuration ); - - /** - * Reads seek array point of meta data header from the clip. - * @since Series 60 3.0 - * @param aPoint a readed seek array point value - * @return None. - */ - void ReadSeekArrayPointL( TInt& aPoint ); - - /** - * Reads user id of meta data header from the clip. - * @since Series 60 3.0 - * @param a buffer for info to read - * @return None. - */ - void ReadUserIdL( TDes& aId ); - - /** - * Reads device info of meta data header from the clip. - * @since Series 60 3.0 - * @param a buffer for info to read - * @return None. - */ - void ReadDeviceInfoL( TDes& aInfo ); - - /** - * Reads ESG of meta data header from the clip. - * @since Series 60 3.0 - * @param a buffer for service name to read - * @param a buffer for program name to read - * @return None. - */ - void ReadEsgDataL( TDes& aService, TDes& aProgram ); - - /** - * Reads SRTP data of meta data header from the clip. - * @since Series 60 3.0 - * @return pointer to readed SRTP data. - */ - HBufC8* ReadSrtpDataL(); - - /** - * Reads SDP file data of meta data header from the clip. - * @since Series 60 3.0 - * @return pointer to readed SDP file data. - */ - HBufC8* ReadSdpDataL(); - -private: // Constructors and destructor - - /** - * C++ default constructor. - * @param aFile a reference to file operations - * @param aMode a meta data read or write mode - */ - CRtpMetaHeader( RFile& aFile, - const TMetaMode& aMode ); - - /** - * Symbian 2nd phase constructor can leave and is private by default. - */ - void ConstructL(); - -private: // New functions - - /** - * Writes any string with one byte len info to meta header. - * @since Series 60 3.0 - * @param aPosition a position to write - * @param aData a data to write - * @return None. - */ - void WriteStringDataL( const TInt aPosition, - const TDesC& aData ); - - /** - * Reads any string with one byte len info from meta header. - * @since Series 60 3.0 - * @param aPosition a position from to read - * @param aData a data to read - * @return None. - */ - void ReadStringDataL( const TInt aPosition, - TDes& aData ); - - /** - * Writes time info to meta data header of the clip. - * @since Series 60 3.0 - * @param aPosition a position to append - * @param aTime a time value to write - * @return None. - */ - void AddTimeL( const TInt aPosition, - const TTime& aTime ); - - /** - * Reads time info of meta data header from the clip. - * @since Series 60 3.0 - * @param aPosition a position to read - * @param aTime a readed time value - * @return None. - */ - void GetTimeL( const TInt aPosition, - TTime& aTime ); - - /** - * Adds intehger data to meta buffer. - * @since Series 60 3.0 - * @param aPosition a position to add - * @param aValue a integer value to add - * @return None. - */ - void AddIntegerL( const TInt aPosition, - const TInt aValue ); - - /** - * Adds new data to meta buffer. - * @since Series 60 3.0 - * @param aPosition a position to add - * @param aData a data to append - * @return None. - */ - void AddDataL( const TInt aPosition, - const TDesC8& aData ); - - /** - * Reads 32 bits (TInt) from a file from certain position. - * @since Series 60 3.0 - * @param aPosition a position from to read - * @param aValue a value to update - * @return None. - */ - void ReadTintFromFileL( const TInt& aPosition, - TInt& aValue ); - -private: // Data - - /** - * File operations. - */ - RFile& iFile; - - /** - * Mode. - */ - TMetaMode iMode; - - /** - * File data buffer. - */ - HBufC8* iMetaData; - - /** - * File data buffer pointer. - */ - TPtr8 iDataPtr; - - /** - * ESG data point. - */ - TInt iEsgDataPoint; - - /** - * SRTP data point. - */ - TInt iSrtpDataPoint; - - /** - * SDP file data point. - */ - TInt iSdpDataPoint; - - /** - * Meta total length. - */ - TInt iMetaTotal; - - }; - -#endif // CRTPMETAHEADER_H - -// End of File