videofeeds/clientapi/src/CIptvMyVideosVideoBriefDetails.cpp
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/clientapi/src/CIptvMyVideosVideoBriefDetails.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,319 @@
+/*
+* 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:    Defines data class structure for the API*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <s32strm.h>
+#include "CIptvMyVideosVideoBriefDetails.h"
+
+// CONSTANTS
+const TInt KTUint32SizeInBytes = 4;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::CIptvMyVideosVideoBriefDetails
+// ---------------------------------------------------------
+//
+CIptvMyVideosVideoBriefDetails::CIptvMyVideosVideoBriefDetails()
+ :  iVideoFlags((TIptvMyVideosVideoFlags)0),
+    iDownloadTime(2005,(TMonth)0,1,0,0,0,0),
+    iContentId(0),
+    iServiceId(0)
+    {
+    // Note: The initial value of iDownloadTime is used in comparisons on DB level.
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::ConstructL
+// ---------------------------------------------------------
+//
+void CIptvMyVideosVideoBriefDetails::ConstructL()
+    {
+    iFileId = CIptvMyVideosGlobalFileId::NewL();
+
+    iThumbnailPath = HBufC::NewL( 0 ); 
+    iName          = HBufC::NewL( 0 );
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::NewL
+// ---------------------------------------------------------
+//
+EXPORT_C CIptvMyVideosVideoBriefDetails* CIptvMyVideosVideoBriefDetails::NewL()
+    {
+    CIptvMyVideosVideoBriefDetails* self = CIptvMyVideosVideoBriefDetails::NewLC();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::NewLC
+// ---------------------------------------------------------
+//
+EXPORT_C CIptvMyVideosVideoBriefDetails* CIptvMyVideosVideoBriefDetails::NewLC()
+    {
+    CIptvMyVideosVideoBriefDetails* self = new (ELeave) CIptvMyVideosVideoBriefDetails();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::~CIptvMyVideosVideoBriefDetails
+// ---------------------------------------------------------
+//
+CIptvMyVideosVideoBriefDetails::~CIptvMyVideosVideoBriefDetails()
+    {
+    delete iFileId;
+    delete iThumbnailPath;
+    delete iName;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::ExternalizeL
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvMyVideosVideoBriefDetails::ExternalizeL(RWriteStream& aStream) const
+    {
+    // Global file ID identifier.
+    iFileId->ExternalizeL(aStream);
+    
+    // Thumbnail path.
+    CIptvUtil::WriteHBufCToStreamL( iThumbnailPath, aStream );
+
+    // Video flags.
+    aStream.WriteUint32L(static_cast<TUint32>(iVideoFlags));
+
+    // Video name.
+    CIptvUtil::WriteHBufCToStreamL( iName, aStream );
+    
+    // Download time.
+    aStream.WriteInt32L(iDownloadTime.Year());
+    aStream.WriteUint32L(static_cast<TUint32>(iDownloadTime.Month()));
+    aStream.WriteInt32L(iDownloadTime.Day());
+    aStream.WriteInt32L(iDownloadTime.Hour());
+    aStream.WriteInt32L(iDownloadTime.Minute());
+    aStream.WriteInt32L(iDownloadTime.Second());
+    aStream.WriteInt32L(iDownloadTime.MicroSecond());
+    
+    // Content Id (from service provider data).
+    aStream.WriteUint32L(iContentId);
+    
+    // Original service provider.
+    aStream.WriteUint32L(iServiceId);
+
+    // Age profile / rating age.
+    aStream.WriteUint32L( iAgeProfile );
+
+    // File size
+    aStream.WriteInt32L( iFileSize );
+
+    // Play time
+    aStream.WriteReal32L( iPlayTime );
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::InternalizeL
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvMyVideosVideoBriefDetails::InternalizeL(RReadStream& aStream)
+    {
+    // Global file ID identifier.
+    iFileId->InternalizeL(aStream);
+
+    // Thumbnail path.
+    HBufC* temp = CIptvUtil::ReadHBufCFromStreamL( aStream );
+    delete iThumbnailPath;
+    iThumbnailPath = temp;
+    
+    // Video flags.
+    iVideoFlags = static_cast<TIptvMyVideosVideoFlags>(aStream.ReadUint32L());
+    
+    // Video name.
+    temp = CIptvUtil::ReadHBufCFromStreamL( aStream );
+    delete iName;
+    iName = temp;
+    
+    // Download time.
+    iDownloadTime.SetYear(aStream.ReadInt32L());
+    iDownloadTime.SetMonth(static_cast<TMonth>(aStream.ReadUint32L()));
+    iDownloadTime.SetDay(aStream.ReadInt32L());
+    iDownloadTime.SetHour(aStream.ReadInt32L());
+    iDownloadTime.SetMinute(aStream.ReadInt32L());
+    iDownloadTime.SetSecond(aStream.ReadInt32L());
+    iDownloadTime.SetMicroSecond(aStream.ReadInt32L());
+
+    // Content Id (from service provider data).
+    iContentId = aStream.ReadUint32L();
+
+    // Original service provider.
+    iServiceId = aStream.ReadUint32L();
+
+    // Age profile / rating age.
+    iAgeProfile = aStream.ReadUint32L();
+
+    // File size
+    iFileSize = aStream.ReadInt32L();
+
+    // Play time
+    iPlayTime = aStream.ReadReal32L();
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::CountExternalizeSize
+// ---------------------------------------------------------
+//
+EXPORT_C TUint32 CIptvMyVideosVideoBriefDetails::CountExternalizeSize()
+    {
+    TUint32 size = 0;
+    
+    // Global file ID identifier.
+    size = (iFileId->CountExternalizeSize()) + 
+
+    // Thumbnail path.
+    KTUint32SizeInBytes + (iThumbnailPath->Length() * 2) +
+    
+    // Video flags.
+    KTUint32SizeInBytes +
+
+    // Video name.
+    KTUint32SizeInBytes + (iName->Length() * 2) +
+
+    // Download time.
+    (7 * KTUint32SizeInBytes) +
+
+    // Content Id.
+    KTUint32SizeInBytes +
+
+    // Original service provider.
+    KTUint32SizeInBytes +
+
+    // Age profile / rating age.
+    KTUint32SizeInBytes +
+
+    // File size
+    sizeof(iFileSize) +
+
+    // Play time
+    sizeof(iPlayTime);
+
+    return size;    
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::PlayTime
+// ---------------------------------------------------------
+//
+EXPORT_C TReal32 CIptvMyVideosVideoBriefDetails::PlayTime()
+    {
+    return iPlayTime;
+    }
+
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::SetPlayTime
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvMyVideosVideoBriefDetails::SetPlayTime(
+        TReal32 aPlayTime )
+    {
+    iPlayTime = aPlayTime;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::SetPlayTime
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CIptvMyVideosVideoBriefDetails::FileSize()
+    {
+    return iFileSize;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::SetPlayTime
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvMyVideosVideoBriefDetails::SetFileSize(
+        TInt aSize )
+    {
+    iFileSize = aSize;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::SetThumbnailPathL
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvMyVideosVideoBriefDetails::SetThumbnailPathL( const TDesC& aThumbnailPath )
+    {
+    if ( aThumbnailPath.Length() > KIptvEpgCategoryIconFilePathMaxLength )
+        {
+        User::Leave( KErrArgument );
+        }
+    
+    HBufC* temp = aThumbnailPath.AllocL();
+    delete iThumbnailPath;
+    iThumbnailPath = temp;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::ThumbnailPath
+// ---------------------------------------------------------
+//
+EXPORT_C const TDesC& CIptvMyVideosVideoBriefDetails::ThumbnailPath() const
+    {
+    if ( iThumbnailPath )
+        {
+        return *iThumbnailPath;
+        }
+
+    return KIptvEmptyDes;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::SetNameL
+// ---------------------------------------------------------
+//
+EXPORT_C void CIptvMyVideosVideoBriefDetails::SetNameL( const TDesC& aName )
+    {
+    if ( aName.Length() > KIptvMyVideosNameMaxLength )
+        {
+        User::Leave( KErrArgument );
+        }
+            
+    HBufC* temp = aName.AllocL();
+    delete iName;
+    iName = temp;
+    }
+
+// ---------------------------------------------------------
+// CIptvMyVideosVideoBriefDetails::Name
+// ---------------------------------------------------------
+//
+EXPORT_C const TDesC& CIptvMyVideosVideoBriefDetails::Name() const
+    {
+    if ( iName )
+        {
+        return *iName;
+        }
+
+    return KIptvEmptyDes;
+    }
+    
+// End of file.