201039 PDK_4.0.a
authorhgs
Tue, 05 Oct 2010 09:26:49 +0300
changeset 66 adb51f74b890
parent 63 4707a0db12f6
child 67 72c709219fcd
201039
layers.sysdef.xml
package_definition.xml
videocollection/inc/videocollectioncommon.h
videocollection/mpxmyvideoscollection/src/vcxmyvideosasyncfileoperations.cpp
videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp
videocollection/tsrc/stubs/inc/videohintwidgetdata.h
videocollection/tsrc/stubs/inc/videoservices.h
videocollection/tsrc/stubs/src/hbdocumentloader.cpp
videocollection/tsrc/stubs/src/videocollectionuiloader.cpp
videocollection/tsrc/stubs/src/videohintwidget.cpp
videocollection/tsrc/stubs/src/videolisttoolbar.cpp
videocollection/tsrc/stubs/src/videolistview.cpp
videocollection/tsrc/stubs/stubs.pro
videocollection/tsrc/videoservicestestapp/inc/videoservicestestappview.h
videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp
videocollection/videocollectionview/conf/videoplayerservicelist.confml
videocollection/videocollectionview/data/collectionview.docml
videocollection/videocollectionview/inc/videocollectionuiloaderdef.h
videocollection/videocollectionview/inc/videohintwidget.h
videocollection/videocollectionview/inc/videolisttoolbar.h
videocollection/videocollectionview/inc/videolistview.h
videocollection/videocollectionview/src/videocollectionuiloader.cpp
videocollection/videocollectionview/src/videohintwidget.cpp
videocollection/videocollectionview/src/videolistselectiondialog.cpp
videocollection/videocollectionview/src/videolisttoolbar.cpp
videocollection/videocollectionview/src/videolistview.cpp
videocollection/videocollectionview/src/videolistwidget.cpp
videocollection/videocollectionview/tsrc/testcollectionview/src/testcollectionview.cpp
videocollection/videocollectionview/tsrc/testhintwidget/inc/testhintwidget.h
videocollection/videocollectionview/tsrc/testhintwidget/src/testhintwidget.cpp
videocollection/videocollectionview/tsrc/testhintwidget/testhintwidget.pro
videocollection/videocollectionview/tsrc/testlisttoolbar/inc/testlisttoolbar.h
videocollection/videocollectionview/tsrc/testlisttoolbar/src/testlisttoolbar.cpp
videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp
videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp
videocollection/videocollectionview/tsrc/testvideolistselectiondialog/inc/videolistselectiondialogtester.h
videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp
videocollection/videocollectionview/tsrc/videocollectionviewtests.pro
videocollection/videocollectionview/videocollectionview.pro
videocollection/videocollectionwrapper/tsrc/testvideocollectionclient/testvideocollectionclient.pro
videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro
videocollection/videocollectionwrapper/tsrc/testvideocollectionwrapper_p/testvideocollectionwrapper_p.pro
videocollection/videocollectionwrapper/tsrc/testvideodatacontainer/testvideodatacontainer.pro
videocollection/videocollectionwrapper/tsrc/testvideodeleteworker/testvideodeleteworker.pro
videocollection/videocollectionwrapper/tsrc/testvideomodel/testvideomodel.pro
videocollection/videocollectionwrapper/tsrc/testvideomodel_p/testvideomodel_p.pro
videocollection/videocollectionwrapper/tsrc/testvideoproxymodelallvideos/testvideoproxymodelallvideos.pro
videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcollections/testvideoproxymodelcollections.pro
videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcontent/testvideoproxymodelcontent.pro
videocollection/videocollectionwrapper/tsrc/testvideoproxymodelgeneric/testvideoproxymodelgeneric.pro
videocollection/videocollectionwrapper/tsrc/videocollectionwrappertest.pro
videoplayback/videohelix/src/mpxcalldetector.cpp
videoplayback/videohelix/src/mpxvideoplaybackmode.cpp
videoplayback/videohelix/src/mpxvideoplaybackstate.cpp
videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp
videoplayback/videoplaybackview/controlinc/videoplaybacktoolbar.h
videoplayback/videoplaybackview/controlinc/videoplaybackvolumecontrol.h
videoplayback/videoplaybackview/controlsrc/videoplaybackcontrolscontroller.cpp
videoplayback/videoplaybackview/controlsrc/videoplaybackfiledetailswidget.cpp
videoplayback/videoplaybackview/controlsrc/videoplaybacktoolbar.cpp
videoplayback/videoplaybackview/controlsrc/videoplaybackvolumecontrol.cpp
videoplayback/videoplaybackview/inc/videoplaybackcontrolscontroller.h
videoplayback/videoplaybackview/inc/videoplaybackviewfiledetails.h
videoplayback/videoplaybackview/tsrc/testcontrolscontroller/inc/testcontrolscontroller.h
videoplayback/videoplaybackview/tsrc/testcontrolscontroller/src/testcontrolscontroller.cpp
videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/inc/hbvolumesliderpopup.h
videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/inc/mpxvideoviewwrapper.h
videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/src/hbvolumesliderpopup.cpp
videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/src/mpxvideoviewwrapper.cpp
videoplayback/videoplaybackview/tsrc/testcontrolscontroller/testcontrolscontroller.pro
videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/inc/testmpxvideoviewwrapper.h
videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp
videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/devsoundif.h
videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/videoplaybackdisplayhandler.h
videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/devsoundif.cpp
videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/videoplaybackdisplayhandler.cpp
videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro
videoplayback/videoplaybackview/tsrc/testtoolbar/src/testtoolbar.cpp
videoplayback/videoplaybackview/tsrc/testtoolbar/stub/inc/videoplaybackcontrolscontroller.h
videoplayback/videoplaybackview/tsrc/testtoolbar/stub/inc/videoplaybackviewfiledetails.h
videoplayback/videoplaybackview/tsrc/testtoolbar/stub/src/videoplaybackcontrolscontroller.cpp
videoplayback/videoplaybackview/tsrc/testtoolbar/stub/src/videoplaybackviewfiledetails.cpp
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/inc/testvideodisplayhandler.h
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mediaclientvideodisplay.h
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mpxvideoviewwrapper.h
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/videoplaybackviewfiledetails.h
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/mediaclientvideodisplay.cpp
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/mpxvideoviewwrapper.cpp
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/videoplaybackviewfiledetails.cpp
videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/testvideodisplayhandler.pro
videoplayback/videoplaybackview/tsrc/testvideoplaybackview/src/testvideoplaybackview.cpp
videoplayback/videoplaybackview/tsrc/testvideoplaybackview/stub/inc/hbpangesture.h
videoplayback/videoplaybackview/tsrc/testvideoplaybackview/stub/src/hbpangesture.cpp
videoplayback/videoplaybackview/tsrc/testvolumecontrol/inc/testvolumecontrol.h
videoplayback/videoplaybackview/tsrc/testvolumecontrol/src/testvolumecontrol.cpp
videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/inc/hbvolumesliderpopup.h
videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/inc/videoplaybackcontrolscontroller.h
videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/inc/videoplaybackviewfiledetails.h
videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/src/hbvolumesliderpopup.cpp
videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/src/videoplaybackcontrolscontroller.cpp
videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/src/videoplaybackviewfiledetails.cpp
videoplayback/videoplaybackview/tsrc/testvolumecontrol/testvolumecontrol.pro
videoplayback/videoplaybackview/videoplaybackview.pro
videoplayback/videoplaybackview/viewinc/mpxvideoviewwrapper.h
videoplayback/videoplaybackview/viewinc/videoplaybackdisplayhandler.h
videoplayback/videoplaybackview/viewsrc/mpxvideoviewwrapper.cpp
videoplayback/videoplaybackview/viewsrc/videobaseplaybackview.cpp
videoplayback/videoplaybackview/viewsrc/videoplaybackdisplayhandler.cpp
videoplayback/videoplaybackview/viewsrc/videoplaybackviewfiledetails.cpp
videoplayerapp/bwins/videoplayerengineu.def
videoplayerapp/eabi/videoplayerengineu.def
videoplayerapp/inc/videoplayerengine.h
videoplayerapp/videoplayer/resources/service_conf.xml
videoplayerapp/videoplayer/sis/videoplayer_stub.pkg
videoplayerapp/videoplayer/sis/videoplayer_udeb.pkg
videoplayerapp/videoplayer/sis/videoplayer_urel.pkg
videoplayerapp/videoplayerengine/inc/videoiadupdatewrapper.h
videoplayerapp/videoplayerengine/inc/videoservicebrowse.h
videoplayerapp/videoplayerengine/inc/videoserviceurifetch.h
videoplayerapp/videoplayerengine/src/mpxvideoplayerappuiengine.cpp
videoplayerapp/videoplayerengine/src/videoiadupdatewrapper.cpp
videoplayerapp/videoplayerengine/src/videoplayerengine.cpp
videoplayerapp/videoplayerengine/src/videoservicebrowse.cpp
videoplayerapp/videoplayerengine/src/videoservices.cpp
videoplayerapp/videoplayerengine/src/videoserviceurifetch.cpp
videoplayerapp/videoplayerengine/tsrc/testvideoappuiengine/testvideoappuiengine.pro
videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/inc/testvideoiadupdatewrapper.h
videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/src/testvideoiadupdatewrapper.cpp
videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/featmgr.h
videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/iaupdate.h
videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/iaupdateparameters.h
videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/iaupdateresult.h
videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/testvideoiadupdatewrapper.pro
videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/inc/videoiadupdatewrapper.h
videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/inc/videoserviceurifetch.h
videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/src/videoiadupdatewrapper.cpp
videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/src/videoserviceurifetch.cpp
videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/testvideoplayerengine.pro
videoplayerapp/videoplayerengine/tsrc/testvideoservices/src/testvideoservices.cpp
videoplayerapp/videoplayerengine/videoplayerengine.pro
--- a/layers.sysdef.xml	Mon Sep 20 18:25:37 2010 +0300
+++ b/layers.sysdef.xml	Tue Oct 05 09:26:49 2010 +0300
@@ -18,7 +18,7 @@
             <unit unitID="vado.testcollectionview" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testcollectionview" proFile="testcollectionview.pro" name="unittest.testcollectionview"/>
             <unit unitID="vado.testhintwidget" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testhintwidget" proFile="testhintwidget.pro" name="unittest.testhintwidget"/>
             <unit unitID="vado.testlistview" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testlistview" proFile="testlistview.pro" name="unittest.testlistview"/>
-            <unit unitID="vado.testlistwidget" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testlistwidget" proFile="testlistwidget.pro" name="unittest.testlistwidget"/>
+            <!--<unit unitID="vado.testlistwidget" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testlistwidget" proFile="testlistwidget.pro" name="unittest.testlistwidget"/> -->
             <unit unitID="vado.testvideocollectionuiloader" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testvideocollectionuiloader" proFile="testvideocollectionuiloader.pro" name="unittest.testvideocollectionuiloader"/>
             <unit unitID="vado.testvideocollectionviewutils" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testvideocollectionviewutils" proFile="testvideocollectionviewutils.pro" name="unittest.testvideocollectionviewutils"/>
             <unit unitID="vado.testvideolistselectiondialog" mrp="" bldFile="&layer_real_source_path;/videocollection/videocollectionview/tsrc/testvideolistselectiondialog" proFile="testvideolistselectiondialog.pro" name="unittest.testvideolistselectiondialog"/>
--- a/package_definition.xml	Mon Sep 20 18:25:37 2010 +0300
+++ b/package_definition.xml	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <SystemDefinition schema="3.0.0">
- <package id="videoplayer" name="Video Player Apps" levels="support plugin util apps" xmlns:qt="http://www.nokia.com/qt">
+ <package id="videoplayer" name="Video Player Apps" version="10.10.3" levels="support plugin util apps" xmlns:qt="http://www.nokia.com/qt">
   <collection id="videoplayer_plat" name="Video Player Apps Platform Interfaces" level="apps">
    <component id="videoplayer_startup_api" name="Video Player Startup API" class="api" filter="s60">
     <unit bldFile="videoplayer_plat/videoplayer_startup_api/group"/>
@@ -20,140 +20,44 @@
    <component id="videocollectionwrapper" filter="s60" name="Video Collection Wrapper" introduced="^4">
     <unit bldFile="videocollection/videocollectionwrapper" qt:proFile="videocollectionwrapper.pro"/>
    </component>
-   <component id="testvideocollectionclient" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
+     <component id="videocollectionwrapper_test" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
       <!--Can only have one unit. Need to split into separate component or #include from a common file-->
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideocollectionclient" qt:proFile="testvideocollectionclient.pro"/>
-   </component>
-   <component id="testvideocollectionlistener" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener" qt:proFile="testvideocollectionlistener.pro"/>
-   </component>
-   <component id="testvideocollectionwrapper_p" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideocollectionwrapper_p" qt:proFile="testvideocollectionwrapper_p.pro"/>
-   </component>
-   <component id="testvideodatacontainer" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideodatacontainer" qt:proFile="testvideodatacontainer.pro"/>
-   </component>
-   <component id="testvideodeleteworker" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideodeleteworker" qt:proFile="testvideodeleteworker.pro"/>
-   </component>
-   <component id="testvideomodel" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideomodel" qt:proFile="testvideomodel.pro"/>
-   </component>
-   <component id="testvideomodel_p" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideomodel_p" qt:proFile="testvideomodel_p.pro"/>
-   </component>
-<!--   <component id="testvideosortfilterproxymodel" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideosortfilterproxymodel" qt:proFile="testvideosortfilterproxymodel.pro"/>
-   </component> -->
-   <component id="testvideothumbnaildata" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata" qt:proFile="testvideothumbnaildata.pro"/>
-   </component>
-   <component id="testvideothumbnaildata_p" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata_p" qt:proFile="testvideothumbnaildata_p.pro"/>
-   </component>
-   <component id="testvideothumbnailfetcher" filter="s60,test,qt_unit_test" name="Video Collection Wrapper Tests" introduced="^4">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionwrapper/tsrc/testvideothumbnailfetcher" qt:proFile="testvideothumbnailfetcher.pro"/>
-   </component>
+      <meta rel="testbuild">
+       <group name="vado.101_videocollectionwrapper_qt.tsrc"/>
+      </meta>      
+      <unit bldFile="videocollection/videocollectionwrapper/tsrc" qt:proFile="videocollectionwrappertest.pro"/>
+     </component>
    <component id="videocollectionview" filter="s60" name="Video Collection View" introduced="^4">
     <unit bldFile="videocollection/videocollectionview" qt:proFile="videocollectionview.pro"/>
    </component>
-	 <component id="testcollectionview" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
+    <component id="videocollectionview_test" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
       <!--Can only have one unit. Need to split into separate components or #include from a common file-->
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionview/tsrc/testcollectionview" qt:proFile="testcollectionview.pro"/>
-   </component>
-   <component id="testhintwidget" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionview/tsrc/testhintwidget" qt:proFile="testhintwidget.pro"/>
-   </component>
-   <component id="testlistview" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionview/tsrc/testlistview" qt:proFile="testlistview.pro"/>
-   </component>
-   <component id="testlistwidget" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionview/tsrc/testlistwidget" qt:proFile="testlistwidget.pro"/>
-   </component>
-   <component id="testvideocollectionuiloader" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionview/tsrc/testvideocollectionuiloader" qt:proFile="testvideocollectionuiloader.pro"/>
-   </component>
-   <component id="testvideocollectionviewutils" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionview/tsrc/testvideocollectionviewutils" qt:proFile="testvideocollectionviewutils.pro"/>
-   </component>
-   <component id="testvideolistselectiondialog" filter="s60,test,qt_unit_test" name="Video Collection View Tests">
-    <meta rel="testbuild">
-    <group name="vado.101_videocollection_qt.tsrc"/>
-       </meta>
-    <unit bldFile="videocollection/videocollectionview/tsrc/testvideolistselectiondialog" qt:proFile="testvideolistselectiondialog.pro"/>
-   </component>
+      <meta rel="testbuild">
+       <group name="vado.101_videocollectionview_qt.tsrc"/>
+      </meta>
+      <unit bldFile="videocollection/videocollectionview/tsrc" qt:proFile="videocollectionviewtests.pro"/>
+     </component>
    <component id="videofiledetailsview" filter="s60" name="Video File Details View" introduced="^4">
     <unit bldFile="videocollection/videofiledetailsview" qt:proFile="videofiledetailsview.pro"/>
    </component>
-   </collection>
-   <collection id="mediasettings" name="Media Settings" level="support">
+  </collection>
+  <collection id="mediasettings" name="Media Settings" level="support">
    <component id="mediasettingsengine" filter="s60" name="Media Settings Engine">
     <unit bldFile="mediasettings/mediasettingsengine/group"/>
    </component>
    <component id="videosettingsplugin" filter="s60" name="Video Settings Plugin" class="plugin">
     <unit bldFile="mediasettings/videosettingsplugin" qt:proFile="videosettingsplugin.pro"/>
    </component>
-   </collection>
-   <collection id="videoplayerapp" name="Video Player App" level="apps">
+  </collection>
+  <collection id="videoplayerapp" name="Video Player App" level="apps">
    <component id="videoplayerengine" name="Video Player Engine" filter="s60"  introduced="^4">
     <unit bldFile="videoplayerapp/videoplayerengine" qt:proFile="videoplayerengine.pro"/>
    </component>
    <component id="hbvideoplayer" filter="s60" name="Video Player" introduced="^4">
     <unit bldFile="videoplayerapp/videoplayer" qt:proFile="videoplayer.pro"/>
    </component>
-   </collection>
-   <collection id="videoplayback" name="Video Playback Plugins" level="plugin">
+  </collection>
+  <collection id="videoplayback" name="Video Playback Plugins" level="plugin">
    <component id="videoplaybackview" filter="s60" name="Video Playback View" class="plugin" introduced="^4">
     <unit bldFile="videoplayback/videoplaybackview"  qt:proFile="videoplaybackview.pro"/>
    </component>
@@ -173,4 +77,3 @@
 
 
 
-
--- a/videocollection/inc/videocollectioncommon.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/inc/videocollectioncommon.h	Tue Oct 05 09:26:49 2010 +0300
@@ -78,7 +78,7 @@
      */
     const char * const VideoDetailLabels[] = {
             QT_TR_NOOP("txt_videos_list_title"),
-            QT_TR_NOOP("txt_videos_list_filename"),
+            QT_TR_NOOP("txt_videos_list_file_name"),
             QT_TR_NOOP("txt_videos_list_file_path"),
     		QT_TR_NOOP("txt_videos_list_drm"),
             QT_TR_NOOP("txt_videos_list_service"),
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosasyncfileoperations.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosasyncfileoperations.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -481,8 +481,7 @@
         {
         video = CMPXMedia::NewL( *videoInCache );
         }
-        
-    if ( !video )
+    else
         {
         video = iCollection.iMyVideosMdsDb->CreateVideoL( aMdsId, EFalse /* brief details */ );
         }
--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -180,7 +180,9 @@
     for ( TInt i = 0; i < count; i++ )
         {
         media = CMPXMedia::NewL( *(fromArray->AtL( i )) ); // points to same shared memory
+        CleanupStack::PushL( media );
         toArray->AppendL( media ); //ownership moves
+        CleanupStack::Pop( media );
         }
     }
 
--- a/videocollection/tsrc/stubs/inc/videohintwidgetdata.h	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: stub data for video hint widget
-* 
-*/
-
-#ifndef VIDEOHINTWIDGETDATA_H
-#define VIDEOHINTWIDGETDATA_H
-
-
-class VideoHintWidgetData
-{
-public: // methods
-    static void reset()
-    {
-        mSettedHintLevel = -1;
-        mSettedButtonShowLevel = false;
-    }
-    
-public: // data
-    static int mSettedHintLevel;
-    static bool mSettedButtonShowLevel;
-
-};
-
-#endif /* VIDEOHINTWIDGETDATA_H */
--- a/videocollection/tsrc/stubs/inc/videoservices.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/stubs/inc/videoservices.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: %
+// Version : %version: 4 %
 
 #ifndef __VIDEOSERVICES_H__
 #define __VIDEOSERVICES_H__
@@ -39,6 +39,8 @@
 {
     Q_OBJECT
 
+    Q_DISABLE_COPY( VideoServices )
+
     public:
 
         /**
@@ -123,6 +125,7 @@
          */
         virtual ~VideoServices();
     
+    public:
         void setEngine( VideoPlayerEngine* engine );
     
         /**
@@ -137,8 +140,6 @@
          */
         VideoPlayerEngine* engine();
     
-        Q_DISABLE_COPY( VideoServices )
-    
     private:
     
         /**
--- a/videocollection/tsrc/stubs/src/hbdocumentloader.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/stubs/src/hbdocumentloader.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -30,7 +30,6 @@
 #include "videocollectionuiloaderdef.h"
 #include "videolistwidget.h"
 #include "videolistview.h"
-#include "videohintwidget.h"
 #include "videolistselectiondialog.h"
 
 bool HbDocumentLoader::mFindWidgetFails = false;
@@ -229,10 +228,6 @@
     {
         obj = new VideoListWidget(0, 0);
     }
-    else if(name == DOCML_NAME_VC_VIDEOHINTWIDGET)
-    {
-        obj = new VideoHintWidget(0, 0);
-    }
     else if(name == DOCML_NAME_OPTIONS_MENU)
     {
         obj = new HbMenu();
@@ -269,11 +264,7 @@
     {
         obj = new HbAction();
     }
-    else if(name == DOCML_NAME_HINT_BUTTON)
-    {
-        obj = new HbPushButton();
-    }
-    else if(name == DOCML_NAME_NO_VIDEOS_LABEL)
+    else if(name == DOCML_NAME_NO_CONTENT_LABEL)
     {
         obj = new HbLabel();
     }
--- a/videocollection/tsrc/stubs/src/videocollectionuiloader.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/stubs/src/videocollectionuiloader.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -26,7 +26,6 @@
 #include "videocollectionuiloaderdef.h"
 #include "videolistview.h"
 #include "videolistwidget.h"
-#include "videohintwidget.h"
 #include "videolistselectiondialog.h"
 #include "videocollectionwrapper.h"
 
@@ -166,10 +165,6 @@
     {
 
     }
-    else if (name == DOCML_NAME_VC_VIDEOHINTWIDGET)
-    {
-
-    }
     else if (name == DOCML_NAME_OPTIONS_MENU)
     {
 
@@ -246,10 +241,6 @@
                 return 0;
             }
         }
-        else if (name == DOCML_NAME_VC_VIDEOHINTWIDGET)
-        {
-            object = new VideoHintWidget(this);
-        }
         if (object)
         {
             object->setObjectName(name);
--- a/videocollection/tsrc/stubs/src/videohintwidget.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Videolist content widget implementation
-*
-*/
-
-#include "videohintwidget.h"
-#include "videohintwidgetdata.h"
-
-int VideoHintWidgetData::mSettedHintLevel = -1;
-bool VideoHintWidgetData::mSettedButtonShowLevel = false;
-
-VideoHintWidget::VideoHintWidget(VideoCollectionUiLoader *uiLoader,
-    QGraphicsItem *parent):
-    HbWidget(parent),
-    mUiLoader(uiLoader),
-    mCurrentLevel(AllVideos)
-{
-    // NOP
-}
-
-VideoHintWidget::~VideoHintWidget()
-{
-    // nop
-}
-
-void VideoHintWidget::initialize()
-{
-    // not stubbed
-    return;
-}
-
-void VideoHintWidget::setLevel(HintLevel level)
-{
-    VideoHintWidgetData::mSettedHintLevel = (int)level; 
-}
-
-void VideoHintWidget::setButtonShown(bool shown)
-{
-    VideoHintWidgetData::mSettedButtonShowLevel = shown;
-}
-
-void VideoHintWidget::orientationChangedSlot(Qt::Orientation targetOrientation)
-{
-    Q_UNUSED(targetOrientation);
-    // not stubbed
-}
-
-void VideoHintWidget::activate()
-{
-    setVisible(true);
-}
-
-void VideoHintWidget::deactivate()
-{
-    setVisible(false);
-}
-
-void VideoHintWidget::updateUiComponents()
-{
-    // not stubbed
-}
-
-// end of file
--- a/videocollection/tsrc/stubs/src/videolisttoolbar.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/stubs/src/videolisttoolbar.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 1 %
+// Version : %version: 2 %
 
 // INCLUDE FILES
 #include <qactiongroup.h>
@@ -104,14 +104,6 @@
     Q_UNUSED(uidKey);
 }
 
-// ---------------------------------------------------------------------------
-// openOperatorServiceSlot()
-// ---------------------------------------------------------------------------
-//
-void VideoListToolbar::openOperatorServiceSlot()
-{
-}
-
 // -------------------------------------------------------------------------------------------------
 // addVideosToCollectionSlot()
 // -------------------------------------------------------------------------------------------------
--- a/videocollection/tsrc/stubs/src/videolistview.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/stubs/src/videolistview.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -125,12 +125,6 @@
     // not stubbed
 }
 
-void VideoListView::setHintLevel(VideoHintWidget::HintLevel level)
-{
-    Q_UNUSED(level);
-    // not stubbed
-}
-
 void VideoListView::updateSubLabel()
 {
     // not stubbed
--- a/videocollection/tsrc/stubs/stubs.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/stubs/stubs.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -73,7 +73,6 @@
     inc/videocollectionwrapperdata.h \
     inc/videolistdatamodeldata.h \
     inc/videolistselectiondialogdata.h \
-    inc/videohintwidgetdata.h \
     inc/videolistwidgetdata.h \
     inc/videolistviewdata.h \
     inc/videolisttoolbardata.h \
@@ -88,7 +87,6 @@
     inc/videoservices.h \
     ../../videocollectionview/inc/videocollectionuiloader.h \
     ../../videocollectionview/inc/videocollectionviewutils.h \
-    ../../videocollectionview/inc/videohintwidget.h \
     ../../videocollectionview/inc/videolistselectiondialog.h \
     ../../videocollectionview/inc/videolistwidget.h \
     ../../videocollectionview/inc/videolistview.h \
@@ -132,7 +130,6 @@
     src/xqserviceutilxtra.cpp \
     src/videocollectionuiloader.cpp \
     src/videocollectionviewutils.cpp \
-    src/videohintwidget.cpp \
     src/videolistselectiondialog.cpp \
     src/videolistwidget.cpp \
     src/videolistview.cpp \
--- a/videocollection/tsrc/videoservicestestapp/inc/videoservicestestappview.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/videoservicestestapp/inc/videoservicestestappview.h	Tue Oct 05 09:26:49 2010 +0300
@@ -37,16 +37,13 @@
     void handleError(int errorCode, const QString& errorMessage);
 
     void fetchVideo();
-    void fetchVideoDeprecatedOldService();
     void fetchVideoDeprecatedNewService();
     void browseCapturedVideos();
-    void browseCapturedVideosDeprecatedOldService();
     void browseCapturedVideosDeprecatedNewService();
     
 public slots:
     
     void browseCapturedVideosFinished(HbAction *action);
-    void browseCapturedVideosDeprecatedOldServiceFinished(HbAction *action);
     void browseCapturedVideosDeprecatedNewServiceFinished(HbAction *action);
 
 private:
--- a/videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -124,16 +124,7 @@
 
         if (bottomLayout)
         {
-            //bottomLayout->addStretch();
-/*
-            HbPushButton* button = new HbPushButton("Fetch video OLD IF OLD S");
-            if (button)
-            {
-                connect(button, SIGNAL(clicked()), this, SLOT(fetchVideoDeprecatedOldService()));
-                bottomLayout->addItem(button);
-            }
-*/
-            HbPushButton* button = new HbPushButton("Fetch video OLD IF NEW S");
+            HbPushButton* button = new HbPushButton("Fetch video OLD (removed)");
             if (button)
             {
                 connect(button, SIGNAL(clicked()), this, SLOT(fetchVideoDeprecatedNewService()));
@@ -147,15 +138,7 @@
                 bottomLayout->addItem(button);
             }
 
-/*
-            button = new HbPushButton("Browse \"Captured\" videos OLD IF OLD S");
-            if (button)
-            {
-                connect(button, SIGNAL(clicked()), this, SLOT(browseCapturedVideosDeprecatedOldService()));
-                bottomLayout->addItem(button);
-            }
-*/
-            button = new HbPushButton("Browse \"Captured\" videos OLD IF NEW S");
+            button = new HbPushButton("Browse \"Captured\" videos OLD(removed)");
             if (button)
             {
                 connect(button, SIGNAL(clicked()), this, SLOT(browseCapturedVideosDeprecatedNewService()));
@@ -188,7 +171,7 @@
 
     delete mReq;
     mReq = 0;
-    mReq = mAppMgr.create(XQI_VIDEO_FETCH, "fetch()", true);
+    mReq = mAppMgr.create(XQI_VIDEO_FETCH, XQOP_VIDEO_FETCH, true);
 
     qDebug() <<  "VideoServicesTestAppView::fetchVideo: mReq=" << mReq;
 
@@ -233,7 +216,8 @@
     delete mReq;
     mReq = 0;
 
-    mReq = mAppMgr.create("com.nokia.symbian.IVideoBrowse", "browseVideos(int,int)", true);
+    //mReq = mAppMgr.create(XQI_VIDEO_BROWSE, XQOP_VIDEO_BROWSE, true);
+    mReq = mAppMgr.create(XQI_VIDEO_BROWSE, "browseVideos(int,int)", true);
 
     qDebug() <<  "VideoServicesTestAppView::browseCapturedVideos: mReq=" << mReq;
 
@@ -260,8 +244,8 @@
     dialog->setInputMode(HbInputDialog::IntInput, 1);
     dialog->setPromptText("Enter category", 0);
     dialog->setPromptText("Enter sort role", 1);
-	dialog->setValue(3, 0);
-	dialog->setValue(0, 1);
+	dialog->setValue(KVcxMvcCategoryIdCaptured, 0);
+	dialog->setValue(XQService::SortTitle, 1);
     dialog->open(this, SLOT(browseCapturedVideosFinished(HbAction *)));
 
     qDebug() <<  "VideoServicesTestAppView::browseCapturedVideos END";
@@ -294,49 +278,6 @@
     }
 }
 
-void VideoServicesTestAppView::fetchVideoDeprecatedOldService()
-{
-    qDebug() <<  "VideoServicesTestAppView::fetchVideo START";
-
-    mResultEdit->setText("");
-    mErrorEdit->setText("");
-    mErrorCodeEdit->setText("");
-
-    delete mReq;
-    mReq = 0;
-    mReq = mAppMgr.create("com.nokia.Videos", "IVideoFetch", "fetch(QString)", true);
-
-    qDebug() <<  "VideoServicesTestAppView::fetchVideo: mReq=" << mReq;
-
-    if (!mReq)
-    {
-        mErrorEdit->setText("Failed to create REQ");
-        return;
-    }
-    else
-    {
-        connect(mReq, SIGNAL(requestOk(const QVariant&)), SLOT(handleOk(const QVariant&)));
-        connect(mReq, SIGNAL(requestError(int,const QString&)), SLOT(handleError(int,const QString&)));
-    }
-
-    // Set arguments for request (application title)
-    QList<QVariant> args;
-    args << QVariant(QString("<OLD-IF-OLD-S app_name>"));
-    mReq->setArguments(args);
-
-    // Make the request
-    if (!mReq->send())
-    {
-        mErrorEdit->setText("Failed to send REQ");
-        qDebug() <<  "VideoServicesTestAppView::fetchVideo: XQAiwRequest::send returned false";
-    }
-    // req no longer needed, remove it
-    delete mReq;
-    mReq = 0;
-
-    qDebug() <<  "VideoServicesTestAppView::fetchVideo END";
-}
-
 void VideoServicesTestAppView::fetchVideoDeprecatedNewService()
 {
     qDebug() <<  "VideoServicesTestAppView::fetchVideo START";
@@ -379,76 +320,6 @@
     qDebug() <<  "VideoServicesTestAppView::fetchVideo END";
 }
 
-
-void VideoServicesTestAppView::browseCapturedVideosDeprecatedOldService()
-{
-    qDebug() <<  "VideoServicesTestAppView::browseCapturedVideos START";
-
-    mResultEdit->setText("");
-    mErrorEdit->setText("");
-    mErrorCodeEdit->setText("");
-
-    delete mReq;
-    mReq = 0;
-    mReq = mAppMgr.create("com.nokia.Videos", "IVideoBrowse", "browseVideos(QString,int,int)", true);
-
-    qDebug() <<  "VideoServicesTestAppView::browseCapturedVideos: mReq=" << mReq;
-
-    if (!mReq)
-    {
-        mErrorEdit->setText("Failed to create REQ");
-        return;
-    }
-    else
-    {
-        connect(mReq, SIGNAL(requestOk(QVariant)), SLOT(handleOk(QVariant)));
-        connect(mReq, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString)));
-    }
-
-    HbInputDialog *dialog = new HbInputDialog();
-    dialog->setAttribute(Qt::WA_DeleteOnClose);
-    dialog->setAdditionalRowVisible(true);
-    dialog->setInputMode(HbInputDialog::IntInput, 0);
-    dialog->setInputMode(HbInputDialog::IntInput, 1);
-    dialog->setPromptText("Enter category", 0);
-    dialog->setPromptText("Enter sort role", 1);
-	dialog->setValue(3, 0);
-	dialog->setValue(0, 1);
-    dialog->open(this, SLOT(browseCapturedVideosDeprecatedOldServiceFinished(HbAction *)));
-
-    qDebug() <<  "VideoServicesTestAppView::browseCapturedVideos END";
-}
-
-void VideoServicesTestAppView::browseCapturedVideosDeprecatedOldServiceFinished(HbAction *action)
-{
-    HbInputDialog *dialog = static_cast<HbInputDialog*>(sender());
-
-    const QString title = "<OLD-IF-OLD-S app name>";
-
-    int category = dialog->value(0).toInt();
-    int sortRole = dialog->value(1).toInt();
-
-    if(dialog->actions().first() == action)
-    {
-    	// set arguments
-        QList<QVariant> args;
-        args.append(title);
-        args.append(QVariant(category));
-        args.append(QVariant(sortRole));
-        mReq->setArguments(args);
-
-        // Make the request
-        if (!mReq->send())
-        {
-            mErrorEdit->setText("Failed to send REQ");
-            qDebug() <<  "VideoServicesTestAppView::browseCapturedVideosFinished: XQAiwRequest::send returned false";
-        }
-        // req no longer needed, remove it
-        delete mReq;
-        mReq = 0;
-    }
-}
-
 void VideoServicesTestAppView::browseCapturedVideosDeprecatedNewService()
 {
     qDebug() <<  "VideoServicesTestAppView::browseCapturedVideos START";
Binary file videocollection/videocollectionview/conf/videoplayerservicelist.confml has changed
--- a/videocollection/videocollectionview/data/collectionview.docml	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/data/collectionview.docml	Tue Oct 05 09:26:49 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="1.0">
+<hbdocument version="1.1">
     <object name="vc:mAddtoCollection" type="HbAction">
         <string locid="txt_videos_opt_add_to_collection" name="text"/>
     </object>
@@ -23,14 +23,14 @@
     </object>
     <widget name="view" type="VideoListView">
         <widget name="vc:mOptionsMenu" role="HbView:menu" type="HbMenu">
-            <ref object="vc:mAddtoCollection" role="HbMenu:addAction"/>
-            <ref object="vc:mCreateNewCollection" role="HbMenu:addAction"/>
-            <ref object="vc:mDeleteMultiple" role="HbMenu:addAction"/>
+            <ref object="vc:mAddtoCollection" role="HbWidget:addAction"/>
+            <ref object="vc:mCreateNewCollection" role="HbWidget:addAction"/>
+            <ref object="vc:mDeleteMultiple" role="HbWidget:addAction"/>
             <widget name="vc:mSortBy" role="HbMenu:menu" type="HbMenu">
-                <ref object="vc:mDate" role="HbMenu:addAction"/>
-                <ref object="vc:mName" role="HbMenu:addAction"/>
-                <ref object="vc:mNumberOfItems" role="HbMenu:addAction"/>
-                <ref object="vc:mSize" role="HbMenu:addAction"/>
+                <ref object="vc:mDate" role="HbWidget:addAction"/>
+                <ref object="vc:mName" role="HbWidget:addAction"/>
+                <ref object="vc:mNumberOfItems" role="HbWidget:addAction"/>
+                <ref object="vc:mSize" role="HbWidget:addAction"/>
                 <string locid="txt_videos_opt_sort_by" name="title"/>
             </widget>
         </widget>
@@ -40,16 +40,20 @@
                     <sizehint height="72un" type="PREFERRED" width="53.6un"/>
                     <bool name="visible" value="TRUE"/>
                 </widget>
-                <widget name="vc:mHintWidget" type="VideoHintWidget">
-                    <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
+                <widget name="vc:mNoContentLabel" type="HbLabel">
+                    <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                    <sizehint height="var(hb-param-screen-height)" type="PREFERRED"/>
+                    <sizehint height="var(hb-param-screen-height)" type="MAXIMUM" width="var(hb-param-screen-width)"/>
                     <bool name="visible" value="FALSE"/>
-                </widget>        
+                    <string locid="txt_common_info_no_content" name="plainText" value="(No content)"/>
+                    <fontspec name="fontSpec" role="Primary" textheight="26.8"/>
+                </widget>
                 <real name="z" value="0"/>
                 <sizehint height="72un" type="PREFERRED" width="53.6un"/>
                 <bool name="visible" value="TRUE"/>
                 <layout type="stacked">
                     <stackitem itemname="vc:mListStacked"/>
-                    <stackitem itemname="vc:mHintWidget"/>
+                    <stackitem itemname="vc:mNoContentLabel"/>
                 </layout>
             </widget>
             <widget name="vc:mBanner" type="HbGroupBox">
@@ -69,43 +73,6 @@
             </layout>
         </widget>
     </widget>
-    <section name="hintSection">
-        <widget name="vc:mHintWidget" type="VideoHintWidget">
-            <widget name="vc:mNoVideosLabel" type="HbLabel">
-                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-                <sizehint height="6un" type="PREFERRED"/>
-                <sizehint height="6un" type="MAXIMUM" width="2504062.01158un"/>
-                <bool name="visible" value="FALSE"/>
-                <string locid="txt_videos_info_no_videos" name="plainText" value="(No videos)"/>
-                <fontspec name="fontSpec" role="Primary" textheight="26.8"/>
-            </widget>
-            <widget name="vc:mHintButtonLayout" type="HbWidget">
-                <widget name="vc:mHintButton" type="HbPushButton">
-                    <real name="z" value="1"/>
-                    <sizehint type="PREFERRED"/>
-                    <sizehint height="6un" type="MAXIMUM" width="2504062.01158un"/>
-                    <bool name="visible" value="FALSE"/>
-                    <string name="state" value="normal"/>
-                </widget>
-                <real name="z" value="0"/>
-                <sizehint height="11.9403un" type="PREFERRED" width="23.8806un"/>
-                <layout orientation="Horizontal" type="linear">
-                    <stretchitem stretchfactor="1"/>
-                    <linearitem itemname="vc:mHintButton"/>
-                    <stretchitem stretchfactor="1"/>
-                </layout>
-            </widget>
-            <real name="z" value="0"/>
-            <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
-            <bool name="visible" value="FALSE"/>
-            <layout orientation="Vertical" type="linear">
-                <stretchitem stretchfactor="1"/>
-                <linearitem itemname="vc:mNoVideosLabel"/>
-                <linearitem itemname="vc:mHintButtonLayout"/>
-                <stretchitem stretchfactor="1"/>
-            </layout>
-        </widget>            
-    </section>
     <section name="listsSection">
         <widget name="vc:mListStacked" type="HbWidget">
             <widget name="vc:mListWidget" type="VideoListWidget">
@@ -126,11 +93,10 @@
                 <stackitem itemname="vc:mCollectionWidget"/>
                 <stackitem itemname="vc:mCollectionContentWidget"/>
             </layout>
-        </widget>  
+        </widget>
     </section>
-    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+    <metadata activeUIState="Common ui state" display="NHD-3.2-inch_portrait" unit="un">
         <uistate name="Common ui state" sections="#common"/>
-        <uistate name="hintState" sections="#common hintSection"/>
         <uistate name="listsState" sections="#common listsSection"/>
     </metadata>
 </hbdocument>
--- a/videocollection/videocollectionview/inc/videocollectionuiloaderdef.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/inc/videocollectionuiloaderdef.h	Tue Oct 05 09:26:49 2010 +0300
@@ -21,7 +21,6 @@
 // Constants
 static const char* DOCML_VIDEOCOLLECTIONVIEW_FILE         = ":/layout/collectionview.docml";
 static const char* DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST = "listsSection";
-static const char* DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT = "hintSection";
 static const char* DOCML_NAME_VIEW                        = "view";
 
 // Videocollection View
@@ -29,7 +28,6 @@
 static const char* DOCML_NAME_VC_COLLECTIONWIDGET         = "vc:mCollectionWidget";
 static const char* DOCML_NAME_VC_COLLECTIONCONTENTWIDGET  = "vc:mCollectionContentWidget";
 static const char* DOCML_NAME_VC_VIDEOLISTWIDGET          = "vc:mListWidget";
-static const char* DOCML_NAME_VC_VIDEOHINTWIDGET          = "vc:mHintWidget";
 
 // Videocollection Options Menu
 static const char* DOCML_NAME_OPTIONS_MENU                = "vc:mOptionsMenu";
@@ -44,9 +42,8 @@
 static const char* DOCML_NAME_CREATE_COLLECTION           = "vc:mCreateNewCollection";
 static const char* DOCML_NAME_DELETE_MULTIPLE             = "vc:mDeleteMultiple";
 
-// Videocollection hint widget
-static const char* DOCML_NAME_HINT_BUTTON                 = "vc:mHintButton";
-static const char* DOCML_NAME_NO_VIDEOS_LABEL             = "vc:mNoVideosLabel";
+// Videocollection no content label
+static const char* DOCML_NAME_NO_CONTENT_LABEL             = "vc:mNoContentLabel";
 
 // video multiselection dialog
 static const char* DOCML_VIDEOSELECTIONDIALOG_FILE        = ":/layout/videolistselectiondialog.docml";
--- a/videocollection/videocollectionview/inc/videohintwidget.h	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Videolist hint widget
-*
-*/
-
-
-#ifndef VIDEOHINTWIDGET_H
-#define VIDEOHINTWIDGET_H
-
-#include <hbwidget.h>
-#include <hbicon.h>
-
-class HbPushButton;
-class HbLabel;
-class VideoCollectionUiLoader;
-class QGraphicsItem;
-
-/**
- * Widget for displaying no videos text and possible hint and button for user
- * find where to download new videos.
- */
-class VideoHintWidget : public HbWidget
-{
-    Q_OBJECT
-
-public:
-    
-    enum HintLevel {
-        AllVideos,
-        Collection
-    };
-
-    /**
-     * Contructor.
-     *
-     * @param parent parent of this widget
-     */
-    VideoHintWidget(VideoCollectionUiLoader *uiLoader, QGraphicsItem *parent = 0);
-
-    /**
-     * Destructor.
-     *
-     */
-    ~VideoHintWidget();
-    
-    /**
-     * Method creates colleciton wrapper, grid and list views,
-     * layout and activates correct view based on the current orientation
-     *
-     */
-    void initialize();
-    
-    /**
-     * Sets the level where the hint is correctly. Hint displays differently in
-     * for example collection level, than in allVideos level.
-     * 
-     * @param level The current level.
-     */
-    void setLevel(HintLevel level);
-    
-    /**
-     * Adjusts if the button is shown in landscape.
-     */
-    void setButtonShown(bool shown);
-    
-    /**
-     * Method enables and displays this widget.
-     */
-    void activate();
-
-    /**
-     * Method disables and hides this widget.
-     */
-    void deactivate();
-    
-private slots:
-    
-    /**
-     * Method activates correct view based on the given orientation.
-     */
-    void orientationChangedSlot(Qt::Orientation orientation);
-    
-private:
-    
-    /**
-     * Shows/hides the correct UI components for current state.
-     */
-    void updateUiComponents();
-
-private:
-    
-    Q_DISABLE_COPY(VideoHintWidget)
-    
-    /**
-     * Pointer to the XML UI (DocML) loader, not owned
-     */
-    VideoCollectionUiLoader     *mUiLoader;
-
-    /**
-     * Current hint level.
-     */
-    HintLevel mCurrentLevel;
-    
-    /**
-     * If button is shown in landscape at all.
-     */
-    bool mButtonShown;
-    
-    /**
-     * true if widget has been activated.
-     */
-    bool mActivated;
-    
-    /**
-     * Localized text for the service button. 
-     */
-    QString mHintText;
-};
-
-#endif // VIDEOHINTWIDGET_H
--- a/videocollection/videocollectionview/inc/videolisttoolbar.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/inc/videolisttoolbar.h	Tue Oct 05 09:26:49 2010 +0300
@@ -91,11 +91,6 @@
      */
     void viewStateChanged(VideoCollectionCommon::TCollectionLevels currentLevel, 
         bool noVideos, bool modelReady);
-    
-    /**
-     * Launches the first operator service from the operator service list.
-     */
-    void openOperatorServiceSlot();
 
     /**
      * Slot is connected into "Add videos" signal
--- a/videocollection/videocollectionview/inc/videolistview.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/inc/videolistview.h	Tue Oct 05 09:26:49 2010 +0300
@@ -22,8 +22,6 @@
 #include <qnamespace.h>
 #include <hbaction.h>
 
-#include "videohintwidget.h"
-
 class QGraphicsItem;
 class QVariant;
 class HbToolBarExtension;
@@ -251,11 +249,6 @@
     void showHint(bool show = true);
     
     /**
-     * 
-     */
-    void setHintLevel(VideoHintWidget::HintLevel level);
-    
-    /**
      * Updates the sublabel text.
      */
     void updateSubLabel();
@@ -315,11 +308,6 @@
     bool mViewReady;
 
     /**
-     * Hint level for the hint widget.
-     */
-    VideoHintWidget::HintLevel mHintLevel;
-
-    /**
      * Pointer to videoservices instance
      * if exists, app has started as service
      */
@@ -334,7 +322,6 @@
      * String containing the name of the currently open collection
      */
     QString mCollectionName;
-    
 };
 
 #endif // VIDEOLISTVIEW_H
--- a/videocollection/videocollectionview/src/videocollectionuiloader.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/src/videocollectionuiloader.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 24.1.1 %
+// Version : %version: 24.1.2 %
 
 // INCLUDE FILES
 #include <qgraphicswidget.h>
@@ -30,7 +30,6 @@
 #include "videolistview.h"
 #include "videolistselectiondialog.h"
 #include "videolistwidget.h"
-#include "videohintwidget.h"
 #include "videocollectionwrapper.h"
 #include "videoproxymodelgeneric.h"
 #include "videocollectionviewutils.h"
@@ -456,14 +455,6 @@
                 }
             }
         }
-        else if (name.compare(DOCML_NAME_VC_VIDEOHINTWIDGET) == 0)
-        {
-            VideoHintWidget *hintWidget = qobject_cast<VideoHintWidget*>(object);
-            if (hintWidget)
-            {
-                hintWidget->initialize();
-            }
-        }
         else if (name.compare(DOCML_NAME_OPTIONS_MENU) == 0)
         {
             // ensure that all the actions related to options menu are loaded
@@ -679,10 +670,6 @@
     {
         object = new VideoListWidget(this);
     }
-    else if ( type == VideoHintWidget::staticMetaObject.className() )
-    {
-        object = new VideoHintWidget(this);
-    }
     if ( object )
     {
         object->setObjectName( name );
--- a/videocollection/videocollectionview/src/videohintwidget.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Videolist content widget implementation
-*
-*/
-
-// Version : %version: 15 %
-
-// INCLUDE FILES
-#include <hbpushbutton.h>
-#include <hblabel.h>
-#include <qgraphicsitem.h>
-#include <hbinstance.h>
-
-#include "videohintwidget.h"
-#include "videocollectionuiloader.h"
-#include "videocollectionviewutils.h"
-#include "videocollectioncenrepdefs.h"
-#include "videocollectiontrace.h"
-
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-VideoHintWidget::VideoHintWidget( VideoCollectionUiLoader *uiLoader, QGraphicsItem *parent ) 
-    : HbWidget( parent )
-    , mUiLoader( uiLoader )
-    , mCurrentLevel( AllVideos )
-    , mButtonShown( false )
-    , mActivated( false )
-{
-    FUNC_LOG;
-    // NOP
-}
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-VideoHintWidget::~VideoHintWidget()
-{
-    FUNC_LOG;
-}
-
-// ---------------------------------------------------------------------------
-// initialize
-// ---------------------------------------------------------------------------
-//
-void VideoHintWidget::initialize()
-{
-    FUNC_LOG;
-    VideoCollectionViewUtils& utils = VideoCollectionViewUtils::instance();
-    
-    QString textId = utils.getCenRepStringValue(KVideoCollectionViewCenrepServiceItem1Text);
-    if(!textId.isEmpty())
-    {
-        mHintText = hbTrId(textId.toLatin1().constData());
-    }
-}
-
-// ---------------------------------------------------------------------------
-// setLevel
-// ---------------------------------------------------------------------------
-//
-void VideoHintWidget::setLevel(HintLevel level)
-{
-    FUNC_LOG;
-    INFO_1("VideoHintWidget::setLevel() level: %d", level);
-    mCurrentLevel = level;
-    if(mActivated) {
-        updateUiComponents();
-    }
-}
-
-// ---------------------------------------------------------------------------
-// setButtonShown
-// ---------------------------------------------------------------------------
-//
-void VideoHintWidget::setButtonShown(bool shown)
-{
-    FUNC_LOG;
-    INFO_1("VideoHintWidget::setButtonShown() shown: %d", shown);
-	mButtonShown = shown;
-    if(mActivated) {
-        updateUiComponents();
-    }
-}
-
-// ---------------------------------------------------------------------------
-// orientationChanged
-// ---------------------------------------------------------------------------
-//
-void VideoHintWidget::orientationChangedSlot(Qt::Orientation targetOrientation)
-{
-    FUNC_LOG;
-    Q_UNUSED(targetOrientation);
-    updateUiComponents();
-}
-
-// ---------------------------------------------------------------------------
-// activate
-// ---------------------------------------------------------------------------
-//
-void VideoHintWidget::activate()
-{
-    FUNC_LOG;
-    if (!mActivated)
-    {
-        HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0);
-        connect(
-            mainWnd, SIGNAL(orientationChanged(Qt::Orientation)),
-            this, SLOT(orientationChangedSlot(Qt::Orientation)));
-        
-        updateUiComponents();
-        
-        setVisible(true);
-        
-        mActivated = true;
-    }
-}
-
-// ---------------------------------------------------------------------------
-// deactivate
-// ---------------------------------------------------------------------------
-//
-void VideoHintWidget::deactivate()
-{
-    FUNC_LOG;
-    if (mActivated)
-    {
-        mActivated = false;
-        
-        setVisible(false);
-        
-        HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0);
-        disconnect(
-            mainWnd, SIGNAL(orientationChanged(Qt::Orientation)),
-            this, SLOT(orientationChangedSlot(Qt::Orientation)));
-    }
-}
-
-// ---------------------------------------------------------------------------
-// updateUiComponents
-// ---------------------------------------------------------------------------
-//
-void VideoHintWidget::updateUiComponents()
-{
-    FUNC_LOG;
-    HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0);
-    if (mainWnd)
-    {
-        HbPushButton *hintButton =
-            mUiLoader->findWidget<HbPushButton>(
-                DOCML_NAME_HINT_BUTTON);
-        HbLabel *noVideosLabel =
-            mUiLoader->findWidget<HbLabel>(
-                DOCML_NAME_NO_VIDEOS_LABEL);
-        if (hintButton && noVideosLabel)
-        {
-            noVideosLabel->setVisible(true);
-
-            if (mCurrentLevel == AllVideos && !mHintText.isEmpty())
-            {
-                hintButton->setText(mHintText);
-                hintButton->setVisible(mButtonShown);
-            }
-            else
-            {
-                hintButton->setVisible(false);
-            }
-        }
-    }
-}
-
-// end of file
--- a/videocollection/videocollectionview/src/videolistselectiondialog.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/src/videolistselectiondialog.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 * 
 */
 
-// Version : %version: 30.1.4 %
+// Version : %version: 30.1.5 %
 
 // INCLUDE FILES
 #include <qgraphicsitem.h>
@@ -793,7 +793,7 @@
     if(mSelectedAlbumId.iId2 > KVcxMvcMediaTypeVideo)
     {
         VideoProxyModelGeneric *model = 
-                VideoCollectionWrapper::instance().getCollectionsModel();
+                VideoCollectionWrapper::instance().getGenericModel();
         if(!model)
         {
             return name;
--- a/videocollection/videocollectionview/src/videolisttoolbar.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/src/videolisttoolbar.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 1.1.2 %
+// Version : %version: 1.1.3 %
 
 // INCLUDE FILES
 #include <qactiongroup.h>
@@ -311,20 +311,6 @@
     }
 }
 
-// ---------------------------------------------------------------------------
-// openOperatorServiceSlot()
-// ---------------------------------------------------------------------------
-//
-void VideoListToolbar::openOperatorServiceSlot()
-{
-    FUNC_LOG;
-    
-    if(mVideoOperatorServices.count() > 0)
-    {
-        mVideoOperatorServices[0]->launchService();
-    }
-}
-
 // -------------------------------------------------------------------------------------------------
 // addVideosToCollectionSlot()
 // -------------------------------------------------------------------------------------------------
--- a/videocollection/videocollectionview/src/videolistview.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/src/videolistview.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 113.1.13 %
+// Version : %version: 113.1.15 %
 
 // INCLUDE FILES
 #include <hbinstance.h>
@@ -26,13 +26,13 @@
 #include <hbgroupbox.h>
 #include <hbparameterlengthlimiter.h>
 #include <hbtoolbarextension.h>
+#include <hblabel.h> 
 #include <xqaiwdecl.h>
 #include <vcxmyvideosdefs.h>
 
 #include "videoservices.h"
 #include "videocollectionviewutils.h"
 #include "videolistwidget.h"
-#include "videohintwidget.h"
 #include "videolistview.h"
 #include "videolisttoolbar.h"
 #include "videolistmenu.h"
@@ -58,7 +58,6 @@
     , mMenu(0)
     , mModelReady(false)
     , mViewReady(false)
-    , mHintLevel(VideoHintWidget::AllVideos)
     , mVideoServices(0)
     , mCurrentList(0)
 {
@@ -168,21 +167,8 @@
         true,
         VideoCollectionUiLoaderParam::LoadPhaseSecondary));
     params.append(VideoCollectionUiLoaderParam(
-        DOCML_NAME_VC_VIDEOHINTWIDGET,
-        DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
-        true,
-        VideoCollectionUiLoaderParam::LoadPhaseSecondary));
-    params.append(VideoCollectionUiLoaderParam(
-        DOCML_NAME_HINT_BUTTON,
+        DOCML_NAME_NO_CONTENT_LABEL,
         DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
-        true,
-        VideoCollectionUiLoaderParam::LoadPhaseSecondary));
-    params.append(VideoCollectionUiLoaderParam(
-        DOCML_NAME_NO_VIDEOS_LABEL,
-        DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
         true,
         VideoCollectionUiLoaderParam::LoadPhaseSecondary));
     mUiLoader->addData(params,
@@ -512,19 +498,6 @@
         
         mToolbar->initialize();
         mToolbar->viewStateChanged(mCurrentList->getLevel(), true, false);
-        
-        // make sure that the hint widget's button is connected, and connected only once.
-        QObject *hintButton =
-            mUiLoader->findObject<QObject>(
-                DOCML_NAME_HINT_BUTTON, false);
-        
-        if(hintButton)
-        {
-            connect(hintButton, SIGNAL(clicked(bool)), 
-                mToolbar, SLOT(openOperatorServiceSlot()), 
-                Qt::UniqueConnection);
-        }
-        // note that if hintButton is not found, then it's connected in objectReadySlot.
     }
 
     return 0;
@@ -551,29 +524,16 @@
     
     mModelReady = true;
     
-    // decide if the hintwidget needs to be shown or not.
+    // decide if no content label needs to be shown or not.
     show = show && model->rowCount() == 0;
-    
-    // If show is false, then hint widget is fetched only if it exists. If
-    // show is true then hint widget is also created and prepared if it does not exists.
-    VideoHintWidget *hintWidget =
-        mUiLoader->findWidget<VideoHintWidget>(
-            DOCML_NAME_VC_VIDEOHINTWIDGET, show);
-    
-    if (hintWidget)
+
+    // set visibility for the label.
+    HbLabel *noContentLabel =
+        mUiLoader->findWidget<HbLabel>(
+            DOCML_NAME_NO_CONTENT_LABEL);
+    if (noContentLabel)
     {
-        hintWidget->setLevel(mHintLevel);
-        if (show)
-        {
-            hintWidget->activate();
-            bool showHintBtns = (mCurrentList->getLevel() != VideoCollectionCommon::ELevelDefaultColl); 
-            hintWidget->setButtonShown(showHintBtns);
-        }
-        else
-        {
-            hintWidget->deactivate();
-            hintWidget->setButtonShown(true);
-        }
+        noContentLabel->setVisible(show);
     }
 
     mToolbar->viewStateChanged(mCurrentList->getLevel(), show, mModelReady);
@@ -597,16 +557,6 @@
 }
 
 // ---------------------------------------------------------------------------
-// setHintLevel
-// ---------------------------------------------------------------------------
-//
-void VideoListView::setHintLevel(VideoHintWidget::HintLevel level)
-{
-	FUNC_LOG;
-	mHintLevel = level;
-}
-
-// ---------------------------------------------------------------------------
 // updateSubLabel
 // ---------------------------------------------------------------------------
 //
@@ -631,16 +581,16 @@
         {
 			if (mCurrentList->getLevel() == VideoCollectionCommon::ELevelVideos)
 			{
-			    // no need to update sublabel if there are no items in videolist
-			    // hint widget is shown instead
+			    // no need to update sublabel if there are no items in videolist.
+			    // no content label is shown instead.
 			    if (itemCount)
 			    {
-	                subLabel->setHeading(hbTrId("txt_videos_subtitle_all_videos_ln", itemCount));
+	                subLabel->setHeading(hbTrId("txt_videos_subtitle_all_videos_l1", itemCount));
 			    }
 			}
 			else if (mCurrentList->getLevel() == VideoCollectionCommon::ELevelCategory)
 			{
-				subLabel->setHeading(hbTrId("txt_videos_subtitle_collections_ln", itemCount));
+				subLabel->setHeading(hbTrId("txt_videos_subtitle_collections_l1", itemCount));
 			}
 			else
 			{
@@ -774,8 +724,6 @@
         // activate all videos list
         mCurrentList = videoListWidget;
         mCurrentList->activate(VideoCollectionCommon::ELevelVideos);
-
-        setHintLevel(VideoHintWidget::AllVideos);
         
         // update the sublabel, as in most cases the data is already up to date.
         updateSubLabel();
@@ -916,10 +864,8 @@
 
         updateSubLabel();
         
-        // update hint widget for correct content
         mModelReady = model->rowCount() > 0;
-        setHintLevel(VideoHintWidget::Collection);
-        
+
         if(mToolbar)
         {
             // if toolbar not yet created, it means that we're activating
@@ -986,10 +932,6 @@
             qobject_cast<VideoListWidget*>(object)->doDelayedsSlot();
         }        
     }
-    else if (name.compare(DOCML_NAME_HINT_BUTTON) == 0)
-    {
-        connect(object, SIGNAL(clicked(bool)), mToolbar, SLOT(openOperatorServiceSlot()));
-    }
 }
 
 // -------------------------------------------------------------------------------------------------
--- a/videocollection/videocollectionview/src/videolistwidget.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/src/videolistwidget.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -435,11 +435,11 @@
                 mContextMenu->addAction(hbTrId("txt_common_menu_select"), this, SLOT(openItemSlot()));
         mContextMenuActions[EActionAttach]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_ATTACH);
         
-        mContextMenuActions[EActionOpen]   = 
+        mContextMenuActions[EActionOpen] = 
                                     mContextMenu->addAction(hbTrId("txt_common_menu_open"), this, SLOT(openItemSlot()));
         mContextMenuActions[EActionOpen]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_OPEN);
         
-        mContextMenuActions[EActionPlay]    = 
+        mContextMenuActions[EActionPlay] = 
                 mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
         mContextMenuActions[EActionPlay]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_PLAY);
         
@@ -449,25 +449,29 @@
     }
     else if (mService == VideoServices::EBrowse)
     {
-        mContextMenuActions[EActionPlay]    = 
+        mContextMenuActions[EActionPlay] = 
                 mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
         mContextMenuActions[EActionPlay]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_PLAY);
         
-        mContextMenuActions[EActionDelete]           = 
-                mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
-        mContextMenuActions[EActionDelete]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DELETE);
-        
         mContextMenuActions[EActionDetails] = 
                 mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
         mContextMenuActions[EActionDetails]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS);
+        
+        mContextMenuActions[EActionDelete] = 
+                mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
+        mContextMenuActions[EActionDelete]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DELETE);
     }
     else
     {
-        mContextMenuActions[EActionPlay]    = 
+        mContextMenuActions[EActionPlay] = 
                 mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot()));
         mContextMenuActions[EActionPlay]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_PLAY);
+
+        mContextMenuActions[EActionDetails] = 
+                mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
+        mContextMenuActions[EActionDetails]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS);
         
-        mContextMenuActions[EActionOpen]    = 
+        mContextMenuActions[EActionOpen] = 
                             mContextMenu->addAction(hbTrId("txt_common_menu_open"), this, SLOT(openItemSlot()));
         mContextMenuActions[EActionOpen]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_OPEN);
         
@@ -475,11 +479,11 @@
                 mContextMenu->addAction(hbTrId("txt_videos_menu_add_to_collection"), this, SLOT(addToCollectionSlot()));
         mContextMenuActions[EActionAddToCollection]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_ADD_TO);
         
-        mContextMenuActions[EActionRemove]           = 
+        mContextMenuActions[EActionRemove] = 
                 mContextMenu->addAction(hbTrId("txt_videos_menu_remove_from_collection"), this, SLOT(removeFromCollectionSlot()));
         mContextMenuActions[EActionRemove]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_REMOVE_FROM);
         
-        mContextMenuActions[EActionRename]           = 
+        mContextMenuActions[EActionRename] = 
                 mContextMenu->addAction(hbTrId("txt_common_menu_rename_item"), this, SLOT(renameSlot()));
         mContextMenuActions[EActionRename]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_RENAME);
         
@@ -487,13 +491,9 @@
                 mContextMenu->addAction(hbTrId("txt_videos_menu_remove_collection"), this, SLOT(removeCollectionSlot()));
         mContextMenuActions[EActionRemoveCollection]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_REMOVE_COLLECTION);
         
-        mContextMenuActions[EActionDelete]           = 
+        mContextMenuActions[EActionDelete] = 
                 mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
         mContextMenuActions[EActionDelete]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DELETE);
-        
-        mContextMenuActions[EActionDetails]          = 
-                mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
-        mContextMenuActions[EActionDetails]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_DETAILS);
     }
 }
 
--- a/videocollection/videocollectionview/tsrc/testcollectionview/src/testcollectionview.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testcollectionview/src/testcollectionview.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -217,7 +217,7 @@
     // -captured category
     init();
     serviceUtil->setCurrentService(true);
-    videoServices->mCurrentService = VideoServices::EBrowse;
+    videoServices->setCurrentService(VideoServices::EBrowse);
     VideoCollectionViewUtilsData::mIsServiceValue = true;
     VideoCollectionViewUtils::instance().setIsService();
     VideoServiceBrowseData::mBrowseCategory = KVcxMvcCategoryIdCaptured;
@@ -234,7 +234,7 @@
     serviceUtil->setCurrentService(true);
     VideoCollectionViewUtilsData::mIsServiceValue = true;
     VideoCollectionViewUtils::instance().setIsService();
-    videoServices->mCurrentService = VideoServices::EBrowse;
+    videoServices->setCurrentService(VideoServices::EBrowse);
     VideoServiceBrowseData::mBrowseCategory = KVcxMvcCategoryIdDownloads;
     mTestView->activateView();
     QCOMPARE(VideoListViewData::mActivateViewCount, 1);
@@ -248,7 +248,7 @@
     serviceUtil->setCurrentService(true);
     VideoCollectionViewUtilsData::mIsServiceValue = true;
     VideoCollectionViewUtils::instance().setIsService();
-    videoServices->mCurrentService = VideoServices::EUriFetcher;
+    videoServices->setCurrentService(VideoServices::EUriFetcher);
     mTestView->activateView();
     QCOMPARE(VideoListViewData::mActivateViewCount, 1);
     QVERIFY(VideoListViewData::mActivatedItemId == TMPXItemId::InvalidId());
--- a/videocollection/videocollectionview/tsrc/testhintwidget/inc/testhintwidget.h	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/**
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   tester for methods in VideoProxyModelGeneric
-*
-*/
-
-#ifndef __TESTHINTWIDGET_H__
-#define __TESTHINTWIDGET_H__
-
-
-// INCLUDES
-#include <QtTest/QtTest>
-
-class VideoHintWidget;
-class VideoCollectionUiLoader;
-
-class TestHintWidget : public QObject
-{
-    Q_OBJECT
-
-public:
-    TestHintWidget();
-    ~TestHintWidget();
-
-    void init(bool callInitialize);
-    void cleanup();
-
-    // test functions for the test framework
-private slots:
-
-	void testInitialize();
-	void testSetLevel();
-    void testActivate();
-    void testDeactivate();
-    void testUpdateUiComponents();
-    void testOrientationChangedSlot();
-    void testSetButtonShown();
-
-signals:
-    
-    /**
-     * test signal
-     */
-    void testSignal(Qt::Orientation);
-
-
-private:
-
-    
-    /**
-     * object under test
-     */
-    VideoHintWidget* mTestObject;
-    
-    /**
-     * Ui loader
-     */
-    VideoCollectionUiLoader* mUiLoader;
-    
-};
-
-
-#endif  // __TESTLISTWIDGET_H__
-
-// End of file
--- a/videocollection/videocollectionview/tsrc/testhintwidget/src/testhintwidget.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,368 +0,0 @@
-/**
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   tester for methods in VideoListWidget
-*
-*/
-
-#include <hbicon.h>
-#include <hbmainwindow.h>
-#include <hbinstance.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbapplication.h>
-
-#include "videocollectionuiloader.h"
-#include "videocollectionviewutils.h"
-#include "videocollectionviewutilsdata.h"
-#include "videocollectionuiloaderdata.h"
-#include "testhintwidget.h"
-
-#define private public
-#include "videohintwidget.h"
-#undef private
-
-// ---------------------------------------------------------------------------
-// main
-// ---------------------------------------------------------------------------
-//
-int main(int argc, char *argv[])
-{
-    HbApplication app(argc, argv);
-    HbApplication::setKeypadNavigationEnabled(false);
-    HbMainWindow mainWnd;
-    hbInstance->mWindowses.append(&mainWnd);
-
-    TestHintWidget tv;
-    
-    int res;
-    if(argc > 1)
-    {   
-        res = QTest::qExec(&tv, argc, argv);
-    }
-    else
-    {
-        char *pass[3];
-        pass[0] = argv[0];
-        pass[1] = "-o";
-        pass[2] = "c:\\data\\testhintwidget.txt";
-        res = QTest::qExec(&tv, 3, pass);
-    }
-
-    return res;
-}
-
-// ---------------------------------------------------------------------------
-// constructor
-// ---------------------------------------------------------------------------
-//
-TestHintWidget::TestHintWidget():
-    mTestObject(0),
-    mUiLoader(0)
-{
-    // nop
-}
-
-// ---------------------------------------------------------------------------
-// destructor
-// ---------------------------------------------------------------------------
-//
-TestHintWidget::~TestHintWidget()
-{
-    cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// init
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::init(bool callInitialize)
-{
-    mUiLoader = new VideoCollectionUiLoader;
-    
-    HbDocumentLoader::mFindWidgetFails = false;
-    bool ok(false);
-    mUiLoader->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
-    if(!ok)
-    {
-        cleanup();
-        QFAIL("docml loading failed!");
-    }
-    
-    mTestObject = mUiLoader->findObject<VideoHintWidget>(DOCML_NAME_VC_VIDEOHINTWIDGET);
-    if(!mTestObject)
-    {
-        mTestObject = new VideoHintWidget(mUiLoader);
-    }
-    
-    mTestObject->mHintText = "Go get some!";
-    
-    if (callInitialize)
-    {
-        mTestObject->mHintText = "";
-        mTestObject->initialize();
-    }
-}
-
-// ---------------------------------------------------------------------------
-// cleanup
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::cleanup()
-{
-    if (mUiLoader)
-    {
-        VideoHintWidget* temp = mUiLoader->findObject<VideoHintWidget>(DOCML_NAME_VC_VIDEOHINTWIDGET);
-        if (!temp)
-        {
-            // need to delete mTestObject as it is not owned by uiloader.
-            delete mTestObject;
-            mTestObject = 0;
-        }
-        mTestObject = 0;
-
-        delete mUiLoader;
-        mUiLoader = 0;
-    }
-
-    VideoCollectionViewUtilsData::reset();
-    VideoCollectionUiLoaderData::reset();    
-}
-
-// ---------------------------------------------------------------------------
-// testInitialize
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::testInitialize()
-{
-    init(false);
-
-    // Fail
-    mTestObject->mHintText = "";
-    VideoCollectionViewUtilsData::mCenRepStringValues.append(""); 
-    mTestObject->initialize();
-    QVERIFY(mTestObject->mHintText.isEmpty());
-
-    // Succeed
-    VideoCollectionViewUtilsData::mCenRepStringValues.append("test"); 
-    mTestObject->initialize();
-    QVERIFY(!mTestObject->mHintText.isEmpty());
-    
-    cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// testSetLevel
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::testSetLevel()
-{
-    init(false);
-    mTestObject->setVisible(false);
-    
-    mTestObject->setLevel(VideoHintWidget::Collection);
-    QCOMPARE(mTestObject->mCurrentLevel, VideoHintWidget::Collection);
-    
-    mTestObject->setLevel(VideoHintWidget::AllVideos);
-    QCOMPARE(mTestObject->mCurrentLevel, VideoHintWidget::AllVideos);
-    
-    mTestObject->setLevel(VideoHintWidget::AllVideos);
-    QCOMPARE(mTestObject->mCurrentLevel, VideoHintWidget::AllVideos);
-    
-    mTestObject->setLevel(VideoHintWidget::Collection);
-    QCOMPARE(mTestObject->mCurrentLevel, VideoHintWidget::Collection);
-    cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// testActivate
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::testActivate()
-{
-    init(false);
-
-    mTestObject->setVisible(false);
-    
-    // successful case.
-    mTestObject->mActivated = false;
-
-    HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
-    QVERIFY(noVideosLabel);
-    noVideosLabel->setVisible(false);
-    
-    mTestObject->activate();
-    QVERIFY(mTestObject->isVisible());
-    QVERIFY(noVideosLabel->isVisible()); // checks that updateUiComponents() has been called.
-    QVERIFY(mTestObject->mActivated == true);
-    
-    // second call
-    noVideosLabel->setVisible(false);
-    mTestObject->activate();
-    QVERIFY(mTestObject->isVisible());    
-    QVERIFY(!noVideosLabel->isVisible()); // shouldn't call updateUiComponents() again.
-    QVERIFY(mTestObject->mActivated == true);
-    
-    cleanup();
-}
- 
-// ---------------------------------------------------------------------------
-// testDeactivate
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::testDeactivate()
-{
-    init(false);
-    
-    mTestObject->setVisible(true);
-    mTestObject->mActivated = true;
-    
-    // when serviceButton does not exist
-    HbDocumentLoader::mFindWidgetFails = true;
-    mTestObject->deactivate();
-    QVERIFY(mTestObject->mActivated == false);
-    QVERIFY(mTestObject->isVisible() == false);
-    
-    // service button exists
-    mTestObject->setVisible(true);
-    mTestObject->mActivated = true;
-    HbDocumentLoader::mFindWidgetFails = false;
-    mTestObject->deactivate();
-    QVERIFY(mTestObject->mActivated == false);
-    QVERIFY(mTestObject->isVisible() == false);
-    
-    // second call. widget is not active.
-    mTestObject->setVisible(true);
-    mTestObject->deactivate();
-    QVERIFY(mTestObject->mActivated == false);
-    QVERIFY(mTestObject->isVisible());
-    
-    cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// testUpdateUiComponents
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::testUpdateUiComponents()
-{
-    HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
-    
-    init(false);
-    
-    // when a widget cannot be found.
-    mTestObject->mActivated = true;
-    mTestObject->mButtonShown = true;
-    HbDocumentLoader::mFindWidgetFails = true;
-    mTestObject->setLevel(VideoHintWidget::AllVideos);
-    // no verification possible except that it doesn't crash
-    
-    HbDocumentLoader::mFindWidgetFails = false;
-    HbLabel *hintLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
-    QVERIFY(hintLabel);
-    HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
-    QVERIFY(serviceButton);
-    
-    // current level is all videos
-    serviceButton->setVisible(false);
-    mTestObject->setLevel(VideoHintWidget::AllVideos);
-    QVERIFY(hintLabel->isVisible());
-    QVERIFY(serviceButton->isVisible());
-    
-    // current level is not all videos
-    serviceButton->setVisible(true);
-    mTestObject->setLevel(VideoHintWidget::Collection);
-    QVERIFY(hintLabel->isVisible());
-    QVERIFY(serviceButton->isVisible() == false);
-
-    // no hint text
-    serviceButton->setVisible(true);
-    mTestObject->mHintText = "";
-    mTestObject->setLevel(VideoHintWidget::AllVideos);
-    QVERIFY(hintLabel->isVisible());
-    QVERIFY(serviceButton->isVisible() == false);
-    
-    cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// testOrientationChangedSlot
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::testOrientationChangedSlot()
-{
-    // NOTE: This also checks that the signals are connected and
-    // disconnected correctly.
-    
-    HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
-    mainWnd->setOrientation(Qt::Horizontal);
-    connect(this, SIGNAL(testSignal(Qt::Orientation)), mainWnd, SIGNAL(orientationChanged(Qt::Orientation)));
-    
-    init(false);
-    
-    HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
-    QVERIFY(noVideosLabel);
-
-    // test that updateUiComponents is not called when only initialize has been called,
-    // ie that no activate calls have been made yet.
-    // mTestObject->setVisible is needed because othervise childs cannot be set visible, ie the 
-    // serviceButton->setVisible does not work as expected.
-    mTestObject->setVisible(true);
-    noVideosLabel->setVisible(true);
-    emit testSignal(Qt::Vertical);
-    QVERIFY(noVideosLabel->isVisible());
-    mTestObject->setVisible(false);
-        
-    // tests that updateUiComponents is called when widget is visible.
-    mTestObject->activate();
-    noVideosLabel->setVisible(false);
-    emit testSignal(Qt::Horizontal);
-    QVERIFY(noVideosLabel->isVisible());    
-    mTestObject->deactivate();
-    
-    // tests that updateUiComponents is not called when widget is not visible:
-    // mTestObject->setVisible is needed because othervise childs cannot be set visible, ie the 
-    // serviceButton->setVisible does not work as expected.
-    mTestObject->setVisible(true);    
-    noVideosLabel->setVisible(true);
-    emit testSignal(Qt::Vertical);
-    QVERIFY(noVideosLabel->isVisible());
-    
-    cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// testSetButtonShown
-// ---------------------------------------------------------------------------
-//
-void TestHintWidget::testSetButtonShown()
-{
-    HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
-    
-    init(true);
-    
-    HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
-    QVERIFY(noVideosLabel);
-    
-    mTestObject->mActivated = true;
-    noVideosLabel->setVisible(false);
-    mTestObject->setButtonShown(true);
-    QVERIFY(noVideosLabel->isVisible());
-    
-    mTestObject->mActivated = false;
-    noVideosLabel->setVisible(false);
-    mTestObject->setButtonShown(false);
-    QVERIFY(noVideosLabel->isVisible() == false);
-}
-
-// end of file
--- a/videocollection/videocollectionview/tsrc/testhintwidget/testhintwidget.pro	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-#
-
-TEMPLATE = app
-
-TARGET =
- 
-DEPENDPATH += . \
-    inc \
-    src \
-    ../../../tsrc/stubs
-    
-INCLUDEPATH += . \
-    inc \
-    ../../../tsrc/stubs/inc \
-    \ # keep these at bottom so that stubbed headers are taken first
-    ../../../inc \
-    ../../../videocollectionview/inc \
-    ../../../videocollectionwrapper/inc \
-    ../../../../inc \
-    ../../../../videoplayerapp/videoplayerengine/inc
-    
-HEADERS +=  inc/testhintwidget.h \
-    \ # headers needed in test
-    ../../../videocollectionview/inc/videohintwidget.h \
-           
-SOURCES +=  src/testhintwidget.cpp \
-    \ # sources needed in test
-    ../../../videocollectionview/src/videohintwidget.cpp \
-
-TESTEDCLASS = videohintwidget
-include(../../../tsrc/stubs/stubs.pro)
-
-RESOURCES += ../../data/videocollectionview.qrc
--- a/videocollection/videocollectionview/tsrc/testlisttoolbar/inc/testlisttoolbar.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testlisttoolbar/inc/testlisttoolbar.h	Tue Oct 05 09:26:49 2010 +0300
@@ -84,12 +84,6 @@
      */
     void testViewStateChangedWithServiceExt();     
     
-        
-    /**
-     * Tests openoperatorServiceSlot
-     */
-    void testOpenOperatorServiceSlot();
-    
     /**
      * Tests addVideosToCollectionSlot
      */
--- a/videocollection/videocollectionview/tsrc/testlisttoolbar/src/testlisttoolbar.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testlisttoolbar/src/testlisttoolbar.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 2 %
+// Version : %version: 3 %
 
 #include <hbapplication.h>
 #include <qlist.h>
@@ -550,31 +550,6 @@
     disconnect(mTestObject, SIGNAL(toolbarExtensionChanged(HbToolBarExtension*)), this, SLOT(testToolbarExtensionChangedSlot(HbToolBarExtension*)));
 }
 
-
-
-
-// ---------------------------------------------------------------------------
-// testOpenOperatorServiceSlot
-// ---------------------------------------------------------------------------
-//
-void TestListToolbar::testOpenOperatorServiceSlot()
-{
-    mTestObject->initialize();
-    // no operator services
-    mTestObject->openOperatorServiceSlot();
-    QVERIFY(VideoOperatorServiceData::mLaunchServiceCallCount == 0);
-    
-    cleanup();
-    init();
-    VideoOperatorServiceData::mTitles.append("TestTitle");
-    VideoOperatorServiceData::mUris.append("TestURI");
-    VideoOperatorServiceData::mIcons.append("TestIcon"); 
-    mTestObject->initialize();
-    // more than zero operator services
-    mTestObject->openOperatorServiceSlot();
-    QVERIFY(VideoOperatorServiceData::mLaunchServiceCallCount == 1);
-}
- 
 // ---------------------------------------------------------------------------
 // testAddVideosToCollectionSlot
 // ---------------------------------------------------------------------------
--- a/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 58 %
+// Version : %version: 60 %
 
 #define private public
 #include "videoservices.h"
@@ -41,6 +41,7 @@
 #include "hblistview.h"
 #include "hbinputdialog.h"
 #include "hbtoolbarextension.h"
+#include "hblabel.h"
 #include <qactiongroup.h>
 #include <videocollectioncommon.h>
 #include <qhash.h>
@@ -54,8 +55,6 @@
 #include "videocollectionviewutils.h"
 #include "videolistselectiondialog.h"
 #include "videocollectionwrapper.h"
-#include "videohintwidget.h"
-#include "videohintwidgetdata.h"
 #include "videolistwidgetdata.h"
 #include "videocollectionwrapperdata.h"
 #include "videocollectionviewutilsdata.h"
@@ -266,7 +265,6 @@
 void TestListView::testInitializeView()
 {
     VideoListWidget *videoListWidget = 0;
-    VideoHintWidget *hintWidget = 0;
     
     init(false);
 	// Test mUiLoader is null
@@ -947,11 +945,11 @@
     
 	mTestView->mCurrentList = videoListWidget; 
 	emit testLayoutChangedSignal();
-	QCOMPARE( label->heading(), QString("txt_videos_subtitle_all_videos_ln") );
+	QCOMPARE( label->heading(), QString("txt_videos_subtitle_all_videos_l1") );
 
     mTestView->mCurrentList = collectionWidget; 
 	emit testLayoutChangedSignal();
-    QCOMPARE( label->heading(), QString("txt_videos_subtitle_collections_ln") );
+    QCOMPARE( label->heading(), QString("txt_videos_subtitle_collections_l1") );
 
     mTestView->mCurrentList = collectionContentWidget; 
 	emit testLayoutChangedSignal();
@@ -983,50 +981,48 @@
     mTestView->mModelReady = true;
     connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot()));
     
-    // hint widget cannot be loaded. (cannot be tested, run for coverity)
-    VideoCollectionUiLoaderData::mFindFailureNameList.append(DOCML_NAME_VC_VIDEOHINTWIDGET);
+    // no content label cannot be loaded. (cannot be tested, run for coverity)
+    VideoCollectionUiLoaderData::mFindFailureNameList.append(DOCML_NAME_NO_CONTENT_LABEL);
     emit testLayoutChangedSignal();
     VideoCollectionUiLoaderData::mFindFailureNameList.clear();
     
-    VideoHintWidget *hintWidget = mUiLoader->findWidget<VideoHintWidget>(DOCML_NAME_VC_VIDEOHINTWIDGET);    
-    hintWidget->deactivate();
-    
     /////
-    // hint widget showing
+    // no content label showing
     // model not ready, row count zero.
+    HbLabel *noContentLabel =
+        mUiLoader->findWidget<HbLabel>(
+            DOCML_NAME_NO_CONTENT_LABEL);
+    noContentLabel->setVisible(false);
     mTestView->mModelReady = false;
     setRowCount(0);
     VideoListWidget *backup = mTestView->mCurrentList;
     mTestView->mCurrentList =  mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET);
     emit testLayoutChangedSignal();
-    QVERIFY(hintWidget->isVisible() == false);
-    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+    QVERIFY(noContentLabel->isVisible() == false);
     mTestView->mCurrentList = backup;
     
     // model not ready, row count not zero.
     setRowCount(1);
+    noContentLabel->setVisible(false);
     emit testLayoutChangedSignal();    
-    QVERIFY(hintWidget->isVisible() == false );
-    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+    QVERIFY(noContentLabel->isVisible() == false );
     QVERIFY(mTestView->mModelReady);
     
     // model ready, row count not zero
     mTestView->mModelReady = true;
+    noContentLabel->setVisible(false);
     emit testLayoutChangedSignal();    
-    QVERIFY(hintWidget->isVisible() == false );
-    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+    QVERIFY(noContentLabel->isVisible() == false );
 
     // model ready, row count is zero
     setRowCount(0);
     emit testLayoutChangedSignal();    
-    QVERIFY(hintWidget->isVisible() == true );
-    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
-
+    QVERIFY(noContentLabel->isVisible() == true );
+    
     // model ready, row count is zero, show to be false
     connect(this, SIGNAL(testSignal()), mTestView, SLOT(openCollectionViewSlot()));
     emit testSignal();
-    QVERIFY(hintWidget->isVisible() == false );
-    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+    QVERIFY(noContentLabel->isVisible() == false );
     disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(openCollectionViewSlot()));
    
     mTestView->mCurrentList =  mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
--- a/videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testvideocollectionuiloader/src/testvideocollectionuiloader.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -29,7 +29,6 @@
 
 #include "videolistwidgetdata.h"
 #include "testvideocollectionuiloader.h"
-#include "videohintwidget.h"
 #include "videocollectionwrapperdata.h"
 
 #define private public
@@ -171,12 +170,6 @@
         DOCML_VIDEOCOLLECTIONVIEW_FILE,
         true,
         VideoCollectionUiLoaderParam::LoadPhasePrimary);
-    VideoCollectionUiLoaderParam hint(
-        DOCML_NAME_VC_VIDEOHINTWIDGET,
-        DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
-        true,
-        VideoCollectionUiLoaderParam::LoadPhasePrimary);
     
     // pre-load widget asynchronously and find widget
     params.append(banner);
@@ -241,38 +234,6 @@
     QVERIFY(!mObjects.contains(DOCML_NAME_VC_HEADINGBANNER));
     cleanup();
     init();
-
-    // do not pre-load widget but add it in queue, section loaded
-    ok = false;
-    mTestObject->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
-    QVERIFY(ok);
-    mTestObject->load(DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
-        &ok);
-    QVERIFY(ok);
-    params.append(hint);
-    mTestObject->addData(params,
-        this,
-        SLOT(handleObjectReady(QObject*, const QString&)));
-    VideoHintWidget *hintWidget =
-        mTestObject->findWidget<VideoHintWidget>(
-            DOCML_NAME_VC_VIDEOHINTWIDGET);
-    QVERIFY(hintWidget);
-    QVERIFY(mObjects.contains(DOCML_NAME_VC_VIDEOHINTWIDGET));
-    params.clear();
-    cleanup();
-    init();
-
-    // do not pre-load widget, section not loaded
-    ok = false;
-    HbDocumentLoader::mFindWidgetFails = true;
-    mTestObject->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
-    QVERIFY(ok);
-    hintWidget =
-        mTestObject->findWidget<VideoHintWidget>(
-            DOCML_NAME_VC_VIDEOHINTWIDGET);
-    QVERIFY(!hintWidget);
-    QVERIFY(!mObjects.contains(DOCML_NAME_VC_VIDEOHINTWIDGET));
 }
 
 // ---------------------------------------------------------------------------
@@ -439,21 +400,6 @@
 
     // load section:
     // -docml loaded
-    // -two correct sections
-    ok = false;
-    mTestObject->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
-    QVERIFY(ok);
-    mTestObject->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST, &ok);
-    QVERIFY(ok);
-    QVERIFY(mTestObject->mSections.contains(DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST));
-    mTestObject->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT, &ok);
-    QVERIFY(ok);
-    QVERIFY(mTestObject->mSections.contains(DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT));
-    cleanup();
-    init();
-
-    // load section:
-    // -docml loaded
     // -same section twice
     ok = false;
     mTestObject->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
@@ -628,12 +574,6 @@
         true,
         VideoCollectionUiLoaderParam::LoadPhasePrimary));
     params.append(VideoCollectionUiLoaderParam(
-        DOCML_NAME_VC_VIDEOHINTWIDGET,
-        DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
-        true,
-        VideoCollectionUiLoaderParam::LoadPhasePrimary));
-    params.append(VideoCollectionUiLoaderParam(
         DOCML_NAME_OPTIONS_MENU,
         DOCML_VIDEOCOLLECTIONVIEW_FILE,
         true,
@@ -679,15 +619,8 @@
         false,
         VideoCollectionUiLoaderParam::LoadPhasePrimary));
     params.append(VideoCollectionUiLoaderParam(
-        DOCML_NAME_HINT_BUTTON,
+        DOCML_NAME_NO_CONTENT_LABEL,
         DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
-        true,
-        VideoCollectionUiLoaderParam::LoadPhasePrimary));
-    params.append(VideoCollectionUiLoaderParam(
-        DOCML_NAME_NO_VIDEOS_LABEL,
-        DOCML_VIDEOCOLLECTIONVIEW_FILE,
-        DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
         true,
         VideoCollectionUiLoaderParam::LoadPhasePrimary));
     params.append(VideoCollectionUiLoaderParam(
--- a/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/inc/videolistselectiondialogtester.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/inc/videolistselectiondialogtester.h	Tue Oct 05 09:26:49 2010 +0300
@@ -18,6 +18,7 @@
 #ifndef __VIDEOLISTSELECTIONDIALOGTESTER_H__
 #define __VIDEOLISTSELECTIONDIALOGTESTER_H__
 
+#include <qpointer.h>
 #include "videolistselectiondialog.h"
 
 class VideoListSelectionDialogTesterHelper : public QObject
@@ -142,7 +143,7 @@
         emit finishedSignal(action);
     }
     
-    VideoListSelectionDialog *mTestable;
+    QPointer<VideoListSelectionDialog> mTestable;
     
     /**
      * flag indicating if signals are connected. 
--- a/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -158,7 +158,10 @@
 //
 void TestVideoListSelectionDialog::cleanup()
 {
-    mTestHelper->disconnectSignals();
+    if(mTestHelper)
+    {
+        mTestHelper->disconnectSignals();
+    }
     
     delete mTestObject; 
     mTestObject = 0;
@@ -169,8 +172,6 @@
     mSourceModel = 0;
     
     mModel = 0;
-    
-    
 }
 
 // ---------------------------------------------------------------------------
@@ -196,6 +197,8 @@
     QVERIFY(mTestObject->mModel == 0);
     QVERIFY(mTestObject->mListWidget == 0);
     
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = 0;
 
@@ -215,8 +218,6 @@
 {
     VideoCollectionWrapperData::reset();
     VideoListWidgetData::reset();
-    cleanup();
-    init();
     
     QVERIFY(mInitOk == true);
     QVERIFY(mModel != 0);
@@ -280,6 +281,8 @@
     QVERIFY(mTestObject->mModelReady == false);
     QVERIFY(mTestObject->mAlbumListReady == false);
         
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
     VideoProxyModelData::reset();
@@ -309,6 +312,8 @@
     QVERIFY(mTestObject->mModelReady == false);
     QVERIFY(mTestObject->mAlbumListReady == false);
     
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
     VideoProxyModelData::reset();
@@ -363,6 +368,8 @@
     QVERIFY(mTestObject->mModelReady == false);
     QVERIFY(mTestObject->mAlbumListReady == false);
 
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
     VideoProxyModelData::reset();
@@ -392,6 +399,8 @@
     QVERIFY(mTestObject->mModelReady == false);
     QVERIFY(mTestObject->mAlbumListReady == false);
     
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);    
     VideoProxyModelData::reset();
@@ -421,6 +430,8 @@
     QVERIFY(mTestObject->mModelReady == false);
     QVERIFY(mTestObject->mAlbumListReady == false);
    
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
     VideoProxyModelData::reset();
@@ -449,6 +460,8 @@
     QVERIFY(mTestObject->mModelReady == false);
     QVERIFY(mTestObject->mAlbumListReady == false);
    
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
     VideoProxyModelData::reset();
@@ -534,6 +547,8 @@
     mTestObject->mModel = backup; backup = 0;
     mTestObject->mListWidget = backupWidget; backupWidget = 0;
     
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
     
@@ -553,6 +568,8 @@
     QVERIFY(mTestObject->mCheckBox == 0);  
     VideoListWidgetData::mInitializeReturnValue = 0;
     
+    if(mTestHelper) 
+        mTestHelper->disconnectSignals();
     delete mTestObject;
     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
     
--- a/videocollection/videocollectionview/tsrc/videocollectionviewtests.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/videocollectionviewtests.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -18,12 +18,14 @@
 TEMPLATE = subdirs
 
 CONFIG += ordered
-
-SUBDIRS += testcollectionview
-SUBDIRS += testhintwidget
-SUBDIRS += testlistview
-SUBDIRS += testlistwidget
-SUBDIRS += testvideocollectionuiloader
+                                                      
+SUBDIRS += testcollectionview                    
+SUBDIRS += testlistmenu                             
+SUBDIRS += testlisttoolbar                          
+SUBDIRS += testlistview                               
+SUBDIRS += testlistwidget                           
+SUBDIRS += testvideocollectionuiloader   
 SUBDIRS += testvideocollectionviewutils
 SUBDIRS += testvideolistselectiondialog
-                     
\ No newline at end of file
+SUBDIRS += testvideooperatorservice      
+SUBDIRS += testvideooperatorservice_p   
\ No newline at end of file
--- a/videocollection/videocollectionview/videocollectionview.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionview/videocollectionview.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -58,7 +58,6 @@
            inc/videolisttoolbar.h \
            inc/videolistmenu.h \
            inc/videolistwidget.h \
-           inc/videohintwidget.h \
            inc/videocollectionviewutils.h \
            inc/videocollectionuiloader.h \
            inc/videolistselectiondialog.h \
@@ -71,7 +70,6 @@
            src/videolisttoolbar.cpp \
            src/videolistmenu.cpp \
            src/videolistwidget.cpp \
-           src/videohintwidget.cpp \
            src/videocollectionviewutils.cpp \
            src/videocollectionuiloader.cpp \
            src/videolistselectiondialog.cpp \
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionclient/testvideocollectionclient.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionclient/testvideocollectionclient.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,19 @@
-# #####################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-# #####################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
 TEMPLATE = app
 TARGET = 
 DEPENDPATH += . \
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionlistener/testvideocollectionlistener.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,19 @@
-# #####################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-# #####################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
 TEMPLATE = app
 TARGET = 
 DEPENDPATH += . \
--- a/videocollection/videocollectionwrapper/tsrc/testvideocollectionwrapper_p/testvideocollectionwrapper_p.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionwrapper_p/testvideocollectionwrapper_p.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,18 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-######################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
 
 TEMPLATE = app
 TARGET = 
--- a/videocollection/videocollectionwrapper/tsrc/testvideodatacontainer/testvideodatacontainer.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideodatacontainer/testvideodatacontainer.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,18 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-######################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
 
 TEMPLATE = app
 TARGET = 
--- a/videocollection/videocollectionwrapper/tsrc/testvideodeleteworker/testvideodeleteworker.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideodeleteworker/testvideodeleteworker.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,18 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-######################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
 
 TEMPLATE = app
 TARGET = 
--- a/videocollection/videocollectionwrapper/tsrc/testvideomodel/testvideomodel.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideomodel/testvideomodel.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,18 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-######################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
 
 TEMPLATE = app
 TARGET = 
--- a/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/testvideomodel_p.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideomodel_p/testvideomodel_p.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,18 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-######################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
 
 TEMPLATE = app
 TARGET = 
--- a/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelallvideos/testvideoproxymodelallvideos.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelallvideos/testvideoproxymodelallvideos.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
 TEMPLATE = app
 TARGET = 
 DEFINES     += BUILD_VIDEOCOLLECTION_DLL
--- a/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcollections/testvideoproxymodelcollections.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcollections/testvideoproxymodelcollections.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
 TEMPLATE = app
 TARGET = 
 DEFINES     += BUILD_VIDEOCOLLECTION_DLL
--- a/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcontent/testvideoproxymodelcontent.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcontent/testvideoproxymodelcontent.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
 TEMPLATE = app
 TARGET = 
 DEFINES     += BUILD_VIDEOCOLLECTION_DLL
--- a/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelgeneric/testvideoproxymodelgeneric.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelgeneric/testvideoproxymodelgeneric.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -1,6 +1,19 @@
-# #####################################################################
-# Automatically generated by qmake (2.01a) Tue 5. May 13:25:42 2009
-# #####################################################################
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
 TEMPLATE = app
 TARGET = 
 DEFINES     += BUILD_VIDEOCOLLECTION_DLL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/videocollectionwrapper/tsrc/videocollectionwrappertest.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description: Project file for building videocollectionwrapper tests
+#
+#
+
+TEMPLATE = subdirs
+
+CONFIG += ordered
+                           
+SUBDIRS += testvideocollectionclient       
+SUBDIRS += testvideocollectionlistener       
+SUBDIRS += testvideocollectionwrapper_p   
+SUBDIRS += testvideodatacontainer                 
+SUBDIRS += testvideodeleteworker              
+SUBDIRS += testvideomodel                               
+SUBDIRS += testvideomodel_p                             
+SUBDIRS += testvideoproxymodelallvideos   
+SUBDIRS += testvideoproxymodelcollections
+SUBDIRS += testvideoproxymodelcontent        
+SUBDIRS += testvideoproxymodelgeneric       
+SUBDIRS += testvideothumbnaildata               
+SUBDIRS += testvideothumbnaildata_p           
+SUBDIRS += testvideothumbnailfetcher       
\ No newline at end of file
--- a/videoplayback/videohelix/src/mpxcalldetector.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videohelix/src/mpxcalldetector.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 1 %
+// Version : %version: 2 %
 
 // INCLUDE FILES
 #include <ctsydomainpskeys.h>
@@ -101,10 +101,10 @@
     
     if ( status == KErrNone )
     {
-        TInt status;
-        iTsyProperty.Get( status );
+        TInt callStatus;
+        iTsyProperty.Get( callStatus );
         
-        if ( status != EPSCTsyCallStateNone )
+        if ( callStatus != EPSCTsyCallStateNone && callStatus != EPSCTsyCallStateDisconnecting )
         {
             iObserver->CallDetectedL();
         }
--- a/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 
-// Version : %version: 35 %
+// Version : %version: ou1cpsw#37 %
 
 
 //
@@ -196,10 +196,6 @@
             iVideoPlaybackCtlr->iState->HandlePause();
             TRAP_IGNORE( iVideoPlaybackCtlr->SendHideControlsEventL() );
         }
-        else if ( iVideoPlaybackCtlr->IsPhoneCall() || iVideoPlaybackCtlr->IsVideoCall() )
-        {
-            iVideoPlaybackCtlr->iState->HandlePause();
-        }
     }
     else
     {
@@ -251,6 +247,8 @@
     RMobilePhone::TMobilePhoneNetworkMode networkMode;
 
     User::LeaveIfError( telServer.Connect() );
+    CleanupClosePushL( telServer );
+    
     User::LeaveIfError( telServer.LoadPhoneModule( KMmTsyModuleName ) );
 
     TInt numPhones;
@@ -263,6 +261,7 @@
 
     User::LeaveIfError( telServer.GetPhoneInfo( 0, phoneInfo ) );
     User::LeaveIfError( mobilePhone.Open( telServer, phoneInfo.iName ) );
+    CleanupClosePushL( mobilePhone );
     User::LeaveIfError( mobilePhone.Initialise() );
 
     User::LeaveIfError( mobilePhone.GetCurrentMode( networkMode ) );
@@ -272,8 +271,8 @@
         networkMode2g = ETrue;
     }
 
-    mobilePhone.Close();
-    telServer.Close();
+    CleanupStack::PopAndDestroy( &mobilePhone );
+    CleanupStack::PopAndDestroy( &telServer );
 
     MPX_DEBUG(_L("CMPXVideoPlaybackMode::IsNetworkMode2GL(%d)"), networkMode2g);
 
--- a/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 
-// Version : %version: 49 %
+// Version : %version: 51 %
 
 
 //
@@ -1891,7 +1891,7 @@
             //
             //  Delayed pause, background event was received while we were in buffering state
             //
-            HandlePause();
+            DoHandlePause();
         }
     }
     else
--- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 27 %
+// Version : %version: 28 %
 
 
 // [INCLUDE FILES] - do not remove
@@ -1830,11 +1830,6 @@
 
         if ( err == KErrNone )
         {
-            //
-            //  Clear ringing
-            //
-            RProperty::Set(KPSUidCtsyCallInformation, KCTsyCallState, EPSCTsyCallStateNone);
-
             CreateBackgroundCommand(background);
         }
     }
--- a/videoplayback/videoplaybackview/controlinc/videoplaybacktoolbar.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/controlinc/videoplaybacktoolbar.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 5 %
+// Version : %version: 6 %
 
 
 
@@ -105,6 +105,9 @@
         void retrieveButtons();
 
     private:
+        void setAspectRatioButton();
+
+    private:
         VideoPlaybackControlsController *mController;
         HbToolBar                       *mToolBar;
         QTimer                          *mSeekStartTimer;
@@ -120,7 +123,6 @@
         int     mPosition;
         int     mDuration;
         int     mAspectRatio;
-        TReal32 mDisplayAspectRatio;
 };
 
 #endif /*VIDEOPLAYBACKTOOLBAR_H_*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/controlinc/videoplaybackvolumecontrol.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of VideoPlaybackVolumeControl
+*
+*/
+
+// Version : %version:  1 %
+
+
+
+#ifndef VIDEOPLAYBACKVOLUMECONTROL_H_
+#define VIDEOPLAYBACKVOLUMECONTROL_H_
+
+
+// INCLUDES
+#include <QObject>
+
+// FORWARD DECLARATIONS
+class QTimer;
+class HbVolumeSliderPopup;
+class VideoPlaybackControlsController;
+
+class VideoPlaybackVolumeControl : public QObject
+{
+    Q_OBJECT
+
+    public:
+        VideoPlaybackVolumeControl( VideoPlaybackControlsController* controller );
+        virtual ~VideoPlaybackVolumeControl();
+
+    public:
+        void volumeChanged( int volume );
+        void setVisible( bool visible );
+        bool isVisible();
+
+    private:
+        void initialize();
+        void setVolume( int volume );
+
+    private slots:
+        void handleSliderValueChanged( int volume );
+        void handleMuteIconClicked();
+        void handleSliderPressed();
+        void handleSliderReleased();
+        void handleDraggingTimerTimeOut();
+
+    private:
+        VideoPlaybackControlsController *mController;
+        HbVolumeSliderPopup             *mVolumePopup;
+        QTimer                          *mDraggingHandlerTimer;
+
+        QList<int>  mExpectedVolList;
+        int         mVolume;
+        int         mDraggingVolume;
+        int         mVolumeNormalizer;
+        bool        mMutedByMuteIcon;
+        bool        mDragging;
+};
+
+#endif /*VIDEOPLAYBACKVOLUMECONTROL_H_*/
--- a/videoplayback/videoplaybackview/controlsrc/videoplaybackcontrolscontroller.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/controlsrc/videoplaybackcontrolscontroller.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: da1mmcf#54 %
+// Version : %version: da1mmcf#57 %
 
 
 
@@ -29,7 +29,6 @@
 #include <thumbnailmanager_qt.h>
 
 #include <hblabel.h>
-#include <hbvolumesliderpopup.h>
 #include <hbtransparentwindow.h>
 #include <hbiconanimationmanager.h>
 #include <shareui.h>
@@ -37,10 +36,11 @@
 #include <hbtapgesture.h>
 #include <hbpangesture.h>
 
-#include "mpxvideoviewwrapper.h"
+#include "videoservices.h"
 #include "videobaseplaybackview.h"
 #include "videoplaybackcontrolbar.h"
 #include "videoplaybackcontrolpolicy.h"
+#include "videoplaybackvolumecontrol.h"
 #include "videoplaybackdocumentloader.h"
 #include "videoplaybackviewfiledetails.h"
 #include "videoplaybackstatuspanecontrol.h"
@@ -49,7 +49,6 @@
 #include "videoplaybackcontrolscontroller.h"
 #include "videoplaybackcontrolconfiguration.h"
 #include "videoplaybackdetailsplaybackwindow.h"
-#include "videoservices.h"
 
 
 // ================= MEMBER FUNCTIONS ==============================================================
@@ -148,15 +147,6 @@
     mControlsConfig->createControlList();
 
     //
-    // Create volume popup control
-    //
-    mVolumeControl = new HbVolumeSliderPopup();
-    mVolumeControl->setVisible( false );
-    mVolumeControl->setTimeout( KControlsTimeOut );
-    mVolumeControl->setTickPosition( Hb::NoSliderTicks );
-    mVolumeControl->setRange( KPbPlaybackVolumeLevelMin, KPbPlaybackVolumeLevelMax );
-
-    //
     // grab tap gesture
     //
     mView->grabGesture( Qt::TapGesture );
@@ -283,7 +273,7 @@
     	mVideoServices->decreaseReferenceCount();
     	mVideoServices = 0;
     }
-    
+
     if( mShareUi )
     {
         delete mShareUi;
@@ -295,8 +285,7 @@
 // VideoPlaybackControlsController::addFileDetails()
 // -------------------------------------------------------------------------------------------------
 //
-void VideoPlaybackControlsController::addFileDetails(
-    VideoPlaybackViewFileDetails* details )
+void VideoPlaybackControlsController::addFileDetails( VideoPlaybackViewFileDetails* details )
 {
     MPX_ENTER_EXIT(_L("VideoPlaybackControlsController::addFileDetails"));
 
@@ -311,15 +300,6 @@
     evaluateAndChangeViewMode();
 
     //
-    // Dimmed the volume control if it is video only
-    //
-    if ( ! mFileDetails->mAudioEnabled )
-    {
-        mVolumeControl->setValue( 0 );
-        mVolumeControl->setEnabled( false );
-    }
-
-    //
     // grab pan gesture for playlist and seekable(skippable) clip
     //
     if ( mFileDetails->mMultiItemPlaylist && mFileDetails->mSeekable )
@@ -692,8 +672,6 @@
                 MPX_DEBUG(_L("    EIndicatorBitmap load IndicatorBitmaps ok = %d"), ok);
             }
 
-            widget = mLoader->findWidget( QString( "bitmapLayout" ) );
-
             HbWidget *bitmapWidget = qobject_cast<HbWidget*>( widget );
 
             setDefaultBitmap();
@@ -770,7 +748,7 @@
                     //
                     // If the volume control is visible, hide it
                     //
-                    if ( mVolumeControl->isVisible() )
+                    if ( mVolumeControl && mVolumeControl->isVisible() )
                     {
                         mVolumeControl->setVisible( false );
                     }
@@ -933,10 +911,12 @@
 {
     MPX_DEBUG(_L("VideoPlaybackControlsController::volumeChanged() [%d]"), volume);
 
-    if ( mVolumeControl )
+    if ( ! mVolumeControl )
     {
-        mVolumeControl->setValue( volume );
+        mVolumeControl = new VideoPlaybackVolumeControl( this );
     }
+
+    mVolumeControl->volumeChanged( volume );
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -947,10 +927,12 @@
 {
     MPX_DEBUG(_L("VideoPlaybackControlsController::showVolumeControls()"));
 
-    if ( mVolumeControl )
+    if ( ! mVolumeControl )
     {
-        mVolumeControl->setVisible( true );
+        mVolumeControl = new VideoPlaybackVolumeControl( this );
     }
+
+    mVolumeControl->setVisible( true );
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -1222,7 +1204,7 @@
 void VideoPlaybackControlsController::evaluateAndChangeViewMode(
         TPlaybackViewMode viewMode, bool transitionEffect )
 {
-    MPX_DEBUG(_L("VideoPlaybackControlsController::changeViewMode( %d, %d )"),
+    MPX_DEBUG(_L("VideoPlaybackControlsController::evaluateAndChangeViewMode( %d, %d )"),
             viewMode, transitionEffect );
 
     switch ( viewMode )
@@ -1361,8 +1343,12 @@
             rect = widget->geometry();
         }
 
+        //
+        // Turn off the transition effect since it hits performance with high resolution clip
+        // Need to test again with transition effect on with IVE 3.5
+        //
         mViewWrapper->UpdateVideoRect(
-                rect.x(), rect.y(), rect.width(), rect.height(), transitionEffect );
+                rect.x(), rect.y(), rect.width(), rect.height(), false );
     }
 }
 
--- a/videoplayback/videoplaybackview/controlsrc/videoplaybackfiledetailswidget.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/controlsrc/videoplaybackfiledetailswidget.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  29 %
+// Version : %version:  30 %
 
 
 #include <QDir>
@@ -99,31 +99,31 @@
             mFileDetailsUpdated = true;
 
             //
-            // Description
-            //
-            addItemToListWidget(
-                    hbTrId( "txt_videos_list_description" ), details->mDescription );           
-  
-            //
             // File name & File path
             //
-            // prevent exposure of private paths and show only : 
-            // (a) for standalone video player not when is launched from another app 
+            // prevent exposure of private paths and show only :
+            // (a) for standalone video player not when is launched from another app
             // (b) for local playback ony not for streaming video
             //
             if ( !mController->isService() )
-            {  
+            {
                 QFileInfo fileInfo( details->mClipName );
-                
-                // File name                
+
+                // File name
                 QString filename = fileInfo.completeBaseName();
-                addItemToListWidget( hbTrId( "txt_videos_list_file_name" ), filename );                
-                
-                // File path               
+                addItemToListWidget( hbTrId( "txt_videos_list_file_name" ), filename );
+
+                // File path
                 QString path = fileInfo.absoluteFilePath();
                 addItemToListWidget( hbTrId( "txt_videos_list_file_path" ), path );
-            }                            
-            
+            }
+
+            //
+            // Description
+            //
+            addItemToListWidget(
+                    hbTrId( "txt_videos_list_description" ), details->mDescription );
+
             //
             // Duration
             //
--- a/videoplayback/videoplaybackview/controlsrc/videoplaybacktoolbar.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/controlsrc/videoplaybacktoolbar.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  13 %
+// Version : %version:  14 %
 
 
 
@@ -193,15 +193,6 @@
         //
         RWindow *window = mController->view()->getWindow();
         TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) );
-
-        //
-        // get window aspect ratio
-        //   if device is in portrait mode, width > height
-        //   if device is in landscape mode, width < height
-        //
-        TReal32 width = (TReal32) displayRect.Width();
-        TReal32 height = (TReal32) displayRect.Height();
-        mDisplayAspectRatio = (width > height)? (width / height) : (height / width);
     }
 }
 
@@ -423,33 +414,7 @@
 
     mAspectRatio = aspectRatio;
 
-    //
-    // If we are in attach service or audio only view, then don't update the icon.
-	// Aspect ratio icon slots are shared with attach and share icon.
-	// Just update the mAspectRatio
-	// and once we go back to full screen, we will show the correct aspect ratio icon
-	//
-    if ( ! mController->isAttachOperation() && mController->viewMode() == EFullScreenView )
-    {
-        switch( mAspectRatio )
-        {
-            case EMMFNatural:
-            {
-                mButtonActions[E1stButton]->setIcon( *mButtonIcons[EStretchIcon] );
-                break;
-            }
-            case EMMFStretch:
-            {
-                mButtonActions[E1stButton]->setIcon( *mButtonIcons[EZoomIcon] );
-                break;
-            }
-            default:
-            {
-                mButtonActions[E1stButton]->setIcon( *mButtonIcons[ENaturalIcon] );
-                break;
-            }
-        }
-    }
+    setAspectRatioButton();
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -530,40 +495,13 @@
     {
         if ( mController->viewMode() == EFullScreenView )
         {
-            //
-            // Show aspect ratio button
-            //
-            aspectRatioChanged( mAspectRatio );
+            setAspectRatioButton();
 
-            if ( ! details->mVideoEnabled ||
-                   details->mVideoHeight <= 0 ||
-                   details->mVideoWidth <= 0 ||
-                   details->mTvOutConnected )
-            {
-                //
-                // dim 'aspect ratio' buttons
-                //
-                mButtonActions[E1stButton]->setEnabled( false );
-            }
-            else
+            if ( mButtons.count() )
             {
-                //
-                // check if video clip has same aspect ratio as display window
-                //
-                TReal32 videoAspectRatio = (TReal32) details->mVideoWidth / (TReal32) details->mVideoHeight;
-                bool enabled = ( mDisplayAspectRatio == videoAspectRatio )? false : true;
-
-                //
-                // enable or dim 'aspect ratio' buttons accordingly
-                //
-                mButtonActions[E1stButton]->setEnabled( enabled );
-
-                if ( mButtons.count() )
-                {
-                    disconnect( mButtons[E1stButton], SIGNAL( released() ), 0, 0 );
-                    connect( mButtons[E1stButton], SIGNAL( released() ),
-                             this, SLOT( changeAspectRatio() ) );
-                }
+                disconnect( mButtons[E1stButton], SIGNAL( released() ), 0, 0 );
+                connect( mButtons[E1stButton], SIGNAL( released() ),
+                         this, SLOT( changeAspectRatio() ) );
             }
         }
         else if ( mController->viewMode() == EAudioOnlyView )
@@ -792,4 +730,56 @@
     }
 }
 
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackToolBar::setAspectRatioButton
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackToolBar::setAspectRatioButton()
+{
+    MPX_DEBUG(_L("VideoPlaybackToolBar::setAspectRatioButton"));
+
+    //
+    // If we are in attach service or audio only view, then don't update the icon.
+    // Aspect ratio icon slots are shared with attach and share icon.
+    // Just update the mAspectRatio
+    // and once we go back to full screen, we will show the correct aspect ratio icon
+    //
+    if ( ! mController->isAttachOperation() && mController->viewMode() == EFullScreenView )
+    {
+        switch( mAspectRatio )
+        {
+            case EMMFNatural:
+            {
+                mButtonActions[E1stButton]->setIcon( *mButtonIcons[EStretchIcon] );
+                break;
+            }
+            case EMMFStretch:
+            {
+                mButtonActions[E1stButton]->setIcon( *mButtonIcons[EZoomIcon] );
+                break;
+            }
+            default:
+            {
+                mButtonActions[E1stButton]->setIcon( *mButtonIcons[ENaturalIcon] );
+                break;
+            }
+        }
+
+        if ( mController->fileDetails()->mAspectRatioChangeable )
+        {
+            if ( ! mButtonActions[E1stButton]->isEnabled() )
+            {
+                mButtonActions[E1stButton]->setEnabled( true );
+            }
+        }
+        else
+        {
+            if ( mButtonActions[E1stButton]->isEnabled() )
+            {
+                mButtonActions[E1stButton]->setEnabled( false );
+            }
+        }
+    }
+}
+
 //End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/controlsrc/videoplaybackvolumecontrol.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of VideoPlaybackVolumeControl
+*
+*/
+
+// Version : %version:  1 %
+
+
+#include <QTimer>
+#include <hbvolumesliderpopup.h>
+
+#include "mpxvideo_debug.h"
+#include "videoplaybackvolumecontrol.h"
+#include "videoplaybackcontrolscontroller.h"
+
+const int KVolumeDragEventTimeOut = 100000;   //set volume maximum 10 times a sec during dragging
+
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackVolumeControl::VideoPlaybackVolumeControl()
+// -------------------------------------------------------------------------------------------------
+//
+VideoPlaybackVolumeControl::VideoPlaybackVolumeControl( VideoPlaybackControlsController* controller )
+    : mController( controller )
+    , mVolumePopup( NULL )
+    , mDraggingHandlerTimer( NULL )
+    , mVolume( KPbPlaybackVolumeLevelMin )
+    , mVolumeNormalizer( 0 )
+    , mMutedByMuteIcon( false )
+    , mDragging( false )
+{
+    MPX_ENTER_EXIT(_L("VideoPlaybackVolumeControl::VideoPlaybackVolumeControl"));
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackVolumeControl::~VideoPlaybackVolumeControl()
+// -------------------------------------------------------------------------------------------------
+//
+VideoPlaybackVolumeControl::~VideoPlaybackVolumeControl()
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::~VideoPlaybackVolumeControl()"));
+
+    if ( mDraggingHandlerTimer )
+    {
+        disconnect( mDraggingHandlerTimer, SIGNAL( timeout() ), this, SLOT( handleDraggingTimerTimeOut() ) );
+
+        if ( mDraggingHandlerTimer->isActive() )
+        {
+            mDraggingHandlerTimer->stop();
+        }
+
+        delete mDraggingHandlerTimer;
+        mDraggingHandlerTimer = NULL;
+    }
+
+    if ( mVolumePopup )
+    {
+        disconnect( mVolumePopup, SIGNAL( valueChanged( int ) ), this, SLOT( handleSliderValueChanged( int ) ) );
+        disconnect( mVolumePopup, SIGNAL( iconClicked() ), this, SLOT( handleMuteIconClicked() ) );
+        disconnect( mVolumePopup, SIGNAL( sliderPressed() ), this, SLOT( handleSliderPressed() ) );
+        disconnect( mVolumePopup, SIGNAL( sliderReleased() ), this, SLOT( handleSliderReleased() ) );
+
+        delete mVolumePopup;
+        mVolumePopup = NULL;
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackVolumeControl::initialize()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::initialize()
+{
+    MPX_ENTER_EXIT(_L("VideoPlaybackVolumeControl::initialize()"));
+
+    if ( ! mVolumePopup )
+    {
+        //
+        // Create volume popup control
+        //
+        mVolumePopup = new HbVolumeSliderPopup();
+        mVolumePopup->setVisible( false );
+        mVolumePopup->setTimeout( KControlsTimeOut );
+        mVolumePopup->setTickPosition( Hb::NoSliderTicks );
+
+        connect( mVolumePopup, SIGNAL( valueChanged( int ) ), this, SLOT( handleSliderValueChanged( int ) ), Qt::QueuedConnection );
+        connect( mVolumePopup, SIGNAL( iconClicked() ), this, SLOT( handleMuteIconClicked() ) );
+        connect( mVolumePopup, SIGNAL( sliderPressed() ), this, SLOT( handleSliderPressed() ) );
+        connect( mVolumePopup, SIGNAL( sliderReleased() ), this, SLOT( handleSliderReleased() ) );
+
+        if ( mController->fileDetails()->mAudioEnabled )
+        {
+            int volumeSteps = mController->volumeSteps();
+
+            mVolumePopup->setRange( 0, volumeSteps );
+            mVolumePopup->setSingleStep( 1 );
+            mVolumeNormalizer = ( KPbPlaybackVolumeLevelMax - KPbPlaybackVolumeLevelMin ) / volumeSteps;
+            mVolumePopup->setValue( mVolume / mVolumeNormalizer );
+
+            mDraggingHandlerTimer = new QTimer();
+            mDraggingHandlerTimer->setSingleShot( false );
+            mDraggingHandlerTimer->setInterval( KVolumeDragEventTimeOut );
+            connect( mDraggingHandlerTimer, SIGNAL( timeout() ), this, SLOT( handleDraggingTimerTimeOut() ) );
+        }
+        else
+        {
+            //
+            // Dimmed the volume control if it is video only
+            //
+            mVolumePopup->setValue( 0 );
+            mVolumePopup->setEnabled( false );
+        }
+
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackVolumeControl::volumeChanged()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::volumeChanged( int volume )
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::volumeChanged() volume = %d"), volume );
+
+    //
+    // If we get expected volume from video helix, we don't need to set the volume to volume slider.
+    // Or we can stay in infinite loop like this..1->2->3->4->1->2->3->4...
+    // Unlike 9.2, mVolumePopup updates UI first and then emit volumechanged signal,
+    // so there should be workaround to avoid infinite loop
+    // 1. mVolumePopup->setValue( 5 )
+    // 2. mVolumePopup emits valueChanged( 5 )
+    // 3. set the volume 5 to video helix
+    // 4. video helix sends voluemchanged with volume 5
+    //
+    if ( mExpectedVolList.length() && mExpectedVolList.first() == volume )
+    {
+        MPX_DEBUG(_L("VideoPlaybackVolumeControl::volumeChanged() mExpectedVolList.first() = %d"),
+                mExpectedVolList.first() );
+
+        mExpectedVolList.removeFirst();
+    }
+    else if ( ! mDragging )
+    {
+        mVolume = volume;
+
+        if ( mVolumePopup )
+        {
+            mVolumePopup->setValue( mVolume / mVolumeNormalizer );
+            setVisible( true );
+        }
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackVolumeControl::setVisible()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::setVisible( bool visible )
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::setVisible() visibility = %d"), visible );
+
+    //
+	// Late init. When we have to show the volume control, we create.
+	//
+    if ( ! mVolumePopup )
+    {
+        initialize();
+    }
+
+    mVolumePopup->setVisible( visible );
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackVolumeControl::isVisible()
+// -------------------------------------------------------------------------------------------------
+//
+bool VideoPlaybackVolumeControl::isVisible()
+{
+    bool visible = false;
+
+    if ( mVolumePopup )
+    {
+        visible = mVolumePopup->isVisible();
+    }
+
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::isVisible()"), visible );
+
+    return visible;
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackVolumeControl::handleSliderValueChanged()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::handleSliderValueChanged( int volume )
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::handleSliderValueChanged() vol = %d"), volume );
+
+    volume *= mVolumeNormalizer;
+
+    //
+    // If user is dragging, we won't send all the volumechanged value to video helix
+    // since it causes huge traffic and issues with asynchnous calls
+    // So we send commands 10 times a sec as we do in 9.2
+    //
+    if ( mDragging )
+    {
+        mDraggingVolume = volume;
+    }
+    else
+    {
+        setVolume( volume );
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackVolumeControl::handleMuteIconClicked()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::handleMuteIconClicked()
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::handleMuteIconClicked()"));
+
+    if ( mVolumePopup->value() )
+    {
+        mController->handleCommand( EMPXPbvCmdUnMute );
+    }
+    else
+    {
+        mMutedByMuteIcon = true;
+        mController->handleCommand( EMPXPbvCmdMute );
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackVolumeControl::handleSliderPressed()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::handleSliderPressed()
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::handleSliderPressed()"));
+
+    mDragging = true;
+
+    if ( mDraggingHandlerTimer && mDraggingHandlerTimer->isActive() )
+    {
+        mDraggingHandlerTimer->stop();
+    }
+
+    mDraggingHandlerTimer->start( 0 );
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackVolumeControl::handleSliderReleased()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::handleSliderReleased()
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::handleSliderReleased()"));
+
+    mDragging = false;
+
+    if ( mDraggingHandlerTimer )
+    {
+        mDraggingHandlerTimer->stop();
+    }
+
+    setVolume( mDraggingVolume );
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackVolumeControl::handleDraggingTimerTimeOut()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::handleDraggingTimerTimeOut()
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::handleDraggingTimerTimeOut() mDraggingVolume = %d")
+            ,mDraggingVolume );
+
+    if ( mDragging )
+    {
+        setVolume( mDraggingVolume );
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackVolumeControl::setVolume()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackVolumeControl::setVolume( int volume )
+{
+    MPX_DEBUG(_L("VideoPlaybackVolumeControl::setVolume() mVolume = %d, volume = %d")
+            , mVolume, volume );
+
+    if ( mVolume != volume )
+    {
+        mVolume = volume;
+
+        if ( mMutedByMuteIcon && volume == 0 )
+        {
+            MPX_DEBUG(_L("VideoPlaybackVolumeControl::setVolume() don't need to update volume right after muted"));
+
+            //
+            // If this function gets called sincen user tap on mute icon to mute,
+            // Then add min value to the expectedlist. playback plugin will send min value to ui.
+            //
+            mExpectedVolList.append( KPbPlaybackVolumeLevelMin );
+
+            //
+            // Don't need to update volume '0' right after muted.
+            // If we set '0' to playbackplugin after muted,
+            // it won't go back to previous volume with unmuted through media key or remote
+            //
+            mMutedByMuteIcon = false;
+        }
+        else
+        {
+            MPX_DEBUG(_L("VideoPlaybackVolumeControl::setVolume() setvolume = %d"), mVolume );
+
+            mExpectedVolList.append( mVolume );
+            mController->handleCommand( EMPXPbvCmdSetVolume, mVolume );
+        }
+    }
+}
+
+//End of file
--- a/videoplayback/videoplaybackview/inc/videoplaybackcontrolscontroller.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/inc/videoplaybackcontrolscontroller.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: da1mmcf#28 %
+// Version : %version: da1mmcf#29 %
 
 
 
@@ -30,6 +30,7 @@
 #include <mpxplaybackframeworkdefs.h>
 
 #include "mpxvideo_debug.h"
+#include "mpxvideoviewwrapper.h"
 #include "videoplaybackcontrol.hrh"
 #include "mpxcommonvideoplaybackview.hrh"
 #include "videoplaybackviewfiledetails.h"
@@ -39,16 +40,15 @@
 class QString;
 class HbAction;
 class ThumbnailManager;
-class HbVolumeSliderPopup ;
-class CMPXVideoViewWrapper;
+class ShareUi;
 class VideoBasePlaybackView;
+class VideoPlaybackVolumeControl;
 class VideoPlaybackControlPolicy;
 class VideoPlaybackDocumentLoader;
 class VideoPlaybackFullScreenControl;
 class VideoPlaybackControlsController;
 class VideoPlaybackControlConfiguration;
 class VideoServices;
-class ShareUi;
 
 // DATA TYPES
 
@@ -156,9 +156,11 @@
         bool isRNLogoBitmapInControlList();
 
         bool shouldShowRNLogo();
-        
+
         inline bool isService();
 
+        inline int volumeSteps();
+
     private:
         /**
         * Initialize controller
@@ -291,7 +293,7 @@
         QTimer                                    *mRNLogoTimer;
 
         VideoPlaybackDocumentLoader               *mLoader;
-        HbVolumeSliderPopup                       *mVolumeControl;
+        VideoPlaybackVolumeControl                *mVolumeControl;
 
         ThumbnailManager                          *mThumbnailManager;
         VideoServices                             *mVideoServices;
@@ -306,7 +308,7 @@
         TMPXPlaybackState                          mState;
         TPlaybackViewMode                          mViewMode;
         Qt::Orientation                            mOrientation;
-            
+
         ShareUi                                    *mShareUi;
 };
 
@@ -400,7 +402,6 @@
     return mFileDetailsAdded;
 }
 
-
 // -------------------------------------------------------------------------------------------------
 //   VideoPlaybackControlsController::isService
 // -------------------------------------------------------------------------------------------------
@@ -409,11 +410,23 @@
 bool VideoPlaybackControlsController::isService()
 {
     MPX_DEBUG(_L("VideoPlaybackControlsController::isService()"));
-    
+
     return XQServiceUtil::isService();
 }
 
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackControlsController::volumeSteps
+// -------------------------------------------------------------------------------------------------
+//
+inline
+int VideoPlaybackControlsController::volumeSteps()
+{
+    int volumeSteps = mViewWrapper->VolumeSteps();
+    MPX_DEBUG(_L("VideoPlaybackControlsController::volumeSteps() steps = %d"), volumeSteps);
 
-#endif /*MPXVIDEOPLAYBACKCONTROLSCONTROLLER_P_H_*/
+    return volumeSteps;
+}
+
+#endif /*MPXVIDEOPLAYBACKCONTROLSCONTROLLER_H_*/
 
 // End of File
--- a/videoplayback/videoplaybackview/inc/videoplaybackviewfiledetails.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/inc/videoplaybackviewfiledetails.h	Tue Oct 05 09:26:49 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 6 %
+// Version : %version: 7 %
 
 
 
@@ -27,28 +27,28 @@
 #include "mpxhelixplaybackplugindefs.h"
 
 
-// 
+//
 //  CLASS DECLARATION
 //
 class VideoPlaybackViewFileDetails : public QObject
 {
-    public:  
+    public:
         //
         //  Constructor
         //
         VideoPlaybackViewFileDetails();
-        
+
         //
         //  Destructor.
         //
         virtual ~VideoPlaybackViewFileDetails();
-        
+
         //
         //  Clear all file details
         //
         void clearFileDetails();
 
-    public:    
+    public:
         //
         // Data
         //
@@ -60,7 +60,7 @@
         QString   mLocation;
         QString   mCopyright;
         QString   mLanguage;
-        QString   mKeywords;        
+        QString   mKeywords;
 
         TMPXVideoMode mPlaybackMode;
         bool          mSeekable;
@@ -72,6 +72,7 @@
         bool          mTvOutConnected;
         bool          mDrmProtected;
         bool          mMultiItemPlaylist;
+        bool          mAspectRatioChangeable;
 
         int           mVideoHeight;
         int           mVideoWidth;
@@ -81,6 +82,6 @@
         int           mModificationTime;
 };
 
-#endif      // __MPXVIDEOPLAYBACKVIEWFILEDETAILS__  
-            
+#endif      // __MPXVIDEOPLAYBACKVIEWFILEDETAILS__
+
 // EOF
--- a/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/inc/testcontrolscontroller.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/inc/testcontrolscontroller.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  10 %
+// Version : %version:  11 %
 
 #ifndef __TESTCONTROLSCONTROLLER_H__
 #define __TESTCONTROLSCONTROLLER_H__
@@ -73,6 +73,7 @@
     void testHandleEventShowVolumeControls();
     void testHandleEventBackground();
     void testIsFileDetailsAdded();
+    void testVolumeSteps();
 
     //
     // test handleCommand()
--- a/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/src/testcontrolscontroller.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/src/testcontrolscontroller.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  17 %
+// Version : %version:  18 %
 
 #include <e32err.h>
 #include <w32std.h>
@@ -37,7 +37,7 @@
 #include "videoplaybackcontrolconfiguration.h"
 #include "thumbnailmanager_qt.h"
 #include "videoplaybackdocumentloader.h"
-#include "hbvolumesliderpopup.h"
+#include "videoplaybackvolumecontrol.h"
 #include "videoservices.h"
 #include "xqserviceutilxtra.h"
 
@@ -158,13 +158,7 @@
     //
     // validate 'TvOutConnected'
     //
-    verifyHandleEventTvOutResult(true, true);
-
-    //
-    // video-only, validate volume control is dimmed
-    //
-    QVERIFY( mController->mVolumeControl->mValue == 0 );
-    QVERIFY( mController->mVolumeControl->isEnabled() == false );
+    verifyHandleEventTvOutResult( true, true );
 
     //
     // verify 'title' (via mClipName) is set properly
@@ -425,7 +419,7 @@
     int value = 40;
 
     mController->handleEvent( EControlCmdSetVolume, value );
-    QVERIFY( mController->mVolumeControl->mValue == value );
+    QVERIFY( mController->mVolumeControl->mVolume == value );
 
     cleanup();
 }
@@ -1169,10 +1163,10 @@
     // emit signal, this will in turns invoke mController sendVideo() slot
     //
     emit commandSignal();
-    
+
     //
     // emit again.
-    // 
+    //
     emit commandSignal();
 
     //
@@ -1367,4 +1361,20 @@
     cleanup();
 }
 
+// -------------------------------------------------------------------------------------------------
+// TestControlsController::testVolumeSteps
+// -------------------------------------------------------------------------------------------------
+//
+void TestControlsController::testVolumeSteps()
+{
+    init();
+
+    int volume = 5;
+    mViewWrapper->mVolumeSteps = volume;
+
+    QVERIFY( mViewWrapper->VolumeSteps() == volume );
+
+    cleanup();
+}
+
 // End of file
--- a/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/inc/hbvolumesliderpopup.h	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation of HbVolumeSliderPopup
-*
-*/
-
-// Version : %version:   2 %
-
-
-
-#ifndef HBVOLUMESLIDERPOPUP_H
-#define HBVOLUMESLIDERPOPUP_H
-
-#include <hbwidget.h>
-
-
-class HbVolumeSliderPopup : public HbWidget
-{
-    Q_OBJECT
-
-    public:
-        HbVolumeSliderPopup();
-        virtual ~HbVolumeSliderPopup();
-
-    public:
-        void setEnabled( bool enabled );
-        void setVisible( bool visible );
-        bool isEnabled();
-        bool isVisible();
-        void setValue( int value );
-        void setTimeout( int timeout );
-        void setTickPosition( Hb::SliderTickPositions position );
-        void setRange( int min, int max );
-
-    public:
-        bool mVisible;
-        bool mEnabled;
-        int  mValue;
-        int  mTimeOut;
-        int  mMin;
-        int  mMax;
-        Hb::SliderTickPositions mPosition;
-};
-
-#endif /*HBVOLUMESLIDERPOPUP_H*/
-
--- a/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/inc/mpxvideoviewwrapper.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/inc/mpxvideoviewwrapper.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  4 %
+// Version : %version:  5 %
 
 
 
@@ -47,19 +47,20 @@
         static CMPXVideoViewWrapper* NewL( VideoBasePlaybackView* aView );
         virtual ~CMPXVideoViewWrapper();
 
-        CMPXVideoViewWrapper( VideoBasePlaybackView* aView );        
+        CMPXVideoViewWrapper( VideoBasePlaybackView* aView );
         void ConstructL();
 
     public:
         void HandleCommandL( TInt aCommand );
-                             
+
         void SetPropertyL( TMPXPlaybackProperty aProperty, TInt aValue );
 
         void UpdateVideoRect( TInt aX, TInt aY, TInt aWidth, TInt aHeight, TBool transitionEffect );
 
         TBool IsResumingPlaybackAfterTermination();
 
-        
+        TInt VolumeSteps();
+
     public: // data
 
         VideoBasePlaybackView*         mView;
@@ -69,6 +70,7 @@
         TBool                            mForeground;
         int                              mProperty;
         int                              mCommandId;
+        int                              mVolumeSteps;
 };
 
 #endif  // __MPXVIDEOVIEWWRAPPER_H__
--- a/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/src/hbvolumesliderpopup.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation of HbVolumeSliderPopup
-*
-*/
-
-// Version : %version:   2 %
-
-
-
-#include "mpxvideo_debug.h"
-#include "hbvolumesliderpopup.h"
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::HbVolumeSliderPopup
-// -------------------------------------------------------------------------------------------------
-//
-HbVolumeSliderPopup::HbVolumeSliderPopup()
-{
-    MPX_ENTER_EXIT(_L("HbVolumeSliderPopup::HbVolumeSliderPopup()"));
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::~HbVolumeSliderPopup
-// -------------------------------------------------------------------------------------------------
-//
-HbVolumeSliderPopup::~HbVolumeSliderPopup()
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::HbVolumeSliderPopup") );
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::setEnabled
-// -------------------------------------------------------------------------------------------------
-//
-void HbVolumeSliderPopup::setEnabled( bool enabled )
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::setEnabled %d"), enabled );
-
-    mEnabled = enabled;
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::isEnabled
-// -------------------------------------------------------------------------------------------------
-//
-bool HbVolumeSliderPopup::isEnabled()
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::isEnabled %d"), mEnabled );
-
-    return mEnabled;
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::setVisible
-// -------------------------------------------------------------------------------------------------
-//
-void HbVolumeSliderPopup::setVisible( bool visible )
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::setVisible %d"), visible );
-
-    mVisible = visible;
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::isVisible
-// -------------------------------------------------------------------------------------------------
-//
-bool HbVolumeSliderPopup::isVisible()
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::isVisible %d"), mVisible );
-
-    return mVisible;
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::setValue
-// -------------------------------------------------------------------------------------------------
-//
-void HbVolumeSliderPopup::setValue( int value )
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::setValue %d"), value );
-
-    mValue = value;    
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::setTimeout
-// -------------------------------------------------------------------------------------------------
-//
-void HbVolumeSliderPopup::setTimeout( int timeout )
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::setTimeout %d"), timeout );
-
-    mTimeOut = timeout;    
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::setTickPosition
-// -------------------------------------------------------------------------------------------------
-//
-void HbVolumeSliderPopup::setTickPosition( Hb::SliderTickPositions position )
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::setTickPosition"));
-
-    mPosition = position;
-}
-
-// -------------------------------------------------------------------------------------------------
-// HbVolumeSliderPopup::setRange
-// -------------------------------------------------------------------------------------------------
-//
-void HbVolumeSliderPopup::setRange( int min, int max )
-{
-    MPX_DEBUG(_L("HbVolumeSliderPopup::setRange"));
-
-    mMin = min;
-    mMax = max;
-}
-
-// End of file
--- a/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/src/mpxvideoviewwrapper.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/stub/src/mpxvideoviewwrapper.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  4 %
+// Version : %version:  5 %
 
 
 
@@ -34,7 +34,7 @@
 // -------------------------------------------------------------------------------------------------
 //
 CMPXVideoViewWrapper::CMPXVideoViewWrapper( VideoBasePlaybackView* aView )
-    : mView( aView )    
+    : mView( aView )
 {
 }
 
@@ -60,7 +60,7 @@
 //
 void CMPXVideoViewWrapper::ConstructL()
 {
-    mMediaRequested = EFalse;       
+    mMediaRequested = EFalse;
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -89,33 +89,39 @@
 void CMPXVideoViewWrapper::SetPropertyL( TMPXPlaybackProperty aProperty, TInt aValue )
 {
     mProperty = aProperty;
-    Q_UNUSED( aValue );    
+    Q_UNUSED( aValue );
 }
 
 // -------------------------------------------------------------------------------------------------
 //   CMPXVideoViewWrapper::UpdateVideoRect()
 // -------------------------------------------------------------------------------------------------
 //
-void CMPXVideoViewWrapper::UpdateVideoRect( 
+void CMPXVideoViewWrapper::UpdateVideoRect(
         TInt aX, TInt aY, TInt aWidth, TInt aHeight, TBool transitionEffect )
 {
     Q_UNUSED( aX );
     Q_UNUSED( aY );
-    Q_UNUSED( aWidth );    
+    Q_UNUSED( aWidth );
     Q_UNUSED( aHeight );
-    Q_UNUSED( transitionEffect );    
+    Q_UNUSED( transitionEffect );
 }
 
-
 // -------------------------------------------------------------------------------------------------
 //   CMPXVideoViewWrapper::IsResumingPlaybackAfterTermination()
 // -------------------------------------------------------------------------------------------------
 //
 TBool CMPXVideoViewWrapper::IsResumingPlaybackAfterTermination()
 {
-    return false;   
+    return false;
 }
 
-
+// -------------------------------------------------------------------------------------------------
+//   CMPXVideoViewWrapper::VolumeSteps()
+// -------------------------------------------------------------------------------------------------
+//
+TInt CMPXVideoViewWrapper::VolumeSteps()
+{
+    return mVolumeSteps;
+}
 
 // EOF
--- a/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/testcontrolscontroller.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testcontrolscontroller/testcontrolscontroller.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -14,7 +14,7 @@
 # Description: Project file for building testcontrolscontroller
 #
 #
-# Version : %version: 9 %
+# Version : %version: 10 %
 
 
 TEMPLATE = app
@@ -46,7 +46,7 @@
            mpxvideoviewwrapper.h \
            thumbnailmanager_qt.h \
            testcontrolscontroller.h \
-           hbvolumesliderpopup.h \
+           videoplaybackvolumecontrol.h \
            xqserviceutilxtra.h \
            xqserviceutil.h \
            videoservices.h \
@@ -68,7 +68,7 @@
            mpxvideoviewwrapper.cpp \
            thumbnailmanager_qt.cpp \
            testcontrolscontroller.cpp \
-           hbvolumesliderpopup.cpp \
+           videoplaybackvolumecontrol.cpp \
            xqserviceutilxtra.cpp \
            xqserviceutil.cpp \
            videoservices.cpp \
--- a/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/inc/testmpxvideoviewwrapper.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/inc/testmpxvideoviewwrapper.h	Tue Oct 05 09:26:49 2010 +0300
@@ -71,6 +71,8 @@
         void testHandlePlaybackCommandComplete();
         void testHandleMedia();
         void testSurfacedAttached();
+        void testVolumeSteps();
+        void testSetDefaultAspectRatio();
 
     signals:
         void commandSignal(int);
--- a/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  18 %
+// Version : %version:  20 %
 
 #include <e32err.h>
 #include <w32std.h>
@@ -37,6 +37,7 @@
 #include "mpxcollectionutility.h"
 #include "mpxcollectionplaylist.h"
 #include "testmpxvideoviewwrapper.h"
+#include "devsoundif.h"
 
 #include "../stub/inc/videobaseplaybackview.h"
 #include "../stub/inc/videoplaybackviewfiledetails.h"
@@ -837,8 +838,6 @@
     QVERIFY( err == KErrNone );
     QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrNone );
     QVERIFY( mVideoViewWrapper->iControlsController->mFileDetailsAdded );
-    QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EControlCmdSetAspectRatio );
-    QVERIFY( mVideoViewWrapper->iControlsController->mValue == EMMFNatural );
     QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay );
     QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaDelivered );
 
@@ -872,8 +871,6 @@
     QVERIFY( err == KErrNone );
     QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrNone );
     QVERIFY( mVideoViewWrapper->iControlsController->mFileDetailsAdded );
-    QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EControlCmdSetAspectRatio );
-    QVERIFY( mVideoViewWrapper->iControlsController->mValue == EMMFNatural );
     QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPause );
     QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaDelivered );
 
@@ -906,8 +903,6 @@
 
     QVERIFY( err == KErrNone );
     QVERIFY( ! mVideoViewWrapper->iControlsController->mFileDetailsAdded );
-    QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EControlCmdSetAspectRatio );
-    QVERIFY( mVideoViewWrapper->iControlsController->mValue == EMMFNatural );
     QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPause );
     QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrNone );
     QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaDelivered );
@@ -966,4 +961,35 @@
     cleanup();
 }
 
+void TestMPXVideoViewWrapper::testVolumeSteps()
+{
+    init();
+
+    int volumeSteps = 0;
+
+    TRAP_IGNORE( {
+        CDevSoundIf* devSoundIf = CDevSoundIf::NewL();
+        volumeSteps = devSoundIf->GetNumberOfVolumeSteps();
+        delete devSoundIf;
+    } );
+
+    QVERIFY( mVideoViewWrapper->VolumeSteps() == volumeSteps );
+
+    cleanup();
+}
+
+void TestMPXVideoViewWrapper::testSetDefaultAspectRatio()
+{
+    init();
+
+    int aspectRatio = 3;
+
+    mVideoViewWrapper->SetDefaultAspectRatio( aspectRatio );
+
+    QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EControlCmdSetAspectRatio );
+    QVERIFY( mVideoViewWrapper->iControlsController->mValue == aspectRatio );
+
+    cleanup();
+}
+
 // End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/devsoundif.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CDevSoundIf
+*
+*/
+
+// Version : %version:  1 %
+
+
+
+#ifndef __DEVSOUNDIF_H
+#define __DEVSOUNDIF_H
+
+#include <e32base.h>
+
+class CDevSoundIf : public CBase
+{
+    public:
+
+        static CDevSoundIf* NewL();
+        virtual ~CDevSoundIf();
+
+    public:
+        TInt GetNumberOfVolumeSteps();
+
+    private:
+        CDevSoundIf();
+        void ConstructL();
+
+    public:
+        TInt iVolumeSteps;
+};
+
+#endif      // __DEVSOUNDIF_H
+
+// End of File
--- a/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/videoplaybackdisplayhandler.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/videoplaybackdisplayhandler.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  8 %
+// Version : %version:  10 %
 
 
 #ifndef __CVIDEOPLAYBACKDISPLAYHANDLER_H__
@@ -29,10 +29,9 @@
 #include <mediaclientvideodisplay.h>
 
 
-// 
+//
 //  CLASS DECLARATION
 //
-class MMPXPlaybackUtility;
 class CMPXVideoViewWrapper;
 class VideoPlaybackViewFileDetails;
 
@@ -46,34 +45,29 @@
 
         ~CVideoPlaybackDisplayHandler();
 
-        static CVideoPlaybackDisplayHandler* NewL( MMPXPlaybackUtility* aPlayUtil,
-                                                   CMPXVideoViewWrapper* aViewWrapper );
+        static CVideoPlaybackDisplayHandler* NewL( CMPXVideoViewWrapper* aViewWrapper );
 
         void CreateDisplayWindowL( RWsSession& aWs,
                                    CWsScreenDevice& aScreenDevice,
                                    RWindow& aWin,
-                                   TRect aDisplayRect );
+                                   TRect aDisplayRect,
+                                   VideoPlaybackViewFileDetails* fileDetails );
 
         void RemoveDisplayWindow();
 
         void HandleVideoDisplayMessageL( CMPXMessage* aMessage );
 
         TInt SetAspectRatioL( TMPXVideoPlaybackCommand aCmd );
-        
-        TInt SetDefaultAspectRatioL( VideoPlaybackViewFileDetails* aFileDetails, 
-                                     TReal32 aDisplayAspectRatio );
 
         void UpdateVideoRectL( TRect aRect, TBool transitionEffect );
 
     private:
 
-        CVideoPlaybackDisplayHandler( MMPXPlaybackUtility* aPlayUtil,
-                                      CMPXVideoViewWrapper* aViewWrapper );
+        CVideoPlaybackDisplayHandler( CMPXVideoViewWrapper* aViewWrapper );
 
         void ConstructL();
 
     public:
-        MMPXPlaybackUtility*                iPlaybackUtility;
         CMPXVideoViewWrapper*               iViewWrapper;
         CMediaClientVideoDisplay*           iVideoDisplay;
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/devsoundif.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CDevSoundIf
+*
+*/
+
+// Version : %version: 1 %
+
+
+
+// INCLUDE FILES
+#include <devsoundif.h>
+
+
+
+// CONSTANTS
+
+
+// ============================ MEMBER FUNCTIONS ===================================================
+
+// -------------------------------------------------------------------------------------------------
+// CDevSoundIf::CDevSoundIf
+// C++ default constructor can NOT contain any code, that might leave.
+// -------------------------------------------------------------------------------------------------
+//
+CDevSoundIf::CDevSoundIf()
+{
+    iVolumeSteps = 10;
+}
+
+// -------------------------------------------------------------------------------------------------
+// CDevSoundIf::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -------------------------------------------------------------------------------------------------
+//
+void CDevSoundIf::ConstructL()
+{
+}
+
+// -------------------------------------------------------------------------------------------------
+// CDevSoundIf::NewL
+// Two-phased constructor.
+// -------------------------------------------------------------------------------------------------
+//
+CDevSoundIf* CDevSoundIf::NewL()
+{
+    CDevSoundIf* self = new( ELeave ) CDevSoundIf;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+}
+
+// -------------------------------------------------------------------------------------------------
+// CDevSoundIf::~CDevSoundIf
+// Destructor
+// -------------------------------------------------------------------------------------------------
+//
+CDevSoundIf::~CDevSoundIf()
+{
+}
+
+// -------------------------------------------------------------------------------------------------
+// CDevSoundIf::GetNumberOfVolumeSteps
+// -------------------------------------------------------------------------------------------------
+//
+TInt CDevSoundIf::GetNumberOfVolumeSteps()
+{
+    return iVolumeSteps;
+}
+
+//  End of File
--- a/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/videoplaybackdisplayhandler.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/stub/src/videoplaybackdisplayhandler.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,13 +15,12 @@
 *
 */
 
-// Version : %version:  9 %
+// Version : %version:  11 %
 
 #include <sysutil.h>
 #include <s32file.h>
 #include <mpxcommand.h>
 #include <mpxcommandgeneraldefs.h>
-#include <mpxplaybackutility.h>
 #include <mpxvideoplaybackdefs.h>
 
 #include "mpxvideoviewwrapper.h"
@@ -30,10 +29,8 @@
 #include "videoplaybackviewfiledetails.h"
 
 
-CVideoPlaybackDisplayHandler::CVideoPlaybackDisplayHandler( MMPXPlaybackUtility* aPlayUtil,
-                                                            CMPXVideoViewWrapper* aViewWrapper )
-    : iPlaybackUtility( aPlayUtil )
-    , iViewWrapper( aViewWrapper )
+CVideoPlaybackDisplayHandler::CVideoPlaybackDisplayHandler( CMPXVideoViewWrapper* aViewWrapper )
+    : iViewWrapper( aViewWrapper )
 {
 }
 
@@ -42,13 +39,12 @@
 }
 
 CVideoPlaybackDisplayHandler*
-CVideoPlaybackDisplayHandler::NewL( MMPXPlaybackUtility* aPlayUtil,
-                                    CMPXVideoViewWrapper* aViewWrapper )
+CVideoPlaybackDisplayHandler::NewL( CMPXVideoViewWrapper* aViewWrapper )
 {
     MPX_ENTER_EXIT(_L("CVideoPlaybackDisplayHandler::NewL()"));
 
     CVideoPlaybackDisplayHandler* self =
-        new(ELeave) CVideoPlaybackDisplayHandler( aPlayUtil, aViewWrapper );
+        new(ELeave) CVideoPlaybackDisplayHandler( aViewWrapper );
 
     CleanupStack::PushL( self );
     self->ConstructL();
@@ -72,12 +68,14 @@
                                           RWsSession& aWs,
                                           CWsScreenDevice& aScreenDevice,
                                           RWindow& aWin,
-                                          TRect aDisplayRect )
+                                          TRect aDisplayRect,
+                                          VideoPlaybackViewFileDetails* fileDetails )
 {
     Q_UNUSED( aWs );
     Q_UNUSED( aScreenDevice );
     Q_UNUSED( aWin );
     Q_UNUSED( aDisplayRect );
+    Q_UNUSED( fileDetails );
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -108,7 +106,7 @@
 TInt CVideoPlaybackDisplayHandler::SetAspectRatioL( TMPXVideoPlaybackCommand aCmd )
 {
     iCommand = aCmd;
-    
+
     switch ( aCmd )
     {
         case EPbCmdNaturalAspectRatio:
@@ -132,20 +130,6 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   CVideoPlaybackDisplayHandler::SetDefaultAspectRatioL
-// -------------------------------------------------------------------------------------------------
-//
-TInt CVideoPlaybackDisplayHandler::SetDefaultAspectRatioL(
-                                          VideoPlaybackViewFileDetails* aFileDetails,
-                                          TReal32 aDisplayAspectRatio )
-{
-    Q_UNUSED( aFileDetails );
-    Q_UNUSED( aDisplayAspectRatio );
-
-    return iAspectRatio;
-}
-
-// -------------------------------------------------------------------------------------------------
 //   CVideoPlaybackDisplayHandler::UpdateVideoRectL()
 // -------------------------------------------------------------------------------------------------
 //
--- a/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testmpxvideoviewwrapper/testmpxvideoviewwrapper.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -14,7 +14,7 @@
 # Description: Project file for building testmpxvideoviewwrapper
 #
 #
-# Version : %version: 10 %
+# Version : %version: 11 %
 
 
 TEMPLATE = app
@@ -44,6 +44,7 @@
            mpxplaybackutility.h \
            mpxcollectionutility.h \
            mpxcollectionplaylist.h \
+           devsoundif.h \
            ../../viewinc/mpxvideoviewwrapper.h
 					                
 SOURCES += testmpxvideoviewwrapper.cpp \
@@ -55,4 +56,5 @@
            mpxcollectionutility.cpp \
            mpxcollectionplaylist.cpp \
            videoplaybackuserinputhandler.cpp \
+           devsoundif.cpp \
            ../../viewsrc/mpxvideoviewwrapper.cpp
--- a/videoplayback/videoplaybackview/tsrc/testtoolbar/src/testtoolbar.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testtoolbar/src/testtoolbar.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  8 %
+// Version : %version:  9 %
 
 
 #include <qdebug>
@@ -429,8 +429,7 @@
     // video clip, view mode is full-screen
     //
     details->mVideoEnabled = true;
-    details->mVideoHeight = 1;
-    details->mVideoWidth = 1;
+    details->mAspectRatioChangeable = true;
     details->mTvOutConnected = false;
     details->mSeekable = true;
     details->mPausableStream = true;
@@ -448,8 +447,7 @@
     // video clip has same aspect ratio as display window
     //
     details->mVideoEnabled = true;
-    details->mVideoHeight = 360;
-    details->mVideoWidth = 640;
+    details->mAspectRatioChangeable = false;
     details->mTvOutConnected = false;
     mController->mViewMode = EFullScreenView;
 
@@ -465,8 +463,7 @@
     // audio-only clip, view mode is full-screen
     //
     details->mVideoEnabled = false;
-    details->mVideoHeight = 0;
-    details->mVideoWidth = 1;
+    details->mAspectRatioChangeable = false;
     details->mTvOutConnected = true;
     details->mSeekable = false;
     details->mPausableStream = true;
@@ -483,8 +480,7 @@
     // local audio-only clip, view mode is audio-only
     //
     details->mVideoEnabled = false;
-    details->mVideoHeight = 0;
-    details->mVideoWidth = 1;
+    details->mAspectRatioChangeable = false;
     details->mTvOutConnected = true;
     details->mSeekable = true;
     details->mPausableStream = false;
@@ -546,8 +542,7 @@
     // video clip, view mode is full-screen
     //
     details->mVideoEnabled = true;
-    details->mVideoHeight = 1;
-    details->mVideoWidth = 1;
+    details->mAspectRatioChangeable = false;
     details->mTvOutConnected = false;
     details->mSeekable = true;
     details->mPausableStream = true;
--- a/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/inc/videoplaybackcontrolscontroller.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/inc/videoplaybackcontrolscontroller.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  3 %
+// Version : %version:  4 %
 
 
 
@@ -92,19 +92,19 @@
         */
         inline VideoPlaybackViewFileDetails* fileDetails();
 
-        TPlaybackViewMode viewMode();
+        inline TPlaybackViewMode viewMode();
 
-        void changeViewMode( TPlaybackViewMode viewMode, bool transitionEffect = true );
+        void evaluateAndChangeViewMode( TPlaybackViewMode viewMode, bool transitionEffect = true );
 
         bool isAttachOperation();
-        
+
     private slots:
         void attachVideo();
         void sendVideo();
-                
+
     public:
-        VideoPlaybackViewFileDetails  *mFileDetails;
-        VideoBasePlaybackView         *mView;
+        VideoPlaybackViewFileDetails   *mFileDetails;
+        VideoBasePlaybackView          *mView;
 
         TMPXPlaybackState               mState;
         TPlaybackViewMode               mViewMode;
--- a/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/inc/videoplaybackviewfiledetails.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/inc/videoplaybackviewfiledetails.h	Tue Oct 05 09:26:49 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  3 %
+// Version : %version:  4 %
 
 
 
@@ -27,28 +27,28 @@
 #include "mpxhelixplaybackplugindefs.h"
 
 
-// 
+//
 //  CLASS DECLARATION
 //
 class VideoPlaybackViewFileDetails : public QObject
 {
-    public:  
+    public:
         //
         //  Constructor
         //
         VideoPlaybackViewFileDetails();
-        
+
         //
         //  Destructor.
         //
         virtual ~VideoPlaybackViewFileDetails();
-        
+
         //
         //  Clear all file details
         //
         void clearFileDetails();
 
-    public:    
+    public:
         //
         // Data
         //
@@ -60,7 +60,7 @@
         QString   mLocation;
         QString   mCopyright;
         QString   mLanguage;
-        QString   mKeywords;        
+        QString   mKeywords;
 
         TMPXVideoMode mPlaybackMode;
         bool          mSeekable;
@@ -72,6 +72,7 @@
         bool          mTvOutConnected;
         bool          mDrmProtected;
         bool          mMultiItemPlaylist;
+        bool          mAspectRatioChangeable;
 
         int           mVideoHeight;
         int           mVideoWidth;
@@ -79,6 +80,6 @@
         int           mDuration;
 };
 
-#endif      // __VIDEOPLAYBACKVIEWFILEDETAILS__  
-            
+#endif      // __VIDEOPLAYBACKVIEWFILEDETAILS__
+
 // EOF
--- a/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/src/videoplaybackcontrolscontroller.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/src/videoplaybackcontrolscontroller.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 3 %
+// Version : %version: 4 %
 
 
 
@@ -59,7 +59,7 @@
     if ( mView )
     {
         delete mView;
-        mView = NULL;       
+        mView = NULL;
     }
 }
 
@@ -67,7 +67,7 @@
 //   VideoPlaybackControlsController::handleCommand()
 // -------------------------------------------------------------------------------------------------
 //
-void VideoPlaybackControlsController::handleCommand( 
+void VideoPlaybackControlsController::handleCommand(
         TMPXVideoPlaybackViewCommandIds command, int value )
 {
     MPX_DEBUG(_L("VideoPlaybackControlsController::handleCommand(%d)"), command);
@@ -77,13 +77,13 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   VideoPlaybackControlsController::changeViewMode
+//   VideoPlaybackControlsController::evaluateAndChangeViewMode
 // -------------------------------------------------------------------------------------------------
 //
-void VideoPlaybackControlsController::changeViewMode( 
+void VideoPlaybackControlsController::evaluateAndChangeViewMode(
         TPlaybackViewMode viewMode, bool transitionEffect )
 {
-    MPX_DEBUG(_L("VideoPlaybackControlsController::changeViewMode()"));
+    MPX_DEBUG(_L("VideoPlaybackControlsController::evaluateAndChangeViewMode()"));
 
     Q_UNUSED( transitionEffect );
     mViewMode = viewMode;
@@ -106,7 +106,7 @@
 //
 bool VideoPlaybackControlsController::isAttachOperation()
 {
-    MPX_DEBUG(_L("VideoPlaybackControlsController::isAttachOperation() ret %d"), 
+    MPX_DEBUG(_L("VideoPlaybackControlsController::isAttachOperation() ret %d"),
             mIsAttachOperation);
 
     return mIsAttachOperation;
@@ -119,10 +119,10 @@
 void VideoPlaybackControlsController::attachVideo()
 {
     MPX_ENTER_EXIT(_L("VideoPlaybackControlsController::attachVideo()"));
-    
-    handleCommand( EMPXPbvCmdClose );    
+
+    handleCommand( EMPXPbvCmdClose );
     mAttachVideoDone = true;
-}    
+}
 
 // -------------------------------------------------------------------------------------------------
 // VideoPlaybackControlsController::sendVideo()
@@ -131,9 +131,9 @@
 void VideoPlaybackControlsController::sendVideo()
 {
     MPX_ENTER_EXIT(_L("VideoPlaybackControlsController::sendVideo()"));
-    
-    handleCommand( EMPXPbvCmdPause );    
+
+    handleCommand( EMPXPbvCmdPause );
     mSendVideoDone = true;
-}    
+}
 
 // End of File
--- a/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/src/videoplaybackviewfiledetails.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testtoolbar/stub/src/videoplaybackviewfiledetails.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  3 %
+// Version : %version:  4 %
 
 
 
@@ -47,16 +47,16 @@
 {
     MPX_ENTER_EXIT(_L("VideoPlaybackViewFileDetails::ClearFileDetails()"));
 
-    mMimeType = tr("");  
+    mMimeType = tr("");
     mTitle = tr("");
     mArtist = tr("");
     mClipName = tr("");
-    mDescription = tr("");  
+    mDescription = tr("");
     mLocation = tr("");
     mCopyright = tr("");
     mLanguage = tr("");
     mKeywords = tr("");
-    
+
     mPlaybackMode = EMPXVideoLocal;
     mSeekable = false;
     mPausableStream = false;
@@ -64,6 +64,7 @@
     mVideoEnabled = false;
     mPartialPlayback = false;
     mRNFormat = false;
+    mAspectRatioChangeable = false;
 
     mDuration = 0;
     mTvOutConnected   = false;
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/inc/testvideodisplayhandler.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/inc/testvideodisplayhandler.h	Tue Oct 05 09:26:49 2010 +0300
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:   tester for methods in Video Display Handler
-* 
+*
 */
 
 #ifndef __TESTVIDEODISPLAYHANDLER_H__
@@ -24,7 +24,6 @@
 
 // forward declaration
 class CVideoPlaybackDisplayHandler;
-class MMPXPlaybackUtility;
 class VideoBasePlaybackView;
 class CMPXVideoViewWrapper;
 class VideoPlaybackViewFileDetails;
@@ -40,17 +39,17 @@
          * will be called before each testfunction is executed.
          *
          */
-        void init(); 
-    
+        void init();
+
         /**
          * will be called after every testfunction.
          *
          */
         void cleanup();
-        
+
         void setup();
-    
-    // test functions for the test framework         
+
+    // test functions for the test framework
     private slots:
         // the order in which these testXX methods are declared is important
         // changing this order will affect the test results
@@ -61,15 +60,14 @@
         void testHandleVideoRemovedMessageL();
         void testSetAspectRatioL();
         void testSetDefaultAspectRatioL();
-        void testUpdateVideoRectL();	
-    
-    
+        void testUpdateVideoRectL();
+
+
     private:
-        CVideoPlaybackDisplayHandler*     mDispHdlr;	
-        MMPXPlaybackUtility*              mPlaybackUtility;  
+        CVideoPlaybackDisplayHandler*     mDispHdlr;
         VideoBasePlaybackView*            mBaseVideoView;
         CMPXVideoViewWrapper*             mVideoViewWrapper;
-        VideoPlaybackViewFileDetails*     mFileDetails; 
+        VideoPlaybackViewFileDetails*     mFileDetails;
 };
 
 #endif  // __TESTVIDEODISPLAYHANDLER_H__
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -25,6 +25,7 @@
 
 #include <mpxplaybackutility.h>
 
+#include "mediaclientvideodisplay.h"
 #include "testvideodisplayhandler.h"
 #include "../stub/inc/videobaseplaybackview.h"
 #include "../stub/inc/videoplaybackviewfiledetails.h"
@@ -63,12 +64,11 @@
 //
 void TestVideoDisplayHandler::init()
 {
-    mPlaybackUtility = MMPXPlaybackUtility::UtilityL( KPbModeDefault );
-
     mBaseVideoView    = new VideoBasePlaybackView();
     mVideoViewWrapper = CMPXVideoViewWrapper::NewL( mBaseVideoView );
 
-    mDispHdlr = CVideoPlaybackDisplayHandler::NewL(mPlaybackUtility, mVideoViewWrapper);
+    mDispHdlr = CVideoPlaybackDisplayHandler::NewL( mVideoViewWrapper);
+    mFileDetails = new VideoPlaybackViewFileDetails();
 }
 
 // ---------------------------------------------------------------------------
@@ -77,20 +77,29 @@
 //
 void TestVideoDisplayHandler::cleanup()
 {
-    if ( mPlaybackUtility )
+    if ( mFileDetails )
     {
-        mPlaybackUtility->Close();
-        mPlaybackUtility = NULL;
+        delete mFileDetails;
+        mFileDetails = NULL;
+    }
+
+    if ( mDispHdlr )
+    {
+        delete mDispHdlr;
+        mDispHdlr = NULL;
     }
 
-    delete mDispHdlr;
-    mDispHdlr = NULL;
+    if ( mVideoViewWrapper )
+    {
+        delete mVideoViewWrapper;
+        mVideoViewWrapper = NULL;
+    }
 
-    delete mVideoViewWrapper;
-    mVideoViewWrapper = NULL;
-
-    delete mBaseVideoView;
-    mBaseVideoView = NULL;
+    if ( mBaseVideoView )
+    {
+        delete mBaseVideoView;
+        mBaseVideoView = NULL;
+    }
 }
 
 // ---------------------------------------------------------------------------
@@ -111,7 +120,8 @@
     mDispHdlr->CreateDisplayWindowL( CCoeEnv::Static()->WsSession(),
                                      *(CCoeEnv::Static()->ScreenDevice()),
                                      *window,
-                                     displayRect);
+                                     displayRect,
+                                     mFileDetails );
 
     QCOMPARE( mDispHdlr->iWindowRect, displayRect);
 
@@ -140,6 +150,9 @@
 {
     setup();
 
+    mFileDetails->mVideoHeight = 174;
+    mFileDetails->mVideoWidth = 144;
+
     CMPXMessage* message = NULL;
     TRAP_IGNORE
     (
@@ -152,6 +165,7 @@
 
     QVERIFY( ! mDispHdlr->iSurfaceId.IsNull() );
     QVERIFY( mDispHdlr->iViewWrapper->iAttatched );
+    QVERIFY( mFileDetails->mAspectRatioChangeable );
 
     mDispHdlr->RemoveDisplayWindow();
     cleanup();
@@ -172,6 +186,8 @@
     mDispHdlr->HandleVideoDisplayMessageL( message );
 
     QVERIFY( ! mDispHdlr->iSurfaceId.IsNull() );
+    QVERIFY( ! mFileDetails->mAspectRatioChangeable );
+    QVERIFY( mVideoViewWrapper->iAspectRatio == EMMFNatural );
 
     mDispHdlr->RemoveDisplayWindow();
     cleanup();
@@ -214,44 +230,6 @@
 {
     setup();
 
-    //
-    // get window size
-    //
-    RWindow *window = mBaseVideoView->getWindow();
-    TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) );
-
-    //
-    // get window aspect ratio
-    //   if device is in landscape mode, width > height
-    //   if device is in portrait mode, width < height
-    //
-    TReal32 width = (TReal32) displayRect.Width();
-    TReal32 height = (TReal32) displayRect.Height();
-    TReal32 displayAspectRatio = (width > height)? (width / height) : (height / width);
-
-    //
-    // aspect ratio zoom
-    //
-    mFileDetails = new VideoPlaybackViewFileDetails();
-    mFileDetails->mVideoHeight = 280;
-    mFileDetails->mVideoWidth  = 600;
-
-    int aspectRatio = mDispHdlr->SetDefaultAspectRatioL( mFileDetails, displayAspectRatio );
-
-    QVERIFY( aspectRatio == EMMFZoom );
-
-    //
-    // aspect ratio stretch
-    //
-    mFileDetails->mVideoHeight = 144;
-    mFileDetails->mVideoWidth  = 220;
-
-    aspectRatio = mDispHdlr->SetDefaultAspectRatioL( mFileDetails, displayAspectRatio );
-
-    QVERIFY( aspectRatio == EMMFStretch );
-
-    mDispHdlr->RemoveDisplayWindow();
-
     cleanup();
 }
 
@@ -261,12 +239,38 @@
 
     RWindow *window = mBaseVideoView->getWindow();
 
+    //
+    // Transition effect is off
+    //
     TRect displayRect = TRect( 0, 0, 200, 300 );
 
     mDispHdlr->UpdateVideoRectL( displayRect, false );
 
     QCOMPARE( mDispHdlr->iWindowRect, displayRect);
 
+    //
+    // iRotation is off
+    //
+    displayRect = TRect( 0, 0, 300, 400 );
+    mDispHdlr->iRotation = EVideoRotationNone;
+
+    mDispHdlr->UpdateVideoRectL( displayRect, false );
+
+    QCOMPARE( mDispHdlr->iWindowRect, displayRect);
+
+    //
+    // iRotation is on
+    //
+    displayRect = TRect( 0, 0, 200, 300 );
+
+    TRect expectedRect = TRect( 60, 0, 360, 200 );
+    mDispHdlr->iRotation = EVideoRotationClockwise90;
+
+    mDispHdlr->UpdateVideoRectL( displayRect, false );
+
+    QCOMPARE( mDispHdlr->iWindowRect, displayRect );
+    QCOMPARE( mDispHdlr->iVideoDisplay->iVideoExtent, expectedRect );
+
     mDispHdlr->RemoveDisplayWindow();
     cleanup();
 }
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mediaclientvideodisplay.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mediaclientvideodisplay.h	Tue Oct 05 09:26:49 2010 +0300
@@ -20,35 +20,36 @@
 #include <w32std.h>
 #include <mmf/common/mmfvideosurfacecustomcommands.h>
 
-CMediaClientVideoDisplay : public CBase
-	{
-public:
+class CMediaClientVideoDisplay : public CBase
+{
+    public:
+
+        static CMediaClientVideoDisplay* NewL(TInt aDisplayId);
+
+        ~CMediaClientVideoDisplay();
+
+        CMediaClientVideoDisplay();
+
+        void AddDisplayWindowL(const RWindowBase* aWindow, const TRect& aClipRect, const TRect& aCropRegion,
+                                           const TRect& aVideoExtent, TReal32 aScaleWidth, TReal32 aScaleHeight,
+                                           TVideoRotation aRotation, TAutoScaleType aAutoScaleType,
+                                           TInt aHorizPos, TInt aVertPos, RWindow* aWindow2);
 
-	static CMediaClientVideoDisplay* NewL(TInt aDisplayId);
-	
-	~CMediaClientVideoDisplay();
-	
-	CMediaClientVideoDisplay();
-	
-	void AddDisplayWindowL(const RWindowBase* aWindow, const TRect& aClipRect, const TRect& aCropRegion,
-							           const TRect& aVideoExtent, TReal32 aScaleWidth, TReal32 aScaleHeight,
-							           TVideoRotation aRotation, TAutoScaleType aAutoScaleType, 
-							           TInt aHorizPos, TInt aVertPos, RWindow* aWindow2);
-	
-	
-	void RemoveSurface();
-	
-	TInt SurfaceCreated(const TSurfaceId& aSurfaceId, const TRect& aCropRect, TVideoAspectRatio aAspectRatio, const TRect& aCropRegion);
-							
-	TInt SurfaceParametersChanged(const TSurfaceId& aSurfaceId, const TRect& aCropRect, TVideoAspectRatio aAspectRatio);
+        void RemoveSurface();
+
+        TInt SurfaceCreated(const TSurfaceId& aSurfaceId, const TRect& aCropRect, TVideoAspectRatio aAspectRatio, const TRect& aCropRegion);
+
+        TInt SurfaceParametersChanged(const TSurfaceId& aSurfaceId, const TRect& aCropRect, TVideoAspectRatio aAspectRatio);
+
+        TInt RedrawWindows(const TRect& aCropRegion);
 
-	TInt RedrawWindows(const TRect& aCropRegion);
-	
-	void SetVideoExtentL(const RWindowBase& aWindow, const TRect& aVideoExtent, const TRect& aCropRegion);
-	
-	void SetAutoScaleL(TAutoScaleType aScaleType, TInt aHorizPos, TInt aVertPos, const TRect& aCropRegion);
-			
-	};
+        void SetVideoExtentL(const RWindowBase& aWindow, const TRect& aVideoExtent, const TRect& aCropRegion);
+
+        void SetAutoScaleL(TAutoScaleType aScaleType, TInt aHorizPos, TInt aVertPos, const TRect& aCropRegion);
+
+    public:
+        TRect iVideoExtent;
+};
 
 #endif // MEDIACLIENTVIDEODISPLAY_H
 
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mpxvideoviewwrapper.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/mpxvideoviewwrapper.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  4 %
+// Version : %version:  6 %
 
 
 
@@ -30,8 +30,6 @@
 #include <e32std.h>	 // TBuf
 
 
-#include "videoplaybackcontrol.hrh"
-
 //  Constants
 
 //  Forward Declarations
@@ -74,6 +72,8 @@
 
         void SurfacedAttached( TBool aAttached );
 
+        void SetDefaultAspectRatio( int aspectRatio );
+
     public: // data
 
         VideoBasePlaybackView*        iView;
@@ -82,6 +82,7 @@
         TBool                         iClosePlayerAO;
         TBool                         iForeground;
         TBool                         iAttatched;
+        TInt                          iAspectRatio;
 };
 
 #endif  // __MPXVIDEOVIEWWRAPPER_H__
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/videoplaybackviewfiledetails.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/inc/videoplaybackviewfiledetails.h	Tue Oct 05 09:26:49 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 4 %
+// Version : %version: 5 %
 
 
 
@@ -27,28 +27,28 @@
 #include "mpxhelixplaybackplugindefs.h"
 
 
-// 
+//
 //  CLASS DECLARATION
 //
 class VideoPlaybackViewFileDetails : public QObject
 {
-    public:  
+    public:
         //
         //  Constructor
         //
         VideoPlaybackViewFileDetails();
-        
+
         //
         //  Destructor.
         //
         virtual ~VideoPlaybackViewFileDetails();
-        
+
         //
         //  Clear all file details
         //
         void clearFileDetails();
 
-    public:    
+    public:
         //
         // Data
         //
@@ -72,6 +72,7 @@
         bool          mTvOutConnected;
         bool          mDrmProtected;
         bool          mMultiItemPlaylist;
+        bool          mAspectRatioChangeable;
 
         int           mVideoHeight;
         int           mVideoWidth;
@@ -79,6 +80,6 @@
         int           mDuration;
 };
 
-#endif      // __VIDEOPLAYBACKVIEWFILEDETAILS__  
-            
+#endif      // __VIDEOPLAYBACKVIEWFILEDETAILS__
+
 // EOF
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/mediaclientvideodisplay.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/mediaclientvideodisplay.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 1 %
+// Version : %version: 2 %
 
 //  Include Files
 
@@ -53,7 +53,7 @@
 // CMediaClientVideoDisplay::RemoveSurface()
 // -------------------------------------------------------------------------------------------------
 //
-void CMediaClientVideoDisplay::RemoveSurface()	
+void CMediaClientVideoDisplay::RemoveSurface()
 {
 }
 
@@ -61,17 +61,17 @@
 // CMediaClientVideoDisplay::RemoveSurface()
 // -------------------------------------------------------------------------------------------------
 //
-void CMediaClientVideoDisplay::AddDisplayWindowL(const RWindowBase* /*aWindow*/, 
-	                                               const TRect& /*aClipRect*/, 
+void CMediaClientVideoDisplay::AddDisplayWindowL(const RWindowBase* /*aWindow*/,
+	                                               const TRect& /*aClipRect*/,
 	                                               const TRect& /*aCropRegion*/,
-							                                   const TRect& /*aVideoExtent*/, 
-							                                   TReal32 /*aScaleWidth*/, 
+							                                   const TRect& /*aVideoExtent*/,
+							                                   TReal32 /*aScaleWidth*/,
 							                                   TReal32 /*aScaleHeight*/,
-							                                   TVideoRotation /*aRotation*/, 
-							                                   TAutoScaleType /*aAutoScaleType*/, 
-							                                   TInt /*aHorizPos*/, 
-							                                   TInt /*aVertPos*/, 
-							                                   RWindow* /*aWindow2*/)	
+							                                   TVideoRotation /*aRotation*/,
+							                                   TAutoScaleType /*aAutoScaleType*/,
+							                                   TInt /*aHorizPos*/,
+							                                   TInt /*aVertPos*/,
+							                                   RWindow* /*aWindow2*/)
 {
 }
 
@@ -79,10 +79,10 @@
 // CMediaClientVideoDisplay::RemoveSurface()
 // -------------------------------------------------------------------------------------------------
 //
-TInt CMediaClientVideoDisplay::SurfaceCreated(const TSurfaceId& /*aSurfaceId*/, 
-	                                            const TRect& /*aCropRect*/, 
-	                                            TVideoAspectRatio /*aAspectRatio*/, 
-	                                            const TRect& /*aCropRegion*/)	
+TInt CMediaClientVideoDisplay::SurfaceCreated(const TSurfaceId& /*aSurfaceId*/,
+	                                            const TRect& /*aCropRect*/,
+	                                            TVideoAspectRatio /*aAspectRatio*/,
+	                                            const TRect& /*aCropRegion*/)
 {
     return KErrNone;
 }
@@ -92,13 +92,13 @@
 // CMediaClientVideoDisplay::RemoveSurface()
 // -------------------------------------------------------------------------------------------------
 //
-TInt CMediaClientVideoDisplay::SurfaceParametersChanged(const TSurfaceId& /*aSurfaceId*/, 
-	                                                      const TRect& /*aCropRect*/, 
+TInt CMediaClientVideoDisplay::SurfaceParametersChanged(const TSurfaceId& /*aSurfaceId*/,
+	                                                      const TRect& /*aCropRect*/,
 	                                                      TVideoAspectRatio /*aAspectRatio*/)
 {
-    return KErrNone;	
-}	
-	
+    return KErrNone;
+}
+
 
 // -------------------------------------------------------------------------------------------------
 // CMediaClientVideoDisplay::RemoveSurface()
@@ -107,30 +107,30 @@
 TInt CMediaClientVideoDisplay::RedrawWindows(const TRect& /*aCropRegion*/)
 {
     return KErrNone;
-}							
+}
 
 
 // -------------------------------------------------------------------------------------------------
 // CMediaClientVideoDisplay::RemoveSurface()
 // -------------------------------------------------------------------------------------------------
 //
-void CMediaClientVideoDisplay::SetVideoExtentL(const RWindowBase& /*aWindow*/, 
-	                                             const TRect& /*aVideoExtent*/, 
+void CMediaClientVideoDisplay::SetVideoExtentL(const RWindowBase& /*aWindow*/,
+	                                             const TRect& aVideoExtent,
 	                                             const TRect& /*aCropRegion*/)
 {
-}	
-	
-	
+    iVideoExtent = aVideoExtent;
+}
+
+
 // -------------------------------------------------------------------------------------------------
 // CMediaClientVideoDisplay::RemoveSurface()
 // -------------------------------------------------------------------------------------------------
 //
-void CMediaClientVideoDisplay::SetAutoScaleL(TAutoScaleType /*aScaleType*/, 
-	                                           TInt /*aHorizPos*/, 
-	                                           TInt /*aVertPos*/, 
+void CMediaClientVideoDisplay::SetAutoScaleL(TAutoScaleType /*aScaleType*/,
+	                                           TInt /*aHorizPos*/,
+	                                           TInt /*aVertPos*/,
 	                                           const TRect& /*aCropRegion*/)
 {
-}	
-	
-	
+}
+
 // EOF
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/mpxvideoviewwrapper.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/mpxvideoviewwrapper.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 7 %
+// Version : %version: 8 %
 
 
 
@@ -131,7 +131,6 @@
 
 }
 
-
 // -------------------------------------------------------------------------------------------------
 //   CMPXVideoViewWrapper::ActivateClosePlayerActiveObject
 // -------------------------------------------------------------------------------------------------
@@ -253,4 +252,13 @@
     iAttatched = aAttached;
 }
 
+// -------------------------------------------------------------------------------------------------
+//   CMPXVideoViewWrapper::SetDefaultAspectRatio()
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoViewWrapper::SetDefaultAspectRatio( int aspectRatio )
+{
+    iAspectRatio = aspectRatio;
+}
+
 // EOF
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/videoplaybackviewfiledetails.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/stub/src/videoplaybackviewfiledetails.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  4 %
+// Version : %version:  5 %
 
 
 
@@ -43,17 +43,17 @@
 {
     MPX_ENTER_EXIT(_L("VideoPlaybackViewFileDetails::ClearFileDetails()"));
 
-    mMimeType = tr("");  
+    mMimeType = tr("");
     mTitle = tr("");
     mArtist = tr("");
-    mDescription = tr("");  
+    mDescription = tr("");
     mLocation = tr("");
     mCopyright = tr("");
     mLanguage = tr("");
     mKeywords = tr("");
 
     mClipName = QString("testClip.3gp");
-    
+
     mPlaybackMode = EMPXVideoLocal;
     mSeekable = false;
     mPausableStream = false;
@@ -61,6 +61,7 @@
     mVideoEnabled = false;
     mPartialPlayback = false;
     mRNFormat = false;
+    mAspectRatioChangeable = false;
 
     mDuration = 0;
     mTvOutConnected   = false;
--- a/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/testvideodisplayhandler.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideodisplayhandler/testvideodisplayhandler.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -14,7 +14,7 @@
 # Description: Project file for building Videoplayer components
 #
 #
-# Version : %version: 6 %
+# Version : %version: 7 %
 
 TEMPLATE = app
 TARGET = testvideodisplayhandler
@@ -23,13 +23,12 @@
 
 DEPENDPATH += inc src stub/inc stub/src
 
-INCLUDEPATH += ../../../inc \
-               ../../../../inc \
-               ../../controlinc \
-               $$MW_LAYER_SYSTEMINCLUDE 
+INCLUDEPATH = hbstub
+INCLUDEPATH += stub/inc \
+               ../../../inc \
+               ../../../../inc
 
-LIBS += -lmpxplaybackutility.dll \
-        -lmpxcommon.dll \
+LIBS += -lmpxcommon.dll \
         -lestor.dll \
         -lsysutil.dll \
         -lcone.dll \
--- a/videoplayback/videoplaybackview/tsrc/testvideoplaybackview/src/testvideoplaybackview.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideoplaybackview/src/testvideoplaybackview.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#16 %
+// Version : %version: 17 %
 
 #include <e32err.h>
 #include <w32std.h>
@@ -171,7 +171,7 @@
     // construct and activate playback view
     //
     setup();
-    
+
     HbMessageBox::mMessageBConstructCount = 0;
     HbNotificationDialog::mNotifConstructCount = 0;
     //
@@ -183,7 +183,7 @@
     // test showDialog() method using default arguments
     //
     mVideoView->showDialog( "test error msg" );
-    
+
     QVERIFY(HbMessageBox::mMessageBConstructCount == 1);
     QVERIFY(HbNotificationDialog::mNotifConstructCount == 0);
     QVERIFY( mVideoView->mTimerForClosingView->isActive() );
@@ -192,35 +192,35 @@
     HbMessageBox::mMessageBConstructCount = 0;
     HbNotificationDialog::mNotifConstructCount = 0;
     mVideoView->mTimerForClosingView->stop();
-    
+
     //
-    // test showDialog() method, error, no closing 
+    // test showDialog() method, error, no closing
     //
     mVideoView->showDialog( "test error msg", false );
-    
+
     QVERIFY(HbMessageBox::mMessageBConstructCount == 1);
     QVERIFY(HbNotificationDialog::mNotifConstructCount == 0);
     QVERIFY( !mVideoView->mTimerForClosingView->isActive() );
-    
+
     HbMessageBox::mMessageBConstructCount = 0;
     HbNotificationDialog::mNotifConstructCount = 0;
-    
+
     //
-    // test showDialog() method, nofitification, closing 
+    // test showDialog() method, nofitification, closing
     //
     mVideoView->showDialog( "test error msg", true, false );
-    
+
     QVERIFY(HbMessageBox::mMessageBConstructCount == 0);
     QVERIFY(HbNotificationDialog::mNotifConstructCount == 1);
     QVERIFY( mVideoView->mTimerForClosingView->isActive() );
-    
+
     mVideoView->handleActivateView();
     HbMessageBox::mMessageBConstructCount = 0;
     HbNotificationDialog::mNotifConstructCount = 0;
     mVideoView->mTimerForClosingView->stop();
-    
+
     //
-    // test showDialog() method, nofitification, not closing 
+    // test showDialog() method, nofitification, not closing
     //
     mVideoView->showDialog( "test error msg", false, false );
 
@@ -228,7 +228,7 @@
     QVERIFY(HbNotificationDialog::mNotifConstructCount == 1);
     QVERIFY( !mVideoView->mTimerForClosingView->isActive() );
 
-    
+
     //
     // destruct playback view
     //
@@ -622,20 +622,34 @@
     QCOMPARE( spy1.count(), 0 );
 
     //
-    // Test pan gesture with GestureFinished
+    // 1. Test pan gesture with GestureFinished
     //
     panGesture->mState = Qt::GestureFinished;
-    panGesture->mSceneDelta = QPointF( 5, 0 );
+    panGesture->mSceneVelocity = QPointF( 5, 0 );
+    panGesture->mSceneOffset = QPointF( 205, 0 );
     mVideoView->gestureEvent( event );
 
     //
     // ensure signal has been emitted
     //
     QCOMPARE( spy1.count(), 1 );
+
+    //
+    // 2. Test pan gesture with GestureFinished
+    //
+    panGesture->mSceneVelocity = QPointF( 5, 0 );
+    panGesture->mSceneOffset = QPointF( 105, 0 );
+    mVideoView->gestureEvent( event );
+
+    //
+    // ensure signal has not been emitted
+    //
+    QCOMPARE( spy1.count(), 1 );
+
     spy1.clear();
 
     //
-    // Test pan gesture with GestureFinished
+    // 3. Test pan gesture with GestureFinished
     //
 
     //
@@ -649,7 +663,20 @@
     QCOMPARE( spy2.count(), 0 );
 
     panGesture->mState = Qt::GestureFinished;
-    panGesture->mSceneDelta = QPointF( -5, 0 );
+    panGesture->mSceneVelocity = QPointF( -5, 0 );
+    panGesture->mSceneOffset = QPointF( -205, 0 );
+    mVideoView->gestureEvent( event );
+
+    //
+    // ensure signal has been emitted yet
+    //
+    QCOMPARE( spy2.count(), 1 );
+
+    //
+    // 4. Test pan gesture with GestureFinished
+    //
+    panGesture->mSceneVelocity = QPointF( -5, 0 );
+    panGesture->mSceneOffset = QPointF( -105, 0 );
     mVideoView->gestureEvent( event );
 
     //
--- a/videoplayback/videoplaybackview/tsrc/testvideoplaybackview/stub/inc/hbpangesture.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideoplaybackview/stub/inc/hbpangesture.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:   1 %
+// Version : %version:   2 %
 
 
 
@@ -33,10 +33,14 @@
         virtual ~HbPanGesture();
         Qt::GestureState state(){ return mState; }
         QPointF sceneDelta();
+        QPointF sceneVelocity();
+        QPointF sceneOffset();
 
     public:
         Qt::GestureState mState;
         QPointF mSceneDelta;
+        QPointF mSceneVelocity;
+        QPointF mSceneOffset;
 };
 
 #endif /*HBPANGESTURE_H_*/
--- a/videoplayback/videoplaybackview/tsrc/testvideoplaybackview/stub/src/hbpangesture.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/tsrc/testvideoplaybackview/stub/src/hbpangesture.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:   1 %
+// Version : %version:   2 %
 
 
 
@@ -52,4 +52,26 @@
     return mSceneDelta;
 }
 
+// -------------------------------------------------------------------------------------------------
+// HbPanGesture::sceneVelocity
+// -------------------------------------------------------------------------------------------------
+//
+QPointF HbPanGesture::sceneVelocity()
+{
+    MPX_DEBUG(_L("HbPanGesture::sceneVelocity") );
+
+    return mSceneVelocity;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbPanGesture::sceneOffset
+// -------------------------------------------------------------------------------------------------
+//
+QPointF HbPanGesture::sceneOffset()
+{
+    MPX_DEBUG(_L("HbPanGesture::sceneOffset") );
+
+    return mSceneOffset;
+}
+
 // End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/inc/testvolumecontrol.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,73 @@
+/**
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   tester for methods in TestVolumeControl
+*
+*/
+
+// Version : %version:  1 %
+
+#ifndef __TESTVOLUMECONTROL_H__
+#define __TESTVOLUMECONTROL_H__
+
+
+// INCLUDES
+#include <QtTest/QtTest>
+
+class VideoPlaybackVolumeControl;
+class VideoPlaybackControlsController;
+
+class TestVolumeControl : public QObject
+{
+    Q_OBJECT
+
+    public:
+
+        /**
+         * will be called before each testfunction is executed.
+         *
+         */
+        void init();
+
+        void setup();
+
+        /**
+         * will be called after every testfunction.
+         *
+         */
+        void cleanup();
+
+    // test functions for the test framework
+    private slots:
+        void testVolumeChanged();
+        void testSetVisible();
+        void testIsVisible();
+        void testHandleSliderValueChanged();
+        void testHandleMuteIconClicked();
+        void testHandleSliderPressed();
+        void testHandleSliderReleased();
+        void testHandleDraggingTimerTimeOut();
+
+    signals:
+        void commandSignal();
+        void commandSignal( int );
+
+    private:
+        VideoPlaybackVolumeControl*       mVolumeControl;
+        VideoPlaybackControlsController*  mController;
+};
+
+
+#endif  // __TESTVOLUMECONTROL_H__
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/src/testvolumecontrol.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,398 @@
+/**
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   tester for methods in TestVolumeControl
+*
+*/
+
+// Version : %version:  1 %
+
+
+#include <qdebug>
+#include <QTimer>
+#include <hbmainwindow.h>
+#include <hbapplication.h>
+#include <qgraphicssceneevent>
+#include <hbvolumesliderpopup.h>
+
+
+#include "testvolumecontrol.h"
+#include "videoplaybackviewfiledetails.h"
+#include "videoplaybackcontrolscontroller.h"
+
+#define private public
+#include "videoplaybackvolumecontrol.h"
+#undef private
+
+// -------------------------------------------------------------------------------------------------
+// main
+// -------------------------------------------------------------------------------------------------
+//
+int main(int argc, char *argv[])
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::Main()"));
+
+    HbApplication app(argc, argv);
+    HbMainWindow window;
+
+    TestVolumeControl tv;
+
+    char *pass[3];
+    pass[0] = argv[0];
+    pass[1] = "-o";
+    pass[2] = "c:\\data\\testvolumecontrol.txt";
+
+    int res = QTest::qExec(&tv, 3, pass);
+
+    return res;
+}
+
+// -------------------------------------------------------------------------------------------------
+// init
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::init()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::init()"));
+
+    mController = new VideoPlaybackControlsController();
+    mVolumeControl = new VideoPlaybackVolumeControl( mController );
+}
+
+// -------------------------------------------------------------------------------------------------
+// init
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::setup()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::init()"));
+
+    init();
+    mController->mVolumeSteps = 10;
+    mController->fileDetails()->mAudioEnabled = true;
+    mVolumeControl->setVisible( true );
+}
+
+// -------------------------------------------------------------------------------------------------
+// cleanup
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::cleanup()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::cleanup()"));
+
+    if ( mController )
+    {
+        delete mController;
+        mController = NULL;
+    }
+
+    if ( mVolumeControl )
+    {
+        delete mVolumeControl;
+        mVolumeControl = NULL;
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+// testVolumeChanged
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testVolumeChanged()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testVolumeChanged()"));
+
+    setup();
+
+    int changedVolume = 3;
+    int currentVolume = 5;
+    mVolumeControl->mVolume = 5;
+
+    //
+    // If mExpectedVolList is not empty
+    //
+    mVolumeControl->mExpectedVolList.append( changedVolume );
+    mVolumeControl->volumeChanged( changedVolume );
+
+    QVERIFY( mVolumeControl->mVolume == currentVolume );
+
+    //
+    // If mExpectedVolList is empty
+    //
+    mVolumeControl->mExpectedVolList.clear();
+
+    //
+    // If user is dragging the thumb, we don't update volume
+    //
+    mVolumeControl->mDragging = true;
+
+    mVolumeControl->volumeChanged( changedVolume );
+
+    QVERIFY( mVolumeControl->mVolume == currentVolume );
+    QVERIFY( mVolumeControl->mVolumePopup->isVisible() );
+
+    //
+    // If user isn't dragging the thumb, we update volume
+    //
+    mVolumeControl->mDragging = false;
+
+    mVolumeControl->volumeChanged( changedVolume );
+
+    QVERIFY( mVolumeControl->mVolume == changedVolume );
+    QVERIFY( mVolumeControl->mVolumePopup->isVisible() );
+
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// testSetVisible
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testSetVisible()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testSetVisible()"));
+
+    init();
+
+    //
+    // Audio + video clip
+    //
+    mController->mVolumeSteps = 30;
+    mController->fileDetails()->mAudioEnabled = true;
+
+    bool visible = true;
+
+    mVolumeControl->setVisible( visible );
+
+    QVERIFY( mVolumeControl->mVolumePopup->isVisible() == visible );
+    QVERIFY( mVolumeControl->mVolumePopup->mMin == 0 );
+    QVERIFY( mVolumeControl->mVolumePopup->mMax ==  mController->mVolumeSteps );
+    QVERIFY( mVolumeControl->mDraggingHandlerTimer );
+
+    cleanup();
+
+    //
+    // Audio only
+    //
+    init();
+
+    mController->fileDetails()->mAudioEnabled = false;
+
+    mVolumeControl->setVisible( visible );
+
+    QVERIFY( mVolumeControl->mVolumePopup->isVisible() == visible );
+    QVERIFY( ! mVolumeControl->mVolumePopup->isEnabled() );
+    QVERIFY( ! mVolumeControl->mDraggingHandlerTimer );
+
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// testIsVisible
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testIsVisible()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testIsVisible()"));
+
+    setup();
+
+    bool visible = true;
+    mVolumeControl->mVolumePopup->mVisible = visible;
+
+    QVERIFY( mVolumeControl->mVolumePopup->isVisible() == visible );
+
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// testHandleSliderValueChanged
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testHandleSliderValueChanged()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testHandleSliderValueChanged()"));
+
+    setup();
+
+    int changedValue = 3;
+    mVolumeControl->mVolume = 5;
+
+    connect( this, SIGNAL( commandSignal( int ) ), mVolumeControl, SLOT( handleSliderValueChanged( int ) ) );
+
+    //
+    // If mDragging is ture
+    //
+    mVolumeControl->mDragging = true;
+    emit commandSignal( changedValue );
+
+    QVERIFY( mVolumeControl->mDraggingVolume == changedValue * mVolumeControl->mVolumeNormalizer );
+
+    //
+    // If mDragging is false
+    //
+    mVolumeControl->mDragging = false;
+    emit commandSignal( changedValue );
+
+    QVERIFY( mVolumeControl->mVolume == changedValue * mVolumeControl->mVolumeNormalizer );
+    QVERIFY( mController->mCommand == EMPXPbvCmdSetVolume );
+    QVERIFY( mController->mValue == changedValue * mVolumeControl->mVolumeNormalizer );
+
+    disconnect( this, SIGNAL( commandSignal( int ) ), mVolumeControl, SLOT( handleSliderValueChanged( int ) ) );
+
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// testHandleMuteIconClicked
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testHandleMuteIconClicked()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testHandleMuteIconClicked()"));
+
+    setup();
+
+    connect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleMuteIconClicked() ) );
+
+    //
+    // mVolumePopup->value() is not 0
+    //
+    mVolumeControl->mVolumePopup->mValue = 5;
+
+    emit commandSignal();
+
+    QVERIFY( mController->mCommand == EMPXPbvCmdUnMute );
+
+    //
+    // mVolumePopup->value() is 0
+    //
+    mVolumeControl->mVolumePopup->mValue = 0;
+    mVolumeControl->mMutedByMuteIcon = false;
+
+    emit commandSignal();
+
+    QVERIFY( mVolumeControl->mMutedByMuteIcon );
+    QVERIFY( mController->mCommand == EMPXPbvCmdMute );
+
+    disconnect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleMuteIconClicked() ) );
+
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// testHandleSliderPressed
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testHandleSliderPressed()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testHandleSliderPressed()"));
+
+    setup();
+
+    connect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleSliderPressed() ) );
+
+    mVolumeControl->mDragging = false;
+    mVolumeControl->mDraggingHandlerTimer->start();
+
+    emit commandSignal();
+
+    QVERIFY( mVolumeControl->mDragging );
+    QVERIFY( mVolumeControl->mDraggingHandlerTimer->isActive() );
+
+    disconnect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleSliderPressed() ) );
+
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// testHandleSliderReleased
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testHandleSliderReleased()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testHandleSliderReleased()"));
+
+    setup();
+
+    connect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleSliderReleased() ) );
+
+    mVolumeControl->mDragging = true;
+    mVolumeControl->mDraggingVolume = 3;
+    mVolumeControl->mVolume = 5;
+
+    emit commandSignal();
+
+    QVERIFY( ! mVolumeControl->mDragging );
+    QVERIFY( ! mVolumeControl->mDraggingHandlerTimer->isActive() );
+    QVERIFY( mVolumeControl->mVolume == mVolumeControl->mDraggingVolume );
+    QVERIFY( mController->mCommand == EMPXPbvCmdSetVolume );
+    QVERIFY( mController->mValue == mVolumeControl->mDraggingVolume );
+
+    disconnect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleSliderReleased() ) );
+
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// testHandleDraggingTimerTimeOut
+// -------------------------------------------------------------------------------------------------
+//
+void TestVolumeControl::testHandleDraggingTimerTimeOut()
+{
+    MPX_ENTER_EXIT(_L("TestVolumeControl::testHandleDraggingTimerTimeOut()"));
+
+    setup();
+
+    connect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleDraggingTimerTimeOut() ) );
+
+    //
+    // mDragging is false
+    //
+    mVolumeControl->mDragging = false;
+    mVolumeControl->mVolume = 6;
+    mVolumeControl->mDraggingVolume = 10;
+
+    emit commandSignal();
+
+    QVERIFY( mVolumeControl->mVolume != mVolumeControl->mDraggingVolume );
+
+    //
+    // mDragging is true
+    //
+    mVolumeControl->mDragging = true;
+
+    emit commandSignal();
+
+    QVERIFY( mVolumeControl->mVolume == mVolumeControl->mDraggingVolume );
+    QVERIFY( mController->mCommand == EMPXPbvCmdSetVolume );
+    QVERIFY( mController->mValue == mVolumeControl->mVolume );
+
+
+    //
+    // mDragging is true && vol == 0 && mMutedByMuteIcon is true
+    //
+    mVolumeControl->mDragging = true;
+    mVolumeControl->mDraggingVolume = 0;
+    mVolumeControl->mMutedByMuteIcon = true;
+
+    emit commandSignal();
+
+    QVERIFY( ! mVolumeControl->mMutedByMuteIcon );
+
+    disconnect( this, SIGNAL( commandSignal() ), mVolumeControl, SLOT( handleDraggingTimerTimeOut() ) );
+
+    cleanup();
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/inc/hbvolumesliderpopup.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of HbVolumeSliderPopup
+*
+*/
+
+// Version : %version:   1 %
+
+
+
+#ifndef HBVOLUMESLIDERPOPUP_H
+#define HBVOLUMESLIDERPOPUP_H
+
+#include <hbwidget.h>
+
+
+class HbVolumeSliderPopup : public HbWidget
+{
+    Q_OBJECT
+
+    public:
+        HbVolumeSliderPopup();
+        virtual ~HbVolumeSliderPopup();
+
+    public:
+        void setEnabled( bool enabled );
+        void setVisible( bool visible );
+        bool isEnabled();
+        bool isVisible();
+        void setValue( int value );
+        void setTimeout( int timeout );
+        void setTickPosition( Hb::SliderTickPositions position );
+        void setRange( int min, int max );
+        int value();
+        void setSingleStep( int steps );
+
+    signals:
+        void valueChanged( int );
+        void iconClicked();
+        void sliderPressed();
+        void sliderReleased();
+
+    public:
+        bool mVisible;
+        bool mEnabled;
+        int  mValue;
+        int  mTimeOut;
+        int  mMin;
+        int  mMax;
+        int  mSteps;
+
+        Hb::SliderTickPositions mPosition;
+};
+
+#endif /*HBVOLUMESLIDERPOPUP_H*/
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/inc/videoplaybackcontrolscontroller.h	Tue Oct 05 09:26:49 2010 +0300
@@ -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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of VideoPlaybackControlsController
+*
+*/
+
+// Version : %version: 1 %
+
+
+
+#ifndef VIDEOPLAYBACKCONTROLSCONTROLLER_H_
+#define VIDEOPLAYBACKCONTROLSCONTROLLER_H_
+
+// INCLUDES
+#include <qobject>
+
+#include <mpxplaybackframeworkdefs.h>
+
+#include "mpxvideo_debug.h"
+#include "videoplaybackcontrol.hrh"
+#include "mpxcommonvideoplaybackview.hrh"
+#include "videoplaybackviewfiledetails.h"
+
+// FORWARD DECLARATIONS
+class VideoPlaybackControlsController;
+
+
+// DATA TYPES
+
+enum TTimerAction
+{
+    ETimerCancel,
+    ETimerReset
+};
+
+enum TPlaybackViewMode
+{
+    EFullScreenView,
+    EDetailsView,
+    EAudioOnlyView
+};
+
+const int KControlsTimeOut = 4000;
+
+// CLASS DECLARATION
+
+class VideoPlaybackControlsController : public QObject
+{
+    Q_OBJECT
+
+    public:
+
+        /**
+        * constructor.
+        */
+        VideoPlaybackControlsController();
+
+        /**
+        * Destructor.
+        */
+        virtual ~VideoPlaybackControlsController();
+
+    public:
+        /**
+        * Initialize controller
+        */
+        void initializeController();
+
+        /**
+        * Command handling function.
+        * Call HandleCommandL() of container
+        */
+        void handleCommand( TMPXVideoPlaybackViewCommandIds command, int value = 0 );
+
+        /**
+        * Reset or cancel timers for the controls
+        */
+        void resetDisappearingTimers( TTimerAction timerAction );
+
+        /**
+        * Return state
+        */
+        inline TMPXPlaybackState state();
+
+        /**
+        * Return file details
+        */
+        inline VideoPlaybackViewFileDetails* fileDetails();
+
+        TPlaybackViewMode viewMode();
+
+        inline int volumeSteps();
+
+    public:
+        VideoPlaybackViewFileDetails    *mFileDetails;
+        TMPXPlaybackState               mState;
+        TPlaybackViewMode               mViewMode;
+        TTimerAction                    mTimerAction;
+        TMPXVideoPlaybackViewCommandIds mCommand;
+        int                             mValue;
+        int                             mVolumeSteps;
+};
+
+// INLINE METHODS
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackControlsController::state
+// -------------------------------------------------------------------------------------------------
+//
+inline
+TMPXPlaybackState VideoPlaybackControlsController::state()
+{
+    return mState;
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackControlsController::fileDetails
+// -------------------------------------------------------------------------------------------------
+//
+inline
+VideoPlaybackViewFileDetails* VideoPlaybackControlsController::fileDetails()
+{
+    return mFileDetails;
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackControlsController::volumeSteps
+// -------------------------------------------------------------------------------------------------
+//
+inline
+int VideoPlaybackControlsController::volumeSteps()
+{
+    return mVolumeSteps;
+}
+
+#endif /*VIDEOPLAYBACKCONTROLSCONTROLLER_P_H_*/
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/inc/videoplaybackviewfiledetails.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Video File Details (QT)
+*
+*/
+
+// Version : %version:  1 %
+
+
+
+
+#ifndef __VIDEOPLAYBACKVIEWFILEDETAILS__
+#define __VIDEOPLAYBACKVIEWFILEDETAILS__
+
+#include <qobject.h>
+#include "mpxhelixplaybackplugindefs.h"
+
+
+// 
+//  CLASS DECLARATION
+//
+class VideoPlaybackViewFileDetails : public QObject
+{
+    public:  
+        //
+        //  Constructor
+        //
+        VideoPlaybackViewFileDetails();
+        
+        //
+        //  Destructor.
+        //
+        virtual ~VideoPlaybackViewFileDetails();
+        
+        //
+        //  Clear all file details
+        //
+        void clearFileDetails();
+
+    public:    
+        //
+        // Data
+        //
+        QString   mClipName;
+        QString   mTitle;
+        QString   mArtist;
+        QString   mMimeType;
+        QString   mDescription;
+        QString   mLocation;
+        QString   mCopyright;
+        QString   mLanguage;
+        QString   mKeywords;        
+
+        TMPXVideoMode mPlaybackMode;
+        bool          mSeekable;
+        bool          mPausableStream;
+        bool          mAudioEnabled;
+        bool          mVideoEnabled;
+        bool          mPartialPlayback;
+        bool          mRNFormat;
+        bool          mTvOutConnected;
+        bool          mDrmProtected;
+        bool          mMultiItemPlaylist;
+
+        int           mVideoHeight;
+        int           mVideoWidth;
+        int           mBitRate;
+        int           mDuration;
+};
+
+#endif      // __VIDEOPLAYBACKVIEWFILEDETAILS__  
+            
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/src/hbvolumesliderpopup.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of HbVolumeSliderPopup
+*
+*/
+
+// Version : %version:   1 %
+
+
+
+#include "mpxvideo_debug.h"
+#include "hbvolumesliderpopup.h"
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::HbVolumeSliderPopup
+// -------------------------------------------------------------------------------------------------
+//
+HbVolumeSliderPopup::HbVolumeSliderPopup()
+{
+    MPX_ENTER_EXIT(_L("HbVolumeSliderPopup::HbVolumeSliderPopup()"));
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::~HbVolumeSliderPopup
+// -------------------------------------------------------------------------------------------------
+//
+HbVolumeSliderPopup::~HbVolumeSliderPopup()
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::HbVolumeSliderPopup") );
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::setEnabled
+// -------------------------------------------------------------------------------------------------
+//
+void HbVolumeSliderPopup::setEnabled( bool enabled )
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::setEnabled %d"), enabled );
+
+    mEnabled = enabled;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::isEnabled
+// -------------------------------------------------------------------------------------------------
+//
+bool HbVolumeSliderPopup::isEnabled()
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::isEnabled %d"), mEnabled );
+
+    return mEnabled;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::setVisible
+// -------------------------------------------------------------------------------------------------
+//
+void HbVolumeSliderPopup::setVisible( bool visible )
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::setVisible %d"), visible );
+
+    mVisible = visible;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::isVisible
+// -------------------------------------------------------------------------------------------------
+//
+bool HbVolumeSliderPopup::isVisible()
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::isVisible %d"), mVisible );
+
+    return mVisible;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::setValue
+// -------------------------------------------------------------------------------------------------
+//
+void HbVolumeSliderPopup::setValue( int value )
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::setValue %d"), value );
+
+    mValue = value;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::setTimeout
+// -------------------------------------------------------------------------------------------------
+//
+void HbVolumeSliderPopup::setTimeout( int timeout )
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::setTimeout %d"), timeout );
+
+    mTimeOut = timeout;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::setTickPosition
+// -------------------------------------------------------------------------------------------------
+//
+void HbVolumeSliderPopup::setTickPosition( Hb::SliderTickPositions position )
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::setTickPosition"));
+
+    mPosition = position;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::setRange
+// -------------------------------------------------------------------------------------------------
+//
+void HbVolumeSliderPopup::setRange( int min, int max )
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::setRange"));
+
+    mMin = min;
+    mMax = max;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::value
+// -------------------------------------------------------------------------------------------------
+//
+int HbVolumeSliderPopup::value()
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::value"));
+
+    return mValue;
+}
+
+// -------------------------------------------------------------------------------------------------
+// HbVolumeSliderPopup::setSingleStep
+// -------------------------------------------------------------------------------------------------
+//
+void HbVolumeSliderPopup::setSingleStep( int steps )
+{
+    MPX_DEBUG(_L("HbVolumeSliderPopup::setSingleStep"));
+
+    mSteps = steps;
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/src/videoplaybackcontrolscontroller.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 20010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of VideoPlaybackControlsController
+*
+*/
+
+// Version : %version: 1 %
+
+
+
+// INCLUDE FILES
+
+
+#include "videoplaybackviewfiledetails.h"
+#include "videoplaybackcontrolscontroller.h"
+#include "videoplaybackcontrolconfiguration.h"
+
+
+// ================= MEMBER FUNCTIONS ==============================================================
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackControlsController::VideoPlaybackControlsController()
+// -------------------------------------------------------------------------------------------------
+//
+VideoPlaybackControlsController::VideoPlaybackControlsController()
+{
+    MPX_DEBUG(_L("VideoPlaybackControlsController::VideoPlaybackControlsController") );
+
+    initializeController();
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackControlsController::initializeController()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackControlsController::initializeController()
+{
+    MPX_DEBUG(_L("VideoPlaybackControlsController::initializeController") );
+
+    mFileDetails = new VideoPlaybackViewFileDetails();
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackControlsController::~VideoPlaybackControlsController
+// -------------------------------------------------------------------------------------------------
+//
+VideoPlaybackControlsController::~VideoPlaybackControlsController()
+{
+    MPX_DEBUG(_L("VideoPlaybackControlsController::~VideoPlaybackControlsController"));
+
+    if ( mFileDetails )
+    {
+        delete mFileDetails;
+        mFileDetails = NULL;
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoPlaybackControlsController::resetDisappearingTimers()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackControlsController::resetDisappearingTimers( TTimerAction timerAction )
+{
+    MPX_DEBUG(_L("VideoPlaybackControlsController::resetDisappearingTimers") );
+
+    mTimerAction = timerAction;
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackControlsController::handleCommand()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlaybackControlsController::handleCommand(
+        TMPXVideoPlaybackViewCommandIds command, int value )
+{
+    MPX_DEBUG(_L("VideoPlaybackControlsController::handleCommand") );
+
+    mCommand = command;
+    mValue = value;
+}
+
+// -------------------------------------------------------------------------------------------------
+//   VideoPlaybackControlsController::viewMode
+// -------------------------------------------------------------------------------------------------
+//
+TPlaybackViewMode VideoPlaybackControlsController::viewMode()
+{
+    MPX_DEBUG(_L("VideoPlaybackControlsController::viewMode") );
+
+    return mViewMode;
+}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/stub/src/videoplaybackviewfiledetails.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  class for Video File Details (Qt)
+*
+*/
+
+// Version : %version:  1 %
+
+
+
+//
+//  INCLUDE FILES
+//
+#include "mpxvideo_debug.h"
+#include "videoplaybackviewfiledetails.h"
+
+
+// ============================ MEMBER FUNCTIONS ===================================================
+
+VideoPlaybackViewFileDetails::VideoPlaybackViewFileDetails()
+{
+    MPX_ENTER_EXIT(_L("VideoPlaybackViewFileDetails::VideoPlaybackViewFileDetails()"));
+
+    clearFileDetails();
+}
+
+VideoPlaybackViewFileDetails::~VideoPlaybackViewFileDetails()
+{
+    MPX_ENTER_EXIT(_L("VideoPlaybackViewFileDetails::~VideoPlaybackViewFileDetails()"));
+
+    clearFileDetails();
+}
+
+void
+VideoPlaybackViewFileDetails::clearFileDetails()
+{
+    MPX_ENTER_EXIT(_L("VideoPlaybackViewFileDetails::ClearFileDetails()"));
+
+    mMimeType = tr("");  
+    mTitle = tr("");
+    mArtist = tr("");
+    mClipName = tr("");
+    mDescription = tr("");  
+    mLocation = tr("");
+    mCopyright = tr("");
+    mLanguage = tr("");
+    mKeywords = tr("");
+    
+    mPlaybackMode = EMPXVideoLocal;
+    mSeekable = false;
+    mPausableStream = false;
+    mAudioEnabled = false;
+    mVideoEnabled = false;
+    mPartialPlayback = false;
+    mRNFormat = false;
+
+    mDuration = 100;
+    mTvOutConnected   = false;
+    mDrmProtected = false;
+
+    mVideoHeight = 0;
+    mVideoWidth  = 0;
+    mBitRate = 0;
+}
+
+//  EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videoplaybackview/tsrc/testvolumecontrol/testvolumecontrol.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description: Project file for building testvolumecontrol
+#
+#
+# Version : %version:  1 %
+
+TEMPLATE = app
+TARGET = testvolumecontrol
+CONFIG += qtestlib qt hb
+
+INCLUDEPATH += stub/inc \
+               ../../../../inc \
+               ../../../inc
+
+
+DEPENDPATH += stub/inc stub/src inc src 
+                
+# Input
+HEADERS += testvolumecontrol.h \
+           videoplaybackcontrolscontroller.h \
+           videoplaybackviewfiledetails.h \
+           hbvolumesliderpopup.h \
+           ../../controlinc/videoplaybackvolumecontrol.h
+  
+SOURCES += testvolumecontrol.cpp \
+           videoplaybackcontrolscontroller.cpp \
+           videoplaybackviewfiledetails.cpp \
+           hbvolumesliderpopup.cpp \
+           ../../controlsrc/videoplaybackvolumecontrol.cpp
--- a/videoplayback/videoplaybackview/videoplaybackview.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/videoplaybackview.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -14,7 +14,7 @@
 # Description: Project file for building Videoplayer components
 #
 #
-# Version : %version: 34 %
+# Version : %version: da1mmcf#35 %
 
 
 TEMPLATE = lib
@@ -60,7 +60,8 @@
         -lefsrv.dll \
         -lws32.dll \
         -lgdi.dll \
-        -lshareui.dll 
+        -lshareui.dll \
+        -lplaybackhelper.dll
 
 DEPENDPATH += ../inc inc viewinc controlinc
 VPATH += viewsrc controlsrc
@@ -83,7 +84,8 @@
            videoplaybackfiledetailswidget.h \
            videoplaybackuserinputhandler.h \
            videoplaybackdetailsplaybackwindow.h \
-           videocontainer.h
+           videocontainer.h \
+           videoplaybackvolumecontrol.h
 
 SOURCES += videobaseplaybackview.cpp \
            videoplaybackview.cpp \
@@ -102,7 +104,8 @@
            videoplaybackfiledetailswidget.cpp \
            videoplaybackuserinputhandler.cpp \
            videoplaybackdetailsplaybackwindow.cpp \
-           videocontainer.cpp
+           videocontainer.cpp \
+           videoplaybackvolumecontrol.cpp
 
 DOCML += resources/videoplaybackview.docml
 
--- a/videoplayback/videoplaybackview/viewinc/mpxvideoviewwrapper.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/viewinc/mpxvideoviewwrapper.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  da1mmcf#25 %
+// Version : %version:  da1mmcf#29 %
 
 
 
@@ -216,6 +216,10 @@
 
         void Deactivate();
 
+        int VolumeSteps();
+
+        void SetDefaultAspectRatio( TInt aspectRatio );
+
     private:
 
         /**
@@ -268,6 +272,8 @@
 
         TInt GetMediaId();
 
+        void InitializeFileDetails();
+
     protected: // data
         MMPXPlaybackUtility*                 iPlaybackUtility;
         MMPXCollectionUtility*               iCollectionUtility;
--- a/videoplayback/videoplaybackview/viewinc/videoplaybackdisplayhandler.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/viewinc/videoplaybackdisplayhandler.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  12 %
+// Version : %version:  14 %
 
 
 #ifndef __VIDEOPLAYBACKDISPLAYHANDLER_H__
@@ -29,11 +29,10 @@
 #include <mediaclientvideodisplay.h>
 
 
-// 
+//
 //  CLASS DECLARATION
 //
 class CVideoContainer;
-class MMPXPlaybackUtility;
 class CMPXVideoViewWrapper;
 class VideoPlaybackViewFileDetails;
 
@@ -52,39 +51,37 @@
         TReal32         screenRatio;
         TMMFScalingType scalingType;
     } TMPXAspectRatio ;
-    
+
     public:
 
         ~CVideoPlaybackDisplayHandler();
 
-        static CVideoPlaybackDisplayHandler* NewL( MMPXPlaybackUtility* aPlayUtil,
-                                                   CMPXVideoViewWrapper* aViewWrapper );
+        static CVideoPlaybackDisplayHandler* NewL( CMPXVideoViewWrapper* aViewWrapper );
 
         void CreateDisplayWindowL( RWsSession& aWs,
                                    CWsScreenDevice& aScreenDevice,
                                    RWindow& aWin,
-                                   TRect aDisplayRect );
+                                   TRect aDisplayRect,
+                                   VideoPlaybackViewFileDetails* aFileDetails );
 
         void RemoveDisplayWindow();
 
         void HandleVideoDisplayMessageL( CMPXMessage* aMessage );
 
         TInt SetAspectRatioL( TMPXVideoPlaybackCommand aCmd );
-        
-        TInt SetDefaultAspectRatioL( VideoPlaybackViewFileDetails* aFileDetails, 
-                                     TReal32 aDisplayAspectRatio );
+
+        TInt CalculateAspectRatioL();
 
         void UpdateVideoRectL( TRect aRect, TBool transitionEffect );
 
     private:
 
-        CVideoPlaybackDisplayHandler( MMPXPlaybackUtility* aPlayUtil,
-                                      CMPXVideoViewWrapper* aViewWrapper );
+        CVideoPlaybackDisplayHandler( CMPXVideoViewWrapper* aViewWrapper );
 
         void ConstructL();
-        
+
         void LoadAspectRatioL();
-        
+
         void SaveAspectRatioL();
 
         void SetVideoRectL( TRect aClipRect );
@@ -102,13 +99,12 @@
         void SurfaceChangedL( CMPXMessage* aMessage );
         void SurfaceRemoved();
         TInt SetNgaAspectRatioL( TMPXVideoPlaybackCommand aCmd );
+        TBool IsAspectRatioEqual( TReal32 aRatio1, TReal32 aRatio2 );
 
     private:
-        MMPXPlaybackUtility*                iPlaybackUtility;
-
         RArray<TMPXAspectRatio>             iAspectRatioArray;
         TInt                                iCurrentIndexForAspectRatio;
-        TReal                               iDisplayAspectRatio;
+        TReal32                             iDisplayAspectRatio;
 
         TRect                               iWindowRect;
 
@@ -136,6 +132,7 @@
         TVideoRotation                      iRotation;
         TAutoScaleType                      iAutoScale;
         CVideoContainer*                    iVideoContainer;
+        VideoPlaybackViewFileDetails*       iFileDetails;
 };
 
 #endif // __VIDEOPLAYBACKDISPLAYHANDLER_H__
--- a/videoplayback/videoplaybackview/viewsrc/mpxvideoviewwrapper.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/viewsrc/mpxvideoviewwrapper.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: da1mmcf#48 %
+// Version : %version: da1mmcf#52 %
 
 
 
@@ -23,6 +23,7 @@
 
 #include <w32std.h>
 #include <eikenv.h>
+#include <devsoundif.h>
 
 #include <mpxplaybackcommanddefs.h>
 #include <mpxvideoplaybackdefs.h>
@@ -127,7 +128,7 @@
     //
     //  Create Video Playback Display Handler
     //
-    iDisplayHandler = CVideoPlaybackDisplayHandler::NewL( iPlaybackUtility, this );
+    iDisplayHandler = CVideoPlaybackDisplayHandler::NewL( this );
 
     //
     // Create control's controller
@@ -656,10 +657,7 @@
                         iMediaRequestStatus = MediaNotRequested;
                         HandleCommandL( EMPXPbvCmdResetControls );
 
-                        if ( iFileDetails )
-                        {
-                            iFileDetails->clearFileDetails();
-                        }
+                        InitializeFileDetails();
                     }
                 }
                 break;
@@ -952,7 +950,6 @@
     {
         iFileDetails->mModificationTime = aMedia.ValueTObjectL<TInt>( KMPXMediaVideoLastModified );
     }
-
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -1293,7 +1290,7 @@
                    _L("aViewForeground = %d, aAppForegournd = %d"), aViewForeground, aAppForegournd );
 
     iUserInputHandler->SetForeground( aAppForegournd );
-    
+
     TMPXVideoPlaybackCommand videoCmd = EPbCmdHandleBackground;
     TVideoPlaybackControlCommandIds controlsCmd = EControlCmdHandleBackgroundEvent;
 
@@ -1328,38 +1325,7 @@
 {
     MPX_ENTER_EXIT(_L("CMPXVideoViewWrapper::CreateControlsL()"));
 
-    //
-    //  Query playback plugin for filename and mode
-    //
-    CMPXCommand* cmd = CMPXCommand::NewL();
-    CleanupStack::PushL( cmd );
-
-    RetrieveFileNameAndModeL( cmd );
-
-    //
-    //  Create a temporary file details that is populated with the
-    //  file name and playback mode.  This will be delete when
-    //  plugin initialization is complete
-    //
-    if ( iFileDetails )
-    {
-        delete iFileDetails;
-        iFileDetails = NULL;
-    }
-
-    iFileDetails = new VideoPlaybackViewFileDetails();
-
-    TPtrC fileName( cmd->ValueText( KMPXMediaVideoPlaybackFileName ) );
-    const QString qFilename( (QChar*)fileName.Ptr(), fileName.Length() );
-    iFileDetails->mClipName = qFilename;
-
-    iFileDetails->mPlaybackMode = (TMPXVideoMode) cmd->ValueTObjectL<TInt>( KMPXMediaVideoMode );
-
-    iFileDetails->mTvOutConnected   = cmd->ValueTObjectL<TInt>( KMPXMediaVideoTvOutConnected );
-
-    TPtrC mimeType( cmd->ValueText( KMPXMediaVideoRecognizedMimeType ) );
-    const QString qMimeType( (QChar*)mimeType.Ptr(), mimeType.Length() );
-    iFileDetails->mMimeType = qMimeType;
+    InitializeFileDetails();
 
     //
     // get playlist information and set mMultiItemPlaylist flag
@@ -1383,8 +1349,6 @@
 
     iFileDetails->mMultiItemPlaylist = ( numItems > 1 );
 
-    CleanupStack::PopAndDestroy( cmd );
-
     if ( iControlsController )
     {
         delete iControlsController;
@@ -1465,31 +1429,13 @@
             TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) );
 
             //
-            // get window aspect ratio
-            //   if device is in landscape mode, width > height
-            //   if device is in portrait mode, width < height
-            //
-            TReal32 width = (TReal32) displayRect.Width();
-            TReal32 height = (TReal32) displayRect.Height();
-            TReal32 displayAspectRatio = (width > height)? (width / height) : (height / width);
-
-            //
-            // get new aspect ratio
-            TInt newAspectRatio =
-                iDisplayHandler->SetDefaultAspectRatioL( iFileDetails, displayAspectRatio );
-
-            //
             //  Setup the display window and issue play command
             //
             iDisplayHandler->CreateDisplayWindowL( CCoeEnv::Static()->WsSession(),
                                                    *(CCoeEnv::Static()->ScreenDevice()),
                                                    *window,
-                                                   displayRect );
-
-            if ( iControlsController )
-            {
-                iControlsController->handleEvent( EControlCmdSetAspectRatio, newAspectRatio );
-            }
+                                                   displayRect,
+                                                   iFileDetails );
         }
 
         // if coming back after a forced termination, the playback position must
@@ -1687,4 +1633,80 @@
     iControlsController->handleEvent( event );
 }
 
+// -------------------------------------------------------------------------------------------------
+//   CMPXVideoViewWrapper::VolumeSteps()
+// -------------------------------------------------------------------------------------------------
+//
+int CMPXVideoViewWrapper::VolumeSteps()
+{
+    int volumeSteps = 0;
+
+    TRAP_IGNORE( {
+        CDevSoundIf* devSoundIf = CDevSoundIf::NewL();
+        volumeSteps = devSoundIf->GetNumberOfVolumeSteps();
+        delete devSoundIf;
+    } );
+
+    MPX_DEBUG(_L("CMPXVideoViewWrapper::VolumeSteps() volumeSteps = %d"), volumeSteps);
+
+    return volumeSteps;
+}
+
+// -------------------------------------------------------------------------------------------------
+//   CMPXVideoViewWrapper::InitializeFileDetails()
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoViewWrapper::InitializeFileDetails()
+{
+    MPX_DEBUG(_L("CMPXVideoViewWrapper::InitializeFileDetails()"));
+
+    CMPXCommand* cmd = CMPXCommand::NewL();
+    CleanupStack::PushL( cmd );
+
+    RetrieveFileNameAndModeL( cmd );
+
+    //
+    //  Create a temporary file details that is populated with the
+    //  file name and playback mode.  This will be deleted when
+    //  plugin initialization is complete
+    //
+    if ( !iFileDetails )
+    {
+        iFileDetails = new VideoPlaybackViewFileDetails();
+    }
+    else
+    {
+        iFileDetails->clearFileDetails();
+    }
+
+    TPtrC fileName( cmd->ValueText( KMPXMediaVideoPlaybackFileName ) );
+    const QString qFilename( (QChar*)fileName.Ptr(), fileName.Length() );
+    iFileDetails->mClipName = qFilename;
+
+    iFileDetails->mPlaybackMode = (TMPXVideoMode) cmd->ValueTObjectL<TInt>( KMPXMediaVideoMode );
+    MPX_DEBUG(_L("CMPXVideoViewWrapper::InitializeFileDetails() - mode %d"), iFileDetails->mPlaybackMode);
+
+    iFileDetails->mTvOutConnected   = cmd->ValueTObjectL<TInt>( KMPXMediaVideoTvOutConnected );
+
+    TPtrC mimeType( cmd->ValueText( KMPXMediaVideoRecognizedMimeType ) );
+    const QString qMimeType( (QChar*)mimeType.Ptr(), mimeType.Length() );
+    iFileDetails->mMimeType = qMimeType;
+
+    CleanupStack::PopAndDestroy( cmd );
+}
+
+// -------------------------------------------------------------------------------------------------
+//   CMPXVideoViewWrapper::SetDefaultAspectRatio()
+// -------------------------------------------------------------------------------------------------
+//
+void CMPXVideoViewWrapper::SetDefaultAspectRatio( TInt aspectRatio )
+{
+    MPX_DEBUG(_L("CMPXVideoViewWrapper::SetDefaultAspectRatio() aspectRatio = %d"), aspectRatio);
+
+    if ( iControlsController )
+    {
+        iControlsController->handleEvent( EControlCmdSetAspectRatio, aspectRatio );
+    }
+}
+
 // EOF
--- a/videoplayback/videoplaybackview/viewsrc/videobaseplaybackview.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/viewsrc/videobaseplaybackview.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 49.1.2 %
+// Version : %version: da1mmcf#49.1.3 %
 
 
 
@@ -51,6 +51,7 @@
 #include "videoplaybackviewfiledetails.h"
 #include "mpxcommonvideoplaybackview.hrh"
 
+const int KPanGestureThreshold = 200;
 
 //  Member Functions
 
@@ -312,7 +313,7 @@
 
     //
     // create pop-up dialog for error notes and notifications,
-    // For error notes, HbMessageBox is used: 
+    // For error notes, HbMessageBox is used:
     //  - Note will be dismissed by using standard timeout or
     //  - If user taps anywhere on the screen.
     // For notifications, HbNotification dialog will be used.
@@ -321,15 +322,15 @@
     HbDialog *dlg = 0;
     if(isError)
     {
-        dlg = new HbMessageBox( string, HbMessageBox::MessageTypeWarning ); 
+        dlg = new HbMessageBox( string, HbMessageBox::MessageTypeWarning );
         // dialog will be closed by timeout, no buttons used
         qobject_cast<HbMessageBox*>( dlg )->setStandardButtons( HbMessageBox::NoButton );
-    } 
+    }
     else
     {
         dlg = new HbNotificationDialog();
         qobject_cast<HbNotificationDialog*>( dlg )->setTitle( string );
-    }       
+    }
     dlg->setAttribute( Qt::WA_DeleteOnClose );
     dlg->setDismissPolicy( HbPopup::TapAnywhere );
     dlg->setTimeout( HbPopup::StandardTimeout );
@@ -472,21 +473,25 @@
             emit tappedOnScreen();
         }
     }
-    else if ( HbPanGesture* gesture = static_cast<HbPanGesture*>( event->gesture( Qt::PanGesture ) ) )
+
+    if ( HbPanGesture* gesture = static_cast<HbPanGesture*>( event->gesture( Qt::PanGesture ) ) )
     {
-        if ( gesture->state() == Qt::GestureFinished && mActivated )
+        if ( mActivated && gesture->state() == Qt::GestureFinished )
         {
-            QPointF delta( gesture->sceneDelta() );
+            MPX_DEBUG(_L("VideoBasePlaybackView::gestureEvent() pan gesture finished"));
 
-            if ( delta.x() > 0 )
+            int nonZeroVelocity = (int)( gesture->sceneVelocity().x() );
+            int offset = (int)( gesture->sceneOffset().x() );
+
+            if ( offset > KPanGestureThreshold && nonZeroVelocity > 0 )
             {
-                MPX_DEBUG(_L("VideoBasePlaybackView::gestureEvent() right") );
+                MPX_DEBUG(_L("VideoBasePlaybackView::gestureEvent() pan gesture right") );
 
                 emit pannedToRight();
             }
-            else
+            else if ( offset < KPanGestureThreshold * -1.0f && nonZeroVelocity < 0 )
             {
-                MPX_DEBUG(_L("VideoBasePlaybackView::gestureEvent() left") );
+                MPX_DEBUG(_L("VideoBasePlaybackView::gestureEvent() pan gesture left") );
 
                 emit pannedToLeft();
             }
--- a/videoplayback/videoplaybackview/viewsrc/videoplaybackdisplayhandler.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/viewsrc/videoplaybackdisplayhandler.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,13 +15,12 @@
 *
 */
 
-// Version : %version:  29 %
+// Version : %version:  31 %
 
 #include <sysutil.h>
 #include <s32file.h>
 #include <mpxcommand.h>
 #include <mpxcommandgeneraldefs.h>
-#include <mpxplaybackutility.h>
 #include <mpxvideoplaybackdefs.h>
 
 #include "videocontainer.h"
@@ -36,10 +35,8 @@
 _LIT( KAspectRatioFile, "c:\\private\\200159b2\\mpxvideoplayer_aspect_ratio.dat" );
 
 
-CVideoPlaybackDisplayHandler::CVideoPlaybackDisplayHandler( MMPXPlaybackUtility* aPlayUtil,
-                                                            CMPXVideoViewWrapper* aViewWrapper )
-    : iPlaybackUtility( aPlayUtil )
-    , iTransitionEffectCnt( 0 )
+CVideoPlaybackDisplayHandler::CVideoPlaybackDisplayHandler( CMPXVideoViewWrapper* aViewWrapper )
+    : iTransitionEffectCnt( 0 )
     , iViewWrapper( aViewWrapper )
     , iScaleWidth( 100.0f )
     , iScaleHeight( 100.0f )
@@ -81,13 +78,12 @@
 }
 
 CVideoPlaybackDisplayHandler*
-CVideoPlaybackDisplayHandler::NewL( MMPXPlaybackUtility* aPlayUtil,
-                                    CMPXVideoViewWrapper* aViewWrapper )
+CVideoPlaybackDisplayHandler::NewL( CMPXVideoViewWrapper* aViewWrapper )
 {
     MPX_ENTER_EXIT(_L("CVideoPlaybackDisplayHandler::NewL()"));
 
     CVideoPlaybackDisplayHandler* self =
-        new(ELeave) CVideoPlaybackDisplayHandler( aPlayUtil, aViewWrapper );
+        new(ELeave) CVideoPlaybackDisplayHandler( aViewWrapper );
 
     CleanupStack::PushL( self );
     self->ConstructL();
@@ -113,10 +109,22 @@
                                           RWsSession& /*aWs*/,
                                           CWsScreenDevice& aScreenDevice,
                                           RWindow& aWin,
-                                          TRect aDisplayRect )
+                                          TRect aDisplayRect,
+                                          VideoPlaybackViewFileDetails* aFileDetails )
 {
     MPX_ENTER_EXIT(_L("CVideoPlaybackDisplayHandler::CreateDisplayWindowL()"));
 
+    iFileDetails = aFileDetails;
+
+    //
+    // get window aspect ratio
+    //   if device is in landscape mode, width > height
+    //   if device is in portrait mode, width < height
+    //
+    TReal32 width = (TReal32) aDisplayRect.Width();
+    TReal32 height = (TReal32) aDisplayRect.Height();
+    iDisplayAspectRatio = (width > height)? (width / height) : (height / width);
+
     if ( ! iVideoContainer )
     {
         iVideoContainer = new ( ELeave ) CVideoContainer();
@@ -125,6 +133,8 @@
     }
 
     RWindowBase *videoWindow = iVideoContainer->DrawableWindow();
+    ((RWindow*)videoWindow )->SetBackgroundColor( KRgbBlack );
+
     videoWindow->SetOrdinalPosition( -1 );
     (&aWin)->SetOrdinalPosition( 0 );
 
@@ -219,22 +229,32 @@
 }
 
 // -------------------------------------------------------------------------------------------------
-//   CVideoPlaybackDisplayHandler::SetDefaultAspectRatioL
+//   CVideoPlaybackDisplayHandler::CalculateAspectRatioL
 // -------------------------------------------------------------------------------------------------
 //
-TInt CVideoPlaybackDisplayHandler::SetDefaultAspectRatioL(
-        VideoPlaybackViewFileDetails* aFileDetails, TReal32 aDisplayAspectRatio )
+TInt CVideoPlaybackDisplayHandler::CalculateAspectRatioL()
 {
-    MPX_ENTER_EXIT(_L("CVideoPlaybackDisplayHandler::SetDefaultAspectRatioL()"));
+    MPX_ENTER_EXIT(_L("CVideoPlaybackDisplayHandler::CalculateAspectRatioL()"));
 
     TInt newAspectRatio = EMMFNatural;
 
-    if ( aFileDetails->mVideoHeight > 0 && aFileDetails->mVideoWidth > 0 )
+    if ( iFileDetails->mVideoHeight > 0 && iFileDetails->mVideoWidth > 0 )
     {
         TMMFScalingType scalingType = EMMFNatural;
 
-        TReal32 videoAspectRatio = (TReal32)aFileDetails->mVideoWidth /
-                                   (TReal32)aFileDetails->mVideoHeight;
+        TReal32 videoAspectRatio = (TReal32)iFileDetails->mVideoWidth /
+                                   (TReal32)iFileDetails->mVideoHeight;
+        //
+        //  If the pixel aspect ratio is valid, use it to modify the videoAspectRatio
+        //
+        if ( iAspectRatio.iDenominator )
+        {
+            MPX_DEBUG(_L("VideoPlaybackDisplayHandler::CalculateAspectRatioL() iAspectRatio = (%d,%d)"),
+                iAspectRatio.iNumerator, iAspectRatio.iDenominator );
+
+            TReal32 par = (TReal32)iAspectRatio.iNumerator / (TReal32)iAspectRatio.iDenominator;
+            videoAspectRatio *= par;
+       }
 
         TInt cnt = iAspectRatioArray.Count();
         TInt i = 0;
@@ -244,8 +264,8 @@
         //
         for ( ; i < cnt ; i++ )
         {
-            if ( iAspectRatioArray[i].videoRatio == videoAspectRatio &&
-                 iAspectRatioArray[i].screenRatio == aDisplayAspectRatio &&
+            if ( IsAspectRatioEqual( iAspectRatioArray[i].videoRatio, videoAspectRatio ) &&
+                 IsAspectRatioEqual( iAspectRatioArray[i].screenRatio, iDisplayAspectRatio ) &&
                  ( scalingType = iAspectRatioArray[i].scalingType ) > 0 )
             {
                 break;
@@ -255,21 +275,33 @@
         //
         //  if can't find out match aspect ratio in dat file,
         //  choose the scaling type through the rule
-        //      aspectRatioDiff =  videoAspectRatio - aDisplayAspectRatio
-        //      aspectRatioDiff ==  0        ==> natural
-        //      aspectRatioDiff > 0.1        ==> zoom
-        //      aspectRatioDiff < - 0.3      ==> natural
-        //      aspectRatioDiff >= - 0.3 and <= 0.1   ==> stretch
+        //      aspectRatioDiff =  videoAspectRatio - iDisplayAspectRatio
+        //      aspectRatioDiff >= - 0.00001 and <= 0.00001    ==> natural
+        //      aspectRatioDiff > 0.1                          ==> zoom
+        //      aspectRatioDiff < - 0.3                        ==> natural
+        //      aspectRatioDiff >= - 0.3 and <= 0.1            ==> stretch
+        //
+        //               -0.3      -0.00001       0.00001         0.1
+        //     ------------------------------------------------------------
+        //         Natural |   Stretch  |   Natural  |   Stretch   |  Zoom
         //
 
         if ( i == cnt )
         {
-            if ( videoAspectRatio - aDisplayAspectRatio > 0.1 )
+            TReal32 aspectRatioDiff = videoAspectRatio - iDisplayAspectRatio;
+
+            MPX_DEBUG(_L("VideoPlaybackDisplayHandler::CalculateAspectRatioL() videoAspectRatio = d,iDisplayAspectRatio = %d)"),
+                    videoAspectRatio, iDisplayAspectRatio );
+
+            if ( IsAspectRatioEqual( videoAspectRatio, iDisplayAspectRatio )  )
+            {
+                scalingType = EMMFNatural;
+            }
+            else if ( aspectRatioDiff > 0.1 )
             {
                 scalingType = EMMFZoom;
             }
-            else if ( ( videoAspectRatio != aDisplayAspectRatio ) &&
-                      ( videoAspectRatio - aDisplayAspectRatio > (- 0.3) ) )
+            else if ( aspectRatioDiff > - 0.3 )
             {
                 scalingType = EMMFStretch;
             }
@@ -277,12 +309,15 @@
             TMPXAspectRatio ratio;
 
             ratio.videoRatio = videoAspectRatio;
-            ratio.screenRatio = aDisplayAspectRatio;
+            ratio.screenRatio = iDisplayAspectRatio;
             ratio.scalingType = scalingType;
 
             iAspectRatioArray.Append( ratio );
         }
 
+        iFileDetails->mAspectRatioChangeable =
+                ! IsAspectRatioEqual( videoAspectRatio, iDisplayAspectRatio );
+
         iCurrentIndexForAspectRatio = i;
 
         TMPXVideoPlaybackCommand aspectRatioCmd = EPbCmdNaturalAspectRatio;
@@ -485,7 +520,38 @@
 
     if ( iVideoDisplay )
     {
-        iVideoDisplay->SetVideoExtentL( *iWindowBase, aRect, TRect( iWindowBase->Size() ) );
+        TRect temp = aRect;
+
+        MPX_DEBUG(_L("CVideoPlaybackDisplayHandler::SetVideoRectL() origianl rect %d %d %d %d"),
+                temp.iTl.iX, temp.iTl.iY, temp.iBr.iX, temp.iBr.iY );
+
+        //
+        // Need to transform based on rotation clockwise
+        // since the input rect is based on orbit orientation(which can be landscape or potrait)
+        // and the video surface is always in device orientation(can't be changed by anything).
+        // If iRotation is EVideoRotationNone,
+        // we don't need to transfrom the rect since video and ui surfaces are in same orietation.
+        // but if iRotation is not EVideoRotationNone,
+        // we need to transform the rect based on clockwise.
+        //
+        switch( iRotation )
+        {
+            case EVideoRotationClockwise90:
+            {
+                int screenWidth = iWindowBase->Size().iWidth;
+
+                temp = TRect( screenWidth - aRect.iBr.iY,
+                              aRect.iTl.iX,
+                              screenWidth - aRect.iTl.iY,
+                              aRect.iBr.iX );
+                break;
+            }
+        }
+
+        MPX_DEBUG(_L("CVideoPlaybackDisplayHandler::SetVideoRectL() transformed rect %d %d %d %d"),
+                temp.iTl.iX, temp.iTl.iY, temp.iBr.iX, temp.iBr.iY );
+
+        iVideoDisplay->SetVideoExtentL( *iWindowBase, temp, iCropRect );
     }
 }
 
@@ -541,6 +607,7 @@
     );
 
     MPX_DEBUG(_L("CVideoPlaybackDisplayHandler::AddDisplayWindowL() Display Added"));
+
     //
     //  Check if surface was created before window was ready
     //
@@ -574,6 +641,8 @@
     iCropRect = aMessage->ValueTObjectL<TRect>( KMPXMediaVideoDisplayCropRect );
     iAspectRatio = aMessage->ValueTObjectL<TVideoAspectRatio>( KMPXMediaVideoDisplayAspectRatio );
 
+    iViewWrapper->SetDefaultAspectRatio( CalculateAspectRatioL() );
+
     if ( iVideoDisplay )
     {
         //
@@ -619,6 +688,8 @@
     iCropRect = aMessage->ValueTObjectL<TRect>( KMPXMediaVideoDisplayCropRect );
     iAspectRatio = aMessage->ValueTObjectL<TVideoAspectRatio>( KMPXMediaVideoDisplayAspectRatio );
 
+    iViewWrapper->SetDefaultAspectRatio( CalculateAspectRatioL() );
+
     if ( iVideoDisplay )
     {
         //
@@ -694,4 +765,26 @@
     return aspectRatio;
 }
 
+// -------------------------------------------------------------------------------------------------
+//   CVideoPlaybackDisplayHandler::IsAspectRatioEqual()
+// -------------------------------------------------------------------------------------------------
+//
+TBool CVideoPlaybackDisplayHandler::IsAspectRatioEqual( TReal32 aRatio1, TReal32 aRatio2 )
+{
+    MPX_DEBUG(_L("CVideoPlaybackDisplayHandler::IsAspectRatioEqual() ar1 = %f ar2 = %f)"),
+            aRatio1, aRatio2 );
+
+    TBool valuesEqual = EFalse;
+    TReal32 arDiff = aRatio1 - aRatio2;
+
+    if ( arDiff < 0.00001 && arDiff > -0.00001 )
+    {
+        valuesEqual = ETrue;
+    }
+
+    MPX_DEBUG(_L("CVideoPlaybackDisplayHandler::IsAspectRatioEqual(%d)"), valuesEqual);
+
+    return valuesEqual;
+}
+
 // End of File
--- a/videoplayback/videoplaybackview/viewsrc/videoplaybackviewfiledetails.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayback/videoplaybackview/viewsrc/videoplaybackviewfiledetails.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  da1mmcf#11 %
+// Version : %version:  da1mmcf#12 %
 
 
 
@@ -47,16 +47,16 @@
 {
     MPX_ENTER_EXIT(_L("VideoPlaybackViewFileDetails::ClearFileDetails()"));
 
-    mMimeType = tr("");  
+    mMimeType = tr("");
     mTitle = tr("");
     mArtist = tr("");
     mClipName = tr("");
-    mDescription = tr("");  
+    mDescription = tr("");
     mLocation = tr("");
     mCopyright = tr("");
     mLanguage = tr("");
     mKeywords = tr("");
-    
+
     mPlaybackMode = EMPXVideoLocal;
     mSeekable = false;
     mPausableStream = false;
@@ -68,6 +68,7 @@
     mDuration = 0;
     mTvOutConnected   = false;
     mDrmProtected = false;
+    mAspectRatioChangeable = false;
 
     mVideoHeight = 0;
     mVideoWidth  = 0;
--- a/videoplayerapp/bwins/videoplayerengineu.def	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/bwins/videoplayerengineu.def	Tue Oct 05 09:26:49 2010 +0300
@@ -1,67 +1,68 @@
 EXPORTS
 	?playMedia@VideoPlayerEngine@@QAEXVRFile@@@Z @ 1 NONAME ; void VideoPlayerEngine::playMedia(class RFile)
 	?instance@VideoActivityState@@SAAAV1@XZ @ 2 NONAME ; class VideoActivityState & VideoActivityState::instance(void)
-	??0VideoPlayerEngine@@QAE@_N@Z @ 3 NONAME ; VideoPlayerEngine::VideoPlayerEngine(bool)
-	?qt_metacast@VideoServices@@UAEPAXPBD@Z @ 4 NONAME ; void * VideoServices::qt_metacast(char const *)
-	?getBrowseCategory@VideoServices@@QBEHXZ @ 5 NONAME ; int VideoServices::getBrowseCategory(void) const
-	?engine@VideoServices@@AAEPAVVideoPlayerEngine@@XZ @ 6 NONAME ; class VideoPlayerEngine * VideoServices::engine(void)
-	?loadPluginAndCreateView@VideoPlayerEngine@@AAEXW4MpxHbVideoViewType@MpxHbVideoCommon@@@Z @ 7 NONAME ; void VideoPlayerEngine::loadPluginAndCreateView(enum MpxHbVideoCommon::MpxHbVideoViewType)
-	?trUtf8@VideoServices@@SA?AVQString@@PBD0@Z @ 8 NONAME ; class QString VideoServices::trUtf8(char const *, char const *)
-	?setEmbedded@VideoPlayerEngine@@QAEXXZ @ 9 NONAME ; void VideoPlayerEngine::setEmbedded(void)
-	?itemSelected@VideoServices@@QAEXABVQString@@@Z @ 10 NONAME ; void VideoServices::itemSelected(class QString const &)
-	?createMissingViews@VideoPlayerEngine@@AAEXXZ @ 11 NONAME ; void VideoPlayerEngine::createMissingViews(void)
-	??1VideoServices@@EAE@XZ @ 12 NONAME ; VideoServices::~VideoServices(void)
-	??0VideoServices@@AAE@PAVVideoPlayerEngine@@@Z @ 13 NONAME ; VideoServices::VideoServices(class VideoPlayerEngine *)
-	?titleReady@VideoServices@@IAEXABVQString@@@Z @ 14 NONAME ; void VideoServices::titleReady(class QString const &)
-	?setActivityData@VideoActivityState@@QAEXABVQVariant@@ABVQString@@@Z @ 15 NONAME ; void VideoActivityState::setActivityData(class QVariant const &, class QString const &)
-	??0VideoActivityState@@AAE@XZ @ 16 NONAME ; VideoActivityState::VideoActivityState(void)
-	?activated@VideoServices@@IAEXH@Z @ 17 NONAME ; void VideoServices::activated(int)
-	?playMedia@VideoPlayerEngine@@QAEXVQString@@@Z @ 18 NONAME ; void VideoPlayerEngine::playMedia(class QString)
-	?metaObject@VideoServices@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * VideoServices::metaObject(void) const
-	?getStaticMetaObject@VideoPlayerEngine@@SAABUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const & VideoPlayerEngine::getStaticMetaObject(void)
-	??_EVideoActivityState@@UAE@I@Z @ 21 NONAME ; VideoActivityState::~VideoActivityState(unsigned int)
-	?createPlaybackView@VideoPlayerEngine@@AAEXXZ @ 22 NONAME ; void VideoPlayerEngine::createPlaybackView(void)
-	?handleCommand@VideoPlayerEngine@@QAEXH@Z @ 23 NONAME ; void VideoPlayerEngine::handleCommand(int)
-	??_EVideoServices@@UAE@I@Z @ 24 NONAME ; VideoServices::~VideoServices(unsigned int)
-	?browsingEnded@VideoServices@@QAEXXZ @ 25 NONAME ; void VideoServices::browsingEnded(void)
-	?handlePlaybackFailure@VideoPlayerEngine@@AAEXH@Z @ 26 NONAME ; void VideoPlayerEngine::handlePlaybackFailure(int)
-	?connectView@VideoPlayerEngine@@AAEXXZ @ 27 NONAME ; void VideoPlayerEngine::connectView(void)
-	?getStaticMetaObject@VideoServices@@SAABUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const & VideoServices::getStaticMetaObject(void)
-	?decreaseReferenceCount@VideoServices@@QAEXXZ @ 29 NONAME ; void VideoServices::decreaseReferenceCount(void)
-	?setCurrentService@VideoServices@@AAEXW4TVideoService@1@@Z @ 30 NONAME ; void VideoServices::setCurrentService(enum VideoServices::TVideoService)
-	?trUtf8@VideoPlayerEngine@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString VideoPlayerEngine::trUtf8(char const *, char const *)
-	?setCurrentView@VideoPlayerEngine@@AAEXXZ @ 32 NONAME ; void VideoPlayerEngine::setCurrentView(void)
-	?instance@VideoServices@@SAPAV1@PAVVideoPlayerEngine@@@Z @ 33 NONAME ; class VideoServices * VideoServices::instance(class VideoPlayerEngine *)
-	?trUtf8@VideoServices@@SA?AVQString@@PBD0H@Z @ 34 NONAME ; class QString VideoServices::trUtf8(char const *, char const *, int)
-	?tr@VideoPlayerEngine@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString VideoPlayerEngine::tr(char const *, char const *, int)
-	??1VideoActivityState@@EAE@XZ @ 36 NONAME ; VideoActivityState::~VideoActivityState(void)
-	?staticMetaObject@VideoPlayerEngine@@2UQMetaObject@@B @ 37 NONAME ; struct QMetaObject const VideoPlayerEngine::staticMetaObject
-	?doDelayedLoad@VideoPlayerEngine@@AAEXXZ @ 38 NONAME ; void VideoPlayerEngine::doDelayedLoad(void)
-	?initialize@VideoPlayerEngine@@QAEXXZ @ 39 NONAME ; void VideoPlayerEngine::initialize(void)
-	?qt_metacall@VideoPlayerEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 40 NONAME ; int VideoPlayerEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?sortRole@VideoServices@@QBEHXZ @ 41 NONAME ; int VideoServices::sortRole(void) const
-	?qt_metacast@VideoPlayerEngine@@UAEPAXPBD@Z @ 42 NONAME ; void * VideoPlayerEngine::qt_metacast(char const *)
-	?shouldExit@VideoPlayerEngine@@AAE_NXZ @ 43 NONAME ; bool VideoPlayerEngine::shouldExit(void)
-	?staticMetaObject@VideoServices@@2UQMetaObject@@B @ 44 NONAME ; struct QMetaObject const VideoServices::staticMetaObject
-	?isPlayServiceInvoked@VideoPlayerEngine@@AAE_NXZ @ 45 NONAME ; bool VideoPlayerEngine::isPlayServiceInvoked(void)
-	?applicationReady@VideoPlayerEngine@@IAEXXZ @ 46 NONAME ; void VideoPlayerEngine::applicationReady(void)
-	?metaObject@VideoPlayerEngine@@UBEPBUQMetaObject@@XZ @ 47 NONAME ; struct QMetaObject const * VideoPlayerEngine::metaObject(void) const
-	?tr@VideoServices@@SA?AVQString@@PBD0H@Z @ 48 NONAME ; class QString VideoServices::tr(char const *, char const *, int)
-	??_EVideoPlayerEngine@@UAE@I@Z @ 49 NONAME ; VideoPlayerEngine::~VideoPlayerEngine(unsigned int)
-	?activateView@VideoPlayerEngine@@AAEXW4MpxHbVideoViewType@MpxHbVideoCommon@@@Z @ 50 NONAME ; void VideoPlayerEngine::activateView(enum MpxHbVideoCommon::MpxHbVideoViewType)
-	?contextTitle@VideoServices@@QBE?AVQString@@XZ @ 51 NONAME ; class QString VideoServices::contextTitle(void) const
-	?getActivityData@VideoActivityState@@QAE?BVQVariant@@ABVQString@@@Z @ 52 NONAME ; class QVariant const VideoActivityState::getActivityData(class QString const &)
-	?tr@VideoPlayerEngine@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString VideoPlayerEngine::tr(char const *, char const *)
-	?disconnectView@VideoPlayerEngine@@AAEXXZ @ 54 NONAME ; void VideoPlayerEngine::disconnectView(void)
-	?qt_metacall@VideoServices@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 55 NONAME ; int VideoServices::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?currentService@VideoServices@@QAE?AW4TVideoService@1@XZ @ 56 NONAME ; enum VideoServices::TVideoService VideoServices::currentService(void)
-	?trUtf8@VideoPlayerEngine@@SA?AVQString@@PBD0H@Z @ 57 NONAME ; class QString VideoPlayerEngine::trUtf8(char const *, char const *, int)
-	?playURI@VideoPlayerEngine@@QAEXVQString@@@Z @ 58 NONAME ; void VideoPlayerEngine::playURI(class QString)
-	?handleQuit@VideoPlayerEngine@@AAEXXZ @ 59 NONAME ; void VideoPlayerEngine::handleQuit(void)
-	?mInstance@VideoServices@@0PAV1@A @ 60 NONAME ; class VideoServices * VideoServices::mInstance
-	?tr@VideoServices@@SA?AVQString@@PBD0@Z @ 61 NONAME ; class QString VideoServices::tr(char const *, char const *)
-	?setEngine@VideoServices@@AAEXPAVVideoPlayerEngine@@@Z @ 62 NONAME ; void VideoServices::setEngine(class VideoPlayerEngine *)
-	??1VideoPlayerEngine@@UAE@XZ @ 63 NONAME ; VideoPlayerEngine::~VideoPlayerEngine(void)
-	?shouldActivateCollectionView@VideoPlayerEngine@@AAE_NXZ @ 64 NONAME ; bool VideoPlayerEngine::shouldActivateCollectionView(void)
-	?serviceQuit@VideoPlayerEngine@@AAEXXZ @ 65 NONAME ; void VideoPlayerEngine::serviceQuit(void)
+	?getBrowseCategory@VideoServices@@QBEHXZ @ 3 NONAME ; int VideoServices::getBrowseCategory(void) const
+	?engine@VideoServices@@AAEPAVVideoPlayerEngine@@XZ @ 4 NONAME ; class VideoPlayerEngine * VideoServices::engine(void)
+	?loadPluginAndCreateView@VideoPlayerEngine@@AAEXW4MpxHbVideoViewType@MpxHbVideoCommon@@@Z @ 5 NONAME ; void VideoPlayerEngine::loadPluginAndCreateView(enum MpxHbVideoCommon::MpxHbVideoViewType)
+	?trUtf8@VideoServices@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString VideoServices::trUtf8(char const *, char const *)
+	?itemSelected@VideoServices@@QAEXABVQString@@@Z @ 7 NONAME ; void VideoServices::itemSelected(class QString const &)
+	?createMissingViews@VideoPlayerEngine@@AAEXXZ @ 8 NONAME ; void VideoPlayerEngine::createMissingViews(void)
+	??1VideoServices@@EAE@XZ @ 9 NONAME ; VideoServices::~VideoServices(void)
+	??0VideoServices@@AAE@PAVVideoPlayerEngine@@@Z @ 10 NONAME ; VideoServices::VideoServices(class VideoPlayerEngine *)
+	?titleReady@VideoServices@@IAEXABVQString@@@Z @ 11 NONAME ; void VideoServices::titleReady(class QString const &)
+	??0VideoActivityState@@AAE@XZ @ 12 NONAME ; VideoActivityState::VideoActivityState(void)
+	?playMedia@VideoPlayerEngine@@QAEXVQString@@@Z @ 13 NONAME ; void VideoPlayerEngine::playMedia(class QString)
+	?metaObject@VideoServices@@UBEPBUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const * VideoServices::metaObject(void) const
+	?getStaticMetaObject@VideoPlayerEngine@@SAABUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const & VideoPlayerEngine::getStaticMetaObject(void)
+	??_EVideoActivityState@@UAE@I@Z @ 16 NONAME ; VideoActivityState::~VideoActivityState(unsigned int)
+	?createPlaybackView@VideoPlayerEngine@@AAEXXZ @ 17 NONAME ; void VideoPlayerEngine::createPlaybackView(void)
+	??_EVideoServices@@UAE@I@Z @ 18 NONAME ; VideoServices::~VideoServices(unsigned int)
+	?serviceQuit@VideoPlayerEngine@@AAEXXZ @ 19 NONAME ; void VideoPlayerEngine::serviceQuit(void)
+	?getStaticMetaObject@VideoServices@@SAABUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const & VideoServices::getStaticMetaObject(void)
+	?instance@VideoServices@@SAPAV1@PAVVideoPlayerEngine@@@Z @ 21 NONAME ; class VideoServices * VideoServices::instance(class VideoPlayerEngine *)
+	?tr@VideoPlayerEngine@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString VideoPlayerEngine::tr(char const *, char const *, int)
+	??1VideoActivityState@@EAE@XZ @ 23 NONAME ; VideoActivityState::~VideoActivityState(void)
+	?staticMetaObject@VideoPlayerEngine@@2UQMetaObject@@B @ 24 NONAME ; struct QMetaObject const VideoPlayerEngine::staticMetaObject
+	?doDelayedLoad@VideoPlayerEngine@@AAEXXZ @ 25 NONAME ; void VideoPlayerEngine::doDelayedLoad(void)
+	?initialize@VideoPlayerEngine@@QAEXXZ @ 26 NONAME ; void VideoPlayerEngine::initialize(void)
+	?sortRole@VideoServices@@QBEHXZ @ 27 NONAME ; int VideoServices::sortRole(void) const
+	?shouldExit@VideoPlayerEngine@@AAE_NXZ @ 28 NONAME ; bool VideoPlayerEngine::shouldExit(void)
+	?tr@VideoServices@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString VideoServices::tr(char const *, char const *, int)
+	?getActivityData@VideoActivityState@@QAE?BVQVariant@@ABVQString@@@Z @ 30 NONAME ; class QVariant const VideoActivityState::getActivityData(class QString const &)
+	?tr@VideoPlayerEngine@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString VideoPlayerEngine::tr(char const *, char const *)
+	?trUtf8@VideoPlayerEngine@@SA?AVQString@@PBD0H@Z @ 32 NONAME ; class QString VideoPlayerEngine::trUtf8(char const *, char const *, int)
+	?tr@VideoServices@@SA?AVQString@@PBD0@Z @ 33 NONAME ; class QString VideoServices::tr(char const *, char const *)
+	?setEngine@VideoServices@@AAEXPAVVideoPlayerEngine@@@Z @ 34 NONAME ; void VideoServices::setEngine(class VideoPlayerEngine *)
+	??0VideoPlayerEngine@@QAE@_N@Z @ 35 NONAME ; VideoPlayerEngine::VideoPlayerEngine(bool)
+	?qt_metacast@VideoServices@@UAEPAXPBD@Z @ 36 NONAME ; void * VideoServices::qt_metacast(char const *)
+	?setEmbedded@VideoPlayerEngine@@QAEXXZ @ 37 NONAME ; void VideoPlayerEngine::setEmbedded(void)
+	?activated@VideoServices@@IAEXH@Z @ 38 NONAME ; void VideoServices::activated(int)
+	?setActivityData@VideoActivityState@@QAEXABVQVariant@@ABVQString@@@Z @ 39 NONAME ; void VideoActivityState::setActivityData(class QVariant const &, class QString const &)
+	?handleCommand@VideoPlayerEngine@@QAEXH@Z @ 40 NONAME ; void VideoPlayerEngine::handleCommand(int)
+	?browsingEnded@VideoServices@@QAEXXZ @ 41 NONAME ; void VideoServices::browsingEnded(void)
+	?handlePlaybackFailure@VideoPlayerEngine@@AAEXH@Z @ 42 NONAME ; void VideoPlayerEngine::handlePlaybackFailure(int)
+	?connectView@VideoPlayerEngine@@AAEXXZ @ 43 NONAME ; void VideoPlayerEngine::connectView(void)
+	?decreaseReferenceCount@VideoServices@@QAEXXZ @ 44 NONAME ; void VideoServices::decreaseReferenceCount(void)
+	?setCurrentService@VideoServices@@AAEXW4TVideoService@1@@Z @ 45 NONAME ; void VideoServices::setCurrentService(enum VideoServices::TVideoService)
+	?trUtf8@VideoPlayerEngine@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString VideoPlayerEngine::trUtf8(char const *, char const *)
+	?checkForUpdates@VideoPlayerEngine@@AAEXXZ @ 47 NONAME ; void VideoPlayerEngine::checkForUpdates(void)
+	?setCurrentView@VideoPlayerEngine@@AAEXXZ @ 48 NONAME ; void VideoPlayerEngine::setCurrentView(void)
+	?trUtf8@VideoServices@@SA?AVQString@@PBD0H@Z @ 49 NONAME ; class QString VideoServices::trUtf8(char const *, char const *, int)
+	?qt_metacall@VideoPlayerEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 50 NONAME ; int VideoPlayerEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacast@VideoPlayerEngine@@UAEPAXPBD@Z @ 51 NONAME ; void * VideoPlayerEngine::qt_metacast(char const *)
+	?staticMetaObject@VideoServices@@2UQMetaObject@@B @ 52 NONAME ; struct QMetaObject const VideoServices::staticMetaObject
+	?applicationReady@VideoPlayerEngine@@IAEXXZ @ 53 NONAME ; void VideoPlayerEngine::applicationReady(void)
+	?isPlayServiceInvoked@VideoPlayerEngine@@AAE_NXZ @ 54 NONAME ; bool VideoPlayerEngine::isPlayServiceInvoked(void)
+	?metaObject@VideoPlayerEngine@@UBEPBUQMetaObject@@XZ @ 55 NONAME ; struct QMetaObject const * VideoPlayerEngine::metaObject(void) const
+	?activateView@VideoPlayerEngine@@AAEXW4MpxHbVideoViewType@MpxHbVideoCommon@@@Z @ 56 NONAME ; void VideoPlayerEngine::activateView(enum MpxHbVideoCommon::MpxHbVideoViewType)
+	??_EVideoPlayerEngine@@UAE@I@Z @ 57 NONAME ; VideoPlayerEngine::~VideoPlayerEngine(unsigned int)
+	?contextTitle@VideoServices@@QBE?AVQString@@XZ @ 58 NONAME ; class QString VideoServices::contextTitle(void) const
+	?disconnectView@VideoPlayerEngine@@AAEXXZ @ 59 NONAME ; void VideoPlayerEngine::disconnectView(void)
+	?currentService@VideoServices@@QAE?AW4TVideoService@1@XZ @ 60 NONAME ; enum VideoServices::TVideoService VideoServices::currentService(void)
+	?qt_metacall@VideoServices@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 61 NONAME ; int VideoServices::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?handleQuit@VideoPlayerEngine@@AAEXXZ @ 62 NONAME ; void VideoPlayerEngine::handleQuit(void)
+	?playURI@VideoPlayerEngine@@QAEXVQString@@@Z @ 63 NONAME ; void VideoPlayerEngine::playURI(class QString)
+	?mInstance@VideoServices@@0PAV1@A @ 64 NONAME ; class VideoServices * VideoServices::mInstance
+	??1VideoPlayerEngine@@UAE@XZ @ 65 NONAME ; VideoPlayerEngine::~VideoPlayerEngine(void)
+	?shouldActivateCollectionView@VideoPlayerEngine@@AAE_NXZ @ 66 NONAME ; bool VideoPlayerEngine::shouldActivateCollectionView(void)
 
--- a/videoplayerapp/eabi/videoplayerengineu.def	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/eabi/videoplayerengineu.def	Tue Oct 05 09:26:49 2010 +0300
@@ -25,47 +25,48 @@
 	_ZN17VideoPlayerEngine11connectViewEv @ 24 NONAME
 	_ZN17VideoPlayerEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 25 NONAME
 	_ZN17VideoPlayerEngine11qt_metacastEPKc @ 26 NONAME
-	_ZN17VideoPlayerEngine11setEmbeddedEv @ 27 NONAME
-	_ZN17VideoPlayerEngine12activateViewEN16MpxHbVideoCommon18MpxHbVideoViewTypeE @ 28 NONAME
-	_ZN17VideoPlayerEngine13doDelayedLoadEv @ 29 NONAME
-	_ZN17VideoPlayerEngine13handleCommandEi @ 30 NONAME
-	_ZN17VideoPlayerEngine14disconnectViewEv @ 31 NONAME
-	_ZN17VideoPlayerEngine14setCurrentViewEv @ 32 NONAME
-	_ZN17VideoPlayerEngine16applicationReadyEv @ 33 NONAME
-	_ZN17VideoPlayerEngine16staticMetaObjectE @ 34 NONAME DATA 16
-	_ZN17VideoPlayerEngine18createMissingViewsEv @ 35 NONAME
-	_ZN17VideoPlayerEngine18createPlaybackViewEv @ 36 NONAME
-	_ZN17VideoPlayerEngine19getStaticMetaObjectEv @ 37 NONAME
-	_ZN17VideoPlayerEngine20isPlayServiceInvokedEv @ 38 NONAME
-	_ZN17VideoPlayerEngine21handlePlaybackFailureEi @ 39 NONAME
-	_ZN17VideoPlayerEngine23loadPluginAndCreateViewEN16MpxHbVideoCommon18MpxHbVideoViewTypeE @ 40 NONAME
-	_ZN17VideoPlayerEngine28shouldActivateCollectionViewEv @ 41 NONAME
-	_ZN17VideoPlayerEngine7playURIE7QString @ 42 NONAME
-	_ZN17VideoPlayerEngine9playMediaE5RFile @ 43 NONAME
-	_ZN17VideoPlayerEngine9playMediaE7QString @ 44 NONAME
-	_ZN17VideoPlayerEngineC1Eb @ 45 NONAME
-	_ZN17VideoPlayerEngineC2Eb @ 46 NONAME
-	_ZN17VideoPlayerEngineD0Ev @ 47 NONAME
-	_ZN17VideoPlayerEngineD1Ev @ 48 NONAME
-	_ZN17VideoPlayerEngineD2Ev @ 49 NONAME
-	_ZN18VideoActivityState15getActivityDataERK7QString @ 50 NONAME
-	_ZN18VideoActivityState15setActivityDataERK8QVariantRK7QString @ 51 NONAME
-	_ZN18VideoActivityState8instanceEv @ 52 NONAME
-	_ZN18VideoActivityStateC1Ev @ 53 NONAME
-	_ZN18VideoActivityStateC2Ev @ 54 NONAME
-	_ZN18VideoActivityStateD0Ev @ 55 NONAME
-	_ZN18VideoActivityStateD1Ev @ 56 NONAME
-	_ZN18VideoActivityStateD2Ev @ 57 NONAME
-	_ZNK13VideoServices10metaObjectEv @ 58 NONAME
-	_ZNK13VideoServices12contextTitleEv @ 59 NONAME
-	_ZNK13VideoServices17getBrowseCategoryEv @ 60 NONAME
-	_ZNK13VideoServices8sortRoleEv @ 61 NONAME
-	_ZNK17VideoPlayerEngine10metaObjectEv @ 62 NONAME
-	_ZTI13VideoServices @ 63 NONAME
-	_ZTI17VideoPlayerEngine @ 64 NONAME
-	_ZTI18VideoActivityState @ 65 NONAME
-	_ZTV13VideoServices @ 66 NONAME
-	_ZTV17VideoPlayerEngine @ 67 NONAME
-	_ZTV18VideoActivityState @ 68 NONAME
-	_ZN17VideoPlayerEngine11serviceQuitEv @ 69 NONAME
+	_ZN17VideoPlayerEngine11serviceQuitEv @ 27 NONAME
+	_ZN17VideoPlayerEngine11setEmbeddedEv @ 28 NONAME
+	_ZN17VideoPlayerEngine12activateViewEN16MpxHbVideoCommon18MpxHbVideoViewTypeE @ 29 NONAME
+	_ZN17VideoPlayerEngine13doDelayedLoadEv @ 30 NONAME
+	_ZN17VideoPlayerEngine13handleCommandEi @ 31 NONAME
+	_ZN17VideoPlayerEngine14disconnectViewEv @ 32 NONAME
+	_ZN17VideoPlayerEngine14setCurrentViewEv @ 33 NONAME
+	_ZN17VideoPlayerEngine15checkForUpdatesEv @ 34 NONAME
+	_ZN17VideoPlayerEngine16applicationReadyEv @ 35 NONAME
+	_ZN17VideoPlayerEngine16staticMetaObjectE @ 36 NONAME DATA 16
+	_ZN17VideoPlayerEngine18createMissingViewsEv @ 37 NONAME
+	_ZN17VideoPlayerEngine18createPlaybackViewEv @ 38 NONAME
+	_ZN17VideoPlayerEngine19getStaticMetaObjectEv @ 39 NONAME
+	_ZN17VideoPlayerEngine20isPlayServiceInvokedEv @ 40 NONAME
+	_ZN17VideoPlayerEngine21handlePlaybackFailureEi @ 41 NONAME
+	_ZN17VideoPlayerEngine23loadPluginAndCreateViewEN16MpxHbVideoCommon18MpxHbVideoViewTypeE @ 42 NONAME
+	_ZN17VideoPlayerEngine28shouldActivateCollectionViewEv @ 43 NONAME
+	_ZN17VideoPlayerEngine7playURIE7QString @ 44 NONAME
+	_ZN17VideoPlayerEngine9playMediaE5RFile @ 45 NONAME
+	_ZN17VideoPlayerEngine9playMediaE7QString @ 46 NONAME
+	_ZN17VideoPlayerEngineC1Eb @ 47 NONAME
+	_ZN17VideoPlayerEngineC2Eb @ 48 NONAME
+	_ZN17VideoPlayerEngineD0Ev @ 49 NONAME
+	_ZN17VideoPlayerEngineD1Ev @ 50 NONAME
+	_ZN17VideoPlayerEngineD2Ev @ 51 NONAME
+	_ZN18VideoActivityState15getActivityDataERK7QString @ 52 NONAME
+	_ZN18VideoActivityState15setActivityDataERK8QVariantRK7QString @ 53 NONAME
+	_ZN18VideoActivityState8instanceEv @ 54 NONAME
+	_ZN18VideoActivityStateC1Ev @ 55 NONAME
+	_ZN18VideoActivityStateC2Ev @ 56 NONAME
+	_ZN18VideoActivityStateD0Ev @ 57 NONAME
+	_ZN18VideoActivityStateD1Ev @ 58 NONAME
+	_ZN18VideoActivityStateD2Ev @ 59 NONAME
+	_ZNK13VideoServices10metaObjectEv @ 60 NONAME
+	_ZNK13VideoServices12contextTitleEv @ 61 NONAME
+	_ZNK13VideoServices17getBrowseCategoryEv @ 62 NONAME
+	_ZNK13VideoServices8sortRoleEv @ 63 NONAME
+	_ZNK17VideoPlayerEngine10metaObjectEv @ 64 NONAME
+	_ZTI13VideoServices @ 65 NONAME
+	_ZTI17VideoPlayerEngine @ 66 NONAME
+	_ZTI18VideoActivityState @ 67 NONAME
+	_ZTV13VideoServices @ 68 NONAME
+	_ZTV17VideoPlayerEngine @ 69 NONAME
+	_ZTV18VideoActivityState @ 70 NONAME
 
--- a/videoplayerapp/inc/videoplayerengine.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/inc/videoplayerengine.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: ou1cpsw#22 %
+// Version : %version: ou1cpsw#23 %
 
 #ifndef VIDEOPLAYERENGINE_H
 #define VIDEOPLAYERENGINE_H
@@ -34,6 +34,7 @@
 class VideoServices;
 class VideoPlaybackWrapper;
 class AfActivityStorage;
+class VideoIadUpdateWrapper;
 
 /**
  *  VideoPlayerEngine
@@ -95,6 +96,8 @@
         bool shouldActivateCollectionView();
         
         void handlePlaybackFailure(int errorCode);
+        
+        void checkForUpdates();
 
     private:
         bool                      mIsService;
@@ -114,6 +117,7 @@
         
         AfActivityStorage*        mActivityStorage;
 
+        VideoIadUpdateWrapper*    mIadUpdateWrapper;
 };
 
 #endif // VIDEOPLAYERENGINE_H
--- a/videoplayerapp/videoplayer/resources/service_conf.xml	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayer/resources/service_conf.xml	Tue Oct 05 09:26:49 2010 +0300
@@ -4,23 +4,11 @@
   <filepath>No path</filepath>
   <description>Video services</description>
   <interface>
-     <name>IVideoFetch</name>
-     <version>1.0</version>
-     <description>Interface to fetch video URI</description>
-     <customproperty key="deprecatedsn">Video Fetcher</customproperty>
-   </interface>
-  <interface>
      <name>com.nokia.symbian.IVideoFetch</name>
      <version>1.0</version>
      <description>Interface to fetch video URI</description>
    </interface>
   <interface>
-     <name>IVideoBrowse</name>
-     <version>1.0</version>
-     <description>Interface to browse categorized video content</description>
-     <customproperty key="deprecatedsn">Video Browse</customproperty>
-   </interface>
-  <interface>
      <name>com.nokia.symbian.IVideoBrowse</name>
      <version>1.0</version>
      <description>Interface to browse categorized video content</description>
--- a/videoplayerapp/videoplayer/sis/videoplayer_stub.pkg	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayer/sis/videoplayer_stub.pkg	Tue Oct 05 09:26:49 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; SIS header: name, uid, version
-# {"videoplayer"}, (0x200211FE), 10,10,2, TYPE=SA
+# {"videoplayer"}, (0x200211FE), 10,10,3, TYPE=SA
 
 ; Localised Vendor name
 %{"Nokia"}
--- a/videoplayerapp/videoplayer/sis/videoplayer_udeb.pkg	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayer/sis/videoplayer_udeb.pkg	Tue Oct 05 09:26:49 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; SIS header: name, uid, version
-#{"videoplayer"},(0x200211FE),10,10,2,TYPE=SA, RU
+#{"videoplayer"},(0x200211FE),10,10,3,TYPE=SA, RU
 
 ; Localised Vendor name
 %{"Nokia"}
--- a/videoplayerapp/videoplayer/sis/videoplayer_urel.pkg	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayer/sis/videoplayer_urel.pkg	Tue Oct 05 09:26:49 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; SIS header: name, uid, version
-#{"videoplayer"},(0x200211FE),10,10,2,TYPE=SA, RU
+#{"videoplayer"},(0x200211FE),10,10,3,TYPE=SA, RU
 
 ; Localised Vendor name
 %{"Nokia"}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/inc/videoiadupdatewrapper.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials re made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of VideoIadUpdateWrapper
+*
+*/
+
+// Version : %version: 
+
+#ifndef __VIDEOIADUPDATEWRAPPER_H__
+#define __VIDEOIADUPDATEWRAPPER_H__
+
+#include <qobject.h>
+#include <iaupdateobserver.h>
+
+class CIAUpdate;
+class CIAUpdateParameters;
+class MMPXViewUtility;
+
+class VideoIadUpdateWrapper : public QObject, public MIAUpdateObserver
+{
+    /**
+     * Define to be able to use signals and slots.
+     */    
+    Q_OBJECT
+
+    /**
+     * Disable copy-constructor and assignment operator.
+     */
+    Q_DISABLE_COPY(VideoIadUpdateWrapper)     
+    
+public:
+
+    /**
+     * Constructor
+     */    
+    VideoIadUpdateWrapper();
+
+    /**
+     * Destructor
+     */    
+    virtual ~VideoIadUpdateWrapper();
+    
+    /**
+     * Starts the update process.
+     */
+    void checkForUpdates();
+
+private: // New methods
+
+    /** 
+     * From MIAUpdateObserver.
+     * This callback function is called when the update checking operation has completed.
+     *
+     * @param errorCode The error code of the observed update operation.
+     *                   KErrNone for successful completion, 
+     *                   otherwise a system wide error code.
+     * @param availableUpdates Number of the updates that were found available.
+     *
+     */
+    void CheckUpdatesComplete(TInt errorCode, TInt availableUpdates);
+
+    /** 
+     * From MIAUpdateObserver.
+     * This callback function is called when an update operation has completed.
+     * Even if multiple functions re provided to start different update operations,
+     * this callback function is always called after an update operation has completed.
+     *
+     * @param errorCode The error code of the completed update operation.
+     *                   KErrNone for successful completion, 
+     *                   otherwise a system wide error code.
+     * @param result Details about the completed update operation.
+     *                Ownership is transferred.
+     *
+     */
+    void UpdateComplete(TInt errorCode, CIAUpdateResult* resultDetails);
+
+    /** 
+     * From MIAUpdateObserver.
+     * This callback function is called when an update query operation has completed.
+     *
+     * @param errorCode The error code of the observed query operation.
+     *                   KErrNone for successful completion, 
+     *                   otherwise a system wide error code.
+     * @param updateNow ETrue informs that an update operation should be started.
+     *                   EFalse informs that there is no need to start an update
+     *                   operation.
+     *                   
+     */
+    void UpdateQueryComplete(TInt errorCode, TBool updateNow);
+    
+private:
+    
+    void doCheckForUpdatesL();
+    
+    void cleanup();
+    
+private:
+    
+    /**
+     * IAD update API.
+     */
+    CIAUpdate* mUpdate;
+
+    /**
+     * IAD update parameters.
+     */
+    CIAUpdateParameters* mParameters;
+
+};
+
+#endif // __VIDEOIADUPDATEWRAPPER_H__
+
+// End of file.
--- a/videoplayerapp/videoplayerengine/inc/videoservicebrowse.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/inc/videoservicebrowse.h	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 4 %
+// Version : %version: 5 %
 
 #ifndef VIDEOSERVICEBROWSE_H
 #define VIDEOSERVICEBROWSE_H
@@ -32,7 +32,9 @@
     Q_OBJECT
     
 public:
+
     VideoServiceBrowse( VideoServices *parent, QLatin1String service );
+
     ~VideoServiceBrowse();
     
 public:
@@ -82,16 +84,6 @@
     /**
      *  Browse video
      *
-     *  @param title, Title of the embedded Videos application
-     *  @param category, Category which type of videos are browsed
-     *  @param sort, Sort type.
-     *  @return None
-     */
-    void browseVideos(const QString &title, int category, int sortRole);
-
-    /**
-     *  Browse video
-     *
      *  @param category, Category which type of videos are browsed
      *  @param sort, Sort type.
      *  @return None
@@ -99,6 +91,7 @@
     void browseVideos(int category, int sortRole);
 
 private:
+
     /** request index of the service */
     int mRequestIndex;
     
--- a/videoplayerapp/videoplayerengine/inc/videoserviceurifetch.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/inc/videoserviceurifetch.h	Tue Oct 05 09:26:49 2010 +0300
@@ -71,27 +71,23 @@
     QString contextTitle() const;
 
 public slots:  // for QTHighway to notify provider about request
+
     /*
      *  Client can use this method launch video URI fetching
      *
      */
     void fetch();
 
-    /*
-     *  Client can use this method launch video URI fetching
-     *
-     * @param title title to be set
-     *
-     */
-    void fetch(const QString& title);
+public slots:  // for provider to notify client
 
-public slots:  // for provider to notify client
     void fetchFailed( int errorCode );
 
 private:
+
     void doComplete( QStringList filesList);
 
 private:
+
     /*
      * The request index 
      */
--- a/videoplayerapp/videoplayerengine/src/mpxvideoplayerappuiengine.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/src/mpxvideoplayerappuiengine.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
  *
 */
 
-// Version : %version:  12 %
+// Version : %version:  ou1cpsw#14 %
 
 
 
@@ -750,26 +750,40 @@
 //
 TInt CMpxVideoPlayerAppUiEngine::ReplayAfterPriorTermination(const TDesC& aFileName)
 {
-    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::ReplayAfterPriorTermination()"));        
+    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::ReplayAfterPriorTermination()"));      
+    
+    TInt error = KErrNone; 
     
-    ReadActivityData();
-    TMPXItemId mpxItemId(iLastPlayedItemId);
-    
-    TInt error = KErrNone;    
+    RFile file;
+    RFs fs;
+    TInt fileError = fs.Connect();
+    if ( fileError == KErrNone )
+    {
+        fileError = file.Open( fs, aFileName, EFileRead | EFileShareReadersOrWriters  );
     
-    MPX_TRAP( error,         
-        CMPXMedia* media = CMPXMedia::NewL();
-        CleanupStack::PushL(media);
-        
-        media->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem );  
-        media->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, mpxItemId );
-        media->SetTextValueL( KMPXMediaGeneralTitle, aFileName );
-        media->SetTextValueL( KMPXMediaGeneralUri, aFileName );    
-        
-        OpenMediaL( *media );
-        
-        CleanupStack::PopAndDestroy( media );
-        );
+        if ( fileError == KErrNone && file.SubSessionHandle() )
+        {
+            file.Close();
+            
+            ReadActivityData();
+            TMPXItemId mpxItemId(iLastPlayedItemId);
+                               
+            MPX_TRAP( error,         
+                CMPXMedia* media = CMPXMedia::NewL();
+                CleanupStack::PushL(media);
+                
+                media->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem );  
+                media->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, mpxItemId );
+                media->SetTextValueL( KMPXMediaGeneralTitle, aFileName );
+                media->SetTextValueL( KMPXMediaGeneralUri, aFileName );    
+                
+                OpenMediaL( *media );
+                
+                CleanupStack::PopAndDestroy( media );
+                );        
+        }  
+        fs.Close();
+    }
     
     return error;
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/src/videoiadupdatewrapper.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,180 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of VideoIadUpdateWrapper
+*
+*/
+
+// Version : %version: 
+
+#include <iaupdate.h>
+#include <iaupdateparameters.h>
+#include <iaupdateresult.h>
+#include <featmgr.h>
+
+#include "videoiadupdatewrapper.h"
+#include "mpxvideo_debug.h"
+
+const TUid KIadParamUid = { 0x200211FE }; // Uid from videoplayer.pkg
+_LIT( KIadParamExec, "videoplayer.exe" ); // Executable of videoplayer
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::VideoIadUpdateWrapper()
+// -------------------------------------------------------------------------------------------------
+//
+VideoIadUpdateWrapper::VideoIadUpdateWrapper() : 
+ mUpdate(0),
+ mParameters(0)
+{
+    MPX_DEBUG(_L("VideoIadUpdateWrapper::VideoIadUpdateWrapper()"));
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::~VideoIadUpdateWrapper()
+// -------------------------------------------------------------------------------------------------
+//
+VideoIadUpdateWrapper::~VideoIadUpdateWrapper()
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::~VideoIadUpdateWrapper()"));
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::checkForUpdates()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoIadUpdateWrapper::checkForUpdates()
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::checkForUpdates()"));
+    
+    TRAP_IGNORE( doCheckForUpdatesL() );
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::doCheckForUpdatesL()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoIadUpdateWrapper::doCheckForUpdatesL()
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::doCheckForUpdatesL()"));
+    
+    FeatureManager::InitializeLibL();
+    
+    TBool isSupported = FeatureManager::FeatureSupported(KFeatureIdIAUpdate);
+    
+    FeatureManager::UnInitializeLib();
+    
+    if(isSupported)
+    {
+        if(!mUpdate)
+        {
+            mUpdate = CIAUpdate::NewL(*this);
+        }
+        if(!mParameters)
+        {
+            mParameters = CIAUpdateParameters::NewL();
+        }
+        
+        mParameters->SetUid(KIadParamUid);
+        // We want Videos to be started after update is finished
+        mParameters->SetCommandLineExecutableL(KIadParamExec);
+        mParameters->SetShowProgress(EFalse);
+    
+        // Check the updates
+        mUpdate->CheckUpdates(*mParameters);
+    }
+    else
+    {
+        MPX_DEBUG(_L("VideoIadUpdateWrapper::doCheckForUpdatesL() Feature not supported."));
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::CheckUpdatesComplete()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoIadUpdateWrapper::CheckUpdatesComplete(TInt errorCode, TInt availableUpdates)
+{
+    MPX_ENTER_EXIT( _L("VideoIadUpdateWrapper::CheckUpdatesComplete()"), 
+        _L("aErrorCode: %d, availableUpdates: %d"), errorCode, availableUpdates );
+
+    if(errorCode == KErrNone)
+    {
+        if(availableUpdates > 0 && mUpdate)
+        {
+            // There were some updates available and video list is active.
+            mUpdate->UpdateQuery();
+        }
+        else
+        {
+            // No updates available or playback ongoing.
+            cleanup();
+        }
+    }    
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::UpdateComplete()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoIadUpdateWrapper::UpdateComplete(TInt errorCode, CIAUpdateResult* resultDetails)
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::UpdateComplete()"), _L("aErrorCode: %d, SuccessCount: %d"), 
+            errorCode, resultDetails->SuccessCount());
+    
+    delete resultDetails; // Ownership was transferred, so this must be deleted by the client
+    
+    // We do not need the client-server session anymore
+    cleanup();
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::UpdateQueryComplete()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoIadUpdateWrapper::UpdateQueryComplete(TInt errorCode, TBool updateNow)
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::UpdateQueryComplete()"),
+            _L("aErrorCode: %d, updateNow: %d"), errorCode, updateNow);
+    
+    if(errorCode == KErrNone)
+    {
+        if(updateNow && mUpdate)
+        {
+            // User choosed to update now, so let's launch the IAUpdate UI.
+            mUpdate->ShowUpdates(*mParameters);
+        }
+        else
+        {
+            // The answer was 'Later'. 
+            cleanup();
+        }
+    }
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::cleanup()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoIadUpdateWrapper::cleanup()
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::cleanup()"));
+    
+    delete mUpdate;
+    mUpdate = 0;
+    
+    delete mParameters;
+    mParameters = 0;  
+}
+
+// End of file.
--- a/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 47 %
+// Version : %version: 49 %
 
 
 #include <QApplication>
@@ -33,6 +33,7 @@
 #include "videoactivitystate.h"
 #include "videoplaybackwrapper.h"
 #include "videoservices.h"
+#include "videoiadupdatewrapper.h"
 #include "mpxvideo_debug.h"
 
 // -------------------------------------------------------------------------------------------------
@@ -51,6 +52,7 @@
     , mPlaybackWrapper( 0 )
     , mVideoServices( 0 )
     , mActivityStorage( 0 )
+    , mIadUpdateWrapper( 0 )
 {
     MPX_DEBUG(_L("VideoPlayerEngine::VideoPlayerEngine()"));
 }
@@ -94,6 +96,8 @@
 
     delete mActivityStorage;
     
+    delete mIadUpdateWrapper;
+    
     // disconnect all signals 
     disconnect();
 }
@@ -181,6 +185,7 @@
             // if replay fails, then activate collection view instead
             if ( error != KErrNone )
             {
+                handlePlaybackFailure(error);
                 loadPluginAndCreateView( MpxHbVideoCommon::CollectionView );  
                 activateView( MpxHbVideoCommon::CollectionView );                 
             }            
@@ -255,6 +260,11 @@
 	
     createMissingViews();
 	
+    if (!mEmbedded && !isPlayServiceInvoked())
+    {
+        checkForUpdates();
+    }
+    
     mDelayedLoadDone = true;
 }
 
@@ -716,44 +726,43 @@
 {                    
     MPX_DEBUG(_L("VideoPlayerEngine::handlePlaybackFailure()"));        
             
-    if ( mIsPlayService )  
-    { 
-        HbNotificationDialog* dlg = new HbNotificationDialog();
+    HbNotificationDialog* dlg = new HbNotificationDialog();
+    
+    if ( mIsPlayService )
+    {
+        connect( dlg, SIGNAL( aboutToClose() ), this, SLOT( serviceQuit() ) );    
+    }    
         
-        connect( dlg, SIGNAL( aboutToClose() ), this, SLOT( serviceQuit() ) );
-        
-        switch ( errorCode )
+    switch ( errorCode )
+    {
+        case KErrNotSupported:
+        case KErrUnknown:
+        case KErrCorrupt:
+        case KErrTooBig:
         {
-            case KErrNotSupported:
-            case KErrUnknown:
-            case KErrCorrupt:
-            case KErrTooBig:
-            {
-                dlg->setTitle( hbTrId( "txt_videos_info_invalid_clip_operation_canceled" ) );
-                break;
-            }
-            case KErrArgument:
-            case KErrBadName:
-            {
-                dlg->setTitle( hbTrId( "txt_videos_info_unable_to_connect_invalid_url" ) );
-                break;
-            }  
-            case KErrNotFound:
-            {
-                dlg->setTitle( hbTrId( "txt_videos_info_file_not_found" ) );
-                break;
-            } 
-            default:
-            {
-                const QString textToShow = mPlaybackWrapper->resloveErrorString(errorCode);
-                dlg->setTitle(textToShow);
-                break;
-            }
+            dlg->setTitle( hbTrId( "txt_videos_info_invalid_clip_operation_canceled" ) );
+            break;
         }
+        case KErrArgument:
+        case KErrBadName:
+        {
+            dlg->setTitle( hbTrId( "txt_videos_info_unable_to_connect_invalid_url" ) );
+            break;
+        }  
+        case KErrNotFound:
+        {
+            dlg->setTitle( hbTrId( "txt_videos_info_file_not_found" ) );
+            break;
+        } 
+        default:
+        {
+            const QString textToShow = mPlaybackWrapper->resloveErrorString(errorCode);
+            dlg->setTitle(textToShow);
+            break;
+        }
+    }
         
-        dlg->show();                      
- 
-    }
+    dlg->show();                      
 }
 
 
@@ -769,5 +778,17 @@
     XQServiceUtil::toBackground( false );
 }
 
+// -------------------------------------------------------------------------------------------------
+// checkForUpdates()
+// -------------------------------------------------------------------------------------------------
+//
+void VideoPlayerEngine::checkForUpdates()
+{
+    if(!mIadUpdateWrapper)
+    {
+        mIadUpdateWrapper = new VideoIadUpdateWrapper();
+    }
+    mIadUpdateWrapper->checkForUpdates();
+}
 
 // End of file
--- a/videoplayerapp/videoplayerengine/src/videoservicebrowse.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/src/videoservicebrowse.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 4 %
+// Version : %version: 5 %
 
 #include <hbapplication.h>
 
@@ -108,38 +108,6 @@
     return mSortRole;
 }
 
-// -------------------------------------------------------------------------------------------------
-// browseVideos()
-// -------------------------------------------------------------------------------------------------
-//
-void VideoServiceBrowse::browseVideos(const QString &title,
-    int category,
-    int sortRole)
-{    
-    MPX_ENTER_EXIT(_L("VideoServiceBrowse::browseVideos()"));	
-
-    // set application title
-    QString appTitle(title);
-    if (appTitle.isEmpty())
-    {
-        appTitle = hbTrId("txt_videos_title_videos");
-    }
-    
-    mTitle = appTitle;
-    mCategory = category;
-    mSortRole = sortRole;
-
-    // store async request id
-    mRequestIndex = setCurrentRequestAsync();
-
-    // start service
-    mServiceApp->setCurrentService(VideoServices::EBrowse);
-    emit mServiceApp->titleReady(appTitle);
-    emit mServiceApp->activated(MpxHbVideoCommon::ActivateCollectionView);
-
-    MPX_DEBUG(_L("VideoServiceBrowse::browseVideos() : mRequestIndex = %d"), mRequestIndex );
-}
-
 // ----------------------------------------------------------------------------
 // isActive()
 // ----------------------------------------------------------------------------
--- a/videoplayerapp/videoplayerengine/src/videoservices.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/src/videoservices.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: da1mmcf#10 %
+// Version : %version: 11 %
 
 #include "videoplayerengine.h"
 #include "videoservices.h"
@@ -128,13 +128,13 @@
     mServiceView = new VideoServiceView( this, engine, 
                                  QLatin1String("videoplayer.com.nokia.symbian.IFileView") ); 
           
-    // New service, new interface
-    mServiceUriFetch = new VideoServiceUriFetch( this, 
-                                 QLatin1String("videoplayer.com.nokia.symbian.IVideoFetch") ); 
+    //URI fetch service
+    mServiceUriFetch = new VideoServiceUriFetch( this,
+                                 QLatin1String("videoplayer.com.nokia.symbian.IVideoFetch") );
 
-    // New service, new interface
-    mServiceBrowse = new VideoServiceBrowse( this, 
-                                 QLatin1String("videoplayer.com.nokia.symbian.IVideoBrowse") ); 
+    //Browse service
+    mServiceBrowse = new VideoServiceBrowse( this,
+                                 QLatin1String("videoplayer.com.nokia.symbian.IVideoBrowse") );
 
     // New service, old interface
     mServicePlayDeprecatedNewService = new VideoServicePlay( this, engine, 
@@ -151,27 +151,8 @@
     // Old service, old interface 
     mServiceViewDeprecatedOldService = new VideoServiceView( this, engine, 
                                                       QLatin1String("com.nokia.Videos.IFileView") );     
-    
-    // New service, old interface
-    mServiceUriFetchDeprecatedNewService = new VideoServiceUriFetch( this, 
-                                                      QLatin1String("videoplayer.IVideoFetch") ); 
-
-    // Old service, old interface
-    mServiceUriFetchDeprecatedOldService = new VideoServiceUriFetch( this, 
-                                                      QLatin1String("com.nokia.Videos.IVideoFetch") );     
-
-    // New service, old interface
-    mServiceBrowseDeprecatedNewService = new VideoServiceBrowse( this, 
-                                                      QLatin1String("videoplayer.IVideoBrowse")) ; 
-
-    // Old service, old interface
-    mServiceBrowseDeprecatedOldService = new VideoServiceBrowse( this, 
-                                                      QLatin1String("com.nokia.Videos.IVideoBrowse") ); 
-	
     // new service, new interface
-    mServiceUriView = new VideoServiceUri(  this, engine, QLatin1String("videoplayer.com.nokia.symbian.IUriView"));	
-    
-	
+    mServiceUriView = new VideoServiceUri(  this, engine, QLatin1String("videoplayer.com.nokia.symbian.IUriView"));
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -190,10 +171,6 @@
     delete mServicePlayDeprecatedOldService;
     delete mServiceViewDeprecatedNewService;
     delete mServiceViewDeprecatedOldService;
-    delete mServiceBrowseDeprecatedNewService;
-    delete mServiceUriFetchDeprecatedNewService;
-    delete mServiceBrowseDeprecatedOldService;
-    delete mServiceUriFetchDeprecatedOldService;
     delete mServiceUriView;
 }
 
@@ -222,20 +199,6 @@
     {
         category = mServiceBrowse->getBrowseCategory();
     }
-    else if ( mServiceBrowseDeprecatedNewService && 
-              mServiceBrowseDeprecatedOldService && 
-              ! ( XQServiceUtil::interfaceName().contains("symbian") ) )
-    {
-    	if ( mServiceBrowseDeprecatedNewService->isActive() )
-    	{
-            category = mServiceBrowseDeprecatedNewService->getBrowseCategory();
-    	}
-    	else
-    	{
-            category = mServiceBrowseDeprecatedOldService->getBrowseCategory();
-    	}
-    }
-
     return category;
 }
 
@@ -266,20 +229,6 @@
     	{
             title = mServiceUriFetch->contextTitle();
     	}
-    	else if ( mServiceUriFetchDeprecatedNewService && 
-                  mServiceUriFetchDeprecatedOldService && 
-                  ! ( XQServiceUtil::interfaceName().contains("symbian") ) )
-    	{
-
-            if ( mServiceUriFetchDeprecatedNewService->isActive() )
-    	    {
-    	        title = mServiceUriFetchDeprecatedNewService->contextTitle();
-            }
-    	    else
-    	    {
-    	        title = mServiceUriFetchDeprecatedOldService->contextTitle();
-    	    }
-    	}
     }
     else if ( mCurrentService == VideoServices::EBrowse )
     {
@@ -287,21 +236,8 @@
         {
             title = mServiceBrowse->contextTitle();
         }
-    	else if ( mServiceBrowseDeprecatedNewService && 
-                  mServiceBrowseDeprecatedOldService && 
-                  ! ( XQServiceUtil::interfaceName().contains("symbian") ) )
-        {
-            if ( mServiceBrowseDeprecatedNewService->isActive() )
-            {
-                title = mServiceBrowseDeprecatedNewService->contextTitle();
-            }
-            else
-            {
-                title = mServiceBrowseDeprecatedOldService->contextTitle();
-            }
-        }
     }
-    
+
     return title;
 }
 
@@ -321,21 +257,8 @@
         {
             sortRole = mServiceBrowse->sortRole();
         }
-    	else if ( mServiceBrowseDeprecatedNewService && 
-                  mServiceBrowseDeprecatedOldService && 
-                  ! ( XQServiceUtil::interfaceName().contains("symbian") ) )
-        {
-            if ( mServiceBrowseDeprecatedNewService->isActive() )
-            {
-                sortRole = mServiceBrowseDeprecatedNewService->sortRole();
-            }
-            else
-            {
-                sortRole = mServiceBrowseDeprecatedOldService->sortRole();
-            }
-        }
     }
-    
+
     return sortRole;
 }
 
@@ -355,18 +278,6 @@
     {
     	mServiceUriFetch->complete( list );
     }
-    else if ( mServiceUriFetchDeprecatedNewService && mServiceUriFetchDeprecatedOldService )
-    {
-    	if ( mServiceUriFetchDeprecatedNewService->isActive() )
-    	{
-            mServiceUriFetchDeprecatedNewService->complete( list );
-    	}
-    	else
-    	{
-            mServiceUriFetchDeprecatedOldService->complete( list );
-    	}
-    }
-
     mFetchSelected = true;
 }
 
@@ -382,19 +293,6 @@
     {
         mServiceBrowse->complete();
     }
-    else if ( mServiceBrowseDeprecatedNewService && 
-              mServiceBrowseDeprecatedOldService && 
-              ! ( XQServiceUtil::interfaceName().contains("symbian") ) )
-    {
-        if ( mServiceBrowseDeprecatedNewService->isActive() )
-    	{
-            mServiceBrowseDeprecatedNewService->complete();
-    	}
-    	else
-    	{
-            mServiceBrowseDeprecatedOldService->complete();
-    	}
-    }
 }
 
 // End of file
--- a/videoplayerapp/videoplayerengine/src/videoserviceurifetch.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/src/videoserviceurifetch.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 5 %
+// Version : %version: 6 %
 
 #include <hbapplication.h>
 
@@ -153,29 +153,3 @@
     MPX_DEBUG(_L("VideoServiceUriFetch::fetch() : mRequestIndex(%d)"), mRequestIndex );
 }
 
-// ----------------------------------------------------------------------------
-// fetch()
-// ----------------------------------------------------------------------------
-//
-void VideoServiceUriFetch::fetch(const QString& title)
-{
-	MPX_ENTER_EXIT(_L("VideoServiceUriFetch::fetch()"),
-                   _L("title = %s"), title.data() );
-    
-    emit mServiceApp->activated(MpxHbVideoCommon::ActivateCollectionView);
-
-    mTitle = title;
-
-    if (mTitle.isEmpty())
-    {
-    	mTitle = hbTrId("txt_videos_title_videos");
-    }
-
-   	emit mServiceApp->titleReady(mTitle);
-
-    mServiceApp->setCurrentService(VideoServices::EUriFetcher);
-
-    mRequestIndex = setCurrentRequestAsync();
-    MPX_DEBUG(_L("VideoServiceUriFetch::fetch() : mRequestIndex(%d)"), mRequestIndex );
-}
-
--- a/videoplayerapp/videoplayerengine/tsrc/testvideoappuiengine/testvideoappuiengine.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoappuiengine/testvideoappuiengine.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -14,7 +14,7 @@
 # Description: Project file for building Videoplayer components
 #
 #
-# Version : %version: 4 %
+# Version : %version: 5 %
 
 
 TEMPLATE = app
@@ -28,7 +28,8 @@
 
 INCLUDEPATH += stub/inc \
                ../../../../inc \
-               $$MW_LAYER_SYSTEMINCLUDE
+               $$MW_LAYER_SYSTEMINCLUDE \
+               $$APP_LAYER_SYSTEMINCLUDE
               
 DEPENDPATH += stub/inc stub/src inc src
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/inc/testvideoiadupdatewrapper.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Videoplayerengine test class declaration.
+*
+*/
+
+// Version : %version: 1 %
+
+#ifndef __TESTVIDEOIADUPDATEWRAPPER_H__
+#define __TESTVIDEOIADUPDATEWRAPPER_H__
+
+
+// INCLUDES
+#include <QtTest/QtTest>
+
+class VideoIadUpdateWrapper;
+
+class TestVideoIadUpdateWrapper : public QObject
+{
+
+    Q_OBJECT
+
+    public: 
+
+        /**
+         * Contructor.
+         *
+         */
+        TestVideoIadUpdateWrapper();
+
+        /**
+         * Destructor.
+         *
+         */
+        virtual ~TestVideoIadUpdateWrapper();
+
+    private slots:
+
+        void init();
+        void cleanup();
+        void TestCreateDelete();
+        void TestCheckForUpdates();
+        void TestCheckUpdatesComplete();
+        void TestUpdateComplete();
+        void TestUpdateQueryComplete();
+        void TestDoCheckForUpdatesL();
+        void TestCleanup();
+
+        // called after last test case executed
+        void cleanupTestCase();
+
+    signals:
+
+	    void aboutToQuit();
+
+    private:
+
+	    VideoIadUpdateWrapper*  mTestObject;
+};
+
+#endif  // __TESTVIDEOIADUPDATEWRAPPER_H__
+
+// End of file
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/src/testvideoiadupdatewrapper.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,289 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Videoplayerengine test class implementation.
+*
+*/
+
+// Version : %version:  1 %
+
+// INCLUDES
+
+#include <QtTest/QtTest>
+#include <qdebug.h>
+#include <hbapplication.h>
+
+#include "mpxhbvideocommondefs.h"
+#include "testvideoiadupdatewrapper.h"
+#include "mpxvideo_debug.h"
+
+#include "iaupdate.h"
+#include "iaupdateparameters.h"
+#include "iaupdateresult.h"
+
+#define private public
+#include "videoiadupdatewrapper.h"
+#undef private
+
+extern int IsFeatureSupported;
+
+// ---------------------------------------------------------------------------
+// main
+// ---------------------------------------------------------------------------
+//
+int main(int argc, char *argv[])
+{
+    HbApplication app(argc, argv);
+
+    TestVideoIadUpdateWrapper tc;
+
+    char *pass[3];
+    pass[0] = argv[0];
+    pass[1] = "-o";
+    pass[2] = "c:\\data\\TestVideoIadUpdateWrapper.txt";
+
+    return QTest::qExec(&tc, 3, pass);
+}
+
+
+TestVideoIadUpdateWrapper::TestVideoIadUpdateWrapper()
+    : mTestObject( 0 )
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::TestVideoIadUpdateWrapper()"));
+}
+
+TestVideoIadUpdateWrapper::~TestVideoIadUpdateWrapper()
+{
+    MPX_ENTER_EXIT(_L("TestVideoIadUpdateWrapper::~TestVideoIadUpdateWrapper()"));
+    
+    delete mTestObject;
+    mTestObject = 0;
+}
+
+
+void TestVideoIadUpdateWrapper::init()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::init()"));
+    
+    mTestObject = new VideoIadUpdateWrapper();
+}
+
+void TestVideoIadUpdateWrapper::cleanup()
+{
+    MPX_ENTER_EXIT(_L("TestVideoIadUpdateWrapper::cleanup()"));
+
+    delete mTestObject;
+    mTestObject = 0;
+}
+
+void TestVideoIadUpdateWrapper::TestCreateDelete()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::testCreateDelete()"));
+    
+    init();
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+    
+    cleanup();
+
+    QVERIFY( mTestObject == 0 );
+}
+
+void TestVideoIadUpdateWrapper::cleanupTestCase()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::cleanupTestCase()"));
+    // all common cleanup here
+}
+
+void TestVideoIadUpdateWrapper::TestCheckForUpdates()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::testCheckForUpdates()"));
+
+    init();
+
+    QVERIFY( mTestObject );
+    
+    IsFeatureSupported = 1;
+    
+    mTestObject->checkForUpdates();
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate != 0);
+    QVERIFY( mTestObject->mParameters != 0);
+    
+    cleanup();
+}
+
+void TestVideoIadUpdateWrapper::TestCheckUpdatesComplete()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::TestCheckUpdatesComplete()"));
+
+    init();
+
+    QVERIFY( mTestObject );
+    
+    // error case: do nothing
+    TInt errorCode = 1;
+    TInt availableUpdates = 0;
+    
+    mTestObject->CheckUpdatesComplete(errorCode, availableUpdates);
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+
+    // update available
+    errorCode=0;
+    availableUpdates=1;
+    
+    mTestObject->mUpdate = CIAUpdate::NewL( *mTestObject );
+    mTestObject->mParameters = CIAUpdateParameters::NewL();
+    mTestObject->CheckUpdatesComplete(errorCode, availableUpdates);
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate != 0);
+    QVERIFY( mTestObject->mParameters != 0);    
+    
+    // no update, everything should be deleted
+    errorCode = 0;
+    availableUpdates = 0;
+    
+    mTestObject->CheckUpdatesComplete(errorCode, availableUpdates);
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+    
+
+    
+    cleanup();
+}
+
+void TestVideoIadUpdateWrapper::TestUpdateComplete()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::TestUpdateComplete()"));
+
+    init();
+
+    QVERIFY( mTestObject );
+    TInt errorCode(0);
+    CIAUpdateResult* resultDetails = new CIAUpdateResult;    
+    mTestObject->UpdateComplete(errorCode, resultDetails);
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+    
+    cleanup();
+}
+
+void TestVideoIadUpdateWrapper::TestUpdateQueryComplete()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::TestUpdateQueryComplete()"));
+
+    init();
+
+    QVERIFY( mTestObject );
+    
+    // no error, no update: cleans up the members.
+    
+    TInt errorCode(0);
+    TBool updateNow(0);
+
+    mTestObject->mUpdate = CIAUpdate::NewL( *mTestObject );
+    mTestObject->mParameters = CIAUpdateParameters::NewL();
+    
+    mTestObject->UpdateQueryComplete(errorCode, updateNow);
+    
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+    
+    // error case: does nothing
+    
+    errorCode = 1;
+    updateNow = 0;
+    
+    mTestObject->UpdateQueryComplete(errorCode, updateNow);
+    
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+    
+    // the update case: should preserve members, strats the update.
+    
+    errorCode = 0;
+    updateNow = 1;
+    
+    mTestObject->mUpdate = CIAUpdate::NewL(  *mTestObject  );
+    mTestObject->mParameters = CIAUpdateParameters::NewL();
+    
+    mTestObject->UpdateQueryComplete(errorCode, updateNow);
+    
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate != 0);
+    QVERIFY( mTestObject->mParameters != 0);
+    
+    cleanup();
+}
+
+void TestVideoIadUpdateWrapper::TestDoCheckForUpdatesL()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::TestdoCheckForUpdatesL()"));
+
+    init();
+
+    QVERIFY( mTestObject );
+    
+    // feature not supported
+
+    IsFeatureSupported = 0;
+    mTestObject->doCheckForUpdatesL();
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+
+    // feature  supported, initializes the data
+    
+    IsFeatureSupported = 1;
+    mTestObject->doCheckForUpdatesL();
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate != 0);
+    QVERIFY( mTestObject->mParameters != 0);
+    
+    cleanup();
+}
+
+void TestVideoIadUpdateWrapper::TestCleanup()
+{
+    MPX_DEBUG(_L("TestVideoIadUpdateWrapper::Testcleanup()"));
+
+    init();
+
+    QVERIFY( mTestObject );
+    
+    mTestObject->cleanup();
+
+    QVERIFY( mTestObject );
+    QVERIFY( mTestObject->mUpdate == 0);
+    QVERIFY( mTestObject->mParameters == 0);
+    
+    cleanup();
+}
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/featmgr.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+#ifndef FEATMGR_H 
+#define FEATMGR_H 
+
+//  INCLUDES
+#include <e32std.h>
+#include <e32svr.h>
+
+#define private public
+#include "videoiadupdatewrapper.h"
+#undef private
+
+
+// FORWARD DECLARATIONS
+class CFeatMgrTlsData;
+
+// DEFINES
+
+// CLASS DECLARATION
+
+// CONSTANTS
+int IsFeatureSupported;
+
+/**
+ Feature manager API.
+ Feature manager API offers the following functionality:
+ - Inquire whether a certain static feature is supported.
+ For usage, see example code at the end of the header file.
+
+@publishedPartner
+@deprecated Use the class CFeatureDiscovery for basic feature queries, or the 
+             class RFeatureControl for advanced feature queries and control.
+*/
+class FeatureManager
+    {
+    public:
+
+        /**
+         This must be called in the scope of the thread before calling
+         any other methods. It sets up TLS. Uninitialization is done
+         by calling the UnInitializeLib() function.
+        
+         @leave KErrNoMemory Memory allocation failure. 
+        
+         @deprecated Use the class CFeatureDiscovery for basic feature queries, or the 
+                     class RFeatureControl for advanced feature queries and control.
+        */
+        static void InitializeLibL(){};
+
+        /**
+         This must be called in the scope of the thread after calling
+         InitializeLibL(). It frees the allocated TLS. Do not call UnInitializeLib() 
+         if InitalizeLibL() leaves.
+        
+         @deprecated Use the class CFeatureDiscovery for basic feature queries, or the 
+                     class RFeatureControl for advanced feature queries and control.
+        */
+        static void UnInitializeLib(){};
+        
+		/**
+         Fetches information whether a certain feature is supported.
+        
+         @param aFeature feature id.
+         @return feature support status.
+        
+         @deprecated Use the class CFeatureDiscovery for basic feature queries, or the 
+                     class RFeatureControl for advanced feature queries and control.
+        */		
+        static TBool FeatureSupported(TInt){ return IsFeatureSupported; };
+      
+    };
+
+#endif      // FEATMGR_H 
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/iaupdate.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,179 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:   This file contains the header file of the CIAUpdate class 
+*
+*/
+
+
+#ifndef IA_UPDATE_H
+#define IA_UPDATE_H
+
+#include <e32base.h>
+#include <e32std.h>
+
+#define private public
+#include "videoiadupdatewrapper.h"
+#undef private
+
+class CIAUpdateManager;
+class CIAUpdateParameters;
+class MIAUpdateObserver;
+
+/**
+ * CIAUpdate object provides methods to handle update actions.
+ * Updating will be targeted to the update items that qualify the requirements
+ * given in CIAUpdateParameters objects. In asynchronous actions, the callback 
+ * functions of MIAUpdateObserver object will be informed about the progress 
+ * of update actions.
+ * 
+ * @see MIAUpdateObserver
+ * @see CIAUpdateParameters
+ *
+ * @since S60 v3.2
+ */
+
+class CIAUpdate : public CBase
+    {
+public:
+
+    /**
+     * @param aObserver Callback functions of the observer are called
+     * when operations that are started from this interface progress.    
+     * @return CIAUpdate* Pointer to the created CIAUpdate object that 
+     * can be used for update actions.
+     *
+     * @since S60 v3.2
+     */
+    static CIAUpdate* NewL( MIAUpdateObserver&  ){return new CIAUpdate;};
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     */
+    virtual ~CIAUpdate(){};
+
+
+    /**
+     * Checks if any updates are available.
+     * This function is asynchronic.
+     *
+     * @note Update check is directed to items that match:
+     *       - CIAUpdateParameters::Uid OR
+     *       - CIAUpdateParameters::SearchCriteria
+     * @note Uid describes either package UID or SID.
+     *       UID is assumed to be SID if update items are not found 
+     *       with the given UID. Then, corresponding package UID is 
+     *       searched from the installed application registry. 
+     *       If corresponding package UID is found, then update items 
+     *       are rechecked. 
+     * @note If Uid is given, then search criteria is omitted.
+     * @note If none of the parameters that are mentioned above is not set, 
+     * then all the updates are checked.
+     *
+     * @note CIAUpdateParameters::ShowProgress defines if a ready-made
+     * wait dialog should be shown in case the operation takes longer time. 
+     * This happens e.g. if the updates are refreshed from the server.
+     *
+     * @param aUpdateParameters Defines the update targets.
+     *
+     * @since S60 v3.2
+     */
+    void CheckUpdates( const CIAUpdateParameters&  ){};
+
+
+    /** 
+     * Starts IAD UI.
+     *
+     * UI will show the update items that qualify the requirements given
+     * in aUpdateParameters.
+     *
+     * Even if the updating is handled in the IAD UI, the observer is informed
+     * about the progression of operations. So, the calling application
+     * may continue correctly after updates are finished.
+     * 
+     * @note IAD UI will show update items that match:
+     *       - CIAUpdateParameters::Uid
+     *       - CIAUpdateParameters::SearchCriteria
+     * @note Uid describes either package UID or SID.
+     *       UID is assumed to be SID if update items are not found 
+     *       with the given UID. Then, corresponding package UID is 
+     *       searched from the installed application registry. 
+     *       If corresponding package UID is found, then update items 
+     *       are rechecked. 
+     * @note If Uid is given, then search criteria is omitted.
+     * @note If none of the parameters that are mentioned above is not set, 
+     * then all the updates are shown in the UI.
+     *
+     * @note When update finishes, the following values are used 
+     * for command line execution:
+     *      - CIAUpdateParameters::CommandLineExecutable
+     *      - CIAUpdateParameters::CommandLineArguments
+     * @note If CIAUpdateParameters::CommandLineExecutable is not set, 
+     * then no command line execution is done.
+     *
+     * @param aUpdateParameters Defines the update targets.
+     *
+     * @since S60 v3.2
+     */
+    void ShowUpdates( const CIAUpdateParameters& ){};
+    
+
+    /** 
+     * All the items that qualify the requirements given in
+     * aUpdateParameters will be updated without opening the IAD UI.
+     * This function is asynchronic.
+     *
+     * @note Update is directed to items that match:
+     *       - CIAUpdateParameters::Uid
+     *       - CIAUpdateParameters::SearchCriteria
+     * @note Uid describes either package UID or SID.
+     *       UID is assumed to be SID if update items are not found 
+     *       with the given UID. Then, corresponding package UID is 
+     *       searched from the installed application registry. 
+     *       If corresponding package UID is found, then update items 
+     *       are rechecked. 
+     * @note If Uid is given, then search criteria is omitted.
+     * @note If none of the parameters that are mentioned above is not set, 
+     * then everything is updated.
+     *
+     * @note When update finishes, the following values are used 
+     * for command line execution:
+     *      - CIAUpdateParameters::CommandLineExecutable
+     *      - CIAUpdateParameters::CommandLineArguments
+     * @note If CIAUpdateParameters::CommandLineExecutable is not set, 
+     * then no command line execution is done.
+     *
+     * @param aUpdateParameters Defines the update targets.
+     *
+     * @since S60 v3.2
+     */
+    void Update( const CIAUpdateParameters& ){};
+
+
+    /** 
+     * This function is provided as a convenience method 
+     * that has localized texts for the query dialog. 
+     * This function does not start any update. 
+     * This function is asynchronic.
+     *
+     * @note The observer is informed when the update query operation has completed.
+     *
+     * @since S60 v3.2
+     */
+    void UpdateQuery(){};
+
+    };
+
+#endif // IA_UPDATE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/iaupdateparameters.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:   This file contains the header file of the CIAUpdateParameters class 
+*
+*/
+
+
+#ifndef IA_UPDATE_PARAMETERS_H
+#define IA_UPDATE_PARAMETERS_H
+
+#include <e32base.h>
+#include <e32cmn.h>
+
+#define private public
+#include "videoiadupdatewrapper.h"
+#undef private
+
+/**
+ * CIAUpdateParameters defines the update targets. 
+ * The update action will be directed only to the objects 
+ * that qualify at least one of the parameter requirements.
+ *
+ * @see CIAUpdate The operation functions provide more detailed
+ * description about what combinations of the parameter values 
+ * are supported.
+ *
+ * @since S60 v3.2
+ */
+class CIAUpdateParameters : public CBase
+    {
+public:
+
+    enum TUpdateImportance
+        {
+        ETest = 0x1,
+        ENormal = 0x2,
+        ERecommended = 0x4,
+        ECritical = 0x8,
+        EMandatory = 0x10,
+        EHidden = 0x20
+        };
+        
+    enum TUpdateType
+        {
+        ESis  = 0x1,
+        EFota = 0x2,
+        ENsu  = 0x4
+        };
+
+    /**
+     * @return CIAUpdateParameters* CIAUpdateParameters object
+     * @exception Leaves with system wide error code.
+     *
+     * @since S60 v3.2
+     */
+    static CIAUpdateParameters* NewL(){ return new CIAUpdateParameters;};
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     */
+    virtual ~CIAUpdateParameters(){};
+
+    /** 
+     * @param aUid Uid describes either package UID or SID.
+     *
+     * @since S60 v3.2
+     */
+    void SetUid( const TUid&  ){};
+
+    /** 
+     * @param aSearchCriteria When correct updates are searched,
+     * this text is used as a criteria when checking the information 
+     * that is attached to the updates.
+     *
+     * @since S60 v3.2
+     */
+    void SetSearchCriteriaL( const TDesC& ){};
+
+     /** 
+     * @return aCommandLineExecutable When the update operation finishes,
+     * the content of this desciptor will be used as a command line executable.
+     *
+     * @since S60 v3.2
+     */
+    void SetCommandLineExecutableL( const TDesC& ){};
+
+    /** 
+     * @param aCommandLineArguments When the update operation finishes,
+     * the content of this desciptor will be used as command line arguments
+     * with the command line executable.
+     *
+     * @since S60 v3.2
+     */
+    void SetCommandLineArgumentsL( const TDesC8& ){};
+
+    /**
+     * If this parameter is set to ETrue,
+     * a ready-made wait dialog with localized texts is
+     * shown if CIAUpdate::CheckUpdates operation takes longer
+     * time to complete. This happens e.g. if the updates are 
+     * refreshed from the server.
+     *
+     * @param aShowProgress If ETrue, a wait dialog is shown when
+     * CIAUpdate::CheckUpdates operation is started. If EFalse,
+     * the dialog is not shown.
+     *
+     * @see CIAUpdate::CheckUpdates
+     *
+     * @since S60 v3.2     
+     */
+    void SetShowProgress( TBool ){};
+
+		
+    // aImportance acts as a importance filter to the found IAD packages. It has no meaning with found FOTA or NSU packages.
+    // If aImportance is not set, all importance types are valid.
+    // See TUpdateImportance for possible values.
+    void SetImportance( TUint ){};
+
+
+    // aType acts as a type filter to the found update packages. 
+    // If aType is not set, all package types are valid.
+    // See TUpdateType for possible values. Combination of 
+    void SetType( TUint ){};
+	
+	
+    // If refresh is set on, metadata cache is refreshed from the server when calling
+    // CIAUpdate::CheckUpdates operation. This option should not be set by normal applications.
+    // It is meant for IAUpdate background checker, and caller SID is used to control this. 
+    void SetRefresh( TBool ){};
+	
+};
+
+#endif // IA_UPDATE_PARAMETERS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/stub/inc/iaupdateresult.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:   This file contains the header file of the CIAUpdateResult class 
+*
+*/
+
+
+
+#ifndef IA_UPDATE_RESULT_H
+#define IA_UPDATE_RESULT_H
+
+#include <e32base.h>
+
+#define private public
+#include "videoiadupdatewrapper.h"
+#undef private
+
+/**
+ * CIAUpdateResult gives results of the completed update operation.
+ *
+ * @see CIAUpdate
+ * @see MIAUpdateObserver
+ *
+ * @since S60 v3.2
+ */
+class CIAUpdateResult
+    {
+public:
+
+    CIAUpdateResult(){};
+
+    TInt SuccessCount() const{return 1;};
+    };
+
+#endif // IA_UPDATE_RESULT_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoiadupdatewrapper/testvideoiadupdatewrapper.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description: Project file for iad wrapper test
+#
+
+
+TEMPLATE = app
+TARGET =
+DEFINES += BUILD_VIDEOPLAYERAPP_DLL
+
+DEPENDPATH += . \
+    inc \
+    src
+
+INCLUDEPATH = . \
+              stub/inc \
+              ../../../inc \
+              ../../../../inc \
+              $$MW_LAYER_SYSTEMINCLUDE
+
+CONFIG += qtestlib hb qt
+
+LIBS +=
+
+HEADERS += stub/inc/iaupdate.h \
+           stub/inc/iaupdateparameters.h \
+           stub/inc/iaupdateresult.h \
+           stub/inc/featmgr.h \
+           inc/testvideoiadupdatewrapper.h \
+           ../../inc/videoiadupdatewrapper.h \
+
+SOURCES += \
+#           stub/src/iaupdate.cpp \
+#           stub/src/iaupdateparameters.cpp \
+#           stub/src/iaupdateresult.cpp \
+#           stub/src/featmgr.cpp \
+           src/testvideoiadupdatewrapper.cpp \
+           ../../src/videoiadupdatewrapper.cpp \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/inc/videoiadupdatewrapper.h	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test stub class
+*
+*/
+
+// Version : %version: 
+
+#ifndef __VIDEOIADUPDATEWRAPPER_H__
+#define __VIDEOIADUPDATEWRAPPER_H__
+
+#include <qobject.h>
+
+
+class VideoIadUpdateWrapper : public QObject
+{
+    /**
+     * Define to be able to use signals and slots.
+     */    
+    Q_OBJECT
+
+    /**
+     * Disable copy-constructor and assignment operator.
+     */
+    Q_DISABLE_COPY(VideoIadUpdateWrapper)     
+    
+public:
+
+    /**
+     * Constructor
+     */    
+    VideoIadUpdateWrapper();
+
+    /**
+     * Destructor
+     */    
+    virtual ~VideoIadUpdateWrapper();
+    
+    /**
+     * Starts the update process.
+     */
+    int checkForUpdates();
+
+};
+
+#endif // __VIDEOIADUPDATEWRAPPER_H__
+
+// End of file.
--- a/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/inc/videoserviceurifetch.h	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/inc/videoserviceurifetch.h	Tue Oct 05 09:26:49 2010 +0300
@@ -51,7 +51,7 @@
      * @param title title to be set
      *
      */
-    void fetch(const QString& title);
+    void fetch();
 
 private:
     VideoServices* mServiceApp;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/src/videoiadupdatewrapper.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Test stub class
+*
+*/
+
+// Version : %version: 
+
+#include "videoiadupdatewrapper.h"
+#include "mpxvideo_debug.h"
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::VideoIadUpdateWrapper()
+// -------------------------------------------------------------------------------------------------
+//
+VideoIadUpdateWrapper::VideoIadUpdateWrapper()
+{
+    MPX_DEBUG(_L("VideoIadUpdateWrapper::VideoIadUpdateWrapper()"));
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::~VideoIadUpdateWrapper()
+// -------------------------------------------------------------------------------------------------
+//
+VideoIadUpdateWrapper::~VideoIadUpdateWrapper()
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::~VideoIadUpdateWrapper()"));
+}
+
+// -------------------------------------------------------------------------------------------------
+// VideoIadUpdateWrapper::checkForUpdates()
+// -------------------------------------------------------------------------------------------------
+//
+int VideoIadUpdateWrapper::checkForUpdates()
+{
+    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::checkForUpdates()"));
+}
--- a/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/src/videoserviceurifetch.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/stub/src/videoserviceurifetch.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: %
+// Version : %version: 3 %
 
 #include "videoservices.h"
 #include "videoserviceurifetch.h"
@@ -45,10 +45,9 @@
 // fetch()
 // ----------------------------------------------------------------------------
 //
-void VideoServiceUriFetch::fetch( const QString& title )
+void VideoServiceUriFetch::fetch()
 {
     MPX_DEBUG(_L("VideoServiceUriFetch::fetch()"));
 
-    Q_UNUSED( title );    
     mServiceApp->setCurrentService( VideoServices::EUriFetcher );
 }
--- a/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/testvideoplayerengine.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoplayerengine/testvideoplayerengine.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -14,7 +14,7 @@
 # Description: Project file for building Videoplayer components
 #
 #
-# Version : %version: 16 %
+# Version : %version: 17 %
 
 
 TEMPLATE = app
@@ -53,6 +53,7 @@
            hbview.h \
            videoactivitystate.h \
            afactivitystorage.h \
+	   videoiadupdatewrapper.h \
            ../../../../inc/videoplayerengine.h
 
 SOURCES += videoplaybackwrapper.cpp \
@@ -67,4 +68,5 @@
            videoserviceview.cpp \
            videoactivitystate.cpp \
            afactivitystorage.cpp \
+	   videoiadupdatewrapper.cpp \
            ../../src/videoplayerengine.cpp
--- a/videoplayerapp/videoplayerengine/tsrc/testvideoservices/src/testvideoservices.cpp	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoservices/src/testvideoservices.cpp	Tue Oct 05 09:26:49 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version:  da1mmcf#5 %
+// Version : %version:  6 %
 
 // INCLUDES
 #include <QtTest/QtTest>
@@ -30,6 +30,7 @@
 #define private public
 #include "videoservices.h"
 #include "videoserviceurifetch.h"
+#include "videoservicebrowse.h"
 #include "videoserviceplay.h"
 #include "videoserviceuri.h"
 #undef private
@@ -100,6 +101,7 @@
     QVERIFY( mTestObject );
     QVERIFY( mTestObject->mServicePlay );
     QVERIFY( mTestObject->mServiceUriFetch );
+    QVERIFY( mTestObject->mServiceBrowse );
     QVERIFY( mTestObject->mServiceView );
     QVERIFY( mTestObject->mServiceUriView );
     QVERIFY( mTestObject->mEngine == 0 );
@@ -116,6 +118,7 @@
     QVERIFY( mTestObject );
     QVERIFY( mTestObject->mServicePlay );
     QVERIFY( mTestObject->mServiceUriFetch );
+    QVERIFY( mTestObject->mServiceBrowse );
     QVERIFY( mTestObject->mServiceView );
     QVERIFY( mTestObject->mServiceUriView );    
     QVERIFY( mTestObject->mEngine == mEngine );
@@ -132,6 +135,7 @@
     QVERIFY( mTestObject );
     QVERIFY( mTestObject->mServicePlay );
     QVERIFY( mTestObject->mServiceUriFetch );
+    QVERIFY( mTestObject->mServiceBrowse );
     QVERIFY( mTestObject->mServiceView );
     QVERIFY( mTestObject->mServiceUriView );    
     QVERIFY( mTestObject->mEngine == 0 );
@@ -140,9 +144,12 @@
     mTestObject->mServicePlay->playMedia( QString() );
     QVERIFY( mTestObject->mCurrentService == VideoServices::ENoService );
 
-    mTestObject->mServiceUriFetch->fetch( QString() );
+    mTestObject->mServiceBrowse->browseVideos(0, 0);
+    QVERIFY( mTestObject->mCurrentService == VideoServices::EBrowse );
+
+    mTestObject->mServiceUriFetch->fetch( );
     QVERIFY( mTestObject->mCurrentService == VideoServices::EUriFetcher );
-    
+
     mTestObject->mServicePlay->playMedia( QString() );
     QVERIFY( mTestObject->mCurrentService == VideoServices::EUriFetcher );
     
@@ -154,11 +161,15 @@
     QVERIFY( mTestObject );
     QVERIFY( mTestObject->mServicePlay );
     QVERIFY( mTestObject->mServiceUriFetch );
+    QVERIFY( mTestObject->mServiceBrowse );
     QVERIFY( mTestObject->mServiceView );
     QVERIFY( mTestObject->mEngine == mEngine );
     QVERIFY( mTestObject->mCurrentService == VideoServices::ENoService );
 
-    mTestObject->mServiceUriFetch->fetch( QString() );
+    mTestObject->mServiceBrowse->browseVideos(0, 0);
+    QVERIFY( mTestObject->mCurrentService == VideoServices::EBrowse );
+
+    mTestObject->mServiceUriFetch->fetch( );
     QVERIFY( mTestObject->mCurrentService == VideoServices::EUriFetcher );
     
     mTestObject->mServicePlay->playMedia( QString() );
@@ -177,5 +188,3 @@
 
 // End of file
 
-
-
--- a/videoplayerapp/videoplayerengine/videoplayerengine.pro	Mon Sep 20 18:25:37 2010 +0300
+++ b/videoplayerapp/videoplayerengine/videoplayerengine.pro	Tue Oct 05 09:26:49 2010 +0300
@@ -14,7 +14,7 @@
 # Description: Project file for building Videoplayer components
 #
 #
-# Version : %version: 33 %
+# Version : %version: 34 %
 
 
 TEMPLATE = lib
@@ -58,7 +58,9 @@
         -lflogger.dll \
         -lefsrv \
         -lcommonengine.dll \
-        -lafservice.dll      
+        -lafservice.dll \
+        -liaupdateapi.dll \
+        -lfeatmgr.dll
 
 DEPENDPATH += ../../inc ../inc inc
 VPATH += src
@@ -72,7 +74,8 @@
            videoserviceview.h \
            videoservicebrowse.h \
            videoactivitystate.h \
-	   videoserviceuri.h
+           videoserviceuri.h \
+           videoiadupdatewrapper.h 
 
 SOURCES += videoplayerengine.cpp \
            videoplaybackwrapper.cpp \
@@ -83,5 +86,5 @@
            videoserviceview.cpp \
            videoservicebrowse.cpp \
            videoactivitystate.cpp \
-	   videoserviceuri.cpp
-
+           videoserviceuri.cpp \
+           videoiadupdatewrapper.cpp