diff -r 48e74db5d516 -r bbb98528c666 videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Thu Apr 01 23:13:36 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Thu Apr 01 23:22:15 2010 +0300 @@ -56,7 +56,6 @@ _LIT( KVcxOriginPropertyName, "Origin" ); //16 _LIT( KVcxDurationPropertyName, "Duration" ); //17 _LIT( KVcxLastPlayPositionPropertyName, "LastPlayPosition" ); //10 -_LIT( KVcxDownloadIdPropertyName, "DownloadID" ); //18 _LIT( KVcxRatingPropertyName, "Rating" ); //19 _LIT( KVcxBitratePropertyName, "Bitrate" ); //20 _LIT( KVcxAudioFourCcPropertyName, "AudioFourCC" ); //21 @@ -68,8 +67,9 @@ // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // -CVcxMyVideosMdsDb::CVcxMyVideosMdsDb( MVcxMyVideosMdsDbObserver* aObserver, RFs& aFs ) -: iFs( aFs ), iMdsDbObserver(aObserver) +CVcxMyVideosMdsDb::CVcxMyVideosMdsDb( MVcxMyVideosMdsDbObserver* aObserver, + MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ) +: iFs( aFs ), iMdsDbObserver(aObserver), iAlbumsObserver(aAlbumsObserver) { } @@ -129,7 +129,7 @@ iMdsSession->AddObjectPresentObserverL( *this ); - iAlbums = CVcxMyVideosMdsAlbums::NewL( *this ); + iAlbums = CVcxMyVideosMdsAlbums::NewL( *this, iAlbumsObserver ); TCallBack callBack( AsyncHandleQueryCompleted, this ); iAsyncHandleQueryCompleteCaller = new (ELeave) CAsyncCallBack( callBack, @@ -145,7 +145,6 @@ MPX_DEBUG1( "CVcxMyVideosMdsDb::--------------------------------------------------------------." ); MPX_DEBUG3( "CVcxMyVideosMdsDb::HandleObjectPresentNotification( aPresent = %1d, count = %3d) |", aPresent, aObjectIdArray.Count() ); MPX_DEBUG1( "CVcxMyVideosMdsDb::--------------------------------------------------------------'" ); - //iMdsDbObserver->HandleObjectPresentNotification(); TObserverNotificationType type; if ( aPresent ) @@ -163,10 +162,11 @@ // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // -CVcxMyVideosMdsDb* CVcxMyVideosMdsDb::NewL( MVcxMyVideosMdsDbObserver* aObserver, RFs& aFs ) +CVcxMyVideosMdsDb* CVcxMyVideosMdsDb::NewL( MVcxMyVideosMdsDbObserver* aObserver, + MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ) { CVcxMyVideosMdsDb* self = - CVcxMyVideosMdsDb::NewLC( aObserver, aFs ); + CVcxMyVideosMdsDb::NewLC( aObserver, aAlbumsObserver, aFs ); CleanupStack::Pop( self ); return self; } @@ -175,10 +175,10 @@ // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // -CVcxMyVideosMdsDb* CVcxMyVideosMdsDb::NewLC( - MVcxMyVideosMdsDbObserver* aObserver, RFs& aFs ) +CVcxMyVideosMdsDb* CVcxMyVideosMdsDb::NewLC( MVcxMyVideosMdsDbObserver* aObserver, + MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ) { - CVcxMyVideosMdsDb* self = new( ELeave ) CVcxMyVideosMdsDb( aObserver, aFs ); + CVcxMyVideosMdsDb* self = new( ELeave ) CVcxMyVideosMdsDb( aObserver, aAlbumsObserver, aFs ); CleanupStack::PushL( self ); self->ConstructL(); return self; @@ -250,18 +250,23 @@ *iVideoObjectDef, aVideo.ValueText( KMPXMediaGeneralUri ) ); // 1-> // check if the file exists and use the creation time from the file - + + SetCreationAndModifiedDatesL( *object ); + +#if 0 TTime time; time.UniversalTime(); TTimeIntervalSeconds timeOffset = User::UTCOffset(); TTime localTime = time + timeOffset; - + + const TInt secondsInMinute( 60 ); object->AddTimePropertyL( *iCreationDatePropertyDef, localTime ); - object->AddInt16PropertyL( *iTimeOffsetPropertyDef, timeOffset.Int() / 60 ); + object->AddInt16PropertyL( *iTimeOffsetPropertyDef, timeOffset.Int() / secondsInMinute ); object->AddTimePropertyL( *iLastModifiedDatePropertyDef, localTime ); +#endif object->AddUint8PropertyL( *iOriginPropertyDef, aVideo.ValueTObjectL( KVcxMediaMyVideosOrigin ) ); - + CMdEProperty* property; // Type can not be modified normally, so set it here @@ -365,7 +370,7 @@ CMdEObject* object = iMdsSession->OpenObjectL( mpxId.iId1, *iVideoObjectDef ); - if ( object == NULL ) + if ( !object ) { // No object with this ID was found! MPX_DEBUG1("CVcxMyVideosMdsDb::UpdateVideoL no object found"); @@ -404,7 +409,8 @@ { MPX_FUNC( "CVcxMyVideosMdsDb::CreateVideoListL" ); - CVcxMyVideosMdsCmdGetVideoList* cmd = CVcxMyVideosMdsCmdGetVideoList::NewL(); + CVcxMyVideosMdsCmdGetVideoList* cmd = new (ELeave) CVcxMyVideosMdsCmdGetVideoList; + CleanupStack::PushL( cmd ); // 1-> cmd->iCmdType = CVcxMyVideosMdsDb::EGetVideoList; cmd->iSortingOrder = aSortingOrder; cmd->iAscending = aAscending; @@ -412,6 +418,7 @@ cmd->iVideoList = &aVideoList; iCmdQueue->ExecuteCmdL( cmd ); //ownership moves + CleanupStack::Pop( cmd ); // <-1 } // --------------------------------------------------------------------------- @@ -512,7 +519,8 @@ iFullDetails = aFullDetails; - iVideoQuery->FindL(KMdEQueryDefaultMaxCount, 500); + const TInt maxItemsInQueryResult = 500; + iVideoQuery->FindL( KMdEQueryDefaultMaxCount, maxItemsInQueryResult ); aVideoList->SetTObjectValueL( KMPXMediaGeneralType, EMPXGroup ); aVideoList->SetTObjectValueL( KMPXMediaArrayCount, mediaArray->Count() ); @@ -644,20 +652,21 @@ CMdEObject* object = ObjectL( aId ); - CMPXMedia* video = NULL; - - if ( object ) + if ( !object ) { - CleanupStack::PushL( object ); // 1-> + MPX_DEBUG2("CVcxMyVideosMdsDb:: mds id %d not found from mds", aId); + User::Leave( KErrNotFound ); + } + + CleanupStack::PushL( object ); // 1-> - video = CMPXMedia::NewL( ); - CleanupStack::PushL( video ); // 2-> + CMPXMedia* video = CMPXMedia::NewL( ); + CleanupStack::PushL( video ); // 2-> - Object2MediaL( *object, *video, aFullDetails ); + Object2MediaL( *object, *video, aFullDetails ); - CleanupStack::Pop( video ); // <-2 - CleanupStack::PopAndDestroy( object ); // <-1 - } + CleanupStack::Pop( video ); // <-2 + CleanupStack::PopAndDestroy( object ); // <-1 return video; } @@ -704,8 +713,6 @@ { MPX_DEBUG1( "CVcxMyVideosMdsDb:: Videolist fetching was going on"); iVideoListFetchingIsOngoing = EFalse; -// delete iVideoQuery; -// iVideoQuery = NULL; iMdsDbObserver->HandleCreateVideoListResp( iVideoList, -1 /* -1 = no new items */, ETrue /* complete */); } @@ -954,6 +961,7 @@ aVideo.SetTObjectValueL( KMPXMediaGeneralLastPlaybackPosition, pos ); } +#if 0 //18. DOWNLOAD ID (BRIEF) if ( aObject.Property( *iDownloadIdPropertyDef, property, 0 ) != KErrNotFound ) { @@ -964,7 +972,8 @@ { aVideo.SetTObjectValueL( KVcxMediaMyVideosDownloadId, 0 ); } - +#endif + //19. RATING (FULL) if ( aObject.Property( *iRatingPropertyDef, property, 0 ) != KErrNotFound && aFullDetails ) @@ -1320,7 +1329,8 @@ aObject.AddReal32PropertyL( *iLastPlayPositionPropertyDef, lastPlaybackPos ); } } - + +#if 0 // 18. DOWNLOAD ID if ( aVideo.IsSupported( KVcxMediaMyVideosDownloadId ) ) { @@ -1335,7 +1345,8 @@ aObject.AddUint32PropertyL( *iDownloadIdPropertyDef, dlId ); } } - +#endif + // 19. RATING if ( aVideo.IsSupported( KVcxMediaMyVideosRating ) ) { @@ -1493,9 +1504,11 @@ iAudioLanguagePropertyDef = &(iVideoObjectDef->GetPropertyDefL( KVcxAudioLanguagePropertyName )); //14 +#if 0 iDownloadIdPropertyDef = &(iVideoObjectDef->GetPropertyDefL( KVcxDownloadIdPropertyName )); //18 - +#endif + } // --------------------------------------------------------------------------- @@ -1536,3 +1549,19 @@ } +// --------------------------------------------------------------------------- +// CVcxMyVideosMdsDb::SetCreationAndModifiedDatesL +// --------------------------------------------------------------------------- +// +void CVcxMyVideosMdsDb::SetCreationAndModifiedDatesL( CMdEObject& aObject ) + { + TTime time; + time.UniversalTime(); + TTimeIntervalSeconds timeOffset = User::UTCOffset(); + TTime localTime = time + timeOffset; + + const TInt secondsInMinute( 60 ); + aObject.AddTimePropertyL( *iCreationDatePropertyDef, localTime ); + aObject.AddInt16PropertyL( *iTimeOffsetPropertyDef, timeOffset.Int() / secondsInMinute ); + aObject.AddTimePropertyL( *iLastModifiedDatePropertyDef, localTime ); + }