videofeeds/clientapi/src/CIptvVodContentContentBriefDetails.cpp
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/clientapi/src/CIptvVodContentContentBriefDetails.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,269 @@
+/*
+* Copyright (c) 2004-2005 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:    Defines data class structure for the API*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <s32strm.h>
+#include "CIptvVodContentContentBriefDetails.h"
+#include "CIptvMyVideosGlobalFileId.h"
+
+// CONSTANTS
+const TInt KTUint32SizeInBytes = 4;
+const TInt KTUint16SizeInBytes = 2;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// ---------------------------------------------------------
+// CIptvVodContentContentBriefDetails::ConstructL
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------
+//
+void CIptvVodContentContentBriefDetails::ConstructL()
+    {
+    iFileId = CIptvMyVideosGlobalFileId::NewL();
+    iPreviewGlobalFileId = CIptvMyVideosGlobalFileId::NewL();
+    }
+
+// ---------------------------------------------------------
+// CIptvVodContentContentBriefDetails::NewL
+// Two-phased constructor.
+// ---------------------------------------------------------
+//
+EXPORT_C CIptvVodContentContentBriefDetails* CIptvVodContentContentBriefDetails::NewL()
+    {
+    CIptvVodContentContentBriefDetails* self = new(ELeave) CIptvVodContentContentBriefDetails();
+    CleanupStack::PushL(self);
+
+    self->ConstructL();
+
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CIptvVodContentContentBriefDetails::~CIptvVodContentContentBriefDetails
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CIptvVodContentContentBriefDetails::~CIptvVodContentContentBriefDetails()
+    {    
+    delete iFileId;    
+    delete iPreviewGlobalFileId;
+    delete iBrowserUrl;
+    }
+
+// ---------------------------------------------------------
+// CIptvVodContentContentBriefDetails::CIptvVodContentContentBriefDetails
+// C++ default constructor
+// ---------------------------------------------------------
+//
+CIptvVodContentContentBriefDetails::CIptvVodContentContentBriefDetails()
+    {
+    }
+
+// ---------------------------------------------------------
+// Set browser URL
+// 
+// -----------------------------------------------------------------------------
+//    
+EXPORT_C void CIptvVodContentContentBriefDetails::SetBrowserUrlL(const TDesC& aBrowserUrl)
+    {
+    if (aBrowserUrl.Length() > 0)
+        {
+        delete iBrowserUrl;
+        iBrowserUrl = NULL;
+        iBrowserUrl = HBufC::NewL(aBrowserUrl.Length());
+        TPtr16 p = iBrowserUrl->Des();
+        p.Copy(aBrowserUrl);    
+        }
+    }
+
+// ---------------------------------------------------------
+// Get browser URL
+// 
+// -----------------------------------------------------------------------------
+//  
+EXPORT_C TPtrC CIptvVodContentContentBriefDetails::GetBrowserUrlL()
+    {
+    if (iBrowserUrl)
+        {
+        return iBrowserUrl->Des();
+        }
+          
+    return TPtrC();
+    }
+
+// ---------------------------------------------------------
+// Externalize
+// 
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvVodContentContentBriefDetails::ExternalizeL(RWriteStream& aStream) const
+    {
+    // Global file id
+    iFileId->ExternalizeL(aStream);
+
+    // Preview global file id
+    iPreviewGlobalFileId->ExternalizeL(aStream);
+
+    // Content ID indetifier.
+    aStream.WriteUint32L(iContentId);
+    
+    // Content name
+    CIptvUtil::WriteDesToStreamL(iName, aStream);
+        
+    // Complete thumbnail load path.
+    CIptvUtil::WriteDesToStreamL(iThumbnailPath, aStream);
+
+    // PubDate
+    TInt64 time = iPubDate.Int64();    
+    TUint32 lower = (0x00000000FFFFFFFFULL) & time;
+    TUint32 upper = (0x00000000FFFFFFFFULL) & (time >> 32);
+    aStream.WriteUint32L(lower);
+    aStream.WriteUint32L(upper);
+
+    // Browser url
+    if (iBrowserUrl)
+        {
+        CIptvUtil::WriteDesToStreamL(*iBrowserUrl, aStream);
+        }
+    else
+        {
+        aStream.WriteUint16L(0);
+        }    
+
+    // Size
+    aStream.WriteUint32L(iSize);    
+
+    // Duration (playtime)
+    aStream.WriteUint32L(iPlaytime);    
+
+    // Language
+    CIptvUtil::WriteDesToStreamL(iLanguage, aStream);
+
+    // Rating age.
+    aStream.WriteUint16L( iRatingAge );
+    }
+
+// ---------------------------------------------------------
+// Internalize
+// 
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvVodContentContentBriefDetails::InternalizeL(RReadStream& aStream)
+    {
+    // Global file id
+    iFileId->InternalizeL(aStream);
+
+    // Preview global file id
+    iPreviewGlobalFileId->InternalizeL(aStream);
+
+    // Content ID indetifier.
+    iContentId = aStream.ReadUint32L();
+
+    // Content name
+    CIptvUtil::ReadDesFromStreamL(iName, aStream);
+    
+    // Thumbnail path
+    CIptvUtil::ReadDesFromStreamL(iThumbnailPath, aStream);
+
+    // PubDate
+    TUint32 lower = aStream.ReadUint32L();
+    TUint32 upper = aStream.ReadUint32L();
+    TInt64 time = 0;
+    time = lower;    
+    TInt64 longUpper = (TInt64) upper;
+    longUpper = longUpper << 32;        
+    longUpper &= (0xFFFFFFFF00000000ULL);
+    time |= longUpper;
+    iPubDate = time;
+
+    // Browser url
+    delete iBrowserUrl;
+    iBrowserUrl = NULL;
+    iBrowserUrl = HBufC::NewL(KIptvEpgContentBrowserUrlMaxLength);
+    TPtr16 p = iBrowserUrl->Des();
+    CIptvUtil::ReadDesFromStreamL(p, aStream);
+    iBrowserUrl = iBrowserUrl->ReAllocL(iBrowserUrl->Length());
+
+    // Size
+    iSize = aStream.ReadUint32L();
+
+    // Duration (playtime)
+    iPlaytime = aStream.ReadUint32L();
+
+    // Language
+    CIptvUtil::ReadDesFromStreamL(iLanguage, aStream);
+
+    // Rating age.
+    iRatingAge = aStream.ReadUint16L();
+    }
+
+// ---------------------------------------------------------
+// Count externalized size
+// 
+// ---------------------------------------------------------
+//
+EXPORT_C TUint32 CIptvVodContentContentBriefDetails::CountExternalizeSize()
+    {    
+    TUint32 size           = 0;
+    TUint32 browserUrlSize = 0;
+    
+    if (iBrowserUrl)
+        {
+        browserUrlSize = (iBrowserUrl->Length() * 2);
+        }
+
+    // Global file id
+    size = iFileId->CountExternalizeSize() +
+
+    // Preview global file id
+    iPreviewGlobalFileId->CountExternalizeSize() +
+
+    // Content ID indetifier.
+    KTUint32SizeInBytes +    
+
+    // Content name
+    KTUint16SizeInBytes + (iName.Length() * 2) +
+    
+    // Thumbnail path
+    KTUint16SizeInBytes + (iThumbnailPath.Length() * 2) +
+
+    // pubDate
+    ( KTUint32SizeInBytes * 2 ) +
+
+    // Browser url
+    KTUint16SizeInBytes + browserUrlSize +
+
+    // Size
+    KTUint32SizeInBytes +
+
+    // Duration (playtime)
+    KTUint32SizeInBytes +
+
+    // Language
+    KTUint16SizeInBytes + (iLanguage.Length() * 2) +
+
+    // Rating age.
+    KTUint16SizeInBytes;
+    
+    return size;
+    }
+
+// End of file.