diff -r 000000000000 -r 96612d01cf9f videofeeds/utils/src/iptvlastwatcheddata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/utils/src/iptvlastwatcheddata.cpp Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,588 @@ +/* +* Copyright (c) 2007-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: Contains Video Center's last watched item's data.* +*/ + + + +#include "IptvDebug.h" +#include "CIptvUtil.h" +#include + +#include "iptvlastwatcheddata.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CIptvLastWatchedData::CIptvLastWatchedData() : + iServiceId( KIdUndefined ), + iContentId( KIdUndefined ), + iMpxId( KIdUndefined ) + { + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +EXPORT_C CIptvLastWatchedData* CIptvLastWatchedData::NewL() + { + return new( ELeave ) CIptvLastWatchedData; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CIptvLastWatchedData::~CIptvLastWatchedData() + { + delete iName; + delete iUri; + delete iIconPath; + delete iMimeType; + delete iParameters; + } + +// --------------------------------------------------------------------------- +// Construct class from binary stream +// --------------------------------------------------------------------------- +// +EXPORT_C void CIptvLastWatchedData::InternalizeL( RReadStream& aStream ) + { + iAppUid.iUid = aStream.ReadUint32L(); + iViewUid.iUid = aStream.ReadUint32L(); + iParameterId.iUid = aStream.ReadUint32L(); + + iLaunchType = static_cast( aStream.ReadUint32L() ); + + delete iName; + iName = NULL; + iName = HBufC::NewL( KIptvMyVideosVideoNameMaxLength ); + TPtr pName = iName->Des(); + CIptvUtil::ReadDesFromStreamL( pName, aStream ); + iName->ReAlloc( iName->Length() ); + + delete iUri; + iUri = NULL; + iUri = HBufC::NewL( KIptvLastWatchedUriMaxLength ); + TPtr pUri = iUri->Des(); + CIptvUtil::ReadDesFromStreamL( pUri, aStream ); + iUri->ReAlloc( iUri->Length() ); + + delete iIconPath; + iIconPath = NULL; + iIconPath = HBufC::NewL( KIptvMaxPath ); + TPtr pIconPath = iIconPath->Des(); + CIptvUtil::ReadDesFromStreamL( pIconPath, aStream ); + iIconPath->ReAlloc( iIconPath->Length() ); + + delete iMimeType; + iMimeType = NULL; + iMimeType = HBufC::NewL( KIptvMaxPath ); + TPtr pMimeType = iMimeType->Des(); + CIptvUtil::ReadDesFromStreamL( pMimeType, aStream ); + iMimeType->ReAlloc( iMimeType->Length() ); + + iServiceId = aStream.ReadInt32L(); + iContentId = aStream.ReadInt32L(); + iContentIndex = aStream.ReadInt32L(); + + iLastVideoPlayPoint = aStream.ReadUint32L(); + iParentalControl = aStream.ReadUint32L(); + + delete iParameters; + iParameters = NULL; + iParameters = HBufC8::NewL( KIptvLastWatchedStartparamMaxLength ); + TPtr8 pParameters = iParameters->Des(); + CIptvUtil::ReadDes8FromStreamL( pParameters, aStream ); + iParameters->ReAlloc( iParameters->Length() ); + +#if !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) + + TInt offset = aStream.Source()->TellL( MStreamBuf::ERead ).Offset(); + TInt size = aStream.Source()->SizeL(); + + // Check if iContentType is in stream (file). If we are reading old file format, + // we have already reached the EOF, but in new file format there's iContentType. + if ( ( offset + 4 ) <= size ) + { + iContentType = aStream.ReadInt32L(); + } + + offset = aStream.Source()->TellL( MStreamBuf::ERead ).Offset(); + + // Check if iMpxId is in stream (file). If we are reading old file format, + // we have already reached the EOF, but in new file format there's iMpxId. + if ( ( offset + 4 ) <= size ) + { + iMpxId = aStream.ReadInt32L(); + } + +#endif // !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) + } + +// --------------------------------------------------------------------------- +// Write class to binary stream +// --------------------------------------------------------------------------- +// +EXPORT_C void CIptvLastWatchedData::ExternalizeL( RWriteStream& aStream ) + { + aStream.WriteUint32L( iAppUid.iUid ); + aStream.WriteUint32L( iViewUid.iUid ); + aStream.WriteUint32L( iParameterId.iUid ); + aStream.WriteUint32L( iLaunchType ); + + CIptvUtil::WriteDesToStreamL( Name(), aStream ); + CIptvUtil::WriteDesToStreamL( Uri(), aStream ); + CIptvUtil::WriteDesToStreamL( IconPath(), aStream ); + CIptvUtil::WriteDesToStreamL( MimeType(), aStream ); + + aStream.WriteInt32L( iServiceId ); + aStream.WriteInt32L( iContentId ); + aStream.WriteInt32L( iContentIndex ); + aStream.WriteUint32L( iLastVideoPlayPoint ); + aStream.WriteUint32L( iParentalControl ); + + CIptvUtil::WriteDes8ToStreamL( Parameters(), aStream ); + +#if !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) + + aStream.WriteInt32L( iContentType ); + + aStream.WriteInt32L( iMpxId ); + +#endif // !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetNameL( const TDesC& aName ) + { + if ( aName.Length() > KIptvMyVideosVideoNameMaxLength ) + { + return KErrArgument; + } + + delete iName; + iName = NULL; + iName = aName.AllocL(); + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetUriL( const TDesC& aUri ) + { + if ( aUri.Length() > KIptvLastWatchedUriMaxLength ) + { + return KErrArgument; + } + + delete iUri; + iUri = NULL; + iUri = aUri.AllocL(); + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetIconPathL( const TDesC& aIconPath ) + { + if ( aIconPath.Length() > KIptvMaxPath ) + { + return KErrArgument; + } + + delete iIconPath; + iIconPath = NULL; + iIconPath = aIconPath.AllocL(); + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetMimeTypeL( const TDesC& aMimeType ) + { + if ( aMimeType.Length() > KIptvMyVideosVideoMaxMimeTypeLength ) + { + return KErrArgument; + } + + delete iMimeType; + iMimeType = NULL; + iMimeType = aMimeType.AllocL(); + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetServiceId( + const TInt32 aServiceId ) + { + iServiceId = aServiceId; + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetContentId( + const TIptvContentId aContentId ) + { + iContentId = aContentId; + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetContentIndex( + const TInt32 aContentIndex ) + { + iContentIndex = aContentIndex; + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetLastVideoPlayPoint( + const TUint32 aLastVideoPlayPoint ) + { + iLastVideoPlayPoint = aLastVideoPlayPoint; + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetParentalControl( + const TUint32 aParentalControl ) + { + iParentalControl = aParentalControl; + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetParametersL( const TDesC8& aParameters ) + { + if ( aParameters.Length() > KIptvLastWatchedStartparamMaxLength ) + { + return KErrArgument; + } + + delete iParameters; + iParameters = NULL; + iParameters = aParameters.AllocL(); + + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C void CIptvLastWatchedData::SetAppUid( const TUid& aAppUid ) + { + iAppUid = aAppUid; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C void CIptvLastWatchedData::SetViewUid( const TUid& aViewUid ) + { + iViewUid = aViewUid; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C void CIptvLastWatchedData::SetParameterId( const TUid& aParameterId ) + { + iParameterId = aParameterId; + } + +// --------------------------------------------------------------------------- +// Setter +// --------------------------------------------------------------------------- +// +EXPORT_C void CIptvLastWatchedData::SetLaunchType( TLaunchType aLaunchType ) + { + iLaunchType = aLaunchType; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIptvLastWatchedData::Name() const + { + if ( iName ) + { + return *iName; + } + else + { + return KNullDesC(); + } + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIptvLastWatchedData::Uri() const + { + if ( iUri ) + { + return *iUri; + } + else + { + return KNullDesC(); + } + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIptvLastWatchedData::IconPath() const + { + if ( iIconPath ) + { + return *iIconPath; + } + else + { + return KNullDesC(); + } + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIptvLastWatchedData::MimeType() const + { + if ( iMimeType ) + { + return *iMimeType; + } + else + { + return KNullDesC(); + } + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt32 CIptvLastWatchedData::ServiceId() const + { + return iServiceId; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TIptvContentId CIptvLastWatchedData::ContentId() const + { + return iContentId; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TInt32 CIptvLastWatchedData::ContentIndex() const + { + return iContentIndex; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TUint32 CIptvLastWatchedData::LastVideoPlayPoint() const + { + return iLastVideoPlayPoint; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TUint32 CIptvLastWatchedData::ParentalControl() const + { + return iParentalControl; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC8& CIptvLastWatchedData::Parameters() const + { + if ( iParameters ) + { + return *iParameters; + } + else + { + return KNullDesC8(); + } + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TUid CIptvLastWatchedData::AppUid() const + { + return iAppUid; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TUid CIptvLastWatchedData::ViewUid() const + { + return iViewUid; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C TUid CIptvLastWatchedData::ParameterId() const + { + return iParameterId; + } + +// --------------------------------------------------------------------------- +// Getter +// --------------------------------------------------------------------------- +// +EXPORT_C CIptvLastWatchedData::TLaunchType CIptvLastWatchedData::LaunchType() + const + { + return iLaunchType; + } + +// ----------------------------------------------------------------------------- +// CIptvLastWatchedData::CountExternalizeSize() +// Return externalize size in 8bit bytes. +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint32 CIptvLastWatchedData::CountExternalizeSize() const + { + TUint32 size = + 2 + ( Name().Length() * 2 ) + // HBufC* iName + 2 + ( Uri().Length() * 2 ) + // HBufC* iUri + 2 + ( IconPath().Length() * 2 ) + // HBufC* iIconPath + 2 + ( MimeType().Length() * 2 ) + // HBufC* iMimeType + 4 + // TInt32 iServiceId; + 4 + // TIptvContentId iContentId; + 4 + // TInt32 ContentIndex; + 4 + // TUint32 iLastVideoPlayPoint; + 4 + // TUint32 iParentalControl; + 2 + ( Parameters().Length() ) + // HBufC8* iParameters + 4 + // TUid iAppUid + 4 + // TUid iViewUid + 4 + // TUid iParameterId + 4; // TLaunchType iLaunchType + +#if !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) + + size += 4; // TUint32 iContentType + size += 4; // TUint32 iMpxId + +#endif // !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) + + return size; + } + +// ----------------------------------------------------------------------------- +// !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetContentType( const TInt aContentType ) + { + iContentType = aContentType; + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::ContentType() const + { + return iContentType; + } + +// ----------------------------------------------------------------------------- +// !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::SetMpxId( const TInt aMpxId ) + { + iMpxId = aMpxId; + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// !defined(__SERIES60_30__) && !defined(__SERIES60_31__) && !defined(__SERIES60_32__) +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIptvLastWatchedData::MpxId() const + { + return iMpxId; + }