Revision: 201007 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 12 Mar 2010 15:43:00 +0200
branchRCL_3
changeset 8 ce5ada96ab30
parent 6 7d91903f795f
child 9 5294c000a26d
Revision: 201007 Kit: 201008
filedetails/filedetailsdialog/src/MPFileDetailsDialog.cpp
group/bld.inf
inc/IptvDebug.h
inc/mpxvideoplayercustomviewmsgconsts.h
layers.sysdef.xml
mediasettings/group/bld.inf
mediasettings/gsvideoplugin/group/gsvideoplugin.mmp
mediasettings/gsvideoplugin/inc/GSMediaPlayerStreamingView.h
mediasettings/gsvideoplugin/inc/GSVideoPlugin.h
mediasettings/gsvideoplugin/src/GSMediaPlayerStreamingView.cpp
mediasettings/gsvideoplugin/src/GSVideoPlugin.cpp
mediasettings/mediasettingsapp/data/MediaSettings.rss
mediasettings/mediasettingsapp/group/mediasettingsapp.mmp
mediasettings/mediasettingsapp/inc/MPSettingsAdvancedBwSettingItem.h
mediasettings/mediasettingsapp/inc/MPSettingsAppUi.h
mediasettings/mediasettingsapp/inc/MPSettingsConstants.h
mediasettings/mediasettingsapp/inc/MPSettingsStreamingContainer.h
mediasettings/mediasettingsapp/inc/MPSettingsStreamingSettingItemList.h
mediasettings/mediasettingsapp/inc/MPSettingsStreamingView.h
mediasettings/mediasettingsapp/inc/MPSettingsVideoSettingItemList.h
mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwContainer.cpp
mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwSettingItem.cpp
mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwView.cpp
mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp
mediasettings/mediasettingsapp/src/MPSettingsMainContainer.cpp
mediasettings/mediasettingsapp/src/MPSettingsMainView.cpp
mediasettings/mediasettingsapp/src/MPSettingsStreamingContainer.cpp
mediasettings/mediasettingsapp/src/MPSettingsStreamingSettingItemList.cpp
mediasettings/mediasettingsapp/src/MPSettingsStreamingView.cpp
mediasettings/mediasettingsapp/src/MPSettingsVideoSettingItemList.cpp
mediasettings/mediasettingsengine/src/MPSettingsModelForROP.cpp
tsrc/conf/ats_moduletests.txt
tsrc/group/bld.inf
tsrc/testing/sis/fusion_engine_tests.pkg
tsrc/testing/sis/make_engine_test_sis.cmd
videocollection/hgmyvideos/conf/hgmyvideos.confml
videocollection/hgmyvideos/conf/hgmyvideos_20021191.crml
videocollection/hgmyvideos/data/vcxhgmyvideos.rss
videocollection/hgmyvideos/group/bld.inf
videocollection/hgmyvideos/group/vcxhgmyvideos.mmp
videocollection/hgmyvideos/icons/qgn_prop_captured_thumbnail_video.svg
videocollection/hgmyvideos/icons/qgn_prop_download_thumbnail_video.svg
videocollection/hgmyvideos/icons/qgn_prop_ovi_thumbnail_video.svg
videocollection/hgmyvideos/icons/qgn_prop_recent_thumbnail_video.svg
videocollection/hgmyvideos/icons/qgn_prop_service_thumbnail_video.svg
videocollection/hgmyvideos/inc/CIptvDriveMonitor.h
videocollection/hgmyvideos/inc/CIptvResourceLoader.h
videocollection/hgmyvideos/inc/MIptvDriveMonitorObserver.h
videocollection/hgmyvideos/inc/TIptvDriveInfo.h
videocollection/hgmyvideos/inc/TIptvDriveMonitorEvent.h
videocollection/hgmyvideos/inc/vcxhgmyvideos.hrh
videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelhandler.h
videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelobserver.h
videocollection/hgmyvideos/inc/vcxhgmyvideoscenrepkeys.h
videocollection/hgmyvideos/inc/vcxhgmyvideoscollectionclient.h
videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h
videocollection/hgmyvideos/inc/vcxhgmyvideosmainview.h
videocollection/hgmyvideos/inc/vcxhgmyvideosmodel.h
videocollection/hgmyvideos/inc/vcxhgmyvideosthumbnailmanager.h
videocollection/hgmyvideos/inc/vcxhgmyvideosvideodata.h
videocollection/hgmyvideos/inc/vcxhgmyvideosvideodataupdater.h
videocollection/hgmyvideos/inc/vcxhgmyvideosvideolistimpl.h
videocollection/hgmyvideos/inc/vcxhgmyvideosvideomodelhandler.h
videocollection/hgmyvideos/src/CIptvDriveMonitor.cpp
videocollection/hgmyvideos/src/CIptvResourceLoader.cpp
videocollection/hgmyvideos/src/TIptvDriveInfo.cpp
videocollection/hgmyvideos/src/TIptvDriveMonitorEvent.cpp
videocollection/hgmyvideos/src/vcxhgmyvideoscategorylistimpl.cpp
videocollection/hgmyvideos/src/vcxhgmyvideoscategorymodelhandler.cpp
videocollection/hgmyvideos/src/vcxhgmyvideoscollectionclient.cpp
videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp
videocollection/hgmyvideos/src/vcxhgmyvideosmodel.cpp
videocollection/hgmyvideos/src/vcxhgmyvideosthumbnailmanager.cpp
videocollection/hgmyvideos/src/vcxhgmyvideosvideodataupdater.cpp
videocollection/hgmyvideos/src/vcxhgmyvideosvideodetailsdialog.cpp
videocollection/hgmyvideos/src/vcxhgmyvideosvideolistimpl.cpp
videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp
videocollection/hgmyvideos/tsrc/ut_vcxhgmyvideosmainview/conf/ui_VcxHgMyVideosMainViewTest.cfg
videocollection/hgmyvideosplugin/group/vcxhgmyvideosplugin.mmp
videocollection/mpxmyvideoscollection/conf/videoscollection.confml
videocollection/mpxmyvideoscollection/conf/videoscollection_2001B2A9.crml
videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h
videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp
videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp
videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp
videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp
videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp
videofeeds/group/bld.inf
videofeeds/vccommon/loc/ipvideo.loc
videoplayback/inc/mpxvideobaseplaybackview.h
videoplayback/inc/mpxvideoplaybackdisplayhandler.h
videoplayback/inc/mpxvideoplaybackuserinputhandler.h
videoplayback/inc/mpxvideoplaybackviewfiledetails.h
videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h
videoplayback/videohelix/inc/mpxvideoplayerutility.h
videoplayback/videohelix/src/mpxvideoaccessoryobserver.cpp
videoplayback/videohelix/src/mpxvideohelixplayback.cpp
videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp
videoplayback/videohelix/src/mpxvideoplaybackmode.cpp
videoplayback/videohelix/src/mpxvideoplayerutility.cpp
videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg
videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoaccessoryobserver_stub.h
videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h
videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h
videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoaccessoryobserver_stub.cpp
videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp
videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp
videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp
videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/bwins/ui_videoplaybackcontrolstestu.def
videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/eabi/ui_videoplaybackcontrolstestu.def
videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp
videoplayback/videoplaybackviews/bwins/mpxvideoplaybackviewsu.def
videoplayback/videoplaybackviews/eabi/mpxvideoplaybackviewsu.def
videoplayback/videoplaybackviews/group/mpxvideoplaybackviews.mmp
videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp
videoplayback/videoplaybackviews/src/mpxvideopdlplaybackview.cpp
videoplayback/videoplaybackviews/src/mpxvideoplaybackdisplayhandler.cpp
videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp
videoplayback/videoplaybackviews/src/mpxvideoplaybackviewfiledetails.cpp
videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/conf/ui_userinputhandlertest.cfg
videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/inc/hal_stub.h
videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/hal_stub.cpp
videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/userinputhandlertestBlocks.cpp
videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest.cfg
videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest2.cfg
videoplayer_plat/videoplayer_startup_api/tsrc/group/VideoPlayerStartupApiTest.mmp
videoplayer_plat/videoplayer_startup_api/tsrc/inc/VideoPlayerStartupApiTest.h
videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTest.cpp
videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTestBlocks.cpp
videoplayerapp/group/bld.inf
videoplayerapp/lwplayer/src/lwplayerappui.cpp
videoplayerapp/mpxvideoplayer/data/mpxvideoplayer_reg.rss
videoplayerapp/mpxvideoplayer/group/mpxvideoplayer.mmp
videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappui.h
videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappuiengine.h
videoplayerapp/mpxvideoplayer/sis/VideoPlayer.pkg
videoplayerapp/mpxvideoplayer/src/mpxvideoembeddedpdlhandler.cpp
videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp
videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappuiengine.cpp
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/bwins/mpxvideoplayertestu.def
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/conf/mpxvideoplayertest.cfg
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/eabi/mpxvideoplayertestu.def
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/group/mpxvideoplayertest.mmp
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayer_appuienginetester.h
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayertest.h
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayer_appuienginetester.cpp
videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayertestblocks.cpp
--- a/filedetails/filedetailsdialog/src/MPFileDetailsDialog.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/filedetails/filedetailsdialog/src/MPFileDetailsDialog.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 18 %
+// Version : %version: 19 %
 
 // INCLUDE FILES
 #include <aknlists.h>
@@ -154,7 +154,7 @@
         {
         iPopupList->CancelPopup();
         }
-
+    delete iPopupList;  // cause removal from control stack
     delete iListBox;
     delete iGenres;
     UnLoadResources();
@@ -514,7 +514,6 @@
     if ( err && iPopupList )
     {
         iPopupList->CancelPopup();
-        iPopupList = NULL;
     }
 
     delete this;
--- a/group/bld.inf	Fri Feb 19 22:52:52 2010 +0200
+++ b/group/bld.inf	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 30 %
+// Version : %version: 31 %
 
 
 #include <bldvariant.hrh>
@@ -37,21 +37,6 @@
 #include "../videocollection/group/bld.inf"
 
 /**
- * Homescreen plugins: suite configuration
- */
-#include "../homescreenplugins/videosuiteconf/group/bld.inf"
-
-/**
- * Homescreen plugins: action handler
- */
-#include "../homescreenplugins/videoahlplugin/group/bld.inf"
-
-/**
- * Homescreen plugins: content harvester plugin
- */
-#include "../homescreenplugins/videochplugin/group/bld.inf"
-
-/**
  * Mediasettings
  */
 #include "../mediasettings/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/IptvDebug.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,306 @@
+/*
+* Copyright (c) 2004-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Helper class for serial or file tracing of Video Center.*
+*/
+
+
+
+
+#ifndef IPTVDEBUG_H
+#define IPTVDEBUG_H
+
+#include <flogger.h>
+
+// Define logging level here
+
+// Minimum log output
+#define IPTV_HIGH_LEVEL_TRACES
+
+// Medium log output
+#define IPTV_MIDDLE_LEVEL_TRACES
+
+// Maximum log output
+#define IPTV_LOW_LEVEL_TRACES
+
+
+/*
+-----------------------------------------------------------------------------
+
+	LOGGING MACROs
+
+	USE THESE MACROS IN YOUR CODE
+
+	Usage:
+	
+	Example: IPTVLOGSTRING_HIGH_LEVEL ("Test");
+	Example: IPTVLOGSTRING2_HIGH_LEVEL ("Test %d", aValue);
+	Example: IPTVLOGSTRING3_HIGH_LEVEL ("Test %d %d", aValue1, aValue2);
+	Example: IPTVLOGSTRING4_HIGH_LEVEL ("Test %d %d %d", aValue1, aValue2, aValue3);
+
+	Example: IPTV_LOG_STR_DESC_HIGH_LEVEL (own_desc);
+	Example: IPTV_LOG_STR_DESC2_HIGH_LEVEL (own_desc, aValue));
+	Example: IPTV_LOG_STR_DESC3_HIGH_LEVEL (own_desc, aValue, aValue2);
+	Example: IPTV_LOG_STR_DESC4_HIGH_LEVEL (own_desc, aValue, aValue2, aValue3);
+
+-----------------------------------------------------------------------------
+*/
+
+
+#ifdef IPTV_HIGH_LEVEL_TRACES
+
+#define IPTVLOGTEXT_HIGH_LEVEL(AAAA)   IPTV_LOGTEXT(AAAA)
+#define IPTVLOGSTRING_HIGH_LEVEL(AAAA) 	IPTV_LOGSTRING(AAAA) 
+#define IPTVLOGSTRING2_HIGH_LEVEL(AAAA,BBBB) 	IPTV_LOGSTRING2(AAAA,BBBB) 
+#define IPTVLOGSTRING3_HIGH_LEVEL(AAAA,BBBB,CCCC)   IPTV_LOGSTRING3(AAAA,BBBB,CCCC) 
+#define IPTVLOGSTRING4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD)   IPTV_LOGSTRING4(AAAA,BBBB,CCCC,DDDD) 
+
+#define IPTV_LOG_STR_DESC_HIGH_LEVEL(AAAA) 	IPTV_LOG_STR_DESC(AAAA) 
+#define IPTV_LOG_STR_DESC2_HIGH_LEVEL(AAAA,BBBB) 	IPTV_LOG_STR_DESC2(AAAA,BBBB) 
+#define IPTV_LOG_STR_DESC3_HIGH_LEVEL(AAAA,BBBB,CCCC)   IPTV_LOG_STR_DESC3(AAAA,BBBB,CCCC) 
+#define IPTV_LOG_STR_DESC4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD)   IPTV_LOG_STR_DESC4(AAAA,BBBB,CCCC,DDDD) 
+
+#else
+
+#define IPTVLOGTEXT_HIGH_LEVEL(AAAA)
+#define IPTVLOGSTRING_HIGH_LEVEL(AAAA)
+#define IPTVLOGSTRING2_HIGH_LEVEL(AAAA,BBBB)
+#define IPTVLOGSTRING3_HIGH_LEVEL(AAAA,BBBB,CCCC)
+#define IPTVLOGSTRING4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD)
+
+#define IPTV_LOG_STR_DESC_HIGH_LEVEL(AAAA)
+#define IPTV_LOG_STR_DESC2_HIGH_LEVEL(AAAA,BBBB)
+#define IPTV_LOG_STR_DESC3_HIGH_LEVEL(AAAA,BBBB,CCCC)
+#define IPTV_LOG_STR_DESC4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD)
+
+#endif
+
+
+#ifdef IPTV_MIDDLE_LEVEL_TRACES
+#define TFLOGTEXT_MIDDLE_LEVEL(AAAA) IPTV_LOGTEXT(AAAA)
+#define IPTVLOGSTRING_MIDDLE_LEVEL(AAAA) IPTV_LOGSTRING(AAAA)
+#define IPTVLOGSTRING2_MIDDLE_LEVEL(AAAA,BBBB) IPTV_LOGSTRING2(AAAA,BBBB)
+#define IPTVLOGSTRING3_MIDDLE_LEVEL(AAAA,BBBB,CCCC) IPTV_LOGSTRING3(AAAA,BBBB,CCCC)
+#define IPTVLOGSTRING4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD) IPTV_LOGSTRING4(AAAA,BBBB,CCCC,DDDD)
+
+#define IPTV_LOG_STR_DESC_MIDDLE_LEVEL(AAAA) 	IPTV_LOG_STR_DESC(AAAA) 
+#define IPTV_LOG_STR_DESC2_MIDDLE_LEVEL(AAAA,BBBB) 	IPTV_LOG_STR_DESC2(AAAA,BBBB) 
+#define IPTV_LOG_STR_DESC3_MIDDLE_LEVEL(AAAA,BBBB,CCCC)   IPTV_LOG_STR_DESC3(AAAA,BBBB,CCCC) 
+#define IPTV_LOG_STR_DESC4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD)   IPTV_LOG_STR_DESC4(AAAA,BBBB,CCCC,DDDD) 
+
+#else
+
+#define TFLOGTEXT_MIDDLE_LEVEL(AAAA)
+#define IPTVLOGSTRING_MIDDLE_LEVEL(AAAA)
+#define IPTVLOGSTRING2_MIDDLE_LEVEL(AAAA,BBBB)
+#define IPTVLOGSTRING3_MIDDLE_LEVEL(AAAA,BBBB,CCCC)
+#define IPTVLOGSTRING4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD)
+
+#define IPTV_LOG_STR_DESC_MIDDLE_LEVEL(AAAA)
+#define IPTV_LOG_STR_DESC2_MIDDLE_LEVEL(AAAA,BBBB)
+#define IPTV_LOG_STR_DESC3_MIDDLE_LEVEL(AAAA,BBBB,CCCC)
+#define IPTV_LOG_STR_DESC4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD)
+
+#endif
+	    
+
+#ifdef IPTV_LOW_LEVEL_TRACES
+
+#define IPTVLOGTEXT_LOW_LEVEL(AAAA)    IPTV_LOGTEXT(AAAA)
+#define IPTVLOGSTRING_LOW_LEVEL(AAAA)    IPTV_LOGSTRING(AAAA)
+#define IPTVLOGSTRING2_LOW_LEVEL(AAAA,BBBB)    IPTV_LOGSTRING2(AAAA,BBBB)
+#define IPTVLOGSTRING3_LOW_LEVEL(AAAA,BBBB,CCCC)    IPTV_LOGSTRING3(AAAA,BBBB,CCCC)
+#define IPTVLOGSTRING4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD)    IPTV_LOGSTRING4(AAAA,BBBB,CCCC,DDDD)
+
+#define IPTV_LOG_STR_DESC_LOW_LEVEL(AAAA) 	IPTV_LOG_STR_DESC(AAAA) 
+#define IPTV_LOG_STR_DESC2_LOW_LEVEL(AAAA,BBBB) 	IPTV_LOG_STR_DESC2(AAAA,BBBB) 
+#define IPTV_LOG_STR_DESC3_LOW_LEVEL(AAAA,BBBB,CCCC)   IPTV_LOG_STR_DESC3(AAAA,BBBB,CCCC) 
+#define IPTV_LOG_STR_DESC4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD)   IPTV_LOG_STR_DESC4(AAAA,BBBB,CCCC,DDDD) 
+
+#else
+
+#define IPTVLOGTEXT_LOW_LEVEL(AAAA)
+#define IPTVLOGSTRING_LOW_LEVEL(AAAA)
+#define IPTVLOGSTRING2_LOW_LEVEL(AAAA,BBBB)
+#define IPTVLOGSTRING3_LOW_LEVEL(AAAA,BBBB,CCCC)
+#define IPTVLOGSTRING4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD)
+
+#define IPTV_LOG_STR_DESC_LOW_LEVEL(AAAA)
+#define IPTV_LOG_STR_DESC2_LOW_LEVEL(AAAA,BBBB)
+#define IPTV_LOG_STR_DESC3_LOW_LEVEL(AAAA,BBBB,CCCC)
+#define IPTV_LOG_STR_DESC4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD)
+
+#endif
+
+
+/* 
+-----------------------------------------------------------------------------
+
+	LOG SELECTION
+
+-----------------------------------------------------------------------------
+*/
+
+
+// 0 = No logging, 
+// 1 = Flogger, 
+// 2 = RDebug
+
+
+#ifndef _DEBUG
+
+// UREL BUILD:
+#define IPTV_LOGGING_METHOD  0   // No logging in UREL builds
+
+#else // urel
+
+
+#ifdef __WINSCW__
+
+// WINSCW BUILD:
+#define IPTV_LOGGING_METHOD  2  // RDebug is default with emulator
+
+#else
+
+// ARMV5 BUILD:
+#define IPTV_LOGGING_METHOD  1  // Flogger is default with target device
+
+#endif
+
+
+#endif // _DEBUG
+
+
+/* 
+-----------------------------------------------------------------------------
+
+	LOG SETTINGS
+
+-----------------------------------------------------------------------------
+*/
+
+#if IPTV_LOGGING_METHOD == 1      // Flogger
+
+#include <flogger.h>
+_LIT(KIPTVLogFolder,"IPTV");
+_LIT(KIPTVLogFile,"IPTVLOG.TXT");
+
+#elif IPTV_LOGGING_METHOD == 2    // RDebug
+
+#include <e32svr.h>
+
+#endif
+
+
+
+
+
+#if IPTV_LOGGING_METHOD == 1      // Flogger
+
+
+#define IPTV_LOGTEXT(AAA)                RFileLogger::Write(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend, AAA)
+
+#define IPTV_LOG_STR_DESC(AAA)                RFileLogger::Write(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend, AAA)
+#define IPTV_LOG_STR_DESC2(AAA,BBB)         /*lint -e{717}*/ do { RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(AAA()),BBB); } while ( EFalse )
+#define IPTV_LOG_STR_DESC3(AAA,BBB,CCC)     /*lint -e{717}*/ do { RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(AAA()),BBB,CCC); } while ( EFalse )
+#define IPTV_LOG_STR_DESC4(AAA,BBB,CCC,DDD) /*lint -e{717}*/ do { RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(AAA()),BBB,CCC,DDD); } while ( EFalse )
+
+#define IPTV_LOGSTRING(AAA)                 /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::Write(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,tempIPTVLogDes()); } while ( EFalse )
+#define IPTV_LOGSTRING2(AAA,BBB)            /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(tempIPTVLogDes()),BBB); } while ( EFalse )
+#define IPTV_LOGSTRING3(AAA,BBB,CCC)        /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(tempIPTVLogDes()),BBB,CCC); } while ( EFalse )
+#define IPTV_LOGSTRING4(AAA,BBB,CCC,DDD)    /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(tempIPTVLogDes()),BBB,CCC,DDD); } while ( EFalse )
+
+// Time stamp
+_LIT(KIptvLogTimeFormatString, "IPTV TIMESTAMP: %H:%T:%S:%*C3");
+#define IPTV_LOGSTRING_TIMESTAMP { \
+                                 TTime logTime; \
+                                 logTime.HomeTime(); \
+                                 TBuf<256> logBuffer; \
+                                 logTime.FormatL(logBuffer, KIptvLogTimeFormatString); \
+                                 RFileLogger::Write(KIPTVLogFolder(), KIPTVLogFile(), EFileLoggingModeAppend, logBuffer); \
+                                 }
+
+// Memory stamp
+_LIT(KIptvLogMemoryStampString, "IPTV MEMORYSTAMP: %d KB");
+#define IPTV_LOGSTRING_MEMORYSTAMP { \
+                                   User::CompressAllHeaps(); \
+                                   TMemoryInfoV1Buf logMemory; \
+                                   UserHal::MemoryInfo(logMemory); \
+                                   TInt logMemoryInt = (TInt)(logMemory().iFreeRamInBytes); \
+                                   TBuf<256> logMemoryStr; \
+                                   logMemoryStr.Format(KIptvLogMemoryStampString, (logMemoryInt / 1024) ); \
+                                   RFileLogger::Write(KIPTVLogFolder(), KIPTVLogFile(), EFileLoggingModeAppend, logMemoryStr); \
+                                   }
+
+
+#elif IPTV_LOGGING_METHOD == 2    // RDebug
+
+
+#define IPTV_LOGTEXT(AAA)                    RDebug::Print(AAA)
+
+#define IPTV_LOG_STR_DESC(AAA)               RDebug::Print(AAA)
+#define IPTV_LOG_STR_DESC2(AAA,BBB)       	 /*lint -e{717}*/ do {  RDebug::Print(AAA, BBB); } while ( EFalse )
+#define IPTV_LOG_STR_DESC3(AAA,BBB,CCC)      /*lint -e{717}*/ do {  RDebug::Print(AAA, BBB, CCC); } while ( EFalse )
+#define IPTV_LOG_STR_DESC4(AAA,BBB,CCC,DDD)  /*lint -e{717}*/ do {  RDebug::Print(AAA, BBB, CCC, DDD); } while ( EFalse )
+
+#define IPTV_LOGSTRING(AAA)                  /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes); } while ( EFalse )
+#define IPTV_LOGSTRING2(AAA,BBB)             /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes, BBB); } while ( EFalse )
+#define IPTV_LOGSTRING3(AAA,BBB,CCC)         /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes, BBB, CCC); } while ( EFalse )
+#define IPTV_LOGSTRING4(AAA,BBB,CCC,DDD)     /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes, BBB, CCC, DDD); } while ( EFalse )
+
+// Time stamp
+_LIT(KIptvLogTimeFormatString, "IPTV TIMESTAMP: %H:%T:%S:%*C3");
+#define IPTV_LOGSTRING_TIMESTAMP { \
+                                 TTime logTime; \
+                                 logTime.HomeTime(); \
+                                 TBuf<256> logBuffer; \
+                                 logTime.FormatL(logBuffer, KIptvLogTimeFormatString); \
+                                 RDebug::Print(logBuffer); \
+                                 }
+
+// Memory stamp
+_LIT(KIptvLogMemoryStampString, "IPTV MEMORYSTAMP: %d KB");
+#define IPTV_LOGSTRING_MEMORYSTAMP { \
+                                   User::CompressAllHeaps(); \
+                                   TMemoryInfoV1Buf logMemory; \
+                                   UserHal::MemoryInfo(logMemory); \
+                                   TInt logMemoryInt = (TInt)(logMemory().iFreeRamInBytes); \
+                                   TBuf<256> logMemoryStr; \
+                                   logMemoryStr.Format(KIptvLogMemoryStampString, (logMemoryInt / 1024) ); \
+                                   RDebug::Print(logMemoryStr); \
+                                   }
+
+
+#else	// TF_LOGGING_METHOD == 0 or invalid
+
+
+#define IPTV_LOGSTRING(AAA)              
+#define IPTV_LOGSTRING2(AAA,BBB)         
+#define IPTV_LOGSTRING3(AAA,BBB,CCC)     
+#define IPTV_LOGSTRING4(AAA,BBB,CCC,DDD) 
+
+#define IPTV_LOGTEXT(AAA)                
+
+#define IPTV_LOG_STR_DESC(AAA)              
+#define IPTV_LOG_STR_DESC2(AAA,BBB)         
+#define IPTV_LOG_STR_DESC3(AAA,BBB,CCC)     
+#define IPTV_LOG_STR_DESC4(AAA,BBB,CCC,DDD) 
+
+#define IPTV_LOGSTRING_TIMESTAMP
+#define IPTV_LOGSTRING_MEMORYSTAMP
+
+
+#endif // TF_LOGGING_METHOD
+
+
+#endif // IPTVDEBUG_H
--- a/inc/mpxvideoplayercustomviewmsgconsts.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/inc/mpxvideoplayercustomviewmsgconsts.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 2 %
+// Version : %version: da1mmcf#3 %
 
 #ifndef __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__
 #define __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__
@@ -29,4 +29,7 @@
 
 const TInt KVcxCustomViewMessagePtr = 0x200211F9;
 
+const TInt KMpxVideoPlaybackPdlReloading = 0x20024339;
+
+
 #endif // __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__
--- a/layers.sysdef.xml	Fri Feb 19 22:52:52 2010 +0200
+++ b/layers.sysdef.xml	Fri Mar 12 15:43:00 2010 +0200
@@ -18,7 +18,7 @@
 		<module name="videoplayer_startup_api_tsrc">
 			<unit unitID="vado.videoplayer_startup_api_test" name="videoplayer_startup_api_tsrc" bldFile="&layer_real_source_path;/videoplayer_plat/videoplayer_startup_api/tsrc/group" mrp=""/>
 		</module>		
-	</layer>  
+	</layer>
 
 	<layer name="unit_test_layer">
 		
@@ -29,17 +29,6 @@
 			<unit unitID="vado.mpxvideoplayer_test" name="mpxvideoplayer_tsrc" bldFile="&layer_real_source_path;/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/group" mrp=""/>
 		</module>
 
-		<module name="videofeeds_tsrc">
-			<unit unitID="vado.feeds_tests_dependency1" name="feeds_tests_dependency1" bldFile="&layer_real_source_path;/tsrc/VCXTestCommon/group" mrp=""/>
-			<unit unitID="vado.feeds_tests_dependency2" name="feeds_tests_dependency2" bldFile="&layer_real_source_path;/tsrc/VCXTestUtilModule/group" mrp=""/>
-			<unit unitID="vado.feeds_tests_dependency3" name="feeds_tests_dependency3" bldFile="&layer_real_source_path;/videofeeds/server/tsrc/IptvTestUtility/group" mrp=""/>
-			<unit unitID="vado.feeds_tests_dependency4" name="feeds_tests_dependency4" bldFile="&layer_real_source_path;/tsrc/VCXTestMyVideosCollectionClient/group" mrp=""/>
-
-			<unit unitID="vado.serviceprovisioning_test" name="serviceprovisioning_tsrc" bldFile="&layer_real_source_path;/videofeeds/server/tsrc/VCXProvisioningTest/group" mrp=""/>
-			<unit unitID="vado.servicemanagement_test" name="servicemanagement_tsrc" bldFile="&layer_real_source_path;/videofeeds/server/tsrc/VCXServiceManagementApiTest/group" mrp=""/>
-			<unit unitID="vado.vodcontent_test" name="vodcontent_tsrc" bldFile="&layer_real_source_path;/videofeeds/server/tsrc/VCXVodContentApiTest/group" mrp=""/>
-		</module>
-
 		<module name="mpxmyvideoscollection_tsrc">
 			<unit unitID="vado.mvcollection_tests_dependency1" name="mvcollection_tests_dependency1" bldFile="&layer_real_source_path;/tsrc/VCXTestCommon/group" mrp=""/>
 			<unit unitID="vado.mvcollection_tests_dependency2" name="mvcollection_tests_dependency2" bldFile="&layer_real_source_path;/tsrc/VCXTestUtilModule/group" mrp=""/>
--- a/mediasettings/group/bld.inf	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/group/bld.inf	Fri Mar 12 15:43:00 2010 +0200
@@ -15,14 +15,12 @@
 */
 
 
-// Version : %version: 9 %
+// Version : %version: 10 %
 
 #include <platform_paths.hrh>
 
 #include "../videoplayersettingsengine/group/bld.inf"
 #include "../mediasettingsengine/group/bld.inf"
-#include "../feedsettingsplugin/group/bld.inf"
-#include "../feedsettingsviews/group/bld.inf"
 #include "../mpsettbase/group/bld.inf"
 #include "../mediasettingsapp/group/bld.inf"
 #include "../gsvideoplugin/group/bld.inf"
--- a/mediasettings/gsvideoplugin/group/gsvideoplugin.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/gsvideoplugin/group/gsvideoplugin.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 4 %
+// Version : %version: 5 %
 
 
 
@@ -49,12 +49,7 @@
 SOURCE          MPSettingsVideoSettingItemList.cpp
 SOURCE          MPSettingsVideoContainer.cpp
 SOURCE          MPSettingsStreamingContainer.cpp
-SOURCE          MPSettingsProxySettingItemList.cpp
-SOURCE          MPSettingsProxyContainer.cpp
-SOURCE          MPSettingsProxyView.cpp
-SOURCE          MPSettingsNetworkSettingItemList.cpp
-SOURCE          MPSettingsNetworkContainer.cpp
-SOURCE          MPSettingsNetworkView.cpp
+SOURCE          MPSettingsStreamingSettingItemList.cpp
 SOURCE          MPSettingsSliderSettingItem.cpp
 SOURCE          MPSettingsUDPPortSettingItem.cpp
 SOURCE          MPSettingsAdvancedBwContainer.cpp
@@ -78,7 +73,6 @@
 USERINCLUDE     ../../videoplayersettingsengine/inc
 USERINCLUDE     ../../mediasettingsengine/inc
 USERINCLUDE     ../../mediasettingsengine/data
-USERINCLUDE     ../../feedsettingsviews/inc
 
 
 //System include paths
@@ -117,8 +111,6 @@
 LIBRARY   commsdat.lib          
 LIBRARY   gsframework.lib       // For base classes
 LIBRARY   centralrepository.lib 
-LIBRARY   pbkeng.lib
-LIBRARY   pbkview.lib
 LIBRARY   aknskinsrv.lib        // for enhanced skinning
 LIBRARY   aknskins.lib          // for enhanced skinning
 LIBRARY   egul.lib
@@ -145,13 +137,10 @@
 LIBRARY   eikdlg.lib            // eikon dialogs
 
 LIBRARY   flogger.lib // For GSLogger
-LIBRARY   sisregistryclient.lib
-
-LIBRARY   vcxnssettingsview.lib
 
 SOURCEPATH      ../data
 DOCUMENT        10275068.rss
-SOURCEPATH		../../mediasettingsapp/data
+SOURCEPATH      ../../mediasettingsapp/data
 DOCUMENT        MediaSettings.rss
 
 
--- a/mediasettings/gsvideoplugin/inc/GSMediaPlayerStreamingView.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/gsvideoplugin/inc/GSMediaPlayerStreamingView.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 3 %
+// Version : %version: 4 %
 
 
 
@@ -39,7 +39,6 @@
 *  @since 3.1
 */
 class CGSMediaPlayerStreamingView : public CAknView,
-                                    public MEikListBoxObserver,
                                     public MGSTabbedView    
 {
     public: // Constructors and destructor
@@ -131,15 +130,7 @@
         */
         void CreateContainerL();       
 
-    protected: // from MEikListBoxObserver
-
-        /**
-        * Handles listbox events.
-        * @param aListBox Listbox where the event occurred.
-        * @param aEventType Event type.
-        */
-        void HandleListBoxEventL(CEikListBox* aListBox,
-                                 TListBoxEvent aEventType);
+    protected:
 
         /**
         * Called at the end of DoActivateL.
@@ -151,20 +142,14 @@
         /**
         * C++ default constructor.
         */
-        CGSMediaPlayerStreamingView(CMPSettingsModelForROP* aModel, CArrayPtrFlat<MGSTabbedView>* aTabViewArray);
+        CGSMediaPlayerStreamingView( CMPSettingsModelForROP* aModel, 
+		                             CArrayPtrFlat<MGSTabbedView>* aTabViewArray);
 
         /**
         * Symbian OS 2nd phase constructor.
         * @since 2.1
         */
         void ConstructL( CArrayPtrFlat<MGSTabbedView>* aTabViewArray );
-
-    private: // New 
-
-        /**
-        * Handles listbox selection.
-        */
-        virtual void HandleListBoxSelectionL();
         
     private: // Data
         
--- a/mediasettings/gsvideoplugin/inc/GSVideoPlugin.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/gsvideoplugin/inc/GSVideoPlugin.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 6 %
+// Version : %version: 7 %
 
 
 
@@ -113,7 +113,13 @@
         */
         void SetCurrentItem( TInt aIndex );
 
-                       
+        /**
+        * Checks if video contrast item should be visible.
+        * 
+        * @return ETrue if video contrast is supported
+        */
+        TBool VideoContrastIsSupportedL();
+        
     public: // From CGSPluginInterface - See CGSPluginInterface header file.
     
         /**
@@ -230,15 +236,19 @@
              
         CArrayFix<TUid>*             iViewIds;
         CMPSettingsMainView*      iMainView;                   
-        CGSTabHelper*                iTabHelper;
         CMPSettingsModelForROP*         iModel;
         CMPSettingsBaseContainer* iContainer;
         RImplInfoPtrArray       iImplInfoArray;
         TBool   iConstructAsGsPlugin;
         CArrayPtrFlat<MGSTabbedView>* iViewArray; 
         TVwsViewId iPrevViewId; // Previous view. 
+        
+        /**
+         * Video view availability status.
+         */
+        TBool iVideoViewAvailable;
     
-};
+    };
 
 
 #endif //CGSVIDEOPLUGIN_H
--- a/mediasettings/gsvideoplugin/src/GSMediaPlayerStreamingView.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/gsvideoplugin/src/GSMediaPlayerStreamingView.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 8 %
+// Version : %version: 10 %
 
 
 
@@ -41,11 +41,6 @@
 
 class CMPSettingsModelForROP;
 
-// CONSTANTS
-
-const   TInt    KMPSettProxyViewListItemId  =   0;
-const   TInt    KMPSettNetworkViewListItemId  =   1;
-
 // ================= MEMBER FUNCTIONS =======================
 
 // -----------------------------------------------------------------------------
@@ -54,7 +49,9 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-CGSMediaPlayerStreamingView::CGSMediaPlayerStreamingView(CMPSettingsModelForROP* aModel, CArrayPtrFlat<MGSTabbedView>* /* aTabViewArray */ ) 
+CGSMediaPlayerStreamingView::CGSMediaPlayerStreamingView(
+        CMPSettingsModelForROP* aModel, 
+        CArrayPtrFlat<MGSTabbedView>* /* aTabViewArray */ ) 
 	: iModel( aModel)
     {
     MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CGSMediaPlayerStreamingView()");
@@ -67,10 +64,13 @@
 //
 void CGSMediaPlayerStreamingView::ConstructL(CArrayPtrFlat<MGSTabbedView>* aTabViewArray)
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::ConstructL()");
-		iTabHelper = CGSTabHelper::NewL();
-		aTabViewArray->AppendL(this);
-		BaseConstructL(R_GS_MPSETT_STREAMING_VIEW);
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::ConstructL()");
+    if ( aTabViewArray )
+        {
+        iTabHelper = CGSTabHelper::NewL();
+        aTabViewArray->AppendL(this);
+        }
+    BaseConstructL( R_GS_MPSETT_STREAMING_VIEW );
     }
 
 // -----------------------------------------------------------------------------
@@ -78,15 +78,17 @@
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CGSMediaPlayerStreamingView* CGSMediaPlayerStreamingView::NewLC(CMPSettingsModelForROP* aModel, CArrayPtrFlat<MGSTabbedView>* aTabViewArray)
+CGSMediaPlayerStreamingView* CGSMediaPlayerStreamingView::NewLC(
+        CMPSettingsModelForROP* aModel, 
+        CArrayPtrFlat<MGSTabbedView>* aTabViewArray )
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewLC()");
-		CGSMediaPlayerStreamingView* self = new(ELeave) CGSMediaPlayerStreamingView(aModel,aTabViewArray);
-    
-		CleanupStack::PushL(self);
-		self->ConstructL( aTabViewArray );
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewLC()");
+    CGSMediaPlayerStreamingView* self = new(ELeave) CGSMediaPlayerStreamingView(aModel,aTabViewArray);
 
-		return self;
+    CleanupStack::PushL(self);
+    self->ConstructL( aTabViewArray );
+
+    return self;
     }
 
 // ---------------------------------------------------------
@@ -96,14 +98,14 @@
 //
 CGSMediaPlayerStreamingView::~CGSMediaPlayerStreamingView()
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::~CGSMediaPlayerStreamingView()");
-	    if ( iContainer )
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::~CGSMediaPlayerStreamingView()");
+    if ( iContainer )
         {
         AppUi()->RemoveFromStack( iContainer );
         delete iContainer;
         }
-	    delete iTabHelper;    
-    }
+    delete iTabHelper;    
+}
 
 // ---------------------------------------------------------
 // TUid CGSMediaPlayerStreamingView::Id
@@ -111,8 +113,8 @@
 //
 TUid CGSMediaPlayerStreamingView::Id() const
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Id()");
-	    return KMPSettStreamingViewId;
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Id()");
+    return KMPSettStreamingViewId;
     }
 
 // ---------------------------------------------------------
@@ -121,30 +123,43 @@
 //
 void CGSMediaPlayerStreamingView::HandleCommandL(TInt aCommand)
     {   
-        MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::HandleCommandL(%d)"),aCommand);
-	    CGSVideoPlugin* parent =
-			static_cast<CGSVideoPlugin*> (
-				AppUi()->View( KGSVideoPluginUid ) );
+    MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::HandleCommandL(%d)"),aCommand);
+    CGSVideoPlugin* parent =
+        static_cast<CGSVideoPlugin*> (
+            AppUi()->View( KGSVideoPluginUid ) );
 
-		switch (aCommand)
+    switch (aCommand)
         {
-			case EMPSettCmdOpen:
-				HandleListBoxSelectionL();
-				break;
-			case EAknSoftkeyBack:
-				parent->SetCurrentItem(EGSMediaSettingsStreamingIndex);
-				parent->ResetSelectedItemIndex();
-     			AppUi()->ActivateLocalViewL(KGSVideoPluginUid);
-				break;
-			case EMPSettCmdHelp:
-				if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-				{
-				HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() );
-				}
-				break;
-			default:
-				AppUi()->HandleCommandL(aCommand);
-				break;
+        case EMPSettCmdOpen:
+            break;
+        case EAknSoftkeyBack:
+			{
+            if ( iTabHelper )
+                {
+                parent->SetCurrentItem(EGSMediaSettingsStreamingIndex);
+                parent->ResetSelectedItemIndex();
+                AppUi()->ActivateLocalViewL(KGSVideoPluginUid);
+                }
+            else    
+                {
+				// If there's no TabHelper, we have just streaming view and
+				// should exit MediaSettings.
+                AppUi()->ActivateLocalViewL( KGSAppsPluginUid );
+                }
+            }
+			break;
+        case EMPSettCmdAdvancedSett:
+            AppUi()->ActivateLocalViewL( KMPSettAdvancedBwViewId );
+            break;            
+        case EMPSettCmdHelp:
+            if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
+                {
+                HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() );
+                }
+            break;
+        default:
+            AppUi()->HandleCommandL(aCommand);
+            break;
         }
     }
 
@@ -153,35 +168,35 @@
 // Activate this view
 // ---------------------------------------------------------------------------
 //
-void CGSMediaPlayerStreamingView::DoActivateL( const TVwsViewId& /* aPrevViewId */,
-                                          TUid /*aCustomMessageId*/,
-                                          const TDesC8& /*aCustomMessage*/ )
+void CGSMediaPlayerStreamingView::DoActivateL( 
+        const TVwsViewId& /* aPrevViewId */,
+        TUid /*aCustomMessageId*/,
+        const TDesC8& /*aCustomMessage*/ )
     { 
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoActivateL()");
-	    if( iContainer )
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoActivateL()");
+    if( iContainer )
         {
         AppUi()->RemoveFromViewStack( *this, iContainer );
         delete iContainer;
         iContainer = NULL;
         }
 
-	    CreateContainerL();
-	    AppUi()->AddToViewStackL( *this, iContainer );
-   
-	    CGSVideoPlugin* parent = 
-	        static_cast<CGSVideoPlugin*> ( 
-	            AppUi()->View( KGSVideoPluginUid ) );
-        
-	    if( parent )
+    CreateContainerL();
+    AppUi()->AddToViewStackL( *this, iContainer );
+
+    CGSVideoPlugin* parent = 
+        static_cast<CGSVideoPlugin*> ( 
+            AppUi()->View( KGSVideoPluginUid ) );
+    
+    if( parent && iTabHelper )
         {
         iTabHelper->CreateTabGroupL( Id(), 
-            static_cast<CArrayPtrFlat<MGSTabbedView> *> (parent->TabbedViews() ) ); 
+                static_cast<CArrayPtrFlat<MGSTabbedView> *> (parent->TabbedViews() ) ); 
         } 
-	    iContainer->SetRect( ClientRect() );   
-	    iContainer->ActivateL();   
-    
-	    DynInitContainerL();
-    
+    iContainer->SetRect( ClientRect() );   
+    iContainer->ActivateL();   
+
+    DynInitContainerL();
     }
 
 // ---------------------------------------------------------------------------
@@ -191,21 +206,23 @@
 //
 void CGSMediaPlayerStreamingView::DoDeactivate()
     {
-
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoDeactivate()");
-        if ( iContainer )
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoDeactivate()");
+    if ( iContainer )
         {        
-            CEikTextListBox* listbox = iContainer->ListBox();
-            if (listbox)
+        CEikTextListBox* listbox = iContainer->ListBox();
+        if (listbox)
             {
             iCurrentItem = listbox->CurrentItemIndex();
             iTopItemIndex = listbox->TopItemIndex();
             } 
-            
-            AppUi()->RemoveFromStack( iContainer );
-            delete iContainer;
-            iContainer = NULL;
-            iTabHelper->RemoveTabGroup();                   
+        
+        AppUi()->RemoveFromStack( iContainer );
+        delete iContainer;
+        iContainer = NULL;
+        if ( iTabHelper )
+            {
+            iTabHelper->RemoveTabGroup();
+            }
         }
     }
 
@@ -216,8 +233,8 @@
 //
 CMPSettingsBaseContainer* CGSMediaPlayerStreamingView::Container()
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Container()");
-	    return static_cast <CMPSettingsStreamingContainer*> ( iContainer );
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Container()");
+    return static_cast <CMPSettingsStreamingContainer*> ( iContainer );
     }
 
 // ---------------------------------------------------------------------------
@@ -225,14 +242,15 @@
 // Before showing a options menu
 // ---------------------------------------------------------------------------
 //
-void CGSMediaPlayerStreamingView::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
+void CGSMediaPlayerStreamingView::DynInitMenuPaneL( TInt aResourceId, 
+                                                    CEikMenuPane* aMenuPane)
     {
-        MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::DynInitMenuPaneL(0x%X)"),aResourceId);
-	    if (aResourceId == R_MPSETT_APP_MENU)
+    MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::DynInitMenuPaneL(0x%X)"),aResourceId);
+    if ( aResourceId == R_MPSETT_APP_MENU )
         {
-			// Help should be displayed only if the feature is supported according
-			// to Feature Manager
-			if (!FeatureManager::FeatureSupported(KFeatureIdHelp))
+        // Help should be displayed only if the feature is supported according
+        // to Feature Manager
+        if (!FeatureManager::FeatureSupported(KFeatureIdHelp))
             {
             aMenuPane->SetItemDimmed(EMPSettCmdHelp, ETrue);
             }
@@ -245,8 +263,8 @@
 // ---------------------------------------------------------------------------
 void CGSMediaPlayerStreamingView::NewContainerL()
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewContainerL()");
-	    iContainer = new (ELeave) CMPSettingsStreamingContainer(iModel);
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewContainerL()");
+    iContainer = new (ELeave) CMPSettingsStreamingContainer(iModel);
     }
 
 // -----------------------------------------------------------------------------
@@ -256,31 +274,12 @@
 //
 void CGSMediaPlayerStreamingView::HandleClientRectChange()
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::HandleClientRectChange()");
-	    if ( iContainer )
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::HandleClientRectChange()");
+    if ( iContainer )
         {
         iContainer->SetRect( ClientRect() );
         } 
     }
-                  
-// ---------------------------------------------------------------------------
-// CGSMediaPlayerStreamingView::HandleListBoxEventL
-// ---------------------------------------------------------------------------
-
-void CGSMediaPlayerStreamingView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
-    {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::HandleListBoxEventL()");
-	    switch (aEventType)
-        {
-			case EEventEnterKeyPressed:
-			case EEventItemSingleClicked:
-			case EEventItemDoubleClicked:
-				HandleListBoxSelectionL();
-				break;
-			default:
-			   break;
-        }
-    }
 
 // ---------------------------------------------------------------------------
 // CGSMediaPlayerStreamingView::DynInitContainerL
@@ -288,48 +287,16 @@
 //
 void CGSMediaPlayerStreamingView::DynInitContainerL()
     {
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DynInitContainerL()");
-		CEikTextListBox* listbox = iContainer->ListBox();
-
-		listbox->SetListBoxObserver(this);
-		listbox->SetTopItemIndex(iTopItemIndex);
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DynInitContainerL()");
+    CEikTextListBox* listbox = iContainer->ListBox();
 
-		if (iCurrentItem >= 0 && iCurrentItem < listbox->Model()->NumberOfItems()) // magic
-			{
-			listbox->SetCurrentItemIndexAndDraw(iCurrentItem);
-			}
-    }
+    listbox->SetTopItemIndex(iTopItemIndex);
 
-// ---------------------------------------------------------------------------
-// CGSMediaPlayerStreamingView::HandleListBoxSelectionL()
-// Handles listbox selection.
-// ---------------------------------------------------------------------------
-//
-void CGSMediaPlayerStreamingView::HandleListBoxSelectionL() 
-    {
-		iCurrentItem = iContainer->ListBox()->CurrentItemIndex();
-		iTopItemIndex = iContainer->ListBox()->TopItemIndex();
-		MPX_DEBUG3(_L("#MS# CGSMediaPlayerStreamingView::HandleListBoxSelectionL() iCurrentItem(%d) iTopItemIndex(%d)"),iCurrentItem,iTopItemIndex);
-
-		switch (iCurrentItem)
-			{
-			case KMPSettProxyViewListItemId:
-				if (!FeatureManager::FeatureSupported(KFeatureIdProtocolCdma))
-				{
-				// If KFeatureIdProtocolCdma is not supported then show the 
-				// Proxy view. Otherwise, fall through to show Network view because
-				// only Network setting is available.
-				AppUi()->ActivateLocalViewL(KMPSettProxyViewId);
-				break;
-				}
-			case KMPSettNetworkViewListItemId:
-				AppUi()->ActivateLocalViewL(KMPSettNetworkViewId);
-				break;
-			default:
-				break;
-			}
+    if (iCurrentItem >= 0 && iCurrentItem < listbox->Model()->NumberOfItems()) // magic
+        {
+        listbox->SetCurrentItemIndexAndDraw(iCurrentItem);
+        }
     }
-
     
 // ---------------------------------------------------------------------------
 // CGSMediaPlayerStreamingView::CreateContainerL()
@@ -338,22 +305,21 @@
 //
 void CGSMediaPlayerStreamingView::CreateContainerL()
     {
-        
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateContainerL()");
-		NewContainerL();
-		__ASSERT_DEBUG( 
-			iContainer, User::Panic( KGSDoActivateError, EGSViewPanicNullPtr ) );
-		iContainer->SetMopParent( this );
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateContainerL()");
+    NewContainerL();
+    __ASSERT_DEBUG( 
+        iContainer, User::Panic( KGSDoActivateError, EGSViewPanicNullPtr ) );
+    iContainer->SetMopParent( this );
 
-		//TRAPD( error, iContainer->ConstructL() );
-		TRAPD( error, iContainer->ConstructL( ClientRect() ) );
+    //TRAPD( error, iContainer->ConstructL() );
+    TRAPD( error, iContainer->ConstructL( ClientRect() ) );
 
-		if ( error )
-		{
-			delete iContainer;
-			iContainer = NULL;
-			User::Leave( error );
-		}
+    if ( error )
+        {
+        delete iContainer;
+        iContainer = NULL;
+        User::Leave( error );
+        }
     }
         
 // ---------------------------------------------------------------------------
@@ -363,29 +329,27 @@
 //    
 CGulIcon* CGSMediaPlayerStreamingView::CreateTabIconL()
     {
-
-        MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateTabIconL()");
-		CGulIcon* icon;
-	    TFileName fileName;
+    MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateTabIconL()");
+    CGulIcon* icon;
+    TFileName fileName;
 
-		CGSVideoPlugin* parent = 
-			static_cast<CGSVideoPlugin*> ( 
-				AppUi()->View( KGSVideoPluginUid ) );
-		
-	    if( parent )
+    CGSVideoPlugin* parent = 
+        static_cast<CGSVideoPlugin*> ( 
+            AppUi()->View( KGSVideoPluginUid ) );
+    
+    if( parent )
         {
-	        parent->LocateFilePathL( fileName );    
-        } 
-	    
-		icon = AknsUtils::CreateGulIconL(
-			AknsUtils::SkinInstance(), 
-			KAknsIIDDefault, 
-			fileName,
-			EMbmMediasettingsQgn_prop_set_mp_stream_tab2,
-			EMbmMediasettingsQgn_prop_set_mp_stream_tab2_mask );
+        parent->LocateFilePathL( fileName );    
+        }
     
-		return icon;
+    icon = AknsUtils::CreateGulIconL(
+        AknsUtils::SkinInstance(), 
+        KAknsIIDDefault, 
+        fileName,
+        EMbmMediasettingsQgn_prop_set_mp_stream_tab2,
+        EMbmMediasettingsQgn_prop_set_mp_stream_tab2_mask );
 
+    return icon;
     } 
     
 // ---------------------------------------------------------------------------
@@ -394,8 +358,8 @@
 //
 void CGSMediaPlayerStreamingView::SetCurrentItem(TInt aIndex)
     {
-        MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::SetCurrentItem(%d)"),aIndex);
-	    iCurrentItem = aIndex;
+    MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::SetCurrentItem(%d)"),aIndex);
+    iCurrentItem = aIndex;
     }      
 // End of File
 
--- a/mediasettings/gsvideoplugin/src/GSVideoPlugin.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/gsvideoplugin/src/GSVideoPlugin.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 8 %
+// Version : %version: 10 %
 
 
 
@@ -24,16 +24,14 @@
 #include "GSVideoPlugin.h"
 #include "MPSettingsConstants.h"
 #include "MPSettingsMainView.h"
-#include "MPSettingsProxyView.h"
-#include "MPSettingsNetworkView.h"
 #include "MPSettingsPluginView.h"
 #include "MPSettingsAdvancedBwView.h"
 #include "MPSettingsMainContainer.h" 
+#include "MPSettingsStreamingContainer.h" 
 #include "mediasettings.hrh"
 #include "gstabhelper.h"
 #include "GSMediaPlayerVideoView.h"
 #include "GSMediaPlayerStreamingView.h"
-#include "feedsettingsview.h"
 #include "mpxlog.h"
 
 #include <coeaui.h>
@@ -41,18 +39,20 @@
 #include <aknview.h>
 #include <aknViewAppUi.h>
 #include <featmgr.h>
-#include <bautils.h>
 #include <StringLoader.h>     //for StringLoader
 #include <gsprivatepluginproviderids.h>
 #include <gsmainview.h>
 #include <mediasettings.mbg>
-#include <gsfwviewuids.h>     //for KGSMainViewUid
 #include <MediaSettings.rsg>
 #include <eiktxlbm.h>
 #include <eikmenup.h> 
 
+#include <centralrepository.h>
+#include "MediaPlayerPrivateCRKeys.h"
+#include "MediaPlayerVariant.hrh" 
+
 // CONSTANTS
-const TInt KGSRopSettViewIdArrayGranularity = 3;
+const TInt KGSRopSettViewIdArrayGranularity = 2;
 const TInt KGSRopSettTopItemIndex = 0;
 
 // ========================= MEMBER FUNCTIONS ================================
@@ -81,11 +81,6 @@
     FeatureManager::UnInitializeLib();
     iImplInfoArray.ResetAndDestroy();   
     
-    if ( iTabHelper ) 
-        {
-        delete iTabHelper;
-        }
-
     iResources.Close();
     
     if ( iViewIds )
@@ -116,15 +111,20 @@
     {
     MPX_FUNC("#MS# CGSVideoPlugin::ConstructL()");
     FeatureManager::InitializeLibL();
-    iViewArray = new (ELeave) CArrayPtrFlat<MGSTabbedView>( 3 ); 
 
+    iVideoViewAvailable = VideoContrastIsSupportedL();
+    if ( iVideoViewAvailable )
+        {
+        iViewArray = new (ELeave) CArrayPtrFlat<MGSTabbedView>( KGSRopSettViewIdArrayGranularity ); 
+        }
     TFileName fileName;
     LocateFilePathL( fileName, EFalse );    
     OpenLocalizedResourceFileL( fileName, iResources );
-        
-    BaseConstructL(R_GS_MEDIASETTING_VIEW);
-
-    iTabHelper = CGSTabHelper::NewL();
+    
+    TInt ctorResource = ( iVideoViewAvailable ? R_GS_MEDIASETTING_VIEW :
+                                                R_GS_MPSETT_STREAMING_VIEW );
+    
+    BaseConstructL( ctorResource );
     }
    
 // ---------------------------------------------------------------------------
@@ -196,7 +196,10 @@
         }
     CreateContainerL();
     AppUi()->AddToViewStackL( *this, iContainer );
-    iContainer->ListBox()->SetListBoxObserver( this ) ;
+    if ( iVideoViewAvailable )
+        {
+        iContainer->ListBox()->SetListBoxObserver( this ) ;
+        }
     ResetSelectedItemIndex();
     }
 
@@ -229,12 +232,14 @@
     switch ( aCommand )
         {
         case EMPSettCmdOpen:
-            HandleListBoxSelectionL();
             break;          
         case EAknSoftkeyBack:
             SetCurrentItem(EGSMediaSettingsVideoIndex);
             AppUi()->ActivateLocalViewL( KGSAppsPluginUid );
             break;
+        case EMPSettCmdAdvancedSett:
+            AppUi()->ActivateLocalViewL( KMPSettAdvancedBwViewId );
+            break;                    
         case EMPSettCmdHelp:
             {
             if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
@@ -291,9 +296,16 @@
 void CGSVideoPlugin::NewContainerL()
     {
     MPX_FUNC("#MS# CGSVideoPlugin::NewContainerL()");
-    iContainer = new( ELeave ) CMPSettingsMainContainer;
+    if ( iVideoViewAvailable )
+        {
+        iContainer = new( ELeave ) CMPSettingsMainContainer;
+        }
+    else    
+        {
+        iContainer = new( ELeave ) CMPSettingsStreamingContainer( iModel );
+        }
     }
-
+    
 // ---------------------------------------------------------------------------
 // CGSVideoPlugin::HandleListBoxSelectionL
 // 
@@ -322,7 +334,6 @@
             streamingView = static_cast<CGSMediaPlayerStreamingView*>(AppUi()->View(iViewIds->At(i)));
             streamingView->SetCurrentItem(KGSRopSettTopItemIndex);        
             }
-        // Third item of the list is "Video service selection"
         }
          
     AppUi()->ActivateLocalViewL(iViewIds->At(iCurrentItem));
@@ -377,41 +388,35 @@
     iModel = CMPSettingsModelForROP::NewL();
 
     // Create vector which contains view id's for all setting folders. 
-    iViewIds = new(ELeave) CArrayFixFlat<TUid>(KGSRopSettViewIdArrayGranularity);
-    iViewIds->AppendL(KMPSettVideoViewId);
-    iViewIds->AppendL(KMPSettStreamingViewId);
-    iViewIds->AppendL(KMPSettFeedsViewId);
+    iViewIds = new(ELeave) CArrayFixFlat<TUid>( KGSRopSettViewIdArrayGranularity );
+    if ( iVideoViewAvailable )
+        {
+        iViewIds->AppendL( KMPSettVideoViewId );
+        }
+    iViewIds->AppendL( KMPSettStreamingViewId );
+  
     CAknView* view;  
 
-    view = CMPSettingsMainView::NewLC(iViewIds,iModel,iConstructAsGsPlugin); 
-    AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view
-
-    // iMainView is not owned, i.e. it is not deleted in the destructor ->
-    // main view cannot be directly creted to iMainView, as it's against the coding
-    // conventions to place class' pointers to cleanup stack => static_cast.
-    iMainView = static_cast<CMPSettingsMainView*>(view);
-
-    view = CGSMediaPlayerVideoView::NewLC(iModel,iViewArray);
-    AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view
+    if ( iVideoViewAvailable )
+        {
+        view = CMPSettingsMainView::NewLC(iViewIds,iModel,iConstructAsGsPlugin); 
+        AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
+        CleanupStack::Pop();    // view
 
+        // iMainView is not owned, i.e. it is not deleted in the destructor ->
+        // main view cannot be directly creted to iMainView, as it's against the coding
+        // conventions to place class' pointers to cleanup stack => static_cast.
+        iMainView = static_cast<CMPSettingsMainView*>(view);
+        
+        view = CGSMediaPlayerVideoView::NewLC(iModel,iViewArray);
+        AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
+        CleanupStack::Pop();    // view
+        }
+        
     view = CGSMediaPlayerStreamingView::NewLC(iModel,iViewArray);
     AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
     CleanupStack::Pop();    // view 
 
-    view = CVcxNsSettingsView::NewLC( iViewArray );
-    AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view
-    
-    view = CMPSettingsProxyView::NewLC(iModel,iConstructAsGsPlugin);
-    AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
-    view = CMPSettingsNetworkView::NewLC(iModel,iConstructAsGsPlugin);
-    AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
     view = CMPSettingsAdvancedBwView::NewLC(iModel,iConstructAsGsPlugin);
     AppUi()->AddViewL(view);      // transfer ownership to CAknViewAppUi
     CleanupStack::Pop();    // view 
@@ -537,7 +542,6 @@
 void CGSVideoPlugin::LocateFilePathL( TFileName& aFileName, TBool aBitmapFile )
     {
     _LIT( KGSResourceFileName, "mediasettings.rsc" );
-    //_LIT( KGSIconFileName, "mediasettings.mbm");
     _LIT( KGSIconFileName, "mediasettings.mif");
     
     TParse parse;
@@ -592,4 +596,18 @@
         MPX_DEBUG3(_L("#MS# CGSVideoPlugin::LocateFilePathL(%d,%S)"),aBitmapFile,&aFileName);
     }   
 
+// -----------------------------------------------------------------------------
+// CGSVideoPlugin::VideoContrastIsSupportedL
+// -----------------------------------------------------------------------------
+//
+TBool CGSVideoPlugin::VideoContrastIsSupportedL()
+    {
+    TInt flags;
+    CRepository* repository = CRepository::NewL( KCRUidMediaPlayerFeatures );
+    repository->Get( KMPLocalVariation, flags );
+    delete repository;
+
+    return ( flags & KMediaPlayerVideoContrast );
+    }
+
 //End of File
--- a/mediasettings/mediasettingsapp/data/MediaSettings.rss	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/data/MediaSettings.rss	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 15 %
+// Version : %version: 16 %
 
 
 
@@ -367,11 +367,8 @@
         LBUF
             {
             txt = "1\t"qtn_mp_settings_streaming;
-            },
-        LBUF
-            {
-            txt = "2\t"qtn_iptv_service_selection_setting;
             }
+
         };  
     }
 
@@ -480,7 +477,7 @@
 //
 RESOURCE AVKON_VIEW r_gs_mpsett_streaming_view
     {
-    menubar = r_mpsett_app_and_open_menubar;
+    menubar = r_mpsett_app_and_adv_sett_menubar;
     cba=r_mediasetting_softkeys_options_back_open;
     }
 
@@ -493,71 +490,7 @@
 //
 RESOURCE AVKON_VIEW r_mpsett_streaming_view
     {
-    menubar = r_mpsett_app_and_open_menubar;  
-    cba = R_AVKON_SOFTKEYS_SELECTION_LIST;    
-    }
-
-//----------------------------------------------------
-//   
-//    r_mpsett_streaming_lbx_resource
-//    Streaming view's listbox resource.
-//
-//----------------------------------------------------
-//
-RESOURCE LISTBOX r_mpsett_streaming_lbx_resource
-    {
-    array_id = r_mpsett_streaming_lbx;
-    flags = EEikListBoxMultipleSelection;
-    }
-            
-//----------------------------------------------------
-//    
-//  r_mpsett_streaming_lbx    
-//  Streaming view's listbox.
-//
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_mpsett_streaming_lbx
-    {
-    items =
-        {
-#ifndef __PROTOCOL_CDMA
-        LBUF
-            {
-            txt = " \t"qtn_mp_setting_stream_proxy;
-            },
-#endif
-        LBUF
-            {
-            txt = " \t"qtn_mp_setting_stream_net;
-            }
-        };  
-    }
-
-// * Feeds view *
-
-//----------------------------------------------------
-//   
-//    r_mpsett_feeds_view_title
-//    Video view's title.
-//
-//----------------------------------------------------
-//-
-RESOURCE TITLE_PANE r_mpsett_feeds_view_title
-    {
-    txt = qtn_iptv_service_selection_title;
-    }
-
-//----------------------------------------------------
-//   
-//    r_mpsett_video_view
-//    Video view's Options menu and cba.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_mpsett_feeds_view
-    {
-    menubar = r_mpsett_feeds_menubar;  
+    menubar = r_mpsett_app_and_adv_sett_menubar;  
     cba = R_AVKON_SOFTKEYS_SELECTION_LIST;    
     }
 
@@ -575,19 +508,6 @@
     txt = qtn_mp_sett_stream_title_proxy;
     }
 
-//----------------------------------------------------
-//   
-//    r_mpsett_proxy_view
-//    Proxy view's Options menu and cba.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_mpsett_proxy_view
-    {
-    menubar = r_mpsett_app_and_change_menubar;  
-    cba = R_AVKON_SOFTKEYS_SELECTION_LIST;    
-    }
-
 // * NETWORK view *
 
 //----------------------------------------------------
@@ -602,19 +522,6 @@
     txt = qtn_mp_sett_stream_title_net;
     }
 
-//----------------------------------------------------
-//   
-//    r_mpsett_network_view
-//    Network view's Options menu and cba.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_mpsett_network_view
-    {
-    menubar = r_mpsett_app_and_adv_sett_menubar;  
-    cba = R_AVKON_SOFTKEYS_SELECTION_LIST;    
-    }
-
 // * ADVANCED bw view *
 
 //----------------------------------------------------
@@ -664,33 +571,6 @@
             identifier = EMPSettVideoContrastSettingId;
             name = qtn_mp_setting_video_contrast;
             setting_page_resource = r_mpsett_video_contrast_setting_page;
-            },
-        AVKON_SETTING_ITEM
-            {
-            identifier = EVcSettingsViewParentControlItem;
-            name = qtn_iptv_setting_parental_control;
-            setting_page_resource = r_vcsettingsview_settingview_parentcontrol_page;
-            associated_resource = r_vcsettingsview_settingview_parentcontrol_texts;
-            },
-        AVKON_SETTING_ITEM
-            {
-            identifier = EVcSettingsViewMemoryItem;
-            setting_page_resource = r_vcsettingsview_settingview_memory_page;
-            name = qtn_iptv_memory_setting;
-            associated_resource = r_vcsettingsview_settingview_memory_texts;
-            },
-        AVKON_SETTING_ITEM
-            {
-            identifier = EVcSettingsViewThumbnails;
-            setting_page_resource = r_vcsettingsview_settingview_thumbnails_page;
-            name = qtn_iptv_setting_thumbnails;
-            associated_resource = r_vcsettingsview_settingview_thumbnails_texts;
-            },
-        AVKON_SETTING_ITEM
-            {
-            identifier = EVcSettingsviewIadUpdateItem;
-            name = qtn_vcx_setting_version_number;
-            setting_page_resource = r_vcsettingsview_settingview_iadupdate_page;
             }
         };
     }
@@ -715,190 +595,6 @@
 
 //----------------------------------------------------
 //    
-//  r_vcsettingsview_settingview_iadupdate_page    
-//  Setting page resource for Video version.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_iadupdate_page
-    {
-    label = qtn_vcx_setting_version_number;
-    type = EEikCtEdwin;
-    editor_resource_id = r_vcsettingsview_settingview_iadupdate_editor;
-    }
-
-RESOURCE EDWIN r_vcsettingsview_settingview_iadupdate_editor
-    {
-    maxlength = 20;
-    }
-
-
-RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_thumbnails_page
-    {
-    type = EAknCtPopupSettingList;
-    editor_resource_id = r_vcsettingsview_settingview_thumbnails_editor;
-    }
-
-RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_thumbnails_editor
-    {
-    }
-
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_thumbnails_texts
-    {
-    setting_texts_resource = r_vcsettingsview_settingview_thumbnails_textspage_list;
-    popped_up_texts_resource = r_vcsettingsview_settingview_thumbnails_textsitem_array;
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_thumbnails_textspage_list
-    {
-    items =
-        {
-        AVKON_ENUMERATED_TEXT { value = 0; text = qtn_iptv_setting_off; },
-        AVKON_ENUMERATED_TEXT { value = 1; text = qtn_iptv_setting_on; }
-        };
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_thumbnails_textsitem_array
-    {
-    items =
-        {
-        LBUF { txt = qtn_iptv_setting_off; },
-        LBUF { txt = qtn_iptv_setting_on; }
-        };
-    }
-
-RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_parentcontrol_page
-    {
-    type = EAknCtPopupSettingList;
-    editor_resource_id = r_vcsettingsview_settingview_parentcontrol_editor;
-    }
-
-RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_parentcontrol_editor
-    {
-    }
-
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_parentcontrol_texts
-    {
-    setting_texts_resource = r_vcsettingsview_settingview_parentcontrol_textspage_list;
-    popped_up_texts_resource = r_vcsettingsview_settingview_parentcontrol_textsitem_array;
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_parentcontrol_textspage_list
-    {
-    items =
-        {
-        AVKON_ENUMERATED_TEXT { value = 0; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 1; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 2; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 3; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 4; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 5; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 6; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 7; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 8; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 9; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 10; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 11; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 12; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 13; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 14; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 15; text = ""; }
-        };
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_parentcontrol_textsitem_array
-    {
-    items =
-        {
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; },
-        LBUF { txt = ""; }
-        };
-    }
-
-RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_memory_page
-    {
-    type = EAknCtPopupSettingList;
-    editor_resource_id = r_vcsettingsview_settingview_memory_editor;
-    }
-
-RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_memory_editor
-    {
-    }
-
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_memory_texts
-    {
-    setting_texts_resource = r_vcsettingsview_settingview_memory_textspage_list;
-    popped_up_texts_resource = r_vcsettingsview_settingview_memory_textsitem_array;
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_memory_textspage_list
-    {
-    items =
-        {
-        AVKON_ENUMERATED_TEXT { value = 0; text = qtn_iptv_setting_phone_memory; },
-        AVKON_ENUMERATED_TEXT { value = 1; text = qtn_iptv_setting_memory_card; }
-        };
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_memory_textsitem_array
-    {
-    items =
-        {
-        LBUF { txt = qtn_iptv_setting_phone_memory; },
-        LBUF { txt = qtn_iptv_setting_memory_card; }
-        };
-    }
-
-RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_setting_subset_page
-    {
-    type = EAknCtPopupSettingList;
-    editor_resource_id = r_vcsettingsview_settingview_setting_subset_editor;
-    }
-
-RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_setting_subset_editor
-    {
-    }
-
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_setting_subset_texts
-    {
-    setting_texts_resource = r_vcsettingsview_settingview_setting_subset_textspage_list;
-    popped_up_texts_resource = r_vcsettingsview_settingview_setting_subset_textsitem_array;
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_setting_subset_textspage_list
-    {
-    items =
-        {
-        AVKON_ENUMERATED_TEXT { value = 0; text = ""; },
-        AVKON_ENUMERATED_TEXT { value = 1; text = ""; }
-        };
-    }
-
-RESOURCE ARRAY r_vcsettingsview_settingview_setting_subset_textsitem_array
-    {
-    items =
-        {
-        LBUF { txt = ""; },
-        LBUF { txt = ""; }
-        };
-    }
-
-//----------------------------------------------------
-//    
 //  r_mpsett_contrast_slider    
 //  Slider resource for Video contrast setting page.
 //
@@ -956,19 +652,38 @@
     {
     }
 
-// ** PROXY setting item list **
+// ** STREAMING setting item list **
 
 //----------------------------------------------------
 //    
-//  r_mpsett_proxy_setting_item_list    
+//  r_mpsett_streaming_setting_item_list  
 //  Proxy setting list view's item list.
 //
 //----------------------------------------------------
 //
-RESOURCE AVKON_SETTING_ITEM_LIST r_mpsett_proxy_setting_item_list
+RESOURCE AVKON_SETTING_ITEM_LIST r_mpsett_streaming_setting_item_list
     {
     items = 
         {
+#ifndef __PROTOCOL_CDMA                
+        AVKON_SETTING_ITEM
+            {
+            identifier = EMPSettDefaultAPSettingId;
+            name = qtn_mp_setting_default_ap;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = EMPSettMinUDPPortSettingId;
+            name = qtn_mp_setting_min_udp_port;
+            setting_page_resource = r_mpsett_min_udp_port_setting_page;         
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = EMPSettMaxUDPPortSettingId;
+            name = qtn_mp_setting_max_udp_port;
+            setting_page_resource = r_mpsett_max_udp_port_setting_page;         
+            },
+#endif            
         AVKON_SETTING_ITEM
             {
             identifier = EMPSettProxyModeSettingId;
@@ -1110,42 +825,6 @@
     maxlength = 5;
     }
 
-
-// ** NETWORK setting item list **
-
-//----------------------------------------------------
-//    
-//  r_mpsett_network_setting_item_list    
-//  Network setting list view's item list.
-//
-//----------------------------------------------------
-//
-RESOURCE AVKON_SETTING_ITEM_LIST r_mpsett_network_setting_item_list
-    {
-    items = 
-        {
-#ifndef __PROTOCOL_CDMA
-        AVKON_SETTING_ITEM
-            {
-            identifier = EMPSettDefaultAPSettingId;
-            name = qtn_mp_setting_default_ap;
-            },
-        AVKON_SETTING_ITEM
-            {
-            identifier = EMPSettMinUDPPortSettingId;
-            name = qtn_mp_setting_min_udp_port;
-            setting_page_resource = r_mpsett_min_udp_port_setting_page;         
-            },
-        AVKON_SETTING_ITEM
-            {
-            identifier = EMPSettMaxUDPPortSettingId;
-            name = qtn_mp_setting_max_udp_port;
-            setting_page_resource = r_mpsett_max_udp_port_setting_page;         
-            }
-#endif
-        };
-    }
-
 // * UDP PORT RANGE *
 
 //----------------------------------------------------
@@ -1528,12 +1207,10 @@
 
 // *** PLUGIN VIEWS ***
 
-
 // *** GSVideoPlugin ***
 //----------------------------------------------------
 //   
 //    r_gs_mediasetting_view
-//    Telephony sub-menu view
 //
 //----------------------------------------------------
 //
@@ -1599,7 +1276,6 @@
     buf = qtn_set_folder_media_player;
     }
 
-
 // MSK Handling
 
 // -----------------------------------------------------------------------------
@@ -1638,82 +1314,6 @@
     buf = qtn_msk_change;
     }
 
-// ----------------------------------------------------------------------------   
-// r_iptv_database_phone
-// "Phone memory"
-// ----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_iptv_setting_phone_memory
-    {
-    buf = qtn_iptv_setting_phone_memory;
-    }
-
-// ----------------------------------------------------------------------------
-// r_iptv_setting_mass_memory
-// "Mass memory"
-// ----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_iptv_setting_mass_memory
-    {
-    buf = qtn_iptv_setting_mass_memory;
-    }
-
-// ----------------------------------------------------------------------------
-// r_iptv_setting_memory_card
-// "Memory card"
-// ----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_iptv_setting_memory_card
-    {
-    buf = qtn_iptv_setting_memory_card;
-    }
-
-// ----------------------------------------------------------------------------
-// r_iptv_locked_memory_card
-// "Locked memory card"
-// ----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_iptv_locked_memory_card
-    {
-    buf = qtn_iptv_locked_memory_card;
-    }
-
-// ----------------------------------------------------------------------------
-// r_iptv_parental_control_off
-// "Off"
-// ----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_iptv_parental_control_off
-    {
-    buf = qtn_iptv_setting_off;
-    }
-
-// ----------------------------------------------------------------------------
-// r_iptv_parental_control_n_years
-// "4 years"
-// ----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_iptv_parental_control_n_years
-    {
-    buf = qtn_iptv_parental_control_n_years;
-    }
-
-#ifdef RD_MULTIPLE_DRIVE_ENABLERS
-// --------------------------------------------------------------------------
-// Memory selection dialog
-// --------------------------------------------------------------------------
-//
-RESOURCE MEMORYSELECTIONDIALOG r_mtv_memory_selection_dialog
-    {
-    softkey_1 = text_softkey_select;
-    softkey_2 = text_softkey_cancel;
-    locations =
-        {   
-        LOCATION { root_path = "C:\\"; }
-        };
-    }
-#endif
-
 //----------------------------------------------------
 //   
 //    r_mpsett_app_and_change_menubar
--- a/mediasettings/mediasettingsapp/group/mediasettingsapp.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/group/mediasettingsapp.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 5 %
+// Version : %version: 6 %
 
 
 
@@ -41,12 +41,7 @@
 SOURCE          MPSettingsVideoView.cpp
 SOURCE          MPSettingsStreamingView.cpp
 SOURCE          MPSettingsStreamingContainer.cpp
-SOURCE          MPSettingsProxySettingItemList.cpp
-SOURCE          MPSettingsProxyContainer.cpp
-SOURCE          MPSettingsProxyView.cpp
-SOURCE          MPSettingsNetworkSettingItemList.cpp
-SOURCE          MPSettingsNetworkContainer.cpp
-SOURCE          MPSettingsNetworkView.cpp
+SOURCE          MPSettingsStreamingSettingItemList.cpp
 SOURCE          MPSettingsSliderSettingItem.cpp
 SOURCE          MPSettingsUDPPortSettingItem.cpp
 SOURCE          MPSettingsAdvancedBwContainer.cpp
@@ -70,7 +65,6 @@
 USERINCLUDE     ../../mpsettbase/inc
 USERINCLUDE     ../../videoplayersettingsengine/inc
 USERINCLUDE     ../../mediasettingsengine/inc
-USERINCLUDE     ../../feedsettingsviews/inc
 
 APP_LAYER_SYSTEMINCLUDE
 SYSTEMINCLUDE   /epoc32/include/ecom
@@ -96,10 +90,8 @@
 LIBRARY         mpsettbase.lib
 LIBRARY         mpsettengine.lib
 LIBRARY         flogger.lib
-LIBRARY         sisregistryclient.lib
-LIBRARY   		vcxnssettingsengine.lib
-LIBRARY			commondialogs.lib
-LIBRARY			cmmanager.lib
-LIBRARY   		vcxnssettingsview.lib
+LIBRARY         vcxnssettingsengine.lib
+LIBRARY         commondialogs.lib
+LIBRARY	        cmmanager.lib
 
 // End of File
--- a/mediasettings/mediasettingsapp/inc/MPSettingsAdvancedBwSettingItem.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsAdvancedBwSettingItem.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 3 %
+// Version : %version: 4 %
 
 
 
@@ -110,7 +110,6 @@
         RArray<TInt>& iValueArray;
         TInt& iValue;
         TInt iQueryRes;
-        CEikonEnv* iEnv;
 
         CArrayPtr<CAknEnumeratedText>* iEnumTextArray;
     };
--- a/mediasettings/mediasettingsapp/inc/MPSettingsAppUi.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsAppUi.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 5 %
+// Version : %version: 6 %
 
 
 
@@ -115,7 +115,12 @@
         */
         void UpdateTabIndex();
 
-
+        /**
+        * Activates view.
+		* @param aViewId View Id
+        */
+        void ActivateLocalViewL( TUid aViewId );
+        
     private:
 
         /**
@@ -157,19 +162,40 @@
         */
         void AddTabSettingsGroupL();
 
+        /**
+         * Check whether or not the Contrast settings item should be drawn
+		 * @return ETrue, if contrast item should be visible.
+         */
+        TBool VideoContrastIsSupportedL();        
+        
     private: //Data
+
+        /**
+         * Navi pane. Not own.
+         */
         CAknNavigationControlContainer* iNaviPane;
+        
+        /**
+         * Tab group. Not own.
+         */
         CAknTabGroup*                   iTabGroup; 
-        CAknNavigationDecorator*        iDecoratedTabGroup; // owned
+
+        /**
+         * Decorated tab group. Own.
+         */
+        CAknNavigationDecorator*        iDecoratedTabGroup;
 
         CArrayFix<TUid>*                iViewIds;
         CMPSettingsMainView*            iMainView;
         RImplInfoPtrArray               iImplInfoArray;
 
-        CMPSettingsModel* iModel;
-        CMPSettingsModelForROP* iRopModel;
-        
-		TBool	iConstructAsGsPlugin;
+        CMPSettingsModel*               iModel;
+        CMPSettingsModelForROP*         iRopModel;
+		
+		/**
+		 * Video view availability status.
+		 */
+		TBool iVideoViewAvailable;
     };
 
 #endif
--- a/mediasettings/mediasettingsapp/inc/MPSettingsConstants.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsConstants.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 3 %
+// Version : %version: 4 %
 
 
 
@@ -37,7 +37,6 @@
 const TUid KMPSettVideoViewId = {2};
 const TUid KMPSettAudioViewId = {3};
 const TUid KMPSettStreamingViewId = {4};
-const TUid KMPSettFeedsViewId = {5};
 
 // UIDs for subviews
 const TUid KMPSettProxyViewId = {11};
--- a/mediasettings/mediasettingsapp/inc/MPSettingsStreamingContainer.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsStreamingContainer.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 2 %
+// Version : %version: 3 %
 
 
 
@@ -28,8 +28,9 @@
 // FORWARD DECLARATIONS
 class CEikTextListBox;
 class CMPSettingsModelForROP;
+class CMPSettingsStreamingSettingItemList;
+
 // CLASS DECLARATION
-
 /**
 *  CMPSettingsStreamingContainer  container control class.
 *  
@@ -56,8 +57,15 @@
         * From CoeControl
         */
         void GetHelpContext(TCoeHelpContext& aContext) const;
-	void FocusChanged(TDrawNow /*aDrawNow*/);
+	    void FocusChanged(TDrawNow /*aDrawNow*/);
    
+        /**
+        * Edits current setting item.
+        * 
+        * @param aMenuOption
+        */
+        void EditCurrentItemFromMenuL(TBool aMenuOption);
+	
     protected: // Functions from base classes 
 
         /**
@@ -72,6 +80,12 @@
         */
         TInt TitleResourceId();
         CMPSettingsModelForROP* iModel;
+	
+		/**
+		 * Setting item list.
+	     */
+        CMPSettingsStreamingSettingItemList* iSettingList;
+    
     };
 
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsStreamingSettingItemList.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,198 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Setting item list class for Streaming setting list view.*
+*/
+
+
+// Version : %version: 2 %
+
+
+
+
+#ifndef MPSETTINGSSTREAMINGSETTINGITEMLIST_H
+#define MPSETTINGSSTREAMINGSETTINGITEMLIST_H
+
+//  INCLUDES
+#include <aknsettingitemlist.h>
+
+// FORWARD DECLARATIONS
+class CMPSettingsModelForROP;
+
+// CONSTANTS
+const TInt KMaxApNameLength = 255;
+
+// CLASS DECLARATION
+
+/**
+*  CMPSettingsStreamingSettingItemList
+*  Setting item list class for Streaming setting list view.
+*
+*/
+class CMPSettingsStreamingSettingItemList : public CAknSettingItemList
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ default constructor.
+        */
+        CMPSettingsStreamingSettingItemList(CMPSettingsModelForROP* aModel);
+
+	    /**
+	    * 2nd-stage construction from resource id
+	    */
+	    void ConstructFromResourceL(TInt aResourceId);
+
+        /**
+        * From CCoeControl, 2nd-stage construction from constructed resource reader
+        */
+        void ConstructFromResourceL(TResourceReader& aReader);
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CMPSettingsStreamingSettingItemList();
+
+    public:     // Functions from base classes
+
+        /**
+        * From CAknSettingItemList
+        */
+        void EditItemL(TInt aIndex, TBool aCalledFromMenu);
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From CAknSettingItemList
+        */
+        CAknSettingItem* CreateSettingItemL(TInt aSettingId);
+
+    private: //New
+
+        /**
+        * Sets Proxy host and Proxy port item visibility according to Proxy mode.
+        */
+        void SetItemVisibilityL();
+
+        /**
+        * Loads all setting values.
+        */
+        void LoadAllL();
+
+        /**
+        * Loads a specific setting value.
+        * @param aSettingId ID of the setting to be loaded.
+        */
+        void LoadSettingL(TInt aSettingId);
+
+        /**
+        * Stores a specific setting value.
+        * @param aSettingId ID of the setting to be stored.
+        */
+        void StoreSettingL(TInt aSettingId);
+
+        /**
+        * Launches the platform dialog for the connection selection.
+        */
+        void LaunchConnectionSelectionL();        
+
+        /**
+        * Updates currently selected connection's name to setting item.
+        */
+        void UpdateSelectedConnectionNameL();
+        
+        /**
+        * Sets proxy mode to disabled. 
+        */
+        void CheckProxyDisableL();
+        
+    private: // From MEikListBoxObserver
+
+        /**
+         * Event handling section
+         */
+        void HandleListBoxEventL( CEikListBox* aListBox, 
+                                  TListBoxEvent aListBoxEvent );        
+        
+    private:
+        
+        /**
+         * ROP model. Not own. 
+         */
+        CMPSettingsModelForROP* iModel;
+
+        /**
+         * Proxy mode (on/off).
+         */
+        TBool iProxyMode;
+
+        /**
+         * Proxy host. Own.
+         */
+        HBufC* iProxyHost;
+
+        /**
+         * Pointer to Proxy host.
+         */
+        TPtr iProxyHostPtr;
+
+        /**
+         * Proxy port number.
+         */
+        TInt iProxyPort;
+
+        /**
+         * Connection timeout setting value.
+         */
+        TInt iConnTimeout;
+        
+        /**
+         * Server timeout setting value.
+         */
+        TInt iSrvTimeout;
+        
+        /**
+         * Access point id. 
+         */
+        TUint32 iDefaultAP;
+
+        /**
+         * Minimum UDP port number.
+         */
+        TInt iMinUDPPort;
+
+        /**
+         * Maximum UDP port number.
+         */
+        TInt iMaxUDPPort;
+
+        /**
+         * Name of selected access point. Own.
+         */
+        TBuf<KMaxApNameLength> iSelectedApName;
+      
+        /**
+         *  Connection setting item. Not own.
+         */
+        CAknTextSettingItem* iSettingConnectionItem;
+        
+        /**
+         *  Proxy mode item. Not own.
+         */
+        CAknBinaryPopupSettingItem* iSettingProxyItem;
+        
+    };
+
+#endif      // MPSETTINGSSTREAMINGSETTINGITEMLIST_H   
+            
+// End of File
--- a/mediasettings/mediasettingsapp/inc/MPSettingsStreamingView.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsStreamingView.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 2 %
+// Version : %version: 3 %
 
 
 
@@ -32,10 +32,8 @@
 /**
 *  CMPSettingsStreamingView view class.
 * 
-*  @lib MediaSettings.app
-*  @since 2.0
 */
-class CMPSettingsStreamingView : public CMPSettingsBaseView, public MEikListBoxObserver
+class CMPSettingsStreamingView : public CMPSettingsBaseView 
     {
     public: // Constructors and destructor
 
@@ -63,14 +61,7 @@
 
     protected: // from MEikListBoxObserver
 
-        /**
-        * Handles listbox events.
-        * @param aListBox Listbox where the event occurred.
-        * @param aEventType Event type.
-        */
-        void HandleListBoxEventL(CEikListBox* aListBox,
-                                 TListBoxEvent aEventType);
-
+ 
     protected: // From CMPSettingsBaseView
 
         /**
@@ -99,7 +90,6 @@
         /**
         * Handles listbox selection.
         */
-        virtual void HandleListBoxSelectionL();
 		CMPSettingsModelForROP* iModel;
 
     };
--- a/mediasettings/mediasettingsapp/inc/MPSettingsVideoSettingItemList.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsVideoSettingItemList.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 6 %
+// Version : %version: 7 %
 
 
 
@@ -25,23 +25,8 @@
 
 //  INCLUDES
 #include <aknsettingitemlist.h>
-#include "videosettingsdrivemonitor.h"
-#include "mvideosettingsdrivemonitorobserver.h"
 
 // CONSTANTS
-// VideoCenter SIS package UID
-const TUid KSisUid = { 0x200159B2 };
-
-// formatting string for version number
-_LIT( KVersionNumberFormat, "%d.%d(%d)" );
-
-// Max length of the above version number string, whose format is
-// major.minor(build). Header e32cmn.h states that their ranges are:
-//   1. the major version number, ranging from 0 to 127, inclusive
-//   2. the minor version number, ranging from 0 to 99 inclusive
-//   3. the build number, ranging from 0 to 32767 inclusive.
-// Which makes the total max length 3+1+2+1+5+1 = 13
-const TInt KMaxVersionNumberLength( 13 );
 
 
 // When video contrast is not drawn, we know to shift the contents
@@ -50,7 +35,6 @@
 // FORWARD DECLARATIONS
 class CMPSettingsModelForROP;
 class CVcxNsSettingsEngine;
-class TIptvDriveMonitorEvent;
 
 // CLASS DECLARATION
 
@@ -61,8 +45,7 @@
 *  @lib MediaSettings.app
 *  @since 2.0
 */
-class CMPSettingsVideoSettingItemList : public CAknSettingItemList, 
-                                        public MIptvDriveMonitorObserver
+class CMPSettingsVideoSettingItemList : public CAknSettingItemList 
     {
     public:  // Constructors and destructor
         
@@ -91,31 +74,7 @@
         virtual ~CMPSettingsVideoSettingItemList();
 
     public:
-
-        /**
-        * Edits thumbnail setting item.
-        * 
-        * @param itemIndex       Setting list index.
-        * @param aCalledFromMenu ETrue if started from menu.
-        */
-        void EditThumbnailItemL( TInt itemIndex, TBool aCalledFromMenu );
-
-        /**
-        * Edits parent control settting item.
-        * 
-        * @param itemIndex       Setting list index.
-        * @param aCalledFromMenu ETrue if started from menu.
-        */
-        void EditParentControlItemL( TInt itemIndex, TBool aCalledFromMenu );
-
-        /**
-        * Edits preferred memory settting item.
-        * 
-        * @param itemIndex       Setting list index.
-        * @param aCalledFromMenu ETrue if started from menu.
-        */
-        void EditPreferredMemoryItemL( TInt itemIndex, TBool aCalledFromMenu );
-  
+ 
         /**
         * Check if specified item is currently selected. 
 		* 
@@ -123,6 +82,11 @@
         */
         TBool IsCurrentItem( TInt aIndex );
         
+        /**
+         * Check wheter or not the Contrast settings item shold be drawn
+         */
+        TBool VideoContrastIsSupportedL();
+        
     public:     // Functions from base classes
 
         /**
@@ -142,16 +106,6 @@
         */
         void LoadSettingsL();
         
-        /**
-         * Finishes construction of listbox. Should be called after the
-         * listbox is otherwise fully constructed.
-         */
-        void FinishConstructionL();
-        
-    public: // From MIptvDriveMonitorObserver
-
-        void HandleDriveMonitorEvent( TIptvDriveMonitorEvent& aEvent );
-        
     protected:  // Functions from base classes
         
         /**
@@ -182,96 +136,6 @@
         void LoadAllL();
         
         /**
-         * Updates version number item to settings list.
-         */
-        void UpdateVersionNumberTextL();
-        
-        /**
-        * Updates text of "parent control" setting item.
-        */
-        void UpdateParentControlTextL();
-        
-        /**
-         * Fetch current parent control age and return corresponding index.
-         *
-         * @return Parent control age.
-         */
-        TInt GetCurrentParentControl();
-        
-        /**
-            * Convert and save parent control index as age.
-            *
-            * @param aParentControlIndex Index of parent control selection.
-            */
-        void SetCurrentParentControl( TInt aParentControlIndex );
-        
-        /**
-         * Updates text of "memory" setting item.
-         */
-        void UpdateMemoryItemTextL();
-        
-        /**
-         * Adds phone memory descriptor to arrays.
-         *
-         * @param aIndex index in enumeration list.
-         * @param aEnumeratedTextArray
-         * @param aPoppedUpTextArray
-         */
-        void AddPhoneMemoryDesToArraysL( TInt aIndex,
-                CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                CArrayPtr<HBufC>& aPoppedUpTextArray );
-
-        /**
-         * Adds memory card descriptor to arrays.
-         *
-         * @param aIndex index in enumeration list.
-         * @param aEnumeratedTextArray
-         * @param aPoppedUpTextArray
-         */
-        void AddMemoryCardDesToArraysL( TInt aIndex,
-                CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                CArrayPtr<HBufC>& aPoppedUpTextArray );
-        /**
-         * Adds locked memory card descriptor to arrays.
-         *
-         * @param aIndex index in enumeration list.
-         * @param aEnumeratedTextArray
-         * @param aPoppedUpTextArray
-         */
-        void AddLockedMemoryCardDesToArraysL( TInt aIndex,
-                CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                CArrayPtr<HBufC>& aPoppedUpTextArray );
-
-        /**
-         * Adds hard disk descriptor to arrays.
-         *
-         * @param aIndex index in enumeration list.
-         * @param aEnumeratedTextArray
-         * @param aPoppedUpTextArray
-         */
-        void AddHardDiskDesToArraysL( TInt aIndex,
-                CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                CArrayPtr<HBufC>& aPoppedUpTextArray );
-
-        /**
-         * Adds descriptor to arrays.
-         *
-         * @param aIndex index in enumeration list.
-         * @param aText Descriptor to add. Ownership moves.
-         * @param aEnumeratedTextArray
-         * @param aPoppedUpTextArray
-         */
-        void AddDesToArraysL( TInt aIndex,
-                HBufC* aText,
-                CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                CArrayPtr<HBufC>& aPoppedUpTextArray );
-
-        /**
-         * Check wheter or not the Contrast settings item shold be drawn
-         */
-        TBool VideoContrastIsSupportedL();
-        
-        /**
          * Event handling section, from MEikListBoxObserver.
          */
         void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent);
@@ -280,26 +144,6 @@
 		CMPSettingsModelForROP* iModel;
 		CVcxNsSettingsEngine& iVideoSettingsEngine;  // Video settings engine
 		
-		CVideoSettingsDriveMonitor* iDriveMonitor; // Drive monitor
-		
-	    TBuf< KMaxVersionNumberLength > iSettingVersionText; // version text
-	    CAknTextSettingItem* iSettingIadUpdateItem;  // IAD update setting item
-	    
-	    CAknEnumeratedTextPopupSettingItem* iSettingThumbnailsItem; // Thumbnail setting item
-	    TInt iSettingThumbnails;   // Selected thumbnail setting value
-	    
-	    CAknEnumeratedTextPopupSettingItem* iSettingParentControlItem; // Parent control setting item
-	    TInt iParentControlIndex;  // Selected parent control setting value
-	    /**
-	     * Is the phone's lock code entered succesfully, 
-	     * required for editing parent control settings.
-	     */
-	    TBool iLockCodeAccepted;
-	    
-	    CAknEnumeratedTextPopupSettingItem* iSettingMemoryItem; // Memory setting item
-	    TInt iSettingMemory;   // Selected memory setting value
-	    
-	    CAknEnumeratedTextPopupSettingItem* iSettingServiceItem; // Service selection item
 	    TInt iSettingTemp; // Dummy setting placeholder for settings sublist items
 	    
         TInt iVideoContrast;
--- a/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwContainer.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwContainer.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 7 %
+// Version : %version: 8 %
 
 
 
@@ -94,7 +94,7 @@
 //
 TInt CMPSettingsAdvancedBwContainer::TitleResourceId()
     {
-    return R_MPSETT_NETWORK_VIEW_TITLE;
+    return R_MPSETT_STREAMING_VIEW_TITLE;
     }
 
 // ---------------------------------------------------------
--- a/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwSettingItem.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwSettingItem.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 6 %
+// Version : %version: 7 %
 
 
 
@@ -49,8 +49,7 @@
     CAknEnumeratedTextPopupSettingItem(aIdentifier, aListValue),
     iValueArray(aValueArray),
     iValue(aValue),
-    iQueryRes(aQueryRes),
-    iEnv(CEikonEnv::Static())
+    iQueryRes(aQueryRes)
     {
     MPX_FUNC("#MS# CMPSettingsAdvancedBwSettingItem::CMPSettingsAdvancedBwSettingItem()");
     }
--- a/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwView.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwView.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 6 %
+// Version : %version: 8 %
 
 
 
@@ -41,8 +41,11 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-CMPSettingsAdvancedBwView::CMPSettingsAdvancedBwView(CMPSettingsModelForROP* aModel, TBool iConstructAsGsPlugin) 
-    : iModel( aModel), iGsPlugin(iConstructAsGsPlugin)
+CMPSettingsAdvancedBwView::CMPSettingsAdvancedBwView( 
+        CMPSettingsModelForROP* aModel,
+        TBool iConstructAsGsPlugin ) 
+    : iModel( aModel), 
+      iGsPlugin(iConstructAsGsPlugin)
     {
     MPX_FUNC("#MS# CMPSettingsAdvancedBwView::CMPSettingsAdvancedBwView()");
     }
@@ -63,7 +66,9 @@
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CMPSettingsAdvancedBwView* CMPSettingsAdvancedBwView::NewLC(CMPSettingsModelForROP* aModel, TBool iConstructAsGsPlugin)
+CMPSettingsAdvancedBwView* CMPSettingsAdvancedBwView::NewLC(
+        CMPSettingsModelForROP* aModel, 
+        TBool iConstructAsGsPlugin )
     {
     MPX_DEBUG2(_L("#MS# CMPSettingsAdvancedBwView::NewLC(%d)"),iConstructAsGsPlugin);
     CMPSettingsAdvancedBwView* self = new(ELeave) CMPSettingsAdvancedBwView(aModel,iConstructAsGsPlugin);
@@ -107,13 +112,13 @@
             static_cast<CMPSettingsAdvancedBwContainer*>(iContainer)->EditCurrentItemFromMenuL();
             break;
         case EAknSoftkeyBack:
-            AppUi()->ActivateLocalViewL(KMPSettNetworkViewId);
+            AppUi()->ActivateLocalViewL( KMPSettStreamingViewId );
             break;
         case EMPSettCmdHelp:
             if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
+                {
                 HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() );
-            }
+                }
             break;
         default:
             AppUi()->HandleCommandL(aCommand);
@@ -139,10 +144,10 @@
 void CMPSettingsAdvancedBwView::SetNaviPaneL()
     {
     MPX_FUNC("#MS# CMPSettingsAdvancedBwView::SetNaviPaneL()");
-        if (!iGsPlugin)
+    if (!iGsPlugin)
         {
-            iNaviPaneContext = NULL;
-            CMPSettingsBaseView::SetNaviPaneL();
+        iNaviPaneContext = NULL;
+        CMPSettingsBaseView::SetNaviPaneL();
         }
     CMPSettingsBaseView::SetMiddleSoftKeyLabelL(R_MEDIASETTING_MSK_CHANGE,EMPSettCmdChange);
     }
--- a/mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 9 %
+// Version : %version: 11 %
 
 
 
@@ -35,8 +35,6 @@
 #include    "MPSettingsMainView.h"
 #include    "MPSettingsVideoView.h"
 #include    "MPSettingsStreamingView.h"
-#include    "MPSettingsProxyView.h"
-#include    "MPSettingsNetworkView.h"
 #include    "MPSettingsConstants.h"
 #include    "MPSettingsPluginView.h"
 #include    "MPSettingsAdvancedBwView.h"
@@ -44,10 +42,13 @@
 #include    "mpsettingsmodel.h"
 #include    "MPSettingsModelForROP.h"
 #include    "mpxlog.h"
-#include    "feedsettingsview.h"
+
+#include    <centralrepository.h>
+#include    "MediaPlayerPrivateCRKeys.h"
+#include    "MediaPlayerVariant.hrh" 
 
 // CONSTANTS
-const TInt KMPSettViewIdArrayGranularity = 3;
+const TInt KMPSettViewIdArrayGranularity = 2;
 
 // ================= MEMBER FUNCTIONS =======================
 //
@@ -58,7 +59,7 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-CMPSettingsAppUi::CMPSettingsAppUi() : iConstructAsGsPlugin(EFalse)
+CMPSettingsAppUi::CMPSettingsAppUi()
     {
     MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::CMPSettingsAppUi()"));
     }
@@ -77,8 +78,9 @@
     // Sets up TLS, must be done before FeatureManager is used.
     FeatureManager::InitializeLibL();   
 
-    CMPSettingsDocument* doc = static_cast<CMPSettingsDocument*>(static_cast<CEikAppUi*>
-        (CEikonEnv::Static()->AppUi())->Document());
+    iVideoViewAvailable =  VideoContrastIsSupportedL();
+    
+    CMPSettingsDocument* doc = static_cast<CMPSettingsDocument*>( Document() );
     iModel = doc->SettingsModel();
     iRopModel = static_cast<CMPSettingsModelForROP*>(iModel);
 
@@ -90,52 +92,46 @@
     // Construct navipane tabs 
     iDecoratedTabGroup = iNaviPane->CreateTabGroupL(this);
 
-    // Construct tabs
-    AddTabSettingsGroupL();
+    // Construct tabs if we have multiple views
+    if ( iVideoViewAvailable )
+        {
+        AddTabSettingsGroupL();
+        }
 
     // Create vector which contains view id's for all setting folders. 
     iViewIds = new(ELeave) CArrayFixFlat<TUid>(KMPSettViewIdArrayGranularity);
-    iViewIds->AppendL(KMPSettVideoViewId);
-    iViewIds->AppendL(KMPSettStreamingViewId);
-    iViewIds->AppendL(KMPSettFeedsViewId);
-
-    // * Create application views *
+    if ( iVideoViewAvailable )
+        {
+        iViewIds->AppendL( KMPSettVideoViewId );
+        }
+    iViewIds->AppendL( KMPSettStreamingViewId );
 
+    // Create application views
     CAknView* view;  
-
-    view = CMPSettingsMainView::NewLC(iViewIds,iRopModel,iConstructAsGsPlugin);
+    view = CMPSettingsMainView::NewLC( iViewIds, iRopModel, EFalse );
     AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view
+    CleanupStack::Pop(); // view
 
     // iMainView is not owned, i.e. it is not deleted in the destructor ->
     // main view cannot be directly creted to iMainView, as it's against the coding
     // conventions to place class' pointers to cleanup stack => static_cast.
     iMainView = static_cast<CMPSettingsMainView*>(view);
 
-    view = CMPSettingsVideoView::NewLC(iRopModel);
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view
-
-    view = CMPSettingsStreamingView::NewLC(iRopModel);
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
-    view = CVcxNsSettingsView::NewLC();
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
+    if ( iVideoViewAvailable )
+        {
+        view = CMPSettingsVideoView::NewLC(iRopModel);
+        AddViewL(view);      // transfer ownership to CAknViewAppUi
+        CleanupStack::Pop(); // view
+        }
     
-    view = CMPSettingsProxyView::NewLC(iRopModel,iConstructAsGsPlugin);
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
-    view = CMPSettingsNetworkView::NewLC(iRopModel,iConstructAsGsPlugin);
+    CMPSettingsStreamingView* streamingView = CMPSettingsStreamingView::NewLC(iRopModel);
+    view = streamingView;
     AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
+    CleanupStack::Pop(); // view 
 
-    view = CMPSettingsAdvancedBwView::NewLC(iRopModel,iConstructAsGsPlugin);
+    view = CMPSettingsAdvancedBwView::NewLC( iRopModel, EFalse );
     AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
+    CleanupStack::Pop(); // view 
 
     // Construct plug-in views (if any exists)
     CMPSettingsPluginView::ListImplementationsL(iImplInfoArray);
@@ -164,7 +160,14 @@
         User::LeaveIfError(iViewIds->Sort(sortKey));
         }
  
-    SetDefaultViewL(*iMainView);
+    if ( iVideoViewAvailable && iMainView )
+        {    
+        SetDefaultViewL(*iMainView);
+        }
+    else if ( streamingView )
+        {
+        SetDefaultViewL(*streamingView);
+        }
     }
 
 // ----------------------------------------------------
@@ -176,20 +179,15 @@
 CMPSettingsAppUi::~CMPSettingsAppUi()
     {
     MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::~CMPSettingsAppUi()"));
-    if (iDecoratedTabGroup) 
-        {
-        delete iDecoratedTabGroup;
-        }
+
+    delete iDecoratedTabGroup;
 
     if (iDoorObserver)
         {
         iDoorObserver->NotifyExit(MApaEmbeddedDocObserver::EEmpty);
         }
 
-    if (iViewIds) 
-        {
-        delete iViewIds;
-        }
+    delete iViewIds;
 
     iImplInfoArray.ResetAndDestroy();
     FeatureManager::UnInitializeLib();
@@ -233,7 +231,6 @@
         }
     }
  
-
 // ----------------------------------------------------
 // CMPSettingsAppUi::TabChangedL
 // MAknTabObserver callback for handling tab changed event.
@@ -274,7 +271,10 @@
 void CMPSettingsAppUi::UpdateTabIndex()
     {
     MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::UpdateTabIndex()"));
-    iTabGroup->SetActiveTabByIndex(iMainView->ActiveFolder());
+    if ( iTabGroup )
+        {
+        iTabGroup->SetActiveTabByIndex( iMainView->ActiveFolder() );
+        }
     }
 
 // ------------------------------------------------------------------------------
@@ -309,7 +309,6 @@
     return iTabGroup->OfferKeyEventL(aKeyEvent, aType);
     }
 
-
 // ----------------------------------------------------
 // CMPSettingsAppUi::AddTabSettingsGroupL()
 // (Re)create tab group with skin support
@@ -331,7 +330,7 @@
     iTabGroup = static_cast<CAknTabGroup*>
         (iDecoratedTabGroup->DecoratedControl());
 
-    iTabGroup->SetTabFixedWidthL(KTabWidthWithThreeTabs);
+    iTabGroup->SetTabFixedWidthL(KTabWidthWithTwoTabs);
 
     HBufC* mbmpath = StringLoader::LoadLC(R_MPSETT_ICON_MBM_FILE);
 
@@ -361,12 +360,6 @@
         EMbmMediasettingsQgn_prop_set_mp_stream_tab2,
         EMbmMediasettingsQgn_prop_set_mp_stream_tab2_mask,
         EMPViewStreamTab);
-
-    AddTabSettingsL(KAknsIIDQgnPropSetMpStreamTab3,
-        fileName,
-        EMbmMediasettingsQgn_prop_set_mp_video_tab3,
-        EMbmMediasettingsQgn_prop_set_mp_video_tab3_mask,
-        EMPViewFeedsTab);
     
     CleanupStack::PopAndDestroy();  // mbmpath
 
@@ -411,4 +404,36 @@
     CleanupStack::Pop(2); // bitmap, mask
     }
 
+// ----------------------------------------------------
+// CMPSettingsAppUi::ActivateLocalViewL
+// ----------------------------------------------------
+//
+void CMPSettingsAppUi::ActivateLocalViewL( TUid aViewId )
+    {
+    if ( !iVideoViewAvailable && 
+         aViewId == KMPSettMainViewId )
+        {
+        HandleCommandL( EEikCmdExit );
+        }
+    else 
+        {
+        CAknViewAppUi::ActivateLocalViewL( aViewId );
+        }
+    }
+
+// ----------------------------------------------------
+// CMPSettingsAppUi::VideoContrastIsSupportedL
+// ----------------------------------------------------
+//
+TBool CMPSettingsAppUi::VideoContrastIsSupportedL()
+    {
+    TInt flags = 0;
+
+    CRepository* repository = CRepository::NewL( KCRUidMediaPlayerFeatures );
+    repository->Get( KMPLocalVariation, flags );
+    delete repository;
+
+    return ( flags & KMediaPlayerVideoContrast );
+    }
+
 // End of File  
--- a/mediasettings/mediasettingsapp/src/MPSettingsMainContainer.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsMainContainer.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 9 %
+// Version : %version: 10 %
 
 
 
@@ -43,7 +43,7 @@
 #include	"mpxlog.h"
 
 // CONSTANTS
-const TInt KIconArrayGranularity = 3;
+const TInt KIconArrayGranularity = 2;
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -226,13 +226,7 @@
         EMbmMediasettingsQgn_prop_set_mp_stream_sub, 
         EMbmMediasettingsQgn_prop_set_mp_stream_sub_mask );
   
-    AppendIconToArrayL( 
-        icons, 
-        KAknsIIDQgnPropSetMpVideoSub, 
-        fileName, 
-        EMbmMediasettingsQgn_prop_set_service, 
-        EMbmMediasettingsQgn_prop_set_service_mask );
-
+    
     CleanupStack::Pop(); // icons
     CleanupStack::PopAndDestroy(); // mbmpath
 
--- a/mediasettings/mediasettingsapp/src/MPSettingsMainView.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsMainView.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 7 %
+// Version : %version: 8 %
 
 
 
@@ -107,14 +107,14 @@
             HandleListBoxSelectionL();
             break;
         case EAknSoftkeyBack:
-            if (iGsPlugin)
-            {
+            if ( iGsPlugin )
+                {
                 AppUi()->ActivateLocalViewL( KGSVideoPluginUid );       
-            }
+                }
             else
-            {
+                {
                 AppUi()->HandleCommandL(EEikCmdExit);
-            }
+                }
             break;
         default:
             AppUi()->HandleCommandL(aCommand);
@@ -210,7 +210,10 @@
         view->SetCurrentItem(KMPSettTopItemIndex);
         }
 
-    AppUi()->ActivateLocalViewL(iViewIds->At(iCurrentItem));
+    if ( iCurrentItem < count )
+        {
+        AppUi()->ActivateLocalViewL(iViewIds->At(iCurrentItem));
+        }
     }
 
 
--- a/mediasettings/mediasettingsapp/src/MPSettingsStreamingContainer.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsStreamingContainer.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 7 %
+// Version : %version: 8 %
 
 
 
@@ -27,6 +27,7 @@
 
 #include    "MPSettingsApp.h"
 #include    "MPSettingsStreamingContainer.h"
+#include    "MPSettingsStreamingSettingItemList.h"
 #include    "MPSettingsConstants.h"
 #include	"mpxlog.h"
 
@@ -52,10 +53,8 @@
 CMPSettingsStreamingContainer::~CMPSettingsStreamingContainer()
     {
     MPX_DEBUG1(_L("#MS# CMPSettingsStreamingContainer::~CMPSettingsStreamingContainer()"));
-	if (iListBox) 
-		{
-		delete iListBox;
-		}
+
+    delete iSettingList;
     }
 
 // ---------------------------------------------------------
@@ -65,19 +64,13 @@
 void CMPSettingsStreamingContainer::ConstructComponentControlsL()
     {
     MPX_FUNC("#MS# CMPSettingsStreamingContainer::ConstructComponentControlsL()");
-    iListBox = new(ELeave) CAknSettingStyleListBox;
-   
-    iListBox->SetContainerWindowL(*this); // set's iListBox to be contained in this container
+    
+    iSettingList = new(ELeave) CMPSettingsStreamingSettingItemList( iModel );
+    iSettingList->SetContainerWindowL( *this );
+    iSettingList->ConstructFromResourceL( R_MPSETT_STREAMING_SETTING_ITEM_LIST );
 
-    TResourceReader rReader;
-    iCoeEnv->Static()->CreateResourceReaderLC(rReader, R_MPSETT_STREAMING_LBX_RESOURCE);
-    iListBox->ConstructFromResourceL(rReader); // construct's iListBox from resource file
-    CleanupStack::PopAndDestroy(); // rReader
-    
-    iListBox->CreateScrollBarFrameL(ETrue);
-    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
-
-    iComponentControl = iListBox;
+    iComponentControl = iSettingList;
+    iListBox = iSettingList->ListBox();
     }
 
 // ---------------------------------------------------------
@@ -105,7 +98,7 @@
 // ---------------------------------------------------------
 //
 void CMPSettingsStreamingContainer::FocusChanged(TDrawNow /*aDrawNow*/)
-{
+    {
 	if( iListBox)
         {
         iListBox->SetFocus( IsFocused() );
@@ -115,5 +108,16 @@
         {
         iComponentControl->SetFocus( IsFocused() );
         }
-}
+    }
+
+// ---------------------------------------------------------
+// CMPSettingsStreamingContainer::EditCurrentItemFromMenuL
+// ---------------------------------------------------------
+//
+void CMPSettingsStreamingContainer::EditCurrentItemFromMenuL(TBool iMenuOption)
+    {
+    MPX_DEBUG2(_L("#MS# CMPSettingsProxyContainer::EditCurrentItemFromMenuL(%d)"),iMenuOption);
+    TInt index = iListBox->CurrentItemIndex();
+    iSettingList->EditItemL(index, iMenuOption);
+    }
 // End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mediasettings/mediasettingsapp/src/MPSettingsStreamingSettingItemList.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,457 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+// Version : %version: 3 %
+
+
+
+
+// INCLUDE FILES
+#include <eikappui.h>
+#include <akntextsettingpage.h>
+#include <barsread.h>
+
+#include <cmmanagerext.h>
+#include <cmdestinationext.h>
+#include <cmapplicationsettingsui.h>
+
+#include "mediasettings.hrh"
+#include "MPSettingsStreamingSettingItemList.h"
+#include "MPSettingsUDPPortSettingItem.h"
+#include "MPSettingsModelForROP.h"
+#include "mpxlog.h"
+
+// CONSTANTS
+const TInt KMPSettProxyHostListItemId  = 4;
+const TInt KMPSettProxyPortListItemId  = 5;
+const TInt KMPSettProxyHostMaxLength   = 1000;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::CMPSettingsStreamingSettingItemList
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CMPSettingsStreamingSettingItemList::CMPSettingsStreamingSettingItemList(
+        CMPSettingsModelForROP* aModel ) 
+	: iModel( aModel), 
+	  iProxyHostPtr(NULL, 0)
+    {
+    MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::CMPSettingsStreamingSettingItemList()"));
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::ConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::ConstructFromResourceL(TInt aResourceId) 
+    {
+    MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::ConstructFromResourceL(0x%X)"),aResourceId);
+	TResourceReader reader;
+	iCoeEnv->CreateResourceReaderLC(reader, aResourceId);
+	ConstructFromResourceL(reader);
+    CleanupStack::PopAndDestroy(); // reader
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::ConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::ConstructFromResourceL(TResourceReader& aReader) 
+    {
+    MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::ConstructFromResourceL()"));
+    LoadAllL();
+    CAknSettingItemList::ConstructFromResourceL(aReader);
+    SetItemVisibilityL();
+    }
+  
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::~CMPSettingsStreamingSettingItemList
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CMPSettingsStreamingSettingItemList::~CMPSettingsStreamingSettingItemList()
+    {
+    MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::~CMPSettingsStreamingSettingItemList()"));
+	
+    delete iProxyHost;
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::EditItemL
+// -----------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::EditItemL(TInt aIndex, TBool aCalledFromMenu)
+    {
+    MPX_DEBUG3(_L("#MS# CMPSettingsStreamingSettingItemList::EditItemL(%d,%d)"),aIndex,aCalledFromMenu);
+    CAknSettingItem* settingItem = SettingItemArray()->At(aIndex);
+    TInt identifier = settingItem->Identifier();
+
+    if ( identifier == EMPSettDefaultAPSettingId )
+        {
+        LaunchConnectionSelectionL();
+        }
+    else
+        {
+        // Call base call's method
+        CAknSettingItemList::EditItemL(aIndex, aCalledFromMenu);
+        }
+
+    // Store setting value to settings model
+    settingItem->StoreL();   
+    StoreSettingL(identifier);
+
+    // Hide/unhide Proxy port & Proxy host settings according to Proxy mode.
+    if (identifier == EMPSettProxyModeSettingId ||
+        identifier == EMPSettDefaultAPSettingId )
+        {
+        SetItemVisibilityL();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::CreateSettingItemL
+// -----------------------------------------------------------------------------
+//
+CAknSettingItem* CMPSettingsStreamingSettingItemList::CreateSettingItemL(TInt aSettingId)
+    {
+    MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::CreateSettingItemL(%d)"),aSettingId);
+    __ASSERT_DEBUG(iProxyHost, User::Leave(KErrAbort));
+
+    CAknSettingItem* settingItem  = NULL;
+
+    switch ( aSettingId )
+        {
+        case EMPSettProxyModeSettingId:
+            iSettingProxyItem = new(ELeave) CAknBinaryPopupSettingItem( aSettingId, 
+                                                                        iProxyMode );
+            settingItem = iSettingProxyItem; 
+            break;
+        
+        case EMPSettProxyHostSettingId:
+            {
+            settingItem = new(ELeave) CAknTextSettingItem(aSettingId, iProxyHostPtr);
+            settingItem->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed);
+            break;
+            }
+        
+        case EMPSettProxyPortSettingId:
+            settingItem = new(ELeave) CAknIntegerEdwinSettingItem(aSettingId, iProxyPort);
+            break;            
+        
+        case EMPSettDefaultAPSettingId:        
+            iSettingConnectionItem = new (ELeave) CAknTextSettingItem( aSettingId, 
+                                                                       iSelectedApName );
+            settingItem = iSettingConnectionItem;
+            break;
+
+        case EMPSettMinUDPPortSettingId:
+            settingItem = new(ELeave) CMPSettingsUDPPortSettingItem( aSettingId, 
+                                                                     iMinUDPPort, 
+                                                                     iMaxUDPPort);
+            break;            
+
+        case EMPSettMaxUDPPortSettingId:
+            settingItem = new(ELeave) CMPSettingsUDPPortSettingItem( aSettingId, 
+                                                                     iMaxUDPPort,
+                                                                     iMinUDPPort);
+            break;            
+            
+        default:
+            break;
+        }
+
+    return settingItem;   
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::SetItemVisibilityL
+// -----------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::SetItemVisibilityL()
+    {
+    MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::SetItemVisibilityL() iProxyMode(%d)"),iProxyMode);
+    SettingItemArray()->At(KMPSettProxyHostListItemId)->SetHidden( !iProxyMode );
+    SettingItemArray()->At(KMPSettProxyPortListItemId)->SetHidden( !iProxyMode );
+
+    HandleChangeInItemArrayOrVisibilityL();
+    
+    if ( ListBox() )
+       {
+       // Scrollbar update is required for the case when items are set hidden
+       // while list is scrolled down.
+       ListBox()->UpdateScrollBarsL();
+       }
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::LoadAllL
+// -----------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::LoadAllL()
+    {
+    MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::LoadAllL()"));
+    iModel->LoadSettingsL(EConfigUser);
+    LoadSettingL(EMPSettProxyModeSettingId);
+    LoadSettingL(EMPSettProxyHostSettingId);
+    LoadSettingL(EMPSettProxyPortSettingId);
+    LoadSettingL(EMPSettDefaultAPSettingId);
+    LoadSettingL(EMPSettMinUDPPortSettingId);
+    LoadSettingL(EMPSettMaxUDPPortSettingId);
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::LoadSettingL
+// -----------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::LoadSettingL(TInt aSettingId)
+    {
+    MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::LoadSettingL(%d)"),aSettingId);
+    switch ( aSettingId )
+        {
+        case EMPSettDefaultAPSettingId:
+            {
+            iModel->GetDefaultAp( iDefaultAP );
+
+            if ( iDefaultAP != 0 ) 
+                {
+                UpdateSelectedConnectionNameL();
+                }
+            }
+            break;
+
+        case EMPSettConnTimeoutSettingId:
+            iModel->GetConnectionTimeout(iConnTimeout);
+            break;
+
+        case EMPSettServerTimeoutSettingId:
+            iModel->GetServerTimeout(iSrvTimeout);
+            break;
+
+        case EMPSettMinUDPPortSettingId:
+            iModel->GetMinUDPPort(iMinUDPPort);
+            break;
+
+        case EMPSettMaxUDPPortSettingId:
+            iModel->GetMaxUDPPort(iMaxUDPPort);
+            break;
+        
+        case EMPSettProxyModeSettingId:
+            iModel->GetProxyMode(iProxyMode);
+            break;
+            
+        case EMPSettProxyHostSettingId:
+            {
+            if (!iProxyHost)
+                {
+                iProxyHost = HBufC::NewL(KMPSettProxyHostMaxLength);
+                iProxyHostPtr.Set(iProxyHost->Des());
+                }
+
+            iModel->GetProxyHostName(iProxyHostPtr);
+            break;
+            }
+        case EMPSettProxyPortSettingId:
+            iModel->GetProxyPort(iProxyPort);
+            break;
+            
+        default:
+            break;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::StoreSettingL
+// -----------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::StoreSettingL(TInt aSettingId)
+    {
+    MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::StoreSettingL(%d)"),aSettingId);
+    switch (aSettingId)
+        {
+        case EMPSettDefaultAPSettingId:
+            iModel->SetDefaultAp(iDefaultAP);
+            break;
+        case EMPSettConnTimeoutSettingId:
+            iModel->SetConnectionTimeout(iConnTimeout);
+            break;
+        case EMPSettServerTimeoutSettingId:
+            iModel->SetServerTimeout(iSrvTimeout);
+            break;
+        case EMPSettMinUDPPortSettingId:
+            iModel->SetMinUDPPort(iMinUDPPort);
+            break;
+        case EMPSettMaxUDPPortSettingId:
+            iModel->SetMaxUDPPort(iMaxUDPPort);
+            break;
+        case EMPSettProxyModeSettingId:
+            iModel->SetProxyMode(iProxyMode);
+            break;
+        case EMPSettProxyHostSettingId:
+            iModel->SetProxyHostNameL(*iProxyHost);
+            break;
+        case EMPSettProxyPortSettingId:
+            iModel->SetProxyPort(iProxyPort);
+            break;
+        default:
+            break;
+        }
+
+    iModel->StoreSettingsL();
+    }
+
+// --------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::LaunchConnectionSelectionL()
+// --------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::LaunchConnectionSelectionL()
+    {
+    MPX_FUNC("#MS# CMPSettingsStreamingSettingItemList::LaunchConnectionSelectionL()");
+    
+    CCmApplicationSettingsUi* settingsUi = CCmApplicationSettingsUi::NewL();
+    CleanupStack::PushL ( settingsUi );
+    
+    TCmSettingSelection selection;
+    selection.iId = iDefaultAP;
+    selection.iResult = CMManager::EConnectionMethod;
+    
+    TUint listItems = CMManager::EShowConnectionMethods;
+    TBearerFilterArray filters;
+    
+    TBool retVal = settingsUi->RunApplicationSettingsL( selection, listItems, filters );
+    if ( retVal )
+        {
+        TBool iapChanged = EFalse;
+    
+        switch ( selection.iResult )
+            {
+            case CMManager::EDestination:
+                break;
+
+            case CMManager::EAlwaysAsk:
+                {
+                iDefaultAP = 0; // Set AP to "None"
+                }
+                break;
+
+            case CMManager::EConnectionMethod:
+                {
+                if ( selection.iId != iDefaultAP)
+                    {
+                    iDefaultAP = selection.iId;
+                    iapChanged = ETrue;
+                    }
+                }
+                break;
+
+            default:
+                break;
+            }
+        
+        if ( iapChanged )
+            {
+            UpdateSelectedConnectionNameL( );
+            
+            if ( iSettingConnectionItem )
+                {
+                iSettingConnectionItem->LoadL ( );
+                iSettingConnectionItem->UpdateListBoxTextL ( );
+                }
+    
+            CheckProxyDisableL();
+            
+            DrawDeferred();
+            }
+        }
+    CleanupStack::PopAndDestroy ( settingsUi );
+    }
+
+// --------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::CheckProxyDisableL()
+// --------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::CheckProxyDisableL()
+    {
+    if ( iProxyMode && iSettingProxyItem )
+        {
+        iSettingProxyItem->EditItemL( EFalse );
+        
+        iSettingProxyItem->StoreL();
+        StoreSettingL( EMPSettProxyModeSettingId );
+    
+        iSettingProxyItem->LoadL();
+        iSettingProxyItem->UpdateListBoxTextL();
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::UpdateSelectedConnectionNameL
+// --------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::UpdateSelectedConnectionNameL()
+    {
+    MPX_FUNC("#MS# CMPSettingsStreamingSettingItemList::UpdateSelectedConnectionNameL()");
+    
+    RCmManagerExt cmManager;
+    RCmConnectionMethodExt connMethod;
+
+    CleanupClosePushL( cmManager );
+    CleanupClosePushL( connMethod );
+    
+    cmManager.OpenL();
+
+    // This leaves if conn method is not found.
+    TRAPD( leave, connMethod = cmManager.ConnectionMethodL( iDefaultAP ) );
+    if ( KErrNone == leave )
+        {
+        HBufC* tmpBuf = 
+                cmManager.GetConnectionMethodInfoStringL( iDefaultAP, CMManager::ECmName);
+
+        if( tmpBuf )
+			{
+			if ( tmpBuf->Length() < KMaxApNameLength )
+            	{
+	            iSelectedApName = *tmpBuf;
+            	}
+			delete tmpBuf;
+			}	
+        }
+
+    CleanupStack::PopAndDestroy( &connMethod );
+    CleanupStack::PopAndDestroy( &cmManager );
+    }
+
+// --------------------------------------------------------------------------
+// CMPSettingsStreamingSettingItemList::HandleListBoxEventL()
+// --------------------------------------------------------------------------
+//
+void CMPSettingsStreamingSettingItemList::HandleListBoxEventL(
+    CEikListBox* aListBox,
+    TListBoxEvent aListBoxEvent )
+    {
+    if ( ( aListBoxEvent == EEventEnterKeyPressed ) ||
+         ( aListBoxEvent == EEventItemSingleClicked ) ||
+         ( aListBoxEvent == EEventItemDoubleClicked ) )
+        {
+        CAknSettingItemList::HandleListBoxEventL( aListBox, aListBoxEvent );
+        }
+    }
+
+//  End of File  
--- a/mediasettings/mediasettingsapp/src/MPSettingsStreamingView.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsStreamingView.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 7 %
+// Version : %version: 8 %
 
 
 
@@ -26,6 +26,7 @@
 #include    <featmgr.h>
 #include    <hlplch.h>             // For HlpLauncher
 #include    "mediasettings.hrh"
+#include    "MPSettingsAppUi.h"
 #include    "MPSettingsNaviPaneController.h"
 #include    "MPSettingsStreamingView.h"
 #include    "MPSettingsStreamingContainer.h"
@@ -34,10 +35,6 @@
 
 class CMPSettingsModelForROP;
 
-// CONSTANTS
-
-const   TInt    KMPSettProxyViewListItemId  =   0;
-const   TInt    KMPSettNetworkViewListItemId  =   1;
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -47,10 +44,11 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-CMPSettingsStreamingView::CMPSettingsStreamingView(CMPSettingsModelForROP* aModel) : iModel( aModel)
+CMPSettingsStreamingView::CMPSettingsStreamingView(CMPSettingsModelForROP* aModel) 
+    : iModel( aModel)
     {
-        MPX_FUNC("#MS# CMPSettingsStreamingView::CMPSettingsStreamingView()");
-        iNaviPaneContext = iNaviCntrl->MPTabGroup();
+    MPX_FUNC("#MS# CMPSettingsStreamingView::CMPSettingsStreamingView()");
+    iNaviPaneContext = iNaviCntrl->MPTabGroup();
     }
 
 // ---------------------------------------------------------
@@ -109,17 +107,29 @@
     MPX_DEBUG2(_L("#MS# CMPSettingsStreamingView::HandleCommandL(%d)"),aCommand);
     switch (aCommand)
         {
+        case EMPSettCmdChange:
+            static_cast<CMPSettingsStreamingContainer*>(iContainer)->EditCurrentItemFromMenuL(ETrue);
+            break;
+        case EMPMiddleSoftKeyChange:
+            static_cast<CMPSettingsStreamingContainer*>(iContainer)->EditCurrentItemFromMenuL(EFalse);
+            break;  
+        case EMPSettCmdAdvancedSett:
+            AppUi()->ActivateLocalViewL( KMPSettAdvancedBwViewId );
+            break;            
         case EMPSettCmdOpen:
-            HandleListBoxSelectionL();
             break;
         case EAknSoftkeyBack:
-            AppUi()->ActivateLocalViewL(KMPSettMainViewId);
+            {
+            // If video view is empty, then exit Settings
+            CMPSettingsAppUi* appUi = static_cast<CMPSettingsAppUi*>(AppUi());
+            appUi->ActivateLocalViewL( KMPSettMainViewId );
+            }
             break;
         case EMPSettCmdHelp:
             if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
+                {
                 HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() );
-            }
+                }
             break;
         default:
             AppUi()->HandleCommandL(aCommand);
@@ -137,24 +147,6 @@
     return new(ELeave) CMPSettingsStreamingContainer(iModel);
     }  
 
-// ---------------------------------------------------------------------------
-// CMPSettingsStreamingView::HandleListBoxEventL
-// ---------------------------------------------------------------------------
-
-void CMPSettingsStreamingView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
-    {
-    MPX_FUNC("#MS# CMPSettingsStreamingView::HandleListBoxEventL()");
-    switch (aEventType)
-        {
-        case EEventEnterKeyPressed:
-        case EEventItemSingleClicked:
-        case EEventItemDoubleClicked:
-            HandleListBoxSelectionL();
-            break;
-        default:
-           break;
-        }
-    }
 
 // ---------------------------------------------------------------------------
 // CMPSettingsStreamingView::DynInitContainerL
@@ -165,7 +157,6 @@
     MPX_FUNC("#MS# CMPSettingsStreamingView::DynInitContainerL()");
     CEikTextListBox* listbox = iContainer->ListBox();
 
-    listbox->SetListBoxObserver(this);
     listbox->SetTopItemIndex(iTopItemIndex);
 
     if (iCurrentItem >= 0 && iCurrentItem < listbox->Model()->NumberOfItems()) // magic
@@ -175,35 +166,6 @@
     CMPSettingsBaseView::SetMiddleSoftKeyLabelL(R_MEDIASETTING_MSK_OPEN,EMPSettCmdOpen);
     }
 
-// ---------------------------------------------------------------------------
-// CMPSettingsStreamingView::HandleListBoxSelectionL()
-// Handles listbox selection.
-// ---------------------------------------------------------------------------
-//
-void CMPSettingsStreamingView::HandleListBoxSelectionL() 
-    {
-    iCurrentItem = iContainer->ListBox()->CurrentItemIndex();
-    iTopItemIndex = iContainer->ListBox()->TopItemIndex();
-    MPX_DEBUG3(_L("#MS# CMPSettingsStreamingView::HandleListBoxSelectionL() iCurrentItem(%d) iTopItemIndex(%d)"),iCurrentItem,iTopItemIndex);
-
-    switch (iCurrentItem)
-        {
-        case KMPSettProxyViewListItemId:
-        if (!FeatureManager::FeatureSupported(KFeatureIdProtocolCdma))
-            {
-            // If KFeatureIdProtocolCdma is not supported then show the 
-            // Proxy view. Otherwise, fall through to show Network view because
-            // only Network setting is available.
-            AppUi()->ActivateLocalViewL(KMPSettProxyViewId);
-            break;
-            }
-        case KMPSettNetworkViewListItemId:
-            AppUi()->ActivateLocalViewL(KMPSettNetworkViewId);
-            break;
-        default:
-            break;
-        }
-    }
 
 // End of File
 
--- a/mediasettings/mediasettingsapp/src/MPSettingsVideoSettingItemList.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsVideoSettingItemList.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 19 %
+// Version : %version: 20 %
 
 
 
@@ -24,10 +24,6 @@
 #include <eikappui.h>
 #include <MediaSettings.rsg>
 #include <StringLoader.h>
-#include <swi/sisregistrysession.h>
-#include <swi/sisregistryentry.h>
-#include <AknCommonDialogsDynMem.h>
-#include <CAknMemorySelectionDialogMultiDrive.h>
 #include <cmmanagerext.h>
 #include <cmdestinationext.h>
 #include <cmapplicationsettingsui.h>
@@ -44,14 +40,6 @@
 #include "mpxlog.h"
 
 
-const TInt KParentControlAdult( 18 );
-const TInt KParentControlMinAge( 4 );
-const TInt KParentControlIndexShift( 3 );
-const TInt KParentControlMaxIndex( 15 );
-const TInt KParentControlSelections( 16 );
-const TInt KParentControlOff( 0 );
-
-
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -61,8 +49,11 @@
 // -----------------------------------------------------------------------------
 //
 CMPSettingsVideoSettingItemList::CMPSettingsVideoSettingItemList(
-        CMPSettingsModelForROP* aModel, CVcxNsSettingsEngine& aVideoSettingsEngine) :
-    iModel(aModel), iVideoSettingsEngine(aVideoSettingsEngine), iRockerKeysSupported(EFalse)
+        CMPSettingsModelForROP* aModel, 
+        CVcxNsSettingsEngine& aVideoSettingsEngine) 
+    : iModel( aModel ), 
+      iVideoSettingsEngine(aVideoSettingsEngine), 
+      iRockerKeysSupported( EFalse )
     {
     CMPSettingsAppUi* AppUi =
             static_cast<CMPSettingsAppUi*> (CCoeEnv::Static()->AppUi());
@@ -85,7 +76,6 @@
 CMPSettingsVideoSettingItemList::~CMPSettingsVideoSettingItemList()
     {   
     MPX_DEBUG1(_L("#MS# CMPSettingsVideoSettingItemList::~CMPSettingsVideoSettingItemList()"));
-    delete iDriveMonitor;
     }
 
 // -----------------------------------------------------------------------------
@@ -110,31 +100,7 @@
             CAknSettingItemList::EditItemL( itemIndex, aCalledFromMenu );
             break;
             }
-        
-         case EVcSettingsViewParentControlItem:     
-            {
-            EditParentControlItemL( itemIndex, aCalledFromMenu );
-            break;
-            }
-        
-         case EVcSettingsViewMemoryItem:
-            {
-            EditPreferredMemoryItemL( itemIndex, aCalledFromMenu );
-            break;    
-            }
-          
-         case EVcSettingsViewThumbnails:    
-            {
-            EditThumbnailItemL( itemIndex, aCalledFromMenu );
-            break;
-            }
-         case EVcSettingsviewIadUpdateItem:     
-            {
-            // Not editable
-            storeModifiedSetting = EFalse;
-            }
-            break;
-         
+
          default:
             break;
          }
@@ -160,140 +126,6 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::EditThumbnailItemL
-// -----------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::EditThumbnailItemL( TInt itemIndex, TBool aCalledFromMenu )
-    {
-    if ( aCalledFromMenu )
-        {
-        CAknSettingItemList::EditItemL( itemIndex, aCalledFromMenu);
-        (*SettingItemArray())[itemIndex]->StoreL();
-        }
-    else
-        {
-        if (iSettingThumbnails)
-            {
-            iSettingThumbnails = 0;
-            }
-        else
-            {
-            iSettingThumbnails = 1;
-            }
-        (*SettingItemArray())[itemIndex]->LoadL();
-        (*SettingItemArray())[itemIndex]->UpdateListBoxTextL();
-        }
-    
-        iVideoSettingsEngine.SetVideoOnDemandThumbnails(
-                        iSettingThumbnails);
-        DrawDeferred();
-    }
-
-// -----------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::EditParentControlItemL
-// -----------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::EditParentControlItemL( 
-    TInt itemIndex, 
-    TBool aCalledFromMenu )
-    {
-    if (!iLockCodeAccepted)
-        {
-        iLockCodeAccepted = iVideoSettingsEngine.CheckLockCodeL();
-        }
-    if (iLockCodeAccepted)
-        {
-        // can edit setting
-        iParentControlIndex = GetCurrentParentControl();
-        CAknSettingItemList::EditItemL( itemIndex, aCalledFromMenu );
-        (*SettingItemArray())[itemIndex]->StoreL();
-        }
-    
-    SetCurrentParentControl( iParentControlIndex );
-    iParentControlIndex = GetCurrentParentControl();
-    }
-
-// -----------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::EditPreferredMemoryItemL
-// -----------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::EditPreferredMemoryItemL( 
-        TInt itemIndex, 
-        TBool 
-#ifndef RD_MULTIPLE_DRIVE_ENABLERS
-        aCalledFromMenu 
-#endif 
-        )
-    {
-    TInt drive;
-    iVideoSettingsEngine.GetUsedMemoryL(drive);
-    iSettingMemory = iDriveMonitor->ArrayPos(drive);
-    if (iSettingMemory == KErrNotFound)
-        {
-        iSettingMemory = 0;
-        }
-
-#ifndef RD_MULTIPLE_DRIVE_ENABLERS
-    const TInt KThree( 3 );
-    if ( iDriveMonitor->iAvailableDrives.Count() < KThree && !aCalledFromMenu )
-        {
-        if ( iSettingMemory == 1 )
-            {
-            iSettingMemory = 0;
-            }
-        else
-            {
-            iSettingMemory = 1;
-            }
-        }
-    else
-        {
-        CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );
-        ( *SettingItemArray() )[aIndex]->StoreL();
-        }
-#else
-
-    TBool driveSelected(EFalse);
-
-    TDriveNumber selectedMem;
-    TInt includedMedias = 0;
-
-    if (iDriveMonitor->PhoneMemoryDrive() != KErrNotFound)
-        {
-        includedMedias = AknCommonDialogsDynMem::EMemoryTypePhone;
-        }
-
-    includedMedias |= AknCommonDialogsDynMem::EMemoryTypeMMCExternal
-            | AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage;
-
-    CAknMemorySelectionDialogMultiDrive* dlg =
-            CAknMemorySelectionDialogMultiDrive::NewL(
-                    ECFDDialogTypeSelect,
-                    R_MTV_MEMORY_SELECTION_DIALOG, EFalse,
-                    includedMedias);
-    CleanupStack::PushL(dlg);
-    driveSelected = dlg->ExecuteL(selectedMem);
-    CleanupStack::PopAndDestroy(dlg);
-
-    if (driveSelected)
-        {
-        iSettingMemory = iDriveMonitor->ArrayPos(selectedMem);
-        }
-       
-#endif
-   
-    if ( iSettingMemory != KErrNotFound )
-        {
-        (*SettingItemArray())[itemIndex]->LoadL();
-        (*SettingItemArray())[itemIndex]->UpdateListBoxTextL();
-   
-        iVideoSettingsEngine.SetUsedMemory( 
-                iDriveMonitor->iAvailableDrives[iSettingMemory].iDrive );
-        }
-    DrawDeferred();
-    }
-
 // --------------------------------------------------------------------------
 // CMPSettingsVideoSettingItemList::HandleListBoxEventL()
 // --------------------------------------------------------------------------
@@ -356,8 +188,6 @@
     LoadAllL();
 
     CAknSettingItemList::LoadSettingsL();
-    
-    FinishConstructionL();
     }
 
 // -----------------------------------------------------------------------------
@@ -382,58 +212,6 @@
 				}
             break;
             }
-        case EVcSettingsViewParentControlItem:
-            {
-            iParentControlIndex = GetCurrentParentControl();
-
-            iSettingParentControlItem
-                    = new (ELeave) CAknEnumeratedTextPopupSettingItem(
-                            aSettingId, iParentControlIndex);
-            return iSettingParentControlItem;
-            }
-
-        case EVcSettingsViewMemoryItem:
-            {
-            if (!iDriveMonitor)
-                {
-                iDriveMonitor = CVideoSettingsDriveMonitor::NewL();
-                iDriveMonitor->RegisterObserverL(this);
-                }
-
-            TInt drive;
-            iVideoSettingsEngine.GetUsedMemoryL(drive);
-            iSettingMemory = iDriveMonitor->ArrayPos(drive);
-            if (iSettingMemory == KErrNotFound)
-                {
-                iSettingMemory = 0;
-                }
-
-            iSettingMemoryItem
-                    = new (ELeave) CAknEnumeratedTextPopupSettingItem(
-                            aSettingId, iSettingMemory);
-
-            return iSettingMemoryItem;
-            }
-
-        case EVcSettingsviewIadUpdateItem:
-            {
-            // Set text value to empty. The version number is displayed by
-            // changing the string of empty item in UpdateVersionNumberTextL().
-            iSettingVersionText = KNullDesC();
-            iSettingIadUpdateItem = new (ELeave) CAknTextSettingItem(
-                    aSettingId, iSettingVersionText);
-            return iSettingIadUpdateItem;
-            }
-       
-        case EVcSettingsViewThumbnails:
-            {
-            iVideoSettingsEngine.GetVideoOnDemandThumbnails(iSettingThumbnails);
-            iSettingThumbnailsItem
-                    = new (ELeave) CAknEnumeratedTextPopupSettingItem(
-                            aSettingId, iSettingThumbnails);
-            return iSettingThumbnailsItem;
-            }   
-            
         default:
             break;
         }
@@ -491,403 +269,16 @@
     }
 
 // --------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::FinishConstructionL()
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::FinishConstructionL()
-    {
-    UpdateMemoryItemTextL();
-    UpdateVersionNumberTextL();
-    UpdateParentControlTextL();
-    }
-
-// --------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::UpdateVersionNumberTextL()
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::UpdateVersionNumberTextL()
-    {
-    Swi::RSisRegistrySession sisRegistrySession;
-
-    if ( sisRegistrySession.Connect() == KErrNone )
-        {
-        CleanupClosePushL( sisRegistrySession );
-
-        if ( sisRegistrySession.IsInstalledL( KSisUid ) )
-            {
-            Swi::RSisRegistryEntry sisRegistryEntry;
-            TInt error = sisRegistryEntry.Open( sisRegistrySession, KSisUid );
-            if ( error == KErrNone )
-                {
-                CleanupClosePushL( sisRegistryEntry );
-                TVersion vcVersion( sisRegistryEntry.VersionL() );
-                CleanupStack::PopAndDestroy( &sisRegistryEntry );
-
-                HBufC* versionString = HBufC::NewLC( KMaxVersionNumberLength );
-                TPtr versionPtr( versionString->Des() );
-                versionPtr.Format(
-                        KVersionNumberFormat,
-                        vcVersion.iMajor,
-                        vcVersion.iMinor,
-                        vcVersion.iBuild );
-                iSettingIadUpdateItem->SetEmptyItemTextL( *versionString );
-                CleanupStack::PopAndDestroy( versionString );
-                iSettingIadUpdateItem->UpdateListBoxTextL();
-                }
-            }
-        CleanupStack::PopAndDestroy( &sisRegistrySession );
-        }
-    }
-
-// --------------------------------------------------------------------------
-// Build dynamic listbox for parental control selection.
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::UpdateParentControlTextL()
-    {
-    // Set up the dynamic texts for this setting item. Choices are:
-    //
-    // 0:    Parent control not in use.
-    // 1-15: Selected minimum age 4-18.
-
-    CArrayPtrFlat<CAknEnumeratedText>* enumeratedTextArray =
-        new ( ELeave ) CArrayPtrFlat<CAknEnumeratedText>(
-            KParentControlSelections );
-    CleanupStack::PushL( enumeratedTextArray );
-    CArrayPtr<HBufC>* poppedUpTextArray =
-        new ( ELeave ) CArrayPtrFlat<HBufC>( KParentControlSelections );
-    CleanupStack::PushL( poppedUpTextArray );
-
-    HBufC* parentControlStrOff1 = NULL;
-    HBufC* parentControlStrOff2 = NULL;
-
-    parentControlStrOff1 =
-        StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_OFF );
-    parentControlStrOff2 =
-        StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_OFF );
-
-    CAknEnumeratedText* enumeratedTextOff =
-        new ( ELeave ) CAknEnumeratedText( 0, parentControlStrOff1 );
-    CleanupStack::PushL( enumeratedTextOff );
-    enumeratedTextArray->AppendL( enumeratedTextOff );
-    poppedUpTextArray->AppendL( parentControlStrOff2 );
-    CleanupStack::Pop( enumeratedTextOff );
-    CleanupStack::Pop( parentControlStrOff2 );
-    CleanupStack::Pop( parentControlStrOff1 );
-
-    for ( TInt age = KParentControlMinAge; age <= KParentControlAdult; age++ )
-        {
-        HBufC* parentControlStr1 = NULL;
-        HBufC* parentControlStr2 = NULL;
-
-        parentControlStr1 =
-            StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_N_YEARS, age );
-        parentControlStr2 =
-            StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_N_YEARS, age );
-
-        CAknEnumeratedText* enumeratedText =
-            new ( ELeave ) CAknEnumeratedText(
-                age - KParentControlIndexShift, parentControlStr1 );
-        CleanupStack::PushL( enumeratedText );
-        enumeratedTextArray->AppendL( enumeratedText );
-        poppedUpTextArray->AppendL( parentControlStr2 );
-        CleanupStack::Pop( enumeratedText );
-
-        CleanupStack::Pop( parentControlStr2 );
-        CleanupStack::Pop( parentControlStr1 );
-        }
-
-    CleanupStack::Pop( poppedUpTextArray );
-    CleanupStack::Pop( enumeratedTextArray );
-
-    iSettingParentControlItem->SetEnumeratedTextArrays(
-        enumeratedTextArray,
-        poppedUpTextArray );
-    iSettingParentControlItem->HandleTextArrayUpdateL();
-    iSettingParentControlItem->UpdateListBoxTextL();
-    }
-
-
-// --------------------------------------------------------------------------
-// Fetch current parent control age and return corresponding index.
-// --------------------------------------------------------------------------
-//
-TInt CMPSettingsVideoSettingItemList::GetCurrentParentControl()
-    {
-    TInt parentControlAge( 0 );
-    TInt parentControlIndex( 0 );
-
-    if ( !iVideoSettingsEngine.GetParentControl( parentControlAge ) )
-        {
-        parentControlAge = KIptvCenRepParentControlKeyDefault;
-        }
-
-    // Fix age as index.
-    if ( KParentControlAdult < parentControlAge )
-        {
-        parentControlIndex = KParentControlMaxIndex;
-        }
-    else if ( KParentControlMinAge <= parentControlAge )
-        {
-        parentControlIndex = parentControlAge - KParentControlIndexShift;
-        }
-    else
-        {
-        parentControlIndex = KParentControlOff;
-        }
-
-    return parentControlIndex;
-    }
-
-// -----------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::HandleDriveMonitorEvent
-// -----------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::HandleDriveMonitorEvent( 
-        TIptvDriveMonitorEvent& /*aEvent*/ )
-    {
-    TRAP_IGNORE( UpdateMemoryItemTextL() );       
-    }
-
-// --------------------------------------------------------------------------
-// CVcSettingsViewSettingsListbox::UpdateMemoryItemTextL()
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::UpdateMemoryItemTextL()
-    {
-    MPX_FUNC(
-        "CMPSettingsVideoSettingItemList::UpdateMemoryItemTextL() start");
-
-    if ( !iDriveMonitor )
-        {
-        iDriveMonitor = CVideoSettingsDriveMonitor::NewL();
-        iDriveMonitor->RegisterObserverL( this );
-        }
-
-    CArrayPtrFlat<CAknEnumeratedText>* enumeratedTextArray =
-        new ( ELeave ) CArrayPtrFlat<CAknEnumeratedText>( 2 );
-    CleanupStack::PushL( enumeratedTextArray ); // 1->
-    
-    CArrayPtr<HBufC>*  poppedUpTextArray  =
-        new ( ELeave ) CArrayPtrFlat<HBufC>( 2 );
-    CleanupStack::PushL( poppedUpTextArray ); // 2->
-
-    TInt i;
-    TInt listIndex = 0;
-    for ( i = 0; i < iDriveMonitor->iAvailableDrives.Count(); i++ )
-        {
-        if ( (iDriveMonitor->iAvailableDrives[i].iFlags &
-                        TIptvDriveInfo::ERemovable) )
-            {
-            /*
-             * MMC
-             */
-            if ( (iDriveMonitor->iAvailableDrives[i].iFlags & 
-                            TIptvDriveInfo::EMediaNotPresent) )
-                {
-                //removable media not present -> Memory card
-                MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: media not present, adding memory card to the list"));
-                
-                AddMemoryCardDesToArraysL( listIndex++, 
-                                           *enumeratedTextArray, 
-                                           *poppedUpTextArray );
-                }
-            else
-                {
-                if ( (iDriveMonitor->iAvailableDrives[i].iFlags & 
-                                TIptvDriveInfo::ELocked) )
-                    {
-                    //removable media present and locked -> Locked memory card
-                    MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: Adding locked memory card to the list"));
-                    
-                    AddLockedMemoryCardDesToArraysL( listIndex++, 
-                                                     *enumeratedTextArray, 
-                                                     *poppedUpTextArray );
-                    }
-                else
-                    {
-                    //removable media present and not locked
-                    if ( iDriveMonitor->iAvailableDrives[i].iVolumeName.Length() > 0 )
-                        {
-                        //removable media present, not locked and name text exits-> Volume name
-                        MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: adding volume name to the list"));
-                        HBufC* volumeName = 
-                            HBufC::NewL( iDriveMonitor->iAvailableDrives[i].iVolumeName.Length() );
-                        CleanupStack::PushL( volumeName ); // 3->
-                        volumeName->Des() = iDriveMonitor->iAvailableDrives[i].iVolumeName;
-                        AddDesToArraysL( listIndex++, 
-                                         volumeName, 
-                                         *enumeratedTextArray, 
-                                         *poppedUpTextArray );
-                        CleanupStack::Pop( volumeName ); // <-3
-                        }
-                    else
-                        {
-                        //removable media present, not locked and label text does not exit-> Memory card
-                        MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: volume name not defined, adding memory card to the list") );
-                        AddMemoryCardDesToArraysL( listIndex++, 
-                                                   *enumeratedTextArray,
-                                                   *poppedUpTextArray );
-                        }
-                    }
-                }
-            }
-        else
-            {
-            /*
-             * Fixed drive
-             */
-            if ( iDriveMonitor->iAvailableDrives[i].iDrive == 
-                    iDriveMonitor->PhoneMemoryDrive() )
-                {
-                //2 = c-drive -> Phone Memory
-                MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: adding Phone memory to the list"));
-                AddPhoneMemoryDesToArraysL( listIndex++, 
-                                            *enumeratedTextArray, 
-                                            *poppedUpTextArray );
-                }
-            else
-                {
-                //->Hard disk
-                MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: adding Hard disk to the list"));
-                AddHardDiskDesToArraysL( listIndex++, 
-                                         *enumeratedTextArray, 
-                                         *poppedUpTextArray );
-                }
-            }
-        }
-
-    iSettingMemoryItem->SetEnumeratedTextArrays(
-        enumeratedTextArray, poppedUpTextArray );
-    iSettingMemoryItem->HandleTextArrayUpdateL();
-    iSettingMemoryItem->UpdateListBoxTextL();
-
-    CleanupStack::Pop( poppedUpTextArray );   // <-2
-    CleanupStack::Pop( enumeratedTextArray ); // <-1     
-	
-    DrawDeferred();
-    }
-
-// --------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::AddPhoneMemoryDesToArraysL()
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::AddPhoneMemoryDesToArraysL( TInt aIndex,
-                              CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                              CArrayPtr<HBufC>&  aPoppedUpTextArray )
-    {
-    HBufC* phoneMemoryDes = StringLoader::LoadLC( R_IPTV_SETTING_PHONE_MEMORY ); // 1->
-    AddDesToArraysL( aIndex, phoneMemoryDes, aEnumeratedTextArray, aPoppedUpTextArray );
-    CleanupStack::Pop( phoneMemoryDes ); // <-1
-    }
-
-// --------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::AddMemoryCardDesToArraysL()
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::AddMemoryCardDesToArraysL( TInt aIndex,
-                            CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                            CArrayPtr<HBufC>&  aPoppedUpTextArray )
-    {
-    HBufC* memoryCardDes = StringLoader::LoadLC( R_IPTV_SETTING_MEMORY_CARD ); // 1->
-    AddDesToArraysL( aIndex, memoryCardDes, aEnumeratedTextArray, aPoppedUpTextArray );
-    CleanupStack::Pop( memoryCardDes ); // <-1
-    }
-
-// --------------------------------------------------------------------------
-// CVcSettingsViewSettingsListbox::AddLockedMemoryCardDesToArraysL()
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::AddLockedMemoryCardDesToArraysL( TInt aIndex,
-                            CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                            CArrayPtr<HBufC>&  aPoppedUpTextArray )
-    {
-    HBufC* lockedMemoryCardDes = StringLoader::LoadLC( R_IPTV_LOCKED_MEMORY_CARD ); // 1->
-    AddDesToArraysL( aIndex, lockedMemoryCardDes, aEnumeratedTextArray, aPoppedUpTextArray);
-    CleanupStack::Pop( lockedMemoryCardDes ); // <-1
-    }
-
-// --------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::AddHardDiskDesToArraysL()
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::AddHardDiskDesToArraysL( TInt aIndex,
-                            CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                            CArrayPtr<HBufC>&  aPoppedUpTextArray )
-    {
-    HBufC* hardDiskDes = StringLoader::LoadLC( R_IPTV_SETTING_MASS_MEMORY ); // 1->
-    AddDesToArraysL( aIndex, hardDiskDes, aEnumeratedTextArray, aPoppedUpTextArray);
-    CleanupStack::Pop( hardDiskDes ); // <-1
-    }
-
-// --------------------------------------------------------------------------
-// CMPSettingsVideoSettingItemList::AddDesToArraysL()
-// NOTE: Codescanner whines about passing non const HBufC,
-// but that's needed for CAknEnumeratedText construction.
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::AddDesToArraysL( TInt aIndex, HBufC* aText,
-                            CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
-                            CArrayPtr<HBufC>&  aPoppedUpTextArray )
-    {
-    CAknEnumeratedText* enumeratedText =
-        new ( ELeave ) CAknEnumeratedText( aIndex, aText );
-    CleanupStack::PushL( enumeratedText ); //1->
-    aEnumeratedTextArray.AppendL( enumeratedText );
-    CleanupStack::Pop( enumeratedText ); // <-1
-    
-    HBufC* textCopy = HBufC::NewL( aText->Des().Length() );
-    CleanupStack::PushL( textCopy ); // 1->
-    textCopy->Des() = aText->Des();
-    
-    aPoppedUpTextArray.AppendL( textCopy );
-    CleanupStack::Pop( textCopy ); // <-1
-    }
-
-// --------------------------------------------------------------------------
-// Convert and save parent control index as age.
-// --------------------------------------------------------------------------
-//
-void CMPSettingsVideoSettingItemList::SetCurrentParentControl(
-    TInt aParentControlIndex )
-    {
-    TInt parentControlAge( 0 );
-
-    // Fix index as age.
-    if ( KParentControlMaxIndex < aParentControlIndex )
-        {
-        parentControlAge = KParentControlAdult;
-        }
-    else if ( 1 <= aParentControlIndex )
-        {
-        parentControlAge = aParentControlIndex + KParentControlIndexShift;
-        }
-    else
-        {
-        parentControlAge = 0;
-        }
-
-    iVideoSettingsEngine.SetParentControl( parentControlAge );
-    }
-
-// --------------------------------------------------------------------------
 // Check if video contrast is supported.
 // --------------------------------------------------------------------------
 //
 TBool CMPSettingsVideoSettingItemList::VideoContrastIsSupportedL()
     {
-    TInt flags;
-
-    CRepository* repository = CRepository::NewL( KCRUidMediaPlayerFeatures );
-    repository->Get( KMPLocalVariation, flags );
-    delete repository;
-
-    if ( flags & KMediaPlayerVideoContrast )
-        {
-        return ETrue;
-        }
+    // As video contrast is only item in video settings list, 
+    // we can assume here that contrast is supported, because
+    // it has been already checked in AppUi/GsPlugin level.
+    return ETrue;
     
-    return EFalse;
     }
 
 //  End of File  
--- a/mediasettings/mediasettingsengine/src/MPSettingsModelForROP.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsengine/src/MPSettingsModelForROP.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 9 %
+// Version : %version: 10 %
 
 
 
@@ -1157,6 +1157,11 @@
     {
     MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::WapIdFromIapIdL(%d)"),aIapId);
     
+    TUint32 wap = 0;
+#ifdef __WINSCW__    
+    wap = aIapId;
+#else    
+    
     CMDBSession* db = CMDBSession::NewL( CMDBSession::LatestVersion() );
     CleanupStack::PushL( db );
     
@@ -1169,16 +1174,17 @@
     wapBearerRecord->iWAPIAP = aIapId;
     
     TBool found = wapBearerRecord->FindL( *db );
-    
     if ( !found )
         {
         User::Leave(KErrNotFound);
         }
 
-    TUint32 wap = static_cast<TUint32>( wapBearerRecord->iWAPAccessPointId );
+    wap = static_cast<TUint32>( wapBearerRecord->iWAPAccessPointId );
     
     CleanupStack::PopAndDestroy( wapBearerRecord );
     CleanupStack::PopAndDestroy( db );
+
+#endif    
     
     MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::IapIdFromWapIdL() - return wap id: %d "), wap);
     return wap;
@@ -1192,6 +1198,10 @@
     {
     MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::IapIdFromWapIdL(%d)"),aWapId);
     
+    TUint32 iap = 0;
+#ifdef __WINSCW__
+    iap = aWapId;
+#else    
     CMDBSession* db = CMDBSession::NewL( CMDBSession::LatestVersion() );
     CleanupStack::PushL( db );
     
@@ -1210,10 +1220,12 @@
         User::Leave(KErrNotFound);
         }
 
-    TUint32 iap = static_cast<TUint32>( wapBearerRecord->iWAPIAP );
+    iap = static_cast<TUint32>( wapBearerRecord->iWAPIAP );
     
     CleanupStack::PopAndDestroy( wapBearerRecord );
     CleanupStack::PopAndDestroy( db );
+
+#endif
     
     MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::IapIdFromWapIdL() - return iap id: %d "), iap);
     return iap;
--- a/tsrc/conf/ats_moduletests.txt	Fri Feb 19 22:52:52 2010 +0200
+++ b/tsrc/conf/ats_moduletests.txt	Fri Mar 12 15:43:00 2010 +0200
@@ -9,10 +9,3 @@
 INC ..\..\mediasettings\mediasettingsengine\tsrc\mediasettingsenginetest\conf\atsconf.txt
 INC ..\..\mediasettings\videoplayersettingsengine\tsrc\vpsettingsenginetest\conf\atsconf.txt
 INC ..\..\videocollection\mpxmyvideoscollection\tsrc\mpxmvcolltest\conf\atsconf.txt
-INC ..\..\videofeeds\server\tsrc\VCXIapListTest\conf\atsconf.txt
-INC ..\..\videofeeds\server\tsrc\VCXServiceTest\conf\atsconf.txt
-INC ..\..\videofeeds\server\tsrc\VCXSettingsDatabaseTest\conf\atsconf.txt
-INC ..\..\videofeeds\server\tsrc\VCXProvisioningTest\conf\atsconf.txt
-INC ..\..\videofeeds\server\tsrc\VCXScheduledReminderTest\conf\atsconf.txt
-INC ..\..\videofeeds\server\tsrc\VCXServiceManagementApiTest\conf\atsconf.txt
-INC ..\..\videofeeds\server\tsrc\VCXVodContentApiTest\conf\atsconf.txt
--- a/tsrc/group/bld.inf	Fri Feb 19 22:52:52 2010 +0200
+++ b/tsrc/group/bld.inf	Fri Mar 12 15:43:00 2010 +0200
@@ -28,10 +28,8 @@
 #include "../VCXTestCommon/group/bld.inf"
 #include "../VCXTestMyVideosCollectionClient/group/bld.inf"
 #include "../VCXTestUtilModule/group/bld.inf"
-#include "../fusionmpxplayer_test/group/bld.inf"
 #include "../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/bld.inf"
 #include "../../videoplayer_plat/video_player_file_details_dialog_api/tsrc/group/bld.inf"
 #include "../../videoplayer_plat/videoplayer_startup_api/tsrc/group/bld.inf"
 #include "../../mediasettings/mediasettingsengine/tsrc/mediasettingsenginetest/group/bld.inf"
 #include "../../mediasettings/videoplayersettingsengine/tsrc/vpsettingsenginetest/group/bld.inf"
-#include "../../videofeeds/server/tsrc/group/bld.inf"
--- a/tsrc/testing/sis/fusion_engine_tests.pkg	Fri Feb 19 22:52:52 2010 +0200
+++ b/tsrc/testing/sis/fusion_engine_tests.pkg	Fri Mar 12 15:43:00 2010 +0200
@@ -51,50 +51,9 @@
 "/epoc32/release/armv5/udeb/VCXTestEcgFileObserver.dll"   - "!:/Sys/Bin/VCXTestEcgFileObserver.dll"
 "/epoc32/release/armv5/udeb/VCXTestMyVideosCollectionClient.dll" - "!:/Sys/Bin/VCXTestMyVideosCollectionClient.dll"
 
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceUpdating.inc" - "c:/testframework/VCXServiceUpdating.inc"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceNames.inc" - "c:/testframework/VCXServiceNames.inc"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXConsts.inc" - "c:/testframework/VCXConsts.inc"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXErrors.inc" - "c:/testframework/VCXErrors.inc"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXDrives.inc" - "c:/testframework/VCXDrives.inc"
-
-; PROVISIONING & ZIP FILES
-"/epoc32/release/armv5/udeb/VCXProvisioningTest.dll"      - "!:/Sys/Bin/VCXProvisioningTest.dll"
-"../../../videofeeds/server/tsrc/VCXProvisioningTest/conf/VCXProvisioningTest.cfg" - "c:/testframework/VCXProvisioningTest.cfg"
-"../../../videofeeds/server/tsrc/VCXProvisioningTest/data/c/provisionzip/provision.zip" - "c:/testing/data/provisionzip/provision.zip"
-"../../../videofeeds/server/tsrc/VCXProvisioningTest/data/c/verifyzip/verify.zip" - "c:/testing/data/verifyzip/verify.zip"
-
-; SERVICE MANAGEMENT API
-"/epoc32/release/armv5/udeb/VCXServiceManagementApiTest.dll" - "!:/Sys/Bin/VCXServiceManagementApiTest.dll"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTest.inc" - "c:/testframework/VCXServiceManagementApiTest.inc"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestSync.cfg" - "c:/testframework/VCXServiceManagementApiTestSync.cfg"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestAsync.cfg" - "c:/testframework/VCXServiceManagementApiTestAsync.cfg"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestServiceCustom.cfg" - "c:/testframework/VCXServiceManagementApiTestServiceCustom.cfg"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestSyncErrorHandling.cfg" - "c:/testframework/VCXServiceManagementApiTestSyncErrorHandling.cfg"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestAsyncR3.cfg" - "c:/testframework/VCXServiceManagementApiTestAsyncR3.cfg"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestStressAsync.cfg" - "c:/testframework/VCXServiceManagementApiTestStressAsync.cfg"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestStressSync.cfg" - "c:/testframework/VCXServiceManagementApiTestStressSync.cfg"
-"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestHelium.cfg" - "c:/testframework/VCXServiceManagementApiTestHelium.cfg"
-
-; VOD CONTENT API
-"/epoc32/release/armv5/udeb/VCXVodContentApiTest.dll" - "!:/Sys/Bin/VCXVodContentApiTest.dll"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTest.inc" - "c:/testframework/VCXVodContentApiTest.inc"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTest.cfg" - "c:/testframework/VCXVodContentApiTest.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestCategoriesR3.cfg" - "c:/testframework/VCXVodContentApiTestCategoriesR3.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestDb.cfg" - "c:/testframework/VCXVodContentApiTestDb.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestErrors.cfg" - "c:/testframework/VCXVodContentApiTestErrors.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestInterference.cfg" - "c:/testframework/VCXVodContentApiTestInterference.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestMimeTypes.cfg" - "c:/testframework/VCXVodContentApiTestMimeTypes.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestParental.cfg" - "c:/testframework/VCXVodContentApiTestParental.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestSearch2R3.cfg" - "c:/testframework/VCXVodContentApiTestSearch2R3.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestSearchR3.cfg" - "c:/testframework/VCXVodContentApiTestSearchR3.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestSearchStressR3.cfg" - "c:/testframework/VCXVodContentApiTestSearchStressR3.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentModificationCheckTest.cfg" - "c:/testframework/VCXVodContentModificationCheckTest.cfg"
-"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestHelium.cfg" - "c:/testframework/VCXVodContentApiTestHelium.cfg"
-
-; SCHEDULED REMINDER
-"/epoc32/release/armv5/udeb/VCXScheduledReminderTest.dll" - "!:/Sys/Bin/VCXScheduledReminderTest.dll"
-"../../../videofeeds/server/tsrc/VCXScheduledReminderTest/conf/VCXScheduledReminderTest.cfg" - "c:/testframework/VCXScheduledReminderTest.cfg"
-"../../../videofeeds/server/tsrc/VCXScheduledReminderTest/conf/VCXScheduledReminderTest.inc" - "c:/testframework/VCXScheduledReminderTest.inc"
+"../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXConsts.inc" - "c:/testframework/VCXConsts.inc"
+"../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXErrors.inc" - "c:/testframework/VCXErrors.inc"
+"../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXDrives.inc" - "c:/testframework/VCXDrives.inc"
 
 ; MEDIASETTINGSENGINE
 "/epoc32/release/armv5/udeb/mpxmediasettingsenginetest.dll" - "!:/Sys/Bin/mpxmediasettingsenginetest.dll"
@@ -104,19 +63,7 @@
 "/epoc32/release/armv5/udeb/vcxnssettingsenginetest.dll" - "!:/Sys/Bin/vcxnssettingsenginetest.dll"
 "../../../mediasettings/videoplayersettingsengine/tsrc/vpsettingsenginetest/conf/vcxnssettingsenginetest.cfg" - "c:/TestFramework/vcxnssettingsenginetest.cfg"
 
-; VCXSETTINGSDATABASETEST
-"/epoc32/release/armv5/udeb/VCXSettingsDatabaseTest.dll" - "!:/Sys/Bin/VCXSettingsDatabaseTest.dll"
-"../../../videofeeds/server/tsrc/VCXSettingsDatabaseTest/conf/VCXSettingsDatabaseTest.cfg" - "c:/testframework/VCXSettingsDatabaseTest.cfg"
-
-; VCXIAPLISTTEST
-"/epoc32/release/armv5/udeb/VCXIapListTest.dll" - "!:/Sys/Bin/VCXIapListTest.dll"
-"../../../videofeeds/server/tsrc/VCXIapListTest/conf/VCXIapListTest.cfg" - "c:/testframework/VCXIapListTest.cfg"
-
-; VCXSERVICETEST
-"/epoc32/release/armv5/udeb/VCXServiceTest.dll" - "!:/Sys/Bin/VCXServiceTest.dll"
-"../../../videofeeds/server/tsrc/VCXServiceTest/conf/VCXServiceTest.cfg" - "c:/testframework/VCXServiceTest.cfg"
-
-; MY VIDEOS
+; MY VIDEOS COLLECTION
 "/epoc32/release/armv5/udeb/VCXMyVideosCollectionPluginTest.dll" - "!:/Sys/Bin/VCXMyVideosCollectionPluginTest.dll"
 "/epoc32/release/armv5/udeb/MediatorEventVerifier.dll" - "!:/Sys/Bin/MediatorEventVerifier.dll"
 "../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestAttributes.cfg" - "C:/TestFramework/VCXMyVideosCollectionPluginTestAttributes.cfg"
--- a/tsrc/testing/sis/make_engine_test_sis.cmd	Fri Feb 19 22:52:52 2010 +0200
+++ b/tsrc/testing/sis/make_engine_test_sis.cmd	Fri Mar 12 15:43:00 2010 +0200
@@ -20,6 +20,8 @@
 call \VideoApp_Domain\videoplayer\tsrc\testing\tools\tsrpkgtool.pl -a
 call popd
 
+call del *.sisx
+
 echo ----------------------------------------
 echo VIDEOPLAYER - MEDIASETTINGSENGINETEST
 echo ----------------------------------------
@@ -54,94 +56,6 @@
 call del VCXMyVideosCollectionPluginTest.sis
 
 echo ----------------------------------------
-echo VIDEOPLAYER - VCXPROVISIONINGTEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXProvisioningTest\group
-call makesis VCXProvisioningTest.pkg VCXProvisioningTest.sis
-call copy VCXProvisioningTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXProvisioningTest.sis VCXProvisioningTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXProvisioningTest.sis
-
-echo ----------------------------------------
-echo VIDEOPLAYER - VCXSCHEDULEDREMINDERTEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXScheduledReminderTest\group
-call makesis VCXScheduledReminderTest.pkg VCXScheduledReminderTest.sis
-call copy VCXScheduledReminderTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXScheduledReminderTest.sis VCXScheduledReminderTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXScheduledReminderTest.sis
-
-echo ----------------------------------------
-echo VIDEOPLAYER - VCXSCHEDULEDDOWNLOADTEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXScheduledDownloadTest\group
-call makesis VCXScheduledDownloadTest.pkg VCXScheduledDownloadTest.sis
-call copy VCXScheduledDownloadTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXScheduledDownloadTest.sis VCXScheduledDownloadTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXScheduledDownloadTest.sis
-
-echo ----------------------------------------
-echo VIDEOPLAYER - VCXSERVICEMANAGEMENTAPITEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXServiceManagementApiTest\group
-call makesis VCXServiceManagementApiTest.pkg VCXServiceManagementApiTest.sis
-call copy VCXServiceManagementApiTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXServiceManagementApiTest.sis VCXServiceManagementApiTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXServiceManagementApiTest.sis
-
-echo ----------------------------------------
-echo VIDEOPLAYER - VCXVODCONTENTAPITEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXVodContentApiTest\group
-call makesis VCXVodContentApiTest.pkg VCXVodContentApiTest.sis
-call copy VCXVodContentApiTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXVodContentApiTest.sis VCXVodContentApiTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXVodContentApiTest.sis
-
-echo ----------------------------------------
-echo VIDEOPLAYER - VCXSETTINGSDATABASETEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXSettingsDatabaseTest\group
-call makesis VCXSettingsDatabaseTest.pkg VCXSettingsDatabaseTest.sis
-call copy VCXSettingsDatabaseTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXSettingsDatabaseTest.sis VCXSettingsDatabaseTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXSettingsDatabaseTest.sis
-
-echo ----------------------------------------
-echo VIDEOPLAYER - VCXIAPLISTTEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXIapListTest\group
-call makesis VCXIapListTest.pkg VCXIapListTest.sis
-call copy VCXIapListTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXIapListTest.sis VCXIapListTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXIapListTest.sis
-
-echo ----------------------------------------
-echo VIDEOPLAYER - VCXSERVICETEST
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXServiceTest\group
-call makesis VCXServiceTest.pkg VCXServiceTest.sis
-call copy VCXServiceTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe VCXServiceTest.sis VCXServiceTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del VCXServiceTest.sis
-
-echo ----------------------------------------
 echo VIDEOPLAYER - VIDEOPLAYER_STARTUP_API
 echo ----------------------------------------
 
@@ -153,17 +67,6 @@
 call del VideoPlayerStartupApiTest.sis
 
 echo ----------------------------------------
-echo VIDEOPLAYER - MPX_FUSION_API
-echo ----------------------------------------
-
-call pushd \VideoApp_Domain\videoplayer\tsrc\fusionmpxplayer_test\group
-call makesis FusionMpxPlayer_ApiTest.pkg FusionMpxPlayer_ApiTest.sis
-call copy FusionMpxPlayer_ApiTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
-call popd
-call signsis.exe FusionMpxPlayer_ApiTest.sis FusionMpxPlayer_ApiTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
-call del FusionMpxPlayer_ApiTest.sis
-
-echo ----------------------------------------
 echo VIDEOPLAYER - UT_MPXVIDEOPLAYER
 echo ----------------------------------------
 
@@ -175,6 +78,17 @@
 call del mpxvideoplayertest.sis
 
 echo ----------------------------------------
+echo VIDEOPLAYER - VIDEOHELIXTEST
+echo ----------------------------------------
+
+call pushd VideoApp_Domain\videoplayer\videoplayback\videohelix\tsrc\ut_videohelixtest\group
+call makesis videohelixtest.pkg videohelixtest.sis
+call copy videohelixtest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis
+call popd
+call signsis.exe videohelixtest.sis videohelixtest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+call del videohelixtest.sis
+
+echo ----------------------------------------
 echo VIDEOPLAYER_PLAT - FILE_DETAILS_DIALOG_API
 echo ----------------------------------------
 
Binary file videocollection/hgmyvideos/conf/hgmyvideos.confml has changed
Binary file videocollection/hgmyvideos/conf/hgmyvideos_20021191.crml has changed
--- a/videocollection/hgmyvideos/data/vcxhgmyvideos.rss	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/data/vcxhgmyvideos.rss	Fri Mar 12 15:43:00 2010 +0200
@@ -170,6 +170,11 @@
 #endif
         MENU_ITEM 
             { 
+            command = EVcxHgMyVideosCmdOpenSettings; 
+            txt = qtn_vcx_options_settings;
+            },
+        MENU_ITEM 
+            { 
             command = EVcxHgMyVideosCmdHelp; 
             txt = qtn_options_help;
             },
@@ -283,6 +288,16 @@
 //
 // -----------------------------------------------------------------------------
 //
+RESOURCE CBA_BUTTON r_vcxhgmyvideos_rsk_exit
+    { 
+    id = EAknSoftkeyExit; 
+    txt = text_softkey_exit; 
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 RESOURCE CBA_BUTTON r_vcxhgmyvideos_msk_nothing
     { 
     id = EVcxHgMyVideosCmdNothing;
@@ -625,37 +640,37 @@
 // 
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_my_videos_title { buf = qtn_iptv_my_videos_title; }
+RESOURCE TBUF r_vcxhgmyvideos_my_videos_title { buf = qtn_vcx_title_suite; }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_one_new_video { buf = qtn_vcx_hg_one_new_video; }
+RESOURCE TBUF r_vcxhgmyvideos_one_new_video { buf = qtn_vcx_hg_list_one_new_video; }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_n_new_videos { buf = qtn_vcx_hg_n_new_videos; }
+RESOURCE TBUF r_vcxhgmyvideos_n_new_videos { buf = qtn_vcx_hg_list_n_new_videos; }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_no_videos_in_category { buf = qtn_vcx_hg_no_videos_in_category; }
+RESOURCE TBUF r_vcxhgmyvideos_no_videos_in_category { buf = qtn_vcx_hg_list_no_videos_in_category; }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_one_video_in_category { buf = qtn_vcx_hg_one_video_in_category; }
+RESOURCE TBUF r_vcxhgmyvideos_one_video_in_category { buf = qtn_vcx_hg_list_one_video_in_category; }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_videos_in_category { buf = qtn_vcx_hg_videos_in_category; }
+RESOURCE TBUF r_vcxhgmyvideos_videos_in_category { buf = qtn_vcx_hg_list_videos_in_category; }
 
 // -----------------------------------------------------------------------------
 //
@@ -680,13 +695,13 @@
 //
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_storage_captured_list { buf = qtn_vcx_hg_storage_captured_list; }
+RESOURCE TBUF r_vcxhgmyvideos_storage_captured_list { buf = qtn_vcx_hg_list_storage_captured; }
 
 // -----------------------------------------------------------------------------
 //
 // -----------------------------------------------------------------------------
 //  
-RESOURCE TBUF r_vcxhgmyvideos_storage_other_list { buf = qtn_iptv_storage_other_list; }
+RESOURCE TBUF r_vcxhgmyvideos_storage_other_list { buf = qtn_vcx_hg_list_storage_other; }
 
 // -----------------------------------------------------------------------------
 //
@@ -858,11 +873,27 @@
 //
 // -----------------------------------------------------------------------------
 //
-RESOURCE TBUF r_vcxhgmyvideos_refreshing { buf = qtn_iptv_refreshing; }
+RESOURCE TBUF r_vcxhgmyvideos_resume_not_possible
+    { buf = qtn_iptv_resume_not_possible; }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF r_vcxhgmyvideos_last_watched
+    { buf = qtn_vcx_hg_list_last_watched; }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
 //
-RESOURCE TBUF r_vcxhgmyvideos_resume_not_possible
-    { buf = qtn_iptv_resume_not_possible; }
+RESOURCE TBUF r_vcxhgmyvideos_ovi_store
+    { buf =  qtn_vcx_hg_list_ovi_store; }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF r_vcxhgmyvideos_ovi_store_videos
+    { buf = qtn_vcx_hg_list_ovi_store_videos; }
+
--- a/videocollection/hgmyvideos/group/bld.inf	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/group/bld.inf	Fri Mar 12 15:43:00 2010 +0200
@@ -28,6 +28,9 @@
 ../rom/hgmyvideos.iby CORE_APP_LAYER_IBY_EXPORT_PATH(hgmyvideos.iby)
 ../rom/hgmyvideosrsc.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(hgmyvideosrsc.iby)
 
+// Generic configuration interface for component cenrep settings  
+../conf/hgmyvideos.confml           APP_LAYER_CONFML(hgmyvideos.confml)
+../conf/hgmyvideos_20021191.crml    APP_LAYER_CRML(hgmyvideos_20021191.crml)
 
 PRJ_EXTENSIONS
 START EXTENSION s60/mifconv
@@ -52,7 +55,12 @@
   OPTION HEADERFILE vcxhgmyvideosicons.mbg
   OPTION SOURCEDIR ../icons
   OPTION SOURCES \
-    -c8,1 qgn_prop_mtv_prog_clip.svg
+    -c8,1 qgn_prop_mtv_prog_clip.svg \
+    -c8,1 qgn_prop_captured_thumbnail_video.svg \
+    -c8,1 qgn_prop_download_thumbnail_video.svg \
+    -c8,1 qgn_prop_ovi_thumbnail_video.svg \
+    -c8,1 qgn_prop_recent_thumbnail_video.svg \
+    -c8,1 qgn_prop_service_thumbnail_video.svg
 END
 
 PRJ_MMPFILES
--- a/videocollection/hgmyvideos/group/vcxhgmyvideos.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/group/vcxhgmyvideos.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: TB92_24.1.1 %
+// Version : %version: e92_30 %
 
 #include <platform_paths.hrh>
 #include <bldvariant.hrh>
@@ -53,15 +53,17 @@
 SOURCE                  vcxhgmyvideosvideolist.cpp
 SOURCE                  vcxhgmyvideosvideocopier.cpp
 SOURCE                  vcxhgmyvideosupnpinterface.cpp
-SOURCE                  vcxhgtelephonyclient.cpp
 #ifdef RD_VIDEO_AS_RINGING_TONE 
 SOURCE                  vcxhgmyvideosaiwmenuhandler.cpp
 #endif
+SOURCE                  vcxhgmyvideosthumbnailmanager.cpp
+SOURCE                  CIptvResourceLoader.cpp
+SOURCE                  CIptvDriveMonitor.cpp
+SOURCE                  TIptvDriveInfo.cpp
+SOURCE                  TIptvDriveMonitorEvent.cpp
 
 USERINCLUDE             ../inc
 USERINCLUDE    ../../../inc
-USERINCLUDE    ../../../videofeeds/utils/inc
-USERINCLUDE    ../../../videofeeds/viewmessageutility/inc
 
 APP_LAYER_SYSTEMINCLUDE
 
@@ -84,36 +86,18 @@
 LIBRARY                 egul.lib 
 LIBRARY                 avkon.lib
 LIBRARY                 aknicon.lib         
-LIBRARY                 aknlayout.lib
-LIBRARY                 aknlayout2.lib
-LIBRARY                 aknlayout2scalable.lib
 LIBRARY                 bafl.lib                  // CDesCArray 
 LIBRARY                 commonengine.lib          // String loader
 LIBRARY                 flogger.lib               // RFileLogger
 LIBRARY                 hlplch.lib                // HlpLauncher
 LIBRARY                 efsrv.lib
-LIBRARY                 mediaclientvideo.lib      // S60 video player
-LIBRARY                 ws32.lib                  // RBlankWindow
-LIBRARY                 apmime.lib                // TDataType
-LIBRARY                 fbscli.lib                // CFbsBitmap
-LIBRARY                 bitgdi.lib                // CFbsBitmapDevice
+LIBRARY                 ws32.lib                  // RWsSession
 LIBRARY                 estor.lib
-LIBRARY                 form.lib                  // CTextView
-LIBRARY                 fepbase.lib               // MCoeFepObserver
-LIBRARY                 mediatorclient.lib
 LIBRARY                 aknskins.lib
-LIBRARY                 aknskinsrv.lib
-LIBRARY                 aknswallpaperutils.lib 
-LIBRARY                 charconv.lib              // CnvUtfConverter
-LIBRARY                 etel.lib                  // RTelServer
-LIBRARY                 etelmm.lib                // RMobilePhone
-LIBRARY                 secui.lib                 // CSecurityHandler
 LIBRARY                 mpxcommon.lib             // MPX
 LIBRARY                 mpxcollectionutility.lib  // MPX
-LIBRARY                 iptvutil.lib              // Iptv Resource Loader
 LIBRARY                 commondialogs.lib         // Memory selection dialog
 LIBRARY                 drmhelper.lib             // DRM
-LIBRARY                 featmgr.lib               // Feature manager
 LIBRARY                 centralrepository.lib	  // Upnp
 LIBRARY                 thumbnailmanager.lib      // CThumbnailManager
 LIBRARY                 caf.lib                   // CAF
@@ -121,13 +105,12 @@
 LIBRARY                 sendui.lib                // For send video
 LIBRARY                 drmutility.lib            // DRM
 LIBRARY                 playbackhelper.lib        // Recognizer
-LIBRARY                 mpxplaybackutility.lib    // MPX playback utility
-LIBRARY                 mpxviewutility.lib
-LIBRARY                 mpfiledetailsdialog.lib
-LIBRARY                 vcxviewmessageutility.lib // CVcxViewMessageUtility
 LIBRARY                 upnpcommand.lib
 LIBRARY                 ganes.lib                 // for HgList
 LIBRARY                 ecom.lib
+LIBRARY                 apgrfx.lib                // RApaLsSession
 #ifdef RD_VIDEO_AS_RINGING_TONE
 LIBRARY                 servicehandler.lib        // AIW Service Handler
-#endif
\ No newline at end of file
+#endif
+LIBRARY                 platformenv.lib
+LIBRARY                 fbscli.lib                // CFbsBitmap
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/icons/qgn_prop_captured_thumbnail_video.svg	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="90px" height="60px" viewBox="0 0 90 60" enable-background="new 0 0 90 60" xml:space="preserve">
+<rect fill="none" width="90" height="60"/>
+<rect x="18.418" y="4.259" fill="none" width="52.122" height="52.122"/>
+<path fill="#FFFFFF" d="M65.31,13.55c-2.023,0-3.423,1.02-3.423,2.896c0,1.878,1.438,2.895,3.423,2.895
+	c1.981,0,3.418-1.016,3.418-2.895C68.728,14.609,67.213,13.55,65.31,13.55z"/>
+<polygon fill="#FFFFFF" points="18.387,5.143 63.849,14.281 63.376,56.156 20.192,44.013 "/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-78.396" y1="-86.4761" x2="-35.0569" y2="-102.2478" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M24.586,13.188c0,9.118,0,17.046,0,26.335l25.559,6.7c0-9.29,0-18.583,0-27.879L24.586,13.188z"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-32.5571" y1="-91.5874" x2="-62.8272" y2="-102.6096" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_2_)" d="M63.75,21.084l-13.602-2.742c0,9.296,0,18.591,0,27.881l13.268,3.484L63.75,21.084z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-80.7158" y1="-88.146" x2="-42.7518" y2="-92.6767" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M18.811,12.021l1.147,26.29l4.628,1.209c0-9.283,0-17.218,0-26.333L18.811,12.021z"/>
+<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-87.5044" y1="-71.4497" x2="7.3703" y2="-71.4497" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<polygon fill="url(#SVGID_4_)" points="68.468,12.439 23.254,3.676 18.459,5.105 63.952,14.5 "/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-69.998" y1="-59.1743" x2="-56.0859" y2="-106.7536" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E6EEF4"/>
+	<stop  offset="0.44" style="stop-color:#A3740A"/>
+	<stop  offset="0.94" style="stop-color:#474105"/>
+</linearGradient>
+<path fill="url(#SVGID_5_)" d="M18.416,5.102l45.436,9.312l-0.474,41.733l-43.18-11.93L18.416,5.102z M60.782,19.716l3.069,0.664
+	l0.015-3.684l-3.086-0.647L60.782,19.716z M55.989,18.599l2.531,0.592l-0.015-3.66l-2.545-0.569L55.989,18.599z M51.172,17.507
+	l2.541,0.583l-0.037-3.636l-2.555-0.567L51.172,17.507z M46.331,16.425l2.556,0.572l-0.063-3.608l-2.564-0.551L46.331,16.425z
+	 M41.486,15.361l2.56,0.557l-0.091-3.58l-2.571-0.543L41.486,15.361z M36.622,14.322l2.573,0.543l-0.119-3.556l-2.58-0.537
+	L36.622,14.322z M31.747,13.289l2.574,0.531l-0.133-3.52l-2.59-0.532L31.747,13.289z M26.852,12.267l2.592,0.533L29.28,9.294
+	l-2.598-0.519L26.852,12.267z M18.649,10.6l1.21,0.245l-0.209-3.45l-1.125-0.217L18.649,10.6z M21.954,11.267l2.588,0.522
+	l-0.186-3.471l-2.607-0.516L21.954,11.267z M60.762,53.112l2.663,0.74l0.014-3.685l-2.685-0.727L60.762,53.112z M56.158,51.801
+	l2.436,0.691l-0.025-3.661l-2.438-0.677L56.158,51.801z M51.538,50.502l2.441,0.685l-0.038-3.638l-2.452-0.678L51.538,50.502z
+	 M46.91,49.217l2.452,0.673l-0.065-3.602l-2.458-0.668L46.91,49.217z M42.263,47.947l2.458,0.673l-0.088-3.587l-2.468-0.651
+	L42.263,47.947z M37.599,46.694l2.466,0.664l-0.111-3.562l-2.472-0.646L37.599,46.694z M32.92,45.465l2.472,0.646l-0.133-3.524
+	l-2.484-0.643L32.92,45.465z M28.225,44.244l2.483,0.644l-0.159-3.514l-2.494-0.628L28.225,44.244z M23.52,43.031L26,43.667
+	l-0.182-3.485l-2.495-0.617L23.52,43.031z M20.07,42.154l1.22,0.313l-0.202-3.453l-1.109-0.25L20.07,42.154z M52.52,44.762
+	l11.042,2.85l0.217-24.509L52.29,20.499L52.52,44.762z M27.251,38.416l22.191,5.717l-0.247-24.291l-22.94-4.979L27.251,38.416z
+	 M19.925,36.588l4.208,1.096l-1.121-23.487l-4.202-0.852L19.925,36.588z"/>
+<polygon fill="#6D5607" points="63.347,56.193 67.168,52.854 68.457,12.343 63.849,14.414 "/>
+<polygon fill="#B18E3B" points="63.82,16.711 68.385,14.307 68.255,17.839 63.786,20.37 "/>
+<polygon fill="#B18E3B" points="63.435,50.198 63.388,53.853 67.213,50.846 67.335,47.532 "/>
+<polygon fill="#B18E3B" points="63.778,23.102 63.477,47.642 67.396,45.062 68.154,20.514 "/>
+<g>
+	<g>
+		<g>
+			<g>
+				<polygon fill="#D7CEE6" points="67.4,37.886 46.539,34.358 39.658,36.028 60.445,40.311 				"/>
+				
+					<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-326.4976" y1="268.4814" x2="-324.271" y2="259.7819" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#E6EEF4"/>
+					<stop  offset="0.4438" style="stop-color:#9646AC"/>
+					<stop  offset="0.9382" style="stop-color:#3D013F"/>
+					<stop  offset="1" style="stop-color:#3D013F"/>
+				</linearGradient>
+				<polygon fill="url(#SVGID_6_)" points="60.435,56.22 40.54,50.237 39.729,36.009 60.438,40.32 				"/>
+				<polygon fill="#5E1B67" points="67.4,37.886 67.017,52.912 60.435,56.22 60.375,40.259 				"/>
+				
+					<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-321.27" y1="265.4365" x2="-323.5245" y2="265.3849" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#E6EEF4"/>
+					<stop  offset="0.4438" style="stop-color:#9646AC"/>
+					<stop  offset="0.9382" style="stop-color:#3D013F"/>
+					<stop  offset="1" style="stop-color:#3D013F"/>
+				</linearGradient>
+				<polygon fill="url(#SVGID_7_)" points="71.882,39.104 71.704,49.168 66.875,47.629 66.962,40.535 				"/>
+				
+					<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-322.0967" y1="264.4336" x2="-323.9386" y2="264.623" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#E6EEF4"/>
+					<stop  offset="0.4438" style="stop-color:#9646AC"/>
+					<stop  offset="0.9382" style="stop-color:#3D013F"/>
+					<stop  offset="1" style="stop-color:#3D013F"/>
+				</linearGradient>
+				<polygon fill="url(#SVGID_8_)" points="64.784,52.058 71.704,49.168 66.875,47.629 61.888,49.559 				"/>
+				<polygon fill="#D7CEE6" points="61.548,41.969 64.839,41.611 71.912,39.058 67.288,39.938 				"/>
+				
+					<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-323.2153" y1="264.9941" x2="-323.9428" y2="265.0305" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#DEDEED"/>
+					<stop  offset="1" style="stop-color:#9646AC"/>
+				</linearGradient>
+				<polygon fill="url(#SVGID_9_)" points="64.839,41.611 64.784,52.058 61.521,49.64 61.503,41.945 				"/>
+			</g>
+			<g>
+				
+					<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-326.3232" y1="269.0459" x2="-325.7381" y2="267.1254" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#E6EEF4"/>
+					<stop  offset="0.4438" style="stop-color:#9646AC"/>
+					<stop  offset="0.9382" style="stop-color:#3D013F"/>
+					<stop  offset="1" style="stop-color:#3D013F"/>
+				</linearGradient>
+				<path fill="url(#SVGID_10_)" d="M52.494,23.124c-2.063-4.789-6.943-6.644-12.077-4.489l6.333,17.14
+					C52.765,34.408,54.853,28.592,52.494,23.124z"/>
+				
+					<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-327.689" y1="269.3701" x2="-326.3289" y2="267.4271" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#DEDEED"/>
+					<stop  offset="1" style="stop-color:#9646AC"/>
+				</linearGradient>
+				<path fill="url(#SVGID_11_)" d="M51.601,28.602c-0.158,4.882-3.8,8.203-8.141,7.417c-4.336-0.784-7.723-5.38-7.569-10.26
+					c0.158-4.882,3.801-8.202,8.139-7.414C48.369,19.13,51.759,23.723,51.601,28.602z"/>
+				
+					<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-326.5342" y1="267.6699" x2="-326.8742" y2="267.9529" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#E6EEF4"/>
+					<stop  offset="0.4438" style="stop-color:#9646AC"/>
+					<stop  offset="0.9382" style="stop-color:#3D013F"/>
+					<stop  offset="1" style="stop-color:#3D013F"/>
+				</linearGradient>
+				<path fill="url(#SVGID_12_)" d="M42.647,24.875c-3.204,1.842,0.591,6.933,2.785,4.07L42.647,24.875z"/>
+				<path fill="#D7CEE6" d="M42.663,24.891c-1.263,1.828,0.845,4.791,2.77,4.055C46.83,26.33,44.181,24.064,42.663,24.891z"/>
+			</g>
+			<g>
+				
+					<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="-323.8936" y1="268.6123" x2="-323.2906" y2="266.6335" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#E6EEF4"/>
+					<stop  offset="0.4438" style="stop-color:#9646AC"/>
+					<stop  offset="0.9382" style="stop-color:#3D013F"/>
+					<stop  offset="1" style="stop-color:#3D013F"/>
+				</linearGradient>
+				<path fill="url(#SVGID_13_)" d="M69.249,26.204c-2.126-4.933-7.153-6.845-12.437-4.625l6.522,17.654
+					C69.528,37.825,71.679,31.834,69.249,26.204z"/>
+				<path fill="#A15EB6" d="M68.331,31.846c-0.166,5.028-3.916,8.448-8.388,7.64c-4.465-0.806-7.954-5.542-7.793-10.567
+					c0.16-5.027,3.914-8.449,8.382-7.636C65.003,22.088,68.492,26.819,68.331,31.846z"/>
+				
+					<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="-324.1118" y1="267.1934" x2="-324.4622" y2="267.4848" gradientTransform="matrix(6.8182 0 0 -6.8182 2270.9502 1853.7356)">
+					<stop  offset="0" style="stop-color:#E6EEF4"/>
+					<stop  offset="0.4438" style="stop-color:#9646AC"/>
+					<stop  offset="0.9382" style="stop-color:#3D013F"/>
+					<stop  offset="1" style="stop-color:#3D013F"/>
+				</linearGradient>
+				<path fill="url(#SVGID_14_)" d="M59.107,28.007c-3.299,1.896,0.609,7.139,2.869,4.192L59.107,28.007z"/>
+				<path fill="#D7CEE6" d="M59.124,28.022c-1.234,1.839,0.802,4.966,2.853,4.175C63.396,29.501,60.668,27.167,59.124,28.022z"/>
+			</g>
+		</g>
+	</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/icons/qgn_prop_download_thumbnail_video.svg	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="90px" height="60px" viewBox="0 0 90 60" enable-background="new 0 0 90 60" xml:space="preserve">
+<rect fill="none" width="90" height="60"/>
+<rect x="18.418" y="4.259" fill="none" width="52.122" height="52.122"/>
+<path fill="#FFFFFF" d="M65.31,13.55c-2.023,0-3.423,1.02-3.423,2.896c0,1.878,1.438,2.895,3.423,2.895
+	c1.981,0,3.418-1.016,3.418-2.895C68.728,14.609,67.213,13.55,65.31,13.55z"/>
+<polygon fill="#FFFFFF" points="18.387,5.143 63.849,14.281 63.376,56.156 20.192,44.013 "/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-78.396" y1="-86.4761" x2="-35.0569" y2="-102.2478" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M24.586,13.188c0,9.118,0,17.046,0,26.335l25.559,6.7c0-9.29,0-18.583,0-27.879L24.586,13.188z"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-32.5571" y1="-91.5874" x2="-62.8272" y2="-102.6096" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_2_)" d="M63.75,21.084l-13.602-2.742c0,9.296,0,18.591,0,27.881l13.268,3.484L63.75,21.084z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-80.7158" y1="-88.146" x2="-42.7518" y2="-92.6767" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M18.811,12.021l1.147,26.29l4.628,1.209c0-9.283,0-17.218,0-26.333L18.811,12.021z"/>
+<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-87.5044" y1="-71.4497" x2="7.3703" y2="-71.4497" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<polygon fill="url(#SVGID_4_)" points="68.468,12.439 23.254,3.676 18.459,5.105 63.952,14.5 "/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-69.998" y1="-59.1743" x2="-56.0859" y2="-106.7536" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E6EEF4"/>
+	<stop  offset="0.44" style="stop-color:#A3740A"/>
+	<stop  offset="0.94" style="stop-color:#474105"/>
+</linearGradient>
+<path fill="url(#SVGID_5_)" d="M18.416,5.102l45.436,9.312l-0.474,41.733l-43.18-11.93L18.416,5.102z M60.782,19.716l3.069,0.664
+	l0.015-3.684l-3.086-0.647L60.782,19.716z M55.989,18.599l2.531,0.592l-0.015-3.66l-2.545-0.569L55.989,18.599z M51.172,17.507
+	l2.541,0.583l-0.037-3.636l-2.555-0.567L51.172,17.507z M46.331,16.425l2.556,0.572l-0.063-3.608l-2.564-0.551L46.331,16.425z
+	 M41.486,15.361l2.56,0.557l-0.091-3.58l-2.571-0.543L41.486,15.361z M36.622,14.322l2.573,0.543l-0.119-3.556l-2.58-0.537
+	L36.622,14.322z M31.747,13.289l2.574,0.531l-0.133-3.52l-2.59-0.532L31.747,13.289z M26.852,12.267l2.592,0.533L29.28,9.294
+	l-2.598-0.519L26.852,12.267z M18.649,10.6l1.21,0.245l-0.209-3.45l-1.125-0.217L18.649,10.6z M21.954,11.267l2.588,0.522
+	l-0.186-3.471l-2.607-0.516L21.954,11.267z M60.762,53.112l2.663,0.74l0.014-3.685l-2.685-0.727L60.762,53.112z M56.158,51.801
+	l2.436,0.691l-0.025-3.661l-2.438-0.677L56.158,51.801z M51.538,50.502l2.441,0.685l-0.038-3.638l-2.452-0.678L51.538,50.502z
+	 M46.91,49.217l2.452,0.673l-0.065-3.602l-2.458-0.668L46.91,49.217z M42.263,47.947l2.458,0.673l-0.088-3.587l-2.468-0.651
+	L42.263,47.947z M37.599,46.694l2.466,0.664l-0.111-3.562l-2.472-0.646L37.599,46.694z M32.92,45.465l2.472,0.646l-0.133-3.524
+	l-2.484-0.643L32.92,45.465z M28.225,44.244l2.483,0.644l-0.159-3.514l-2.494-0.628L28.225,44.244z M23.52,43.031L26,43.667
+	l-0.182-3.485l-2.495-0.617L23.52,43.031z M20.07,42.154l1.22,0.313l-0.202-3.453l-1.109-0.25L20.07,42.154z M52.52,44.762
+	l11.042,2.85l0.217-24.509L52.29,20.499L52.52,44.762z M27.251,38.416l22.191,5.717l-0.247-24.291l-22.94-4.979L27.251,38.416z
+	 M19.925,36.588l4.208,1.096l-1.121-23.487l-4.202-0.852L19.925,36.588z"/>
+<polygon fill="#6D5607" points="63.347,56.193 67.168,52.854 68.457,12.343 63.849,14.414 "/>
+<polygon fill="#B18E3B" points="63.82,16.711 68.385,14.307 68.255,17.839 63.786,20.37 "/>
+<polygon fill="#B18E3B" points="63.435,50.198 63.388,53.853 67.213,50.846 67.335,47.532 "/>
+<polygon fill="#B18E3B" points="63.778,23.102 63.477,47.642 67.396,45.062 68.154,20.514 "/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-264.3301" y1="560.7861" x2="-267.7697" y2="577.4745" gradientTransform="matrix(-1 0 0 -1 -227.7041 603.3203)">
+	<stop  offset="0" style="stop-color:#DCE8E4"/>
+	<stop  offset="1" style="stop-color:#43910A"/>
+</linearGradient>
+<polygon fill="url(#SVGID_6_)" points="36.484,27.486 36.352,21.844 42.903,23.604 42.811,29.112 46.287,29.899 39.382,37.714 
+	32.875,26.491 "/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/icons/qgn_prop_ovi_thumbnail_video.svg	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="90px" height="60px" viewBox="0 0 90 60" enable-background="new 0 0 90 60" xml:space="preserve">
+<rect fill="none" width="90" height="60"/>
+<rect x="18.418" y="4.259" fill="none" width="52.122" height="52.122"/>
+<rect x="18.418" y="4.259" fill="#44A51C" width="52.122" height="52.122"/>
+<path fill="#FFFFFF" d="M30.699,21.384c-6.723,0-10.255,4.613-10.255,11.183c0,6.648,2.6,11.881,10.187,11.881
+	c6.987,0,10.22-4.733,10.22-11.734C40.851,26.031,37.664,21.384,30.699,21.384z M30.628,40.856c-3.583,0-3.74-5.087-3.74-8.418
+	c0-3.245,0.271-7.463,3.74-7.463c3.304,0,3.768,4.46,3.768,7.463C34.396,36.311,34.202,40.856,30.628,40.856z"/>
+<path fill="#FFFFFF" d="M49.429,44.447c2.729,0,3.691-1.367,4.339-3.355l5.883-19.393h-5.487l-4.206,16.777l-3.964-16.777h-6.495
+	l5.58,19.393C45.691,43.08,46.693,44.447,49.429,44.447z"/>
+<path fill="#FFFFFF" d="M65.31,13.55c-2.023,0-3.423,1.02-3.423,2.896c0,1.878,1.438,2.895,3.423,2.895
+	c1.981,0,3.418-1.016,3.418-2.895C68.728,14.609,67.213,13.55,65.31,13.55z"/>
+<path fill="#FFFFFF" d="M63.046,43.828c0.454,0.331,1.184,0.619,2.204,0.619c1.069,0,1.77-0.292,2.229-0.619
+	c0.879-0.625,0.879-1.677,0.879-2.243V21.699h-6.124c0,0-0.227,0-0.423,0c-0.592,0-1.089,0.013-1.427,0.477
+	c-0.168,0.216-0.393,0.611-0.393,1.318c0,0.738,0.225,1.093,0.393,1.316c0.338,0.47,0.835,0.474,1.427,0.474
+	c0.196,0,0.362-0.003,0.362-0.003v16.305C62.167,42.151,62.167,43.203,63.046,43.828z"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/icons/qgn_prop_recent_thumbnail_video.svg	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="90px" height="60px" viewBox="0 0 90 60" enable-background="new 0 0 90 60" xml:space="preserve">
+<rect fill="none" width="90" height="60"/>
+<rect x="18.418" y="4.259" fill="none" width="52.122" height="52.122"/>
+<path fill="#FFFFFF" d="M65.31,13.55c-2.023,0-3.423,1.02-3.423,2.896c0,1.878,1.438,2.895,3.423,2.895
+	c1.981,0,3.418-1.016,3.418-2.895C68.728,14.609,67.213,13.55,65.31,13.55z"/>
+<polygon fill="#FFFFFF" points="18.387,5.143 63.849,14.281 63.376,56.156 20.192,44.013 "/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-78.396" y1="-86.4761" x2="-35.0569" y2="-102.2478" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M24.586,13.188c0,9.118,0,17.046,0,26.335l25.559,6.7c0-9.29,0-18.583,0-27.879L24.586,13.188z"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-32.5571" y1="-91.5874" x2="-62.8272" y2="-102.6096" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_2_)" d="M63.75,21.084l-13.602-2.742c0,9.296,0,18.591,0,27.881l13.268,3.484L63.75,21.084z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-80.7158" y1="-88.146" x2="-42.7518" y2="-92.6767" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M18.811,12.021l1.147,26.29l4.628,1.209c0-9.283,0-17.218,0-26.333L18.811,12.021z"/>
+<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-87.5044" y1="-71.4497" x2="7.3703" y2="-71.4497" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E2E6E4"/>
+	<stop  offset="1" style="stop-color:#A3740A"/>
+</linearGradient>
+<polygon fill="url(#SVGID_4_)" points="68.468,12.439 23.254,3.676 18.459,5.105 63.952,14.5 "/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-69.998" y1="-59.1743" x2="-56.0859" y2="-106.7536" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+	<stop  offset="0" style="stop-color:#E6EEF4"/>
+	<stop  offset="0.44" style="stop-color:#A3740A"/>
+	<stop  offset="0.94" style="stop-color:#474105"/>
+</linearGradient>
+<path fill="url(#SVGID_5_)" d="M18.416,5.102l45.436,9.312l-0.474,41.733l-43.18-11.93L18.416,5.102z M60.782,19.716l3.069,0.664
+	l0.015-3.684l-3.086-0.647L60.782,19.716z M55.989,18.599l2.531,0.592l-0.015-3.66l-2.545-0.569L55.989,18.599z M51.172,17.507
+	l2.541,0.583l-0.037-3.636l-2.555-0.567L51.172,17.507z M46.331,16.425l2.556,0.572l-0.063-3.608l-2.564-0.551L46.331,16.425z
+	 M41.486,15.361l2.56,0.557l-0.091-3.58l-2.571-0.543L41.486,15.361z M36.622,14.322l2.573,0.543l-0.119-3.556l-2.58-0.537
+	L36.622,14.322z M31.747,13.289l2.574,0.531l-0.133-3.52l-2.59-0.532L31.747,13.289z M26.852,12.267l2.592,0.533L29.28,9.294
+	l-2.598-0.519L26.852,12.267z M18.649,10.6l1.21,0.245l-0.209-3.45l-1.125-0.217L18.649,10.6z M21.954,11.267l2.588,0.522
+	l-0.186-3.471l-2.607-0.516L21.954,11.267z M60.762,53.112l2.663,0.74l0.014-3.685l-2.685-0.727L60.762,53.112z M56.158,51.801
+	l2.436,0.691l-0.025-3.661l-2.438-0.677L56.158,51.801z M51.538,50.502l2.441,0.685l-0.038-3.638l-2.452-0.678L51.538,50.502z
+	 M46.91,49.217l2.452,0.673l-0.065-3.602l-2.458-0.668L46.91,49.217z M42.263,47.947l2.458,0.673l-0.088-3.587l-2.468-0.651
+	L42.263,47.947z M37.599,46.694l2.466,0.664l-0.111-3.562l-2.472-0.646L37.599,46.694z M32.92,45.465l2.472,0.646l-0.133-3.524
+	l-2.484-0.643L32.92,45.465z M28.225,44.244l2.483,0.644l-0.159-3.514l-2.494-0.628L28.225,44.244z M23.52,43.031L26,43.667
+	l-0.182-3.485l-2.495-0.617L23.52,43.031z M20.07,42.154l1.22,0.313l-0.202-3.453l-1.109-0.25L20.07,42.154z M52.52,44.762
+	l11.042,2.85l0.217-24.509L52.29,20.499L52.52,44.762z M27.251,38.416l22.191,5.717l-0.247-24.291l-22.94-4.979L27.251,38.416z
+	 M19.925,36.588l4.208,1.096l-1.121-23.487l-4.202-0.852L19.925,36.588z"/>
+<polygon fill="#6D5607" points="63.347,56.193 67.168,52.854 68.457,12.343 63.849,14.414 "/>
+<polygon fill="#B18E3B" points="63.82,16.711 68.385,14.307 68.255,17.839 63.786,20.37 "/>
+<polygon fill="#B18E3B" points="63.778,23.102 63.477,47.642 67.396,45.062 68.154,20.514 "/>
+<g>
+	<polygon fill="#B18E3B" points="61.264,19.599 61.204,24.216 66.038,20.417 66.191,16.231 	"/>
+	<g>
+		<g>
+			<g>
+				<g>
+					<path fill="#496DA2" d="M59.977,25.915c-5.335,0-9.675-4.347-9.675-9.683c0-5.337,4.34-9.678,9.675-9.678
+						c5.338,0,9.68,4.341,9.68,9.678C69.656,21.566,65.314,25.915,59.977,25.915L59.977,25.915z"/>
+					<path fill="#FFFFFF" d="M59.98,8.568c4.231,0,7.661,3.431,7.661,7.665c0,4.232-3.43,7.665-7.661,7.665
+						c-4.233,0-7.665-3.433-7.665-7.665C52.315,11.999,55.747,8.568,59.98,8.568 M59.98,4.536c-6.449,0-11.696,5.249-11.696,11.697
+						S53.531,27.93,59.98,27.93c6.446,0,11.692-5.249,11.692-11.697S66.427,4.536,59.98,4.536L59.98,4.536z"/>
+				</g>
+			</g>
+		</g>
+	</g>
+	<polygon fill="#FFFFFF" points="61.001,10.717 59.434,10.717 59.434,15.583 55.907,15.583 55.907,17.156 60.35,17.156 
+		60.35,17.154 61.001,17.154 	"/>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/icons/qgn_prop_service_thumbnail_video.svg	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="90px" height="60px" viewBox="0 0 90 60" enable-background="new 0 0 90 60" xml:space="preserve">
+<g>
+	
+		<radialGradient id="SVGID_1_" cx="-53.6362" cy="-75.792" r="47.1888" fx="-54.4808" fy="-77.886" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)" gradientUnits="userSpaceOnUse">
+		<stop  offset="0" style="stop-color:#FFFFFF"/>
+		<stop  offset="0.5337" style="stop-color:#A2C2DD"/>
+		<stop  offset="0.8652" style="stop-color:#6C83BB"/>
+		<stop  offset="1" style="stop-color:#003D6D"/>
+	</radialGradient>
+	<path fill="url(#SVGID_1_)" d="M49.838,29.932h19.516c0-0.021,0.002-0.038,0.002-0.057c0-14.088-11.418-25.505-25.502-25.505
+		S18.348,15.787,18.348,29.875c0,14.083,11.422,25.502,25.506,25.502c2.063,0,4.061-0.272,5.984-0.733V29.932z"/>
+	
+		<radialGradient id="SVGID_2_" cx="-271.7451" cy="749.8672" r="39.4641" gradientTransform="matrix(1 0 0 1 317.04 -723.0391)" gradientUnits="userSpaceOnUse">
+		<stop  offset="0" style="stop-color:#A2C2DD"/>
+		<stop  offset="0.1" style="stop-color:#A2C2DD"/>
+		<stop  offset="0.7135" style="stop-color:#6C83BB"/>
+		<stop  offset="0.9888" style="stop-color:#003D6D"/>
+		<stop  offset="1" style="stop-color:#003D6D"/>
+	</radialGradient>
+	<path fill="url(#SVGID_2_)" d="M31.033,7.786c-1.16,0.691-4.26,2.886-4.303,3.748c-0.041,0.857,0.891-1.011,1.766-0.692
+		c0.174,0,1.242-1.498,3.229-2.454c0.863-0.816,2.414-0.345,2.414-0.345s4.604-1.721,4.346-1.29
+		c-0.701,1.175-4.393,1.851-4.953,2.109c-0.559,0.26-3.658,2.326-1.074,1.506c0.475-0.042,1.807-0.085,2.455,0.133
+		c0.648,0.212,1.701-0.917,2.971-0.649c0.52-0.262,1.551-0.819,1.811-0.819c0.258,0,1.207-0.086,1.162-1.201
+		c0,0,0.693-1.579,0.904-2.2c0.58-0.158,1.25-1.075,1.25-1.075c-1.809-0.259-6.158,0.907-6.801,1.075
+		C36.07,5.762,32.412,7.445,31.033,7.786z"/>
+	
+		<radialGradient id="SVGID_3_" cx="-269.1685" cy="743.6016" r="28.9131" gradientTransform="matrix(1 0 0 1 317.04 -723.0391)" gradientUnits="userSpaceOnUse">
+		<stop  offset="0" style="stop-color:#A2C2DD"/>
+		<stop  offset="0.1" style="stop-color:#A2C2DD"/>
+		<stop  offset="0.7135" style="stop-color:#6C83BB"/>
+		<stop  offset="0.9888" style="stop-color:#003D6D"/>
+		<stop  offset="1" style="stop-color:#003D6D"/>
+	</radialGradient>
+	<path fill="url(#SVGID_3_)" d="M45.375,47.486l-0.863,0.606c0,0-0.795,0.013-0.904,0.345c-0.389,1.193-0.258,2.794,0.686,2.582
+		c0.949-0.218,1.207-1.641,1.207-1.641S46.451,47.271,45.375,47.486z"/>
+	
+		<radialGradient id="SVGID_4_" cx="-271.4248" cy="-808.7124" r="39.553" fx="-270.6078" fy="-808.8184" gradientTransform="matrix(1 0 0 -1 317.04 -796.3809)" gradientUnits="userSpaceOnUse">
+		<stop  offset="0" style="stop-color:#E6EEF4"/>
+		<stop  offset="0.4438" style="stop-color:#4A9900"/>
+		<stop  offset="0.9382" style="stop-color:#0E4E58"/>
+		<stop  offset="1" style="stop-color:#0E4E58"/>
+	</radialGradient>
+	<path fill="url(#SVGID_4_)" d="M56.785,8.346l1.334,2.888l3.098,1.117c0,0,0.777,0.945,1.035,1.162
+		c0.387,1.723,1.248,3.573,1.42,3.659c0.17,0.085,0.945,0.341,1.207,0.299c0.17,0.95-0.09,0.95-0.09,0.95l-1.248-0.605l0.514,2.112
+		l2.41,4.09c-0.301,0.646-1.463,4.478-1.463,4.478s0.633,0.58,1.02,1.4c-2.135,0-16.184,0.036-16.184,0.036
+		s-0.078,0.647-0.078,1.491c-0.756,0.083-1.406,0.191-1.291,0.306c1.725,1.205,1.035,2.067,1.035,2.067l-2.713,2.41
+		c0,0-2.283,1.035-2.971,1.204c-1.248,0.774,0.127,1.079,1.506,0.734c1.377-0.344,1.248,0.217,1.033,0.777
+		c-0.775,1.892-2.15,3.096-3.059,3.441c-1.891,1.335-2.324,3.316-1.42,4.134c0,0,0.086,1.938-0.561,1.978
+		c-0.645,0.044-1.551,0.733-1.551,1.032c0,0.304-0.686,1.551-0.947,1.764c-0.904,1.162-2.068,1.033-2.586,0.775
+		c-2.369,0.467-4.346-3.356-4.475-3.701c-0.129-0.344-1.852-1.203-1.291-2.755c0.555-1.553-2.072-5.394-3.447-8.74
+		c-0.176-0.15-2.023-0.607-3.012-0.904c-0.99-0.302-1.422-2.668-1.854-3.662c-0.428-0.991,0.732-4.82,0.775-5.082
+		c0.045-0.257,4.867-3.743,4.867-3.743l-0.178-1.51c0,0,1.555-2.109,1.85-1.42c0.301,0.688,1.814,0.558,1.68-0.429
+		c-0.129-0.991,0.219-1.468,0.602-1.508c0.389-0.044,0.045-0.859-0.428-1.466c-0.471-0.602,0.732-0.775,1.51-1.506
+		c0.777-0.733,0.215,1.594,0.215,2.368c0,0.775,2.627-1.292,2.754-1.42c-0.299-1.506,0.908-1.896,1.25-1.938
+		c0.346-0.044,1.896-0.948,2.283-1.337c0.385-0.385,1.465-0.385,1.811-0.344c0.342,0.041,1.891,1.291,2.279,1.291
+		s3.447-0.818,3.533-1.378c0.086-0.561,0.385-0.862,0.947-1.075c0.559-0.216,0.646-2.027,0.646-2.027s2.582-0.602,2.969-0.731
+		C51.91,8.9,51.566,8.126,51.439,7.78c0.471-1.031-1.98-2.045-1.08-1.981C53.898,6.065,56.395,7.743,56.785,8.346z M28.193,23.59
+		l0.344,0.432c0,0,1.781,0.182,3.543,0.865c0.266,0.271-0.055,1.545-0.055,1.545s1.893,2.582,2.279,2.113
+		c0.385-0.478,0.904-0.909,1.506-0.478c0.605,0.43,2.068,0.946,2.801,0.946c0.305,0.086,1.807,0.561,1.764-1.72
+		c-0.592-0.821-2.109-0.687-2.367-0.905c-0.258-0.217-0.773-1.767-0.773-1.767l-0.518,0.13c0,0-0.086,1.076-0.387,1.076
+		c-0.303,0-0.949-1.634-0.949-1.634l0.09-0.862l-0.99-1.201c0,0-0.648,0.297,0.602,1.893c0,0-0.863,0.903-1.504,0.943
+		c0.17-0.213,0.561-1.204,0.561-1.204s-1.969-2.436-2.371-2.108c-0.471,0.387-1.848,1.117-1.848,1.117l-0.906,0.775L28.193,23.59z
+		 M38.613,15.581c-0.926,1.492-2.273,1.916-2.154,2.451c0.047,0.221,1.338,0.521,1.551-0.083c0.217-0.605,0.992-0.733,0.992-0.991
+		S38.734,15.386,38.613,15.581z M40.379,22.943c-0.215-0.086-0.645-0.86-1.162-0.304c-0.516,0.561-1.164,1.81-0.516,1.897
+		c0.645,0.087,1.594-0.259,1.805-0.088c0.219,0.175,1.865,0.852,2.115,0C43.041,23.006,40.379,22.943,40.379,22.943z M39.516,30.735
+		c-0.018,0.264,1.078,2.846,1.078,2.846s-0.09,0.858,0.129,1.161c0.217,0.304,0.99,1.895,1.852,2.153
+		c1.242-1.435-1.16-3.314-1.16-3.314l-0.09-0.735C41.324,32.846,39.604,29.53,39.516,30.735z M45.283,29.963l0.045,0.731
+		l1.553,1.721c0,0,1.422-0.127,1.164-1.158l-1.25-0.435L45.283,29.963z"/>
+	<g>
+		<rect x="51.773" y="31.872" fill="#FFFFFF" width="20.475" height="24.349"/>
+		<rect x="68.531" y="39.467" fill="none" width="1.857" height="1.859"/>
+		<rect x="68.527" y="43.194" fill="none" width="1.861" height="1.857"/>
+		<rect x="68.527" y="35.744" fill="none" width="1.861" height="1.857"/>
+		<rect x="53.637" y="35.744" fill="none" width="1.861" height="1.857"/>
+		<rect x="68.531" y="46.91" fill="none" width="1.857" height="1.862"/>
+		<rect x="53.637" y="50.639" fill="none" width="1.861" height="1.858"/>
+		<rect x="68.527" y="50.639" fill="none" width="1.861" height="1.858"/>
+		<rect x="53.637" y="39.467" fill="none" width="1.861" height="1.859"/>
+		<rect x="53.635" y="43.189" fill="none" width="1.863" height="1.857"/>
+		<rect x="53.635" y="46.914" fill="none" width="1.863" height="1.858"/>
+		<polygon fill="#A2C2DD" points="66.664,56.229 66.664,31.879 57.359,31.879 57.359,56.149 		"/>
+		<path fill="#496DA2" d="M70.385,31.863v2.019h-1.857v-2.019h-1.863v0.016v5.723h-9.307v-5.723v-0.016h-1.861v2.019h-1.861v-2.019
+			h-1.863v24.351h1.863v-1.858h1.859v1.858h1.861v-0.024v-5.554h9.307v5.554v0.031h1.859v-1.858h1.859v1.858h1.867V31.863H70.385z
+			 M68.531,46.91h1.857v1.862h-1.857V46.91z M70.385,41.326h-1.857v-1.859h1.857V41.326z M70.385,43.189v1.862h-1.857v-1.862H70.385
+			z M70.385,35.744v1.857h-1.857v-1.857H70.385z M57.359,39.467h9.311v9.311h-9.311V39.467z M55.498,35.744v1.857h-1.861v-1.857
+			H55.498z M53.637,45.052v-1.862h1.859v1.862H53.637L53.637,45.052z M55.498,46.91v1.862h-1.861V46.91H55.498z M53.637,41.326
+			v-1.859h1.859v1.859H53.637z M53.637,52.497v-1.861h1.859v1.861H53.637z M68.531,52.497v-1.861h1.857v1.861H68.531z"/>
+	</g>
+	
+		<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-77.3623" y1="-73.5371" x2="-40.5434" y2="-110.3551" gradientTransform="matrix(1 0 0 -1 102.52 -62.3613)">
+		<stop  offset="0" style="stop-color:#A2C2DD"/>
+		<stop  offset="0.1" style="stop-color:#A2C2DD"/>
+		<stop  offset="0.7135" style="stop-color:#6C83BB"/>
+		<stop  offset="0.9888" style="stop-color:#003D6D"/>
+		<stop  offset="1" style="stop-color:#003D6D"/>
+	</linearGradient>
+	<path fill="url(#SVGID_5_)" d="M49.838,54.549c-1.924,0.466-3.922,0.742-5.984,0.742c-14.012,0-25.414-11.4-25.414-25.416
+		c0-14.015,11.4-25.418,25.414-25.418c14.012,0,25.414,11.401,25.414,25.417c0,0.02-0.004,0.037-0.004,0.056h0.688
+		c0-0.02,0.004-0.038,0.004-0.056c0-14.394-11.707-26.104-26.1-26.104S17.754,15.48,17.754,29.874
+		c0,14.395,11.709,26.103,26.102,26.103c2.061,0,4.059-0.266,5.984-0.721v-0.707H49.838z"/>
+</g>
+<rect fill="none" width="90" height="60"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/CIptvDriveMonitor.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,338 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Helper class for Video Center for drive operations/monitoring.*
+*/
+
+
+
+
+
+#ifndef CIPTVDRIVEMONITOR_H
+#define CIPTVDRIVEMONITOR_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+#include "TIptvDriveInfo.h"
+#include "TIptvDriveMonitorEvent.h"
+#include "MIptvDriveMonitorObserver.h"
+#include "IptvDebug.h"
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+ * Helper class for Video Center for drive operations/monitoring.
+ * User can get available drives (through iAvailableDrives public member)
+ * and be notified when drives change (through MIptvDriveMonitorObserver interface).
+ */
+NONSHARABLE_CLASS (  CIptvDriveMonitor ) : public CActive
+    {                
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CIptvDriveMonitor* NewL();
+
+        /**
+        * Two-phased constructor. Use this is owner object already has a file session open.
+        *
+        * @param aFileSession file session.
+        */
+        static CIptvDriveMonitor* NewL( const RFs& aFileSession );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CIptvDriveMonitor();
+        
+    public:
+        
+        /**
+        * Registers observer for drive events.
+        * iAvailableDrives is updated automatically if there are any
+        * observers registered, ie there is no need to call RefreshAvailableDrivesL
+        * when observing.
+        * Don't keep observers around if they do not need events. Observing should be used
+        * when user needs to know immedetially about memory card insertion/removed events,
+        * or drive locked/unlocked events.
+        *
+        * @param aObserver observer, ownership does not move.
+        */
+        void RegisterObserverL( MIptvDriveMonitorObserver* aObserver );
+        
+        /**
+        * Removes observer, ownership does not move.
+        * @param aObserver observer to be removed from observers list.
+        */ 
+        void RemoveObserverL( MIptvDriveMonitorObserver* aObserver );
+
+        /**
+        * Updates iAvailableDrives member variable from File server.
+        * This is called in ConstructL() also.
+        */ 
+        void RefreshAvailableDrivesL();
+
+        /**
+        * Returns the position index of aDrive in iAvailableDrives.
+        *
+        * @param aDrive drive to search.
+        * @return Position index of aDrive in iAvailableDrives. If not found,
+        *         KErrNotFound is returned.
+        */        
+        TInt ArrayPos( TInt aDrive );
+
+        /**
+        * Returns the position index of aDrive in iAvailableDrives. If not
+        * found, leaves with KErrNotFound code.
+        *
+        * @param aDrive drive to search.
+        * @return Position index of aDrive in iAvailableDrives.
+        */        
+        TInt ArrayPosL( TInt aDrive );
+
+        /**
+        * Returns the default removable drive (= memory card drive) from iAvailableDrives
+        * array. Leaves with KErrNotFound if not found.
+        */        
+        TInt MemoryCardDriveL();
+
+        /**
+        * Returns the default removable drive (= memory card drive) from iAvailableDrives
+        * array. Returns KErrNotFound if not found.
+        *
+        * @return drive number, or KErrNotFound if not found.
+        */        
+        TInt MemoryCardDrive();
+
+        /**
+        * Returns the default mass memory drive if found from iAvailableDrives.
+        * Mass storege drive means the drive which is preferred for storing large
+        * files in the device, the drive itself can be anything, usually not c though.
+        * Leaves with KErrNotFound if not found.
+        *
+        * @return Drive number.
+        */
+        TInt MassStorageDriveL();
+
+        /**
+        * Returns the default mass memory drive if found from iAvailableDrives.
+        * Mass storege drive means the drive which is preferred for storing large
+        * files in the device, the drive itself can be anything except c-drive.
+        * Returns KErrNotFound if not found.
+        *
+        * @return Drive number, or KErrNotFound if not found.
+        */
+        TInt MassStorageDrive();
+
+        /**
+        * Returns the phone memory drive from iAvailableDrives array.
+        * Leaves with KErrNotFound if not found.
+        *
+        * @return Drive number.
+        */
+        TInt PhoneMemoryDriveL();
+
+        /**
+        * Returns the PhoneMemory drive from iAvailableDrives array.
+        * Returns KErrNotFound if not found.
+        *
+        * @return Drive number, or KErrNotFound if not found.
+        */
+        TInt PhoneMemoryDrive();
+
+        /**
+        * Returns the first fixed (= non removable) drive from iAvailableDrives array.
+        * Leaves with KErrNotFound if not found.
+        *
+        * @param aExcludeCDrive If ETrue, then C-drive is excluded.
+        * @return Drive number.
+        */
+        TInt FixedDriveL( TBool aExcludeCDrive );
+
+        /**
+        * Returns the first fixed (= non removable) drive from iAvailableDrives array.
+        * Returns KErrNotFound if not found.
+        *
+        * @param aExcludeCDrive If ETrue, then C-drive is excluded.
+        * @return Drive number, or KErrNotFound if not found.
+        */
+        TInt FixedDrive( TBool aExcludeCDrive );
+
+        /**
+        * @return ETrue if aDrive is the preferred mass storage drive for the large files.
+        */
+        TBool IsMassStorageDriveL( TInt aDrive );
+
+        /**
+        * @return ETrue if aDrive is memory card type.
+        */
+        TBool IsMemoryCardDriveL( TInt aDrive );
+
+        /**
+        * @return ETrue media is present in the drive. (Memory card is inserted and drive is not locked).
+        */
+        TBool IsPresentL( TInt aDrive );
+
+        /**
+        * @return The system drive. Might not be in iAvailableDrives.
+        */
+        TInt SystemDrive();
+        
+        /**
+        * Finds out if memory card is inserted and not locked.
+        *
+        * @return Returns ETrue is memory card is inserted and usable (not locked), EFalse otherwise.
+        */
+        TBool IsMmcInserted();
+        
+        /**
+        * Gets the used memory from cenrep. If cenrep contains invalid drive or value is not found,
+        * chooses the preferred drive in the following order: 1. mass storage 2. memory card
+        * 3. EDriveC. If cenrep value was not usable, the chosen drive is written to cenrep.
+        * Leaves with system-wide error code if wasn't able to get the used memory.
+        *
+        * @param aUsedMemory The used memory drive is written here.
+        */        
+        void GetUsedMemoryL( TInt& aUsedMemory );
+
+
+    protected: // Functions from base classes
+
+        /**
+        * From CActive, RunL.
+        * Called when operation completes.
+        */
+        void RunL();
+
+        /**
+        * From CActive, cancels request.
+        */
+        void DoCancel();
+
+        /**
+        * From CActive, handles leaves from RunL.
+        */
+        TInt RunError( TInt aError );
+         
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CIptvDriveMonitor();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        *
+        * @param aFileSession
+        */
+        void ConstructL( const RFs& aFileSession );
+
+        /**
+        * Sends event to observers.
+        *
+        * @param aEvent event to send.
+        * @param aDrive drive which caused the event.
+        */
+        void SendEvent( TIptvDriveMonitorEvent::TEvent aEvent, TInt aDrive );
+
+        /**
+        * Compares iPreviousAvailableDrives and iAvailableDrives arrays and
+        * sends appropriate events if they differ.
+        */
+        void CompareOldAndNewAvailableDrives();
+        
+        /**
+        * Returns drive type as a descriptor. For debugging only.
+        * @param aType Drive type, see valid values from e32const.h TMediaType enum.
+        */
+        const TDesC& DriveTypeDes( TInt aType );
+
+        /**
+        * Prints available drives. For debugging only.
+        */
+        void PrintAvailableDrives();
+
+    public:
+    
+        /**
+        * Array of currently available drives. These are updated
+        * with RefreshAvailableDrivesL -method or from file
+        * server event. RefreshAvailableDrivesL is also called upon creation
+        * of this object.
+        * iAvailableDrives array contains drives which are available for mass
+        * storaging videos. If there is hard disk and memory card
+        * available(both e and f-drives), then c-drive is excluded from the array.
+        */
+        RArray<TIptvDriveInfo> iAvailableDrives;
+
+        
+    private:
+
+        /**
+        * Used to detect if refresh had any effect.
+        */
+        RArray<TIptvDriveInfo> iPreviousAvailableDrives;
+
+        /**
+        * Array of observers. Pointers not owned.
+        */
+        RArray<MIptvDriveMonitorObserver*> iObservers;
+        
+        /**
+        * Session to file server.
+        */
+        RFs iFs;
+        
+        /**
+        * ETrue if iFs is provided by the user of this class.
+        */
+        TBool iIfsIsProvidedByUser;
+        
+        /**
+        * Default memory for storing large files.
+        */
+        TInt iDefaultMassStorageDrive;
+        
+        /**
+        * Default memory card.
+        */
+        TInt iDefaultMemoryCardDrive;
+        
+        /**
+        * System drive.
+        */
+        TInt iSystemDrive;
+
+    };
+
+#endif      // CIPTVDRIVEMONITOR_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/CIptvResourceLoader.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,102 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+
+#ifndef CIPTVRESOURCELOADER_H
+#define CIPTVRESOURCELOADER_H
+
+// INCLUDES
+#include <e32std.h>
+
+class CCoeEnv;
+class RFs;
+
+// CLASS DECLARATION
+NONSHARABLE_CLASS ( CIptvResourceLoader ) : public CBase
+    {
+    public:
+        /**
+         * Two-phased constructor.
+         * @param 
+         */
+        static CIptvResourceLoader* NewL( CCoeEnv& aCoeEnv );
+
+        /**
+         * Destructor.
+         */
+        virtual ~CIptvResourceLoader();
+
+        /**
+         * Add resource.
+         *
+         * @param aResourceFile Descriptor containing the resource file to be loaded
+         */
+        void AddResourceL( const TDesC& aResourceFile );
+                                
+    private: // New functions           
+
+        /**
+        * C++ default constructor.
+        */
+        CIptvResourceLoader( CCoeEnv& aCoeEnv );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        * @param 
+        */
+        void ConstructL();
+
+        /**
+        * Search resource file.
+        *
+        * @param aFile Buffer descriptor to the resource file
+        * @return System wide error code
+        */
+        TInt SearchResourceFile( const TDesC& aFile );
+                  
+        /**
+        * Add resource file.
+        *
+        * @param aFile Buffer descriptor to the resource file
+        * @return System wide error code
+        */
+        TInt AddResourceFile( const TDesC& aFile );
+                  
+    private:     // Data members
+
+        /**
+        * Resource file offset.
+        */      
+        TInt        iOffset;
+
+        /**
+        * Is resource added
+        */ 
+        TBool       iAdded;
+
+        /**
+        * Reference to CCoeEnv.
+        */ 
+        CCoeEnv&    iCoeEnv;
+
+    };
+
+#endif  // CIPTVRESOURCELOADER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/MIptvDriveMonitorObserver.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,42 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+#ifndef __MIPTVDRIVEMONITOROBSERVER_H__
+#define __MIPTVDRIVEMONITOROBSERVER_H__
+
+#include "TIptvDriveMonitorEvent.h"
+
+// CLASS DECLARATION
+
+/**
+* Observer for CIptvDriveMonitor class.
+*/
+class MIptvDriveMonitorObserver
+    {
+        
+    public:
+        /**
+        * Handles drive monitor event.
+        *
+        * @param aEvent Event.
+        */
+        virtual void HandleDriveMonitorEvent( TIptvDriveMonitorEvent& aEvent ) = 0;
+    };
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/TIptvDriveInfo.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,103 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    header file for TIptvDriveInfo class*
+*/
+
+
+
+
+
+#ifndef TIPTVDRIVEINFO_H
+#define TIPTVDRIVEINFO_H
+
+//  INCLUDES
+#include <e32base.h>
+
+const TInt KIptvDriveNameMaxLength = 256;
+
+// CLASS DECLARATION
+/**
+* Container class for storing drive info relevant for Video Center.
+*/
+class TIptvDriveInfo
+    {
+    public:
+
+        /*
+        * Attribute flags used in iFlags member.
+        */
+        enum TDriveAttributes
+            {
+            /**
+            * Media can be removed from the drive, (E or F, depending on hw configuration).
+            * If not set (= 0) then the drive is fixed.
+            */
+            ERemovable = 1 << 0,
+
+            /**
+            * Default mass storage drive.
+            */
+            EMassStorage = 1 << 1,
+            
+            /**
+            * Media is locked.
+            */
+            ELocked = 1 << 2,
+            
+            /**
+            * Media is removed from the drive.
+            */
+            EMediaNotPresent = 1 << 3            
+            };
+            
+        /**
+        * Constructor, clears member variables to zero.
+        */
+        TIptvDriveInfo();
+
+        /**
+        * Destructor.
+        */
+        ~TIptvDriveInfo();
+            
+    public:
+    
+        /**
+        * Drive ID number, 0 points to A:, 1 to B:, 2 to C: and so on.
+        */
+        TInt iDrive;
+
+        /**
+        * Drive char.
+        */
+        TChar iDriveChar;
+        
+        /**
+        * Drive type, same as TDriveInfo::iType.
+        */
+        TInt iType;
+
+        /**
+        * Properties of the drive, see TDriveAttributes -enum for flag values.
+        */
+        TUint32 iFlags;
+        
+        /**
+        * Volume name. Removable drive can contain different volumes (mmc cards). This name
+        * refers to removable item (card label), not the drive. 
+        */
+        TBuf<KIptvDriveNameMaxLength> iVolumeName;
+    };
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/TIptvDriveMonitorEvent.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,124 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Drive monitor event object*
+*/
+
+
+
+
+
+#ifndef TIPTVDRIVEMONITOREVENT_H
+#define TIPTVDRIVEMONITOREVENT_H
+
+//  INCLUDES
+#include <e32base.h>
+
+// CONSTANTS
+_LIT( KIptvEmptyDes, "" );
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+*  Used for sending events from CIptvDriveMonitor to client.
+*/
+class TIptvDriveMonitorEvent
+    {
+    public:
+    
+        /**
+        * Events, used in iEvent member variable.
+        */
+        enum TEvent
+            {
+            /**
+            * Value used at construction.
+            */                
+            ENone,
+            
+            /**
+            * Media was removed (typically memory card).
+            */                
+            EMediaRemoved,
+
+            /**
+            * Media was inserted (typically memory card).
+            */
+            EMediaInserted,
+            
+            /**
+            * Drive was locked.
+            */
+            EDriveLocked,
+            
+            /**
+            * Drive was unlocked.
+            */
+            EDriveUnlocked,
+
+            /**
+            * Drive was mounted.
+            */            
+            EDriveMounted,
+
+            /**
+            * Drive was dismounted.
+            */            
+            EDriveDismounted,
+            
+            /**
+            * Drive volume name was changed.
+            */
+            EDriveVolumeNameChanged
+            };
+            
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ default constructor.
+        */
+        TIptvDriveMonitorEvent();
+
+        /**
+        * Returns event as a descriptor. Used for debugging purposes.
+        *
+        * @param aEvent Event as enum.
+        * @return       Event as a descriptor.
+        */
+        static const TDesC& EventDes( TEvent aEvent );
+
+    public:
+    
+        /**
+        * Identifies the event, see TEvent for values.
+        */
+        TInt  iEvent;
+        
+        /**
+        * The drive which caused the event (a = 0, b = 1, ... etc).
+        */
+        TInt iDrive;
+
+    };
+
+#endif      // TIPTVDRIVEMONITOREVENT_H   
+            
+// End of File
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideos.hrh	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideos.hrh	Fri Mar 12 15:43:00 2010 +0200
@@ -51,7 +51,8 @@
     EVcxHgMyVideosCmdSend,                   // Send video
     EVcxHgMyVideosCmdNothing,                // Non-functional command
     EVcxHgMyVideosCmdStartMarking,           // Sets marking mode on
-    EVcxHgMyVideosCmdStopMarking             // Sets marking mode off
+    EVcxHgMyVideosCmdStopMarking,             // Sets marking mode off
+    EVcxHgMyVideosCmdOpenSettings            // Opens Settings application
 #ifdef RD_VIDEO_AS_RINGING_TONE
     ,EVcxHgMyVideosCmdAiwBase = 800           // Base number for AIW commands
 #endif
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelhandler.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelhandler.h	Fri Mar 12 15:43:00 2010 +0200
@@ -23,10 +23,25 @@
 // INCLUDE FILES
 #include "vcxhgmyvideoscategorymodelobserver.h"
 
+
+#include <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
+
 // FORWARD DECLARATIONS
 class CMPXMedia;
 class CVcxHgMyVideosModel;
 class CHgScroller;
+class CMPXMedia;
+class CMyVideosIndicator;
+class CVcxHgMyVideosThumbnailManager;
+
+// ENUMERATIONS
+enum TVcxHgMyVideosCategoryItemType
+    {
+    TVcxHgMyVideosCategoryItemTypeUndefined = 0,
+    TVcxHgMyVideosCategoryItemTypeUid,
+    TVcxHgMyVideosCategoryItemTypeUrl
+    };
 
 // CLASS DECLARATION
 
@@ -37,7 +52,8 @@
  */
 NONSHARABLE_CLASS( CVcxHgMyVideosCategoryModelHandler ) : 
         public CBase,
-        public MVcxHgMyVideosCategoryModelObserver
+        public MVcxHgMyVideosCategoryModelObserver,
+        public MThumbnailManagerObserver
     {
     public:
         
@@ -47,7 +63,7 @@
          * @param aModel Application model
          * @param aScroller Hg list component.
          */
-        CVcxHgMyVideosCategoryModelHandler(
+        static CVcxHgMyVideosCategoryModelHandler* NewL(
             CVcxHgMyVideosModel& aModel,
             CHgScroller& aScroller );  
         
@@ -86,6 +102,41 @@
          */
         TInt ResolveCategoryId( TInt aScrollerIndex );
         
+        /**
+         * Plays last watched videdo.
+         * 
+         * @param Ganes scroller list index
+         * @return Index of category
+         */
+        void PlayLastWatchedVidedoL();
+        
+        /**
+         * Returns video indicator.
+         * 
+         * @return Reference to video indicator.
+         */
+        CMyVideosIndicator& VideoIndicatorL();
+        
+        /**
+         * Handles "ExtraItem" list item selection.
+		 *
+		 * @param aCategoryId  Selected category id
+		 * @param aItemType    On return, item type
+		 * @param aUid         On return, UID if selected item contains UID 
+		 * @param aUrl         On return, URL string if selected item contains URL
+         */
+        void HandleExtraItemSelectionL( TInt aCategoryId,
+                                        TVcxHgMyVideosCategoryItemType& aItemType,
+                                        TUid& aUid,
+                                        TDes& aUrl );
+
+        /**
+         * Create empty icon to be used as category list default icon
+         * 
+         * @return empty icon
+         */
+        CGulIcon* CreateEmptyHgListIconL();
+        
     public: // From MVcxHgMyVideosCategoryModelObserver
 
         /**
@@ -93,8 +144,10 @@
          * Ownership of array is transferred.
          * 
          * @param aCategoryList List of categories
+         * @param aIsPartial    ETrue if list fetching continues, and KVcxMessageMyVideosListComplete 
+         *                      message will arrive. EFalse if this is last event of list fetching.
          */
-        void NewCategoryListL( CMPXMediaArray* aCategoryList );
+        void NewCategoryListL( CMPXMediaArray* aCategoryList, TBool aIsPartial );
         
         /**
          * Called when the list of categories has been modified.
@@ -108,17 +161,69 @@
          * @param aMpxItemId MPX Item Id of the modified item.
          */
         void CategoryModifiedL( TMPXChangeEventType aEventType,
-                                TMPXItemId& aMpxItemId );         
+                                TMPXItemId& aMpxItemId );
+        
+        /*
+         * Called when a single video item has been fetched.
+         * Ownership of video is transferred.
+         * 
+         * @param aVideo Video item.
+         */
+        void VideoFetchingCompletedL( CMPXMedia* aVideo );
+
+        /**
+         * Called when category list items have been fetched.
+		 */
+        void CategoryListFetchingCompletedL();
+
+    public: // From MThumbnailManagerObserver)
+
+        /**
+         * Preview thumbnail generation or loading is complete.
+         *
+         * @param aThumbnail     An object representing the resulting thumbnail.
+         * @param aId            Request ID for the operation
+         */
+        void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
+            TThumbnailRequestId aId );
+
+        /**
+         * Final thumbnail bitmap generation or loading is complete.
+         *
+         * @param aError         Error code.
+         * @param aThumbnail     An object representing the resulting thumbnail.
+         * @param aId            Request ID for the operation.
+         */
+        void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail,
+            TThumbnailRequestId aId );
 
     private:    
+        
+        /**
+         * C++ constructor
+         *
+         * @param aModel Application model
+         * @param aScroller Hg list component.
+         */
+        CVcxHgMyVideosCategoryModelHandler(
+            CVcxHgMyVideosModel& aModel,
+            CHgScroller& aScroller );  
 
         /**
          * Loads name of category from resources.
          * 
-         * @param aIndex Index of category.
+         * @param aCategoryId Index of category.
          * @return Name of category.
          */
-        HBufC* GetCategoryNameLC( TInt aIndex );
+        HBufC* GetCategoryNameLC( TInt aCategoryId );
+
+        /**
+         * Loads icon for category
+         * 
+         * @param aCategoryId Id of category
+         * @return Category icon
+         */
+        CGulIcon* GetCategoryIconL( TInt aCategoryId );
 
         /**
          * Formats second row text for categories.
@@ -127,7 +232,15 @@
          * @return Second row text for category.
          */
         HBufC* FormatCategorySecondRowLC( CMPXMedia& aMedia );        
-
+        
+        /**
+         * Formats second row text for categories.
+         * 
+		 * @param   aCategoryId Category id.
+		 * @return  Second row text for category.
+         */
+        HBufC* FormatCategorySecondRowLC( TInt aCategoryId );
+        
         /**
          * Translates MPX Item Id to index on UI list. 
          * 
@@ -180,6 +293,51 @@
          */
         TInt ResolveCategoryArrayIndexById( TInt aCategoryId );
         
+        /**
+         * @param aCategoryId Category id to be found
+         * @return CMPXMedia
+         */
+        CMPXMedia* GetCategoryDataL( TInt aCategoryId );
+		
+        /**
+         * Gets the last watched videos data from collection.
+		 * Result is returned asynchronously to VideoFetchingCompletedL callback.
+         */
+		void FetchLastWatchedL();
+		
+        /**
+         * Gets the last watched videos icon from tbn server.
+		 * Result is returned asynchronously to ThumbnailReady callback.
+         */
+        void LoadLastWatchedIconL();
+
+        /**
+         * Set indicator for last watched item
+         */
+        void SetLastWatchedIndicatorL();
+
+        /**
+         * Final thumbnail bitmap generation or loading is complete.
+         * @param aError         Error code.
+         * @param aThumbnail     An object representing the resulting thumbnail.
+         * @param aId            Request ID for the operation.
+         */
+        void ThumbnailReadyL( TInt aError, MThumbnailData& aThumbnail,
+            TThumbnailRequestId aId );
+        
+        /**
+         * Create hg list icon from file
+         * 
+         * @param aFileName mif file name
+         * @param aBitmapId bitmap index in mif file
+         * @param aMaskId mask index in mif file
+         * @return Icon
+         */
+        CGulIcon* CreateHgListIconL(
+                const TFileName& aFileName,
+                TInt aBitmapId,
+                TInt aMaskId );
+
     private:
     
         /**
@@ -201,12 +359,33 @@
         CMPXMediaArray* iCategoryList;
         
         /**
+         * Last watched media.
+         * Own.
+         */
+        CMPXMedia* iLastWatched;
+        
+        /**
          * TArray containing category ID's. Each index 
          * corresponds to the scroller list (eg. correct
          * category ID for the 1st item in scroller list can
          * be found from index 0).  
          */
         RArray<TInt> iCategoryIdArray;
+        
+        /**
+         * CVcxHgMyVideosThumbnailManager instance, not own.
+         */
+        CVcxHgMyVideosThumbnailManager& iTnManager;
+        
+        /**
+         * Request ID of ongoing thumbnail request, or KErrNotFound.
+         */
+        TThumbnailRequestId iTnRequestId;
+        
+        /**
+         * Video indicator class instance. Own.
+         */
+        CMyVideosIndicator* iVideoIndicator;
     };
 
 #endif // VCXHGMYVIDEOSCATEGORYMODELHANDLER_H
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelobserver.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelobserver.h	Fri Mar 12 15:43:00 2010 +0200
@@ -28,6 +28,7 @@
 // FORWARD DECLARATIONS
 
 class CMPXMediaArray;
+class CMPXMedia;
 
 // CLASS DECLARATION
 
@@ -45,8 +46,10 @@
          * Ownership of array is transferred.
          * 
          * @param aCategoryList List of categories
+         * @param aIsPartial    ETrue if list fetching continues, and KVcxMessageMyVideosListComplete 
+         *                      message will arrive. EFalse if this is last event of list fetching.
          */
-        virtual void NewCategoryListL( CMPXMediaArray* aCategoryList ) = 0;
+        virtual void NewCategoryListL( CMPXMediaArray* aCategoryList, TBool aIsPartial ) = 0;
 
         /**
          * Called when the list of categories has been modified.
@@ -60,7 +63,21 @@
          * @param aMpxItemId MPX Item Id of the modified item.
          */
         virtual void CategoryModifiedL( TMPXChangeEventType aEventType, 
-                                        TMPXItemId& aMpxItemId ) = 0;        
+                                        TMPXItemId& aMpxItemId ) = 0;
+        
+        /*
+         * Called when a single video item has been fetched.
+         * Ownership of video is transferred.
+         * 
+         * @param aVideo Video item.
+         */
+        virtual void VideoFetchingCompletedL( CMPXMedia* aVideo ) = 0;
+        
+        /**
+         * Called when category list items have been fetched.
+         */
+        virtual void CategoryListFetchingCompletedL() = 0;
+
     };
 
 #endif // VCXHGMYVIDEOSCATEGORYMODELOBSERVER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscenrepkeys.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,72 @@
+
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   
+*/
+
+
+
+#ifndef VCXHGMYVIDEOSMAINVIEWCENREPKEYS_H
+#define VCXHGMYVIDEOSMAINVIEWCENREPKEYS_H
+
+
+enum TMyVideosListItemType
+	{
+	EMyVideosListItemTypeEmpty = 0,
+	EMyVideosListItemTypeLastWatched,
+	EMyVideosListItemTypeCapturedVideos,
+	EMyVideosListItemTypeOtherVideos,
+	EMyVideosListItemTypeExtra1,
+	EMyVideosListItemTypeExtra2,
+	EMyVideosListItemTypeExtra3
+	};
+
+// CONSTANTS 
+
+// CenRep: UID
+const TUid KMyVideosMainViewCenRepUid = { 0x20021191 };
+
+// CenRep: Keys
+const TInt KCRVideoPlayerItemLocation1            = 0x01;
+const TInt KCRVideoPlayerItemLocation2            = 0x02;
+const TInt KCRVideoPlayerItemLocation3            = 0x03;
+const TInt KCRVideoPlayerItemLocation4            = 0x04;
+const TInt KCRVideoPlayerItemLocation5            = 0x05;
+const TInt KCRVideoPlayerItemLocation6            = 0x06;
+const TInt KCRVideoPlayerItemLocation7            = 0x07;
+
+const TInt KCRVideoPlayerCapturedVideosIconPath   = 0x0A;
+const TInt KCRVideoPlayerOtherVideosIconPath      = 0x0B;
+
+const TInt KCRVideoPlayerExtraItem1IconPath       = 0x10;
+const TInt KCRVideoPlayerExtraItem1Title          = 0x11;
+const TInt KCRVideoPlayerExtraItem1Text           = 0x12;
+const TInt KCRVideoPlayerExtraItem1Url            = 0x13;
+const TInt KCRVideoPlayerExtraItem1Uid            = 0x14;
+
+const TInt KCRVideoPlayerExtraItem2IconPath       = 0x20;
+const TInt KCRVideoPlayerExtraItem2Title          = 0x21;
+const TInt KCRVideoPlayerExtraItem2Text           = 0x22;
+const TInt KCRVideoPlayerExtraItem2Url            = 0x23;
+const TInt KCRVideoPlayerExtraItem2Uid            = 0x24;
+
+const TInt KCRVideoPlayerExtraItem3IconPath       = 0x30;
+const TInt KCRVideoPlayerExtraItem3Title          = 0x31;
+const TInt KCRVideoPlayerExtraItem3Text           = 0x32;
+const TInt KCRVideoPlayerExtraItem3Url            = 0x33;
+const TInt KCRVideoPlayerExtraItem3Uid            = 0x34;
+
+#endif //VCXHGMYVIDEOSMAINVIEWCENREPKEYS_H
+
+// End of File
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideoscollectionclient.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscollectionclient.h	Fri Mar 12 15:43:00 2010 +0200
@@ -171,30 +171,7 @@
          * @param aMpxItemId MPX item id
          */
         void PlayVideoL( TMPXItemId aMpxItemId );
-
-        /**
-         * Sets attribute value to MPX Collection.
-         * 
-         * @param aMedia MPX Media object to change.
-         * @param aAttribute MPX attribute to change.
-         * @param aValue New value for attribute.
-         */
-        void SetAttributeL( const CMPXMedia& aMedia,
-                            const TMPXAttribute& aAttribute,
-                            const TUint32 aValue );
-        
-        void SetAttributeL( const CMPXMedia& aMedia,
-                            const TMPXAttribute& aAttribute,
-                            const TReal32 aValue );        
-
-        /**
-         * Returns MPX Media object most recently requested with method call
-         * FetchMpxMediaByMpxIdL().
-         * 
-         * @return Latest MPX Media object or NULL.
-         */
-        CMPXMedia* GetLatestFetchedMpxMediaL();
-        
+       
         /**
          * Fetches MPX Media object based on MPX ID. Fetched MPX Media object
          * is returned through callback interface MVcxHgMyVideosVideoModelObserver.
@@ -344,6 +321,14 @@
         void HandleGetMediasByMpxIdRespL( CMPXMessage* aMessage, TInt aError );
         
         /**
+         * Handles list complete message, called by HandleSingleCollectionMessageL().
+         * 
+         * @param aMessage collection message.
+         * @param aError system error code. 
+         */
+        void HandleMyVideosListCompleteL( CMPXMessage* aMessage, TInt aError );
+        
+        /**
          * Handles response message when video details requested.
          * 
          * @param aMessage collection message.
@@ -396,12 +381,6 @@
          */
         TVcxHgMyVideosCollectionCommand iPendingCommand;
         
-        /**
-         * Variable for storing latest MPX Media object fetched separately.
-         * Own.
-         */
-        CMPXMedia* iLatestMpxMedia;
-        
 #if defined(_DEBUG) && IPTV_LOGGING_METHOD != 0
     private:
         /**
@@ -409,6 +388,7 @@
          */
         void DebugPrintVideoListL( CMPXMediaArray* aVideoArray );
 #endif // _DEBUG && IPTV_LOGGING_METHOD        
+
     };
 
 #endif // VCXHGMYVIDEOSCOLLECTIONCLIENT_H
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h	Fri Mar 12 15:43:00 2010 +0200
@@ -23,7 +23,7 @@
 // INCLUDE FILES
 #include <e32std.h>
 #include <e32base.h>
-#include "CIptvUtil.h"
+
 #include <mpxcollectionmessagedefs.h>
 
 class CVcxHgMyVideosVideoModelHandler;
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideosmainview.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosmainview.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 14 %
+// Version : %version: 17 %
 
 #ifndef VCXHGMYVIDEOSMAINVIEW_H
 #define VCXHGMYVIDEOSMAINVIEW_H
@@ -152,6 +152,21 @@
          */ 
         void UpdateLayout();
         
+        /**
+         * Launches external application.
+         * 
+         * @param aAppUid Application UID
+         * @param aMsg    Message to send
+         */
+        void LaunchAppL( const TUid aAppUid, const TDesC& aMsg = KNullDesC() );
+
+        /**
+         * Launches standalone browser application.
+         * 
+         * @param aUrl  URL to open.
+         */
+        void LaunchBrowserL( const TDesC& aUrl );        
+        
     private: // Constructors
 
         /**
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideosmodel.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosmodel.h	Fri Mar 12 15:43:00 2010 +0200
@@ -23,10 +23,7 @@
 // INCLUDE FILES
 #include <coemain.h>
 #include <vcxmyvideosdefs.h>
-#include <MediatorEventProvider.h>
 #include <thumbnailmanager.h>
-#include <thumbnailmanagerobserver.h>
-#include <videoplayercustommessage.h>
 
 #include "CIptvDriveMonitor.h"
 
@@ -35,9 +32,7 @@
 class CVcxHgMyVideosCollectionClient;
 class CVcxHgMyVideosDownloadClient;
 class CRepository;
-class CIptvLastWatchedApi;
-class CIptvLastWatchedData;
-
+class CVcxHgMyVideosThumbnailManager;
 
 // CONSTANTS
 
@@ -52,7 +47,6 @@
  * @lib vcxhgmyvideos.lib
  */
 NONSHARABLE_CLASS( CVcxHgMyVideosModel ) : public CBase,
-                                           public MThumbnailManagerObserver,
                                            public MIptvDriveMonitorObserver
     {
     public:
@@ -174,6 +168,14 @@
          * @param aSortOrder New video list sort order.
          */
         void SetVideolistSortOrderL( TVcxMyVideosSortingOrder aSortOrder );
+        
+        /**
+         * Gets the last watched video id from CenRep.
+         * 
+         * @param aId Video's mpx id (iId1).
+         * @return System wide error code
+         */
+        TInt GetLastWatchedIdL( TInt& aId );
 
         /**
          * Gets video list sort order (from CenRep).
@@ -183,59 +185,29 @@
         TVcxMyVideosSortingOrder VideolistSortOrderL();
 
         /**
-         * Should be called when playback of video is stopping. Updates last
-         * play point of video to 'Last Watched' dat-file.
-         */
-        void UpdateLastWatchedPlayPositionL( TUint32 aLastVideoPlayPoint );
-        
-        /**
-         * Cancels the download completed soft notification.
+         * Gets the My Videos customization integer from CenRep.
+         * 
+         * @param aKey   CenRep key for the value to be fetched.
+         * @param aValue On return, fetched value.
+         * @return System wide error code
          */
-        void ResetDownloadNotification();
-        
-        /**
-         * Should be called when playback of video is starting. Updates 'Last
-         * Watched' information to Matrix and dat-file.
-         * 
-         * @param aVideoInfo Information about played video.
-         * @param aMpxId1 MPX ID 1 of the played video.
-         * @param aAgeProfile Age profile of the video for parental control.
-         */
-        void SetVideoAsLastWatchedL( TVideoPlayerCustomMessage& aVideoInfo, 
-                                     TInt aMpxId1,
-                                     TUint32 aAgeProfile );
+        TInt GetMyVideosCustomizationInt( const TInt& aKey, TInt& aValue );
 
         /**
-         * Reads information about 'Last Watched' video clip from dat-file.
+         * Gets the My Videos customization string from CenRep.
          * 
-         * @param aVideoInfo On return, information about last played video.
-         * @param aMpxId1 On return, MPX Item Id 1.
-         * @param aAgeProfile On return, the age profile of the video for 
-         *      parental control
+         * @param aKey   CenRep key for the value to be fetched.
+         * @param aValue On return, fetched value.
+         * @return System wide error code
          */
-        void GetLastWatchedDataL( TVideoPlayerCustomMessage& aVideoInfo, 
-                                  TUint32& aMpxId1,
-                                  TUint32& aAgeProfile );
-        
-    public: // From MThumbnailManagerObserver
-        
+        TInt GetMyVideosCustomizationString( const TInt& aKey, TDes& aValue );
         /**
-         * Preview thumbnail generation or loading is complete.
+         * Returns reference to Thumbnail Manager.
          *
-         * @param aThumbnail An object representing the resulting thumbnail.
-         * @param aId Request ID for the operation
+         * @return Reference to Thumbnail Manager.
          */
-        void ThumbnailPreviewReady( MThumbnailData& aThumbnail, TThumbnailRequestId aId );
-    
-        /**
-         * Final thumbnail bitmap generation or loading is complete.
-         *
-         * @param aError Error code.
-         * @param aThumbnail An object representing the resulting thumbnail.
-         * @param aId Request ID for the operation.
-         */
-        void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail, TThumbnailRequestId aId );
-    
+        CVcxHgMyVideosThumbnailManager& ThumbnailManager() const;
+
     public: // from MIptvDriveMonitorObserver
         
         /**
@@ -256,53 +228,11 @@
          * Symbian 2nd phase constructor.
          */
         void ConstructL();
-
-        /**
-         * If needed creates, and returns pointer to Last Watched API.
-         * 
-         * @return Pointer to Last Watched API.
-         */
-        CIptvLastWatchedApi* LastWatchedApiL();
         
         /**
-         * If needed creates, and returns pointer to Last Watched Data.
-         * 
-         * @return Pointer to Last Watched Data.
-         */
-        CIptvLastWatchedData* LastWatchedDataL();
-
-        /**
-         * Copies data from one Video Player Custom message to another.
-         * 
-         * @param aSource Source object.
-         * @param aTarget Target object.
+         * Initializes MyVideos customization CenRep session.
          */
-        void CopyVideoPlayerCustomMessageL( TVideoPlayerCustomMessage& aSource,
-                                            TVideoPlayerCustomMessage& aTarget );
-        
-        /**
-         * If needed creates, and returns pointer to Video Player Custom Message.
-         * 
-         * @return Pointer to Video Player Custom Message.
-         */        
-         TVideoPlayerCustomMessage* VideoPlayerCustomMessageL();       
-        
-        /**
-         * Handles ThumbnailReady() call.
-         *
-         * @param aError Error code.
-         * @param aThumbnail An object representing the resulting thumbnail.
-         * @param aId Request ID for the operation.
-         */        
-        void HandleThumbnailReadyL( TInt aError,
-                                    MThumbnailData& aThumbnail,
-                                    TThumbnailRequestId aId );        
-        /**
-         * If needed creates, and returns pointer to Thumbnail Manager.
-         *
-         * @return Pointer to Thumbnail Manager.
-         */
-        CThumbnailManager* ThumbnailManagerL();
+        TInt InitMyVideosCenRepL();
         
     private:
 
@@ -346,44 +276,21 @@
         CRepository* iCollectionCenRep;
         
         /**
-         * Pointer to 'Last Watched' API.
-         * Own.
-         */
-        CIptvLastWatchedApi* iLastWatchedApi;
-        
-        /**
-         * Pointer to 'Last Watched' data object.
-         * Own.
-         */
-        CIptvLastWatchedData* iLastWatchedData;
-
-        /**
-         * Pointer to Video Player custom message.
+         * Session to My Videos customization CenRep.
          * Own.
          */
-        TVideoPlayerCustomMessage* iVideoPlayerCustomMessage;
-        
-        /**
-         * S60 Thumbnail Manager.
-         * Own.
-         */
-        CThumbnailManager* iTnManager;
-        
-        /**
-         * Request ID of ongoing thumbnail request, or KErrNotFound.
-         */
-        TThumbnailRequestId iTnRequestId;
-
-        /**
-         * Pointer to Mediator Event class.
-         * Own.
-         */        
-        CMediatorEventProvider* iMediatorEventProvider;
+        CRepository* iMyVideosCenRep;
     
         /**
          * Video list sort order.
          */
         TVcxMyVideosSortingOrder iSortOrder;
+
+		/**
+         * Thumbnail Manager.
+         * Own.
+         */
+        CVcxHgMyVideosThumbnailManager* iTnManager;
     };
 
 #endif // VCXHGMYVIDEOSMODEL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosthumbnailmanager.h	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,148 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CVcxHgMyVideosThumbnailManager class definition*
+*/
+
+
+#ifndef VCXHGMYVIDEOSTHUMBNAILMANAGER_H
+#define VCXHGMYVIDEOSTHUMBNAILMANAGER_H
+
+// INCLUDE FILES
+#include <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+ *
+ * @lib vcxhgmyvideos.lib
+ */
+NONSHARABLE_CLASS( CVcxHgMyVideosThumbnailManager ) :
+        public CBase,
+        public MThumbnailManagerObserver 
+    {
+    public:
+
+        /**
+         * Two-phased constructor.
+         * 
+         * @return New object.
+         */
+        static CVcxHgMyVideosThumbnailManager* NewL();
+
+        /**
+         * Two-phased constructor.
+         * 
+         * @return New object. 
+         */
+        static CVcxHgMyVideosThumbnailManager* NewLC();
+
+        /**
+         * Destructor.
+         */
+        virtual ~CVcxHgMyVideosThumbnailManager();
+
+    private: // From MThumbnailManagerObserver
+        
+        /**
+         * Preview thumbnail generation or loading is complete.
+         *
+         * @param aThumbnail An object representing the resulting thumbnail.
+         * @param aId Request ID for the operation
+         */
+        void ThumbnailPreviewReady( MThumbnailData& aThumbnail, TThumbnailRequestId aId );
+    
+        /**
+         * Final thumbnail bitmap generation or loading is complete.
+         *
+         * @param aError         Error code.
+         * @param aThumbnail     An object representing the resulting thumbnail.
+         * @param aId            Request ID for the operation.
+         */
+        void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail, TThumbnailRequestId aId );
+
+    public: // New methods
+        /**
+         * Peeks if there is thumbnail and fetches it if it exist.
+         * No thumbnail creation is started when thumbnail does not exist.
+         *
+         * @param aSource 
+         * @return TThumbnailRequestId.
+         */
+        TThumbnailRequestId PeekL( CThumbnailObjectSource& aSource );
+
+        /**
+         * Gets thumbnail and creates it if it does not exist.
+         *
+         * @param aSource 
+         * @return TThumbnailRequestId.
+         */
+        TThumbnailRequestId GetL( CThumbnailObjectSource& aSource );
+
+        /**
+         * Cancels thumbnail request
+         *
+         * @param aRequestId
+         */
+        void Cancel( TThumbnailRequestId aRequestId );
+
+        /**
+         * Adds observer.
+         *
+         * @param aObserver 
+         */
+        void AddObserverL( MThumbnailManagerObserver& aObserver );
+
+        /**
+         * Removes observer.
+         *
+         * @param aObserver 
+         */
+        void RemoveObserver( MThumbnailManagerObserver& aObserver );
+
+    private:    
+
+        /**
+         * Default constructor
+         */
+        CVcxHgMyVideosThumbnailManager();
+
+        /**
+         * SessionL
+         * @return CThumbnailManager ref.
+         */
+        CThumbnailManager& SessionL();
+
+    private:
+
+        /**
+         * S60 Thumbnail Manager.
+         * Own.
+         */
+        CThumbnailManager* iTnManager;
+
+        /** 
+         * Used for storing the observers. Pointers are not own.
+         */ 
+        RPointerArray<MThumbnailManagerObserver> iTnObservers;
+
+        /** 
+         * Stores current thumbnail generation flags
+         */ 
+        CThumbnailManager::TThumbnailFlags iCurrentFlags;
+    };
+
+#endif // VCXHGMYVIDEOSTHUMBNAILMANAGER_H
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodata.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodata.h	Fri Mar 12 15:43:00 2010 +0200
@@ -40,10 +40,10 @@
         enum TVideoDataState
             {
             EVideoDataStateNone = 0,
+            EVideoDataStateThumbnailPeekStarted,
+            EVideoDataStateThumbnailPeekFinished,
             EVideoDataStateThumbnailStarted,
-            EVideoDataStateThumbnailFinished,
-            EVideoDataStateDrmStarted,
-            EVideoDataStateDrmFinished
+            EVideoDataStateThumbnailFinished
             };
 
     public:
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodataupdater.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodataupdater.h	Fri Mar 12 15:43:00 2010 +0200
@@ -94,12 +94,27 @@
 
         /**
          * Called by video list implementation when new data is needed.
-         * Appends data item into buffer.
+         * Appends data item into buffer and flushes it to start fetching.
          * 
          * @param aMPXItemId MPX item id of video data.
          */
         void RequestDataL( TMPXItemId aMPXItemId );
-        
+
+        /**
+         * Called by video list implementation when new data is needed.
+         * Appends data item into buffer that needs to be flushed using 
+         * FlushRequestBufferL() to start fetching.
+         * 
+         * @param aMPXItemId MPX item id of video data.
+         */
+        void AddToRequestBufferL( TMPXItemId aMPXItemId );
+
+        /**
+         * Called by video list implementation when new data is needed.
+         * Flushes fetch requests from buffer.
+         */
+        void FlushRequestBufferL();
+
         /**
          * Called by video list implementation when data is not needed anymore.
          * Removes data item from buffer.
@@ -175,9 +190,10 @@
         TInt IndexByMPXItemId( TMPXItemId aMpxItemId );
         
         /**
-         * Selects next index to be fetched.  
+         * Selects next index to be fetched.
+         * @param aSelectForPeekOnly  
          */
-        void SelectNextIndexL();
+        void SelectNextIndexL( TBool aSelectForPeekOnly );
         
         /**
          * Removes item from fetch array.
@@ -213,14 +229,7 @@
         /**
          * Updates fetched video data to UI.
          */
-        void UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& videoData );
-        
-        /**
-         * If needed creates, and returns pointer to Thumbnail Manager.
-         *
-         * @return Pointer to Thumbnail Manager.
-         */
-        CThumbnailManager* ThumbnailManagerL();
+        void UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& aVideoData );
         
         /**
          * Checks if list refreshing is needed.
@@ -239,7 +248,22 @@
          * Refreshes the ganes list.
          */
         void RefreshScreen();
-        
+
+        /**
+         * Checks DRM properties
+         */
+        void CheckDrmL( CVcxHgMyVideosVideoData& aVideoData );
+
+        /**
+         * Gets active request count
+         */
+        void GetActiveRequestCount( TInt& aPeekRequests, TInt& aGetRequests );
+
+        /**
+         * Starts thumbnail fetch
+         */
+        void StartThumbnailL( CVcxHgMyVideosVideoData& aItem, TBool aPeek );
+
     protected:
 
         /**
@@ -265,13 +289,7 @@
          * Not own.
          */
         CVcxHgMyVideosVideoList& iVideoArray; 
-        
-        /**
-         * S60 Thumbnail Manager.
-         * Own.
-         */
-        CThumbnailManager* iTnEngine;
-                
+                        
         /** 
          * Used for indicating that list needs to be refreshed.         
          * Own.
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideolistimpl.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideolistimpl.h	Fri Mar 12 15:43:00 2010 +0200
@@ -34,7 +34,6 @@
 class CAknWaitDialog;
 class CVcxHgMyVideosVideoCopier;
 class CVcxHgMyVideosUPnPInterface;
-class CVcxHgTelephonyClient;
 class CHgScroller;
 class CSendUi;
 class CDRMHelper;
@@ -375,14 +374,6 @@
         void CloseDeleteWaitNote();
         
         /**
-         * Checks parental control for a video, and asks lock code.
-         *
-         * @leave KErrPermissionDenied If not allowed to play.
-         * @param aAgeProfile Age profile for the video to be checked.
-         */
-        void CheckParentalControlL( TUint32 aAgeProfile );
-        
-        /**
          * Fetch SendUI messaging configuration from CenRep
          * 
          * @return Messaging configuration from CenRep
@@ -415,11 +406,6 @@
         CVcxHgMyVideosVideoModelHandler* iVideoModel;    
         
         /**
-         * Index of video currently in play.
-         */
-        TInt iCurrentlyPlayedVideo;
-        
-        /**
          * Delete wait dialog.
          * Own.
          */
@@ -436,23 +422,6 @@
          * Own.
          */
         CVcxHgMyVideosUPnPInterface* iUPnP;
-        
-        /**
-         * Central repository access needed for parental control setting.
-         * Own.
-         */
-        CRepository* iCenRep;
-        
-        /**
-         * Telephony client, used for asking lock code from user.
-		 * Own.
-         */
-        CVcxHgTelephonyClient* iTelephonyClient;
-        
-        /**
-         * Flag for marking mode. True when marking mode enabled.
-         */
-        TBool iMultipleMarkingActive;
 
         /**
          * SendUI
--- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideomodelhandler.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideomodelhandler.h	Fri Mar 12 15:43:00 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -37,7 +37,6 @@
 class TVcxHgMyVideosVideoDetailsDialog;
 class CVcxHgMyVideosVideoList;
 class CHgScroller;
-class TVideoPlayerCustomMessage;
 class CMyVideosIndicator;
 
 // CLASS DECLARATION
@@ -169,22 +168,6 @@
          * @param aMarkCommand Mark command.
          */
         void HandleMarkCommandL( TInt aMarkCommand );
-        
-        /**
-         * Returns last playback position of video, video identified by URI.
-         * 
-         * @param aContentUri URL or path to video.
-         * @return Last playback position.
-         */
-        TInt LastPlaybackPosition( const TDesC& aContentUri );
-
-        /**
-         * Stores last playback position of video, video identified by URI.
-         * 
-         * @param aContentUri URL or path to video.
-         * @param aPosition Last playback position.
-         */
-        void SetLastPlaybackPositionL( const TDesC& aContentUri, TInt aPosition );        
 
         /**
          * Returns video's name.
@@ -248,26 +231,6 @@
          * @param aIndex Video's index on UI list.
          */
         void CancelDownloadL( TInt aIndex );
-        
-        /**
-         * Returns Video Player custom message of a video.
-         * 
-         * @param aFilteredIndex Video's index on filtered UI list.
-         * @param aVideoInfo On return, Video Player custom message with video information.
-         * @param aMpxId1 On return, MPX ID 1 of the video.
-         */
-        TInt GetVideoPlayerCustomMessage( TInt aFilteredIndex, 
-                                          TVideoPlayerCustomMessage& aVideoInfo,
-                                          TInt& aMpxId1 );
-
-        /**
-         * Returns Video Player custom message of a video.
-         * 
-         * @param aMpxItemId MPX Item Id of the video.
-         * @param aVideoInfo On return, Video Player custom message with video information.
-         */
-        TInt GetVideoPlayerCustomMessage( TMPXItemId& aMpxItemId,
-                                          TVideoPlayerCustomMessage& aVideoInfo );
 
         /**
          * Returns age profile of a video.
@@ -303,22 +266,6 @@
         TBool FindVideoMpxIdL( const TDesC& aVideoPath, TMPXItemId& aMpxItemId );
 
         /**
-         * Informative call about video being played. Method removes possible new
-         * indicator from video.
-         * 
-         * @param aIndex Video's index on UI list.
-         */
-        void ClearNewVideoIndicatorL( TInt aIndex );        
-
-        /**
-         * Informative call about video being played. Method removes possible new
-         * indicator from video.
-         * 
-         * @param aMpxItemId Video's MPX item Id.
-         */
-        void ClearNewVideoIndicatorL( TMPXItemId& aMpxItemId );
-
-        /**
          * Gets data of currently highlighted video, and passes it to
          * TVcxHgMyVideosVideoDetailsDialog::ShowVideoDetailsDialogL().
          */
@@ -531,6 +478,25 @@
          */
         void UpdateScrollbarTypeL( const TVcxMyVideosSortingOrder& aSortingOrder );
 
+        /**
+         * Resets scroller items for refetch only
+         */
+        void ResetScrollerItemsL();
+
+        /** 
+         * Resets scroller buffer and items for refetch
+         * This is fastest way to reset scroller when item count is unchanged
+         */
+        void ResetScrollerBufferAndItemsL();
+
+        /** 
+         * Resizes scroller with refetch
+         * This is faster way to reset scroller than CHgScroller::Reset() and 
+         * CHgScroller::ResizeL() calls combined
+		 * @param aNewItemCount New item count
+         */
+        void ResizeScrollerL( TInt aNewItemCount );
+
     private:
         
         /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/src/CIptvDriveMonitor.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,828 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include "CIptvDriveMonitor.h"
+#include "MIptvDriveMonitorObserver.h"
+#include "TIptvDriveMonitorEvent.h"
+#include <bldvariant.hrh>
+#ifdef RD_MULTIPLE_DRIVE_ENABLERS
+#include <driveinfo.h>
+#endif
+#include <centralrepository.h>
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES  
+
+// CONSTANTS
+#if IPTV_LOGGING_METHOD != 0
+_LIT( KIptvMediaNotPresentDes, "EMediaNotPresent");
+_LIT( KIptvMediaUnknownDes, "EMediaUnknown");
+_LIT( KIptvMediaFloppyDes, "EMediaFloppy");
+_LIT( KIptvMediaHardDiskDes, "EMediaHardDisk");
+_LIT( KIptvMediaCdRomDes, "EMediaCdRom");
+_LIT( KIptvMediaRamDes, "EMediaRam");
+_LIT( KIptvMediaFlashDes, "EMediaFlash");
+_LIT( KIptvMediaRomDes, "EMediaRom");
+_LIT( KIptvMediaRemoteDes, "EMediaRemote");
+_LIT( KIptvMediaNANDFlashDes, "EMediaNANDFlash");
+#endif
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::CIptvDriveMonitor
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CIptvDriveMonitor::CIptvDriveMonitor()
+: CActive( EPriorityStandard )
+    {
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::CIptvDriveMonitor() start");
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::CIptvDriveMonitor() exit");
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvEvents::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::ConstructL( const RFs& aFileSession )
+    {
+    iFs                  = aFileSession;
+    iIfsIsProvidedByUser = ETrue;
+   
+    ConstructL();    
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvEvents::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::ConstructL()
+    {
+    iObservers.Reset();
+    iAvailableDrives.Reset();
+    iPreviousAvailableDrives.Reset();
+    
+    if ( !iIfsIsProvidedByUser )
+        {
+        User::LeaveIfError( iFs.Connect() );
+        }
+
+    iSystemDrive = iFs.GetSystemDrive();
+    TInt err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, iDefaultMassStorageDrive );
+    if ( err != KErrNone )
+        {
+        iDefaultMassStorageDrive = KErrNotFound;        
+        }
+    err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, iDefaultMemoryCardDrive );
+    if ( err != KErrNone )
+        {
+        iDefaultMassStorageDrive = KErrNotFound;        
+        }
+            
+    CActiveScheduler::Add( this );
+    RefreshAvailableDrivesL();
+
+    IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: PhoneMemoryDrive() returns %d",
+        PhoneMemoryDrive());
+    IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: MemoryCardDrive() returns %d",
+        MemoryCardDrive());
+    IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: MassStorageDrive() returns %d",
+        MassStorageDrive());
+    IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: FixedDrive(c-drive excluded) returns %d",
+        FixedDrive( ETrue ));
+    
+#if IPTV_LOGGING_METHOD != 0
+    PrintAvailableDrives();
+#endif
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CIptvDriveMonitor* CIptvDriveMonitor::NewL()
+    {
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL() start");
+
+    CIptvDriveMonitor* self = new( ELeave ) CIptvDriveMonitor();
+        
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL() exit");
+
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CIptvDriveMonitor* CIptvDriveMonitor::NewL( const RFs& aFileSession )
+    {
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL(RFs&) start");
+
+    CIptvDriveMonitor* self = new( ELeave ) CIptvDriveMonitor();
+        
+    CleanupStack::PushL( self );
+    self->ConstructL( aFileSession );
+    CleanupStack::Pop(self);
+
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL(RFs&) exit");
+
+    return self;
+    }
+    
+// Destructor
+CIptvDriveMonitor::~CIptvDriveMonitor()
+    {
+    iObservers.Close();
+    iAvailableDrives.Close();
+    iPreviousAvailableDrives.Close();
+    Cancel();
+    
+    if ( !iIfsIsProvidedByUser )
+        {
+        iFs.Close();
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::RegisterObserverL
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::RegisterObserverL( MIptvDriveMonitorObserver* aObserver )
+    {
+    iObservers.AppendL( aObserver );
+
+    if ( !IsActive() )
+        {
+        iFs.NotifyChange( ENotifyDisk, iStatus );
+        SetActive();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::RemoveObserverL
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::RemoveObserverL( MIptvDriveMonitorObserver* aObserver )
+    {
+    TInt i;
+    for ( i = 0; i < iObservers.Count(); i++ )
+        {
+        if ( aObserver == iObservers[i] )
+            {
+            iObservers.Remove( i );
+            iObservers.Compress();
+            break;
+            }
+        }
+        
+    if ( iObservers.Count() == 0 )
+        {
+        iFs.NotifyChangeCancel();
+        }    
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::RefreshAvailableDrivesL
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::RefreshAvailableDrivesL()
+    {
+    IPTVLOGSTRING_LOW_LEVEL("CIptvDriveMonitor::RefreshAvailableDrivesL() start");
+    
+    TDriveList driveList;
+    User::LeaveIfError( iFs.DriveList( driveList ) );
+
+    iPreviousAvailableDrives.Reset();
+    TInt i;
+    for ( i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        iPreviousAvailableDrives.Append( iAvailableDrives[i] );
+        }
+            
+    iAvailableDrives.Reset();
+    
+    for ( i = 0; i < driveList.Length(); i++ )
+        {
+        if ( driveList[i] != 0 )
+            {
+            TDriveInfo driveInfo;
+            User::LeaveIfError( iFs.Drive( driveInfo, i ) );
+            
+            IPTVLOGSTRING3_LOW_LEVEL("CIptvDriveMonitor:: drive[%d]: type = %S",
+                                     i,
+                                     &DriveTypeDes( driveInfo.iType ));
+
+            IPTVLOGSTRING3_LOW_LEVEL(
+                "CIptvDriveMonitor::           MediaAtt flags = %x DriveAtt flags = %x",
+                    driveInfo.iMediaAtt,
+                    driveInfo.iDriveAtt );
+
+#ifdef __WINSCW__
+            // (2) c-drive is EMediaRam
+            // (3) d-drive is EMediaHardDisk
+            // (4) e-drive is EMediaHardDisk or EMediaNotPresent
+            // (25) z-drive is EMediaRom
+            if ( (driveInfo.iType == EMediaRam) ||                                     // c
+                 ((driveInfo.iType == EMediaHardDisk) && i != EDriveD /* skip d */) || // e
+                 (driveInfo.iType == EMediaNANDFlash) ||                               // nothing
+                 (driveInfo.iType == EMediaNotPresent) )                               // e
+#else
+            // (2) c-drive is EMediaNANDFlash
+            // (3) d-drive is EMediaRam
+            // (4) e-drive is EMediaHardDisk or EMediaNotPresent
+            // (5) f-drive is EMediaHardDisk or EMediaNotPresent
+            // (25) z-drive is EMediaRom
+            if ( (driveInfo.iType == EMediaHardDisk) ||  // e,f
+                 (driveInfo.iType == EMediaNANDFlash) || // c
+                 (driveInfo.iType == EMediaNotPresent) ) // e,f
+#endif // __WINSCW__
+                {                
+                if ( !(driveInfo.iMediaAtt & KMediaAttWriteProtected) &&
+                      (driveInfo.iDriveAtt & KDriveAttLocal) )
+                    {
+                    TIptvDriveInfo iptvDriveInfo;
+                    TVolumeInfo volumeInfo;
+                    TChar ch;
+
+                    iFs.DriveToChar( i, ch );
+
+                    iptvDriveInfo.iDrive     = i;
+                    iptvDriveInfo.iDriveChar = ch;
+                    iptvDriveInfo.iType      = driveInfo.iType;
+                    
+                    TUint driveStatus;
+                    TInt err = DriveInfo::GetDriveStatus( iFs, i, driveStatus );
+                    if ( err == KErrNone )
+                        {
+                        if ( driveStatus & DriveInfo::EDriveRemovable )
+                            {
+                            iptvDriveInfo.iFlags |= TIptvDriveInfo::ERemovable;
+                            }
+                        }
+
+                    TInt massStorageDrive;
+                    err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage,
+                                                      massStorageDrive );
+                    if ( err == KErrNone )
+                        {
+                        if ( i == massStorageDrive )
+                            {
+                            iptvDriveInfo.iFlags |= TIptvDriveInfo::EMassStorage;
+                            }                        
+                        }
+
+                    if ( driveInfo.iMediaAtt & KMediaAttLocked )
+                        {
+                        iptvDriveInfo.iFlags |= TIptvDriveInfo::ELocked;
+                        }
+                    if ( driveInfo.iType == EMediaNotPresent )
+                        {
+                        iptvDriveInfo.iFlags |= TIptvDriveInfo::EMediaNotPresent;
+                        }
+
+                    // When mass storage mode is activated while application is running,
+                    // the only hint about that is the TVolumeInfo not being available. 
+                    // Therefore we mark drive as EMediaNotPresent if that structure
+                    // is not available.
+                    if ( iFs.Volume( volumeInfo, i ) != KErrNone )
+                        {
+                        iptvDriveInfo.iFlags |= TIptvDriveInfo::EMediaNotPresent;
+                        iptvDriveInfo.iVolumeName.Zero();
+                        }
+                    else
+                        {
+                        iptvDriveInfo.iVolumeName = volumeInfo.iName;
+                        }
+
+                    if ( iptvDriveInfo.iFlags & TIptvDriveInfo::EMediaNotPresent )
+                        {
+                        iptvDriveInfo.iFlags |= TIptvDriveInfo::ERemovable;
+                        }
+                                            
+                    iAvailableDrives.AppendL( iptvDriveInfo );
+                    }
+                }
+            }
+        } // for
+
+    // if e and f-drives are available, then c-drive is removed from the available drives list
+    if ( ArrayPos( EDriveE ) != KErrNotFound &&
+         ArrayPos( EDriveF ) != KErrNotFound )
+        {
+        TInt cDrivePos = ArrayPos( EDriveC );
+        if ( cDrivePos != KErrNotFound )
+            {
+            IPTVLOGSTRING_LOW_LEVEL(
+                "CIptvDriveMonitor:: e & f-drives available -> removing c from available drives");
+            iAvailableDrives.Remove( cDrivePos );
+            iAvailableDrives.Compress();
+            }
+        }
+    
+    IPTVLOGSTRING_LOW_LEVEL("CIptvDriveMonitor::RefreshAvailableDrivesL() exit");
+    }
+    
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::ArrayPos
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::ArrayPos( TInt aDrive )
+    {
+    TInt i;
+    for (i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        if ( iAvailableDrives[i].iDrive == aDrive )
+            {
+            return i;
+            }
+        }
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::ArrayPosL
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::ArrayPosL( TInt aDrive )
+    {
+    TInt pos;
+    User::LeaveIfError( pos = ArrayPos( aDrive ) );
+    return pos;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::MemoryCardDriveL
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::MemoryCardDriveL()
+    {
+    TInt drive;
+    User::LeaveIfError( drive = MemoryCardDrive() );
+    return drive;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::MemoryCardDrive
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::MemoryCardDrive()
+    {
+    TInt i;
+    for ( i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        if ( iAvailableDrives[i].iDrive == iDefaultMemoryCardDrive )
+            {
+            return iAvailableDrives[i].iDrive;
+            }
+        }
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::MassStorageDriveL
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::MassStorageDriveL()
+    {
+    TInt drive;
+    User::LeaveIfError( drive = MassStorageDrive() );
+    return drive;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::MassStorageDrive
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::MassStorageDrive()
+    {
+    TInt i;
+    for ( i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        if ( iAvailableDrives[i].iDrive == iDefaultMassStorageDrive )
+            {
+            return iAvailableDrives[i].iDrive;
+            }
+        }
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::PhoneMemoryDriveL
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::PhoneMemoryDriveL()
+    {
+    TInt drive;
+    User::LeaveIfError( drive = PhoneMemoryDrive() );
+    return drive;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::PhoneMemoryDrive
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::PhoneMemoryDrive()
+    {
+    TInt i;
+    for ( i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        if ( iAvailableDrives[i].iDrive == iSystemDrive )
+            {
+            return iAvailableDrives[i].iDrive;
+            }
+        }
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::FixedDriveL
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::FixedDriveL( TBool aExcludeCDrive )
+    {
+    TInt drive;
+    User::LeaveIfError( drive = FixedDrive( aExcludeCDrive ) );
+    return drive;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::FixedDrive
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::FixedDrive( TBool aExcludeCDrive )
+    {
+    TInt i;
+    for ( i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        IPTVLOGSTRING2_LOW_LEVEL("CIptvDriveMonitor:: iAvailableDrives[%d]", i);
+
+        if ( !(iAvailableDrives[i].iFlags & TIptvDriveInfo::ERemovable) )
+            {
+            if ( iAvailableDrives[i].iDrive != EDriveC )
+                {
+                IPTVLOGSTRING2_LOW_LEVEL("CIptvDriveMonitor:: FixedDrive() returning drive %d", iAvailableDrives[i].iDrive);
+                return iAvailableDrives[i].iDrive;
+                }
+            else
+                {
+                if ( !aExcludeCDrive )
+                    {
+                    IPTVLOGSTRING2_LOW_LEVEL("CIptvDriveMonitor:: FixedDrive() returning drive %d", iAvailableDrives[i].iDrive);
+                    return iAvailableDrives[i].iDrive;
+                    }   
+                }
+            }
+        }
+    IPTVLOGSTRING_LOW_LEVEL("CIptvDriveMonitor:: FixedDrive() fixed drive not found");
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::IsMassStorageDriveL
+// -----------------------------------------------------------------------------
+//
+TBool CIptvDriveMonitor::IsMassStorageDriveL( TInt aDrive )
+    {
+    if ( aDrive == iDefaultMassStorageDrive )
+        {
+        return ETrue;
+        }
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::IsMemoryCardDriveL
+// -----------------------------------------------------------------------------
+//
+TBool CIptvDriveMonitor::IsMemoryCardDriveL( TInt aDrive )
+    {
+    TInt pos = ArrayPosL( aDrive );
+    if ( iAvailableDrives[pos].iFlags & TIptvDriveInfo::ERemovable )
+        {
+        return ETrue;
+        }
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::IsPresentL()
+// -----------------------------------------------------------------------------
+//
+TBool CIptvDriveMonitor::IsPresentL( TInt aDrive )
+    {
+    TInt pos = ArrayPosL( aDrive );
+    TUint32 flags = iAvailableDrives[pos].iFlags;
+    if ( (flags & TIptvDriveInfo::ELocked) || (flags & TIptvDriveInfo::EMediaNotPresent) )
+        {
+        return ETrue;
+        }
+    return EFalse;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::SystemDrive()
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::SystemDrive()
+    {
+    return iSystemDrive;
+    }
+    
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::IsMmcInserted()
+// -----------------------------------------------------------------------------
+//
+TBool CIptvDriveMonitor::IsMmcInserted()
+    {   
+    TInt drive = MemoryCardDrive();
+    
+    if ( drive == KErrNotFound )
+        {
+        return EFalse;
+        }
+        
+    TInt arrayPos = ArrayPos( drive );
+    
+    if ( arrayPos == KErrNotFound )
+        {
+        return EFalse;
+        }
+    
+    TUint32 flags = iAvailableDrives[arrayPos].iFlags;
+    
+    if ( (flags & TIptvDriveInfo::ELocked) || (flags & TIptvDriveInfo::EMediaNotPresent) )
+        {
+        return EFalse;
+        } 
+    
+    return ETrue;
+    }
+    
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::RunL()
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::RunL()
+    {
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::RunL() start");
+    
+    if ( iStatus == KErrNone )
+        {        
+        iFs.NotifyChange( ENotifyDisk, iStatus );
+        
+        TRAPD( err, RefreshAvailableDrivesL() );
+        if ( err != KErrNone )
+            {
+            IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: RefreshAvailableDrivesL leaved with error code %d, ignoring", err);
+            } 
+        CompareOldAndNewAvailableDrives();
+        SetActive();
+        }
+    else
+        {
+        iFs.NotifyChange( ENotifyDisk, iStatus );
+        SetActive();
+        }
+
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::RunL() exit");
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::DoCancel()
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::DoCancel()
+    {
+    iFs.NotifyChangeCancel( iStatus );
+    }       
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::RunError()
+// -----------------------------------------------------------------------------
+//
+TInt CIptvDriveMonitor::RunError( TInt /* aError */ )
+    {
+    IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::RunL() leaved (should never happen).");
+    return KErrNone;
+    }       
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::SendEvent()
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::SendEvent( TIptvDriveMonitorEvent::TEvent aEvent,
+    TInt aDrive )
+    {
+    IPTVLOGSTRING4_HIGH_LEVEL("CIptvDriveMonitor:: Sending event: %S(%d), drive: %d",
+        &TIptvDriveMonitorEvent::EventDes( aEvent ),
+        aEvent,
+        aDrive );
+
+    TIptvDriveMonitorEvent event;
+        
+    for ( TInt i = 0; i < iObservers.Count(); i++ )
+        {
+        event.iEvent = static_cast<TInt>(aEvent);
+        event.iDrive = aDrive;
+        iObservers[i]->HandleDriveMonitorEvent( event );
+        }
+
+#if IPTV_LOGGING_METHOD != 0
+    PrintAvailableDrives();
+#endif
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::CompareOldAndNewAvailableDrives
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::CompareOldAndNewAvailableDrives()
+    {
+    // Run through old drives list to detect changes
+    TInt i;
+    for ( i = 0; i < iPreviousAvailableDrives.Count(); i++ )
+        {
+        TInt pos = ArrayPos( iPreviousAvailableDrives[i].iDrive );
+        if ( pos == KErrNotFound )
+            {
+            // drive was dismounted
+            SendEvent( TIptvDriveMonitorEvent::EDriveDismounted,
+                iPreviousAvailableDrives[i].iDrive );
+            }
+        else 
+            {
+            // drive still present
+            if ( iPreviousAvailableDrives[i].iFlags != iAvailableDrives[pos].iFlags )
+                {
+                // drive was changed
+                if ( (iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::EMediaNotPresent) && 
+                     !(iAvailableDrives[pos].iFlags & EMediaNotPresent) )
+                    {
+                    SendEvent( TIptvDriveMonitorEvent::EMediaInserted,
+                        iAvailableDrives[pos].iDrive );
+                    }
+                    
+                if ( !(iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::EMediaNotPresent) && 
+                     (iAvailableDrives[pos].iFlags & TIptvDriveInfo::EMediaNotPresent) )
+                    {
+                    SendEvent( TIptvDriveMonitorEvent::EMediaRemoved,
+                        iAvailableDrives[pos].iDrive );
+                    }
+
+                if ( !(iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::ELocked) && 
+                     (iAvailableDrives[pos].iFlags & TIptvDriveInfo::ELocked) )
+                    {
+                    SendEvent( TIptvDriveMonitorEvent::EDriveLocked,
+                        iAvailableDrives[pos].iDrive );
+                    }
+
+                if ( (iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::ELocked) && 
+                     !(iAvailableDrives[pos].iFlags & TIptvDriveInfo::ELocked) )
+                    {
+                    SendEvent( TIptvDriveMonitorEvent::EDriveUnlocked,
+                        iAvailableDrives[pos].iDrive );
+                    }               
+                }
+            // drive volume name was changed
+            if ( iPreviousAvailableDrives[i].iVolumeName.Compare( 
+                 iAvailableDrives[pos].iVolumeName ) != 0 )
+                {
+                SendEvent( TIptvDriveMonitorEvent::EDriveVolumeNameChanged, 
+                    iAvailableDrives[pos].iDrive ); 
+                }
+            }
+        }
+
+    // Run through new drives list to detect mounted drives
+    for ( i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        TBool found = EFalse;
+        for ( TInt j = 0; j < iPreviousAvailableDrives.Count(); j++ )
+            {
+            if ( iPreviousAvailableDrives[j].iDrive == iAvailableDrives[i].iDrive )
+                {
+                found = ETrue;
+                break;
+                }
+            }
+        if ( !found )
+            {
+            SendEvent( TIptvDriveMonitorEvent::EDriveMounted,
+                iAvailableDrives[i].iDrive );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::DriveType()
+// -----------------------------------------------------------------------------
+//
+#if IPTV_LOGGING_METHOD != 0 
+const TDesC& CIptvDriveMonitor::DriveTypeDes( TInt aType )
+    {
+    switch (aType)
+        {     
+        case EMediaNotPresent:
+            return KIptvMediaNotPresentDes;
+	      case EMediaUnknown:
+            return KIptvMediaUnknownDes;
+        case EMediaFloppy:
+            return KIptvMediaFloppyDes;
+        case EMediaHardDisk:
+            return KIptvMediaHardDiskDes;
+        case EMediaCdRom:
+            return KIptvMediaCdRomDes;
+        case EMediaRam:
+            return KIptvMediaRamDes;
+        case EMediaFlash:
+            return KIptvMediaFlashDes;
+        case EMediaRom:
+            return KIptvMediaRomDes;
+        case EMediaRemote:
+            return KIptvMediaRemoteDes;
+        case EMediaNANDFlash:
+            return KIptvMediaNANDFlashDes;
+        default:
+            return KIptvMediaUnknownDes;
+        }
+    }
+#else
+const TDesC& CIptvDriveMonitor::DriveTypeDes( TInt /*aType*/ )
+    {
+    return KIptvEmptyDes;
+    }
+#endif
+    
+// -----------------------------------------------------------------------------
+// CIptvDriveMonitor::PrintAvailableDrives()
+// -----------------------------------------------------------------------------
+//
+void CIptvDriveMonitor::PrintAvailableDrives()
+    {
+#if IPTV_LOGGING_METHOD != 0 
+    for ( TInt i = 0; i < iAvailableDrives.Count(); i++ )
+        {
+        IPTVLOGSTRING3_HIGH_LEVEL("CIptvDriveMonitor:: iAvailableDrives[%d].iDrive = %d",
+            i, iAvailableDrives[i].iDrive);
+        IPTVLOGSTRING2_HIGH_LEVEL("    ERemovableDrive  = %d",
+            !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::ERemovable));
+        IPTVLOGSTRING2_HIGH_LEVEL("    EMassStorage     = %d",
+            !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::EMassStorage));
+        IPTVLOGSTRING2_HIGH_LEVEL("    ELockedDrive     = %d",
+            !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::ELocked));
+        IPTVLOGSTRING2_HIGH_LEVEL("    EMediaNotPresent = %d",
+            !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::EMediaNotPresent));
+        }
+#endif
+    }
+    
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/src/CIptvResourceLoader.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,214 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Resource file loader for components that cannot use the*
+*/
+
+
+
+
+#include <e32base.h>
+#include <bautils.h>
+#include <coemain.h>
+#include "IptvDebug.h"
+#include "CIptvResourceLoader.h"
+
+_LIT( KIptvEDrive, "E:" );
+_LIT( KIptvFDrive, "F:" );
+_LIT( KIptvZDrive, "Z:" );
+_LIT( KIptvRsc, ".RSC" );
+_LIT( KIptvRxx, ".R" );
+const TInt KIptvLangCodeWidth2( 2 );
+const TInt KIptvLangExtLength( 10 );
+
+// ---------------------------------------------------------
+// CIptvResourceLoader::NewL
+// Two-phased constructor.
+// ---------------------------------------------------------
+//
+CIptvResourceLoader* CIptvResourceLoader::NewL( CCoeEnv& aCoeEnv )
+    {
+    IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::NewL" );
+
+    CIptvResourceLoader* self = new( ELeave ) CIptvResourceLoader( aCoeEnv );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CIptvResourceLoader::CIptvResourceLoader
+// C++ default constructor
+// ---------------------------------------------------------
+//
+CIptvResourceLoader::CIptvResourceLoader( CCoeEnv& aCoeEnv )
+  : iCoeEnv( aCoeEnv )
+    {
+    // None
+    }
+
+// ---------------------------------------------------------
+// CIptvResourceLoader::ConstructL
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------
+//
+void CIptvResourceLoader::ConstructL()
+    {    
+    // None
+    }
+
+// ---------------------------------------------------------
+// CIptvResourceLoader::~CIptvResourceLoader
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CIptvResourceLoader::~CIptvResourceLoader()
+    {        
+    IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::~CIptvResourceLoader" );
+    
+    if ( iAdded )
+        {
+        iCoeEnv.DeleteResourceFile( iOffset );    
+        }
+    }
+
+// ---------------------------------------------------------
+// CIptvResourceLoader::AddResourceL
+// 
+// ---------------------------------------------------------
+//
+void CIptvResourceLoader::AddResourceL(
+    const TDesC& aResourceFile )
+    {
+    IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::AddResourceL()" );
+
+    // Language
+    TLanguage language = User::Language();
+    IPTVLOGSTRING2_LOW_LEVEL( "CIptvResourceLoader::AddResourceL(), language: %d", language );
+    TBuf<KIptvLangExtLength> langExt( KNullDesC );
+    if ( language <= ELangOther ) // Langs 0 - 99
+        {
+        langExt.NumFixedWidth( language, EDecimal, KIptvLangCodeWidth2 );
+        }
+    else // Languages 100 - ELangMaximum
+        {
+        langExt.Num( language, EDecimal );
+        }
+
+    // File parser 
+    TParse* fp = new( ELeave ) TParse();
+    CleanupStack::PushL( fp );
+    User::LeaveIfError( fp->Set( aResourceFile, NULL, NULL ) );
+
+    // Search with language code
+    TFileName file( fp->Path() );
+    file.Append( fp->Name() );
+    file.Append( KIptvRxx );
+    file.Append( langExt );
+    TInt error( SearchResourceFile( file ) );
+
+    // If no language file found, change ext to .RSC
+    if ( error )
+        {
+        file.Copy( fp->Path() );
+        file.Append( fp->Name() );
+        file.Append( KIptvRsc );
+        file.ZeroTerminate();
+        error = SearchResourceFile( file );
+        }
+
+    // See result
+    if ( error )
+        {
+        IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::AddResourceL(), NO RESOURCE FILE ADDED!" );
+        iAdded = EFalse;
+        }                   
+    else
+        {
+        iAdded = ETrue;
+        }
+    
+    CleanupStack::PopAndDestroy( fp );
+    User::LeaveIfError( error );
+    }
+
+// ---------------------------------------------------------
+// CIptvResourceLoader::SearchResourceFile
+// 
+// ---------------------------------------------------------
+//
+TInt CIptvResourceLoader::SearchResourceFile( const TDesC& aFile )
+    {
+    // Try to load resource file without drive letter
+    TInt error( AddResourceFile( aFile ) );
+
+    if ( error )
+        {
+        // Try to load resource file from E-drive
+        TFileName eDrive( KIptvEDrive );
+        eDrive.Append( aFile );
+        error = AddResourceFile( eDrive );
+        }
+
+    if ( error )
+        {
+        // Try to load resource file from F-drive
+        TFileName fDrive( KIptvFDrive);
+        fDrive.Append( aFile );
+        error = AddResourceFile( fDrive );
+        }
+
+    if ( error )
+        {
+        // Try to load resource file from Z-drive
+        TFileName zDrive( KIptvZDrive);
+        zDrive.Append( aFile );
+        error = AddResourceFile( zDrive );
+        }
+
+    // If language variant was not found, next try to find nearest one
+    if ( error )
+        {
+        TFileName tempFile( aFile );
+        BaflUtils::NearestLanguageFile( iCoeEnv.FsSession(), tempFile );
+        // Did BaflUtil change the file
+        if ( tempFile.Compare( aFile ) != 0 )
+            {
+            error = AddResourceFile( tempFile );
+            }
+        }
+    
+    return error;
+    }
+
+// ---------------------------------------------------------
+// CIptvResourceLoader::AddResourceFile
+// 
+// ---------------------------------------------------------
+//
+TInt CIptvResourceLoader::AddResourceFile( const TDesC& aFile )
+    {
+    TInt error( KErrNotFound );
+    if ( BaflUtils::FileExists( iCoeEnv.FsSession(), aFile ) )
+        {
+        TRAP( error, iOffset = iCoeEnv.AddResourceFileL( aFile ) );
+        if ( error == KErrNone )
+            {
+            IPTVLOGSTRING2_LOW_LEVEL( "CIptvResourceLoader::AddResourceFile(), Added: %S", &aFile );    
+            }
+        }    
+
+    return error;
+    }
+            
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/src/TIptvDriveInfo.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,34 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "TIptvDriveInfo.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+TIptvDriveInfo::TIptvDriveInfo()
+    : iDrive( 0 )
+    , iFlags( 0 )
+    {
+    }
+    
+TIptvDriveInfo::~TIptvDriveInfo()
+    {
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/src/TIptvDriveMonitorEvent.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,88 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "TIptvDriveMonitorEvent.h"
+#include "IptvDebug.h"
+
+#if IPTV_LOGGING_METHOD != 0 
+_LIT(KIptvDmeMediaRemovedDes, "EMediaRemoved");
+_LIT(KIptvDmeMediaInsertedDes, "EMediaInserted");
+_LIT(KIptvDmeDriveLockedDes, "EDriveLocked");
+_LIT(KIptvDmeDriveUnlockedDes, "EDriveUnlocked");
+_LIT(KIptvDmeDriveMountedDes, "EDriveMounted");
+_LIT(KIptvDmeDriveDismountedDes, "EDriveDismounted");
+_LIT(KIptvDmeDriveVolumeNameChangedDes, "EDriveVolumeNameChanged");
+_LIT(KIptvDmeUnknownDes, "Unknown");
+#endif
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+TIptvDriveMonitorEvent::TIptvDriveMonitorEvent()
+    : iEvent( ENone )
+    , iDrive( -1 )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// TIptvDriveMonitorEvent::EventDes()
+// -----------------------------------------------------------------------------
+//
+#if IPTV_LOGGING_METHOD != 0
+
+const TDesC& TIptvDriveMonitorEvent::EventDes( TIptvDriveMonitorEvent::TEvent aEvent )
+    {
+    switch ( aEvent )
+        {
+        case EMediaRemoved:
+            return KIptvDmeMediaRemovedDes;
+            
+        case EMediaInserted:
+            return KIptvDmeMediaInsertedDes;
+
+        case EDriveLocked:
+            return KIptvDmeDriveLockedDes;
+
+        case EDriveUnlocked:
+            return KIptvDmeDriveUnlockedDes;
+
+        case EDriveMounted:
+            return KIptvDmeDriveMountedDes;
+
+        case EDriveDismounted:
+            return KIptvDmeDriveDismountedDes;
+        
+        case EDriveVolumeNameChanged:
+            return KIptvDmeDriveVolumeNameChangedDes;
+
+        default:
+            return KIptvDmeUnknownDes;
+        }
+    }
+    
+#else
+
+const TDesC& TIptvDriveMonitorEvent::EventDes( TIptvDriveMonitorEvent::TEvent /*aEvent*/ )
+    {
+    return KIptvEmptyDes;
+    }
+
+#endif
+
--- a/videocollection/hgmyvideos/src/vcxhgmyvideoscategorylistimpl.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideoscategorylistimpl.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -20,6 +20,8 @@
 // INCLUDE FILES
 #include <ganes/HgScroller.h>
 #include <vcxhgmyvideos.rsg>
+#include <myvideosindicator.h>
+#include <ganes/HgDoubleGraphicList.h>
 
 #include "vcxhgmyvideoscategorylistimpl.h"
 #include "vcxhgmyvideoscategorymodelhandler.h"
@@ -79,7 +81,21 @@
 void CVcxHgMyVideosCategoryListImpl::ConstructL()
     {
     CVcxHgMyVideosListBase::ConstructL();
-    iCategoryModel = new (ELeave) CVcxHgMyVideosCategoryModelHandler( iModel, *iScroller );
+    iCategoryModel = CVcxHgMyVideosCategoryModelHandler::NewL( iModel, *iScroller );
+
+    // Load indicator
+    CGulIcon* ind = iCategoryModel->VideoIndicatorL().VideoOverlayIndicatorL();
+    if ( ind )
+        {
+        CleanupStack::PushL( ind );
+        // Ownership of the icon is transferred
+        static_cast<CHgDoubleGraphicList*>( iScroller )->SetIconOverlayIndicator( ind );
+        CleanupStack::Pop( ind );
+        }
+
+    // Set default icon as empty
+    iScroller->SetDefaultIconL( iCategoryModel->CreateEmptyHgListIconL() );
+
     iScroller->SetFlags( CHgScroller::EHgScrollerKeyMarkingDisabled );
     iScroller->SetSelectionObserver( *this );
     }
@@ -141,10 +157,53 @@
 void CVcxHgMyVideosCategoryListImpl::HandleOpenL( TInt /*aIndex*/ )
     {
     TInt highlight = Highlight();
+    TInt categoryId = iCategoryModel->ResolveCategoryId( highlight );
     
-    if ( highlight >= 0 && iModel.TouchSupport() )
+    switch ( categoryId )
         {
-        iView.ActivateVideoListL( iCategoryModel->ResolveCategoryId( highlight ) );
+        case KVcxMvcCategoryIdAll:
+        case KVcxMvcCategoryIdDownloads:
+        case KVcxMvcCategoryIdCaptured:
+        case KVcxMvcCategoryIdOther:
+            {
+            if ( highlight >= 0 && iModel.TouchSupport() )
+                {
+                iView.ActivateVideoListL( iCategoryModel->ResolveCategoryId( highlight ) );
+                }
+            }
+            break;
+            
+        case KCategoryIdLastWatched:
+            {
+            iCategoryModel->PlayLastWatchedVidedoL();
+            }
+            break;
+            
+        case KCategoryIdExtraItem1:
+        case KCategoryIdExtraItem2:
+        case KCategoryIdExtraItem3:
+            {
+            // Handle item according to type (open web link or start app).
+            
+            TVcxHgMyVideosCategoryItemType itemType;
+            TUid appUid;
+            TBuf<64> urlString;
+            iCategoryModel->HandleExtraItemSelectionL( categoryId, itemType, appUid, urlString );
+            
+            if ( itemType == TVcxHgMyVideosCategoryItemTypeUid )
+                {
+                iView.LaunchAppL( appUid );
+                }
+            else if ( itemType == TVcxHgMyVideosCategoryItemTypeUrl )
+                {
+                iView.LaunchBrowserL( urlString );
+                }
+            }
+            break;
+            
+        default:
+            ASSERT( 0 );
+            break;
         }
     }
 
--- a/videocollection/hgmyvideos/src/vcxhgmyvideoscategorymodelhandler.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideoscategorymodelhandler.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -1,4 +1,4 @@
-    /*
+/*
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
@@ -26,17 +26,53 @@
 
 #include <ganes/HgScroller.h>
 #include <ganes/HgItem.h>
+#include <ganes/HgDoubleGraphicList.h>
 
+#include <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
+#include <thumbnailobjectsource.h>
+#include <thumbnaildata.h>
+#include <gulicon.h>
+#include <AknsUtils.h>
+#include <AknUtils.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+
+#include <vcxhgmyvideosicons.mbg>
+#include <myvideosindicator.h>
 #include <vcxhgmyvideos.rsg>
 #include <vcxmyvideosdefs.h>
+#include <vcxmyvideosuids.h>
 #include "IptvDebug.h"
 
 #include "vcxhgmyvideoscategorymodelhandler.h"
 #include "vcxhgmyvideosmodel.h"
 #include "vcxhgmyvideoscollectionclient.h"
+#include "vcxhgmyvideosthumbnailmanager.h"
+#include "vcxhgmyvideoscenrepkeys.h"
+
+const TInt KMyVideosTitleStringMaxLength = 64;
+const TInt KMyVideosTitleUrlMaxLength    = 128;
+
+_LIT( KVcxHgMyVideosMifFile, "\\resource\\apps\\vcxhgmyvideosicons.mif" );
 
 // ============================ MEMBER FUNCTIONS ===============================
 
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosCategoryModelHandler::NewL()
+// -----------------------------------------------------------------------------
+//
+CVcxHgMyVideosCategoryModelHandler* CVcxHgMyVideosCategoryModelHandler::NewL(
+        CVcxHgMyVideosModel& aModel,
+        CHgScroller& aScroller )
+    {
+    CVcxHgMyVideosCategoryModelHandler* self = 
+        new (ELeave) CVcxHgMyVideosCategoryModelHandler( aModel, aScroller );
+
+    return self;
+    }
+
+
 // -----------------------------------------------------------------------------
 // CVcxHgMyVideosCategoryModelHandler::CVcxHgMyVideosCategoryModelHandler()
 // -----------------------------------------------------------------------------
@@ -44,7 +80,9 @@
 CVcxHgMyVideosCategoryModelHandler::CVcxHgMyVideosCategoryModelHandler(
         CVcxHgMyVideosModel& aModel, CHgScroller& aScroller )
     : iModel( aModel ),
-      iScroller( aScroller )
+      iScroller( aScroller ),
+      iTnManager( aModel.ThumbnailManager() ),
+      iTnRequestId( KErrNotFound )
     {
     }
 
@@ -55,6 +93,9 @@
 CVcxHgMyVideosCategoryModelHandler::~CVcxHgMyVideosCategoryModelHandler()
     {
     delete iCategoryList;
+    delete iLastWatched;
+    delete iVideoIndicator;
+    
     iCategoryIdArray.Reset();
     }
 
@@ -68,6 +109,8 @@
         "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelActivateL() - Enter" );
 
     iModel.CollectionClient().SetCategoryModelObserver( this );
+
+    iTnManager.AddObserverL( *this );
     
     IPTVLOGSTRING_LOW_LEVEL( 
         "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelActivateL() - Exit" );
@@ -83,6 +126,11 @@
         "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelDeactivate() - Enter" );
 
     iModel.CollectionClient().SetCategoryModelObserver( NULL );
+
+    iTnManager.RemoveObserver( *this );
+    
+    delete iLastWatched;
+    iLastWatched = NULL;
     
     IPTVLOGSTRING_LOW_LEVEL( 
         "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelDeactivate() - Exit" );
@@ -116,11 +164,11 @@
 // CVcxHgMyVideosCategoryModelHandler::GetCategoryNameLC()
 // -----------------------------------------------------------------------------
 // 
-HBufC* CVcxHgMyVideosCategoryModelHandler::GetCategoryNameLC( TInt aIndex )
+HBufC* CVcxHgMyVideosCategoryModelHandler::GetCategoryNameLC( TInt aCategoryId )
     {
     HBufC* name = NULL;
 
-    switch ( aIndex )
+    switch ( aCategoryId )
         {
         case KVcxMvcCategoryIdAll:
             name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_STORAGE_ALL_LIST );
@@ -134,8 +182,42 @@
         case KVcxMvcCategoryIdOther:
             name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_STORAGE_OTHER_LIST );
             break;            
+        case KCategoryIdLastWatched:
+            name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_LAST_WATCHED );
+            break;            
+        case KCategoryIdExtraItem1:
+            // ExtraItem1 is always interpreted as Ovi Store
+            name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_OVI_STORE ); 
+			break;
+        case KCategoryIdExtraItem2:
+        case KCategoryIdExtraItem3:
+            {
+            TInt key = 0;
+            if ( aCategoryId == KCategoryIdExtraItem2 )
+                {
+                key = KCRVideoPlayerExtraItem2Title;
+                }
+            else if ( aCategoryId == KCategoryIdExtraItem3 )
+                {
+                key = KCRVideoPlayerExtraItem3Title;
+                }
+
+            TBuf<KMyVideosTitleStringMaxLength> titleString;
+            TInt error = iModel.GetMyVideosCustomizationString( key, titleString );
+            if ( error == KErrNone )
+                {
+                name = titleString.AllocLC();
+                }
+            else 
+                {
+                name = KNullDesC().AllocLC();
+                }
+            }
+            break;
+            
         default:
             {
+            name = KNullDesC().AllocLC();
             IPTVLOGSTRING_LOW_LEVEL( 
                 "MPX My Videos UI # GetCategoryNameLC() Unexpected category!" );
             }
@@ -145,13 +227,130 @@
     }
 
 // -----------------------------------------------------------------------------
+// CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL()
+// -----------------------------------------------------------------------------
+// 
+CGulIcon* CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL( TInt aCategoryId )
+    {
+    IPTVLOGSTRING2_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL() Enter! Category id = %d", aCategoryId );
+
+    CGulIcon* icon( NULL );
+    TInt bitmapId( 0 );
+    TInt maskId( 0 );
+    TInt key( KErrNotFound );
+    TFileName iconFile( KNullDesC() );
+    
+    // Find icon file & bitmap IDs or cenrep keys
+    switch ( aCategoryId )
+        {
+        case KVcxMvcCategoryIdDownloads:    // fall through
+        case KVcxMvcCategoryIdAll:          // fall through
+        case KVcxMvcCategoryIdOther:
+            iconFile = KVcxHgMyVideosMifFile;
+            bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_download_thumbnail_video;
+            maskId = EMbmVcxhgmyvideosiconsQgn_prop_download_thumbnail_video_mask;
+            break;
+        case KVcxMvcCategoryIdCaptured:
+            iconFile = KVcxHgMyVideosMifFile;
+            bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_captured_thumbnail_video;
+            maskId = EMbmVcxhgmyvideosiconsQgn_prop_captured_thumbnail_video_mask;
+            break;
+        case KCategoryIdLastWatched:
+            // If no last watched, dont show default icon
+            if ( iLastWatched )
+                {
+                iconFile = KVcxHgMyVideosMifFile;
+                bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video;
+                maskId = EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video_mask;
+                }
+            break;
+        case KCategoryIdExtraItem1:
+            // ExtraItem1 is always interpreted as Ovi Store
+            iconFile = KVcxHgMyVideosMifFile;
+            bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_ovi_thumbnail_video;
+            maskId = EMbmVcxhgmyvideosiconsQgn_prop_ovi_thumbnail_video_mask;
+            break;
+        case KCategoryIdExtraItem2:
+            key = KCRVideoPlayerExtraItem2IconPath;
+            break;
+        case KCategoryIdExtraItem3:
+            key = KCRVideoPlayerExtraItem3IconPath;
+            break;
+        default:
+            {
+            IPTVLOGSTRING_LOW_LEVEL( 
+                "MPX My Videos UI # GetCategoryIconLC() Unexpected category!" );
+            }
+            break;
+        }
+
+    if ( key != KErrNotFound ) 
+        {
+        // Extra item 2 or 3, get icon file from cenrep
+        TInt error = iModel.GetMyVideosCustomizationString( key, iconFile );
+        if ( error == KErrNone && iconFile.Length() > 0 )
+            {
+            IPTVLOGSTRING3_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL() cenrep key %d iconFile %S", key, &iconFile );
+            bitmapId = 0x4000;
+            maskId = 0x4001;
+            }
+        else
+            { // Use default service icon
+            iconFile = KVcxHgMyVideosMifFile;
+            bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_service_thumbnail_video;
+            maskId = EMbmVcxhgmyvideosiconsQgn_prop_service_thumbnail_video_mask;
+            }
+        }
+
+    if ( bitmapId && iconFile.Length() > 0 )
+        {
+        // find mif file
+        TFindFile findFile( iModel.FileServerSessionL() );
+        TInt error = findFile.FindByDir( iconFile, KNullDesC );
+
+        // Create icon if icon file was found
+        if ( KErrNone == error )
+            {
+            TParse parse;
+            parse.Set( findFile.File(), NULL, NULL );
+            iconFile = parse.FullName();
+            IPTVLOGSTRING3_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconLC() get %d from file %S", bitmapId, &iconFile );
+
+            icon = CreateHgListIconL( iconFile, bitmapId, maskId );
+            }
+        else
+            {
+            IPTVLOGSTRING2_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL() FindByDir() returned %d", error );
+            }
+        }
+    else
+        {
+        IPTVLOGSTRING_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconLC() no icon file or id" );
+        }
+
+    return icon;    
+    }
+
+// -----------------------------------------------------------------------------
 // CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC()
 // -----------------------------------------------------------------------------
 // 
 HBufC* CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC( CMPXMedia& aMedia )
-    {
+    {    
+    if ( !aMedia.IsSupported( KMPXMediaGeneralType ) ||
+          aMedia.ValueTObjectL<TMPXGeneralType>( KMPXMediaGeneralType ) != EMPXGroup )
+        {
+        if ( aMedia.IsSupported( KMPXMediaGeneralTitle ) )
+            {
+            return aMedia.ValueText( KMPXMediaGeneralTitle ).AllocLC(); 
+            }
+	    else
+		    {
+			return KNullDesC().AllocLC();
+			}
+        }
+    
     HBufC* details = NULL;
-    HBufC* newVideoName = NULL;
     TInt newVideos = 0;
     TInt videos = 0;
 
@@ -166,38 +365,14 @@
 
     if ( newVideos > 0 )
         {
-        if ( aMedia.IsSupported( KVcxMediaMyVideosCategoryNewItemName ) )
-            {
-            newVideoName = aMedia.ValueText( KVcxMediaMyVideosCategoryNewItemName ).AllocLC();
-            }
-        else
-            {
-            newVideoName = KNullDesC().AllocLC();
-            }
-
         if ( newVideos == 1 )
             {
-            details = StringLoader::LoadL( R_VCXHGMYVIDEOS_ONE_NEW_VIDEO, *newVideoName );
+            details = StringLoader::LoadL( R_VCXHGMYVIDEOS_ONE_NEW_VIDEO );
             }
         else
             {
-            CDesCArrayFlat* arrayForStrings = new ( ELeave ) CDesCArrayFlat( 1 );
-            CleanupStack::PushL( arrayForStrings );
-            arrayForStrings->AppendL( *newVideoName );
-            
-            CArrayFixFlat<TInt>* arrayForInts = new ( ELeave ) CArrayFixFlat<TInt>( 3 );
-            CleanupStack::PushL( arrayForInts );
-            arrayForInts->AppendL( newVideos );
-            
-            details = StringLoader::LoadL( R_VCXHGMYVIDEOS_N_NEW_VIDEOS,
-                                           *arrayForStrings,
-                                           *arrayForInts );
-            
-            CleanupStack::PopAndDestroy( arrayForInts );
-            CleanupStack::PopAndDestroy( arrayForStrings );
+            details = StringLoader::LoadL( R_VCXHGMYVIDEOS_N_NEW_VIDEOS, newVideos );
             }
-        
-        CleanupStack::PopAndDestroy( newVideoName );
         CleanupStack::PushL( details );
         }
     else
@@ -219,6 +394,76 @@
     return details;
     }
 
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC()
+// -----------------------------------------------------------------------------
+// 
+HBufC* CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC( TInt aCategoryId )
+    {
+    HBufC* secondRow = NULL;
+   
+    switch ( aCategoryId )
+        {
+        case KVcxMvcCategoryIdAll:
+        case KVcxMvcCategoryIdDownloads:
+        case KVcxMvcCategoryIdTvRecordings:
+        case KVcxMvcCategoryIdCaptured:
+        case KVcxMvcCategoryIdOther:
+        case KCategoryIdLastWatched:
+            {
+            CMPXMedia* media = GetCategoryDataL( aCategoryId );
+            if ( media )
+                {
+                secondRow = FormatCategorySecondRowLC( *media );
+                }
+			else
+			    {
+				secondRow = KNullDesC().AllocLC();
+				}
+            }
+            break;
+        case KCategoryIdExtraItem1:
+            // ExtraItem1 is always interpreted as Ovi Store
+            secondRow = StringLoader::LoadLC( R_VCXHGMYVIDEOS_OVI_STORE_VIDEOS ); 
+            break;
+            
+        case KCategoryIdExtraItem2:
+        case KCategoryIdExtraItem3:
+            {
+            TInt key = 0;
+            if ( aCategoryId == KCategoryIdExtraItem2 )
+                {
+                key = KCRVideoPlayerExtraItem2Text;
+                }
+            else if ( aCategoryId == KCategoryIdExtraItem3 )
+                {
+                key = KCRVideoPlayerExtraItem3Text;
+                }
+            
+            TBuf<KMyVideosTitleStringMaxLength> detailsString;
+            TInt error = iModel.GetMyVideosCustomizationString( key, detailsString );
+            if ( error == KErrNone )
+                {
+                secondRow = detailsString.AllocLC();
+                }
+            else 
+                {
+                secondRow = KNullDesC().AllocLC();
+                }
+            break;
+            }
+        default:
+            {
+            secondRow = KNullDesC().AllocLC();
+            IPTVLOGSTRING_LOW_LEVEL( 
+                "MPX My Videos UI # FormatCategorySecondRowLC() Unexpected category!" );
+            break;
+            }
+        }
+    return secondRow;
+    }
+
 // -----------------------------------------------------------------------------
 // CVcxHgMyVideosCategoryModelHandler::UiIndexFromMpxItemId()
 // -----------------------------------------------------------------------------
@@ -244,7 +489,7 @@
             
                 if ( mpxItemId == aMpxItemId )
                     {
-                    index = ResolveCategoryArrayIndexById( i );                                        
+                    index = ResolveCategoryArrayIndexById( i );
                     break;
                     }
                 }
@@ -261,7 +506,8 @@
 // 
 TInt CVcxHgMyVideosCategoryModelHandler::ResolveCategoryArrayIndexById( TInt aCategoryId )
     {
-    TInt ret( 0 );
+    TInt ret( KErrNotFound );
+    
     for(TInt i = 0; i < iCategoryIdArray.Count(); i++ )
         {
         if( iCategoryIdArray[ i ] == aCategoryId )
@@ -270,6 +516,7 @@
             break;
             }
         }  
+    
     return ret;
     }
     
@@ -279,14 +526,20 @@
 // -----------------------------------------------------------------------------
 // 
 void CVcxHgMyVideosCategoryModelHandler::NewCategoryListL( 
-        CMPXMediaArray* aCategoryList )
+        CMPXMediaArray* aCategoryList, TBool aIsPartial )
     {
-    IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # NewCategoryListL() - Enter" );
+    IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # NewCategoryListL() - Enter. IsPartial=%d", aIsPartial );
 
     delete iCategoryList;
     iCategoryList = aCategoryList;
     
     UpdateCategoryListL();
+	
+    if ( !aIsPartial )
+        {
+        // KVcxMessageMyVideosListComplete does not come, finish list fetching now
+        CategoryListFetchingCompletedL();
+        }
     
     IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # NewCategoryListL() - Exit" );
     }
@@ -301,7 +554,10 @@
     IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CategoryListModifiedL() - Enter" );
     
     UpdateCategoryListL();
-        
+    
+    FetchLastWatchedL();
+    SetLastWatchedIndicatorL();
+    
     IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CategoryListModifiedL() - Exit" );
     }
 
@@ -327,7 +583,35 @@
             break;
             
         case EMPXItemInserted:
+            {
+            if ( !iLastWatched )
+                {
+                TInt id1( 0 );
+                TInt ret = iModel.GetLastWatchedIdL( id1 );
+                TMPXItemId id ( id1 );
+                
+                if (  ret == KErrNone &&
+                      id1 == aMpxItemId.iId1 )
+                    {
+                    FetchLastWatchedL();
+                    }
+                }
+            }
+            break;
         case EMPXItemDeleted:
+            {
+            if ( iLastWatched && 
+                 iLastWatched->IsSupported( KMPXMediaGeneralId ) &&
+                 iLastWatched->Value<TMPXItemId>( KMPXMediaGeneralId )->iId1 == aMpxItemId.iId1 )
+                {
+                delete iLastWatched;
+                iLastWatched = NULL;
+                
+                UpdateCategoryListItemL( ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) );
+                SetLastWatchedIndicatorL();
+                }
+            }
+            break;
         default:
             {
             IPTVLOGSTRING_LOW_LEVEL( 
@@ -393,30 +677,18 @@
         {
         CHgItem& listItem = iScroller.ItemL( aListIndex );
         
-        CMPXMedia* media( NULL );        
-        media = (*iCategoryList)[ iCategoryIdArray[ aListIndex ] ];
-        
         HBufC* categoryName( NULL );     
         categoryName = GetCategoryNameLC( iCategoryIdArray[ aListIndex ] );
-        
-        if ( categoryName && media )
-            {
-            // Insert the category name into first row of list item.
-            listItem.SetTitleL( *categoryName );
-            CleanupStack::PopAndDestroy( categoryName );
-                    
-            // Insert video count into second row of list item.
-            HBufC* secondRow( NULL );
-            secondRow = FormatCategorySecondRowLC( *media );
-            listItem.SetTextL( *secondRow );
-            CleanupStack::PopAndDestroy( secondRow );            
-            }
-        else
-            {
-            // If category name or media was not found then 
-            // the whole list item should be removed.
-            RemoveCategoryListItem( aListIndex );
-            }
+        listItem.SetTitleL( *categoryName );
+        CleanupStack::PopAndDestroy( categoryName );
+
+        HBufC* secondRow( NULL );
+        secondRow = FormatCategorySecondRowLC( iCategoryIdArray[ aListIndex ] );
+        listItem.SetTextL( *secondRow );
+        CleanupStack::PopAndDestroy( secondRow );
+
+        // Set icon for category
+        listItem.SetIcon( GetCategoryIconL( iCategoryIdArray[ aListIndex ] ) );
         }
         
     IPTVLOGSTRING_LOW_LEVEL( 
@@ -442,7 +714,8 @@
 TInt CVcxHgMyVideosCategoryModelHandler::ResolveCategoryId( TInt aScrollerIndex )
     {
     TInt ret( -1 );
-    if ( aScrollerIndex <= iCategoryIdArray.Count() )
+    if ( aScrollerIndex >= 0 &&
+         aScrollerIndex <= iCategoryIdArray.Count() )
         {
         ret = iCategoryIdArray[ aScrollerIndex ];
         }  
@@ -460,12 +733,72 @@
     
     iCategoryIdArray.Reset();    
     
-    for(TInt i = 0; i < aCategoriesAvailable; i++)
+    TInt error = KErrNone;
+    TInt value = KErrNotFound;
+    TInt categoryId = KErrNotFound;
+    
+    // Check that cenrep exists and has some valid data
+    error = iModel.GetMyVideosCustomizationInt( KCRVideoPlayerItemLocation1, value );
+    
+    if ( error == KErrNone && value > EMyVideosListItemTypeEmpty )
         {
-        if( AcceptCategory( i ) )
+        IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # MakeCategoryIdArray() Getting category items from cenrep" ); 
+
+        for ( TInt i=KCRVideoPlayerItemLocation1; i<=KCRVideoPlayerItemLocation7; i++ )    
             {
-            iCategoryIdArray.Append( i );        
-            }        
+            error = iModel.GetMyVideosCustomizationInt( i , value );
+            if ( error == KErrNone && value != EMyVideosListItemTypeEmpty )
+                {
+                switch ( value )
+                    {
+                    case EMyVideosListItemTypeLastWatched:
+                        categoryId = KCategoryIdLastWatched;
+                        break;        
+                    case EMyVideosListItemTypeCapturedVideos:
+                        categoryId = KVcxMvcCategoryIdCaptured;
+                        break;
+                    case EMyVideosListItemTypeOtherVideos:
+                        categoryId = KVcxMvcCategoryIdOther;
+                        break;                        
+                    case EMyVideosListItemTypeExtra1:
+                        categoryId = KCategoryIdExtraItem1;
+                        break;                        
+                    case EMyVideosListItemTypeExtra2:
+                        categoryId = KCategoryIdExtraItem2;
+                        break;                        
+                    case EMyVideosListItemTypeExtra3:
+                        categoryId = KCategoryIdExtraItem3;
+                        break;
+                    case EMyVideosListItemTypeEmpty:
+                        categoryId = KErrNotFound;
+                        break;
+                    default:
+                        categoryId = KErrNotFound;
+                        break;
+                    }
+                
+                if ( AcceptCategory( categoryId ) )
+                    {
+                    iCategoryIdArray.Append( categoryId );
+                    }
+                }
+            }
+        }
+    else
+        {
+        IPTVLOGSTRING_LOW_LEVEL( 
+            "MPX My Videos UI # MakeCategoryIdArray() Could not access CenRep!" ); 
+    
+        // If cenrep access fails then use these values as backup
+	    iCategoryIdArray.Append( KCategoryIdLastWatched );
+		
+    	for(TInt i = 0; i < aCategoriesAvailable; i++)
+        	{
+	        if( AcceptCategory( i ) )
+    	        {
+        	    iCategoryIdArray.Append( i );        
+            	}        
+        	}
         }
     }
 
@@ -479,18 +812,372 @@
     switch ( aCategoryId )
         {
         case KVcxMvcCategoryIdAll:
-        case KVcxMvcCategoryIdDownloads:
         case KVcxMvcCategoryIdCaptured:
         case KVcxMvcCategoryIdOther:
+        case KCategoryIdLastWatched:
+        case KCategoryIdExtraItem1:
+        case KCategoryIdExtraItem2:
+        case KCategoryIdExtraItem3:
             IPTVLOGSTRING2_LOW_LEVEL( 
                     "MPX My Videos UI # AcceptCategory() Accepted category: %d", aCategoryId );
             ret = ETrue;
             break;
         default:
             IPTVLOGSTRING2_LOW_LEVEL( 
-                    "MPX My Videos UI # AcceptCategory() Uknowns category: %d", aCategoryId );
+                    "MPX My Videos UI # AcceptCategory() Unknown category: %d", aCategoryId );
             break;            
         }
     
     return ret;
     }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::VideoFetchingCompletedL()
+// MPX Collection calls this callback when a single video has fetched.
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::VideoFetchingCompletedL( CMPXMedia* aVideo )
+    {
+    TInt id( 0 );
+    
+    TInt ret = iModel.GetLastWatchedIdL( id );
+                    
+    if ( ret == KErrNone && 
+         id && 
+		 aVideo &&
+         aVideo->IsSupported( KMPXMediaGeneralId ) &&
+         aVideo->Value<TMPXItemId>( KMPXMediaGeneralId )->iId1 == id )
+        {
+        delete iLastWatched;
+        iLastWatched = aVideo;
+		
+		LoadLastWatchedIconL();
+		SetLastWatchedIndicatorL();
+        }
+    else 
+		{
+		delete aVideo;
+		aVideo = NULL;
+		}
+    
+    UpdateCategoryListItemL( ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) );
+    iScroller.RefreshScreen( ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) );
+    }
+
+// -----------------------------------------------------------------------------
+// MPX Collection calls this callback when category list items have been fetched.
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::CategoryListFetchingCompletedL()
+    {
+    IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CategoryListFetchingCompletedL()" ); 
+    FetchLastWatchedL();
+    SetLastWatchedIndicatorL();
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::GetCategoryDataL()
+// 
+// -----------------------------------------------------------------------------
+// 
+CMPXMedia* CVcxHgMyVideosCategoryModelHandler::GetCategoryDataL( TInt aCategoryId )
+    {
+    if ( aCategoryId == KCategoryIdLastWatched )
+        {
+        return iLastWatched;
+        }
+    
+    if ( aCategoryId >= 0 && iCategoryList->Count() > aCategoryId )
+        {
+        return (*iCategoryList)[ aCategoryId ];
+        }
+    
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::FetchLastWatchedL()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::FetchLastWatchedL()
+    {
+    TInt id1( 0 );
+    TInt ret = iModel.GetLastWatchedIdL( id1 );
+    TMPXItemId id ( id1 );
+    
+    if (  id1 != 0 && 
+          KErrNone == ret )
+        {
+        if ( !iLastWatched ||
+		    ( iLastWatched &&
+              iLastWatched->IsSupported( KMPXMediaGeneralId ) &&
+              iLastWatched->Value<TMPXItemId>( KMPXMediaGeneralId )->iId1 != id1 ))
+            {
+            iModel.CollectionClient().FetchMpxMediaByMpxIdL( id );
+            } 
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::PlayLastWatchedVidedoL()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::PlayLastWatchedVidedoL()
+    {
+    if (  iLastWatched && iLastWatched->IsSupported( KMPXMediaGeneralId ) )
+        {
+        iModel.CollectionClient().PlayVideoL(
+                    *iLastWatched->Value<TMPXItemId>( KMPXMediaGeneralId ) );
+
+        iModel.SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStatePlayer );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::LoadLastWatchedIconL()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::LoadLastWatchedIconL()
+    {
+    CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( 
+                    iLastWatched->ValueText( KMPXMediaGeneralUri ),
+                    KNullDesC );
+    
+    iTnRequestId = iTnManager.GetL( *source );
+    CleanupStack::PopAndDestroy( source );
+	}
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::SetLastWatchedIndicatorL()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::SetLastWatchedIndicatorL()
+    {
+    if ( KErrNotFound != ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) ) 
+        {
+        CHgItem& lastWatchedItem = iScroller.ItemL(
+                ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) );
+        if ( iLastWatched && VideoIndicatorL().IsIndicatorShown( *iLastWatched ) )
+            {
+            lastWatchedItem.SetFlags( CHgItem::EHgItemFlagsIconOverlayIndicator );
+            }
+        else
+            {
+            lastWatchedItem.ClearFlags( CHgItem::EHgItemFlagsIconOverlayIndicator );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::VideoIndicatorL()
+// 
+// -----------------------------------------------------------------------------
+// 
+CMyVideosIndicator& CVcxHgMyVideosCategoryModelHandler::VideoIndicatorL()
+    {
+    if ( !iVideoIndicator )
+        {
+        iVideoIndicator = CMyVideosIndicator::NewL();
+        }
+    return *iVideoIndicator;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::ThumbnailPreviewReady()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::ThumbnailPreviewReady( 
+                MThumbnailData& /*aThumbnail*/,
+                TThumbnailRequestId /*aId*/ )
+    {
+    // No implementation
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::ThumbnailReady()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::ThumbnailReady( 
+                TInt aError, 
+                MThumbnailData& aThumbnail,
+                TThumbnailRequestId aId )
+    {
+    if ( aId == iTnRequestId )
+        {
+        iTnRequestId = KErrNotFound;
+        
+        TRAP_IGNORE( ThumbnailReadyL( aError, aThumbnail, aId ) );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::ThumbnailReady()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::ThumbnailReadyL( 
+                TInt aError, 
+                MThumbnailData& aThumbnail,
+                TThumbnailRequestId /*aId*/ )
+    {
+    TInt lastWatchedIndex = ResolveCategoryArrayIndexById( KCategoryIdLastWatched );
+    if ( lastWatchedIndex != KErrNotFound )
+        {
+        CHgItem& listItem = iScroller.ItemL( lastWatchedIndex );
+        CGulIcon* thumbnail( NULL );
+        
+        if ( !aError )
+            {
+            thumbnail = CGulIcon::NewL( aThumbnail.DetachBitmap() );
+            CleanupStack::PushL( thumbnail );
+            }
+        else
+            {
+            TFileName iconFile( KVcxHgMyVideosMifFile );
+            thumbnail = CreateHgListIconL( iconFile, 
+                EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video, 
+                EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video_mask );
+
+            CleanupStack::PushL( thumbnail );
+            }
+        
+        listItem.SetIcon( thumbnail ); // Takes ownership
+        CleanupStack::Pop( thumbnail );
+        
+        iScroller.RefreshScreen( lastWatchedIndex );
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::HandleExtraItemSelectionL()
+// 
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosCategoryModelHandler::HandleExtraItemSelectionL( 
+        TInt categoryId,
+        TVcxHgMyVideosCategoryItemType& aItemType,
+        TUid& aUid,
+        TDes& aUrl )
+    {
+    TInt uidKey = 0;
+    TInt urlKey = 0;
+   
+    aItemType = TVcxHgMyVideosCategoryItemTypeUndefined;
+    
+    switch ( categoryId )
+        {
+        case KCategoryIdExtraItem1:
+            {
+            uidKey = KCRVideoPlayerExtraItem1Uid;
+            urlKey = KCRVideoPlayerExtraItem1Url;                   
+            break;
+            }
+        case KCategoryIdExtraItem2:
+            {
+            uidKey = KCRVideoPlayerExtraItem2Uid;
+            urlKey = KCRVideoPlayerExtraItem2Url;                    
+            break;
+            }
+        case KCategoryIdExtraItem3:
+            {
+            uidKey = KCRVideoPlayerExtraItem3Uid;
+            urlKey = KCRVideoPlayerExtraItem3Url;                   
+            break;
+            }
+        default:
+            return;
+        }
+    
+    TBuf<KMyVideosTitleUrlMaxLength> urlString;
+    TInt uidInt( 0 ) ;
+    
+    // Try to get web link URL first.
+    TInt error = iModel.GetMyVideosCustomizationString( urlKey, urlString );
+    if ( error == KErrNone && urlString.Size() > 0 )
+        {
+        aUrl = urlString;
+        aItemType = TVcxHgMyVideosCategoryItemTypeUrl;
+        }
+    else 
+        {
+        // If URL is not found try to fetch application UID.
+        error = iModel.GetMyVideosCustomizationInt( uidKey, uidInt );
+        if ( error == KErrNone && uidInt != 0 )
+            {
+            aUid = TUid::Uid( uidInt );
+            aItemType = TVcxHgMyVideosCategoryItemTypeUid;
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::CreateHgListIconL()
+// 
+// -----------------------------------------------------------------------------
+// 
+CGulIcon* CVcxHgMyVideosCategoryModelHandler::CreateHgListIconL(
+        const TFileName& aFileName,
+        TInt aBitmapId,
+        TInt aMaskId )
+    {
+    IPTVLOGSTRING4_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::CreateHgListIconL() bitmap=%d mask=%d file %S", aBitmapId, aMaskId, &aFileName );
+    
+    CFbsBitmap* bitmap( NULL );
+    CFbsBitmap* mask( NULL );
+    CGulIcon* icon( NULL );
+
+    // Create default icon for Hg list.
+    AknIconUtils::CreateIconLC(
+            bitmap,
+            mask,
+            aFileName, 
+            aBitmapId,
+            aMaskId );
+
+    TInt error( KErrNone );
+    error = AknIconUtils::SetSize(
+            bitmap, 
+            CHgDoubleGraphicList::PreferredImageSize(), 
+            EAspectRatioPreservedAndUnusedSpaceRemoved );
+    User::LeaveIfError( error );
+
+    error = AknIconUtils::SetSize(
+            mask, 
+            CHgDoubleGraphicList::PreferredImageSize(), 
+            EAspectRatioPreservedAndUnusedSpaceRemoved );
+    User::LeaveIfError( error );
+
+    // Ownership of bitmap and mask is transferred to icon.
+    icon = CGulIcon::NewL( bitmap, mask );
+    CleanupStack::Pop( 2, bitmap ); // mask and bitmap
+
+    IPTVLOGSTRING2_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::CreateHgListIconL() icon=0x%08x", icon );
+
+    return icon;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::CreateEmptyHgListIconL()
+// 
+// -----------------------------------------------------------------------------
+// 
+CGulIcon* CVcxHgMyVideosCategoryModelHandler::CreateEmptyHgListIconL()
+    {
+    IPTVLOGSTRING_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::CreateEmptyHgListIconL()" );
+    CGulIcon* icon( NULL );
+    CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
+
+    bitmap->Create( CHgDoubleGraphicList::PreferredImageSize(), ENone );
+    CleanupStack::PushL( bitmap );
+    icon = CGulIcon::NewL( bitmap );
+    CleanupStack::Pop( bitmap );
+
+    return icon;
+    }
--- a/videocollection/hgmyvideos/src/vcxhgmyvideoscollectionclient.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideoscollectionclient.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -105,7 +105,6 @@
 //
 CVcxHgMyVideosCollectionClient::~CVcxHgMyVideosCollectionClient()
     {
-    delete iLatestMpxMedia;
     delete iDownloadClient;
     if ( iCollectionUtility )
         {
@@ -383,81 +382,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CVcxHgMyVideosCollectionClient::SetAttributeL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosCollectionClient::SetAttributeL( const CMPXMedia& aMedia,
-                                                    const TMPXAttribute& aAttribute,
-                                                    const TUint32 aValue )
-    {
-    if ( ! HasPendingCommand() && ! iDownloadClient->HasPendingCommand() )
-        {
-        CMPXMedia* updatedMedia = CMPXMedia::NewL();
-        CleanupStack::PushL( updatedMedia );
-        CMPXCommand* cmd = CMPXCommand::NewL();
-        CleanupStack::PushL( cmd );
-
-        updatedMedia->SetTObjectValueL<TMPXItemId>( 
-            KMPXMediaGeneralId,
-            aMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
-        updatedMedia->SetTObjectValueL<TUint32>( aAttribute, aValue );
-
-        cmd->SetTObjectValueL( KMPXCommandGeneralId, KMPXCommandIdCollectionSet );
-        cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue );
-        cmd->SetCObjectValueL( KMPXCommandColSetMedia, updatedMedia );
-        cmd->SetTObjectValueL( KMPXCommandGeneralCollectionId,
-                               KVcxUidMyVideosMpxCollection );
-
-        iCollectionUtility->Collection().CommandL( *cmd );
-        
-        CleanupStack::PopAndDestroy( cmd );
-        CleanupStack::PopAndDestroy( updatedMedia );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosCollectionClient::SetAttributeL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosCollectionClient::SetAttributeL( const CMPXMedia& aMedia,
-                                                    const TMPXAttribute& aAttribute,
-                                                    const TReal32 aValue )
-    {
-    if ( ! HasPendingCommand() && ! iDownloadClient->HasPendingCommand() )
-        {
-        CMPXMedia* updatedMedia = CMPXMedia::NewL();
-        CleanupStack::PushL( updatedMedia );
-        CMPXCommand* cmd = CMPXCommand::NewL();
-        CleanupStack::PushL( cmd );
-
-        updatedMedia->SetTObjectValueL<TMPXItemId>( 
-            KMPXMediaGeneralId,
-            aMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
-        updatedMedia->SetTObjectValueL<TReal32>( aAttribute, aValue );
-
-        cmd->SetTObjectValueL( KMPXCommandGeneralId, KMPXCommandIdCollectionSet );
-        cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue );
-        cmd->SetCObjectValueL( KMPXCommandColSetMedia, updatedMedia );
-        cmd->SetTObjectValueL( KMPXCommandGeneralCollectionId,
-                               KVcxUidMyVideosMpxCollection );
-
-        iCollectionUtility->Collection().CommandL( *cmd );
-
-        CleanupStack::PopAndDestroy( cmd );
-        CleanupStack::PopAndDestroy( updatedMedia );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosCollectionClient::GetLatestFetchedMpxMediaL()
-// -----------------------------------------------------------------------------
-//
-CMPXMedia* CVcxHgMyVideosCollectionClient::GetLatestFetchedMpxMediaL()
-    {
-    return iLatestMpxMedia;
-    }
-
-// -----------------------------------------------------------------------------
 // CVcxHgMyVideosCollectionClient::FetchMpxMediaByMpxIdL()
 // -----------------------------------------------------------------------------
 //
@@ -606,6 +530,9 @@
                         case KVcxMessageMyVideosItemsAppended:
                             HandleMyVideosItemsAppendedL( aMessage, aError );
                             break;
+                        case KVcxMessageMyVideosListComplete:
+                            HandleMyVideosListCompleteL( aMessage, aError );
+                            break;
                         case KVcxMessageMyVideosDeleteStarted:
                         case KVcxMessageMyVideosDeleteResp:
                             HandleMyVideosDeleteMessageL( aMessage, aError );
@@ -717,7 +644,12 @@
 
                 if ( iCategoryModelObserver )
                     {
-                    iCategoryModelObserver->NewCategoryListL( categoryArray );
+                    TBool isPartial( EFalse );
+                    if ( aEntries.IsSupported( KVcxMediaMyVideosVideoListIsPartial ) )
+                        {
+                        isPartial = aEntries.ValueTObjectL<TBool>( KVcxMediaMyVideosVideoListIsPartial );
+                        }
+                    iCategoryModelObserver->NewCategoryListL( categoryArray, isPartial );
                     CleanupStack::Pop( categoryArray );
                     }
                 else
@@ -878,12 +810,6 @@
         {
         IPTVLOGSTRING_LOW_LEVEL( 
             "MPX My Videos UI # HandleMyVideosItemsChangedL() - MMC plugged/unplugged." );
-
-        // Show "Refreshing view" information note.
-        HBufC* text = StringLoader::LoadLC( R_VCXHGMYVIDEOS_REFRESHING );
-        CAknConfirmationNote* note = new (ELeave) CAknConfirmationNote();
-        note->ExecuteLD( *text );
-        CleanupStack::PopAndDestroy( text );
         
         if ( levels == KVcxMpxLevelCategories )
             {
@@ -894,7 +820,7 @@
         {
         if ( levels == KVcxMpxLevelCategories )
             {
-            if ( iCategoryModelObserver && eventlevel == KVcxHgEventLevelCategory )
+            if ( iCategoryModelObserver )
                 {
                 iCategoryModelObserver->CategoryModifiedL( eventType, eventData );
                 }        
@@ -1129,10 +1055,13 @@
                     // Ownership is transferred.
             	    iVideoModelObserver->VideoFetchingCompletedL( media );  
             	    }
-            
-                delete iLatestMpxMedia;
-                iLatestMpxMedia = NULL;
-                iLatestMpxMedia = CMPXMedia::NewL( *( ( *array )[0] ) );
+                
+                else if ( iCategoryModelObserver )
+                    {
+                    CMPXMedia* media = CMPXMedia::NewL( *( ( *array )[0] ) );
+                    // Ownership is transferred.
+                    iCategoryModelObserver->VideoFetchingCompletedL( media );  
+                    }
                 }
 			}
         CleanupStack::PopAndDestroy( entries );
@@ -1140,6 +1069,23 @@
     }
 
 // -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosCollectionClient::HandleMyVideosListCompleteL( CMPXMessage* /*aMessage*/,
+                                                                  TInt aError )
+    {
+    IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # HandleMyVideosListCompleteL()" );
+    if ( aError == KErrNone )
+        {
+        if ( iCategoryModelObserver )
+            {
+            iCategoryModelObserver->CategoryListFetchingCompletedL();
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CVcxHgMyVideosCollectionClient::HandleGetVideoDetailsRespL()
 // -----------------------------------------------------------------------------
 //
--- a/videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: TB92_33.1.1 %
+// Version : %version: e92_37 %
 
 // INCLUDE FILES
 #include <bldvariant.hrh>
@@ -25,6 +25,8 @@
 #include <coeaui.h>
 #include <aknnotewrappers.h>
 #include <hlplch.h>
+#include <apgcli.h>     // RApaLsSession
+#include <apacmdln.h>   // CApaCommandLine
 
 #include <AknsBasicBackgroundControlContext.h>
 #include <ganes/HgDoubleTextList.h>
@@ -49,6 +51,12 @@
 _LIT( KVcxHgMyVideosMainViewResFile, "\\resource\\apps\\vcxhgmyvideos." );
 
 const TUint32 KVcxHgMyVideosViewUid = 0x20021191;
+const TUid KMediaSettingsAppUid = { 0x10005A3F };
+const TUid KBrowserAppUid       = { 0x10008D39 };
+
+const TInt KVcxHgMyVideosUrlMaxLen = 1024;
+
+_LIT( KBrowserProtocol, "4 " );
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -146,8 +154,8 @@
         IPTVLOGSTRING_LOW_LEVEL( 
             "MPX My Videos UI # CVcxHgMyVideosMainView::CategoryListL: Creating category list." );
         // Create category list control.
-        CHgDoubleTextList* hgCategoryList = 
-            CHgDoubleTextList::NewL( ClientRect(), 0 );
+        CHgDoubleGraphicList* hgCategoryList = 
+            CHgDoubleGraphicList::NewL( ClientRect(), 0 );
         CleanupStack::PushL( hgCategoryList );
       
         // Create list implementations. 
@@ -361,7 +369,7 @@
             
             if ( highlight >= 0 )
                 {
-                ActivateVideoListL( highlight );
+                CategoryListL()->HandleOpenL( highlight );
                 }
             }
             break;
@@ -450,6 +458,12 @@
             VideoListL()->HandleMarkCommandL( aCommand );
             }
             break;
+        case EVcxHgMyVideosCmdOpenSettings:
+            {
+            // Open MediaSettings application
+            LaunchAppL( KMediaSettingsAppUid ); 
+            }
+            break;
         case EVcxHgMyVideosCmdHelp:
             {
             HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
@@ -756,7 +770,15 @@
         }    
     else
         {
-        rskToSet = R_VCXHGMYVIDEOS_RSK_BACK;
+        if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ||
+             iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryBusy )
+             {
+             rskToSet = R_VCXHGMYVIDEOS_RSK_EXIT;
+             }
+         else 
+             {     
+             rskToSet = R_VCXHGMYVIDEOS_RSK_BACK;
+             }
         }
 
     if ( rskToSet != iCurrentRskResource )
@@ -783,3 +805,81 @@
         VideoListL()->HandleMarkCommandL( EVcxHgMyVideosCmdStopMarking );
         }    
     }
+
+// ------------------------------------------------------------------------------
+// CVcxHgMyVideosMainView::LaunchAppL()
+// ------------------------------------------------------------------------------
+//
+void CVcxHgMyVideosMainView::LaunchAppL( const TUid aAppUid, const TDesC& aMsg )
+    {
+    RWsSession wsSession;
+    User::LeaveIfError( wsSession.Connect() );
+    CleanupClosePushL<RWsSession>( wsSession );
+    TApaTaskList taskList( wsSession );
+    TApaTask task = taskList.FindApp( aAppUid );
+    TInt msgLen = aMsg.Length();
+       
+    if ( task.Exists() )
+        {
+        if ( msgLen > 0 )
+            {
+            // Send message
+            HBufC8* param8 = HBufC8::NewLC( msgLen );
+            param8->Des().Append( aMsg );
+            task.SendMessage( TUid::Uid( 0 ), *param8 );
+            CleanupStack::PopAndDestroy( param8 );
+            }
+        else
+            {
+            task.BringToForeground();
+            }
+        }
+    else // Task didn't exist
+        {
+        RApaLsSession appArcSession;
+        User::LeaveIfError( appArcSession.Connect() );
+        CleanupClosePushL<RApaLsSession>( appArcSession );
+    
+        if ( msgLen > 0 )
+            {
+            TThreadId id;
+            appArcSession.StartDocument( aMsg, aAppUid , id ); 
+            }
+        else
+            {
+            TApaAppInfo appInfo;
+            TInt retVal = appArcSession.GetAppInfo( appInfo, aAppUid );
+            if ( retVal == KErrNone )
+                {
+                CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+                cmdLine->SetExecutableNameL( appInfo.iFullName );
+                cmdLine->SetCommandL( EApaCommandRun );
+                User::LeaveIfError( appArcSession.StartApp( *cmdLine ) );
+                CleanupStack::PopAndDestroy( cmdLine );
+                }
+            else
+                {
+                IPTVLOGSTRING_LOW_LEVEL( 
+                        "MPX My Videos UI # CVcxHgMyVideosMainView::LaunchAppL - Application not found!" );
+                }
+            }
+        CleanupStack::PopAndDestroy(); // appArcSession
+        }
+    CleanupStack::PopAndDestroy(); // wsSession
+    }
+
+// ------------------------------------------------------------------------------
+// CVcxHgMyVideosMainView::LaunchBrowserL()
+// ------------------------------------------------------------------------------
+//
+void CVcxHgMyVideosMainView::LaunchBrowserL( const TDesC& aUrl )
+    {
+    HBufC* param = HBufC::NewLC( KVcxHgMyVideosUrlMaxLen );
+    param->Des().Copy( KBrowserProtocol() );
+    param->Des().Append( aUrl );
+    
+    LaunchAppL( KBrowserAppUid, *param );
+    
+    CleanupStack::PopAndDestroy( param );
+    }
+
--- a/videocollection/hgmyvideos/src/vcxhgmyvideosmodel.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosmodel.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -22,16 +22,12 @@
 #include <AknUtils.h>
 #include <centralrepository.h>
 #include "IptvDebug.h"
-#include <MediatorEventProvider.h>
-#include "iptvlastwatcheddata.h"
-#include "iptvlastwatchedapi.h"
 #include "vcxhgmyvideosmodel.h"
 #include "vcxhgmyvideoscollectionclient.h"
 #include "vcxhgmyvideosdownloadclient.h"
-#include "vcxnsmediatorids.h"
 #include "thumbnaildata.h"
-
-_LIT( KTemporaryThumbPath, "C:\\Data\\videocenter\\ecg\\lastwatched.bmp" ); 
+#include "vcxhgmyvideoscenrepkeys.h"
+#include "vcxhgmyvideosthumbnailmanager.h"
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -42,7 +38,6 @@
 CVcxHgMyVideosModel::CVcxHgMyVideosModel()
   : iAppState( EVcxMyVideosAppStateUnknown ),
     iPreviousAppState( EVcxMyVideosAppStateUnknown ),
-    iTnRequestId( KErrNotFound ),
     iSortOrder( EVcxMyVideosSortingNone )
     {
     }
@@ -80,7 +75,8 @@
     {
     iCollection = CVcxHgMyVideosCollectionClient::NewL();
     iTouchSupport = AknLayoutUtils::PenEnabled();
-    iMediatorEventProvider = CMediatorEventProvider::NewL();
+    iTnManager = CVcxHgMyVideosThumbnailManager::NewL();
+    InitMyVideosCenRepL();
     }
 
 // -----------------------------------------------------------------------------
@@ -96,16 +92,8 @@
     delete iDriveMonitor;
     delete iCollection;
     delete iCollectionCenRep;
-    delete iLastWatchedApi;
-    delete iLastWatchedData;
-    delete iVideoPlayerCustomMessage;
-
-    if ( iTnManager && iTnRequestId != KErrNotFound )
-        {
-        iTnManager->CancelRequest( iTnRequestId );
-        }
+    delete iMyVideosCenRep;
     delete iTnManager;
-    delete iMediatorEventProvider;
     }
 
 // -----------------------------------------------------------------------------
@@ -143,7 +131,17 @@
     {
     if ( ! iFsSession.Handle() )
         {
-        User::LeaveIfError( iFsSession.Connect() );
+        TInt err = iFsSession.Connect();
+        if ( err == KErrNone )
+            {
+            // For sending handles to thumbnailmanager
+            err = iFsSession.ShareProtected();
+            }
+        if ( err != KErrNone )
+            {
+            iFsSession.Close();
+            User::Leave( err );
+            }
         }
 
     return iFsSession;
@@ -211,6 +209,20 @@
     }
 
 // -----------------------------------------------------------------------------
+// CVcxHgMyVideosModel::GetLastWatchedIdL()
+// -----------------------------------------------------------------------------
+//
+TInt CVcxHgMyVideosModel::GetLastWatchedIdL( TInt& aId )
+    {
+    if ( ! iCollectionCenRep )
+        {
+        iCollectionCenRep = CRepository::NewL( TUid::Uid( KVcxMyVideosCollectionCenrepUid ) );
+        }
+
+    return iCollectionCenRep->Get( KVcxMyVideosCollectionCenrepKeyLastWatchedMpxId, aId );
+    }
+
+// -----------------------------------------------------------------------------
 // CVcxHgMyVideosModel::VideolistSortOrderL()
 // -----------------------------------------------------------------------------
 //
@@ -275,222 +287,12 @@
     }
 
 // -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::SetVideoAsLastWatchedL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosModel::SetVideoAsLastWatchedL( TVideoPlayerCustomMessage& aVideoInfo, 
-                                                  TInt aMpxId1,
-                                                  TUint32 aAgeProfile )
-    {
-    if ( iTnRequestId != KErrNotFound )
-        {
-        ThumbnailManagerL()->CancelRequest( iTnRequestId );
-        iTnRequestId = KErrNotFound;
-        }
-
-    CopyVideoPlayerCustomMessageL( aVideoInfo, *VideoPlayerCustomMessageL() );
-    
-    // Store data from Video Player Custom message to 'Last Watched' item on 
-    // disk. Un-used (legacy) data fields are resetted to dummy values.
-    
-    LastWatchedDataL()->SetIconPathL( VideoPlayerCustomMessageL()->iIcon );
-    /*
-    LastWatchedDataL()->SetLastVideoPlayPoint( ViaPlayerCustomMessageL()->iStartPosition ); 
-    LastWatchedDataL()->SetMimeTypeL( ViaPlayerCustomMessageL()->iMimeType ); 
-    */
-    
-    LastWatchedDataL()->SetNameL( VideoPlayerCustomMessageL()->iName );
-    LastWatchedDataL()->SetUriL( VideoPlayerCustomMessageL()->iContent ); 
-    
-	// LastWatchedDataL()->SetContentType( ViaPlayerCustomMessageL()->iContentType );
-        
-    LastWatchedDataL()->SetMpxId( aMpxId1 );
-    LastWatchedDataL()->SetServiceId( KIdUndefined );
-    LastWatchedDataL()->SetContentId( KIdUndefined );
-    LastWatchedDataL()->SetContentIndex( -1 );    
-    LastWatchedDataL()->SetParentalControl( aAgeProfile );
-    LastWatchedDataL()->SetParametersL( KNullDesC8 );
-    LastWatchedDataL()->SetAppUid( TUid::Uid( 0 ) );
-    LastWatchedDataL()->SetViewUid( TUid::Uid( 0 ) );
-    LastWatchedDataL()->SetParameterId( TUid::Uid( 0 ) );
-    LastWatchedDataL()->SetLaunchType( CIptvLastWatchedData::EUndefined );
-    
-    // Start fetching or generating thumbnail for last watched video.
-    // The 'Last Watched' data is published only when thumb is available.
-    CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( 
-        VideoPlayerCustomMessageL()->iContent, 
-        KNullDesC ); 
-    iTnRequestId = ThumbnailManagerL()->GetThumbnailL( *source );
-    CleanupStack::PopAndDestroy( source );    
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::UpdateLastWatchedPlayPositionL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosModel::UpdateLastWatchedPlayPositionL( TUint32 aLastVideoPlayPoint )
-    {
-    if ( iTnRequestId != KErrNotFound )
-        {
-        LastWatchedDataL()->SetLastVideoPlayPoint( aLastVideoPlayPoint );
-        }
-    else
-        {
-        LastWatchedApiL()->UpdateLastVideoPlayPointL( aLastVideoPlayPoint );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::GetLastWatchedDataL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosModel::GetLastWatchedDataL( TVideoPlayerCustomMessage& aVideoInfo,
-                                               TUint32& /*aMpxId1 */,
-                                               TUint32& aAgeProfile )
-    {
-    LastWatchedApiL()->GetLastWatchedDataL( *LastWatchedDataL() );
-
-    aVideoInfo.iContent = LastWatchedDataL()->Uri();
-    aVideoInfo.iName = LastWatchedDataL()->Name();
-    aVideoInfo.iIcon = LastWatchedDataL()->IconPath();
-    
-    aAgeProfile = LastWatchedDataL()->ParentalControl();
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::ThumbnailPreviewReady()
-// From MThumbnailManagerObserver, not used in Video Center.
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosModel::ThumbnailPreviewReady( MThumbnailData& /*aThumbnail*/, 
-                                                 TThumbnailRequestId /*aId*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::ThumbnailReady()
-// From MThumbnailManagerObserver
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosModel::ThumbnailReady( TInt aError,
-                                          MThumbnailData& aThumbnail,
-                                          TThumbnailRequestId aId )
-    {
-    TRAP_IGNORE( HandleThumbnailReadyL( aError, aThumbnail, aId ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::HandleThumbnailReadyL()
+// CVcxHgMyVideosModel::ThumbnailManager()
 // -----------------------------------------------------------------------------
 //
-void CVcxHgMyVideosModel::HandleThumbnailReadyL( TInt aError,
-                                                 MThumbnailData& aThumbnail,
-                                                 TThumbnailRequestId aId )
-    {
-    IPTVLOGSTRING3_LOW_LEVEL(
-        "MPX My Videos UI # HandleThumbnailReadyL(error=%d, ID=%d)", aError, aId );
-
-    if ( aError == KErrNone && aId == iTnRequestId )
-        {
-        iTnRequestId = KErrNotFound;
-
-        // Save a copy of the bitmap to local file that Matrix Menu can access.
-        CFbsBitmap* bitmap = aThumbnail.Bitmap();
-        bitmap->Save( KTemporaryThumbPath );
-        LastWatchedDataL()->SetIconPathL( KTemporaryThumbPath );
-        VideoPlayerCustomMessageL()->iIcon = KTemporaryThumbPath;
-        }
-    else
-        {
-        iTnRequestId = KErrNotFound;
-        }
-
-    LastWatchedApiL()->SetLastWatchedDataL( *LastWatchedDataL() );
-    TPckg<TVideoPlayerCustomMessage> videoInfoPckg( *VideoPlayerCustomMessageL() );
-    iMediatorEventProvider->RaiseEvent( KVcxNsVideoCenterMediatorDomain,
-                                        KVcxNsPlayerGeneralCategory,
-                                        KVcxNsMediatorEventPlayerLastWatch,
-                                        TVersion( KVcxNsMediatorPlayerVersion, 0, 0 ),
-                                        videoInfoPckg );
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::ResetDownloadNotification()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosModel::ResetDownloadNotification()
-    {
-    iMediatorEventProvider->RaiseEvent( TUid::Uid( KVcxNsMpxMediatorDomain ),
-                                        TUid::Uid( KVcxNsMpxMediatorCategory ), 
-                                        KVcxNsMpxEventResetDownloadNotification,
-                                        TVersion( KVcxNsMpxEventVersion, 0, 0 ),
-                                        KNullDesC8() ); 
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::ThumbnailManagerL()
-// -----------------------------------------------------------------------------
-//
-CThumbnailManager* CVcxHgMyVideosModel::ThumbnailManagerL()
+CVcxHgMyVideosThumbnailManager& CVcxHgMyVideosModel::ThumbnailManager() const
     {
-    if ( ! iTnManager )
-        {
-        iTnManager = CThumbnailManager::NewL( *this );
-        iTnManager->SetThumbnailSizeL( EVideoListThumbnailSize );
-        iTnManager->SetDisplayModeL( EColor16M );
-        }
-    return iTnManager;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::CopyVideoPlayerCustomMessageL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosModel::CopyVideoPlayerCustomMessageL( TVideoPlayerCustomMessage& aSource,
-                                                         TVideoPlayerCustomMessage& aTarget )
-    {
-    aTarget.iContent = aSource.iContent;
-    aTarget.iName = aSource.iName;
-    aTarget.iIcon = aSource.iIcon;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::VideoPlayerCustomMessageL()
-// -----------------------------------------------------------------------------
-//
-TVideoPlayerCustomMessage* CVcxHgMyVideosModel::VideoPlayerCustomMessageL()
-    {
-    if ( ! iVideoPlayerCustomMessage ) 
-        {
-        iVideoPlayerCustomMessage = new (ELeave) TVideoPlayerCustomMessage;
-        }
-    return iVideoPlayerCustomMessage;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::LastWatchedApiL()
-// -----------------------------------------------------------------------------
-//
-CIptvLastWatchedApi* CVcxHgMyVideosModel::LastWatchedApiL()
-    {
-    if ( ! iLastWatchedApi )
-        {
-        iLastWatchedApi = CIptvLastWatchedApi::NewL();
-        }
-    return iLastWatchedApi;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosModel::LastWatchedDataL()
-// -----------------------------------------------------------------------------
-//
-CIptvLastWatchedData* CVcxHgMyVideosModel::LastWatchedDataL()
-    {
-    if ( ! iLastWatchedData )
-        {
-        iLastWatchedData = CIptvLastWatchedData::NewL();
-        }
-    return iLastWatchedData;
+    return *iTnManager;
     }
 
 // -----------------------------------------------------------------------------
@@ -502,3 +304,46 @@
     // We are not interested about the event, we are observing just to keep
     // iDriveMonitor.iAvailableDrives up to date. 
     }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosModel::GetMyVideosCustomizationIntL()
+// -----------------------------------------------------------------------------
+//
+TInt CVcxHgMyVideosModel::GetMyVideosCustomizationInt( const TInt& aKey, 
+                                                       TInt& aValue )
+    {
+    if ( iMyVideosCenRep )
+        {
+        return iMyVideosCenRep->Get( aKey, aValue );
+        }
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosModel::GetMyVideosCustomizationString()
+// -----------------------------------------------------------------------------
+//
+TInt CVcxHgMyVideosModel::GetMyVideosCustomizationString( const TInt& aKey, 
+                                                          TDes& aValue )
+    {
+    if ( iMyVideosCenRep )
+        {
+        return iMyVideosCenRep->Get( aKey, aValue );
+        }
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosModel::InitMyVideosCenRepL()
+// -----------------------------------------------------------------------------
+//
+TInt CVcxHgMyVideosModel::InitMyVideosCenRepL()
+    {
+    TInt retVal = KErrNone;
+    if ( !iMyVideosCenRep )
+        {
+        TRAPD( error, iMyVideosCenRep = CRepository::NewL( KMyVideosMainViewCenRepUid ) );
+        retVal = error;
+        }
+    return retVal;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosthumbnailmanager.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -0,0 +1,189 @@
+/*
+* 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 the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:      Class for sharing thumbnailmanager session
+*/
+
+
+// INCLUDE FILES
+#include <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
+#include "vcxhgmyvideosthumbnailmanager.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::NewL()
+// -----------------------------------------------------------------------------
+//
+CVcxHgMyVideosThumbnailManager* CVcxHgMyVideosThumbnailManager::NewL()
+    {
+    CVcxHgMyVideosThumbnailManager* self = 
+        CVcxHgMyVideosThumbnailManager::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::NewLC()
+// -----------------------------------------------------------------------------
+//
+CVcxHgMyVideosThumbnailManager* CVcxHgMyVideosThumbnailManager::NewLC()
+    {
+    CVcxHgMyVideosThumbnailManager* self = 
+        new (ELeave) CVcxHgMyVideosThumbnailManager();
+    CleanupStack::PushL( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::~CVcxHgMyVideosThumbnailManager()
+// -----------------------------------------------------------------------------
+//
+CVcxHgMyVideosThumbnailManager::~CVcxHgMyVideosThumbnailManager()
+    {
+    iTnObservers.Reset(); // The pointers are not own
+    delete iTnManager;
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::PeekL()
+// -----------------------------------------------------------------------------
+//
+TThumbnailRequestId CVcxHgMyVideosThumbnailManager::PeekL(
+    CThumbnailObjectSource& aSource )
+    {
+    CThumbnailManager& tnm = SessionL();
+
+    // Set 'do not create' if needed
+    if ( !( iCurrentFlags & CThumbnailManager::EDoNotCreate ) )
+        {
+        CThumbnailManager::TThumbnailFlags flags =
+            static_cast< CThumbnailManager::TThumbnailFlags >(
+                iCurrentFlags | CThumbnailManager::EDoNotCreate );
+        tnm.SetFlagsL( flags );
+        iCurrentFlags = flags;
+        }
+
+    return tnm.GetThumbnailL( aSource );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::GetL()
+// -----------------------------------------------------------------------------
+//
+TThumbnailRequestId CVcxHgMyVideosThumbnailManager::GetL(
+    CThumbnailObjectSource& aSource )
+    {
+    CThumbnailManager& tnm = SessionL();
+
+    // Remove 'do not create' if needed
+    if ( iCurrentFlags & CThumbnailManager::EDoNotCreate )
+        {
+        CThumbnailManager::TThumbnailFlags flags =
+            static_cast< CThumbnailManager::TThumbnailFlags >(
+                iCurrentFlags & (~CThumbnailManager::EDoNotCreate) );
+        tnm.SetFlagsL( flags );
+        iCurrentFlags = flags;
+        }
+
+    return tnm.GetThumbnailL( aSource );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::Cancel()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosThumbnailManager::Cancel( TThumbnailRequestId aRequestId )
+    {
+    if ( iTnManager )
+        {
+        iTnManager->CancelRequest( aRequestId );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::AddObserverL()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosThumbnailManager::AddObserverL(
+        MThumbnailManagerObserver& aObserver )
+    {
+    iTnObservers.InsertInAddressOrderL( &aObserver );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::RemoveObserver()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosThumbnailManager::RemoveObserver(
+        MThumbnailManagerObserver& aObserver )
+    {
+    TInt i = iTnObservers.FindInAddressOrder( &aObserver );
+    if ( i >= 0 && i < iTnObservers.Count() )
+        {
+        iTnObservers.Remove( i ); // Pointer is not own
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::ThumbnailPreviewReady()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosThumbnailManager::ThumbnailPreviewReady(
+        MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
+    {
+    // No implementation required.
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::ThumbnailReady()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosThumbnailManager::ThumbnailReady( TInt aError,
+        MThumbnailData& aThumbnail, TThumbnailRequestId aId )
+    {
+    TInt count = iTnObservers.Count();
+    for( TInt i = 0; i < count; ++i )
+        {
+        iTnObservers[i]->ThumbnailReady( aError, aThumbnail, aId );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::CVcxHgMyVideosThumbnailManager()
+// -----------------------------------------------------------------------------
+//
+CVcxHgMyVideosThumbnailManager::CVcxHgMyVideosThumbnailManager()
+    {
+    // No implementation required.
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosThumbnailManager::SessionL()
+// -----------------------------------------------------------------------------
+//
+CThumbnailManager& CVcxHgMyVideosThumbnailManager::SessionL()
+    {
+    if ( !iTnManager )
+        {
+        CThumbnailManager* tnm = CThumbnailManager::NewLC( *this );
+        tnm->SetThumbnailSizeL( EVideoListThumbnailSize );
+        tnm->SetDisplayModeL( EColor16M );
+        iCurrentFlags = tnm->Flags();
+        CleanupStack::Pop( tnm );
+        iTnManager = tnm;
+        }
+    return *iTnManager;
+    }
--- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideodataupdater.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideodataupdater.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -39,8 +39,11 @@
 #include "vcxhgmyvideosvideolist.h"
 #include "vcxhgmyvideosvideodataupdater.h"
 #include "vcxhgmyvideosindicatorhelper.h"
+#include "vcxhgmyvideosthumbnailmanager.h"
 
 const TInt KRefreshTimerInterval( 1000000 ); // 1 second
+const TInt KMaxThumbnailReqs( 2 ); // Max count of peek and get reqs combined
+const TInt KMaxThumbnailGetReqs( 1 ); // Max count of get reqs
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -103,6 +106,7 @@
 void CVcxHgMyVideosVideoDataUpdater::ConstructL()
     {
     iRefreshTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+    iModel.ThumbnailManager().AddObserverL( *this );
     }
 
 // -----------------------------------------------------------------------------
@@ -123,15 +127,10 @@
 //
 CVcxHgMyVideosVideoDataUpdater::~CVcxHgMyVideosVideoDataUpdater()
     {
-    if ( iRefreshTimer )
-	    {
-	    // Calling cancel without checking if the timer is active is safe.        
-        iRefreshTimer->Cancel();
-        delete iRefreshTimer;
-		}
-    
-    CancelAndDeleteFetchArray();
-    delete iTnEngine;
+    iModel.ThumbnailManager().RemoveObserver( *this );
+    Cancel();
+    delete iRefreshTimer; // Cancels active timer
+    iFetchArray.ResetAndDestroy();
     }
 
 // -----------------------------------------------------------------------------
@@ -159,6 +158,24 @@
     }
 
 // -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoDataUpdater::AddToRequestBufferL()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosVideoDataUpdater::AddToRequestBufferL( TMPXItemId aMPXItemId )
+    {
+    AddItemToFetchArrayL( aMPXItemId );
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoDataUpdater::FlushRequestBufferL()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosVideoDataUpdater::FlushRequestBufferL()
+    {
+    ContinueVideoDataFetchingL();
+    }
+
+// -----------------------------------------------------------------------------
 // CVcxHgMyVideosVideoDataUpdater::ReleaseData()
 // -----------------------------------------------------------------------------
 //
@@ -204,20 +221,12 @@
     {    
     if ( aIndex >= 0 && aIndex < iFetchArray.Count() )
         {
-        CVcxHgMyVideosVideoData::TVideoDataState state = iFetchArray[aIndex]->State();
-    
-        if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted )
+		CVcxHgMyVideosVideoData* item = iFetchArray[aIndex];
+        CVcxHgMyVideosVideoData::TVideoDataState state = item->State();
+        if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted ||
+             state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted )
             {
-            // Cancel thumbnail generation. Safe to ignore leave, as the ThumbnailManagerL 
-			// can only leave if iTnEngine is not created yet, so there cannot be 
-			// any outstanding requests either. 
-            TRAP_IGNORE( ThumbnailManagerL()->CancelRequest( 
-                    iFetchArray[aIndex]->ThumbnailConversionId() ) );
-            }
-        else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateDrmStarted )
-            {
-            // Cancel DRM checking.
-            Cancel();
+            iModel.ThumbnailManager().Cancel( item->ThumbnailConversionId() );
             }
         }
     }
@@ -228,9 +237,10 @@
 //
 void CVcxHgMyVideosVideoDataUpdater::CancelAndDeleteFetchArray()
     {    
-    for ( TInt i = 0; i < iFetchArray.Count(); i++ )
+    TInt count = iFetchArray.Count();
+    for ( TInt i = 0; i < count; i++ )
         {
-        RemoveItem( i );
+        CancelActivities( i );
         }
     iFetchArray.ResetAndDestroy();
     }
@@ -241,90 +251,66 @@
 //
 void CVcxHgMyVideosVideoDataUpdater::ContinueVideoDataFetchingL()
     {
-    if ( iFetchArray.Count() >= 1 && ! iPaused && iVideoArray.VideoCount() > 0 )
+    if ( !iPaused && iVideoArray.VideoCount() > 0 && iFetchArray.Count() > 0 )
         {
-        TBool go = EFalse;
-
-        // If first item is in idle state, we need to start new operation.
-        if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateNone )
-            {
-            // It's safe to ignore leave here, because in that case we just use the first index
-			// of fetch array.
-			TRAP_IGNORE( SelectNextIndexL() );
-            go = ETrue;
-            }   
-        // If thumbnail generation has finished, start DRM checking.
-        else if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished )
-            {
-            go = ETrue;
-            }
-        // If first item has completed all operations, remove it and start with second one.
-        else if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateDrmFinished )
+        TBool startRefreshTimer = EFalse;
+        TInt peekReqs = 0;
+        TInt getReqs = 0;
+        GetActiveRequestCount( peekReqs, getReqs );
+        TInt reqs = peekReqs + getReqs;
+        if ( reqs < KMaxThumbnailReqs )
             {
-            UpdateVideoDataToUiL( *( iFetchArray[0] ) );
-            RemoveItem( 0 );            
-			
-            if ( iFetchArray.Count() >= 1 )
+            CVcxHgMyVideosVideoData::TVideoDataState state =
+                        CVcxHgMyVideosVideoData::EVideoDataStateNone;
+            CVcxHgMyVideosVideoData* prevItem = NULL;
+            CVcxHgMyVideosVideoData* item = NULL;
+            do
                 {
-                TRAP_IGNORE( SelectNextIndexL() );
-                go = ETrue;
-                }
-            }
-
-        if ( go )
-            {
-            if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateNone )
-                {
-                CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( iFetchArray[0]->MPXItemId() );
-
-                if ( media && media->IsSupported( KMPXMediaGeneralUri ) )
+                TInt err = KErrNone;
+                prevItem = item;
+                SelectNextIndexL( getReqs >= KMaxThumbnailGetReqs );
+                item = iFetchArray[0];
+                state = item->State();
+                if ( state == CVcxHgMyVideosVideoData::EVideoDataStateNone )
                     {
-                    HBufC* mimeType = NULL;
-                    if ( media->IsSupported( KMPXMediaGeneralMimeType ) )
+                    // Try first a quick peek with thumbnail creation denied
+                    TRAP( err, StartThumbnailL( *item, ETrue ) );
+                    if( err == KErrNone )
                         {
-                        mimeType = media->ValueText( KMPXMediaGeneralMimeType ).AllocLC();
+                        ++reqs;
+                        startRefreshTimer = ETrue;
                         }
-                    else
+                    }
+                else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekFinished ) 
+                    {
+                    if ( getReqs < KMaxThumbnailGetReqs )
                         {
-                        mimeType = HBufC::NewLC( 1 );
+                        // Try then get with thumbnail creation allowed
+                        TRAP( err, StartThumbnailL( *item, EFalse ) );
+                        if ( err == KErrNone )
+                            {
+                            ++reqs;
+                            ++getReqs;
+                            startRefreshTimer = ETrue;
+                            }
                         }
-
-                    CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( 
-                        media->ValueText( KMPXMediaGeneralUri ), 
-                        *mimeType );
-                    iFetchArray[0]->SetThumbnailConversionId( 
-                        ThumbnailManagerL()->GetThumbnailL( *source ) );
-                    CleanupStack::PopAndDestroy( source );
-                    CleanupStack::PopAndDestroy( mimeType );
-
-                    IPTVLOGSTRING3_LOW_LEVEL( 
-                            "MPX My Videos UI # GetThumbnailL() called thumbID %d for %S.",
-                            iFetchArray[0]->ThumbnailConversionId(),
-                            &media->ValueText( KMPXMediaGeneralUri ) );
-
-                    iRefreshTimer->Cancel();
-                    iRefreshTimer->Start( KRefreshTimerInterval, 
-                                          KRefreshTimerInterval, 
-                                          TCallBack( RefreshTimerCallBack, this ) );
-                    
-                    iFetchArray[0]->SetState(
-                        CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted );
+                    }
+                else
+                    {
+                    break; // Nothing to be started
                     }
-                }
-            else if ( iFetchArray[0]->State() == 
-                      CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished )
-                {
-                if ( ! IsActive() )
+                if ( err != KErrNone )
                     {
-                    SetActive();
-                    iStatus = KRequestPending;
-                    TRequestStatus* stat = &iStatus;
-                    User::RequestComplete(stat, KErrNone);
-
-                    iFetchArray[0]->SetState(
-                        CVcxHgMyVideosVideoData::EVideoDataStateDrmStarted );
-                    }
+                    RemoveItem( 0 );
+                    }                
                 }
+            while ( iFetchArray.Count() > 0 && reqs < KMaxThumbnailReqs && prevItem != item );
+            }
+        if ( startRefreshTimer )
+            {
+            iRefreshTimer->Cancel();
+            iRefreshTimer->Start( KRefreshTimerInterval, KRefreshTimerInterval,
+                TCallBack( RefreshTimerCallBack, this ) );
             }
         }
     }
@@ -333,18 +319,18 @@
 // CVcxHgMyVideosVideoDataUpdater::UpdateVideoDataToUiL()
 // -----------------------------------------------------------------------------
 //
-void CVcxHgMyVideosVideoDataUpdater::UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& videoData )
+void CVcxHgMyVideosVideoDataUpdater::UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& aVideoData )
     {
-    TInt index = iVideoArray.IndexByMPXItemId( videoData.MPXItemId() );
+    TInt index = iVideoArray.IndexByMPXItemId( aVideoData.MPXItemId() );
     
     if ( index >= 0 && index < iScroller.ItemCount() )
         {       
-        TBool drmUpdate = videoData.DrmProtected();
+        TBool drmUpdate = aVideoData.DrmProtected();
         CHgItem& listItem = iScroller.ItemL( index );
                 
-        if ( videoData.Thumbnail() )
+        if ( aVideoData.Thumbnail() )
             {
-            CGulIcon* thumbnail = CGulIcon::NewL( videoData.Thumbnail( ETrue ) );
+            CGulIcon* thumbnail = CGulIcon::NewL( aVideoData.Thumbnail( ETrue ) );
             listItem.SetIcon( thumbnail ); 
             }
         
@@ -359,7 +345,7 @@
                 TInt indicator1( 0 );
                 TInt indicator2( 0 );
 
-                if ( videoData.ValidDrmRights() )
+                if ( aVideoData.ValidDrmRights() )
                     {
                     drmStatus = TVcxHgMyVideosIndicatorHelper::EIndicatorDrmStatusValid;
                     }
@@ -411,7 +397,8 @@
 //
 TInt CVcxHgMyVideosVideoDataUpdater::IndexByMPXItemId( TMPXItemId aMPXItemId )
     {   
-    for ( TInt i = 0; i < iFetchArray.Count(); i++ )
+    TInt count = iFetchArray.Count();
+    for ( TInt i = 0; i < count; i++ )
         {
         if ( iFetchArray[i]->MPXItemId() == aMPXItemId )
             {
@@ -425,7 +412,7 @@
 // CVcxHgMyVideosVideoDataUpdater::SelectNextIndexL()
 // -----------------------------------------------------------------------------
 // 
-void CVcxHgMyVideosVideoDataUpdater::SelectNextIndexL()
+void CVcxHgMyVideosVideoDataUpdater::SelectNextIndexL( TBool aSelectForPeekOnly )
     {   
     TInt firstIndexOnScreen = iScroller.FirstIndexOnScreen();
     
@@ -454,13 +441,28 @@
             {
             mpxItemId = iVideoArray.ArrayIndexToMpxItemIdL( i );
             index = IndexByMPXItemId( mpxItemId );
-        
-            if ( index > 0 )
+
+            if ( index >= 0 )
                 {
+                CVcxHgMyVideosVideoData* item = iFetchArray[index];
+                CVcxHgMyVideosVideoData::TVideoDataState state = item->State();
                 // Move selected index to first index of the fetch array. 
-                iFetchArray.Insert( iFetchArray[index], 0 );
-                iFetchArray.Remove( index + 1 );
-                break;
+                if ( aSelectForPeekOnly )
+                    {
+                    if ( state == CVcxHgMyVideosVideoData::EVideoDataStateNone )
+                        {
+                        iFetchArray.InsertL( item, 0 );
+                        iFetchArray.Remove( index + 1 );
+                        break;
+                        }
+                    }
+                else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateNone ||
+                          state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekFinished )
+                    {
+                    iFetchArray.InsertL( item, 0 );
+                    iFetchArray.Remove( index + 1 );
+                    break;
+                    }
                 }
             }
         }
@@ -539,25 +541,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoDataUpdater::ThumbnailManagerL()
-// -----------------------------------------------------------------------------
-//
-CThumbnailManager* CVcxHgMyVideosVideoDataUpdater::ThumbnailManagerL()
-    {
-    if ( !iTnEngine )
-        {
-        IPTVLOGSTRING_LOW_LEVEL( 
-            "MPX My Videos UI # CVcxHgMyVideosVideoDataUpdater::ThumbnailManagerL: Creating thumbnail manager." );
-        
-        iTnEngine = CThumbnailManager::NewL( *this );
-        iTnEngine->SetThumbnailSizeL( EVideoListThumbnailSize );
-        iTnEngine->SetDisplayModeL( EColor16M );
-        }
-    
-    return iTnEngine;
-    }
-
-// -----------------------------------------------------------------------------
 // CVcxHgMyVideosVideoDataUpdater::ThumbnailPreviewReady()
 // From MThumbnailManagerObserver, not used in Video Center.
 // -----------------------------------------------------------------------------
@@ -579,23 +562,51 @@
     IPTVLOGSTRING3_LOW_LEVEL( 
         "MPX My Videos UI # ThumbnailReady(error=%d, thumbID=%d)", aError, aId );
 
-    if ( iFetchArray.Count() > 0 )
+    TInt count = iFetchArray.Count();
+    for( TInt i = 0; i < count; ++i )
         {
-        if ( aError == KErrNone 
-             && aId == iFetchArray[0]->ThumbnailConversionId() )
+        CVcxHgMyVideosVideoData* item = iFetchArray[i];
+        if ( aId == item->ThumbnailConversionId() )
             {
-            // Never delete this, ownership gone to Ganes list
-            iFetchArray[0]->SetThumbnail( aThumbnail.DetachBitmap() );
+            if ( aError == KErrNone ||
+			     aError == KErrCompletion || // Accept blacklisted
+                 item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted )
+                {
+                // Never delete this, ownership gone to Ganes list
+                item->SetThumbnail( aError == KErrNone ? aThumbnail.DetachBitmap() : NULL );
+                item->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished );
+                }
+            else if ( aError == KErrNotFound &&
+            	item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted )
+                {
+                // Try getting thumbnail with create allowed when peek failed with not found
+                item->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekFinished );
+                }
+            else
+                {
+                // Stop thumbnail peek attemps
+                item->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished );
+                }
+
+			// Start DRM check if thumb finished
+            if ( item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished && 
+			     !IsActive() )
+                {
+                SetActive();
+                TRequestStatus* stat = &iStatus;
+                User::RequestComplete( stat, KErrNone );
+                }
+
+            TRAPD( err, ContinueVideoDataFetchingL() );
+            if ( err != KErrNone )
+                {
+                IPTVLOGSTRING2_LOW_LEVEL(
+                "MPX My Videos UI # CVcxHgMyVideosVideoDataUpdater::ThumbnailReady, err = %d",
+                err );
+                }
+            break;
             }
-        else
-            {
-            iFetchArray[0]->SetThumbnail( NULL );
-            }
-
-        iFetchArray[0]->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished );
         }
-
-    TRAP_IGNORE( ContinueVideoDataFetchingL() );
     }
 
 // -----------------------------------------------------------------------------
@@ -605,57 +616,29 @@
 //
 void CVcxHgMyVideosVideoDataUpdater::RunL()
     {
-    if ( iFetchArray.Count() > 0 )
+    if ( !iPaused )
         {
-        CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( iFetchArray[0]->MPXItemId() );
-        
-        if ( media )
+        TInt i = 0;
+        while( i < iFetchArray.Count() )
             {
-            if ( media->IsSupported( KMPXMediaGeneralUri ) )
+            CVcxHgMyVideosVideoData* item = iFetchArray[i];
+            if ( item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished )
                 {
-                TUint32 flags = 0;
-                if ( media->IsSupported( KMPXMediaGeneralFlags ) )
-                    {
-                    flags = media->ValueTObjectL<TUint32>( KMPXMediaGeneralFlags );
-                    }
-
-                if ( flags & EVcxMyVideosVideoDrmProtected )
+                TRAP_IGNORE(
                     {
-                    ContentAccess::CData* cData = NULL;
-
-                    iFetchArray[0]->SetDrmProtected( ETrue );
-                    iFetchArray[0]->SetValidDrmRights( EFalse );
-
-                    TRAPD( trapError,
-                           cData = CData::NewL( 
-                                       (TVirtualPathPtr) media->ValueText( KMPXMediaGeneralUri ),
-                                       EPeek,
-                                       EContentShareReadWrite ) );                    
-
-                    if ( cData )
-                        {
-                        if ( trapError == KErrNone )
-                            {
-                            TInt intentResult = cData->EvaluateIntent( ContentAccess::EPlay );
-
-                            // Not valid rights should return KErrCANoRights, KErrCANoPermission,
-                            // or in rare cases KErrCAPendingRights. But we don't trust those and
-                            // just compare against KErrNone.
-                            if ( intentResult == KErrNone )
-                                {
-                                iFetchArray[0]->SetValidDrmRights( ETrue );
-                                }
-                            }
-                        delete cData;
-                        }
-                    }
+                    CheckDrmL( *item );
+                    UpdateVideoDataToUiL( *item );
+                    } );
+                delete iFetchArray[i];
+                iFetchArray.Remove(i);
+                }
+            else
+                {
+                ++i;
                 }
             }
-
-        iFetchArray[0]->SetState( CVcxHgMyVideosVideoData::EVideoDataStateDrmFinished );
+        ContinueVideoDataFetchingL();
         }
-
-    ContinueVideoDataFetchingL();
     }
 
 // -----------------------------------------------------------------------------
@@ -669,8 +652,6 @@
     
     if ( aError != KErrNone )
         {
-        // Remove current item from fetch array
-        RemoveItem( 0 );            
         }
     return KErrNone;
     }
@@ -683,3 +664,115 @@
 void CVcxHgMyVideosVideoDataUpdater::DoCancel()
     {
     }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoDataUpdater::CheckDrmL()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosVideoDataUpdater::CheckDrmL( CVcxHgMyVideosVideoData& aVideoData )
+    {
+    CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( aVideoData.MPXItemId() );
+    if ( media && media->IsSupported( KMPXMediaGeneralUri ) )
+        {
+        TUint32 flags = 0;
+        if ( media->IsSupported( KMPXMediaGeneralFlags ) )
+            {
+            flags = media->ValueTObjectL<TUint32>( KMPXMediaGeneralFlags );
+            }
+        if ( flags & EVcxMyVideosVideoDrmProtected )
+            {
+            aVideoData.SetDrmProtected( ETrue );
+            aVideoData.SetValidDrmRights( EFalse );
+
+            ContentAccess::CData* cData = CData::NewLC( 
+                               (TVirtualPathPtr) media->ValueText( KMPXMediaGeneralUri ),
+                               EPeek,
+                               EContentShareReadWrite );
+            TInt intentResult = cData->EvaluateIntent( ContentAccess::EPlay );
+
+            // Not valid rights should return KErrCANoRights, KErrCANoPermission,
+            // or in rare cases KErrCAPendingRights. But we don't trust those and
+            // just compare against KErrNone.
+            if ( intentResult == KErrNone )
+                {
+                aVideoData.SetValidDrmRights( ETrue );
+                }
+            CleanupStack::PopAndDestroy( cData );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoDataUpdater::GetActiveRequestCount()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosVideoDataUpdater::GetActiveRequestCount(
+        TInt& aPeekRequests, TInt& aGetRequests )
+    {
+    aPeekRequests = 0;
+    aGetRequests = 0;
+    TInt count = iFetchArray.Count();
+    for( TInt i = 0; i < count; ++i )
+        {
+        CVcxHgMyVideosVideoData::TVideoDataState state = iFetchArray[i]->State();
+        if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted )
+            {
+            ++aPeekRequests;
+            }
+        else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted )
+            {
+            ++aGetRequests;
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoDataUpdater::StartThumbnailL()
+// -----------------------------------------------------------------------------
+//
+void CVcxHgMyVideosVideoDataUpdater::StartThumbnailL(
+        CVcxHgMyVideosVideoData& aItem, TBool aPeek )
+    {
+    CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( aItem.MPXItemId() );
+    if ( media && media->IsSupported( KMPXMediaGeneralUri ) )
+        {
+        TPtrC uri = media->ValueText( KMPXMediaGeneralUri ); 
+        TPtrC mime = media->IsSupported( KMPXMediaGeneralMimeType ) ? 
+                        media->ValueText( KMPXMediaGeneralMimeType ) : KNullDesC;
+        TThumbnailRequestId id = 0;
+        if ( aPeek )
+            {
+            CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(
+                    uri, mime );
+            id = iModel.ThumbnailManager().PeekL( *source );
+            CleanupStack::PopAndDestroy( source );
+            }
+        else
+            {
+            // Use shared file handle to minimize thumbnailserver overhead 
+            RFs& fs = iModel.FileServerSessionL();
+            RFile64 file;
+            User::LeaveIfError( file.Open( fs, uri, EFileShareReadersOrWriters ));
+            CleanupClosePushL( file );
+            CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(
+                    file, mime );
+            id = iModel.ThumbnailManager().GetL( *source );
+            CleanupStack::PopAndDestroy( source ); 
+            CleanupStack::PopAndDestroy( &file );
+            }
+        aItem.SetThumbnailConversionId( id );
+
+        IPTVLOGSTRING3_LOW_LEVEL( 
+                "MPX My Videos UI # GetThumbnailL() called thumbID %d for %S.",
+                aItem.ThumbnailConversionId(),
+                &media->ValueText( KMPXMediaGeneralUri ) );
+
+        aItem.SetState( aPeek ?
+                CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted :
+                CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted );
+        }
+    else
+        {
+        User::Leave( KErrNotFound );
+        }
+    }
--- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideodetailsdialog.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideodetailsdialog.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -31,8 +31,6 @@
 #include <filedetailspluginif.h>
 
 
-const TInt KThousandNotKilobyte = 1000;
-
 // ============================ MEMBER FUNCTIONS =============================
 
 // ---------------------------------------------------------------------------
--- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideolistimpl.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideolistimpl.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -56,7 +56,6 @@
 #include "vcxhgmyvideosvideocopier.h"
 #include "vcxhgmyvideospanics.h"
 #include "vcxhgmyvideosupnpinterface.h"
-#include "vcxhgtelephonyclient.h"
 #ifdef RD_VIDEO_AS_RINGING_TONE
 #include "vcxhgmyvideosaiwmenuhandler.h"
 #endif
@@ -104,9 +103,7 @@
         CVcxHgMyVideosModel& aModel,
         CVcxHgMyVideosMainView& aView,
         CHgScroller& aScroller )
-  : CVcxHgMyVideosListBase( aModel, aView, aScroller ),
-    iCurrentlyPlayedVideo( KErrNotFound ),
-    iMultipleMarkingActive( EFalse )
+  : CVcxHgMyVideosListBase( aModel, aView, aScroller )
 #ifdef RD_VIDEO_AS_RINGING_TONE
     , iAiwMenuHandler( NULL )
 #endif
@@ -182,8 +179,6 @@
 CVcxHgMyVideosVideoListImpl::~CVcxHgMyVideosVideoListImpl()
     {
     CloseDeleteWaitNote();
-    delete iTelephonyClient;
-    delete iCenRep;
     delete iUPnP;
     delete iVideoCopier;
     delete iVideoModel;
@@ -469,33 +464,11 @@
     // Need to handle multiply selected videos
     for ( TInt i = operationTargets.Count() - 1; i >= 0; i-- )
         {
-        CheckParentalControlL( iVideoModel->VideoAgeProfileL( operationTargets[i] ) );
+        if( !iUPnP->IsStarted() )
+            {
+            iVideoModel->PlayVideoL( operationTargets[i] );
 
-        if( !iUPnP->IsStarted() )
-            {    
-            TVideoPlayerCustomMessage* videoInfo = new (ELeave) TVideoPlayerCustomMessage;
-            CleanupStack::PushL( videoInfo );
-            TInt mpxId1( 0 );
-                       
-            if ( iVideoModel->GetVideoPlayerCustomMessage( operationTargets[i], *videoInfo, mpxId1 )
-                 == KErrNone )
-                {
-                iCurrentlyPlayedVideo = operationTargets[i];
-       
-                iVideoModel->PlayVideoL( operationTargets[i] );
-
-                iModel.SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStatePlayer );
-                iModel.SetVideoAsLastWatchedL( *videoInfo, mpxId1,
-                   iVideoModel->VideoAgeProfileL( iCurrentlyPlayedVideo ) );
-                
-                //Sometimes MDS has database locked and this fails, we still want to start the playback -> trap ignore
-                TRAP_IGNORE( iVideoModel->ClearNewVideoIndicatorL( iCurrentlyPlayedVideo ) );
-                }
-            else
-                {
-                // Error notes?
-                }
-            CleanupStack::PopAndDestroy( videoInfo );
+            iModel.SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStatePlayer );
             }
         else // UPnP started
             {
@@ -594,8 +567,9 @@
     TInt highlight = Highlight();
 
     // Set menu visibility information.
-    showStartMarking = !iMultipleMarkingActive;
-    showEndMarking = iMultipleMarkingActive;
+    TBool markingMode( IsMarking() );
+    showStartMarking = !markingMode;
+    showEndMarking = markingMode;
     aShowMarkAll = ( ( count > 0 ) && ( markedVideos.Count() < count ) );
     aShowUnmarkAll = ( ( count > 0 ) && ( markedVideos.Count() > 0 ) );
     aShowMarkSubmenu = ( showStartMarking || showEndMarking || aShowMarkAll || aShowUnmarkAll );
@@ -620,6 +594,7 @@
             }
         case EVcxHgMyVideosCmdStopMarking:
             {
+            iVideoModel->HandleMarkCommandL( EVcxHgMyVideosCmdUnmarkAll );
             EndMarkingMode();
             break;
             }
@@ -877,6 +852,9 @@
             // Dont show "Sort by" if list is empty.
             aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdSortSubMenu, ETrue );
             }
+        
+        // Hide "Settings" menu item
+        aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdOpenSettings, ETrue );
         }
 #ifdef RD_VIDEO_AS_RINGING_TONE
     else if ( aResourceId == R_VCXHGMYVIDEOS_USE_AS_SUBMENU )
@@ -981,53 +959,18 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoListImpl::CheckParentalControlL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosVideoListImpl::CheckParentalControlL( TUint32 aAgeProfile )
-    {
-    TInt parentControlSetting( KVcxMyvideosCenRepParentControlKeyDefault );
-    TInt error( KErrNone );
-    if ( !iCenRep )
-        {
-        TRAP( error, iCenRep = CRepository::NewL( TUid::Uid( KVcxMyVideosCenRepUid ) ) )
-        }
-    if ( error == KErrNone )
-        {
-        error = iCenRep->Get( KVcxMyvideosCenRepParentControlKey, parentControlSetting );
-        if ( error == KErrNone && parentControlSetting != KVcxMyvideosCenRepParentControlKeyOff )
-            {
-            // Parental control has been set
-            if ( static_cast<TInt>( aAgeProfile ) >= parentControlSetting )
-                {
-                // Must ask lock code to allow playing
-                if ( !iTelephonyClient )
-                    {
-                    iTelephonyClient = new( ELeave ) CVcxHgTelephonyClient();
-                    }
-                if ( !iTelephonyClient->CheckLockCodeL() )
-                    {
-                    User::Leave( KErrPermissionDenied );
-                    }
-                }
-            }
-        }
-    }
-
 // ---------------------------------------------------------------------------
 // CVcxHgMyVideosVideoListImpl::StartMarkingMode()
 // ---------------------------------------------------------------------------
 //  
 void CVcxHgMyVideosVideoListImpl::StartMarkingMode()
     {
-    IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::StartMarkingMode() iMultipleMarkingActive = %d", iMultipleMarkingActive );
+    IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::StartMarkingMode() IsMarking = %d", IsMarking() );
     
     // Start multiple marking mode
     if ( iModel.TouchSupport() )
         {
         iScroller->SetFlags( CHgScroller::EHgScrollerSelectionMode );
-        iMultipleMarkingActive = ETrue;
         }
     }
 
@@ -1037,11 +980,10 @@
 //  
 void CVcxHgMyVideosVideoListImpl::EndMarkingMode()
     {
-    IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::EndMarkingMode() iMultipleMarkingActive = %d", iMultipleMarkingActive );
+    IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::EndMarkingMode() IsMarking = %d", IsMarking() );
 
     // End multiple marking mode
     iScroller->ClearFlags( CHgScroller::EHgScrollerSelectionMode );
-    iMultipleMarkingActive = EFalse;
     }
 
 // ---------------------------------------------------------------------------
--- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -49,9 +49,6 @@
 #include "vcxhgmyvideosvideolist.h"
 #include "vcxhgmyvideospanics.h"
 
-
-#include <videoplayercustommessage.h>
-
 // CONSTANTS
 const TUint KVcxSecondsInMinute( 60 );
 const TUint KVcxSecondsInHour( 3600 );
@@ -254,8 +251,7 @@
         
         TInt highlight = iScroller.SelectedIndex();
         
-        iScroller.Reset();
-        iScroller.ResizeL( iVideoArray->VideoCount() );
+        ResetScrollerBufferAndItemsL();
         
         iScroller.SetSelectedIndex( highlight );
         
@@ -379,64 +375,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage()
-// -----------------------------------------------------------------------------
-//
-TInt CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage(
-        TInt aIndex, TVideoPlayerCustomMessage& aVideoInfo, TInt& aMpxId1 )
-    {
-    CMPXMedia* media = iVideoArray->MPXMedia( aIndex );
-
-    if ( ( ! media ) || ( ! media->IsSupported( KMPXMediaGeneralId ) ) )
-        {
-        return KErrNotFound;
-        }
-    
-    TMPXItemId mpxItemId = media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
-    
-    if ( GetVideoPlayerCustomMessage( mpxItemId, aVideoInfo ) != KErrNone )
-        {
-        return KErrNotFound;
-        }
-		
-    aMpxId1 = ( media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) ).iId1;
-
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage()
-// -----------------------------------------------------------------------------
-//
-TInt CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage(
-        TMPXItemId& aMpxItemId, TVideoPlayerCustomMessage& aVideoInfo )
-    {
-    CMPXMedia* media = iVideoArray->MPXMediaByMPXItemId( aMpxItemId );
-
-    if ( ! media )
-        {
-        return KErrNotFound;
-        }
-
-    if ( media->IsSupported( KMPXMediaGeneralUri ) )
-        {
-        aVideoInfo.iContent = media->ValueText( KMPXMediaGeneralUri );
-        }
-
-    if ( media->IsSupported( KMPXMediaGeneralTitle ) )
-        {
-        aVideoInfo.iName = media->ValueText( KMPXMediaGeneralTitle );
-        }
-
-    if ( media->IsSupported( KMPXMediaGeneralThumbnail1 ) )
-        {
-        aVideoInfo.iIcon = media->ValueText( KMPXMediaGeneralThumbnail1 );
-        }
-
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
 // CVcxHgMyVideosVideoModelHandler::VideoAgeProfileL()
 // -----------------------------------------------------------------------------
 //
@@ -495,70 +433,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL()
-// Informative call about video being played. Method removes possible new indicator
-// from video.
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL( TInt aIndex )
-    {
-    CMPXMedia* media = iVideoArray->MPXMedia( aIndex );
-
-    if ( media )
-        {
-        if ( media->IsSupported( KMPXMediaGeneralFlags ) &&
-             media->IsSupported( KMPXMediaGeneralId ) )
-            {
-            TUint32 flags = media->ValueTObjectL<TUint32>( KMPXMediaGeneralFlags );
-            if ( flags & EVcxMyVideosVideoNew )
-                {
-                flags &= ~EVcxMyVideosVideoNew;
-                CVcxHgMyVideosCollectionClient& collectionClient = iModel.CollectionClient();
-                collectionClient.SetAttributeL( *media, KMPXMediaGeneralFlags, flags );
-                
-                if ( media->IsSupported( KVcxMediaMyVideosOrigin ) && 
-                     ( media->ValueTObjectL<TUint8>( KVcxMediaMyVideosOrigin ) == EVcxMyVideosOriginDownloaded ) )
-                    {
-                    iModel.ResetDownloadNotification();
-                    }
-                }
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL()
-// Informative call about video being played. Method removes possible new indicator
-// from video.
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL( TMPXItemId& aMpxItemId )
-    {
-    CMPXMedia* media = iVideoArray->MPXMediaByMPXItemId( aMpxItemId );
-
-    if ( media )
-        {
-        if ( media->IsSupported( KMPXMediaGeneralFlags ) &&
-             media->IsSupported( KMPXMediaGeneralId ) )
-            {
-            TUint32 flags = media->ValueTObjectL<TUint32>( KMPXMediaGeneralFlags );
-            if ( flags & EVcxMyVideosVideoNew )
-                {
-                flags &= ~EVcxMyVideosVideoNew;
-                CVcxHgMyVideosCollectionClient& collectionClient = iModel.CollectionClient();
-                collectionClient.SetAttributeL( *media, KMPXMediaGeneralFlags, flags );
-                
-                if ( media->IsSupported( KVcxMediaMyVideosOrigin ) && 
-                     ( media->ValueTObjectL<TUint8>( KVcxMediaMyVideosOrigin ) == EVcxMyVideosOriginDownloaded ) )
-                    {
-                    iModel.ResetDownloadNotification();
-                    }
-                }
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // CVcxHgMyVideosVideoModelHandler::ShowVideoDetailsDialogL()
 // -----------------------------------------------------------------------------
 //
@@ -583,89 +457,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoModelHandler::LastPlaybackPosition()
-// -----------------------------------------------------------------------------
-//
-TInt CVcxHgMyVideosVideoModelHandler::LastPlaybackPosition( const TDesC& aContentUri )
-    {
-    TInt position = 0;
-    
-    if ( CIptvUtil::LastPlaybackPositionFeatureSupported() )
-        {
-        CMPXMedia* media = iVideoArray->MPXMediaByUri( aContentUri );
-
-        if ( media )
-            {
-            if ( media->IsSupported( KMPXMediaGeneralLastPlaybackPosition ) )
-                {
-                position = *media->Value<TInt>( KMPXMediaGeneralLastPlaybackPosition );            
-                }
-            }
-        IPTVLOGSTRING3_LOW_LEVEL( "MPX My Videos UI # Found position %d for clip %S", 
-                                  position, &aContentUri );
-        }
-    else
-        {
-        IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # LastPlaybackPosition() - Feature is not supported, position = 0" );
-        }		
-
-    return position;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxHgMyVideosVideoModelHandler::SetLastPlaybackPositionL()
-// -----------------------------------------------------------------------------
-//
-void CVcxHgMyVideosVideoModelHandler::SetLastPlaybackPositionL( const TDesC& aContentUri,
-                                                                TInt aPosition )
-    {
-    if ( CIptvUtil::LastPlaybackPositionFeatureSupported() )
-        {
-        CMPXMedia* media = iVideoArray->MPXMediaByUri( aContentUri );
-
-        // If media is not in our own list, it was launched from external source. In this
-        // case the MPX Media object could be fetched on background to allow position storing.
-        if ( ! media )
-            {
-            media = iModel.CollectionClient().GetLatestFetchedMpxMediaL();
-
-            if ( media )
-                {
-                TBool match( EFalse );            
-                if ( media->IsSupported( KMPXMediaGeneralUri ) )
-                    {
-                    if ( aContentUri.CompareF( media->ValueText( KMPXMediaGeneralUri ) ) == 0 )
-                        {
-                        match = ETrue;
-                        }
-                    }
-                if ( ! match )
-                    {
-                    media = NULL;
-                    }
-                }
-            }
-
-        if ( media )
-            {
-            IPTVLOGSTRING3_LOW_LEVEL( "MPX My Videos UI # Storing position %d for clip %S", 
-                                      aPosition, &aContentUri );
-
-            // Change data type of last playback position?
-
-            iModel.CollectionClient().SetAttributeL( *media, 
-                                                     KMPXMediaGeneralLastPlaybackPosition, 
-                                                     TUint32( aPosition ) );
-            }
-        iModel.UpdateLastWatchedPlayPositionL( aPosition );    
-        }
-    else
-	    {
-        IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # SetLastPlaybackPositionL() - Feature is not supported" ); 
-        }    
-    }
-
-// -----------------------------------------------------------------------------
 // CVcxHgMyVideosVideoModelHandler::GetVideoName()
 // -----------------------------------------------------------------------------
 //
@@ -882,11 +673,17 @@
     
     IPTVLOGSTRING3_LOW_LEVEL(
         "MPX My Videos UI # CVcxHgMyVideosVideoModelHandler::HandleRequestL - aRequestStart: %d, aRequestEnd: %d", requestStart, requestEnd );
-        
+
+    TBool flushNeeded = EFalse;
     for ( TInt i = requestStart; i <= requestEnd; i++ )
         {
         UpdateVideoListItemL( i );
-        iDataUpdater->RequestDataL( iVideoArray->ArrayIndexToMpxItemIdL( i ) );
+        iDataUpdater->AddToRequestBufferL( iVideoArray->ArrayIndexToMpxItemIdL( i ) );
+        flushNeeded = ETrue;
+        }
+    if ( flushNeeded )
+        {
+        iDataUpdater->FlushRequestBufferL();
         }
 
     iScroller.DrawDeferred();
@@ -1373,7 +1170,7 @@
             }
         else
 	        {
-            iScroller.ResizeL( videoCount );
+            ResizeScrollerL( iVideoArray->VideoCount() );
             }
             		
         TInt highlight( KErrNotFound );
@@ -1611,3 +1408,50 @@
         iScroller.SetScrollBarTypeL( CHgScroller::EHgScrollerScrollBar );
         }
     }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::ResetScrollerItemsL()
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosVideoModelHandler::ResetScrollerItemsL()
+    {
+    // Reset items for refetch
+    TInt count = iScroller.ItemCount();
+    for ( TInt i = 0; i < count; ++i )
+        {
+        iScroller.ItemL( i ).SetIcon( NULL );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::ResetScrollerBufferAndItemsL()
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosVideoModelHandler::ResetScrollerBufferAndItemsL()
+    {
+    // Reset scroll buffer and items for refetch
+    iScroller.DisableScrollBuffer();
+    iScroller.EnableScrollBufferL( *this, KHgBufferSize, KHgBufferTreshold );
+    ResetScrollerItemsL();
+    }
+
+// -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::ResizeScrollerL()
+// -----------------------------------------------------------------------------
+// 
+void CVcxHgMyVideosVideoModelHandler::ResizeScrollerL( TInt aNewItemCount )
+    {
+    if (iScroller.ItemCount() > 0)
+        {
+        // Reset scroller without time consuming scaling of icons never shown
+        iScroller.DisableScrollBuffer();
+        iScroller.ResizeL( aNewItemCount );
+        iScroller.EnableScrollBufferL( *this, KHgBufferSize, KHgBufferTreshold );
+        ResetScrollerItemsL();
+        }
+    else
+        {
+        // CHgScroller::Reset() was already called, no need to reset tricks
+        iScroller.ResizeL( aNewItemCount );
+        }
+    }
--- a/videocollection/hgmyvideos/tsrc/ut_vcxhgmyvideosmainview/conf/ui_VcxHgMyVideosMainViewTest.cfg	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideos/tsrc/ut_vcxhgmyvideosmainview/conf/ui_VcxHgMyVideosMainViewTest.cfg	Fri Mar 12 15:43:00 2010 +0200
@@ -10,11 +10,12 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
+* 
+* Description:  This file contains test configuration
 *
-* Description:     Test case file.
-* 
 */
 
+
 // 
 // test blocks:
 // 
--- a/videocollection/hgmyvideosplugin/group/vcxhgmyvideosplugin.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/hgmyvideosplugin/group/vcxhgmyvideosplugin.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 8 %
+// Version : %version: 9 %
 
 #include <data_caging_paths.hrh>
 #include <bldvariant.hrh>
@@ -41,8 +41,6 @@
 USERINCLUDE     ../inc 
 USERINCLUDE     ../../hgmyvideos/inc
 USERINCLUDE     ../../../inc    
-USERINCLUDE     ../../../videofeeds/utils/inc
-USERINCLUDE     ../../../videofeeds/viewmessageutility/inc
 
 APP_LAYER_SYSTEMINCLUDE
 
Binary file videocollection/mpxmyvideoscollection/conf/videoscollection.confml has changed
Binary file videocollection/mpxmyvideoscollection/conf/videoscollection_2001B2A9.crml has changed
--- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h	Fri Mar 12 15:43:00 2010 +0200
@@ -26,6 +26,8 @@
 #include <harvesterclient.h>
 #include <mpxcollectionmessagedefs.h>
 
+class CRepository;
+
 /**
  *  MPX My Videos collection MDS database observer class.
  *  Part of ECOM Plugin.
@@ -495,6 +497,11 @@
     * The observer for db changes. Not own.
     */
     MVcxMyVideosMdsDbObserver* iMdsDbObserver;
+
+    /**
+     * Cenrep session.
+     */
+    CRepository* iRepository;
     };
 
 #endif // VCXMYVIDEOSMDSDB_H
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -200,11 +200,8 @@
         
         media = videoListArray->AtL( i );
         
-        if ( media->IsSupported( KVcxMediaMyVideosOrigin ) )
-            {
-            origin = media->ValueTObjectL<TUint8>( KVcxMediaMyVideosOrigin );                
-            }
-        
+        origin = TVcxMyVideosCollectionUtil::OriginL( *media );
+                
         TBool newVideo = EFalse;
         TUint32 flags  = 0;
         
@@ -554,15 +551,11 @@
         case -1:
             return KVcxMyVideosAllVideosCategoryIndex;
             
-        case EVcxMyVideosOriginDownloaded:
-            return KVcxMyVideosDownloadsCategoryIndex;
-            
         case EVcxMyVideosOriginCapturedWithCamera:
             return KVcxMyVideosCapturedCategoryIndex;
                             
+        case EVcxMyVideosOriginDownloaded:
         case EVcxMyVideosOriginTvRecording:
-            return KVcxMyVideosTvRecordingsCategoryIndex;
-
         case EVcxMyVideosOriginSideLoaded:                
         case EVcxMyVideosOriginOther:
         default:
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -236,7 +236,9 @@
     if ( aVideo.IsSupported( KVcxMediaMyVideosOrigin ) )
         {
         origin = aVideo.ValueTObjectL<TUint8>( KVcxMediaMyVideosOrigin );                
-        if ( origin == EVcxMyVideosOriginSideLoaded )
+        if ( origin == EVcxMyVideosOriginSideLoaded ||
+                origin == EVcxMyVideosOriginDownloaded ||
+                origin == EVcxMyVideosOriginTvRecording )
             {
             origin = EVcxMyVideosOriginOther;
             }
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -29,6 +29,7 @@
 #include <mpxmediageneralextdefs.h>
 #include <mpxmediaarray.h>
 #include <mpxmediavideodefs.h>
+#include <centralrepository.h>
 #include "vcxmyvideosmdsdb.h"
 #include "vcxmyvideoscollectionutil.h"
 
@@ -192,6 +193,7 @@
     delete iVideoQuery;
     delete iMDSSession;
     delete iActiveSchedulerWait;
+    delete iRepository;
     }
 
 // ---------------------------------------------------------------------------
@@ -882,8 +884,15 @@
     //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();
+        if ( origin == EVcxMyVideosOriginDownloaded ||
+                origin == EVcxMyVideosOriginSideLoaded ||
+                origin == EVcxMyVideosOriginTvRecording )
+            {
+            origin = EVcxMyVideosOriginOther;
+            }
+                
+        aVideo.SetTObjectValueL<TUint8>( KVcxMediaMyVideosOrigin, origin );
         }
 
     //17. DURATION, (KMPXMediaGeneralDuration can't be used since it is TInt
@@ -1261,6 +1270,17 @@
             static_cast<CMdEUint32Property*>(property)->SetValueL( flags );
             }
         
+        // Play pos has really changed -> put the video as last watched
+        if ( aObject.Property( *iLastPlayPositionPropertyDef, property, 0 ) == KErrNotFound ||
+             static_cast<CMdEReal32Property*>(property)->Value() != lastPlaybackPos  )
+            {
+            if ( !iRepository )
+                {
+                iRepository = CRepository::NewL( TUid::Uid( KVcxMyVideosCollectionCenrepUid ) );
+                }
+            iRepository->Set( KVcxMyVideosCollectionCenrepKeyLastWatchedMpxId,
+                                            TInt ( aVideo.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ).iId1 ) );
+            }
         if ( aObject.Property( *iLastPlayPositionPropertyDef, property, 0 ) != KErrNotFound )
             {
             static_cast<CMdEReal32Property*>(property)->SetValueL( lastPlaybackPos );
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -112,6 +112,11 @@
                 {
                 MPX_DEBUG2("iCache->CreateVideoListL() left: %d. Returning categories anyway.", err);
                 }
+            
+            iCollection.CategoriesL().iList->
+                        SetTObjectValueL<TBool>( KVcxMediaMyVideosVideoListIsPartial,
+                        iCache.iVideoListIsPartial );
+
             iCollection.iObs->HandleOpen( iCollection.CategoriesL().iList, KErrNone );
             }
             break;
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -135,18 +135,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 );
@@ -807,14 +797,16 @@
                 TBool modified = EFalse;
                 iCollection.CategoriesL().UpdateCategoryNewVideoNameAndDateL(
                         *videoInCache, modified );
-    
+
+                TUint8 origin = TVcxMyVideosCollectionUtil::OriginL( *videoInCache );
+                
                 iCollection.CategoriesL().NewVideoFlagChangedL(
                         oldFlags, newFlags,
-                        videoInCache->ValueTObjectL<TUint8>( KVcxMediaMyVideosOrigin ),
+                        origin,
                         modified );
                 
                 if ( !(newFlags & EVcxMyVideosVideoNew) && 
-                        TVcxMyVideosCollectionUtil::OriginL( *videoInCache ) == EVcxMyVideosOriginDownloaded )
+                        origin == EVcxMyVideosOriginDownloaded )
                     {
                     MPX_DEBUG1("CVcxMyVideosVideoCache::UpdateVideoL - Count of new videos in Downloaded origin has decreased, sending mediator event to notification launcher");                   
                     iCollection.NotifyNewVideosCountDecreasedL( *videoInCache );
--- a/videofeeds/group/bld.inf	Fri Feb 19 22:52:52 2010 +0200
+++ b/videofeeds/group/bld.inf	Fri Mar 12 15:43:00 2010 +0200
@@ -20,83 +20,10 @@
 
 
 /**
- * Iptv Util
- */
-#include "../utils/group/bld.inf"
-
-/**
- * View message utility
- */
-#include "../viewmessageutility/group/bld.inf"
-
-/**
- * Vcx Notifier
- */
-#include "../vcxnotifier/group/bld.inf"
-
-/**
  * vccommon
  */
 #include "../vccommon/group/bld.inf"
 
-// ========================================
-
-/**
- * Server Client
- */
-#include "../clientapi/group/bld.inf"
-
-/**
- * Provisioning processor
- */
-#include "../provisioningprocessor/group/bld.inf"
-
-/**
- * RSS plugin
- */
-#include "../mrssplugin/group/bld.inf"
-
-/**
- * Server
- */
-#include "../server/group/bld.inf"
-
-/**
- * LiveTV Utils
- */
-#include "../livetvutils/group/bld.inf"
-
-/**
- * Provisioning recognizer and App UI
- */
-#include "../provisioningrecognizer/group/bld.inf"
-#include "../provisioningappui/group/bld.inf"
-#include "../omaprovisioning/group/bld.inf"
-
-// ========================================
-
-/**
- * VodUi Engine
- */
-#include "../vcnsuiengine/group/bld.inf"
-
-/**
- * Ganes UX2.0 VodUi
- */
-#include "../hgvodui/group/bld.inf"
-#include "../hgvodplugin/group/bld.inf"
-
-/**
- * Scheduled download settings view
- */
-#include "../vcnsscheduleview/group/bld.inf"
-#include "../vcnsscheduleplugin/group/bld.inf"
-
-/**
- * Scheduled download plugin
- */
-#include "../scheduleddlplugin/group/bld.inf"
-
 PRJ_PLATFORMS
 DEFAULT
 
--- a/videofeeds/vccommon/loc/ipvideo.loc	Fri Feb 19 22:52:52 2010 +0200
+++ b/videofeeds/vccommon/loc/ipvideo.loc	Fri Mar 12 15:43:00 2010 +0200
@@ -627,13 +627,6 @@
 //
 #define qtn_iptv_download_failed_note  "Download failed: %U"
 
-//d:Text in note that's displayed when view is refreshed because of MMC insertion.
-//d: Ui Spec sec 16.9 Activating and deactivating mass storage mode (p99)
-//l:popup_note_window/opt2
-//r:5.0
-//
-#define qtn_iptv_refreshing  "Refreshing the view"
-
 //d:Info pop-up note shown to user when video service added.
 //d: Ui Spec sec 7.1.2	Video feeds view content and service installation promotion (p27)
 //l:popup_note_window/opt2
@@ -648,11 +641,10 @@
 
 #define qtn_vcx_downloads_title          "Downloads"
 
-//d:page 69 qtn_iptv_captured_title video captured by the user
-//d: Ui Spec sec 13.1	My Videos sub-levels(p76)
+//d:Video list title pane text for videos captured by the user.
 //l:title_pane_t2/opt9
-//r:5.0
-
+//r:5.2
+//
 #define qtn_vcx_captured_title          "Captured videos"
 
 /*
@@ -1835,12 +1827,11 @@
 //
 #define qtn_iptv_tv_recordings_title "TV recordings"
 
-//d:Title pane text on Video Storage UI for Other view.
-//d: Ui Spec sec 13 My videos (p76)
+//d:Video list title pane text for other videos.
 //l:title_pane_t2/opt9
-//r:5.0
+//r:5.2
 //
-#define qtn_iptv_other_title "Other"
+#define qtn_iptv_other_title "Other videos"
 
 //d:Command in option "Mark/Unmark" submenu.
 //d:When selected, starts marking mode (user can mark items from
@@ -2057,6 +2048,68 @@
 //r:5.0
 #define qtn_vcx_hg_options_use_video_as "Use video as"
 
+//d:Main view item text for last watched
+//l:list_double_large_graphic_pane_t1
+//r:5.2
+//
+#define qtn_vcx_hg_list_last_watched           "Last watched"
+
+//d:Main view item text for videos other than captured
+//l:list_double_large_graphic_pane_t1
+//r:5.2
+//
+#define qtn_vcx_hg_list_storage_other          "Other videos"
+
+//d:Main view item text for captured videos
+//l:list_double_large_graphic_pane_t1
+//r:5.2
+//
+#define qtn_vcx_hg_list_storage_captured       "Captured"
+
+//d:Main view item text for Ovi Store link
+//l:list_double_large_graphic_pane_t1
+//r:5.2
+//
+#define qtn_vcx_hg_list_ovi_store              "Ovi Store"
+
+//d:Second line for main view item, amount of videos in category.
+//d:%N is the amount of videos.
+//l:list_double_large_graphic_pane_t2
+//r:5.2
+//
+#define qtn_vcx_hg_list_videos_in_category     "%N videos"
+
+//d:Same as qtn_vcx_hg_list_videos_in_category but used when only one video in category.
+//l:list_double_large_graphic_pane_t2
+//r:5.2
+//
+#define qtn_vcx_hg_list_one_video_in_category  "1 video"	
+
+//d:Second line for main view item, there is one new video.
+//l:list_double_large_graphic_pane_t2
+//r:5.2
+//
+#define qtn_vcx_hg_list_one_new_video          "1 new video"
+
+//d:Second line for main view item, there are more than 1 new videos. 
+//d:%N is the count of new videos.
+//l:list_double_large_graphic_pane_t2
+//r:5.2
+//
+#define qtn_vcx_hg_list_n_new_videos           "%N new videos"
+
+//d:Second line for main view item, there are no videos.
+//l:list_double_large_graphic_pane_t2
+//r:5.2
+//
+#define qtn_vcx_hg_list_no_videos_in_category  "No videos"
+
+//d:Second line for main view item, Ovi Store link.
+//l:list_double_large_graphic_pane_t2
+//r:5.2
+//
+#define qtn_vcx_hg_list_ovi_store_videos       "Videos"
+
 
 /*
 * ==============================================================================
--- a/videoplayback/inc/mpxvideobaseplaybackview.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/inc/mpxvideobaseplaybackview.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 16 %
+// Version : %version: 17 %
 
 
 // This file defines the API for VideoBasePlaybackView.dll
@@ -341,11 +341,11 @@
         TBool IsMultiItemPlaylist();
         TInt OpenDrmFileHandleL( RFile& aFile );
         void LaunchDRMDetailsL();
-        
+
 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-        TInt OpenDrmFileHandle64L( RFile64& aFile );        
+        TInt OpenDrmFileHandle64L( RFile64& aFile );
 #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-        
+
     protected: // data
         MMPXPlaybackUtility*                iPlaybackUtility;
         MMPXViewUtility*                    iViewUtility;
@@ -365,6 +365,7 @@
         TBool                               iMediaRequested;
         TBool                               iPlaylistView;
         TBool                               iCollectionMediaRequested;
+        TBool                               iPdlReloading;
 
         HBufC*                              iClipName;
 };
--- a/videoplayback/inc/mpxvideoplaybackdisplayhandler.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/inc/mpxvideoplaybackdisplayhandler.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 6 %
+// Version : %version: 7 %
 
 
 #ifndef __CMPXVIDEOPLAYBACKDISPLAYHANDLER_H__
@@ -94,6 +94,8 @@
         void SurfaceRemoved();
         TInt SetNgaAspectRatioL( TMPXVideoPlaybackCommand aCmd );
 
+        void SignalSurfaceRemovedL();
+
 #endif
 
     private:
--- a/videoplayback/inc/mpxvideoplaybackuserinputhandler.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/inc/mpxvideoplaybackuserinputhandler.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  5 %
+// Version : %version:  6 %
 
 
 
@@ -37,6 +37,7 @@
 class CRemConInterfaceSelector; // Side volume key
 class CRemConCoreApiTarget;
 class CMPXVideoPlaybackContainer;
+class CHWRMLight;
 
 // CLASS DECLARATION
 
@@ -159,7 +160,7 @@
         CPeriodic*                              iDisplayTimer;          // Timer to timeout the lights time-out
         TInt                                    iDisplayTimeOut;        // Value of the lights time-out
 
-
+        CHWRMLight*                             iLight;
         CMPXVideoPlaybackContainer*             iContainer;	  // not owned
 
 
--- a/videoplayback/inc/mpxvideoplaybackviewfiledetails.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/inc/mpxvideoplaybackviewfiledetails.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: e003sa33#10 %
+// Version : %version: e003sa33#11 %
 
 
 
@@ -45,6 +45,13 @@
         //
         void ClearFileDetails();
 
+        /** 
+        * Generate file name, remove all file path
+        * 
+        * @return generated file name, ownership is transferred 
+        */
+        IMPORT_C HBufC* GenerateFileNameL();
+        
     private:
         //
         //  By default Symbian 2nd phase constructor is private.
--- a/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 18 %
+// Version : %version: 19 %
 
 
 #ifndef _CMPXVIDEOPLAYBACKCONTROLLER_H_
@@ -117,7 +117,7 @@
 
         void SetPlaybackModeL();
 
-        TBool IsDisplayOff();
+        TBool IsKeyLocked();
         TBool IsAlarm();
         TBool IsPhoneCall();
         TBool IsActivePhoneCall();
--- a/videoplayback/videohelix/inc/mpxvideoplayerutility.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/inc/mpxvideoplayerutility.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 9 %
+// Version : %version: 10 %
 
 
 #ifndef __MPXVIDEOPLAYERUTILITY__
@@ -123,6 +123,8 @@
                                   const TSurfaceId& aSurfaceId,
                                   const TRect& aCropRect,
                                   TVideoAspectRatio aAspectRatio );
+        
+        void SurfaceRemovedFromView();
 
 #endif
 
--- a/videoplayback/videohelix/src/mpxvideoaccessoryobserver.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/src/mpxvideoaccessoryobserver.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 6 %
+// Version : %version: 7 %
 
 //
 //  INCLUDE FILES
@@ -133,6 +133,7 @@
     MPX_DEBUG(_L("CMPXVideoAccessoryObserver::UpdateTvOutStatusL()"));
 
     TBool statusChanged = EFalse;
+    TBool tvOutHDMI = EFalse;
 
     //
     //  Initialize TV-Out value to EFalse before checking if
@@ -153,10 +154,12 @@
 
     for ( TInt index = 0 ; index < count ; index++ )
     {
+        TAccPolGenericID genId = iGenericIdArray.GetGenericIDL( index );
+        
         //
         //  Get all supported capabilities for this connected accessory.
         //
-        iConnection.GetSubblockNameArrayL( iGenericIdArray.GetGenericIDL( index ), *nameArray );
+        iConnection.GetSubblockNameArrayL( genId, *nameArray );
 
         //
         //  Check if this connected accessory supports TV-Out
@@ -166,7 +169,22 @@
             MPX_DEBUG(_L("    TV-Out Capabilities Exist"));
 
             tvOutConnected = ETrue;
-            break;
+
+            TAccPolNameRecord nameRecord;
+            nameRecord.SetNameL( KAccVideoOut );                       
+            TAccValueTypeTInt value;            
+            iConnection.GetValueL( genId, nameRecord, value );  
+            
+            if ( value.iValue == EAccVideoOutEHDMI )
+            {
+                tvOutHDMI = ETrue;
+                //
+                // HDMI has precedence over Comp TV-Out, If the accessory is
+                // HDMI then stop the search for Video Out accessory, else continue 
+                // looping through all the accessories.
+                //
+                break;
+            }
         }
     }
 
@@ -180,7 +198,7 @@
     {
         iTvOutConnected = tvOutConnected;
 
-        if ( iTvOutConnected )
+        if ( iTvOutConnected && !tvOutHDMI)
         {
             //
             //  Check the playablility of the clip
@@ -195,7 +213,7 @@
         statusChanged   = ETrue;
     }
 
-    MPX_DEBUG(_L("    iTvOutConnected = %d"), iTvOutConnected);
+    MPX_DEBUG(_L("CMPXVideoAccessoryObserver::UpdateTvOutStatusL  iTvOutConnected = %d, tvOutHDMI = %d"), iTvOutConnected, tvOutHDMI);
 
     MPX_DEBUG(_L("CMPXVideoAccessoryObserver::UpdateTvOutStatusL() ret = %d"), statusChanged);
 
--- a/videoplayback/videohelix/src/mpxvideohelixplayback.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/src/mpxvideohelixplayback.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 11 %
+// Version : %version: 12 %
 
 
 //
@@ -193,7 +193,7 @@
                                              TInt aAccessPoint )
 {
     MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreamingL()"),
-                   _L("aUri %S, aType %d"), &aUri, aAccessPoint );
+                   _L("aUri %S, aAccessPoint %d"), &aUri, aAccessPoint );
 
     RFile fileHandle;
 
@@ -220,7 +220,8 @@
 //
 void CMPXVideoHelixPlayback::InitStreamingL( RFile& aFile, TInt aAccessPoint  )
 {
-    MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreamingL( RFile )"));
+    MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreamingL( RFile )"),
+                   _L("aAccessPoint = %d"), aAccessPoint );
 
     TFileName filename;
     aFile.FullName( filename );
@@ -386,7 +387,8 @@
 //
 void CMPXVideoHelixPlayback::InitStreaming64L( RFile64& aFile, TInt aAccessPoint  )
 {
-    MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreaming64L( RFile64 )"));
+    MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreaming64L( RFile64 )"),
+                   _L("aAccessPoint = %d"), aAccessPoint );
 
     TFileName filename;
     aFile.FullName( filename );
--- a/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 43 %
+// Version : %version: 47 %
 
 
 //
@@ -38,10 +38,9 @@
 #include <ctsydomainpskeys.h>
 #include <mmf/common/mmferrors.h>
 
-#include <hal.h>
-#include <hal_data.h>
 #include <e32std.h>
 #include <devsoundif.h>
+#include <avkondomainpskeys.h>
 
 #include "mpxvideoregion.h"
 #include "mpxvideoplaybackcontroller.h"
@@ -145,7 +144,7 @@
     MPX_ENTER_EXIT(_L("CMPXVideoPlaybackController::ConstructL()"));
 
     iMPXPluginObs = &aObs;
-    iAccessPointId = -1;
+    iAccessPointId = KUseDefaultIap;
     iVideoSeeker = CMPXVideoSeeker::NewL( this );
 
     // Initiliaze to True
@@ -525,6 +524,11 @@
 
                 break;
             }
+            case EPbCmdSurfaceRemoved:
+            {
+                iPlayer->SurfaceRemovedFromView();
+                break;
+            }
             default:
             {
                 break;
@@ -1725,17 +1729,17 @@
 }
 
 // -----------------------------------------------------------------------------
-// CMPXVideoPlaybackController::IsDisplayOff
+// CMPXVideoPlaybackController::IsKeyLocked
 // -----------------------------------------------------------------------------
 //
-TBool CMPXVideoPlaybackController::IsDisplayOff()
+TBool CMPXVideoPlaybackController::IsKeyLocked()
 {
-    TBool displayState;
-    HAL::Get( HALData::EDisplayState, displayState );
+    TBool keylock( EFalse );
+    RProperty::Get( KPSUidAvkonDomain, KAknKeyguardStatus, keylock );
 
-    MPX_DEBUG(_L("CMPXVideoPlaybackController::IsDisplayOff(%d)"), !displayState);
+    MPX_DEBUG(_L("CMPXVideoPlaybackController::IsKeyLocked(%d)"), keylock);
 
-    return !displayState;
+    return keylock;
 }
 
 //  ------------------------------------------------------------------------------------------------
@@ -1907,6 +1911,16 @@
 
     iPlayer->Reset();
 
+    //
+    // Delete the video accessory observer when the plugin
+    // goes back to Not Initialised state.
+    //
+    if ( iAccessoryMonitor )
+    {    
+        delete iAccessoryMonitor;
+        iAccessoryMonitor = NULL;
+    }
+
     if ( iFileDetails )
     {
         delete iFileDetails;
--- a/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 17 %
+// Version : %version: 19 %
 
 
 
@@ -180,7 +180,7 @@
     if ( iVideoPlaybackCtlr->iAppInForeground )
     {
         if ( iVideoPlaybackCtlr->IsAlarm() ||
-             ( iVideoPlaybackCtlr->IsDisplayOff() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) )
+             ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) )
         {
             iVideoPlaybackCtlr->iForegroundPause = ETrue;
             iVideoPlaybackCtlr->iState->HandlePause();
@@ -213,7 +213,7 @@
             MPX_TRAPD( err,
                 iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ) );
         }
-        else if ( iVideoPlaybackCtlr->IsDisplayOff() &&
+        else if ( iVideoPlaybackCtlr->IsKeyLocked() &&
                   iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
         {
             iVideoPlaybackCtlr->iForegroundPause = ETrue;
@@ -262,7 +262,7 @@
 
     if ( networkMode == RMobilePhone::ENetworkModeGsm)
     {
-    	networkMode2g = ETrue;
+        networkMode2g = ETrue;
     }
 
     mobilePhone.Close();
@@ -346,13 +346,14 @@
 {
     MPX_ENTER_EXIT(_L("CMPXStreamingPlaybackMode::HandleOpenComplete()"));
 
-    // since SDP files are opened as KMmfUidFileSource type, we need to set
-    // the access point for SDP files before Prepare is called on Helix
     //
-    // for RAM files and URLs - access point is already been set
-    // at the point of adding data source
-
-    if ( iVideoPlaybackCtlr->iMediaType == CMediaRecognizer::ELocalSdpFile )
+    //  There is no need to send the access point if it is set to use default.
+    //  SDP files are opened as KMmfUidFileSource type, we need to set the access point for
+    //  SDP files before Prepare is called on Helix for RAM files and URLs - access point is
+    //  already been set at the point of adding data source
+    //
+    if ( iVideoPlaybackCtlr->iAccessPointId != KUseDefaultIap &&
+         iVideoPlaybackCtlr->iMediaType == CMediaRecognizer::ELocalSdpFile )
     {
         const TMMFMessageDestinationPckg destinationPckg(KUidInterfaceMMFHelixController);
         const TPckgBuf<TBool> savePckg( EFalse );
@@ -393,7 +394,7 @@
             MPX_TRAPD(err,
                       iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ));
         }
-        else if ( iVideoPlaybackCtlr->IsDisplayOff() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
+        else if ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )
         {
           //exit for live streaming
         }
@@ -505,7 +506,7 @@
     {
         if ( iVideoPlaybackCtlr->IsPhoneCall() ||
              iVideoPlaybackCtlr->IsVideoCall() ||
-             ( iVideoPlaybackCtlr->IsDisplayOff() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ))
+             ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ))
         {
             iVideoPlaybackCtlr->iState->HandlePause();
         }
--- a/videoplayback/videohelix/src/mpxvideoplayerutility.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/src/mpxvideoplayerutility.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 15 %
+// Version : %version: 16 %
 
 
 #include <AudioPreference.h>
@@ -79,6 +79,12 @@
         iControllerEventMonitor = NULL;
     }
 
+    if ( ! iSurfaceId.IsNull() )
+    {
+        MPX_TRAPD( err, SendSurfaceCommandL( EPbMsgVideoRemoveDisplayWindow ) );
+        iSurfaceId = TSurfaceId::CreateNullId();
+    }
+
     iController.Close();
     iDirectScreenAccessAbort = EFalse;
 }
@@ -274,6 +280,21 @@
     }
 }
 
+
+// -------------------------------------------------------------------------------------------------
+//   CMpxVideoPlayerUtility::SurfaceRemovedFromView()
+// -------------------------------------------------------------------------------------------------
+//
+void CMpxVideoPlayerUtility::SurfaceRemovedFromView()
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::SurfaceRemovedFromView()"));
+    
+    if ( ! iSurfaceId.IsNull() )
+    {
+        iSurfaceId = TSurfaceId::CreateNullId();
+    }
+}
+
 TBool CMpxVideoPlayerUtility::AudioEnabledL() const
 {
     TBool enabled;
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg	Fri Mar 12 15:43:00 2010 +0200
@@ -653,7 +653,6 @@
 waittestclass test
 pause 100
 test GetMedia 
-test DisconnectTvOut
 waittestclass test
 delete test
 pause 1000
@@ -821,5 +820,18 @@
 pause 1000
 [Endtest]
 
+[Test]
+title 54. HDMI Tv-Out - Unprotected Content
+create videohelixtest test
+test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone
+waittestclass test
+pause 100
+test ConnectHDMITvOut
+waittestclass test
+test DisconnectHDMITvOut
+waittestclass test
+delete test
+pause 1000
+[Endtest]
 
 
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoaccessoryobserver_stub.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoaccessoryobserver_stub.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 3 %
+// Version : %version: 4 %
 
 
 
@@ -74,6 +74,7 @@
         void UpdateTvOutStatusL( TBool aTvOutConnected );
         void SetTvOutConnected( TBool aConnected );
         void SetTvOutPlaybackAllowed( TBool aAllowed );
+        void SetTvOutHDMI( TBool aTvOutHDMI );
 
     private:
 
@@ -94,6 +95,7 @@
         CMPXVideoPlaybackController*        iController;
         TBool                               iTvOutConnected;
         TBool                               iTvOutPlaybackAllowed;
+        TBool                               iTvOutHDMI;
 };
 
 #endif  //  MPXVIDEOACCESSORYOBSERVER_H
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 10 %
+// Version : %version: 11 %
 
 
 #ifndef __MPXVIDEOPLAYERUTILITY__
@@ -111,6 +111,8 @@
 
         void SetVolumeSteps( TInt aVolumeSteps );
 
+        void SurfaceRemovedFromView();
+
 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
         void OpenFile64L( const RFile64& aFile );
 #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 10 %
+// Version : %version: 11 %
 
 
 #ifndef __VHPPTESTCASE_H__
@@ -165,11 +165,14 @@
         virtual TInt EndPhoneCall();
         virtual TInt SetTvOutConnectedL( CStifItemParser& aItem );
         virtual TInt SetTvOutDisconnectedL();
-        virtual TInt CVHPPTestClass::ConnectTvOutL( CStifItemParser& aItem );
-        virtual TInt CVHPPTestClass::DisconnectTvOutL();
+        virtual TInt ConnectTvOutL( CStifItemParser& aItem );
+        virtual TInt DisconnectTvOutL();
         virtual TInt SetDrmProtectedL( CStifItemParser& aItem );
         virtual TInt IssueSeekedToEndCommandL( CStifItemParser& aItem );
         virtual TInt HandleVolumeL( CStifItemParser& aItem );
+        virtual TInt ConnectHDMITvOutL();
+        virtual TInt DisconnectHDMITvOutL();
+        virtual TInt SetHDMITvOutConnectedL();
 
         // ---------------------------------------------------------------------
         //  Helper Functions
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoaccessoryobserver_stub.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoaccessoryobserver_stub.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 3 %
+// Version : %version: 4 %
 
 //
 //  INCLUDE FILES
@@ -65,6 +65,7 @@
     : iController( aController )
     , iTvOutConnected( EFalse )
     , iTvOutPlaybackAllowed( ETrue )
+    , iTvOutHDMI( EFalse )
 {
 }
 
@@ -104,6 +105,12 @@
     if ( iTvOutConnected != aTvOutConnected )
     {
         iTvOutConnected = aTvOutConnected;
+ 
+        if ( iTvOutConnected && iTvOutHDMI)
+        {
+            //  if HDMI playback is always allowed
+            iTvOutPlaybackAllowed = ETrue;
+        }
 
         iController->HandleTvOutEventL( iTvOutConnected );
     }
@@ -134,4 +141,12 @@
     return playAllowed;
 }
 
+void CMPXVideoAccessoryObserver::SetTvOutHDMI( TBool aTvOutHDMI )
+{
+    MPX_ENTER_EXIT(_L("CMPXVideoAccessoryObserver::SetTvOutHDMI()"),
+                   _L("aTvOutHDMI = %d"), aTvOutHDMI);
+
+    iTvOutHDMI = aTvOutHDMI;
+}
+
 //  End of File
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 12 %
+// Version : %version: 13 %
 
 #include <audiopreference.h>
 #include <mmf/server/mmffile.h>
@@ -743,6 +743,10 @@
     return KErrNone;
 }
 
+void CMpxVideoPlayerUtility::SurfaceRemovedFromView()
+{
+}
+
 #endif
 
 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 16 %
+// Version : %version: 17 %
 
 
 // [INCLUDE FILES] - do not remove
@@ -115,7 +115,10 @@
 
         ENTRY( "SetDrmProtected", CVHPPTestClass::SetDrmProtectedL ),
         ENTRY( "IssueSeekedToEndCommand", CVHPPTestClass::IssueSeekedToEndCommandL),
-        ENTRY( "HandleVolume", CVHPPTestClass::HandleVolumeL )  
+        ENTRY( "HandleVolume", CVHPPTestClass::HandleVolumeL ),
+        ENTRY( "ConnectHDMITvOut", CVHPPTestClass::ConnectHDMITvOutL ),
+        ENTRY( "DisconnectHDMITvOut", CVHPPTestClass::DisconnectHDMITvOutL ),
+        ENTRY( "SetHDMITvOutConnected", CVHPPTestClass::SetHDMITvOutConnectedL )
 
 
         //
@@ -2165,4 +2168,65 @@
     return err; 
 } 
 
+TInt
+CVHPPTestClass::ConnectHDMITvOutL( )
+{
+    MPX_ENTER_EXIT(_L("CVHPPTestClass::ConnectHDMITvOutL()"));
+    iLog->Log(_L("CVHPPTestClass::ConnectHDMITvOutL()"));
+
+    // Connect HDMI TV Out
+    iAccObserver->SetTvOutHDMI( ETrue );
+
+    //
+    //  Add event for callback
+    //
+    TCallbackEvent* event = new TCallbackEvent;
+
+    event->iEvent = EPbCmdTvOutEvent;
+    event->iData  = ETrue;
+    event->iError = ETrue;
+
+    AddExpectedEvent( event );
+
+    iAccObserver->UpdateTvOutStatusL( ETrue );
+
+    return KErrNone;
+}
+
+TInt
+CVHPPTestClass::DisconnectHDMITvOutL()
+{
+    MPX_ENTER_EXIT(_L("CVHPPTestClass::DisconnectHDMITvOutL()"));
+    iLog->Log(_L("CVHPPTestClass::DisconnectHDMITvOutL()"));
+
+    // Connect HDMI TV Out
+    iAccObserver->SetTvOutHDMI( EFalse );
+
+    //
+    //  Add event for callback
+    //
+    TCallbackEvent* event = new TCallbackEvent;
+
+    event->iEvent = EPbCmdTvOutEvent;
+    event->iData  = EFalse;
+    event->iError = ETrue;
+
+    AddExpectedEvent( event );
+
+    iAccObserver->UpdateTvOutStatusL( EFalse );
+
+    return KErrNone;
+}
+
+TInt
+CVHPPTestClass::SetHDMITvOutConnectedL()
+{
+    MPX_ENTER_EXIT(_L("CVHPPTestClass::SetHDMITvOutConnectedL()"));
+    iLog->Log(_L("CVHPPTestClass::SetHDMITvOutConnectedL()"));
+
+    iAccObserver->SetTvOutHDMI( ETrue );
+
+    return KErrNone;
+}
+
 //  EOF
--- a/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  e003sa33#12 %
+// Version : %version:  e003sa33#14 %
 
 
 // INCLUDE FILES
@@ -299,8 +299,10 @@
     // License
     if ( iController->FileDetails()->iDrmProtected )
     {
-        iLicenseLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                  TSize(labelWidth,labelHeight) );  
+        iLicenseLabel->SetExtent( 
+        		             TPoint(Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) , 
+                             TSize( labelWidth, labelHeight ) 
+                             );  
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_LICENSE_HEADING );     
         CleanupStack::PushL( heading );
         
@@ -319,22 +321,29 @@
     }    
 
     // Filename
-    if ( iController->FileDetails()->iClipName )
+    HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
+    if ( fileName && fileName->Length() )
     {   
         // file name gets populated by HandleScrollFilenameTimer method         
-        iClipnameLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                   TSize(labelWidth,labelHeight) );
+        iClipnameLabel->SetExtent( 
+        		             TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , 
+                             TSize( labelWidth, labelHeight )
+                             );
         iClipnameLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);        
         iClipnameLabel->MakeVisible( ETrue );
         rowsAdded++;
         
+        delete fileName;
     }    
 
     // Mime Type (Format)
-    if ( iController->FileDetails()->iMimeType )
+    if ( iController->FileDetails()->iMimeType 
+    		&& iController->FileDetails()->iMimeType->Length() )
     {
-        iFormatLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                 TSize(labelWidth,labelHeight) );
+        iFormatLabel->SetExtent( 
+        		          TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , 
+                          TSize( labelWidth, labelHeight )
+                          );
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_FORMAT_HEADING );     
         CleanupStack::PushL( heading );
         
@@ -356,8 +365,10 @@
     if ( iController->FileDetails()->iVideoHeight &&  
          iController->FileDetails()->iVideoWidth )
     {
-        iResolutionLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                     TSize(labelWidth,labelHeight) );
+        iResolutionLabel->SetExtent( 
+        		               TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , 
+                               TSize( labelWidth, labelHeight )
+                               );
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_RESOLUTION_HEADING );     
         CleanupStack::PushL( heading );
         
@@ -381,8 +392,10 @@
     // Duration
     if ( iController->FileDetails()->iDuration > 0 )
     {
-        iDurationLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                   TSize(labelWidth,labelHeight) );
+        iDurationLabel->SetExtent(
+        		             TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) , 
+                             TSize( labelWidth, labelHeight )
+                             );
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_DURATION_HEADING );     
         CleanupStack::PushL( heading );
         
@@ -423,8 +436,10 @@
     // Bitrate
     if ( iController->FileDetails()->iBitRate > 0 )
     {
-        iBitrateLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                  TSize(labelWidth,labelHeight) );
+        iBitrateLabel->SetExtent( 
+        		          TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , 
+                          TSize( labelWidth, labelHeight )
+                          );
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_BITRATE_HEADING );     
         CleanupStack::PushL( heading );
         
@@ -447,10 +462,13 @@
     }         
 
     // Title
-    if ( iController->FileDetails()->iTitle )
+    if ( iController->FileDetails()->iTitle 
+    		&& iController->FileDetails()->iTitle->Length() )
     {
-        iTitleLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                TSize(labelWidth,labelHeight) );
+        iTitleLabel->SetExtent( 
+        		          TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , 
+                          TSize( labelWidth, labelHeight ) 
+                          );
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_TITLE_HEADING );     
         CleanupStack::PushL( heading );
         
@@ -469,10 +487,13 @@
     }    
 
     // Artist
-    if ( iController->FileDetails()->iArtist )
+    if ( iController->FileDetails()->iArtist 
+    		&& iController->FileDetails()->iArtist->Length() )
     {
-        iArtistLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                TSize(labelWidth,labelHeight) );
+        iArtistLabel->SetExtent( 
+        		          TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , 
+                          TSize( labelWidth, labelHeight )
+                          );
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_ARTIST_HEADING );     
         CleanupStack::PushL( heading );
         
@@ -494,8 +515,10 @@
     // Additional Label
     if ( iAdditionalString && iAdditionalString->Length() ) 
     {    
-        iAdditionalLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , 
-                                     TSize(labelWidth,labelHeight) );  
+        iAdditionalLabel->SetExtent(
+        		               TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , 
+                               TSize( labelWidth, labelHeight )
+                               );  
         
         TBuf<KMediaDetailsViewerMaxBufLen> titleField;
         titleField.Append(KLeftMargin);
@@ -694,15 +717,18 @@
 //
 void CMPXVideoPlaybackMediaDetailsViewer::HandleScrollFilenameTimerL()
 {   
-    if (iController->FileDetails()->iClipName)
+    HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
+    
+	if ( fileName && fileName->Length() )
     {
+        CleanupStack::PushL( fileName );
         if ( iShouldPauseScrolling )
         {
             iShouldPauseScrolling = EFalse;
             User::After( 2000000 );  // add a 2 second delay after each complete scrolling
         }    
     
-        TInt length = iController->FileDetails()->iClipName->Length();
+        TInt length = fileName->Length();                
                         
         HBufC* heading  = iEikonEnv->AllocReadResourceL( R_MPX_FILENAME_HEADING );     
         CleanupStack::PushL( heading );
@@ -714,9 +740,8 @@
         
         if ( length >= KMediaDetailsViewerVisibleCharacters )
         {  
-            filenameField.Append( 
-                    iController->FileDetails()->iClipName->Mid(iScrollPosition, 
-                                                               KMediaDetailsViewerVisibleCharacters) );
+            filenameField.Append( fileName->Mid( iScrollPosition,
+            		KMediaDetailsViewerVisibleCharacters ) );
             
             if ( iScrollPosition ==  (length - KMediaDetailsViewerVisibleCharacters) )
             {
@@ -730,7 +755,7 @@
         }
         else
         {
-            filenameField.Append( *(iController->FileDetails()->iClipName) );
+            filenameField.Append( *fileName );
             iScrollingTextTimer->Cancel();   // no need to keep the timer active
         }
                     
@@ -738,7 +763,7 @@
         DrawNow();
         
         CleanupStack::PopAndDestroy( heading );        
-                         
+        CleanupStack::PopAndDestroy( fileName );                  
     }           
 }
 
--- a/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/bwins/ui_videoplaybackcontrolstestu.def	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/bwins/ui_videoplaybackcontrolstestu.def	Fri Mar 12 15:43:00 2010 +0200
@@ -6,4 +6,5 @@
 	?GetBitmap@CMPXVideoPlaybackControlsController@@QAEPAVCEikImage@@W4TMPXVideoPlaybackControls@@@Z @ 5 NONAME ; class CEikImage * CMPXVideoPlaybackControlsController::GetBitmap(enum TMPXVideoPlaybackControls)
 	?HandleEventL@CMPXVideoPlaybackControlsController@@QAEXW4TMPXVideoPlaybackControlCommandIds@@H@Z @ 6 NONAME ; void CMPXVideoPlaybackControlsController::HandleEventL(enum TMPXVideoPlaybackControlCommandIds, int)
 	?NewL@CMPXVideoPlaybackControlsController@@SAPAV1@PAVCMPXVideoPlaybackContainer@@VTRect@@PAVCMPXVideoPlaybackViewFileDetails@@@Z @ 7 NONAME ; class CMPXVideoPlaybackControlsController * CMPXVideoPlaybackControlsController::NewL(class CMPXVideoPlaybackContainer *, class TRect, class CMPXVideoPlaybackViewFileDetails *)
+	?GenerateFileNameL@CMPXVideoPlaybackViewFileDetails@@QAEPAVHBufC16@@XZ @ 8 NONAME ; class HBufC16 * CMPXVideoPlaybackViewFileDetails::GenerateFileNameL(void)
 
--- a/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/eabi/ui_videoplaybackcontrolstestu.def	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/eabi/ui_videoplaybackcontrolstestu.def	Fri Mar 12 15:43:00 2010 +0200
@@ -34,4 +34,7 @@
 	_ZTV34CMPXVideoPlaybackBrandingAnimation @ 33 NONAME ; #<VT>#
 	_ZTV35CMPXVideoPlaybackControlsController @ 34 NONAME ; #<VT>#
 	_ZTV37CMPXVideoPlaybackControlConfiguration @ 35 NONAME ; #<VT>#
+	_ZN32CMPXVideoPlaybackViewFileDetails17GenerateFileNameLEv @ 36 NONAME
+	_ZTI35CMPXVideoPlaybackMediaDetailsViewer @ 37 NONAME
+	_ZTV35CMPXVideoPlaybackMediaDetailsViewer @ 38 NONAME
 
--- a/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,12 +15,14 @@
 *
 */
 
-// Version : %version: ou1cpsw#6 %
+// Version : %version: e003sa33#7 %
 
 
 //
 //  INCLUDE FILES
 //
+#include <f32file.h>
+
 #include "mpxvideo_debug.h"
 #include "mpxvideoplaybackviewfiledetails.h"
 
@@ -90,4 +92,28 @@
     iPausableStream = ETrue;
 }
 
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackViewFileDetails::GenerateFileNameL
+// -------------------------------------------------------------------------------------------------
+//
+EXPORT_C HBufC* CMPXVideoPlaybackViewFileDetails::GenerateFileNameL()
+{
+    MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackViewFileDetails::GenerateFileNameL()" ) );
+    
+	HBufC* fileName = NULL;
+
+	if ( iClipName && iClipName->Length()
+			&& EMPXVideoStreaming != iPlaybackMode &&
+    		EMPXVideoLiveStreaming != iPlaybackMode )
+	{
+        //
+        // Get only file name for media details viewer 
+        //
+        TParsePtrC filePath( iClipName->Des() );
+        fileName = ( filePath.Name() ).AllocL();
+	}
+	
+    return fileName;
+}
+
 //  EOF
--- a/videoplayback/videoplaybackviews/bwins/mpxvideoplaybackviewsu.def	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/bwins/mpxvideoplaybackviewsu.def	Fri Mar 12 15:43:00 2010 +0200
@@ -10,4 +10,5 @@
 	?NewLC@CMPXVideoPlaybackView@@SAPAV1@XZ @ 9 NONAME ; class CMPXVideoPlaybackView * CMPXVideoPlaybackView::NewLC(void)
 	?ProcessPointerEventL@CMPXVideoPlaybackUserInputHandler@@QAEXPAVCCoeControl@@ABUTPointerEvent@@W4TMPXVideoControlType@@@Z @ 10 NONAME ; void CMPXVideoPlaybackUserInputHandler::ProcessPointerEventL(class CCoeControl *, struct TPointerEvent const &, enum TMPXVideoControlType)
 	?UserInputHandler@CMPXVideoPlaybackContainer@@QAEPAVCMPXVideoPlaybackUserInputHandler@@XZ @ 11 NONAME ; class CMPXVideoPlaybackUserInputHandler * CMPXVideoPlaybackContainer::UserInputHandler(void)
+	?GenerateFileNameL@CMPXVideoPlaybackViewFileDetails@@QAEPAVHBufC16@@XZ @ 12 NONAME ; class HBufC16 * CMPXVideoPlaybackViewFileDetails::GenerateFileNameL(void)
 
--- a/videoplayback/videoplaybackviews/eabi/mpxvideoplaybackviewsu.def	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/eabi/mpxvideoplaybackviewsu.def	Fri Mar 12 15:43:00 2010 +0200
@@ -20,4 +20,5 @@
 	_ZN26CMPXVideoPlaybackContainer16UserInputHandlerEv @ 19 NONAME
 	_ZTI31CMPXVideoPlaybackDisplayHandler @ 20 NONAME ; #<TI>#
 	_ZTV31CMPXVideoPlaybackDisplayHandler @ 21 NONAME ; #<VT>#
+	_ZN32CMPXVideoPlaybackViewFileDetails17GenerateFileNameLEv @ 22 NONAME
 
--- a/videoplayback/videoplaybackviews/group/mpxvideoplaybackviews.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/group/mpxvideoplaybackviews.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 13 %
+// Version : %version: 14 %
 
 
 #include <data_caging_paths.hrh>
@@ -83,7 +83,7 @@
 LIBRARY             sysutil.lib 
 LIBRARY             drmuihandling.lib
 LIBRARY             centralrepository.lib // for backlight timeout value
-LIBRARY             hal.lib  // disabling backlight
+LIBRARY             hwrmlightclient.lib   // light status
 
 #ifdef SYMBIAN_BUILD_GCE
 LIBRARY             mediaclientvideodisplay.lib
--- a/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 61 %
+// Version : %version: 63 %
 
 
 //  Include Files
@@ -64,6 +64,7 @@
 #include <mpxvideoplaybackdefs.h>
 #include "mpxmediavideodefs.h"
 #include "mpxvideo_debug.h"
+#include "mpxvideoplayercustomviewmsgconsts.h"
 
 //  Member Functions
 
@@ -220,6 +221,7 @@
             CreateGeneralPlaybackCommandL( EPbCmdPause );
             break;
         }
+        case EAknSoftkeyClose:
         case EMPXPbvCmdClose:
         {
             MPX_DEBUG(_L("CMPXVideoBasePlaybackView::HandleCommandL() EMPXPbvCmdClose"));
@@ -363,17 +365,9 @@
             LaunchDRMDetailsL();
             break;
         }
-        case EAknSoftkeyClose:
+        case KMpxVideoPlaybackPdlReloading:
         {
-            //
-            //  Close is in progress
-            //  Remove the display window so the surface can be released
-            //
-            if ( iDisplayHandler )
-            {
-                iDisplayHandler->RemoveDisplayWindow();
-            }
-
+            iPdlReloading = ETrue;
             break;
         }
     }
--- a/videoplayback/videoplaybackviews/src/mpxvideopdlplaybackview.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/src/mpxvideopdlplaybackview.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 21 %
+// Version : %version: 22 %
 
 
 //  Include Files
@@ -370,7 +370,11 @@
 {
     MPX_DEBUG(_L("CMPXVideoPdlPlaybackView::HandleStoppedStateL()"));
 
-    if ( iPlaybackState == EPbStateStopped )
+    if ( iPdlReloading )
+    {
+        iPdlReloading = EFalse;
+    }
+    else
     {
         ClosePlaybackViewL();
     }
--- a/videoplayback/videoplaybackviews/src/mpxvideoplaybackdisplayhandler.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/src/mpxvideoplaybackdisplayhandler.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 9 %
+// Version : %version: 10 %
 
 #include <sysutil.h>
 #include <s32file.h>
@@ -60,6 +60,8 @@
         iVideoDisplay = NULL;
     }
 #endif
+
+    iSurfaceId = TSurfaceId::CreateNullId();
 }
 
 CMPXVideoPlaybackDisplayHandler*
@@ -101,6 +103,27 @@
 }
 
 // -------------------------------------------------------------------------------------------------
+//   CMPXVideoPlaybackDisplayHandler::SignalSurfaceRemovedL()
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoPlaybackDisplayHandler::SignalSurfaceRemovedL()
+{
+    MPX_ENTER_EXIT(_L("CMPXVideoPlaybackDisplayHandler::SignalSurfaceRemovedL()"));
+
+    CMPXCommand* cmd = CMPXCommand::NewL();
+    CleanupStack::PushL( cmd );
+
+    cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
+    cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXMediaIdVideoPlayback );
+    cmd->SetTObjectValueL<TMPXVideoPlaybackCommand>( KMPXMediaVideoPlaybackCommand,
+                                                     EPbCmdSurfaceRemoved );
+
+    iPlaybackUtility->CommandL( *cmd );
+
+    CleanupStack::PopAndDestroy( cmd );
+}
+
+// -------------------------------------------------------------------------------------------------
 //   CMPXVideoPlaybackDisplayHandler::RemoveDisplayWindow()
 // -------------------------------------------------------------------------------------------------
 //
@@ -115,6 +138,16 @@
         iVideoDisplay = NULL;
     }
 #endif
+
+    if ( ! iSurfaceId.IsNull() )
+    {
+        //
+        //  Signal to the Playback Plugin that the surface has been removed
+        //
+        TRAP_IGNORE( SignalSurfaceRemovedL() );
+
+        iSurfaceId = TSurfaceId::CreateNullId();
+    }
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -150,6 +183,18 @@
             SurfaceRemoved();
             break;
         }
+        case EPbMsgVideoRemoveDisplayWindow:
+        {
+            if ( iVideoDisplay )
+            {
+                delete iVideoDisplay;
+                iVideoDisplay = NULL;
+            }
+
+            iSurfaceId = TSurfaceId::CreateNullId();
+
+            break;
+        }
 #endif
     }
 
@@ -421,7 +466,7 @@
     MPX_ENTER_EXIT(_L("CMPXVideoPlaybackDisplayHandler::SurfaceCreatedL()"));
 
     TSurfaceId oldSurfaceId = iSurfaceId;
-    
+
     //
     //  Extract the surface parameters from the message
     //
--- a/videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 14 %
+// Version : %version: 15 %
 
 
 // INCLUDE FILES
@@ -43,8 +43,7 @@
 #else
 #include "mpxvideoplaybackcontainer.h"
 #include "mpxvideoplaybackcontrol.h"
-#include <hal.h>
-#include <hal_data.h>
+#include <hwrmlight.h> //light status
 #endif
 
 #include "mpxvideoplaybackcontrol.hrh"
@@ -104,6 +103,8 @@
 
     iTVOutConnected = aTvOutConnected;
 
+    iLight = CHWRMLight::NewL();
+
     // Start the timer if TV out is connected
     if ( iTVOutConnected )
     {
@@ -158,6 +159,11 @@
     // the view updates or deactivates
     EnableBacklight();
 
+    if ( iLight )
+    {
+        delete iLight;
+        iLight = NULL;
+    }
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -612,7 +618,11 @@
     iDisplayTimer->Cancel();
 
     // disable the backlight
-    HAL::Set( HALData::EBacklightState, 0 );
+    MPX_TRAPD( err, 
+    {
+        iLight->ReserveLightL( CHWRMLight::EPrimaryDisplay );
+        iLight->LightOffL( CHWRMLight::EPrimaryDisplay );
+    } );
 }
 
 // -----------------------------------------------------------------------------
@@ -624,7 +634,11 @@
     MPX_ENTER_EXIT(_L("CMPXVideoPlaybackUserInputHandler::EnableBacklight"));
 
     // enable the backlight
-    HAL::Set( HALData::EBacklightState, 1 );
+    MPX_TRAPD( err,
+    {
+        iLight->LightOnL( CHWRMLight::EPrimaryDisplay );
+        iLight->ReleaseLight(CHWRMLight::EPrimaryDisplay );
+    } );
 }
 
 
@@ -691,12 +705,9 @@
     {
         // timeout has happened and the backlight is disabled
         // enable the backlight
-        HAL::Set( HALData::EBacklightState, 1 );
+        EnableBacklight();
     }
 
-    TBool backlightState;
-    TInt ret = HAL::Get( HALData::EBacklightState, backlightState );
-
     // Re start the display backlight timer
     iDisplayTimer->Start( iDisplayTimeOut, iDisplayTimeOut,
                           TCallBack( CMPXVideoPlaybackUserInputHandler::HandleDisplayTimeout, this ) );
--- a/videoplayback/videoplaybackviews/src/mpxvideoplaybackviewfiledetails.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/src/mpxvideoplaybackviewfiledetails.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,12 +15,14 @@
 *
 */
 
-// Version : %version: 8 %
+// Version : %version: e003sa33#9 %
 
 
 //
 //  INCLUDE FILES
 //
+#include <f32file.h>
+
 #include "mpxvideo_debug.h"
 #include "mpxvideoplaybackviewfiledetails.h"
 
@@ -99,4 +101,32 @@
     iFourCCCode = 0;
 }
 
+// -------------------------------------------------------------------------------------------------
+// CMPXVideoPlaybackViewFileDetails::GenerateFileNameL
+// -------------------------------------------------------------------------------------------------
+//
+EXPORT_C HBufC* CMPXVideoPlaybackViewFileDetails::GenerateFileNameL()
+{
+    MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackViewFileDetails::GenerateFileNameL()" ) );
+    
+	HBufC* fileName = NULL;
+
+	if ( iClipName && iClipName->Length()
+			&& EMPXVideoStreaming != iPlaybackMode &&
+    		EMPXVideoLiveStreaming != iPlaybackMode )
+	{
+        //
+        // Get only file name for media details viewer 
+        //
+        //TParsePtrC filePath( iClipName->Des() );
+        //fileName = ( filePath.Name() ).AllocL();
+        TParse parse;
+        parse.Set( iClipName->Des(), NULL, NULL);
+        fileName = ( parse.Name() ).AllocL();
+
+	}
+	
+    return fileName;
+}
+
 //  EOF
--- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/conf/ui_userinputhandlertest.cfg	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/conf/ui_userinputhandlertest.cfg	Fri Mar 12 15:43:00 2010 +0200
@@ -16,7 +16,7 @@
 ETvOutDisconnected 0
 ETvOutConnected 1
 
-EDisplayBacklightOff 0
+EDisplayBacklightOff 2
 EDisplayBacklightOn 1
 
 [Enddefine]
--- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/inc/hal_stub.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/inc/hal_stub.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,17 +15,22 @@
  *
  */
 
-// Version : %version: ou1cpsw#2 %
+// Version : %version: 3 %
 
 #ifndef __HAL_STUB_H__
 #define __HAL_STUB_H__
 
-#include <e32def.h>
-#include <hal_data.h>
-#include <e32property.h>
+#include <e32base.h>
 
+enum TLightStatus
+            {
+            ELightStatusUnknown = 0,
+            ELightOn,              
+            ELightOff,             
+            ELightBlink            
+            };
 
-static TInt  iBacklightState = 1;
+static TLightStatus  iBacklightState = ELightOn;
 
 /**
 @publishedPartner
@@ -33,50 +38,40 @@
 
 A set of static functions to get and set HAL attributes.
 
-@see HALData
+@see CHWRMLight
 */
-class HAL : public HALData
-	{
-public:
-    
-    HAL();
-    virtual ~HAL();
-    
-    /**
-    Gets the value of the specified HAL attribute.
+class CHWRMLight : public CBase
+{
+    public:
 
-    @param aAttribute The HAL attribute.
-    @param aValue      On successful return, contains the attribute value.
+       enum TLightTarget
+            {
+            ENoTarget                    = 0x0,    
+            EPrimaryDisplay              = 0x1,     
+            ESystemTarget                = 0x80000000  
+		    };
+
+    public:
+
+        static CHWRMLight* NewL();
 
-    @return  KErrNone, if successful;
-             KErrNotSupported, if the attribute is not defined in the list
-             of attributes, or is not meaningful for this device.
-         
-    @see HALData::TAttribute
-    @see HALData::TAttributeProperty
-    */
-	static TInt Get(TAttribute aAttribute, TInt& aValue);
+        void ConstructL(); 
+
+        CHWRMLight();
 
-	
-	/**
-    Sets the specified HAL attribute.
+        ~CHWRMLight();
+
+    public: 
+        void ReserveLightL(TInt aTarget);
 
-    @param aAttribute The HAL attribute.
-    @param aValue      The attribute value.
+        void ReleaseLight(TInt aTarget);
+
+        void LightOnL(TInt aTarget);
 
-    @return  KErrNone, if successful;
-             KErrNotSupported, if the attribute is not defined in the list
-             of attributes, or is not meaningful for this device, or is
-             not settable.
-         
-    @see HALData::TAttribute
-    @see HALData::TAttributeProperty
+   	    void LightOffL(TInt aTarget);
 
-    @capability WriteDeviceData or other capability specified
-    for individual attributes in TAttribute
-    */
-	static TInt Set(TAttribute aAttribute, TInt aValue);
-	
-	};
+        TLightStatus LightStatus(TInt aTarget) const;
+
+};
 
 #endif
--- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/hal_stub.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/hal_stub.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#2 %
+// Version : %version: 3 %
 
 
 // INCLUDE FILES
@@ -28,63 +28,62 @@
 // ================= MEMBER FUNCTIONS ==============================================================
 
 // -------------------------------------------------------------------------------------------------
-// HAL::HAL()
+// CHWRMLight::CHWRMLight()
 // C++ default constructor can NOT contain any code, that
 // might leave.
 // -------------------------------------------------------------------------------------------------
 //
-HAL::HAL()
+CHWRMLight::CHWRMLight()
 {
 }
 
+CHWRMLight::~CHWRMLight()
+{
+    MPX_DEBUG(_L("CHWRMLight::~CHWRMLight()"));
+}
 
-// -------------------------------------------------------------------------------------------------
-// CMPXVideoPlaybackControl::~CMPXVideoPlaybackControl()
-// Destructor.
-// -------------------------------------------------------------------------------------------------
-//
-HAL::~HAL()
+CHWRMLight* CHWRMLight::NewL()
 {
-    MPX_DEBUG(_L("HAL::~HAL()"));
+    MPX_DEBUG(_L("CHWRMLight::NewL()"));
+
+    CHWRMLight* self = new (ELeave) CHWRMLight();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+}
+
+void CHWRMLight::ConstructL()
+{
+	 MPX_DEBUG(_L("CHWRMLight::ConstructL()"));
 }
 
-// -------------------------------------------------------------------------------------------------
-// Gets the attribute value.
-// -------------------------------------------------------------------------------------------------
-//
-TInt HAL::Get( TAttribute aAttribute, TInt& aValue )
+void CHWRMLight::ReserveLightL(TInt aTarget)
 {
-    switch ( aAttribute )
-    {
-        case EBacklightState:
-        {
-            aValue = iBacklightState;
-            break;
-        }
-        default:
-            break;
-    }
-    return KErrNone;
+	MPX_DEBUG(_L("CHWRMLight::ReserveLightL()"));
+}
+
+void CHWRMLight::ReleaseLight(TInt aTarget)
+{
+	MPX_DEBUG(_L("CHWRMLight::ReleaseLight()"));
 }
 
-// -------------------------------------------------------------------------------------------------
-// From CCoeControl
-// Gets an indexed component of a compound control.
-// -------------------------------------------------------------------------------------------------
-//
-TInt HAL::Set( TAttribute aAttribute, TInt aValue )
+void CHWRMLight::LightOnL(TInt aTarget)
+{
+	MPX_DEBUG(_L("CHWRMLight::LightOnL()"));
+	iBacklightState = ELightOn;	
+}
+void CHWRMLight::LightOffL(TInt aTarget)
 {
-    switch ( aAttribute )
-    {
-        case EBacklightState:
-        {
-            iBacklightState =  aValue;
-            break;
-        }
-        default:
-            break;
-    }
-    return KErrNone;
+	MPX_DEBUG(_L("CHWRMLight::LightOffL()"));
+	iBacklightState = ELightOff;
+}
+
+TLightStatus CHWRMLight::LightStatus(TInt aTarget) const
+{
+	MPX_DEBUG(_L("CHWRMLight::LightStatus()"));
+	return iBacklightState;
 }
 
 
--- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/userinputhandlertestBlocks.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/userinputhandlertestBlocks.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#5 %
+// Version : %version: 6 %
 
 
 // [INCLUDE FILES] - do not remove
@@ -33,7 +33,6 @@
 #include "mpxvideoplaybackuserinputhandler.h"
 #include "mpxvideo_debug.h"
 #include "hal_stub.h"
-#include <hal_data.h>
 
 //
 // pre-define
@@ -579,10 +578,13 @@
 {
     MPX_DEBUG(_L("CUserinputhandlertest::CheckBacklightState()"));
 
-    TBool backlightState;
+    TLightStatus backlightState = ELightStatusUnknown;
     TInt status;
     
-    HAL::Get( HALData::EBacklightState, backlightState );    
+    CHWRMLight* light = NULL;
+    MPX_TRAPD( err, light = CHWRMLight::NewL() );
+    backlightState = light->LightStatus( CHWRMLight::EPrimaryDisplay );
+    delete light;
 
     TInt result = aItem.GetNextInt( status );
 
--- a/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest.cfg	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest.cfg	Fri Mar 12 15:43:00 2010 +0200
@@ -44,79 +44,79 @@
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 0 ELaunchVideoToPlayer - ENoSender
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENoSender 0
-pause 5000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 0 ELaunchVideoToPlayer - ENoSender
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENoSender 0
+#pause 5000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 1 ELaunchVideoToPlayer - ENotification
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 5000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 1 ELaunchVideoToPlayer - ENotification
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 5000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 2 ELaunchVideoToPlayer - EActiveSpace
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer EActiveSpace 0
-pause 5000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 2 ELaunchVideoToPlayer - EActiveSpace
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer EActiveSpace 0
+#pause 5000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 3 ELaunchVideoToPlayer - EIptvMainLastWatcher
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer EIptvMainLastWatcher 0
-pause 5000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 3 ELaunchVideoToPlayer - EIptvMainLastWatcher
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer EIptvMainLastWatcher 0
+#pause 5000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 4 ELaunchVideoToPlayer - EMatrixMenu
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer EMatrixMenu 0
-pause 5000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 4 ELaunchVideoToPlayer - EMatrixMenu
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer EMatrixMenu 0
+#pause 5000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 5 ELaunchVideoToPlayer - EMatrixMenu, no file defined
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer EMatrixMenu
-pause 5000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 5 ELaunchVideoToPlayer - EMatrixMenu, no file defined
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer EMatrixMenu
+#pause 5000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
@@ -267,66 +267,66 @@
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 17 ELaunchServiceById - ENoSender
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchServiceById ENoSender
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 17 ELaunchServiceById - ENoSender
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchServiceById ENoSender
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 18 ELaunchServiceById - ENotification
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchServiceById ENotification
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 18 ELaunchServiceById - ENotification
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchServiceById ENotification
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 19 ELaunchServiceById - EActiveSpace
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchServiceById EActiveSpace
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 19 ELaunchServiceById - EActiveSpace
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchServiceById EActiveSpace
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 20 ELaunchServiceById - EIptvMainLastWatcher
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchServiceById EIptvMainLastWatcher
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 20 ELaunchServiceById - EIptvMainLastWatcher
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchServiceById EIptvMainLastWatcher
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 21 ELaunchServiceById - EMatrixMenu
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchServiceById EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 21 ELaunchServiceById - EMatrixMenu
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchServiceById EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
--- a/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest2.cfg	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest2.cfg	Fri Mar 12 15:43:00 2010 +0200
@@ -130,151 +130,151 @@
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 106 EOpenServiceCatalogue - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenServiceCatalogue EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 106 EOpenServiceCatalogue - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenServiceCatalogue EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 107 EOpenVideoShop - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenVideoShop EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 107 EOpenVideoShop - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenVideoShop EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 108 ELiveTVMessage - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage ELiveTVMessage EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 108 ELiveTVMessage - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage ELiveTVMessage EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 109 EOpenRecordingsCategory - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenRecordingsCategory EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 109 EOpenRecordingsCategory - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenRecordingsCategory EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 110 EOpenVCSettings - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenVCSettings EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 110 EOpenVCSettings - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenVCSettings EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 111 EOpenVCSettingsFeedSubscriptions - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenVCSettingsFeedSubscriptions EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 111 EOpenVCSettingsFeedSubscriptions - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenVCSettingsFeedSubscriptions EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 112 EOpenVCSettingsAddFeed - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenVCSettingsAddFeed EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 112 EOpenVCSettingsAddFeed - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenVCSettingsAddFeed EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 113 ELiveTVMessageLastWatched - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage ELiveTVMessageLastWatched EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 113 ELiveTVMessageLastWatched - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage ELiveTVMessageLastWatched EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 114 EOpenVCSettingsLiveTVSubscriptions - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenVCSettingsLiveTVSubscriptions EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 114 EOpenVCSettingsLiveTVSubscriptions - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenVCSettingsLiveTVSubscriptions EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
 # CaseClass: core
 #------------------------------------------------------------------------------------
-[Test]
-title 115 EOpenVCSettingsEditFeed - EMatrixMenu, while playing
-create VideoPlayerStartupApiTest test
-test ActivationMessage ELaunchVideoToPlayer ENotification 0
-pause 3000
-test ActivationMessage EOpenVCSettingsEditFeed EMatrixMenu
-pause 3000
-test KillFusion
-delete test
-[Endtest]
+#[Test]
+#title 115 EOpenVCSettingsEditFeed - EMatrixMenu, while playing
+#create VideoPlayerStartupApiTest test
+#test ActivationMessage ELaunchVideoToPlayer ENotification 0
+#pause 3000
+#test ActivationMessage EOpenVCSettingsEditFeed EMatrixMenu
+#pause 3000
+#test KillFusion
+#delete test
+#[Endtest]
 
 #------------------------------------------------------------------------------------
 #
--- a/videoplayer_plat/videoplayer_startup_api/tsrc/group/VideoPlayerStartupApiTest.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayer_plat/videoplayer_startup_api/tsrc/group/VideoPlayerStartupApiTest.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -47,7 +47,6 @@
 
 SOURCE          VideoPlayerStartupApiTest.cpp
 SOURCE          VideoPlayerStartupApiTestBlocks.cpp
-SOURCE          VCXTestSmClient.cpp
 
 //RESOURCE        resource_file
 //RESOURCE        resource_file2
@@ -78,8 +77,6 @@
 LIBRARY         insock.lib
 LIBRARY         esock.lib
 LIBRARY         sendui.lib
-LIBRARY         IptvUtil.lib
-LIBRARY         IPTVClientAPI.lib
 LIBRARY         FLOGGER.lib
 LIBRARY         ecom.lib
 LIBRARY         VCXTestMyVideosCollectionClient.lib
--- a/videoplayer_plat/videoplayer_startup_api/tsrc/inc/VideoPlayerStartupApiTest.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayer_plat/videoplayer_startup_api/tsrc/inc/VideoPlayerStartupApiTest.h	Fri Mar 12 15:43:00 2010 +0200
@@ -48,7 +48,6 @@
 // FORWARD DECLARATIONS
 //class ?FORWARD_CLASSNAME;
 class CVideoPlayerStartupApiTest;
-class CVCXTestSmClient;
 class CVCXTestMyVideosCollectionClient;
 
 // DATA TYPES
@@ -168,8 +167,6 @@
         
         RPointerArray<CTestProcess> iProcessHandles;
         
-        CVCXTestSmClient* iSmClient;
-        
         CVCXTestMyVideosCollectionClient* iMyVideosCollectionClient;
         CVCXTestMessageWait* iMessageWait;
         TInt iCollectionError;
--- a/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTest.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTest.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -21,7 +21,6 @@
 #include <SettingServerClient.h>
 
 #include "VideoPlayerStartupApiTest.h"
-#include "VCXTestSmClient.h"
 
 // EXTERNAL DATA STRUCTURES
 //extern  ?external_data;
@@ -131,8 +130,6 @@
                           CStifLogger::ETxt,
                           CStifLogger::EFile,
                           EFalse );
-    
-    iSmClient = CVCXTestSmClient::NewL();
         
     SendTestClassVersion();
     }
@@ -164,9 +161,6 @@
 
     // Delete logger
     delete iLog; 
-    
-    delete iSmClient;
-    iSmClient = NULL;
     }
 
 //-----------------------------------------------------------------------------
--- a/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTestBlocks.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTestBlocks.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -32,7 +32,6 @@
 
 #include "VideoPlayerStartupApiTest.h"
 #include "VCXTestLog.h"
-#include "VCXTestSmClient.h"
 #include "VCXTestMyVideosCollectionClient.h"
 
 // CONSTANTS
@@ -70,7 +69,7 @@
         {  
         // Copy this line for every implemented function.
         // First string is the function name used in TestScripter script file.
-        // Second is the actual implementation member function. 
+        // Second is the actual implementation member function.
         ENTRY( "ActivationMessage", CVideoPlayerStartupApiTest::ActivationMessageL ),
         ENTRY( "KillFusion", CVideoPlayerStartupApiTest::KillFusionL ),
         //ADD NEW ENTRY HERE
@@ -118,7 +117,7 @@
         // Refresh collection.
         iMyVideosCollectionClient->RefreshCollectionL();
         iMessageWait->AddMessage( EVCXTestVideoListRefreshed );
-        iMessageWait->WaitForAllL( 10, ETrue );    
+        iMessageWait->WaitForAllL( 10, ETrue );
         }
     
     if( iCollectionError != KErrNone )
@@ -207,7 +206,6 @@
         case TVideoPlayerActivationMessage::ELaunchServiceById:
             {
             VCXLOGLO1("CVideoPlayerStartupApiTest:: msgType: ELaunchServiceById");
-            iSmClient->GetAnyServiceIdL( message.iServiceId );
             }
             break;
             
--- a/videoplayerapp/group/bld.inf	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/group/bld.inf	Fri Mar 12 15:43:00 2010 +0200
@@ -16,7 +16,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#3 %
+// Version : %version: ou1cpsw#4 %
 
 
 
@@ -24,6 +24,5 @@
 
 #include "../lwplayer/group/bld.inf"
 #include "../mpxvideoplayer/group/bld.inf"
-#include "../videoplayerlauncher/group/bld.inf"	
 
 // EOF
--- a/videoplayerapp/lwplayer/src/lwplayerappui.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/lwplayer/src/lwplayerappui.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version: 7 %
+// Version : %version: 8 %
 
 
 #include <DocumentHandler.h>
@@ -208,14 +208,14 @@
 
         MPX_DEBUG(_L("    filename = %S"), &fileName);
 
-        if ( !iEmbeddedMPCreated )
+        if ( ! iEmbeddedMPCreated )
         {
             //
             //  Launch the Media Player for ProgDL playback
             //  Ignore the errors since the Media Player is
             //  responsible for all error messages once launched.
             //
-            TRAPD( err, LaunchMediaPlayerL( fileName, genParList ) );
+            MPX_TRAPD( err, LaunchMediaPlayerL( fileName, genParList ) );
 
             if ( err != KErrNone )
             {
@@ -232,8 +232,8 @@
 CLWPlayerAppUi::LaunchMediaPlayerL( const TDesC& afilename,
                                     const CAiwGenericParamList* aparamList )
 {
-    MPX_DEBUG(_L("CLWPlayerAppUi::LaunchMediaPlayerL(%S)"), &afilename);
-
+    MPX_ENTER_EXIT(_L("CLWPlayerAppUi::LaunchMediaPlayerL()"),
+                   _L("afilename = %S"), &afilename );
 
     //
     //  The download manager has already performed recognition on the file
@@ -250,7 +250,7 @@
     //  Call the document handler to open the file
     //  It will leave if the filename is not present
     //
-    TRAPD( err, handler.OpenTempFileL( afilename, file ));
+    MPX_TRAPD( err, handler.OpenTempFileL( afilename, file ));
 
     if ( err == KErrNotFound )
     {
@@ -264,7 +264,7 @@
     {
         CleanupClosePushL( file );
 
-        TRAPD( err, handler.OpenFileEmbeddedL( file, datatype, *aparamList ) );
+        MPX_TRAPD( err, handler.OpenFileEmbeddedL( file, datatype, *aparamList ) );
 
         //
         //  ignore some document handler errors
--- a/videoplayerapp/mpxvideoplayer/data/mpxvideoplayer_reg.rss	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/data/mpxvideoplayer_reg.rss	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  da1mmcf#12 %
+// Version : %version:  13 %
 
 //  INCLUDES
 #include <appinfo.rh>
@@ -40,9 +40,6 @@
     localisable_resource_id = R_MPXVIDEOPLAYER_LOCALISABLE_APP_INFO;
     embeddability = KAppEmbeddable;
 
-    // Hide this application, launcher will be visible instead
-    hidden = KAppIsHidden;
-
     datatype_list =
         {
         DATATYPE { priority=EDataTypePrioritySystem; type="video/avi"; },
--- a/videoplayerapp/mpxvideoplayer/group/mpxvideoplayer.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/group/mpxvideoplayer.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 27 %
+// Version : %version: da1mmcf#28 %
 
 #include <platform_paths.hrh>
 #include <data_caging_paths.hrh>
@@ -73,15 +73,7 @@
 LIBRARY         commonengine.lib
 LIBRARY         estor.lib
 LIBRARY         apgrfx.lib
-LIBRARY         cmmanager.lib
-LIBRARY         commsdat.lib
-LIBRARY         mpsettengine.lib
 LIBRARY         playbackhelper.lib
-LIBRARY         esock.lib
-LIBRARY         extendedconnpref.lib
-LIBRARY         netmeta.lib
-LIBRARY         commdb.lib
-
 LIBRARY         mpxviewutility.lib      // MPX view utility
 LIBRARY         mpxplaybackutility.lib    // MPX playback utility
 LIBRARY         mpxcollectionutility.lib
--- a/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappui.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappui.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: da1mmcf#14 %
+// Version : %version: 15 %
 
 
 #ifndef CMPXVIDEOPLAYERAPPUI_H
@@ -107,12 +107,6 @@
          * @return Active akn view or NULL if no views.
          */
         CAknView* View();
-
-        /**
-         * Sends a message to Matrix menu.
-         * @param aMessage The message to be sent.
-         */
-        void LaunchMmViewL( const TDesC8& aMessage );
         
     private:
         /**
@@ -161,7 +155,6 @@
 
         // own
         CMpxVideoPlayerAppUiEngine* iAppUiEngine;
-        TBool                       iEndKeyExit;
 
 };
 
--- a/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappuiengine.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappuiengine.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: da1mmcf#27 %
+// Version : %version: e92_31 %
 
 
 #ifndef CMPXVIDEOPLAYERAPPUIENGINE_H
@@ -42,7 +42,6 @@
 class MMPXCollectionUiHelper;
 class CAiwGenericParamList;
 class CVideoPlaylistUtility;
-class RConnection;
 
 /**
 *  Application UI class.
@@ -97,11 +96,6 @@
         void ActivatePlaybackViewL();
 
         /**
-         * Sets mpx components ready for application shutdown
-         */
-        void PrepareCloseMpxL();
-
-        /**
          * Sets AppUiEngine in stand alone "mode"
          */
         void StartStandAloneL();
@@ -116,12 +110,6 @@
          */
         void StepBackCollectionPathL();
 
-        /**
-         * Process activation message.
-         * @param aMsg reference to activation message
-         */
-        void ProcessActivationMessageL( const TDesC8 &aMsg );
-
         /*
          * Handle embedded playback message
          * @param aMessageUid message identification uid
@@ -232,14 +220,11 @@
 
         void ClearPdlInformation();
 
-        /**
-         *  Checks if application has to exit to Matrix root menu
-         */
-        TBool ExitToMatrixMenu();
-
         void InitializeFileL( const TDesC& aFileName );
 
         void ClosePlaybackPluginL();
+        
+        void SignalViewPdlReloading();
 
     private:
         /**
@@ -272,41 +257,6 @@
                          CMediaRecognizer::TMediaType aMediaType,
                          TBool aUseFileHandle = EFalse );
 
-        /*
-         *  Sets the access point member variable
-         */
-        void SetAccessPointL();
-
-        /**
-         *  Checks if the the AP is WLAN
-         *
-         *  @param aAPId - the ID of access point to be evaluated
-         *  @return ETrue if the bearer type is WLAN for this access point
-         */
-        TBool IsWLANAccessPointL(TInt aAPId);
-
-        /**
-         *  Reads the default AP
-         *
-         *  @return ID of the default Access Point read from the config file
-         */
-        TInt GetDefaultAccessPointL();
-
-        /**
-         *  Converts UID of the AP to and Access Point Id
-         *
-         *  @return ID of the Access Point
-         */
-        TInt GetAccessPointIdForUIDL(TUint32 aAPUid);
-
-        /**
-         *  Tries to get AP ID for connection.
-         *  If default AP is not available, AP is queried from the user.
-         *
-         *  @return ID of the Access Point
-         */
-        TUint32 TryToGetAccessPointL();
-
         TInt HandleAiwGenericParamListL( const CAiwGenericParamList* aParams );
 
         /**
@@ -340,20 +290,6 @@
        */
        void UpdatePbPluginMediaL();
 
-       /*
-       * Sends custom command to active view
-       *
-       * @param aMsg custom message data
-       */
-       void SendCustomCommandToActiveViewL( const TDesC8& aMsg );
-
-       /*
-       * Gets IAP ID from active connection.
-       *
-       * @param aConn   Connection to query.
-       */
-       TUint32 QueryIap( RConnection& aConn );
-
        void InitializeStreamingLinkL( const TDesC& aUri );
        void InitializePlaylistL( const CMPXCollectionPlaylist& aPlaylist, TBool aPlay );
 
@@ -376,11 +312,9 @@
         CMpxVideoEmbeddedPdlHandler*  iPdlHandler;       // own
 
         TInt                     iAccessPointId;
-        TInt                     iExtAccessPointId;
         TBool                    iMultilinkPlaylist;
         TBool                    iSeekable;
         TBool                    iUpdateSeekInfo;
-        TBool                    iExitToMatrixMenu;
 };
 
 //
--- a/videoplayerapp/mpxvideoplayer/sis/VideoPlayer.pkg	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/sis/VideoPlayer.pkg	Fri Mar 12 15:43:00 2010 +0200
@@ -1,4 +1,4 @@
-;
+;
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
@@ -41,13 +41,6 @@
 "/epoc32/data/Z/resource/apps/mpxvideoplayer_aif.mif"                   - "!:/resource/apps/mpxvideoplayer_aif.mif"
 
 ;
-; Video Player launcher
-;
-"/epoc32/release/armv5/urel/videoplayerlauncher.exe"                    - "!:/sys/bin/videoplayerlauncher.exe"
-"/epoc32/data/z/resource/apps/videoplayerlauncher.rsc"                  - "!:/resource/apps/videoplayerlauncher.rsc"
-"/epoc32/data/z/private/10003a3f/apps/videoplayerlauncher_reg.rsc"      - "!:/private/10003a3f/import/apps/videoplayerlauncher_reg.rsc"
-
-;
 ; Playback Plugin
 ;
 "/epoc32/release/armv5/urel/mpxvideohelixplayback.dll"                  - "!:/sys/bin/mpxvideohelixplayback.dll"
@@ -88,20 +81,6 @@
 "/epoc32/data/z/private/10003a3f/apps/lwplayer_reg.rsc"                 - "!:/private/10003a3f/import/apps/lwplayer_reg.rsc" 
 
 ;
-; Matrix (Homescreen)
-;
-"/epoc32/release/armv5/urel/vcxnsahplugin.dll"                          - "!:/sys/bin/vcxnsahplugin.dll"
-"/epoc32/data/z/resource/plugins/vcxnsahplugin.rsc"                     - "!:/resource/plugins/vcxnsahplugin.rsc"
-"/epoc32/release/armv5/urel/vcxnscontentharvesterplugin.dll"            - "!:/sys/bin/vcxnscontentharvesterplugin.dll"
-"/epoc32/data/z/resource/plugins/vcxnscontentharvesterplugin.rsc"       - "!:/resource/plugins/vcxnscontentharvesterplugin.rsc"
-"/epoc32/data/z/resource/apps/videocontentharvester.rsc"             - "!:/resource/apps/videocontentharvester.rsc"
-"/epoc32/data/z/resource/apps/videosuiteres.rsc"                        - "!:/resource/apps/videosuiteres.rsc"
-"/epoc32/include/videosuiteres.rsg"                                     - "!:/resource/apps/videosuiteres.rsg"
-"/epoc32/data/Z/resource/apps/videosuite.mif"                           - "!:/resource/apps/videosuite.mif"
-"../../../homescreenplugins/videosuiteconf/data/suite.xml"              - "!:/private/101f4cd2/import/suites/tvvideosuite/suite.xml"
-"../../../homescreenplugins/videosuiteconf/data/vcns_matrix_items.xml"  - "!:/private/101f4cd2/import/suites/tvvideosuite/vcns_matrix_items.xml"
-
-;
 ; File details dialog
 ;
 "/epoc32/release/armv5/urel/MPFileDetailsDialog.dll"                    - "!:/sys/bin/MPFileDetailsDialog.dll"
@@ -114,22 +93,6 @@
 "/epoc32/data/z/resource/plugins/filedetailsplugin.rsc"                 - "!:/resource/plugins/filedetailsplugin.rsc"
 
 ;
-; Iptv Server
-;
-"/epoc32/release/armv5/urel/iptvserver.exe"                             - "!:/sys/bin/iptvserver.exe"
-
-;
-; Iptv Client API
-;
-"/epoc32/release/armv5/urel/iptvclientapi.dll"                          - "!:/sys/bin/iptvclientapi.dll"
-
-;
-; Iptv Utils
-;
-"/epoc32/release/armv5/urel/iptvutil.dll"                               - "!:/sys/bin/iptvutil.dll"
-"/epoc32/data/z/resource/apps/iptvmimesupport.rsc"                      - "!:/resource/apps/iptvmimesupport.rsc"
-
-;
 ; MyVideos Collection Plugin
 ;
 "/epoc32/release/armv5/urel/vcxmyvideoscollectionplugin.dll"            - "!:/sys/bin/vcxmyvideoscollectionplugin.dll"
@@ -148,64 +111,6 @@
 "/epoc32/release/armv5/urel/cseschedulerclient.dll"                     - "!:/sys/bin/cseschedulerclient.dll"
 
 ;
-; View Message Utility
-;
-"/epoc32/release/armv5/urel/vcxviewmessageutility.dll"                  - "!:/sys/bin/vcxviewmessageutility.dll"
-
-;
-; Vcx Notifier
-;
-"/epoc32/release/armv5/urel/vcxnotifierplugin.dll"                      - "!:/sys/bin/vcxnotifierplugin.dll"
-"/epoc32/data/z/resource/plugins/vcxnotifierplugin.rsc"                 - "!:/resource/plugins/vcxnotifierplugin.rsc"
-"/epoc32/data/z/resource/plugins/vcxnotifier.rsc"                       - "!:/resource/plugins/vcxnotifier.rsc"
-
-;
-; Scheduled Download Plugin
-;
-"/epoc32/release/armv5/urel/iptvscheduleddownloadplugin.dll"            - "!:/sys/bin/iptvscheduleddownloadplugin.dll"
-"/epoc32/data/z/resource/plugins/iptvscheduleddownloadplugin.rsc"       - "!:/resource/plugins/iptvscheduleddownloadplugin.rsc"
-
-;
-; Provisioning App
-;
-"/epoc32/release/armv5/urel/iptvprovisioningapp.exe"                    - "!:/sys/bin/iptvprovisioningapp.exe"
-"/epoc32/data/z/private/10003a3f/apps/iptvprovisioningapp_reg.rsc"      - "!:/private/10003a3f/import/apps/iptvprovisioningapp_reg.rsc"
-"/epoc32/data/z/resource/apps/iptvprovisioningapp.rsc"                  - "!:/resource/apps/iptvprovisioningapp.rsc"
-
-;
-; Provisioning Processor
-;
-"/epoc32/release/armv5/urel/iptvprovisioningprocessor.dll"              - "!:/sys/bin/iptvprovisioningprocessor.dll"
-
-;
-; OMA Provisioning
-;
-"/epoc32/release/armv5/urel/iptvomaprovisioningadapter.dll"             - "!:/sys/bin/iptvomaprovisioningadapter.dll"
-"/epoc32/data/z/resource/plugins/iptvomaprovisioningadapter.rsc"        - "!:/resource/plugins/iptvomaprovisioningadapter.rsc"
-
-; 
-; Provisioning Recognizer
-;
-"/epoc32/release/armv5/urel/iptvprovrec.dll"                            - "!:/sys/bin/iptvprovrec.dll"
-"/epoc32/data/z/resource/plugins/iptvprovrec.rsc"                       - "!:/resource/plugins/iptvprovrec.rsc"
-
-;
-; RSS Plugin
-;
-"/epoc32/release/armv5/urel/iptvrssplugin.dll"                          - "!:/sys/bin/iptvrssplugin.dll"
-"/epoc32/data/z/resource/plugins/iptvrssplugin.rsc"                     - "!:/resource/plugins/iptvrssplugin.rsc"
-
-;
-; VOD UI Engine
-;
-"/epoc32/release/armv5/urel/vcxnsuiengine.dll"                          - "!:/sys/bin/vcxnsuiengine.dll"
-
-; 
-; LiveTV Utils
-;
-"/epoc32/release/armv5/urel/livetvutils.dll"                            - "!:/sys/bin/livetvutils.dll"
-
-;
 ; MediaSettings
 ;
 "/epoc32/release/armv5/urel/mediasettings.exe"                          - "!:/sys/bin/mediasettings.exe" 
@@ -241,37 +146,17 @@
 ;
 ; View Plugins
 ;
-"/epoc32/release/armv5/urel/vcxnssettingsplugin.dll"                    - "!:/sys/bin/vcxnssettingsplugin.dll" 
-"/epoc32/data/z/resource/plugins/vcxnssettingsplugin.rsc"               - "!:/resource/plugins/vcxnssettingsplugin.rsc"
-
-"/epoc32/release/armv5/urel/vcxhgvodplugin.dll"                         - "!:/sys/bin/vcxhgvodplugin.dll"
-"/epoc32/data/z/resource/plugins/vcxhgvodplugin.rsc"                    - "!:/resource/plugins/vcxhgvodplugin.rsc"
-
 "/epoc32/release/armv5/urel/vcxhgmyvideosplugin.dll"                    - "!:/sys/bin/vcxhgmyvideosplugin.dll"
 "/epoc32/data/z/resource/plugins/vcxhgmyvideosplugin.rsc"               - "!:/resource/plugins/vcxhgmyvideosplugin.rsc"
 
-"/epoc32/release/armv5/urel/vcxnsscheduleplugin.dll"                    - "!:/sys/bin/vcxnsscheduleplugin.dll"
-"/epoc32/data/z/resource/plugins/vcxnsscheduleplugin.rsc"               - "!:/resource/plugins/vcxnsscheduleplugin.rsc"
-
 ;
 ; Views
 ;
-"/epoc32/release/armv5/urel/vcxnssettingsview.dll"                      - "!:/sys/bin/vcxnssettingsview.dll"
-"/epoc32/data/z/resource/apps/vcxnssettingsview.rsc"                    - "!:/resource/apps/vcxnssettingsview.rsc"
-
 "/epoc32/release/armv5/urel/vcxhgmyvideos.dll"                          - "!:/sys/bin/vcxhgmyvideos.dll"
 "/epoc32/data/z/resource/apps/vcxhgmyvideos.rsc"                        - "!:/resource/apps/vcxhgmyvideos.rsc"
 "/epoc32/data/z/resource/apps/vcxhgmyvideos.mif"                        - "!:/resource/apps/vcxhgmyvideos.mif"
 "/epoc32/data/z/resource/apps/vcxhgmyvideosicons.mif"                   - "!:/resource/apps/vcxhgmyvideosicons.mif"
 
-"/epoc32/release/armv5/urel/vcxhgvodui.dll"                             - "!:/sys/bin/vcxhgvodui.dll"
-"/epoc32/data/z/resource/apps/vcxhgvodui.rsc"                           - "!:/resource/apps/vcxhgvodui.rsc"
-
-"/epoc32/data/z/resource/apps/vcxhgvoddefaulticons.mif"                 - "!:/resource/apps/vcxhgvoddefaulticons.mif"
-
-"/epoc32/release/armv5/urel/vcxnsscheduleview.dll"                      - "!:/sys/bin/vcxnsscheduleview.dll"
-"/epoc32/data/z/resource/apps/vcxnsscheduleview.rsc"                    - "!:/resource/apps/vcxnsscheduleview.rsc"
-
 ;
 ; My Videos indicator plugin
 ;
@@ -279,11 +164,6 @@
 "/epoc32/data/z/resource/plugins/myvideosindicatorplugin.rsc"           - "!:/resource/plugins/myvideosindicatorplugin.rsc"
 
 ;
-; Default VOD services 
-;
-"/epoc32/data/z/private/102750D5/services.xml"                          - "c:/private/102750D5/services.xml"
-
-;
 ; Help files
 ;
 "/epoc32/data/z/resource/xhtml/01/0x102750E2/contents.zip"              - "!:/resource/xhtml/01/0x102750E2/contents.zip"
@@ -295,21 +175,12 @@
 ; Language specific files for Video Player application
 ; If user want to create sis files for a specific variant then add supported languages here 
 ;
-"/epoc32/data/z/resource/apps/vcxnssettingsview.r01"                    - "!:/resource/apps/vcxnssettingsview.r01"
 "/epoc32/data/z/resource/mediasettings.r01"                             - "!:/resource/mediasettings.r01"
 "/epoc32/data/z/resource/apps/MPFileDetails.r01"                        - "!:/resource/apps/MPFileDetails.r01"
-"/epoc32/data/z/resource/apps/videosuiteres.r01"                        - "!:/resource/apps/videosuiteres.r01" 
 "/epoc32/data/z/resource/apps/mediasettings.r01"                        - "!:/resource/apps/mediasettings.r01" 
 "/epoc32/data/z/resource/apps/vcxhgmyvideos.r01"                        - "!:/resource/apps/vcxhgmyvideos.r01"
-"/epoc32/data/z/resource/apps/vcxhgvodui.r01"                           - "!:/resource/apps/vcxhgvodui.r01"
-"/epoc32/data/z/resource/plugins/iptvomaprovisioningadapter.r01"        - "!:/resource/plugins/iptvomaprovisioningadapter.r01"
-"/epoc32/data/z/resource/apps/iptvprovisioningapp.r01"                  - "!:/resource/apps/iptvprovisioningapp.r01"
-"/epoc32/data/z/resource/apps/vcxnsscheduleview.r01"                    - "!:/resource/apps/vcxnsscheduleview.r01"
-"/epoc32/data/z/resource/plugins/vcxnotifier.r01"                       - "!:/resource/plugins/vcxnotifier.r01"
 "/epoc32/data/z/resource/apps/mpxvideoplaybackcontrols.r01"             - "!:/resource/apps/mpxvideoplaybackcontrols.r01"
 "/epoc32/data/z/resource/apps/mpxvideoplaybackviews.r01"                - "!:/resource/apps/mpxvideoplaybackviews.r01"
 "/epoc32/data/z/resource/apps/lwplayer.r01"                             - "!:/resource/apps/lwplayer.r01"
 "/epoc32/data/z/resource/apps/mpxvideoplayer.r01"                       - "!:/resource/apps/mpxvideoplayer.r01"
-"/epoc32/data/z/resource/apps/videoplayerlauncher.r01"                  - "!:/resource/apps/videoplayerlauncher.r01"
-"/epoc32/data/z/resource/apps/videocontentharvester.r01"                - "!:/resource/apps/videocontentharvester.r01"
 
--- a/videoplayerapp/mpxvideoplayer/src/mpxvideoembeddedpdlhandler.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/src/mpxvideoembeddedpdlhandler.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  11 %
+// Version : %version:  12 %
 
 
 #include <mpxcommand.h>
@@ -106,6 +106,8 @@
             //  New download received, close old playback plugin
             //
             iAppUiEngine->ClosePlaybackPluginL();
+            
+            iAppUiEngine->SignalViewPdlReloading();
 
             StartNewDownloadL( aDlId, aFileName );
         }
--- a/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 34 %
+// Version : %version: e92_37 %
 
 
 #include <hlplch.h>                     // Help launcher
@@ -44,19 +44,12 @@
 #include "mpxvideo_debug.h"
 #include "videoplayerpskeys.h"
 
-// Matrix uid, needed for activating the suite view.
-const TInt KVcxMatrixUid = 0x101F4CD2;
-
-// The action=exit flag tells menu that the suite app view is exiting via options->exit.
-_LIT8( KVcxVideoSuiteExitMessage, "mm://tvvideosuite?action=exit" );
-
 // ======== MEMBER FUNCTIONS ========
 // -----------------------------------------------------------------------------
 // CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi
 // -----------------------------------------------------------------------------
 //
 CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi()
-    : iEndKeyExit( EFalse )
 {
     MPX_DEBUG(_L("CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi()"));
 }
@@ -71,8 +64,6 @@
 
     BaseConstructL( EAknEnableSkin | EAknSingleClickCompatible );
 
-    DoWgIdUpkeep();
-
     if ( IsEmbedded() )
     {
         //
@@ -80,52 +71,10 @@
         //
         SetOrientationL( CAknAppUiBase::EAppUiOrientationLandscape );
     }
-    else
-    {
-        //
-        //  if we are stand alone mode store window group id to RProperty
-        //  so we can identify it in ActionHandlerPlugin.
-        //
-        RProperty::Define( KVideoPlayerRPropertyCategory,
-                           KVideoPlayerRPropertyWGIdKey,
-                           RProperty::EInt );
-
-        RProperty::Set( KVideoPlayerRPropertyCategory,
-                        KVideoPlayerRPropertyWGIdKey,
-                        iCoeEnv->RootWin().Identifier() );
-    }
 
     iAppUiEngine = CMpxVideoPlayerAppUiEngine::NewL( this );
 }
 
-
-// -----------------------------------------------------------------------------
-// CMpxVideoPlayerAppUi::DoWgIdUpkeer
-// Checks if stored wgid is run by other application than us
-// -----------------------------------------------------------------------------
-//
-void CMpxVideoPlayerAppUi::DoWgIdUpkeep()
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::DoWgIdUpkeep()"));
-
-    // Do the upkeep for stand alone wg identifier
-    // If we find that the WgId of this application is same
-    // as the one stored in RProperty we know that the stand
-    // alone has crashed and we have to clear it.
-    TInt wgId( 0 );
-    TInt err( RProperty::Get( KVideoPlayerRPropertyCategory, KVideoPlayerRPropertyWGIdKey, wgId ) );
-
-    if ( wgId && !err )
-    {
-        if ( IsEmbedded() && wgId == iCoeEnv->RootWin().Identifier() )
-        {
-            // Stored wgId is ours and we are in embedded mode. Delete!
-            RProperty::Delete( KVideoPlayerRPropertyCategory,
-                               KVideoPlayerRPropertyWGIdKey );
-        }
-    }
-}
-
 // -----------------------------------------------------------------------------
 // CMpxVideoPlayerAppUi::~CMpxVideoPlayerAppUi
 // Destructor. Frees reserved resources
@@ -135,13 +84,6 @@
 {
     MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::~CMpxVideoPlayerAppUi()"));
 
-    // If we are running in embedded we keep the RProperty alive when exiting.
-    if ( ! IsEmbedded() )
-    {
-        RProperty::Delete( KVideoPlayerRPropertyCategory,
-                           KVideoPlayerRPropertyWGIdKey );
-    }
-
     delete iAppUiEngine;
 }
 
@@ -180,13 +122,15 @@
 void CMpxVideoPlayerAppUi::HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination )
 {
     TInt eventType = aEvent.Type();
-    if ( eventType == KAknUidValueEndKeyCloseEvent // End Call key
-            || eventType == KAknShutOrHideApp ) // Exit cmd from Task Switcher
+
+    //
+    //  Close from the End Call Key or the Exit Cmd from the Task Switcher
+    //
+    if ( eventType == KAknUidValueEndKeyCloseEvent || eventType == KAknShutOrHideApp )
     {
         MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleWsEventL() Closed by framework"));
 
-        iEndKeyExit = ETrue;
-        iAppUiEngine->PrepareCloseMpxL();
+        iAppUiEngine->ClosePlaybackPluginL();
     }
 
     CAknAppUi::HandleWsEventL( aEvent, aDestination );
@@ -208,17 +152,7 @@
         {
             MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleCommandL() - Exit"));
 
-            iAppUiEngine->PrepareCloseMpxL();
-
-            //
-            //  Send message to matrix menu on a stand alone instance if:
-            //     1)  End Key is pressed
-            //     2)  Exit command has been issued
-            //
-            if ( ! IsEmbedded() && ( ! iEndKeyExit && iAppUiEngine->ExitToMatrixMenu() ) )
-            {
-                LaunchMmViewL( KVcxVideoSuiteExitMessage );
-            }
+            iAppUiEngine->ClosePlaybackPluginL();
 
             HandleExit();
             break;
@@ -239,11 +173,6 @@
             iAppUiEngine->ClearPdlInformation();
             break;
         }
-        default:
-        {
-            // do nothing if the command is not reconized
-            break;
-        }
     }
 }
 
@@ -378,23 +307,3 @@
     return iView;
 }
 
-// ---------------------------------------------------------------------------
-// Sends a message to Matrix Menu
-// ---------------------------------------------------------------------------
-//
-void CMpxVideoPlayerAppUi::LaunchMmViewL( const TDesC8& aMessage )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::LaunchMmViewL()"));
-
-    TApaTaskList taskList( iCoeEnv->WsSession() );
-    TApaTask task = taskList.FindApp( TUid::Uid( KVcxMatrixUid ) );
-
-    if ( task.Exists() )
-    {
-        //
-        //  Matrix is already running in background - send APA Message
-        //
-        task.SendMessage( TUid::Uid( KUidApaMessageSwitchOpenFileValue ), aMessage );
-    }
-}
-
--- a/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappuiengine.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappuiengine.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: da1mmcf#61 %
+// Version : %version: e92_66 %
 
 
 #include <eikon.hrh>
@@ -39,18 +39,10 @@
 #include <mpxcollectionhelperfactory.h>
 #include <mpxcollectionplugin.hrh>
 #include <mpxmediageneralextdefs.h>
-
 #include <streaminglinkmodel.h>
-#include <mpsettingsmodel.h>
 #include <coeutils.h>
 #include <videoplaylistutility.h>
-#include <cmmanagerext.h>
-#include <cmpluginwlandef.h>
-#include <commdb.h>             // CMDBSession
-#include <commsdattypesv1_1.h>  // CCDWAPIPBearerRecord
-#include <es_sock.h>
-#include <commdbconnpref.h>     // TCommDbConnPref
-#include <extendedconnpref.h>
+#include <mmf/common/mmfcontrollerframeworkbase.h>
 
 #include "mpxvideoplayerappuiengine.h"
 #include "mpxvideoplayerlogger.h"
@@ -60,8 +52,6 @@
 #include "mpxvideo_debug.h"
 #include "mpxvideoplayercustomviewmsgconsts.h"
 
-_LIT( KMpxVideoPlayerQueryIap, "IAP\\Id" );
-
 const TInt KMpxPlaybackPluginTypeUid = 0x101FFCA0;
 
 // -----------------------------------------------------------------------------
@@ -75,11 +65,10 @@
       iCollectionUtility( NULL ),
       iExitAo( NULL ),
       iRecognizer( NULL ),
-      iExtAccessPointId( KErrUnknown ),
+      iAccessPointId( KUseDefaultIap ),
       iMultilinkPlaylist(EFalse),
       iSeekable(ETrue),
-      iUpdateSeekInfo(EFalse),
-      iExitToMatrixMenu(ETrue)
+      iUpdateSeekInfo(EFalse)
 {
 }
 
@@ -235,7 +224,8 @@
 
     if ( iPlaybackUtility )
     {
-        TRAP_IGNORE( iPlaybackUtility->CommandL( EPbCmdClose ) );
+        MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager();
+        TRAP_IGNORE( manager.ClearSelectPlayersL() );
         iPlaybackUtility->Close();
     }
 }
@@ -335,7 +325,7 @@
             {
                 TInt32 apId = KErrUnknown;
                 genParamAccessPoint->Value().Get( apId );
-                iExtAccessPointId = apId;
+                iAccessPointId = apId;
             }
         }
     }
@@ -377,7 +367,6 @@
         }
         else if ( mediaType == CMediaRecognizer::ELocalSdpFile )
         {
-            SetAccessPointL();
             iPlaybackUtility->InitStreamingL( aFile, iAccessPointId );
             ActivatePlaybackViewL();
         }
@@ -515,23 +504,6 @@
 }
 
 // ---------------------------------------------------------------------------
-// Closed mpx components and readies to application takedown.
-// ---------------------------------------------------------------------------
-//
-void CMpxVideoPlayerAppUiEngine::PrepareCloseMpxL()
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::PrepareCloseMpxL()"));
-
-    if ( iPlaybackUtility )
-    {
-        ClosePlaybackPluginL();
-
-        MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager();
-        TRAP_IGNORE( manager.ClearSelectPlayersL() );
-    }
-}
-
-// ---------------------------------------------------------------------------
 // Sets AppUiEngine in stand alone "mode"
 // ---------------------------------------------------------------------------
 //
@@ -539,8 +511,6 @@
 {
     MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::StartStandAloneL()"));
 
-    iExitToMatrixMenu = EFalse;
-
     //
     //  Create the utilities for the stand alone player
     //
@@ -741,7 +711,10 @@
     CleanupStack::PopAndDestroy( playlistUtil );
 }
 
-
+// -------------------------------------------------------------------------------------------------
+//   CMpxVideoPlayerAppUiEngine::DoHandleMultiLinksFileL()
+// -------------------------------------------------------------------------------------------------
+//
 void CMpxVideoPlayerAppUiEngine::DoHandleMultiLinksFileL( CVideoPlaylistUtility* aPlaylistUtil,
                                                           TBool aSingleLink,
                                                           TBool aLocalFile )
@@ -777,11 +750,6 @@
     }
     else
     {
-        if ( ! aLocalFile )
-        {
-            SetAccessPointL();
-        }
-
         CMPXMedia* playlist = aPlaylistUtil->GetPlayListL( iAccessPointId );
         CleanupStack::PushL( playlist );
 
@@ -801,351 +769,6 @@
     }
 }
 
-// -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::SetAccessPointL
-// -------------------------------------------------------------------------------------------------
-//
-void CMpxVideoPlayerAppUiEngine::SetAccessPointL()
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::SetAccessPointL()"));
-
-    //
-    //  a value was passed in for argument aAPId
-    //
-    if ( ( iExtAccessPointId != KErrUnknown ) && IsWLANAccessPointL( iExtAccessPointId ) )
-    {
-        //
-        //  An external WLAN access point was passed in by an embedding app, use it
-        //
-        iAccessPointId = iExtAccessPointId;
-    }
-    else
-    {
-        //
-        //  No access point was passed in or it's not WLAN, retrieve the default access point
-        //
-        TInt defaultAPId(0);
-
-        MPX_TRAPD( err, defaultAPId = GetDefaultAccessPointL() );
-
-        if ( ( err == KErrNone ) && ( defaultAPId != 0 ))
-        {
-            //
-            //  Use the default access point
-            //
-            iAccessPointId = defaultAPId;
-        }
-        else
-        {
-            //
-            //  Valid default access point was not found
-            //
-            if ( iExtAccessPointId != KErrUnknown )
-            {
-                //
-                //  Use the AP passed in by embedding app, regardless of bearer type
-                //
-                iAccessPointId = iExtAccessPointId;
-            }
-            else
-            {
-                //
-                //  Try to fetch AP ID and open connection selection dialog if required
-                //
-                TUint32 apUid = TryToGetAccessPointL();
-
-                //
-                //  Use selected access point
-                //
-                if ( apUid != 0 )
-                {
-                    //
-                    //  convert the AccessPoint-Uid to AccessPoint-Id
-                    //
-                    iAccessPointId = GetAccessPointIdForUIDL( apUid );
-                }
-            }
-        }
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL
-// -------------------------------------------------------------------------------------------------
-//
-TBool CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL( TInt aAPId )
-{
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL(%d)"), aAPId);
-
-    TBool wlanAP(EFalse);
-    TUint32 bearer( 0 );
-
-    RCmManagerExt cmManager;
-    CleanupClosePushL( cmManager );
-    cmManager.OpenL();
-
-    bearer = cmManager.ConnectionMethodL( aAPId ).GetIntAttributeL( CMManager::ECmBearerType );
-    CleanupStack::PopAndDestroy( &cmManager );
-
-    if ( bearer == KUidWlanBearerType )
-    {
-        wlanAP = ETrue;
-    }
-
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL() return %d"), wlanAP);
-
-    return wlanAP;
-}
-
-// -----------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::GetDefaultAccessPointL
-// -----------------------------------------------------------------------------
-//
-TInt CMpxVideoPlayerAppUiEngine::GetDefaultAccessPointL()
-{
-    TInt defaultAP(0);
-    TUint32 iap;
-
-    CMPSettingsModel* ropSettings = CMPSettingsModel::NewL( KSettingsModelForROPUid );
-
-    CleanupStack::PushL( ropSettings );
-
-    ropSettings->LoadSettingsL( EConfigDefault );
-
-    User::LeaveIfError( ropSettings->GetDefaultAp( iap ) );
-
-    CleanupStack::PopAndDestroy(); // ropSettings
-
-    defaultAP = GetAccessPointIdForUIDL( iap );
-
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::GetDefaultAccessPointL(%d)"), defaultAP);
-
-    return defaultAP;
-}
-
-// -----------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL
-// -----------------------------------------------------------------------------
-//
-TInt CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL( TUint32 aAPUid )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL()"),
-                   _L(" aAPUid = %d"), aAPUid);
-
-    TInt apId(0);
-
-    CMDBSession* db = CMDBSession::NewL( CMDBSession::LatestVersion() );
-    CleanupStack::PushL( db );
-
-    //
-    //  WapIpBearer table contains the mapping between wap and iap id's.
-    //
-    CCDWAPIPBearerRecord* wapBearerRecord =
-        static_cast<CCDWAPIPBearerRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdWAPIPBearerRecord));
-
-    CleanupStack::PushL( wapBearerRecord );
-
-    wapBearerRecord->iWAPAccessPointId = aAPUid;
-
-    TBool found = wapBearerRecord->FindL( *db );
-
-    if ( ! found )
-    {
-        User::Leave( KErrNotFound );
-    }
-
-    apId = static_cast<TUint32>( wapBearerRecord->iWAPIAP );
-
-    CleanupStack::PopAndDestroy( wapBearerRecord );
-    CleanupStack::PopAndDestroy( db );
-
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL(%d)"), apId);
-
-    return apId;
-}
-
-// -----------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL
-// -----------------------------------------------------------------------------
-//
-TUint32 CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL()
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL()"));
-
-    TUint32 returnVal(0);
-
-    RSocketServ ss;
-    CleanupClosePushL( ss );
-
-    User::LeaveIfError( ss.Connect() );
-
-    RConnection conn;
-    CleanupClosePushL( conn );
-
-    User::LeaveIfError( conn.Open( ss ) );
-
-    TConnPrefList prefList;
-    TExtendedConnPref prefs;
-    prefs.SetSnapPurpose( CMManager::ESnapPurposeInternet  );
-    prefs.SetNoteBehaviour( TExtendedConnPref::ENoteBehaviourConnSilent );
-    prefList.AppendL( &prefs );
-
-    TInt err = conn.Start( prefList );
-
-    if ( err == KErrNone )
-    {
-        returnVal = QueryIap( conn );
-    }
-    else if ( err == KErrNotFound )
-    {
-        //
-        //  SNAP is empty or no WLAN was available.
-        //  Try again with connection selection dialog.
-        //
-        MPX_DEBUG(_L("    connection start returned KErrNotFound"));
-
-        TConnPrefList prefList2;
-        TExtendedConnPref prefs2;
-
-        prefs2.SetConnSelectionDialog( ETrue );
-        prefList2.AppendL( &prefs2 );
-
-        err = conn.Start( prefList2 );
-
-        if ( err == KErrNone )
-        {
-            returnVal = QueryIap( conn );
-        }
-        else
-        {
-            User::Leave( err );
-        }
-    }
-    else
-    {
-        User::Leave( err );
-    }
-
-    CleanupStack::PopAndDestroy( &conn );
-
-    CleanupStack::PopAndDestroy( &ss );
-
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL() AP ID: %d"), returnVal);
-
-    return returnVal;
-}
-
-// -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::QueryIap()
-// -------------------------------------------------------------------------------------------------
-//
-TUint32 CMpxVideoPlayerAppUiEngine::QueryIap( RConnection& aConn )
-{
-    TUint32 iap( 0 );
-    aConn.GetIntSetting( KMpxVideoPlayerQueryIap, iap );
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::QueryIap(%u)"), iap);
-    return iap;
-}
-
-// -----------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL
-// -----------------------------------------------------------------------------
-//
-void CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL( const TDesC8 &aMsg )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL()"));
-
-    if ( aMsg.Length() < KVideoPlayerActivationMessageMinLength )
-    {
-        User::Leave( KErrNotSupported );
-    }
-
-    TVideoPlayerActivationMessage msgHandler;
-    TPckg<TVideoPlayerActivationMessage> paramsPckg( msgHandler );
-    paramsPckg.Copy( aMsg );
-
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL() sender = %d, type = %d"),
-        msgHandler.iMsgSender, msgHandler.iMsgType );
-
-    if ( msgHandler.iMsgSender == TVideoPlayerActivationMessage::EMatrixMenu )
-    {
-        // Clear the view history, so app exits back to matrix.
-        iViewUtility->PushDefaultHistoryL();
-    }
-
-    if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::EOpenInternetVideos )
-    {
-        iViewUtility->ActivateViewL( TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ) );
-    }
-    else if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::EOpenVideoStorage )
-    {
-        iViewUtility->ActivateViewL( TUid::Uid( KUidMyVideosViewTypeId ) );
-    }
-    else if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::ELaunchVideoToPlayer )
-    {
-        //
-        //  Launch video to player, it can be either local video or stream.
-        //  If there's path and mpx id, clip can be played directly.
-        //
-        if ( msgHandler.iServiceId && msgHandler.iFullPath.Length() > 0 )
-        {
-            if ( iRecognizer->IdentifyMediaTypeL( msgHandler.iFullPath )
-                  ==  CMediaRecognizer::ELocalVideoFile )
-            {
-                TMPXItemId id;
-                id.iId1 = msgHandler.iServiceId;
-                CMPXMedia* media = CMPXMedia::NewL();
-                CleanupStack::PushL( media );
-                media->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, id );
-                OpenMediaL( *media );
-                CleanupStack::PopAndDestroy( media );
-            }
-            else
-            {
-                // Most likely the clip has been deleted
-                User::Leave( KErrNotFound );
-            }
-        }
-        else
-        {
-            TBool vodUiRunning = ( iViewUtility->ActiveViewType() ==
-                                   TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ) );
-
-            if ( vodUiRunning )
-            {
-                // VOD is active, must use the utility to pass the message.
-                SendCustomCommandToActiveViewL( aMsg );
-            }
-            else
-            {
-                // VOD is not running, activate with custom message.
-                HBufC* customMsg = HBufC::NewLC( paramsPckg.Length() );
-                customMsg->Des().Copy( paramsPckg );
-                iViewUtility->ActivateViewL( TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ), customMsg );
-                CleanupStack::PopAndDestroy( customMsg );
-
-                // Clear the view history, so playback returns where it was started
-                iViewUtility->PushDefaultHistoryL();
-            }
-        }
-    }
-    else if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::ELaunchServiceById )
-    {
-        if ( iViewUtility->ActiveViewType() == TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ) )
-        {
-            // VOD is active, must use the utility to pass the message.
-            SendCustomCommandToActiveViewL( aMsg );
-        }
-        else
-        {
-            // VOD is not running, activate with custom message.
-            HBufC* customMsg = HBufC::NewLC( paramsPckg.Length() );
-            customMsg->Des().Copy( paramsPckg );
-            iViewUtility->ActivateViewL( TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ), customMsg );
-            CleanupStack::PopAndDestroy( customMsg );
-        }
-    }
-}
 
 // -----------------------------------------------------------------------------
 //   CMpxVideoPlayerAppUiEngine::HandleMessageL()
@@ -1163,16 +786,7 @@
         // TVideoPlayerActivationMessage received.
         case KVideoPlayerVodStartPlayer:
         {
-            //
-            //  Do nothing if we are loaded in a playback view
-            //
-            if ( iViewUtility->ActiveViewType() != TUid::Uid( KMpxPlaybackPluginTypeUid ) )
-            {
-                ProcessActivationMessageL( aMessageParameters );
-            }
-
-            msgHandled = ETrue;
-
+            //  Do nothing
             break;
         }
         case KVideoPlayerStartPDlPlayer:
@@ -1294,6 +908,10 @@
 }
 
 
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
 void CMpxVideoPlayerAppUiEngine::HandleSoftKeyBackL()
 {
     MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleSoftKeyBackL()"));
@@ -1305,7 +923,6 @@
     //
     if ( iViewUtility->ViewHistoryDepth() <= 1 )
     {
-        iExitToMatrixMenu = EFalse;
         ActivateExitActiveObject();
     }
     else
@@ -1314,6 +931,10 @@
     }
 }
 
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
 TBool CMpxVideoPlayerAppUiEngine::ProcessCommandParametersL( TApaCommand aCommand,
                                                              TFileName& aDocumentName,
                                                              const TDesC8& aTail )
@@ -1323,38 +944,31 @@
     TBool retVal = EFalse;
 
     //
-    //  If command line has tail, this is probably a message from Matrix, Live TV
-    //  reminder, Video Center soft notification, or other VC component.
+    //  If we are embedded or the command is to open a document
     //
-    if ( aTail.Length() > 0 )
+    if ( iAppUi->IsEmbedded() || aCommand != EApaCommandRun )
     {
-        ProcessActivationMessageL( aTail );
+        if ( iRecognizer->IsValidStreamingPrefix( aDocumentName ) )
+        {
+            retVal = ETrue;
+        }
+        else
+        {
+            retVal = ConeUtils::FileExists( aDocumentName );
+        }
     }
     else
     {
-        //
-        //  If we are embedded or the command is to open a document
-        //
-        if ( iAppUi->IsEmbedded() || aCommand != EApaCommandRun )
-        {
-            if ( iRecognizer->IsValidStreamingPrefix( aDocumentName ) )
-            {
-                retVal = ETrue;
-            }
-            else
-            {
-                retVal = ConeUtils::FileExists( aDocumentName );
-            }
-        }
-        else
-        {
-            StartStandAloneL();
-        }
+        StartStandAloneL();
     }
 
     return retVal;
 }
 
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
 void CMpxVideoPlayerAppUiEngine::ActivateExitActiveObject()
 {
     MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::ActivateExitActiveObject()"));
@@ -1365,9 +979,9 @@
     }
 }
 
-// -----------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
 //   CMpxVideoPlayerAppUiEngine::ExitApplicationL
-// -----------------------------------------------------------------------------
+// -------------------------------------------------------------------------------------------------
 //
 TInt CMpxVideoPlayerAppUiEngine::ExitApplicationL( TAny* aPtr )
 {
@@ -1425,29 +1039,6 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::SendCustomCommandToActiveViewL()
-// -------------------------------------------------------------------------------------------------
-//
-void CMpxVideoPlayerAppUiEngine::SendCustomCommandToActiveViewL( const TDesC8& aMsg )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::SendCustomCommandToActiveViewL()"));
-
-    User::LeaveIfNull( iAppUi->View() );
-
-    HBufC8* msgBuf = aMsg.AllocLC();
-
-    TAny* ptr = (TAny*) msgBuf;
-
-    UserSvr::DllSetTls( KVcxCustomViewMessagePtr, ptr );
-
-    iAppUi->View()->HandleCommandL( KVcxCustomViewMessageCmd );
-
-    UserSvr::DllFreeTls( KVcxCustomViewMessagePtr );
-
-    CleanupStack::PopAndDestroy( msgBuf );
-}
-
-// -------------------------------------------------------------------------------------------------
 //   CMpxVideoPlayerAppUiEngine::ClearPdlInformation()
 // -------------------------------------------------------------------------------------------------
 //
@@ -1462,16 +1053,6 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayerAppUiEngine::StartedStandAlone()
-// -------------------------------------------------------------------------------------------------
-//
-TBool CMpxVideoPlayerAppUiEngine::ExitToMatrixMenu()
-{
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::ExitToMatrixMenu(%d)"), iExitToMatrixMenu);
-    return iExitToMatrixMenu;
-}
-
-// -------------------------------------------------------------------------------------------------
 //   CMpxVideoPlayerAppUiEngine::InitializeStreamingLinkL()
 // -------------------------------------------------------------------------------------------------
 //
@@ -1480,8 +1061,6 @@
     MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::InitializeStreamingLinkL()"),
                    _L("aUri = %S"), &aUri );
 
-    SetAccessPointL();
-
     iPlaybackUtility->InitStreamingL( aUri,
                                       (TDesC8*)(&KDATATYPEVIDEOHELIX),
                                       iAccessPointId );
@@ -1532,8 +1111,30 @@
         //
         iAppUi->View()->HandleCommandL( EAknSoftkeyClose );
     }
+    else
+    {
+        if (iPlaybackUtility)
+        {
+            iPlaybackUtility->CommandL( EPbCmdClose );
+        }
+    }
+}
 
-    iPlaybackUtility->CommandL( EPbCmdClose );
+// -------------------------------------------------------------------------------------------------
+//   CMpxVideoPlayerAppUiEngine::SignalViewPdlReloading()
+// -------------------------------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUiEngine::SignalViewPdlReloading()
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::SignalViewPdlReloading"));
+
+    if ( iViewUtility->ActiveViewType() == TUid::Uid( KMpxPlaybackPluginTypeUid ) )
+    {
+        //
+        //  The display window must be removed before closing the playback plugin
+        //
+        iAppUi->View()->HandleCommandL( KMpxVideoPlaybackPdlReloading );
+    }
 }
 
 
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/bwins/mpxvideoplayertestu.def	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/bwins/mpxvideoplayertestu.def	Fri Mar 12 15:43:00 2010 +0200
@@ -1,74 +1,8 @@
 EXPORTS
 	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
-	?Close@RConnection@@QAEXXZ @ 2 NONAME ; void RConnection::Close(void)
-	?Connect@RSocketServ@@QAEHI@Z @ 3 NONAME ; int RSocketServ::Connect(unsigned int)
-	??1CMDBTextFieldBase@CommsDat@@UAE@XZ @ 4 NONAME ; CommsDat::CMDBTextFieldBase::~CMDBTextFieldBase(void)
-	??0RConnection@@QAE@XZ @ 5 NONAME ; RConnection::RConnection(void)
-	?NewL@MMPXCollectionUtility@@SAPAV1@PAVMMPXCollectionObserver@@ABVTUid@@@Z @ 6 NONAME ; class MMPXCollectionUtility * MMPXCollectionUtility::NewL(class MMPXCollectionObserver *, class TUid const &)
-	??0TExtendedConnPref@@QAE@XZ @ 7 NONAME ; TExtendedConnPref::TExtendedConnPref(void)
-	?AppendL@TConnPrefList@@QAEXPAUSMetaDataECom@Meta@@@Z @ 8 NONAME ; void TConnPrefList::AppendL(struct Meta::SMetaDataECom *)
-	?LoadL@SMetaDataECom@Meta@@SAPAU12@AAVTPtrC8@@@Z @ 9 NONAME ; struct Meta::SMetaDataECom * Meta::SMetaDataECom::LoadL(class TPtrC8 &)
-	?GetVDataTable@CMDBNumFieldBase@CommsDat@@UBEPBUSVDataTableEntry@Meta@@XZ @ 10 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBNumFieldBase::GetVDataTable(void) const
-	?GetAttribPtr@CMDBRecordLinkBase@CommsDat@@MBEPAEH@Z @ 11 NONAME ; unsigned char * CommsDat::CMDBRecordLinkBase::GetAttribPtr(int) const
-	?GetIntAttributeL@RCmConnectionMethodExt@@QBEKK@Z @ 12 NONAME ; unsigned long RCmConnectionMethodExt::GetIntAttributeL(unsigned long) const
-	??1RCmConnectionMethodExt@@QAE@XZ @ 13 NONAME ; RCmConnectionMethodExt::~RCmConnectionMethodExt(void)
-	??0CCDRecordBase@CommsDat@@QAE@K@Z @ 14 NONAME ; CommsDat::CCDRecordBase::CCDRecordBase(unsigned long)
-	?GetVDataTable@CMDBTextFieldBase@CommsDat@@UBEPBUSVDataTableEntry@Meta@@XZ @ 15 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBTextFieldBase::GetVDataTable(void) const
-	??BCMDBRecordLinkBase@CommsDat@@QAEKXZ @ 16 NONAME ; CommsDat::CMDBRecordLinkBase::operator unsigned long(void)
-	??0CCommsDatabaseBase@@IAE@XZ @ 17 NONAME ; CCommsDatabaseBase::CCommsDatabaseBase(void)
-	??0MMetaDatabase@CommsDat@@IAE@XZ @ 18 NONAME ; CommsDat::MMetaDatabase::MMetaDatabase(void)
-	?Open@RConnection@@QAEHAAVRSocketServ@@I@Z @ 19 NONAME ; int RConnection::Open(class RSocketServ &, unsigned int)
-	??0RMetaDataContainerBase@Meta@@QAE@XZ @ 20 NONAME ; Meta::RMetaDataContainerBase::RMetaDataContainerBase(void)
-	?UtilityL@MMPXPlaybackUtility@@SAPAV1@W4TMPXCategory@@ABVTUid@@@Z @ 21 NONAME ; class MMPXPlaybackUtility * MMPXPlaybackUtility::UtilityL(enum TMPXCategory, class TUid const &)
-	?GetIntSetting@RConnection@@QAEHABVTDesC16@@AAK@Z @ 22 NONAME ; int RConnection::GetIntSetting(class TDesC16 const &, unsigned long &)
-	?OpenL@RCmManagerExt@@QAEXXZ @ 23 NONAME ; void RCmManagerExt::OpenL(void)
-	?GetVDataTable@CMDBElement@CommsDat@@UBEPBUSVDataTableEntry@Meta@@XZ @ 24 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBElement::GetVDataTable(void) const
-	??1MMetaDatabase@CommsDat@@UAE@XZ @ 25 NONAME ; CommsDat::MMetaDatabase::~MMetaDatabase(void)
-	?SetAutoPlay@CMPXCollectionPlaylist@@QAEXH@Z @ 26 NONAME ; void CMPXCollectionPlaylist::SetAutoPlay(int)
-	??1CCommsDatabase@@UAE@XZ @ 27 NONAME ; CCommsDatabase::~CCommsDatabase(void)
-	?GetAttribPtr@TExtendedConnPref@@MBEPAEH@Z @ 28 NONAME ; unsigned char * TExtendedConnPref::GetAttribPtr(int) const
-	?GetAttribPtr@CMDBElement@CommsDat@@UBEPAEH@Z @ 29 NONAME ; unsigned char * CommsDat::CMDBElement::GetAttribPtr(int) const
-	?RecordFactoryL@CCDRecordBase@CommsDat@@SAPAVCMDBRecordBase@2@K@Z @ 30 NONAME ; class CommsDat::CMDBRecordBase * CommsDat::CCDRecordBase::RecordFactoryL(unsigned long)
-	?GetAttribPtr@CCDRecordBase@CommsDat@@MBEPAEH@Z @ 31 NONAME ; unsigned char * CommsDat::CCDRecordBase::GetAttribPtr(int) const
-	?GetAttribPtr@CMDBTextFieldBase@CommsDat@@UBEPAEH@Z @ 32 NONAME ; unsigned char * CommsDat::CMDBTextFieldBase::GetAttribPtr(int) const
-	?NewL@CCommsDatabase@@SAPAV1@W4TCommDbDatabaseType@@@Z @ 33 NONAME ; class CCommsDatabase * CCommsDatabase::NewL(enum TCommDbDatabaseType)
-	?ConnectionMethodL@RCmManagerExt@@QAE?AVRCmConnectionMethodExt@@K@Z @ 34 NONAME ; class RCmConnectionMethodExt RCmManagerExt::ConnectionMethodL(unsigned long)
-	?SetSnapPurpose@TExtendedConnPref@@QAEXW4TSnapPurpose@CMManager@@@Z @ 35 NONAME ; void TExtendedConnPref::SetSnapPurpose(enum CMManager::TSnapPurpose)
-	??1SMetaDataECom@Meta@@UAE@XZ @ 36 NONAME ; Meta::SMetaDataECom::~SMetaDataECom(void)
-	??0TConnPref@@QAE@XZ @ 37 NONAME ; TConnPref::TConnPref(void)
-	?UtilityL@MMPXViewUtility@@SAPAV1@XZ @ 38 NONAME ; class MMPXViewUtility * MMPXViewUtility::UtilityL(void)
-	?GetAttribPtr@CMDBNumFieldBase@CommsDat@@UBEPAEH@Z @ 39 NONAME ; unsigned char * CommsDat::CMDBNumFieldBase::GetAttribPtr(int) const
-	??1CMDBSession@CommsDat@@UAE@XZ @ 40 NONAME ; CommsDat::CMDBSession::~CMDBSession(void)
-	?GetVDataTable@CCDRecordBase@CommsDat@@MBEPBUSVDataTableEntry@Meta@@XZ @ 41 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CCDRecordBase::GetVDataTable(void) const
-	??1CMDBRecordLinkBase@CommsDat@@UAE@XZ @ 42 NONAME ; CommsDat::CMDBRecordLinkBase::~CMDBRecordLinkBase(void)
-	?Close@RCmManagerExt@@QAEXXZ @ 43 NONAME ; void RCmManagerExt::Close(void)
-	?NewL@CMDBSession@CommsDat@@SAPAV12@VTVersion@@@Z @ 44 NONAME ; class CommsDat::CMDBSession * CommsDat::CMDBSession::NewL(class TVersion)
-	??0CMDBRecordLinkBase@CommsDat@@QAE@XZ @ 45 NONAME ; CommsDat::CMDBRecordLinkBase::CMDBRecordLinkBase(void)
-	?GetFieldByNameL@CMDBRecordBase@CommsDat@@UAEPAVCMDBElement@2@ABVTPtrC16@@AAH@Z @ 46 NONAME ; class CommsDat::CMDBElement * CommsDat::CMDBRecordBase::GetFieldByNameL(class TPtrC16 const &, int &)
-	?GetVDataTable@TExtendedConnPref@@MBEPBUSVDataTableEntry@Meta@@XZ @ 47 NONAME ; struct Meta::SVDataTableEntry const * TExtendedConnPref::GetVDataTable(void) const
-	?LatestVersion@CMDBSession@CommsDat@@SA?AVTVersion@@XZ @ 48 NONAME ; class TVersion CommsDat::CMDBSession::LatestVersion(void)
-	??0RCmConnectionMethodExt@@QAE@XZ @ 49 NONAME ; RCmConnectionMethodExt::RCmConnectionMethodExt(void)
-	??4CMDBRecordLinkBase@CommsDat@@QAEAAV01@K@Z @ 50 NONAME ; class CommsDat::CMDBRecordLinkBase & CommsDat::CMDBRecordLinkBase::operator=(unsigned long)
-	??0RSocketServ@@QAE@XZ @ 51 NONAME ; RSocketServ::RSocketServ(void)
-	?SetConnSelectionDialog@TExtendedConnPref@@QAEXH@Z @ 52 NONAME ; void TExtendedConnPref::SetConnSelectionDialog(int)
-	??1CCommsDatabaseBase@@UAE@XZ @ 53 NONAME ; CCommsDatabaseBase::~CCommsDatabaseBase(void)
-	??1TConnPrefList@@QAE@XZ @ 54 NONAME ; TConnPrefList::~TConnPrefList(void)
-	?Start@RConnection@@QAEHAAVTConnPref@@@Z @ 55 NONAME ; int RConnection::Start(class TConnPref &)
-	?NewL@CMPSettingsModel@@SAPAV1@VTUid@@@Z @ 56 NONAME ; class CMPSettingsModel * CMPSettingsModel::NewL(class TUid)
-	??0TConnPrefList@@QAE@XZ @ 57 NONAME ; TConnPrefList::TConnPrefList(void)
-	??0CMDBTextFieldBase@CommsDat@@QAE@XZ @ 58 NONAME ; CommsDat::CMDBTextFieldBase::CMDBTextFieldBase(void)
-	?FindL@MMetaDatabase@CommsDat@@QAEHAAVCMDBSession@2@@Z @ 59 NONAME ; int CommsDat::MMetaDatabase::FindL(class CommsDat::CMDBSession &)
-	??1SMetaData@Meta@@UAE@XZ @ 60 NONAME ; Meta::SMetaData::~SMetaData(void)
-	??1CMDBElement@CommsDat@@UAE@XZ @ 61 NONAME ; CommsDat::CMDBElement::~CMDBElement(void)
-	??0SMetaData@Meta@@IAE@XZ @ 62 NONAME ; Meta::SMetaData::SMetaData(void)
-	?GetVDataTable@CMDBRecordLinkBase@CommsDat@@MBEPBUSVDataTableEntry@Meta@@XZ @ 63 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBRecordLinkBase::GetVDataTable(void) const
-	?SetNoteBehaviour@TExtendedConnPref@@QAEXK@Z @ 64 NONAME ; void TExtendedConnPref::SetNoteBehaviour(unsigned long)
-	??1RConnection@@UAE@XZ @ 65 NONAME ; RConnection::~RConnection(void)
-	?GetRecordInfo@CMDBRecordBase@CommsDat@@UAEPBUSRecordTypeInfo@2@XZ @ 66 NONAME ; struct CommsDat::SRecordTypeInfo const * CommsDat::CMDBRecordBase::GetRecordInfo(void)
-	??0CMDBElement@CommsDat@@QAE@XZ @ 67 NONAME ; CommsDat::CMDBElement::CMDBElement(void)
-	??1CMPSettingsModel@@UAE@XZ @ 68 NONAME ; CMPSettingsModel::~CMPSettingsModel(void)
-	?FileExists@ConeUtils@@SAHABVTDesC16@@@Z @ 69 NONAME ; int ConeUtils::FileExists(class TDesC16 const &)
-	??0CMDBNumFieldBase@CommsDat@@QAE@XZ @ 70 NONAME ; CommsDat::CMDBNumFieldBase::CMDBNumFieldBase(void)
-	??0SMetaDataECom@Meta@@IAE@XZ @ 71 NONAME ; Meta::SMetaDataECom::SMetaDataECom(void)
-	?GetFieldByIdL@CMDBRecordBase@CommsDat@@UAEPAVCMDBElement@2@K@Z @ 72 NONAME ; class CommsDat::CMDBElement * CommsDat::CMDBRecordBase::GetFieldByIdL(unsigned long)
+	?NewL@MMPXCollectionUtility@@SAPAV1@PAVMMPXCollectionObserver@@ABVTUid@@@Z @ 2 NONAME ; class MMPXCollectionUtility * MMPXCollectionUtility::NewL(class MMPXCollectionObserver *, class TUid const &)
+	?UtilityL@MMPXViewUtility@@SAPAV1@XZ @ 3 NONAME ; class MMPXViewUtility * MMPXViewUtility::UtilityL(void)
+	?UtilityL@MMPXPlaybackUtility@@SAPAV1@W4TMPXCategory@@ABVTUid@@@Z @ 4 NONAME ; class MMPXPlaybackUtility * MMPXPlaybackUtility::UtilityL(enum TMPXCategory, class TUid const &)
+	?FileExists@ConeUtils@@SAHABVTDesC16@@@Z @ 5 NONAME ; int ConeUtils::FileExists(class TDesC16 const &)
+	?SetAutoPlay@CMPXCollectionPlaylist@@QAEXH@Z @ 6 NONAME ; void CMPXCollectionPlaylist::SetAutoPlay(int)
 
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/conf/mpxvideoplayertest.cfg	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/conf/mpxvideoplayertest.cfg	Fri Mar 12 15:43:00 2010 +0200
@@ -23,14 +23,10 @@
 NewFile 1
 NewFileAfterError 2
 
-NO_AP     0
-AP_GPRS_1 3
+AP_USEDEFAULT -1
+
 AP_GPRS_2 4
 AP_WLAN_1 5
-AP_WLAN_2 6
-AP_SNAP   7
-AP_QUERY  8
-AP_QUERY2 9
 
 LocalLinks     0
 StreamingLinks 1
@@ -115,8 +111,7 @@
 title 3) AppUiEngine OpenFile w/ File Handle - SDP
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_GPRS_1
+enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_USEDEFAULT
 delete enginetest
 pause 1000
 [Endtest]
@@ -130,8 +125,7 @@
 title 4) AppUiEngine OpenFile w/ File Handle - RAM file
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseHandle test_streaming.ram EAddPath ERamFile AP_GPRS_1 StreamingLinks
+enginetest OpenFile UseHandle test_streaming.ram EAddPath ERamFile AP_USEDEFAULT StreamingLinks
 delete enginetest
 pause 1000
 [Endtest]
@@ -145,8 +139,7 @@
 title 5) AppUiEngine OpenFile w/ File Handle - RAM file
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseHandle test_local.ram EAddPath ERamFile AP_GPRS_1 LocalLinks
+enginetest OpenFile UseHandle test_local.ram EAddPath ERamFile AP_USEDEFAULT LocalLinks
 delete enginetest
 pause 1000
 [Endtest]
@@ -154,7 +147,6 @@
 [Test]
 //
 //  Test the Access Point Selection with OpenFile file handle API
-//  - Default GPRS Access Point
 //  - GenericParameters with WLAN Access Point
 //  - Launch an embedded SDP file
 //  - WLAN access point should be used
@@ -162,7 +154,6 @@
 title 6) AppUiEngine Access Point Selection 
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
 enginetest SetGenericParamAccessPoint AP_WLAN_1
 enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_WLAN_1
 delete enginetest
@@ -172,33 +163,13 @@
 [Test]
 //
 //  Test the Access Point Selection with OpenFile file handle API
-//  - Default GPRS Access Point
 //  - GenericParameters with GPRS Access Point
 //  - Launch an embedded SDP file
-//  - Default access point should be used
+//  - GPRS access point should be used
 //
 title 7) AppUiEngine Access Point Selection
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest SetGenericParamAccessPoint AP_GPRS_2
-enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_GPRS_1
-delete enginetest
-pause 1000
-[Endtest]
-
-[Test]
-//
-//  Test the Access Point Selection with OpenFile file handle API
-//  - No Default Access Point
-//  - GenericParameters with GPRS Access Point
-//  - Launch an embedded SDP file
-//  - Default access point should be used
-//
-title 8) AppUiEngine Access Point Selection
-create mpxvideoplayertest enginetest
-enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint NO_AP
 enginetest SetGenericParamAccessPoint AP_GPRS_2
 enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_GPRS_2
 delete enginetest
@@ -207,28 +178,10 @@
 
 [Test]
 //
-//  Test the Access Point Selection with OpenFile file handle API
-//  - No Default Access Point
-//  - No GenericParameters 
-//  - Launch an embedded SDP file
-//  - Use the Internet SNAP Access Point for STIF Testing
-//
-title 9) AppUiEngine Access Point Selection
-create mpxvideoplayertest enginetest
-enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint NO_AP
-enginetest SetQueryAccessPoint AP_SNAP
-enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_SNAP
-delete enginetest
-pause 1000
-[Endtest]
-
-[Test]
-//
 //  Test the OpenFile with a file name API
 //  - Launch a local clip
 //
-title 10) AppUiEngine OpenFile w/ File Name - Local
+title 8) AppUiEngine OpenFile w/ File Name - Local
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
 enginetest OpenFile UseName local.3gp EAddPath ELocalFile
@@ -242,11 +195,10 @@
 //  - No GenericParameters
 //  - Launch an SDP file
 //
-title 11) AppUiEngine OpenFile w/ File Name - SDP
+title 9) AppUiEngine OpenFile w/ File Name - SDP
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseName sdp_test.sdp EAddPath ESdpFile AP_GPRS_1
+enginetest OpenFile UseName sdp_test.sdp EAddPath ESdpFile AP_USEDEFAULT
 delete enginetest
 pause 1000
 [Endtest]
@@ -257,28 +209,10 @@
 //  - No GenericParameters
 //  - Launch an RAM file with streaming links 
 //
-title 12) AppUiEngine OpenFile w/ File Name - RAM file
+title 10) AppUiEngine OpenFile w/ File Name - RAM file
 create mpxvideoplayertest enginetest
 enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseName test_streaming.ram EAddPath ERamFile AP_GPRS_1 StreamingLinks
-delete enginetest
-pause 1000
-[Endtest]
-
-[Test]
-//
-//  Test the OpenFile with a file name API
-//  - No GenericParameters
-//  - Launch an URL
-//  - Test the PrepareCloseMpx API
-//
-title 13) AppUiEngine OpenFile w/ URL
-create mpxvideoplayertest enginetest
-enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseName rtsp:\/\/stream.3gp ENoPath EUrl AP_GPRS_1
-enginetest PrepareCloseMpx
+enginetest OpenFile UseName test_streaming.ram EAddPath ERamFile AP_USEDEFAULT StreamingLinks
 delete enginetest
 pause 1000
 [Endtest]
@@ -287,7 +221,7 @@
 //
 //  Test the StartStandAloneL method
 //
-title 14) AppUiEngine StartStandAloneL
+title 11) AppUiEngine StartStandAloneL
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest StartStandAlone
@@ -299,7 +233,7 @@
 //
 //  Test the HandleCollectionMessage method
 //
-title 15) AppUiEngine HandleCollectionMessage
+title 12) AppUiEngine HandleCollectionMessage
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest HandleCollectionMessage EPathChanged EMcPathChangedByOpen EMcItemOpened 
@@ -311,7 +245,7 @@
 //
 //  Test the HandleCollectionMedia method
 //
-title 16) AppUiEngine HandleCollectionMedia
+title 13) AppUiEngine HandleCollectionMedia
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest HandleCollectionMedia local.3gp EAddPath
@@ -330,7 +264,7 @@
 //  - Call HandleSoftKeyL
 //  - AppUi should StepBackCollectionPathL
 //
-title 17) AppUiEngine HandleSoftkeyBackL
+title 14) AppUiEngine HandleSoftkeyBackL
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest HandleSoftkeyBack ViewDepth_1
@@ -347,7 +281,7 @@
 //  - Call HandleOpenL
 //  - PlaybackUtility should receive InitL with Playlist
 //
-title 18) AppUiEngine HandleOpenPlaylist
+title 15) AppUiEngine HandleOpenPlaylist
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest StartStandAlone
@@ -363,7 +297,7 @@
 //  - Call HandleOpenL
 //  - CollectionUtility should receive OpenL with new collection path
 //
-title 19) AppUiEngine HandleOpenMedia
+title 16) AppUiEngine HandleOpenMedia
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest StartStandAlone
@@ -374,35 +308,10 @@
 
 [Test]
 //
-//  Test ProcessActivationMessageL
-//  - Test with small Message, function Leaves
-//  - Test with Open Internet Videos, View Utility receives view activation
-//  - Test with Open Video Storage, View Utility receives view activation
-//  - Test with Matrix Launch Video, local file callbacks are received
-//  - Test with Notification Launch Video, local file callbacks are received
-//
-title 20) AppUiEngine ProcessActivationMessageL
-create mpxvideoplayertest enginetest
-enginetest CreateEngine StandAlone
-enginetest StartStandAlone
-enginetest ProcessActivationMessage ENoMsg
-enginetest ProcessActivationMessage EMatrix EOpenInternetVideos
-enginetest ProcessActivationMessage EMatrix EOpenVideoStorage
-enginetest ProcessActivationMessage EMatrix ELaunchVideo local.3gp EAddPath EDefined
-enginetest ProcessActivationMessage EMatrix ELaunchVideo local.3gp EAddPath EUndefined
-allownextresult KErrNotFound
-enginetest ProcessActivationMessage EMatrix ELaunchVideo not_fuond.3gp EAddPath EDefined
-enginetest ProcessActivationMessage EMatrix ELaunchVideo not_fuond.3gp EAddPath EUndefined
-delete enginetest
-pause 1000
-[Endtest]
-
-[Test]
-//
 //  Test HandleViewActivation
 //  - No callback is received
 //
-title 21) AppUiEngine HandleViewActivation
+title 17) AppUiEngine HandleViewActivation
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest StartStandAlone
@@ -428,10 +337,9 @@
 //      - Open with document name and file that doesn't exist
 //          - file exists is false
 //
-title 22) AppUiEngine ProcessCommandParameters
+title 18) AppUiEngine ProcessCommandParameters
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
-enginetest ProcessCommandParameters EApaCommandTail EMatrix EOpenVideoStorage
 enginetest ProcessCommandParameters EApaCommandRun
 enginetest ProcessCommandParameters EApaCommandOpen rtsp:\/\/stream.3gp ENoPath ETrue
 enginetest ProcessCommandParameters EApaCommandOpen local.3gp EAddPath ETrue
@@ -442,53 +350,14 @@
 
 [Test]
 //
-//  Test Access Point Dialog withSelection
-//  - No GenericParameters 
-//  - No Default Access Point
-//  - Set Query Access Point to 0 to simulate a cancel button press
-//  - Launch an embedded SDP file
-//  - OpenFile leaves with KErrCancel
-//
-title 23) AppUiEngine Access Point Selection
-create mpxvideoplayertest enginetest
-enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint NO_AP
-enginetest SetQueryAccessPoint AP_QUERY
-enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_QUERY2
-delete enginetest
-pause 1000
-[Endtest]
-
-[Test]
-//
-//  Test Access Point Dialog Cancel without Selection
-//  - No GenericParameters 
-//  - No Default Access Point
-//  - Set Query Access Point to 0 to simulate a cancel button press
-//  - Launch an embedded SDP file
-//  - OpenFile leaves with KErrCancel
-//
-title 24) AppUiEngine Access Point Selection
-create mpxvideoplayertest enginetest
-enginetest CreateEngine Embedded
-enginetest SetDefaultAccessPoint NO_AP
-enginetest SetQueryAccessPoint NO_AP
-enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile KErrCancel
-delete enginetest
-pause 1000
-[Endtest]
-
-[Test]
-//
 //  Test Playlist functionality
 //  Open Multilink ram file 
 //  HandleCollectionMessage for playlist 
 //
-title 25) AppUiEngine HandleCollectionMessage RAM Playlist 
+title 19) AppUiEngine HandleCollectionMessage RAM Playlist 
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseHandle test_multilocal.ram EAddPath EMultiLinkFile AP_GPRS_1 LocalLinks 
+enginetest OpenFile UseHandle test_multilocal.ram EAddPath EMultiLinkFile AP_USEDEFAULT LocalLinks 
 enginetest HandleCollectionMessage EPathChanged EMcPathChangedByOpen EMcContainerOpened
 delete enginetest
 pause 1000
@@ -500,11 +369,10 @@
 //  Open Multilink ASX file 
 //  HandleCollectionMessage for playlist 
 //
-title 26) AppUiEngine HandleCollectionMessage ASX Playlist 
+title 20) AppUiEngine HandleCollectionMessage ASX Playlist 
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseHandle test_multilink_v2.asx EAddPath EMultiLinkFile AP_GPRS_1 StreamingLinks 
+enginetest OpenFile UseHandle test_multilink_v2.asx EAddPath EMultiLinkFile AP_USEDEFAULT StreamingLinks 
 enginetest HandleCollectionMessage EPathChanged EMcPathChangedByOpen EMcContainerOpened
 delete enginetest
 pause 1000
@@ -516,11 +384,10 @@
 //  Open Multilink ASX file 
 //  HandleCollectionMessage for playlist 
 //
-title 27) AppUiEngine UpdatePbPluginMediaL ASX V3 
+title 21) AppUiEngine UpdatePbPluginMediaL ASX V3 
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
-enginetest SetDefaultAccessPoint AP_GPRS_1
-enginetest OpenFile UseHandle test_seekSingle_v3.asx EAddPath EAsxFile AP_GPRS_1 StreamingLinks 
+enginetest OpenFile UseHandle test_seekSingle_v3.asx EAddPath EAsxFile AP_USEDEFAULT StreamingLinks 
 delete enginetest
 pause 1000
 [Endtest]
@@ -530,10 +397,9 @@
 //  Test OpenMediaL functionality
 //  Open valid Media  
 //
-title 28) AppUiEngine OpenMediaL 
+title 22) AppUiEngine OpenMediaL 
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
-enginetest SetDefaultAccessPoint AP_GPRS_1
 enginetest OpenMedia local.3gp EAddPath
 delete enginetest
 pause 1000
@@ -544,10 +410,9 @@
 //  Test OpenMediaL functionality
 //  Open bad Media  
 //
-title 29) AppUiEngine OpenMediaL bad file path
+title 23) AppUiEngine OpenMediaL bad file path
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
-enginetest SetDefaultAccessPoint AP_GPRS_1
 enginetest OpenMedia no_existing_file.ram EAddPath
 delete enginetest
 pause 1000
@@ -557,7 +422,7 @@
 //
 //  Test View Depth functionality
 //
-title 30) AppUiEngine GetView Depth
+title 24) AppUiEngine GetView Depth
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest GetViewDepth ViewDepth_2
@@ -571,40 +436,10 @@
 //  - Launch a stand alone instance of engine
 //  - Handle a message to start feeds PDL playback
 //
-title 31) AppUiEngine Feeds PDL
+title 25) AppUiEngine Feeds PDL
 create mpxvideoplayertest enginetest
 enginetest CreateEngine StandAlone
 enginetest HandleCollectionMedia local.3gp EAddPath DownloadId_1 
 delete enginetest
 pause 1000
 [Endtest]
-
-[Test]
-//
-//  Test the handling of messages
-//
-title 32) AppUiEngine Messages
-create mpxvideoplayertest enginetest
-enginetest CreateEngine StandAlone
-enginetest HandleMessageActivationMessageL ENoMsg EOpenInternetVideos EFalse
-enginetest HandleMessageActivationMessageL EMatrix EOpenInternetVideos EFalse
-delete enginetest
-pause 1000
-[Endtest]
-
-[Test]
-//
-//  Test the handling of messages
-//  -  Set the active view type to playback view type
-//  -  Send Message from KVideoPlayerVodStartPlayer
-//  -  Message should be ignored
-//
-title 33) AppUiEngine Messages
-create mpxvideoplayertest enginetest
-enginetest CreateEngine StandAlone
-enginetest HandleMessageActivationMessageL ENoMsg EOpenInternetVideos ETrue
-enginetest HandleMessageActivationMessageL EMatrix EOpenInternetVideos ETrue
-delete enginetest
-pause 1000
-[Endtest]
-
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/eabi/mpxvideoplayertestu.def	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/eabi/mpxvideoplayertestu.def	Fri Mar 12 15:43:00 2010 +0200
@@ -1,46 +1,12 @@
 EXPORTS
 	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
 	_ZN22CMPXCollectionPlaylist11SetAutoPlayEi @ 2 NONAME
-	_ZTI11RConnection @ 3 NONAME
-	_ZTI14CCommsDatabase @ 4 NONAME
-	_ZTI14CSimpleTimeout @ 5 NONAME
-	_ZTI16CMPSettingsModel @ 6 NONAME
-	_ZTI17TExtendedConnPref @ 7 NONAME
-	_ZTI18CCommsDatabaseBase @ 8 NONAME
-	_ZTI26CMpxVideoPlayerAppUiEngine @ 9 NONAME
-	_ZTI27CMpxVideoEmbeddedPdlHandler @ 10 NONAME
-	_ZTI33CMpxVideoPlayer_AppUiEngineTester @ 11 NONAME
-	_ZTIN4Meta13SMetaDataEComE @ 12 NONAME
-	_ZTIN4Meta18RMetaDataContainerINS_13SMetaDataEComEEE @ 13 NONAME
-	_ZTIN4Meta9SMetaDataE @ 14 NONAME
-	_ZTIN8CommsDat11CMDBElementE @ 15 NONAME
-	_ZTIN8CommsDat11CMDBSessionE @ 16 NONAME
-	_ZTIN8CommsDat13CCDRecordBaseE @ 17 NONAME
-	_ZTIN8CommsDat13MMetaDatabaseE @ 18 NONAME
-	_ZTIN8CommsDat14CMDBRecordBaseE @ 19 NONAME
-	_ZTIN8CommsDat16CMDBNumFieldBaseE @ 20 NONAME
-	_ZTIN8CommsDat17CMDBTextFieldBaseE @ 21 NONAME
-	_ZTIN8CommsDat18CMDBRecordLinkBaseE @ 22 NONAME
-	_ZTIN8CommsDat20CCDWAPIPBearerRecordE @ 23 NONAME
-	_ZTV11RConnection @ 24 NONAME
-	_ZTV14CCommsDatabase @ 25 NONAME
-	_ZTV14CSimpleTimeout @ 26 NONAME
-	_ZTV16CMPSettingsModel @ 27 NONAME
-	_ZTV17TExtendedConnPref @ 28 NONAME
-	_ZTV18CCommsDatabaseBase @ 29 NONAME
-	_ZTV26CMpxVideoPlayerAppUiEngine @ 30 NONAME
-	_ZTV27CMpxVideoEmbeddedPdlHandler @ 31 NONAME
-	_ZTV33CMpxVideoPlayer_AppUiEngineTester @ 32 NONAME
-	_ZTVN4Meta13SMetaDataEComE @ 33 NONAME
-	_ZTVN4Meta18RMetaDataContainerINS_13SMetaDataEComEEE @ 34 NONAME
-	_ZTVN4Meta9SMetaDataE @ 35 NONAME
-	_ZTVN8CommsDat11CMDBElementE @ 36 NONAME
-	_ZTVN8CommsDat11CMDBSessionE @ 37 NONAME
-	_ZTVN8CommsDat13CCDRecordBaseE @ 38 NONAME
-	_ZTVN8CommsDat13MMetaDatabaseE @ 39 NONAME
-	_ZTVN8CommsDat14CMDBRecordBaseE @ 40 NONAME
-	_ZTVN8CommsDat16CMDBNumFieldBaseE @ 41 NONAME
-	_ZTVN8CommsDat17CMDBTextFieldBaseE @ 42 NONAME
-	_ZTVN8CommsDat18CMDBRecordLinkBaseE @ 43 NONAME
-	_ZTVN8CommsDat20CCDWAPIPBearerRecordE @ 44 NONAME
+	_ZTI14CSimpleTimeout @ 3 NONAME
+	_ZTI26CMpxVideoPlayerAppUiEngine @ 4 NONAME
+	_ZTI27CMpxVideoEmbeddedPdlHandler @ 5 NONAME
+	_ZTI33CMpxVideoPlayer_AppUiEngineTester @ 6 NONAME
+	_ZTV14CSimpleTimeout @ 7 NONAME
+	_ZTV26CMpxVideoPlayerAppUiEngine @ 8 NONAME
+	_ZTV27CMpxVideoEmbeddedPdlHandler @ 9 NONAME
+	_ZTV33CMpxVideoPlayer_AppUiEngineTester @ 10 NONAME
 
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/group/mpxvideoplayertest.mmp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/group/mpxvideoplayertest.mmp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#9 %
+// Version : %version: 10 %
 
 
 #include <platform_paths.hrh>
@@ -44,12 +44,9 @@
 SOURCE          mpxvideoplayerappui_stub.cpp
 SOURCE          mpxcollectionutility_stub.cpp
 SOURCE          mpxcollectionutilityimp_stub.cpp
-SOURCE          commsdatabase_stub.cpp
-SOURCE          mpsettingsmodelimp_stub.cpp
 SOURCE          stifutilities.cpp
 SOURCE          coneutils_stub.cpp
 SOURCE          timeoutcontroller.cpp
-SOURCE          apstubs.cpp
 
 SOURCEPATH      ../../../src
 SOURCE          mpxvideoplayerappuiengine.cpp
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayer_appuienginetester.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayer_appuienginetester.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#10 %
+// Version : %version: ou1cpsw#13 %
 
 #ifndef MPXVIDEOPLAYER_APPUIENGINETESTER_H_
 #define MPXVIDEOPLAYER_APPUIENGINETESTER_H_
@@ -110,20 +110,16 @@
         TInt CreateGenericParametersTerminateL();
         TInt OpenFileL( CStifItemParser& aItem );
         TInt OpenMediaL( CStifItemParser& aItem );
-        TInt SetDefaultAccessPointL( CStifItemParser& aItem );
-        TInt SetQueryAccessPointL( CStifItemParser& aItem );
         TInt SetGenericParamAccessPointL( CStifItemParser& aItem );
         TInt OpenFileEmbeddedPdlL( CStifItemParser& aItem );
         TInt HandleMessageEmbeddedPdlL( CStifItemParser& aItem );
         TInt HandleMessageActivationMessageL( CStifItemParser& aItem );
-        TInt PrepareCloseMpxL( CStifItemParser& aItem );
         TInt StartStandAloneL( CStifItemParser& aItem );
         TInt HandleCollectionMessageL( CStifItemParser& aItem );
         TInt HandleCollectionMediaL( CStifItemParser& aItem );
         TInt HandleSoftkeyBackL( CStifItemParser& aItem );
         TInt HandleOpenPlaylistL( CStifItemParser& aItem );
         TInt HandleOpenMediaL( CStifItemParser& aItem );
-        TInt ProcessActivationMessageL( CStifItemParser& aItem );
         TInt HandleViewActivation( CStifItemParser& aItem );
         TInt ProcessCommandParametersL( CStifItemParser& aItem );
         TInt GetViewDepthL( CStifItemParser& aItem );
@@ -147,8 +143,6 @@
         void AddEmbeddedPdlCallbacksL( TInt aDownloadId, TDesC& aFileName );
         void AddMessagePdlCallbacksL( TInt aNewFile, TInt aDownloadId, TDesC& aFileName );
 
-        void WriteAccessPointL( const TDesC& aFileName, TInt aApId );
-
         CMPXMessage* CreateMpxMessageLC( TInt aEvent, TInt aType, TInt aData );
 
         void AddLocalFileCallbacksL( TDesC& aFileName,  TBool aUseFileHandle );
@@ -166,8 +160,6 @@
 
         void AddCollectionMediaPdlCallbacksL( TInt aDownloadId, TDesC& aFileName );
 
-        void CleanupTempFiles();
-
     private:
 
         CScriptBase*                iScriptBase;
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayertest.h	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayertest.h	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#7 %
+// Version : %version: ou1cpsw#10 %
 
 #ifndef MPXVIDEOPLAYER_TEST_H
 #define MPXVIDEOPLAYER_TEST_H
@@ -115,19 +115,15 @@
         virtual TInt CreateGenericParametersTerminateL();
         virtual TInt OpenFileL( CStifItemParser& aItem );
         virtual TInt OpenMediaL( CStifItemParser& aItem );
-        virtual TInt SetDefaultAccessPointL( CStifItemParser& aItem );
-        virtual TInt SetQueryAccessPointL( CStifItemParser& aItem );
         virtual TInt SetGenericParamAccessPointL( CStifItemParser& aItem );
         virtual TInt OpenFileEmbeddedPdlL( CStifItemParser& aItem );
         virtual TInt HandleMessageEmbeddedPdlL( CStifItemParser& aItem );
-        virtual TInt PrepareCloseMpxL( CStifItemParser& aItem );
         virtual TInt StartStandAloneL( CStifItemParser& aItem );
         virtual TInt HandleCollectionMessageL( CStifItemParser& aItem );
         virtual TInt HandleCollectionMediaL( CStifItemParser& aItem );
         virtual TInt HandleSoftkeyBackL( CStifItemParser& aItem );
         virtual TInt HandleOpenPlaylistL( CStifItemParser& aItem );
         virtual TInt HandleOpenMediaL( CStifItemParser& aItem );
-        virtual TInt ProcessActivationMessageL( CStifItemParser& aItem );
         virtual TInt HandleViewActivation( CStifItemParser& aItem );
         virtual TInt ProcessCommandParametersL( CStifItemParser& aItem );
         virtual TInt HandleMessageActivationMessageL( CStifItemParser& aItem );
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayer_appuienginetester.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayer_appuienginetester.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#18 %
+// Version : %version: ou1cpsw#21 %
 
 
 #include "mpxvideoplayer_appuienginetester.h"
@@ -38,9 +38,6 @@
 #include "mpxvideo_debug.h"
 
 
-_LIT( KDefaultAccessPointFilename, "c:\\defaultApId.txt" );
-_LIT( KQueryAccessPointFilename, "c:\\queryApId.txt" );
-
 #define KMPXPLAYBACKPLUGINTYPEUID 0x101FFCA0
 #define EMatrix 4
 
@@ -70,8 +67,6 @@
 {
     MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::~CMpxVideoPlayer_AppUiEngineTester()"));
 
-    CleanupTempFiles();
-
     delete iAppUiEngine;
     iAppUiEngine = NULL;
 
@@ -235,27 +230,16 @@
     //
     TCallbackEvent* event = new (ELeave) TCallbackEvent;
 
-    if ( expectedApId > 0 )
-    {
         event->iFileName = aFileName;
         event->iApId     = expectedApId;
 
-        if ( aUseFileHandle )
-        {
-            event->iEvent = EPlaybackUtilityInitStreamingFileHandle;
-        }
-        else
-        {
-            event->iEvent = EPlaybackUtilityInitStreamingUrl;
-        }
+    if ( aUseFileHandle )
+    {
+        event->iEvent = EPlaybackUtilityInitStreamingFileHandle;
     }
     else
     {
-        //
-        //  When the apId is negative, an error code will be return with a Leave
-        //
-        event->iEvent = EFunctionLeave;
-        event->iExtra = expectedApId;
+        event->iEvent = EPlaybackUtilityInitStreamingUrl;
     }
 
     AddExpectedEvent( event );
@@ -506,46 +490,6 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayer_AppUiEngineTester::SetDefaultAccessPointL
-// -------------------------------------------------------------------------------------------------
-//
-TInt CMpxVideoPlayer_AppUiEngineTester::SetDefaultAccessPointL( CStifItemParser& aItem )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::SetDefaultAccessPointL()"));
-
-    TInt apId;
-
-    //
-    //  Read in the filename from the config file
-    //
-    User::LeaveIfError( aItem.GetNextInt( apId ) );
-
-    WriteAccessPointL( KDefaultAccessPointFilename, apId );
-
-    return KErrNone;
-}
-
-// -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayer_AppUiEngineTester::SetQueryAccessPointL
-// -------------------------------------------------------------------------------------------------
-//
-TInt CMpxVideoPlayer_AppUiEngineTester::SetQueryAccessPointL( CStifItemParser& aItem )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::SetQueryAccessPointL()"));
-
-    TInt apId;
-
-    //
-    //  Read in the filename from the config file
-    //
-    User::LeaveIfError( aItem.GetNextInt( apId ) );
-
-    WriteAccessPointL( KQueryAccessPointFilename, apId );
-
-    return KErrNone;
-}
-
-// -------------------------------------------------------------------------------------------------
 //   CMpxVideoPlayer_AppUiEngineTester::SetGenericParamAccessPointL
 // -------------------------------------------------------------------------------------------------
 //
@@ -865,25 +809,6 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayer_AppUiEngineTester::PrepareCloseMpxL
-// -------------------------------------------------------------------------------------------------
-//
-TInt CMpxVideoPlayer_AppUiEngineTester::PrepareCloseMpxL( CStifItemParser& /*aItem*/ )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::PrepareCloseMpxL()"));
-
-    TCallbackEvent* event = new (ELeave) TCallbackEvent;
-    event->iEvent = EPlaybackUtilityClose;
-    AddExpectedEvent( event );
-
-    iAppUiEngine->PrepareCloseMpxL();
-
-    EndTest();
-
-    return iError;
-}
-
-// -------------------------------------------------------------------------------------------------
 //   CMpxVideoPlayer_AppUiEngineTester::StartStandAloneL
 // -------------------------------------------------------------------------------------------------
 //
@@ -1119,102 +1044,6 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   CMpxVideoPlayer_AppUiEngineTester::ProcessActivationMessageL
-// -------------------------------------------------------------------------------------------------
-//
-TInt CMpxVideoPlayer_AppUiEngineTester::ProcessActivationMessageL( CStifItemParser& aItem )
-{
-    MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::ProcessActivationMessageL()"));
-
-    TInt msgSender;
-    TInt msgType;
-
-    User::LeaveIfError( aItem.GetNextInt( msgSender ) );
-
-    if ( msgSender == KErrNotSupported )
-    {
-        _LIT8( KShortDes, "Test" );
-
-        MPX_TRAP( iError, iAppUiEngine->ProcessActivationMessageL( KShortDes ) );
-
-        if ( iError == msgSender )
-        {
-            iError = KErrNone;
-        }
-    }
-    else
-    {
-        TVideoPlayerActivationMessage params;
-
-        User::LeaveIfError( aItem.GetNextInt( msgType ) );
-
-        params.iMsgType   = (TVideoPlayerActivationMessage::TMessageType)msgType;
-        params.iMsgSender = (TVideoPlayerActivationMessage::TMessageSender)msgSender;
-
-        if ( msgType == TVideoPlayerActivationMessage::EOpenInternetVideos )
-        {
-            TCallbackEvent* event = new TCallbackEvent;
-            event->iEvent = EViewUtilityActivateViewUid;
-            event->iUid   = TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId );
-            AddExpectedEvent( event );
-        }
-        else if ( msgType == TVideoPlayerActivationMessage::EOpenVideoStorage )
-        {
-            TCallbackEvent* event = new TCallbackEvent;
-            event->iEvent = EViewUtilityActivateViewUid;
-            event->iUid   = TUid::Uid( KUidMyVideosViewTypeId );
-            AddExpectedEvent( event );
-        }
-        else if ( msgType == TVideoPlayerActivationMessage::ELaunchVideoToPlayer )
-        {
-            TFileName filename = GetFileNameAndPathL( aItem );
-
-            TBool idDefined;
-            User::LeaveIfError(  aItem.GetNextInt( idDefined ));
-
-            if ( idDefined )
-            {
-                params.iServiceId = 0x1234;
-                RFs fs;
-                User::LeaveIfError( fs.Connect() );
-                CleanupClosePushL( fs );
-
-                if ( BaflUtils::FileExists( fs , filename ) )
-                {
-                    TCallbackEvent* event1 = new (ELeave) TCallbackEvent;
-                    event1->iEvent = EViewUtilityPreLoadView;
-                    event1->iUid   = KVideoPlaybackViewUid;
-                    AddExpectedEvent( event1 );
-
-                    TCallbackEvent* event2 = new (ELeave) TCallbackEvent;
-                    event2->iEvent = EPlaybackUtilityInitPlaylist;
-                    AddExpectedEvent( event2 );
-                }
-                CleanupStack::PopAndDestroy( &fs );
-            }
-            else
-            {
-                params.iServiceId = 0;
-
-                TCallbackEvent* event = new TCallbackEvent;
-                event->iEvent = EViewUtilityActivateViewUid;
-                event->iUid   = TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId );
-                AddExpectedEvent( event );
-            }
-            params.iFullPath = filename;
-        }
-
-        TPckg<TVideoPlayerActivationMessage> paramsPckg( params );
-
-        iAppUiEngine->ProcessActivationMessageL( paramsPckg );
-    }
-
-    EndTest();
-
-    return iError;
-}
-
-// -------------------------------------------------------------------------------------------------
 //   CMpxVideoPlayer_AppUiEngineTester::HandleViewActivation
 // -------------------------------------------------------------------------------------------------
 //
@@ -1268,31 +1097,6 @@
 
     switch ( cmdId )
     {
-        case EProcessTail:
-        {
-            TInt msgSender;
-            TInt msgType;
-
-            User::LeaveIfError( aItem.GetNextInt( msgSender ) );
-            User::LeaveIfError( aItem.GetNextInt( msgType ) );
-
-
-            TVideoPlayerActivationMessage params;
-
-            params.iMsgType   = TVideoPlayerActivationMessage::EOpenVideoStorage;
-            params.iMsgSender = TVideoPlayerActivationMessage::EMatrixMenu;
-
-            TPckg<TVideoPlayerActivationMessage> paramsPckg( params );
-
-            TCallbackEvent* event = new TCallbackEvent;
-            event->iEvent = EViewUtilityActivateViewUid;
-            event->iUid   = TUid::Uid( KUidMyVideosViewTypeId );
-            AddExpectedEvent( event );
-
-            tail.Set( paramsPckg );
-
-            break;
-        }
         case EProcessStandAlone:
         {
             TCallbackEvent* event = new (ELeave) TCallbackEvent;
@@ -1470,31 +1274,6 @@
 }
 
 void
-CMpxVideoPlayer_AppUiEngineTester::WriteAccessPointL( const TDesC& aFileName, TInt aApId )
-{
-    MPX_DEBUG(_L("CMpxVideoPlayer_AppUiEngineTester::WriteAccessPointL(%S, %d)"),
-        &aFileName, aApId);
-
-    //
-    //  Write to test file so the controller open fails
-    //
-    RFile file;
-
-    RFs fs;
-    User::LeaveIfError( fs.Connect() );
-
-    TBuf8<16> tgt;
-    tgt.Num( aApId );
-
-    file.Replace( fs, aFileName, EFileWrite );
-
-    file.Write( tgt );
-
-    file.Close();
-    fs.Close();
-}
-
-void
 CMpxVideoPlayer_AppUiEngineTester::EndTest()
 {
     if ( ! iTimeoutController )
@@ -1550,18 +1329,4 @@
     return fullPath;
 }
 
-void
-CMpxVideoPlayer_AppUiEngineTester::CleanupTempFiles()
-{
-    MPX_DEBUG(_L("CMpxVideoPlayer_AppUiEngineTester::CleanupTempFiles()"));
-
-    RFs fs;
-    TInt error = fs.Connect();
-
-    error = fs.Delete( KDefaultAccessPointFilename );
-    error = fs.Delete( KQueryAccessPointFilename );
-
-    fs.Close();
-}
-
 // EOF
--- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayertestblocks.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayertestblocks.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#7 %
+// Version : %version: ou1cpsw#10 %
 
 // [INCLUDE FILES] - do not remove
 #include <e32svr.h>
@@ -59,19 +59,15 @@
         ENTRY( "CreateGenericParametersTerminate", Cmpxvideoplayer_test::CreateGenericParametersTerminateL ),
         ENTRY( "OpenFile", Cmpxvideoplayer_test::OpenFileL ),
         ENTRY( "OpenMedia", Cmpxvideoplayer_test::OpenMediaL ),
-        ENTRY( "SetDefaultAccessPoint", Cmpxvideoplayer_test::SetDefaultAccessPointL ),
-        ENTRY( "SetQueryAccessPoint", Cmpxvideoplayer_test::SetQueryAccessPointL ),
         ENTRY( "SetGenericParamAccessPoint", Cmpxvideoplayer_test::SetGenericParamAccessPointL ),
         ENTRY( "OpenFileEmbeddedPdl", Cmpxvideoplayer_test::OpenFileEmbeddedPdlL ),
         ENTRY( "HandleMessageEmbeddedPdl", Cmpxvideoplayer_test::HandleMessageEmbeddedPdlL ),
-        ENTRY( "PrepareCloseMpx", Cmpxvideoplayer_test::PrepareCloseMpxL ),
         ENTRY( "StartStandAlone", Cmpxvideoplayer_test::StartStandAloneL ),
         ENTRY( "HandleCollectionMessage", Cmpxvideoplayer_test::HandleCollectionMessageL ),
         ENTRY( "HandleCollectionMedia", Cmpxvideoplayer_test::HandleCollectionMediaL ),
         ENTRY( "HandleSoftkeyBack", Cmpxvideoplayer_test::HandleSoftkeyBackL ),
         ENTRY( "HandleOpenPlaylist", Cmpxvideoplayer_test::HandleOpenPlaylistL ),
         ENTRY( "HandleOpenMedia", Cmpxvideoplayer_test::HandleOpenMediaL ),
-        ENTRY( "ProcessActivationMessage", Cmpxvideoplayer_test::ProcessActivationMessageL ),
         ENTRY( "HandleViewActivation", Cmpxvideoplayer_test::HandleViewActivation ),
         ENTRY( "ProcessCommandParameters", Cmpxvideoplayer_test::ProcessCommandParametersL ),
         ENTRY( "HandleMessageActivationMessageL", Cmpxvideoplayer_test::HandleMessageActivationMessageL ),
@@ -123,24 +119,6 @@
 }
 
 // -----------------------------------------------------------------------------
-//   Cmpxvideoplayer_test::SetDefaultAccessPointL
-// -----------------------------------------------------------------------------
-//
-TInt Cmpxvideoplayer_test::SetDefaultAccessPointL( CStifItemParser& aItem )
-{
-    return iAppUiEngineTester->SetDefaultAccessPointL( aItem );
-}
-
-// -----------------------------------------------------------------------------
-//   Cmpxvideoplayer_test::SetQueryAccessPointL
-// -----------------------------------------------------------------------------
-//
-TInt Cmpxvideoplayer_test::SetQueryAccessPointL( CStifItemParser& aItem )
-{
-    return iAppUiEngineTester->SetQueryAccessPointL( aItem );
-}
-
-// -----------------------------------------------------------------------------
 //   Cmpxvideoplayer_test::SetGenericParamAccessPointL
 // -----------------------------------------------------------------------------
 //
@@ -168,15 +146,6 @@
 }
 
 // -----------------------------------------------------------------------------
-//   Cmpxvideoplayer_test::PrepareCloseMpxL
-// -----------------------------------------------------------------------------
-//
-TInt Cmpxvideoplayer_test::PrepareCloseMpxL( CStifItemParser& aItem )
-{
-    return iAppUiEngineTester->PrepareCloseMpxL( aItem );
-}
-
-// -----------------------------------------------------------------------------
 //   Cmpxvideoplayer_test::StartStandAloneL
 // -----------------------------------------------------------------------------
 //
@@ -231,15 +200,6 @@
 }
 
 // -----------------------------------------------------------------------------
-//   Cmpxvideoplayer_test::ProcessActivationMessageL
-// -----------------------------------------------------------------------------
-//
-TInt Cmpxvideoplayer_test::ProcessActivationMessageL( CStifItemParser& aItem )
-{
-    return iAppUiEngineTester->ProcessActivationMessageL( aItem );
-}
-
-// -----------------------------------------------------------------------------
 //   Cmpxvideoplayer_test::HandleViewActivation
 // -----------------------------------------------------------------------------
 //