Merge heads.
--- a/inc/mpxvideo_debug.h Tue May 18 11:57:40 2010 +0100
+++ b/inc/mpxvideo_debug.h Wed Jun 23 17:22:59 2010 +0100
@@ -41,7 +41,7 @@
#ifdef _MPX_FILE_LOGGING_
#define FU_DEBUG MPXDebug::FileLog
#else
- #define FU_DEBUG MPXDebug::NullLog
+ #define FU_DEBUG
#endif
#endif
@@ -49,15 +49,6 @@
class MPXDebug
{
public:
- inline static void NullLog( TRefByValue<const TDesC16> /*aFmt*/, ... )
- {
- }
-
- inline static void NullLog( TRefByValue<const TDesC> /*aFunctionName*/,
- TRefByValue<const TDesC16> /*aFmt*/, ... )
- {
- }
-
inline static void FileLog( TRefByValue<const TDesC16> aFmt, ... )
{
VA_LIST list;
@@ -77,8 +68,8 @@
#define MPX_DEBUG TFusionLog::FusionLog
#define MPX_ENTER_EXIT TEnterExitLog _s
#else
- #define MPX_DEBUG MPXDebug::NullLog
- #define MPX_ENTER_EXIT MPXDebug::NullLog
+ #define MPX_DEBUG
+ #define MPX_ENTER_EXIT
#endif
@@ -160,8 +151,13 @@
FU_DEBUG(_KMPXErrorInfo, aErr, MPX_S(__FILE__), __LINE__);\
}
-#define MPX_TRAP(_r, _s) TRAP(_r,_s);MPX_ERROR_LOG(_r);
-#define MPX_TRAPD(_r, _s) TRAPD(_r,_s);MPX_ERROR_LOG(_r);
+#ifdef _DEBUG
+ #define MPX_TRAP(_r, _s) TRAP(_r,_s);MPX_ERROR_LOG(_r);
+ #define MPX_TRAPD(_r, _s) TRAPD(_r,_s);MPX_ERROR_LOG(_r);
+#else // _DEBUG
+ #define MPX_TRAP(_r, _s) TRAP(_r,_s);(_r=_r);
+ #define MPX_TRAPD(_r, _s) TRAPD(_r,_s);(_r=_r);
+#endif // _DEBUG
#endif // __MPXVIDEO_DEBUG_H__
--- a/inc/mpxvideoplayercustomviewmsgconsts.h Tue May 18 11:57:40 2010 +0100
+++ b/inc/mpxvideoplayercustomviewmsgconsts.h Wed Jun 23 17:22:59 2010 +0100
@@ -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__
--- a/inc/videoservices.h Tue May 18 11:57:40 2010 +0100
+++ b/inc/videoservices.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: ou1cpsw#3 %
+// Version : %version: 5 %
#ifndef __VIDEOSERVICES_H__
#define __VIDEOSERVICES_H__
@@ -164,21 +164,61 @@
VideoServiceUriFetch* mServiceUriFetch;
/**
+ * Deprecated VideoServiceUriFetch service instance.
+ */
+ VideoServiceUriFetch* mServiceUriFetchDeprecatedNewService;
+
+ /**
+ * Deprecated VideoServiceUriFetch service instance.
+ */
+ VideoServiceUriFetch* mServiceUriFetchDeprecatedOldService;
+
+ /**
* VideoServicePlay service instance.
*/
VideoServicePlay* mServicePlay;
/**
+ * VideoServicePlay service instance.
+ */
+ VideoServicePlay* mServicePlayDeprecatedNewService;
+
+ /**
+ * VideoServicePlay service instance.
+ */
+ VideoServicePlay* mServicePlayDeprecatedOldService;
+
+ /**
* VideoServiceView service instance.
*/
VideoServiceView* mServiceView;
/**
+ * VideoServiceView service instance.
+ */
+ VideoServiceView* mServiceViewDeprecatedNewService;
+
+ /**
+ * VideoServiceView service instance.
+ */
+ VideoServiceView* mServiceViewDeprecatedOldService;
+
+ /**
* VideoServiceBrowse service instance.
*/
VideoServiceBrowse *mServiceBrowse;
/**
+ * Deprecated VideoServiceBrowse service instance.
+ */
+ VideoServiceBrowse *mServiceBrowseDeprecatedNewService;
+
+ /**
+ * Deprecated VideoServiceBrowse service instance.
+ */
+ VideoServiceBrowse *mServiceBrowseDeprecatedOldService;
+
+ /**
* Pointer of QVideoPlayerEngine.
*/
QVideoPlayerEngine* mEngine;
--- a/layers.sysdef.xml Tue May 18 11:57:40 2010 +0100
+++ b/layers.sysdef.xml Wed Jun 23 17:22:59 2010 +0100
@@ -40,6 +40,12 @@
</layer>
<layer name="unit_test_layer">
+ <module name="videoplayback_tsrc">
+ <unit unitID="vado.videohelix_test" name="videohelix_tsrc" bldFile="&layer_real_source_path;/videoplayback/videohelix/tsrc/ut_videohelixtest/group" mrp=""/>
+ </module>
+ <module name="videocollection_tsrc">
+ <unit unitID="vado.mpxmyvideoscollection_test" name="mpxmyvideoscollection_tsrc" bldFile="&layer_real_source_path;/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group" mrp=""/>
+ </module>
</layer>
</systemModel>
--- a/mediasettings/mediasettingsengine/group/MPSettROPModel.mmp Tue May 18 11:57:40 2010 +0100
+++ b/mediasettings/mediasettingsengine/group/MPSettROPModel.mmp Wed Jun 23 17:22:59 2010 +0100
@@ -16,10 +16,11 @@
-// Version : %version: 5 %
+// Version : %version: 6 %
+#include <data_caging_paths.hrh>
#include <platform_paths.hrh>
TARGET mpsettropmodel.dll
CAPABILITY CAP_ECOM_PLUGIN
@@ -41,7 +42,7 @@
START RESOURCE MPSettingsROPModel.rss
HEADER
TARGET mpsettingsropmodel.rsc
-TARGETPATH resource
+TARGETPATH RESOURCE_FILES_DIR
END
USERINCLUDE .
--- a/mediasettings/mediasettingsengine/rom/mpsettropmodel.iby Tue May 18 11:57:40 2010 +0100
+++ b/mediasettings/mediasettingsengine/rom/mpsettropmodel.iby Wed Jun 23 17:22:59 2010 +0100
@@ -21,8 +21,6 @@
#include <data_caging_paths_for_iby.hrh>
-ECOM_PLUGIN( mpsettropmodel.dll, 101f857b.rsc )
-
-data=DATAZ_\resource\MPSettingsROPModel.rsc resource\MPSettingsROPModel.rsc
+ECOM_PLUGIN( mpsettropmodel.dll, mpsettropmodel.rsc )
#endif // MPSETTROPMODEL_IBY
\ No newline at end of file
--- a/mediasettings/mediasettingsengine/rom/mpsettropmodelrsc.iby Tue May 18 11:57:40 2010 +0100
+++ b/mediasettings/mediasettingsengine/rom/mpsettropmodelrsc.iby Wed Jun 23 17:22:59 2010 +0100
@@ -22,7 +22,7 @@
#include <data_caging_paths_for_iby.hrh>
-data=DATAZ_\APP_RESOURCE_DIR\MPSettingsROPModel.rsc APP_RESOURCE_DIR\MPSettingsROPModel.rsc
+data=DATAZ_\RESOURCE_FILES_DIR\mpsettingsropmodel.rsc RESOURCE_FILES_DIR\mpsettingsropmodel.rsc
#endif // MPSETTROPMODELRSC_IBY
\ No newline at end of file
--- a/videocollection/inc/videocollectiontrace.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/inc/videocollectiontrace.h Wed Jun 23 17:22:59 2010 +0100
@@ -29,11 +29,11 @@
#define DISABLE_TRACE 0
/**
- * 0 = Tracing into RDebug in all builds.
- * 1 = Tracing into RDebug in winscw, file in ARM. (Default)
+ * 0 = Tracing into RDebug in all builds. (Default)
+ * 1 = Tracing into RDebug in winscw, file in ARM.
* 2 = Tracing into file in all builds.
*/
-#define TRACE_OUTPUT 1
+#define TRACE_OUTPUT 0
//-----------------------------------------------------------------------------
// Trace configuration
--- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosalbums.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosalbums.h Wed Jun 23 17:22:59 2010 +0100
@@ -180,6 +180,18 @@
* @param aMdsId MDS ID of the changed video.
*/
void VideoTitleChangedL( TUint32 aMdsId );
+
+ /**
+ * Called when video is added or removed from cache. Adds changed
+ * album indexes to iChangedAlbums.
+ */
+ void VideoAddedOrRemovedFromCacheL( CMPXMedia& video );
+
+ /**
+ * Goes through iChangedAlbums and updates album attributes and adds
+ * changed events.
+ */
+ void UpdateChangedAlbumsL();
protected:
@@ -340,6 +352,13 @@
*/
RArray<TUint32> iMdsOpResultsUint32;
+ /**
+ * When videos are removed or added from cache, the indexes of the
+ * changed albums are stored here. Reason is to calculate new attributes
+ * only once per changed album.
+ */
+ RArray<TInt> iChangedAlbums;
+
};
#endif // VCXMYVIDEOSALBUMS_H
--- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsalbums.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsalbums.h Wed Jun 23 17:22:59 2010 +0100
@@ -359,8 +359,13 @@
* Called from RunL when albums remove completes.
*/
void HandleRemoveAlbumsCompletedL();
+
+ /**
+ * Registers observing to MDS session.
+ */
+ void SetObservingL();
- public:
+ protected:
/**
* From MMdEQueryObserver.
@@ -396,14 +401,12 @@
TObserverNotificationType aType,
const RArray<TMdERelation>& aRelationArray);
-#if 0 //not used
/**
* From MMdERelationObserver
*/
void HandleRelationNotification(CMdESession& aSession,
TObserverNotificationType aType,
const RArray<TItemId>& aRelationIdArray);
-#endif
private:
--- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h Wed Jun 23 17:22:59 2010 +0100
@@ -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();
--- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosopenhandler.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosopenhandler.h Wed Jun 23 17:22:59 2010 +0100
@@ -24,15 +24,6 @@
class CVcxMyVideosMdsDb;
#include "vcxmyvideosmdsdb.h"
-
-enum TVcxItemType
- {
- EVcxItemTypeNone,
- EVcxItemTypeVideo,
- EVcxItemTypeCategory,
- EVcxItemTypeAlbum
- };
-
/**
*/
NONSHARABLE_CLASS( CVcxMyVideosOpenHandler ) : public CBase, public MVcxMyVideosMdsAlbumsObserver
--- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosvideocache.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosvideocache.h Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosalbum.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosalbum.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -294,8 +294,8 @@
//
void CVcxMyVideosAlbum::CalculateAttributesL( TInt aStartIndex )
{
+ TInt videoCount = 0;
TUint32 count = iVideoList.Count();
- iMedia->SetTObjectValueL<TUint32>( KVcxMediaMyVideosCategoryItemCount, count );
TInt newCount = 0;
CMPXMedia* video;
CMPXMedia* latestNewVideo = NULL;
@@ -308,6 +308,7 @@
video = iCollection.iCache->FindVideoByMdsIdL( iVideoList[i].iMdsId, pos );
if ( video )
{
+ videoCount++;
flags = TVcxMyVideosCollectionUtil::FlagsL( *video );
if ( flags & EVcxMyVideosVideoNew )
{
@@ -321,7 +322,7 @@
}
}
}
- iMedia->SetTObjectValueL<TUint32>( KVcxMediaMyVideosCategoryItemCount, count );
+ iMedia->SetTObjectValueL<TUint32>( KVcxMediaMyVideosCategoryItemCount, videoCount );
iMedia->SetTObjectValueL<TUint32>( KVcxMediaMyVideosCategoryNewItemCount, newCount );
if ( latestNewVideo )
{
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosalbums.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosalbums.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -49,6 +49,7 @@
void CVcxMyVideosAlbums::ConstructL()
{
iAlbums.Reset();
+ iChangedAlbums.Reset();
}
// ---------------------------------------------------------------------------
@@ -81,6 +82,7 @@
iMdsOpResults.Close();
iMdsOpResultsUint32.Close();
iRemoveFromAlbumVideos.Close();
+ iChangedAlbums.Close();
}
// ----------------------------------------------------------------------------
@@ -766,4 +768,39 @@
NewVideoFlagChangedL( aMdsId ); // same calculation works for this
}
+// ----------------------------------------------------------------------------
+// CVcxMyVideosAlbums::VideoAddedOrRemovedFromCacheL
+// ----------------------------------------------------------------------------
+//
+void CVcxMyVideosAlbums::VideoAddedOrRemovedFromCacheL( CMPXMedia& aVideo )
+ {
+ TInt count = iAlbums.Count();
+ TUint32 mdsId = TVcxMyVideosCollectionUtil::IdL( aVideo ).iId1;
+ for ( TInt i = 0; i < count; i++ )
+ {
+ if ( iAlbums[i]->BelongsToAlbum( mdsId ) )
+ {
+ if ( iChangedAlbums.Find( i ) == KErrNotFound )
+ {
+ iChangedAlbums.AppendL( i );
+ }
+ }
+ }
+ }
+// ----------------------------------------------------------------------------
+// CVcxMyVideosAlbums::UpdateChangedAlbumsL
+// ----------------------------------------------------------------------------
+//
+void CVcxMyVideosAlbums::UpdateChangedAlbumsL()
+ {
+ TInt count = iChangedAlbums.Count();
+ for ( TInt i = 0; i < count; i++ )
+ {
+ iCollection.iMessageList->AddEventL(
+ TMPXItemId( iAlbums[iChangedAlbums[i]]->iMdsId, KVcxMvcMediaTypeAlbum ),
+ EMPXItemModified, EVcxMyVideosVideoListOrderChanged );
+ iAlbums[iChangedAlbums[i]]->CalculateAttributesL();
+ }
+ iChangedAlbums.Reset();
+ }
// END OF FILE
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosasyncfileoperations.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosasyncfileoperations.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -49,8 +49,6 @@
CVcxMyVideosAsyncFileOperations* CVcxMyVideosAsyncFileOperations::NewL(
CVcxMyVideosCollectionPlugin& aCollection )
{
- MPX_FUNC("CVcxMyVideosAsyncFileOperations::NewL");
-
CVcxMyVideosAsyncFileOperations* self = new (ELeave) CVcxMyVideosAsyncFileOperations(
aCollection );
CleanupStack::PushL(self);
@@ -65,8 +63,6 @@
//
CVcxMyVideosAsyncFileOperations::~CVcxMyVideosAsyncFileOperations()
{
- MPX_FUNC("CVcxMyVideosAsyncFileOperations::~CVcxMyVideosAsyncFileOperations");
-
iOperationIdArray.Close();
iOperationResult.Close();
delete iFileCopier;
@@ -78,11 +74,9 @@
// Constructor.
// ----------------------------------------------------------------------------
//
-CVcxMyVideosAsyncFileOperations::CVcxMyVideosAsyncFileOperations(
- CVcxMyVideosCollectionPlugin& aCollection )
+CVcxMyVideosAsyncFileOperations::CVcxMyVideosAsyncFileOperations( CVcxMyVideosCollectionPlugin& aCollection )
: iCollection( aCollection )
{
- MPX_FUNC("CVcxMyVideosAsyncFileOperations::CVcxMyVideosAsyncFileOperations");
}
// ----------------------------------------------------------------------------
@@ -579,17 +573,11 @@
MPX_DEBUG1("CVcxMyVideosAsyncFileOperations:: Copy succeeded");
if ( iIsMoveOperation )
{
- MPX_DEBUG1("CVcxMyVideosAsyncFileOperations:: move case");
+ MPX_DEBUG1("CVcxMyVideosAsyncFileOperations:: move op: deleting source file");
aErr = BaflUtils::DeleteFile( iCollection.iFs, iSourcePath );
if ( aErr != KErrNone )
{
MPX_DEBUG2("CVcxMyVideosAsyncFileOperations:: delete for source file failed: %d", aErr );
- MPX_DEBUG1("CVcxMyVideosAsyncFileOperations:: deleting target file");
- TInt delErr = BaflUtils::DeleteFile( iCollection.iFs, iTargetPath );
- if ( delErr != KErrNone )
- {
- MPX_DEBUG2("CVcxMyVideosAsyncFileOperations:: delete for target file failed: %d", delErr );
- }
}
}
}
@@ -598,15 +586,21 @@
MPX_DEBUG2("CVcxMyVideosAsyncFileOperations:: CopyFile failed: %d", aErr);
}
- // roll mds and cache back if file operations failed
+ // roll everything back if file operations failed
if ( aErr != KErrNone )
{
if ( iIsMoveOperation )
{
- MPX_DEBUG2("CVcxMyVideosAsyncFileOperations:: move failed %d", aErr );
- MPX_DEBUG1("CVcxMyVideosAsyncFileOperations:: setting media path back and leaving." );
+ MPX_DEBUG2("CVcxMyVideosAsyncFileOperations:: move operation failed %d", aErr );
+ MPX_DEBUG1("CVcxMyVideosAsyncFileOperations:: setting media path back in MDS" );
iMediaForMoveOp->SetTextValueL( KMPXMediaGeneralUri, iSourcePath );
iCollection.SetVideoL( *iMediaForMoveOp );
+ MPX_DEBUG1("CVcxMyVideosAsyncFileOperations:: deleting target file");
+ TInt delErr = BaflUtils::DeleteFile( iCollection.iFs, iTargetPath );
+ if ( delErr != KErrNone )
+ {
+ MPX_DEBUG2("CVcxMyVideosAsyncFileOperations:: delete for target file failed: %d", delErr );
+ }
}
else
{
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -202,11 +202,8 @@
media = videoListArray->AtL( i );
- if ( media->IsSupported( KVcxMediaMyVideosOrigin ) )
- {
- origin = media->ValueTObjectL<TUint8>( 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:
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionplugin.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionplugin.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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,9 +554,11 @@
TMPXItemId( nonVideoIds[i], KVcxMvcMediaTypeAlbum ), aEvent ) );
}
+ iAlbums->UpdateChangedAlbumsL();
+#endif
+
CleanupStack::PopAndDestroy( &nonVideoIds );
-
- iMessageList->SendL();
+ iMessageList->SendL();
}
// ----------------------------------------------------------------------------
@@ -904,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
// ----------------------------------------------------------------------------
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -254,10 +254,19 @@
if ( aVideo.IsSupported( KVcxMediaMyVideosOrigin ) )
{
origin = aVideo.ValueTObjectL<TUint8>( 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;
}
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -50,27 +50,8 @@
void CVcxMyVideosMdsAlbums::ConstructL()
{
GetSchemaDefinitionsL();
- CActiveScheduler::Add( this );
-
- if ( iObserver )
- {
- //ENotifyAdd and ENotifyModify are not supported
- iMdsDb.MdsSessionL().AddRelationItemObserverL( *this, NULL,
- ENotifyRemove, iMdsDb.iNamespaceDef );
-
-#if 0
- // We receive only IDs from here. We need to make query to get
- // relation objects-> slow to use. We use the response from
- // the add operation instead. This way we don't receive
- // add events if someone else adds videos to our albums
- // but the performance is the best possible.
- iMdsDb.MdsSessionL().AddRelationObserverL( *this, NULL,
- ENotifyAdd | ENotifyModify | ENotifyRemove );
-#endif
- }
-
- //TODO: do we need this?
- //iMdsDb.MdsSessionL().AddRelationPresentObserverL();
+ SetObservingL();
+ CActiveScheduler::Add( this );
}
// ---------------------------------------------------------------------------
@@ -160,6 +141,30 @@
}
// ---------------------------------------------------------------------------
+// CVcxMyVideosMdsAlbums::SetObservingL
+// ---------------------------------------------------------------------------
+//
+void CVcxMyVideosMdsAlbums::SetObservingL()
+ {
+ if ( iObserver )
+ {
+ //ENotifyAdd and ENotifyModify are not supported
+ iMdsDb.MdsSessionL().AddRelationItemObserverL( *this, NULL,
+ ENotifyRemove, iMdsDb.iNamespaceDef );
+
+#if 0
+ // We receive only IDs from here. We need to make query to get
+ // relation objects-> slow to use. We use the response from
+ // the add operation instead. This way we don't receive
+ // add events if someone else adds videos to our albums
+ // but the performance is the best possible.
+ iMdsDb.MdsSessionL().AddRelationObserverL( *this, NULL,
+ ENotifyAdd | ENotifyModify | ENotifyRemove );
+#endif
+ }
+ }
+
+// ---------------------------------------------------------------------------
// CVcxMyVideosMdsAlbums::GetAlbumsL
// ---------------------------------------------------------------------------
//
@@ -1037,7 +1042,10 @@
TObserverNotificationType aType,
const RArray<TMdERelation>& aRelationArray)
{
- iObserver->HandleRelationEvent( aType, aRelationArray );
+ if ( iObserver )
+ {
+ iObserver->HandleRelationEvent( aType, aRelationArray );
+ }
}
#if 0
@@ -1054,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");
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -2,7 +2,7 @@
* 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"
+* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
@@ -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()
@@ -233,6 +235,7 @@
if ( iAlbums )
{
iAlbums->GetSchemaDefinitionsL();
+ iAlbums->SetObservingL();
}
}
else
@@ -273,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;
}
@@ -286,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;
@@ -1022,8 +1025,22 @@
//16. ORIGIN, KVcxMediaMyVideosOrigin
if ( aObject.Property( *iOriginPropertyDef, property, 0 ) != KErrNotFound )
{
- aVideo.SetTObjectValueL<TUint8>( KVcxMediaMyVideosOrigin,
- static_cast<CMdEUint8Property*>(property)->Value() );
+ TUint8 origin = static_cast<CMdEUint8Property*>(property)->Value();
+#ifdef VIDEO_COLLECTION_PLUGIN_TB92
+ if( origin != EVcxMyVideosOriginCapturedWithCamera )
+ {
+ origin = EVcxMyVideosOriginOther;
+ }
+#else
+ if ( origin != EVcxMyVideosOriginCapturedWithCamera &&
+ origin != EVcxMyVideosOriginDownloaded
+ )
+ {
+ origin = EVcxMyVideosOriginOther;
+ }
+
+#endif
+ aVideo.SetTObjectValueL<TUint8>( KVcxMediaMyVideosOrigin, origin );
}
//17. DURATION, (KMPXMediaGeneralDuration can't be used since it is TInt
@@ -1572,11 +1589,6 @@
iAudioLanguagePropertyDef = &(iVideoObjectDef->GetPropertyDefL(
KVcxAudioLanguagePropertyName )); //14
-
-#if 0
- iDownloadIdPropertyDef = &(iVideoObjectDef->GetPropertyDefL(
- KVcxDownloadIdPropertyName )); //18
-#endif
}
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmessagelist.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmessagelist.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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;
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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<TBool>( 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() );
@@ -219,6 +229,8 @@
{
MPX_DEBUG1("CVcxMyVideosOpenHandler:: KVcxMvcCategoryIdAll: calling HandleOpen(iCache.iVideoList)");
iCache.iVideoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath );
+ iCache.iVideoList->SetTObjectValueL<TInt>( KVcxMediaMyVideosInt32Value,
+ EVcxMyVideosVideoListComplete );
iCollection.iObs->HandleOpen( iCache.iVideoList, KErrNone );
}
else
@@ -227,6 +239,8 @@
CMPXMedia* videoList = iCache.CreateVideoListByOriginL( origin );
MPX_DEBUG1("CVcxMyVideosOpenHandler:: calling HandleOpen(new list)");
videoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath );
+ videoList->SetTObjectValueL<TInt>( KVcxMediaMyVideosInt32Value,
+ EVcxMyVideosVideoListComplete );
iCollection.iObs->HandleOpen( videoList, KErrNone );
delete videoList;
}
@@ -262,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
{
@@ -322,7 +336,7 @@
// End event arrived
iCache.SetComplete( ETrue );
- iCache.IsFetchingVideoList = EFalse;
+ iCache.iIsFetchingVideoList = EFalse;
// Create modify event for All category.
@@ -390,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 );
@@ -402,15 +413,18 @@
{
//videolist complete
CMPXMedia* videoList = album->CreateVideoListL();
+ CleanupStack::PushL( videoList ); // 1->
videoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath );
+ videoList->SetTObjectValueL<TInt>( 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");
@@ -437,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;
@@ -500,6 +511,11 @@
MPX_DEBUG2("CVcxMyVideosOpenHandler:: First videos for album %d arrived, calling HandleOpen()", aAlbumId);
iAlbumVideoList->SetCObjectValueL( KMPXMediaGeneralContainerPath, iPath );
+ if ( aComplete )
+ {
+ iAlbumVideoList->SetTObjectValueL<TInt>( KVcxMediaMyVideosInt32Value,
+ EVcxMyVideosVideoListComplete );
+ }
iCollection.iObs->HandleOpen( iAlbumVideoList, aError );
iPendingAlbumOpenId = 0;
}
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -14,7 +14,7 @@
* Description: Video list cache. Contains cached data from MDS.*
*/
-// Version : %version: TB101_57 %
+
// INCLUDE FILES
@@ -344,18 +344,8 @@
{
media = (*allVideosArray)[i];
- TUint8 mediaOrigin = EVcxMyVideosOriginOther;
-
- if ( media->IsSupported( KVcxMediaMyVideosOrigin ) )
- {
- mediaOrigin = *(media->Value<TUint8>( 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<TUint8>( 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<TUint16>( 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,6 +1501,9 @@
if ( aUpdateCategories )
{
iCollection.CategoriesL().VideoAddedL( aVideo );
+#ifndef VIDEO_COLLECTION_PLUGIN_TB92
+ iCollection.AlbumsL().VideoAddedOrRemovedFromCacheL( aVideo );
+#endif
}
return KErrNone;
@@ -1556,13 +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 )
@@ -1609,8 +1610,7 @@
{
MPX_FUNC("CVcxMyVideosVideoCache::ResetVideoListL");
- //TODO: when should we cancel...
- //iCollection.iMyVideosMdsDb->Cancel();
+ iCollection.iMyVideosMdsDb->Cancel( CVcxMyVideosMdsDb::EGetVideoList );
CMPXMediaArray* mediaArray =
iVideoList->ValueCObjectL<CMPXMediaArray>( KMPXMediaArrayContents );
--- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/inc/VCXTestMdsDbModifier.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/inc/VCXTestMdsDbModifier.h Wed Jun 23 17:22:59 2010 +0100
@@ -2,7 +2,7 @@
* 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"
+* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
--- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXTestMdsDbModifier.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXTestMdsDbModifier.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -2,7 +2,7 @@
* Copyright (c) 2002 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"
+* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
--- a/videocollection/tsrc/stubs/inc/hbaction.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/inc/hbaction.h Wed Jun 23 17:22:59 2010 +0100
@@ -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
{
--- a/videocollection/tsrc/stubs/inc/hbinputdialog.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/inc/hbinputdialog.h Wed Jun 23 17:22:59 2010 +0100
@@ -20,6 +20,8 @@
#define HBINPUT_DIALOG_H
#include "hbwidget.h"
+#include "hbaction.h"
+#include <qvariant.h>
#include <qgraphicsitem.h>
class HbInputDialog : public HbWidget
@@ -27,20 +29,58 @@
Q_OBJECT
public:
- HbInputDialog(QGraphicsItem *parent= 0) : HbWidget(parent) {}
- ~HbInputDialog() {}
+ HbInputDialog(QGraphicsItem *parent= 0);
+ ~HbInputDialog();
/**
- * Returns string in parameter text if mGetTextReturnValue is null QString.
+ * Create new HbMessageBox and call emitDialogFinished after this one to finish the sequence.
+ */
+ void open( QObject* receiver = 0, const char* member = 0 );
+
+ /**
+ * Create new HbInputDialog after call to this and call emitDialogFinished to finish the sequence.
*/
- static QString getText(const QString &label,const QString &text = QString(),
- bool *ok = 0, QGraphicsScene *scene = 0, QGraphicsItem *parent = 0);
+ void getText(const QString &heading
+ ,QObject *receiver
+ ,const char *member
+ ,const QString &text=QString()
+ ,QGraphicsScene *scene=0
+ ,QGraphicsItem *parent=0);
+
+ void emitDialogFinished( QObject* receiver, const char* member, int actionNum );
+
+ void setAttribute(int attribute);
+
+ void setPromptText(const QString &text, int row = 0);
+
+ void setValue(const QVariant &value, int row = 0);
- static bool mGetTextFails;
+ QList<HbAction*> actions() const
+ {
+ return mActions;
+ }
+
+ QVariant value(int row = 0) { Q_UNUSED(row); mValueCallCount++; return mValueReturnValue; }
+
+signals:
+
+ void finished(HbAction *action);
- static QString mGetTextReturnValue;
+public:
+
+ QList<HbAction*> mActions;
+
+ QList<QString> mSetPromptTexts;
+ QList<QVariant> mSetValues;
+ static QString mLastHeading;
+ static QString mLastText;
static int mGetTextCallCount;
+ static int mAttribute;
+ static int mOpenCallCount;
+
+ static QVariant mValueReturnValue;
+ static int mValueCallCount;
};
#endif //HBINPUT_DIALOG_H
--- a/videocollection/tsrc/stubs/inc/hblistview.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/inc/hblistview.h Wed Jun 23 17:22:59 2010 +0100
@@ -275,6 +275,12 @@
Q_UNUSED(position);
return mItem;
}
+
+ void setObjectName(const QString name)
+ {
+ Q_UNUSED(name);
+ }
+
public:
/**
--- a/videocollection/tsrc/stubs/inc/hbmessagebox.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/inc/hbmessagebox.h Wed Jun 23 17:22:59 2010 +0100
@@ -19,22 +19,49 @@
#ifndef HBMESSAGEBOX_H
#define HBMESSAGEBOX_H
+#include <qobject.h>
#include <qstring.h>
+#include "hbaction.h"
class QGraphicsWidget;
class QGraphicsScene;
class QGraphicsItem;
-class HbMessageBox
+class HbMessageBox : public QObject
{
+ Q_OBJECT
+
public:
+ enum MessageBoxType {
+ MessageTypeInformation,
+ MessageTypeQuestion,
+ MessageTypeWarning
+ };
+
+ HbMessageBox(MessageBoxType type = MessageTypeInformation, QGraphicsItem *parent = 0);
+ HbMessageBox(const QString &text, MessageBoxType type = MessageTypeInformation, QGraphicsItem *parent = 0);
+ ~HbMessageBox();
+
+ /**
+ * Create new HbMessageBox and call emitDialogFinished after this one to finish the sequence.
+ */
+ void open( QObject* receiver = 0, const char* member = 0 );
+
+ void emitDialogFinished( QObject* receiver, const char* member, int actionNum );
+
+ void show();
+
+ void setAttribute(int attribute);
+
/** stubbed from HbMessgeBox */
- static bool question(const QString &questionText,
- const QString &primaryButtonText = QString(),
- const QString &secondaryButtonText = QString(),
- QGraphicsWidget *headWidget = 0,
- QGraphicsScene *scene = 0,
- QGraphicsItem *parent = 0);
+/* static void question(const QString &questionText,
+ QObject *receiver,
+ const char *member,
+ const QString &primaryButtonText = tr("Yes"),
+ const QString &secondaryButtonText = tr("No"),
+ QGraphicsWidget *headWidget = 0,
+ QGraphicsScene *scene = 0,
+ QGraphicsItem *parent = 0 );*/
/** stubbed from HbMessgeBox */
static void information(const QString &informationText,
@@ -47,8 +74,20 @@
QGraphicsWidget *headWidget = 0,
QGraphicsScene *scene = 0,
QGraphicsItem *parent = 0 );
+
+ QList<HbAction*> actions() const
+ {
+ return mActions;
+ }
+
+signals:
+
+ void finished(HbAction *action);
+
+public:
+
+ QList<HbAction*> mActions;
+
};
-
-
#endif // HBMESSAGEBOX_H
--- a/videocollection/tsrc/stubs/inc/hbmessageboxdata.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/inc/hbmessageboxdata.h Wed Jun 23 17:22:59 2010 +0100
@@ -28,6 +28,10 @@
mLatestTxt = "";
mWarningCallCount = 0;
mInformationCallCount = 0;
+ mType = -1;
+ mAttribute = -1;
+ mOpenCallCount = 0;
+ mShowCallCount = 0;
}
public: // data
@@ -35,8 +39,10 @@
static QString mLatestTxt;
static int mWarningCallCount;
static int mInformationCallCount;
+ static int mType;
+ static int mAttribute;
+ static int mOpenCallCount;
+ static int mShowCallCount;
};
-
-
#endif // HBMESSAGEBOXDATA_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/stubs/inc/testobjectstore.h Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2008-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 TESTOBJECTSTORE_H
+#define TESTOBJECTSTORE_H
+
+#include <qobject.h>
+#include <qpointer.h>
+#include <qlist.h>
+
+class TestObjectStore : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ static TestObjectStore &instance();
+
+ void addObject(QObject *object);
+
+private slots:
+
+ void objectDestroyed(QObject *obj);
+
+private:
+
+ TestObjectStore();
+
+ ~TestObjectStore();
+
+ QList<QObject *> mObjects;
+
+};
+
+#endif
--- a/videocollection/tsrc/stubs/inc/videocollectionviewutilsdata.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/inc/videocollectionviewutilsdata.h Wed Jun 23 17:22:59 2010 +0100
@@ -20,6 +20,7 @@
#include <qnamespace.h>
#include <qvariant.h>
+#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 */
--- a/videocollection/tsrc/stubs/inc/videolistwidgetdata.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/inc/videolistwidgetdata.h Wed Jun 23 17:22:59 2010 +0100
@@ -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 */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/stubs/inc/videoservicebrowse.h Wed Jun 23 17:22:59 2010 +0100
@@ -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 <qobject.h>
+#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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/stubs/inc/videoserviceurifetch.h Wed Jun 23 17:22:59 2010 +0100
@@ -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 <QStringList>
+
+// 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__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/stubs/inc/xqserviceproviderstub.h Wed Jun 23 17:22:59 2010 +0100
@@ -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 <qobject.h>
+#include <qstring.h>
+#include <QVariant>
+
+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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/stubs/inc/xqserviceutilstub.h Wed Jun 23 17:22:59 2010 +0100
@@ -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 <QObject>
+#include <QString>
+
+class XQServiceUtil
+{
+public:
+ static void toBackground(bool value);
+ static bool isEmbedded();
+ static bool isService();
+
+ static QString interfaceName();
+ static QString operationName();
+};
+
+#endif
--- a/videocollection/tsrc/stubs/src/hbdocumentloader.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/hbdocumentloader.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -309,5 +309,9 @@
{
obj = new HbStackedWidget();
}
+ else if(name == DOCML_NAME_LBL_MARKALL)
+ {
+ obj = new HbLabel();
+ }
return obj;
}
--- a/videocollection/tsrc/stubs/src/hbinputdialog.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/hbinputdialog.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -16,37 +16,88 @@
*/
#include "hbinputdialog.h"
+#include "testobjectstore.h"
-bool HbInputDialog::mGetTextFails = false;
-QString HbInputDialog::mGetTextReturnValue = QString();
int HbInputDialog::mGetTextCallCount = 0;
-
+int HbInputDialog::mAttribute = -1;
+QString HbInputDialog::mLastHeading = "";
+QString HbInputDialog::mLastText = "";
+QVariant HbInputDialog::mValueReturnValue = QVariant();
+int HbInputDialog::mValueCallCount = 0;
+int HbInputDialog::mOpenCallCount = 0;
-QString HbInputDialog::getText(const QString &label,const QString &text,
- bool *ok, QGraphicsScene *scene, QGraphicsItem *parent)
+HbInputDialog::HbInputDialog(QGraphicsItem *parent) : HbWidget(parent)
{
- Q_UNUSED(label);
- Q_UNUSED(scene);
- Q_UNUSED(parent);
- mGetTextCallCount++;
- QString textReturn;
- if(HbInputDialog::mGetTextReturnValue.isNull())
- {
- textReturn = text;
- }
- else
- {
- textReturn = mGetTextReturnValue;
- }
- if(mGetTextFails)
- {
- *ok = false;
- textReturn = "";
- }
- else
- {
- *ok = true;
- }
- return textReturn;
+ HbAction *action = new HbAction();
+ mActions.append(action);
+ action = new HbAction();
+ mActions.append(action);
+
+ TestObjectStore::instance().addObject(this);
+}
+
+HbInputDialog::~HbInputDialog()
+{
+ while(!mActions.isEmpty())
+ {
+ delete mActions.takeFirst();
+ }
+}
+
+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
+ ,const QString &text
+ ,QGraphicsScene *scene
+ ,QGraphicsItem *parent)
+{
+ Q_UNUSED(receiver);
+ Q_UNUSED(member);
+ Q_UNUSED(scene);
+ Q_UNUSED(parent);
+
+ mLastHeading = heading;
+ mLastText = text;
+ mGetTextCallCount++;
+}
+
+void HbInputDialog::emitDialogFinished( QObject* receiver, const char* member, int actionNum )
+{
+ if(connect(this, SIGNAL(finished(HbAction *)), receiver, member))
+ {
+ emit finished(mActions.value(actionNum));
+ disconnect(this, SIGNAL(finished(HbAction *)), receiver, member);
+ }
+}
+
+void HbInputDialog::setAttribute(int attribute)
+{
+ 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;
+}
+
--- a/videocollection/tsrc/stubs/src/hbmessagebox.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/hbmessagebox.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -19,27 +19,71 @@
#include "hbmessagebox.h"
#include "hbmessageboxdata.h"
+#include "testobjectstore.h"
bool HbMessageBoxData::mQuestionReturnValue = false;
QString HbMessageBoxData::mLatestTxt = "";
int HbMessageBoxData::mWarningCallCount = 0;
int HbMessageBoxData::mInformationCallCount = 0;
+int HbMessageBoxData::mType = -1;
+int HbMessageBoxData::mAttribute = -1;
+int HbMessageBoxData::mOpenCallCount = 0;
+int HbMessageBoxData::mShowCallCount = 0;
-bool HbMessageBox::question(const QString &questionText,
- const QString &primaryButtonText,
- const QString &secondaryButtonText,
- QGraphicsWidget *headWidget,
- QGraphicsScene *scene,
- QGraphicsItem *parent)
+HbMessageBox::HbMessageBox(MessageBoxType type, QGraphicsItem *parent)
+{
+ Q_UNUSED(parent);
+ HbMessageBoxData::mType = type;
+
+ HbAction *action = new HbAction();
+ mActions.append(action);
+ action = new HbAction();
+ mActions.append(action);
+
+ TestObjectStore::instance().addObject(this);
+}
+
+HbMessageBox::HbMessageBox(const QString &text, MessageBoxType type, QGraphicsItem *parent)
{
- Q_UNUSED(primaryButtonText);
- Q_UNUSED(secondaryButtonText);
- Q_UNUSED(headWidget);
- Q_UNUSED(scene);
Q_UNUSED(parent);
+ HbMessageBoxData::mLatestTxt = text;
+ HbMessageBoxData::mType = type;
- HbMessageBoxData::mLatestTxt = questionText;
- return HbMessageBoxData::mQuestionReturnValue;
+ HbAction *action = new HbAction();
+ mActions.append(action);
+ action = new HbAction();
+ mActions.append(action);
+
+ TestObjectStore::instance().addObject(this);
+}
+
+HbMessageBox::~HbMessageBox()
+{
+ while(!mActions.isEmpty())
+ {
+ delete mActions.takeFirst();
+ }
+}
+
+void HbMessageBox::show()
+{
+ HbMessageBoxData::mShowCallCount++;
+}
+
+void HbMessageBox::open( QObject* receiver, const char* member )
+{
+ Q_UNUSED(receiver);
+ Q_UNUSED(member);
+ HbMessageBoxData::mOpenCallCount++;
+}
+
+void HbMessageBox::emitDialogFinished( QObject* receiver, const char* member, int actionNum )
+{
+ if(connect(this, SIGNAL(finished(HbAction *)), receiver, member))
+ {
+ emit finished(mActions.value(actionNum));
+ disconnect(this, SIGNAL(finished(HbAction *)), receiver, member);
+ }
}
void HbMessageBox::information(const QString &informationText,
@@ -68,4 +112,9 @@
HbMessageBoxData::mWarningCallCount++;
}
+void HbMessageBox::setAttribute(int attribute)
+{
+ HbMessageBoxData::mAttribute = attribute;
+}
+
// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/stubs/src/testobjectstore.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2008-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 "testobjectstore.h"
+
+TestObjectStore::TestObjectStore()
+{
+
+}
+
+TestObjectStore::~TestObjectStore()
+{
+ while(!mObjects.isEmpty())
+ {
+ QObject *obj = mObjects.takeFirst();
+ delete obj;
+ }
+}
+
+TestObjectStore &TestObjectStore::instance()
+{
+ static TestObjectStore _store;
+ return _store;
+}
+
+void TestObjectStore::addObject(QObject *object)
+{
+ if(connect(object, SIGNAL(destroyed(QObject *)), this, SLOT(objectDestroyed(QObject *))))
+ {
+ mObjects.append(object);
+ }
+}
+
+void TestObjectStore::objectDestroyed(QObject *obj)
+{
+ if(obj)
+ {
+ disconnect(obj, SIGNAL(destroyed(QObject *)), this, SLOT(objectDestroyed(QObject *)));
+ mObjects.removeOne(obj);
+ }
+}
--- a/videocollection/tsrc/stubs/src/videocollectionuiloader.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videocollectionuiloader.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -97,8 +97,9 @@
storeOrphans(list);
}
-QGraphicsWidget* VideoCollectionUiLoader::doFindWidget(const QString &name)
+QGraphicsWidget* VideoCollectionUiLoader::doFindWidget(const QString &name, bool loadIfNotFound)
{
+ Q_UNUSED(loadIfNotFound);
QGraphicsWidget *widget = 0;
if(VideoCollectionUiLoaderData::mFindFailure)
{
@@ -111,8 +112,9 @@
return widget;
}
-QObject* VideoCollectionUiLoader::doFindObject(const QString &name)
+QObject* VideoCollectionUiLoader::doFindObject(const QString &name, bool loadIfNotFound)
{
+ Q_UNUSED(loadIfNotFound);
QObject *object = 0;
if(VideoCollectionUiLoaderData::mFindFailure)
{
@@ -199,7 +201,7 @@
QObject* VideoCollectionUiLoader::createObject(const QString& type,
const QString &name)
{
- QObject* object = doFindObject(name);
+ QObject* object = doFindObject(name, true);
if (!object)
{
if (name == DOCML_NAME_VIEW)
--- a/videocollection/tsrc/stubs/src/videocollectionviewutils.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videocollectionviewutils.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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)
{
--- a/videocollection/tsrc/stubs/src/videolistselectiondialog.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videolistselectiondialog.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -144,4 +144,16 @@
// not stubbed
}
+void VideoListSelectionDialog::newAlbumNameDialogFinished(HbAction *action)
+{
+ Q_UNUSED(action);
+ // not stubbed
+}
+
+void VideoListSelectionDialog::finalize(QString albumName)
+{
+ Q_UNUSED(albumName);
+ // not stubbed
+}
+
// end of file
--- a/videocollection/tsrc/stubs/src/videolistview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videolistview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -246,4 +246,10 @@
// not stubbed
}
+void VideoListView::createCollectionDialogFinished(HbAction *action)
+{
+ Q_UNUSED(action);
+ // not stubbed
+}
+
// end of file
--- a/videocollection/tsrc/stubs/src/videolistwidget.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videolistwidget.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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)
@@ -133,12 +133,6 @@
// not stubbed
}
-void VideoListWidget::panGesture (const QPointF &point)
-{
- Q_UNUSED(point);
- // not stubbed
-}
-
void VideoListWidget::openItemSlot()
{
// not stubbed
@@ -215,4 +209,22 @@
// not stubbed
}
+void VideoListWidget::renameDialogFinished(HbAction *action)
+{
+ Q_UNUSED(action);
+ // not stubbed
+}
+
+void VideoListWidget::deleteItemDialogFinished(HbAction *action)
+{
+ Q_UNUSED(action);
+ // not stubbed
+}
+
+void VideoListWidget::removeCollectionDialogFinished(HbAction *action)
+{
+ Q_UNUSED(action);
+ // not stubbed
+}
+
// end of file
--- a/videocollection/tsrc/stubs/src/videoservicebrowse.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videoservicebrowse.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,10 +15,11 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 6 %
#include <hbapplication.h>
+#include "xqserviceproviderstub.h"
#include "videoservices.h"
#include "videoservicebrowse.h"
#include "mpxhbvideocommondefs.h"
@@ -30,8 +31,8 @@
Constructor.
\param parent, Pointer to the video services.
*/
-VideoServiceBrowse::VideoServiceBrowse(VideoServices* parent)
- : XQServiceProvider( "TestListView" )
+VideoServiceBrowse::VideoServiceBrowse(VideoServices* parent, QLatin1String service)
+ : XQServiceProvider( service, parent )
, mRequestIndex( 0 )
, mServiceApp( parent )
{
@@ -94,4 +95,18 @@
// not stubbed
}
+/*!
+ Browse videos.
+ \param category, Category which type of videos are browsed.
+ \return None.
+*/
+void VideoServiceBrowse::browseVideos(int category,
+ int sortRole)
+{
+ Q_UNUSED(category);
+ Q_UNUSED(sortRole);
+
+ // not stubbed
+}
+
// End of file
--- a/videocollection/tsrc/stubs/src/videoservices.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videoservices.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -70,8 +70,8 @@
mCurrentService(VideoServices::ENoService),
mSortRole(0)
{
- mServiceUriFetch = new VideoServiceUriFetch(this);
- mServiceBrowse = new VideoServiceBrowse(this);
+ mServiceUriFetch = new VideoServiceUriFetch(this, QLatin1String("TestListView"));
+ mServiceBrowse = new VideoServiceBrowse(this, QLatin1String("TestListView"));
}
VideoServices::~VideoServices()
--- a/videocollection/tsrc/stubs/src/videoserviceurifetch.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/videoserviceurifetch.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,11 +15,12 @@
*
*/
+#include "xqserviceproviderstub.h"
#include "videoserviceurifetch.h"
#include "videoservices.h"
-VideoServiceUriFetch::VideoServiceUriFetch(VideoServices* parent):
- XQServiceProvider("TestListView"),
+VideoServiceUriFetch::VideoServiceUriFetch(VideoServices* parent, QLatin1String service):
+ XQServiceProvider( service, parent ),
mRequestIndex(0),
mServiceApp(parent)
{
@@ -61,6 +62,11 @@
return QString();
}
+void VideoServiceUriFetch::fetch()
+{
+ mServiceApp->setCurrentService(VideoServices::EUriFetcher);
+}
+
void VideoServiceUriFetch::fetch(const QString& title)
{
Q_UNUSED(title);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/stubs/src/xqserviceprovider.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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()
+{
+
+}
+
--- a/videocollection/tsrc/stubs/src/xqserviceutil.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/src/xqserviceutil.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videocollection/tsrc/stubs/stubs.pro Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/stubs/stubs.pro Wed Jun 23 17:22:59 2010 +0100
@@ -14,6 +14,8 @@
# Description:
#
+DEFINES += XQPLUGIN_H
+DEFINES += XQSERVICEABSTRACTSERVICE_H
DEFINES += XQSERVICEUTIL_H
CONFIG += qtestlib \
@@ -23,11 +25,16 @@
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 \
inc/hbaction.h \
@@ -81,11 +88,11 @@
../../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 \
src/hbcheckbox.cpp \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/videoservicestestapp/inc/videoservicestestappview.h Wed Jun 23 17:22:59 2010 +0100
@@ -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 <hbview.h>
+#include <xqappmgr.h>
+
+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_ */
--- a/videocollection/tsrc/videoservicestestapp/rom/videoservicestestapp.iby Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/tsrc/videoservicestestapp/rom/videoservicestestapp.iby Wed Jun 23 17:22:59 2010 +0100
@@ -11,13 +11,13 @@
*
* Contributors:
*
-* Description: hbvideoplayer.iby
+* Description: videoservicetestapp.iby
*
*/
-#ifndef __HBVIDEOSERVICESTESTAPP_IBY__
-#define __HBVIDEOSERVICESTESTAPP_IBY__
+#ifndef __VIDEOSERVICESTESTAPP_IBY__
+#define __VIDEOSERVICESTESTAPP_IBY__
#include <bldvariant.hrh>
#include <data_caging_paths_for_iby.hrh>
@@ -27,4 +27,4 @@
data=DATAZ_/APP_RESOURCE_DIR/videoservicestestapp.rsc APP_RESOURCE_DIR/videoservicestestapp.rsc
-#endif // __HBVIDEOSERVICESTESTAPP_IBY__
+#endif // __VIDEOSERVICESTESTAPP_IBY__
Binary file videocollection/tsrc/videoservicestestapp/sis/Nokia_RnDCert_02.der has changed
--- a/videocollection/tsrc/videoservicestestapp/sis/Nokia_RnDCert_02.key Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn
-uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO
-vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB
-AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo
-REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss
-/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J
-s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut
-sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/
-pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp
-VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ
-P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK
-1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT
-1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x
------END RSA PRIVATE KEY-----
Binary file videocollection/tsrc/videoservicestestapp/sis/videoservicestestapp.sisx has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/videoservicestestapp/src/main.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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 <hbapplication.h>
+#include <hbmainwindow.h>
+#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();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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 <xqaiwrequest.h>
+#include <QGraphicsLinearLayout>
+#include <hbpushbutton.h>
+#include <hblineedit.h>
+#include <hblabel.h>
+#include <hbaction.h>
+#include <hbinputdialog.h>
+#include <qdebug>
+#include <vcxmyvideosdefs.h>
+#include <xqaiwdecl.h>
+#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<QStringList>())
+ {
+ mErrorEdit->setText("Corrupt result");
+ }
+ else
+ {
+ QString text = result.value<QString>();
+ 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", "<NEW IF app_name>");
+ 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", "<NEW IF app name>");
+ 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<HbInputDialog*>(sender());
+
+ int category = dialog->value(0).toInt();
+ int sortRole = dialog->value(1).toInt();
+
+ if(dialog->actions().first() == action)
+ {
+ // set arguments
+ QList<QVariant> 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<QVariant> args;
+ args << QVariant(QString("<OLD-IF-OLD-S app_name>"));
+ 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<QVariant> args;
+ args << QVariant(QString("<OLD-IF-NEW-S app_name>"));
+ 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<HbInputDialog*>(sender());
+
+ const QString title = "<OLD-IF-OLD-S app name>";
+
+ int category = dialog->value(0).toInt();
+ int sortRole = dialog->value(1).toInt();
+
+ if(dialog->actions().first() == action)
+ {
+ // set arguments
+ QList<QVariant> 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<HbInputDialog*>(sender());
+
+ const QString title = "<OLD-IF-NEW-S app name>";
+
+ int category = dialog->value(0).toInt();
+ int sortRole = dialog->value(1).toInt();
+
+ if(dialog->actions().first() == action)
+ {
+ // set arguments
+ QList<QVariant> 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/videoservicestestapp/videoservicestestapp.pro Wed Jun 23 17:22:59 2010 +0100
@@ -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)"
+}
--- a/videocollection/videocollectionview/data/images/qtg_mono_video_all.svg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
- xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- x="0px" y="0px" width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
-<defs>
-</defs>
-<rect opacity="0.5" fill="none" width="40" height="40"/>
-<path d="M33,4v3h-3V4h-3v5H13V4h-3v3H7V4H4v32h3v-3h3v3h3v-5h14v5h3v-3h3v3h3V4H33z M33,9v4h-3V9H33z M30,21h3v4h-3V21z M30,19v-4h3
- v4H30z M10,9v4H7V9H10z M7,21h3v4H7V21z M7,19v-4h3v4H7z M7,31v-4h3v4H7z M13,28V12h14v16H13z M30,31v-4h3v4H30z"/>
-</svg>
--- a/videocollection/videocollectionview/data/videocollectionview.qrc Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/data/videocollectionview.qrc Wed Jun 23 17:22:59 2010 +0100
@@ -3,9 +3,6 @@
<file alias="collectionview.docml">collectionview.docml</file>
<file alias="videolistselectiondialog.docml">videolistselectiondialog.docml</file>
</qresource>
- <qresource prefix="/" >
- <file>images/qtg_mono_video_all.svg</file>
- </qresource>
<qresource prefix="/style" >
<file>hbdialog.css</file>
</qresource>
--- a/videocollection/videocollectionview/inc/videocollectionuiloader.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/inc/videocollectionuiloader.h Wed Jun 23 17:22:59 2010 +0100
@@ -78,24 +78,26 @@
* Returns the requested widget casted to correct type
*
* @param name Name of the widget
+ * @param loadIfNotFound Should the widget be loaded if not found in cache.
* @return Pointer to the widget
*/
template<class T>
- T* findWidget(const QString &name)
+ T* findWidget(const QString &name, bool loadIfNotFound = true)
{
- return qobject_cast<T*>(doFindWidget(name));
+ return qobject_cast<T*>(doFindWidget(name, loadIfNotFound));
}
/**
* Returns the requested object casted to correct type
*
* @param name Name of the object
+ * @param loadIfNotFound Should the widget be loaded if not found in cache.
* @return Pointer to the object
*/
template<class T>
- T* findObject(const QString &name)
+ T* findObject(const QString &name, bool loadIfNotFound = true)
{
- return qobject_cast<T*>(doFindObject(name));
+ return qobject_cast<T*>(doFindObject(name, loadIfNotFound));
}
/**
@@ -141,9 +143,10 @@
* Loads widget from document.
*
* @param name, Widget name.
+ * @param loadIfNotFound Should the widget be loaded if not found in cache.
* @return QGraphicsWidget*.
*/
- QGraphicsWidget* doFindWidget(const QString &name);
+ QGraphicsWidget* doFindWidget(const QString &name, bool loadIfNotFound);
/**
* Loads object from document.
@@ -151,7 +154,7 @@
* @param name, Object name.
* @return QObject*.
*/
- QObject* doFindObject(const QString &name);
+ QObject* doFindObject(const QString &name, bool loadIfNotFound);
/**
* Adds a ui section to async loading queue.
--- a/videocollection/videocollectionview/inc/videocollectionviewutils.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/inc/videocollectionviewutils.h Wed Jun 23 17:22:59 2010 +0100
@@ -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:
--- a/videocollection/videocollectionview/inc/videolistview.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/inc/videolistview.h Wed Jun 23 17:22:59 2010 +0100
@@ -380,6 +380,11 @@
* Boolean for knowing when the model is ready.
*/
bool mModelReady;
+
+ /**
+ * Boolean for knowing when the view is ready.
+ */
+ bool mViewReady;
/**
* Hint level for the hint widget.
--- a/videocollection/videocollectionview/inc/videolistwidget.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/inc/videolistwidget.h Wed Jun 23 17:22:59 2010 +0100
@@ -23,6 +23,7 @@
#include <hblistview.h>
#include <qmap.h>
#include <mpxitemid.h>
+#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:
@@ -174,12 +185,6 @@
* Saves current selected item's index to mCurrentIndex
*/
void longPressedSlot(HbAbstractViewItem *item, const QPointF &point);
-
- /**
- * Re-implemented in case context menu is visible, the below list shoud not
- * be panned.
- */
- void panGesture(const QPointF &point);
private slots:
@@ -233,12 +238,6 @@
void playItemSlot();
/**
- * slot is connected to view's doDelayeds -signal
- *
- */
- void doDelayedsSlot();
-
- /**
* Signaled when stepping back from collection in collection view
*
*/
@@ -409,6 +408,11 @@
* ui loade object, not owned
*/
VideoCollectionUiLoader *mUiLoader;
+
+ /**
+ * Service being provided
+ */
+ VideoServices::TVideoService mService;
};
#endif // VIDEOLISTWIDGET_H
--- a/videocollection/videocollectionview/sis/hbmyvideos_armv5_udeb.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-; hbmyvideos_armv5_udeb.pkg generated by qmake at Mon 4. May 16:02:32 2009
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"hbmyvideos"},(0xE6c98bd2),1,0,0
-
-; 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, 5, 0, {"QtLibs pre-release"}
-
-; Executable and default resource files
-"\epoc32\release\armv5\udeb\hbmyvideos.exe" - "!:\sys\bin\hbmyvideos.exe"
-"\epoc32\data\z\resource\apps\hbmyvideos.rsc" - "!:\resource\apps\hbmyvideos.rsc"
-"\epoc32\data\z\private\10003a3f\import\apps\hbmyvideos_reg.rsc" - "!:\private\10003a3f\import\apps\hbmyvideos_reg.rsc"
--- a/videocollection/videocollectionview/sis/hbmyvideos_armv5_udeb_withhb_wk11.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-; hbmyvideos_armv5_udeb.pkg generated by qmake at Wed 15. Apr 12:53:10 2009
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"hbmyvideos"},(0xE47efc9b),1,0,0
-
-; 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, 5, 0, {"QtLibs pre-release"}
-
-; Executable and default resource files
-"\epoc32\release\armv5\udeb\hbmyvideos.exe" - "!:\sys\bin\hbmyvideos.exe"
-"\epoc32\data\z\resource\apps\hbmyvideos.rsc" - "!:\resource\apps\hbmyvideos.rsc"
-"\epoc32\data\z\private\10003a3f\import\apps\hbmyvideos_reg.rsc" - "!:\private\10003a3f\import\apps\hbmyvideos_reg.rsc"
-"\epoc32\release\armv5\udeb\qtnmwrapper.dll" - "!:\sys\bin\qtnmwrapper.dll"
-
-
-;"r:\epoc32\release\armv5\udeb\HbPureNumeric.dll" - "!:\sys\bin\HbPureNumeric.dll"
-;"r:\orbit\hbinputs\qmakepluginstubs\HbPureNumeric.qtplugin" - "!:\hbinputs\inputmethods\HbPureNumeric.qtplugin"
-;"r:\epoc32\release\armv5\udeb\HbLatinMultitap.dll" - "!:\sys\bin\HbLatinMultitap.dll"
-;"r:\orbit\hbinputs\qmakepluginstubs\HbLatinMultitap.qtplugin" - "!:\hbinputs\inputmethods\HbLatinMultitap.qtplugin"
-;"r:\epoc32\release\armv5\udeb\touchinput.dll" - "!:\sys\bin\touchinput.dll"
-"r:\orbit\hbinputs\qmakepluginstubs\touchinput.qtplugin" - "!:\hbinputs\inputmethods\touchinput.qtplugin"
-"r:\orbit\hbinputs\resources\accent.png" - "!:\hbinputs\resources\accent.png"
-"r:\orbit\hbinputs\resources\background.png" - "!:\hbinputs\resources\background.png"
-"r:\orbit\hbinputs\resources\bullet.png" - "!:\hbinputs\resources\bullet.png"
-"r:\orbit\hbinputs\resources\close_handle.png" - "!:\hbinputs\resources\close_handle.png"
-"r:\orbit\hbinputs\resources\close_handle_background.png" - "!:\hbinputs\resources\close_handle_background.png"
-"r:\orbit\hbinputs\resources\keypad_landscape.png" - "!:\hbinputs\resources\keypad_landscape.png"
-"r:\orbit\hbinputs\resources\keypad_portrait.png" - "!:\hbinputs\resources\keypad_portrait.png"
-"r:\orbit\hbinputs\resources\red_button.png" - "!:\hbinputs\resources\red_button.png"
-"r:\orbit\hbinputs\resources\red_button_mask.png" - "!:\hbinputs\resources\red_button_mask.png"
-"r:\orbit\hbinputs\resources\sym.png" - "!:\hbinputs\resources\sym.png"
-"r:\orbit\hbinputs\resources\test_multimode_lower.png" - "!:\hbinputs\resources\test_multimode_lower.png"
-"r:\orbit\hbinputs\resources\test_multimode_text.png" - "!:\hbinputs\resources\test_multimode_text.png"
-"r:\orbit\hbinputs\resources\test_multimode_upper.png" - "!:\hbinputs\resources\test_multimode_upper.png"
-"r:\orbit\hbinputs\resources\test_numbermode.png" - "!:\hbinputs\resources\test_numbermode.png"
-"r:\orbit\hbinputs\resources\test_pinyin.png" - "!:\hbinputs\resources\test_pinyin.png"
-"r:\orbit\hbinputs\resources\test_predictivemode_lower.png" - "!:\hbinputs\resources\test_predictivemode_lower.png"
-"r:\orbit\hbinputs\resources\test_predictivemode_text.png" - "!:\hbinputs\resources\test_predictivemode_text.png"
-"r:\orbit\hbinputs\resources\test_predictivemode_upper.png" - "!:\hbinputs\resources\test_predictivemode_upper.png"
-"r:\orbit\hbinputs\resources\test_stroke.png" - "!:\hbinputs\resources\test_stroke.png"
-"r:\orbit\hbinputs\resources\test_virtual_return.png" - "!:\hbinputs\resources\test_virtual_return.png"
-"r:\orbit\hbinputs\resources\test_virtual_return_mask.png" - "!:\hbinputs\resources\test_virtual_return_mask.png"
-"r:\orbit\hbinputs\resources\test_virtual_shift.png" - "!:\hbinputs\resources\test_virtual_shift.png"
-"r:\orbit\hbinputs\resources\test_virtual_shift_mask.png" - "!:\hbinputs\resources\test_virtual_shift_mask.png"
-"r:\orbit\hbinputs\resources\vkb_top.png" - "!:\hbinputs\resources\vkb_top.png"
-"r:\orbit\hbinputs\resources\rocker_normal.svg" - "!:\hbinputs\resources\rocker_normal.svg"
-"r:\orbit\hbinputs\resources\rocker_selection.svg" - "!:\hbinputs\resources\rocker_selection.svg"
-"r:\epoc32\release\armv5\udeb\hb.dll" - "!:\sys\bin\hb.dll"
-"r:\epoc32\release\armv5\udeb\hbinput.dll" - "!:\sys\bin\hbinput.dll"
-;"r:\epoc32\release\armv5\udeb\hbviw.dll" - "!:\sys\bin\hbviw.dll"
-;"r:\epoc32\release\armv5\udeb\hbhiw.dll" - "!:\sys\bin\hbhiw.dll"
Binary file videocollection/videocollectionview/sis/hbmyvideos_armv5_udeb_withhb_wk11.sisx has changed
--- a/videocollection/videocollectionview/sis/hbmyvideos_armv5_urel.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-; hbmyvideos_armv5_urel.pkg generated by qmake at Mon 4. May 16:02:32 2009
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"hbmyvideos"},(0xE6c98bd2),1,0,0
-
-; 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, 5, 0, {"QtLibs pre-release"}
-
-; Executable and default resource files
-"\epoc32\release\armv5\urel\hbmyvideos.exe" - "!:\sys\bin\hbmyvideos.exe"
-"\epoc32\data\z\resource\apps\hbmyvideos.rsc" - "!:\resource\apps\hbmyvideos.rsc"
-"\epoc32\data\z\private\10003a3f\import\apps\hbmyvideos_reg.rsc" - "!:\private\10003a3f\import\apps\hbmyvideos_reg.rsc"
Binary file videocollection/videocollectionview/sis/hbmyvideos_armv5_urel.sisx has changed
--- a/videocollection/videocollectionview/sis/hbmyvideos_gcce_udeb.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-; hbmyvideos_gcce_udeb.pkg generated by qmake at Mon 4. May 16:02:32 2009
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"hbmyvideos"},(0xE6c98bd2),1,0,0
-
-; 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, 5, 0, {"QtLibs pre-release"}
-
-; Executable and default resource files
-"\epoc32\release\gcce\udeb\hbmyvideos.exe" - "!:\sys\bin\hbmyvideos.exe"
-"\epoc32\data\z\resource\apps\hbmyvideos.rsc" - "!:\resource\apps\hbmyvideos.rsc"
-"\epoc32\data\z\private\10003a3f\import\apps\hbmyvideos_reg.rsc" - "!:\private\10003a3f\import\apps\hbmyvideos_reg.rsc"
--- a/videocollection/videocollectionview/sis/hbmyvideos_gcce_urel.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-; hbmyvideos_gcce_urel.pkg generated by qmake at Mon 4. May 16:02:32 2009
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"hbmyvideos"},(0xE6c98bd2),1,0,0
-
-; 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, 5, 0, {"QtLibs pre-release"}
-
-; Executable and default resource files
-"\epoc32\release\gcce\urel\hbmyvideos.exe" - "!:\sys\bin\hbmyvideos.exe"
-"\epoc32\data\z\resource\apps\hbmyvideos.rsc" - "!:\resource\apps\hbmyvideos.rsc"
-"\epoc32\data\z\private\10003a3f\import\apps\hbmyvideos_reg.rsc" - "!:\private\10003a3f\import\apps\hbmyvideos_reg.rsc"
--- a/videocollection/videocollectionview/src/videocollectionuiloader.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/src/videocollectionuiloader.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 21 %
+// Version : %version: 22 %
// INCLUDE FILES
#include <qgraphicswidget.h>
@@ -199,7 +199,7 @@
// doFindWidget
// ---------------------------------------------------------------------------
//
-QGraphicsWidget* VideoCollectionUiLoader::doFindWidget(const QString &name)
+QGraphicsWidget* VideoCollectionUiLoader::doFindWidget(const QString &name, bool loadIfNotFound)
{
FUNC_LOG;
QGraphicsWidget *widget = 0;
@@ -211,7 +211,7 @@
}
// 2. load from document and initialize
- else
+ else if (loadIfNotFound)
{
// find object from queue
int index = indexInQueue(name);
@@ -238,7 +238,7 @@
// doFindObject
// ---------------------------------------------------------------------------
//
-QObject* VideoCollectionUiLoader::doFindObject(const QString &name)
+QObject* VideoCollectionUiLoader::doFindObject(const QString &name, bool loadIfNotFound)
{
FUNC_LOG;
QObject *object = 0;
@@ -250,7 +250,7 @@
}
// 2. load from document and initialize
- else
+ else if (loadIfNotFound)
{
// find object from queue
int index = indexInQueue(name);
@@ -373,17 +373,15 @@
wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos);
if(model)
{
- // open and sort model
- model->open(VideoCollectionCommon::ELevelVideos);
- VideoCollectionViewUtils::sortModel(model, true, VideoCollectionCommon::ELevelVideos);
-
+ VideoCollectionViewUtils::sortModel(model, true, VideoCollectionCommon::ELevelVideos);
+
// init widget
VideoServices *videoServices = 0;
if (mIsService)
{
videoServices = VideoServices::instance();
}
- videoList->initialize(*model, videoServices);
+ videoList->initialize(*model, videoServices, VideoCollectionCommon::ELevelVideos);
}
}
}
@@ -393,9 +391,8 @@
VideoCollectionCommon::EModelTypeCollections);
if (model)
{
- model->open(VideoCollectionCommon::ELevelCategory);
VideoCollectionViewUtils::sortModel(model, true, VideoCollectionCommon::ELevelCategory);
-
+
// initialize video collection widget
VideoListWidget *videoList =
qobject_cast<VideoListWidget*>(object);
@@ -407,7 +404,7 @@
{
videoServices = VideoServices::instance();
}
- videoList->initialize(*model, videoServices);
+ videoList->initialize(*model, videoServices, VideoCollectionCommon::ELevelCategory);
}
}
}
@@ -417,6 +414,10 @@
VideoCollectionCommon::EModelTypeCollectionContent);
if (model)
{
+ // collection content contains always a list of videos so we use
+ // ELevelVideos as target for sorting
+ VideoCollectionViewUtils::sortModel(model, false, VideoCollectionCommon::ELevelVideos);
+
VideoListWidget *videoList = qobject_cast<VideoListWidget*>(object);
if (videoList)
{
@@ -426,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);
}
}
--- a/videocollection/videocollectionview/src/videocollectionviewutils.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/src/videocollectionviewutils.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,9 +15,11 @@
*
*/
-// Version : %version: 37 %
+// Version : %version: 39 %
// INCLUDE FILES
+#include <hbapplication.h>
+#include <hbactivitymanager.h>
#include <hbglobal.h>
#include <hblistview.h>
#include <hbscrollbar.h>
@@ -32,6 +34,11 @@
#include "videosortfilterproxymodel.h"
#include "videocollectiontrace.h"
+// Object names.
+const char* const VIEW_UTILS_OBJECT_NAME_STATUS_MSG = "vc:ViewUtilsStatusMessage";
+const char* const VIEW_UTILS_OBJECT_NAME_MESSAGE_BOX_WARNING = "vc:ViewUtilsMessageBoxWarning";
+
+// Cenrep constants.
const int KVideoCollectionViewCenrepUid(0x2002BC63);
const int KVideoCollectionViewCenrepServiceIconKey(0x2);
const int KVideoCollectionViewCenrepServiceIconPressedKey(0x3);
@@ -40,15 +47,21 @@
const int KVideoCollectionViewCenrepCollectionsSortingRoleKey(0x7);
const int KVideoCollectionViewCenrepCollectionsSortingOrderKey(0x8);
+const int KAddToCollectionDataCount(2);
+const int KAddToCollectionCountIndex(0);
+const int KAddToCollectionNameIndex(1);
+
+static const char* ACTIVITY_VIDEOS_MAINVIEW = "VideosMainView";
+
// ---------------------------------------------------------------------------
// instance
// ---------------------------------------------------------------------------
//
VideoCollectionViewUtils& VideoCollectionViewUtils::instance()
{
- FUNC_LOG;
- static VideoCollectionViewUtils _popupInstance;
- return _popupInstance;
+ FUNC_LOG;
+ static VideoCollectionViewUtils _popupInstance;
+ return _popupInstance;
}
// ---------------------------------------------------------------------------
@@ -62,7 +75,6 @@
mCollectionsSortOrder(Qt::AscendingOrder)
{
FUNC_LOG;
-
}
// ---------------------------------------------------------------------------
@@ -72,7 +84,6 @@
VideoCollectionViewUtils::~VideoCollectionViewUtils()
{
FUNC_LOG;
-
}
// ---------------------------------------------------------------------------
@@ -304,6 +315,53 @@
}
// ---------------------------------------------------------------------------
+// saveWidgetLevel
+// ---------------------------------------------------------------------------
+//
+void VideoCollectionViewUtils::saveWidgetLevel(VideoCollectionCommon::TCollectionLevels &level)
+{
+ FUNC_LOG;
+ HbActivityManager* activityManager = qobject_cast<HbApplication*>(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<HbApplication*>(qApp)->activityManager();
+ if(!activityManager)
+ {
+ return level;
+ }
+ QVariant data =activityManager->activityData(ACTIVITY_VIDEOS_MAINVIEW);
+ if(data.toInt() == VideoCollectionCommon::ELevelCategory)
+ {
+ level = VideoCollectionCommon::ELevelCategory;
+ }
+ return level;
+
+}
+
+// ---------------------------------------------------------------------------
// showStatusMsgSlot
// ---------------------------------------------------------------------------
//
@@ -335,11 +393,16 @@
case VideoCollectionCommon::statusMultiRemoveFail:
msg = hbTrId("txt_videos_info_unable_to_remove_some_collections");
break;
- case VideoCollectionCommon::statusVideosAddedToCollection:
- format = hbTrId("txt_videos_dpopinfo_videos_added_to_1");
- if(additional.isValid())
+ case VideoCollectionCommon::statusVideosAddedToCollection:
+ // videos added to collection - status should containg both count and collection name
+ if(additional.isValid() && additional.toList().count() == KAddToCollectionDataCount)
{
- msg = format.arg(additional.toString());
+ int count = additional.toList().at(KAddToCollectionCountIndex).toInt();
+ QString name = additional.toList().at(KAddToCollectionNameIndex).toString();
+ if(count && name.length())
+ {
+ msg = hbTrId("txt_videos_dpopinfo_ln_videos_added_to_1", count).arg(name);
+ }
}
error = false;
break;
@@ -347,10 +410,9 @@
msg = hbTrId("txt_videos_info_all_videos_already_added_to_this_c");
break;
case VideoCollectionCommon::statusDeleteInProgress:
- format = hbTrId("txt_videos_dpopinfo_ln_videos_are_being_deleted");
if(additional.isValid())
{
- msg = format.arg(additional.toString());
+ msg = hbTrId("txt_videos_dpopinfo_ln_videos_are_being_deleted", additional.toInt());
}
error = false;
break;
@@ -362,7 +424,10 @@
{
if(error)
{
- HbMessageBox::warning(msg);
+ HbMessageBox *messageBox = new HbMessageBox(msg, HbMessageBox::MessageTypeWarning);
+ messageBox->setAttribute(Qt::WA_DeleteOnClose);
+ messageBox->setObjectName(VIEW_UTILS_OBJECT_NAME_MESSAGE_BOX_WARNING);
+ messageBox->show();
}
else
{
@@ -371,8 +436,10 @@
// only title can be two rows for HbNotificationDialog
infoNote->setTitleTextWrapping(Hb::TextWordWrap);
infoNote->setTitle(msg);
+ infoNote->setObjectName(VIEW_UTILS_OBJECT_NAME_STATUS_MSG);
infoNote->show();
}
}
}
+// End of file
--- a/videocollection/videocollectionview/src/videolistselectiondialog.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/src/videolistselectiondialog.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 25 %
+// Version : %version: 29 %
// INCLUDE FILES
#include <qgraphicsitem.h>
@@ -37,6 +37,12 @@
#include "videocollectionclient.h"
#include "videocollectiontrace.h"
+// Object names.
+const char* const SELECTION_DIALOG_OBJECT_NAME_LIST_WIDGET = "vc:SelectionDialogListWidget";
+const char* const SELECTION_DIALOG_OBJECT_NAME_NEW_COLLECTION = "vc:SelectionDialogNewCollection";
+const char* const SELECTION_DIALOG_OBJECT_NAME_BUTTON_OK = "vc:SelectionDialogButtonOk";
+const char* const SELECTION_DIALOG_OBJECT_NAME_BUTTON_CANCEL = "vc:SelectionDialogButtonCancel";
+
/**
* global qHash function required fo creating hash values for TMPXItemId -keys
*/
@@ -91,6 +97,7 @@
}
// disable list related animations to make dialog faster
mListWidget->setEnabledAnimations(HbAbstractItemView::None);
+ mListWidget->setObjectName(SELECTION_DIALOG_OBJECT_NAME_LIST_WIDGET);
}
}
@@ -175,6 +182,7 @@
if(!mListWidget)
{
mListWidget = new VideoListWidget(mUiLoader);
+ mListWidget->setObjectName(SELECTION_DIALOG_OBJECT_NAME_LIST_WIDGET);
if(mListWidget->initialize(*mModel) < 0)
{
ERROR(-1, "VideoListSelectionDialog::initDialog() failed to setup VideoListWidget.");
@@ -217,11 +225,13 @@
if(!mPrimaryAction)
{
mPrimaryAction = new HbAction(hbTrId("txt_common_button_ok"));
+ mPrimaryAction->setObjectName(SELECTION_DIALOG_OBJECT_NAME_BUTTON_OK);
addAction(mPrimaryAction);
}
if(!mSecondaryAction)
{
mSecondaryAction = new HbAction(hbTrId("txt_common_button_cancel"));
+ mSecondaryAction->setObjectName(SELECTION_DIALOG_OBJECT_NAME_BUTTON_CANCEL);
addAction(mSecondaryAction);
}
@@ -277,10 +287,8 @@
mCheckboxContainer->setVisible(false);
mListWidget->setSelectionMode(-1);
mListWidget->activate(VideoCollectionCommon::ELevelCategory);
- // need to set primaryaction disabled here in order for it
- // get correctly updated at modelReady(), where it will be enabled
- // if state would be same, no update will happen
- mPrimaryAction->setDisabled(true);
+ // New collection button is always enabled for collection selection.
+ mPrimaryAction->setDisabled(false);
}
else
{
@@ -290,10 +298,8 @@
mCheckboxContainer->setVisible(true);
mItemCount->setPlainText(tr("0/%1").arg(mModel->rowCount()));
mCheckBox->setChecked(false);
- // need to set primaryaction enabled here in order for it
- // get correctly updated at modelReady(), where it will be disabled
- // if state would be same, no update will happen
- mPrimaryAction->setDisabled(false);
+ // Add button will be enabled when videos are selected from the list.
+ mPrimaryAction->setDisabled(true);
}
mHeading->setPlainText(headingTxt);
// sort to make sure dialog has correctly filtered content
@@ -345,16 +351,18 @@
return;
}
QString albumName("");
- if( mTypeOfSelection == ESelectCollection )
+ if(mTypeOfSelection == ESelectCollection)
{
mTypeOfSelection = EAddToCollection;
- if( mSelectedAlbumId == TMPXItemId::InvalidId())
+ if(mSelectedAlbumId == TMPXItemId::InvalidId())
{
QString label(hbTrId("txt_videos_title_enter_name"));
HbInputDialog *dialog = new HbInputDialog();
+ dialog->setObjectName(SELECTION_DIALOG_OBJECT_NAME_NEW_COLLECTION);
dialog->setAttribute(Qt::WA_DeleteOnClose);
- dialog->getText(label, this, SLOT(newAlbumNameDialogFinished(HbAction *)),
- hbTrId("txt_videos_dialog_entry_new_collection"));
+ dialog->setPromptText(label);
+ dialog->setValue(hbTrId("txt_videos_dialog_entry_new_collection"));
+ dialog->open(this, SLOT(newAlbumNameDialogFinished(HbAction *)));
}
else
{
@@ -408,7 +416,10 @@
{
albumName = getSelectedName();
}
- QVariant data = albumName;
+ QList<QVariant> dataList;
+ dataList.append(QVariant(mSelectedVideos.count()));
+ dataList.append(QVariant(albumName));
+ QVariant data = dataList;
VideoCollectionViewUtils::instance().showStatusMsgSlot(
VideoCollectionCommon::statusVideosAddedToCollection,
data);
@@ -522,7 +533,6 @@
FUNC_LOG;
if(mTypeOfSelection == ESelectCollection)
{
- mPrimaryAction->setDisabled(false);
if(!mModel->rowCount())
{
// in case there are no user defined albums,
@@ -532,10 +542,6 @@
return;
}
}
- if(mTypeOfSelection != ESelectCollection)
- {
- mPrimaryAction->setDisabled(true);
- }
updateCounterSlot();
}
@@ -676,7 +682,7 @@
name = model->data(index, VideoCollectionCommon::KeyTitle).toString();
}
}
-
return name;
}
+// End of file
--- a/videocollection/videocollectionview/src/videolistview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/src/videolistview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 101 %
+// Version : %version: 108 %
// INCLUDE FILES
#include <xqserviceutil.h>
@@ -47,6 +47,10 @@
#include "mpxhbvideocommondefs.h"
#include "videocollectiontrace.h"
+// Object names.
+const char* const LIST_VIEW_OBJECT_NAME_CREATE_COLLECTION = "vc::ListViewInputDialogCreateCollection";
+const char* const LIST_VIEW_OBJECT_NAME_OPTIONS_MENU = "vc::ListViewOptionsMenu";
+
// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
@@ -58,6 +62,7 @@
, mUiLoader( uiLoader )
, mIsService( false )
, mModelReady( false )
+ , mViewReady( false )
, mHintLevel( VideoHintWidget::AllVideos )
, mVideoServices( 0 )
, mCurrentList( 0 )
@@ -118,14 +123,30 @@
connect(mVideoServices, SIGNAL(titleReady(const QString&)), this, SLOT(titleReadySlot(const QString&)));
}
}
+ QList<VideoCollectionUiLoaderParam> 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<VideoCollectionUiLoaderParam> 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,
@@ -175,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,
@@ -217,6 +232,17 @@
mUiLoader->loadPhase(VideoCollectionUiLoaderParam::LoadPhasePrimary);
params.clear();
+ if(videoListPhase == VideoCollectionUiLoaderParam::LoadPhasePrimary)
+ {
+ mCurrentList = mUiLoader->findWidget<VideoListWidget>(
+ DOCML_NAME_VC_VIDEOLISTWIDGET);
+ }
+ else
+ {
+ mCurrentList = mUiLoader->findWidget<VideoListWidget>(
+ DOCML_NAME_VC_COLLECTIONWIDGET);
+ }
+
return 0;
}
@@ -289,7 +315,10 @@
{
FUNC_LOG;
mUiLoader->loadPhase(VideoCollectionUiLoaderParam::LoadPhaseSecondary);
- emit doDelayeds();
+ if(mCurrentList)
+ {
+ mCurrentList->doDelayedsSlot();
+ }
}
// ---------------------------------------------------------------------------
@@ -302,8 +331,9 @@
// if mModelReady is false, then it means that this is the first time modelReady
// signal fires. Signaling that view is ready.
- if(!mModelReady)
+ if(!mViewReady)
{
+ mViewReady = true;
emit viewReady();
}
@@ -322,12 +352,10 @@
void VideoListView::layoutChangedSlot()
{
FUNC_LOG;
+ // Note that showHint should be executed before updateSubLabel as it
+ // can modify the mModelReady flag.
+ showHint();
updateSubLabel();
-
- if(mModelReady)
- {
- showHint();
- }
}
// ---------------------------------------------------------------------------
@@ -351,8 +379,9 @@
this, SLOT(handleAsyncStatusSlot(int, QVariant&)));
HbMenu *menu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU);
- if (menu)
+ if(menu)
{
+ menu->setObjectName(LIST_VIEW_OBJECT_NAME_OPTIONS_MENU);
menu->hide();
}
@@ -370,6 +399,8 @@
if(mCurrentList)
{
+ VideoCollectionCommon::TCollectionLevels level = mCurrentList->getLevel();
+ VideoCollectionViewUtils::saveWidgetLevel(level);
mCurrentList->deactivate();
}
}
@@ -407,9 +438,9 @@
int VideoListView::createToolbar()
{
FUNC_LOG;
- // Create actiongroup and add all actions to it. This ensures that only one is
+
+ // Create actiongroup and add all actions to it. This ensures that only one is
// active at certain moment.
-
if(!mToolbarViewsActionGroup && !mToolbarCollectionActionGroup)
{
mToolbarViewsActionGroup = new QActionGroup(this);
@@ -418,7 +449,7 @@
// create toolbar item actions
// All Videos tab
- mToolbarActions[ETBActionAllVideos] = createAction(":/images/qtg_mono_video_all.svg",
+ mToolbarActions[ETBActionAllVideos] = createAction("qtg_mono_video",
mToolbarViewsActionGroup, SLOT(openAllVideosViewSlot()));
// Collections tab
@@ -468,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());
}
@@ -514,30 +551,34 @@
VideoSortFilterProxyModel &model = mCurrentList->getModel();
- // prepare hint widget
+ if(!mModelReady && model.rowCount() == 0)
+ {
+ return;
+ }
+
+ mModelReady = true;
+
+ // decide if the hintwidget needs to be shown or not.
+ show = show && model.rowCount() == 0;
+
+ // If show is false, then hint widget is fetched only if it exists. If
+ // show is true then hint widget is also created and prepared if it does not exists.
VideoHintWidget *hintWidget =
mUiLoader->findWidget<VideoHintWidget>(
- DOCML_NAME_VC_VIDEOHINTWIDGET);
+ DOCML_NAME_VC_VIDEOHINTWIDGET, show);
+
if (hintWidget)
{
hintWidget->setLevel(mHintLevel);
- if (mModelReady &&
- model.rowCount() == 0)
+ if (show)
{
- show ? hintWidget->activate() : hintWidget->deactivate();
- }
- else
- {
- show = false;
- hintWidget->deactivate();
- }
- if(show)
- {
+ hintWidget->activate();
bool showHintBtns = (mCurrentList->getLevel() != VideoCollectionCommon::ELevelDefaultColl);
hintWidget->setButtonShown(showHintBtns);
}
else
{
+ hintWidget->deactivate();
hintWidget->setButtonShown(true);
}
}
@@ -595,7 +636,7 @@
model = &mCurrentList->getModel();
}
- if (model)
+ if (model && mModelReady)
{
int itemCount = model->rowCount();
@@ -658,39 +699,26 @@
int VideoListView::activateVideosView()
{
FUNC_LOG;
- VideoListWidget *videoList =
- mUiLoader->findWidget<VideoListWidget>(
- 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;
}
@@ -823,11 +851,10 @@
mCurrentList = videoListWidget;
mCurrentList->activate(VideoCollectionCommon::ELevelVideos);
- // since collection is not to be opened at this point,
- // we do not receive lauoutChanged for updating the hind -widget
- // if needed, need to show it here is needed
setHintLevel(VideoHintWidget::AllVideos);
- showHint();
+
+ // update the sublabel, as in most cases the data is already up to date.
+ updateSubLabel();
}
}
@@ -850,14 +877,13 @@
// activate video collection widget
mCurrentList = collectionWidget;
- mCurrentList->activate(VideoCollectionCommon::ELevelCategory);
-
- VideoSortFilterProxyModel &model = mCurrentList->getModel();
+ mCurrentList->activate(VideoCollectionCommon::ELevelCategory);
- VideoCollectionViewUtils::sortModel(&model, false, mCurrentList->getLevel());
-
- // the collection view is not empty, so we can hide the hint in advance.
+ // the collection view is not empty, so we should hide the hint in advance.
showHint(false);
+
+ // also update the sublabel immediatelly, as the data is up to date almost always.
+ updateSubLabel();
}
}
@@ -1023,7 +1049,10 @@
HbInputDialog *dialog = new HbInputDialog();
dialog->setAttribute(Qt::WA_DeleteOnClose);
- dialog->getText(label, this, SLOT(createCollectionDialogFinished(HbAction *)), text);
+ dialog->setObjectName(LIST_VIEW_OBJECT_NAME_CREATE_COLLECTION);
+ dialog->setPromptText(label);
+ dialog->setValue(text);
+ dialog->open(this, SLOT(createCollectionDialogFinished(HbAction *)));
}
// -------------------------------------------------------------------------------------------------
@@ -1033,7 +1062,6 @@
void VideoListView::createCollectionDialogFinished(HbAction *action)
{
FUNC_LOG;
- Q_UNUSED(action);
HbInputDialog *dialog = static_cast<HbInputDialog*>(sender());
@@ -1362,7 +1390,8 @@
}
// Start fetching content before changing.
- collectionContentWidget->getModel().openItem(itemId);
+ VideoSortFilterProxyModel &model = collectionContentWidget->getModel();
+ model.openItem(itemId);
// deactivat current widget.
mCurrentList->deactivate();
@@ -1373,14 +1402,11 @@
updateSubLabel();
- // setup correct sorting, collection content contains always a list of videos so we use
- // ELevelVideos as target for sorting
- VideoCollectionViewUtils::sortModel(&mCurrentList->getModel(), false, VideoCollectionCommon::ELevelVideos);
- mCurrentList->getModel().invalidate();
+ model.invalidate();
// update hint widget for correct content
+ mModelReady = model.rowCount() > 0;
setHintLevel(VideoHintWidget::Collection);
- showHint();
// update toolbar for albums, default categories don't have one.
if(level == VideoCollectionCommon::ELevelAlbum &&
@@ -1404,7 +1430,6 @@
}
// restore animations for collection content widget
collectionContentWidget->setEnabledAnimations(animationState);
-
}
// -------------------------------------------------------------------------------------------------
@@ -1417,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<VideoListWidget*>(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<VideoListWidget*>(object)->doDelayedsSlot();
+ }
}
else if (name.compare(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET) == 0)
{
@@ -1433,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<VideoListWidget*>(object)->doDelayedsSlot();
+ }
}
else if (name.compare(DOCML_NAME_OPTIONS_MENU) == 0)
{
@@ -1514,5 +1552,4 @@
HbMessageBox::information(tr("Not implemented yet"));
}
-// end of file
-
+// End of file
--- a/videocollection/videocollectionview/src/videolistwidget.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/src/videolistwidget.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -18,6 +18,7 @@
#include "videocollectiontrace.h"
#include "videolistwidget.h"
+#include <xqserviceutil.h>
#include <qcoreapplication.h>
#include <qtimer.h>
#include <hbscrollbar.h>
@@ -34,12 +35,28 @@
#include "videocollectionviewutils.h"
#include "videocollectionuiloader.h"
#include "videolistselectiondialog.h"
-#include "videoservices.h"
#include "videothumbnaildata.h"
#include "videosortfilterproxymodel.h"
#include "videocollectioncommon.h"
#include "mpxhbvideocommondefs.h"
+// Object names.
+const char* const LIST_WIDGET_OBJECT_NAME_CONTEXT_MENU = "vc:ListWidgetContextMenu";
+const char* const LIST_WIDGET_OBJECT_NAME_DELETE_VIDEO = "vc:ListWidgetMessageBoxDeleteVideo";
+const char* const LIST_WIDGET_OBJECT_NAME_RENAME_VIDEO = "vc:ListWidgetInputDialogRenameVideo";
+const char* const LIST_WIDGET_OBJECT_NAME_REMOVE_COLLECTION = "vc:ListWidgetMessageBoxRemoveCollection";
+const char* const LIST_WIDGET_OBJECT_NAME_NAV_KEY_BACK = "vc:ListWidgetNavKeyBack";
+const char* const LIST_WIDGET_OBJECT_NAME_NAV_KEY_QUIT = "vc:ListWidgetNavKeyQuit";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_ATTACH = "vc:ListWidgetActionAttach";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_PLAY = "vc:ListWidgetActionPlay";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS = "vc:ListWidgetActionDetails";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_DELETE = "vc:ListWidgetActionDelete";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_OPEN = "vc:ListWidgetActionOpen";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_ADD_TO = "vc:ListWidgetActionAddToCollection";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_REMOVE_FROM = "vc:ListWidgetActionRemoveFromCollection";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_RENAME = "vc:ListWidgetActionRename";
+const char* const LIST_WIDGET_OBJECT_NAME_ACTION_REMOVE_COLLECTION = "vc:ListWidgetActionRemoveCollection";
+
// Interval in ms to report the scroll position.
const int SCROLL_POSITION_TIMER_TIMEOUT = 100;
@@ -58,7 +75,8 @@
mContextMenu(0),
mSelectionMode(HbAbstractItemView::NoSelection),
mScrollPositionTimer(0),
-mUiLoader(uiLoader)
+mUiLoader(uiLoader),
+mService(VideoServices::ENoService)
{
FUNC_LOG_ADDR(this);
}
@@ -84,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
@@ -307,13 +336,12 @@
if (mIsService &&
mVideoServices &&
- mVideoServices->currentService() == VideoServices::EBrowse)
+ mService == VideoServices::EBrowse)
{
isBrowsingService = true;
}
return isBrowsingService;
-
}
// ---------------------------------------------------------------------------
@@ -330,22 +358,21 @@
if (isBrowsingService())
{
mNavKeyAction = new HbAction(Hb::QuitNaviAction);
- if (mNavKeyAction)
- {
- connect(
- mNavKeyAction, SIGNAL(triggered()),
- mVideoServices, SLOT(browsingEnded()));
- }
+ mNavKeyAction->setObjectName(LIST_WIDGET_OBJECT_NAME_NAV_KEY_QUIT);
+ connect(mNavKeyAction, SIGNAL(triggered()),
+ mVideoServices, SLOT(browsingEnded()));
}
else if (mModel)
{
if (VideoCollectionCommon::EModelTypeCollectionContent == mModel->getType())
{
mNavKeyAction = new HbAction(Hb::BackNaviAction);
+ mNavKeyAction->setObjectName(LIST_WIDGET_OBJECT_NAME_NAV_KEY_BACK);
}
else
{
mNavKeyAction = new HbAction(Hb::QuitNaviAction);
+ mNavKeyAction->setObjectName(LIST_WIDGET_OBJECT_NAME_NAV_KEY_QUIT);
}
}
}
@@ -384,6 +411,7 @@
HbMessageBox *messageBox = new HbMessageBox(text, HbMessageBox::MessageTypeQuestion);
messageBox->setAttribute(Qt::WA_DeleteOnClose);
+ messageBox->setObjectName(LIST_WIDGET_OBJECT_NAME_DELETE_VIDEO);
messageBox->open(this, SLOT(deleteItemDialogFinished(HbAction *)));
}
}
@@ -420,54 +448,70 @@
}
mContextMenu = new HbMenu();
- if (mContextMenu)
+ mContextMenu->setDismissPolicy(HbPopup::TapAnywhere);
+ mContextMenu->setObjectName(LIST_WIDGET_OBJECT_NAME_CONTEXT_MENU);
+
+ if (mService == VideoServices::EUriFetcher)
{
- mContextMenu->setDismissPolicy(HbPopup::TapAnywhere);
+ mContextMenuActions[EActionAttach] =
+ mContextMenu->addAction(hbTrId("txt_videos_menu_attach"), this, SLOT(openItemSlot()));
+ mContextMenuActions[EActionAttach]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_ATTACH);
+
+ mContextMenuActions[EActionPlay] =
+ mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
+ mContextMenuActions[EActionPlay]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_PLAY);
- VideoServices::TVideoService service = VideoServices::ENoService;
- if (mIsService &&
- mVideoServices)
- {
- service = mVideoServices->currentService();
- }
+ mContextMenuActions[EActionDetails] =
+ mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
+ mContextMenuActions[EActionDetails]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS);
+ }
+ else if (mService == VideoServices::EBrowse)
+ {
+ mContextMenuActions[EActionPlay] =
+ mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
+ mContextMenuActions[EActionPlay]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_PLAY);
+
+ mContextMenuActions[EActionDelete] =
+ mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
+ mContextMenuActions[EActionDelete]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DELETE);
- if (service == VideoServices::EUriFetcher)
- {
- mContextMenuActions[EActionAttach] =
- mContextMenu->addAction(hbTrId("txt_videos_menu_attach"), this, SLOT(openItemSlot()));
- mContextMenuActions[EActionPlay] =
- mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
- mContextMenuActions[EActionDetails] =
- mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
- }
- else if (service == VideoServices::EBrowse)
- {
- mContextMenuActions[EActionPlay] =
- mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
- mContextMenuActions[EActionDelete] =
- mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
- mContextMenuActions[EActionDetails] =
- mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
- }
- else
- {
- mContextMenuActions[EActionPlay] =
- mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
- mContextMenuActions[EActionOpen] =
- mContextMenu->addAction(hbTrId("txt_common_menu_open"), this, SLOT(openItemSlot()));
- mContextMenuActions[EActionAddToCollection] =
- mContextMenu->addAction(hbTrId("txt_videos_menu_add_to_collection"), this, SLOT(addToCollectionSlot()));
- mContextMenuActions[EActionRemove] =
- mContextMenu->addAction(hbTrId("txt_videos_menu_remove_from_collection"), this, SLOT(removeFromCollectionSlot()));
- mContextMenuActions[EActionRename] =
- mContextMenu->addAction(hbTrId("txt_common_menu_rename_item"), this, SLOT(renameSlot()));
- mContextMenuActions[EActionRemoveCollection] =
- mContextMenu->addAction(hbTrId("txt_videos_menu_remove_collection"), this, SLOT(removeCollectionSlot()));
- mContextMenuActions[EActionDelete] =
- mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
- mContextMenuActions[EActionDetails] =
- mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
- }
+ mContextMenuActions[EActionDetails] =
+ mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
+ mContextMenuActions[EActionDetails]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS);
+ }
+ else
+ {
+ mContextMenuActions[EActionPlay] =
+ mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
+ mContextMenuActions[EActionPlay]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_PLAY);
+
+ mContextMenuActions[EActionOpen] =
+ mContextMenu->addAction(hbTrId("txt_common_menu_open"), this, SLOT(openItemSlot()));
+ mContextMenuActions[EActionOpen]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_OPEN);
+
+ mContextMenuActions[EActionAddToCollection] =
+ mContextMenu->addAction(hbTrId("txt_videos_menu_add_to_collection"), this, SLOT(addToCollectionSlot()));
+ mContextMenuActions[EActionAddToCollection]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_ADD_TO);
+
+ mContextMenuActions[EActionRemove] =
+ mContextMenu->addAction(hbTrId("txt_videos_menu_remove_from_collection"), this, SLOT(removeFromCollectionSlot()));
+ mContextMenuActions[EActionRemove]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_REMOVE_FROM);
+
+ mContextMenuActions[EActionRename] =
+ mContextMenu->addAction(hbTrId("txt_common_menu_rename_item"), this, SLOT(renameSlot()));
+ mContextMenuActions[EActionRename]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_RENAME);
+
+ mContextMenuActions[EActionRemoveCollection] =
+ mContextMenu->addAction(hbTrId("txt_videos_menu_remove_collection"), this, SLOT(removeCollectionSlot()));
+ mContextMenuActions[EActionRemoveCollection]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_REMOVE_COLLECTION);
+
+ mContextMenuActions[EActionDelete] =
+ mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
+ mContextMenuActions[EActionDelete]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DELETE);
+
+ mContextMenuActions[EActionDetails] =
+ mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
+ mContextMenuActions[EActionDetails]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS);
}
}
@@ -522,7 +566,9 @@
{
mContextMenuActions[EActionAddToCollection]->setVisible(true);
mContextMenuActions[EActionDelete]->setVisible(true);
- } else {
+ }
+ else
+ {
mContextMenuActions[EActionAttach]->setVisible(true);
}
mContextMenuActions[EActionPlay]->setVisible(true);
@@ -609,7 +655,7 @@
{
if(mIsService &&
mVideoServices &&
- mVideoServices->currentService() == VideoServices::EUriFetcher &&
+ mService == VideoServices::EUriFetcher &&
mCurrentLevel != VideoCollectionCommon::ELevelCategory)
{
QVariant variant = mModel->data(index, VideoCollectionCommon::KeyFilePath);
@@ -705,26 +751,6 @@
}
// ---------------------------------------------------------------------------
-// panGesture
-// ---------------------------------------------------------------------------
-//
-void VideoListWidget::panGesture(const QPointF &point)
-{
- FUNC_LOG_ADDR(this);
- if (mContextMenu)
- {
- if (!mContextMenu->isVisible())
- {
- HbListView::panGesture(point);
- }
- }
- else
- {
- HbListView::panGesture(point);
- }
-}
-
-// ---------------------------------------------------------------------------
// doDelayedsSlot
// ---------------------------------------------------------------------------
//
@@ -793,7 +819,10 @@
HbInputDialog *dialog = new HbInputDialog();
dialog->setAttribute(Qt::WA_DeleteOnClose);
- dialog->getText(label, this, SLOT(renameDialogFinished(HbAction *)), albumName);
+ dialog->setObjectName(LIST_WIDGET_OBJECT_NAME_RENAME_VIDEO);
+ dialog->setPromptText(label);
+ dialog->setValue(albumName);
+ dialog->open(this, SLOT(renameDialogFinished(HbAction *)));
}
}
@@ -893,6 +922,7 @@
variant.toString());
HbMessageBox *messageBox = new HbMessageBox(text, HbMessageBox::MessageTypeQuestion);
messageBox->setAttribute(Qt::WA_DeleteOnClose);
+ messageBox->setObjectName(LIST_WIDGET_OBJECT_NAME_REMOVE_COLLECTION);
messageBox->open(this, SLOT(removeCollectionDialogFinished(HbAction *)));
}
}
--- a/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 38 %
+// Version : %version: 44 %
#define private public
#include "videoservices.h"
@@ -406,7 +406,7 @@
HbAction* allVideos = static_cast<HbAction*>(actions.at(0));
QVERIFY( allVideos->isCheckable() );
- QCOMPARE( allVideos->icon().iconName(), QString(":/images/qtg_mono_video_all.svg") );
+ QCOMPARE( allVideos->icon().iconName(), QString("qtg_mono_video") );
QVERIFY( allVideos->isChecked() );
HbAction* collections = static_cast<HbAction*>(actions.at(1));
@@ -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<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
@@ -517,6 +519,7 @@
// -browse service
// -other category
init();
+ videoListWidget = mUiLoader->findWidget<VideoListWidget>(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();
@@ -940,9 +943,18 @@
{
init();
mTestView->mModelReady = false;
+ mTestView->mViewReady = false;
connect( this, SIGNAL(testSignal()), mTestView, SLOT(modelReadySlot()) );
+ QSignalSpy spy(mTestView, SIGNAL(viewReady()));
emit testSignal();
QVERIFY(mTestView->mModelReady);
+ QVERIFY(mTestView->mViewReady);
+ QCOMPARE(spy.count(), 1);
+ spy.clear();
+
+ emit testSignal();
+ QCOMPARE(spy.count(), 0);
+
cleanup();
}
@@ -957,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());
////////////
@@ -1246,6 +1260,7 @@
{
init(true);
setRowCount(1);
+ mTestView->mModelReady = true;
connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot()));
connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const QModelIndex&)),
mTestView, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&)));
@@ -1283,35 +1298,49 @@
//
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<VideoHintWidget>(DOCML_NAME_VC_VIDEOHINTWIDGET);
+ hintWidget->deactivate();
/////
// hint widget showing
- // model not ready (need to use another slot for this)
+ // model not ready, row count zero.
mTestView->mModelReady = false;
+ setRowCount(0);
+ VideoListWidget *backup = mTestView->mCurrentList;
mTestView->mCurrentList = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET);
- connect(this, SIGNAL(testSignal()), mTestView, SLOT(openAllVideosViewSlot()));
- emit testSignal();
+ emit testLayoutChangedSignal();
+ QVERIFY(hintWidget->isVisible() == false);
+ QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+ mTestView->mCurrentList = backup;
+
+ // model not ready, row count not zero.
+ setRowCount(1);
+ emit testLayoutChangedSignal();
QVERIFY(hintWidget->isVisible() == false );
QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
- disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(openAllVideosViewSlot()));
+ QVERIFY(mTestView->mModelReady);
// model ready, row count not zero
mTestView->mModelReady = true;
- setRowCount(1);
emit testLayoutChangedSignal();
QVERIFY(hintWidget->isVisible() == false );
QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
@@ -1322,7 +1351,7 @@
QVERIFY(hintWidget->isVisible() == true );
QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
- // model ready, row count is zero show to be false
+ // model ready, row count is zero, show to be false
connect(this, SIGNAL(testSignal()), mTestView, SLOT(openCollectionViewSlot()));
emit testSignal();
QVERIFY(hintWidget->isVisible() == false );
@@ -1333,6 +1362,7 @@
////////
// toolbar setup
+ mTestView->activateView(TMPXItemId::InvalidId());
mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->setVisible(true);
// mToolbarViewsActionGroup is null
@@ -1453,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();
@@ -1519,39 +1553,49 @@
init(false);
QVERIFY(connect(this, SIGNAL(testSignal()), mTestView, SLOT(createCollectionSlot())));
+ HbInputDialog *dialog = new HbInputDialog();
+
// not initialized, no mCurrentList
emit testSignal();
- QCOMPARE(HbInputDialog::mGetTextCallCount, 0);
+ QCOMPARE(HbInputDialog::mOpenCallCount, 0);
QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "");
QVERIFY(mTestView->initializeView() == 0);
mTestView->activateView(TMPXItemId::InvalidId());
// dialog canceled
- HbInputDialog::mGetTextFails = true;
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mOpenCallCount = 0;
emit testSignal();
- QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
+ dialog->emitDialogFinished(mTestView, SLOT(createCollectionDialogFinished(HbAction *)), 1);
QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "");
+ QCOMPARE(HbInputDialog::mValueCallCount, 1);
+ QCOMPARE(HbInputDialog::mOpenCallCount, 1);
// empty name
- HbInputDialog::mGetTextFails = false;
- HbInputDialog::mGetTextCallCount = 0;
- HbInputDialog::mGetTextReturnValue = "";
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mValueReturnValue = "";
+ HbInputDialog::mOpenCallCount = 0;
emit testSignal();
- QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
+ dialog->emitDialogFinished(mTestView, SLOT(createCollectionDialogFinished(HbAction *)), 0);
QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "");
+ QCOMPARE(HbInputDialog::mValueCallCount, 1);
+ QCOMPARE(HbInputDialog::mOpenCallCount, 1);
// Good case.
- HbInputDialog::mGetTextReturnValue = "testAlbum";
- HbInputDialog::mGetTextCallCount = 0;
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mValueReturnValue = "testAlbum";
+ HbInputDialog::mOpenCallCount = 0;
emit testSignal();
- QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
+ dialog->emitDialogFinished(mTestView, SLOT(createCollectionDialogFinished(HbAction *)), 0);
QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "testAlbum");
+ QCOMPARE(HbInputDialog::mValueCallCount, 1);
+ QCOMPARE(HbInputDialog::mOpenCallCount, 1);
- HbInputDialog::mGetTextCallCount = 0;
- HbInputDialog::mGetTextReturnValue = QString();
- VideoSortFilterProxyModelData::mLastAddedAlbumName = "";
-
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mValueReturnValue = "";
+ HbInputDialog::mOpenCallCount = 0;
+ VideoSortFilterProxyModelData::mLastAddedAlbumName = "";
disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(createCollectionSlot()));
cleanup();
}
@@ -1637,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;
--- a/videocollection/videocollectionview/tsrc/testlistwidget/inc/testlistwidget.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testlistwidget/inc/testlistwidget.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 25 %
+// Version : %version: 26 %
#ifndef __TESTLISTWIDGET_H__
#define __TESTLISTWIDGET_H__
@@ -106,11 +106,6 @@
void testLongPressedSlot();
/**
- * verifies panGesture
- */
- void testPanGesture();
-
- /**
* verifies setContextMenu
*/
void testSetContextMenu();
--- a/videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 47 %
+// Version : %version: 51 %
#include <qmap.h>
#include <vcxmyvideosdefs.h>
@@ -86,14 +86,6 @@
{
VideoListWidget::longPressedSlot(item, point);
}
-
- /**
- * calls pangesture
- */
- void callPanGesture(const QPointF &point)
- {
- VideoListWidget::panGesture(point);
- }
};
// ---------------------------------------------------------------------------
@@ -460,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);
@@ -474,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);
@@ -653,38 +645,6 @@
}
// ---------------------------------------------------------------------------
-// testPanGesture
-// ---------------------------------------------------------------------------
-//
-void TestListWidget::testPanGesture()
-{
- QPointF point(1,1);
- // no context menu
- mTestWidget->callPanGesture(point);
- QVERIFY(HbListView::mPanGesturePoint == point);
-
- // create context menu
- VideoCollectionWrapper &wrapper = VideoCollectionWrapper::instance();
- VideoSortFilterProxyModel *model = wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos);
- mTestWidget->initialize(*model);
- connect(this, SIGNAL(testSignal()), mTestWidget, SLOT(doDelayedsSlot()));
- emit testSignal();
- disconnect(this, SIGNAL(testSignal()), mTestWidget, SLOT(doDelayedsSlot()));
-
- HbListView::mPanGesturePoint = QPointF();
-
- // context menu visible
- mTestWidget->mContextMenu->setVisible(true);
- mTestWidget->callPanGesture(point);
- QVERIFY(HbListView::mPanGesturePoint != point);
-
- // context menu not visible
- mTestWidget->mContextMenu->setVisible(false);
- mTestWidget->callPanGesture(point);
- QVERIFY(HbListView::mPanGesturePoint == point);
-}
-
-// ---------------------------------------------------------------------------
// testSetContextMenu
// ---------------------------------------------------------------------------
//
@@ -818,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());
@@ -901,7 +861,10 @@
mTestWidget->initialize(*model);
connect(this, SIGNAL(testSignal()), mTestWidget, SLOT(deleteItemSlot()));
+ HbMessageBox *box = new HbMessageBox();
+
// no model
+ VideoListDataModelData::mDataAccessCount = 0;
VideoSortFilterProxyModel *tmp = mTestWidget->mModel;
mTestWidget->mModel = 0;
emit testSignal();
@@ -912,6 +875,7 @@
mTestWidget->mModel = tmp;
// data fetched from item is invalid
+ VideoListDataModelData::mDataAccessCount = 0;
setRowCount(1);
mTestWidget->mCurrentIndex = model->index(0, 0, QModelIndex());
emit testSignal();
@@ -921,6 +885,7 @@
setRowCount(0);
// data is valid
+ VideoListDataModelData::mDataAccessCount = 0;
setRowCount(1);
QVariant data = QString("test");
VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data);
@@ -929,7 +894,8 @@
// messagebox question returns false
HbMessageBoxData::mQuestionReturnValue = false;
emit testSignal();
- QVERIFY(VideoListDataModelData::dataAccessCount() == 2);
+ box->emitDialogFinished(mTestWidget, SLOT(deleteItemDialogFinished(HbAction *)), 1);
+ QVERIFY(VideoListDataModelData::dataAccessCount() == 1);
QVERIFY(!HbMessageBoxData::mLatestTxt.isEmpty());
QVERIFY(!VideoSortFilterProxyModelData::mLastIndex.isValid());
HbMessageBoxData::mLatestTxt = "";
@@ -938,10 +904,12 @@
VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data);
// messagebox question returns true
+ VideoListDataModelData::mDataAccessCount = 0;
VideoSortFilterProxyModelData::mDeleteItemsFails = false;
HbMessageBoxData::mQuestionReturnValue = true;
emit testSignal();
- QVERIFY(VideoListDataModelData::dataAccessCount() == 3);
+ box->emitDialogFinished(mTestWidget, SLOT(deleteItemDialogFinished(HbAction *)), 0);
+ QVERIFY(VideoListDataModelData::dataAccessCount() == 1);
QVERIFY(!HbMessageBoxData::mLatestTxt.isEmpty());
QVERIFY(VideoSortFilterProxyModelData::mLastIndex.row() == 0);
@@ -957,6 +925,8 @@
VideoCollectionWrapper &wrapper = VideoCollectionWrapper::instance();
VideoSortFilterProxyModel *model = wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos);
+ HbInputDialog *dialog = new HbInputDialog();
+
connect(this, SIGNAL(testSignal()), mTestWidget, SLOT(renameSlot()));
VideoSortFilterProxyModelData::reset();
@@ -965,70 +935,82 @@
// Good case
VideoSortFilterProxyModelData::mLastAlbumNameInRename = "";
- HbInputDialog::mGetTextReturnValue = "renamedVideo";
- HbInputDialog::mGetTextCallCount = 0;
+ HbInputDialog::mValueReturnValue = "renamedVideo";
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mOpenCallCount = 0;
setRowCount(1);
VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeAlbum));
QVariant 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 == "renamedVideo");
- QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
-
+ QCOMPARE(HbInputDialog::mOpenCallCount, 1);
+ QVERIFY(HbInputDialog::mValueCallCount == 1);
+
// New name is same as previous
- HbInputDialog::mGetTextReturnValue = QString();
- HbInputDialog::mGetTextCallCount = 0;
+ HbInputDialog::mValueReturnValue = "";
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mOpenCallCount = 0;
VideoSortFilterProxyModelData::mLastAlbumNameInRename = "";
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);
+
+ // Dialog canceled
+ HbInputDialog::mValueReturnValue = "";
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mOpenCallCount = 0;
+ VideoSortFilterProxyModelData::mLastAlbumNameInRename = "";
+ data = QString("albumName");
+ VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data);
+ mTestWidget->mCurrentIndex = model->index(0, 0, QModelIndex());
+ emit testSignal();
+ dialog->emitDialogFinished(mTestWidget, SLOT(renameDialogFinished(HbAction *)), 1);
+ QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == "");
+ QCOMPARE(HbInputDialog::mOpenCallCount, 1);
+ QVERIFY(HbInputDialog::mValueCallCount == 1);
- // Getting name from input dialog fails
- HbInputDialog::mGetTextFails = true;
+ // New name is empty.
VideoSortFilterProxyModelData::mLastAlbumNameInRename = "";
- HbInputDialog::mGetTextReturnValue = QString();
- HbInputDialog::mGetTextCallCount = 0;
+ HbInputDialog::mValueReturnValue = "";
+ HbInputDialog::mValueCallCount = 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::mOpenCallCount, 1);
+ QVERIFY(HbInputDialog::mValueCallCount == 1);
+
+ // Item is video
+ VideoSortFilterProxyModelData::mItemIds.clear();
+ VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeVideo));
+ VideoSortFilterProxyModelData::mLastAlbumNameInRename = "";
+ HbInputDialog::mValueReturnValue = "";
+ HbInputDialog::mValueCallCount = 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, 1);
-
- // New name is empty.
- HbInputDialog::mGetTextFails = false;
- VideoSortFilterProxyModelData::mLastAlbumNameInRename = "";
- HbInputDialog::mGetTextReturnValue = "";
- HbInputDialog::mGetTextCallCount = 0;
- data = QString("albumName");
- VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, data);
- mTestWidget->mCurrentIndex = model->index(0, 0, QModelIndex());
- emit testSignal();
- QVERIFY(VideoSortFilterProxyModelData::mLastAlbumNameInRename == "");
- QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
-
- // Item is video
- VideoSortFilterProxyModelData::mItemIds.clear();
- VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeVideo));
- HbInputDialog::mGetTextFails = false;
- VideoSortFilterProxyModelData::mLastAlbumNameInRename = "";
- HbInputDialog::mGetTextReturnValue = "";
- HbInputDialog::mGetTextCallCount = 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::mGetTextReturnValue = "renamedVideo";
- HbInputDialog::mGetTextCallCount = 0;
+ HbInputDialog::mValueReturnValue = "renamedVideo";
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mOpenCallCount = 0;
VideoSortFilterProxyModelData::mItemIds.clear();
VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeAlbum));
data = QString("albumName");
@@ -1039,12 +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::mGetTextReturnValue = "renamedVideo";
- HbInputDialog::mGetTextCallCount = 0;
+ HbInputDialog::mValueReturnValue = "renamedVideo";
+ HbInputDialog::mValueCallCount = 0;
+ HbInputDialog::mOpenCallCount = 0;
VideoSortFilterProxyModelData::mItemIds.clear();
VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0, KVcxMvcMediaTypeAlbum));
data = QVariant();
@@ -1052,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()));
}
@@ -1233,6 +1216,7 @@
HbListView::mCurrentIndex = model->index(0, 0, QModelIndex());
connect(this, SIGNAL(testSignal()), mTestWidget, SLOT(removeCollectionSlot()));
+ HbMessageBox *box = new HbMessageBox();
setRowCount(2);
TMPXItemId savedId = TMPXItemId(1,1);
@@ -1258,6 +1242,7 @@
// valid data
VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, "test");
emit testSignal();
+ box->emitDialogFinished(mTestWidget, SLOT(removeCollectionDialogFinished(HbAction *)), 0);
QVERIFY(VideoSortFilterProxyModelData::mLastIndex.isValid());
QVERIFY(VideoSortFilterProxyModelData::mLastIndex.row() == 1);
QVERIFY(!HbMessageBoxData::mLatestTxt.isEmpty());
@@ -1267,6 +1252,7 @@
HbMessageBoxData::mLatestTxt = "";
HbMessageBoxData::mQuestionReturnValue = false;
emit testSignal();
+ box->emitDialogFinished(mTestWidget, SLOT(removeCollectionDialogFinished(HbAction *)), 1);
QVERIFY(!VideoSortFilterProxyModelData::mLastIndex.isValid());
QVERIFY(!HbMessageBoxData::mLatestTxt.isEmpty());
--- a/videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -211,6 +211,15 @@
mTestObject->addData(params,
this,
SLOT(handleObjectReady(QObject*, const QString&)));
+
+ // first test the findWidget with loadIfNotFound == false.
+ bannerWidget =
+ mTestObject->findWidget<HbGroupBox>(
+ DOCML_NAME_VC_HEADINGBANNER, false);
+ QVERIFY(!bannerWidget);
+ QVERIFY(!mObjects.contains(DOCML_NAME_VC_HEADINGBANNER));
+
+ // then with default value.
bannerWidget =
mTestObject->findWidget<HbGroupBox>(
DOCML_NAME_VC_HEADINGBANNER);
@@ -295,6 +304,13 @@
// -object added in loading queue
params.append(addToCollectionParam);
mTestObject->addData(params, this, SLOT(handleObjectReady(QObject*, const QString&)));
+
+ // first test with loadIfNotFound == false
+ addToCollection = mTestObject->findObject<HbAction>(DOCML_NAME_ADD_TO_COLLECTION, false);
+ QVERIFY(!addToCollection);
+ QVERIFY(!mObjects.contains(DOCML_NAME_ADD_TO_COLLECTION));
+
+ // then with default value.
addToCollection = mTestObject->findObject<HbAction>(DOCML_NAME_ADD_TO_COLLECTION);
QVERIFY(addToCollection);
QVERIFY(mObjects.contains(DOCML_NAME_ADD_TO_COLLECTION));
@@ -849,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<HbView*>(object);
if (view)
{
--- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h Wed Jun 23 17:22:59 2010 +0100
@@ -79,7 +79,11 @@
* verifies sortModel
*/
void testSortModel();
-
+
+ /**
+ * verifies saveWidgetLevel & loadWidgetLevel
+ */
+ void testSaveAndLoadWidgetLevel();
};
--- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -27,6 +27,8 @@
#include "hbmessageboxdata.h"
#include "hbnotificationdialog.h"
#include "hblistview.h"
+#include <hbactivitymanager.h>
+#include <hbapplication.h>
#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<QVariant> 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
--- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/testvideocollectionviewutils.pro Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/testvideocollectionviewutils.pro Wed Jun 23 17:22:59 2010 +0100
@@ -53,7 +53,7 @@
\ # sources needed in test
../../src/videocollectionviewutils.cpp
-TESTEDCLASS = videocollectionviewutils.cpp
+TESTEDCLASS = videocollectionviewutils
include(../../../tsrc/stubs/stubs.pro)
--- a/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -22,10 +22,11 @@
#include "hbdocumentloader.h"
#include "hbstackedwidget.h"
#include "hbcheckbox.h"
+#include "hbinputdialog.h"
#include "hbdialog.h"
#include "hbwidget.h"
#include "hblistview.h"
-#include "hbinputdialog.h"
+#include "hbmessagebox.h"
#include "testvideolistselectiondialog.h"
@@ -210,6 +211,8 @@
{
VideoCollectionWrapperData::reset();
VideoListWidgetData::reset();
+ cleanup();
+ init();
QVERIFY(mInitOk == true);
QVERIFY(mModel != 0);
@@ -590,33 +593,35 @@
QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
+ HbInputDialog *dialog = new HbInputDialog();
VideoCollectionViewUtilsData::mLastError = -1;
// mSelectedAlbumId == TMPXItemId::InvalidId())
mpxId = TMPXItemId::InvalidId();
- // queryNewAlbumSelected does not set selected
- HbInputDialog::mGetTextFails = true;
+ // query for new album name does not set selected
mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
VideoSortFilterProxyModelData::reset();
VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId::InvalidId();
- mTestObject->exec();
+ mTestObject->exec();
+ dialog->emitDialogFinished(mTestObject, SLOT(newAlbumNameDialogFinished(HbAction *)), 1); // No selected.
// type of selection does not change
- QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ESelectCollection);
+ QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
// since there's no selected videos, status code does not change
QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
- // queryNewAlbumSelected sets selected
- HbInputDialog::mGetTextFails = false;
+ // query for new album name sets selected
mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
VideoSortFilterProxyModelData::reset();
VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId(1,2);
+ HbInputDialog::mValueReturnValue = QVariant(QString("testname"));
mTestObject->exec();
+ dialog->emitDialogFinished(mTestObject, SLOT(newAlbumNameDialogFinished(HbAction *)), 0); // Yes selected.
// type of selection has changed
QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
// videos added into collection
@@ -679,13 +684,13 @@
VideoCollectionViewUtilsData::mLastError = -1;
// selected album exist, selected videos exists, name for selected album exist
// (using ESelectCollection type to fetch albumname)
- HbInputDialog::mGetTextFails = false;
mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
VideoSortFilterProxyModelData::reset();
VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId(1,2);
- mTestObject->exec();
+ mTestObject->exec();
+ dialog->emitDialogFinished(mTestObject, SLOT(newAlbumNameDialogFinished(HbAction *)), 0); // Yes selected.
// type of selection has changed
QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
// videos added into collection
--- a/videocollection/videocollectionwrapper/data/icons/pri_large_video.svg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
- xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- x="0px" y="0px" width="98px" height="98px" viewBox="0 0 98 98" enable-background="new 0 0 98 98" xml:space="preserve">
-<defs>
-</defs>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="48.9995" y1="19" x2="48.9995" y2="79.0015">
- <stop offset="0" style="stop-color:#757575"/>
- <stop offset="0.2424" style="stop-color:#000000"/>
- <stop offset="0.8606" style="stop-color:#000000"/>
- <stop offset="1" style="stop-color:#363636"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M84.5,19h-71c-1.105,0-2,0.896-2,2v56.001c0,1.105,0.895,2,2,2h71c1.104,0,2-0.895,2-2V21
- C86.5,19.896,85.603,19,84.5,19z M20.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4
- c0.549,0,1,0.451,1,1V75.001z M20.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1
- V25z M29.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M29.5,25
- c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M38.5,75.001c0,0.551-0.451,1-1,1
- h-4c-0.55,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M38.5,25c0,0.551-0.451,1-1,1h-4
- c-0.55,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M47.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1
- v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M47.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2
- c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M56.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1
- h4c0.549,0,1,0.451,1,1V75.001z M56.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4
- c0.549,0,1,0.451,1,1V25z M65.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1
- V75.001z M65.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M74.5,75.001
- c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M74.5,25c0,0.551-0.451,1-1,1
- h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M83.5,75.001c0,0.551-0.451,1-1,1h-4
- c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M83.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1
- v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z"/>
-<path opacity="0.55" fill="#FFFFFF" d="M84.5,19h-71c-1.105,0-2,0.896-2,2v1c0-1.104,0.895-2,2-2h71c1.104,0,2,0.896,2,2v-1
- C86.5,19.896,85.603,19,84.5,19z"/>
-<path opacity="0.1" fill="#FFFFFF" d="M13.5,79.001h71c1.104,0,2-0.895,2-2v-1c0,1.105-0.896,2-2,2h-71c-1.105,0-2-0.895-2-2v1
- C11.5,78.106,12.395,79.001,13.5,79.001z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="48.9995" y1="29.1592" x2="48.9995" y2="69.1606">
- <stop offset="0" style="stop-color:#000000"/>
- <stop offset="0.5" style="stop-color:#666666"/>
- <stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<rect x="11.5" y="29" fill="url(#SVGID_2_)" width="75" height="40.001"/>
-<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="49" y1="69.001" x2="49" y2="29.0005">
- <stop offset="0" style="stop-color:#36B5FF"/>
- <stop offset="1" style="stop-color:#1B66D8"/>
-</linearGradient>
-<path fill="url(#SVGID_3_)" d="M83.5,67.001c0,1.1-0.9,2-2,2h-65c-1.1,0-2-0.9-2-2V31c0-1.1,0.9-2,2-2h65c1.1,0,2,0.9,2,2V67.001z"
- />
-<path opacity="0.5" fill="#FFFFFF" d="M81.5,67.001h-65c-1.1,0-2,0.1-2-1l0,0c0,1.1,0.9,2,2,2h65c1.1,0,2-0.9,2-2l0,0
- C83.5,67.101,82.599,67.001,81.5,67.001z"/>
-<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="48.9995" y1="29" x2="48.9995" y2="69.1607">
- <stop offset="0" style="stop-color:#000000"/>
- <stop offset="1" style="stop-color:#404040"/>
-</linearGradient>
-<path fill="url(#SVGID_4_)" d="M81.5,30c0.551,0,1,0.449,1,1v36.001c0,0.553-0.449,1-1,1h-65c-0.551,0-1-0.447-1-1V31
- c0-0.551,0.449-1,1-1H81.5 M81.5,29h-65c-1.1,0-2,0.9-2,2v36.001c0,1.1,0.9,2,2,2h65c1.1,0,2-0.9,2-2V31
- C83.5,29.9,82.599,29,81.5,29L81.5,29z"/>
-<path opacity="0.2" fill="#FFFFFF" d="M81.5,41.001V33c0-1.104-0.896-2-2-2h-61c-1.105,0-2,0.896-2,2v13.001L81.5,41.001z"/>
-<rect fill="none" width="98" height="98.001"/>
-</svg>
--- a/videocollection/videocollectionwrapper/data/videocollectionwrapper.qrc Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/icons" >
- <file alias="default_thumbnail_video.svg" >icons/pri_large_video.svg</file>
- </qresource>
-</RCC>
--- a/videocollection/videocollectionwrapper/inc/videodatasignalreceiver.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/inc/videodatasignalreceiver.h Wed Jun 23 17:22:59 2010 +0100
@@ -112,6 +112,11 @@
* @param itemId, item that has been modified.
*/
virtual void itemModifiedSlot(const TMPXItemId &itemId) = 0;
+
+ /**
+ * Signalled when list is complete.
+ */
+ virtual void listCompleteSlot() = 0;
};
#endif // __VIDEOMODELOBSERVER_H
--- a/videocollection/videocollectionwrapper/inc/videolistdatamodel_p.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/inc/videolistdatamodel_p.h Wed Jun 23 17:22:59 2010 +0100
@@ -183,6 +183,11 @@
* @param itemId, item that has been modified.
*/
void itemModifiedSlot(const TMPXItemId &itemId);
+
+ /**
+ * Signalled when list is complete.
+ */
+ void listCompleteSlot();
public: // services
--- a/videocollection/videocollectionwrapper/inc/videothumbnaildata_p.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/inc/videothumbnaildata_p.h Wed Jun 23 17:22:59 2010 +0100
@@ -179,6 +179,17 @@
*
*/
const QIcon* defaultThumbnail(TMPXItemId mediaId);
+
+ /**
+ * Loads icon from file or resource, the icon is scaled to size of the
+ * video list view thumbnail.
+ *
+ * @param iconName name of the file or resource.
+ *
+ * @return HbIcon the icon load from resource or file.
+ *
+ */
+ HbIcon loadIcon(QString iconName);
/**
* Starts timer that continues the background thumbnail fetching at timeout.
@@ -258,11 +269,6 @@
* - data is the actual thumbnail data.
*/
QHash<TMPXItemId, HbIcon> mDefaultThumbnails;
-
- /**
- * Default thumbnail for a category.
- */
- QIcon *mDefaultTnCategory;
/**
* Current model, set at call to startBackgroundFetching.
--- a/videocollection/videocollectionwrapper/src/videocollectionlistener.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/src/videocollectionlistener.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 32 %
+// Version : %version: 33 %
// INCLUDE FILES
#include <mpxmediageneraldefs.h>
@@ -120,19 +120,25 @@
if(categoryOrAlbumVideoList)
{
+ // checks if there are new videos in the list that are not yet in our data model.
+ mSignalReceiver.newVideoListSlot(array);
+
mSignalReceiver.albumListAvailableSlot(pathId, array);
-
- // Update also all video list in case this is a default category.
- if(pathId.iId2 == KVcxMvcMediaTypeCategory)
- {
- mSignalReceiver.newVideoListSlot(array);
- }
}
else
{
mSignalReceiver.newVideoListSlot(array);
}
- }
+
+ int listCompleted(-1);
+ if(mVideoUtils.mediaValue<int>(&aEntries, KVcxMediaMyVideosInt32Value, listCompleted))
+ {
+ if(listCompleted == EVcxMyVideosVideoListComplete)
+ {
+ mSignalReceiver.listCompleteSlot();
+ }
+ }
+}
// -----------------------------------------------------------------------------
// HandleOpenL
--- a/videocollection/videocollectionwrapper/src/videodatacontainer.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/src/videodatacontainer.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -14,7 +14,7 @@
* Description: VideoDataContainer class declaration*
*/
-// Version : %version: %
+// Version : %version: 14 %
// INCLUDE FILES
#include <mpxmediageneraldefs.h>
@@ -119,6 +119,7 @@
// if item exist, do not add into container
if(iter != mMediaData.end())
{
+ delete media;
return;
}
mMediaIds.append(mediaId);
--- a/videocollection/videocollectionwrapper/src/videolistdatamodel_p.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/src/videolistdatamodel_p.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 37 %
+// Version : %version: 38 %
// INCLUDE FILES
#include <hbglobal.h>
@@ -451,8 +451,8 @@
// signal that album has been updated
emit q_ptr->albumChanged();
- // signal that model is ready
- emit q_ptr->modelReady();
+ // signal that model has changed.
+ emit q_ptr->modelChanged();
}
@@ -497,9 +497,8 @@
{
q_ptr->beginInsertRows(QModelIndex(), startIndex, endIndex);
q_ptr->endInsertRows();
+ emit q_ptr->modelChanged();
}
-
- emit q_ptr->modelReady();
}
// -----------------------------------------------------------------------------
@@ -890,4 +889,13 @@
}
}
+// -----------------------------------------------------------------------------
+// listCompleteSlot
+// -----------------------------------------------------------------------------
+//
+void VideoListDataModelPrivate::listCompleteSlot()
+{
+ emit q_ptr->modelReady();
+}
+
// End of file
--- a/videocollection/videocollectionwrapper/src/videosortfilterproxymodel.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/src/videosortfilterproxymodel.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 65 %
+// Version : %version: 66 %
// INCLUDE FILES
#include <qstringlist.h>
@@ -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;
}
--- a/videocollection/videocollectionwrapper/src/videothumbnaildata_p.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/src/videothumbnaildata_p.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,12 +15,13 @@
*
*/
-// Version : %version: 21 %
+// Version : %version: 24 %
// INCLUDE FILES
#include <qapplication.h>
#include <qpixmap.h>
#include <qtimer.h>
+#include <qpainter.h>
#include <mpxmediageneraldefs.h>
#include <hbicon.h>
@@ -45,12 +46,16 @@
// Priority for background thumbnail fetches.
const int BACKGROUND_FETCH_PRIORITY = 3000;
+// Size for default thumbnail, these match with large thumbnail in lists.
+const int DEFAULT_THUMBNAIL_WIDTH = 114;
+const int DEFAULT_THUMBNAIL_HEIGHT = 64;
+
/**
* global qHash function required fo creating hash values for TMPXItemId -keys
*/
inline uint qHash(TMPXItemId key)
-{
- QPair<uint, uint> keyPair(key.iId1, key.iId2);
+{
+ QPair<uint, uint> keyPair(key.iId1, key.iId2);
return qHash(keyPair);
}
@@ -430,7 +435,7 @@
{
if(!mDefaultThumbnails.contains(defaultIdVideo))
{
- mDefaultThumbnails[defaultIdVideo] = HbIcon(":/icons/default_thumbnail_video.svg");
+ mDefaultThumbnails[defaultIdVideo] = loadIcon("qtg_large_video");
}
return &mDefaultThumbnails[defaultIdVideo].qicon();
}
@@ -441,7 +446,7 @@
{
if(!mDefaultThumbnails.contains(defaultIdAlbum))
{
- mDefaultThumbnails[defaultIdAlbum] = HbIcon("qtg_large_video_collection");
+ mDefaultThumbnails[defaultIdAlbum] = loadIcon("qtg_large_video_collection");
}
return &mDefaultThumbnails[defaultIdAlbum].qicon();
}
@@ -453,7 +458,7 @@
{
if(!mDefaultThumbnails.contains(defaultIdDownloads))
{
- mDefaultThumbnails[defaultIdDownloads] = HbIcon("qtg_large_video_download");
+ mDefaultThumbnails[defaultIdDownloads] = loadIcon("qtg_large_video_download");
}
return &mDefaultThumbnails[defaultIdDownloads].qicon();
}
@@ -462,7 +467,7 @@
{
if(!mDefaultThumbnails.contains(defaultIdCaptured))
{
- mDefaultThumbnails[defaultIdCaptured] = HbIcon("qtg_large_video_capture");
+ mDefaultThumbnails[defaultIdCaptured] = loadIcon("qtg_large_video_capture");
}
return &mDefaultThumbnails[defaultIdCaptured].qicon();
}
@@ -471,7 +476,7 @@
{
if(!mDefaultThumbnails.contains(defaultIdAlbum))
{
- mDefaultThumbnails[defaultIdAlbum] = HbIcon("qtg_large_video_collection");
+ mDefaultThumbnails[defaultIdAlbum] = loadIcon("qtg_large_video_collection");
}
return &mDefaultThumbnails[defaultIdAlbum].qicon();
}
@@ -480,6 +485,56 @@
}
// -----------------------------------------------------------------------------
+// VideoThumbnailDataPrivate::loadIcon()
+// -----------------------------------------------------------------------------
+//
+HbIcon VideoThumbnailDataPrivate::loadIcon(QString iconName)
+{
+ HbIcon icon(iconName);
+
+ if(!icon.isNull())
+ {
+ QPixmap dest = QPixmap(DEFAULT_THUMBNAIL_WIDTH, DEFAULT_THUMBNAIL_HEIGHT);
+
+ // Scale the icon into the thumbnail area.
+ QPixmap source = icon.pixmap();
+ // Smooth scaling is very expensive (size^2). Therefore we reduce the size
+ // to 2x of the destination size and using fast transformation before doing final smooth scaling.
+ if(source.size().width() > (6*dest.width()) || source.size().height() > (6*dest.height()))
+ {
+ QSize intermediate_size = QSize( dest.width() * 2, dest.height() * 2 );
+ source = source.scaled(intermediate_size, Qt::KeepAspectRatio, Qt::FastTransformation );
+ }
+ QPixmap scaled = source.scaled(dest.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
+
+ // Center the icon.
+ int xDiff = 0;
+ int yDiff = 0;
+ if(dest.width() > scaled.width())
+ {
+ xDiff = (dest.width() - scaled.width()) / 2;
+ }
+ if(dest.height() > scaled.height())
+ {
+ yDiff = (dest.height() - scaled.height()) / 2;
+ }
+
+ // Paint it.
+ QPainter painter(&dest);
+ painter.setCompositionMode(QPainter::CompositionMode_Source);
+ painter.fillRect(dest.rect(), Qt::transparent);
+ painter.drawPixmap(xDiff, yDiff, scaled.width(), scaled.height(), scaled);
+ painter.end();
+
+ return HbIcon(dest);
+ }
+ else
+ {
+ return HbIcon();
+ }
+}
+
+// -----------------------------------------------------------------------------
// VideoThumbnailDataPrivate::removeThumbnail()
// -----------------------------------------------------------------------------
//
--- a/videocollection/videocollectionwrapper/src/videothumbnailfetcher.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/src/videothumbnailfetcher.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4 %
+// Version : %version: 6 %
// INCLUDE FILES
#include <qpixmap.h>
@@ -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<TMPXItemId*>(internal));
+ TMPXItemId *idPointer = static_cast<TMPXItemId*>(internal);
+ mediaId = *idPointer;
+ delete idPointer;
}
- delete internal;
// Thumbnail has not been generated yet, put it into creation list.
if(error == -1)
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionclient/stub/inc/stubcollectionsignalreceiver.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionclient/stub/inc/stubcollectionsignalreceiver.h Wed Jun 23 17:22:59 2010 +0100
@@ -123,10 +123,18 @@
/**
* No implementation needed for these tests
*/
- virtual void itemModifiedSlot(const TMPXItemId &itemId)
+ void itemModifiedSlot(const TMPXItemId &itemId)
{
Q_UNUSED(itemId);
}
+
+ /**
+ * No implementation needed for these tests
+ */
+ void listCompleteSlot()
+ {
+
+ }
};
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/inc/mediaobjectfactory.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/inc/mediaobjectfactory.h Wed Jun 23 17:22:59 2010 +0100
@@ -52,7 +52,7 @@
*
* @return CMPXMedia
*/
- CMPXMedia* newMedia(int id = -1, int id2 = 0 );
+ CMPXMedia* newMedia(int id = -1, int id2 = 0);
/**
* appends media object to mediaarray
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/src/mediaobjectfactory.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/src/mediaobjectfactory.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -58,7 +58,7 @@
// newMedia
// -----------------------------------------------------------------------------
//
-CMPXMedia* MediaObjectFactory::newMedia(int id1, int id2 )
+CMPXMedia* MediaObjectFactory::newMedia(int id1, int id2)
{
CMPXMedia *media = NULL;
TRAP_IGNORE(media = CMPXMedia::NewL());
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/src/testvideocollectionlistener.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/src/testvideocollectionlistener.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -187,7 +187,8 @@
CMPXCollectionPath* collectionPath = 0;
TRAP_IGNORE(
collectionPath = CMPXCollectionPath::NewL();
- collectionPath->AppendL( KVcxUidMyVideosMpxCollection ););
+ collectionPath->AppendL( KVcxUidMyVideosMpxCollection );
+ );
// empty array, path exists level incorrect (new video list, not category neither album level)
mMediaFactory->putValuePtr<CMPXCollectionPath>(media, KMPXMediaGeneralContainerPath, collectionPath);
@@ -204,7 +205,8 @@
collectionPath->AppendL( KVcxUidMyVideosMpxCollection );
collectionPath->AppendL( KVcxMvcCategoryIdAll););
- // array of items from different levels, everything is reported
+ // array of items from different levels, everything is reported
+ // first call does not contain the KVcxMediaMyVideosInt32Value.
mStubCollectionClient->setCollectionLevel(VideoCollectionCommon::ELevelCategory);
mMediaFactory->putArrayContent(array, mMediaFactory->newMedia(1, 2));
mMediaFactory->putValuePtr<CMPXCollectionPath>(media, KMPXMediaGeneralContainerPath, collectionPath);
@@ -213,15 +215,19 @@
arrayToTest = static_cast<CMPXMediaArray*>(mSignalReceiver->getLatestPointerAddr());
QVERIFY(arrayToTest != 0);
QVERIFY(arrayToTest->Count() == array->Count());
+ QVERIFY(mSignalReceiver->getListComplete() == false);
-
mStubCollectionClient->setCollectionLevel(VideoCollectionCommon::ELevelVideos);
delete array;
- array = mMediaFactory->newMediaArray();
+ array = mMediaFactory->newMediaArray();
mMediaFactory->putArrayContent(array, mMediaFactory->newMedia(1));
mMediaFactory->putArrayContent(array, mMediaFactory->newMedia(2));
mMediaFactory->putArrayContent(array, mMediaFactory->newMedia(3));
+ // second call contains the KVcxMediaMyVideosInt32Value, but it's not equal to EVcxMyVideosVideoListComplete
+ int invalid(-100);
+ mMediaFactory->putTValue<int>(media, KVcxMediaMyVideosInt32Value, invalid);
+
mMediaFactory->putValuePtr<CMPXMediaArray>(media, KMPXMediaArrayContents, array);
mMediaFactory->putValuePtr<CMPXCollectionPath>(media, KMPXMediaGeneralContainerPath, collectionPath);
mStubCollection->callHandleOpenLFunc(*media, 0, true, 0 );
@@ -229,6 +235,7 @@
arrayToTest = static_cast<CMPXMediaArray*>(mSignalReceiver->getLatestPointerAddr());
QVERIFY(arrayToTest != 0);
QVERIFY(arrayToTest->Count() == array->Count());
+ QVERIFY(mSignalReceiver->getListComplete() == false);
delete collectionPath;
collectionPath = 0;
@@ -238,12 +245,16 @@
collectionPath->AppendL( KVcxMvcMediaTypeCategory););
mMediaFactory->putValuePtr<CMPXCollectionPath>(media, KMPXMediaGeneralContainerPath, collectionPath);
+ // third call contains KVcxMediaMyVideosInt32Value with value EVcxMyVideosVideoListComplete.
+ int listComplete(EVcxMyVideosVideoListComplete);
+ mMediaFactory->putTValue<int>(media, KVcxMediaMyVideosInt32Value, listComplete);
+
mStubCollection->callHandleOpenLFunc(*media, 0, true, 0 );
arrayToTest = static_cast<CMPXMediaArray*>(mSignalReceiver->getLatestPointerAddr());
QVERIFY(arrayToTest != 0);
QVERIFY(arrayToTest->Count() == array->Count());
-
+ QVERIFY(mSignalReceiver->getListComplete());
CMPXMediaArray *gottenArray = static_cast<CMPXMediaArray*>(mSignalReceiver->getLatestPointerAddr());
QVERIFY(gottenArray->Count() == 3);
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/stub/inc/stubsignalreceiver.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/stub/inc/stubsignalreceiver.h Wed Jun 23 17:22:59 2010 +0100
@@ -74,6 +74,11 @@
*/
int getLatestIntegerData();
+ /**
+ * return mListComplete
+ */
+ bool getListComplete();
+
public slots:
/**
@@ -133,6 +138,11 @@
*/
virtual void itemModifiedSlot(const TMPXItemId &itemId);
+ /**
+ * Sets boolean mListComplete to true;
+ */
+ void listCompleteSlot();
+
private:
/**
* Contains address of latest pointer passed to object
@@ -158,6 +168,11 @@
* contains contents of list received from signal
*/
QList<TMPXItemId> mLatesListData;
+
+ /**
+ * True if listCompleteSlot has been called.
+ */
+ bool mListComplete;
};
#endif
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/stub/src/stubsignalreceiver.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/stub/src/stubsignalreceiver.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -25,7 +25,8 @@
mLatestPtr(0),
mLatestItemId(TMPXItemId::InvalidId()),
mLatestModifiedItemId(TMPXItemId::InvalidId()),
-mLatestInteger(-1)
+mLatestInteger(-1),
+mListComplete(false)
{
}
@@ -50,6 +51,7 @@
mLatestModifiedItemId = TMPXItemId::InvalidId();
mLatesListData.clear();
mLatestInteger = -1;
+ mListComplete = false;
}
// -----------------------------------------------------------------------------
@@ -99,6 +101,15 @@
}
// -----------------------------------------------------------------------------
+// getListComplete
+// -----------------------------------------------------------------------------
+//
+bool StubSignalReceiver::getListComplete()
+{
+ return mListComplete;
+}
+
+// -----------------------------------------------------------------------------
// newVideoListSlot
// -----------------------------------------------------------------------------
//
@@ -204,6 +215,15 @@
}
// -----------------------------------------------------------------------------
+// listCompleteSlot
+// -----------------------------------------------------------------------------
+//
+void StubSignalReceiver::listCompleteSlot()
+{
+ mListComplete = true;
+}
+
+// -----------------------------------------------------------------------------
// albumRemoveFailureSlot
// -----------------------------------------------------------------------------
//
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videocollection/videocollectionwrapper/tsrc/testvideomodel/stub/inc/videolistdatamodel_p.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideomodel/stub/inc/videolistdatamodel_p.h Wed Jun 23 17:22:59 2010 +0100
@@ -315,7 +315,12 @@
* not used in stub
*/
void itemDeletedSlot(TMPXItemId id);
-
+
+ /**
+ * not used in stub
+ */
+ void listCompleteSlot();
+
public:
/**
--- a/videocollection/videocollectionwrapper/tsrc/testvideomodel/stub/src/videolistdatamodel_p.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideomodel/stub/src/videolistdatamodel_p.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -515,4 +515,12 @@
Q_UNUSED(id);
}
+// -----------------------------------------------------------------------------
+// listCompleteSlot
+// -----------------------------------------------------------------------------
+//
+void VideoListDataModelPrivate::listCompleteSlot()
+{
+}
+
// End of file
--- a/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/inc/testvideomodel_p.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/inc/testvideomodel_p.h Wed Jun 23 17:22:59 2010 +0100
@@ -88,6 +88,11 @@
*/
void signalVideoDetailsCompleted(CMPXMedia*);
+ /**
+ * emitted to get listCompleteSlot to be called.
+ */
+ void signalListCompleteSlot();
+
// test functions for the test framework
private slots:
/**
@@ -248,6 +253,11 @@
* verifies getMediaIdFromIndex when fetching collections
*/
void testGetCollectionIdFromIndex();
+
+ /**
+ * verifies listCompleteSlot
+ */
+ void testListCompleteSlot();
private:
--- a/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/src/mediaobjectfactory.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/src/mediaobjectfactory.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -397,7 +397,7 @@
TDateTime dateTime;
- dateTime.Set(date.date().year(), TMonth(date.date().month() - 1), date.date().day(),
+ dateTime.Set(date.date().year(), TMonth(date.date().month() - 1), date.date().day() - 1,
date.time().hour(), date.time().minute(),
date.time().second(), date.time().msec());
TTime ttimeDate(dateTime);
--- a/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/src/testvideomodel_p.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/src/testvideomodel_p.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -717,7 +717,7 @@
VideoListDataModel::mFirstRemoved = -1;
VideoListDataModel::mLastRemoved = -1;
- QSignalSpy spyModelReady(mStubModel, SIGNAL(modelReady()));
+ QSignalSpy spyModelChanged(mStubModel, SIGNAL(modelChanged()));
mMediaFactory->removeArray();
mMediaFactory->createMediaItems(MEDIA_COUNT);
@@ -728,8 +728,8 @@
QVERIFY(VideoListDataModel::mLastInserted == MEDIA_COUNT - 1);
QVERIFY(VideoListDataModel::mFirstRemoved == -1);
QVERIFY(VideoListDataModel::mLastRemoved == -1);
- QCOMPARE(spyModelReady.count(), 1);
- spyModelReady.clear();
+ QCOMPARE(spyModelChanged.count(), 1);
+ spyModelChanged.clear();
VideoListDataModel::mFirstInserted = -1;
VideoListDataModel::mLastInserted = -1;
VideoListDataModel::mFirstRemoved = -1;
@@ -743,7 +743,7 @@
QVERIFY(VideoListDataModel::mLastInserted == -1);
QVERIFY(VideoListDataModel::mFirstRemoved == -1);
QVERIFY(VideoListDataModel::mLastRemoved == -1);
- QCOMPARE(spyModelReady.count(), 0);
+ QCOMPARE(spyModelChanged.count(), 0);
VideoListDataModel::mFirstInserted = -1;
VideoListDataModel::mLastInserted = -1;
VideoListDataModel::mFirstRemoved = -1;
@@ -758,8 +758,8 @@
QVERIFY(VideoListDataModel::mLastInserted == -1);
QVERIFY(VideoListDataModel::mFirstRemoved == -1);
QVERIFY(VideoListDataModel::mLastRemoved == -1);
- QCOMPARE(spyModelReady.count(), 1);
- spyModelReady.clear();
+ QCOMPARE(spyModelChanged.count(), 0);
+ spyModelChanged.clear();
VideoListDataModel::mFirstInserted = -1;
VideoListDataModel::mLastInserted = -1;
VideoListDataModel::mFirstRemoved = -1;
@@ -773,8 +773,8 @@
QVERIFY(VideoListDataModel::mLastInserted == -1);
QVERIFY(VideoListDataModel::mFirstRemoved == -1);
QVERIFY(VideoListDataModel::mLastRemoved == -1);
- QCOMPARE(spyModelReady.count(), 1);
- spyModelReady.clear();
+ QCOMPARE(spyModelChanged.count(), 0);
+ spyModelChanged.clear();
VideoListDataModel::mFirstInserted = -1;
VideoListDataModel::mLastInserted = -1;
VideoListDataModel::mFirstRemoved = -1;
@@ -818,6 +818,7 @@
// send 10 videos
mMediaFactory->createMediaItems(10);
emit signalNewVideoList(mMediaFactory->copyOfMediaArray());
+ spyModelChanged.clear();
VideoListDataModel::mFirstInserted = -1;
VideoListDataModel::mLastInserted = -1;
@@ -1413,6 +1414,18 @@
disconnect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*)));
}
+// -----------------------------------------------------------------------------
+// testListCompleteSlot
+// -----------------------------------------------------------------------------
+//
+void TestVideoModel_p::testListCompleteSlot()
+{
+ QVERIFY(connect(this, SIGNAL(signalListCompleteSlot()), mTestObject, SLOT(listCompleteSlot())));
+ QSignalSpy spy(mStubModel, SIGNAL(modelReady()));
+ emit signalListCompleteSlot();
+ QCOMPARE(spy.count(), 1);
+}
+
// End of file
--- a/videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata_p/src/testvideothumbnaildata_p.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata_p/src/testvideothumbnaildata_p.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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<VideoThumbnailFetcher> thumbFetcher = mTestObject->mThumbnailFetcher;
+ QPointer<QTimer> reportTimer = mTestObject->mTbnReportTimer;
+ QPointer<QTimer> fetchTimer = mTestObject->mBgFetchTimer;
- //TODO
+ cleanup();
+
+ QCOMPARE(VideoThumbnailFetcher::mRequests.count(), 0);
+ QVERIFY(thumbFetcher == 0);
+ QVERIFY(reportTimer == 0);
+ QVERIFY(fetchTimer == 0);
}
// ---------------------------------------------------------------------------
--- a/videocollection/videocollectionwrapper/videocollectionwrapper.pro Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videocollectionwrapper/videocollectionwrapper.pro Wed Jun 23 17:22:59 2010 +0100
@@ -75,5 +75,3 @@
-lestor.dll \
-lcentralrepository.dll \
-lflogger.dll
-
-RESOURCES += data/videocollectionwrapper.qrc
--- a/videocollection/videofiledetailsview/data/pri_large_video.svg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
- <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
- xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
- x="0px" y="0px" width="98px" height="98px" viewBox="0 0 98 98" enable-background="new 0 0 98 98" xml:space="preserve">
-<defs>
-</defs>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="48.9995" y1="19" x2="48.9995" y2="79.0015">
- <stop offset="0" style="stop-color:#757575"/>
- <stop offset="0.2424" style="stop-color:#000000"/>
- <stop offset="0.8606" style="stop-color:#000000"/>
- <stop offset="1" style="stop-color:#363636"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M84.5,19h-71c-1.105,0-2,0.896-2,2v56.001c0,1.105,0.895,2,2,2h71c1.104,0,2-0.895,2-2V21
- C86.5,19.896,85.603,19,84.5,19z M20.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4
- c0.549,0,1,0.451,1,1V75.001z M20.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1
- V25z M29.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M29.5,25
- c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M38.5,75.001c0,0.551-0.451,1-1,1
- h-4c-0.55,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M38.5,25c0,0.551-0.451,1-1,1h-4
- c-0.55,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M47.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1
- v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M47.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2
- c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M56.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1
- h4c0.549,0,1,0.451,1,1V75.001z M56.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4
- c0.549,0,1,0.451,1,1V25z M65.5,75.001c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1
- V75.001z M65.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M74.5,75.001
- c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M74.5,25c0,0.551-0.451,1-1,1
- h-4c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z M83.5,75.001c0,0.551-0.451,1-1,1h-4
- c-0.551,0-1-0.449-1-1v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V75.001z M83.5,25c0,0.551-0.451,1-1,1h-4c-0.551,0-1-0.449-1-1
- v-2c0-0.549,0.449-1,1-1h4c0.549,0,1,0.451,1,1V25z"/>
-<path opacity="0.55" fill="#FFFFFF" d="M84.5,19h-71c-1.105,0-2,0.896-2,2v1c0-1.104,0.895-2,2-2h71c1.104,0,2,0.896,2,2v-1
- C86.5,19.896,85.603,19,84.5,19z"/>
-<path opacity="0.1" fill="#FFFFFF" d="M13.5,79.001h71c1.104,0,2-0.895,2-2v-1c0,1.105-0.896,2-2,2h-71c-1.105,0-2-0.895-2-2v1
- C11.5,78.106,12.395,79.001,13.5,79.001z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="48.9995" y1="29.1592" x2="48.9995" y2="69.1606">
- <stop offset="0" style="stop-color:#000000"/>
- <stop offset="0.5" style="stop-color:#666666"/>
- <stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<rect x="11.5" y="29" fill="url(#SVGID_2_)" width="75" height="40.001"/>
-<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="49" y1="69.001" x2="49" y2="29.0005">
- <stop offset="0" style="stop-color:#36B5FF"/>
- <stop offset="1" style="stop-color:#1B66D8"/>
-</linearGradient>
-<path fill="url(#SVGID_3_)" d="M83.5,67.001c0,1.1-0.9,2-2,2h-65c-1.1,0-2-0.9-2-2V31c0-1.1,0.9-2,2-2h65c1.1,0,2,0.9,2,2V67.001z"
- />
-<path opacity="0.5" fill="#FFFFFF" d="M81.5,67.001h-65c-1.1,0-2,0.1-2-1l0,0c0,1.1,0.9,2,2,2h65c1.1,0,2-0.9,2-2l0,0
- C83.5,67.101,82.599,67.001,81.5,67.001z"/>
-<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="48.9995" y1="29" x2="48.9995" y2="69.1607">
- <stop offset="0" style="stop-color:#000000"/>
- <stop offset="1" style="stop-color:#404040"/>
-</linearGradient>
-<path fill="url(#SVGID_4_)" d="M81.5,30c0.551,0,1,0.449,1,1v36.001c0,0.553-0.449,1-1,1h-65c-0.551,0-1-0.447-1-1V31
- c0-0.551,0.449-1,1-1H81.5 M81.5,29h-65c-1.1,0-2,0.9-2,2v36.001c0,1.1,0.9,2,2,2h65c1.1,0,2-0.9,2-2V31
- C83.5,29.9,82.599,29,81.5,29L81.5,29z"/>
-<path opacity="0.2" fill="#FFFFFF" d="M81.5,41.001V33c0-1.104-0.896-2-2-2h-61c-1.105,0-2,0.896-2,2v13.001L81.5,41.001z"/>
-<rect fill="none" width="98" height="98.001"/>
-</svg>
--- a/videocollection/videofiledetailsview/data/videofiledetails.qrc Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videofiledetailsview/data/videofiledetails.qrc Wed Jun 23 17:22:59 2010 +0100
@@ -2,7 +2,4 @@
<qresource prefix="/xml" >
<file alias="videofiledetails.docml">videofiledetails.xml</file>
</qresource>
- <qresource prefix="/gfx" >
- <file alias="pri_large_video.svg">pri_large_video.svg</file>
- </qresource>
</RCC>
--- a/videocollection/videofiledetailsview/data/videofiledetails.xml Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videofiledetailsview/data/videofiledetails.xml Wed Jun 23 17:22:59 2010 +0100
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
+<hbdocument version="1.0">
<object name="mOptionsDelete" type="HbAction">
<string locid="txt_common_opt_delete" name="text" value="Delete"/>
</object>
@@ -20,7 +20,7 @@
<linearitem itemname="mDetailsList"/>
</layout>
</widget>
- <widget name="mThumbRating" type="HbWidget">
+ <widget name="mThumbContainer" type="HbWidget">
<widget name="mDetailsLabel" type="HbStackedWidget">
<real name="z" value="2"/>
<sizehint height="34.47761un" type="PREFERRED" width="47.91045un"/>
@@ -34,32 +34,22 @@
<anchoritem dst="mDetailsLabel" dstEdge="TOP" spacing="1.34328un" src="" srcEdge="TOP"/>
</layout>
</widget>
+ <widget name="mButton" type="HbPushButton">
+ <real name="z" value="3"/>
+ </widget>
</widget>
</widget>
<section name="portrait">
- <widget name="mDetailsContainer" type="HbWidget">
- <widget name="mButton" type="HbPushButton">
- <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
- <sizehint height="7.46269un" type="PREFERRED" width="14.92537un"/>
- <sizehint height="7.46269un" type="MINIMUM" width="7.46269un"/>
- <sizehint height="7.46269un" type="MAXIMUM" width="74.62687un"/>
- <string name="state" value="normal"/>
- </widget>
- <sizehint height="49.55224un" type="PREFERRED" width="50.74626un"/>
- <layout orientation="Vertical" type="linear">
- <linearitem itemname="mDetailsList"/>
- <linearitem itemname="mButton"/>
- </layout>
- </widget>
<widget name="mContent" role="HbView:widget" type="HbWidget">
- <widget name="mThumbRating" type="HbWidget">
+ <widget name="mThumbContainer" type="HbWidget">
<widget name="mDetailsLabel" type="HbStackedWidget">
<real name="z" value="2"/>
- <sizehint height="28.54477688un" type="FIXED" width="50.74627un"/>
+ <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+ <sizehint height="28.54478un" type="FIXED" width="50.74627un"/>
<string name="state" value=""/>
</widget>
<real name="z" value="1"/>
- <sizehint height="28.69402688un" type="PREFERRED" width="50.74626un"/>
+ <sizehint height="28.69403un" type="PREFERRED" width="50.74626un"/>
<layout type="anchor">
<anchoritem dst="mDetailsLabel" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
<anchoritem dst="mDetailsLabel" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
@@ -67,16 +57,40 @@
<anchoritem dst="mDetailsLabel" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
</layout>
</widget>
+ <widget name="mDetailsContainer" type="HbWidget">
+ <widget name="mDetailsList" type="HbListWidget">
+ <real name="z" value="0"/>
+ <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Expanding" verticalStretch="0"/>
+ <sizehint height="38.50746un" type="PREFERRED" width="48.0597un"/>
+ <bool name="visible" value="TRUE"/>
+ </widget>
+ <real name="z" value="2"/>
+ <sizehint height="42.68657un" type="PREFERRED" width="50.89551un"/>
+ <layout type="anchor">
+ <anchoritem dst="mDetailsList" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="mDetailsList" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+ <anchoritem dst="mDetailsList" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="mDetailsList" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+ </layout>
+ </widget>
+ <widget name="mButton" type="HbPushButton">
+ <real name="z" value="5"/>
+ <sizehint height="7.17164un" type="PREFERRED" width="50.74626un"/>
+ </widget>
<layout type="anchor">
<anchoritem dst="mLblTitle" dstEdge="TOP" spacing="1.04478un" src="" srcEdge="TOP"/>
<anchoritem dst="mLblTitle" dstEdge="LEFT" spacing="1.49254un" src="" srcEdge="LEFT"/>
<anchoritem dst="mLblTitle" dstEdge="RIGHT" spacing="-1.49254un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="mThumbContainer" dstEdge="TOP" spacing="6.71642un" src="" srcEdge="TOP"/>
+ <anchoritem dst="mThumbContainer" dstEdge="LEFT" spacing="1.49254un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="mThumbContainer" dstEdge="RIGHT" spacing="-1.49254un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="mButton" dstEdge="LEFT" spacing="1un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="mButton" dstEdge="TOP" spacing="0un" src="mDetailsContainer" srcEdge="BOTTOM"/>
+ <anchoritem dst="mButton" dstEdge="RIGHT" spacing="-1un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="mButton" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="mDetailsContainer" dstEdge="BOTTOM" spacing="-7.5un" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="mDetailsContainer" dstEdge="RIGHT" spacing="-1.19405un" src="" srcEdge="RIGHT"/>
<anchoritem dst="mDetailsContainer" dstEdge="LEFT" spacing="1.49254un" src="" srcEdge="LEFT"/>
- <anchoritem dst="mDetailsContainer" dstEdge="RIGHT" spacing="-1.49254un" src="" srcEdge="RIGHT"/>
- <anchoritem dst="mDetailsContainer" dstEdge="BOTTOM" spacing="-1.49254un" src="" srcEdge="BOTTOM"/>
- <anchoritem dst="mThumbRating" dstEdge="TOP" spacing="6.71642un" src="" srcEdge="TOP"/>
- <anchoritem dst="mThumbRating" dstEdge="LEFT" spacing="1.49254un" src="" srcEdge="LEFT"/>
- <anchoritem dst="mThumbRating" dstEdge="RIGHT" spacing="-1.49254un" src="" srcEdge="RIGHT"/>
</layout>
</widget>
</section>
@@ -84,55 +98,54 @@
<widget name="mContent" role="HbView:widget" type="HbWidget">
<widget name="mDetailsContainer" type="HbWidget">
<widget name="mDetailsList" type="HbListWidget">
- <sizehint height="26.71642un" type="PREFERRED" width="42.83582un"/>
+ <real name="z" value="0"/>
+ <sizehint height="35.37314un" type="PREFERRED" width="48.0597un"/>
+ <bool name="visible" value="TRUE"/>
</widget>
<real name="z" value="2"/>
- <sizehint height="37.01493un" type="PREFERRED" width="45.52239un"/>
+ <sizehint height="35.97015un" type="PREFERRED" width="42.98507un"/>
<layout type="anchor">
- <anchoritem dst="mDetailsList" dstEdge="LEFT" spacing="1.34328un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="mDetailsList" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
<anchoritem dst="mDetailsList" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+ <anchoritem dst="mDetailsList" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
<anchoritem dst="mDetailsList" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
</layout>
</widget>
- <widget name="mThumbRating" type="HbWidget">
+ <widget name="mThumbContainer" type="HbWidget">
<widget name="mDetailsLabel" type="HbStackedWidget">
- <real name="z" value="2"/>
- <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
- <sizehint height="26.865675un" type="FIXED" width="47.7612un"/>
- <string name="state" value=""/>
- </widget>
- <widget name="mButton" type="HbPushButton">
- <real name="z" value="3"/>
- <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
- <sizehint height="7.46269un" type="PREFERRED" width="45.07463un"/>
- <sizehint height="7.46269un" type="MINIMUM" width="7.46269un"/>
- <sizehint height="7.46269un" type="MAXIMUM" width="74.62687un"/>
+ <real name="z" value="5"/>
+ <sizehint height="29.49253un" type="PREFERRED" width="48.35821un"/>
+ <bool name="visible" value="TRUE"/>
<string name="state" value=""/>
</widget>
- <real name="z" value="1"/>
- <sizehint height="37.31343un" type="PREFERRED" width="47.7612un"/>
+ <sizehint height="30.29851un" type="PREFERRED" width="49.04478un"/>
<layout type="anchor">
- <anchoritem dst="mButton" dstEdge="LEFT" spacing="1.34328un" src="" srcEdge="LEFT"/>
- <anchoritem dst="mButton" dstEdge="TOP" spacing="28.50746un" src="" srcEdge="TOP"/>
<anchoritem dst="mDetailsLabel" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="mDetailsLabel" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
<anchoritem dst="mDetailsLabel" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
- <anchoritem dst="mDetailsLabel" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+ <anchoritem dst="mDetailsLabel" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
</layout>
</widget>
+ <widget name="mButton" type="HbPushButton">
+ <real name="z" value="6"/>
+ <sizehint height="7.5un" type="PREFERRED" width="43.88059un"/>
+ </widget>
<layout type="anchor">
+ <anchoritem dst="mLblTitle" dstEdge="TOP" spacing="1.04478un" src="" srcEdge="TOP"/>
<anchoritem dst="mLblTitle" dstEdge="LEFT" spacing="1.49254un" src="" srcEdge="LEFT"/>
- <anchoritem dst="mLblTitle" dstEdge="TOP" spacing="1.04478un" src="" srcEdge="TOP"/>
- <anchoritem dst="mLblTitle" dstEdge="RIGHT" spacing="1.49254un" src="" srcEdge="RIGHT"/>
- <anchoritem dst="mDetailsContainer" dstEdge="TOP" spacing="6.71642un" src="" srcEdge="TOP"/>
- <anchoritem dst="mDetailsContainer" dstEdge="LEFT" spacing="49.40299un" src="" srcEdge="LEFT"/>
- <anchoritem dst="mThumbRating" dstEdge="LEFT" spacing="1.49254un" src="" srcEdge="LEFT"/>
- <anchoritem dst="mThumbRating" dstEdge="TOP" spacing="6.71642un" src="" srcEdge="TOP"/>
- <anchoritem dst="mDetailsContainer" dstEdge="LEFT" spacing="0.14925un" src="mThumbRating" srcEdge="RIGHT"/>
+ <anchoritem dst="mLblTitle" dstEdge="RIGHT" spacing="-1.49254un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="mButton" dstEdge="LEFT" spacing="1un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="mButton" dstEdge="RIGHT" spacing="-1un" src="mDetailsContainer" srcEdge="LEFT"/>
+ <anchoritem dst="mButton" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="mDetailsContainer" dstEdge="LEFT" spacing="51.04478un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="mDetailsContainer" dstEdge="TOP" spacing="6.2un" src="" srcEdge="TOP"/>
+ <anchoritem dst="mDetailsContainer" dstEdge="RIGHT" spacing="-1.34329un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="mDetailsContainer" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="mThumbContainer" dstEdge="RIGHT" spacing="-0.91045un" src="mDetailsContainer" srcEdge="LEFT"/>
+ <anchoritem dst="mThumbContainer" dstEdge="TOP" spacing="6.2un" src="" srcEdge="TOP"/>
+ <anchoritem dst="mThumbContainer" dstEdge="LEFT" spacing="1un" src="" srcEdge="LEFT"/>
</layout>
</widget>
- <widget name="mLayoutVideoInfo" role="HbScrollArea:contents" type="HbWidget">
- <layout orientation="Vertical" type="linear"/>
- </widget>
</section>
<metadata activeUIState="portrait" display="NHD portrait" unit="un">
<uistate name="Common ui state" sections="#common"/>
--- a/videocollection/videofiledetailsview/src/videofiledetailsviewplugin.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videofiledetailsview/src/videofiledetailsviewplugin.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 73 %
+// Version : %version: 76 %
// INCLUDE FILES
#include <qcoreapplication.h>
@@ -46,10 +46,18 @@
#include "videodetailslabel.h"
#include "videocollectiontrace.h"
+// Object names.
+const char* const VIDEO_DETAILS_OBJECT_NAME_THUMBLABEL = "vc:FileDetailsThumbnailLabel";
+const char* const VIDEO_DETAILS_OBJECT_NAME_DELETE_VIDEO = "vc:FileDetailsMessageBoxDeleteVideo";
+const char* const VIDEO_DETAILS_OBJECT_NAME_MESSAGE_BOX_WARNING = "vc:FileDetailsMessageBoxWarning";
+const char* const VIDEO_DETAILS_OBJECT_NAME_DELETE_ACTION = "vc:FileDetailsDelete";
+const char* const VIDEO_DETAILS_OBJECT_NAME_NAVKEY_BACK = "vc:FileDetailsNavKeyBack";
+const char* const VIDEO_DETAILS_OBJECT_NAME_TITLE_ANIM = "vc:FileDetailsTitleAnim";
+
+// Docml constants.
const char* const VIDEO_DETAILS_DOCML = ":/xml/videofiledetails.docml";
const char* const VIDEO_DETAILS_PORTRAIT = "portrait";
const char* const VIDEO_DETAILS_LANDSCAPE = "landscape";
-const char* const VIDEO_DETAILS_GFX_DEFAULT = ":/gfx/pri_large_video.svg";
const char* const VIDEO_DETAILS_VIEW = "videofiledetailsview";
const char* const VIDEO_DETAILS_TITLE = "mLblTitle";
const char* const VIDEO_DETAILS_THUMBNAIL = "mDetailsLabel";
@@ -57,6 +65,11 @@
const char* const VIDEO_DETAILS_MENUACTION_DELETE = "mOptionsDelete";
const char* const VIDEO_DETAILS_LISTWIDGET = "mDetailsList";
+// Default thumbnail.
+const char* const VIDEO_DETAILS_GFX_DEFAULT = "qtg_large_video";
+
+const int VIDEO_DETAILS_SECONDARY_TEXT_ROW_COUNT = 255;
+
// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
@@ -136,6 +149,7 @@
spec.setRole( HbFontSpec::Primary );
mTitleAnim->setFontSpec( spec );
mTitleAnim->setLoopCount(-1);
+ mTitleAnim->setObjectName(VIDEO_DETAILS_OBJECT_NAME_TITLE_ANIM);
connect(mModel->sourceModel(),
SIGNAL(shortDetailsReady(TMPXItemId)),
@@ -160,9 +174,9 @@
// no deallocation needed for this since
// stackedwidget takes ownership
mThumbLabel = new VideoDetailsLabel;
-
mThumbLabel->setAlignment(Qt::AlignCenter);
-
+ mThumbLabel->setObjectName(VIDEO_DETAILS_OBJECT_NAME_THUMBLABEL);
+
connect(mThumbLabel, SIGNAL(clicked(bool)), this, SLOT(startPlaybackSlot()));
thumbWidget->addWidget(mThumbLabel);
@@ -183,6 +197,7 @@
ERROR(-1, "VideoFileDetailsViewPlugin::createView() failed to delete action.");
return;
}
+ deleteAction->setObjectName(VIDEO_DETAILS_OBJECT_NAME_DELETE_ACTION);
if (mIsService)
{
@@ -195,7 +210,8 @@
// Create navigation keys.
mNavKeyBackAction = new HbAction(Hb::BackNaviAction);
-
+ mNavKeyBackAction->setObjectName(VIDEO_DETAILS_OBJECT_NAME_NAVKEY_BACK);
+
if (!mThumbnailManager)
{
mThumbnailManager = new ThumbnailManager();
@@ -212,7 +228,6 @@
}
list->setEnabledAnimations(HbAbstractItemView::None);
-
}
// ---------------------------------------------------------------------------
@@ -484,19 +499,17 @@
list->clear();
}
- //TODO: define maximum line count once >3 supported
HbListViewItem *prototype = list->listItemPrototype();
- prototype->setSecondaryTextRowCount(1, 3);
+ prototype->setSecondaryTextRowCount(1, VIDEO_DETAILS_SECONDARY_TEXT_ROW_COUNT);
for(int i = 0; i< detailCount; i++) {
if (metadata.contains(VideoDetailLabelKeys[i]))
{
HbListWidgetItem* listWidgetItem = new HbListWidgetItem();
listWidgetItem->setEnabled(false);
-
- listWidgetItem->setText( hbTrId(VideoDetailLabels[i]) );
- listWidgetItem->setSecondaryText( metadata[VideoDetailLabelKeys[i]].toString() );
- list->addItem( listWidgetItem );
+ listWidgetItem->setText( hbTrId(VideoDetailLabels[i]));
+ listWidgetItem->setSecondaryText(metadata[VideoDetailLabelKeys[i]].toString());
+ list->addItem(listWidgetItem);
}
}
@@ -578,8 +591,8 @@
HbMessageBox *messageBox = new HbMessageBox(text, HbMessageBox::MessageTypeQuestion);
messageBox->setAttribute(Qt::WA_DeleteOnClose);
+ messageBox->setObjectName(VIDEO_DETAILS_OBJECT_NAME_DELETE_VIDEO);
messageBox->open(this, SLOT(deleteVideoDialogFinished(HbAction *)));
-
}
}
}
@@ -613,7 +626,6 @@
mModel->deleteItems(list);
}
-
// ---------------------------------------------------------------------------
// Slot: rowsRemovedSlot
// ---------------------------------------------------------------------------
@@ -643,7 +655,7 @@
QString msg("");
if(errorCode == VideoCollectionCommon::statusSingleDeleteFail)
{
- QString format = hbTrId("txt_videos_info_unable_to_delete_1_it_is_current");
+ QString format = hbTrId("txt_videos_info_unable_to_delete_1_it_is_current");
if(additional.isValid())
{
msg = format.arg(additional.toString());
@@ -652,7 +664,10 @@
if(msg.count() > 0)
{
// show msg box if there's something to show
- HbMessageBox::warning(msg);
+ HbMessageBox *messageBox = new HbMessageBox(msg, HbMessageBox::MessageTypeWarning);
+ messageBox->setAttribute(Qt::WA_DeleteOnClose);
+ messageBox->setObjectName(VIDEO_DETAILS_OBJECT_NAME_MESSAGE_BOX_WARNING);
+ messageBox->show();
}
}
@@ -854,4 +869,4 @@
XQ_EXPORT_PLUGIN2( videofiledetailsview, VideoFileDetailsViewPlugin );
-// end of file
+// End of file
--- a/videocollection/videofiledetailsview/tsrc/testplugin/src/testvideofiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videofiledetailsview/tsrc/testplugin/src/testvideofiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -47,7 +47,7 @@
#include "videofiledetailsviewplugin.h"
#undef private
-const char *TEST_VIDEO_DETAILS_GFX_DEFAULT = ":/gfx/pri_large_video.svg";
+const char *TEST_VIDEO_DETAILS_GFX_DEFAULT = "qtg_large_video";
const char *TEST_VIDEO_DETAILS_VIEW = "videofiledetailsview";
const char *TEST_VIDEO_DETAILS_WIDGET = "mContent";
const char *TEST_VIDEO_DETAILS_TITLE = "mLblTitle";
@@ -595,7 +595,7 @@
QVERIFY( deleteAction != 0 );
deleteAction->trigger();
- QCOMPARE( mDummyModel->dataAccessCount(), 0 );
+ QCOMPARE( mDummyModel->dataAccessCount(), 0 );
mPlugin->mVideoId = (0,0);
mDummyModel->setDataReturnInvalid(true);
@@ -612,6 +612,8 @@
QCOMPARE( mDummyModel->dataAccessCount(), 2 );
QVERIFY( mDummyModel->lastIndex() == expected );
QCOMPARE( mDummyModel->deleteFileIndex(), -1 ); // verify that no file was deleted.
+
+ HbMessageBox *msgBox = new HbMessageBox();
QStringList display;
display.append("first row");
@@ -620,16 +622,15 @@
QString expectedText = hbTrId("txt_videos_info_do_you_want_to_delete_1").arg(
display.first());
-
- HbMessageBox::mQuestionReturnValue = true;
deleteAction->trigger();
+ msgBox->emitDialogFinished(mPlugin, SLOT(deleteVideoDialogFinished(HbAction *)), 0); // Yes selected
QCOMPARE( mDummyModel->dataAccessCount(), 3 );
QVERIFY( mDummyModel->lastIndex() == expected );
QCOMPARE( mDummyModel->deleteFileIndex(), expected.row() );
QCOMPARE( HbMessageBox::mLatestTxt, expectedText );
- HbMessageBox::mQuestionReturnValue = false;
deleteAction->trigger();
+ msgBox->emitDialogFinished(mPlugin, SLOT(deleteVideoDialogFinished(HbAction *)), 1); // No selected
QCOMPARE( mDummyModel->dataAccessCount(), 4 );
QVERIFY( mDummyModel->lastIndex() == expected );
QCOMPARE( mDummyModel->deleteFileIndex(), expected.row() );
@@ -637,13 +638,14 @@
mDummyModel->reset();
- HbMessageBox::mQuestionReturnValue = false;
deleteAction->trigger();
+ msgBox->emitDialogFinished(mPlugin, SLOT(deleteVideoDialogFinished(HbAction *)), 1); // No selected
QCOMPARE( mDummyModel->dataAccessCount(), 1 );
QVERIFY( mDummyModel->lastIndex() == expected );
QCOMPARE( mDummyModel->deleteFileIndex(), -1 ); // verify that no file was deleted.
QCOMPARE( HbMessageBox::mLatestTxt, expectedText );
+ delete msgBox;
cleanup();
}
--- a/videocollection/videofiledetailsview/tsrc/testplugin/stub/inc/hbmessagebox.h Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videofiledetailsview/tsrc/testplugin/stub/inc/hbmessagebox.h Wed Jun 23 17:22:59 2010 +0100
@@ -19,23 +19,37 @@
#ifndef HBMESSAGEBOX_H
#define HBMESSAGEBOX_H
+#include <QObject>
#include <QString>
+#include <QGraphicsItem>
+#include <hbaction.h>
+
+class HbMessageBox : public QObject
+{
+ Q_OBJECT
+public:
-class HbMessageBox
-{
-
-public:
+ enum MessageBoxType {
+ MessageTypeInformation,
+ MessageTypeQuestion,
+ MessageTypeWarning
+ };
+
+ HbMessageBox(MessageBoxType type = MessageTypeInformation, QGraphicsItem *parent = 0);
+ HbMessageBox(const QString &text, MessageBoxType type = MessageTypeInformation, QGraphicsItem *parent = 0);
+ ~HbMessageBox();
+
+ void show();
/**
- * saves provided text to mLatestTxt
- * returns mQuestionReturnValue
+ * Create new HbMessageBox and call emitDialogFinished after this one to finish the sequence.
*/
- static bool question(QString text)
- {
- mLatestTxt = text;
- return mQuestionReturnValue;
- }
+ void open( QObject* receiver = 0, const char* member = 0 );
+
+ void emitDialogFinished( QObject* receiver, const char* member, int actionNum );
+
+ void setAttribute(int attribute);
/**
* saves provided text to mLatestTxt
@@ -53,18 +67,26 @@
mLatestTxt = text;
}
- /**
- * returned from question
- */
- static bool mQuestionReturnValue;
+ QList<HbAction*> actions() const
+ {
+ return mActions;
+ }
/**
* saved text
*/
static QString mLatestTxt;
+ static int mType;
+ static int mAttribute;
+ static int mOpenCallCount;
+ static int mShowCallCount;
+
+ QList<HbAction*> mActions;
+
+signals:
+
+ void finished(HbAction *action);
};
-
-
#endif // HBMESSAGEBOX_H
--- a/videocollection/videofiledetailsview/tsrc/testplugin/stub/src/hbmessagebox.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videocollection/videofiledetailsview/tsrc/testplugin/stub/src/hbmessagebox.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -17,10 +17,65 @@
#include "hbmessagebox.h"
-bool HbMessageBox::mQuestionReturnValue = false;
+QString HbMessageBox::mLatestTxt = "";
+int HbMessageBox::mType = -1;
+int HbMessageBox::mAttribute = -1;
+int HbMessageBox::mOpenCallCount = 0;
+int HbMessageBox::mShowCallCount = 0;
-QString HbMessageBox::mLatestTxt = "";
+HbMessageBox::HbMessageBox(MessageBoxType type, QGraphicsItem *parent)
+{
+ Q_UNUSED(parent);
+ HbMessageBox::mType = type;
+
+ HbAction *action = new HbAction();
+ mActions.append(action);
+ action = new HbAction();
+ mActions.append(action);
+}
+
+HbMessageBox::HbMessageBox(const QString &text, MessageBoxType type, QGraphicsItem *parent)
+{
+ Q_UNUSED(parent);
+ HbMessageBox::mLatestTxt = text;
+ HbMessageBox::mType = type;
+
+ HbAction *action = new HbAction();
+ mActions.append(action);
+ action = new HbAction();
+ mActions.append(action);
+}
+HbMessageBox::~HbMessageBox()
+{
+ while(!mActions.isEmpty())
+ {
+ delete mActions.takeFirst();
+ }
+}
+void HbMessageBox::show()
+{
+ HbMessageBox::mShowCallCount++;
+}
+void HbMessageBox::open( QObject* receiver, const char* member )
+{
+ Q_UNUSED(receiver);
+ Q_UNUSED(member);
+ HbMessageBox::mOpenCallCount++;
+}
+void HbMessageBox::emitDialogFinished( QObject* receiver, const char* member, int actionNum )
+{
+ if(connect(this, SIGNAL(finished(HbAction *)), receiver, member))
+ {
+ emit finished(mActions.value(actionNum));
+ disconnect(this, SIGNAL(finished(HbAction *)), receiver, member);
+ }
+}
+
+void HbMessageBox::setAttribute(int attribute)
+{
+ HbMessageBox::mAttribute = attribute;
+}
--- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrol.hrh Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrol.hrh Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackfiledetailswidget.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackfiledetailswidget.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 10 %
+// Version : %version: 11 %
@@ -37,7 +37,6 @@
public:
QMPXVideoPlaybackFileDetailsWidget( QMPXVideoPlaybackControlsController* controller );
virtual ~QMPXVideoPlaybackFileDetailsWidget();
- void initialize();
public:
void updateWithFileDetails( QMPXVideoPlaybackViewFileDetails* details );
--- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackprogressbar.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackprogressbar.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: da1mmcf#11 %
+// Version : %version: da1mmcf#12 %
@@ -26,7 +26,6 @@
#include <mpxplaybackframeworkdefs.h>
class QTimer;
-class HbFrameItem;
class HbProgressSlider;
class QMPXVideoPlaybackViewFileDetails;
class QMPXVideoPlaybackControlsController;
@@ -59,7 +58,6 @@
private:
QMPXVideoPlaybackControlsController *mController;
HbProgressSlider *mProgressSlider;
- HbFrameItem *mFrameItem;
int mDuration;
int mDraggingPosition;
--- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackstatuspanecontrol.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackstatuspanecontrol.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 9 %
+// Version : %version: 10 %
@@ -28,7 +28,8 @@
class HbLabel;
class HbAction;
-class HbFrameItem;
+class HbGroupBox;
+class QGraphicsWidget;
class QMPXVideoPlaybackViewFileDetails;
class QMPXVideoPlaybackControlsController;
@@ -73,7 +74,8 @@
bool mVisible;
HbAction *mActionBack;
HbLabel *mTitleLabel;
- HbFrameItem *mFrameItem;
+ HbGroupBox *mTitleGroupBox;
+ QGraphicsWidget *mTitleLayout;
};
#endif /*MPXVIDEOPLAYBACKSTATUSPANECONTROL_H_*/
--- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybacktoolbar.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybacktoolbar.h Wed Jun 23 17:22:59 2010 +0100
@@ -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;
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolconfiguration.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolconfiguration.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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;
}
}
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolpolicy.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolpolicy.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: da1mmcf#13 %
+// Version : %version: da1mmcf#14 %
@@ -127,6 +127,7 @@
}
case EMPXFileDetailsWidget:
case EMPXIndicatorBitmap:
+ case EMPXRealLogoBitmap:
case EMPXDetailsViewPlaybackWindow:
{
//
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolscontroller.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolscontroller.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: da1mmcf#37 %
+// Version : %version: da1mmcf#40 %
@@ -26,18 +26,15 @@
#include <f32file.h>
#include <QTimer>
-#include <QFileInfo>
#include <thumbnailmanager_qt.h>
#include <xqserviceutil.h>
#include <hblabel.h>
-#include <hbiconitem.h>
-#include <hbratingslider.h>
-#include <hbiconanimator.h>
#include <hbvolumesliderpopup.h>
#include <hbtransparentwindow.h>
#include <hbiconanimationmanager.h>
#include <shareui.h>
+#include <hbinstance.h>
#include "mpxvideoviewwrapper.h"
#include "hbvideobaseplaybackview.h"
@@ -70,6 +67,7 @@
, mControlsPolicy( NULL )
, mControlsConfig( NULL )
, mControlsTimer( NULL )
+ , mRNLogoTimer( NULL )
, mLoader( NULL )
, mVolumeControl( NULL )
, mThumbnailManager( NULL )
@@ -93,12 +91,22 @@
{
MPX_ENTER_EXIT(_L("QMPXVideoPlaybackControlsController::initializeController()"));
+ mOrientation = hbInstance->allMainWindows()[0]->orientation();
+ bool ok = connect( hbInstance->allMainWindows()[0], SIGNAL( orientationChanged( Qt::Orientation ) ),
+ this, SLOT( handleOrientationChanged( Qt::Orientation ) ) );
+
+ MPX_DEBUG(
+ _L("QMPXVideoPlaybackControlsController::initializeController() orientation = %d, ok =%d"),
+ mOrientation, ok );
+
setParent( mView );
+ mView->hideItems( Hb::AllItems );
+
//
// Create layout loader
//
- bool ok = false;
+ ok = false;
mLoader = new QMPXVideoPlaybackDocumentLoader( this );
mLoader->load( KMPXPLAYBACKVIEW_XML, &ok );
@@ -119,6 +127,8 @@
mLoader = NULL;
}
+ mFileDetails->mRNFormat = realFormat( mFileDetails->mClipName );
+
mControlsTimer = new QTimer( this );
mControlsTimer->setInterval( KMPXControlsTimeOut );
mControlsTimer->setSingleShot( false );
@@ -132,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 );
@@ -168,7 +181,6 @@
}
}
}
-
}
// -------------------------------------------------------------------------------------------------
@@ -180,9 +192,10 @@
MPX_ENTER_EXIT(_L("QMPXVideoPlaybackControlsController::~QMPXVideoPlaybackControlsController()"));
disconnect( mControlsConfig, SIGNAL( controlListUpdated() ), this, SLOT( controlsListUpdated() ) );
-
disconnect( mView, SIGNAL( tappedOnScreen() ), this, SLOT( handleTappedOnScreen() ) );
disconnect( mControlsTimer, SIGNAL( timeout() ), this, SLOT( hideAllControls() ) );
+ disconnect( hbInstance->allMainWindows()[0], SIGNAL( orientationChanged( Qt::Orientation ) ),
+ this, SLOT( handleOrientationChanged( Qt::Orientation ) ) );
mView->setWidget( NULL );
@@ -194,6 +207,14 @@
mControlsTimer = NULL;
}
+ if ( mRNLogoTimer )
+ {
+ disconnect( mRNLogoTimer, SIGNAL( timeout() ), this, SLOT( handleRNLogoTimeout() ) );
+
+ delete mRNLogoTimer;
+ mRNLogoTimer = NULL;
+ }
+
if ( mControlsPolicy )
{
delete mControlsPolicy;
@@ -241,7 +262,6 @@
mVideoServices->decreaseReferenceCount();
mVideoServices = 0;
}
-
}
// -------------------------------------------------------------------------------------------------
@@ -255,8 +275,6 @@
mFileDetails = details;
- mFileDetails->mRNFormat = realFormat( mFileDetails->mClipName );
-
mControlsConfig->updateControlsWithFileDetails();
//
@@ -280,21 +298,6 @@
mVolumeControl->setValue( 0 );
mVolumeControl->setEnabled( false );
}
-
- //
- // If title is not available, show clip name
- //
- QString title = mFileDetails->mTitle;
-
- if ( title.count() == 0 )
- {
- QFileInfo fileInfo( mFileDetails->mClipName );
- title = fileInfo.baseName ();
- }
-
- QGraphicsWidget *widget = mLoader->findWidget( QString( "title" ) );
- HbLabel *titleLabel = qobject_cast<HbLabel*>( widget );
- titleLabel->setPlainText( title );
}
// -------------------------------------------------------------------------------------------------
@@ -487,7 +490,7 @@
// Control exists in new list.
//
myList.removeAt( index );
- i++;
+ i++;
}
}
@@ -526,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<HbLabel*>( widget );
@@ -578,7 +597,6 @@
QGraphicsWidget *widget = mLoader->findWidget( QString( "fileDetailsLayout" ) );
QMPXVideoPlaybackFileDetailsWidget *fileDetails =
qobject_cast<QMPXVideoPlaybackFileDetailsWidget*>( widget );
- fileDetails->initialize();
control = new QMPXVideoPlaybackFullScreenControl( this,
controlIndex,
@@ -602,6 +620,22 @@
break;
}
+ case EMPXRealLogoBitmap:
+ {
+ QGraphicsWidget *widget = mLoader->findWidget( QString( "rnLogoBitmap" ) );
+ HbWidget *bitmapWidget = qobject_cast<HbWidget*>( 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" ) );
@@ -713,7 +747,7 @@
resetDisappearingTimers( EMPXTimerReset );
- if ( ! mViewTransitionIsGoingOn )
+ if ( ! mViewTransitionIsGoingOn && mOrientation == Qt::Horizontal )
{
for ( int i = 0 ; i < mControls.count() ; i++ )
{
@@ -728,7 +762,7 @@
//
bool QMPXVideoPlaybackControlsController::isVisible()
{
- bool visible = EFalse;
+ bool visible = false;
for ( int i = 0 ; i < mControls.count() ; i++ )
{
@@ -736,7 +770,7 @@
{
if ( mControls[i]->isVisible() )
{
- visible = ETrue;
+ visible = true;
}
break;
@@ -877,7 +911,7 @@
//
bool QMPXVideoPlaybackControlsController::realFormat( QString filename )
{
- bool realFormat = EFalse;
+ bool realFormat = false;
if ( !filename.isNull() && !filename.isEmpty() )
{
@@ -904,7 +938,7 @@
//
bool QMPXVideoPlaybackControlsController::realFormatForStreaming( const TDesC& des )
{
- bool realFormat = EFalse;
+ bool realFormat = false;
TParse filePath;
_LIT(KMPXRMEXT, ".R" );
@@ -967,7 +1001,7 @@
// RealMedia Branding
if ( ! buf.Compare( KMPXRMEXT ) )
{
- realFormat = ETrue;
+ realFormat = true;
}
}
@@ -992,7 +1026,7 @@
{
realFormat = true;
}
-
+
MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::realFormatForLocal() [%d]"), realFormat);
return realFormat;
@@ -1046,9 +1080,9 @@
// QMPXVideoPlaybackControlsController::isSoftKeyVisible()
// -------------------------------------------------------------------------------------------------
//
-bool QMPXVideoPlaybackControlsController::isSoftKeyVisible( int /*value*/ )
+bool QMPXVideoPlaybackControlsController::isSoftKeyVisible()
{
- bool visible = EFalse;
+ bool visible = false;
for ( int i = 0 ; i < mControls.count() ; i++ )
{
@@ -1056,7 +1090,7 @@
{
if ( mControls[i]->isVisible() )
{
- visible = ETrue;
+ visible = true;
}
break;
@@ -1345,18 +1379,6 @@
}
// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackControlsController::isAttachOperation
-// -------------------------------------------------------------------------------------------------
-//
-bool QMPXVideoPlaybackControlsController::isAttachOperation()
-{
- MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::isAttachOperation() ret %d"),
- mIsAttachOperation );
-
- return mIsAttachOperation;
-}
-
-// -------------------------------------------------------------------------------------------------
// QMPXVideoPlaybackControlsController::attachVideo()
// -------------------------------------------------------------------------------------------------
//
@@ -1400,4 +1422,95 @@
dlg.send( fileList, true );
}
+// -------------------------------------------------------------------------------------------------
+// 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()
+// -------------------------------------------------------------------------------------------------
+//
+void QMPXVideoPlaybackControlsController::handleOrientationChanged( Qt::Orientation orientation )
+{
+ MPX_ENTER_EXIT(_L("QMPXVideoPlaybackControlsController::handleOrientationChanged()"),
+ _L("old orientation %d, new orientation = %d"), mOrientation, orientation );
+
+ Qt::Orientation oldOrientaiton = mOrientation;
+ mOrientation = orientation;
+
+ if ( oldOrientaiton == Qt::Vertical && orientation == Qt::Horizontal )
+ {
+ showControls();
+ }
+}
+
// End of File
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 23 %
+// Version : %version: 25 %
#include <QDir>
@@ -28,6 +28,7 @@
#include <hblistwidget.h>
#include <hblistviewitem.h>
#include <hbextendedlocale.h>
+#include <hbanchorlayout.h>
#include "mpxvideo_debug.h"
#include "mpxvideoplaybackdocumentloader.h"
@@ -57,22 +58,6 @@
QMPXVideoPlaybackFileDetailsWidget::~QMPXVideoPlaybackFileDetailsWidget()
{
MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::~QMPXVideoPlaybackFileDetailsWidget()"));
-
- if ( mListWidget )
- {
- delete mListWidget;
- }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackFileDetailsWidget::initialize
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackFileDetailsWidget::initialize()
-{
- MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::initialize"));
-
- updateWithFileDetails( mController->fileDetails() );
}
// -------------------------------------------------------------------------------------------------
@@ -101,25 +86,24 @@
//
HbListViewItem *prototype = mListWidget->listItemPrototype();
prototype->setSecondaryTextRowCount( 1, 30 );
-
+
+ //
+ // Title
+ //
+ makeTitleItem( details );
+
if ( ! mFileDetailsUpdated )
{
HbExtendedLocale locale = HbExtendedLocale::system();
mFileDetailsUpdated = true;
-
- //
- // Title
- //
- makeTitleItem( details );
-
+
//
// Description
//
addItemToListWidget(
hbTrId( "txt_videos_list_description" ), details->mDescription );
-
//
// Duration
//
@@ -132,11 +116,11 @@
value = value % 60;
QString sec = locale.toString( value );
- addItemToListWidget(
+ addItemToListWidget(
hbTrId( "txt_videos_list_duration" ),
- hbTrId( "txt_videos_list_l1_l2_l3" ).arg( hour ).arg( min ).arg( sec ) );
+ hbTrId( "txt_videos_list_l1l2l3" ).arg( hour ).arg( min ).arg( sec ) );
}
-
+
//
// Date/Time
//
@@ -146,27 +130,27 @@
// Location
//
addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation );
-
+
//
// Author
//
addItemToListWidget( hbTrId( "txt_videos_list_author" ), details->mArtist );
-
+
//
// Copyright
//
addItemToListWidget( hbTrId( "txt_videos_list_copyright" ), details->mCopyright );
-
+
//
// Language
//
addItemToListWidget( hbTrId( "txt_videos_list_language" ), details->mLanguage );
-
+
//
// Keywords
//
addItemToListWidget( hbTrId( "txt_videos_list_keywords" ), details->mKeywords );
-
+
//
// Size
//
@@ -182,17 +166,17 @@
.arg( locale.toString( details->mVideoHeight ) );
addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution );
}
-
+
//
// Format
//
addItemToListWidget( hbTrId( "txt_videos_list_format" ), details->mMimeType );
-
+
//
// Bitrate
//
makeBitRateItem( details );
-
+
//
// Folder
//
@@ -203,29 +187,44 @@
QString folder = fileInfo.dir().dirName();
addItemToListWidget( hbTrId( "txt_videos_list_collection_name" ), folder );
}
-
}
//
// Set the rect size dynamically based on the view mode
//
- QString sectionName;
+ QGraphicsWidget *content = loader->findWidget( QString( "content" ) );
+ HbAnchorLayout *layout = static_cast<HbAnchorLayout*>( content->layout() );
- if ( mController->viewMode() == EDetailsView )
- {
- sectionName = "detailsView";
- }
- else if ( mController->viewMode() == EAudioOnlyView )
+ if ( layout )
{
- sectionName = "audioOnlyView";
- }
+ QGraphicsWidget *titleLayout = loader->findWidget( QString( "titleLayout" ) );
+ QRectF titleRect = titleLayout->geometry();
+
+ switch ( mController->viewMode() )
+ {
+ case EDetailsView:
+ {
+ layout->setAnchor( titleLayout, Hb::BottomEdge, this, Hb::TopEdge, 0 );
+ layout->setAnchor( layout, Hb::BottomEdge, this, Hb::BottomEdge, 0 );
- bool ok = false;
- loader->load( KMPXPLAYBACKVIEW_XML, sectionName, &ok );
+ break;
+ }
+ case EAudioOnlyView:
+ {
+ QGraphicsWidget *controlLayout = loader->findWidget( QString( "controlBarLayout" ) );
+ QRectF controlRect = controlLayout->geometry();
- if ( ! ok )
- {
- MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget failed to load section"));
+ layout->setAnchor(
+ this, Hb::TopEdge, titleLayout,
+ Hb::BottomEdge, titleRect.bottom() - titleRect.top() );
+
+ layout->setAnchor(
+ this, Hb::BottomEdge,
+ layout, Hb::BottomEdge, layout->geometry().height() - controlRect.top() );
+
+ break;
+ }
+ }
}
}
}
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: da1mmcf#21 %
+// Version : %version: da1mmcf#23 %
@@ -44,7 +44,6 @@
QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar(
QMPXVideoPlaybackControlsController* controller )
: mController( controller )
- , mFrameItem( NULL )
, mDuration( -1 )
, mDraggingPosition( 0 )
, mSetPosition( -1 )
@@ -129,16 +128,14 @@
//
positionChanged( 0 );
-
//
// Set framedrawer for semi transparent background
//
- mFrameItem = new HbFrameItem ( parentItem() );
- mFrameItem->setGeometry( boundingRect() );
- mFrameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" );
- mFrameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
- mFrameItem->frameDrawer().setFillWholeRect( true );
- mFrameItem->setVisible( false );
+ HbFrameItem *frameItem = new HbFrameItem();
+ frameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" );
+ frameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
+ frameItem->frameDrawer().setFillWholeRect( true );
+ setBackgroundItem( frameItem );
}
}
@@ -366,8 +363,8 @@
{
MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::updateControlsWithFileDetails()"));
- if ( details->mPlaybackMode == EMPXVideoLiveStreaming )
- {
+ if ( ! details->mPausableStream || ! details->mSeekable )
+ {
mProgressSlider->setEnabled( false );
}
else if ( ! mProgressSlider->isEnabled() )
@@ -375,7 +372,7 @@
mProgressSlider->setEnabled( true );
}
- mFrameItem->setVisible( ( mController->viewMode() == EFullScreenView )? ETrue:EFalse );
+ backgroundItem()->setVisible( ( mController->viewMode() == EFullScreenView )? ETrue:EFalse );
}
// -------------------------------------------------------------------------------------------------
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackstatuspanecontrol.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackstatuspanecontrol.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,12 +15,16 @@
*
*/
-// Version : %version: 15 %
+// Version : %version: 16 %
+
+#include <QFileInfo>
+
#include <hbmenu.h>
#include <hblabel.h>
#include <hbaction.h>
+#include <hbgroupbox.h>
#include <hbinstance.h>
#include <hbframeitem.h>
#include <hbframedrawer.h>
@@ -45,10 +49,14 @@
TUint controlproperties )
: QMPXVideoPlaybackFullScreenControl( controller, index, widget, controlproperties )
, mActionBack( NULL )
- , mFrameItem( NULL )
+ , mTitleLabel( NULL )
+ , mTitleGroupBox( NULL )
+ , mTitleLayout( NULL )
{
MPX_ENTER_EXIT(_L("QMPXVideoPlaybackStatusPaneControl::QMPXVideoPlaybackStatusPaneControl()"));
+ Q_UNUSED( widget );
+
mActionBack = new HbAction( Hb::BackNaviAction );
//
@@ -59,9 +67,6 @@
connect( mController->view()->menu(), SIGNAL( aboutToShow() ), this, SLOT( handleAboutToShow() ) );
connect( mController->view()->menu(), SIGNAL( aboutToHide() ), this, SLOT( handleAboutToHide() ) );
-
- QGraphicsWidget *widget1 = mController->layoutLoader()->findWidget( QString( "title" ) );
- mTitleLabel = qobject_cast<HbLabel*>( widget1 );
}
// -------------------------------------------------------------------------------------------------
@@ -104,7 +109,7 @@
if ( mController->viewMode() == EFullScreenView ||
mController->viewMode() == EDetailsView )
{
- mTitleLabel->setVisible( true );
+ mTitleLayout->setVisible( true );
}
}
else
@@ -113,7 +118,7 @@
mController->view()->setTitleBarVisible( false );
mController->view()->setStatusBarVisible( false );
- mTitleLabel->setVisible( false );
+ mTitleLayout->setVisible( false );
}
}
@@ -164,6 +169,39 @@
{
MPX_DEBUG(_L("QMPXVideoPlaybackStatusPaneControl::updateControlsWithFileDetails()"));
+ if ( ! mTitleLabel )
+ {
+ //
+ // If title is not available, show clip name
+ //
+ QString title = mController->fileDetails()->mTitle;
+
+ if ( title.count() == 0 )
+ {
+ QFileInfo fileInfo( mController->fileDetails()->mClipName );
+ title = fileInfo.baseName ();
+ }
+
+ QGraphicsWidget *qWidget = mController->layoutLoader()->findWidget( QString( "title" ) );
+ mTitleLabel = qobject_cast<HbLabel*>( qWidget );
+ mTitleLabel->setPlainText( title );
+
+ qWidget = mController->layoutLoader()->findWidget( QString( "titleGroupBox" ) );
+ mTitleGroupBox = qobject_cast<HbGroupBox*>( qWidget );
+ mTitleGroupBox->setHeading( title );
+
+ mTitleLayout = mController->layoutLoader()->findWidget( QString( "titleLayout" ) );
+
+ //
+ // Set framedrawer for semi transparent background
+ //
+ HbFrameItem *frameItem = new HbFrameItem();
+ frameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" );
+ frameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
+ frameItem->frameDrawer().setFillWholeRect( true );
+ mTitleLabel->setBackgroundItem( frameItem );
+ }
+
switch( mController->viewMode() )
{
case EFullScreenView:
@@ -176,6 +214,10 @@
mController->view()->setViewFlags(
HbView::HbViewFlags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent ) );
+
+ mTitleLabel->setVisible( true );
+ mTitleGroupBox->setVisible( false );
+
break;
}
case EDetailsView:
@@ -188,6 +230,9 @@
mController->view()->setViewFlags( HbView::ViewFlagNone );
+ mTitleGroupBox->setVisible( true );
+ mTitleLabel->setVisible( false );
+
break;
}
case EAudioOnlyView:
@@ -204,20 +249,6 @@
}
setMenu( details );
-
- //
- // Set framedrawer for semi transparent background
- //
- if ( ! mFrameItem )
- {
- mFrameItem = new HbFrameItem ( mTitleLabel );
- mFrameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" );
- mFrameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
- mFrameItem->frameDrawer().setFillWholeRect( true );
- }
-
- mFrameItem->setGeometry( mTitleLabel->boundingRect() );
- mFrameItem->setVisible( ( mController->viewMode() == EFullScreenView )? ETrue:EFalse );
}
// -------------------------------------------------------------------------------------------------
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// 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 )
{
@@ -500,7 +504,7 @@
if ( mButtons.count() )
{
- disconnect( mButtons[EMPX1stButton], SIGNAL( released() ) );
+ disconnect( mButtons[EMPX1stButton], SIGNAL( released() ), 0, 0 );
connect( mButtons[EMPX1stButton], SIGNAL( released() ),
mController, SLOT( attachVideo() ) );
}
@@ -539,7 +543,7 @@
if ( mButtons.count() )
{
- disconnect( mButtons[EMPX1stButton], SIGNAL( released() ) );
+ disconnect( mButtons[EMPX1stButton], SIGNAL( released() ), 0, 0 );
connect( mButtons[EMPX1stButton], SIGNAL( released() ),
this, SLOT( changeAspectRatio() ) );
}
@@ -569,7 +573,7 @@
if ( mButtons.count() )
{
- disconnect( mButtons[EMPX1stButton], SIGNAL( released() ) );
+ disconnect( mButtons[EMPX1stButton], SIGNAL( released() ), 0, 0 );
connect( mButtons[EMPX1stButton], SIGNAL( released() ),
mController, SLOT( sendVideo() ) );
}
@@ -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++ )
--- a/videoplayback/hbvideoplaybackview/inc/mpxvideoplaybackcontrolscontroller.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/inc/mpxvideoplaybackcontrolscontroller.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: da1mmcf#17 %
+// Version : %version: da1mmcf#19 %
@@ -73,6 +73,7 @@
};
const int KMPXControlsTimeOut = 4000;
+const int KMPXRNLogoTimeOut = 600;
const QString KMPXPLAYBACKVIEW_XML = ":/hbvideoplaybackview/hbvideoplaybackview.docml";
@@ -146,7 +147,9 @@
void changeViewMode( TPlaybackViewMode viewMode, bool transitionEffect = true );
- bool isAttachOperation();
+ inline bool isAttachOperation();
+
+ bool isRNLogoBitmapInControlList();
private:
/**
@@ -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,9 @@
void controlsListUpdated();
void attachVideo();
void sendVideo();
+ void handleRNLogoVisibleChanged();
+ void handleRNLogoTimeout();
+ void handleOrientationChanged( Qt::Orientation orientation );
private:
HbVideoBasePlaybackView *mView;
@@ -278,6 +284,7 @@
QMPXVideoPlaybackControlConfiguration *mControlsConfig;
QTimer *mControlsTimer;
+ QTimer *mRNLogoTimer;
QMPXVideoPlaybackDocumentLoader *mLoader;
HbVolumeSliderPopup *mVolumeControl;
@@ -292,6 +299,7 @@
TMPXPlaybackState mState;
TPlaybackViewMode mViewMode;
+ Qt::Orientation mOrientation;
};
// INLINE METHODS
@@ -358,6 +366,19 @@
return mViewMode;
}
+// -------------------------------------------------------------------------------------------------
+// QMPXVideoPlaybackControlsController::isAttachOperation
+// -------------------------------------------------------------------------------------------------
+//
+inline
+bool QMPXVideoPlaybackControlsController::isAttachOperation()
+{
+ MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::isAttachOperation() ret %d"),
+ mIsAttachOperation );
+
+ return mIsAttachOperation;
+}
+
#endif /*MPXVIDEOPLAYBACKCONTROLSCONTROLLER_P_H_*/
// End of File
--- a/videoplayback/hbvideoplaybackview/resources/animation.axml Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<animations>
-<icon name="frame_anim_looping" frame_duration="100" playmode="loop">
-<frame>qtg_anim_loading_1</frame>
-<frame>qtg_anim_loading_2</frame>
-<frame>qtg_anim_loading_3</frame>
-<frame>qtg_anim_loading_4</frame>
-<frame>qtg_anim_loading_5</frame>
-<frame>qtg_anim_loading_6</frame>
-<frame>qtg_anim_loading_7</frame>
-<frame>qtg_anim_loading_8</frame>
-<frame>qtg_anim_loading_9</frame>
-<frame>qtg_anim_loading_10</frame>
-</icon>
-</animations>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/hbvideoplaybackview/resources/animations/generic_preroll_anim.axml Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,14 @@
+<animations>
+ <icon name="preroll_anim" frame_duration="100" playmode="loop">
+ <frame>qtg_anim_loading_1</frame>
+ <frame>qtg_anim_loading_2</frame>
+ <frame>qtg_anim_loading_3</frame>
+ <frame>qtg_anim_loading_4</frame>
+ <frame>qtg_anim_loading_5</frame>
+ <frame>qtg_anim_loading_6</frame>
+ <frame>qtg_anim_loading_7</frame>
+ <frame>qtg_anim_loading_8</frame>
+ <frame>qtg_anim_loading_9</frame>
+ <frame>qtg_anim_loading_10</frame>
+ </icon>
+</animations>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/hbvideoplaybackview/resources/animations/rn_preroll_anim.axml Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,13 @@
+<animations>
+ <icon name="preroll_anim" frame_duration="100" playmode="loop">
+ <frame>qtg_anim_longtap_1</frame>
+ <frame>qtg_anim_longtap_2</frame>
+ <frame>qtg_anim_longtap_3</frame>
+ <frame>qtg_anim_longtap_4</frame>
+ <frame>qtg_anim_longtap_5</frame>
+ <frame>qtg_anim_longtap_6</frame>
+ <frame>qtg_anim_longtap_7</frame>
+ <frame>qtg_anim_longtap_8</frame>
+ <frame>qtg_anim_longtap_9</frame>
+ </icon>
+</animations>
\ No newline at end of file
--- a/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml Wed Jun 23 17:22:59 2010 +0100
@@ -3,18 +3,70 @@
<widget name="content" type="HbWidget">
<widget name="bufferingIcon" type="HbLabel">
<enums name="alignment" value="AlignVCenter|AlignHCenter"/>
- <icon iconName="frame_anim_looping" name="icon"/>
- <real name="z" value="5"/>
+ <icon iconName="preroll_anim" name="icon"/>
+ <real name="z" value="6"/>
<sizehint height="70" type="PREFERRED" width="70"/>
<bool name="visible" value="FALSE"/>
</widget>
+ <widget name="titleLayout" type="HbWidget">
+ <widget name="title" type="HbLabel">
+ <enums name="alignment" value="AlignLeft|AlignVCenter|AlignLeading"/>
+ <real name="z" value="0"/>
+ <string name="plainText"/>
+ </widget>
+ <widget name="titleGroupBox" type="HbGroupBox">
+ <real name="z" value="1"/>
+ <bool name="collapsable" value="FALSE"/>
+ <string name="heading" value="Group Box"/>
+ </widget>
+ <real name="z" value="2"/>
+ <sizehint height="35" type="PREFERRED" width="640"/>
+ <bool name="visible" value="FALSE"/>
+ <layout type="stacked">
+ <stackitem itemname="title"/>
+ <stackitem itemname="titleGroupBox"/>
+ </layout>
+ </widget>
+ <widget name="transparentWindow" type="HbTransparentWindow">
+ <real name="z" value="0"/>
+ <bool name="visible" value="FALSE"/>
+ <layout type="anchor"/>
+ </widget>
+ <widget name="controlBarLayout" type="HbWidget">
+ <widget name="progressBarLayout" type="HbWidget">
+ <widget name="progressSlider" type="HbProgressSlider">
+ <integer name="progressValue" value="70"/>
+ <bool name="minMaxTextVisible" value="TRUE"/>
+ <enums name="minMaxTextAlignment" value="AlignVCenter|AlignHCenter"/>
+ <string name="minText"/>
+ <enums name="orientation" value="Horizontal"/>
+ <integer name="sliderValue" value="30"/>
+ <string name="maxText"/>
+ <bool name="textVisible" value="FALSE"/>
+ <string name="textAlignment" value="AlignBottom"/>
+ </widget>
+ <real name="z" value="3"/>
+ <bool name="visible" value="TRUE"/>
+ <layout type="anchor">
+ <anchoritem dst="progressSlider" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
+ <anchoritem dst="progressSlider" dstEdge="CENTERV" spacing="0" src="" srcEdge="CENTERV"/>
+ <anchoritem dst="progressSlider" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
+ </layout>
+ </widget>
+ <real name="z" value="1"/>
+ <sizehint height="160" type="PREFERRED" width="80"/>
+ <bool name="visible" value="FALSE"/>
+ <layout orientation="Vertical" spacing="0px" type="linear">
+ <contentsmargins bottom="0px" left="0px" right="0px" top="0px"/>
+ <linearitem itemname="progressBarLayout"/>
+ </layout>
+ </widget>
<widget name="fileDetailsLayout" type="HbWidget">
<widget name="fileDetails" type="HbListWidget"/>
- <real name="z" value="2"/>
- <sizehint height="193" type="PREFERRED" width="320"/>
+ <real name="z" value="3"/>
<bool name="visible" value="FALSE"/>
<layout orientation="Vertical" type="linear">
- <contentsmargins bottom="9px" left="9px" right="9px" top="9px"/>
+ <contentsmargins bottom="0px" left="0px" right="0px" top="0px"/>
<linearitem itemname="fileDetails"/>
</layout>
</widget>
@@ -39,7 +91,7 @@
<icon iconName="qtg_large_tv_out" name="icon"/>
<bool name="visible" value="FALSE"/>
</widget>
- <real name="z" value="1"/>
+ <real name="z" value="5"/>
<sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
<sizehint height="193" type="PREFERRED" width="320"/>
<sizehint height="18" type="MINIMUM" width="18"/>
@@ -62,7 +114,7 @@
<string name="state" value="normal"/>
</widget>
<real name="z" value="0"/>
- <sizehint height="229" type="PREFERRED"/>
+ <sizehint height="220" type="PREFERRED" width="360"/>
<layout type="anchor">
<anchoritem dst="detailsViewPlayButton" dstEdge="CENTERH" spacing="0" src="" srcEdge="CENTERH"/>
<anchoritem dst="detailsViewPlayButton" dstEdge="CENTERV" spacing="0" src="" srcEdge="CENTERV"/>
@@ -83,60 +135,25 @@
<string name="state" value="normal"/>
</widget>
<real name="z" value="0"/>
- <sizehint height="40" type="PREFERRED" width="320"/>
+ <sizehint height="50" type="PREFERRED" width="320"/>
<layout type="stacked">
<stackitem itemname="detailsAttachButton"/>
<stackitem itemname="detailsShareButton"/>
</layout>
</widget>
<real name="z" value="4"/>
- <sizehint height="160" type="PREFERRED" width="80"/>
<bool name="visible" value="FALSE"/>
- <layout orientation="Vertical" type="linear">
+ <layout orientation="Vertical" spacing="3px" type="linear">
<contentsmargins bottom="0px" left="0px" right="0px" top="0px"/>
<linearitem itemname="small_transparentWindow"/>
<linearitem itemname="attachShareButton"/>
</layout>
</widget>
- <widget name="title" type="HbLabel">
- <enums name="alignment" value="AlignLeft|AlignVCenter|AlignLeading"/>
- <real name="z" value="6"/>
- <sizehint height="33" type="PREFERRED" width="640"/>
- <bool name="visible" value="FALSE"/>
- </widget>
- <widget name="transparentWindow" type="HbTransparentWindow">
- <real name="z" value="0"/>
+ <widget name="rnLogoBitmap" type="HbLabel">
+ <real name="z" value="7"/>
+ <sizehint height="200" type="PREFERRED" width="200"/>
+ <icon iconName="qtg_large_realplayer" name="icon"/>
<bool name="visible" value="FALSE"/>
- <layout type="anchor"/>
- </widget>
- <widget name="controlBarLayout" type="HbWidget">
- <widget name="progressBarLayout" type="HbWidget">
- <widget name="progressSlider" type="HbProgressSlider">
- <integer name="progressValue" value="70"/>
- <bool name="minMaxTextVisible" value="TRUE"/>
- <bool name="textVisible" value="FALSE"/>
- <enums name="minMaxTextAlignment" value="AlignVCenter|AlignHCenter"/>
- <string name="minText" value=""/>
- <enums name="orientation" value="Horizontal"/>
- <integer name="sliderValue" value="30"/>
- <enums name="textAlignment" value="AlignBottom"/>
- <string name="maxText" value=""/>
- </widget>
- <real name="z" value="3"/>
- <bool name="visible" value="TRUE"/>
- <layout type="anchor">
- <anchoritem dst="progressSlider" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
- <anchoritem dst="progressSlider" dstEdge="CENTERV" spacing="0" src="" srcEdge="CENTERV"/>
- <anchoritem dst="progressSlider" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
- </layout>
- </widget>
- <real name="z" value="1"/>
- <sizehint height="160" type="PREFERRED" width="80"/>
- <bool name="visible" value="FALSE"/>
- <layout orientation="Vertical" spacing="0px" type="linear">
- <contentsmargins bottom="0px" left="0px" right="0px" top="0px"/>
- <linearitem itemname="progressBarLayout"/>
- </layout>
</widget>
<size height="360" name="size" width="640"/>
<real name="z" value="1"/>
@@ -145,22 +162,10 @@
<layout type="anchor">
<anchoritem dst="bufferingIcon" dstEdge="CENTERH" spacing="0" src="" srcEdge="CENTERH"/>
<anchoritem dst="bufferingIcon" dstEdge="CENTERV" spacing="0" src="" srcEdge="CENTERV"/>
- <anchoritem dst="title" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
- <anchoritem dst="title" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
- <anchoritem dst="title" dstEdge="TOP" spacing="62" src="" srcEdge="TOP"/>
- <anchoritem dst="title" dstEdge="BOTTOM" spacing="100" src="" srcEdge="TOP"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="LEFT" spacing="0" src="" srcEdge="CENTERH"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="TOP" spacing="62" src="" srcEdge="TOP"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="BOTTOM" spacing="-110" src="" srcEdge="BOTTOM"/>
- <anchoritem dst="bitmapLayout" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
- <anchoritem dst="bitmapLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="CENTERH"/>
- <anchoritem dst="bitmapLayout" dstEdge="TOP" spacing="62" src="" srcEdge="TOP"/>
- <anchoritem dst="bitmapLayout" dstEdge="BOTTOM" spacing="-110" src="" srcEdge="BOTTOM"/>
- <anchoritem dst="detailsPlaybackWindow" dstEdge="TOP" spacing="0" src="title" srcEdge="BOTTOM"/>
- <anchoritem dst="detailsPlaybackWindow" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
- <anchoritem dst="detailsPlaybackWindow" dstEdge="RIGHT" spacing="0" src="" srcEdge="CENTERH"/>
- <anchoritem dst="detailsPlaybackWindow" dstEdge="BOTTOM" spacing="0" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="titleLayout" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
+ <anchoritem dst="titleLayout" dstEdge="TOP" spacing="62" src="" srcEdge="TOP"/>
+ <anchoritem dst="titleLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="titleLayout" dstEdge="BOTTOM" spacing="100" src="" srcEdge="TOP"/>
<anchoritem dst="transparentWindow" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
<anchoritem dst="transparentWindow" dstEdge="TOP" spacing="0" src="" srcEdge="TOP"/>
<anchoritem dst="transparentWindow" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
@@ -169,34 +174,22 @@
<anchoritem dst="controlBarLayout" dstEdge="TOP" spacing="-110" src="" srcEdge="BOTTOM"/>
<anchoritem dst="controlBarLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
<anchoritem dst="controlBarLayout" dstEdge="BOTTOM" spacing="-60" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="detailsPlaybackWindow" dstEdge="TOP" spacing="0" src="titleLayout" srcEdge="BOTTOM"/>
+ <anchoritem dst="detailsPlaybackWindow" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
+ <anchoritem dst="detailsPlaybackWindow" dstEdge="RIGHT" spacing="0" src="" srcEdge="CENTERH"/>
+ <anchoritem dst="detailsPlaybackWindow" dstEdge="BOTTOM" spacing="0" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="bitmapLayout" dstEdge="LEFT" spacing="0" src="" srcEdge="LEFT"/>
+ <anchoritem dst="bitmapLayout" dstEdge="TOP" spacing="0" src="titleLayout" srcEdge="TOP"/>
+ <anchoritem dst="bitmapLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="CENTERH"/>
+ <anchoritem dst="bitmapLayout" dstEdge="BOTTOM" spacing="0" src="controlBarLayout" srcEdge="TOP"/>
+ <anchoritem dst="fileDetailsLayout" dstEdge="LEFT" spacing="0" src="" srcEdge="CENTERH"/>
+ <anchoritem dst="fileDetailsLayout" dstEdge="TOP" spacing="0" src="titleLayout" srcEdge="BOTTOM"/>
+ <anchoritem dst="fileDetailsLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="fileDetailsLayout" dstEdge="BOTTOM" spacing="0" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="rnLogoBitmap" dstEdge="CENTERH" spacing="0" src="" srcEdge="CENTERH"/>
+ <anchoritem dst="rnLogoBitmap" dstEdge="CENTERV" spacing="0" src="" srcEdge="CENTERV"/>
</layout>
</widget>
- <section name="detailsView">
- <widget name="content" type="HbWidget">
- <layout type="anchor">
- <anchoritem dst="fileDetailsLayout" dstEdge="TOP" spacing="0" src="title" srcEdge="BOTTOM"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="LEFT" spacing="0" src="" srcEdge="CENTERH"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="BOTTOM" spacing="0" src="" srcEdge="BOTTOM"/>
- </layout>
- </widget>
- <widget name="fileDetailsLayout" type="HbWidget">
- <sizehint height="264" type="PREFERRED" width="320"/>
- </widget>
- </section>
- <section name="audioOnlyView">
- <widget name="content" type="HbWidget">
- <layout type="anchor">
- <anchoritem dst="fileDetailsLayout" dstEdge="TOP" spacing="62" src="" srcEdge="TOP"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="LEFT" spacing="0" src="" srcEdge="CENTERH"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="RIGHT" spacing="0" src="" srcEdge="RIGHT"/>
- <anchoritem dst="fileDetailsLayout" dstEdge="BOTTOM" spacing="-110" src="" srcEdge="BOTTOM"/>
- </layout>
- </widget>
- <widget name="fileDetailsLayout" type="HbWidget">
- <sizehint height="198" type="PREFERRED" width="320"/>
- </widget>
- </section>
<metadata activeUIState="Common ui state" display="NHD landscape" unit="px">
<resource location="hbvideoplaybackview.qrc"/>
<uistate name="Common ui state" sections="#common"/>
--- a/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.qrc Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.qrc Wed Jun 23 17:22:59 2010 +0100
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<RCC>
<qresource prefix="hbvideoplaybackview">
- <file>animation.axml</file>
+ <file>animations/rn_preroll_anim.axml</file>
+ <file>animations/generic_preroll_anim.axml</file>
<file>hbvideoplaybackview.docml</file>
<file>effects/controlbar_appear.fxml</file>
<file>effects/controlbar_disappear.fxml</file>
--- a/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/src/testcontrolconfiguration.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/src/testcontrolconfiguration.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: %
+// Version : %version: 4 %
#include <hbapplication.h>
#include <hbinstance.h>
@@ -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<TMPXVideoPlaybackControls> 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<TMPXVideoPlaybackControls> 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<TMPXVideoPlaybackControls> 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
--- a/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testcontrolconfiguration/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testdetailsplaybackwindow/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testdetailsplaybackwindow/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testdetailsplaybackwindow/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testdetailsplaybackwindow/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testfullscreencontrol/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testfullscreencontrol/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testfullscreencontrol/stub/src/mpxvideoplaybackfiledetailswidget.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testfullscreencontrol/stub/src/mpxvideoplaybackfiledetailswidget.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -65,7 +65,7 @@
void QMPXVideoPlaybackFileDetailsWidget::updateWithFileDetails(
QMPXVideoPlaybackViewFileDetails* details )
{
-
+ Q_UNUSED( details );
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testfullscreencontrol/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testfullscreencontrol/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/hbeffect.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/hbeffect.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -100,6 +100,7 @@
MPX_DEBUG(_L("HbEffect::effectRunning"));
Q_UNUSED( item );
+ Q_UNUSED( effectEvent );
return false;
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolpolicy/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolpolicy/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolpolicy/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolpolicy/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/stub/src/mpxvideoplaybackcontrolscontroller.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/stub/src/mpxvideoplaybackcontrolscontroller.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,6 +67,7 @@
{
MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::changeViewMode()"));
+ Q_UNUSED( transitionEffect );
mViewMode = viewMode;
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/src/hbglobal.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/src/hbglobal.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -89,7 +89,7 @@
{
loc = "Bitrate";
}
- else if ( string == "txt_videos_list_l1_l2_l3" )
+ else if ( string == "txt_videos_list_l1l2l3" )
{
loc = "%L1 hr %L2 min %L3 sec";
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/src/mpxvideoplaybackdocumentloader.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/src/mpxvideoplaybackdocumentloader.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -88,6 +88,12 @@
object->setObjectName( name );
mWidgets.append( object );
}
+ else if ( name == "content" )
+ {
+ object = new QGraphicsWidget();
+ object->setObjectName( name );
+ mWidgets.append( object );
+ }
return object;
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/src/testmpxvideoplaybacktoolbar.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/src/testmpxvideoplaybacktoolbar.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 4 %
#include <qdebug>
@@ -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()
{
@@ -418,7 +418,6 @@
details->mVideoHeight = 1;
details->mVideoWidth = 1;
details->mTvOutConnected = false;
- details->mTvOutPlayAllowed = true;
details->mSeekable = true;
details->mPausableStream = true;
mController->mViewMode = EFullScreenView;
@@ -455,15 +454,14 @@
details->mVideoHeight = 0;
details->mVideoWidth = 1;
details->mTvOutConnected = true;
- details->mTvOutPlayAllowed = 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 );
@@ -474,8 +472,7 @@
details->mVideoHeight = 0;
details->mVideoWidth = 1;
details->mTvOutConnected = true;
- details->mTvOutPlayAllowed = true;
- details->mSeekable = false;
+ details->mSeekable = true;
details->mPausableStream = false;
mController->mViewMode = EAudioOnlyView;
@@ -493,6 +490,8 @@
details->mVideoEnabled = false;
details->mPlaybackMode = EMPXVideoStreaming;
mController->mViewMode = EAudioOnlyView;
+ details->mSeekable = false;
+ details->mPausableStream = false;
mVideoToolBar->updateWithFileDetails( details );
@@ -516,7 +515,6 @@
details->mVideoHeight = 1;
details->mVideoWidth = 1;
details->mTvOutConnected = false;
- details->mTvOutPlayAllowed = true;
details->mSeekable = true;
details->mPausableStream = true;
@@ -531,9 +529,9 @@
cleanup();
}
-// ---------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
// testOpenDetailsView
-// ---------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
//
void TestMPXVideoPlaybackToolBar::testOpenDetailsView()
{
@@ -558,9 +556,9 @@
cleanup();
}
-// ---------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
// testAttach
-// ---------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
//
void TestMPXVideoPlaybackToolBar::testAttach()
{
@@ -608,9 +606,9 @@
}
-// ---------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
// testSend
-// ---------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
//
void TestMPXVideoPlaybackToolBar::testSend()
{
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybacktoolbar/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/inc/testmpxvideoviewwrapper.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/inc/testmpxvideoviewwrapper.h Wed Jun 23 17:22:59 2010 +0100
@@ -29,28 +29,23 @@
{
Q_OBJECT
-public:
+ public:
- /**
- * will be called before each testfunction is executed.
- *
- */
- void init();
+ /**
+ * will be called before each testfunction is executed.
+ *
+ */
+ void init();
- /**
- * will be called after every testfunction.
- *
- */
- void cleanup();
+ /**
+ * will be called after every testfunction.
+ *
+ */
+ void cleanup();
- // test functions for the test framework
-
-
-private slots:
-
+ 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();
@@ -62,7 +57,6 @@
void testRetrieveFileNameAndMode();
void testActivateClosePlayerActiveObject();
void testDoClosePlayer();
- void testIssuePlayCommand();
void testSetAspectRatio();
void testIsAppInFront();
void testClosePlaybackView();
@@ -75,26 +69,17 @@
void testUpdateVideoRectDone();
void testHandleBufferingState();
void testHandleVideoPlaybackMessage();
- void testCreateGeneralPlaybackCommand();
void testHandlePlaybackCommandComplete();
void testHandleMedia();
-
-
-signals:
-
- void commandSignal(int);
+ signals:
+ void commandSignal(int);
-private:
- CMPXVideoViewWrapper* mVideoViewWrapper;
- HbVideoBasePlaybackView* mBaseVideoView;
-
+ private:
+ CMPXVideoViewWrapper *mVideoViewWrapper;
+ HbVideoBasePlaybackView *mBaseVideoView;
};
-
#endif // __TESTMPXVIDEOVIEWWRAPPER_H__
// End of file
-
-
-
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,6 +15,8 @@
*
*/
+// Version : %version: 7 %
+
#include <e32err.h>
#include <w32std.h>
@@ -34,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
@@ -59,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 );
}
// ---------------------------------------------------------------------------
@@ -84,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();
@@ -99,10 +103,9 @@
TRAPD(err, mVideoViewWrapper->RequestMediaL());
QVERIFY( err == KErrNone );
- QVERIFY( mVideoViewWrapper->iMediaRequested == true );
+ QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaRequested );
cleanup();
-
}
void TestMPXVideoViewWrapper::testIsLive()
@@ -112,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();
@@ -169,10 +323,8 @@
QVERIFY( mVideoViewWrapper->iView->mCurrentError == KErrNotSupported );
cleanup();
-
}
-
void TestMPXVideoViewWrapper::testHandlePlaybackMessage()
{
init();
@@ -187,7 +339,6 @@
message->SetTObjectValueL<TMPXVideoPlaybackCommand>
( KMPXMediaVideoPlaybackCommand, EPbCmdTvOutEvent );
message->SetTObjectValueL<TInt>( KMPXMediaVideoTvOutConnected, ETrue );
- message->SetTObjectValueL<TInt>( KMPXMediaVideoTvOutPlayAllowed, EFalse );
);
mVideoViewWrapper->HandlePlaybackMessage( message, KErrNone );
QVERIFY( mVideoViewWrapper->iFileDetails->mTvOutConnected );
@@ -197,8 +348,6 @@
message = NULL;
}
-
-
//***************************
// Test General Msg
//***************************
@@ -216,8 +365,7 @@
delete message;
message = NULL;
}
-
-
+
//***************************
// Test Video Msg with err
//***************************
@@ -233,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();
@@ -528,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() );
@@ -562,13 +718,15 @@
cleanup();
}
-
void TestMPXVideoViewWrapper::testHandleMedia()
{
init();
CMPXMedia* media = NULL;
-
+
+ //
+ // Error case
+ //
TRAP_IGNORE(
RArray<TInt> suppIds;
CleanupClosePushL( suppIds );
@@ -578,27 +736,92 @@
media = CMPXMedia::NewL( suppIds.Array() );
CleanupStack::PopAndDestroy( &suppIds );
- media->SetTObjectValueL<TInt>( TMPXAttribute( KMPXMediaVideoError ),
- KErrCancel );
+ media->SetTObjectValueL<TInt>( 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<TInt> 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<TInt> 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
-
-
-
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/hbvideobaseplaybackview.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/hbvideobaseplaybackview.h Wed Jun 23 17:22:59 2010 +0100
@@ -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:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutility.h Wed Jun 23 17:22:59 2010 +0100
@@ -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 <e32base.h>
+#include <mpxcommand.h>
+#include <mpxattributespecs.h>
+#include <mpxplaybackcommanddefs.h>
+#include <mpxplaybackframeworkdefs.h>
+
+class TMPXAttribute;
+class MMPXPlaybackObserver;
+class CMPXCollectionPlaylist;
+class MMPXPlaybackCallback;
+class CMPXPlaybackUtility;
+
+class MMPXSource
+{
+ public:
+ virtual CMPXCollectionPlaylist* PlaylistL() = 0;
+
+ virtual void MediaL( const TArray<TMPXAttribute>& 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<TMPXAttribute>& aAttrs,
+ MMPXPlaybackCallback& aCallback,
+ CMPXAttributeSpecs* aSpecs );
+
+ void SetPrimaryClientL();
+};
+
+#endif // CMPXPLAYBACKUTILITY_H
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutilityimpl.h Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,655 +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
-*
-*/
-
-
-
-#ifndef CMPXPLAYBACKUTILITY_H
-#define CMPXPLAYBACKUTILITY_H
-
-#include <e32base.h>
-#include <f32file.h>
-#include <mpxplaybackobserver.h>
-#include <mpxplaybackmessage.h>
-#include <mpxsession.h>
-#include <mpxmessageobserver.h>
-#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:
- /**
- * 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<TProcessId> pids;
- * m->GetClients(pids);
- * .........
- * pids->Close();
- * m->Close();
- *
- * @param aClients Array of Pids returned.
- */
- void GetClientsL(RArray<TProcessId>& 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<TMPXPlaybackPlayerType>& 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<TUid>& 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<TUid>& 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<TMPXAttribute>& 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<TMPXAttribute>& 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<MMPXPlaybackObserver*> iObservers;
- CMPXMessageMonitor* iMsgMonitor;
- CMPXTaskQueue* iTaskQueue;
- RMPXSession iPbs;
- CBufBase* iBuffer;
- TPckgBuf<TInt> iPropertyValuePckg;
- TPckgBuf<TBool> iCompletePckg;
- TPckgBuf<TInt> 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrol.hrh Wed Jun 23 17:22:59 2010 +0100
@@ -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_*/
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrolscontroller.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackcontrolscontroller.h Wed Jun 23 17:22:59 2010 +0100
@@ -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_*/
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackdisplayhandler.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackdisplayhandler.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4 %
+// Version : %version: 6 %
#ifndef __CMPXVIDEOPLAYBACKDISPLAYHANDLER_H__
@@ -26,11 +26,7 @@
#include <mpxmessage2.h>
#include <mmfscalingcustomcommandconstants.h>
#include <mpxvideoplaybackdefs.h>
-#ifdef SYMBIAN_BUILD_GCE
#include <mediaclientvideodisplay.h>
-#else
-#include <w32std.h>
-#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<TMPXAspectRatio> 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__
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4 %
+// Version : %version: 5 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/hbvideobaseplaybackview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/hbvideobaseplaybackview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxplaybackutility.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxplaybackutility.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -15,50 +15,198 @@
*
*/
+#include <bamdesca.h>
+#include <s32mem.h>
+#include <e32math.h>
+#include <mpxcmn.h>
+#include <mpxplaybackobserver.h>
+#include <mpxcollectionplaylist.h>
+#include <mpxmedia.h>
+#include <mpxmessagemonitor.h>
+#include <mpxtaskqueue.h>
+#include <mpxuser.h>
+#include <mpxmessagegeneraldefs.h>
+#include <mpxcommandgeneraldefs.h>
+#include <mpxcollectionpath.h>
+#include <mpxvideoplaybackdefs.h>
-#include"mpxplaybackutilityimpl.h"
+#include"mpxplaybackutility.h"
-// ============================== MEMBER FUNCTIONS ============================
+// ============================== MEMBER FUNCTIONS =================================================
+
+// -------------------------------------------------------------------------------------------------
+// Creates the playback utility object if not already created
+// -------------------------------------------------------------------------------------------------
+//
+MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL( const TMPXCategory /*aCategory*/,
+ const TUid& /*aModeId*/ )
+{
+ return CMPXPlaybackUtility::NewL();
+}
-// ----------------------------------------------------------------------------
-// Create the playback utility object
-// ----------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
+// 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
+// -------------------------------------------------------------------------------------------------
//
-EXPORT_C MMPXPlaybackUtility* MMPXPlaybackUtility::NewL(const TUid& aModeId,
- MMPXPlaybackObserver* aObs)
- {
- return CMPXPlaybackUtility::NewL(aModeId,aObs, EMPXCategoryMusic);
- }
+void CMPXPlaybackUtility::ConstructL()
+{
+ iState = EPbStateInitialised;
+}
+
+// -------------------------------------------------------------------------------------------------
+// Add a observer
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXPlaybackUtility::AddObserverL( MMPXPlaybackObserver& /*aObs*/ )
+{
+}
+
+// -------------------------------------------------------------------------------------------------
+// Remove a observer
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXPlaybackUtility::RemoveObserverL( MMPXPlaybackObserver& /* aObs */ )
+{
+}
-// ----------------------------------------------------------------------------
-// Create the playback utility object
-// ----------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
+// Delete this
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXPlaybackUtility::Close()
+{
+ delete this;
+}
+
+// -------------------------------------------------------------------------------------------------
+// Issue player commands
+// -------------------------------------------------------------------------------------------------
//
+void CMPXPlaybackUtility::CommandL( TMPXPlaybackCommand aCmd )
+{
+ iCommand = aCmd;
+}
-EXPORT_C MMPXPlaybackUtility* MMPXPlaybackUtility::NewL(const TMPXCategory aCategory,
- const TUid& aModeId,
- MMPXPlaybackObserver* aObs)
+// -------------------------------------------------------------------------------------------------
+// Issue player commands
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXPlaybackUtility::CommandL( CMPXCommand& aCmd, MMPXPlaybackCallback* /* aCallback */ )
+{
+ TInt cmdType = aCmd.ValueTObjectL<TInt>( KMPXCommandGeneralId );
+
+ if ( cmdType == KMPXCommandIdPlaybackGeneral )
{
- return CMPXPlaybackUtility::NewL(aModeId,aObs,aCategory);
+ iCommand = aCmd.ValueTObjectL<TInt>( KMPXCommandPlaybackGeneralType );
}
-
-// ----------------------------------------------------------------------------
-// Creates the playback utility object if not already created
-// ----------------------------------------------------------------------------
-//
-EXPORT_C MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL( const TUid& aModeId )
+ else
{
- return CMPXPlaybackUtility::UtilityL( aModeId, EMPXCategoryMusic );
+ iCommand = aCmd.ValueTObjectL<TInt>( KMPXMediaVideoPlaybackCommand );
}
-
-// ----------------------------------------------------------------------------
-// Creates the playback utility object if not already created
-// ----------------------------------------------------------------------------
+}
+
+// -------------------------------------------------------------------------------------------------
+// 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;
+}
-EXPORT_C MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TMPXCategory aCategory,
- const TUid& aModeId )
- {
- return CMPXPlaybackUtility::UtilityL( aModeId, aCategory );
- }
+// -------------------------------------------------------------------------------------------------
+// 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<TMPXAttribute>& /* aAttrs */,
+ MMPXPlaybackCallback& /* aCallback */,
+ CMPXAttributeSpecs* /* aSpecs */)
+{
+}
+
+// -------------------------------------------------------------------------------------------------
+// set primary client
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXPlaybackUtility::SetPrimaryClientL()
+{
+}
+
+// End of file
+
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxplaybackutilityimpl.cpp Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,721 +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: %
-
-#include <bamdesca.h>
-#include <s32mem.h>
-#include <e32math.h>
-#include <mpxcmn.h>
-#include <mpxplaybackobserver.h>
-#include <mpxcollectionplaylist.h>
-#include <mpxmedia.h>
-#include <mpxmessagemonitor.h>
-#include <mpxtaskqueue.h>
-#include <mpxuser.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxcommandgeneraldefs.h>
-#include <mpxcollectionpath.h>
-#include <mpxplaybackcommanddefs.h>
-#include <mpxsubscription.h>
-#include <mpxlog.h>
-
-#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<TProcessId>& /* 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<TMPXPlaybackCommand>(
- aCmd.ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralType));
-
- switch ( cmdType )
- {
- case EPbCmdPlay:
- {
- iState = EPbStatePlaying;
- break;
- }
- case EPbCmdDecreaseVolume:
- {
- CMPXMessage* message = CMPXMessage::NewL();
- message->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral );
- message->SetTObjectValueL<TInt>( KMPXMessageGeneralEvent, TMPXPlaybackMessage::EPropertyChanged );
- message->SetTObjectValueL<TInt>( KMPXMessageGeneralType, EPbPropertyVolume );
- message->SetTObjectValueL<TInt>( 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()
- {
- }
-
-// ----------------------------------------------------------------------------
-// Set playback property, EPropertyChanged event when complete
-// ----------------------------------------------------------------------------
-//
-void CMPXPlaybackUtility::SetL(TMPXPlaybackProperty aProperty,TInt /* aValue */ )
- {
- if ( aProperty == EPbPropertyMute )
- {
- CMPXMessage* message = CMPXMessage::NewL();
- message->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral );
- message->SetTObjectValueL<TInt>( KMPXMessageGeneralEvent, TMPXPlaybackMessage::EPropertyChanged );
- message->SetTObjectValueL<TInt>( KMPXMessageGeneralType, 0 );
- message->SetTObjectValueL<TInt>( KMPXMessageGeneralData, 0 );
- iObservers[0]->HandlePlaybackMessage( message, KErrNone );
- }
- else if ( aProperty == EPbPropertyPosition )
- {
- CMPXMessage* message = CMPXMessage::NewL();
- message->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral );
- message->SetTObjectValueL<TInt>( KMPXMessageGeneralEvent, TMPXPlaybackMessage::EPropertyChanged );
- message->SetTObjectValueL<TInt>( KMPXMessageGeneralType, EPbPropertyPosition );
- message->SetTObjectValueL<TInt>( 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<TMPXPlaybackPlayerType>& /* 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<TUid>& /* aPlayers */)
- {
-
- }
-
-// ----------------------------------------------------------------------------
-// Get the list of UIDs of players with the specific type
-// ----------------------------------------------------------------------------
-//
-void CMPXPlaybackUtility::GetPlayerListL(RArray<TUid>& /* 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
- {
- }
-
-// ----------------------------------------------------------------------------
-// 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<TMPXAttribute>& aAttrs,
- MMPXPlaybackCallback& aCallback)
- {
- MediaL( aAttrs, aCallback, NULL );
- }
-
-// ----------------------------------------------------------------------------
-// Request for media properties.
-// ----------------------------------------------------------------------------
-//
-void CMPXPlaybackUtility::MediaL(
- const TArray<TMPXAttribute>& /* 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
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackcontrolscontroller.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackcontrolscontroller.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackdisplayhandler.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackdisplayhandler.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 5 %
+// Version : %version: 7 %
#include <sysutil.h>
#include <s32file.h>
@@ -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<TMPXVideoDisplayCommand>(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
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4 %
+// Version : %version: 5 %
@@ -64,7 +64,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mMultiItemPlaylist = false;
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 5 %
#include <qdebug>
@@ -252,21 +252,35 @@
setup();
- // test for tv-out
- mController->mFileDetails->mPlaybackMode = EMPXVideoLocal;
- mController->mFileDetails->mTvOutConnected = true;
- mController->mFileDetails->mTvOutPlayAllowed = false;
+ //
+ // pausable + non seekable
+ //
+ mController->mFileDetails->mPausableStream = true;
+ mController->mFileDetails->mSeekable = false;
mProgBar->updateWithFileDetails( mController->mFileDetails );
QVERIFY( ! mProgBar->mProgressSlider->isEnabled() );
- // live streaming
- mController->mFileDetails->mPlaybackMode = EMPXVideoLiveStreaming;
+ //
+ // 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() );
--- a/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 100;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/src/teststatuspanecontrol.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/src/teststatuspanecontrol.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 5 %
+// Version : %version: 6 %
#include <hbapplication.h>
@@ -34,6 +34,7 @@
#include "hbvideobaseplaybackview.h"
#include "mpxvideoplaybackdocumentloader.h"
#include "hblabel.h"
+#include "hbgroupbox.h"
#define private public
#define protected public
@@ -88,12 +89,11 @@
mControlsController = new QMPXVideoPlaybackControlsController( mBaseVideoView,
mFileDetails );
-
+
mStatusPane = new QMPXVideoPlaybackStatusPaneControl( mControlsController,
EMPXStatusPane,
NULL,
- 0 );
-
+ 0 );
}
// ---------------------------------------------------------------------------
@@ -104,6 +104,12 @@
{
MPX_ENTER_EXIT(_L("TestStatusPaneControl::cleanup()"));
+ if ( mStatusPane )
+ {
+ delete mStatusPane;
+ mStatusPane = NULL;
+ }
+
if ( mBaseVideoView )
{
delete mBaseVideoView;
@@ -121,12 +127,6 @@
delete mControlsController;
mControlsController = NULL;
}
-
- if ( mStatusPane )
- {
- delete mStatusPane;
- mStatusPane = NULL;
- }
}
// ---------------------------------------------------------------------------
@@ -145,6 +145,8 @@
mStatusPane->setMenu( mFileDetails );
QVERIFY( mControlsController->view()->menu()->isEmpty() );
+
+ cleanup();
}
// ---------------------------------------------------------------------------
@@ -156,17 +158,22 @@
MPX_ENTER_EXIT(_L("TestStatusPaneControl::testSetVisible()"));
setup();
-
+ mStatusPane->updateControlsWithFileDetails( mFileDetails );
+
// 1. Set visible
mStatusPane->setVisible( true );
- QVERIFY( mStatusPane->isVisible() );
- QVERIFY( mStatusPane->mTitleLabel->isVisible() );
-
+ QVERIFY( mControlsController->view()->mStatusBarVisible );
+ QVERIFY( mControlsController->view()->mTitleBarVisible );
+ QVERIFY( mStatusPane->mTitleLayout->isVisible() );
+
// 2. Set invisible
- mStatusPane->setVisible( false );
- QVERIFY( ! mStatusPane->isVisible() );
- QVERIFY( ! mStatusPane->mTitleLabel->isVisible() );
-
+ mStatusPane->setVisible( false );
+ QVERIFY( mControlsController->view()->menu()->isEmpty() );
+ QVERIFY( ! mControlsController->view()->mStatusBarVisible );
+ QVERIFY( ! mControlsController->view()->mTitleBarVisible );
+ QVERIFY( ! mStatusPane->mTitleLayout->isVisible() );
+
+ cleanup();
}
// ---------------------------------------------------------------------------
@@ -178,34 +185,36 @@
MPX_ENTER_EXIT(_L("TestStatusPaneControl::testUpdateControlsWithFileDetails()"));
setup();
-
+
+ QString title = "Title";
+
// 1. test for full creen mode
mControlsController->mViewMode = EFullScreenView;
-
- mFileDetails->mTvOutConnected = true;
-
+ mControlsController->mFileDetails->mTitle = title;
mStatusPane->updateControlsWithFileDetails( mFileDetails );
-
+
+ QVERIFY( mStatusPane->mTitleLabel->mString == title );
+ QVERIFY( mStatusPane->mTitleGroupBox->mString == title );
+ QVERIFY( mStatusPane->mTitleLabel->isVisible() );
+ QVERIFY( ! mStatusPane->mTitleGroupBox->isVisible() );
QVERIFY( mControlsController->view()->viewFlags() ==
HbView::HbViewFlags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent ));
-
+
// 2. test for detial view mode
- mControlsController->mViewMode = EDetailsView;
-
- mFileDetails->mTvOutConnected = true;
-
+ mControlsController->mViewMode = EDetailsView;
+ mStatusPane->updateControlsWithFileDetails( mFileDetails );
+
+ QVERIFY( mControlsController->view()->viewFlags() == HbView::ViewFlagNone );
+ QVERIFY( ! mStatusPane->mTitleLabel->isVisible() );
+ QVERIFY( mStatusPane->mTitleGroupBox->isVisible() );
+
+ // 3. test for audio only mode
+ mControlsController->mViewMode = EAudioOnlyView;
mStatusPane->updateControlsWithFileDetails( mFileDetails );
QVERIFY( mControlsController->view()->viewFlags() == HbView::ViewFlagNone );
- // 3. test for audio only mode
- mControlsController->mViewMode = EAudioOnlyView;
-
- mFileDetails->mTvOutConnected = true;
-
- mStatusPane->updateControlsWithFileDetails( mFileDetails );
-
- QVERIFY( mControlsController->view()->viewFlags() == HbView::ViewFlagNone );
+ cleanup();
}
// ---------------------------------------------------------------------------
@@ -225,6 +234,8 @@
// 2. test for second block of cases:
mStatusPane->setVisibility( EPbStateInitialising );
QVERIFY( mControlsController->view()->menu()->isEmpty() );
+
+ cleanup();
}
// ---------------------------------------------------------------------------
@@ -240,6 +251,8 @@
mStatusPane->controlListUpdated( mFileDetails );
QVERIFY( mControlsController->view()->menu()->isEmpty() );
+
+ cleanup();
}
// ---------------------------------------------------------------------------
@@ -259,6 +272,8 @@
QVERIFY( mControlsController->mTimerAction == EMPXTimerCancel );
disconnect( this, SIGNAL( commandSignal() ), mStatusPane, SLOT( handleAboutToShow() ) );
+
+ cleanup();
}
// ---------------------------------------------------------------------------
@@ -277,7 +292,9 @@
QVERIFY( mControlsController->mTimerAction == EMPXTimerReset );
- disconnect( this, SIGNAL( commandSignal() ), mStatusPane, SLOT( handleAboutToHide() ) );
+ disconnect( this, SIGNAL( commandSignal() ), mStatusPane, SLOT( handleAboutToHide() ) );
+
+ cleanup();
}
// ---------------------------------------------------------------------------
@@ -297,6 +314,8 @@
QVERIFY( mControlsController->mViewMode == EFullScreenView );
disconnect( this, SIGNAL( commandSignal() ), mStatusPane, SLOT( openFullScreenView() ) );
+
+ cleanup();
}
// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/inc/hbgroupbox.h Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* 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 Implementation of HbGroupBox
+*
+*/
+
+// Version : %version: 1 %
+
+
+
+#ifndef HBGROUPBOX_H_
+#define HBGROUPBOX_H_
+
+#include <hbwidget.h>
+
+
+class HbGroupBox : public HbWidget
+{
+ Q_OBJECT
+
+ public:
+ HbGroupBox();
+ virtual ~HbGroupBox();
+
+ public:
+ void setVisible( bool visible );
+ bool isVisible();
+ void setHeading( QString string );
+
+ public:
+ bool mVisible;
+ QString mString;
+};
+
+#endif /*HBGROUPBOX_H_*/
+
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/inc/hblabel.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/inc/hblabel.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -34,13 +34,14 @@
virtual ~HbLabel();
public:
- void setVisible( bool visible );
-
+ void setVisible( bool visible );
bool isVisible();
+ void setPlainText( QString string );
public:
bool mVisible;
+ QString mString;
};
-#endif /*HBPUSHBUTTON_H*/
+#endif /*HBLABEL_H_*/
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/inc/hbvideobaseplaybackview.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/inc/hbvideobaseplaybackview.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 5 %
+// Version : %version: 6 %
@@ -25,16 +25,18 @@
#define __HBVIDEOBASEPLAYBACKVIEW_H__
// Include Files
+#include <hbwidget.h>
#include <hbview.h>
-
// Constants
// Forward Declarations
// Class Definitions
+class HbAction;
+class HbMenu;
-class HbVideoBasePlaybackView : public HbView
+class HbVideoBasePlaybackView : public HbWidget
{
Q_OBJECT
@@ -55,14 +57,21 @@
void setViewFlags( HbView::HbViewFlags flags );
HbView::HbViewFlags viewFlags();
- protected slots:
+ void setTitleBarVisible( bool visible );
+ void setStatusBarVisible( bool visible );
+ void setNavigationAction(HbAction *action);
+ HbMenu *menu();
+ public slots:
virtual void closePlaybackView();
public:
bool mViewActive;
+ bool mTitleBarVisible;
+ bool mStatusBarVisible;
+
+ HbMenu *mMenu;
HbView::HbViewFlags mFlag;
-
};
#endif // __HBVIDEOBASEPLAYBACKVIEW_H__
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/hbgroupbox.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,66 @@
+/*
+* 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 HbGroupBox
+*
+*/
+
+// Version : %version: 1 %
+
+
+#include "hbgroupbox.h"
+
+// -------------------------------------------------------------------------------------------------
+// HbGroupBox::HbGroupBox
+// -------------------------------------------------------------------------------------------------
+//
+HbGroupBox::HbGroupBox()
+{
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbGroupBox::~HbGroupBox
+// -------------------------------------------------------------------------------------------------
+//
+HbGroupBox::~HbGroupBox()
+{
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbGroupBox::setVisible
+// -------------------------------------------------------------------------------------------------
+//
+void HbGroupBox::setVisible( bool visible )
+{
+ mVisible = visible;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbGroupBox::isVisible
+// -------------------------------------------------------------------------------------------------
+//
+bool HbGroupBox::isVisible()
+{
+ return mVisible;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbGroupBox::setHeading
+// -------------------------------------------------------------------------------------------------
+//
+void HbGroupBox::setHeading( QString string )
+{
+ mString = string;
+}
+
+// End of file
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/hblabel.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/hblabel.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,13 +15,13 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
#include "hblabel.h"
// -------------------------------------------------------------------------------------------------
-// HbPushButton::HbPushButton
+// HbLabel::HbLabel
// -------------------------------------------------------------------------------------------------
//
HbLabel::HbLabel()
@@ -54,5 +54,13 @@
return mVisible;
}
+// -------------------------------------------------------------------------------------------------
+// HbLabel::setPlainText
+// -------------------------------------------------------------------------------------------------
+//
+void HbLabel::setPlainText( QString string )
+{
+ mString = string;
+}
// End of file
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/hbvideobaseplaybackview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/hbvideobaseplaybackview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,12 +15,14 @@
*
*/
-// Version : %version: 4 %
+// Version : %version: 5 %
// Include Files
#include <hbinstance.h>
+#include <HbAction.h>
+#include <HbMenu.h>
#include "../inc/hbvideobaseplaybackview.h"
@@ -33,6 +35,7 @@
//
HbVideoBasePlaybackView::HbVideoBasePlaybackView()
{
+ mMenu = new HbMenu();
mViewActive = false;
}
@@ -42,6 +45,11 @@
//
HbVideoBasePlaybackView::~HbVideoBasePlaybackView()
{
+ if ( mMenu )
+ {
+ delete mMenu;
+ mMenu = NULL;
+ }
}
// -------------------------------------------------------------------------------------------------
@@ -116,4 +124,39 @@
return mFlag;
}
+// -------------------------------------------------------------------------------------------------
+// HbVideoBasePlaybackView::setTitleBarVisible()
+// -------------------------------------------------------------------------------------------------
+//
+void HbVideoBasePlaybackView::setTitleBarVisible( bool visible )
+{
+ mTitleBarVisible = visible;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVideoBasePlaybackView::setStatusBarVisible()
+// -------------------------------------------------------------------------------------------------
+//
+void HbVideoBasePlaybackView::setStatusBarVisible( bool visible )
+{
+ mStatusBarVisible = visible;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVideoBasePlaybackView::setNavigationAction()
+// -------------------------------------------------------------------------------------------------
+//
+void HbVideoBasePlaybackView::setNavigationAction( HbAction *action )
+{
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVideoBasePlaybackView::menu()
+// -------------------------------------------------------------------------------------------------
+//
+HbMenu* HbVideoBasePlaybackView::menu()
+{
+ return mMenu;
+}
+
// EOF
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/mpxvideoplaybackdocumentloader.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/mpxvideoplaybackdocumentloader.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,12 +15,13 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
-#include <hbwidget.h>
-#include <hbtransparentwindow.h>
-#include <hblabel.h>
+#include <QGraphicsWidget>
+
+#include "hblabel.h"
+#include "hbgroupbox.h"
#include "mpxvideo_debug.h"
#include "mpxvideoplaybackdocumentloader.h"
@@ -83,14 +84,11 @@
QGraphicsWidget *object = NULL;
- if ( name == "transparentWindow" )
- {
- MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::creating transparentWindow") );
-
- object = new HbTransparentWindow();
+ if ( name == "titleLayout" )
+ {
+ object = new QGraphicsWidget();
object->setObjectName( name );
- MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::appending to object list") );
mWidgets.append( object );
}
else if ( name == "title" )
@@ -99,6 +97,12 @@
object->setObjectName( name );
mWidgets.append( object );
}
+ else if ( name == "titleGroupBox" )
+ {
+ object = new HbGroupBox();
+ object->setObjectName( name );
+ mWidgets.append( object );
+ }
return object;
}
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/teststatuspanecontrol.pro Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/teststatuspanecontrol/teststatuspanecontrol.pro Wed Jun 23 17:22:59 2010 +0100
@@ -14,7 +14,7 @@
# Description: Project file for building teststatuspanecontrol
#
#
-# Version : %version: 2 %
+# Version : %version: 3 %
TEMPLATE = app
@@ -41,7 +41,8 @@
hbvideobaseplaybackview.h \
mpxvideoplaybackdocumentloader.h \
mpxvideoplaybackfullscreencontrol.h \
- hblabel.h
+ hblabel.h \
+ hbgroupbox.h
SOURCES += ../../../controlsrc/mpxvideoplaybackstatuspanecontrol.cpp \
src/teststatuspanecontrol.cpp \
@@ -50,5 +51,6 @@
hbvideobaseplaybackview.cpp \
mpxvideoplaybackdocumentloader.cpp \
mpxvideoplaybackfullscreencontrol.cpp \
- hblabel.cpp
+ hblabel.cpp \
+ hbgroupbox.cpp
\ No newline at end of file
--- a/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -65,7 +65,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/src/centralrepository.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/src/centralrepository.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -25,7 +25,7 @@
#include "centralrepository.h"
-CRepository* CRepository::NewLC( TUid aRepositoryUid )
+CRepository* CRepository::NewLC( TUid /* aRepositoryUid */ )
{
CRepository* self = new (ELeave) CRepository();
@@ -35,9 +35,9 @@
}
-TInt CRepository::Get(TUint32 aKey, TInt& aValue)
+TInt CRepository::Get( TUint32 /* aKey */, TInt& aValue )
{
- aValue = 10;
+ aValue = 10;
return KErrNone;
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -58,7 +58,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mMultiItemPlaylist = false;
--- a/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/src/mpxvideoviewwrapper.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testuserinputhandler/stub/src/mpxvideoviewwrapper.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -202,7 +202,6 @@
iFileDetails->mRNFormat = false;
iFileDetails->mDuration = 100;
iFileDetails->mTvOutConnected = false;
- iFileDetails->mTvOutPlayAllowed = true;
iFileDetails->mDrmProtected = false;
iFileDetails->mMultiItemPlaylist = false;
iFileDetails->mVideoHeight = 320;
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -64,7 +64,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mMultiItemPlaylist = false;
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/stub/src/mpxvideoviewwrapper.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/stub/src/mpxvideoviewwrapper.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 4 %
@@ -228,7 +228,6 @@
iFileDetails->mRNFormat = false;
iFileDetails->mDuration = 100;
iFileDetails->mTvOutConnected = false;
- iFileDetails->mTvOutPlayAllowed = true;
iFileDetails->mDrmProtected = false;
iFileDetails->mMultiItemPlaylist = false;
iFileDetails->mVideoHeight = 320;
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/inc/testmpxvideoplaybackcontrolscontroller.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/inc/testmpxvideoplaybackcontrolscontroller.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 5 %
#ifndef __TESTMPXVIDEOPLAYBACKCONTROLSCONTROLLER_H__
#define __TESTMPXVIDEOPLAYBACKCONTROLSCONTROLLER_H__
@@ -56,14 +56,7 @@
private slots:
- //
- // test addFileDetails()
- //
void testAddFileDetails();
-
- //
- // test handleEvent()
- //
void testHandleEventSetPosition();
void testHandleEventSetDuration();
void testHandleEventStateChanged();
@@ -117,11 +110,20 @@
//
// test private slot attachVideo()
//
- void testslot_sendVideo();
+ void testslot_sendVideo();
+
+ //
+ // test private slot handleOrientationChanged()
+ //
+ void testslot_handleOrientationChanged();
+
+ void testslot_handleRNLogoVisibleChanged();
+ void testslot_handleRNLogoTimeout();
+ void testIsRNLogoBitmapVisible();
signals:
-
void commandSignal();
+ void commandSignal( Qt::Orientation );
private:
@@ -136,6 +138,4 @@
#endif // __TESTMPXVIDEOPLAYBACKCONTROLSCONTROLLER_H__
// End of file
-
-
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/src/testmpxvideoplaybackcontrolscontroller.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/src/testmpxvideoplaybackcontrolscontroller.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 6 %
+// Version : %version: 9 %
#include <e32err.h>
#include <w32std.h>
@@ -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)
//
@@ -339,6 +349,8 @@
{
MPX_DEBUG(_L("TestMPXVideoPlaybackControlsController::verifyHandleEventStateChangedResult()"));
+ mController->mOrientation = Qt::Horizontal;
+
if ( value == EPbStateInitialised &&
( mController->mFileDetails->mPlaybackMode == EMPXVideoStreaming ||
mController->mFileDetails->mPlaybackMode == EMPXVideoLiveStreaming ) )
@@ -393,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();
@@ -415,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();
}
@@ -435,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();
}
@@ -456,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();
}
@@ -578,7 +578,6 @@
QVERIFY( ( mController->mFileDetails->mPlaybackMode == EMPXVideoLocal )?
mController->mThumbNailState == EThumbNailRequsted :
mController->mThumbNailState == EThumbNailNotAvailable );
- QVERIFY( mController->mFileDetails->mTvOutPlayAllowed == value );
QVERIFY( mController->mViewMode == EAudioOnlyView );
QVERIFY( mController->mControlsConfig->mState == EMPXControlCmdTvOutConnected );
QVERIFY( mController->mThumbnailManager->mThumbSize == ThumbnailManager::ThumbnailLarge );
@@ -588,13 +587,11 @@
else if ( mController->mFileDetails->mVideoEnabled )
{
QVERIFY( mController->mViewTransitionIsGoingOn == true );
- QVERIFY( mController->mFileDetails->mTvOutPlayAllowed == true );
QVERIFY( mController->mViewMode == EFullScreenView );
}
else if ( ! mController->mFileDetails->mVideoEnabled )
{
QVERIFY( mController->mViewTransitionIsGoingOn == false );
- QVERIFY( mController->mFileDetails->mTvOutPlayAllowed == true );
QVERIFY( mController->mViewMode == EAudioOnlyView );
}
@@ -782,7 +779,8 @@
MPX_DEBUG(_L("TestMPXVideoPlaybackControlsController::testHandleTappedOnScreen()") );
init();
-
+ mController->mOrientation = Qt::Horizontal;
+
//
// preset variables
//
@@ -792,23 +790,23 @@
//
// playing state
//
- mController->mState = EPbStatePlaying;
- mBaseVideoView->mouseReleaseEvent(0);
+ mController->mState = EPbStatePlaying;
+ mBaseVideoView->mouseReleaseEvent(0);
QVERIFY( mController->mControlsTimer->isActive() == true );
for ( int i = 0 ; i < mController->mControls.count() ; i++ )
{
- QVERIFY( mController->mControls[i]->mVisibilityState == EPbStatePlaying );
+ QVERIFY( mController->mControls[i]->mVisibilityState == mController->mState );
}
//
// pause state
//
mController->mState = EPbStatePaused;
- mBaseVideoView->mouseReleaseEvent(0);
+ mBaseVideoView->mouseReleaseEvent(0);
QVERIFY( mController->mControlsTimer->isActive() == false );
for ( int i = 0 ; i < mController->mControls.count() ; i++ )
{
- QVERIFY( mController->mControls[i]->mVisibilityState == EPbStatePaused );
+ QVERIFY( mController->mControls[i]->mVisibilityState == mController->mState );
}
cleanup();
@@ -1049,8 +1047,162 @@
cleanup();
}
+// -------------------------------------------------------------------------------------------------
+// TestMPXVideoPlaybackControlsController::testslot_handleOrientationChanged
+// -------------------------------------------------------------------------------------------------
+//
+void TestMPXVideoPlaybackControlsController::testslot_handleOrientationChanged()
+{
+ MPX_DEBUG(_L("TestMPXVideoPlaybackControlsController::testslot_handleOrientationChanged()") );
+
+ //
+ // initialize controlscontroller
+ //
+ init();
+
+ //
+ // connect signal with controller handleOrientationChanged() slot
+ //
+ bool res = connect( this, SIGNAL( commandSignal( Qt::Orientation ) ),
+ mController, SLOT( handleOrientationChanged( Qt::Orientation ) ) );
+
+ //
+ // emit signal, this will in turns invoke mController handleOrientationChanged() slot
+ //
+ mController->mOrientation = Qt::Vertical;
+ mController->mState = EPbStatePlaying;
+
+ emit commandSignal( Qt::Horizontal );
+
+ QVERIFY( mController->mOrientation == Qt::Horizontal );
+
+ for ( int i = 0 ; i < mController->mControls.count() ; i++ )
+ {
+ QVERIFY( mController->mControls[i]->mVisibilityState == mController->mState );
+ }
+
+ //
+ // disconnect signal
+ //
+ disconnect( this, SIGNAL( commandSignal( Qt::Orientation ) ),
+ mController, SLOT( handleOrientationChanged( Qt::Orientation ) ) );
+
+ //
+ // clean up
+ //
+ 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
-
-
-
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackcontrol.hrh Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackcontrol.hrh Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackfullscreencontrol.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackfullscreencontrol.h Wed Jun 23 17:22:59 2010 +0100
@@ -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;
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackviewfiledetails.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/inc/mpxvideoplaybackviewfiledetails.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -70,7 +70,6 @@
bool mPartialPlayback;
bool mRNFormat;
bool mTvOutConnected;
- bool mTvOutPlayAllowed;
bool mDrmProtected;
bool mMultiItemPlaylist;
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackcontrolconfiguration.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackcontrolconfiguration.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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();
}
// -------------------------------------------------------------------------------------------------
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackdocumentloader.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackdocumentloader.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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;
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackfullscreencontrol.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackfullscreencontrol.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 2 %
+// Version : %version: 3 %
@@ -62,7 +62,6 @@
//
void QMPXVideoPlaybackFullScreenControl::setVisible( bool visible )
{
- //mControl->setVisible( visible );
mVisible = visible;
}
@@ -72,7 +71,6 @@
//
bool QMPXVideoPlaybackFullScreenControl::isVisible()
{
- //return mControl->isVisible();
return mVisible;
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackviewfiledetails.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackcontrolscontroller/stub/src/mpxvideoplaybackviewfiledetails.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
@@ -67,7 +67,6 @@
mDuration = 0;
mTvOutConnected = false;
- mTvOutPlayAllowed = true;
mDrmProtected = false;
mVideoHeight = 0;
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/inc/testvideoplaybackview.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/inc/testvideoplaybackview.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: %
+// Version : %version: 6 %
#ifndef __TESTVIDEOPLAYBACKVIEW_H__
#define __TESTVIDEOPLAYBACKVIEW_H__
@@ -60,7 +60,7 @@
void testShowDialog();
void testGetWindow();
void testIssuePlayCommand();
- void testEvent();
+ void testEventFilter();
void testClosePlaybackView();
void testMousePressEvent();
void testMouseReleaseEvent();
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/src/testvideoplaybackview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/src/testvideoplaybackview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: %
+// Version : %version: 9 %
#include <e32err.h>
#include <w32std.h>
@@ -134,13 +134,11 @@
verifyHandlePluginError( KErrMMDRMNotAuthorized );
verifyHandlePluginError( KErrCANoRights );
verifyHandlePluginError( KErrCANoPermission );
- verifyHandlePluginError( KMPXVideoTvOutPlaybackNotAllowedClose );
//
// playback view remains open after displaying these error notes
//
verifyHandlePluginError( KMPXVideoCallOngoingError, false );
- verifyHandlePluginError( KMPXVideoTvOutPlaybackNotAllowed, false );
verifyHandlePluginError( KMPXVideoPlayOver2GDuringVoiceCallError, false );
//
@@ -211,7 +209,7 @@
cleanup();
}
-void TestVideoPlaybackView::testEvent()
+void TestVideoPlaybackView::testEventFilter()
{
setup();
@@ -223,14 +221,14 @@
//
// declare foreground/background event
//
- QEvent* windowActivate = new QEvent( QEvent::WindowActivate );
- QEvent* windowDeactivate = new QEvent( QEvent::WindowDeactivate );
+ QEvent* appActivate = new QEvent( QEvent::ApplicationActivate );
+ QEvent* appDeactivate = new QEvent( QEvent::ApplicationDeactivate );
//
// verify the returned value (consumed) of HbVideoBasePlaybackView::event()
- // for QEvent::WindowActivate is false
+ // for QEvent::ApplicationActivate is false
//
- QVERIFY( ! mVideoView->event( windowActivate ) );
+ QVERIFY( ! mVideoView->eventFilter( NULL, appActivate ) );
//
// verify view is in foreground
@@ -239,9 +237,9 @@
//
// verify the returned value (consumed) of HbVideoBasePlaybackView::event()
- // for QEvent::WindowDeactivate is false
+ // for QEvent::ApplicationDeactivate is false
//
- QVERIFY( ! mVideoView->event( windowDeactivate ) );
+ QVERIFY( ! mVideoView->eventFilter( NULL, appDeactivate ) );
//
// verify view is in background
@@ -251,10 +249,18 @@
//
// clean up
//
- delete windowActivate;
- windowActivate = NULL;
- delete windowDeactivate;
- windowDeactivate = NULL;
+ if ( appActivate )
+ {
+ delete appActivate;
+ appActivate = NULL;
+ }
+
+ if ( appDeactivate )
+ {
+ delete appDeactivate;
+ appDeactivate = NULL;
+ }
+
cleanup();
}
--- a/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/stub/src/mpxvideoviewwrapper.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/stub/src/mpxvideoviewwrapper.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 5 %
+// Version : %version: 6 %
@@ -228,7 +228,6 @@
iFileDetails->mRNFormat = false;
iFileDetails->mDuration = 100;
iFileDetails->mTvOutConnected = false;
- iFileDetails->mTvOutPlayAllowed = true;
iFileDetails->mDrmProtected = false;
iFileDetails->mMultiItemPlaylist = false;
iFileDetails->mVideoHeight = 320;
--- a/videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h Wed Jun 23 17:22:59 2010 +0100
@@ -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__
--- a/videoplayback/hbvideoplaybackview/viewsrc/hbvideobaseplaybackview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/viewsrc/hbvideobaseplaybackview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: da1mmcf#38 %
+// Version : %version: da1mmcf#40 %
@@ -116,9 +116,11 @@
void HbVideoBasePlaybackView::handleActivateView()
{
MPX_ENTER_EXIT(_L("HbVideoBasePlaybackView::handleActivateView()"));
-
+
TRAP_IGNORE( mVideoMpxWrapper = CMPXVideoViewWrapper::NewL( this ) );
-
+
+ QCoreApplication::instance()->installEventFilter( this );
+
//
// Request the needed Media from the Playback Plugin
//
@@ -128,11 +130,12 @@
//
// Landscape orientation
- //
- hbInstance->allMainWindows()[0]->setOrientation( Qt::Horizontal );
+ // Workaround: Disable orientation transition effect
+ // since orbit couldn't emit the orientationChanged signal with transition effect
+ //
+ hbInstance->allMainWindows()[0]->setOrientation( Qt::Horizontal, false );
mActivated = true;
-
}
// -------------------------------------------------------------------------------------------------
@@ -143,6 +146,8 @@
{
MPX_ENTER_EXIT(_L("HbVideoBasePlaybackView::handleDeactivateView()"));
+ QCoreApplication::instance()->removeEventFilter( this );
+
mActivated = false;
//
@@ -306,7 +311,11 @@
void HbVideoBasePlaybackView::issuePlayCommand()
{
MPX_ENTER_EXIT(_L("HbVideoBasePlaybackView::issuePlayCommand()"));
- TRAPD(err, mVideoMpxWrapper->CreateGeneralPlaybackCommandL( EPbCmdPlay ));
+
+ int err = KErrNone;
+
+ TRAP( err, mVideoMpxWrapper->CreateGeneralPlaybackCommandL( EPbCmdPlay ));
+
MPX_DEBUG(_L("HbVideoBasePlaybackView::issuePlayCommand() error = %d"), err);
}
@@ -326,7 +335,6 @@
void HbVideoBasePlaybackView::handleBufferingState()
{
MPX_DEBUG(_L("HbVideoBasePlaybackView::handleBufferingState()"));
-
}
// -------------------------------------------------------------------------------------------------
@@ -340,28 +348,37 @@
mTimerForClosingView->start( 0 );
}
-// -------------------------------------------------------------------------------------------------
-// HbVideoBasePlaybackView::event()
-// -------------------------------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+// HbVideoBasePlaybackView::eventFilter
+// ---------------------------------------------------------------------------
//
-bool HbVideoBasePlaybackView::event( QEvent *event )
+bool HbVideoBasePlaybackView::eventFilter( QObject *object, QEvent *event )
{
- bool consumed = false;
+ Q_UNUSED( object );
- if ( event->type() == QEvent::WindowActivate && mActivated )
+ switch ( event->type() )
{
- TRAP_IGNORE( mVideoMpxWrapper->IssueVideoAppForegroundCmdL( true ) );
- }
- else if ( event->type() == QEvent::WindowDeactivate && mActivated )
- {
- TRAP_IGNORE( mVideoMpxWrapper->IssueVideoAppForegroundCmdL( false ) );
- }
- else
- {
- consumed = QGraphicsWidget::event( event );
+ case QEvent::ApplicationActivate:
+ {
+ if ( mActivated )
+ {
+ MPX_DEBUG(_L("HbVideoBasePlaybackView::eventFilter foreground()") );
+ TRAP_IGNORE( mVideoMpxWrapper->IssueVideoAppForegroundCmdL( true ) );
+ }
+ break;
+ }
+ case QEvent::ApplicationDeactivate:
+ {
+ if ( mActivated )
+ {
+ MPX_DEBUG(_L("HbVideoBasePlaybackView::eventFilter background()") );
+ TRAP_IGNORE( mVideoMpxWrapper->IssueVideoAppForegroundCmdL( false ) );
+ }
+ break;
+ }
}
- return consumed;
+ return QObject::eventFilter( object, event );
}
// -------------------------------------------------------------------------------------------------
@@ -409,5 +426,4 @@
handleClosePlaybackView();
}
-
// EOF
--- a/videoplayback/hbvideoplaybackview/viewsrc/hbvideoplaybackview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/viewsrc/hbvideoplaybackview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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;
}
// -------------------------------------------------------------------------------------------------
--- a/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoplaybackdisplayhandler.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoplaybackdisplayhandler.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 20 %
+// Version : %version: 21 %
#include <sysutil.h>
#include <s32file.h>
@@ -132,7 +132,9 @@
MPX_DEBUG(_L("VideoWindow ordinal position is: %d"), videoWindow->OrdinalPosition());
MPX_DEBUG(_L("UiWindow ordinal position is: %d"), (&aWin)->OrdinalPosition());
- TRAPD
+ int status = KErrNone;
+
+ TRAP
( status,
{
CAlfCompositionSource* me = CAlfCompositionSource::NewL( aWin );
--- a/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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<TBool>( KMPXCommandGeneralDoSync, ETrue );
+ cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, aDoSync );
cmd->SetTObjectValueL<TBool>( KMPXCommandPlaybackGeneralNoBuffer, ETrue );
cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
cmd->SetTObjectValueL<TInt>( 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<TBool>(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<TInt>( 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
--- a/videoplayback/inc/hbvideobaseplaybackview.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/inc/hbvideobaseplaybackview.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: da1mmcf#14 %
+// Version : %version: da1mmcf#16 %
@@ -92,11 +92,11 @@
void showDialog( const QString& qString, bool closeView = true );
virtual void handleClosePlaybackView();
-
- bool event( QEvent *event );
RWindow *getWindow();
+ bool eventFilter( QObject *object, QEvent *event );
+
protected:
void mousePressEvent( QGraphicsSceneMouseEvent *event );
@@ -108,6 +108,7 @@
QTimer *mTimerForClosingView;
bool mActivated;
+ bool mSyncClose;
public:
friend class CMPXVideoViewWrapper;
Binary file videoplayback/videohelix/conf/mpxvideopbplugins.confml has changed
--- a/videoplayback/videohelix/group/mpxvideohelixplayback.mmp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/group/mpxvideohelixplayback.mmp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: ou1cpsw#14 %
+// Version : %version: 17 %
@@ -39,10 +39,10 @@
SOURCE mpxvideoplaybackmode.cpp
SOURCE mpxvideofiledetails.cpp
SOURCE mpxvideoseeker.cpp
-SOURCE mpxvideodlmgrif.cpp
SOURCE mpxvideoaccessoryobserver.cpp
SOURCE mpxvideoplayerutility.cpp
SOURCE mpxvideodrmhelper.cpp
+SOURCE mpxvideoposterframesetter.cpp
START RESOURCE ../data/10282550.rss
TARGET mpxvideohelixplayback.rsc
@@ -66,7 +66,6 @@
LIBRARY estor.lib
LIBRARY flogger.lib
LIBRARY playbackhelper.lib
-LIBRARY downloadmgr.lib
LIBRARY platformenv.lib
LIBRARY etel.lib
LIBRARY etelmm.lib
@@ -76,6 +75,8 @@
LIBRARY mmcommon.lib
LIBRARY hwrmlightclient.lib // Lights control
LIBRARY centralrepository.lib // For display backlight timeout value
+LIBRARY fbscli.lib
+LIBRARY thumbnailmanager.lib
#ifdef __ACCESSORY_FW
LIBRARY accclient.lib
--- a/videoplayback/videohelix/inc/mpxvideodlmgrif.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/inc/mpxvideodlmgrif.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,13 +15,15 @@
*
*/
-// Version : %version: 10 %
+// Version : %version: 12 %
+
+#ifdef USE_S60_DOWNLOAD_MANAGER
#ifndef __MPXVIDEODLMGRIF_H__
#define __MPXVIDEODLMGRIF_H__
-#include <DownloadMgrClientApiExt.h>
+#include <downloadmgrclientapiext.h>
#include <mpxplaybackcommanddefs.h>
//
@@ -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
--- a/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h Wed Jun 23 17:22:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-// Version : %version: 25 %
+// Version : %version: 29 %
#ifndef _CMPXVIDEOPLAYBACKCONTROLLER_H_
@@ -126,6 +126,8 @@
TBool IsVideoCall();
TBool IsVoiceCall();
+ TBool IsViewActivated();
+
void HandleTvOutEventL( TBool aConnected );
void HandleError(TInt error);
@@ -133,6 +135,8 @@
void HandleVolumeL( TBool aIncrease );
void SendHideControlsEventL();
+
+ void HandleFrameReady(TInt aError);
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
@@ -220,7 +224,6 @@
TBool iAppInForeground;
CMediaRecognizer::TMediaType iMediaType;
TInt iAccessPointId;
- TBool iForegroundPause;
TBool iAllowAutoPlay;
TBool iHelixLoadingStarted;
TInt iPBPluginError;
@@ -264,6 +267,7 @@
CHWRMLight* iLight;
TInt iLightStatus;
TInt iSavedPosition;
+ TBool iViewActivated;
public: // Friend classes
@@ -286,9 +290,12 @@
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;
};
// INLINE METHODS
--- a/videoplayback/videohelix/inc/mpxvideoplaybackmode.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/inc/mpxvideoplaybackmode.h Wed Jun 23 17:22:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-// Version : %version: 15 %
+// Version : %version: 19 %
#ifndef _CMPXVIDEOPLAYBACKMODE_H_
@@ -29,7 +29,9 @@
#include <e32base.h>
#include "mpxhelixplaybackplugindefs.h"
+#ifdef USE_S60_DOWNLOAD_MANAGER
#include "mpxvideodlmgrif.h"
+#endif
#include "mpxvideo_debug.h"
//
@@ -37,6 +39,7 @@
//
class CMPXVideoPlaybackController;
class CMPXVideoDlMgrIf;
+class CMPXVideoPosterFrameSetter;
//
@@ -71,12 +74,13 @@
virtual TBool CanPlayNow();
virtual void OpenFileL( const TDesC& aMediaFile );
virtual void OpenFileL( const RFile& aMediaFile );
+ virtual void HandleSetPosterFrame();
+ virtual void HandleFrameReady(TInt aError);
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
virtual void OpenFile64L( const RFile64& aMediaFile );
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-
protected:
/*
* C++ default constructor
@@ -89,13 +93,12 @@
*/
virtual void ConstructL( CMPXVideoPlaybackController* aVideoPlaybackCtlr );
-
protected:
//
// Data
//
CMPXVideoPlaybackController* iVideoPlaybackCtlr; // not owned
-
+ CMPXVideoPosterFrameSetter* iPosterFrameSetter;
};
/*******************************************************/
@@ -113,6 +116,8 @@
// Methods where video plabkack behavior varies for local media
inline virtual TInt GetMode();
+ virtual void HandleSetPosterFrame();
+ virtual void HandleFrameReady(TInt aError);
};
@@ -163,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
@@ -210,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_
--- a/videoplayback/videohelix/inc/mpxvideoplaybackstate.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/inc/mpxvideoplaybackstate.h Wed Jun 23 17:22:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-// Version : %version: 18 %
+// Version : %version: 19 %
#ifndef _CMPXVIDEOPLAYBACKSTATE_H_
@@ -72,6 +72,7 @@
virtual void HandleStartSeekL( TBool aForward );
virtual void HandleStopSeekL();
virtual void HandleClose();
+ virtual void HandleSetPosterFrame();
virtual void HandleForeground();
virtual void HandleBackground();
@@ -246,6 +247,7 @@
virtual void HandlePause();
virtual void HandleStop();
virtual void HandleStartSeekL( TBool aForward );
+ virtual void HandleSetPosterFrame();
virtual void HandlePlayPause();
virtual void HandleBackground();
@@ -310,7 +312,8 @@
virtual void HandlePlay();
virtual void HandleStop();
virtual void HandleStartSeekL( TBool aForward );
- virtual void HandlePlayPause();
+ virtual void HandlePlayPause();
+ virtual void HandleSetPosterFrame();
virtual void HandleForeground();
virtual void HandleCustomPlay();
--- a/videoplayback/videohelix/inc/mpxvideoplayerutility.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/inc/mpxvideoplayerutility.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 11 %
+// Version : %version: 13 %
#ifndef __MPXVIDEOPLAYERUTILITY__
@@ -25,6 +25,7 @@
// INCLUDES
//
#include <mmf/common/mmfcontroller.h>
+#include <e32base.h>
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
#include <mmf/common/mmfstandardcustomcommandsimpl.h>
@@ -42,12 +43,13 @@
// FORWARD DECLARATIONS
//
class CMPXVideoPlaybackController;
+class CFbsBitmap;
//
// CLASS DECLARATION
//
-NONSHARABLE_CLASS( CMpxVideoPlayerUtility ) : public CBase,
+NONSHARABLE_CLASS( CMpxVideoPlayerUtility ) : public CActive,
public MMMFControllerEventMonitorObserver
{
public:
@@ -101,11 +103,18 @@
void SetPlayVelocityL( TInt aVelocity );
void GetVideoLoadingProgressL( TInt& aPercentageProgress );
+
+ void GetFrameL();
//
// MMMFControllerEventMonitorObserver Implementation
//
void HandleEvent( const TMMFEvent& aEvent );
+
+ CFbsBitmap& GetBitmap();
+
+ void RunL();
+ void DoCancel();
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
void OpenFile64L( const RFile64& aFile );
@@ -124,6 +133,8 @@
const TRect& aCropRect,
TVideoAspectRatio aAspectRatio );
+ void SendSurfaceCreatedCommand();
+
#endif
private:
@@ -150,11 +161,15 @@
RMMFVideoPlaySurfaceSupportCustomCommands iVideoPlaySurfaceSupportCustomCommands;
TSurfaceId iSurfaceId;
+ TRect iCropRect;
+ TVideoAspectRatio iAspectRatio;
#endif
CMMFControllerEventMonitor* iControllerEventMonitor;
TBool iDirectScreenAccessAbort;
+
+ CFbsBitmap* iPosterFrameBitmap;
};
#endif /* __MPXVIDEOPLAYERUTILITY__ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videohelix/inc/mpxvideoposterframesetter.h Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,89 @@
+/*
+* 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: Poster Frame Setter
+ *
+*/
+
+// Version : %version: ou1cpsw#2 %
+
+
+
+#ifndef _MPXVIDEOPOSTERFRAMESETTER_H
+#define _MPXVIDEOPOSTERFRAMESETTER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <thumbnailmanager.h>
+#include <thumbnailobjectsource.h>
+#include <thumbnailmanagerobserver.h>
+
+
+// FORWARD DECLARATIONS
+class CMPXVideoPlaybackController;
+class CThumbnailManager;
+
+// CLASS DECLARATION
+NONSHARABLE_CLASS(CMPXVideoPosterFrameSetter) : public CBase,
+ public MThumbnailManagerObserver
+{
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMPXVideoPosterFrameSetter* NewL( CMPXVideoPlaybackController* aVideoPlaybackCtlr );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CMPXVideoPosterFrameSetter();
+
+ public:
+
+ void RequestPosterFrame();
+
+ void HandlePosterFrameReady(TInt aError);
+
+ // from MThumbnailManagerObserver
+ void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
+ TThumbnailRequestId aId );
+
+ // from MThumbnailManagerObserver
+ void ThumbnailReady( TInt aError,
+ MThumbnailData& aThumbnail,
+ TThumbnailRequestId aId );
+
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CMPXVideoPosterFrameSetter( CMPXVideoPlaybackController* aVideoPlaybackCtlr );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ private: // Data
+
+ CMPXVideoPlaybackController* iVideoPlaybackCtlr;
+ TThumbnailRequestId iRequestId;
+ CThumbnailManager* iTNManager;
+};
+
+#endif // _MPXVIDEOPOSTERFRAMESETTER_H
+
+// End of File
--- a/videoplayback/videohelix/src/mpxvideodlmgrif.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/src/mpxvideodlmgrif.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-// Version : %version: 23 %
+// Version : %version: 25 %
#include <MMFROPCustomCommandConstants.h>
@@ -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;
}
--- a/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-// Version : %version: 58 %
+// Version : %version: 62 %
//
@@ -168,6 +168,7 @@
iDrmHelper = CMpxVideoDrmHelper::NewL();
iSavedPosition = 0;
+ iViewActivated = EFalse;
}
// ----------------------------------------------------------------------------
@@ -264,7 +265,6 @@
//
CMPXVideoPlaybackController::CMPXVideoPlaybackController()
: iAppInForeground(ETrue)
- , iForegroundPause(EFalse)
, iAllowAutoPlay(ETrue)
, iHelixLoadingStarted(EFalse)
, iLightStatus(CHWRMLight::ELightStatusUnknown)
@@ -371,6 +371,7 @@
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+ iViewActivated = EFalse;
}
// ----------------------------------------------------------------------------
@@ -540,6 +541,11 @@
break;
}
+ case EPbCmdSetPosterFrame:
+ {
+ iState->HandleSetPosterFrame();
+ break;
+ }
}
}
}
@@ -879,26 +885,19 @@
volume = aVolume;
}
+ //
+ // Volume needs to have n number of steps.
+ // For example, if we get 26, we need to save it as 25 in 20 volume steps
+ // For example, if we get 77, we need to save it as 70 in 10 volume steps
+ //
+ volume -= volume % iVolumeNormalizer;
+
MPX_DEBUG(
_L("CMPXVideoPlaybackController::SetVolumeCenRepL(): Setting volume = %d"), volume );
- if ( volume > 0 )
- {
- //
- // Media player's CenRep volume range : 0 - number of volume steps
- // MPX framework volume range : 0-100
- //
- iVolumeWatcher->SetValueL( volume / iVolumeNormalizer );
- SetMuteCenRepL( EFalse );
- }
- else
- {
- //
- // save both mute and current volume values in CenRep
- //
- iVolumeWatcher->SetValueL( 0 );
- SetMuteCenRepL( ETrue );
- }
+ iVolumeWatcher->SetValueL( volume );
+
+ SetMuteCenRepL( volume > 0? EFalse: ETrue );
}
else
{
@@ -939,7 +938,8 @@
TInt volume = iVolumeWatcher->CurrentValueL();
TBool mute = iMuteWatcher->CurrentValueL();
- MPX_DEBUG(_L("CMPXVideoPlaybackController::SetVolumeMMFL() volume = %d, mute = %d")
+ MPX_DEBUG(
+ _L("CMPXVideoPlaybackController::SetVolumeMMFL() volume = %d, mute = %d")
, volume, mute );
TInt newVolume = 0;
@@ -947,15 +947,14 @@
if ( ! mute )
{
//
- // If it was muted and previous volume level was 0, set the volume to 1
+ // If it was muted and previous volume level was KPbPlaybackVolumeLevelMin, set the volume to next level
//
- if ( volume == 0 )
+ if ( volume == KPbPlaybackVolumeLevelMin )
{
- volume++;
+ volume = KPbPlaybackVolumeLevelMin + iVolumeNormalizer;
}
- newVolume =
- volume * iVolumeNormalizer * iFileDetails->iMaxVolume / KPbPlaybackVolumeLevelMax;
+ newVolume = volume * iFileDetails->iMaxVolume / KPbPlaybackVolumeLevelMax;
}
MPX_DEBUG(_L("CMPXVideoPlaybackController::SetVolumeMMFL() new volume = %d"), newVolume );
@@ -1101,7 +1100,7 @@
if ( ! iMuteWatcher->CurrentValueL() )
{
- volume = iVolumeWatcher->CurrentValueL() * iVolumeNormalizer;
+ volume = iVolumeWatcher->CurrentValueL();
}
value = volume;
@@ -1154,6 +1153,10 @@
TInt retError = KErrNone;
+ iViewActivated = ETrue;
+
+ iPlayer->SendSurfaceCreatedCommand();
+
RArray<TInt> suppIds;
CleanupClosePushL( suppIds );
@@ -2307,10 +2310,6 @@
//
// MPX framework volume range : 0-100
- // Media player volume range : 0-10
- // MPX video player volume range : 0 - volume steps (defined in PlaybackHelper)
- // For IAD, need to manipulate volume to save in cenrep
- // MPX Framework volume / iVolumeNormalizer => CenRep
//
CDevSoundIf* devSoundIf = CDevSoundIf::NewL();
TInt volumeSteps = devSoundIf->GetNumberOfVolumeSteps();
@@ -2401,6 +2400,8 @@
iHelixLoadingStarted = EFalse;
iSavedPosition = 0;
+
+ iViewActivated = EFalse;
}
// ------------------------------------------------------------------------------------------------
@@ -2412,31 +2413,20 @@
MPX_ENTER_EXIT( _L("CMPXVideoPlaybackController::HandleVolumeL()"),
_L("aIncrease = %d"), aIncrease );
- //
- // Media player's CenRep volume range : 0 - number of volume steps
- // MPX framework volume range : 0-100
- //
TInt volume = iVolumeWatcher->CurrentValueL();
+ TInt diff = iVolumeNormalizer;
- if ( aIncrease )
+ if ( ! aIncrease )
{
- //
- // increase the current volume
- //
- volume++;
+ diff *= -1;
}
- else if ( volume > 0 )
- {
- //
- // decrease the current volume
- //
- volume--;
- }
+
+ volume += diff;
//
// save the current volume level in CenRep
//
- SetVolumeCenRepL( volume * iVolumeNormalizer );
+ SetVolumeCenRepL( volume );
}
// ------------------------------------------------------------------------------------------------
@@ -2532,4 +2522,24 @@
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+// ------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackController::IsViewActivated()
+// ------------------------------------------------------------------------------------------------
+//
+TBool CMPXVideoPlaybackController::IsViewActivated()
+{
+ MPX_DEBUG(_L("CMPXVideoPlaybackController::IsViewActivated"));
+ return iViewActivated;
+}
+
+// ------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackController::HandleFrameReady()
+// ------------------------------------------------------------------------------------------------
+//
+void CMPXVideoPlaybackController::HandleFrameReady(TInt aError)
+{
+ MPX_DEBUG(_L("CMPXVideoPlaybackController::HandleFrameReady"));
+
+ iPlaybackMode->HandleFrameReady(aError);
+}
// End of file
--- a/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-// Version : %version: 25 %
+// Version : %version: 32 %
//
@@ -35,6 +35,7 @@
#include "mpxvideofiledetails.h"
#include <mpxvideoplaybackdefs.h>
#include "mpxvideodrmhelper.h"
+#include "mpxvideoposterframesetter.h"
// Constants
const TUid KUidInterfaceMMFHelixController = {0x101F855D};
@@ -69,6 +70,12 @@
CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode()
{
MPX_DEBUG(_L("CMPXVideoPlaybackMode::~CMPXVideoPlaybackMode()"));
+
+ if ( iPosterFrameSetter )
+ {
+ delete iPosterFrameSetter;
+ iPosterFrameSetter = NULL;
+ }
}
// ----------------------------------------------------------------------------
@@ -177,31 +184,26 @@
{
MPX_DEBUG(_L("CMPXVideoPlaybackMode::HandleBackground()"));
- //
- // Pause in all cases to remove the different behavior based on the decoder
- //
- iVideoPlaybackCtlr->iState->HandlePause();
-
if ( iVideoPlaybackCtlr->iAppInForeground )
{
if ( iVideoPlaybackCtlr->IsAlarm() )
{
- iVideoPlaybackCtlr->iForegroundPause = ETrue;
+ iVideoPlaybackCtlr->iState->HandlePause();
}
else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
{
- iVideoPlaybackCtlr->iForegroundPause = ETrue;
- iVideoPlaybackCtlr->SendHideControlsEventL();
+ iVideoPlaybackCtlr->iState->HandlePause();
+ TRAP_IGNORE( iVideoPlaybackCtlr->SendHideControlsEventL() );
}
else if ( iVideoPlaybackCtlr->IsPhoneCall() || iVideoPlaybackCtlr->IsVideoCall() )
{
- iVideoPlaybackCtlr->iForegroundPause = EFalse;
+ iVideoPlaybackCtlr->iState->HandlePause();
}
}
else
{
- iVideoPlaybackCtlr->iForegroundPause = EFalse;
+ iVideoPlaybackCtlr->iState->HandlePause();
}
}
@@ -221,10 +223,11 @@
MPX_TRAPD( err,
iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ) );
}
- else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
+ else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
{
- iVideoPlaybackCtlr->iForegroundPause = ETrue;
+ // playback not allowed for the clip having video if keylock is true
+ // Let playAllowed remain false
}
else
{
@@ -276,6 +279,22 @@
return networkMode2g;
}
+
+// ------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackMode::HandleSetPosterFrame()
+// ------------------------------------------------------------------------------------------------
+void CMPXVideoPlaybackMode::HandleSetPosterFrame()
+{
+ MPX_DEBUG(_L("CMPXVideoPlaybackMode::HandleSetPosterFrame()"));
+}
+
+// ------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackMode::HandleSetPosterFrame()
+// ------------------------------------------------------------------------------------------------
+void CMPXVideoPlaybackMode::HandleFrameReady(TInt /*aError*/)
+{
+ MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()"));
+}
//************************************************************************************************//
// CMPXLocalPlaybackMode
//************************************************************************************************//
@@ -295,6 +314,30 @@
MPX_DEBUG(_L("CMPXLocalPlaybackMode::~CMPXLocalPlaybackMode()"));
}
+void CMPXLocalPlaybackMode::HandleSetPosterFrame()
+{
+ MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleSetPosterFrame()"));
+
+ // create poster frame setter if it does not already exist
+ if ( ! iPosterFrameSetter )
+ {
+ TRAP_IGNORE(iPosterFrameSetter = CMPXVideoPosterFrameSetter::NewL( iVideoPlaybackCtlr ));
+ }
+
+ if ( iPosterFrameSetter )
+ {
+ iPosterFrameSetter->RequestPosterFrame();
+ }
+}
+
+void CMPXLocalPlaybackMode::HandleFrameReady(TInt aError)
+{
+ MPX_DEBUG(_L("CMPXLocalPlaybackMode::HandleFrameReady()"));
+
+ iPosterFrameSetter->HandlePosterFrameReady(aError);
+}
+
+
//************************************************************************************************//
// CMPXStreamingPlaybackMode
//************************************************************************************************//
@@ -386,9 +429,11 @@
MPX_TRAPD(err,
iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ));
}
- else if ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
+ else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
+ iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
{
- //exit for live streaming
+ // playback not allowed for the clip having video if keylock is true
+ // Let playAllowed remain false
}
else
{
@@ -489,10 +534,20 @@
{
MPX_DEBUG(_L("CMPXLiveStreamingPlaybackMode::HandleBackground()"));
- //
- // Pause in all cases to remove the different behavior based on the decoder
- //
- iVideoPlaybackCtlr->iState->HandlePause();
+ if ( iVideoPlaybackCtlr->iAppInForeground )
+ {
+ if ( iVideoPlaybackCtlr->IsPhoneCall() ||
+ iVideoPlaybackCtlr->IsVideoCall() ||
+ ( iVideoPlaybackCtlr->IsKeyLocked() &&
+ iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) )
+ {
+ iVideoPlaybackCtlr->iState->HandlePause();
+ }
+ }
+ else
+ {
+ iVideoPlaybackCtlr->iState->HandlePause();
+ }
}
//************************************************************************************************//
@@ -514,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()
// ------------------------------------------------------------------------------------------------
@@ -594,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
--- a/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-// Version : %version: 41 %
+// Version : %version: 44 %
//
@@ -173,6 +173,14 @@
}
// ------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackState::HandleSetPosterFrame()
+// ------------------------------------------------------------------------------------------------
+void CMPXVideoPlaybackState::HandleSetPosterFrame()
+{
+ MPX_DEBUG(_L("CMPXVideoPlaybackState::HandleSetPosterFrame()"));
+}
+
+// ------------------------------------------------------------------------------------------------
// CMPXVideoPlaybackState::HandleForeground()
// ------------------------------------------------------------------------------------------------
void CMPXVideoPlaybackState::HandleForeground()
@@ -1195,8 +1203,6 @@
if ( iVideoPlaybackCtlr->iPlaybackMode->CanPlayNow() )
{
- iVideoPlaybackCtlr->iForegroundPause = EFalse;
-
IssuePlayCommand( EMPXVideoBuffering, MMPXPlaybackPluginObserver::EPBufferingStarted );
}
else
@@ -1365,6 +1371,18 @@
HandlePause();
}
+
+// ------------------------------------------------------------------------------------------------
+// CMPXPlayingState::HandleSetPosterFrame()
+// ------------------------------------------------------------------------------------------------
+void CMPXPlayingState::HandleSetPosterFrame()
+{
+ MPX_DEBUG(_L("CMPXPlayingState::HandleSetPosterFrame()"));
+
+ iVideoPlaybackCtlr->iPlaybackMode->HandleSetPosterFrame();
+}
+
+
// ------------------------------------------------------------------------------------------------
// CMPXPlayingState::HandleStartSeekL()
// ------------------------------------------------------------------------------------------------
@@ -1507,8 +1525,6 @@
if ( iVideoPlaybackCtlr->iPlaybackMode->CanPlayNow() )
{
- iVideoPlaybackCtlr->iForegroundPause = EFalse;
-
IssuePlayCommand( EMPXVideoPlaying, MMPXPlaybackPluginObserver::EPPlaying );
}
}
@@ -1523,6 +1539,16 @@
}
// ------------------------------------------------------------------------------------------------
+// CMPXPausedState::HandleSetPosterFrame()
+// ------------------------------------------------------------------------------------------------
+void CMPXPausedState::HandleSetPosterFrame()
+{
+ MPX_DEBUG(_L("CMPXPausedState::HandleSetPosterFrame()"));
+
+ iVideoPlaybackCtlr->iPlaybackMode->HandleSetPosterFrame();
+}
+
+// ------------------------------------------------------------------------------------------------
// CMPXPausedState::HandleSetPositionL()
// ------------------------------------------------------------------------------------------------
void CMPXPausedState::HandleSetPositionL( TInt aPosition )
@@ -1595,17 +1621,9 @@
// ------------------------------------------------------------------------------------------------
void CMPXPausedState::HandleForeground()
{
- MPX_ENTER_EXIT(_L("CMPXPausedState::HandleForeground()"),
- _L("foreground pause = %d"), iVideoPlaybackCtlr->iForegroundPause );
+ MPX_ENTER_EXIT(_L("CMPXPausedState::HandleForeground()"));
- if ( iVideoPlaybackCtlr->iForegroundPause )
- {
- iVideoPlaybackCtlr->iState->HandlePlay();
- }
- else
- {
- MPX_TRAPD( err, iVideoPlaybackCtlr->iPlayer->RefreshFrameL() );
- }
+ MPX_TRAPD( err, iVideoPlaybackCtlr->iPlayer->RefreshFrameL() );
}
// ------------------------------------------------------------------------------------------------
@@ -1619,8 +1637,6 @@
if ( iVideoPlaybackCtlr->iPlaybackMode->CanPlayNow() )
{
- iVideoPlaybackCtlr->iForegroundPause = EFalse;
-
IssuePlayCommand( EMPXVideoPlaying, MMPXPlaybackPluginObserver::EPPlaying, EFalse );
}
}
@@ -1779,7 +1795,7 @@
if ( aError == KErrNone )
{
- if ( iVideoPlaybackCtlr->iAppInForeground && !iVideoPlaybackCtlr->iForegroundPause )
+ if ( iVideoPlaybackCtlr->iPlaybackMode->CanPlayNow() )
{
iVideoPlaybackCtlr->ChangeState( EMPXVideoPlaying );
--- a/videoplayback/videohelix/src/mpxvideoplayerutility.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/src/mpxvideoplayerutility.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -16,13 +16,14 @@
*/
-// Version : %version: 20 %
+// Version : %version: 22 %
#include <AudioPreference.h>
#include <mmf/server/mmffile.h>
#include <caf/caftypes.h>
#include <mpxmessagegeneraldefs.h>
+#include <fbs.h>
#include "mpxvideoplayerutility.h"
#include "mpxvideoplaybackcontroller.h"
@@ -45,7 +46,8 @@
}
CMpxVideoPlayerUtility::CMpxVideoPlayerUtility( CMPXVideoPlaybackController* aVideoPlaybackCtrl )
- : iVideoPlaybackController( aVideoPlaybackCtrl )
+ : CActive( EPriorityStandard )
+ , iVideoPlaybackController( aVideoPlaybackCtrl )
, iVideoControllerCustomCommands( iController )
, iVideoPlayControllerCustomCommands( iController )
, iAudioPlayDeviceCustomCommands( iController )
@@ -60,6 +62,8 @@
void CMpxVideoPlayerUtility::ConstructL()
{
OpenControllerL();
+
+ CActiveScheduler::Add( this );
}
CMpxVideoPlayerUtility::~CMpxVideoPlayerUtility()
@@ -84,6 +88,17 @@
iController.Close();
iDirectScreenAccessAbort = EFalse;
+
+ if ( IsActive() )
+ {
+ Cancel();
+
+ if ( iPosterFrameBitmap )
+ {
+ delete iPosterFrameBitmap;
+ iPosterFrameBitmap = NULL;
+ }
+ }
}
void CMpxVideoPlayerUtility::Reset()
@@ -308,6 +323,55 @@
MPX_DEBUG(_L("CMpxVideoPlayerUtility::GetVideoLoadingProgressL(%d)"), aPercentageProgress );
}
+void CMpxVideoPlayerUtility::GetFrameL()
+{
+ MPX_DEBUG(_L("CMpxVideoPlayerUtility::GetFrameL"));
+
+ // dont get another frame if a request is already pending
+ //
+ if ( ! IsActive() )
+ {
+ iPosterFrameBitmap = new (ELeave) CFbsBitmap;
+ User::LeaveIfError(iPosterFrameBitmap->Create(TSize(0,0), EColor16MU));
+
+ iVideoPlayControllerCustomCommands.GetFrame( *iPosterFrameBitmap, iStatus );
+ SetActive();
+ }
+
+}
+
+void CMpxVideoPlayerUtility::RunL()
+{
+ MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::RunL()"));
+
+ if ( iStatus.Int() == KErrNone )
+ {
+ iVideoPlaybackController->HandleFrameReady( iStatus.Int() );
+ }
+ else
+ {
+ // Bitmap ownership will NOT be transferred to thumbnail manager so delete it
+ delete iPosterFrameBitmap;
+ iPosterFrameBitmap = NULL;
+ }
+}
+
+void CMpxVideoPlayerUtility::DoCancel()
+{
+ MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::DoCancel()"));
+
+ // Bitmap ownership will NOT be transferred to thumbnail manager so delete it
+ delete iPosterFrameBitmap;
+ iPosterFrameBitmap = NULL;
+}
+
+CFbsBitmap& CMpxVideoPlayerUtility::GetBitmap()
+{
+ MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::GetBitmap()"));
+
+ return *iPosterFrameBitmap;
+}
+
void CMpxVideoPlayerUtility::PlayL()
{
MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::PlayL()"));
@@ -485,22 +549,23 @@
if ( iSurfaceId.IsNull() )
{
TSurfaceId surfaceId;
- TRect cropRect;
- TVideoAspectRatio aspectRatio;
error = iVideoPlaySurfaceSupportCustomCommands.GetSurfaceParameters( surfaceId,
- cropRect,
- aspectRatio );
+ iCropRect,
+ iAspectRatio );
if ( error == KErrNone )
{
- //
- // Send data to the display handler to remove old surface and add new surface
- //
- MPX_TRAPD( err, SendSurfaceCommandL( EPbMsgVideoSurfaceCreated,
- surfaceId,
- cropRect,
- aspectRatio ) );
+ if ( iVideoPlaybackController->IsViewActivated() )
+ {
+ //
+ // Send data to the display handler to remove old surface and add new surface
+ //
+ MPX_TRAPD( err, SendSurfaceCommandL( EPbMsgVideoSurfaceCreated,
+ surfaceId,
+ iCropRect,
+ iAspectRatio ) );
+ }
iSurfaceId = surfaceId;
}
@@ -634,6 +699,23 @@
}
}
+// -------------------------------------------------------------------------------------------------
+// CMpxVideoPlayerUtility::SendSurfaceCreatedCommand()
+// -------------------------------------------------------------------------------------------------
+//
+void CMpxVideoPlayerUtility::SendSurfaceCreatedCommand()
+{
+ MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::SendSurfaceCreatedCommand()"));
+
+ if ( ! iSurfaceId.IsNull() )
+ {
+ MPX_TRAPD( err, SendSurfaceCommandL( EPbMsgVideoSurfaceCreated,
+ iSurfaceId,
+ iCropRect,
+ iAspectRatio ) );
+ }
+}
+
#endif
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videohelix/src/mpxvideoposterframesetter.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,164 @@
+/*
+* 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: poster frame setter
+ *
+*/
+
+// Version : %version: ou1cpsw#2 %
+
+
+// INCLUDE FILES
+#include <fbs.h>
+#include <mpxvideoplaybackdefs.h>
+
+#include "mpxvideoposterframesetter.h"
+#include "mpxvideoplaybackcontroller.h"
+#include "mpxvideo_debug.h"
+
+// ============================ MEMBER FUNCTIONS ===================================================
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::CMPXVideoPosterFrameSetter
+// C++ default constructor can NOT contain any code, that might leave.
+// -------------------------------------------------------------------------------------------------
+//
+CMPXVideoPosterFrameSetter::CMPXVideoPosterFrameSetter( CMPXVideoPlaybackController* aVideoPlaybackCtlr )
+ : iVideoPlaybackCtlr( aVideoPlaybackCtlr )
+{
+ MPX_ENTER_EXIT(_L("CMPXVideoPosterFrameSetter::CMPXVideoPosterFrameSetter()"));
+}
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoPosterFrameSetter::ConstructL()
+{
+ MPX_ENTER_EXIT(_L("CMPXVideoPosterFrameSetter::ConstructL()"));
+
+ iTNManager = CThumbnailManager::NewL( *this );
+}
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::NewL
+// Two-phased constructor.
+// -------------------------------------------------------------------------------------------------
+//
+CMPXVideoPosterFrameSetter* CMPXVideoPosterFrameSetter::NewL( CMPXVideoPlaybackController* aVideoPlaybackCtlr )
+{
+ MPX_ENTER_EXIT(_L("CMPXVideoPosterFrameSetter::NewL()"));
+
+ CMPXVideoPosterFrameSetter* self = new( ELeave ) CMPXVideoPosterFrameSetter( aVideoPlaybackCtlr );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+}
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::~CMPXVideoPosterFrameSetter
+// Destructor
+// -------------------------------------------------------------------------------------------------
+//
+CMPXVideoPosterFrameSetter::~CMPXVideoPosterFrameSetter()
+{
+ MPX_ENTER_EXIT(_L("CMPXVideoPosterFrameSetter::~CMPXVideoPosterFrameSetter()"));
+
+ if ( iTNManager )
+ {
+ delete iTNManager;
+ iTNManager = NULL;
+ }
+}
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::RequestPosterFrameL
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoPosterFrameSetter::RequestPosterFrame()
+{
+ MPX_ENTER_EXIT(_L("CMPXVideoPosterFrameSetter::RequestPosterFrame()"));
+
+ if ( ! iVideoPlaybackCtlr->iFileDetails->iDrmProtected )
+ {
+ TRAP_IGNORE( iVideoPlaybackCtlr->iPlayer->GetFrameL() );
+ }
+ else
+ {
+ MPX_TRAPD(err,
+ iVideoPlaybackCtlr->iState->SendErrorToViewL(KMPXVideoSetPosterFrameNotSupported));
+ }
+}
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::HandlePosterFrameReady
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoPosterFrameSetter::HandlePosterFrameReady(TInt aError)
+{
+ MPX_ENTER_EXIT(_L("CMPXVideoPosterFrameSetter::HandlePosterFrameReady()"));
+
+ if ( aError == KErrNone )
+ {
+ CThumbnailObjectSource* tnSource( 0 );
+ TRAP_IGNORE
+ (
+ tnSource = CThumbnailObjectSource::NewL( &iVideoPlaybackCtlr->iPlayer->GetBitmap(),
+ iVideoPlaybackCtlr->iClipName->Des() );
+
+ CleanupStack::PushL( tnSource );
+ iRequestId = iTNManager->SetThumbnailL( *tnSource );
+ CleanupStack::PopAndDestroy( tnSource );
+ );
+ }
+}
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::ThumbnailPreviewReady
+//
+// callback method from MThumbnailManagerObserver
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoPosterFrameSetter::ThumbnailPreviewReady( MThumbnailData& /*aThumbnail*/,
+ TThumbnailRequestId /*aId*/ )
+{
+ MPX_ENTER_EXIT(_L("CMPXVideoPosterFrameSetter::ThumbnailPreviewReady()"));
+}
+
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPosterFrameSetter::ThumbnailReady
+//
+// callback method from MThumbnailManagerObserver
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoPosterFrameSetter::ThumbnailReady( TInt aError,
+ MThumbnailData& /*aThumbnail*/,
+ TThumbnailRequestId /*aId*/ )
+{
+ MPX_DEBUG(_L("CMPXVideoPosterFrameSetter::ThumbnailReady() aError = %d"), aError );
+
+ if ( aError == KErrNone )
+ {
+ MPX_TRAPD( err,
+ iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoSetPosterFrameSuccess ) );
+ }
+ else
+ {
+ MPX_TRAPD( err,
+ iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoSetPosterFrameFailure ) );
+ }
+}
+
+// End of File
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg Wed Jun 23 17:22:59 2010 +0100
@@ -25,6 +25,7 @@
EPbCmdStretchAspectRatio 11
EPbCmdHandleIncreaseVolume 17
EPbCmdHandleDecreaseVolume 18
+EPbCmdSetPosterFrame 24
EMMFNatural 2
EMMFZoom 3
@@ -53,6 +54,7 @@
ERFile 1
ERFile64 0
+EMPXVideoLocal 0
[Enddefine]
@@ -526,20 +528,7 @@
[Endtest]
[Test]
-title 33. Alarm: Auto resume
-create videohelixtest test
-test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
-waittestclass test
-test IssueGeneralCommand EPbCmdPlay KErrNone ECallbackBuffering
-waittestclass test
-test AlarmAutoResume EPbCmdHandleBackground EPbCmdHandleForeground
-waittestclass test
-delete test
-pause 1000
-[Endtest]
-
-[Test]
-title 34. Incoming Phone Call: Rejected
+title 33. Incoming Phone Call: Rejected
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -552,7 +541,7 @@
[Endtest]
[Test]
-title 35. Incoming Voice Call: Accepted
+title 34. Incoming Voice Call: Accepted
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -566,7 +555,7 @@
[Endtest]
[Test]
-title 36. Incoming Video Call: Accepted
+title 35. Incoming Video Call: Accepted
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -580,7 +569,7 @@
[Endtest]
[Test]
-title 37. Play During Video Call
+title 36. Play During Video Call
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -594,7 +583,7 @@
[Endtest]
[Test]
-title 38. Play During voice Call
+title 37. Play During voice Call
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -608,7 +597,7 @@
[Endtest]
[Test]
-title 39. Initialise with SDP file via 32-bit file handle
+title 38. Initialise with SDP file via 32-bit file handle
create videohelixtest test
test InitializeHandle ERFile 60000 10 sdp_test.sdp KErrNone KErrNone KErrNone
waittestclass test
@@ -617,7 +606,7 @@
[Endtest]
[Test]
-title 40. Tv-Out before Initialization - Playback Allowed
+title 39. Tv-Out before Initialization - Playback Allowed
create videohelixtest test
test SetTvOutConnected ETvOutPlaybackAllowed
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
@@ -630,7 +619,7 @@
[Endtest]
[Test]
-title 41. Tv-Out after Initialization - Playback Allowed
+title 40. Tv-Out after Initialization - Playback Allowed
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -644,7 +633,7 @@
[Endtest]
[Test]
-title 42. Tv-Out before Initialization - DRM Playback Allowed
+title 41. Tv-Out before Initialization - DRM Playback Allowed
create videohelixtest test
test SetTvOutConnected ETvOutPlaybackAllowed
test Initialize 0 10 dcf.odf KErrNone KErrNone KErrNone
@@ -657,7 +646,7 @@
[Endtest]
[Test]
-title 43. Tv-Out after Initialization - DRM Playback Allowed
+title 42. Tv-Out after Initialization - DRM Playback Allowed
create videohelixtest test
test Initialize 0 10 dcf.odf KErrNone KErrNone KErrNone
waittestclass test
@@ -670,7 +659,7 @@
[Endtest]
[Test]
-title 44. DRM Protected file with Rights
+title 43. DRM Protected file with Rights
create videohelixtest test
test SetDrmProtected 0
test Initialize 0 10 dcf.odf KErrNone KErrNone KErrNone
@@ -682,7 +671,7 @@
[Endtest]
[Test]
-title 45. DRM Protected file without rights
+title 44. DRM Protected file without rights
create videohelixtest test
test SetDrmProtected -17452
test Initialize 0 10 vhpp_test.3gp KErrNone KErrNone -17452
@@ -695,7 +684,7 @@
[Endtest]
[Test]
-title 46. EndOfClip Custom Commands
+title 45. EndOfClip Custom Commands
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -705,7 +694,7 @@
[Endtest]
[Test]
-title 47. PDL - Not enough Data
+title 46. PDL - Not enough Data
create videohelixtest test
test ConnectToDownload 2 vhpp_test.3gp
waittestclass test
@@ -719,7 +708,7 @@
[Endtest]
[Test]
-title 48. Handle volume increase (10-steps)
+title 47. Handle volume increase (10-steps)
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -739,7 +728,7 @@
[Endtest]
[Test]
-title 49. Handle volume decrease (10-steps)
+title 48. Handle volume decrease (10-steps)
create videohelixtest test
test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -759,7 +748,7 @@
[Endtest]
[Test]
-title 50. Handle volume increase (20-steps)
+title 49. Handle volume increase (20-steps)
create videohelixtest test
test Initialize 60000 20 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -779,7 +768,7 @@
[Endtest]
[Test]
-title 51. Handle volume decrease (20-steps)
+title 50. Handle volume decrease (20-steps)
create videohelixtest test
test Initialize 60000 20 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -799,7 +788,7 @@
[Endtest]
[Test]
-title 52. InitialiseL with 64-bit file handle
+title 51. InitialiseL with 64-bit file handle
create videohelixtest test
test InitializeHandle ERFile64 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -808,7 +797,7 @@
[Endtest]
[Test]
-title 53. Initialise with SDP file via 64-bit file handle
+title 52. Initialise with SDP file via 64-bit file handle
create videohelixtest test
test InitializeHandle ERFile64 60000 10 sdp_test.sdp KErrNone KErrNone KErrNone
waittestclass test
@@ -817,7 +806,7 @@
[Endtest]
[Test]
-title 54. InitialiseWithPositionL with file missing
+title 53. InitialiseWithPositionL with file missing
create videohelixtest test
test InitializeWithPositionL 0 10 6575 vhpp_nofile.3gp KErrNotFound KErrNone KErrNone
waittestclass test
@@ -828,7 +817,7 @@
[Endtest]
[Test]
-title 55. InitialiseL with 32-bit file handle
+title 54. InitialiseL with 32-bit file handle
create videohelixtest test
test InitializeHandleWithPositionL ERFile 60000 10 6575 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -837,7 +826,7 @@
[Endtest]
[Test]
-title 56. Initialise with rtsp link & AP
+title 55. Initialise with rtsp link & AP
create videohelixtest test
test InitializeLinkWithPositionL 0 10 6575 rtsp:\/\/link.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -846,7 +835,7 @@
[Endtest]
[Test]
-title 57. Play rtsp link (forces buffering state)
+title 56. Play rtsp link (forces buffering state)
create videohelixtest test
test InitializeLinkWithPositionL 0 10 6575 rtsp:\/\/link.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -857,7 +846,7 @@
[Endtest]
[Test]
-title 58. Initialise with SDP file via 32-bit file handle
+title 57. Initialise with SDP file via 32-bit file handle
create videohelixtest test
test InitializeHandleWithPositionL ERFile 60000 10 6575 sdp_test.sdp KErrNone KErrNone KErrNone
waittestclass test
@@ -866,7 +855,7 @@
[Endtest]
[Test]
-title 59. InitialiseL with 64-bit file handle
+title 58. InitialiseL with 64-bit file handle
create videohelixtest test
test InitializeHandleWithPositionL ERFile64 60000 10 6575 vhpp_test.3gp KErrNone KErrNone KErrNone
waittestclass test
@@ -875,7 +864,7 @@
[Endtest]
[Test]
-title 60. Initialise with SDP file via 64-bit file handle
+title 59. Initialise with SDP file via 64-bit file handle
create videohelixtest test
test InitializeHandleWithPositionL ERFile64 60000 10 6575 sdp_test.sdp KErrNone KErrNone KErrNone
waittestclass test
@@ -883,3 +872,44 @@
pause 1000
[Endtest]
+[Test]
+title 60. Set Poster Frame
+create videohelixtest test
+test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
+waittestclass test
+pause 100
+test IssueGeneralCommand EPbCmdPlay KErrNone ECallbackBuffering
+waittestclass test
+test IssueVideoCommand EPbCmdSetPosterFrame
+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]
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/group/videohelixtest.mmp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/group/videohelixtest.mmp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: ou1cpsw#8 %
+// Version : %version: 11 %
@@ -45,21 +45,21 @@
SOURCE videohelixtestbody.cpp
SOURCE timeoutcontroller.cpp
SOURCE mpxvideoplayerutility_stub.cpp
-SOURCE dlmgr_stub.cpp
SOURCE mpxvideoregion.cpp
SOURCE stifutilities.cpp
SOURCE mediarecognizer_stub.cpp
SOURCE mpxvideoaccessoryobserver_stub.cpp
SOURCE mpxvideodrmhelper_stub.cpp
+SOURCE tnmgr_stub.cpp
SOURCEPATH ../../../src
-SOURCE mpxvideodlmgrif.cpp
SOURCE mpxvideofiledetails.cpp
SOURCE mpxvideohelixplayback.cpp
SOURCE mpxvideoplaybackcontroller.cpp
SOURCE mpxvideoplaybackmode.cpp
SOURCE mpxvideoplaybackstate.cpp
SOURCE mpxvideoseeker.cpp
+SOURCE mpxvideoposterframesetter.cpp
LIBRARY euser.lib
@@ -89,5 +89,6 @@
LIBRARY flogger.lib
LIBRARY playbackhelper.lib
LIBRARY hwrmlightclient.lib // Lights control
+LIBRARY fbscli.lib
// End of File
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/dlmgr_stub.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/dlmgr_stub.h Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 12 %
+// Version : %version: 14 %
#ifndef __MPXVIDEOPLAYERUTILITY__
@@ -42,6 +42,7 @@
// FORWARD DECLARATIONS
//
class CMPXVideoPlaybackController;
+class CFbsBitmap;
//
// CLASS DECLARATION
@@ -112,6 +113,9 @@
void SetVolumeSteps( TInt aVolumeSteps );
void SurfaceRemovedFromView();
+
+ void GetFrameL();
+ CFbsBitmap& GetBitmap();
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
void OpenFile64L( const RFile64& aFile );
@@ -122,6 +126,7 @@
TInt VideoSurfaceCreated();
TInt SurfaceParametersChanged();
TInt RemoveSurface();
+ void SendSurfaceCreatedCommand();
#endif
@@ -179,6 +184,8 @@
TTimeIntervalMicroSeconds iPosition;
TTimeIntervalMicroSeconds iDuration;
+
+ CFbsBitmap* iPosterFrameBitmap;
};
#endif /* __MPXVIDEOPLAYERUTILITY__ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/tnmgr_stub.h Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* 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: Thumbnail Manager Stub
+ *
+*/
+
+// Version : %version: 1 %
+
+#ifndef TNMGR_STUB_H_
+#define TNMGR_STUB_H_
+
+class CFbsBitmap;
+class MThumbnailData;
+//class MThumbnailManagerObserver;
+
+typedef TInt TThumbnailRequestId;
+
+class MThumbnailManagerObserver
+ {
+public:
+
+ virtual void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
+ TThumbnailRequestId aId ) = 0;
+
+ virtual void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail,
+ TThumbnailRequestId aId ) = 0;
+};
+
+
+class CThumbnailObjectSource : public CBase
+ {
+public:
+
+ CThumbnailObjectSource( CFbsBitmap* aBitmap, const TDesC& aUri );
+ virtual ~CThumbnailObjectSource();
+ static CThumbnailObjectSource* NewL( CFbsBitmap* aBitmap, const TDesC& aUri );
+};
+
+
+
+class CThumbnailManager : public CBase
+{
+
+public:
+
+ CThumbnailManager( MThumbnailManagerObserver& aObserver );
+ virtual ~CThumbnailManager();
+ static CThumbnailManager* NewL( MThumbnailManagerObserver& aObserver );
+
+ TThumbnailRequestId SetThumbnailL( CThumbnailObjectSource& source );
+
+public:
+ MThumbnailManagerObserver& iObserver;
+};
+
+
+#endif /* TNMGR_STUB_H_ */
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 13 %
+// Version : %version: e003sa33#15 %
#ifndef __VHPPTESTCASE_H__
@@ -155,7 +155,6 @@
virtual TInt ChangeAspectRatioL( CStifItemParser& aItem );
virtual TInt AlarmOn( CStifItemParser& aItem );
- virtual TInt AlarmAutoResume( CStifItemParser& aItem );
virtual TInt PhoneCallRejected( CStifItemParser& aItem );
virtual TInt VoiceCallAccepted( CStifItemParser& aItem );
@@ -173,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
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 15 %
+// Version : %version: 17 %
#include <audiopreference.h>
#include <mmf/server/mmffile.h>
@@ -425,6 +425,29 @@
TInt openError = ReadOpenError();
}
+void CMpxVideoPlayerUtility::GetFrameL()
+{
+ MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::GetFrameL()"));
+
+ if ( iStifObserver )
+ {
+ TCallbackEvent* event = new TCallbackEvent;
+ event->iEvent = EPbCmdSetPosterFrame;
+ event->iData = 0;
+ event->iError = KErrNone;
+ iStifObserver->HandleUtilityEvent( event );
+ }
+
+ iVideoPlaybackController->HandleFrameReady( KErrGeneral );
+}
+
+CFbsBitmap& CMpxVideoPlayerUtility::GetBitmap()
+{
+ MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::GetBitmap()"));
+
+ iPosterFrameBitmap = new (ELeave) CFbsBitmap;
+ return *iPosterFrameBitmap;
+}
TInt CMpxVideoPlayerUtility::ReadOpenError()
{
@@ -753,6 +776,11 @@
return KErrNone;
}
+void CMpxVideoPlayerUtility::SendSurfaceCreatedCommand()
+{
+ MPX_DEBUG(_L("CMpxVideoPlayerUtility::SendSurfaceCreatedCommand()"));
+}
+
#endif
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/tnmgr_stub.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,70 @@
+/*
+* 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: Thumbnail Manager stub impl
+*
+*/
+
+// Version : %version: 2 %
+
+#include <fbs.h>
+#include "tnmgr_stub.h"
+#include "mpxvideo_debug.h"
+
+
+/****************************************************
+ * CThumbnailManager stub implementation
+ ****************************************************/
+CThumbnailManager::~CThumbnailManager()
+{
+}
+
+CThumbnailManager* CThumbnailManager::NewL( MThumbnailManagerObserver& aObserver )
+{
+ MPX_ENTER_EXIT(_L("CThumbnailManager::NewL() - stub impl"));
+ CThumbnailManager* self = new( ELeave )CThumbnailManager( aObserver );
+ return self;
+}
+
+CThumbnailManager::CThumbnailManager( MThumbnailManagerObserver& aObserver )
+: iObserver( aObserver )
+{
+ MPX_ENTER_EXIT(_L("CThumbnailManager::CThumbnailManager() - stub impl"));
+}
+
+TThumbnailRequestId CThumbnailManager::SetThumbnailL( CThumbnailObjectSource& /* aObjectSource */ )
+{
+ MPX_ENTER_EXIT(_L("CThumbnailManager::SetThumbnailL() - stub impl"));
+ return 0;
+}
+
+
+/****************************************************
+ * CThumbnailObjectSource stub implementation
+ ****************************************************/
+CThumbnailObjectSource::~CThumbnailObjectSource()
+{
+}
+
+CThumbnailObjectSource* CThumbnailObjectSource::NewL( CFbsBitmap* aBitmap, const TDesC& aUri )
+{
+ MPX_ENTER_EXIT(_L("CThumbnailObjectSource::NewL() - stub impl"));
+ CThumbnailObjectSource* self = new( ELeave )CThumbnailObjectSource( aBitmap, aUri );
+ return self;
+}
+
+CThumbnailObjectSource::CThumbnailObjectSource( CFbsBitmap* /* aBitmap */ , const TDesC& /* aUri */ )
+{
+}
+
+
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtest.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtest.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 6 %
+// Version : %version: 7 %
// INCLUDE FILES
@@ -129,10 +129,10 @@
//
// CenRep volume range is 0 - number of steps (either 10 or 20).
- // Set default CenRep values as volume(4), mute(0)
+ // Set default CenRep values as volume(40), mute(0)
//
CRepository* volCenRep = CRepository::NewL( KCRUidMPXVideoSettings );
- volCenRep->Set( KMPXVideoPlaybackVolume, 4 );
+ volCenRep->Set( KMPXVideoPlaybackVolume, 40 );
volCenRep->Set( KMPXVideoPlaybackMute, 0 );
delete volCenRep;
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 21 %
+// 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\\" );
@@ -99,7 +100,6 @@
ENTRY( "ChangeAspectRatioL", CVHPPTestClass::ChangeAspectRatioL),
ENTRY( "AlarmOn", CVHPPTestClass::AlarmOn),
- ENTRY( "AlarmAutoResume", CVHPPTestClass::AlarmAutoResume),
ENTRY( "PhoneCallRejected", CVHPPTestClass::PhoneCallRejected),
ENTRY( "VoiceCallAccepted", CVHPPTestClass::VoiceCallAccepted),
ENTRY( "VideoCallAccepted", CVHPPTestClass::VideoCallAccepted),
@@ -119,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
@@ -1143,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 );
@@ -1153,7 +1160,7 @@
//
// Read in the download id and filename
//
- TInt err = aItem.GetNextInt( dlId );
+ err = aItem.GetNextInt( dlId );
if ( err == KErrNone )
{
@@ -1189,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;
}
@@ -1203,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 );
@@ -1213,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
+
}
// -----------------------------------------------------------------------------
@@ -1225,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;
@@ -1234,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;
}
@@ -1248,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 )
{
@@ -1274,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;
}
@@ -1288,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;
@@ -1298,6 +1350,13 @@
iDlMgrTester->CancelDownload();
+#else // USE_S60_DOWNLOAD_MANAGER
+
+ // Signal TestScripter to continue from waittestclass
+ Signal();
+
+#endif // USE_S60_DOWNLOAD_MANAGER
+
return KErrNone;
}
@@ -1311,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;
@@ -1321,7 +1384,7 @@
//
// Read in the expected download data
//
- TInt err = aItem.GetNextInt( expectedPdlState );
+ err = aItem.GetNextInt( expectedPdlState );
if ( err == KErrNone )
{
@@ -1369,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;
}
@@ -1549,6 +1622,8 @@
void
CVHPPTestClass::ProcessEvent( TCallbackEvent* aCallback )
{
+ MPX_ENTER_EXIT(_L("CVHPPTestClass::ProcessEvent"));
+
if ( iExpectedCallbackArray->Count() > 0 )
{
TCallbackEvent* expectedCallback = (*iExpectedCallbackArray)[0];
@@ -1724,51 +1799,6 @@
}
// -----------------------------------------------------------------------------
-// CVHPPTestClass::AlarmOnAndOff
-// -----------------------------------------------------------------------------
-//
-TInt
-CVHPPTestClass::AlarmAutoResume( CStifItemParser& aItem )
-{
- MPX_ENTER_EXIT(_L("CVHPPTestClass::AlarmOnAndOff()"));
- iLog->Log(_L("CVHPPTestClass::AlarmOnAndOff()"));
-
- TInt backgroundCmd = 0;
- TInt err = 0;//aItem.GetNextInt( backgroundCmd );
-
- err = AlarmOn(aItem);
-
- if ( err == KErrNone )
- {
- err = aItem.GetNextInt( backgroundCmd );
-
- //reset alarm
- RProperty::Set( KPSUidCoreApplicationUIs, KLightsAlarmLightActive, ELightsNotBlinking );
-
- if ( err == KErrNone )
- {
- TCallbackEvent* event = new TCallbackEvent;
- event->iError = 0;
- event->iData = 0;
- event->iEvent = EPPlaying;
- AddExpectedEvent( event );
-
- //auto resume if alarm off
- CMPXCommand* cmdPlay = CMPXCommand::NewL();
- CleanupStack::PushL( cmdPlay );
- cmdPlay->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
- cmdPlay->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXMediaIdVideoPlayback );
- cmdPlay->SetTObjectValueL<TInt>( KMPXMediaVideoPlaybackCommand, backgroundCmd );
- cmdPlay->SetTObjectValueL<TBool>( KMPXMediaVideoAppForeground, ETrue );
- iPlaybackPlugin->CommandL( *cmdPlay );
- CleanupStack::PopAndDestroy( cmdPlay );
- }
- }
-
- return err;
-}
-
-// -----------------------------------------------------------------------------
// CVHPPTestClass::PhoneCallRejected
// -----------------------------------------------------------------------------
//
@@ -2398,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<TBool>( KMPXCommandGeneralDoSync, ETrue );
+ cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId,
+ KMPXMediaIdVideoPlayback );
+ cmd->SetTObjectValueL<TInt>( KMPXMediaVideoPlaybackCommand, EPbCmdInitView );
+
+ iPlaybackPlugin->CommandL( *cmd );
+
+ TPtrC clipName( cmd->ValueText( KMPXMediaVideoPlaybackFileName ) );
+ TMPXVideoMode playbackMode = (TMPXVideoMode) cmd->ValueTObjectL<TInt>( 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
--- a/videoplayerapp/bwins/videoplayerengineu.def Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/bwins/videoplayerengineu.def Wed Jun 23 17:22:59 2010 +0100
@@ -50,4 +50,7 @@
?createPlayAndDetailsViews@QVideoPlayerEngine@@AAEXXZ @ 49 NONAME ; void QVideoPlayerEngine::createPlayAndDetailsViews(void)
?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)
--- a/videoplayerapp/eabi/videoplayerengineu.def Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/eabi/videoplayerengineu.def Wed Jun 23 17:22:59 2010 +0100
@@ -50,4 +50,7 @@
_ZN18QVideoPlayerEngine25createPlayAndDetailsViewsEv @ 49 NONAME
_ZN18QVideoPlayerEngine14setCurrentViewEv @ 50 NONAME
_ZNK13VideoServices8sortRoleEv @ 51 NONAME
+ _ZN18QVideoPlayerEngine20isPlayServiceInvokedEv @ 52 NONAME
+ _ZN18QVideoPlayerEngine10shouldExitEv @ 53 NONAME
+ _ZN18QVideoPlayerEngine28shouldActivateCollectionViewEv @ 54 NONAME
--- a/videoplayerapp/hbvideoplayer/hbvideoplayer.pro Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-#
-# 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: da1mmcf#16 %
-
-
-TARGET = videoplayer
-CONFIG += hb service
-TEMPLATE = app
-TRANSLATIONS += videos.ts
-
-symbian:
-{
- TARGET.CAPABILITY = ALL -DRM -TCB
- TARGET.EPOCHEAPSIZE = 0x20000 0x1600000
- TARGET.UID3 = 0x200211FE
-
- BLD_INF_RULES.prj_exports += "rom/hbvideoplayer.iby CORE_APP_LAYER_IBY_EXPORT_PATH(hbvideoplayer.iby)" \
- "rom/hbvideoplayerresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(hbvideoplayerresources.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=EDataTypePrioritySystem; type=\"audio/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\"; } " \
-" }; " \
--- a/videoplayerapp/hbvideoplayer/resources/service_conf.xml Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<service>
- <name>com.nokia.Videos</name>
- <filepath>No path</filepath>
- <description>Video services</description>
- <interface>
- <name>IVideoFetch</name>
- <version>1.0</version>
- <description>Interface to fetch video URI</description>
- </interface>
- <interface>
- <name>IVideoView</name>
- <version>1.0</version>
- <description>Interface to play a video</description>
- </interface>
- <interface>
- <name>com.nokia.symbian.IFileView</name>
- <version>1.0</version>
- <description>Interface for playing video given a QFile</description>
- </interface>
- <interface>
- <name>IVideoBrowse</name>
- <version>1.0</version>
- <description>Interface to browse categorized video content</description>
- </interface>
-</service>
--- a/videoplayerapp/hbvideoplayer/rom/hbvideoplayer.iby Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* 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: hbvideoplayer.iby
-*
-*/
-
-
-#ifndef __HBVIDEOPLAYER_IBY__
-#define __HBVIDEOPLAYER_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh>
-
-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 // __HBVIDEOPLAYER_IBY__
--- a/videoplayerapp/hbvideoplayer/rom/hbvideoplayerresources.iby Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* 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: hbvideoplayerresources.iby
-*
-*/
-
-
-#ifndef __HBVIDEOPLAYERRESOURCES_IBY__
-#define __HBVIDEOPLAYERRESOURCES_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh>
-
-S60_APP_RESOURCE(videoplayer)
-
-data=DATAZ_\QT_TRANSLATIONS_DIR\videos.qm QT_TRANSLATIONS_DIR\videos.qm
-
-#endif // __HBVIDEOPLAYERRESOURCES_IBY__
--- a/videoplayerapp/hbvideoplayer/sis/create_videoplayer_udeb_sisx.bat Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-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
--- a/videoplayerapp/hbvideoplayer/sis/create_videoplayer_urel_sisx.bat Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-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
--- a/videoplayerapp/hbvideoplayer/sis/videoplayer_stub.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-;
-; 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"
-
-
Binary file videoplayerapp/hbvideoplayer/sis/videoplayer_stub.sis has changed
--- a/videoplayerapp/hbvideoplayer/sis/videoplayer_udeb.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-;
-; 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"
--- a/videoplayerapp/hbvideoplayer/sis/videoplayer_urel.pkg Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-;
-; 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"
--- a/videoplayerapp/hbvideoplayer/src/main.cpp Tue May 18 11:57:40 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* 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: 9 %
-
-
-#include <QObject>
-#include <QTranslator>
-#include <QLocale>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <xqserviceutil.h>
-
-#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);
-
- // 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();
-}
--- a/videoplayerapp/inc/videoplayerengine.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/inc/videoplayerengine.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 12 %
+// Version : %version: 14 %
#ifndef VIDEOPLAYERENGINE_H
#define VIDEOPLAYERENGINE_H
@@ -80,11 +80,18 @@
void createPlayAndDetailsViews();
void setCurrentView();
+
+ bool isPlayServiceInvoked();
+
+ bool shouldExit();
+
+ bool shouldActivateCollectionView();
private:
bool mIsService;
bool mEmbedded;
bool mDelayedLoadDone;
+ bool mIsPlayService;
MpxViewPlugin* mCurrentViewPlugin;
MpxViewPlugin* mPlaybackViewPlugin;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/resources/service_conf.xml Wed Jun 23 17:22:59 2010 +0100
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<service>
+ <name>videoplayer</name>
+ <filepath>No path</filepath>
+ <description>Video services</description>
+ <interface>
+ <name>IVideoFetch</name>
+ <version>1.0</version>
+ <description>Interface to fetch video URI</description>
+ <customproperty key="deprecatedsn">Video Fetcher</customproperty>
+ </interface>
+ <interface>
+ <name>com.nokia.symbian.IVideoFetch</name>
+ <version>1.0</version>
+ <description>Interface to fetch video URI</description>
+ </interface>
+ <interface>
+ <name>IVideoBrowse</name>
+ <version>1.0</version>
+ <description>Interface to browse categorized video content</description>
+ <customproperty key="deprecatedsn">Video Browse</customproperty>
+ </interface>
+ <interface>
+ <name>com.nokia.symbian.IVideoBrowse</name>
+ <version>1.0</version>
+ <description>Interface to browse categorized video content</description>
+ </interface>
+ <interface>
+ <name>IVideoView</name>
+ <version>1.0</version>
+ <description>Interface to play a video</description>
+ <customproperty key="deprecatedsn">Video View</customproperty>
+ </interface>
+ <interface>
+ <name>com.nokia.symbian.IVideoView</name>
+ <version>1.0</version>
+ <description>Interface to play a video</description>
+ </interface>
+ <interface>
+ <name>com.nokia.symbian.IFileView</name>
+ <version>1.0</version>
+ <description>Interface for playing video given a QFile</description>
+ </interface>
+</service>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/rom/videoplayer.iby Wed Jun 23 17:22:59 2010 +0100
@@ -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 <bldvariant.hrh>
+#include <data_caging_paths_for_iby.hrh>
+
+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__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/rom/videoplayerresources.iby Wed Jun 23 17:22:59 2010 +0100
@@ -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 <bldvariant.hrh>
+#include <data_caging_paths_for_iby.hrh>
+
+S60_APP_RESOURCE(videoplayer)
+
+data=DATAZ_\QT_TRANSLATIONS_DIR\videos.qm QT_TRANSLATIONS_DIR\videos.qm
+
+#endif // __VIDEOPLAYERRESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/sis/create_videoplayer_udeb_sisx.bat Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/sis/create_videoplayer_urel_sisx.bat Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/sis/videoplayer_stub.pkg Wed Jun 23 17:22:59 2010 +0100
@@ -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"
+
+
Binary file videoplayerapp/videoplayer/sis/videoplayer_stub.sis has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/sis/videoplayer_udeb.pkg Wed Jun 23 17:22:59 2010 +0100
@@ -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"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/sis/videoplayer_urel.pkg Wed Jun 23 17:22:59 2010 +0100
@@ -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"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/src/main.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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 <QObject>
+#include <QTranslator>
+#include <QLocale>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <xqserviceutil.h>
+
+#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();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayer/videoplayer.pro Wed Jun 23 17:22:59 2010 +0100
@@ -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\"; } " \
+" }; " \
--- a/videoplayerapp/videoplayerapp.pro Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerapp.pro Wed Jun 23 17:22:59 2010 +0100
@@ -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
--- a/videoplayerapp/videoplayerengine/inc/videoservicebrowse.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/inc/videoservicebrowse.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 4 %
#ifndef VIDEOSERVICEBROWSE_H
#define VIDEOSERVICEBROWSE_H
@@ -25,13 +25,14 @@
// FORWARD DECLARATIONS
class VideoServices;
+class QLatin1String;
class VideoServiceBrowse : public XQServiceProvider
{
Q_OBJECT
public:
- VideoServiceBrowse( VideoServices *parent = 0 );
+ VideoServiceBrowse( VideoServices *parent, QLatin1String service );
~VideoServiceBrowse();
public:
@@ -68,6 +69,14 @@
*/
int sortRole() const;
+ /**
+ * Returns service active status
+ *
+ * @return bool true if active, false if not active
+ *
+ */
+ bool isActive();
+
public slots:
/**
@@ -80,6 +89,15 @@
*/
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;
--- a/videoplayerapp/videoplayerengine/inc/videoserviceplay.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/inc/videoserviceplay.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: da1mmcf#2 %
#ifndef __VIDEOSERVICEPLAY_H__
#define __VIDEOSERVICEPLAY_H__
@@ -26,6 +26,7 @@
// FORWARD DECLARATIONS
class VideoServices;
class QVideoPlayerEngine;
+class QLatin1String;
class VideoServicePlay : public XQServiceProvider
{
@@ -33,7 +34,7 @@
Q_OBJECT
public:
- VideoServicePlay( VideoServices* parent, QVideoPlayerEngine* engine );
+ VideoServicePlay( VideoServices *parent, QVideoPlayerEngine* engine, QLatin1String service );
virtual ~VideoServicePlay();
void setEngine( QVideoPlayerEngine* engine );
--- a/videoplayerapp/videoplayerengine/inc/videoserviceurifetch.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/inc/videoserviceurifetch.h Wed Jun 23 17:22:59 2010 +0100
@@ -24,6 +24,7 @@
// FORWARD DECLARATIONS
class VideoServices;
+class QLatin1String;
class VideoServiceUriFetch : public XQServiceProvider
{
@@ -38,7 +39,7 @@
/**
* contructor
*/
- VideoServiceUriFetch( VideoServices *parent = 0 );
+ VideoServiceUriFetch( VideoServices *parent, QLatin1String service );
/**
* destructor
@@ -73,6 +74,12 @@
/*
* 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
*
*/
--- a/videoplayerapp/videoplayerengine/inc/videoserviceview.h Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/inc/videoserviceview.h Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 1 %
+// Version : %version: 2 %
#ifndef __VIDEOSERVICEVIEW_H__
#define __VIDEOSERVICEVIEW_H__
@@ -28,6 +28,7 @@
class VideoServices;
class QVideoPlayerEngine;
class QFile;
+class QLatin1String;
class VideoServiceView : public XQServiceProvider
{
@@ -35,7 +36,7 @@
Q_OBJECT
public:
- VideoServiceView( VideoServices* parent, QVideoPlayerEngine* engine );
+ VideoServiceView( VideoServices *parent, QVideoPlayerEngine* engine, QLatin1String service );
virtual ~VideoServiceView();
void setEngine( QVideoPlayerEngine* engine );
--- a/videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/src/mpxvideoplaybackwrapper.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -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);
}
// -------------------------------------------------------------------------------------------------
--- a/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 27 %
+// Version : %version: da1mmcf#31 %
#include <QApplication>
@@ -39,6 +39,7 @@
: mIsService( isService )
, mEmbedded( false )
, mDelayedLoadDone( false )
+ , mIsPlayService( false )
, mCurrentViewPlugin( 0 )
, mPlaybackViewPlugin( 0 )
, mCollectionViewPlugin( 0 )
@@ -120,25 +121,22 @@
QList<XQPluginInfo> impls;
XQPluginLoader::listImplementations("org.nokia.mmdt.MpxViewPlugin/1.0", impls);
-
- //
- // Pre-load collection plugin and create collection view
- //
- loadPluginAndCreateView( MpxHbVideoCommon::CollectionView );
-
- //
- // if app is opened via serviceFW create remaining views
- // otherwise activate default view i.e. the collection view.
- //
- if ( mIsService )
+
+ if ( isPlayServiceInvoked() )
{
createPlayAndDetailsViews();
}
else
- {
- activateView( MpxHbVideoCommon::CollectionView );
+ {
+ loadPluginAndCreateView( MpxHbVideoCommon::CollectionView );
+
+ if((mIsService && !(XQServiceUtil::interfaceName().contains("IVideoBrowse"))) || !mIsService)
+ {
+ //Browse service will activate view once the category to be opened is informed from highway
+ activateView( MpxHbVideoCommon::CollectionView );
+ }
}
-
+
}
// -------------------------------------------------------------------------------------------------
@@ -224,7 +222,9 @@
loadPluginAndCreateView( MpxHbVideoCommon::PlaybackView );
}
- if ( ! mFileDetailsViewPlugin )
+ // details view need not be created for playback via serviceFW
+ if ( ! mIsPlayService &&
+ ! mFileDetailsViewPlugin )
{
loadPluginAndCreateView( MpxHbVideoCommon::VideoDetailsView );
}
@@ -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;
+ }
+ }
}
// -------------------------------------------------------------------------------------------------
@@ -492,5 +487,72 @@
}
}
+// -------------------------------------------------------------------------------------------------
+// isPlayServiceInvoked()
+// -------------------------------------------------------------------------------------------------
+//
+bool QVideoPlayerEngine::isPlayServiceInvoked()
+{
+ MPX_ENTER_EXIT(_L("QVideoPlayerEngine::isPlayServiceInvoked()"));
+
+ bool result = false;
+
+ if ( mIsService )
+ {
+ QString intface = XQServiceUtil::interfaceName();
+
+ if ( intface.contains("IVideoView") ||
+ intface.contains("IFileView") )
+ {
+ result = true;
+ mIsPlayService = true;
+ }
+ }
+
+ 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
--- a/videoplayerapp/videoplayerengine/src/videoservicebrowse.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/src/videoservicebrowse.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 4 %
#include <hbapplication.h>
@@ -23,13 +23,14 @@
#include "videoservicebrowse.h"
#include "mpxhbvideocommondefs.h"
#include "mpxvideo_debug.h"
+#include <xqaiwdecl.h>
// -------------------------------------------------------------------------------------------------
// VideoServiceBrowse()
// -------------------------------------------------------------------------------------------------
//
-VideoServiceBrowse::VideoServiceBrowse( VideoServices* parent )
- : XQServiceProvider( QLatin1String("com.nokia.Videos.IVideoBrowse"), parent )
+VideoServiceBrowse::VideoServiceBrowse(VideoServices* parent, QLatin1String service)
+ : XQServiceProvider( service, parent )
, mRequestIndex( 0 )
, mServiceApp( parent )
, mCategory( 0 )
@@ -128,14 +129,67 @@
mCategory = category;
mSortRole = sortRole;
+ // store async request id
+ mRequestIndex = setCurrentRequestAsync();
+
// start service
mServiceApp->setCurrentService(VideoServices::EBrowse);
emit mServiceApp->titleReady(appTitle);
emit mServiceApp->activated(MpxHbVideoCommon::ActivateCollectionView);
- // store async request id
- mRequestIndex = setCurrentRequestAsync();
MPX_DEBUG(_L("VideoServiceBrowse::browseVideos() : mRequestIndex = %d"), mRequestIndex );
}
+// ----------------------------------------------------------------------------
+// isActive()
+// ----------------------------------------------------------------------------
+//
+bool VideoServiceBrowse::isActive()
+{
+ MPX_DEBUG(_L("VideoServiceBrowse::isActive() ret %d"), mRequestIndex );
+
+ return (mRequestIndex > 0);
+}
+
+// -------------------------------------------------------------------------------------------------
+// browseVideos()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoServiceBrowse::browseVideos(int category, int sortRole)
+{
+ MPX_ENTER_EXIT(_L("VideoServiceBrowse::browseVideos()"));
+
+ // set application title
+ XQRequestInfo info = requestInfo();
+
+ QVariant variant = info.info("WindowTitle");
+
+ QString appTitle;
+
+ if(variant.isValid())
+ {
+ appTitle = variant.toString();
+ }
+
+ if (appTitle.isEmpty())
+ {
+ appTitle = hbTrId("txt_videos_title_videos");
+ }
+
+ mTitle = appTitle;
+ mCategory = category;
+ mSortRole = sortRole;
+
+ // store async request id
+ mRequestIndex = setCurrentRequestAsync();
+
+ // start service
+ mServiceApp->setCurrentService(VideoServices::EBrowse);
+ emit mServiceApp->titleReady(appTitle);
+ emit mServiceApp->activated(MpxHbVideoCommon::ActivateCollectionView);
+
+ MPX_DEBUG(_L("VideoServiceBrowse::browseVideos() : mRequestIndex = %d"), mRequestIndex );
+}
+
+
// End of file
--- a/videoplayerapp/videoplayerengine/src/videoserviceplay.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/src/videoserviceplay.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: %
+// Version : %version: da1mmcf#5 %
#include "videoservices.h"
#include "videoserviceplay.h"
@@ -27,8 +27,10 @@
// VideoServicePlay()
// -------------------------------------------------------------------------------------------------
//
-VideoServicePlay::VideoServicePlay( VideoServices* parent, QVideoPlayerEngine* engine )
- : XQServiceProvider( QLatin1String("com.nokia.Videos.IVideoView"), parent )
+VideoServicePlay::VideoServicePlay( VideoServices* parent,
+ QVideoPlayerEngine* engine,
+ QLatin1String service )
+ : XQServiceProvider( service, parent )
, mEngine( engine )
, mServiceApp( parent )
{
--- a/videoplayerapp/videoplayerengine/src/videoservices.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/src/videoservices.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 6 %
+// Version : %version: da1mmcf#8 %
#include "videoplayerengine.h"
#include "videoservices.h"
@@ -24,6 +24,8 @@
#include "videoserviceview.h"
#include "videoservicebrowse.h"
#include "mpxvideo_debug.h"
+#include <xqaiwdecl.h>
+#include <xqserviceutil.h>
VideoServices *VideoServices::mInstance = 0;
@@ -110,11 +112,23 @@
, mFetchSelected( false )
{
MPX_ENTER_EXIT(_L("VideoServices::VideoServices()"));
+
+ mServicePlay = new VideoServicePlay(this, engine, QLatin1String("videoplayer.com.nokia.symbian.IVideoView")); //New service, new interface
+ mServiceView = new VideoServiceView(this, engine, QLatin1String("videoplayer.com.nokia.symbian.IFileView")); //New service, new interface
+ mServiceUriFetch = new VideoServiceUriFetch(this, QLatin1String("videoplayer.com.nokia.symbian.IVideoFetch")); //New service, new interface
+ mServiceBrowse = new VideoServiceBrowse( this, QLatin1String("videoplayer.com.nokia.symbian.IVideoBrowse")); //New service, new interface
+
+ mServicePlayDeprecatedNewService = new VideoServicePlay(this, engine, QLatin1String("videoplayer.IVideoView")); //New service, old interface
+ mServicePlayDeprecatedOldService = new VideoServicePlay(this, engine, QLatin1String("com.nokia.Videos.IVideoView")); //Old service, old interface
- mServiceUriFetch = new VideoServiceUriFetch(this);
- mServicePlay = new VideoServicePlay(this, engine);
- mServiceView = new VideoServiceView(this, engine);
- mServiceBrowse = new VideoServiceBrowse(this);
+ mServiceViewDeprecatedNewService = new VideoServiceView(this, engine, QLatin1String("videoplayer.IFileView")); //New service, old interface
+ mServiceViewDeprecatedOldService = new VideoServiceView(this, engine, QLatin1String("com.nokia.Videos.IFileView")); //Old service, old interface
+
+ mServiceUriFetchDeprecatedNewService = new VideoServiceUriFetch(this, QLatin1String("videoplayer.IVideoFetch")); //New service, old interface
+ mServiceUriFetchDeprecatedOldService = new VideoServiceUriFetch(this, QLatin1String("com.nokia.Videos.IVideoFetch")); //Old service, old interface
+
+ mServiceBrowseDeprecatedNewService = new VideoServiceBrowse(this, QLatin1String("videoplayer.IVideoBrowse")); //New service, old interface
+ mServiceBrowseDeprecatedOldService = new VideoServiceBrowse(this, QLatin1String("com.nokia.Videos.IVideoBrowse")); //Old service, old interface
}
// ----------------------------------------------------------------------------
@@ -129,6 +143,14 @@
delete mServicePlay;
delete mServiceView;
delete mServiceBrowse;
+ delete mServicePlayDeprecatedNewService;
+ delete mServicePlayDeprecatedOldService;
+ delete mServiceViewDeprecatedNewService;
+ delete mServiceViewDeprecatedOldService;
+ delete mServiceBrowseDeprecatedNewService;
+ delete mServiceUriFetchDeprecatedNewService;
+ delete mServiceBrowseDeprecatedOldService;
+ delete mServiceUriFetchDeprecatedOldService;
}
// ----------------------------------------------------------------------------
@@ -151,12 +173,23 @@
MPX_DEBUG(_L("VideoServices::getBrowseCategory()"));
int category = 0;
-
- if ( mServiceBrowse )
+
+ if ( mServiceBrowse && (XQServiceUtil::interfaceName().contains("symbian")))
{
category = mServiceBrowse->getBrowseCategory();
}
-
+ else if ( mServiceBrowseDeprecatedNewService && mServiceBrowseDeprecatedOldService && !(XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ if (mServiceBrowseDeprecatedNewService->isActive())
+ {
+ category = mServiceBrowseDeprecatedNewService->getBrowseCategory();
+ }
+ else
+ {
+ category = mServiceBrowseDeprecatedOldService->getBrowseCategory();
+ }
+ }
+
return category;
}
@@ -180,14 +213,42 @@
MPX_DEBUG(_L("VideoServices::contextTitle()") );
QString title;
-
- if (mCurrentService == VideoServices::EUriFetcher && mServiceUriFetch)
+
+ if (mCurrentService == VideoServices::EUriFetcher)
{
- title = mServiceUriFetch->contextTitle();
+ if(mServiceUriFetch && (XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ title = mServiceUriFetch->contextTitle();
+ }
+ else if (mServiceUriFetchDeprecatedNewService && mServiceUriFetchDeprecatedOldService && !(XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ if(mServiceUriFetchDeprecatedNewService->isActive())
+ {
+ title = mServiceUriFetchDeprecatedNewService->contextTitle();
+ }
+ else
+ {
+ title = mServiceUriFetchDeprecatedOldService->contextTitle();
+ }
+ }
}
- else if (mCurrentService == VideoServices::EBrowse && mServiceBrowse)
+ else if (mCurrentService == VideoServices::EBrowse)
{
- title = mServiceBrowse->contextTitle();
+ if ( mServiceBrowse && (XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ title = mServiceBrowse->contextTitle();
+ }
+ else if ( mServiceBrowseDeprecatedNewService && mServiceBrowseDeprecatedOldService && !(XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ if (mServiceBrowseDeprecatedNewService->isActive())
+ {
+ title = mServiceBrowseDeprecatedNewService->contextTitle();
+ }
+ else
+ {
+ title = mServiceBrowseDeprecatedOldService->contextTitle();
+ }
+ }
}
return title;
@@ -202,10 +263,24 @@
MPX_ENTER_EXIT(_L("VideoServices::sortType()"));
int sortRole = 0;
-
- if (mCurrentService == EBrowse && mServiceBrowse)
+
+ if (mCurrentService == EBrowse)
{
- sortRole = mServiceBrowse->sortRole();
+ if ( mServiceBrowse && (XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ sortRole = mServiceBrowse->sortRole();
+ }
+ else if ( mServiceBrowseDeprecatedNewService && mServiceBrowseDeprecatedOldService && !(XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ if (mServiceBrowseDeprecatedNewService->isActive())
+ {
+ sortRole = mServiceBrowseDeprecatedNewService->sortRole();
+ }
+ else
+ {
+ sortRole = mServiceBrowseDeprecatedOldService->sortRole();
+ }
+ }
}
return sortRole;
@@ -222,7 +297,22 @@
QStringList list;
list.append( item );
- mServiceUriFetch->complete( list );
+
+ if(mServiceUriFetch && (XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ mServiceUriFetch->complete( list );
+ }
+ else if (mServiceUriFetchDeprecatedNewService && mServiceUriFetchDeprecatedOldService)
+ {
+ if (mServiceUriFetchDeprecatedNewService->isActive())
+ {
+ mServiceUriFetchDeprecatedNewService->complete( list );
+ }
+ else
+ {
+ mServiceUriFetchDeprecatedOldService->complete( list );
+ }
+ }
mFetchSelected = true;
}
@@ -233,11 +323,22 @@
void VideoServices::browsingEnded()
{
MPX_ENTER_EXIT(_L("VideoServices::browsingEnded()"));
-
- if ( mServiceBrowse )
- {
- mServiceBrowse->complete();
- }
+
+ if ( mServiceBrowse && (XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ mServiceBrowse->complete();
+ }
+ else if ( mServiceBrowseDeprecatedNewService && mServiceBrowseDeprecatedOldService && !(XQServiceUtil::interfaceName().contains("symbian")))
+ {
+ if (mServiceBrowseDeprecatedNewService->isActive())
+ {
+ mServiceBrowseDeprecatedNewService->complete();
+ }
+ else
+ {
+ mServiceBrowseDeprecatedOldService->complete();
+ }
+ }
}
// End of file
--- a/videoplayerapp/videoplayerengine/src/videoserviceurifetch.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/src/videoserviceurifetch.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: %
+// Version : %version: 5 %
#include <hbapplication.h>
@@ -23,14 +23,15 @@
#include "videoserviceurifetch.h"
#include "mpxhbvideocommondefs.h"
#include "mpxvideo_debug.h"
+#include <xqaiwdecl.h>
// ----------------------------------------------------------------------------
// VideoServiceUriFetch()
// ----------------------------------------------------------------------------
//
-VideoServiceUriFetch::VideoServiceUriFetch(VideoServices* parent)
- : XQServiceProvider( QLatin1String("com.nokia.Videos.IVideoFetch"), parent )
+VideoServiceUriFetch::VideoServiceUriFetch(VideoServices* parent, QLatin1String service)
+ : XQServiceProvider( service, parent )
, mRequestIndex( 0 )
, mServiceApp( parent )
{
@@ -125,14 +126,52 @@
// fetch()
// ----------------------------------------------------------------------------
//
+void VideoServiceUriFetch::fetch()
+{
+ MPX_ENTER_EXIT(_L("VideoServiceUriFetch::fetch()"));
+
+ emit mServiceApp->activated(MpxHbVideoCommon::ActivateCollectionView);
+
+ XQRequestInfo info = requestInfo();
+
+ QVariant variant = info.info("WindowTitle");
+
+ if(variant.isValid())
+ {
+ mTitle = variant.toString();
+ }
+
+ if (mTitle.isEmpty())
+ {
+ mTitle = hbTrId("txt_videos_title_videos");
+ }
+
+ emit mServiceApp->titleReady(mTitle);
+ mServiceApp->setCurrentService(VideoServices::EUriFetcher);
+
+ mRequestIndex = setCurrentRequestAsync();
+ MPX_DEBUG(_L("VideoServiceUriFetch::fetch() : mRequestIndex(%d)"), mRequestIndex );
+}
+
+// ----------------------------------------------------------------------------
+// fetch()
+// ----------------------------------------------------------------------------
+//
void VideoServiceUriFetch::fetch(const QString& title)
{
- MPX_ENTER_EXIT(_L("VideoServiceUriFetch::fetch()"),
+ MPX_ENTER_EXIT(_L("VideoServiceUriFetch::fetch()"),
_L("title = %s"), title.data() );
+ emit mServiceApp->activated(MpxHbVideoCommon::ActivateCollectionView);
+
mTitle = title;
- emit mServiceApp->activated(MpxHbVideoCommon::ActivateCollectionView);
- emit mServiceApp->titleReady(title);
+
+ if (mTitle.isEmpty())
+ {
+ mTitle = hbTrId("txt_videos_title_videos");
+ }
+
+ emit mServiceApp->titleReady(mTitle);
mServiceApp->setCurrentService(VideoServices::EUriFetcher);
--- a/videoplayerapp/videoplayerengine/src/videoserviceview.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/src/videoserviceview.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 4 %
#include "videoservices.h"
#include "videoserviceview.h"
@@ -26,8 +26,10 @@
// VideoServiceView()
// -------------------------------------------------------------------------------------------------
//
-VideoServiceView::VideoServiceView( VideoServices* parent, QVideoPlayerEngine* engine )
- : XQServiceProvider( QLatin1String("com.nokia.Videos.com.nokia.symbian.IFileView"), parent )
+VideoServiceView::VideoServiceView( VideoServices* parent,
+ QVideoPlayerEngine* engine,
+ QLatin1String service )
+ : XQServiceProvider( service, parent )
, mEngine( engine )
, mServiceApp( parent )
{
--- a/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/src/testvideoplayerengine.cpp Tue May 18 11:57:40 2010 +0100
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/src/testvideoplayerengine.cpp Wed Jun 23 17:22:59 2010 +0100
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: %
+// Version : %version: da1mmcf#13 %
// INCLUDES
#include <QtTest/QtTest>
@@ -97,6 +97,13 @@
mVideoServices = 0;
mTestObject = new QVideoPlayerEngine(isService);
+
+ if ( isService )
+ {
+ mTestObject->mIsPlayService = true;
+ }
+
+
}
void TestVideoPlayerEngine::cleanup()
@@ -216,15 +223,14 @@
QVERIFY(mTestObject->mCurrentViewPlugin == 0);
QVERIFY(mTestObject->mPlaybackViewPlugin != 0);
- QVERIFY(mTestObject->mCollectionViewPlugin != 0);
- QVERIFY(mTestObject->mFileDetailsViewPlugin != 0);
+ QVERIFY(mTestObject->mCollectionViewPlugin == 0);
+ QVERIFY(mTestObject->mFileDetailsViewPlugin == 0);
QVERIFY(mTestObject->mPlaybackWrapper != 0);
QVERIFY(mTestObject->mVideoServices != 0);
QVERIFY(mTestObject->mIsService == true);
QVERIFY(VideoServices::mReferenceCount == 1);
QVERIFY(mTestObject->mCollectionViewPlugin != mTestObject->mPlaybackViewPlugin);
- QVERIFY(mTestObject->mCollectionViewPlugin != mTestObject->mFileDetailsViewPlugin);
cleanup();
@@ -293,8 +299,8 @@
QVERIFY(mTestObject->mCurrentViewPlugin == 0);
QVERIFY(mTestObject->mPlaybackViewPlugin != 0);
- QVERIFY(mTestObject->mCollectionViewPlugin != 0);
- QVERIFY(mTestObject->mFileDetailsViewPlugin != 0);
+ QVERIFY(mTestObject->mCollectionViewPlugin == 0);
+ QVERIFY(mTestObject->mFileDetailsViewPlugin == 0);
QVERIFY(mTestObject->mVideoServices != 0);
QVERIFY(mTestObject->mIsService == true);
QVERIFY(VideoServices::mReferenceCount == 1);