videofeeds/utils/inc/CIptvMediaContent.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/utils/inc/CIptvMediaContent.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,230 @@
+/*
+* Copyright (c) 2004-2008 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:    Utilities to handle media content.*
+*/
+
+
+
+
+#ifndef CIPTVMEDIACONTENT_H
+#define CIPTVMEDIACONTENT_H
+
+#include <e32std.h>
+#include <s32strm.h>
+#include "CIptvUtil.h"
+#include "IptvDebug.h"
+
+const TInt KIptvMediumMaxLength = 10;
+
+/**
+ * Utility class for handling media content.
+ *
+ * @lib IptvUtil.lib
+ * @since Video Center 2.0
+ */
+class CIptvMediaContent : public CBase
+    {
+    public:
+
+        /**
+         * Two-phased constructor.
+         * @param 
+         */
+        IMPORT_C static CIptvMediaContent* NewL();
+
+        /**
+         * Destructor.
+         */
+        virtual ~CIptvMediaContent();
+
+        /**
+         * Print
+         */
+        IMPORT_C void PrintL();
+
+        /**
+         * Externalize.
+         */
+        IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+
+        /**
+         * Internalize.
+         */
+        IMPORT_C void InternalizeL( RReadStream& aStream );
+
+        /**
+         * Count externalized size.
+         */
+        IMPORT_C TUint32 CountExternalizeSize();
+
+        /**
+         * Set media URL.
+         */
+        IMPORT_C void SetMediaContentUrlL( const TDesC& aBrowserUrl );
+
+        /**
+         * Get media URL.
+         */
+        IMPORT_C TPtrC GetMediaContentUrl() const;
+                                
+    private: // New functions
+
+        /**
+         * C++ default constructor.
+         */
+        CIptvMediaContent();
+
+    public: // Data members
+
+        /**
+         * Expression types
+         */ 
+        enum TExpression
+            {
+            EFull = 0,
+            ESample,
+            ENonStop
+            };
+
+        /**
+         * Content key (same as content id)
+         */
+        TUint32 iContentKey;
+
+        /**
+         * Index (This index identifies content access objects which
+         * belong to some content defined by iContentKey)
+         */
+        TUint32 iIndex;
+
+        /**
+         * Download type.
+         */
+        TUint32 iDownloadType;
+
+        /**
+         * File id (Part of global file id (1/2)
+         */
+        TUint32 iFileId;
+
+        /**
+         * Drive id (Part of global file id (2/2) 
+         */
+        TUint32 iDriveId;
+      
+        /**
+         * File size (MRSS)
+         */ 
+        TUint32 iFileSize; 
+
+        /**
+         * Mime-type (MRSS)
+         */
+        TBuf<KIptvCAMimeTypeLength> iMimeType;   
+
+        /**
+         * Medium (MRSS) (Not used in client side)
+         * Medium is the type of object
+         * (image | audio | video | document | executable).
+         * While this attribute can at times seem redundant if type is supplied,
+         * it is included because it simplifies decision making on the reader
+         * side, as well as flushes out any ambiguities between MIME type and 
+         * object type. It is an optional attribute.
+         */
+        TBuf<KIptvMediumMaxLength> iMedium;
+
+        /**
+         * Is default. (MRSS) (Not used in client side)
+         * isDefault determines if this is the default object that should be
+         * used for the <media:group>. There should only be one default object
+         * per <media:group>. It is an optional attribute.
+         */
+        TBool iIsDefault;
+
+        /**
+         * Expression. (MRSS)
+         * Expression determines if the object is a sample or the full version
+         * of the object, or even if it is a continuous stream
+         * (sample | full | nonstop). Default value is 'full'.
+         * It is an optional attribute
+         */
+        TUint32 iExpression;
+
+        /**
+         * Bitrate. (MRSS) (Not used in client side)
+         * Bitrate is the kilobits per second rate of media.
+         * It is an optional attribute
+         */
+        TUint32 iBitrate;
+
+        /**
+         * Framerate. (MRSS) (Not used in client side)
+         * Framerate is the number of frames per second for the media object.
+         * It is an optional attribute
+         */
+        TUint32 iFramerate;
+
+        /**
+         * Samplingrate (MRSS) (Not used in client side)
+         * Samplingrate is the number of samples per second taken to create
+         * the media object. It is expressed in thousands of samples
+         * per second (kHz). It is an optional attribute.
+         */
+        TUint32 iSamplingrate;
+
+        /**
+         * Duration. (MRSS)
+         * Duration is the number of seconds the media object plays.
+         * It is an optional attribute.
+         */
+        TUint32 iDuration;  
+
+        /**
+         * Height. (MRSS) (Not used in client side)
+         * Height is the height of the media object. It is an optional attribute.
+         */
+        TUint32 iHeight;
+
+        /**
+         * Width. (MRSS) (Not used in client side)
+         * Width is the width of the media object. It is an optional attribute.
+         */
+        TUint32 iWidth;
+
+        /**
+         * Language. (MRSS)
+         * Lang is the primary language encapsulated in the media object.
+         * Language codes possible are detailed in 
+         * RFC 3066. This attribute is used similar to the xml:lang attribute
+         * detailed in the XML 1.0 Specification (Third Edition).
+         * It is an optional attribute.
+         */
+        TBuf<KIptvCALanguageLength> iLanguage;
+
+        /**
+         * Last viewing position of this video.
+         */
+        TUint32 iLastPosition;
+
+    private:        
+
+        /**        
+         * Content URL (MRSS)
+         * Own.
+         */
+        HBufC* iMediaContentUrl;
+        
+    };
+
+#endif // CIPTVMEDIACONTENT_H