# HG changeset patch # User hgs # Date 1275029119 -10800 # Node ID f6d44a0cd476680870c4654db403d68bd113eee8 # Parent ff53afa8ad05f970d080e8d5be4fd1c573c133b0 201021 diff -r ff53afa8ad05 -r f6d44a0cd476 inc/mpxvideoplayercustomviewmsgconsts.h --- a/inc/mpxvideoplayercustomviewmsgconsts.h Fri May 14 15:14:51 2010 +0300 +++ b/inc/mpxvideoplayercustomviewmsgconsts.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,8 @@ */ -// Version : %version: da1mmcf#3 % +// Version : %version: da1mmcf#4 % + #ifndef __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__ #define __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__ @@ -31,5 +32,6 @@ const TInt KMpxVideoPlaybackPdlReloading = 0x20024339; +const TInt KMpxVideoPlaybackPdlReloadComplete = 0x2002433A; #endif // __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__ diff -r ff53afa8ad05 -r f6d44a0cd476 layers.sysdef.xml --- a/layers.sysdef.xml Fri May 14 15:14:51 2010 +0300 +++ b/layers.sysdef.xml Fri May 28 09:45:19 2010 +0300 @@ -40,6 +40,12 @@ + + + + + + diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h --- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h Fri May 28 09:45:19 2010 +0300 @@ -280,14 +280,14 @@ * @param aObserver The db change observer. */ static CVcxMyVideosMdsDb* NewL( MVcxMyVideosMdsDbObserver* aObserver, - MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ); + RFs& aFs, MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver = NULL ); /** * Two-phased constructor. * @param aObserver The db change observer. */ static CVcxMyVideosMdsDb* NewLC( MVcxMyVideosMdsDbObserver* aObserver, - MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ); + RFs& aFs, MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver = NULL ); /** @@ -434,7 +434,7 @@ * @param aFs Session to file server. */ CVcxMyVideosMdsDb( MVcxMyVideosMdsDbObserver* aObserver, - MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ); + RFs& aFs, MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver = NULL ); void ConstructL(); diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/inc/vcxmyvideosopenhandler.h --- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosopenhandler.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosopenhandler.h Fri May 28 09:45:19 2010 +0300 @@ -24,15 +24,6 @@ class CVcxMyVideosMdsDb; #include "vcxmyvideosmdsdb.h" - -enum TVcxItemType - { - EVcxItemTypeNone, - EVcxItemTypeVideo, - EVcxItemTypeCategory, - EVcxItemTypeAlbum - }; - /** */ NONSHARABLE_CLASS( CVcxMyVideosOpenHandler ) : public CBase, public MVcxMyVideosMdsAlbumsObserver diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/inc/vcxmyvideosvideocache.h --- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosvideocache.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosvideocache.h Fri May 28 09:45:19 2010 +0300 @@ -25,6 +25,7 @@ // FORWARD DECLARATIONS class CVcxMyVideosCollectionPlugin; class CMPXMedia; +class CRepository; // CONSTANTS @@ -490,7 +491,7 @@ /** * Set to ETrue when doing videolist fetching. */ - TBool IsFetchingVideoList; + TBool iIsFetchingVideoList; private: /** @@ -508,6 +509,12 @@ * order for fast access. */ CVcxMyVideosVideoListIndex* iVideoListIndex; + + /** + * Provides access to the sorting order key in cenrep. Own. + */ + CRepository* iCenRep; + }; #endif // VCXMYVIDEOSVIDEOCACHE_H diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp Fri May 28 09:45:19 2010 +0300 @@ -202,11 +202,8 @@ media = videoListArray->AtL( i ); - if ( media->IsSupported( KVcxMediaMyVideosOrigin ) ) - { - origin = media->ValueTObjectL( KVcxMediaMyVideosOrigin ); - } - + origin = TVcxMyVideosCollectionUtil::OriginL( *media ); + TBool newVideo = EFalse; TUint32 flags = 0; @@ -549,16 +546,15 @@ { case -1: return KVcxMyVideosAllVideosCategoryIndex; - - case EVcxMyVideosOriginDownloaded: - return KVcxMyVideosDownloadsCategoryIndex; - + case EVcxMyVideosOriginCapturedWithCamera: return KVcxMyVideosCapturedCategoryIndex; + case EVcxMyVideosOriginDownloaded: +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 + return KVcxMyVideosDownloadsCategoryIndex; +#endif case EVcxMyVideosOriginTvRecording: - return KVcxMyVideosTvRecordingsCategoryIndex; - case EVcxMyVideosOriginSideLoaded: case EVcxMyVideosOriginOther: default: diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionplugin.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionplugin.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionplugin.cpp Fri May 28 09:45:19 2010 +0300 @@ -100,8 +100,11 @@ MPX_FUNC("CVcxMyVideosCollectionPlugin::ConstructL"); User::LeaveIfError( iFs.Connect() ); - - iMyVideosMdsDb = CVcxMyVideosMdsDb::NewL( this, &AlbumsL(), iFs ); +#ifdef VIDEO_COLLECTION_PLUGIN_TB92 + iMyVideosMdsDb = CVcxMyVideosMdsDb::NewL( this, iFs ); +#else + iMyVideosMdsDb = CVcxMyVideosMdsDb::NewL( this, iFs, &AlbumsL() ); +#endif iActiveTask = CVcxMyVideosActiveTask::NewL( *this ); iCache = CVcxMyVideosVideoCache::NewL( *this ); iMessageList = CVcxMyVideosMessageList::NewL( *this ); @@ -432,7 +435,9 @@ MPX_DEBUG1("CVcxMyVideosCollectionPlugin::DoHandleMyVideosDbEventL() --------------------------------------------'"); iCache->RemoveL( aId ); +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 AlbumsL().RemoveAlbumsL( aId ); +#endif } break; @@ -457,12 +462,14 @@ // to not be videos are added to nonVideoIds. iCache->AddVideosFromMdsL( aId, videoListFetchingWasCancelled, &nonVideoIds ); +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 #if 0 //TODO: do this if we want to support albums which are being added by someone else than My Videos Collection //After the call nonVideoIds will contain only items which were actually added //to albums. AlbumsL().AddAlbumsFromMdsL( nonVideoIds ); #endif +#endif if ( videoListFetchingWasCancelled ) { @@ -478,7 +485,9 @@ MPX_DEBUG1("CVcxMyVideosCollectionPlugin::DoHandleMyVideosDbEventL() Items modified in MDS, updating cache |"); MPX_DEBUG1("CVcxMyVideosCollectionPlugin::DoHandleMyVideosDbEventL() --------------------------------------'"); CMPXMedia* video; +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 CMPXMedia* album; +#endif TInt count = aId.Count(); for ( TInt i = count - 1; i >= 0; i-- ) { @@ -492,6 +501,10 @@ } else { +#ifdef VIDEO_COLLECTION_PLUGIN_TB92 + MPX_DEBUG1("CVcxMyVideosCollectionPlugin:: couldn't find the modified item from MDS"); + aId.Remove( i ); +#else MPX_DEBUG1("CVcxMyVideosCollectionPlugin:: item was not found from videos, checking albums"); album = iMyVideosMdsDb->iAlbums->GetAlbumL( aId[i] ); @@ -506,6 +519,7 @@ MPX_DEBUG1("CVcxMyVideosCollectionPlugin:: couldn't find the modified item from MDS"); } aId.Remove( i ); +#endif } } @@ -531,6 +545,7 @@ } } +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 //nonVideoIds are albums count = nonVideoIds.Count(); for ( TInt i = 0; i < count; i++ ) @@ -539,11 +554,11 @@ TMPXItemId( nonVideoIds[i], KVcxMvcMediaTypeAlbum ), aEvent ) ); } + iAlbums->UpdateChangedAlbumsL(); +#endif + CleanupStack::PopAndDestroy( &nonVideoIds ); - - iAlbums->UpdateChangedAlbumsL(); - - iMessageList->SendL(); + iMessageList->SendL(); } // ---------------------------------------------------------------------------- @@ -906,35 +921,6 @@ } } -#if 0 -// ---------------------------------------------------------------------------- -// CVcxMyVideosCollectionPlugin::NotifyDownloadCompletedL -// ---------------------------------------------------------------------------- -// -void CVcxMyVideosCollectionPlugin::NotifyDownloadCompletedL( CMPXMedia& aVideo ) - { - const TInt KMediaExtSize( 8 ); - - HBufC8* buffer = HBufC8::NewL( KMediaExtSize ); - CleanupStack::PushL( buffer ); - TPtr8 des = buffer->Des(); - - RDesWriteStream stream; - CleanupClosePushL( stream ); - stream.Open( des ); - - aVideo.ExternalizeL( stream ); - - stream.CommitL(); - - CleanupStack::PopAndDestroy( &stream ); - - DownloadUtilL().NotifyDownloadCompleted( *buffer ); - - CleanupStack::PopAndDestroy( buffer ); - } -#endif - // ---------------------------------------------------------------------------- // CVcxMyVideosCollectionPlugin::NotifyNewVideosCountDecreasedL // ---------------------------------------------------------------------------- diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp Fri May 28 09:45:19 2010 +0300 @@ -254,10 +254,19 @@ if ( aVideo.IsSupported( KVcxMediaMyVideosOrigin ) ) { origin = aVideo.ValueTObjectL( KVcxMediaMyVideosOrigin ); - if ( origin == EVcxMyVideosOriginSideLoaded ) +#ifdef VIDEO_COLLECTION_PLUGIN_TB92 + if ( origin != EVcxMyVideosOriginCapturedWithCamera ) { origin = EVcxMyVideosOriginOther; } +#else + if ( origin != EVcxMyVideosOriginCapturedWithCamera && + origin != EVcxMyVideosOriginDownloaded + ) + { + origin = EVcxMyVideosOriginOther; + } +#endif } return origin; } diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp Fri May 28 09:45:19 2010 +0300 @@ -1042,7 +1042,10 @@ TObserverNotificationType aType, const RArray& aRelationArray) { - iObserver->HandleRelationEvent( aType, aRelationArray ); + if ( iObserver ) + { + iObserver->HandleRelationEvent( aType, aRelationArray ); + } } #if 0 @@ -1059,7 +1062,10 @@ { case ENotifyAdd: MPX_DEBUG1("CVcxMyVideosMdsAlbums:: relation ENotifyAdd"); - iObserver->HandleRelationIdEvent( aType, aRelationIdArray ); + if ( iObserver ) + { + iObserver->HandleRelationIdEvent( aType, aRelationIdArray ); + } break; case ENotifyModify: MPX_DEBUG1("CVcxMyVideosMdsAlbums:: ENotifyModify"); diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Fri May 28 09:45:19 2010 +0300 @@ -159,15 +159,17 @@ } // --------------------------------------------------------------------------- +// CVcxMyVideosMdsDb::CVcxMyVideosMdsDb // --------------------------------------------------------------------------- // CVcxMyVideosMdsDb::CVcxMyVideosMdsDb( MVcxMyVideosMdsDbObserver* aObserver, - MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ) + RFs& aFs, MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver ) : iFs( aFs ), iMdsDbObserver(aObserver), iAlbumsObserver(aAlbumsObserver) { } // --------------------------------------------------------------------------- +// CVcxMyVideosMdsDb::ConstructL // --------------------------------------------------------------------------- // void CVcxMyVideosMdsDb::ConstructL() @@ -274,10 +276,10 @@ // --------------------------------------------------------------------------- // CVcxMyVideosMdsDb* CVcxMyVideosMdsDb::NewL( MVcxMyVideosMdsDbObserver* aObserver, - MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ) + RFs& aFs, MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver ) { CVcxMyVideosMdsDb* self = - CVcxMyVideosMdsDb::NewLC( aObserver, aAlbumsObserver, aFs ); + CVcxMyVideosMdsDb::NewLC( aObserver, aFs, aAlbumsObserver ); CleanupStack::Pop( self ); return self; } @@ -287,9 +289,9 @@ // --------------------------------------------------------------------------- // CVcxMyVideosMdsDb* CVcxMyVideosMdsDb::NewLC( MVcxMyVideosMdsDbObserver* aObserver, - MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver, RFs& aFs ) + RFs& aFs, MVcxMyVideosMdsAlbumsObserver* aAlbumsObserver ) { - CVcxMyVideosMdsDb* self = new( ELeave ) CVcxMyVideosMdsDb( aObserver, aAlbumsObserver, aFs ); + CVcxMyVideosMdsDb* self = new( ELeave ) CVcxMyVideosMdsDb( aObserver, aFs, aAlbumsObserver ); CleanupStack::PushL( self ); self->ConstructL(); return self; @@ -1023,8 +1025,22 @@ //16. ORIGIN, KVcxMediaMyVideosOrigin if ( aObject.Property( *iOriginPropertyDef, property, 0 ) != KErrNotFound ) { - aVideo.SetTObjectValueL( KVcxMediaMyVideosOrigin, - static_cast(property)->Value() ); + TUint8 origin = static_cast(property)->Value(); +#ifdef VIDEO_COLLECTION_PLUGIN_TB92 + if( origin != EVcxMyVideosOriginCapturedWithCamera ) + { + origin = EVcxMyVideosOriginOther; + } +#else + if ( origin != EVcxMyVideosOriginCapturedWithCamera && + origin != EVcxMyVideosOriginDownloaded + ) + { + origin = EVcxMyVideosOriginOther; + } + +#endif + aVideo.SetTObjectValueL( KVcxMediaMyVideosOrigin, origin ); } //17. DURATION, (KMPXMediaGeneralDuration can't be used since it is TInt @@ -1573,11 +1589,6 @@ iAudioLanguagePropertyDef = &(iVideoObjectDef->GetPropertyDefL( KVcxAudioLanguagePropertyName )); //14 - -#if 0 - iDownloadIdPropertyDef = &(iVideoObjectDef->GetPropertyDefL( - KVcxDownloadIdPropertyName )); //18 -#endif } diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideosmessagelist.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmessagelist.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmessagelist.cpp Fri May 28 09:45:19 2010 +0300 @@ -106,7 +106,7 @@ MPX_DEBUG1("CVcxMyVideosMessageList:: ----------------------------------------------'" ); #endif - if ( AlreadyInMessageListL( aId, aChange, aExtraInfo ) ) + if ( aChange == EMPXItemModified && AlreadyInMessageListL( aId, aChange, aExtraInfo ) ) { MPX_DEBUG1("CVcxMyVideosMessageList:: already in message list, skipping add"); return; diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp Fri May 28 09:45:19 2010 +0300 @@ -125,8 +125,10 @@ case categoryLevel: { //we are at root level, return main level items (categories + albums) - + +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 iCollection.AlbumsL().CreateAlbumListL(); //async +#endif // This is needed to update category counters. // Goes to queue if CreateAlbumListL command goes to execution @@ -139,8 +141,14 @@ CMPXMedia* itemList = TVcxMyVideosCollectionUtil::CreateEmptyMediaListL(); CleanupStack::PushL( itemList ); + + itemList->SetTObjectValueL( KVcxMediaMyVideosVideoListIsPartial, + !iCache.IsComplete() ); + TVcxMyVideosCollectionUtil::AppendToListL( *itemList, *iCollection.CategoriesL().iList ); +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 TVcxMyVideosCollectionUtil::AppendToListL( *itemList, *iCollection.AlbumsL().iAlbumList ); +#endif itemList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath ); iCollection.iObs->HandleOpen( itemList, KErrNone ); CleanupStack::PopAndDestroy( itemList ); @@ -152,7 +160,9 @@ { //we are at second level, return video list from some category or album +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 iCollection.AlbumsL().CreateAlbumListL(); //async +#endif TMPXItemId categoryId( aPath.Id() ); @@ -229,7 +239,7 @@ CMPXMedia* videoList = iCache.CreateVideoListByOriginL( origin ); MPX_DEBUG1("CVcxMyVideosOpenHandler:: calling HandleOpen(new list)"); videoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath ); - iCache.iVideoList->SetTObjectValueL( KVcxMediaMyVideosInt32Value, + videoList->SetTObjectValueL( KVcxMediaMyVideosInt32Value, EVcxMyVideosVideoListComplete ); iCollection.iObs->HandleOpen( videoList, KErrNone ); delete videoList; @@ -266,8 +276,8 @@ iVideoListsBeingOpened.AppendL( videoList ); CleanupStack::Pop( videoList ); MPX_DEBUG1("CVcxMyVideosOpenHandler:: calling HandleOpen"); - iCache.iVideoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath ); - iCollection.iObs->HandleOpen( iCache.iVideoList, KErrNone ); + videoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath ); + iCollection.iObs->HandleOpen( videoList, KErrNone ); } else { @@ -326,7 +336,7 @@ // End event arrived iCache.SetComplete( ETrue ); - iCache.IsFetchingVideoList = EFalse; + iCache.iIsFetchingVideoList = EFalse; // Create modify event for All category. @@ -394,9 +404,6 @@ // void CVcxMyVideosOpenHandler::HandleAlbumOpenL() { - //TODO: If iVideoList is partial and fetching is already going on -> use the implementation below. - // If iVideoList is partial but fetching is not going on -> fetch only album items to iCache. - MPX_DEBUG1("CVcxMyVideosOpenHandler::HandleAlbumOpenL() start"); CVcxMyVideosAlbum* album = iCollection.AlbumsL().Album( iPendingAlbumOpenId ); @@ -406,17 +413,18 @@ { //videolist complete CMPXMedia* videoList = album->CreateVideoListL(); + CleanupStack::PushL( videoList ); // 1-> videoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath ); videoList->SetTObjectValueL( KVcxMediaMyVideosInt32Value, EVcxMyVideosVideoListComplete ); iCollection.iObs->HandleOpen( videoList, KErrNone ); - delete videoList; + CleanupStack::PopAndDestroy( videoList ); // <-1 iCollection.iMessageList->AddEventL( KVcxMessageMyVideosListComplete ); iCollection.iMessageList->SendL(); } else { - if ( iCollection.iCache->IsFetchingVideoList ) + if ( iCollection.iCache->iIsFetchingVideoList ) { MPX_DEBUG1("CVcxMyVideosOpenHandler:: videolist fetching already in progress -> use that to populate album"); @@ -443,9 +451,6 @@ } else { - // videolist incomplete and fetching hasn't been started - // TODO: Test how fast this is. If slow, then ditch the separate album fetching. - MPX_DEBUG1("CVcxMyVideosOpenHandler:: videolist partial and no fetching going on -> fetch the album videos separately"); delete iAlbumVideoList; diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp Fri May 28 09:45:19 2010 +0300 @@ -14,7 +14,7 @@ * Description: Video list cache. Contains cached data from MDS.* */ -// Version : %version: TB101_58 % + // INCLUDE FILES @@ -344,18 +344,8 @@ { media = (*allVideosArray)[i]; - TUint8 mediaOrigin = EVcxMyVideosOriginOther; - - if ( media->IsSupported( KVcxMediaMyVideosOrigin ) ) - { - mediaOrigin = *(media->Value( KVcxMediaMyVideosOrigin )); - - if ( mediaOrigin == EVcxMyVideosOriginSideLoaded ) - { - mediaOrigin = EVcxMyVideosOriginOther; - } - } - + TUint8 mediaOrigin = TVcxMyVideosCollectionUtil::OriginL( *media ); + if ( mediaOrigin == aOrigin ) { filteredVideosArray->AppendL( *media ); @@ -749,7 +739,7 @@ TVcxMyVideosSortingOrder sortingOrder = SortingOrderL(); - if ( IsFetchingVideoList + if ( iIsFetchingVideoList && sortingOrder == iLastSortingOrder && !aForce ) { MPX_DEBUG1("CVcxMyVideosVideoCache:: iVideoList creation is already ongoing, skipping"); @@ -760,11 +750,11 @@ { MPX_DEBUG1("CVcxMyVideosVideoCache:: iVideoList was partial or in wrong order or aForce was ETrue, recreating"); - if ( IsFetchingVideoList ) + if ( iIsFetchingVideoList ) { MPX_DEBUG1("CVcxMyVideosVideoCache:: video list fetching is ongoing, canceling it"); iCollection.iMyVideosMdsDb->Cancel( CVcxMyVideosMdsDb::EGetVideoList ); - IsFetchingVideoList = EFalse; + iIsFetchingVideoList = EFalse; } ResetVideoListL(); @@ -790,7 +780,7 @@ EFalse /* brief list */, iVideoList /* use existing */ ); - IsFetchingVideoList = ETrue; + iIsFetchingVideoList = ETrue; iLastSortingOrder = sortingOrder; SetComplete( EFalse ); } @@ -947,14 +937,18 @@ TBool modified = EFalse; iCollection.CategoriesL().UpdateCategoryNewVideoNameAndDateL( *videoInCache, modified ); - + + TUint8 origin = TVcxMyVideosCollectionUtil::OriginL( *videoInCache ); + iCollection.CategoriesL().NewVideoFlagChangedL( oldFlags, newFlags, - videoInCache->ValueTObjectL( KVcxMediaMyVideosOrigin ), + origin, modified ); +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 iCollection.AlbumsL().NewVideoFlagChangedL( TVcxMyVideosCollectionUtil::IdL( *videoInCache ).iId1 ); +#endif } changed = ETrue; } @@ -1146,7 +1140,7 @@ } } - // 22 + // 23 if ( aVideo.IsSupported( KMPXMediaVideoHeight ) ) { TUint16 height = aVideo.ValueTObjectL( KMPXMediaVideoHeight ); @@ -1196,8 +1190,10 @@ iCollection.CategoriesL().UpdateCategoryNewVideoNameAndDateL( *aVideoInCache, modified ); +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 iCollection.AlbumsL().VideoTitleChangedL( TVcxMyVideosCollectionUtil::IdL( *aVideoInCache ).iId1 ); +#endif TVcxMyVideosSortingOrder sortingOrder = SortingOrderL(); if ( sortingOrder == EVcxMyVideosSortingName ) @@ -1443,17 +1439,18 @@ // TVcxMyVideosSortingOrder CVcxMyVideosVideoCache::SortingOrderL() { - TUid uid; - uid.iUid = KVcxMyVideosCollectionCenrepUid; - CRepository* cenRep = CRepository::NewL( uid ); - CleanupStack::PushL( cenRep ); // 1-> + + if( !iCenRep ) + { + TUid uid; + uid.iUid = KVcxMyVideosCollectionCenrepUid; + iCenRep = CRepository::NewL( uid ); + } TInt sortingOrderInCenrep; - TInt cenRepError = cenRep->Get( KVcxMyVideosCollectionCenrepKeySortingOrder, + TInt cenRepError = iCenRep->Get( KVcxMyVideosCollectionCenrepKeySortingOrder, sortingOrderInCenrep ); - - CleanupStack::PopAndDestroy( cenRep ); // <-1 TVcxMyVideosSortingOrder sortingOrder; @@ -1504,7 +1501,9 @@ if ( aUpdateCategories ) { iCollection.CategoriesL().VideoAddedL( aVideo ); +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 iCollection.AlbumsL().VideoAddedOrRemovedFromCacheL( aVideo ); +#endif } return KErrNone; @@ -1557,14 +1556,14 @@ MPX_DEBUG1("CVcxMyVideosVideoCache:: RemoveL failed since the item wasn't on cache"); return KErrNotFound; } - - TUint32 flags = TVcxMyVideosCollectionUtil::FlagsL( *video ); if ( aUpdateCategories && pos != KErrNotFound /* no need to update if item is on iPartialVideoList*/ ) { iCollection.CategoriesL().VideoRemovedL( *video ); +#ifndef VIDEO_COLLECTION_PLUGIN_TB92 iCollection.AlbumsL().VideoAddedOrRemovedFromCacheL( *video ); +#endif } if ( pos != KErrNotFound ) @@ -1611,8 +1610,7 @@ { MPX_FUNC("CVcxMyVideosVideoCache::ResetVideoListL"); - //TODO: when should we cancel... - //iCollection.iMyVideosMdsDb->Cancel(); + iCollection.iMyVideosMdsDb->Cancel( CVcxMyVideosMdsDb::EGetVideoList ); CMPXMediaArray* mediaArray = iVideoList->ValueCObjectL( KMPXMediaArrayContents ); diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/hbaction.h --- a/videocollection/tsrc/stubs/inc/hbaction.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/inc/hbaction.h Fri May 28 09:45:19 2010 +0300 @@ -26,13 +26,8 @@ #include "hbicon.h" #include "hbmenu.h" -class XQServiceUtil -{ -public: - static void toBackground(bool value); - static bool isEmbedded(); - static bool isService(); -}; +#include "xqserviceutilstub.h" +#include "xqserviceproviderstub.h" class HbAction : public QAction { diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/hbinputdialog.h --- a/videocollection/tsrc/stubs/inc/hbinputdialog.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/inc/hbinputdialog.h Fri May 28 09:45:19 2010 +0300 @@ -33,11 +33,9 @@ ~HbInputDialog(); /** - * Returns string in parameter text if mGetTextReturnValue is null QString. + * Create new HbMessageBox and call emitDialogFinished after this one to finish the sequence. */ - /* - static QString getText(const QString &label,const QString &text = QString(), - bool *ok = 0, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);*/ + void open( QObject* receiver = 0, const char* member = 0 ); /** * Create new HbInputDialog after call to this and call emitDialogFinished to finish the sequence. @@ -53,6 +51,10 @@ void setAttribute(int attribute); + void setPromptText(const QString &text, int row = 0); + + void setValue(const QVariant &value, int row = 0); + QList actions() const { return mActions; @@ -68,10 +70,14 @@ QList mActions; + QList mSetPromptTexts; + QList mSetValues; + static QString mLastHeading; static QString mLastText; static int mGetTextCallCount; static int mAttribute; + static int mOpenCallCount; static QVariant mValueReturnValue; static int mValueCallCount; diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/hblistview.h --- a/videocollection/tsrc/stubs/inc/hblistview.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/inc/hblistview.h Fri May 28 09:45:19 2010 +0300 @@ -275,6 +275,12 @@ Q_UNUSED(position); return mItem; } + + void setObjectName(const QString name) + { + Q_UNUSED(name); + } + public: /** diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/testobjectstore.h --- a/videocollection/tsrc/stubs/inc/testobjectstore.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/inc/testobjectstore.h Fri May 28 09:45:19 2010 +0300 @@ -15,8 +15,8 @@ * */ -#ifndef TESTOBJECTSTORE.h -#define TESTOBJECTSTORE.h +#ifndef TESTOBJECTSTORE_H +#define TESTOBJECTSTORE_H #include #include diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/videocollectionviewutilsdata.h --- a/videocollection/tsrc/stubs/inc/videocollectionviewutilsdata.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/inc/videocollectionviewutilsdata.h Fri May 28 09:45:19 2010 +0300 @@ -20,6 +20,7 @@ #include #include +#include "videocollectioncommon.h" class VideoCollectionViewUtilsData { @@ -36,6 +37,7 @@ mIconString = ""; mPressedString = ""; mLastStatusAdditional = QVariant(); + mWidgetLevel = VideoCollectionCommon::ELevelInvalid; } public: // data @@ -49,6 +51,7 @@ static QString mIconString; static QString mPressedString; static QVariant mLastStatusAdditional; + static VideoCollectionCommon::TCollectionLevels mWidgetLevel; }; #endif /* VIDEOCOLLECTIONVIEWUTILSDATA_H */ diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/videolistwidgetdata.h --- a/videocollection/tsrc/stubs/inc/videolistwidgetdata.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/inc/videolistwidgetdata.h Fri May 28 09:45:19 2010 +0300 @@ -29,6 +29,7 @@ mActivateReturnValue = 0; mActive = false; mDeactivateCount = 0; + mEmitActivatedIndex = QModelIndex(); } public: // data @@ -38,6 +39,7 @@ static int mActivateReturnValue; static bool mActive; static int mDeactivateCount; + static QModelIndex mEmitActivatedIndex; }; #endif /* VIDEOLISTWIDGETDATA_H */ diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/videoservicebrowse.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/stubs/inc/videoservicebrowse.h Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: VideoServiceBrowse stub definition +* +*/ + +// Version : %version: 1 % + +#ifndef VIDEOSERVICEBROWSE_H +#define VIDEOSERVICEBROWSE_H + +//INCLUDES +#include +#include "xqserviceproviderstub.h" + +// FORWARD DECLARATIONS +class VideoServices; +class QLatin1String; + +class VideoServiceBrowse : public XQServiceProvider +{ + Q_OBJECT + +public: + VideoServiceBrowse( VideoServices *parent, QLatin1String service ); + ~VideoServiceBrowse(); + +public: + + /** + * Complete pending service request + * + * @param None + * @return None + */ + void complete(); + + /** + * Get current browsing category + * + * @param None + * @return VideoServices::TVideoCategory + */ + int getBrowseCategory() const; + + /** + * Return context title of videos application + * + * @param None + * @return QString + */ + QString contextTitle() const; + + /** + * Return sort role. + * + * @param None. + * @return int. + */ + int sortRole() const; + + /** + * Returns service active status + * + * @return bool true if active, false if not active + * + */ + bool isActive(); + +public slots: + + /** + * Browse video + * + * @param title, Title of the embedded Videos application + * @param category, Category which type of videos are browsed + * @param sort, Sort type. + * @return None + */ + void browseVideos(const QString &title, int category, int sortRole); + + /** + * Browse video + * + * @param category, Category which type of videos are browsed + * @param sort, Sort type. + * @return None + */ + void browseVideos(int category, int sortRole); + +private: + + /** request index of the service */ + int mRequestIndex; + + /** reference to VideoServices instance */ + VideoServices *mServiceApp; + + /** current browsing category */ + int mCategory; + + /** title of the service client, if not set "Videos" is used */ + QString mTitle; + + /** sorting role */ + int mSortRole; + +}; + +#endif//VIDEOSERVICEBROWSE_H diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/videoserviceurifetch.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/stubs/inc/videoserviceurifetch.h Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,111 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: VideoServiceUriFetch stub definition +* +*/ + +#ifndef __VIDEOSERVICESURIFETCH_H__ +#define __VIDEOSERVICESURIFETCH_H__ + +//INCLUDES +#include "xqserviceproviderstub.h" +#include + +// FORWARD DECLARATIONS +class VideoServices; +class QLatin1String; + +class VideoServiceUriFetch : public XQServiceProvider +{ + + /** + * define to be able to use signals and slots + */ + Q_OBJECT + +public: + + /** + * contructor + */ + VideoServiceUriFetch( VideoServices *parent, QLatin1String service ); + + /** + * destructor + */ + ~VideoServiceUriFetch(); + + /** + * Returns service active status + * + * @return bool true if active, false if not active + * + */ + bool isActive(); + + /** + * Completes the service + * + * @param fileList list of file URIs + * + */ + void complete(QStringList filesList); + + /** + * Returns the context title set by service requestee + * + * @return QString the title + * + */ + QString contextTitle() const; + +public slots: // for QTHighway to notify provider about request + /* + * Client can use this method launch video URI fetching + * + */ + void fetch(); + + /* + * Client can use this method launch video URI fetching + * + * @param title title to be set + * + */ + void fetch(const QString& title); + +public slots: // for provider to notify client + void fetchFailed( int errorCode ); + +private: + void doComplete( QStringList filesList); + +private: + /* + * The request index + */ + int mRequestIndex; + + /* + * Pointer to owning VideoServices + */ + VideoServices* mServiceApp; + + /* + * The title requested by the service user + */ + QString mTitle; +}; + +#endif //__VIDEOSERVICESURIFETCH_H__ diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/xqserviceproviderstub.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/stubs/inc/xqserviceproviderstub.h Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: stub +* +*/ + +#ifndef XQSERVICEABSTRACTSERVICESTUB_H +#define XQSERVICEABSTRACTSERVICESTUB_H + +#define XQ_EXPORT_PLUGIN2(x,y) + +#include +#include +#include + +class XQServiceProvider : public QObject +{ + Q_OBJECT + +public: + XQServiceProvider( const QString& service, QObject *parent = 0 ); + ~XQServiceProvider(); + + // void SetPlugin(QObject* impl_plugin); + +//Q_SIGNALS: + //void returnValueDelivered() ; + //void clientDisconnected() ; + +private: +}; + +#endif diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/inc/xqserviceutilstub.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/stubs/inc/xqserviceutilstub.h Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,35 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: stub +* +*/ + +#ifndef XQSERVICEUTILSTUB_H +#define XQSERVICEUTILSTUB_H + +#include +#include + +class XQServiceUtil +{ +public: + static void toBackground(bool value); + static bool isEmbedded(); + static bool isService(); + + static QString interfaceName(); + static QString operationName(); +}; + +#endif diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/src/hbinputdialog.cpp --- a/videocollection/tsrc/stubs/src/hbinputdialog.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/src/hbinputdialog.cpp Fri May 28 09:45:19 2010 +0300 @@ -24,6 +24,7 @@ QString HbInputDialog::mLastText = ""; QVariant HbInputDialog::mValueReturnValue = QVariant(); int HbInputDialog::mValueCallCount = 0; +int HbInputDialog::mOpenCallCount = 0; HbInputDialog::HbInputDialog(QGraphicsItem *parent) : HbWidget(parent) { @@ -43,6 +44,14 @@ } } +void HbInputDialog::open( QObject* receiver, const char* member ) +{ + Q_UNUSED(receiver); + Q_UNUSED(member); + + mOpenCallCount++; +} + void HbInputDialog::getText(const QString &heading ,QObject *receiver ,const char *member @@ -74,3 +83,21 @@ HbInputDialog::mAttribute = attribute; } +void HbInputDialog::setPromptText(const QString &text, int row) +{ + while(mSetPromptTexts.count() < row+1) + { + mSetPromptTexts.append(""); + } + mSetPromptTexts[row] = text; +} + +void HbInputDialog::setValue(const QVariant &value, int row) +{ + while(mSetValues.count() < row+1) + { + mSetValues.append(""); + } + mSetValues[row] = value; +} + diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/src/videocollectionviewutils.cpp --- a/videocollection/tsrc/stubs/src/videocollectionviewutils.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/src/videocollectionviewutils.cpp Fri May 28 09:45:19 2010 +0300 @@ -28,6 +28,7 @@ QString VideoCollectionViewUtilsData::mIconString = ""; QString VideoCollectionViewUtilsData::mPressedString = ""; QVariant VideoCollectionViewUtilsData::mLastStatusAdditional = QVariant(); +VideoCollectionCommon::TCollectionLevels VideoCollectionViewUtilsData::mWidgetLevel = VideoCollectionCommon::ELevelInvalid; VideoCollectionViewUtils& VideoCollectionViewUtils::instance() { @@ -124,6 +125,17 @@ // not stubbed } +void VideoCollectionViewUtils::saveWidgetLevel(VideoCollectionCommon::TCollectionLevels &level) +{ + Q_UNUSED(level); + // not stubbed +} + +VideoCollectionCommon::TCollectionLevels VideoCollectionViewUtils::loadWidgetLevel() +{ + return VideoCollectionViewUtilsData::mWidgetLevel; +} + void VideoCollectionViewUtils::sortModel(VideoSortFilterProxyModel *model, bool async, VideoCollectionCommon::TCollectionLevels target) { diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/src/videolistwidget.cpp --- a/videocollection/tsrc/stubs/src/videolistwidget.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/src/videolistwidget.cpp Fri May 28 09:45:19 2010 +0300 @@ -25,6 +25,7 @@ int VideoListWidgetData::mActivateReturnValue = 0; bool VideoListWidgetData::mActive = false; int VideoListWidgetData::mDeactivateCount = 0; +QModelIndex VideoListWidgetData::mEmitActivatedIndex = QModelIndex(); VideoListWidget::VideoListWidget(VideoCollectionUiLoader* uiLoader, HbView *parent): HbListView(parent), @@ -48,13 +49,13 @@ } int VideoListWidget::initialize(VideoSortFilterProxyModel &model, - VideoServices *videoServices) + VideoServices *videoServices, VideoCollectionCommon::TCollectionLevels level) { Q_UNUSED(videoServices); VideoListWidgetData::mInitializeCount++; mModel = &model; - + mCurrentLevel = level; return VideoListWidgetData::mInitializeReturnValue; } @@ -116,8 +117,7 @@ void VideoListWidget::emitActivated (const QModelIndex &modelIndex) { - Q_UNUSED(modelIndex); - // not stubbed + VideoListWidgetData::mEmitActivatedIndex = modelIndex; } void VideoListWidget::setSelectionMode(int mode) diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/src/videoservicebrowse.cpp --- a/videocollection/tsrc/stubs/src/videoservicebrowse.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/src/videoservicebrowse.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,10 +15,11 @@ * */ -// Version : %version: 5 % +// Version : %version: 6 % #include +#include "xqserviceproviderstub.h" #include "videoservices.h" #include "videoservicebrowse.h" #include "mpxhbvideocommondefs.h" diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/src/videoserviceurifetch.cpp --- a/videocollection/tsrc/stubs/src/videoserviceurifetch.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/src/videoserviceurifetch.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,6 +15,7 @@ * */ +#include "xqserviceproviderstub.h" #include "videoserviceurifetch.h" #include "videoservices.h" diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/src/xqserviceprovider.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/stubs/src/xqserviceprovider.cpp Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "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: Stub for xqserviceprovider + * + */ + +#include "xqserviceproviderstub.h" + +XQServiceProvider::XQServiceProvider( const QString& service, QObject *parent ) +{ + Q_UNUSED(service); + Q_UNUSED(parent); +} + +XQServiceProvider::~XQServiceProvider() +{ + +} + diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/src/xqserviceutil.cpp --- a/videocollection/tsrc/stubs/src/xqserviceutil.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/src/xqserviceutil.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,8 +15,9 @@ * */ -#include "hbaction.h" +#include "xqserviceutilstub.h" #include "xqserviceutilxtra.h" +#include "videoservices.h" void XQServiceUtil::toBackground(bool value) { @@ -37,4 +38,25 @@ return service; } +QString XQServiceUtil::interfaceName() +{ + VideoServices *videoServices = VideoServices::instance(); + QString interfaceName; + if(videoServices->currentService() == VideoServices::EUriFetcher) + { + interfaceName = "IVideoFetch"; + } + else if(videoServices->currentService() == VideoServices::EBrowse) + { + interfaceName = "IVideoBrowse"; + } + videoServices->decreaseReferenceCount(); + return interfaceName; +} + +QString XQServiceUtil::operationName() +{ + return QString(); +} + // End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/stubs/stubs.pro --- a/videocollection/tsrc/stubs/stubs.pro Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/stubs/stubs.pro Fri May 28 09:45:19 2010 +0300 @@ -14,6 +14,8 @@ # Description: # +DEFINES += XQPLUGIN_H +DEFINES += XQSERVICEABSTRACTSERVICE_H DEFINES += XQSERVICEUTIL_H CONFIG += qtestlib \ @@ -23,11 +25,15 @@ LIBS += -lestor.dll \ -lfbscli.dll \ -lbitgdi.dll \ + -lmpxviewframeworkqt.dll \ -lxqplugins.dll \ - -lmpxviewframeworkqt.dll \ -lxqservice.dll HEADERS_TEMP = \ + inc/videoserviceurifetch.h \ + inc/videoservicebrowse.h \ + inc/xqserviceutilstub.h \ + inc/xqserviceproviderstub.h \ inc/testobjectstore.h \ inc/hbabstractitemview.h \ inc/hbdocumentloader.h \ @@ -82,11 +88,10 @@ ../../videocollectionwrapper/inc/videolistdatamodel.h \ ../../videocollectionwrapper/inc/videocollectionwrapper.h \ ../../videocollectionwrapper/inc/videosortfilterproxymodel.h \ - ../../videocollectionwrapper/inc/videothumbnaildata.h \ - ../../../videoplayerapp/videoplayerengine/inc/videoserviceurifetch.h \ - ../../../videoplayerapp/videoplayerengine/inc/videoservicebrowse.h + ../../videocollectionwrapper/inc/videothumbnaildata.h SOURCES_TEMP = \ + src/xqserviceprovider.cpp \ src/testobjectstore.cpp \ src/hbdocumentloader.cpp \ src/hbaction.cpp \ diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/videoservicestestapp/inc/videoservicestestappview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/videoservicestestapp/inc/videoservicestestappview.h Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,63 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* +*/ +#ifndef VIDEOSERVICESTESTAPPVIEW_H_ +#define VIDEOSERVICESTESTAPPVIEW_H_ + +#include +#include + +class XQApplicationManager; +class XQAiwRequest; +class HbLineEdit; + +class VideoServicesTestAppView : public HbView +{ + Q_OBJECT + +public: + VideoServicesTestAppView(QGraphicsItem *parent=0); + virtual ~VideoServicesTestAppView(); + +private slots: + void handleOk(const QVariant &result); + void handleError(int errorCode, const QString& errorMessage); + + void fetchVideo(); + void fetchVideoDeprecatedOldService(); + void fetchVideoDeprecatedNewService(); + void browseCapturedVideos(); + void browseCapturedVideosDeprecatedOldService(); + void browseCapturedVideosDeprecatedNewService(); + +public slots: + + void browseCapturedVideosFinished(HbAction *action); + void browseCapturedVideosDeprecatedOldServiceFinished(HbAction *action); + void browseCapturedVideosDeprecatedNewServiceFinished(HbAction *action); + +private: + void createLayout(); + +private: + XQApplicationManager mAppMgr; + XQAiwRequest* mReq; + HbLineEdit* mResultEdit; + HbLineEdit* mErrorCodeEdit; + HbLineEdit* mErrorEdit; +}; + +#endif /* VIDEOSERVICESTESTAPPVIEW_H_ */ diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/videoservicestestapp/rom/videoservicestestapp.iby --- a/videocollection/tsrc/videoservicestestapp/rom/videoservicestestapp.iby Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/tsrc/videoservicestestapp/rom/videoservicestestapp.iby Fri May 28 09:45:19 2010 +0300 @@ -11,13 +11,13 @@ * * Contributors: * -* Description: hbvideoplayer.iby +* Description: videoservicetestapp.iby * */ -#ifndef __HBVIDEOSERVICESTESTAPP_IBY__ -#define __HBVIDEOSERVICESTESTAPP_IBY__ +#ifndef __VIDEOSERVICESTESTAPP_IBY__ +#define __VIDEOSERVICESTESTAPP_IBY__ #include #include @@ -27,4 +27,4 @@ data=DATAZ_/APP_RESOURCE_DIR/videoservicestestapp.rsc APP_RESOURCE_DIR/videoservicestestapp.rsc -#endif // __HBVIDEOSERVICESTESTAPP_IBY__ +#endif // __VIDEOSERVICESTESTAPP_IBY__ diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/videoservicestestapp/src/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/videoservicestestapp/src/main.cpp Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* +*/ + +#include +#include +#include "videoservicestestappview.h" + +int main(int argc, char *argv[]) +{ + QCoreApplication::setOrganizationName("Nokia"); + QCoreApplication::setApplicationName("VideoServicesTestApp"); + + HbApplication app(argc, argv); + HbMainWindow mainWindow( 0, Hb::WindowFlagTransparent ); + mainWindow.setAttribute( Qt::WA_OpaquePaintEvent ); + VideoServicesTestAppView *mainView = new VideoServicesTestAppView; + mainWindow.addView(mainView); + mainWindow.show(); + return app.exec(); +} diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,504 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "videoservicestestappview.h" + +VideoServicesTestAppView::VideoServicesTestAppView(QGraphicsItem *parent) : + HbView(parent), + mReq(0), + mResultEdit(0), + mErrorCodeEdit(0), + mErrorEdit(0) +{ + qDebug() << "VideoServicesTestAppView::VideoServicesTestAppView"; + createLayout(); +} + + +VideoServicesTestAppView::~VideoServicesTestAppView() +{ + qDebug() << "VideoServicesTestAppView::~VideoServicesTestAppView"; + delete mReq; +} + + +void VideoServicesTestAppView::handleOk(const QVariant &result) +{ + qDebug() << "VideoServicesTestAppView::handleOk"; + + if (!result.canConvert()) + { + mErrorEdit->setText("Corrupt result"); + } + else + { + QString text = result.value(); + if (text.isEmpty()) + { + text = "No result available in this service"; + } + mResultEdit->setText(text); + qDebug() << "VideoServicesTestAppView::handleOk" << ": result=" << text; + } + +} + + +void VideoServicesTestAppView::handleError(int errorCode, const QString& errorMessage) +{ + qDebug() << "VideoServicesTestAppView::handleError" << ": errorCode=" << errorCode << ", msg:" << errorMessage; + mErrorEdit->setText(errorMessage); + mErrorCodeEdit->setText(QString::number(errorCode)); +} + + +void VideoServicesTestAppView::createLayout() +{ + qDebug() << "VideoServicesTestAppView::createLayout"; + + QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical); + + if (layout) + { + QGraphicsLinearLayout *topLayout = new QGraphicsLinearLayout(Qt::Vertical); + + if (topLayout) + { + //topLayout->addStretch(5); + + mResultEdit = new HbLineEdit; + HbLabel* label = new HbLabel("Result:"); + if (mResultEdit && label) + { + topLayout->addItem(label); + mResultEdit->setMaxRows(5); + topLayout->addItem(mResultEdit); + } + + mErrorCodeEdit = new HbLineEdit; + label = new HbLabel("Error code:"); + if (mErrorCodeEdit && label) + { + topLayout->addItem(label); + topLayout->addItem(mErrorCodeEdit); + } + + mErrorEdit = new HbLineEdit; + label = new HbLabel("Error description:"); + if (mErrorEdit && label) + { + topLayout->addItem(label); + mErrorEdit->setMaxRows(5); + topLayout->addItem(mErrorEdit); + } + + layout->addItem(topLayout); + //layout->setStretchFactor(topLayout, 5); + } + + QGraphicsLinearLayout *bottomLayout = new QGraphicsLinearLayout(Qt::Vertical); + + if (bottomLayout) + { + //bottomLayout->addStretch(); +/* + HbPushButton* button = new HbPushButton("Fetch video OLD IF OLD S"); + if (button) + { + connect(button, SIGNAL(clicked()), this, SLOT(fetchVideoDeprecatedOldService())); + bottomLayout->addItem(button); + } +*/ + HbPushButton* button = new HbPushButton("Fetch video OLD IF NEW S"); + if (button) + { + connect(button, SIGNAL(clicked()), this, SLOT(fetchVideoDeprecatedNewService())); + bottomLayout->addItem(button); + } + + button = new HbPushButton("Fetch video NEW IF NEW S"); + if (button) + { + connect(button, SIGNAL(clicked()), this, SLOT(fetchVideo())); + bottomLayout->addItem(button); + } + +/* + button = new HbPushButton("Browse \"Captured\" videos OLD IF OLD S"); + if (button) + { + connect(button, SIGNAL(clicked()), this, SLOT(browseCapturedVideosDeprecatedOldService())); + bottomLayout->addItem(button); + } +*/ + button = new HbPushButton("Browse \"Captured\" videos OLD IF NEW S"); + if (button) + { + connect(button, SIGNAL(clicked()), this, SLOT(browseCapturedVideosDeprecatedNewService())); + bottomLayout->addItem(button); + } + + + button = new HbPushButton("Browse \"Captured\" videos NEW IF"); + if (button) + { + connect(button, SIGNAL(clicked()), this, SLOT(browseCapturedVideos())); + bottomLayout->addItem(button); + } + + layout->addItem(bottomLayout); + } + + setLayout(layout); // Takes ownership of layout + } +} + + +void VideoServicesTestAppView::fetchVideo() +{ + qDebug() << "VideoServicesTestAppView::fetchVideo START"; + + mResultEdit->setText(""); + mErrorEdit->setText(""); + mErrorCodeEdit->setText(""); + + delete mReq; + mReq = 0; + mReq = mAppMgr.create(XQI_VIDEO_FETCH, "fetch()", true); + + qDebug() << "VideoServicesTestAppView::fetchVideo: mReq=" << mReq; + + if (!mReq) + { + mErrorEdit->setText("Failed to create REQ"); + return; + } + else + { + connect(mReq, SIGNAL(requestOk(const QVariant&)), SLOT(handleOk(const QVariant&))); + connect(mReq, SIGNAL(requestError(int,const QString&)), SLOT(handleError(int,const QString&))); + } + + // Set arguments for request (application title) + XQRequestInfo info; + info.setInfo("WindowTitle", ""); + mReq->setInfo(info); + + // Make the request + if (!mReq->send()) + { + mErrorEdit->setText("Failed to send REQ"); + qDebug() << "VideoServicesTestAppView::fetchVideo: XQAiwRequest::send returned false"; + } + + qDebug() << "VideoServicesTestAppView::fetchVideo END"; +} + + +void VideoServicesTestAppView::browseCapturedVideos() +{ + qDebug() << "VideoServicesTestAppView::browseCapturedVideos START"; + + mResultEdit->setText(""); + mErrorEdit->setText(""); + mErrorCodeEdit->setText(""); + + delete mReq; + mReq = 0; + + mReq = mAppMgr.create("com.nokia.symbian.IVideoBrowse", "browseVideos(int,int)", true); + + qDebug() << "VideoServicesTestAppView::browseCapturedVideos: mReq=" << mReq; + + if (!mReq) + { + mErrorEdit->setText("Failed to create REQ"); + return; + } + else + { + connect(mReq, SIGNAL(requestOk(QVariant)), SLOT(handleOk(QVariant))); + connect(mReq, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString))); + } + + // - title + XQRequestInfo info; + info.setInfo("WindowTitle", ""); + mReq->setInfo(info); + + HbInputDialog *dialog = new HbInputDialog(); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->setAdditionalRowVisible(true); + dialog->setInputMode(HbInputDialog::IntInput, 0); + dialog->setInputMode(HbInputDialog::IntInput, 1); + dialog->setPromptText("Enter category", 0); + dialog->setPromptText("Enter sort role", 1); + dialog->setValue(3, 0); + dialog->setValue(0, 1); + dialog->open(this, SLOT(browseCapturedVideosFinished(HbAction *))); + + qDebug() << "VideoServicesTestAppView::browseCapturedVideos END"; +} + +void VideoServicesTestAppView::browseCapturedVideosFinished(HbAction *action) +{ + HbInputDialog *dialog = static_cast(sender()); + + int category = dialog->value(0).toInt(); + int sortRole = dialog->value(1).toInt(); + + if(dialog->actions().first() == action) + { + // set arguments + QList args; + args.append(QVariant(category)); + args.append(QVariant(sortRole)); + mReq->setArguments(args); + + // Make the request + if (!mReq->send()) + { + mErrorEdit->setText("Failed to send REQ"); + qDebug() << "VideoServicesTestAppView::browseCapturedVideosFinished: XQAiwRequest::send returned false"; + } + } +} + +void VideoServicesTestAppView::fetchVideoDeprecatedOldService() +{ + qDebug() << "VideoServicesTestAppView::fetchVideo START"; + + mResultEdit->setText(""); + mErrorEdit->setText(""); + mErrorCodeEdit->setText(""); + + delete mReq; + mReq = 0; + mReq = mAppMgr.create("com.nokia.Videos", "IVideoFetch", "fetch(QString)", true); + + qDebug() << "VideoServicesTestAppView::fetchVideo: mReq=" << mReq; + + if (!mReq) + { + mErrorEdit->setText("Failed to create REQ"); + return; + } + else + { + connect(mReq, SIGNAL(requestOk(const QVariant&)), SLOT(handleOk(const QVariant&))); + connect(mReq, SIGNAL(requestError(int,const QString&)), SLOT(handleError(int,const QString&))); + } + + // Set arguments for request (application title) + QList args; + args << QVariant(QString("")); + mReq->setArguments(args); + + // Make the request + if (!mReq->send()) + { + mErrorEdit->setText("Failed to send REQ"); + qDebug() << "VideoServicesTestAppView::fetchVideo: XQAiwRequest::send returned false"; + } + + qDebug() << "VideoServicesTestAppView::fetchVideo END"; +} + +void VideoServicesTestAppView::fetchVideoDeprecatedNewService() +{ + qDebug() << "VideoServicesTestAppView::fetchVideo START"; + + mResultEdit->setText(""); + mErrorEdit->setText(""); + mErrorCodeEdit->setText(""); + + delete mReq; + mReq = 0; + mReq = mAppMgr.create("videoplayer", "IVideoFetch", "fetch(QString)", true); + + qDebug() << "VideoServicesTestAppView::fetchVideo: mReq=" << mReq; + + if (!mReq) + { + mErrorEdit->setText("Failed to create REQ"); + return; + } + else + { + connect(mReq, SIGNAL(requestOk(const QVariant&)), SLOT(handleOk(const QVariant&))); + connect(mReq, SIGNAL(requestError(int,const QString&)), SLOT(handleError(int,const QString&))); + } + + // Set arguments for request (application title) + QList args; + args << QVariant(QString("")); + mReq->setArguments(args); + + // Make the request + if (!mReq->send()) + { + mErrorEdit->setText("Failed to send REQ"); + qDebug() << "VideoServicesTestAppView::fetchVideo: XQAiwRequest::send returned false"; + } + + qDebug() << "VideoServicesTestAppView::fetchVideo END"; +} + + +void VideoServicesTestAppView::browseCapturedVideosDeprecatedOldService() +{ + qDebug() << "VideoServicesTestAppView::browseCapturedVideos START"; + + mResultEdit->setText(""); + mErrorEdit->setText(""); + mErrorCodeEdit->setText(""); + + delete mReq; + mReq = 0; + mReq = mAppMgr.create("com.nokia.Videos", "IVideoBrowse", "browseVideos(QString,int,int)", true); + + qDebug() << "VideoServicesTestAppView::browseCapturedVideos: mReq=" << mReq; + + if (!mReq) + { + mErrorEdit->setText("Failed to create REQ"); + return; + } + else + { + connect(mReq, SIGNAL(requestOk(QVariant)), SLOT(handleOk(QVariant))); + connect(mReq, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString))); + } + + HbInputDialog *dialog = new HbInputDialog(); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->setAdditionalRowVisible(true); + dialog->setInputMode(HbInputDialog::IntInput, 0); + dialog->setInputMode(HbInputDialog::IntInput, 1); + dialog->setPromptText("Enter category", 0); + dialog->setPromptText("Enter sort role", 1); + dialog->setValue(3, 0); + dialog->setValue(0, 1); + dialog->open(this, SLOT(browseCapturedVideosDeprecatedOldServiceFinished(HbAction *))); + + qDebug() << "VideoServicesTestAppView::browseCapturedVideos END"; +} + +void VideoServicesTestAppView::browseCapturedVideosDeprecatedOldServiceFinished(HbAction *action) +{ + HbInputDialog *dialog = static_cast(sender()); + + const QString title = ""; + + int category = dialog->value(0).toInt(); + int sortRole = dialog->value(1).toInt(); + + if(dialog->actions().first() == action) + { + // set arguments + QList args; + args.append(title); + args.append(QVariant(category)); + args.append(QVariant(sortRole)); + mReq->setArguments(args); + + // Make the request + if (!mReq->send()) + { + mErrorEdit->setText("Failed to send REQ"); + qDebug() << "VideoServicesTestAppView::browseCapturedVideosFinished: XQAiwRequest::send returned false"; + } + } +} + +void VideoServicesTestAppView::browseCapturedVideosDeprecatedNewService() +{ + qDebug() << "VideoServicesTestAppView::browseCapturedVideos START"; + + mResultEdit->setText(""); + mErrorEdit->setText(""); + mErrorCodeEdit->setText(""); + + delete mReq; + mReq = 0; + mReq = mAppMgr.create("videoplayer", "IVideoBrowse", "browseVideos(QString,int,int)", true); + + qDebug() << "VideoServicesTestAppView::browseCapturedVideos: mReq=" << mReq; + + if (!mReq) + { + mErrorEdit->setText("Failed to create REQ"); + return; + } + else + { + connect(mReq, SIGNAL(requestOk(QVariant)), SLOT(handleOk(QVariant))); + connect(mReq, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString))); + } + + HbInputDialog *dialog = new HbInputDialog(); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->setAdditionalRowVisible(true); + dialog->setInputMode(HbInputDialog::IntInput, 0); + dialog->setInputMode(HbInputDialog::IntInput, 1); + dialog->setPromptText("Enter category", 0); + dialog->setPromptText("Enter sort role", 1); + dialog->setValue(3, 0); + dialog->setValue(0, 1); + dialog->open(this, SLOT(browseCapturedVideosDeprecatedNewServiceFinished(HbAction *))); + + qDebug() << "VideoServicesTestAppView::browseCapturedVideos END"; +} + +void VideoServicesTestAppView::browseCapturedVideosDeprecatedNewServiceFinished(HbAction *action) +{ + HbInputDialog *dialog = static_cast(sender()); + + const QString title = ""; + + int category = dialog->value(0).toInt(); + int sortRole = dialog->value(1).toInt(); + + if(dialog->actions().first() == action) + { + // set arguments + QList args; + args.append(title); + args.append(QVariant(category)); + args.append(QVariant(sortRole)); + mReq->setArguments(args); + + // Make the request + if (!mReq->send()) + { + mErrorEdit->setText("Failed to send REQ"); + qDebug() << "VideoServicesTestAppView::browseCapturedVideosFinished: XQAiwRequest::send returned false"; + } + } +} + +// end of file diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/tsrc/videoservicestestapp/videoservicestestapp.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/tsrc/videoservicestestapp/videoservicestestapp.pro Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,34 @@ +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "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: +# +TEMPLATE = app +TARGET = videoservicestestapp + +CONFIG += hb +LIBS += -lxqservice -lxqserviceutil + +HEADERS += inc/videoservicestestappview.h + +SOURCES += src/videoservicestestappview.cpp \ + src/main.cpp + + +symbian { + TARGET.UID2 = 0x100039CE + TARGET.UID3 = 0x2002C341 + TARGET.CAPABILITY = ALL -TCB + INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE + + BLD_INF_RULES.prj_exports += "rom/videoservicestestapp.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videoservicestestapp.iby)" +} diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/inc/videocollectionviewutils.h --- a/videocollection/videocollectionview/inc/videocollectionviewutils.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/inc/videocollectionviewutils.h Fri May 28 09:45:19 2010 +0300 @@ -83,6 +83,21 @@ * Initilizes model sort values. */ static void sortModel(VideoSortFilterProxyModel *model, bool async, VideoCollectionCommon::TCollectionLevels target); + + /** + * Method saves the latest videolist widget level into activity manager db + * + * @param level type of widget + */ + static void saveWidgetLevel(VideoCollectionCommon::TCollectionLevels &level); + + /** + * Method loads the latest videolist widget level from activity manager db. + * Possible values are ELevelCategory or ELevelVideos + * + * @return VideoCollectionCommon::TCollectionLevels + */ + static VideoCollectionCommon::TCollectionLevels loadWidgetLevel(); public slots: diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/inc/videolistwidget.h --- a/videocollection/videocollectionview/inc/videolistwidget.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/inc/videolistwidget.h Fri May 28 09:45:19 2010 +0300 @@ -23,6 +23,7 @@ #include #include #include +#include "videoservices.h" #include "videocollectioncommon.h" class VideoSortFilterProxyModel; @@ -67,9 +68,13 @@ * layout and activates correct view based on the current orientation * * @param model Model for this list view. + * @param videoservices + * @param level presetted level for the widget * @return int 0 initialization ok, < 0 if fails. */ - int initialize(VideoSortFilterProxyModel &model, VideoServices* videoServices = 0); + int initialize(VideoSortFilterProxyModel &model, + VideoServices* videoServices = 0, + VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelInvalid); /** * Method enables and displays current active view @@ -165,6 +170,12 @@ * Signaled by HbMessageBox when it's closed. */ void removeCollectionDialogFinished(HbAction *action); + + /** + * called or signaled when delayed initialization is reauired for the widget + * + */ + void doDelayedsSlot(); protected slots: @@ -227,12 +238,6 @@ void playItemSlot(); /** - * slot is connected to view's doDelayeds -signal - * - */ - void doDelayedsSlot(); - - /** * Signaled when stepping back from collection in collection view * */ @@ -403,6 +408,11 @@ * ui loade object, not owned */ VideoCollectionUiLoader *mUiLoader; + + /** + * Service being provided + */ + VideoServices::TVideoService mService; }; #endif // VIDEOLISTWIDGET_H diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/src/videocollectionuiloader.cpp --- a/videocollection/videocollectionview/src/videocollectionuiloader.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/src/videocollectionuiloader.cpp Fri May 28 09:45:19 2010 +0300 @@ -381,7 +381,7 @@ { videoServices = VideoServices::instance(); } - videoList->initialize(*model, videoServices); + videoList->initialize(*model, videoServices, VideoCollectionCommon::ELevelVideos); } } } @@ -404,7 +404,7 @@ { videoServices = VideoServices::instance(); } - videoList->initialize(*model, videoServices); + videoList->initialize(*model, videoServices, VideoCollectionCommon::ELevelCategory); } } } @@ -427,6 +427,7 @@ { videoServices = VideoServices::instance(); } + // cannot set level at this point yet: it can be either default or user defined collection videoList->initialize(*model, videoServices); } } diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/src/videocollectionviewutils.cpp --- a/videocollection/videocollectionview/src/videocollectionviewutils.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/src/videocollectionviewutils.cpp Fri May 28 09:45:19 2010 +0300 @@ -18,6 +18,8 @@ // Version : %version: 39 % // INCLUDE FILES +#include +#include #include #include #include @@ -49,6 +51,8 @@ const int KAddToCollectionCountIndex(0); const int KAddToCollectionNameIndex(1); +static const char* ACTIVITY_VIDEOS_MAINVIEW = "VideosMainView"; + // --------------------------------------------------------------------------- // instance // --------------------------------------------------------------------------- @@ -311,6 +315,53 @@ } // --------------------------------------------------------------------------- +// saveWidgetLevel +// --------------------------------------------------------------------------- +// +void VideoCollectionViewUtils::saveWidgetLevel(VideoCollectionCommon::TCollectionLevels &level) +{ + FUNC_LOG; + HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + if(!activityManager) + { + return; + } + // clean up any previous versions of this activity from the activity manager. + activityManager->removeActivity(ACTIVITY_VIDEOS_MAINVIEW); + + QVariant data = int(level); + + activityManager->addActivity(ACTIVITY_VIDEOS_MAINVIEW, data, QVariantHash()); + + +} + +// --------------------------------------------------------------------------- +// loadWidgetLevel +// --------------------------------------------------------------------------- +// +VideoCollectionCommon::TCollectionLevels VideoCollectionViewUtils::loadWidgetLevel() +{ + FUNC_LOG; + // all videos view is the default value to be returned in case nothing can be read + // from the activity manager + VideoCollectionCommon::TCollectionLevels level(VideoCollectionCommon::ELevelVideos); + + HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + if(!activityManager) + { + return level; + } + QVariant data =activityManager->activityData(ACTIVITY_VIDEOS_MAINVIEW); + if(data.toInt() == VideoCollectionCommon::ELevelCategory) + { + level = VideoCollectionCommon::ELevelCategory; + } + return level; + +} + +// --------------------------------------------------------------------------- // showStatusMsgSlot // --------------------------------------------------------------------------- // diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/src/videolistview.cpp --- a/videocollection/videocollectionview/src/videolistview.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/src/videolistview.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 106 % +// Version : %version: 108 % // INCLUDE FILES #include @@ -123,14 +123,30 @@ connect(mVideoServices, SIGNAL(titleReady(const QString&)), this, SLOT(titleReadySlot(const QString&))); } } + QList params; + int videoListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; + int collectionListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; + if(VideoCollectionViewUtils::loadWidgetLevel() == VideoCollectionCommon::ELevelCategory) + { + videoListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; + collectionListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; + + + } // start loading objects and widgets - QList params; params.append(VideoCollectionUiLoaderParam( - DOCML_NAME_VC_VIDEOLISTWIDGET, - DOCML_VIDEOCOLLECTIONVIEW_FILE, - true, - VideoCollectionUiLoaderParam::LoadPhasePrimary)); + DOCML_NAME_VC_VIDEOLISTWIDGET, + DOCML_VIDEOCOLLECTIONVIEW_FILE, + true, + videoListPhase)); + params.append(VideoCollectionUiLoaderParam( + DOCML_NAME_VC_COLLECTIONWIDGET, + DOCML_VIDEOCOLLECTIONVIEW_FILE, + DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST, + true, + collectionListPhase)); + params.append(VideoCollectionUiLoaderParam( DOCML_NAME_OPTIONS_MENU, DOCML_VIDEOCOLLECTIONVIEW_FILE, @@ -180,13 +196,7 @@ DOCML_NAME_SORT_BY_SIZE, DOCML_VIDEOCOLLECTIONVIEW_FILE, false, - VideoCollectionUiLoaderParam::LoadPhaseSecondary)); - params.append(VideoCollectionUiLoaderParam( - DOCML_NAME_VC_COLLECTIONWIDGET, - DOCML_VIDEOCOLLECTIONVIEW_FILE, - DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST, - true, - VideoCollectionUiLoaderParam::LoadPhaseSecondary)); + VideoCollectionUiLoaderParam::LoadPhaseSecondary)); params.append(VideoCollectionUiLoaderParam( DOCML_NAME_VC_COLLECTIONCONTENTWIDGET, DOCML_VIDEOCOLLECTIONVIEW_FILE, @@ -222,6 +232,17 @@ mUiLoader->loadPhase(VideoCollectionUiLoaderParam::LoadPhasePrimary); params.clear(); + if(videoListPhase == VideoCollectionUiLoaderParam::LoadPhasePrimary) + { + mCurrentList = mUiLoader->findWidget( + DOCML_NAME_VC_VIDEOLISTWIDGET); + } + else + { + mCurrentList = mUiLoader->findWidget( + DOCML_NAME_VC_COLLECTIONWIDGET); + } + return 0; } @@ -294,7 +315,10 @@ { FUNC_LOG; mUiLoader->loadPhase(VideoCollectionUiLoaderParam::LoadPhaseSecondary); - emit doDelayeds(); + if(mCurrentList) + { + mCurrentList->doDelayedsSlot(); + } } // --------------------------------------------------------------------------- @@ -375,6 +399,8 @@ if(mCurrentList) { + VideoCollectionCommon::TCollectionLevels level = mCurrentList->getLevel(); + VideoCollectionViewUtils::saveWidgetLevel(level); mCurrentList->deactivate(); } } @@ -473,8 +499,14 @@ mToolbarActions[ETBActionServices]->setCheckable(false); } - // Allvideos is checked at creation phase - mToolbarActions[ETBActionAllVideos]->setChecked(true); + if(mCurrentList->getLevel() == VideoCollectionCommon::ELevelCategory) + { + mToolbarActions[ETBActionCollections]->setChecked(true); + } + else + { + mToolbarActions[ETBActionAllVideos]->setChecked(true); + } bar->addActions(mToolbarViewsActionGroup->actions()); } @@ -667,39 +699,26 @@ int VideoListView::activateVideosView() { FUNC_LOG; - VideoListWidget *videoList = - mUiLoader->findWidget( - DOCML_NAME_VC_VIDEOLISTWIDGET); - if (videoList) + + if(!mCurrentList) + { + return -1; + } + VideoCollectionCommon::TCollectionLevels level = mCurrentList->getLevel(); + + int result = mCurrentList->activate(level); + if(result < 0) { - VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelVideos; - if (mCurrentList) - { - level = mCurrentList->getLevel(); - } - else - { - mCurrentList = videoList; - } - - int result = mCurrentList->activate(level); - if(result < 0) - { - ERROR(result, "VideoListView::activateVideosView() failed to activate."); - // activate failed, deactivate view so we get rid of dangling connections. - deactivateView(); - return -1; - } - - if (createToolbar() != 0) - { - ERROR(result, "VideoListView::activateVideosView() failed to create toolbar."); - deactivateView(); - return -1; - } + ERROR(result, "VideoListView::activateVideosView() failed to activate."); + // activate failed, deactivate view so we get rid of dangling connections. + deactivateView(); + return -1; } - else + + if (createToolbar() != 0) { + ERROR(result, "VideoListView::activateVideosView() failed to create toolbar."); + deactivateView(); return -1; } @@ -858,9 +877,7 @@ // activate video collection widget mCurrentList = collectionWidget; - mCurrentList->activate(VideoCollectionCommon::ELevelCategory); - - VideoSortFilterProxyModel &model = mCurrentList->getModel(); + mCurrentList->activate(VideoCollectionCommon::ELevelCategory); // the collection view is not empty, so we should hide the hint in advance. showHint(false); @@ -1425,15 +1442,24 @@ if (name.compare(DOCML_NAME_VC_VIDEOLISTWIDGET) == 0) { connect(object, SIGNAL(command(int)), this, SIGNAL(command(int))); - connect(this, SIGNAL(doDelayeds()), object, SLOT(doDelayedsSlot())); + if(mCurrentList != object) + { + // this widget not yet activated so it's has been created on the second phase + // safe to call doDelayed right away + qobject_cast(object)->doDelayedsSlot(); + } } else if (name.compare(DOCML_NAME_VC_COLLECTIONWIDGET) == 0) { connect( object, SIGNAL(collectionOpened(bool, const QString&, const QModelIndex&)), this, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&))); - connect(this, SIGNAL(doDelayeds()), object, SLOT(doDelayedsSlot())); - emit(doDelayeds()); + if(mCurrentList != object) + { + // this widget not yet activated so it's has been created on the second phase + // safe to call doDelayed right away + qobject_cast(object)->doDelayedsSlot(); + } } else if (name.compare(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET) == 0) { @@ -1441,8 +1467,12 @@ connect( object, SIGNAL(collectionOpened(bool, const QString&, const QModelIndex&)), this, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&))); - connect(this, SIGNAL(doDelayeds()), object, SLOT(doDelayedsSlot())); - emit(doDelayeds()); + if(mCurrentList != object) + { + // this widget not yet activated so it's has been created on the second phase + // safe to call doDelayed right away + qobject_cast(object)->doDelayedsSlot(); + } } else if (name.compare(DOCML_NAME_OPTIONS_MENU) == 0) { diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/src/videolistwidget.cpp --- a/videocollection/videocollectionview/src/videolistwidget.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/src/videolistwidget.cpp Fri May 28 09:45:19 2010 +0300 @@ -18,6 +18,7 @@ #include "videocollectiontrace.h" #include "videolistwidget.h" +#include #include #include #include @@ -34,7 +35,6 @@ #include "videocollectionviewutils.h" #include "videocollectionuiloader.h" #include "videolistselectiondialog.h" -#include "videoservices.h" #include "videothumbnaildata.h" #include "videosortfilterproxymodel.h" #include "videocollectioncommon.h" @@ -75,7 +75,8 @@ mContextMenu(0), mSelectionMode(HbAbstractItemView::NoSelection), mScrollPositionTimer(0), -mUiLoader(uiLoader) +mUiLoader(uiLoader), +mService(VideoServices::ENoService) { FUNC_LOG_ADDR(this); } @@ -101,16 +102,27 @@ // initialize // --------------------------------------------------------------------------- // -int VideoListWidget::initialize(VideoSortFilterProxyModel &model, VideoServices* videoServices) +int VideoListWidget::initialize(VideoSortFilterProxyModel &model, + VideoServices* videoServices, + VideoCollectionCommon::TCollectionLevels level) { FUNC_LOG_ADDR(this); - mModel = &model; - + mModel = &model; mVideoServices = videoServices; + mCurrentLevel = level; if(mVideoServices) { mIsService = true; + + if(XQServiceUtil::interfaceName().contains("IVideoFetch")) + { + mService = VideoServices::EUriFetcher; + } + else if (XQServiceUtil::interfaceName().contains("IVideoBrowse")) + { + mService = VideoServices::EBrowse; + } } // init list view @@ -324,7 +336,7 @@ if (mIsService && mVideoServices && - mVideoServices->currentService() == VideoServices::EBrowse) + mService == VideoServices::EBrowse) { isBrowsingService = true; } @@ -439,14 +451,7 @@ mContextMenu->setDismissPolicy(HbPopup::TapAnywhere); mContextMenu->setObjectName(LIST_WIDGET_OBJECT_NAME_CONTEXT_MENU); - VideoServices::TVideoService service = VideoServices::ENoService; - if (mIsService && - mVideoServices) - { - service = mVideoServices->currentService(); - } - - if (service == VideoServices::EUriFetcher) + if (mService == VideoServices::EUriFetcher) { mContextMenuActions[EActionAttach] = mContextMenu->addAction(hbTrId("txt_videos_menu_attach"), this, SLOT(openItemSlot())); @@ -460,7 +465,7 @@ mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot())); mContextMenuActions[EActionDetails]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS); } - else if (service == VideoServices::EBrowse) + else if (mService == VideoServices::EBrowse) { mContextMenuActions[EActionPlay] = mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot())); @@ -561,7 +566,9 @@ { mContextMenuActions[EActionAddToCollection]->setVisible(true); mContextMenuActions[EActionDelete]->setVisible(true); - } else { + } + else + { mContextMenuActions[EActionAttach]->setVisible(true); } mContextMenuActions[EActionPlay]->setVisible(true); @@ -648,7 +655,7 @@ { if(mIsService && mVideoServices && - mVideoServices->currentService() == VideoServices::EUriFetcher && + mService == VideoServices::EUriFetcher && mCurrentLevel != VideoCollectionCommon::ELevelCategory) { QVariant variant = mModel->data(index, VideoCollectionCommon::KeyFilePath); diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp --- a/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 41 % +// Version : %version: 44 % #define private public #include "videoservices.h" @@ -440,7 +440,8 @@ HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0); mainWnd->unsetOrientation(false); - mTestView->mCurrentList = 0; + VideoListWidget *backup = mTestView->mCurrentList; + mTestView->mCurrentList = 0; HbDocumentLoader::mFindWidgetFails = true; QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), -1 ); QVERIFY( VideoListWidgetData::mActive == false ); @@ -448,6 +449,7 @@ QCOMPARE( VideoListWidgetData::mActivateCount, 0 ); QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 ); QVERIFY( mainWnd->mOrientationSet == false ); + mTestView->mCurrentList = backup; HbDocumentLoader::mFindWidgetFails = false; videoListWidget = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOLISTWIDGET); @@ -517,6 +519,7 @@ // -browse service // -other category init(); + videoListWidget = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOLISTWIDGET); VideoListWidgetData::reset(); VideoSortFilterProxyModelData::reset(); itemId.iId1 = KVcxMvcCategoryIdOther; @@ -525,7 +528,7 @@ QVERIFY(VideoListWidgetData::mActive); QCOMPARE(VideoListWidgetData::mActivateCount, 1); QCOMPARE(mTestView->mCollectionName.length(), 0); - QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); + //QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, TMPXItemId::InvalidId()); cleanup(); @@ -541,7 +544,7 @@ QVERIFY(VideoListWidgetData::mActive); QCOMPARE(VideoListWidgetData::mActivateCount, 1); QCOMPARE(mTestView->mCollectionName.length(), 0); - QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); +// QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, TMPXItemId::InvalidId()); cleanup(); @@ -966,9 +969,11 @@ //////////// // no current list //////////// + VideoListWidget *backup = mTestView->mCurrentList; + mTestView->mCurrentList = 0; emit testSignal(); QCOMPARE(VideoListSelectionDialogData::mMultiSelectionLaunchCount, 0); - + mTestView->mCurrentList = backup; mTestView->activateView(TMPXItemId::InvalidId()); //////////// @@ -1293,30 +1298,39 @@ // void TestListView::testShowHint() { - init(true); + init(false); connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot())); mTestView->mModelReady = true; // current list is null. (cannot be verified, run for coverity emit testLayoutChangedSignal(); mTestView->activateView(TMPXItemId::InvalidId()); - + disconnect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot())); + + cleanup(); + init(true); + mTestView->mModelReady = true; + connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot())); + // hint widget cannot be loaded. (cannot be tested, run for coverity) VideoCollectionUiLoaderData::mFindFailureNameList.append(DOCML_NAME_VC_VIDEOHINTWIDGET); emit testLayoutChangedSignal(); VideoCollectionUiLoaderData::mFindFailureNameList.clear(); VideoHintWidget *hintWidget = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOHINTWIDGET); + hintWidget->deactivate(); ///// // hint widget showing // model not ready, row count zero. mTestView->mModelReady = false; setRowCount(0); + VideoListWidget *backup = mTestView->mCurrentList; mTestView->mCurrentList = mUiLoader->findWidget(DOCML_NAME_VC_COLLECTIONWIDGET); emit testLayoutChangedSignal(); - QVERIFY(hintWidget->isVisible() == false ); + QVERIFY(hintWidget->isVisible() == false); QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel); + mTestView->mCurrentList = backup; // model not ready, row count not zero. setRowCount(1); @@ -1348,6 +1362,7 @@ //////// // toolbar setup + mTestView->activateView(TMPXItemId::InvalidId()); mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->setVisible(true); // mToolbarViewsActionGroup is null @@ -1468,18 +1483,22 @@ // Not initialized, no mCurrentList emit testSignal(index, 0, 0); - // TODO verify + // no verification needed, this tests that method does not crash if mCurrentList is not set. // Good case QVERIFY(mTestView->initializeView() == 0); mTestView->activateView(TMPXItemId::InvalidId()); setRowCount(1); + VideoListWidgetData::mEmitActivatedIndex = QModelIndex(); emit testSignal(index, 0, 0); - // TODO verify + QModelIndex expectedIndex = mTestView->mCurrentList->mModel->index(0,0); + QCOMPARE(VideoListWidgetData::mEmitActivatedIndex, expectedIndex); + + VideoListWidgetData::mEmitActivatedIndex = QModelIndex(); // Invalid index emit testSignal(index, -1, 0); - // TODO verify + QCOMPARE(VideoListWidgetData::mEmitActivatedIndex, QModelIndex()); disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(doDelayedsSlot())); cleanup(); @@ -1538,7 +1557,7 @@ // not initialized, no mCurrentList emit testSignal(); - QCOMPARE(HbInputDialog::mGetTextCallCount, 0); + QCOMPARE(HbInputDialog::mOpenCallCount, 0); QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == ""); QVERIFY(mTestView->initializeView() == 0); @@ -1546,37 +1565,37 @@ // dialog canceled HbInputDialog::mValueCallCount = 0; + HbInputDialog::mOpenCallCount = 0; emit testSignal(); dialog->emitDialogFinished(mTestView, SLOT(createCollectionDialogFinished(HbAction *)), 1); - QCOMPARE(HbInputDialog::mGetTextCallCount, 1); QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == ""); - QVERIFY(HbInputDialog::mValueCallCount == 1); + QCOMPARE(HbInputDialog::mValueCallCount, 1); + QCOMPARE(HbInputDialog::mOpenCallCount, 1); // empty name HbInputDialog::mValueCallCount = 0; HbInputDialog::mValueReturnValue = ""; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; emit testSignal(); dialog->emitDialogFinished(mTestView, SLOT(createCollectionDialogFinished(HbAction *)), 0); - QCOMPARE(HbInputDialog::mGetTextCallCount, 1); QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == ""); - QVERIFY(HbInputDialog::mValueCallCount == 1); + QCOMPARE(HbInputDialog::mValueCallCount, 1); + QCOMPARE(HbInputDialog::mOpenCallCount, 1); // Good case. HbInputDialog::mValueCallCount = 0; HbInputDialog::mValueReturnValue = "testAlbum"; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; emit testSignal(); dialog->emitDialogFinished(mTestView, SLOT(createCollectionDialogFinished(HbAction *)), 0); - QCOMPARE(HbInputDialog::mGetTextCallCount, 1); QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "testAlbum"); - QVERIFY(HbInputDialog::mValueCallCount == 1); + QCOMPARE(HbInputDialog::mValueCallCount, 1); + QCOMPARE(HbInputDialog::mOpenCallCount, 1); HbInputDialog::mValueCallCount = 0; HbInputDialog::mValueReturnValue = ""; - HbInputDialog::mGetTextCallCount = 0; - VideoSortFilterProxyModelData::mLastAddedAlbumName = ""; - + HbInputDialog::mOpenCallCount = 0; + VideoSortFilterProxyModelData::mLastAddedAlbumName = ""; disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(createCollectionSlot())); cleanup(); } @@ -1662,11 +1681,11 @@ QVERIFY(allVideos); setRowCount(3, allVideos->mModel); // Must have different model than selection dialog has. Otherwise Qt optimizes rowCount calls - // to source model and VideoListDataModelData::mRowCountDecrement hack doesn't work. + // to source model and VideoListDataModelData::mRowCountDecrement doesn't work. + QVERIFY(mTestView->initializeView() == 0); QVERIFY(connect(this, SIGNAL(testSignal2()), mTestView, SLOT(openCollectionViewSlot()))); emit testSignal2(); disconnect(this, SIGNAL(testSignal2()), mTestView, SLOT(openCollectionViewSlot())); - QVERIFY(mTestView->initializeView() == 0); mTestView->activateView(TMPXItemId::InvalidId()); VideoListDataModelData::mRowCountDecrement = 1; mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum; diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp --- a/videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 49 % +// Version : %version: 51 % #include #include @@ -452,12 +452,12 @@ // current level is not ELevelCategory // mIsService is true, variant gotten is invalid - videoServices->mCurrentService = VideoServices::EUriFetcher; + mTestWidget->mService = VideoServices::EUriFetcher; VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, QVariant()); mTestWidget->mCurrentLevel = VideoCollectionCommon::ELevelVideos; mTestWidget->mIsService = true; mTestWidget->mVideoServices = videoServices; - fetchIndex = model->index(0, 0, QModelIndex()); + fetchIndex = model->index(5, 0, QModelIndex()); mTestWidget->callEmiteActivated(fetchIndex); QVERIFY(spysignal.count() == 0); QVERIFY(spysignalFileUri.count() == 0); @@ -466,7 +466,7 @@ // current level is not ELevelCategory // mIsService is true, variant gotten is valid - videoServices->mCurrentService = VideoServices::EUriFetcher; + mTestWidget->mService = VideoServices::EUriFetcher; VideoListDataModelData::setData(VideoCollectionCommon::KeyFilePath, data); fetchIndex = model->index(0, 0, QModelIndex()); mTestWidget->callEmiteActivated(fetchIndex); @@ -778,16 +778,16 @@ init(); setRowCount(1); model = wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos); - mTestWidget->initialize(*model); + VideoServices *videoServices = VideoServices::instance(); + mTestWidget->mIsService = true; + videoServices->mCurrentService = VideoServices::EUriFetcher; + mTestWidget->initialize(*model, videoServices); HbListView::mCurrentIndex = model->index(0, 0, QModelIndex()); mTestWidget->mItem->mModelIndex = HbListView::mCurrentIndex ; - VideoServices *videoServices = VideoServices::instance(); mTestWidget->mCurrentLevel = VideoCollectionCommon::ELevelAlbum; VideoSortFilterProxyModelData::mItemIds.append(itemId); - mTestWidget->mIsService = true; - mTestWidget->mVideoServices = videoServices; - videoServices->mCurrentService = VideoServices::EUriFetcher; + mTestWidget->callLongPressedSlot(item, point); iter = mTestWidget->mContextMenuActions.begin(); QVERIFY(iter != mTestWidget->mContextMenuActions.end()); @@ -937,7 +937,7 @@ VideoSortFilterProxyModelData::mLastAlbumNameInRename = ""; HbInputDialog::mValueReturnValue = "renamedVideo"; HbInputDialog::mValueCallCount = 0; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; setRowCount(1); VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeAlbum)); QVariant data = QString("albumName"); @@ -946,13 +946,13 @@ emit testSignal(); dialog->emitDialogFinished(mTestWidget, SLOT(renameDialogFinished(HbAction *)), 0); QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == "renamedVideo"); - QCOMPARE(HbInputDialog::mGetTextCallCount, 1); + QCOMPARE(HbInputDialog::mOpenCallCount, 1); QVERIFY(HbInputDialog::mValueCallCount == 1); // New name is same as previous HbInputDialog::mValueReturnValue = ""; HbInputDialog::mValueCallCount = 0; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; VideoSortFilterProxyModelData::mLastAlbumNameInRename = ""; data = QString("albumName"); VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data); @@ -960,13 +960,13 @@ emit testSignal(); dialog->emitDialogFinished(mTestWidget, SLOT(renameDialogFinished(HbAction *)), 0); QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == ""); - QCOMPARE(HbInputDialog::mGetTextCallCount, 1); + QCOMPARE(HbInputDialog::mOpenCallCount, 1); QVERIFY(HbInputDialog::mValueCallCount == 1); // Dialog canceled HbInputDialog::mValueReturnValue = ""; HbInputDialog::mValueCallCount = 0; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; VideoSortFilterProxyModelData::mLastAlbumNameInRename = ""; data = QString("albumName"); VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data); @@ -974,21 +974,21 @@ emit testSignal(); dialog->emitDialogFinished(mTestWidget, SLOT(renameDialogFinished(HbAction *)), 1); QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == ""); - QCOMPARE(HbInputDialog::mGetTextCallCount, 1); + QCOMPARE(HbInputDialog::mOpenCallCount, 1); QVERIFY(HbInputDialog::mValueCallCount == 1); // New name is empty. VideoSortFilterProxyModelData::mLastAlbumNameInRename = ""; HbInputDialog::mValueReturnValue = ""; HbInputDialog::mValueCallCount = 0; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; data = QString("albumName"); VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data); mTestWidget->mCurrentIndex = model->index(0, 0, QModelIndex()); emit testSignal(); dialog->emitDialogFinished(mTestWidget, SLOT(renameDialogFinished(HbAction *)), 0); QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == ""); - QCOMPARE(HbInputDialog::mGetTextCallCount, 1); + QCOMPARE(HbInputDialog::mOpenCallCount, 1); QVERIFY(HbInputDialog::mValueCallCount == 1); // Item is video @@ -997,20 +997,20 @@ VideoSortFilterProxyModelData::mLastAlbumNameInRename = ""; HbInputDialog::mValueReturnValue = ""; HbInputDialog::mValueCallCount = 0; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; data = QString("albumName"); VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data); mTestWidget->mCurrentIndex = model->index(0, 0, QModelIndex()); emit testSignal(); QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == ""); - QCOMPARE(HbInputDialog::mGetTextCallCount, 0); + QCOMPARE(HbInputDialog::mOpenCallCount, 0); QVERIFY(HbInputDialog::mValueCallCount == 0); // No model VideoSortFilterProxyModelData::mLastAlbumNameInRename = ""; HbInputDialog::mValueReturnValue = "renamedVideo"; HbInputDialog::mValueCallCount = 0; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; VideoSortFilterProxyModelData::mItemIds.clear(); VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeAlbum)); data = QString("albumName"); @@ -1021,13 +1021,13 @@ emit testSignal(); mTestWidget->mModel = tmp; QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == ""); - QCOMPARE(HbInputDialog::mGetTextCallCount, 0); + QCOMPARE(HbInputDialog::mOpenCallCount, 0); // Variant data is invalid VideoSortFilterProxyModelData::mLastAlbumNameInRename = ""; HbInputDialog::mValueReturnValue = "renamedVideo"; HbInputDialog::mValueCallCount = 0; - HbInputDialog::mGetTextCallCount = 0; + HbInputDialog::mOpenCallCount = 0; VideoSortFilterProxyModelData::mItemIds.clear(); VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeAlbum)); data = QVariant(); @@ -1035,7 +1035,7 @@ mTestWidget->mCurrentIndex = model->index(0, 0, QModelIndex()); emit testSignal(); QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == ""); - QCOMPARE(HbInputDialog::mGetTextCallCount, 0); + QCOMPARE(HbInputDialog::mOpenCallCount, 0); disconnect(this, SIGNAL(testSignal()), mTestWidget, SLOT(renameSlot())); } diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp --- a/videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp Fri May 28 09:45:19 2010 +0300 @@ -865,9 +865,9 @@ { if (name == DOCML_NAME_VIEW) { - HbMainWindow *window = hbInstance->allMainWindows().at(0); - if (window) + if(hbInstance->allMainWindows().count()) { + HbMainWindow *window = hbInstance->allMainWindows().at(0); HbView *view = qobject_cast(object); if (view) { diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h --- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h Fri May 28 09:45:19 2010 +0300 @@ -79,7 +79,11 @@ * verifies sortModel */ void testSortModel(); - + + /** + * verifies saveWidgetLevel & loadWidgetLevel + */ + void testSaveAndLoadWidgetLevel(); }; diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp --- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp Fri May 28 09:45:19 2010 +0300 @@ -27,6 +27,8 @@ #include "hbmessageboxdata.h" #include "hbnotificationdialog.h" #include "hblistview.h" +#include +#include #define private public #include "videocollectionviewutils.h" @@ -44,7 +46,9 @@ // int main(int argc, char *argv[]) { - QApplication app(argc, argv); + HbApplication app(argc, argv); + //HbMainWindow window; + //QApplication app(argc, argv); TestVideoVideoCollectionViewUtils tv; @@ -91,96 +95,148 @@ { VideoCollectionViewUtils &testObject(VideoCollectionViewUtils::instance()); QVariant additional; + QList dataList; QString txt = "__test__"; - HbMessageBoxData::mWarningCallCount = 0; HbNotificationDialog::mNotifDialogTitle = ""; HbNotificationDialog::mTitleTextWRapping = Hb::TextNoWrap; HbNotificationDialog::mAttribute = Qt::WA_Disabled; - + HbMessageBoxData::mType = -1; + HbMessageBoxData::mShowCallCount = 0; // status: VideoCollectionCommon::statusSingleDeleteFail additional = txt; testObject.showStatusMsgSlot(VideoCollectionCommon::statusSingleDeleteFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); + HbMessageBoxData::mType = -1; + HbMessageBoxData::mShowCallCount = 0; HbMessageBoxData::mInformationCallCount = 0; - // - invalid additional additional = QVariant(); testObject.showStatusMsgSlot(VideoCollectionCommon::statusSingleDeleteFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); + HbMessageBoxData::mType = -1; + HbMessageBoxData::mShowCallCount = 0; // status: VideoCollectionCommon::statusMultipleDeleteFail additional = txt; testObject.showStatusMsgSlot(VideoCollectionCommon::statusMultipleDeleteFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; + HbMessageBoxData::mType = -1; + HbMessageBoxData::mShowCallCount = 0; // - invalid additional (no change, since additional not excepted) additional = QVariant(); testObject.showStatusMsgSlot(VideoCollectionCommon::statusMultipleDeleteFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; + HbMessageBoxData::mType = -1; + HbMessageBoxData::mShowCallCount = 0; // status: VideoCollectionCommon::statusMultipleRemoveFail (additional not needed) additional = QVariant(); testObject.showStatusMsgSlot(VideoCollectionCommon::statusMultiRemoveFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; + HbMessageBoxData::mType = -1; + HbMessageBoxData::mShowCallCount = 0; // status: VideoCollectionCommon::statusVideosAddedToCollection // notification dialog shown - additional = txt; + dataList.clear(); + dataList.append(QVariant(1)); // count + dataList.append(QVariant(txt)); // name + additional = dataList; testObject.showStatusMsgSlot(VideoCollectionCommon::statusVideosAddedToCollection, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 0); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() > 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextWordWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_DeleteOnClose); - HbMessageBoxData::mWarningCallCount = 0; HbNotificationDialog::mNotifDialogTitle = ""; HbNotificationDialog::mTitleTextWRapping = Hb::TextNoWrap; HbNotificationDialog::mAttribute = Qt::WA_Disabled; + + // - too few additional + dataList.clear(); + dataList.append(QVariant(txt)); // name + additional = dataList; + testObject.showStatusMsgSlot(VideoCollectionCommon::statusVideosAddedToCollection, additional); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); + QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); + QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); + QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); + // - empty message + dataList.clear(); + dataList.append(QVariant(1)); // count + dataList.append(QVariant("")); // name + additional = dataList; + testObject.showStatusMsgSlot(VideoCollectionCommon::statusVideosAddedToCollection, additional); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); + QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); + QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); + QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); + + // - with zero video count + dataList.clear(); + dataList.append(QVariant(0)); // count + dataList.append(QVariant(txt)); // name + additional = dataList; + testObject.showStatusMsgSlot(VideoCollectionCommon::statusVideosAddedToCollection, additional); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); + QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); + QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); + QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); + // - invalid additional additional = QVariant(); testObject.showStatusMsgSlot(VideoCollectionCommon::statusVideosAddedToCollection, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 0); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); // status: VideoCollectionCommon::statusAllVideosAlreadyInCollection testObject.showStatusMsgSlot(VideoCollectionCommon::statusAllVideosAlreadyInCollection, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; + HbMessageBoxData::mShowCallCount = 0; + HbMessageBoxData::mType = -1; // status: VideoCollectionCommon::statusDeleteInProgress additional = txt; testObject.showStatusMsgSlot(VideoCollectionCommon::statusDeleteInProgress, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 0); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() > 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextWordWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_DeleteOnClose); - HbMessageBoxData::mWarningCallCount = 0; HbNotificationDialog::mNotifDialogTitle = ""; HbNotificationDialog::mTitleTextWRapping = Hb::TextNoWrap; HbNotificationDialog::mAttribute = Qt::WA_Disabled; @@ -188,7 +244,8 @@ // - invalid additional additional = QVariant(); testObject.showStatusMsgSlot(VideoCollectionCommon::statusDeleteInProgress, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 0); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); @@ -196,16 +253,19 @@ // status: VideoCollectionCommon::statusSingleRemoveFail additional = txt; testObject.showStatusMsgSlot(VideoCollectionCommon::statusSingleRemoveFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; + HbMessageBoxData::mShowCallCount = 0; + HbMessageBoxData::mType = -1; // - invalid additional additional = QVariant(); testObject.showStatusMsgSlot(VideoCollectionCommon::statusSingleRemoveFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 0); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); @@ -213,33 +273,34 @@ // status: statusMultiRemoveFail additional = txt; testObject.showStatusMsgSlot(VideoCollectionCommon::statusMultiRemoveFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; + HbMessageBoxData::mShowCallCount = 0; + HbMessageBoxData::mType = -1; // invalid additional (no change, since additional not excepted) additional = QVariant(); testObject.showStatusMsgSlot(VideoCollectionCommon::statusMultiRemoveFail, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 1); + QVERIFY(HbMessageBoxData::mShowCallCount == 1); + QVERIFY(HbMessageBoxData::mType == HbMessageBox::MessageTypeWarning); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; - + HbMessageBoxData::mShowCallCount = 0; + HbMessageBoxData::mType = -1; // invalid state additional = txt; testObject.showStatusMsgSlot(0, additional); - QVERIFY(HbMessageBoxData::mWarningCallCount == 0); + QVERIFY(HbMessageBoxData::mShowCallCount == 0); + QVERIFY(HbMessageBoxData::mType == -1); QVERIFY(HbNotificationDialog::mNotifDialogTitle.count() == 0); QVERIFY(HbNotificationDialog::mTitleTextWRapping == Hb::TextNoWrap); QVERIFY(HbNotificationDialog::mAttribute == Qt::WA_Disabled); - HbMessageBoxData::mWarningCallCount = 0; - } - // ----------------------------------------------------------------------------- // testSaveSortingValues @@ -636,6 +697,25 @@ QVERIFY(testObject.mCollectionsSortOrder == Qt::DescendingOrder); } +void TestVideoVideoCollectionViewUtils::testSaveAndLoadWidgetLevel() +{ + static const char* ACTIVITY_VIDEOS_MAINVIEW = "VideosMainView"; + + VideoCollectionCommon::TCollectionLevels level; + + // Invalid level + level = VideoCollectionCommon::ELevelInvalid; + VideoCollectionViewUtils::saveWidgetLevel(level); + level = VideoCollectionViewUtils::loadWidgetLevel(); + QVERIFY(level == VideoCollectionCommon::ELevelVideos); + + // Category level. + level = VideoCollectionCommon::ELevelCategory; + VideoCollectionViewUtils::saveWidgetLevel(level); + level = VideoCollectionViewUtils::loadWidgetLevel(); + QVERIFY(level == VideoCollectionCommon::ELevelCategory); +} + // End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/tsrc/testvideocollectionviewutils/testvideocollectionviewutils.pro --- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/testvideocollectionviewutils.pro Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/testvideocollectionviewutils.pro Fri May 28 09:45:19 2010 +0300 @@ -53,7 +53,7 @@ \ # sources needed in test ../../src/videocollectionviewutils.cpp -TESTEDCLASS = videocollectionviewutils.cpp +TESTEDCLASS = videocollectionviewutils include(../../../tsrc/stubs/stubs.pro) diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp --- a/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp Fri May 28 09:45:19 2010 +0300 @@ -211,6 +211,8 @@ { VideoCollectionWrapperData::reset(); VideoListWidgetData::reset(); + cleanup(); + init(); QVERIFY(mInitOk == true); QVERIFY(mModel != 0); diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionwrapper/src/videodatacontainer.cpp --- a/videocollection/videocollectionwrapper/src/videodatacontainer.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionwrapper/src/videodatacontainer.cpp Fri May 28 09:45:19 2010 +0300 @@ -14,7 +14,7 @@ * Description: VideoDataContainer class declaration* */ -// Version : %version: % +// Version : %version: 14 % // INCLUDE FILES #include @@ -119,6 +119,7 @@ // if item exist, do not add into container if(iter != mMediaData.end()) { + delete media; return; } mMediaIds.append(mediaId); diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionwrapper/src/videosortfilterproxymodel.cpp --- a/videocollection/videocollectionwrapper/src/videosortfilterproxymodel.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionwrapper/src/videosortfilterproxymodel.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 65 % +// Version : %version: 66 % // INCLUDE FILES #include @@ -525,11 +525,14 @@ // TMPXItemId VideoSortFilterProxyModel::getMediaIdAtIndex(const QModelIndex &index) const { - QModelIndex sourceIndex = mapToSource(index); TMPXItemId mpxId = TMPXItemId::InvalidId(); - if(mModel && sourceIndex.isValid()) + if(index.isValid()) { - mpxId = mModel->mediaIdAtIndex(sourceIndex.row()); + QModelIndex sourceIndex = mapToSource(index); + if(mModel && sourceIndex.isValid()) + { + mpxId = mModel->mediaIdAtIndex(sourceIndex.row()); + } } return mpxId; } diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionwrapper/src/videothumbnailfetcher.cpp --- a/videocollection/videocollectionwrapper/src/videothumbnailfetcher.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionwrapper/src/videothumbnailfetcher.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 4 % +// Version : %version: 6 % // INCLUDE FILES #include @@ -302,13 +302,15 @@ void VideoThumbnailFetcher::thumbnailReadySlot(QPixmap tnData, void *internal, int requestId, int error) { INFO_2("VideoThumbnailFetcher::thumbnailReadySlot() requestId: %d, error: %d", requestId, error); + Q_UNUSED(requestId); TMPXItemId mediaId = TMPXItemId::InvalidId(); if(internal) { - mediaId = *(static_cast(internal)); + TMPXItemId *idPointer = static_cast(internal); + mediaId = *idPointer; + delete idPointer; } - delete internal; // Thumbnail has not been generated yet, put it into creation list. if(error == -1) diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro --- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro Fri May 28 09:45:19 2010 +0300 @@ -35,8 +35,7 @@ inc/mediaobjectfactory.h \ stub/inc/stubcollection.h \ stub/inc/videocollectionclient.h \ - stub/inc/stubsignalreceiver.h \ - stub/inc/stubsignalreceiver.h \ + stub/inc/stubsignalreceiver.h \ ../../inc/videocollectionutils.h \ ../../inc/videodatasignalreceiver.h \ ../../inc/videocollectionlistener.h diff -r ff53afa8ad05 -r f6d44a0cd476 videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata_p/src/testvideothumbnaildata_p.cpp --- a/videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata_p/src/testvideothumbnaildata_p.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata_p/src/testvideothumbnaildata_p.cpp Fri May 28 09:45:19 2010 +0300 @@ -162,12 +162,21 @@ // void TestVideoThumbnailData_p::testDestructor() { - mWrapper = 0; + init(); - mTestObject = new VideoThumbnailDataTester(); - delete mTestObject; mTestObject = 0; + mTestObject->getThumbnail(TMPXItemId(1, 0)); + mTestObject->getThumbnail(TMPXItemId(0, 1)); + + QPointer thumbFetcher = mTestObject->mThumbnailFetcher; + QPointer reportTimer = mTestObject->mTbnReportTimer; + QPointer fetchTimer = mTestObject->mBgFetchTimer; - //TODO + cleanup(); + + QCOMPARE(VideoThumbnailFetcher::mRequests.count(), 0); + QVERIFY(thumbFetcher == 0); + QVERIFY(reportTimer == 0); + QVERIFY(fetchTimer == 0); } // --------------------------------------------------------------------------- diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrol.hrh --- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrol.hrh Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrol.hrh Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 6 % +// Version : %version: 7 % #ifndef MPXVIDEOPLAYBACKCONTROL_HRH_ @@ -57,7 +57,6 @@ // // Bitmaps // - EMPXBlackBitmap, EMPXIndicatorBitmap, EMPXRealLogoBitmap, @@ -89,7 +88,8 @@ EMPXControlCmdSoftKeyPressed, EMPXControlCmdFullScreenViewOpened, EMPXControlCmdDetailsViewOpened, - EMPXControlCmdAudionOnlyViewOpened + EMPXControlCmdAudionOnlyViewOpened, + EMPXControlCmdRemoveRNLogo }; enum TMPXVideoSeekingType diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybacktoolbar.h --- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybacktoolbar.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybacktoolbar.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 2 % +// Version : %version: 3 % @@ -114,7 +114,6 @@ TMPXSeekingState mSeekingState; bool mInitialized; - bool mNeverVisibled; int mPosition; int mDuration; int mAspectRatio; diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolconfiguration.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolconfiguration.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolconfiguration.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#19 % +// Version : %version: da1mmcf#20 % @@ -64,6 +64,8 @@ QMPXVideoPlaybackViewFileDetails* fileDetails = mControlsController->fileDetails(); + addControlToList( EMPXStatusPane ); + if ( fileDetails->mPlaybackMode == EMPXVideoStreaming || fileDetails->mPlaybackMode == EMPXVideoLiveStreaming ) { @@ -72,8 +74,10 @@ // addControlToList( EMPXBufferingAnimation ); } - - addControlToList( EMPXStatusPane ); + else if ( fileDetails->mRNFormat ) + { + addControlToList( EMPXRealLogoBitmap ); + } emit controlListUpdated(); } @@ -143,12 +147,12 @@ break; } - case EMPXControlCmdTvOutDisconnected: + case EMPXControlCmdRemoveRNLogo: { - break; - } - default: - { + MPX_DEBUG(_L("QMPXVideoPlaybackControlConfiguration::updateControlList() RN Logo removed")); + + deleteControlFromList( EMPXRealLogoBitmap ); + break; } } diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolpolicy.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolpolicy.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolpolicy.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#13 % +// Version : %version: da1mmcf#14 % @@ -127,6 +127,7 @@ } case EMPXFileDetailsWidget: case EMPXIndicatorBitmap: + case EMPXRealLogoBitmap: case EMPXDetailsViewPlaybackWindow: { // diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolscontroller.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolscontroller.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolscontroller.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#39 % +// Version : %version: da1mmcf#40 % @@ -67,6 +67,7 @@ , mControlsPolicy( NULL ) , mControlsConfig( NULL ) , mControlsTimer( NULL ) + , mRNLogoTimer( NULL ) , mLoader( NULL ) , mVolumeControl( NULL ) , mThumbnailManager( NULL ) @@ -126,6 +127,8 @@ mLoader = NULL; } + mFileDetails->mRNFormat = realFormat( mFileDetails->mClipName ); + mControlsTimer = new QTimer( this ); mControlsTimer->setInterval( KMPXControlsTimeOut ); mControlsTimer->setSingleShot( false ); @@ -139,6 +142,9 @@ connect( mControlsConfig, SIGNAL( controlListUpdated() ), this, SLOT( controlsListUpdated() ) ); mControlsConfig->createControlList(); + // + // Create volume popup control + // mVolumeControl = new HbVolumeSliderPopup(); mVolumeControl->setVisible( false ); mVolumeControl->setTimeout( KMPXControlsTimeOut ); @@ -175,7 +181,6 @@ } } } - } // ------------------------------------------------------------------------------------------------- @@ -202,6 +207,14 @@ mControlsTimer = NULL; } + if ( mRNLogoTimer ) + { + disconnect( mRNLogoTimer, SIGNAL( timeout() ), this, SLOT( handleRNLogoTimeout() ) ); + + delete mRNLogoTimer; + mRNLogoTimer = NULL; + } + if ( mControlsPolicy ) { delete mControlsPolicy; @@ -249,7 +262,6 @@ mVideoServices->decreaseReferenceCount(); mVideoServices = 0; } - } // ------------------------------------------------------------------------------------------------- @@ -263,8 +275,6 @@ mFileDetails = details; - mFileDetails->mRNFormat = realFormat( mFileDetails->mClipName ); - mControlsConfig->updateControlsWithFileDetails(); // @@ -480,7 +490,7 @@ // Control exists in new list. // myList.removeAt( index ); - i++; + i++; } } @@ -519,11 +529,27 @@ case EMPXBufferingAnimation: { // + // Load animation icons + // + QString animationName = ":/hbvideoplaybackview/animations/"; + + if ( mFileDetails->mRNFormat ) + { + animationName.append( "rn_preroll_anim.axml" ); + } + else + { + animationName.append( "generic_preroll_anim.axml" ); + } + + HbIconAnimationManager* manager = HbIconAnimationManager::global(); + bool ok = manager->addDefinitionFile( animationName ); + + MPX_DEBUG(_L(" EMPXBufferingAnimation add animation definition ok = %d"), ok); + + // // Buffering animation icon // - HbIconAnimationManager* manager = HbIconAnimationManager::global(); - manager->addDefinitionFile(":/hbvideoplaybackview/animation.axml"); - QGraphicsWidget *widget = mLoader->findWidget( QString( "bufferingIcon" ) ); HbLabel *bufferingAnim = qobject_cast( widget ); @@ -594,6 +620,22 @@ break; } + case EMPXRealLogoBitmap: + { + QGraphicsWidget *widget = mLoader->findWidget( QString( "rnLogoBitmap" ) ); + HbWidget *bitmapWidget = qobject_cast( widget ); + + control = new QMPXVideoPlaybackFullScreenControl( this, + controlIndex, + bitmapWidget, + properties ); + mControls.append( control ); + + connect( bitmapWidget, SIGNAL( visibleChanged() ), + this, SLOT( handleRNLogoVisibleChanged() ) ); + + break; + } case EMPXDetailsViewPlaybackWindow: { QGraphicsWidget *widget = mLoader->findWidget( QString( "detailsPlaybackWindow" ) ); @@ -1038,7 +1080,7 @@ // QMPXVideoPlaybackControlsController::isSoftKeyVisible() // ------------------------------------------------------------------------------------------------- // -bool QMPXVideoPlaybackControlsController::isSoftKeyVisible( int /*value*/ ) +bool QMPXVideoPlaybackControlsController::isSoftKeyVisible() { bool visible = false; @@ -1381,6 +1423,79 @@ } // ------------------------------------------------------------------------------------------------- +// QMPXVideoPlaybackControlsController::handleRNLogoVisibleChanged() +// ------------------------------------------------------------------------------------------------- +// +void QMPXVideoPlaybackControlsController::handleRNLogoVisibleChanged() +{ + MPX_ENTER_EXIT(_L("QMPXVideoPlaybackControlsController::handleRNLogoVisibleChanged()")); + + QGraphicsWidget *widget = mLoader->findWidget( QString( "rnLogoBitmap" ) ); + + if ( widget->isVisible() ) + { + if ( mRNLogoTimer ) + { + delete mRNLogoTimer; + mRNLogoTimer = NULL; + } + + mRNLogoTimer = new QTimer( this ); + mRNLogoTimer->setInterval( KMPXRNLogoTimeOut ); + mRNLogoTimer->setSingleShot( true ); + connect( mRNLogoTimer, SIGNAL( timeout() ), this, SLOT( handleRNLogoTimeout() ) ); + + mRNLogoTimer->start(); + } +} + +// ------------------------------------------------------------------------------------------------- +// QMPXVideoPlaybackControlsController::handleRNLogoTimeout() +// ------------------------------------------------------------------------------------------------- +// +void QMPXVideoPlaybackControlsController::handleRNLogoTimeout() +{ + MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::handleRNLogoTimeout()")); + + if ( mRNLogoTimer->isActive() ) + { + mRNLogoTimer->stop(); + } + + // + // Remove RN logo from the controls list and issue play command if needed + // + mControlsConfig->updateControlList( EMPXControlCmdRemoveRNLogo ); + handleCommand( EMPXPbvCmdRealOneBitmapTimeout ); +} + +// ------------------------------------------------------------------------------------------------- +// QMPXVideoPlaybackControlsController::isRNLogoBitmapInControlList() +// ------------------------------------------------------------------------------------------------- +// +bool QMPXVideoPlaybackControlsController::isRNLogoBitmapInControlList() +{ + bool exist = false; + + // + // If we have a rn logo in the list, we are supposed to show the logo all the time + // unless we are in the middle of orientation transition + // + for ( int i = 0 ; i < mControls.count() ; i++ ) + { + if ( mControls[i]->controlIndex() == EMPXRealLogoBitmap ) + { + exist = true; + break; + } + } + + MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::isRNLogoBitmapInControlList() [%d]"), exist); + + return exist; +} + +// ------------------------------------------------------------------------------------------------- // QMPXVideoPlaybackControlsController::handleOrientationChanged() // ------------------------------------------------------------------------------------------------- // diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#22 % +// Version : %version: da1mmcf#23 % @@ -128,7 +128,6 @@ // positionChanged( 0 ); - // // Set framedrawer for semi transparent background // @@ -364,8 +363,8 @@ { MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::updateControlsWithFileDetails()")); - if ( details->mPlaybackMode == EMPXVideoLiveStreaming ) - { + if ( ! details->mPausableStream || ! details->mSeekable ) + { mProgressSlider->setEnabled( false ); } else if ( ! mProgressSlider->isEnabled() ) diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 4 % +// Version : %version: 6 % @@ -51,7 +51,6 @@ , mRetrieveButtonTimer( NULL ) , mSeekingState( EMPXNotSeeking ) , mInitialized( false ) - , mNeverVisibled( true ) , mPosition( 0 ) , mDuration( 0 ) , mAspectRatio( EMPXPbvCmdNaturalAspectRatio ) @@ -206,7 +205,6 @@ TReal32 width = (TReal32) displayRect.Width(); TReal32 height = (TReal32) displayRect.Height(); mDisplayAspectRatio = (width > height)? (width / height) : (height / width); - } } @@ -408,7 +406,13 @@ mAspectRatio = aspectRatio; - if ( ! mController->isAttachOperation() ) + // + // If we are in attach service or audio only view, then don't update the icon. + // Aspect ratio icon slots are shared with attach and share icon. + // Just update the mAspectRatio + // and once we go back to full screen, we will show the correct aspect ratio icon + // + if ( ! mController->isAttachOperation() && mController->viewMode() == EFullScreenView ) { switch( mAspectRatio ) { @@ -590,25 +594,42 @@ mButtonActions[EMPX5thButton]->setEnabled( true ); } - if ( ! details->mSeekable ) - { - mButtonActions[EMPX2ndButton]->setEnabled( false ); - mButtonActions[EMPX4thButton]->setEnabled( false ); - } - else + if ( details->mSeekable && details->mPausableStream ) { mButtonActions[EMPX2ndButton]->setEnabled( true ); mButtonActions[EMPX4thButton]->setEnabled( true ); } + else + { + mButtonActions[EMPX2ndButton]->setEnabled( false ); + mButtonActions[EMPX4thButton]->setEnabled( false ); + } - if ( ! details->mPausableStream ) + if ( details->mPausableStream ) + { + mButtonActions[EMPX3rdButton]->setEnabled( true ); + } + else { mButtonActions[EMPX3rdButton]->setEnabled( false ); } - else + + // + // toolbar creates button once it gets visible, so we don't know exact timing when toolbar + // creates button, so start timer to get layout information once the toolbar gets visible. + // This is needed since we don't use toolbar in proper way. + // + if ( ! mRetrieveButtonTimer && ! mButtons.count() ) { - mButtonActions[EMPX3rdButton]->setEnabled( true ); - } + mRetrieveButtonTimer = new QTimer(); + mRetrieveButtonTimer->setSingleShot( false ); + mRetrieveButtonTimer->setInterval( KRetrieveButtonTimeOut ); + connect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) ); + + mRetrieveButtonTimer->start(); + } + + durationChanged( (qreal)mController->fileDetails()->mDuration / (qreal)KPbMilliMultiplier ); } // ------------------------------------------------------------------------------------------------- @@ -636,7 +657,6 @@ MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::positionChanged position = %d"), position ); mPosition = position; - retrieveButtons(); } // ------------------------------------------------------------------------------------------------- @@ -661,24 +681,6 @@ if ( visible ) { mController->view()->showItems( Hb::ToolBarItem ); - - if ( mNeverVisibled ) - { - mNeverVisibled = false; - - - // - // toolbar creates button once it gets visible, so we don't know exact timing when toolbar - // creates button, so start timer to get layout information once the toolbar gets visible. - // This is needed since we don't use toolbar in proper way. - // - mRetrieveButtonTimer = new QTimer(); - mRetrieveButtonTimer->setSingleShot( false ); - mRetrieveButtonTimer->setInterval( KRetrieveButtonTimeOut ); - connect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) ); - - mRetrieveButtonTimer->start(); - } } else { @@ -700,10 +702,13 @@ if ( layout ) { - disconnect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) ); - if ( mRetrieveButtonTimer->isActive() ) + if ( mRetrieveButtonTimer ) { - mRetrieveButtonTimer->stop(); + disconnect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) ); + if ( mRetrieveButtonTimer->isActive() ) + { + mRetrieveButtonTimer->stop(); + } } for ( int i = 0 ; i < layout->count() ; i++ ) diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/inc/mpxvideoplaybackcontrolscontroller.h --- a/videoplayback/hbvideoplaybackview/inc/mpxvideoplaybackcontrolscontroller.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/inc/mpxvideoplaybackcontrolscontroller.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#18 % +// Version : %version: da1mmcf#19 % @@ -73,6 +73,7 @@ }; const int KMPXControlsTimeOut = 4000; +const int KMPXRNLogoTimeOut = 600; const QString KMPXPLAYBACKVIEW_XML = ":/hbvideoplaybackview/hbvideoplaybackview.docml"; @@ -148,6 +149,8 @@ inline bool isAttachOperation(); + bool isRNLogoBitmapInControlList(); + private: /** * Initialize controller @@ -230,9 +233,9 @@ void handleErrors(); /** - * Return ETrue if control is visible + * Return true if control is visible */ - bool isSoftKeyVisible( int value ); + bool isSoftKeyVisible(); /** * Handle tvout connected/disconnected event @@ -266,6 +269,8 @@ void controlsListUpdated(); void attachVideo(); void sendVideo(); + void handleRNLogoVisibleChanged(); + void handleRNLogoTimeout(); void handleOrientationChanged( Qt::Orientation orientation ); private: @@ -279,6 +284,7 @@ QMPXVideoPlaybackControlConfiguration *mControlsConfig; QTimer *mControlsTimer; + QTimer *mRNLogoTimer; QMPXVideoPlaybackDocumentLoader *mLoader; HbVolumeSliderPopup *mVolumeControl; diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/resources/animation.axml --- a/videoplayback/hbvideoplaybackview/resources/animation.axml Fri May 14 15:14:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ - - -qtg_anim_loading_1 -qtg_anim_loading_2 -qtg_anim_loading_3 -qtg_anim_loading_4 -qtg_anim_loading_5 -qtg_anim_loading_6 -qtg_anim_loading_7 -qtg_anim_loading_8 -qtg_anim_loading_9 -qtg_anim_loading_10 - - \ No newline at end of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/resources/animations/generic_preroll_anim.axml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayback/hbvideoplaybackview/resources/animations/generic_preroll_anim.axml Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,14 @@ + + + qtg_anim_loading_1 + qtg_anim_loading_2 + qtg_anim_loading_3 + qtg_anim_loading_4 + qtg_anim_loading_5 + qtg_anim_loading_6 + qtg_anim_loading_7 + qtg_anim_loading_8 + qtg_anim_loading_9 + qtg_anim_loading_10 + + \ No newline at end of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/resources/animations/rn_preroll_anim.axml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayback/hbvideoplaybackview/resources/animations/rn_preroll_anim.axml Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,13 @@ + + + qtg_anim_longtap_1 + qtg_anim_longtap_2 + qtg_anim_longtap_3 + qtg_anim_longtap_4 + qtg_anim_longtap_5 + qtg_anim_longtap_6 + qtg_anim_longtap_7 + qtg_anim_longtap_8 + qtg_anim_longtap_9 + + \ No newline at end of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml --- a/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml Fri May 28 09:45:19 2010 +0300 @@ -3,7 +3,7 @@ - + @@ -149,6 +149,12 @@ + + + + + + @@ -180,6 +186,8 @@ + + diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.qrc --- a/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.qrc Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.qrc Fri May 28 09:45:19 2010 +0300 @@ -1,7 +1,8 @@ - animation.axml + animations/rn_preroll_anim.axml + animations/generic_preroll_anim.axml hbvideoplaybackview.docml effects/controlbar_appear.fxml effects/controlbar_disappear.fxml diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/src/testcontrolconfiguration.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/src/testcontrolconfiguration.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/src/testcontrolconfiguration.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: % +// Version : %version: 4 % #include #include @@ -82,7 +82,6 @@ mControlsController = new QMPXVideoPlaybackControlsController( mFileDetails ); mControlConfig = new QMPXVideoPlaybackControlConfiguration( mControlsController ); - mControlConfig->createControlList(); } // --------------------------------------------------------------------------- @@ -121,11 +120,54 @@ MPX_ENTER_EXIT(_L("TestControlConfiguration::testControlList()")); setup(); - + + // + // Streaming case + // + mFileDetails->mPlaybackMode = EMPXVideoStreaming; + + mControlConfig->createControlList(); QList controlsList = mControlConfig->controlList(); - + + QVERIFY( controlsList.contains( EMPXStatusPane ) ); + QVERIFY( ! controlsList.contains( EMPXRealLogoBitmap ) ); + QVERIFY( controlsList.contains( EMPXBufferingAnimation ) ); + + cleanup(); + + // + // local + RN + // + setup(); + + mFileDetails->mPlaybackMode = EMPXVideoLocal; + mFileDetails->mRNFormat = true; + + mControlConfig->createControlList(); + controlsList = mControlConfig->controlList(); + QVERIFY( controlsList.contains( EMPXStatusPane ) ); - + QVERIFY( controlsList.contains( EMPXRealLogoBitmap ) ); + QVERIFY( ! controlsList.contains( EMPXBufferingAnimation ) ); + + cleanup(); + + // + // local + non RN + // + setup(); + + mFileDetails->mPlaybackMode = EMPXVideoLocal; + mFileDetails->mRNFormat = false; + + mControlConfig->createControlList(); + controlsList = mControlConfig->controlList(); + + QVERIFY( controlsList.contains( EMPXStatusPane ) ); + QVERIFY( ! controlsList.contains( EMPXRealLogoBitmap ) ); + QVERIFY( ! controlsList.contains( EMPXBufferingAnimation ) ); + + cleanup(); } // --------------------------------------------------------------------------- @@ -137,8 +179,11 @@ MPX_ENTER_EXIT(_L("TestControlConfiguration::testUpdateControlsWithFileDetails()")); setup(); - + mControlConfig->createControlList(); + + // // 1. test with mVideoEnabled = false + // mControlsController->mFileDetails->mVideoEnabled = false; mControlConfig->updateControlsWithFileDetails(); @@ -146,8 +191,10 @@ QList controlsList = mControlConfig->controlList(); QVERIFY( controlsList.contains( EMPXControlBar ) ); - + + // // 2. test with mVideoEnabled = true + // mControlsController->mFileDetails->mVideoEnabled = false; mControlConfig->updateControlsWithFileDetails(); @@ -158,6 +205,8 @@ mControlsController->layoutLoader()->findWidget( QString( "transparentWindow" ) ); QVERIFY( widget->isVisible() ); + + cleanup(); } // --------------------------------------------------------------------------- @@ -169,30 +218,48 @@ MPX_ENTER_EXIT(_L("TestControlConfiguration::testUpdateControlList()")); setup(); - + mControlConfig->createControlList(); + + // // 1. Test for Details View + // mControlConfig->updateControlList( EMPXControlCmdDetailsViewOpened ); - QList controlsList = mControlConfig->controlList(); QVERIFY( controlsList.contains( EMPXFileDetailsWidget ) ); + QVERIFY( controlsList.contains( EMPXDetailsViewPlaybackWindow ) ); + QVERIFY( ! controlsList.contains( EMPXIndicatorBitmap ) ); + // // 2. Test for Fullscreen View + // mControlConfig->updateControlList( EMPXControlCmdFullScreenViewOpened ); - controlsList = mControlConfig->controlList(); QVERIFY( ! controlsList.contains( EMPXFileDetailsWidget ) ); - - + QVERIFY( ! controlsList.contains( EMPXDetailsViewPlaybackWindow ) ); + QVERIFY( ! controlsList.contains( EMPXIndicatorBitmap ) ); + + // // 3. Test for Audio Only View + // mControlConfig->updateControlList( EMPXControlCmdAudionOnlyViewOpened ); - controlsList = mControlConfig->controlList(); QVERIFY( ! controlsList.contains( EMPXDetailsViewPlaybackWindow ) ); - QVERIFY( controlsList.contains( EMPXIndicatorBitmap ) ); + QVERIFY( controlsList.contains( EMPXIndicatorBitmap ) ); + QVERIFY( controlsList.contains( EMPXFileDetailsWidget ) ); + + // + // 4. RN log gets removed + // + mControlConfig->updateControlList( EMPXControlCmdAudionOnlyViewOpened ); + controlsList = mControlConfig->controlList(); + + QVERIFY( ! controlsList.contains( EMPXRealLogoBitmap ) ); + + cleanup(); } // End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/src/testmpxvideoplaybacktoolbar.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/src/testmpxvideoplaybacktoolbar.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/src/testmpxvideoplaybacktoolbar.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 3 % +// Version : %version: 4 % #include @@ -33,9 +33,9 @@ #include "mpxvideoplaybacktoolbar.h" #undef private -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // main -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // int main(int argc, char *argv[]) { @@ -49,17 +49,16 @@ char *pass[3]; pass[0] = argv[0]; pass[1] = "-o"; - pass[2] = "c:\\data\\TestMPXVideoPlaybackToolBar.txt"; + pass[2] = "c:\\data\\testmpxvideoplaybacktoolbar.txt"; int res = QTest::qExec(&tv, 3, pass); return res; } - -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // init -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::init( bool attachOperation ) { @@ -69,14 +68,15 @@ mVideoToolBar = new QMPXVideoPlaybackToolBar( mController ); mVideoToolBar->setVisible( true ); + connect( this, SIGNAL( commandSignal() ), mVideoToolBar, SLOT( retrieveButtons() ) ); emit commandSignal(); disconnect( this, SIGNAL( commandSignal() ), mVideoToolBar, SLOT( retrieveButtons() ) ); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // cleanup -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::cleanup() { @@ -95,9 +95,9 @@ } } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testPlay -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testPlay() { @@ -113,9 +113,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testLongTapOnFF -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testLongTapOnFF() { @@ -148,9 +148,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testLongTapOnRW -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testLongTapOnRW() { @@ -183,9 +183,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testShortTapOnFF -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testShortTapOnFF() { @@ -217,9 +217,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testShortTapOnRW -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testShortTapOnRW() { @@ -250,9 +250,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testPause -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testPause() { @@ -268,9 +268,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testChangeAspectRatio -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testChangeAspectRatio() { @@ -308,9 +308,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testUpdateState -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testUpdateState() { @@ -345,9 +345,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testAspectRatioChanged -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testAspectRatioChanged() { @@ -379,9 +379,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testHandleButtonPressed -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testHandleButtonPressed() { @@ -396,9 +396,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testUpdateWithFileDetails -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testUpdateWithFileDetails() { @@ -455,13 +455,13 @@ details->mVideoWidth = 1; details->mTvOutConnected = true; details->mSeekable = false; - details->mPausableStream = false; + details->mPausableStream = true; mVideoToolBar->updateWithFileDetails( details ); QVERIFY( mVideoToolBar->mButtons[EMPX1stButton]->isEnabled() == false ); QVERIFY( mVideoToolBar->mButtons[EMPX2ndButton]->isEnabled() == false ); - QVERIFY( mVideoToolBar->mButtons[EMPX3rdButton]->isEnabled() == false ); + QVERIFY( mVideoToolBar->mButtons[EMPX3rdButton]->isEnabled() == true ); QVERIFY( mVideoToolBar->mButtons[EMPX4thButton]->isEnabled() == false ); QVERIFY( mVideoToolBar->mButtons[EMPX5thButton]->isEnabled() == false ); @@ -472,7 +472,7 @@ details->mVideoHeight = 0; details->mVideoWidth = 1; details->mTvOutConnected = true; - details->mSeekable = false; + details->mSeekable = true; details->mPausableStream = false; mController->mViewMode = EAudioOnlyView; @@ -490,6 +490,8 @@ details->mVideoEnabled = false; details->mPlaybackMode = EMPXVideoStreaming; mController->mViewMode = EAudioOnlyView; + details->mSeekable = false; + details->mPausableStream = false; mVideoToolBar->updateWithFileDetails( details ); @@ -527,9 +529,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testOpenDetailsView -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testOpenDetailsView() { @@ -554,9 +556,9 @@ cleanup(); } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testAttach -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testAttach() { @@ -604,9 +606,9 @@ } -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // testSend -// --------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // void TestMPXVideoPlaybackToolBar::testSend() { diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/inc/testmpxvideoviewwrapper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/inc/testmpxvideoviewwrapper.h Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,85 @@ +/** +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: tester for methods in Video Playback View Plugin +* +*/ + +#ifndef __TESTMPXVIDEOVIEWWRAPPER_H__ +#define __TESTMPXVIDEOVIEWWRAPPER_H__ + + +// INCLUDES +#include + +class CMPXVideoViewWrapper; +class HbVideoBasePlaybackView; + +class TestMPXVideoViewWrapper : public QObject +{ + Q_OBJECT + + public: + + /** + * will be called before each testfunction is executed. + * + */ + void init(); + + /** + * will be called after every testfunction. + * + */ + void cleanup(); + + private slots: + // the order in which these testXX methods are declared is important + // changing this order will affect the test results + void testRequestMedia(); + void testIsLive(); + void testIsPlaylist(); + void testHandleCommand(); + void testHandlePluginError(); + void testHandlePlaybackMessage(); + void testSetProperty(); + void testHandleProperty(); + void testRetrieveFileNameAndMode(); + void testActivateClosePlayerActiveObject(); + void testDoClosePlayer(); + void testSetAspectRatio(); + void testIsAppInFront(); + void testClosePlaybackView(); + void testHandleVolumeCmd(); + void testHandleShortPressBackward(); + void testIssueVideoAppForegroundCmd(); + void testCreateControls(); + void testIsMultiItemPlaylist(); + void testUpdateVideoRect(); + void testUpdateVideoRectDone(); + void testHandleBufferingState(); + void testHandleVideoPlaybackMessage(); + void testHandlePlaybackCommandComplete(); + void testHandleMedia(); + + signals: + void commandSignal(int); + + private: + CMPXVideoViewWrapper *mVideoViewWrapper; + HbVideoBasePlaybackView *mBaseVideoView; +}; + +#endif // __TESTMPXVIDEOVIEWWRAPPER_H__ + +// End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: % +// Version : %version: 7 % #include #include @@ -36,12 +36,10 @@ #include "../stub/inc/hbvideobaseplaybackview.h" #include "../stub/inc/mpxvideoplaybackviewfiledetails.h" -#include "../stub/inc/mpxplaybackutilityimpl.h" #include "../stub/inc/mpxvideoplaybackdisplayhandler.h" #include "../stub/inc/mpxvideoplaybackcontrolscontroller.h" - #define protected public #include "mpxvideoviewwrapper.h" #undef protected @@ -61,23 +59,22 @@ char *pass[3]; pass[0] = argv[0]; pass[1] = "-o"; - pass[2] = "c:\\data\\TestMPXVideoViewWrapper.txt"; + pass[2] = "c:\\data\\testmpxvideoviewwrapper.txt"; int res = QTest::qExec(&tv, 3, pass); return res; } - // --------------------------------------------------------------------------- // init // --------------------------------------------------------------------------- // void TestMPXVideoViewWrapper::init() { - mBaseVideoView = new HbVideoBasePlaybackView(); - TRAPD( err, mVideoViewWrapper = CMPXVideoViewWrapper::NewL( mBaseVideoView ) ); - QVERIFY( err == KErrNone ); + mBaseVideoView = new HbVideoBasePlaybackView(); + TRAPD( err, mVideoViewWrapper = CMPXVideoViewWrapper::NewL( mBaseVideoView ) ); + QVERIFY( err == KErrNone ); } // --------------------------------------------------------------------------- @@ -86,14 +83,19 @@ // void TestMPXVideoViewWrapper::cleanup() { - delete mVideoViewWrapper; - mVideoViewWrapper = NULL; - - delete mBaseVideoView; - mBaseVideoView = NULL; + if ( mVideoViewWrapper ) + { + delete mVideoViewWrapper; + mVideoViewWrapper = NULL; + } + + if ( mBaseVideoView ) + { + delete mBaseVideoView; + mBaseVideoView = NULL; + } } - void TestMPXVideoViewWrapper::testRequestMedia() { init(); @@ -101,10 +103,9 @@ TRAPD(err, mVideoViewWrapper->RequestMediaL()); QVERIFY( err == KErrNone ); - QVERIFY( mVideoViewWrapper->iMediaRequested == true ); + QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaRequested ); cleanup(); - } void TestMPXVideoViewWrapper::testIsLive() @@ -114,51 +115,202 @@ TRAPD(err, mVideoViewWrapper->RequestMediaL()); QVERIFY( err == KErrNone ); - mVideoViewWrapper->IsLive(); - - mVideoViewWrapper->iFileDetails->clearFileDetails(); - + mVideoViewWrapper->iFileDetails->mPlaybackMode = EMPXVideoLiveStreaming; + QVERIFY( mVideoViewWrapper->IsLive() ); + + mVideoViewWrapper->iFileDetails->mPlaybackMode = EMPXVideoLocal; QVERIFY( ! mVideoViewWrapper->IsLive() ); cleanup(); } - void TestMPXVideoViewWrapper::testIsPlaylist() { init(); - mVideoViewWrapper->IsPlaylist(); - - QVERIFY( mVideoViewWrapper->IsPlaylist() == false ); + mVideoViewWrapper->iPlaylistView = true; + QVERIFY( mVideoViewWrapper->IsPlaylist() == true ); - cleanup(); + mVideoViewWrapper->iPlaylistView = false; + QVERIFY( mVideoViewWrapper->IsPlaylist() == false ); + cleanup(); } - void TestMPXVideoViewWrapper::testHandleCommand() { init(); - TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); + TRAPD( errReqMedia, mVideoViewWrapper->RequestMediaL() ); QVERIFY( errReqMedia == KErrNone ); + + // + // Test 'Play' command + // + TRAPD( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlay ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); - TRAPD(errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlay )); + // + // Test 'Pause' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPause ) ); QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPause ); + + // + // Test 'Close' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdClose ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdClose ); + + // + // Test 'Seek Forward' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdSeekForward ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStartVideoSeekingForward ); - int state; - TRAPD(errState, state = mVideoViewWrapper->iPlaybackUtility->StateL()); - QVERIFY( errState == KErrNone ); + // + // Test 'Seek Backward' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdSeekBackward ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStartVideoSeekingBackward ); + + // + // Test 'End Seek' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdEndSeek ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStopVideoSeeking ); + + // + // Test 'PlayPause' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlayPause ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlayPause ); + + // + // Test 'Stop' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdStop ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStop ); + + // + // Test 'Decrease Volume' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdDecreaseVolume ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleDecreaseVolume ); + + // + // Test 'Increase Volume' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdIncreaseVolume ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleIncreaseVolume ); + + // + // Test 'Natural Aspect Ratio' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdNaturalAspectRatio ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iDisplayHandler->iCommand == EPbCmdNaturalAspectRatio ); + + // + // Test 'Zoom Aspect Ratio' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdZoomAspectRatio ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iDisplayHandler->iCommand == EPbCmdZoomAspectRatio ); + + // + // Test 'Stretch Aspect Ratio' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdStretchAspectRatio ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iDisplayHandler->iCommand == EPbCmdStretchAspectRatio ); - QVERIFY( state == EPbStatePlaying ); + // + // Test 'Mute' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdMute ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdMuteVolume ); + + // + // Test 'Un-mute' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdUnMute ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdUnMuteVolume ); + + // + // Test 'Short Press Backward' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdShortPressBackward ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iProperty == EPbPropertyPosition ); + + // + // Test 'Reset Controls' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdResetControls ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdInitView ); + + // + // Test 'Next List Item' command + // + mVideoViewWrapper->iPlaylistView = true; + mVideoViewWrapper->iFileDetails->mMultiItemPlaylist = true; + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdNextListItem ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdNext ); + + // + // Test 'Previous List Item' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPreviousListItem ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPrevious ); + + // + // Test 'End Of Clip' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdEndOfClip ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdEndofClipReached ); + + // + // Test 'Custom Pause' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdCustomPause ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdCustomPause ); + + // + // Test 'Custom Play' command + // + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdCustomPlay ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdCustomPlay ); + + // + // Test 'RealOne Bitmap Timeout' command + // + mVideoViewWrapper->iMediaRequestStatus = MediaDelivered; + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdRealOneBitmapTimeout ) ); + QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); cleanup(); - } - - void TestMPXVideoViewWrapper::testHandlePluginError() { init(); @@ -171,10 +323,8 @@ QVERIFY( mVideoViewWrapper->iView->mCurrentError == KErrNotSupported ); cleanup(); - } - void TestMPXVideoViewWrapper::testHandlePlaybackMessage() { init(); @@ -198,8 +348,6 @@ message = NULL; } - - //*************************** // Test General Msg //*************************** @@ -217,8 +365,7 @@ delete message; message = NULL; } - - + //*************************** // Test Video Msg with err //*************************** @@ -234,276 +381,300 @@ cleanup(); } +void TestMPXVideoViewWrapper::testSetProperty() +{ + init(); -void TestMPXVideoViewWrapper::testSetProperty() + TRAPD( errReqMedia, mVideoViewWrapper->RequestMediaL()) ; + QVERIFY( errReqMedia == KErrNone ); + + TMPXPlaybackProperty property = EPbPropertyMute; + TInt propertyValue = 1; + + TRAPD( errSetProp, mVideoViewWrapper->SetPropertyL( property, propertyValue ) ); + QVERIFY( errSetProp == KErrNone ); + + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iProperty == property ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iPropertyValue == propertyValue ); + + cleanup(); +} + +void TestMPXVideoViewWrapper::testHandleProperty() { init(); TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); QVERIFY( errReqMedia == KErrNone ); - - TRAPD(errSetProp, mVideoViewWrapper->SetPropertyL( EPbPropertyMute, 1 ) ); // 0=>noraml 1=>muted - QVERIFY( errSetProp == KErrNone ); - - QVERIFY( ! mVideoViewWrapper->iFileDetails->mAudioEnabled ); - + + // + // Duration + // + int value = 5000; + TRAPD(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyDuration, value, KErrNone ) ); + QVERIFY( errHdlProp == KErrNone ); + + QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetDuration ); + QVERIFY( mVideoViewWrapper->iControlsController->mValue == value ); + + // + // Position + // + value = 500; + + TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyPosition, value, KErrNone ) ); + QVERIFY( errHdlProp == KErrNone ); + + QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetPosition ); + QVERIFY( mVideoViewWrapper->iControlsController->mValue == value ); + + // + // Volume + // + value = 10; + + TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyVolume, value, KErrNone ) ); + QVERIFY( errHdlProp == KErrNone ); + + QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetVolume ); + QVERIFY( mVideoViewWrapper->iControlsController->mValue == value ); + + // + // Mute + // + value = 1; + + TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyMute, value, KErrNone ) ); + QVERIFY( errHdlProp == KErrNone ); + + QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetVolume ); + QVERIFY( mVideoViewWrapper->iControlsController->mValue == 0 ); + cleanup(); } - -void TestMPXVideoViewWrapper::testHandleProperty() -{ - init(); - - TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); - QVERIFY( errReqMedia == KErrNone ); - - TRAPD(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyDuration, 5000, KErrNone )); - QVERIFY( errHdlProp == KErrNone ); - - QVERIFY( mVideoViewWrapper->iFileDetails->mDuration == 5000 ); - - cleanup(); -} - - void TestMPXVideoViewWrapper::testRetrieveFileNameAndMode() { init(); - + mVideoViewWrapper->iFileDetails->clearFileDetails(); - + CMPXCommand* cmd = NULL; TRAP_IGNORE( cmd = CMPXCommand::NewL() ); - TRAPD(errRetFileName, mVideoViewWrapper->RetrieveFileNameAndModeL( cmd ) ); - QVERIFY( errRetFileName == KErrNone ); - - int state; - TRAPD(errState, state = mVideoViewWrapper->iPlaybackUtility->StateL()); - QVERIFY( errState == KErrNone ); - - QVERIFY( state == EPbStateInitialised ); - - QCOMPARE( mVideoViewWrapper->iFileDetails->mClipName, QString("testClip.3gp")); - - delete cmd; - cmd = NULL; - + if ( cmd ) + { + TRAPD(errRetFileName, mVideoViewWrapper->RetrieveFileNameAndModeL( cmd ) ); + QVERIFY( errRetFileName == KErrNone ); + + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdInitView ); + + QCOMPARE( mVideoViewWrapper->iFileDetails->mClipName, QString("testClip.3gp")); + + delete cmd; + cmd = NULL; + } + cleanup(); } - void TestMPXVideoViewWrapper::testActivateClosePlayerActiveObject() { init(); - + mVideoViewWrapper->ActivateClosePlayerActiveObject(); - + QVERIFY( mVideoViewWrapper->iCloseAO->IsActive() ); - + cleanup(); } - void TestMPXVideoViewWrapper::testDoClosePlayer() { init(); - + TRAPD(err, mVideoViewWrapper->DoClosePlayerL()); QVERIFY( err == KErrNone ); - + QVERIFY( ! mVideoViewWrapper->iView->mViewActive ); - + cleanup(); } - -void TestMPXVideoViewWrapper::testIssuePlayCommand() -{ - init(); - TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); - QVERIFY( errReqMedia == KErrNone ); - - TRAPD(errIssuePlay, mVideoViewWrapper->IssuePlayCommandL()); - QVERIFY( errIssuePlay == KErrNone ); - - - int state; - TRAPD(errState, state = mVideoViewWrapper->iPlaybackUtility->StateL()); - QVERIFY( errState == KErrNone ); - - QVERIFY( state == EPbStatePlaying ); - - cleanup(); -} - - void TestMPXVideoViewWrapper::testSetAspectRatio() { init(); - TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); + TRAPD( errReqMedia, mVideoViewWrapper->RequestMediaL() ); QVERIFY( errReqMedia == KErrNone ); - - TRAPD(errHdlCmd, mVideoViewWrapper->HandleCommandL(EMPXPbvCmdStretchAspectRatio)); + + TRAPD( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdStretchAspectRatio ) ); QVERIFY( errHdlCmd == KErrNone ); - - QVERIFY( mVideoViewWrapper->iDisplayHandler->iCurrentIndexForAspectRatio == 1 ); - + + QVERIFY( mVideoViewWrapper->iDisplayHandler->iAspectRatio == EMMFStretch ); + cleanup(); } - void TestMPXVideoViewWrapper::testIsAppInFront() { init(); - + TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); QVERIFY( errReqMedia == KErrNone ); - + bool front = false; - TRAPD(errIsAppInFrnt, front = mVideoViewWrapper->IsAppInFrontL()); - + TRAPD( errIsAppInFrnt, front = mVideoViewWrapper->IsAppInFrontL() ); + QVERIFY( errIsAppInFrnt == KErrNone ); - + cleanup(); } - void TestMPXVideoViewWrapper::testClosePlaybackView() { init(); - + TRAPD(err, mVideoViewWrapper->ClosePlaybackViewL()); QVERIFY( err == KErrNone ); - + QVERIFY( ! mVideoViewWrapper->iView->mViewActive ); - + cleanup(); } - void TestMPXVideoViewWrapper::testHandleVolumeCmd() { init(); - - TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); + + TRAPD( errReqMedia, mVideoViewWrapper->RequestMediaL() ); QVERIFY( errReqMedia == KErrNone ); - - TRAPD(errIssuePlay, mVideoViewWrapper->IssuePlayCommandL()); + + TRAPD( errIssuePlay, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlay ) ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); QVERIFY( errIssuePlay == KErrNone ); - - TRAPD(errHdlCmd, mVideoViewWrapper->HandleCommandL(EMPXPbvCmdDecreaseVolume)); + + TRAPD( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdDecreaseVolume ) ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleDecreaseVolume ); QVERIFY( errHdlCmd == KErrNone ); - + QVERIFY( mVideoViewWrapper->iFileDetails->mAudioEnabled ); - + cleanup(); } - void TestMPXVideoViewWrapper::testHandleShortPressBackward() { init(); - - TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); + + TRAPD( errReqMedia, mVideoViewWrapper->RequestMediaL() ); QVERIFY( errReqMedia == KErrNone ); - - TRAPD(errIssuePlay, mVideoViewWrapper->IssuePlayCommandL()); + + TRAPD( errIssuePlay, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlay ) ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); QVERIFY( errIssuePlay == KErrNone ); - - TRAPD(errHdlCmd, mVideoViewWrapper->HandleCommandL(EMPXPbvCmdShortPressBackward)); + + TRAPD( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdShortPressBackward ) ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iProperty == EPbPropertyPosition ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iPropertyValue == 0 ); + QVERIFY( errHdlCmd == KErrNone ); - + cleanup(); } - void TestMPXVideoViewWrapper::testIssueVideoAppForegroundCmd() { init(); - - TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); + + TRAPD( errReqMedia, mVideoViewWrapper->RequestMediaL() ); QVERIFY( errReqMedia == KErrNone ); - - TRAPD(errIssuePlay, mVideoViewWrapper->IssuePlayCommandL()); + + TRAPD( errIssuePlay, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlay ) ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); + QVERIFY( errIssuePlay == KErrNone ); - - TRAPD(errIssueVidAppFGCmd, mVideoViewWrapper->IssueVideoAppForegroundCmdL( ETrue )); + + // + // test foreground + // + TRAPD( errIssueVidAppFGCmd, mVideoViewWrapper->IssueVideoAppForegroundCmdL( ETrue ) ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleForeground ); QVERIFY( errIssueVidAppFGCmd == KErrNone ); - + + // + // test background + // + TRAP( errIssueVidAppFGCmd, mVideoViewWrapper->IssueVideoAppForegroundCmdL( EFalse ) ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleBackground ); + QVERIFY( errIssueVidAppFGCmd == KErrNone ); + cleanup(); } - void TestMPXVideoViewWrapper::testCreateControls() { init(); - + TRAPD(err, mVideoViewWrapper->CreateControlsL()); QVERIFY( err == KErrNone ); - + QVERIFY( mVideoViewWrapper->iControlsController ); - + cleanup(); } - void TestMPXVideoViewWrapper::testIsMultiItemPlaylist() { init(); - + TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); QVERIFY( errReqMedia == KErrNone ); - + QVERIFY( ! mVideoViewWrapper->IsMultiItemPlaylist() ); - + cleanup(); } - void TestMPXVideoViewWrapper::testUpdateVideoRect() { init(); - + TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); QVERIFY( errReqMedia == KErrNone ); - - mVideoViewWrapper->UpdateVideoRect(0,0,50,50,false); - - float brY = 50; - - QCOMPARE(mVideoViewWrapper->iDisplayHandler->iBrYDiff, brY); - + + TRect rect( 0, 0, 50, 50 ); + + mVideoViewWrapper->UpdateVideoRect( + rect.iTl.iX, rect.iTl.iY, rect.iBr.iX, rect.iBr.iY, false ); + + QVERIFY( rect == mVideoViewWrapper->iDisplayHandler->iRect ); + cleanup(); } void TestMPXVideoViewWrapper::testUpdateVideoRectDone() { init(); - + TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); QVERIFY( errReqMedia == KErrNone ); - + mVideoViewWrapper->UpdateVideoRectDone(); - + cleanup(); } - - void TestMPXVideoViewWrapper::testHandleBufferingState() { init(); - + TRAPD(err, mVideoViewWrapper->HandleBufferingStateL()); QVERIFY( err == KErrNone ); - + cleanup(); } - void TestMPXVideoViewWrapper::testHandleVideoPlaybackMessage() { init(); @@ -529,27 +700,11 @@ cleanup(); } - - - -void TestMPXVideoViewWrapper::testCreateGeneralPlaybackCommand() -{ - init(); - - TRAPD(err, mVideoViewWrapper->CreateGeneralPlaybackCommandL( EPbCmdDecreaseVolume )); - QVERIFY( err == KErrNone ); - - QVERIFY( ! mVideoViewWrapper->iFileDetails->mAudioEnabled ); - - cleanup(); -} - - void TestMPXVideoViewWrapper::testHandlePlaybackCommandComplete() { init(); - CMPXCommand* cmd = NULL; + CMPXCommand* cmd = NULL; TRAP_IGNORE( cmd = CMPXCommand::NewL() ); @@ -563,13 +718,15 @@ cleanup(); } - void TestMPXVideoViewWrapper::testHandleMedia() { init(); CMPXMedia* media = NULL; - + + // + // Error case + // TRAP_IGNORE( RArray suppIds; CleanupClosePushL( suppIds ); @@ -579,27 +736,92 @@ media = CMPXMedia::NewL( suppIds.Array() ); CleanupStack::PopAndDestroy( &suppIds ); - media->SetTObjectValueL( TMPXAttribute( KMPXMediaVideoError ), - KErrCancel ); + media->SetTObjectValueL( TMPXAttribute( KMPXMediaVideoError ), KErrCancel ); ); - TRAPD(err, mVideoViewWrapper->HandleMediaL( *media, KErrNone ) ); + TRAPD( err, mVideoViewWrapper->HandleMediaL( *media, KErrNone ) ); QVERIFY( err == KErrNone ); QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrCancel ); + QVERIFY( ! mVideoViewWrapper->iControlsController->mFileDetailsAdded ); + QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaNotRequested ); if ( media ) { delete media; media = NULL; } - - + + // + // working case - RN logo is not visible + // + TRAP_IGNORE( + RArray suppIds; + CleanupClosePushL( suppIds ); + suppIds.AppendL( KMPXMediaIdGeneral ); + suppIds.AppendL( KMPXMediaIdVideo ); + + media = CMPXMedia::NewL( suppIds.Array() ); + CleanupStack::PopAndDestroy( &suppIds ); + ); + + mVideoViewWrapper->iView->mCurrentError = KErrNone; + mVideoViewWrapper->iFileDetails->mVideoEnabled = true; + mVideoViewWrapper->iDisplayHandler->SetAspectRatioL( EPbCmdNaturalAspectRatio ); + mVideoViewWrapper->iControlsController->mRNLogoVisible = false; + + TRAP(err, mVideoViewWrapper->HandleMediaL( *media, KErrNone ) ); + + QVERIFY( err == KErrNone ); + QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrNone ); + QVERIFY( mVideoViewWrapper->iControlsController->mFileDetailsAdded ); + QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetAspectRatio ); + QVERIFY( mVideoViewWrapper->iControlsController->mValue == EMMFNatural ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); + QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaDelivered ); + + if ( media ) + { + delete media; + media = NULL; + } + + // + // working case - RN logo is visible + // + TRAP_IGNORE( + RArray suppIds; + CleanupClosePushL( suppIds ); + suppIds.AppendL( KMPXMediaIdGeneral ); + suppIds.AppendL( KMPXMediaIdVideo ); + + media = CMPXMedia::NewL( suppIds.Array() ); + CleanupStack::PopAndDestroy( &suppIds ); + ); + + mVideoViewWrapper->iFileDetails->mVideoEnabled = false; + mVideoViewWrapper->iPlaybackUtility->iCommand = EPbCmdPause; + mVideoViewWrapper->iControlsController->mFileDetailsAdded = false; + mVideoViewWrapper->iDisplayHandler->SetAspectRatioL( EPbCmdZoomAspectRatio ); + mVideoViewWrapper->iControlsController->mRNLogoVisible = true; + + TRAP(err, mVideoViewWrapper->HandleMediaL( *media, KErrNone ) ); + + QVERIFY( err == KErrNone ); + QVERIFY( ! mVideoViewWrapper->iControlsController->mFileDetailsAdded ); + QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetAspectRatio ); + QVERIFY( mVideoViewWrapper->iControlsController->mValue == EMMFNatural ); + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPause ); + QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrNone ); + QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaDelivered ); + + if ( media ) + { + delete media; + media = NULL; + } + cleanup(); } - // End of file - - - diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/hbvideobaseplaybackview.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/hbvideobaseplaybackview.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/hbvideobaseplaybackview.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 3 % +// Version : %version: 5 % @@ -76,6 +76,8 @@ virtual void doClosePlayer(); + void handleStoppedState(); + signals: void tappedOnScreen(); @@ -85,6 +87,7 @@ public: int mCurrentError; // default = KErrNone bool mViewActive; + bool mSyncClose; public: diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutility.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutility.h Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,111 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Implementation of interface for playbackutility +* +*/ + +// Version : %version: 2 % + +#ifndef CMPXPLAYBACKUTILITY_H +#define CMPXPLAYBACKUTILITY_H + +#include +#include +#include +#include +#include + +class TMPXAttribute; +class MMPXPlaybackObserver; +class CMPXCollectionPlaylist; +class MMPXPlaybackCallback; +class CMPXPlaybackUtility; + +class MMPXSource +{ + public: + virtual CMPXCollectionPlaylist* PlaylistL() = 0; + + virtual void MediaL( const TArray& aAttrs, + MMPXPlaybackCallback& aCallback, + CMPXAttributeSpecs* aSpecs ) = 0; + +}; + +class MMPXPlaybackUtility : public CBase +{ + public: + static MMPXPlaybackUtility* UtilityL( const TMPXCategory aCategory, + const TUid& aModeId = KPbModeDefault ); + + virtual TMPXPlaybackState StateL() const = 0; + virtual void AddObserverL( MMPXPlaybackObserver& aObs ) = 0; + virtual void CommandL( CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback=NULL ) = 0; + virtual void CommandL( TMPXPlaybackCommand aCmd ) = 0; + virtual MMPXSource* Source() = 0; + virtual void PropertyL( MMPXPlaybackCallback& aCallback, TMPXPlaybackProperty aProperty ) = 0; + virtual void RemoveObserverL( MMPXPlaybackObserver& aObs ) = 0; + virtual void Close() = 0; + virtual void SetPrimaryClientL() = 0; + virtual void SetL( TMPXPlaybackProperty aProperty,TInt aValue ) = 0; + + public: + TMPXPlaybackState iState; + TMPXPlaybackProperty iProperty; + TInt iPropertyValue; + TInt iCommand; +}; + +class CMPXPlaybackUtility : public MMPXPlaybackUtility, + public MMPXSource +{ + public: + + static CMPXPlaybackUtility* NewL(); + + ~CMPXPlaybackUtility(); + + private: + + CMPXPlaybackUtility(); + + void ConstructL(); + + void AddObserverL( MMPXPlaybackObserver& aObs ); + + void RemoveObserverL( MMPXPlaybackObserver& aObs ); + + void Close(); + + void CommandL( CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback ); + void CommandL( TMPXPlaybackCommand aCmd ); + + TMPXPlaybackState StateL() const; + + MMPXSource* Source(); + + void SetL( TMPXPlaybackProperty aProperty,TInt aValue ); + + void PropertyL( MMPXPlaybackCallback& aCallback, TMPXPlaybackProperty aProperty ); + + CMPXCollectionPlaylist* PlaylistL(); + + void MediaL( const TArray& aAttrs, + MMPXPlaybackCallback& aCallback, + CMPXAttributeSpecs* aSpecs ); + + void SetPrimaryClientL(); +}; + +#endif // CMPXPLAYBACKUTILITY_H diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutilityimpl.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutilityimpl.h Fri May 14 15:14:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,656 +0,0 @@ -/* -* 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 "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: Implementation of interface for playbackutility -* -*/ - -// Version : %version: 3 % - -#ifndef CMPXPLAYBACKUTILITY_H -#define CMPXPLAYBACKUTILITY_H - -#include -#include -#include -#include -#include -#include -#include "mpxplaybackutility.h" - -class CMPXMessageMonitor; -class CMPXTaskQueue; - -NONSHARABLE_STRUCT( TMPXPlaybackUtilityStruct ) - { - // Default mode playback utility - MMPXPlaybackUtility* iDefaultPlaybackUtility; - }; - -/** -* Implementation of playback utility interface -* this interface: -*/ -NONSHARABLE_CLASS(CMPXPlaybackUtility) : public MMPXPlaybackUtility, - public MMPXSource, - public MMPXPlayerManager - { -public: - /** - * Two-phased constructor - * - * @param aModeId playback mode id - * @param aObs observer - * @param aCategory category of client / engine - * @return object of constructed - */ - static CMPXPlaybackUtility* NewL(const TUid& aModeId, - MMPXPlaybackObserver* aObs, - const TMPXCategory aCategory); - - /** - * Gets the interface for the client, or creates a new one. - * This interface could be a singleton - */ - static MMPXPlaybackUtility* UtilityL( const TUid& aModeId, - const TMPXCategory aCategory); - -private: - /** - * Destructor - */ - ~CMPXPlaybackUtility(); - - /** - * C++ constructor - */ - CMPXPlaybackUtility(); - - /** - * Second phase constructor - * - * @param aModeId playback mode id - * @param aObs observer - * @param aCategory category of client / engine - */ - void ConstructL(const TUid& aModeId, MMPXPlaybackObserver* aObs, const TMPXCategory aCategory); - /** - * Second phase constructor - * - * @param aObs observer - */ - void ConstructL(MMPXPlaybackObserver* aObs); - - /** - * From MMPXPlaybackUtility - * Add a Observer. Clients only receive events from the engine corresponding - * to the specific mode the interface was created in - * - * @param aObs, observer to be added - */ - void AddObserverL(MMPXPlaybackObserver& aObs); - - /** - * From MMPXPlaybackUtility - * Remove a observer. - * - * @param aObs, observer to be removed - */ - void RemoveObserverL(MMPXPlaybackObserver& aObs); - - /** - * From MMPXPlaybackUtility - * Returns PIds of clients that are using the engine in the mode this - * interface was created in. For example, if a client was interested in all - * the clients' pids with an active engine, they would: - * - * MMPXPlaybackUtility* m=MMPXPlaybackUtility::NewL(EActivePlayer); - * RArray pids; - * m->GetClients(pids); - * ......... - * pids->Close(); - * m->Close(); - * - * @param aClients Array of Pids returned. - */ - void GetClientsL(RArray& aClients); - - /** - * From MMPXPlaybackUtility - * Initializes a track given by aCollectionPath - * - * @param aCollectionPath collection path - * @param aPlay Whether to initialize for playback, or - * else just to setup the engine first - */ - virtual void InitL(const CMPXCollectionPlaylist& aPlaylist, - TBool aPlay=ETrue); - - /** - * From MMPXPlaybackUtility - * Inititialises with a single item, may not be part of any collection - * - * @param aUri URI of the item - * @param aType the mime type of the item - */ - void InitL(const TDesC& aUri,const TDesC8* aType=NULL); - - /** - * From MMPXPlaybackUtility - * Inititialises with a single item, may not be part of any collection - * Before this function can be called, the file server session which owns - * this file handle must first be marked as shareable by calling - * RFs::ShareProtected(). - * - * @param aFile file handle - */ - void InitL(RFile& aShareableFile); - - /** - * From MMPXPlaybackUtility - * Frees up client side resources only; a player is freed when there are no - * clients using it, and all resources are freed when the last client closed - */ - void Close(); - - /** - * From MMPXPlaybackUtility - * Stops any async operations that are currently under way - */ - void CancelRequest(); - - /** - * From MMPXPlaybackUtility - * Issue player commands, with optional data. ECommandReceived and - * ECommandComplete events should follow - * - * @param aCmd the command - * @param aData optional data - */ - void CommandL(TMPXPlaybackCommand aCmd,TInt aData=0); - - /** - * From MMPXPlaybackUtility - * Send a command to the playback server - * - * @param aCmd, reference to command object - * @param aCallback, call back when command exection completed. - * Asynchronously command only - */ - void CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback=NULL); - - /** - * From MMPXPlaybackUtility - * Current state of player - * @return current state - */ - TMPXPlaybackState StateL() const; - - /** - * From MMPXPlaybackUtility - * Current source being played, NULL if none was supplied - * - * @return source object - */ - MMPXSource* Source(); - - /** - * From MMPXPlaybackUtility - * Player manager - * - * @return reference to player manager - */ - MMPXPlayerManager& PlayerManager(); - - /** - * From MMPXPlaybackUtility - * Set playback property, EPropertyChanged event when complete - * - * @param aProperty the property to be set - * @param aValue the the value of the property - */ - void SetL(TMPXPlaybackProperty aProperty,TInt aValue); - - /** - * From MMPXPlaybackUtility - * Get value of a playback property, Asyc - * - * @param aCallback playback callback - * @param aProperty the property - */ - void ValueL(MMPXPlaybackCallback& aCallback,TMPXPlaybackProperty aProperty); - - /** - * Get value of a playback property, Asyc - * Result will be called back in HandleProperty - * - * @param aCallback playback callback - * @param aProperty the property - */ - void PropertyL(MMPXPlaybackCallback& aCallback, - TMPXPlaybackProperty aProperty); - - /** - * From MMPXPlaybackUtility - * Return a list of mime types supported by playback framework - * - * @return an array of mime types - */ - virtual CDesCArray* SupportedMimeTypes(); - - /** - * From MMPXPlaybackUtility - * Return a list of file extensions supported by playback framework - * - * @return an array of extensions - */ - virtual CDesCArray* SupportedExtensions(); - - /** - * From MMPXPlaybackUtility - * Return a list of schemas supported by playback framework - * - * @return an array of schemas - */ - virtual CDesCArray* SupportedSchemas(); - - /** - * Sets the priority of the playback utility - * - * @param aPriority Priority to set - */ - virtual void SetPriority( TInt aPriority ); - - /** - * Adds a message subscription for this client. - * @param aSubscription subscription to be added - */ - void AddSubscriptionL(const CMPXSubscription& aSubscription); - - /** - * Removes a message subscription for this client. - * @param aSubscription subscription to be removed. - */ - void RemoveSubscriptionL(const CMPXSubscription& aSubscription); - - /** - * Removes all message subscriptions for this client. - */ - void ClearSubscriptionsL(); - - /** - * From MMPXPlayerManager - * Typically, a client will obtain the list of all the (non-duplicated) - * player 'types' in the system from GetPlayerTypesL and present localized - * type names (e.g. "Local","Home network", if possible, else if - * non-standard type,should use PlayerTypeDisplayNameL to get text from - * player). - * - * User should be given opportunity to choose IF there is more than one - * type available, or if there is one type but more than one sub players, - * the user could be presented with the sub player list. - * - * @param aTypes the list of player types - */ - void GetPlayerTypesL(RArray& aTypes); - - /** - * From MMPXPlayerManager - * Returns display name for custom types; standard types should be - * recognized by client and localized - calling this method would then not - * be required - * - * @param aType playback type - */ - HBufC* PlayerTypeDisplayNameL(TMPXPlaybackPlayerType aType); - - /** - * From MMPXPlayerManager - * Get the list of UIDs of all players - * - * @param aPlayers All the players' uids in the system - */ - void GetPlayerListL(RArray& aPlayers); - - /** - * From MMPXPlayerManager - * Get the list of UIDs of players with the specific type - * - * @param aPlayers All the players' uids with the same type - * @param aType the type of players - */ - void GetPlayerListL(RArray& aPlayers,TMPXPlaybackPlayerType aType); - - /** - * From MMPXPlayerManager - * Get the list of sub player names, Async - * - * @param aCallback sub players returned in call back interface - * @param aPlayer UID of the player - */ - void SubPlayerNamesL(MMPXPlaybackCallback& aCallback,TUid aPlayer); - - /** - * From MMPXPlayerManager - * Client selects all players with the type aType, the specific player used - * then being resolved on the basis of the content. - * - * @param aType the type of player - */ - void SelectPlayersL(TMPXPlaybackPlayerType aType); - - /** - * From MMPXPlayerManager - * Client selects specific player aPlayer and sub player aSubPlayerIndex - * from array returned by SubPlayerNamesL - * - * @param aPlayer the UID of player - * @param aSubPlayerIndex the index of the sub player - */ - void SelectSubPlayerL(TUid aPlayer,TInt aSubPlayerIndex); - - /** - * From MMPXPlayerManager - * Client selects a specific player - * - * @param aPlayer the UID of the player - */ - void SelectPlayerL(TUid aPlayer); - - /** - * From MMPXPlayerManager - * Clears all selection criteria. Essentially the same as - * SelectPlayersL(EPbLocal). - */ - void ClearSelectPlayersL(); - - /** - * From MMPXPlayerManager - * Retreives the current selection: KNullUid and KErrNotFound are possible - * return values for aPlayer and aSubPlayerIndex respectively if none are - * explicitly selected - * - * @param aType player type - * @param aPlayer the UID of player - * @param aSubPlayerIndex index of the subplayer - * @param aSubPlayerName friendly name of the subplayer - * Notes: Client owns the returned aSubPlayerName object. - */ - void GetSelectionL(TMPXPlaybackPlayerType& aType, - TUid& aPlayer, - TInt& aSubPlayerIndex, - HBufC*& aSubPlayerName); - - /** - * From MMPXPlayerManager - * The current player, may change with each item, NULL if none found - * - * @return object of current player - */ - MMPXPlayer* CurrentPlayer(); - - /** - * From MMPXPlayer - * The 'type' of the player. Built-in types are EPbLocal and EPbRemote, but - * the plug-ins could extend this if they desire to be a different type - * which can be selected by the user - * - * @return player type - */ - TMPXPlaybackPlayerType TypeL(); - - /** - * From MMPXPlayer - * If TypeL returns a value that is not known to the UI (and therefore - * can't localize it),then TypeNameL can be used for unlocalized display - * purposes. - * - * @return player name. - */ - HBufC* TypeNameL(); - - /** - * From MMPXPlayer - * If the player supports other 'players', else array count == 0. - * - * @param aCallback sub players returned in the callback - */ - void SubPlayerNamesL(MMPXPlaybackCallback& aCallback); - - /** - * From MMPXPlayer - * Selected sub player index, corresponding to sub player names array. - * - * @return sub player index. KErrNotFound if none - */ - TInt SubPlayerL() const; - - /** - * From MMPXPlayer - * The UID identifying this player - * - * @return UID of the player - */ - TUid UidL() const; - - /** - * From MMPXSource - * Path to the collection, or NULL if not in any collection - * Ownership transferred - * - * @return collection path - */ - CMPXCollectionPlaylist* PlaylistL(); - - /** - * From MMPXSource - * File passed in, or NULL if none passed in - * - * @return pointer to file handle - */ - RFile* FileL(); - - /** - * From MMPXSource - * URI of current item - * - * @return URI of the item - */ - HBufC* UriL(); - - /** - * From MMPXSource - * - * DEPRECATED - * - * Media request - * HandleMediaL of the callback - * - * @param aAttrs attributes requested - * @param aCallback playback callback - */ - void MediaL(const TArray& aAttrs, - MMPXPlaybackCallback& aCallback); - - /** - * From MMPXSource - * Media request - * HandleMediaL of the callback - * - * @param aAttrs attributes requested - * @param aCallback playback callback - * @param aSpecs, specifications for attributes - */ - void MediaL(const TArray& aAttrs, - MMPXPlaybackCallback& aCallback, - CMPXAttributeSpecs* aSpecs); - -#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - /** - * From MMPXSource - * File passed in, or NULL if none passed in - * - * @return pointer to file handle - */ - RFile64* File64L(); -#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - - /** - * From CActive - * Handles an active object's request completion event - */ - void RunL(); - - /** - * From CActive - * Implements cancellation of an outstanding request. - */ - void DoCancel(); - - /** - * From CActive - * Handles a leave occurring in the request completion event handler RunL() - * - * @param aError error code - */ - TInt RunError(TInt aError); - - /** - * From MMPXMessageObserver - * Message received - * @param aMsgData message data - * @param aError error code - */ - void MessageReceived(TInt aMsgData, TInt aError); - - /** - * Inititialises for streaming with URI and Access Point - * - * @since S60 9.2 - * @param aUri URI of the item - * @param aType the mime type of the item - * @param aAccessPoint the access point of the item - */ - virtual void InitStreamingL(const TDesC& aUri, const TDesC8* aType, const TInt aAccessPoint); - - /** - * Inititialises for streaming with URI and Access Point, the file may not be part of any collection - * Before this function can be called, the file server session which owns - * this file handle must first be marked as shareable by calling - * RFs::ShareProtected(). - * - * @since S60 9.2 - * @param aShareableFile shareable file handle - * @param aAccessPoint the access point of the item - */ - virtual void InitStreamingL(RFile& aShareableFile, const TInt aAccessPoint); - -#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - /** - * Inititialises with a single item, may not be part of any collection - * Before this function can be called, the file server session which owns - * this file handle must first be marked as shareable by calling - * RFs::ShareProtected(). - * - * @since S60 9.2 - * @param aShareableFile shareable RFile64 file handle - */ - virtual void Init64L(RFile64& aShareableFile); - - /** - * Inititialises for streaming with URI and Access Point, the file may not be part of any collection - * Before this function can be called, the file server session which owns - * this file handle must first be marked as shareable by calling - * RFs::ShareProtected(). - * - * @since S60 9.2 - * @param aShareableFile shareable RFile64 file handle - * @param aAccessPoint the access point of the item - */ - virtual void InitStreaming64L(RFile64& aShareableFile, const TInt aAccessPoint); -#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - -private: - - - /** - * Helper to return a descriptor buffer - * - * @param aSize size of the buffer - */ - HBufC* DesL(TInt aSize); - - /** - * Add a request - * - * @param aFunction function code - * @param aCallback callback - * @param aParamData data - * @param aBuf buffer data, ownership transferred - * @param aPtr, pointer to a object - * @param aAlivePtr1, object to keep alive for a task - * ownership transferred - * @leave leave with system error code when failed - */ - void AddRequestL(TMPXPlaybackServerOp aFunction, - MMPXPlaybackCallback* aCallback=NULL, - TInt aParamData=0, - CBufBase* aBuf=NULL, - TAny* aPtr=NULL, - CBase* aAlivePtr=NULL); - - /** - * Send next request to server - */ - void ExecuteNextRequest(); - - /** - * Handle message from message queue - * @param aMsgData message data - * @param aError error code - */ - void HandleMessageL(TInt aMsgData, TInt aError); - - /** - * Handles error in RunL - * - * @param aError error code - */ - void HandleRunErrorL(TInt aError); - - -public: - - TMPXPlaybackState iState; - - RArray iObservers; - CMPXMessageMonitor* iMsgMonitor; - CMPXTaskQueue* iTaskQueue; - RMPXSession iPbs; - CBufBase* iBuffer; - TPckgBuf iPropertyValuePckg; - TPckgBuf iCompletePckg; - TPckgBuf iResultSizePckg; - RFile iFile; - TBool iCallbackOngoing; // whether client is processing callback or not -#ifdef _ENABLE_GUARD_TIMER - CPeriodic* iGuardTimer; // guard timer for async request -#endif - CMPXMedia* iMediaOnError; // media object while handling error - TInt iRefCount; -#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - RFile64 iFile64; -#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - }; - -#endif // CMPXPLAYBACKUTILITY_H diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrol.hrh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrol.hrh Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,117 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: header file of CMPXVideoPlaybackControl +* +*/ + +// Version : %version: 1 % + + +#ifndef MPXVIDEOPLAYBACKCONTROL_HRH_ +#define MPXVIDEOPLAYBACKCONTROL_HRH_ + +// DATA TYPES +const TInt KMPXVideoPlaybackVolumeMax = 10; + +enum TMPFXVideoPlaybackControlProperties +{ + EMPXShownWhenInitializing = 0x1, + EMPXShownWhenBuffering = 0x2, + EMPXShownWhenPlaying = 0x4, + EMPXShownWhenPaused = 0x8, + EMPXShownWhenSeeking = 0x10, + EMPXAllProperties = 0xffffffff +}; + +enum TMPXVideoPlaybackControls +{ + EMPXStatusPane, + EMPXControlBar, + + // Only for streaming case + // Can handle from NotInitilized state + // + EMPXBufferingAnimation, + + // + // For details view and audio only view + // + EMPXFileDetailsWidget, + + // + // For details view + // + EMPXDetailsViewPlaybackWindow, + + // + // Bitmaps + // + EMPXIndicatorBitmap, + EMPXRealLogoBitmap, + + EMPXDownloadPausedIcon, + + EMPXControlsCount // has to be last +}; + +/** Command ID's. */ +enum TMPXVideoPlaybackControlCommandIds +{ + EMPXControlCmdPluginInitialized, + EMPXControlCmdTvOutConnected, + EMPXControlCmdTvOutDisconnected, + EMPXControlCmdSetAspectRatio, + EMPXControlCmdSetVolume, + EMPXControlCmdSetDuration, + EMPXControlCmdSetPosition, + EMPXControlCmdStateChanged, + EMPXControlCmdDownloadUpdated, + EMPXControlCmdSetDownloadSize, + EMPXControlCmdDownloadComplete, + EMPXControlCmdSetDownloadPaused, + EMPXControlCmdClearDownloadPaused, + EMPXControlCmdHandleBackgroundEvent, + EMPXControlCmdHandleForegroundEvent, + EMPXControlCmdHandleErrors, + EMPXControlCmdShowVolumeControls, + EMPXControlCmdSoftKeyPressed, + EMPXControlCmdFullScreenViewOpened, + EMPXControlCmdDetailsViewOpened, + EMPXControlCmdAudionOnlyViewOpened, + EMPXControlCmdRemoveRNLogo +}; + +enum TMPXVideoSeekingType +{ + EMpxVideoSeekingForward, + EMpxVideoSeekingBackward, + EMpxVideoSeekingStop +}; + +enum TMPXVideoControlType +{ + EMpxVideoPlaybackContainer, + EMpxVideoPlaybackControl +}; + +enum TMPXVideoUserInputType +{ + EMpxVideoKeyboard, + EMpxVideoTouch, + EMpxVideoMediaKeys, + EMpxVideoSpecialHWKeys, + EMpxVideoNone +}; + +#endif /*MPXVIDEOPLAYBACKCONTROL_HRH_*/ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrolscontroller.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrolscontroller.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrolscontroller.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 6 % +// Version : %version: 7 % @@ -72,30 +72,17 @@ // void updateVideoRectDone(); - public: - - /** - * Initialize controller - */ - void initializeController(); - - /** - * Handle tvout connected/disconnected event - */ - void handleTvOutEvent( bool connected, - TMPXVideoPlaybackControlCommandIds event, - int value ); - - private slots: - - void handleTappedOnScreen(); + bool isRNLogoBitmapInControlList(); public: HbVideoBasePlaybackView *mView; CMPXVideoViewWrapper *mViewWrapper; QMPXVideoPlaybackViewFileDetails *mFileDetails; + TMPXVideoPlaybackControlCommandIds mReceivedEvent; - bool mViewTransitionIsGoingOn; + int mValue; + bool mRNLogoVisible; + bool mFileDetailsAdded; }; #endif /*MPXVIDEOPLAYBACKCONTROLSCONTROLLER_P_H_*/ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackdisplayhandler.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackdisplayhandler.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackdisplayhandler.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 4 % +// Version : %version: 6 % #ifndef __CMPXVIDEOPLAYBACKDISPLAYHANDLER_H__ @@ -26,11 +26,7 @@ #include #include #include -#ifdef SYMBIAN_BUILD_GCE #include -#else -#include -#endif // @@ -45,20 +41,7 @@ * */ class CMPXVideoPlaybackDisplayHandler : public CBase -#ifndef SYMBIAN_BUILD_GCE - , public MDirectScreenAccess -#endif { - // - // To save user's preference for scaling type in video ratio + screen ratio - // - typedef struct - { - TReal32 videoRatio; - TReal32 screenRatio; - TMMFScalingType scalingType; - } TMPXAspectRatio ; - public: ~CMPXVideoPlaybackDisplayHandler(); @@ -80,7 +63,7 @@ TInt SetDefaultAspectRatioL( QMPXVideoPlaybackViewFileDetails* aFileDetails, TReal32 aDisplayAspectRatio ); - void UpdateVideoRectL( TRect aRect, TBool transitionEffect ); + void UpdateVideoRectL( TRect aRect, TBool transitionEffect ); private: @@ -88,86 +71,15 @@ CMPXVideoViewWrapper* aViewWrapper ); void ConstructL(); - - void LoadAspectRatioL(); - - void SaveAspectRatioL(); - - void SetVideoRectL( TRect aClipRect ); - - void CalculateVideoRectL(); - - static TInt UpdateVideoRectTimeOutL( TAny* aPtr ); - -#ifdef SYMBIAN_BUILD_GCE - - private: - void AddDisplayWindowL( CWsScreenDevice& aScreenDevice, - RWindowBase& aWindowBase, - RWindow* aWin ); - - void SurfaceCreatedL( CMPXMessage* aMessage ); - void SurfaceChangedL( CMPXMessage* aMessage ); - void SurfaceRemoved(); - TInt SetNgaAspectRatioL( TMPXVideoPlaybackCommand aCmd ); - -#else - - private: - // - // MDirectScreenAccess Implementation - // - void AbortNow( RDirectScreenAccess::TTerminationReasons aReason ); - void Restart( RDirectScreenAccess::TTerminationReasons aReason ); - - TInt CreateAspectRatioCommandL( TMPXVideoPlaybackCommand aCmd ); - - void SetDisplayWindowL( RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWin, - TRect aClipRect ); - void RestartDsaL(); - void CreateAbortDsaCmdL(); - -#endif public: MMPXPlaybackUtility* iPlaybackUtility; - - RArray iAspectRatioArray; - TInt iCurrentIndexForAspectRatio; - TReal iDisplayAspectRatio; - - TRect iWindowRect; - - TReal32 iTlXDiff; - TReal32 iTlYDiff; - TReal32 iBrXDiff; - TReal32 iBrYDiff; - - TInt iTransitionEffectCnt; - - CPeriodic* iResizingTimer; CMPXVideoViewWrapper* iViewWrapper; - -#ifdef SYMBIAN_BUILD_GCE CMediaClientVideoDisplay* iVideoDisplay; - RWindowBase* iWindowBase; - TBool iSurfaceCached; - TSurfaceId iSurfaceId; - TRect iCropRect; - TVideoAspectRatio iAspectRatio; - TReal32 iScaleWidth; - TReal32 iScaleHeight; - TInt iHorizontalPosition; - TInt iVerticalPosition; - TVideoRotation iRotation; - TAutoScaleType iAutoScale; -#else - CDirectScreenAccess* iDirectScreenAccess; -#endif - + TRect iRect; + TInt iAspectRatio; + TInt iCommand; }; #endif // __CMPXVIDEOPLAYBACKDISPLAYHANDLER_H__ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/hbvideobaseplaybackview.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/hbvideobaseplaybackview.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/hbvideobaseplaybackview.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 5 % +// Version : %version: 7 % @@ -38,6 +38,7 @@ { mCurrentError = KErrNone; mViewActive = false; + mSyncClose = false; } // ------------------------------------------------------------------------------------------------- @@ -198,4 +199,13 @@ { } +// ------------------------------------------------------------------------------------------------- +// HbVideoBasePlaybackView::handleStoppedState() +// ------------------------------------------------------------------------------------------------- +// +void HbVideoBasePlaybackView::handleStoppedState() +{ + +} + // EOF diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxplaybackutility.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxplaybackutility.cpp Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,212 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Factory method to create playback utility object +* +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include"mpxplaybackutility.h" + + +// ============================== MEMBER FUNCTIONS ================================================= + +// ------------------------------------------------------------------------------------------------- +// Creates the playback utility object if not already created +// ------------------------------------------------------------------------------------------------- +// +MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL( const TMPXCategory /*aCategory*/, + const TUid& /*aModeId*/ ) +{ + return CMPXPlaybackUtility::NewL(); +} + +// ------------------------------------------------------------------------------------------------- +// Two phases constructor +// ------------------------------------------------------------------------------------------------- +// +CMPXPlaybackUtility* CMPXPlaybackUtility::NewL() +{ + CMPXPlaybackUtility* p = new(ELeave)CMPXPlaybackUtility(); + CleanupStack::PushL(p); + p->ConstructL(); + CleanupStack::Pop(p); + return p; +} + +// ------------------------------------------------------------------------------------------------- +// Destructor +// ------------------------------------------------------------------------------------------------- +// +CMPXPlaybackUtility::~CMPXPlaybackUtility() +{ +} + +// ------------------------------------------------------------------------------------------------- +// C++ constructor +// Create a unique name out of thread ID and this pointer: no other instance of +// this object will have the same name; used to identify this object for +// recieving messages +// ------------------------------------------------------------------------------------------------- +// +CMPXPlaybackUtility::CMPXPlaybackUtility() +{ +} + +// ------------------------------------------------------------------------------------------------- +// 2nd construtor +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::ConstructL() +{ + iState = EPbStateInitialised; +} + +// ------------------------------------------------------------------------------------------------- +// Add a observer +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::AddObserverL( MMPXPlaybackObserver& /*aObs*/ ) +{ +} + +// ------------------------------------------------------------------------------------------------- +// Remove a observer +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::RemoveObserverL( MMPXPlaybackObserver& /* aObs */ ) +{ +} + +// ------------------------------------------------------------------------------------------------- +// Delete this +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::Close() +{ + delete this; +} + +// ------------------------------------------------------------------------------------------------- +// Issue player commands +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::CommandL( TMPXPlaybackCommand aCmd ) +{ + iCommand = aCmd; +} + +// ------------------------------------------------------------------------------------------------- +// Issue player commands +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::CommandL( CMPXCommand& aCmd, MMPXPlaybackCallback* /* aCallback */ ) +{ + TInt cmdType = aCmd.ValueTObjectL( KMPXCommandGeneralId ); + + if ( cmdType == KMPXCommandIdPlaybackGeneral ) + { + iCommand = aCmd.ValueTObjectL( KMPXCommandPlaybackGeneralType ); + } + else + { + iCommand = aCmd.ValueTObjectL( KMPXMediaVideoPlaybackCommand ); + } +} + +// ------------------------------------------------------------------------------------------------- +// Current state of player +// ------------------------------------------------------------------------------------------------- +// +TMPXPlaybackState CMPXPlaybackUtility::StateL() const +{ + return iState; +} + +// ------------------------------------------------------------------------------------------------- +// Determine whether there is a song by the state of the engine: if there is, +// its OK to return MMPXMedia, else NULL is returned +// ------------------------------------------------------------------------------------------------- +// +MMPXSource* CMPXPlaybackUtility::Source() +{ + return NULL; +} + +// ------------------------------------------------------------------------------------------------- +// Set playback property, EPropertyChanged event when complete +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::SetL( TMPXPlaybackProperty aProperty, TInt aValue ) +{ + iProperty = aProperty; + iPropertyValue = aValue; +} + +// ------------------------------------------------------------------------------------------------- +// Send property request +// Result will be called back in HandleProperty +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::PropertyL( + MMPXPlaybackCallback& /* aCallback */, + TMPXPlaybackProperty /* aProperty */) +{ +} + +// ------------------------------------------------------------------------------------------------- +// Path to the collection +// ------------------------------------------------------------------------------------------------- +// +CMPXCollectionPlaylist* CMPXPlaybackUtility::PlaylistL() +{ + CMPXCollectionPlaylist *p = NULL; + + return p; +} + +// ------------------------------------------------------------------------------------------------- +// Request for media properties. +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::MediaL( + const TArray& /* aAttrs */, + MMPXPlaybackCallback& /* aCallback */, + CMPXAttributeSpecs* /* aSpecs */) +{ +} + +// ------------------------------------------------------------------------------------------------- +// set primary client +// ------------------------------------------------------------------------------------------------- +// +void CMPXPlaybackUtility::SetPrimaryClientL() +{ +} + +// End of file + diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxplaybackutilityimpl.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxplaybackutilityimpl.cpp Fri May 14 15:14:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,723 +0,0 @@ -/* -* Copyright (c) 2006 - 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "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: Playback Utility implementation -* -*/ - -// Version : %version: 4 % - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "mpxplaybackutilityimpl.h" - -// ============================== MEMBER FUNCTIONS ============================ - -// --------------------------------------------------------------------------- -// Retrieves playback utility from TLS. Creates if it's not there. -// --------------------------------------------------------------------------- -// -MMPXPlaybackUtility* CMPXPlaybackUtility::UtilityL( - const TUid& aModeId, - const TMPXCategory aCategory) - { - MMPXPlaybackUtility* utility( NULL ); - - utility = CMPXPlaybackUtility::NewL( aModeId, NULL, aCategory ); - - return utility; - } - -// ---------------------------------------------------------------------------- -// Two phases constructor -// ---------------------------------------------------------------------------- -// -CMPXPlaybackUtility* CMPXPlaybackUtility::NewL(const TUid& aModeId, - MMPXPlaybackObserver* aObs, - const TMPXCategory aCategory) - { - CMPXPlaybackUtility* p=new(ELeave)CMPXPlaybackUtility(); - CleanupStack::PushL(p); - p->ConstructL(aModeId,aObs,aCategory); - CleanupStack::Pop(p); - return p; - } - -// ---------------------------------------------------------------------------- -// Destructor -// ---------------------------------------------------------------------------- -// -CMPXPlaybackUtility::~CMPXPlaybackUtility() - { - iObservers.Close(); - } - -// ---------------------------------------------------------------------------- -// C++ constructor -// Create a unique name out of thread ID and this pointer: no other instance of -// this object will have the same name; used to identify this object for -// recieving messages -// ---------------------------------------------------------------------------- -// -CMPXPlaybackUtility::CMPXPlaybackUtility() - : iCallbackOngoing(EFalse) - { - } - -// ---------------------------------------------------------------------------- -// 2nd construtor -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::ConstructL(const TUid& /* aModeId */, - MMPXPlaybackObserver* /* aObs */, - const TMPXCategory /* aCategory */) - { - iState = EPbStateInitialised; - } - -// ---------------------------------------------------------------------------- -// Add a observer -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::AddObserverL(MMPXPlaybackObserver& aObs) - { - iObservers.AppendL(&aObs); - } - -// ---------------------------------------------------------------------------- -// Remove a observer -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::RemoveObserverL(MMPXPlaybackObserver& /* aObs */) - { - - } - -// ---------------------------------------------------------------------------- -// Returns PIds of clients that are using the engine in the mode -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::GetClientsL(RArray& /* aClients */) - { - - } - -// ---------------------------------------------------------------------------- -// Initializes a track given by aIndex in path aCollectionPath -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::InitL( - const CMPXCollectionPlaylist& /* aPlaylist */, - TBool /*aPlay */ ) - { - - } - -// ---------------------------------------------------------------------------- -// Inititialises with a single song, may not be part of any collection -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::InitL(const TDesC& /* aUri */, const TDesC8* /* aType */ ) - { - - } - -// ---------------------------------------------------------------------------- -// Inititialises with a single song, may not be part of any collection -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::InitL(RFile& /* aShareableFile */) - { - - } - -// ---------------------------------------------------------------------------- -// Inititialises with a URI -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::InitStreamingL(const TDesC& /* aUri */, const TDesC8* /* aType */, const TInt /* aAccessPoint */) -{ - -} - - -// ---------------------------------------------------------------------------- -// Inititialises with a file, may not be part of any collection -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::InitStreamingL(RFile& /* aShareableFile */, const TInt /* aAccessPoint */) -{ - -} - -// ---------------------------------------------------------------------------- -// Frees up client side resources only; a player is freed when there are no -// clients using it, and all resources are freed when the last client closed -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::Close() - { - - } - -// ---------------------------------------------------------------------------- -// Stops any async operations that are currently under way -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::CancelRequest() - { - - } - -// ---------------------------------------------------------------------------- -// Issue player commands, with optional data. -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::CommandL(TMPXPlaybackCommand /* aCmd */, TInt /* aData */) - { - - } - -// ---------------------------------------------------------------------------- -// Issue player commands -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::CommandL( - CMPXCommand& aCmd, - MMPXPlaybackCallback* /* aCallback */) - { - TMPXPlaybackCommand cmdType = static_cast( - aCmd.ValueTObjectL(KMPXCommandPlaybackGeneralType)); - - switch ( cmdType ) - { - case EPbCmdPlay: - { - iState = EPbStatePlaying; - break; - } - case EPbCmdDecreaseVolume: - { - CMPXMessage* message = CMPXMessage::NewL(); - message->SetTObjectValueL( KMPXMessageGeneralId, KMPXMessageGeneral ); - message->SetTObjectValueL( KMPXMessageGeneralEvent, TMPXPlaybackMessage::EPropertyChanged ); - message->SetTObjectValueL( KMPXMessageGeneralType, EPbPropertyVolume ); - message->SetTObjectValueL( KMPXMessageGeneralData, 0 ); - iObservers[0]->HandlePlaybackMessage( message, KErrNone ); - } - } - } - -// ---------------------------------------------------------------------------- -// Current state of player -// ---------------------------------------------------------------------------- -// -TMPXPlaybackState CMPXPlaybackUtility::StateL() const - { - return iState; - } - -// ---------------------------------------------------------------------------- -// Determine whether there is a song by the state of the engine: if there is, -// its OK to return MMPXMedia, else NULL is returned -// ---------------------------------------------------------------------------- -// -MMPXSource* CMPXPlaybackUtility::Source() - { - return this; - } - -// ---------------------------------------------------------------------------- -// Get player manager -// ---------------------------------------------------------------------------- -// -MMPXPlayerManager& CMPXPlaybackUtility::PlayerManager() - { - return *this; - } - -// ---------------------------------------------------------------------------- -// Set playback property, EPropertyChanged event when complete -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::SetL(TMPXPlaybackProperty aProperty,TInt /* aValue */ ) - { - if ( aProperty == EPbPropertyMute ) - { - CMPXMessage* message = CMPXMessage::NewL(); - message->SetTObjectValueL( KMPXMessageGeneralId, KMPXMessageGeneral ); - message->SetTObjectValueL( KMPXMessageGeneralEvent, TMPXPlaybackMessage::EPropertyChanged ); - message->SetTObjectValueL( KMPXMessageGeneralType, 0 ); - message->SetTObjectValueL( KMPXMessageGeneralData, 0 ); - iObservers[0]->HandlePlaybackMessage( message, KErrNone ); - } - else if ( aProperty == EPbPropertyPosition ) - { - CMPXMessage* message = CMPXMessage::NewL(); - message->SetTObjectValueL( KMPXMessageGeneralId, KMPXMessageGeneral ); - message->SetTObjectValueL( KMPXMessageGeneralEvent, TMPXPlaybackMessage::EPropertyChanged ); - message->SetTObjectValueL( KMPXMessageGeneralType, EPbPropertyPosition ); - message->SetTObjectValueL( KMPXMessageGeneralData, 50 ); - iObservers[0]->HandlePlaybackMessage( message, KErrNone ); - } - } - -// ---------------------------------------------------------------------------- -// Send property request -// Result will be called back in HandleProperty -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::ValueL(MMPXPlaybackCallback& /* aCallback */, - TMPXPlaybackProperty /* aProperty */) - { - - } - -// ---------------------------------------------------------------------------- -// Send property request -// Result will be called back in HandleProperty -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::PropertyL( - MMPXPlaybackCallback& /* aCallback */, - TMPXPlaybackProperty /* aProperty */) - { - - } - -// ---------------------------------------------------------------------------- -// Return a list of mime types supported by playback framework -// ---------------------------------------------------------------------------- -// -CDesCArray* CMPXPlaybackUtility::SupportedMimeTypes() - { - CDesCArray* desArray = NULL; - - return desArray; - } - -// ---------------------------------------------------------------------------- -// Return a list of mime types supported by playback framework -// ---------------------------------------------------------------------------- -// -CDesCArray* CMPXPlaybackUtility::SupportedExtensions() - { - CDesCArray* desArray = NULL; - - return desArray; - } - -// ---------------------------------------------------------------------------- -// Return a list of mime types supported by playback framework -// ---------------------------------------------------------------------------- -// -CDesCArray* CMPXPlaybackUtility::SupportedSchemas() - { - CDesCArray* desArray = NULL; - - return desArray; - } - -// ---------------------------------------------------------------------------- -// Sets the priority of the playback utility -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::SetPriority( TInt /* aPriority */ ) - { - - } - - -// ---------------------------------------------------------------------------- -// CMPXPlaybackUtility::AddSubscriptionL -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::AddSubscriptionL( - const CMPXSubscription& /* aSubscription */) - { - - } - -// ---------------------------------------------------------------------------- -// CMPXPlaybackUtility::RemoveSubscriptionL -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::RemoveSubscriptionL( - const CMPXSubscription& /* aSubscription */ ) - { - - } - -// ---------------------------------------------------------------------------- -// CMPXPlaybackUtility::ClearSubscriptionsL -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::ClearSubscriptionsL() - { - - } -// ---------------------------------------------------------------------------- -// Get a list of player types -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::GetPlayerTypesL( - RArray& /* aTypes */ ) - { - - } - -// ---------------------------------------------------------------------------- -// Returns display name for custom types -// ---------------------------------------------------------------------------- -// -HBufC* CMPXPlaybackUtility::PlayerTypeDisplayNameL(TMPXPlaybackPlayerType /* aType */ ) - { - HBufC* buf=NULL; - return buf; - } - -// ---------------------------------------------------------------------------- -// Get the list of UIDs of all players -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::GetPlayerListL(RArray& /* aPlayers */) - { - - } - -// ---------------------------------------------------------------------------- -// Get the list of UIDs of players with the specific type -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::GetPlayerListL(RArray& /* aPlayers */, - TMPXPlaybackPlayerType /* aType */) - { - - } - -// ---------------------------------------------------------------------------- -// Asynchronous method: when server completes message, RunL() will be called -// and then the observer is notified of the results. Data required for the -// results that is not supplied by the server is stored; data supplied by the -// server is written back into packaged descriptors in this address space -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::SubPlayerNamesL(MMPXPlaybackCallback& /* aCallback */, - TUid /* aPlayer */) - { - - } - -// ---------------------------------------------------------------------------- -// Selects all players with the type -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::SelectPlayersL(TMPXPlaybackPlayerType /* aType */) - { - - } - -// ---------------------------------------------------------------------------- -// Selects a specific player -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::SelectPlayerL(TUid /* aPlayer */ ) - { - - } - -// ---------------------------------------------------------------------------- -// Selects a specific player and sub player -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::SelectSubPlayerL(TUid /* aPlayer */, TInt /* aSubPlayerIndex */) - { - - } - -// ---------------------------------------------------------------------------- -// Clears all selection criteria. -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::ClearSelectPlayersL() - { - - } - -// ---------------------------------------------------------------------------- -// Retreives the current selection -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::GetSelectionL(TMPXPlaybackPlayerType& /* aType */, - TUid& /* aPlayer */, - TInt& /* aSubPlayerIndex */, - HBufC*& /* aSubPlayerName */) - { - - } - -// ---------------------------------------------------------------------------- -// The current player -// ---------------------------------------------------------------------------- -// -MMPXPlayer* CMPXPlaybackUtility::CurrentPlayer() - { - return NULL; - } - -// ---------------------------------------------------------------------------- -// The 'type' of the player -// ---------------------------------------------------------------------------- -// -TMPXPlaybackPlayerType CMPXPlaybackUtility::TypeL() - { - MPX_FUNC_EX("CMPXPlaybackUtility::TypeL()"); - return EPbLocal; - } - -// ---------------------------------------------------------------------------- -// The name of player type -// ---------------------------------------------------------------------------- -// -HBufC* CMPXPlaybackUtility::TypeNameL() - { - HBufC* buf=NULL; - return buf; - } - -// ---------------------------------------------------------------------------- -// Get sub players -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::SubPlayerNamesL(MMPXPlaybackCallback& aCallback) - { - MPX_FUNC_EX("CMPXPlaybackUtility::SubPlayerNamesL()"); - SubPlayerNamesL(aCallback,UidL()); - } - -// ---------------------------------------------------------------------------- -// Selected sub player index -// ---------------------------------------------------------------------------- -// -TInt CMPXPlaybackUtility::SubPlayerL() const - { - return 0; - } - -// ---------------------------------------------------------------------------- -// The UID identifying this player -// ---------------------------------------------------------------------------- -// -TUid CMPXPlaybackUtility::UidL() const - { - return TUid::Uid( 0 ); - } - -// ---------------------------------------------------------------------------- -// Path to the collection -// ---------------------------------------------------------------------------- -// -CMPXCollectionPlaylist* CMPXPlaybackUtility::PlaylistL() - { - MPX_FUNC_EX("CMPXPlaybackUtility::PlaylistL()"); - CMPXCollectionPlaylist *p = NULL; - - return p; - } - -// ---------------------------------------------------------------------------- -// Return file handle -// ---------------------------------------------------------------------------- -// -RFile* CMPXPlaybackUtility::FileL() - { - RFile* file(NULL); - return file; - } - -// ---------------------------------------------------------------------------- -// URI of current song -// ---------------------------------------------------------------------------- -// -HBufC* CMPXPlaybackUtility::UriL() - { - HBufC* buf=NULL; - return buf; - } - -// ---------------------------------------------------------------------------- -// Request for media properties. -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::MediaL( - const TArray& aAttrs, - MMPXPlaybackCallback& aCallback) - { - MediaL( aAttrs, aCallback, NULL ); - } - -// ---------------------------------------------------------------------------- -// Request for media properties. -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::MediaL( - const TArray& /* aAttrs */, - MMPXPlaybackCallback& /* aCallback */, - CMPXAttributeSpecs* /* aSpecs */) - { - - } - -// ---------------------------------------------------------------------------- -// Server has completed the message, and if there's no error, the results are -// available. The server completes with the function id (or error) so the correct -// callback is made -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::RunL() - { - - } - -// ---------------------------------------------------------------------------- -// Canceling by the server -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::DoCancel() - { - - } - -// ---------------------------------------------------------------------------- -// Sends error message to all observers - maybe it should only be to the -// client that calls the async method -// ---------------------------------------------------------------------------- -// -TInt CMPXPlaybackUtility::RunError(TInt /* aError */) - { - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// Distributes messages to all observers -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::MessageReceived(TInt /* aMsgData */, TInt /* aError */) - { - - } - -// ---------------------------------------------------------------------------- -// Distributes messages to all observers -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::HandleMessageL(TInt /* aMsgData */, TInt /* aError */) - { - - } - -// ---------------------------------------------------------------------------- -// Handle error in RunL -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::HandleRunErrorL(TInt /* aError */) - { - - } - - -// ---------------------------------------------------------------------------- -// Read a buffer from server -// ---------------------------------------------------------------------------- -// -HBufC* CMPXPlaybackUtility::DesL(TInt /* aSize */) - { - HBufC* des=NULL; - - return des; - } - -// ---------------------------------------------------------------------------- -// Adds a sync request to the queue: if there is no outstanding request, -// it will be executed immediately -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::AddRequestL(TMPXPlaybackServerOp /*aFunction */, - MMPXPlaybackCallback* /* aCallback */, - TInt /* aParamData */, - CBufBase* /* aBuf */, - TAny* /* aPtr */, - CBase* /* aAlivePtr */) - { - - } - -// ---------------------------------------------------------------------------- -// Executes the next request in the queue. -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::ExecuteNextRequest() - { - - } - - - -#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API -// ---------------------------------------------------------------------------- -// Inititialises with a single song, may not be part of any collection -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::Init64L(RFile64& /* aShareableFile */) - { - - } - -// ---------------------------------------------------------------------------- -// Inititialises with a file, may not be part of any collection -// ---------------------------------------------------------------------------- -// -void CMPXPlaybackUtility::InitStreaming64L(RFile64& /* aShareableFile */, const TInt /* aAccessPoint */) - { - - } - -// ---------------------------------------------------------------------------- -// Return file handle -// ---------------------------------------------------------------------------- -// -RFile64* CMPXPlaybackUtility::File64L() - { - RFile64* file(NULL); - - return file; - } - -#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - -// End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackcontrolscontroller.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackcontrolscontroller.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackcontrolscontroller.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 7 % +// Version : %version: 8 % @@ -39,18 +39,9 @@ QMPXVideoPlaybackViewFileDetails *details ) : mView( view ) , mViewWrapper( viewWrapper ) - , mFileDetails( details ) + , mFileDetails( details ) + , mFileDetailsAdded( false ) { - initializeController(); -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackControlsController::initializeController() -// ------------------------------------------------------------------------------------------------- -// -void QMPXVideoPlaybackControlsController::initializeController() -{ - connect( mView, SIGNAL( tappedOnScreen() ), this, SLOT( handleTappedOnScreen() ) ); } // ------------------------------------------------------------------------------------------------- @@ -61,6 +52,8 @@ QMPXVideoPlaybackViewFileDetails* details ) { Q_UNUSED( details ); + + mFileDetailsAdded = true; } // ------------------------------------------------------------------------------------------------- @@ -70,9 +63,6 @@ QMPXVideoPlaybackControlsController::~QMPXVideoPlaybackControlsController() { MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::~QMPXVideoPlaybackControlsController")); - - disconnect( mView, SIGNAL( tappedOnScreen() ), this, SLOT( handleTappedOnScreen() ) ); - } // ------------------------------------------------------------------------------------------------- @@ -82,51 +72,8 @@ void QMPXVideoPlaybackControlsController::handleEvent( TMPXVideoPlaybackControlCommandIds event, int value ) { - switch ( event ) - { - case EMPXControlCmdTvOutConnected: - { - handleTvOutEvent( true, event, value ); - break; - } - case EMPXControlCmdTvOutDisconnected: - { - handleTvOutEvent( false, event, value ); - break; - } - case EMPXControlCmdSetVolume: - { - mFileDetails->mAudioEnabled = false; - break; - } - case EMPXControlCmdSetDuration: - { - mFileDetails->mDuration = value; - break; - } - case EMPXControlCmdShowVolumeControls: - { - mFileDetails->mAudioEnabled = true; - break; - } - case EMPXControlCmdSetPosition: - { - mFileDetails->mSeekable = true; - break; - } - } -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackControlsController::handleTvOutEvent -// ------------------------------------------------------------------------------------------------- -// -void QMPXVideoPlaybackControlsController::handleTvOutEvent( - bool connected, TMPXVideoPlaybackControlCommandIds event, int value ) -{ - Q_UNUSED( event ); - Q_UNUSED( value ); - mFileDetails->mTvOutConnected = connected; + mReceivedEvent = event; + mValue = value; } // ------------------------------------------------------------------------------------------------- @@ -135,16 +82,15 @@ // void QMPXVideoPlaybackControlsController::updateVideoRectDone() { - mViewTransitionIsGoingOn = false; } // ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackControlsController::handleTappedOnScreen() +// QMPXVideoPlaybackControlsController::isRNLogoBitmapVisible() // ------------------------------------------------------------------------------------------------- // -void QMPXVideoPlaybackControlsController::handleTappedOnScreen() - +bool QMPXVideoPlaybackControlsController::isRNLogoBitmapInControlList() { - MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::handleTappedOnScreen")); + return mRNLogoVisible; } + // End of File diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackdisplayhandler.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackdisplayhandler.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackdisplayhandler.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 5 % +// Version : %version: 7 % #include #include @@ -29,11 +29,6 @@ #include "mpxvideoregion.h" #include "mpxvideoplaybackviewfiledetails.h" -const TInt KVIDEORESIZINGREPEATRATE = 50000; -const TReal32 KTRANSITIONEFFECTCNT = 8; - -_LIT( KAspectRatioFile, "c:\\private\\200159b2\\mpxvideoplayer_aspect_ratio.dat" ); - CMPXVideoPlaybackDisplayHandler::CMPXVideoPlaybackDisplayHandler( MMPXPlaybackUtility* aPlayUtil, CMPXVideoViewWrapper* aViewWrapper ) @@ -67,7 +62,6 @@ // void CMPXVideoPlaybackDisplayHandler::ConstructL() { - LoadAspectRatioL(); } // ------------------------------------------------------------------------------------------------- @@ -92,69 +86,51 @@ // void CMPXVideoPlaybackDisplayHandler::RemoveDisplayWindow() { -#ifdef SYMBIAN_BUILD_GCE if ( iVideoDisplay ) { delete iVideoDisplay; iVideoDisplay = NULL; } -#else - if ( iDirectScreenAccess ) - { - delete iDirectScreenAccess; - iDirectScreenAccess = NULL; - } -#endif } // ------------------------------------------------------------------------------------------------- // CMPXVideoPlaybackDisplayHandler::HandleVideoDisplayMessageL() // ------------------------------------------------------------------------------------------------- // -void CMPXVideoPlaybackDisplayHandler::HandleVideoDisplayMessageL( CMPXMessage* aMessage ) +void CMPXVideoPlaybackDisplayHandler::HandleVideoDisplayMessageL( CMPXMessage* /*aMessage*/ ) { - - TMPXVideoDisplayCommand message = - ( *(aMessage->Value(KMPXMediaVideoDisplayCommand)) ); - - switch ( message ) - { -#ifdef SYMBIAN_BUILD_GCE - case EPbMsgVideoSurfaceCreated: - { - SurfaceCreatedL( aMessage ); - break; - } - case EPbMsgVideoSurfaceChanged: - { - SurfaceChangedL( aMessage ); - break; - } - case EPbMsgVideoSurfaceRemoved: - { - SurfaceRemoved(); - break; - } -#endif - } } - // ------------------------------------------------------------------------------------------------- // CMPXVideoPlaybackDisplayHandler::SetAspectRatioL() // ------------------------------------------------------------------------------------------------- // TInt CMPXVideoPlaybackDisplayHandler::SetAspectRatioL( TMPXVideoPlaybackCommand aCmd ) { - Q_UNUSED( aCmd ); - TInt aspectRatio = 0; + iCommand = aCmd; + + switch ( aCmd ) + { + case EPbCmdNaturalAspectRatio: + { + iAspectRatio = EMMFNatural; + break; + } + case EPbCmdZoomAspectRatio: + { + iAspectRatio = EMMFZoom; + break; + } + case EPbCmdStretchAspectRatio: + { + iAspectRatio = EMMFStretch; + break; + } + } - iCurrentIndexForAspectRatio = 1; - - return aspectRatio; + return iAspectRatio; } - // ------------------------------------------------------------------------------------------------- // CMPXVideoPlaybackDisplayHandler::SetDefaultAspectRatioL // ------------------------------------------------------------------------------------------------- @@ -165,187 +141,21 @@ { Q_UNUSED( aFileDetails ); Q_UNUSED( aDisplayAspectRatio ); - TInt newAspectRatio = EMMFNatural; - return newAspectRatio; -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::SaveAspectRatioL -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::SaveAspectRatioL() -{ - -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::LoadAspectRatioL -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::LoadAspectRatioL() -{ + return iAspectRatio; } // ------------------------------------------------------------------------------------------------- // CMPXVideoPlaybackDisplayHandler::UpdateVideoRectL() // ------------------------------------------------------------------------------------------------- // -void CMPXVideoPlaybackDisplayHandler::UpdateVideoRectL( TRect aClipRect, TBool transitionEffect ) +void CMPXVideoPlaybackDisplayHandler::UpdateVideoRectL( TRect aClipRect, TBool transitionEffect ) { MPX_ENTER_EXIT(_L("CMPXVideoPlaybackDisplayHandler::UpdateVideoRectL()")); - Q_UNUSED( transitionEffect ); - - iTlXDiff = (TReal32)( aClipRect.iTl.iX ); - iTlYDiff = (TReal32)( aClipRect.iTl.iY ); - iBrXDiff = (TReal32)( aClipRect.iBr.iX ); - iBrYDiff = (TReal32)( aClipRect.iBr.iY ); - -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::UpdateVideoRectTimeOutL() -// ------------------------------------------------------------------------------------------------- -// -TInt CMPXVideoPlaybackDisplayHandler::UpdateVideoRectTimeOutL( TAny* aPtr ) -{ - Q_UNUSED( aPtr ); - return KErrNone; -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::CalculateVideoRectL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::CalculateVideoRectL() -{ - -} -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::SetVideoRectL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::SetVideoRectL( TRect aRect ) -{ - Q_UNUSED( aRect ); -} - -#ifdef SYMBIAN_BUILD_GCE + Q_UNUSED( transitionEffect ); -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::AddDisplayWindowL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::AddDisplayWindowL( CWsScreenDevice& aScreenDevice, - RWindowBase& aWindowBase, - RWindow* aWin ) -{ - Q_UNUSED( aScreenDevice ); - Q_UNUSED( aWindowBase ); - Q_UNUSED( aWin ); -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::SurfaceCreatedL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::SurfaceCreatedL( CMPXMessage* aMessage ) -{ - Q_UNUSED( aMessage ); -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::SurfaceChangedL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::SurfaceChangedL( CMPXMessage* aMessage ) -{ - Q_UNUSED( aMessage ); + iRect = aClipRect; } -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::SurfaceRemoved() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::SurfaceRemoved() -{ -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::SetNgaAspectRatioL() -// ------------------------------------------------------------------------------------------------- -// -TInt CMPXVideoPlaybackDisplayHandler::SetNgaAspectRatioL( TMPXVideoPlaybackCommand aCmd ) -{ - Q_UNUSED( aCmd ); - return KErrNone; -} - - -#else - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::SetDisplayWindowL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::SetDisplayWindowL( RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWin, - TRect aClipRect ) -{ - Q_UNUSED( aWs ); - Q_UNUSED( aScreenDevice ); - Q_UNUSED( aWin ); - Q_UNUSED( aClipRect ); -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::Restart() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::Restart( RDirectScreenAccess::TTerminationReasons aReason ) -{ - Q_UNUSED( aReason ); -} - - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::RestartDsaL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::RestartDsaL() -{ - -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::AbortNow() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::AbortNow( RDirectScreenAccess::TTerminationReasons aReason ) -{ - Q_UNUSED( aReason ); -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::CreateAbortDsaCmdL() -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoPlaybackDisplayHandler::CreateAbortDsaCmdL() -{ - -} - -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackDisplayHandler::CreateAspectRatioCommandL() -// ------------------------------------------------------------------------------------------------- -// -TInt CMPXVideoPlaybackDisplayHandler::CreateAspectRatioCommandL( TMPXVideoPlaybackCommand aCmd ) -{ - Q_UNUSED( aCmd ); -} - -#endif - // End of File diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro Fri May 28 09:45:19 2010 +0300 @@ -14,7 +14,7 @@ # Description: Project file for building testmpxvideoviewwrapper # # -# Version : %version: 5 % +# Version : %version: 6 % TEMPLATE = app @@ -23,12 +23,11 @@ DEPENDPATH += inc src stub/src stub/inc -INCLUDEPATH += ../inc \ - ../../inc \ - ../../../inc \ - ../../../../inc \ - ../../controlinc \ - ../../viewinc \ +INCLUDEPATH += stub/inc \ + ../inc \ + ../../inc \ + ../../../inc \ + ../../../../inc \ $$MW_LAYER_SYSTEMINCLUDE LIBS += -lmpxcommon.dll \ @@ -43,7 +42,7 @@ mpxvideoplaybackuserinputhandler.h \ mpxvideoplaybackcontrolscontroller.h \ mpxvideoplaybackviewfiledetails.h \ - mpxplaybackutilityimpl.h \ + mpxplaybackutility.h \ ../../viewinc/mpxvideoviewwrapper.h SOURCES += testmpxvideoviewwrapper.cpp \ @@ -52,6 +51,5 @@ mpxvideoplaybackviewfiledetails.cpp \ mpxvideoplaybackcontrolscontroller.cpp \ mpxplaybackutility.cpp \ - mpxplaybackutilityimpl.cpp \ mpxvideoplaybackuserinputhandler.cpp \ ../../viewsrc/mpxvideoviewwrapper.cpp diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 4 % +// Version : %version: 5 % #include @@ -252,20 +252,35 @@ setup(); - // test for tv-out - mController->mFileDetails->mPlaybackMode = EMPXVideoLocal; - mController->mFileDetails->mTvOutConnected = true; - mProgBar->updateWithFileDetails( mController->mFileDetails ); - QVERIFY( mProgBar->mProgressSlider->isEnabled() ); - - // live streaming - mController->mFileDetails->mPlaybackMode = EMPXVideoLiveStreaming; + // + // pausable + non seekable + // + mController->mFileDetails->mPausableStream = true; + mController->mFileDetails->mSeekable = false; mProgBar->updateWithFileDetails( mController->mFileDetails ); QVERIFY( ! mProgBar->mProgressSlider->isEnabled() ); + // + // non pausable + seekable + // + mController->mFileDetails->mPausableStream = false; + mController->mFileDetails->mSeekable = true; + mProgBar->updateWithFileDetails( mController->mFileDetails ); + QVERIFY( ! mProgBar->mProgressSlider->isEnabled() ); + + // + // non pausable + non seekable + // + mController->mFileDetails->mPausableStream = false; + mController->mFileDetails->mSeekable = false; + mProgBar->updateWithFileDetails( mController->mFileDetails ); + QVERIFY( ! mProgBar->mProgressSlider->isEnabled() ); + + // // other cases - mController->mFileDetails->mPlaybackMode = EMPXVideoLocal; - mController->mFileDetails->mTvOutConnected = false; + // + mController->mFileDetails->mPausableStream = true; + mController->mFileDetails->mSeekable = true; mProgBar->updateWithFileDetails( mController->mFileDetails ); QVERIFY( mProgBar->mProgressSlider->isEnabled() ); diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/inc/testmpxvideoplaybackcontrolscontroller.h --- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/inc/testmpxvideoplaybackcontrolscontroller.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/inc/testmpxvideoplaybackcontrolscontroller.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 4 % +// Version : %version: 5 % #ifndef __TESTMPXVIDEOPLAYBACKCONTROLSCONTROLLER_H__ #define __TESTMPXVIDEOPLAYBACKCONTROLSCONTROLLER_H__ @@ -116,6 +116,10 @@ // test private slot handleOrientationChanged() // void testslot_handleOrientationChanged(); + + void testslot_handleRNLogoVisibleChanged(); + void testslot_handleRNLogoTimeout(); + void testIsRNLogoBitmapVisible(); signals: void commandSignal(); @@ -134,6 +138,4 @@ #endif // __TESTMPXVIDEOPLAYBACKCONTROLSCONTROLLER_H__ // End of file - - diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/src/testmpxvideoplaybackcontrolscontroller.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/src/testmpxvideoplaybackcontrolscontroller.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/src/testmpxvideoplaybackcontrolscontroller.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 8 % +// Version : %version: 9 % #include #include @@ -55,7 +55,6 @@ { HbApplication app(argc, argv); HbMainWindow window; - TestMPXVideoPlaybackControlsController tv; char *pass[3]; @@ -68,7 +67,6 @@ return res; } - // --------------------------------------------------------------------------- // init // --------------------------------------------------------------------------- @@ -78,7 +76,11 @@ MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackControlsController::init()")); mBaseVideoView = new HbVideoBasePlaybackView(); - mFileDetails = new QMPXVideoPlaybackViewFileDetails(); + + if ( ! mFileDetails ) + { + mFileDetails = new QMPXVideoPlaybackViewFileDetails(); + } mViewWrapper = CMPXVideoViewWrapper::NewL( mBaseVideoView ); mController = new QMPXVideoPlaybackControlsController( mBaseVideoView, mViewWrapper, @@ -113,32 +115,40 @@ void TestMPXVideoPlaybackControlsController::testAddFileDetails() { MPX_DEBUG(_L("TestMPXVideoPlaybackControlsController::testAddFileDetails()") ); - - init(); - + // // local real media with no video // - mFileDetails->mClipName = QString("testClip.rm"); - mFileDetails->mMimeType = QString("video/x-pn-realvideo"); - + mFileDetails = new QMPXVideoPlaybackViewFileDetails(); + mFileDetails->mClipName = QString( "testClip.rm" ); + mFileDetails->mMimeType = QString( "video/x-pn-realvideo" ); + + init(); + mController->addFileDetails( mFileDetails ); QVERIFY( mController->mFileDetails->mRNFormat == true ); QVERIFY( mController->mViewMode == EAudioOnlyView ); QVERIFY( mController->mControlsConfig->mUpdateControlsWithFileDetails == true ); QVERIFY( mController->mControlsConfig->mState == EMPXControlCmdTvOutConnected ); - + + cleanup(); + // // local 3GPP media with video-only - // + // + mFileDetails = new QMPXVideoPlaybackViewFileDetails(); + mFileDetails->mClipName = QString("testClip.3gp"); mFileDetails->mMimeType = QString("video/3gpp"); mFileDetails->mVideoEnabled = true; + mFileDetails->mTvOutConnected = true; + + init(); + mController->mViewMode = EFullScreenView; - mFileDetails->mTvOutConnected = true; QFileInfo videoOnlyFile( mFileDetails->mClipName ); - + mController->addFileDetails( mFileDetails ); QVERIFY( mController->mFileDetails->mRNFormat == false ); @@ -167,16 +177,21 @@ break; } } - + cleanup(); + // // non-local audio-video media, TvOut is not connected // + mFileDetails = new QMPXVideoPlaybackViewFileDetails(); + mFileDetails->mClipName = QString("rtsp:://www.youtube.com/testClip.rm"); mFileDetails->mPlaybackMode = EMPXVideoStreaming; mFileDetails->mTvOutConnected = false; mFileDetails->mAudioEnabled = true; mFileDetails->mTitle = QString("Clip Title"); - + + init(); + mController->addFileDetails( mFileDetails ); QVERIFY( mController->mFileDetails->mRNFormat == true ); @@ -210,11 +225,8 @@ int value = 20000; mController->handleEvent( EMPXControlCmdSetPosition, value ); - - for ( int i = 0 ; i < mController->mControls.count() ; i++ ) - { - QVERIFY( mController->mControls[i]->mPosition == ( value / KPbMilliMultiplier ) ); - } + + QVERIFY( mController->mControls[0]->mPosition == ( value / KPbMilliMultiplier ) ); cleanup(); } @@ -231,11 +243,8 @@ int value = 30000; mController->handleEvent( EMPXControlCmdSetDuration, value ); - - for ( int i = 0 ; i < mController->mControls.count() ; i++ ) - { - QVERIFY( mController->mControls[i]->mDuration == ( value / KPbMilliMultiplier ) ); - } + + QVERIFY( mController->mControls[0]->mDuration == ( value / KPbMilliMultiplier ) ); cleanup(); } @@ -250,7 +259,8 @@ init(); TMPXVideoPlaybackControlCommandIds event = EMPXControlCmdStateChanged; - + mController->mOrientation = Qt::Horizontal; + // // state change (EPbStateInitialising) // @@ -395,10 +405,7 @@ { mController->handleEvent( EMPXControlCmdSetAspectRatio, i ); - for ( int j = 0 ; j < mController->mControls.count() ; j++ ) - { - QVERIFY( mController->mControls[j]->mAspectRatio == i ); - } + QVERIFY( mController->mControls[0]->mAspectRatio == i ); } cleanup(); @@ -417,10 +424,7 @@ mController->handleEvent( EMPXControlCmdSetDownloadSize, value ); - for ( int i = 0 ; i < mController->mControls.count() ; i++ ) - { - QVERIFY( mController->mControls[i]->mDownloadSize == value ); - } + QVERIFY( mController->mControls[0]->mDownloadSize == value ); cleanup(); } @@ -437,11 +441,8 @@ int value = 55; mController->handleEvent( EMPXControlCmdDownloadUpdated, value ); - - for ( int i = 0 ; i < mController->mControls.count() ; i++ ) - { - QVERIFY( mController->mControls[i]->mDownloadPosition == value ); - } + + QVERIFY( mController->mControls[0]->mDownloadPosition == value ); cleanup(); } @@ -458,11 +459,8 @@ int value = 60; mController->handleEvent( EMPXControlCmdDownloadComplete, value ); - - for ( int i = 0 ; i < mController->mControls.count() ; i++ ) - { - QVERIFY( mController->mControls[i]->mDownloadPosition == value ); - } + + QVERIFY( mController->mControls[0]->mDownloadPosition == value ); cleanup(); } @@ -1072,16 +1070,12 @@ // emit signal, this will in turns invoke mController handleOrientationChanged() slot // mController->mOrientation = Qt::Vertical; + mController->mState = EPbStatePlaying; emit commandSignal( Qt::Horizontal ); - - // - // verify command EMPXPbvCmdClose has been issued - // + QVERIFY( mController->mOrientation == Qt::Horizontal ); - mController->mState = EPbStatePlaying; - for ( int i = 0 ; i < mController->mControls.count() ; i++ ) { QVERIFY( mController->mControls[i]->mVisibilityState == mController->mState ); @@ -1099,4 +1093,116 @@ cleanup(); } +// ------------------------------------------------------------------------------------------------- +// TestMPXVideoPlaybackControlsController::testslot_handleRNLogoVisibleChanged +// ------------------------------------------------------------------------------------------------- +// +void TestMPXVideoPlaybackControlsController::testslot_handleRNLogoVisibleChanged() +{ + MPX_DEBUG(_L("TestMPXVideoPlaybackControlsController::testslot_handleRNLogoVisibleChanged()") ); + + // + // initialize controlscontroller + // + init(); + + // + // connect signal with controller handleRNLogoVisibleChanged() slot + // + bool res = connect( this, SIGNAL( commandSignal() ), + mController, SLOT( handleRNLogoVisibleChanged() ) ); + + // + // emit signal, this will in turns invoke mController handleRNLogoVisibleChanged() slot + // + emit commandSignal(); + + QVERIFY( mController->mRNLogoTimer->isActive() ); + QVERIFY( mController->mRNLogoTimer->interval() == KMPXRNLogoTimeOut ); + + // + // disconnect signal + // + disconnect( this, SIGNAL( commandSignal() ), + mController, SLOT( handleRNLogoVisibleChanged() ) ); + + // + // clean up + // + cleanup(); +} + +// ------------------------------------------------------------------------------------------------- +// TestMPXVideoPlaybackControlsController::testslot_handleRNLogoTimeout +// ------------------------------------------------------------------------------------------------- +// +void TestMPXVideoPlaybackControlsController::testslot_handleRNLogoTimeout() +{ + MPX_DEBUG(_L("TestMPXVideoPlaybackControlsController::testslot_handleRNLogoTimeout()") ); + + // + // initialize controlscontroller + // + init(); + + if ( ! mController->mRNLogoTimer ) + { + mController->mRNLogoTimer = new QTimer( mController ); + } + + // + // connect signal with controller handleRNLogoTimeout() slot + // + bool res = connect( this, SIGNAL( commandSignal() ), + mController, SLOT( handleRNLogoTimeout() ) ); + + // + // emit signal, this will in turns invoke mController handleRNLogoTimeout() slot + // + emit commandSignal(); + + QVERIFY( ! mController->mRNLogoTimer->isActive() ); + QVERIFY( mController->mControlsConfig->mState == KControlListsUpdated ); + QVERIFY( mViewWrapper->mCommandId == EMPXPbvCmdRealOneBitmapTimeout ); + + // + // disconnect signal + // + disconnect( this, SIGNAL( commandSignal() ), + mController, SLOT( handleRNLogoTimeout() ) ); + + // + // clean up + // + cleanup(); +} + +// ------------------------------------------------------------------------------------------------- +// TestMPXVideoPlaybackControlsController::testIsRNLogoBitmapVisible +// ------------------------------------------------------------------------------------------------- +// +void TestMPXVideoPlaybackControlsController::testIsRNLogoBitmapVisible() +{ + MPX_DEBUG(_L("TestMPXVideoPlaybackControlsController::testIsRNLogoBitmapVisible()")); + + init(); + + QVERIFY( mController->isRNLogoBitmapInControlList() ); + + // + // Remove RN logo from the list + // + for ( int i = 0 ; i < mController->mControls.count() ; i++ ) + { + if( mController->mControls[i]->mControlIndex == EMPXRealLogoBitmap ) + { + mController->mControls.removeAt( i ); + } + } + + QVERIFY( ! mController->isRNLogoBitmapInControlList() ); + + cleanup(); +} + // End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackcontrol.hrh --- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackcontrol.hrh Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackcontrol.hrh Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: % +// Version : %version: 2 % #ifndef MPXVIDEOPLAYBACKCONTROL_HRH_ @@ -57,7 +57,6 @@ // // Bitmaps // - EMPXBlackBitmap, EMPXIndicatorBitmap, EMPXRealLogoBitmap, @@ -89,7 +88,8 @@ EMPXControlCmdSoftKeyPressed, EMPXControlCmdFullScreenViewOpened, EMPXControlCmdDetailsViewOpened, - EMPXControlCmdAudionOnlyViewOpened + EMPXControlCmdAudionOnlyViewOpened, + EMPXControlCmdRemoveRNLogo }; enum TMPXVideoSeekingType diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackfullscreencontrol.h --- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackfullscreencontrol.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackfullscreencontrol.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 1 % +// Version : %version: 2 % @@ -114,7 +114,6 @@ TMPXPlaybackState mState; TMPXPlaybackState mVisibilityState; - protected: QMPXVideoPlaybackControlsController* mController; HbWidget *mControl; TMPXVideoPlaybackControls mControlIndex; diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackcontrolconfiguration.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackcontrolconfiguration.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackcontrolconfiguration.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 1 % +// Version : %version: 2 % @@ -41,7 +41,6 @@ QMPXVideoPlaybackControlsController* controller) : mControlsController( controller ) { - createControlList(); } // ------------------------------------------------------------------------------------------------- @@ -64,17 +63,11 @@ { MPX_DEBUG(_L("QMPXVideoPlaybackControlConfiguration::createControlList()")); - QMPXVideoPlaybackViewFileDetails* fileDetails = mControlsController->fileDetails(); + addControlToList( EMPXBufferingAnimation ); + addControlToList( EMPXStatusPane ); + addControlToList( EMPXRealLogoBitmap ); - if ( fileDetails->mPlaybackMode != EMPXVideoLocal ) - { - // - // if it's not local mode, add branding animation control to show while initializing - // - addControlToList( EMPXBufferingAnimation ); - } - - addControlToList( EMPXStatusPane ); + emit controlListUpdated(); } // ------------------------------------------------------------------------------------------------- @@ -112,8 +105,8 @@ { mState = KControlListUpdated; } - - + + emit controlListUpdated(); } // ------------------------------------------------------------------------------------------------- diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackdocumentloader.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackdocumentloader.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackdocumentloader.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 3 % +// Version : %version: 4 % @@ -178,6 +178,16 @@ MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::appending[HbRatingSlider] to object list") ); mWidgets.append( object ); } + else if ( name == "rnLogoBitmap" ) + { + MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::creating rnLogoBitmap") ); + + object = new HbWidget(); + object->setObjectName( name ); + + MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::appending[rnLogoBitmap] to object list") ); + mWidgets.append( object ); + } return object; } diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h --- a/videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#12 % +// Version : %version: da1mmcf#14 % @@ -35,7 +35,12 @@ #include "mpxvideoplaybackcontrol.hrh" -// Constants +enum TMPXMediaRequestStatus +{ + MediaNotRequested, + MediaRequested, + MediaDelivered +}; // Forward Declarations class MMPXPlaybackUtility; @@ -167,7 +172,7 @@ void RequestMediaL(); - void CreateGeneralPlaybackCommandL( TMPXPlaybackCommand aCmd ); + void CreateGeneralPlaybackCommandL( TMPXPlaybackCommand aCmd, TBool aDoSync = ETrue ); TBool IsAppInFrontL(); @@ -191,9 +196,6 @@ void HandleBufferingStateL(); - void IssuePlayCommandL(); - - /* * Provides the static function for the callback to close the player * Called by CIdle iIdle @@ -252,6 +254,8 @@ void HandleShortPressBackwardL(); + void IssuePlayCommandL(); + protected: // data MMPXPlaybackUtility* iPlaybackUtility; MMPXCollectionUtility* iCollectionUtility; @@ -265,8 +269,8 @@ CMPXVideoPlaybackUserInputHandler* iUserInputHandler; QMPXVideoPlaybackControlsController* iControlsController; - TBool iMediaRequested; - TBool iPlaylistView; + TMPXMediaRequestStatus iMediaRequestStatus; + TBool iPlaylistView; }; #endif // __MPXVIDEOVIEWWRAPPER_H__ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/viewsrc/hbvideoplaybackview.cpp --- a/videoplayback/hbvideoplaybackview/viewsrc/hbvideoplaybackview.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/viewsrc/hbvideoplaybackview.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#10 % +// Version : %version: da1mmcf#11 % @@ -44,6 +44,7 @@ MPX_ENTER_EXIT(_L("HbVideoPlaybackView::HbVideoPlaybackView()")); initializeVideoPlaybackView(); + mSyncClose = false; } // ------------------------------------------------------------------------------------------------- diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp --- a/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#30 % +// Version : %version: da1mmcf#32 % @@ -60,7 +60,7 @@ CMPXVideoViewWrapper::CMPXVideoViewWrapper( HbVideoBasePlaybackView* aView ) : iView( aView ) , iControlsController( NULL ) - , iMediaRequested( false ) + , iMediaRequestStatus( MediaNotRequested ) , iPlaylistView( false ) { } @@ -176,7 +176,7 @@ // TBool CMPXVideoViewWrapper::IsLive() { - return (iFileDetails->mPlaybackMode == EMPXVideoLiveStreaming); + return ( iFileDetails->mPlaybackMode == EMPXVideoLiveStreaming ); } // ------------------------------------------------------------------------------------------------- @@ -192,19 +192,20 @@ // CMPXVideoViewWrapper::CreateGeneralPlaybackCommandL() // ------------------------------------------------------------------------------------------------- // -void CMPXVideoViewWrapper::CreateGeneralPlaybackCommandL( TMPXPlaybackCommand aCmd ) +void CMPXVideoViewWrapper::CreateGeneralPlaybackCommandL( TMPXPlaybackCommand aCmd, TBool aDoSync ) { - MPX_DEBUG(_L("CMPXVideoViewWrapper::CreateGeneralPlaybackCommandL(%d)"), aCmd ); - + MPX_ENTER_EXIT(_L("CMPXVideoBasePlaybackView::CreateGeneralPlaybackCommandL()"), + _L("aCmd = %d, aDoSync, = %d"), aCmd, aDoSync ); + CMPXCommand* cmd = CMPXCommand::NewL(); CleanupStack::PushL( cmd ); - cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue ); + cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, aDoSync ); cmd->SetTObjectValueL( KMPXCommandPlaybackGeneralNoBuffer, ETrue ); cmd->SetTObjectValueL( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral ); cmd->SetTObjectValueL( KMPXCommandPlaybackGeneralType, aCmd ); - iPlaybackUtility->CommandL( *cmd ); + iPlaybackUtility->CommandL( *cmd, this ); CleanupStack::PopAndDestroy( cmd ); } @@ -223,7 +224,8 @@ { case EMPXPbvCmdPlay: { - IssuePlayCommandL(); + MPX_DEBUG(_L("CMPXVideoViewWrapper::HandleCommandL() EPbCmdPlay")); + CreateGeneralPlaybackCommandL( EPbCmdPlay ); break; } case EMPXPbvCmdPause: @@ -236,7 +238,12 @@ { MPX_DEBUG(_L("CMPXVideoViewWrapper::HandleCommandL() EMPXPbvCmdClose")); - CreateGeneralPlaybackCommandL( EPbCmdClose ); + // + // closing playback view occurs: + // - synchronously (mSyncClose=true) for PDL case (when PDL is supported) + // - asynchronously (mSyncClose=false) for all other cases + // + CreateGeneralPlaybackCommandL( EPbCmdClose, iView->mSyncClose ); break; } case EMPXPbvCmdSeekForward: @@ -345,7 +352,7 @@ // the second cmd actually goes to the previous item in the list // iPlaybackUtility->CommandL( EPbCmdPrevious ); - iPlaybackUtility->CommandL( EPbCmdPrevious ); + iPlaybackUtility->CommandL( EPbCmdPrevious ); } break; } @@ -364,6 +371,12 @@ CreateVideoSpecificCmdL( EPbCmdCustomPlay ); break; } + case EMPXPbvCmdRealOneBitmapTimeout: + { + IssuePlayCommandL(); + + break; + } } } @@ -395,9 +408,10 @@ { MPX_ENTER_EXIT(_L("CMPXVideoViewWrapper::RequestMediaL()")); - if ( ! iMediaRequested && iPlaybackUtility->StateL() == EPbStateInitialised ) + if ( iMediaRequestStatus == MediaNotRequested && + iPlaybackUtility->StateL() == EPbStateInitialised ) { - iMediaRequested = ETrue; + iMediaRequestStatus = MediaRequested; // // Request the volume for the controls @@ -433,7 +447,7 @@ specs->SetTObjectValueL(KMPXMediaGeneralExtMediaRedirect, ETrue); - s->MediaL( attrs.Array(), *this, specs); + s->MediaL( attrs.Array(), *this, specs ); CleanupStack::PopAndDestroy( specs ); CleanupStack::PopAndDestroy( &attrs ); @@ -612,7 +626,7 @@ // if ( iPlaybackState != EPbStateNotInitialised ) { - iMediaRequested = EFalse; + iMediaRequestStatus = MediaNotRequested; HandleCommandL( EMPXPbvCmdResetControls ); if ( iFileDetails ) @@ -926,65 +940,30 @@ if ( aError == KErrNone ) { - if ( iFileDetails ) - { - iFileDetails->clearFileDetails(); - } - else + iMediaRequestStatus = MediaDelivered; + + if ( ! iFileDetails ) { iFileDetails = new QMPXVideoPlaybackViewFileDetails(); } - + // // Read in the media data // ParseMetaDataL( aMedia ); // - // Create controls since file details are available + // If RN logo is still visible, wait for timeout of rn logo timer + // If RN logo is not visible, issue play // - if ( iControlsController ) - { - iControlsController->addFileDetails( iFileDetails ); - } - - if ( iFileDetails->mVideoEnabled ) + if ( ! iControlsController->isRNLogoBitmapInControlList() ) { - // - // get window size - // - RWindow *window = iView->getWindow(); - TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) ); - - // - // get window aspect ratio - // if device is in landscape mode, width > height - // if device is in portrait mode, width < height - // - TReal32 width = (TReal32) displayRect.Width(); - TReal32 height = (TReal32) displayRect.Height(); - TReal32 displayAspectRatio = (width > height)? (width / height) : (height / width); - - // - // get new aspect ratio - TInt newAspectRatio = - iDisplayHandler->SetDefaultAspectRatioL( iFileDetails, displayAspectRatio ); - - // - // Setup the display window and issue play command - // - iDisplayHandler->CreateDisplayWindowL( CCoeEnv::Static()->WsSession(), - *(CCoeEnv::Static()->ScreenDevice()), - *window, - displayRect ); - - if ( iControlsController ) - { - iControlsController->handleEvent( EMPXControlCmdSetAspectRatio, newAspectRatio ); - } + IssuePlayCommandL(); } - - CreateGeneralPlaybackCommandL( EPbCmdPlay ); + } + else + { + iMediaRequestStatus = MediaNotRequested; } } @@ -997,13 +976,14 @@ void CMPXVideoViewWrapper::HandleMediaL( const CMPXMedia& aMedia, TInt aError) { MPX_ENTER_EXIT(_L( "CMPXVideoViewWrapper::HandleMediaL()" )); + if ( aMedia.IsSupported( KMPXMediaVideoError ) ) { TInt error = aMedia.ValueTObjectL( KMPXMediaVideoError ); // Reset the controls HandleCommandL( EMPXPbvCmdResetControls ); // Set the iMediaRequested flag to false - iMediaRequested = EFalse; + iMediaRequestStatus = MediaNotRequested; // Reset the playback state to stopped iPlaybackState = EPbStateStopped; // Handle the plugin error @@ -1031,9 +1011,8 @@ // CMPXVideoViewWrapper::HandlePropertyL() // ------------------------------------------------------------------------------------------------- // -void CMPXVideoViewWrapper::HandlePropertyL( TMPXPlaybackProperty aProperty, - TInt aValue, - TInt aError ) +void +CMPXVideoViewWrapper::HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError ) { MPX_DEBUG(_L("CMPXVideoViewWrapper::HandlePropertyL - Error(%d)"), aError ); @@ -1152,16 +1131,6 @@ } // ------------------------------------------------------------------------------------------------- -// CMPXVideoViewWrapper::IssuePlayCommandL -// ------------------------------------------------------------------------------------------------- -// -void CMPXVideoViewWrapper::IssuePlayCommandL() -{ - MPX_ENTER_EXIT(_L("CMPXVideoViewWrapper::IssuePlayCommandL()")); - CreateGeneralPlaybackCommandL( EPbCmdPlay ); -} - -// ------------------------------------------------------------------------------------------------- // CMPXVideoViewWrapper::RetrievePdlInformationL // ------------------------------------------------------------------------------------------------- // @@ -1456,4 +1425,63 @@ iControlsController->updateVideoRectDone(); } +// ------------------------------------------------------------------------------------------------- +// CMPXVideoViewWrapper::IssuePlayCommandL() +// ------------------------------------------------------------------------------------------------- +// +void CMPXVideoViewWrapper::IssuePlayCommandL() +{ + MPX_ENTER_EXIT(_L("CMPXVideoViewWrapper::IssuePlayCommandL()"), + _L("iMediaRequestStatus = %d"), iMediaRequestStatus ); + + if ( iMediaRequestStatus == MediaDelivered ) + { + // + // Create controls since file details are available + // + if ( iControlsController ) + { + iControlsController->addFileDetails( iFileDetails ); + } + + if ( iFileDetails->mVideoEnabled ) + { + // + // get window size + // + RWindow *window = iView->getWindow(); + TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) ); + + // + // get window aspect ratio + // if device is in landscape mode, width > height + // if device is in portrait mode, width < height + // + TReal32 width = (TReal32) displayRect.Width(); + TReal32 height = (TReal32) displayRect.Height(); + TReal32 displayAspectRatio = (width > height)? (width / height) : (height / width); + + // + // get new aspect ratio + TInt newAspectRatio = + iDisplayHandler->SetDefaultAspectRatioL( iFileDetails, displayAspectRatio ); + + // + // Setup the display window and issue play command + // + iDisplayHandler->CreateDisplayWindowL( CCoeEnv::Static()->WsSession(), + *(CCoeEnv::Static()->ScreenDevice()), + *window, + displayRect ); + + if ( iControlsController ) + { + iControlsController->handleEvent( EMPXControlCmdSetAspectRatio, newAspectRatio ); + } + } + + CreateGeneralPlaybackCommandL( EPbCmdPlay ); + } +} + // EOF diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/inc/hbvideobaseplaybackview.h --- a/videoplayback/inc/hbvideobaseplaybackview.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/inc/hbvideobaseplaybackview.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#15 % +// Version : %version: da1mmcf#16 % @@ -108,6 +108,7 @@ QTimer *mTimerForClosingView; bool mActivated; + bool mSyncClose; public: friend class CMPXVideoViewWrapper; diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/group/mpxvideohelixplayback.mmp --- a/videoplayback/videohelix/group/mpxvideohelixplayback.mmp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/group/mpxvideohelixplayback.mmp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 15 % +// Version : %version: 17 % @@ -39,7 +39,6 @@ SOURCE mpxvideoplaybackmode.cpp SOURCE mpxvideofiledetails.cpp SOURCE mpxvideoseeker.cpp -SOURCE mpxvideodlmgrif.cpp SOURCE mpxvideoaccessoryobserver.cpp SOURCE mpxvideoplayerutility.cpp SOURCE mpxvideodrmhelper.cpp @@ -67,7 +66,6 @@ LIBRARY estor.lib LIBRARY flogger.lib LIBRARY playbackhelper.lib -LIBRARY downloadmgr.lib LIBRARY platformenv.lib LIBRARY etel.lib LIBRARY etelmm.lib diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/inc/mpxvideodlmgrif.h --- a/videoplayback/videohelix/inc/mpxvideodlmgrif.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/inc/mpxvideodlmgrif.h Fri May 28 09:45:19 2010 +0300 @@ -15,13 +15,15 @@ * */ -// Version : %version: 10 % +// Version : %version: 12 % + +#ifdef USE_S60_DOWNLOAD_MANAGER #ifndef __MPXVIDEODLMGRIF_H__ #define __MPXVIDEODLMGRIF_H__ -#include +#include #include // @@ -135,6 +137,15 @@ */ TBool IsDownloadPaused(); + /* + * UpdateDownloadSizeL + * + * For DRM protected clips, the download size will be updated using the file handle + * + * @since S60 9.2 + */ + void UpdateDownloadSizeL(); + private: /* * CMPDownloadMgrInterface @@ -220,8 +231,6 @@ void ConvertDMgrStatetoMpxState( TInt32 dmgrState ); - void UpdateDownloadSizeL(); - // // Private Members // Not Owned Data @@ -251,4 +260,6 @@ #endif __MPXVIDEODLMGRIF_H__ +#endif // USE_S60_DOWNLOAD_MANAGER + // End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h --- a/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h Fri May 28 09:45:19 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 28 % +// Version : %version: 29 % #ifndef _CMPXVIDEOPLAYBACKCONTROLLER_H_ @@ -290,7 +290,9 @@ friend class CMPXProgressiveDLPlaybackMode; friend class CMPXVideoSeeker; +#ifdef USE_S60_DOWNLOAD_MANAGER friend class CMPXVideoDlMgrIf; +#endif // USE_S60_DOWNLOAD_MANAGER friend class CMPXVideoAccessoryObserver; friend class CMpxVideoPlayerUtility; friend class CMPXVideoPosterFrameSetter; diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/inc/mpxvideoplaybackmode.h --- a/videoplayback/videohelix/inc/mpxvideoplaybackmode.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/inc/mpxvideoplaybackmode.h Fri May 28 09:45:19 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 16 % +// Version : %version: 19 % #ifndef _CMPXVIDEOPLAYBACKMODE_H_ @@ -29,7 +29,9 @@ #include #include "mpxhelixplaybackplugindefs.h" +#ifdef USE_S60_DOWNLOAD_MANAGER #include "mpxvideodlmgrif.h" +#endif #include "mpxvideo_debug.h" // @@ -79,7 +81,6 @@ virtual void OpenFile64L( const RFile64& aMediaFile ); #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - protected: /* * C++ default constructor @@ -92,15 +93,12 @@ */ virtual void ConstructL( CMPXVideoPlaybackController* aVideoPlaybackCtlr ); - protected: // // Data // CMPXVideoPlaybackController* iVideoPlaybackCtlr; // not owned - CMPXVideoPosterFrameSetter* iPosterFrameSetter; - }; /*******************************************************/ @@ -170,21 +168,49 @@ static CMPXVideoPlaybackMode* NewL( CMPXVideoPlaybackController* aVideoPlaybackCtlr ); virtual ~CMPXProgressiveDLPlaybackMode(); +#ifdef USE_S60_DOWNLOAD_MANAGER + inline virtual TInt GetMode(); void ConnectToDownloadL( CMPXCommand& aCmd ); void HandleOpenComplete(); void GetPdlStatusL( CMPXCommand& aCmd ); void UpdateSeekPosition( TInt64& aPosition ); inline TBool IsDownloadPaused(); + void OpenFileL( const RFile& aMediaFile ); + +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + void OpenFile64L( const RFile64& aMediaFile ); +#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + +#endif // USE_S60_DOWNLOAD_MANAGER private: - void ConstructL( CMPXVideoPlaybackController* aVideoPlaybackCtlr ); +#ifdef USE_S60_DOWNLOAD_MANAGER private: - CMPXVideoDlMgrIf* iDlMgrIf; // owned + CMPXVideoDlMgrIf* iDlMgrIf; // owned +#endif // USE_S60_DOWNLOAD_MANAGER + }; +#ifdef USE_S60_DOWNLOAD_MANAGER + +inline +TInt CMPXProgressiveDLPlaybackMode::GetMode() +{ + MPX_DEBUG(_L("CMPXProgressiveDLPlaybackMode::GetMode()")); + return EMPXVideoProgressiveDownload; +} + +inline +TBool CMPXProgressiveDLPlaybackMode::IsDownloadPaused() +{ + return iDlMgrIf->IsDownloadPaused(); +} + +#endif // USE_S60_DOWNLOAD_MANAGER + // INLINE METHODS inline @@ -217,22 +243,10 @@ } inline -TInt CMPXProgressiveDLPlaybackMode::GetMode() -{ - MPX_DEBUG(_L("CMPXProgressiveDLPlaybackMode::GetMode()")); - return EMPXVideoProgressiveDownload; -} - -inline TBool CMPXVideoPlaybackMode::IsDownloadPaused() { return EFalse; } -inline -TBool CMPXProgressiveDLPlaybackMode::IsDownloadPaused() -{ - return iDlMgrIf->IsDownloadPaused(); -} #endif //_CMPXVIDEOPLAYBACKMODE_H_ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/src/mpxvideodlmgrif.cpp --- a/videoplayback/videohelix/src/mpxvideodlmgrif.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/src/mpxvideodlmgrif.cpp Fri May 28 09:45:19 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 23 % +// Version : %version: 25 % #include @@ -95,7 +95,6 @@ } } - void CMPXVideoDlMgrIf::ConnectToDownloadL( CMPXCommand& aCmd ) { MPX_ENTER_EXIT(_L("CMPXVideoDlMgrIf::ConnectToDownloadL()")); @@ -120,13 +119,14 @@ // // A new download id has been sent. Reset member variables // - iMoveNeeded = EFalse; - iCurrentDl = NULL; - iDlId = downloadId; - iPlayerOpened = EFalse; - iDlTotalSize = 0; + iMoveNeeded = EFalse; + iCurrentDl = NULL; + iDownloadState = EPbDlStateDownloadCompleted; + iDlId = downloadId; + iPlayerOpened = EFalse; + iDlTotalSize = 0; iDownloadProgress = 0; - iCodDownload = EFalse; + iCodDownload = EFalse; if ( iDlMgrConnected ) { @@ -414,11 +414,6 @@ // error = HandleCustomCommand( EMMFROPControllerSetDownloadSize, iDownloadProgress ); } - - // - // Update download size for DRM protected clips - // - MPX_TRAPD( updateError, UpdateDownloadSizeL() ); } } } @@ -658,9 +653,19 @@ // TReal CMPXVideoDlMgrIf::GetDownloadRatio() { - TReal downloadRatio = (TReal)iDownloadProgress / (TReal)iDlTotalSize; + TReal downloadRatio = 0.0; + + if ( iDownloadState == EPbDlStateDownloadCompleted ) + { + downloadRatio = 100.0; + } + else + { + downloadRatio = (TReal)iDownloadProgress / (TReal)iDlTotalSize; + } + MPX_DEBUG(_L("CMPXVideoDlMgrIf::GetDownloadRatio(%f)"), downloadRatio); - + return downloadRatio; } @@ -671,9 +676,7 @@ TBool CMPXVideoDlMgrIf::IsDownloadPaused() { TBool paused = ( iDownloadState == EPbDlStateDownloadPaused ); - - MPX_DEBUG(_L("CMPXVideoDlMgrIf::GetDownloadRatio(%d)"), paused); - + MPX_DEBUG(_L("CMPXVideoDlMgrIf::IsDownloadPaused(%d)"), paused); return paused; } diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/src/mpxvideoplaybackmode.cpp --- a/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp Fri May 28 09:45:19 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 29 % +// Version : %version: 32 % // @@ -70,7 +70,7 @@ CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode() { MPX_DEBUG(_L("CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode()")); - + if ( iPosterFrameSetter ) { delete iPosterFrameSetter; @@ -223,6 +223,12 @@ MPX_TRAPD( err, iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ) ); } + else if ( iVideoPlaybackCtlr->IsKeyLocked() && + iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) + { + // playback not allowed for the clip having video if keylock is true + // Let playAllowed remain false + } else { playAllowed = ETrue; @@ -287,7 +293,7 @@ // ------------------------------------------------------------------------------------------------ void CMPXVideoPlaybackMode::HandleFrameReady(TInt /*aError*/) { - MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()")); + MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()")); } //************************************************************************************************// // CMPXLocalPlaybackMode @@ -311,7 +317,7 @@ void CMPXLocalPlaybackMode::HandleSetPosterFrame() { MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleSetPosterFrame()")); - + // create poster frame setter if it does not already exist if ( ! iPosterFrameSetter ) { @@ -321,13 +327,13 @@ if ( iPosterFrameSetter ) { iPosterFrameSetter->RequestPosterFrame(); - } + } } void CMPXLocalPlaybackMode::HandleFrameReady(TInt aError) { - MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()")); - + MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()")); + iPosterFrameSetter->HandlePosterFrameReady(aError); } @@ -423,6 +429,12 @@ MPX_TRAPD(err, iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError )); } + else if ( iVideoPlaybackCtlr->IsKeyLocked() && + iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) + { + // playback not allowed for the clip having video if keylock is true + // Let playAllowed remain false + } else { MPX_TRAPD( err, @@ -557,23 +569,31 @@ { iVideoPlaybackCtlr = aVideoPlaybackCtlr; +#ifdef USE_S60_DOWNLOAD_MANAGER // // Create the Download Mgr Interface // iDlMgrIf = CMPXVideoDlMgrIf::NewL( iVideoPlaybackCtlr ); +#endif // USE_S60_DOWNLOAD_MANAGER + } CMPXProgressiveDLPlaybackMode::~CMPXProgressiveDLPlaybackMode() { MPX_DEBUG(_L("CMPXProgressiveDLPlaybackMode::~CMPXProgressiveDLPlaybackMode()")); +#ifdef USE_S60_DOWNLOAD_MANAGER if ( iDlMgrIf ) { delete iDlMgrIf; iDlMgrIf = NULL; } +#endif // USE_S60_DOWNLOAD_MANAGER + } +#ifdef USE_S60_DOWNLOAD_MANAGER + // ------------------------------------------------------------------------------------------------ // CMPXProgressiveDLPlaybackMode::ConnectToDownloadL() // ------------------------------------------------------------------------------------------------ @@ -637,4 +657,30 @@ KErrNone ); } +// ------------------------------------------------------------------------------------------------ +// CMPXProgressiveDLPlaybackMode::OpenFileL() +// ------------------------------------------------------------------------------------------------ +void CMPXProgressiveDLPlaybackMode::OpenFileL( const RFile& aMediaFile ) +{ + MPX_ENTER_EXIT(_L("CMPXProgressiveDLPlaybackMode::OpenFileL()")); + + iDlMgrIf->UpdateDownloadSizeL(); + CMPXVideoPlaybackMode::OpenFileL( aMediaFile ); +} + +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API +// ------------------------------------------------------------------------------------------------ +// CMPXProgressiveDLPlaybackMode::OpenFile64L() +// ------------------------------------------------------------------------------------------------ +void CMPXProgressiveDLPlaybackMode::OpenFile64L( const RFile64& aMediaFile ) +{ + MPX_ENTER_EXIT(_L("CMPXProgressiveDLPlaybackMode::OpenFile64L( RFile64 )")); + + iDlMgrIf->UpdateDownloadSizeL(); + CMPXVideoPlaybackMode::OpenFile64L( aMediaFile ); +} +#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + +#endif // USE_S60_DOWNLOAD_MANAGER + // End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/src/mpxvideoplaybackstate.cpp --- a/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp Fri May 28 09:45:19 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 43 % +// Version : %version: 44 % // @@ -1795,7 +1795,7 @@ if ( aError == KErrNone ) { - if ( iVideoPlaybackCtlr->iAppInForeground ) + if ( iVideoPlaybackCtlr->iPlaybackMode->CanPlayNow() ) { iVideoPlaybackCtlr->ChangeState( EMPXVideoPlaying ); diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg Fri May 28 09:45:19 2010 +0300 @@ -54,6 +54,7 @@ ERFile 1 ERFile64 0 +EMPXVideoLocal 0 [Enddefine] @@ -883,3 +884,32 @@ delete test pause 1000 [Endtest] + +[Test] +title 61. InitialiseL link via 32-bit file handle +create videohelixtest test +test InitializeStreamingWithSdpFileHandleL ERFile 60000 10 sdp_test.sdp KErrNone KErrNone KErrNone +waittestclass test +delete test +pause 1000 +[Endtest] + +[Test] +title 62. InitialiseL link via 64-bit file handle +create videohelixtest test +test InitializeStreamingWithSdpFileHandleL ERFile64 60000 10 sdp_test.sdp KErrNone KErrNone KErrNone +waittestclass test +delete test +pause 1000 +[Endtest] + +[Test] +title 63. Retrieve FileName and playback mode -- Custom Commands EPbCmdInitView +create videohelixtest test +test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone +waittestclass test +test RetrieveFileNameAndModeL vhpp_test.3gp EMPXVideoLocal +pause 1000 +delete test +pause 1000 +[Endtest] diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/tsrc/ut_videohelixtest/group/videohelixtest.mmp --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/group/videohelixtest.mmp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/group/videohelixtest.mmp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 9 % +// Version : %version: 11 % @@ -45,7 +45,6 @@ SOURCE videohelixtestbody.cpp SOURCE timeoutcontroller.cpp SOURCE mpxvideoplayerutility_stub.cpp -SOURCE dlmgr_stub.cpp SOURCE mpxvideoregion.cpp SOURCE stifutilities.cpp SOURCE mediarecognizer_stub.cpp @@ -54,7 +53,6 @@ SOURCE tnmgr_stub.cpp SOURCEPATH ../../../src -SOURCE mpxvideodlmgrif.cpp SOURCE mpxvideofiledetails.cpp SOURCE mpxvideohelixplayback.cpp SOURCE mpxvideoplaybackcontroller.cpp diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/tsrc/ut_videohelixtest/inc/dlmgr_stub.h --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/dlmgr_stub.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/dlmgr_stub.h Fri May 28 09:45:19 2010 +0300 @@ -15,8 +15,9 @@ * */ -// Version : %version: 4 % +// Version : %version: 5 % +#ifdef USE_S60_DOWNLOAD_MANAGER #ifndef __RHTTPDOWNLOADMGRAPIEXT_H__ #define __RHTTPDOWNLOADMGRAPIEXT_H__ @@ -188,3 +189,4 @@ #endif // __RHTTPDOWNLOADMGRAPIEXT_H__ +#endif // USE_S60_DOWNLOAD_MANAGER diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 14 % +// Version : %version: e003sa33#15 % #ifndef __VHPPTESTCASE_H__ @@ -172,6 +172,8 @@ virtual TInt InitializeWithPositionL( CStifItemParser& aItem ); virtual TInt InitializeLinkWithPositionL( CStifItemParser& aItem ); virtual TInt InitializeHandleWithPositionL( CStifItemParser& aItem ); + virtual TInt InitializeStreamingWithSdpFileHandleL( CStifItemParser& aItem ); + virtual TInt RetrieveFileNameAndModeL( CStifItemParser& aItem ); // --------------------------------------------------------------------- // Helper Functions diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/tsrc/ut_videohelixtest/src/tnmgr_stub.cpp --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/tnmgr_stub.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/tnmgr_stub.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 1 % +// Version : %version: 2 % #include #include "tnmgr_stub.h" @@ -42,7 +42,7 @@ MPX_ENTER_EXIT(_L("CThumbnailManager::CThumbnailManager() - stub impl")); } -TThumbnailRequestId CThumbnailManager::SetThumbnailL( CThumbnailObjectSource& aObjectSource ) +TThumbnailRequestId CThumbnailManager::SetThumbnailL( CThumbnailObjectSource& /* aObjectSource */ ) { MPX_ENTER_EXIT(_L("CThumbnailManager::SetThumbnailL() - stub impl")); return 0; @@ -63,7 +63,7 @@ return self; } -CThumbnailObjectSource::CThumbnailObjectSource( CFbsBitmap* aBitmap, const TDesC& aUri ) +CThumbnailObjectSource::CThumbnailObjectSource( CFbsBitmap* /* aBitmap */ , const TDesC& /* aUri */ ) { } diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 23 % +// Version : %version: e003sa33#24.1.1 % // [INCLUDE FILES] - do not remove @@ -42,6 +42,7 @@ #include "mpxmediavideodefs.h" #include "mpxvideo_debug.h" #include "mpxvideoplayerutility_stub.h" +#include "mpxhelixplaybackplugindefs.h" #ifdef __WINSCW__ _LIT( KVideoTestPath, "c:\\data\\Videos\\" ); @@ -118,7 +119,10 @@ ENTRY ("InitializeWithPositionL", CVHPPTestClass::InitializeWithPositionL), ENTRY ("InitializeLinkWithPositionL", CVHPPTestClass::InitializeLinkWithPositionL), - ENTRY ("InitializeHandleWithPositionL", CVHPPTestClass::InitializeHandleWithPositionL) + ENTRY ("InitializeHandleWithPositionL", CVHPPTestClass::InitializeHandleWithPositionL), + ENTRY ( "InitializeStreamingWithSdpFileHandleL", + CVHPPTestClass::InitializeStreamingWithSdpFileHandleL ), + ENTRY ( "RetrieveFileNameAndModeL", CVHPPTestClass::RetrieveFileNameAndModeL ) // // ADD NEW ENTRIES HERE @@ -1142,6 +1146,10 @@ MPX_ENTER_EXIT(_L("CVHPPTestClass::ConnectToDownloadL()")); iLog->Log(_L("CVHPPTestClass::ConnectToDownloadL()")); + TInt err = KErrNone; + +#ifdef USE_S60_DOWNLOAD_MANAGER + iDlMgrTester = CDlMgrTestClass::NewL(); iDlMgrTester->AddStifObserver( this ); @@ -1152,7 +1160,7 @@ // // Read in the download id and filename // - TInt err = aItem.GetNextInt( dlId ); + err = aItem.GetNextInt( dlId ); if ( err == KErrNone ) { @@ -1188,7 +1196,17 @@ CleanupStack::PopAndDestroy( cmd ); } } - + +#else // USE_S60_DOWNLOAD_MANAGER + + // suppress build warning + MPX_DEBUG(_L("CVHPPTestClass::ConnectToDownloadL() : parsing type = %d"), aItem.ParsingType()); + + // Signal TestScripter to continue from waittestclass + Signal(); + +#endif // USE_S60_DOWNLOAD_MANAGER + return err; } @@ -1202,6 +1220,8 @@ MPX_ENTER_EXIT(_L("CVHPPTestClass::SendPdlCustomCommandL"), _L("aCustomCmd = %d"), aCustomCmd ); +#ifdef USE_S60_DOWNLOAD_MANAGER + CMPXCommand* cmd = CMPXCommand::NewL(); CleanupStack::PushL( cmd ); @@ -1212,6 +1232,14 @@ iPlaybackPlugin->CommandL( *cmd ); CleanupStack::PopAndDestroy( cmd ); + +#else // USE_S60_DOWNLOAD_MANAGER + + // Signal TestScripter to continue from waittestclass + Signal(); + +#endif // USE_S60_DOWNLOAD_MANAGER + } // ----------------------------------------------------------------------------- @@ -1224,6 +1252,8 @@ MPX_ENTER_EXIT(_L("CVHPPTestClass::PauseDownloadL()")); iLog->Log(_L("CVHPPTestClass::PauseDownloadL()")); +#ifdef USE_S60_DOWNLOAD_MANAGER + TCallbackEvent* event = new TCallbackEvent; event->iEvent = EPDownloadStateChanged; @@ -1233,7 +1263,14 @@ AddExpectedEvent( event ); iDlMgrTester->PauseDownload(); - + +#else // USE_S60_DOWNLOAD_MANAGER + + // Signal TestScripter to continue from waittestclass + Signal(); + +#endif // USE_S60_DOWNLOAD_MANAGER + return KErrNone; } @@ -1247,9 +1284,13 @@ MPX_ENTER_EXIT(_L("CVHPPTestClass::ResumeDownloadL()")); iLog->Log(_L("CVHPPTestClass::ResumeDownloadL()")); + TInt err = KErrNone; + +#ifdef USE_S60_DOWNLOAD_MANAGER + TInt dlSize; - TInt err = aItem.GetNextInt( dlSize ); + err = aItem.GetNextInt( dlSize ); if ( err == KErrNone ) { @@ -1273,7 +1314,17 @@ iDlMgrTester->ResumeDownload(); } - + +#else // USE_S60_DOWNLOAD_MANAGER + + // suppress build warning + MPX_DEBUG(_L("CVHPPTestClass::ResumeDownloadL() : parsing type = %d"), aItem.ParsingType()); + + // Signal TestScripter to continue from waittestclass + Signal(); + +#endif // USE_S60_DOWNLOAD_MANAGER + return err; } @@ -1287,6 +1338,8 @@ MPX_ENTER_EXIT(_L("CVHPPTestClass::CancelDownloadL()")); iLog->Log(_L("CVHPPTestClass::CancelDownloadL()")); +#ifdef USE_S60_DOWNLOAD_MANAGER + TCallbackEvent* event = new TCallbackEvent; event->iEvent = EPDownloadStateChanged; @@ -1297,6 +1350,13 @@ iDlMgrTester->CancelDownload(); +#else // USE_S60_DOWNLOAD_MANAGER + + // Signal TestScripter to continue from waittestclass + Signal(); + +#endif // USE_S60_DOWNLOAD_MANAGER + return KErrNone; } @@ -1310,6 +1370,10 @@ MPX_ENTER_EXIT(_L("CVHPPTestClass::RetrievePdlStatusL()")); iLog->Log(_L("CVHPPTestClass::RetrievePdlStatusL()")); + TInt err = KErrNone; + +#ifdef USE_S60_DOWNLOAD_MANAGER + TInt pdlState; TInt expectedPdlState; TInt downloadedBytes; @@ -1320,7 +1384,7 @@ // // Read in the expected download data // - TInt err = aItem.GetNextInt( expectedPdlState ); + err = aItem.GetNextInt( expectedPdlState ); if ( err == KErrNone ) { @@ -1368,6 +1432,16 @@ CleanupStack::PopAndDestroy( cmd ); } +#else // USE_S60_DOWNLOAD_MANAGER + + // suppress build warning + MPX_DEBUG(_L("CVHPPTestClass::RetrievePdlStatusL() : parsing type = %d"), aItem.ParsingType()); + + // Signal TestScripter to continue from waittestclass + Signal(); + +#endif // USE_S60_DOWNLOAD_MANAGER + return err; } @@ -1548,6 +1622,8 @@ void CVHPPTestClass::ProcessEvent( TCallbackEvent* aCallback ) { + MPX_ENTER_EXIT(_L("CVHPPTestClass::ProcessEvent")); + if ( iExpectedCallbackArray->Count() > 0 ) { TCallbackEvent* expectedCallback = (*iExpectedCallbackArray)[0]; @@ -2352,4 +2428,164 @@ return err; } +TInt +CVHPPTestClass::InitializeStreamingWithSdpFileHandleL( CStifItemParser& aItem ) +{ + MPX_ENTER_EXIT(_L("CVHPPTestClass::InitializeStreamingWithSdpFileHandleL()")); + iLog->Log(_L("CVHPPTestClass::InitializeStreamingWithSdpFileHandleL()")); + + TInt duration; + TInt volumeSteps; + TInt fileHandle32; + + TInt err = aItem.GetNextInt( fileHandle32 ); + + if ( err == KErrNone ) + { + +#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + // + // set RFile as default if the 64-bit flag is not defined + // + fileHandle32 = ETrue; +#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + + err = aItem.GetNextInt( duration ); + + if ( err == KErrNone ) + { + // + // We will always get an Init Complete message out + // + TCallbackEvent* event = new TCallbackEvent; + + event->iEvent = EPInitialised; + event->iData = duration; + event->iError = KErrNone; + + AddExpectedEvent( event ); + + // + // read number of volume steps + // + err = aItem.GetNextInt( volumeSteps ); + + if ( err == KErrNone ) + { + // + // set volume steps + // + SetVolumeSteps( volumeSteps ); + + TBuf<120> fullPath; + err = ReadFileInitializationParameters( aItem, fullPath ); + + if ( err == KErrNone ) + { + PreparePluginL(); + + MPX_DEBUG( _L("Initialize the Plugin: link = %S"), &fullPath ); + iLog->Log( _L("Initialize the Plugin: link = %S"), &fullPath ); + + // + // Extract the streaming link from the ram file and + // Initalize the Plugin with the file handle and an access point + // + RFs fs; + TInt error = fs.Connect(); + + if ( fileHandle32 ) + { + RFile file; + error = file.Open( fs, fullPath, EFileRead | EFileShareAny ); + + MPX_DEBUG( _L("Initialize the Plugin: file open error = %d"), + error ); + + User::LeaveIfError( error ); + + iPlaybackPlugin->InitStreamingL( file, 11 ); + file.Close(); + } + #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + else + { + RFile64 file64; + error = file64.Open( fs, fullPath, EFileRead | EFileShareAny ); + + MPX_DEBUG( _L("Initialize the Plugin: file open error = %d"), + error ); + + User::LeaveIfError( error ); + + iPlaybackPlugin->InitStreaming64L( file64, 11 ); + file64.Close(); + } +#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + + fs.Close(); + } + } + } + } + return err; +} + +TInt +CVHPPTestClass::RetrieveFileNameAndModeL( CStifItemParser& aItem ) +{ + MPX_ENTER_EXIT( _L("CVHPPTestClass::RetrieveFileNameAndModeL()") ); + iLog->Log( _L("CVHPPTestClass::RetrieveFileNameAndModeL()") ); + + TBuf<120> fullPath; + TPtrC fileName; + TInt err; + + err = aItem.GetNextString( fileName ); + + if ( err == KErrNone ) + { + // + // Build the full path to the file + // + fullPath.Append( KVideoTestPath ); + fullPath.Append( fileName ); + + TInt mode; + err = aItem.GetNextInt( mode); + + if ( err == KErrNone ) + { + CMPXCommand* cmd = CMPXCommand::NewL(); + CleanupStack::PushL( cmd ); + + cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue ); + cmd->SetTObjectValueL( KMPXCommandGeneralId, + KMPXMediaIdVideoPlayback ); + cmd->SetTObjectValueL( KMPXMediaVideoPlaybackCommand, EPbCmdInitView ); + + iPlaybackPlugin->CommandL( *cmd ); + + TPtrC clipName( cmd->ValueText( KMPXMediaVideoPlaybackFileName ) ); + TMPXVideoMode playbackMode = (TMPXVideoMode) cmd->ValueTObjectL( KMPXMediaVideoMode ); + + MPX_DEBUG( _L(" Expected Data: filename = %S, playbackmode= %d" ), + &fullPath, mode ); + + MPX_DEBUG( _L(" Retrieved Data: filename = %S, playbackmode= %d"), + &clipName, playbackMode ); + + if ( fullPath.Compare( clipName) != 0 || mode != playbackMode ) + { + err = KErrGeneral; + MPX_DEBUG( _L(" err = %d"), err ); + } + + CleanupStack::PopAndDestroy( cmd ); + } + } + + return err; +} + // EOF diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/bwins/videoplayerengineu.def --- a/videoplayerapp/bwins/videoplayerengineu.def Fri May 14 15:14:51 2010 +0300 +++ b/videoplayerapp/bwins/videoplayerengineu.def Fri May 28 09:45:19 2010 +0300 @@ -51,4 +51,6 @@ ?setCurrentView@QVideoPlayerEngine@@AAEXXZ @ 50 NONAME ; void QVideoPlayerEngine::setCurrentView(void) ?sortRole@VideoServices@@QBEHXZ @ 51 NONAME ; int VideoServices::sortRole(void) const ?isPlayServiceInvoked@QVideoPlayerEngine@@AAE_NXZ @ 52 NONAME ; bool QVideoPlayerEngine::isPlayServiceInvoked(void) + ?shouldActivateCollectionView@QVideoPlayerEngine@@AAE_NXZ @ 53 NONAME ; bool QVideoPlayerEngine::shouldActivateCollectionView(void) + ?shouldExit@QVideoPlayerEngine@@AAE_NXZ @ 54 NONAME ; bool QVideoPlayerEngine::shouldExit(void) diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/eabi/videoplayerengineu.def --- a/videoplayerapp/eabi/videoplayerengineu.def Fri May 14 15:14:51 2010 +0300 +++ b/videoplayerapp/eabi/videoplayerengineu.def Fri May 28 09:45:19 2010 +0300 @@ -51,4 +51,6 @@ _ZN18QVideoPlayerEngine14setCurrentViewEv @ 50 NONAME _ZNK13VideoServices8sortRoleEv @ 51 NONAME _ZN18QVideoPlayerEngine20isPlayServiceInvokedEv @ 52 NONAME + _ZN18QVideoPlayerEngine10shouldExitEv @ 53 NONAME + _ZN18QVideoPlayerEngine28shouldActivateCollectionViewEv @ 54 NONAME diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/inc/videoplayerengine.h --- a/videoplayerapp/inc/videoplayerengine.h Fri May 14 15:14:51 2010 +0300 +++ b/videoplayerapp/inc/videoplayerengine.h Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 13 % +// Version : %version: 14 % #ifndef VIDEOPLAYERENGINE_H #define VIDEOPLAYERENGINE_H @@ -81,7 +81,11 @@ void setCurrentView(); - bool isPlayServiceInvoked(); + bool isPlayServiceInvoked(); + + bool shouldExit(); + + bool shouldActivateCollectionView(); private: bool mIsService; diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/resources/service_conf.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/resources/service_conf.xml Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,44 @@ + + + videoplayer + No path + Video services + + IVideoFetch + 1.0 + Interface to fetch video URI + Video Fetcher + + + com.nokia.symbian.IVideoFetch + 1.0 + Interface to fetch video URI + + + IVideoBrowse + 1.0 + Interface to browse categorized video content + Video Browse + + + com.nokia.symbian.IVideoBrowse + 1.0 + Interface to browse categorized video content + + + IVideoView + 1.0 + Interface to play a video + Video View + + + com.nokia.symbian.IVideoView + 1.0 + Interface to play a video + + + com.nokia.symbian.IFileView + 1.0 + Interface for playing video given a QFile + + \ No newline at end of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/rom/videoplayer.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/rom/videoplayer.iby Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: videoplayer.iby +* +*/ + + +#ifndef __VIDEOPLAYER_IBY__ +#define __VIDEOPLAYER_IBY__ + +#include +#include + +S60_APP_EXE(videoplayer) +data=DATAZ_/PRIVATE/10003A3F/import/APPS/videoplayer_reg.rsc private/10003a3f/import/apps/videoplayer_reg.rsc +data=DATAZ_\install\videoplayer_stub.sis system\install\videoplayer_stub.sis + +#endif // __VIDEOPLAYER_IBY__ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/rom/videoplayerresources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/rom/videoplayerresources.iby Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: videoplayerresources.iby +* +*/ + + +#ifndef __VIDEOPLAYERRESOURCES_IBY__ +#define __VIDEOPLAYERRESOURCES_IBY__ + +#include +#include + +S60_APP_RESOURCE(videoplayer) + +data=DATAZ_\QT_TRANSLATIONS_DIR\videos.qm QT_TRANSLATIONS_DIR\videos.qm + +#endif // __VIDEOPLAYERRESOURCES_IBY__ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/sis/create_videoplayer_udeb_sisx.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/sis/create_videoplayer_udeb_sisx.bat Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,21 @@ +rem +rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +rem All rights reserved. +rem This component and the accompanying materials are made available +rem under the terms of "Eclipse Public License v1.0" +rem which accompanies this distribution, and is available +rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +rem +rem Initial Contributors: +rem Nokia Corporation - initial contribution. +rem +rem Contributors: +rem +rem Description: +rem + +REM Make qt videoplayer udeb sisx file (contains hb -libraries) + +call makesis videoplayer_udeb.pkg videoplayer_udeb.sis +call signsis videoplayer_udeb.sis videoplayer_udeb.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key +call del videoplayer_udeb.sis diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/sis/create_videoplayer_urel_sisx.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/sis/create_videoplayer_urel_sisx.bat Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,21 @@ +rem +rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +rem All rights reserved. +rem This component and the accompanying materials are made available +rem under the terms of "Eclipse Public License v1.0" +rem which accompanies this distribution, and is available +rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +rem +rem Initial Contributors: +rem Nokia Corporation - initial contribution. +rem +rem Contributors: +rem +rem Description: +rem + +REM Make qt videoplayer urel sisx file (contains hb -libraries) + +call makesis videoplayer_urel.pkg videoplayer_urel.sis +call signsis videoplayer_urel.sis videoplayer_urel.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key +call del videoplayer_urel.sis diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/sis/videoplayer_stub.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/sis/videoplayer_stub.pkg Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,66 @@ +; +; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "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: +; + +; Language +&EN + +; SIS header: name, uid, version +# {"videoplayer"}, (0x200211FE), 1, 0, 0, TYPE=SA + +; Localised Vendor name +%{"Nokia, Qt Software"} + +; Unique Vendor name +:"Nokia, Qt Software" + +; +; Collection Plugin +; +"" - "z:\sys\bin\vcxmyvideoscollectionplugin.dll" +"" - "z:\resource\plugins\vcxmyvideoscollectionplugin.r*" + +; +; Playback Plugin +; +"" - "z:\sys\bin\mpxvideohelixplayback.dll" +"" - "z:\resource\plugins\mpxvideohelixplayback.r*" + +; +; Video playback view +; +"" - "z:\sys\bin\hbvideoplaybackview.dll" +"" - "z:\sys\bin\hbvideoplaybackviewplugin.dll" +"" - "z:\resource\plugins\hbvideoplaybackviewplugin.r*" + +; +; Collection view and wrapper +; +"" - "z:\sys\bin\videocollectionview.dll" +"" - "z:\resource\plugins\videocollectionview.r*" +"" - "z:\sys\bin\videocollectionwrapper.dll" +"" - "z:\sys\bin\videofiledetailsview.dll" +"" - "z:\resource\plugins\videofiledetailsview.r*" + +; +; Executable and default resource files +; +"" - "z:\sys\bin\videoplayerengine.dll" +"" - "z:\sys\bin\videoplayer.exe" +"" - "z:\resource\apps\videoplayer.r*" +"" - "z:\private\10003a3f\import\apps\videoplayer_reg.r*" +"" - "z:\resource\qt\translations\videos.qm" + + diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/sis/videoplayer_stub.sis Binary file videoplayerapp/videoplayer/sis/videoplayer_stub.sis has changed diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/sis/videoplayer_udeb.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/sis/videoplayer_udeb.pkg Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,64 @@ +; +; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "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: +; + +; Language +&EN + +; SIS header: name, uid, version +#{"videoplayer"},(0x200211FE),1,0,0,TYPE=SA, RU + +; Localised Vendor name +%{"Nokia, Qt Software"} + +; Unique Vendor name +:"Nokia, Qt Software" + +; Dependencies +[0x101F7961],0,0,0,{"S60ProductID"} +[0x102032BE],0,0,0,{"S60ProductID"} +[0x102752AE],0,0,0,{"S60ProductID"} +[0x1028315F],0,0,0,{"S60ProductID"} +(0x2001E61C),4,6,0,{"QtLibs pre-release"} + +; +; Collection Plugin +; +"/epoc32/release/armv5/udeb/vcxmyvideoscollectionplugin.dll" - "!:/sys/bin/vcxmyvideoscollectionplugin.dll" +"/epoc32/data/z/resource/plugins/vcxmyvideoscollectionplugin.rsc" - "!:/resource/plugins/vcxmyvideoscollectionplugin.rsc" + +; +; Playback Plugin +; +"/epoc32/release/armv5/udeb/mpxvideohelixplayback.dll" - "!:/sys/bin/mpxvideohelixplayback.dll" +"/epoc32/data/z/resource/plugins/mpxvideohelixplayback.rsc" - "!:/resource/plugins/mpxvideohelixplayback.rsc" + +; Collection view and wrapper +"/epoc32/release/armv5/udeb/videocollectionview.dll" - "!:/sys/bin/videocollectionview.dll" +"/epoc32/data/z/resource/plugins/videocollectionview.rsc" - "!:/resource/plugins/videocollectionview.rsc" +"/epoc32/release/armv5/udeb/videocollectionwrapper.dll" - "!:/sys/bin/videocollectionwrapper.dll" +"/epoc32/data/z/resource/plugins/videofiledetailsview.rsc" - "!:/resource/plugins/videofiledetailsview.rsc" +"/epoc32/release/armv5/udeb/videofiledetailsview.dll" - "!:/sys/bin/videofiledetailsview.dll" + +; Executable and default resource files +"/epoc32/release/armv5/udeb/videoplayerengine.dll" - "!:/sys/bin/videoplayerengine.dll" +"/epoc32/release/armv5/udeb/videoplayer.exe" - "!:/sys/bin/videoplayer.exe" +"/epoc32/data/z/resource/apps/videoplayer.rsc" - "!:/resource/apps/videoplayer.rsc" +"/epoc32/data/z/private/10003a3f/import/apps/videoplayer_reg.rsc" - "!:/private/10003a3f/import/apps/videoplayer_reg.rsc" +"/epoc32/data/z/resource/qt/translations/videos_en.qm" - "!:/resource/qt/translations/videos.qm" + +"/epoc32/data/z/resource/plugins/hbvideoplaybackviewplugin.rsc" - "!:/resource/plugins/hbvideoplaybackviewplugin.rsc" +"/epoc32/release/armv5/udeb/hbvideoplaybackview.dll" - "!:/sys/bin/hbvideoplaybackview.dll" +"/epoc32/release/armv5/udeb/hbvideoplaybackviewplugin.dll" - "!:/sys/bin/hbvideoplaybackviewplugin.dll" diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/sis/videoplayer_urel.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/sis/videoplayer_urel.pkg Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,64 @@ +; +; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "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: +; + +; Language +&EN + +; SIS header: name, uid, version +#{"videoplayer"},(0x200211FE),1,0,0,TYPE=SA, RU + +; Localised Vendor name +%{"Nokia, Qt Software"} + +; Unique Vendor name +:"Nokia, Qt Software" + +; Dependencies +[0x101F7961],0,0,0,{"S60ProductID"} +[0x102032BE],0,0,0,{"S60ProductID"} +[0x102752AE],0,0,0,{"S60ProductID"} +[0x1028315F],0,0,0,{"S60ProductID"} +(0x2001E61C),4,6,0,{"QtLibs pre-release"} + +; +; Collection Plugin +; +"/epoc32/release/armv5/urel/vcxmyvideoscollectionplugin.dll" - "!:/sys/bin/vcxmyvideoscollectionplugin.dll" +"/epoc32/data/z/resource/plugins/vcxmyvideoscollectionplugin.rsc" - "!:/resource/plugins/vcxmyvideoscollectionplugin.rsc" + +; +; Playback Plugin +; +"/epoc32/release/armv5/urel/mpxvideohelixplayback.dll" - "!:/sys/bin/mpxvideohelixplayback.dll" +"/epoc32/data/z/resource/plugins/mpxvideohelixplayback.rsc" - "!:/resource/plugins/mpxvideohelixplayback.rsc" + +; Collection view and wrapper +"/epoc32/release/armv5/urel/videocollectionview.dll" - "!:/sys/bin/videocollectionview.dll" +"/epoc32/data/z/resource/plugins/videocollectionview.rsc" - "!:/resource/plugins/videocollectionview.rsc" +"/epoc32/release/armv5/urel/videocollectionwrapper.dll" - "!:/sys/bin/videocollectionwrapper.dll" +"/epoc32/data/z/resource/plugins/videofiledetailsview.rsc" - "!:/resource/plugins/videofiledetailsview.rsc" +"/epoc32/release/armv5/urel/videofiledetailsview.dll" - "!:/sys/bin/videofiledetailsview.dll" + +; Executable and default resource files +"/epoc32/release/armv5/urel/videoplayerengine.dll" - "!:/sys/bin/videoplayerengine.dll" +"/epoc32/release/armv5/urel/videoplayer.exe" - "!:/sys/bin/videoplayer.exe" +"/epoc32/data/z/resource/apps/videoplayer.rsc" - "!:/resource/apps/videoplayer.rsc" +"/epoc32/data/z/private/10003a3f/import/apps/videoplayer_reg.rsc" - "!:/private/10003a3f/import/apps/videoplayer_reg.rsc" +"/epoc32/data/z/resource/qt/translations/videos_en.qm" - "!:/resource/qt/translations/videos.qm" + +"/epoc32/data/z/resource/plugins/hbvideoplaybackviewplugin.rsc" - "!:/resource/plugins/hbvideoplaybackviewplugin.rsc" +"/epoc32/release/armv5/urel/hbvideoplaybackview.dll" - "!:/sys/bin/hbvideoplaybackview.dll" +"/epoc32/release/armv5/urel/hbvideoplaybackviewplugin.dll" - "!:/sys/bin/hbvideoplaybackviewplugin.dll" diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/src/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/src/main.cpp Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,80 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Implementation of main.cpp +* +*/ + +// Version : %version: 1 % + + +#include +#include +#include +#include +#include +#include + +#include "videoplayerengine.h" + +int main(int argc, char *argv[]) +{ + HbApplication app(argc, argv); + + // Load the translation file. + QString lang = QLocale::system().name(); + + QTranslator translator; + + bool loaded(false); + + loaded = translator.load( "videos_" + lang, QString("c:/resource/qt/translations") ); + + if (!loaded) + { + translator.load("videos_" + lang, QString("z:/resource/qt/translations") ); + } + + // Install the translator + app.installTranslator(&translator); + + QTranslator translatorCommon; + + loaded = false; + + loaded = translatorCommon.load( "common_" + lang, QString("c:/resource/qt/translations") ); + + if (!loaded) + { + translatorCommon.load("common_" + lang, QString("z:/resource/qt/translations") ); + } + + // Install the common translator + app.installTranslator(&translatorCommon); + + // has the application been launched via XQ Service Framework + bool isService = XQServiceUtil::isService(); + + if (!isService) + { + app.setApplicationName(hbTrId("txt_videos_title_videos")); + } + + HbMainWindow mainWindow( 0, Hb::WindowFlagTransparent ); + mainWindow.setAttribute( Qt::WA_OpaquePaintEvent ); + + QVideoPlayerEngine *engine = new QVideoPlayerEngine(isService); + engine->initialize(); + mainWindow.show(); + return app.exec(); +} diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayer/videoplayer.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayer/videoplayer.pro Fri May 28 09:45:19 2010 +0300 @@ -0,0 +1,78 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "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: Project file for building Videoplayer components +# +# +# Version : %version: 1 % + + +TARGET = videoplayer +CONFIG += hb service +TEMPLATE = app +TRANSLATIONS += videos.ts + +symbian: +{ + TARGET.CAPABILITY = ALL -DRM -TCB + TARGET.EPOCHEAPSIZE = 0x20000 0x1600000 + TARGET.UID3 = 0x200211FE + SKINICON = qtg_large_video_tv.svg + + BLD_INF_RULES.prj_exports += "rom/videoplayer.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videoplayer.iby)" \ + "rom/videoplayerresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(videoplayerresources.iby)" \ + "sis/videoplayer_stub.sis /epoc32/data/z/system/install/videoplayer_stub.sis" +} + +# Service provider specific configuration. +SERVICE.FILE = resources/service_conf.xml +SERVICE.OPTIONS = embeddable +# Service provider specific configuration ends + +INCLUDEPATH += . +INCLUDEPATH += ../inc \ + ../../inc \ + /epoc32/include/mw/hb/hbtools + +LIBS += -lvideoplayerengine.dll \ + -lxqservice.dll \ + -lxqserviceutil.dll + +VPATH += src + +SOURCES += main.cpp + +RSS_RULES += \ +" datatype_list = " \ +" { " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"video/avi\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"video/msvideo\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"application/x-msvideo\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"video/x-pn-realvideo\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"audio/x-pn-realaudio\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"video/vnd.rn-realvideo\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"application/vnd.rn-realmedia\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"application/x-pn-realmedia\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"audio/x-pn-realaudio-plugin\"; }, " \ +" DATATYPE { priority=EDataTypePrioritySystem; type=\"video/x-matroska\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/x-ms-wmv\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/x-ms-asf\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/3gp\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/3gpp2\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/3gpp\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/mp4\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/x-m4v\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"video/mpeg4\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"application/ram\"; }, " \ +" DATATYPE { priority=EDataTypePriorityHigh; type=\"application/sdp\"; } " \ +" }; " \ diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayerapp.pro --- a/videoplayerapp/videoplayerapp.pro Fri May 14 15:14:51 2010 +0300 +++ b/videoplayerapp/videoplayerapp.pro Fri May 28 09:45:19 2010 +0300 @@ -14,10 +14,10 @@ # Description: Project file for building Videoplayer components # # -# Version : %version: 4 % +# Version : %version: 5 % TEMPLATE = subdirs CONFIG += ordered SUBDIRS += videoplayerengine \ - hbvideoplayer + videoplayer diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp --- a/videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 4 % +// Version : %version: ou1cpsw#5 % #include "mpxvideo_debug.h" @@ -59,6 +59,7 @@ TRAPD( err, mUiEngine = CMpxVideoPlayerAppUiEngine::NewL( this ) ); MPX_DEBUG(_L("QMpxVideoPlaybackWrapper::initializePlugins err = %d"), err); + Q_UNUSED(err); } // ------------------------------------------------------------------------------------------------- diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayerengine/src/videoplayerengine.cpp --- a/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#30 % +// Version : %version: da1mmcf#31 % #include @@ -249,57 +249,52 @@ mCurrentViewPlugin = NULL; } - if ( viewType == MpxHbVideoCommon::CollectionView && mCollectionViewPlugin ) + switch ( viewType ) { - if ( mIsService && - ( mVideoServices->currentService() == VideoServices::EPlayback || - mVideoServices->currentService() == VideoServices::EView || - mVideoServices->currentService() == VideoServices::EUriFetcher ) ) + case MpxHbVideoCommon::CollectionView: { - if ( mVideoServices->currentService() == VideoServices::EUriFetcher ) - { - if ( ! mVideoServices->mFetchSelected ) - { - // - // view is in 'fetch' service but 'attach' operation has not been selected, - // therefore, go back to collection view - // - mCurrentViewPlugin = mCollectionViewPlugin; - setCurrentView(); - } - } - else + if ( shouldExit() ) { qApp->quit(); - XQServiceUtil::toBackground( false ); + XQServiceUtil::toBackground( false ); } - } - else - { - mCurrentViewPlugin = mCollectionViewPlugin; - setCurrentView(); - } - } - else if ( viewType == MpxHbVideoCommon::PlaybackView ) - { - if ( ! mPlaybackViewPlugin ) - { - loadPluginAndCreateView( MpxHbVideoCommon::PlaybackView ); + else if ( shouldActivateCollectionView() ) + { + if ( ! mCollectionViewPlugin ) + { + loadPluginAndCreateView( MpxHbVideoCommon::CollectionView ); + } + mCurrentViewPlugin = mCollectionViewPlugin; + setCurrentView(); + } + + break; } - - mCurrentViewPlugin = mPlaybackViewPlugin; - setCurrentView(); - } - else if ( viewType == MpxHbVideoCommon::VideoDetailsView ) - { - if ( ! mFileDetailsViewPlugin ) - { - loadPluginAndCreateView( MpxHbVideoCommon::VideoDetailsView ); - } - - mCurrentViewPlugin = mFileDetailsViewPlugin; - setCurrentView(); - } + case MpxHbVideoCommon::PlaybackView: + { + if ( ! mPlaybackViewPlugin ) + { + loadPluginAndCreateView( MpxHbVideoCommon::PlaybackView ); + } + + mCurrentViewPlugin = mPlaybackViewPlugin; + setCurrentView(); + + break; + } + case MpxHbVideoCommon::VideoDetailsView: + { + if ( ! mFileDetailsViewPlugin ) + { + loadPluginAndCreateView( MpxHbVideoCommon::VideoDetailsView ); + } + + mCurrentViewPlugin = mFileDetailsViewPlugin; + setCurrentView(); + + break; + } + } } // ------------------------------------------------------------------------------------------------- @@ -517,4 +512,47 @@ return result; } +// ------------------------------------------------------------------------------------------------- +// shouldExit() +// ------------------------------------------------------------------------------------------------- +// +bool QVideoPlayerEngine::shouldExit() +{ + bool result = false; + + if ( mIsPlayService ) // play or view service + { + result = true; + } + + MPX_DEBUG(_L("QVideoPlayerEngine::shouldExit() return %d"), result); + + return result; +} + + +// ------------------------------------------------------------------------------------------------- +// shouldActivateCollectionView() +// ------------------------------------------------------------------------------------------------- +// +bool QVideoPlayerEngine::shouldActivateCollectionView() +{ + bool result = true; + + // the only case where collection view should NOT be activated is ... + // if we are in service and that service is fetch and if fetch is selected + // in all other cases collection view should be activated + + if ( mIsService && + mVideoServices->currentService() == VideoServices::EUriFetcher && + mVideoServices->mFetchSelected ) + { + result = false; + } + + MPX_DEBUG(_L("QVideoPlayerEngine::shouldActivateCollectionView() return %d"), result); + + return result; +} + // End of file diff -r ff53afa8ad05 -r f6d44a0cd476 videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/src/testvideoplayerengine.cpp --- a/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/src/testvideoplayerengine.cpp Fri May 14 15:14:51 2010 +0300 +++ b/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/src/testvideoplayerengine.cpp Fri May 28 09:45:19 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#12 % +// Version : %version: da1mmcf#13 % // INCLUDES #include @@ -221,9 +221,9 @@ mTestObject->initialize(); - QVERIFY(mTestObject->mCurrentViewPlugin != 0); - QVERIFY(mTestObject->mPlaybackViewPlugin == 0); - QVERIFY(mTestObject->mCollectionViewPlugin != 0); + QVERIFY(mTestObject->mCurrentViewPlugin == 0); + QVERIFY(mTestObject->mPlaybackViewPlugin != 0); + QVERIFY(mTestObject->mCollectionViewPlugin == 0); QVERIFY(mTestObject->mFileDetailsViewPlugin == 0); QVERIFY(mTestObject->mPlaybackWrapper != 0); QVERIFY(mTestObject->mVideoServices != 0); @@ -231,7 +231,6 @@ QVERIFY(VideoServices::mReferenceCount == 1); QVERIFY(mTestObject->mCollectionViewPlugin != mTestObject->mPlaybackViewPlugin); - QVERIFY(mTestObject->mCollectionViewPlugin != mTestObject->mFileDetailsViewPlugin); cleanup(); @@ -298,9 +297,9 @@ mTestObject->initialize(); - QVERIFY(mTestObject->mCurrentViewPlugin != 0); - QVERIFY(mTestObject->mPlaybackViewPlugin == 0); - QVERIFY(mTestObject->mCollectionViewPlugin != 0); + QVERIFY(mTestObject->mCurrentViewPlugin == 0); + QVERIFY(mTestObject->mPlaybackViewPlugin != 0); + QVERIFY(mTestObject->mCollectionViewPlugin == 0); QVERIFY(mTestObject->mFileDetailsViewPlugin == 0); QVERIFY(mTestObject->mVideoServices != 0); QVERIFY(mTestObject->mIsService == true);