diff -r 000000000000 -r 96612d01cf9f videofeeds/clientapi/src/CIptvVodContentContentBriefDetails.cpp --- /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 +#include +#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.