Catchup to latest Symbian^4 GCC_SURGE
authorWilliam Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:32:33 +0100
branchGCC_SURGE
changeset 44 eff9df3d9c98
parent 30 b95ddb5a0d10 (current diff)
parent 42 79c49924ae23 (diff)
Catchup to latest Symbian^4
app/resources/musiplayerapp.qrc
app/resources/qgn_menu_mp_qt.svg
app/resources/slide_in_to_left_and_fade_in.fxml
app/resources/slide_in_to_right_and_fade_in.fxml
app/resources/slide_in_to_top_and_fade_in.fxml
app/resources/slide_out_to_left.fxml
app/resources/slide_out_to_right.fxml
app/resources/slide_out_to_top.fxml
mpdata/tsrc/unittest_mpcollectionalbumartmanager/unittest_mpcollectionalbumartmanager_template.pkg
mpdata/tsrc/unittest_mpcollectiondatamodel/unittest_mpcollectiondatamodel_template.pkg
mpdata/tsrc/unittest_mpplaybackdata/unittest_mpplaybackdata_template.pkg
mpengine/inc/mpsongscanner.h
mpengine/src/mpsongscanner.cpp
mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainergenres.h
mpviewplugins/mpcollectionviewplugin/resources/effects_item_select.fxml
mpviewplugins/mpcollectionviewplugin/resources/effects_item_select_end.fxml
mpviewplugins/mpcollectionviewplugin/resources/musiccollection.docml
mpviewplugins/mpcollectionviewplugin/resources/slide_in_to_left_and_fade_in.fxml
mpviewplugins/mpcollectionviewplugin/resources/slide_in_to_right_and_fade_in.fxml
mpviewplugins/mpcollectionviewplugin/resources/slide_in_to_top_and_fade_in.fxml
mpviewplugins/mpcollectionviewplugin/resources/slide_out_to_left.fxml
mpviewplugins/mpcollectionviewplugin/resources/slide_out_to_right.fxml
mpviewplugins/mpcollectionviewplugin/resources/slide_out_to_top.fxml
mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainergenres.cpp
mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper.h
mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
mpviewplugins/mpdetailsviewplugin/resources/defaultalbumart.png
mpviewplugins/mpdetailsviewplugin/resources/detailsview.docml
mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp
mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
mpviewplugins/mpdetailsviewplugin/src/mpsongdata.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/MON.dat
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/MON.sym
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/UT_detailsview.sisx
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/ctcdata.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/ctcerr.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/profile.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpmpxdetailsframeworkwrapper.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/MON.dat
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/MON.sym
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/UT_mpdetailsviewplugin.sisx
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/ctcdata.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/ctcerr.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/profile.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/MON.dat
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/MON.sym
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/UT_mpmpxpbframeworkwrapper.pkg
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/UT_mpmpxpbframeworkwrapper.sisx
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/ctcdata.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/ctcerr.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/logger.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/profile.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/sis.bat
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/unittest_mpmpxpbframeworkwrapper.pro
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/MON.dat
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/MON.sym
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/UT_mpsongdata.pkg
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/UT_mpsongdata.sisx
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/ctcdata.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/ctcerr.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/profile.txt
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/sis.bat
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/unittest_mpsongdata.pro
mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwrapper.h
mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwrapper_p.h
mpviewplugins/mpplaybackviewplugin/resources/nullsound.mp3
mpviewplugins/mpplaybackviewplugin/src/mpequalizerwrapper.cpp
mpviewplugins/mpplaybackviewplugin/src/mpequalizerwrapper_p.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/inc/mpequalizerwrapper.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/src/mpequalizerwrapper.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/inc/unittest_mpequalizerwrapper.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/src/unittest_mpequalizerwrapper.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/audioequalizerutility.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/mpxplaybackutility.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/mpxuser.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/audioequalizerutility.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/mpxplaybackutility.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/mpxuser.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/unittest_mpequalizerwrapper.pro
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/inc/unittest_mpmpxpbframeworkwrapper.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/src/unittest_mpmpxpbframeworkwrapper.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpplaybackdata.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpxcollectionutility.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpxplaybackutility.h
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpplaybackdata.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpxcollectionutility.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpxplaybackutility.cpp
mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/unittest_mpmpxpbframeworkwrapper.pro
mpviewplugins/mpsettingsviewplugin/inc/mpmpxasframeworkwrapper.h
mpviewplugins/mpsettingsviewplugin/inc/mpmpxasframeworkwrapper_p.h
mpviewplugins/mpsettingsviewplugin/src/mpmpxasframeworkwrapper.cpp
mpviewplugins/mpsettingsviewplugin/src/mpmpxasframeworkwrapper_p.cpp
mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/inc/unittest_mpmpxasframeworkwrapper.h
mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/src/unittest_mpmpxasframeworkwrapper.cpp
mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/inc/mpxaudioeffectproperties.h
mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/inc/mpxplaybackutility.h
mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/src/mpxaudioeffectproperties.cpp
mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/src/mpxplaybackutility.cpp
mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/unittest_mpmpxasframeworkwrapper.pro
musicservices/bwins/musicservices.def
musicservices/eabi/musicservices.def
sis/build-sisx.bat
sis/mpxservicesplugins.pkg
sis/musicplayer.pkg
utilities/mpnowplayingbanner/inc/mpnowplayingbackend.h
utilities/mpnowplayingbanner/inc/mpnowplayingbackend_p.h
utilities/mpnowplayingbanner/src/mpnowplayingbackend.cpp
utilities/mpnowplayingbanner/src/mpnowplayingbackend_p.cpp
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/inc/unittest_mpnowplayingbackend.h
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/src/unittest_mpnowplayingbackend.cpp
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/stub/inc/mpxplaybackutility.h
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/stub/src/mpxplaybackutility.cpp
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/unittest_mpnowplayingbackend.pro
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/inc/hbcolorscheme.h
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/inc/mpnowplayingbackend.h
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/src/hbcolorscheme.cpp
utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/src/mpnowplayingbackend.cpp
--- a/app/app.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/app/app.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -16,23 +16,23 @@
 
 SERVICEAPP = app
 TARGET = musicplayer
-ICON = resources/qgn_menu_mp_qt.svg
-DEPENDPATH += .
-INCLUDEPATH += . \
-	 inc \
-	 ../inc \
-         ../musicservices/inc
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
-
 CONFIG += hb
-
 symbian: {
     TARGET.UID2 = 0x100039CE 
     TARGET.UID3 = 0x10207C62
     TARGET.EPOCSTACKSIZE = 0x14000
     TARGET.EPOCHEAPSIZE = 0x020000 0x1F00000
     TARGET.CAPABILITY = CAP_APPLICATION NetworkControl DRM
-    }
+    SKINICON = qtg_large_music_player
+
+    BLD_INF_RULES.prj_exports += \
+        "../sis/musicplayer_stub.sis          /epoc32/data/z/system/install/musicplayer_stub.sis" \
+        "resources/musicplayer.docml          /epoc32/release/winscw/udeb/Z/resource/hb/splashml/musicplayer.docml" \
+        "resources/musicplayer.splashml       /epoc32/release/winscw/udeb/Z/resource/hb/splashml/musicplayer.splashml" \
+        "resources/musicplayer.docml          /epoc32/data/Z/resource/hb/splashml/musicplayer.docml" \
+        "resources/musicplayer.splashml       /epoc32/data/Z/resource/hb/splashml/musicplayer.splashml"
+
+}
 
 # Service provider specific configuration.
 # If in-process plugin specific implementation
@@ -43,32 +43,34 @@
 CONFIG += service
 # Service provider specific configuration ends
 
+DEPENDPATH += .
+INCLUDEPATH += . \
+               inc \
+               ../inc \
+               ../musicservices/inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+
+LIBS += -lecom \
+        -lestor  \
+        -lfbscli \
+        -lxqplugins \
+        -lmpxviewframeworkqt \
+        -lxqservice \
+        -lxqserviceutil \
+        -lmusicservices \
+        -lmpsettingsmanager \
+        -lmpengine
+
 # Input
-LIBS += -lecom.dll \
-    -lestor.dll  \
-    -lfbscli.dll \
-    -lxqplugins.dll \
-    -lmpxviewframeworkqt.dll \
-    -lxqservice \
-    -lxqserviceutil \
-    -lmusicservices \
-    -lmpengine
-    
-    
+HEADERS += inc/mpmainwindow.h \
+           inc/mpglobalpopuphandler.h \
+           inc/mpmtpinfolink.h
+
 SOURCES += src/main.cpp \
-           src/mpmainwindow.cpp
-           
-HEADERS =  inc/mpmainwindow.h
-
-MMP_RULES+=EXPORTUNFROZEN
+           src/mpmainwindow.cpp \
+           src/mpglobalpopuphandler.cpp \
+           src/mpmtpinfolink.cpp
 
-symbian: {
-    addImages.sources = images/*.png \
-                        resources/*.xml
-    DEPLOYMENT += addImages
-    }
-    
-RESOURCES += resources/musiplayerapp.qrc
 
 TRANSLATIONS = musicplayer.ts
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/inc/mpglobalpopuphandler.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* 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: Music Player global popup handler.
+*
+*/
+
+#ifndef MPGLOBALPOPUPHANDLER_H
+#define MPGLOBALPOPUPHANDLER_H
+
+#include <QObject>
+
+class HbPopup;
+class HbAction;
+class MpEngine;
+class MpSongScanner;
+
+class MpGlobalPopupHandler : public QObject
+{
+    Q_OBJECT
+
+public:
+    MpGlobalPopupHandler( QObject *parent = 0 );
+    virtual ~MpGlobalPopupHandler();
+
+    void cancelOngoingPopup();
+
+public slots:
+
+    // Scanning related dialogs
+    void handleLibraryAboutToUpdate();
+    void launchScanDialog();
+    void scanCountChanged( int count );
+    void handleScanFinished( int error, int itemsAdded );
+
+    // Usb related dialogs
+    void launchUnableToCotinueDueUsb();
+    void launchUsbBlockingNote();
+    void closeUsbBlockingNote();
+    void launchRefreshLibraryRequest();
+    void launchMTPInfoDialog();
+    void hanldeMTPInfoDialogFinished( HbAction *selectedAction );
+
+    void outstandingPopupClosing();
+
+private:
+    void launchScanFinishedDialog( bool ok, int itemsAdded );
+    void launchDiskFullDialog();
+    void setOutstandingPopup( HbPopup *popup );
+
+private:
+    HbPopup                     *mOutstandingPopup;              // Own
+    MpEngine                    *mMpEngine;                      // Not own
+    MpSongScanner               *mMpSongScanner;                 // Not own
+};
+
+#endif  // MPGLOBALPOPUPHANDLER_H
+
--- a/app/inc/mpmainwindow.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/app/inc/mpmainwindow.h	Thu Jul 22 16:32:33 2010 +0100
@@ -28,6 +28,8 @@
 // Forward declarations
 class MpxViewPlugin;
 class MusicServices;
+class MpGlobalPopupHandler;
+class HbActivityManager;
 
 // Class declaration
 class MpMainWindow: public MpxViewFramework
@@ -40,12 +42,23 @@
         CollectionView = 1,
         PlaybackView,
         SettingsView,
-        DetailsView };
+        DetailsView,
+        MediaWallView};
+    
+    enum ActivityMode{
+        MusicMainView,
+        MusicNowPlayingView,
+        MusicNowPlayingViewShuffleAll
+    };
 
     MpMainWindow();
     ~MpMainWindow();
 
-    void initialize();
+    void initialize( ActivityMode mode );
+
+signals:
+    // For automation testability
+    void applicationReady();
 
 public slots:
     void handleCommand( int commandCode );
@@ -53,13 +66,17 @@
 
     void switchView( Qt::Orientation orientation );
     void initializeServiceView( TUid hostUid );
+    void handleActivity();
+    void saveActivity();
+    void handleRestorePathFailed();
 
 private:
     void activateView(ViewType);
     void connectView();
     void disconnectView();
-
+    void keyPressEvent(QKeyEvent *event);
     MpxViewPlugin*  loadView( ViewType type, MpCommon::MpViewMode viewMode= MpCommon::DefaultView );
+    void loadActivity( QVariant data );
 
 private:
 
@@ -67,10 +84,13 @@
     MpxViewPlugin         *mPlaybackViewPlugin;   // Own
     MpxViewPlugin         *mSettingsViewPlugin;   // Own
     MpxViewPlugin         *mDetailsViewPlugin;    // Own
-
+    MpxViewPlugin         *mMediaWallViewPlugin;  // Own
     MpxViewPlugin         *mCurrentViewPlugin;    // Own
     ViewType              mVerticalViewType;
-    MusicServices         *mMusicServices;        // Own
+    MusicServices         *mMusicServices;         // Own
+    MpGlobalPopupHandler  *mPopupHandler;          // Own
+    bool                   mUserExit;
+    HbActivityManager     *mActivityManager;       //Not Own
 
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/inc/mpmtpinfolink.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Music Player MTP info link.
+*
+*/
+
+
+#ifndef MPMTPINFOLINK_H
+#define MPMTPINFOLINK_H
+
+#include <hblabel.h>
+
+class QGraphicsSceneMouseEvent;
+
+class MpMtpInfoLink : public HbLabel
+{
+    Q_OBJECT
+
+public:
+    explicit MpMtpInfoLink();
+    virtual ~MpMtpInfoLink();
+
+protected:
+    void mousePressEvent( QGraphicsSceneMouseEvent *event );
+    void mouseReleaseEvent( QGraphicsSceneMouseEvent *event );
+
+private:
+    void setMtpInfoText();
+
+};
+
+#endif // MPMTPINFOLINK_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/resources/musicplayer.docml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<hbdocument version="0.9">
+    <section name="portrait">
+        <widget name="splashView" type="HbView">
+            <string locid="txt_mus_title_music" name="title" value="musicplayer"/>
+        </widget>
+    </section>
+    <section name="landscape">
+        <widget name="splashView" type="HbView">
+            <string locid="txt_mus_title_music" name="title" value="musicplayer"/>
+            <enums name="titleBarFlags" value="TitleBarHidden"/>
+        </widget>
+    </section>
+
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/resources/musicplayer.splashml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbsplash version="1">
+    <docml>musicplayer.docml</docml>
+    <widget>splashView</widget>
+    <appuid>0x10207C62</appuid>
+    <tsappname>musicplayer</tsappname>
+    <use-section when="portrait">portrait</use-section>
+    <use-section when="landscape">landscape</use-section>
+</hbsplash>
--- a/app/resources/musiplayerapp.qrc	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<RCC>
-    <qresource prefix="/appeffects" >
-        <file alias="slide_out_to_top.fxml">slide_out_to_top.fxml</file>
-        <file alias="slide_out_to_right.fxml">slide_out_to_right.fxml</file>
-        <file alias="slide_out_to_left.fxml">slide_out_to_left.fxml</file>
-        <file alias="slide_in_to_top_and_fade_in.fxml">slide_in_to_top_and_fade_in.fxml</file>
-        <file alias="slide_in_to_right_and_fade_in.fxml">slide_in_to_right_and_fade_in.fxml</file>
-        <file alias="slide_in_to_left_and_fade_in.fxml">slide_in_to_left_and_fade_in.fxml</file>
-    </qresource>   
-</RCC>
--- a/app/resources/qgn_menu_mp_qt.svg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   baseProfile="tiny"
-   height="44px"
-   version="1.1"
-   viewBox="0 0 44 44"
-   width="44px"
-   x="0px"
-   y="0px"
-   id="svg2540"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docname="qgn_menu_mp_qt.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <sodipodi:namedview
-     inkscape:window-height="675"
-     inkscape:window-width="640"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     guidetolerance="10.0"
-     gridtolerance="10.0"
-     objecttolerance="10.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     showgrid="false"
-     inkscape:zoom="10.5"
-     inkscape:cx="22"
-     inkscape:cy="22"
-     inkscape:window-x="66"
-     inkscape:window-y="66"
-     inkscape:current-layer="svg2540" />
-  <metadata
-     id="metadata2588">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2586">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 22 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="44 : 22 : 1"
-       inkscape:persp3d-origin="22 : 14.666667 : 1"
-       id="perspective2590" />
-  </defs>
-  <path
-     d="M31.068,18.234c-0.971,0-1.903,0.156-2.779,0.438v-6.482c0,0-6.265-5.348-16.133-5.742v18.551  c-1.031-0.416-2.25-0.574-3.52-0.354c-3.031,0.533-5.131,2.932-4.711,5.357c0.426,2.418,3.229,3.959,6.261,3.418  c2.821-0.494,5.182-2.652,5.182-4.859v-15.51c0.603,0.131,5.905,0.99,9.649,3.867v3.646c-1.847,1.66-3.016,4.059-3.016,6.736  c0,0.66,0.075,1.303,0.209,1.922c-0.236,0.016-0.473,0.033-0.713,0.074c-3.031,0.535-5.129,2.932-4.713,5.357  c0.43,2.414,3.229,3.957,6.262,3.418c1.775-0.313,3.391-1.264,4.346-2.488c1.123,0.5,2.365,0.783,3.676,0.783  c5.012,0,9.064-4.059,9.064-9.066C40.133,22.295,36.08,18.234,31.068,18.234z"
-     fill-opacity="0.5"
-     stroke-opacity="0.5"
-     id="path2542" />
-  <path
-     d="M31.068,17.234c-0.608,0-1.203,0.055-1.78,0.158v-5.203c0-0.293-0.128-0.572-0.351-0.762  c-0.092-0.07-6.521-5.561-16.742-5.982c-0.271-0.01-1.041,0.729-1.041,1V23.67c-0.879-0.163-1.799-0.172-2.697-0.01  c-3.133,0.555-5.553,2.881-5.584,5.719c-0.03,2.69,2.466,5.156,6.1,5.148c3.811-0.032,7.308-2.69,7.395-5.965V14.275  c1.781,0.402,5.08,1.32,7.65,3.146v2.707c-1.854,1.82-3.018,4.361-3.016,7.172c0,0.359,0.021,0.715,0.059,1.063  c-3.014,0.641-5.299,2.918-5.328,5.674c0,2.768,2.539,5.141,6.089,5.141h0.017c2.035,0,4.284-0.833,5.833-2.404  c1.061,0.383,2.204,0.594,3.397,0.594c5.563,0,10.064-4.508,10.064-10.066S36.632,17.234,31.068,17.234z"
-     fill-opacity="0.2"
-     stroke-opacity="0.2"
-     id="path2544" />
-  <rect
-     fill="none"
-     height="44"
-     width="44"
-     id="rect2546" />
-  <linearGradient
-     gradientUnits="userSpaceOnUse"
-     id="SVGID_1_"
-     x1="16.0806"
-     x2="16.0806"
-     y1="17.2456"
-     y2="42.8985">
-    <stop
-       offset="0"
-       style="stop-color:#70e814"
-       id="stop2549" />
-    <stop
-       offset="0.1845"
-       style="stop-color:#6fdf17"
-       id="stop2551" />
-    <stop
-       offset="0.3881"
-       style="stop-color:#6ac621"
-       id="stop2553" />
-    <stop
-       offset="0.6009"
-       style="stop-color:#5fad1f"
-       id="stop2555" />
-    <stop
-       offset="0.8186"
-       style="stop-color:#538e19"
-       id="stop2557" />
-    <stop
-       offset="1"
-       style="stop-color:#446f13"
-       id="stop2559" />
-  </linearGradient>
-  <path
-     d="M12.156,23.998c-1.031-0.416-2.25-0.574-3.52-0.354c-3.031,0.533-5.131,2.932-4.711,5.357  c0.426,2.418,3.229,3.959,6.261,3.418c2.821-0.494,5.182-2.652,5.182-4.859v-15.51c0.603,0.131,5.905,0.99,9.649,3.867v12.73  c-1.03-0.414-2.25-0.574-3.52-0.352c-3.031,0.535-5.129,2.932-4.713,5.357c0.43,2.414,3.229,3.957,6.262,3.418  c2.82-0.496,5.242-2.602,5.242-4.859V11.189c0,0-6.265-5.348-16.133-5.742V23.998z"
-     fill="url(#SVGID_1_)"
-     id="path2561" />
-  <path
-     d="M28.289,11.189c0,0-6.265-5.348-16.133-5.742v18.551c-1.031-0.416-2.25-0.574-3.52-0.354  c-3.031,0.533-5.131,2.932-4.711,5.357c0.192,1.094,0.873,2.01,1.842,2.633l0.746-0.674c-1.382-0.772-1.682-1.872-1.682-2.58  c-0.029-1.59,1.551-3.367,3.973-3.789c2.208-0.402,3.585,0.667,4.313,0.83V6.465c4.315,0.328,7.863,1.615,10.379,2.863  c1.668,0.828,3.525,2.042,4.793,3.02V11.189z M25.018,28.648c-1.03-0.414-2.25-0.574-3.52-0.352  c-3.031,0.535-5.129,2.932-4.713,5.357c0.201,1.135,0.932,2.074,1.959,2.697l0.762-0.682c-1.551-0.799-1.813-1.978-1.813-2.633  c-0.029-1.596,1.55-3.371,3.973-3.795c2.35-0.413,4.027,0.85,4.313,0.92V16.666l-0.961-0.748V28.648z"
-     fill="#FFFFFF"
-     fill-opacity="0.3"
-     stroke-opacity="0.3"
-     id="path2563" />
-  <path
-     d="M25.018,28.648c-1.03-0.414-2.25-0.574-3.52-0.352c-0.02,0.004-0.039,0.01-0.061,0.014  c0.34,3.162,2.201,5.861,4.834,7.365c1.215-0.92,2.018-2.166,2.018-3.463L25.018,28.648z"
-     fill-opacity="0.3"
-     stroke-opacity="0.3"
-     id="path2565" />
-  <linearGradient
-     gradientUnits="userSpaceOnUse"
-     id="SVGID_2_"
-     x1="31.0674"
-     x2="31.0674"
-     y1="16.4692"
-     y2="42.2276">
-    <stop
-       offset="0"
-       style="stop-color:#f0f0f0"
-       id="stop2568" />
-    <stop
-       offset="1"
-       style="stop-color:#bca1a1"
-       id="stop2570" />
-  </linearGradient>
-  <path
-     d="M40.133,26.301c0,5.008-4.053,9.066-9.064,9.066c-5.006,0-9.066-4.059-9.066-9.066  c0-5.006,4.061-9.066,9.066-9.066C36.08,17.234,40.133,21.295,40.133,26.301z"
-     fill="url(#SVGID_2_)"
-     id="path2572" />
-  <path
-     d="M37.362,26.303c0-0.314-0.165-0.604-0.442-0.758L28.843,21c-0.581-0.332-1.296,0.106-1.296,0.76v9.088  c0.004,0.309,0.186,0.586,0.438,0.74l0.546-0.939l0.01-0.01v-8.674l7.791,4.289l0.979,0.252l-0.001,0.002  C37.316,26.471,37.361,26.408,37.362,26.303z"
-     fill-opacity="0.2"
-     stroke-opacity="0.2"
-     id="path2574" />
-  <path
-     d="M36.332,26.254l-7.801,4.395l-0.548,0.943l0.022,0.012c0.264,0.15,0.586,0.142,0.837,0l8.077-4.543  c0.218-0.123,0.335-0.336,0.391-0.549l0.001-0.006L36.332,26.254z"
-     fill="#FFFFFF"
-     id="path2576" />
-  <linearGradient
-     gradientUnits="userSpaceOnUse"
-     id="SVGID_3_"
-     x1="32.458"
-     x2="32.458"
-     y1="25.874"
-     y2="52.6238">
-    <stop
-       offset="0"
-       style="stop-color:#1469b4"
-       id="stop2579" />
-    <stop
-       offset="1"
-       style="stop-color:#26134c"
-       id="stop2581" />
-  </linearGradient>
-  <polygon
-     fill="url(#SVGID_3_)"
-     points="28.42,21.76 28.42,30.848 36.496,26.303 "
-     id="polygon2583" />
-  <text
-     xml:space="preserve"
-     style="font-size:12px;font-style:normal;font-weight:normal;fill:#e30000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-     x="29.619047"
-     y="13.047619"
-     id="text2616"><tspan
-       sodipodi:role="line"
-       id="tspan2618" /></text>
-  <text
-     xml:space="preserve"
-     style="font-size:12px;font-style:normal;font-weight:normal;fill:#e30000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-     x="23.142857"
-     y="13.142857"
-     id="text2620"><tspan
-       sodipodi:role="line"
-       id="tspan2622" /></text>
-</svg>
--- a/app/resources/slide_in_to_left_and_fade_in.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="screen.right">.3</start>
-            <end ref="screen.left">1</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">0.0</keyframe>
-	          <keyframe at="1.0">1.0</keyframe>
-	      </param>
-
-    </visual>
-</layers>
\ No newline at end of file
--- a/app/resources/slide_in_to_right_and_fade_in.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="screen.right">-.3</start>
-            <end ref="screen.left">1</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">0.0</keyframe>
-	          <keyframe at="1.0">1.0</keyframe>
-	      </param>
-
-    </visual>
-</layers>
\ No newline at end of file
--- a/app/resources/slide_in_to_top_and_fade_in.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_y" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="screen.bottom">.3</start>
-            <end ref="screen.top">1</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">0.0</keyframe>
-	          <keyframe at="1.0">1.0</keyframe>
-	      </param>
-
-    </visual>
-</layers>
\ No newline at end of file
--- a/app/resources/slide_out_to_left.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="screen.left">1</start>
-            <end ref="screen.right">-0.3</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">1.0</keyframe>
-	          <keyframe at="1.0">0.0</keyframe>
-	      </param>
-	      
-    </visual>
-</layers>
\ No newline at end of file
--- a/app/resources/slide_out_to_right.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="screen.left">1</start>
-            <end ref="screen.right">0.3</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">1.0</keyframe>
-	          <keyframe at="1.0">0.0</keyframe>
-	      </param>
-	      
-    </visual>
-</layers>
\ No newline at end of file
--- a/app/resources/slide_out_to_top.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_y" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="screen.top">1</start>
-            <end ref="screen.bottom">-0.3</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">1.0</keyframe>
-	          <keyframe at="1.0">0.0</keyframe>
-	      </param>
-	      
-    </visual>
-</layers>
\ No newline at end of file
--- a/app/rom/musicplayer.iby	Fri Jun 11 16:24:02 2010 +0100
+++ b/app/rom/musicplayer.iby	Thu Jul 22 16:32:33 2010 +0100
@@ -24,4 +24,8 @@
 data = ZRESOURCE\apps\musicplayer.mif                      APP_RESOURCE_DIR\musicplayer.mif
 data = ZPRIVATE\10003A3F\import\APPS\musicplayer_reg.rsc   PRIVATE\10003a3f\import\apps\musicplayer_reg.rsc
 
+data = ZSYSTEM\install\musicplayer_stub.sis          system\install\musicplayer_stub.sis
+data = ZRESOURCE\hb\splashml\musicplayer.splashml    RESOURCE_FILES_DIR\hb\splashml\musicplayer.splashml
+data = ZRESOURCE\hb\splashml\musicplayer.docml       RESOURCE_FILES_DIR\hb\splashml\musicplayer.docml
+
 #endif	// MUSICPLAYER_IBY
\ No newline at end of file
--- a/app/rom/musicplayer_resources.iby	Fri Jun 11 16:24:02 2010 +0100
+++ b/app/rom/musicplayer_resources.iby	Thu Jul 22 16:32:33 2010 +0100
@@ -20,7 +20,7 @@
 
 #include <data_caging_paths_for_iby.hrh>
 
-data = DATAZ_\APP_RESOURCE_DIR\musicplayer.rsc      APP_RESOURCE_DIR\musicplayer.rsc 
+S60_APP_RESOURCE(musicplayer)
 data = DATAZ_\QT_TRANSLATIONS_DIR\musicplayer.qm    QT_TRANSLATIONS_DIR\musicplayer.qm 
 
 #endif	// MUSICPLAYER_RESOURCES_IBY
\ No newline at end of file
--- a/app/src/main.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/app/src/main.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,6 +17,9 @@
 
 #include <QtGui>
 #include <hbapplication.h>
+#include <hbtranslator.h>
+#include <xqserviceutil.h>
+#include <hbsplashscreen.h>
 
 #include "mpmainwindow.h"
 #include "mptrace.h"
@@ -25,6 +28,25 @@
     \brief The Music Player main function.
 
     This function is where Music Player starts execution.
+    
+    This function can be called by starting an activity. Currently supported:
+    -MusicMainView
+    -MusicNowPlayingView
+    
+    A way to start start an activity is by using the XQApplicationManager:
+    
+    QUrl url;
+    url.setUrl("appto://10207C62?activityname=MusicMainView&launchtype=standalone");
+    mReq = mAppMgr.create(url);    
+    if (mReq == NULL) {
+        // No handlers for the URI
+        return;
+    }
+    bool res = mReq->send(); //Fire and Forget
+   if (!res) {
+       // Request failed. Handle error 
+      int error = mReq->lastError();
+   }
 */
 
 int main(int argc, char *argv[])
@@ -32,16 +54,35 @@
     TX_STATIC_ENTRY
 
     // Initialization
-    HbApplication app(argc, argv);
+    HbApplication app(argc, argv, Hb::NoSplash);
+    if ( !XQServiceUtil::isService() ) {
+        HbSplashScreen::start( );
+    }
+    QVariantHash params = app.activateParams();
+    HbTranslator translator;
+    translator.loadCommon();
+    MpMainWindow::ActivityMode mode;
+    
+    if ( !params.value( "activityname" ).toString().compare( "MusicNowPlayingView" ) ) { 
+        mode = MpMainWindow::MusicNowPlayingView;
+    }
+    else {
+        mode = MpMainWindow::MusicMainView;
+    }
 
     // Main window widget.
     // Includes decorators such as signal strength and battery life indicator.
     MpMainWindow mainWindow;
-    mainWindow.initialize();
+    mainWindow.viewport()->grabGesture(Qt::SwipeGesture);
+    mainWindow.viewport()->grabGesture(Qt::PanGesture);
+    mainWindow.viewport()->grabGesture(Qt::TapGesture);
+    mainWindow.viewport()->grabGesture(Qt::TapAndHoldGesture);
+    mainWindow.initialize( mode );
     mainWindow.show();
 
     // Enter event loop
     TX_EXIT
-	return app.exec();
-    
+    return app.exec();
+
 }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/src/mpglobalpopuphandler.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,374 @@
+/*
+* 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: Music Player global popup handler.
+*
+*/
+
+// INCLUDE FILES
+#include <hblabel.h>
+#include <hbaction.h>
+#include <hbfontspec.h>
+#include <hbmessagebox.h>
+#include <hbprogressdialog.h>
+#include <hbnotificationdialog.h>
+
+#include "mpglobalpopuphandler.h"
+#include "mpsettingsmanager.h"
+#include "mpenginefactory.h"
+#include "mpsongscanner.h"
+#include "mpmtpinfolink.h"
+#include "mptrace.h"
+
+/*!
+    \class MpGlobalPopupHandler
+    \brief Music Player global popup handler.
+
+    This class controls the asynchronous operation of all global dialogs. 
+*/
+
+// Popups launched by this class
+const QString KScanProgressDialog = QString( "ScanProgressDialog" );
+const QString KDiskFullDialog = QString( "DiskFullDialog" );
+const QString KScanFinished = QString( "ScanFinishedDialog" );
+const QString KUnableToContinueDueUSB = QString( "UnableToContinueDueUSB" );
+const QString KUsbBlockingNote = QString( "UsbBlockingNote" );
+const QString KPromptRefresh = QString( "PromptRefresh" );
+const QString KMTPInfoDialog = QString( "MTPInfoDialog" );
+
+// Popups Actions
+const QString KYes = QString( "yes" );
+const QString KNo = QString( "no" );
+
+/*!
+ Constructs the collection popup handler.
+ */
+MpGlobalPopupHandler::MpGlobalPopupHandler( QObject *parent )
+    : QObject( parent ),
+      mOutstandingPopup( 0 ),
+      mMpEngine( 0 ),
+      mMpSongScanner( 0 )
+{
+    TX_ENTRY
+    mMpEngine = MpEngineFactory::sharedEngine();
+    connect( mMpEngine, SIGNAL( libraryAboutToUpdate() ), this, SLOT( handleLibraryAboutToUpdate() ) );
+    connect( mMpEngine, SIGNAL( unableToCotinueDueUSB() ), this, SLOT( launchUnableToCotinueDueUsb() ) );
+    connect( mMpEngine, SIGNAL( usbSynchronizationStarted() ), this, SLOT( launchUsbBlockingNote() ) );
+    connect( mMpEngine, SIGNAL( usbSynchronizationFinished() ), this, SLOT( closeUsbBlockingNote() ) );
+    connect( mMpEngine, SIGNAL( libraryRefreshNeeded() ), this, SLOT( launchRefreshLibraryRequest() ) );
+    TX_EXIT
+}
+
+/*!
+ Destructs the collection popup handler.
+ */
+MpGlobalPopupHandler::~MpGlobalPopupHandler()
+{
+    TX_ENTRY
+    delete mOutstandingPopup;
+    TX_EXIT
+}
+
+/*!
+ Closes any active popup
+ */
+void MpGlobalPopupHandler::cancelOngoingPopup()
+{
+    TX_ENTRY
+    if ( mOutstandingPopup ) {
+         mOutstandingPopup->close();
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot called upon MpEngine signal libraryAboutToUpdate(). Used to connect with SongScanner.
+ */
+void MpGlobalPopupHandler::handleLibraryAboutToUpdate()
+{
+    TX_ENTRY
+    if ( !mMpSongScanner && mMpEngine->songScanner() ) {
+        mMpSongScanner = mMpEngine->songScanner();
+        connect( mMpSongScanner, SIGNAL( scanStarted() ), this, SLOT( launchScanDialog() ) );
+        connect( mMpSongScanner, SIGNAL( scanCountChanged( int ) ), this, SLOT( scanCountChanged( int ) ) );
+        connect( mMpSongScanner, SIGNAL( scanFinished( int, int ) ), 
+                 this, SLOT( handleScanFinished( int, int ) ) );
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot called upon notification from MpSongScanner indicating start of
+ scanning process.
+ */
+void MpGlobalPopupHandler::launchScanDialog()
+{
+    TX_ENTRY
+    HbProgressDialog* scanProgressDialog = new HbProgressDialog( HbProgressDialog::WaitDialog );
+    connect( scanProgressDialog, SIGNAL( cancelled() ), mMpSongScanner, SLOT( cancelScan() ) );
+    scanProgressDialog->setModal( true );
+    HbLabel *title = new HbLabel( hbTrId( "txt_mus_title_refreshing" ) );
+    title->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+
+    scanProgressDialog->setHeadingWidget( title );
+    scanProgressDialog->setText( QString("") );
+    scanProgressDialog->setAttribute( Qt::WA_DeleteOnClose );
+    scanProgressDialog->setObjectName( KScanProgressDialog );
+    setOutstandingPopup( scanProgressDialog );
+    scanProgressDialog->show();
+    TX_EXIT
+}
+
+/*!
+ Slot called upon notification from MpSongScanner indicating the number of
+ songs scanned so far.
+ */
+void MpGlobalPopupHandler::scanCountChanged(int count)
+{
+    TX_ENTRY_ARGS("count " << count )
+    if ( mOutstandingPopup && ( mOutstandingPopup->objectName() == KScanProgressDialog ) ) {
+        HbProgressDialog *dialog = qobject_cast<HbProgressDialog *>( mOutstandingPopup );
+        QString added;
+        added = hbTrId( "txt_mus_info_ln_songs_added" , count );
+        dialog->setText( added );
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot called upon notification from MpSongScanner. Used to close current scan progress note,
+ and display scan results.
+ 
+ */
+void MpGlobalPopupHandler::handleScanFinished( int error, int itemsAdded )
+{
+    TX_ENTRY_ARGS("error: " << error << " Items added: " << itemsAdded )
+    if ( mOutstandingPopup && ( mOutstandingPopup->objectName() == KScanProgressDialog ) ) {
+        HbProgressDialog *dialog = qobject_cast<HbProgressDialog *>( mOutstandingPopup );
+        disconnect( dialog, SIGNAL( aboutToClose() ), this, SLOT( outstandingPopupClosing() ) );
+        mOutstandingPopup = 0;
+        dialog->close();
+    }
+
+    switch( error ) {
+        case MpSongScanner::ScanErrorNone :
+            launchScanFinishedDialog( true, itemsAdded );
+            break;
+        case MpSongScanner::ScanGeneralError :
+            launchScanFinishedDialog( false, itemsAdded );
+            break;
+        case MpSongScanner::ScanErrorDiskFull :
+            launchDiskFullDialog();
+            break;
+        case MpSongScanner::ScanInterrupted :
+        default:
+            //When scan interrupted (DiskEvent) just dimsiss the scanning progress note.
+            break;
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot called when MpEngine emits unableToCotinueDueUSB() signal
+ */
+void MpGlobalPopupHandler::launchUnableToCotinueDueUsb()
+{
+    HbMessageBox *dialog = new HbMessageBox( HbMessageBox::MessageTypeInformation );
+    dialog->setText( hbTrId( "txt_mus_info_usb_conn_in_progress" ) );
+    dialog->setModal( true );
+    dialog->setAttribute( Qt::WA_DeleteOnClose );
+    dialog->setObjectName( KUnableToContinueDueUSB );
+    setOutstandingPopup( dialog );
+    dialog->show();
+}
+
+/*!
+ Slot called when MpEngine emits usbSynchronizationStarted() signal
+ */
+void MpGlobalPopupHandler::launchUsbBlockingNote()
+{
+    HbProgressDialog *usbBlockingNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
+    usbBlockingNote->setModal( true );
+    if ( usbBlockingNote->actions().count() ) {
+        //Hide cancel action.
+        usbBlockingNote->actions().at( 0 )->setVisible( false );
+    }
+    usbBlockingNote->setDismissPolicy( HbPopup::NoDismiss );
+    usbBlockingNote->setText( hbTrId( "txt_mus_info_usb_conn_in_progress" ) );
+    usbBlockingNote->setAttribute( Qt::WA_DeleteOnClose );
+    usbBlockingNote->setObjectName( KUsbBlockingNote );
+    setOutstandingPopup( usbBlockingNote );
+    usbBlockingNote->show();
+}
+
+/*!
+ Slot called when MpEngine emits usbSynchronizationFinished() signal
+ */
+void MpGlobalPopupHandler::closeUsbBlockingNote()
+{
+    if ( mOutstandingPopup && ( mOutstandingPopup->objectName() == KUsbBlockingNote ) ) {
+        HbProgressDialog *dialog = qobject_cast<HbProgressDialog *>( mOutstandingPopup );
+        dialog->cancel();
+    }
+}
+
+/*!
+ Slot called when MpEngine emits libraryRefreshNeeded() signal
+ */
+void MpGlobalPopupHandler::launchRefreshLibraryRequest()
+{
+    HbAction *action;
+    HbMessageBox *promptRefresh = new HbMessageBox( HbMessageBox::MessageTypeQuestion );
+    promptRefresh->setText( hbTrId( "txt_mus_info_music_may_need_to_be_refreshed" ) );
+    promptRefresh->setTimeout( HbPopup::NoTimeout );
+    promptRefresh->setModal( true );
+    promptRefresh->clearActions();
+    action = new HbAction( hbTrId( "txt_common_button_yes" ) );
+    action->setObjectName( KYes );
+    connect( action, SIGNAL( triggered() ), mMpEngine, SLOT( refreshLibrary() ) );
+    promptRefresh->addAction( action );
+    action = new HbAction( hbTrId( "txt_common_button_no" ) );
+    action->setObjectName( KNo );
+    promptRefresh->addAction( action );
+    promptRefresh->setAttribute( Qt::WA_DeleteOnClose );
+    promptRefresh->setObjectName( KPromptRefresh );
+    setOutstandingPopup( promptRefresh );
+    promptRefresh->show();
+}
+
+/*!
+  Slot to launch the MTP educating info dialog
+ */
+void MpGlobalPopupHandler::launchMTPInfoDialog()
+{
+    TX_ENTRY
+    HbDialog *dialog = new HbDialog();
+    dialog->setContentWidget( new MpMtpInfoLink() );
+    dialog->setModal( true );
+    dialog->setDismissPolicy( HbPopup::NoDismiss);
+    dialog->setTimeout( HbPopup::NoTimeout );
+    HbAction *action;
+    action = new HbAction( hbTrId( "txt_common_button_yes" ) );
+    action->setObjectName( KYes );
+    dialog->addAction( action );
+    action = new HbAction( hbTrId( "txt_common_button_no" ) );
+    action->setObjectName( KNo );
+    dialog->addAction( action );
+    dialog->setAttribute( Qt::WA_DeleteOnClose );
+    dialog->setObjectName( KMTPInfoDialog );
+    setOutstandingPopup( dialog );
+    dialog->open( this, SLOT( hanldeMTPInfoDialogFinished( HbAction* ) ) );
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when MtpInfoDialog has finished.
+ */
+void MpGlobalPopupHandler::hanldeMTPInfoDialogFinished( HbAction *selectedAction )
+{
+    TX_ENTRY
+    if ( selectedAction && selectedAction->objectName() == KNo ) {
+        MpSettingsManager::instance()->stopShowingMtpInfo();
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when a popup is getting closed. Usefull when a dialog is closed before it finishes
+ (dialog not closed by a direct user action).
+ */
+void MpGlobalPopupHandler::outstandingPopupClosing()
+{
+    TX_ENTRY
+    HbPopup *popup = qobject_cast<HbPopup *>( sender() );
+    if ( popup ) {
+        Q_ASSERT( popup == mOutstandingPopup );
+        mOutstandingPopup = 0;
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ Launches Scan Finished Notification.
+ */
+void MpGlobalPopupHandler::launchScanFinishedDialog( bool ok, int itemsAdded )
+{
+    QString added;
+    HbNotificationDialog *finishedDialog = new HbNotificationDialog();
+    finishedDialog->setModal(true);
+    added = hbTrId( "txt_mus_dpopinfo_ln_songs_added", itemsAdded );
+    finishedDialog->setText( added );
+    finishedDialog->setAttribute( Qt::WA_DeleteOnClose );
+    finishedDialog->setObjectName( KScanFinished );
+    // Connect aboutToClose with outstandingPopupClosing() first, and then with launchMTPInfoDialog
+    // in order to get finishDialog cleared before MtpInfoDialog is launched.
+    setOutstandingPopup( finishedDialog );
+
+    if( ok ) {
+        finishedDialog->setIcon( HbIcon( QString("qtg_large_ok") ) );
+        finishedDialog->setTitle( hbTrId( "txt_mus_dpophead_refresh_complete" ) );
+        if ( MpSettingsManager::showMtpInfo() && !mMpSongScanner->isAutomaticScan() ) {
+            connect( finishedDialog, SIGNAL( aboutToClose() ), this, SLOT( launchMTPInfoDialog() ) );
+        }
+    }
+    else {
+        finishedDialog->setIcon( HbIcon( QString("qtg_small_fail") ) );
+        finishedDialog->setTitle( hbTrId( "txt_mus_dpophead_refresh_cancelled" ) );
+    }
+
+    finishedDialog->show();
+}
+
+/*!
+ \internal
+ Launches DiskFull Notification
+ */
+void MpGlobalPopupHandler::launchDiskFullDialog()
+{
+    TX_ENTRY
+    QString diskfull;
+    diskfull = hbTrId( "txt_mus_title_refresh_cancelled" );
+    diskfull.append(" ");
+    diskfull.append( hbTrId( "txt_mus_info_out_of_disk_space" ) );
+    HbMessageBox *diskFullDialog = new HbMessageBox();
+    diskFullDialog->setIcon( HbIcon( QString("qtg_small_fail") ) );
+    diskFullDialog->setText( diskfull );
+    diskFullDialog->setTimeout( HbPopup::NoTimeout);
+    diskFullDialog->setAttribute( Qt::WA_DeleteOnClose );
+    diskFullDialog->setObjectName( KDiskFullDialog );
+    setOutstandingPopup( diskFullDialog );
+    diskFullDialog->show();
+    TX_EXIT
+}
+
+/*!
+ \internal
+ sets \a popup as the current outstanding popup and cancels any other previous popup.
+ */
+void MpGlobalPopupHandler::setOutstandingPopup( HbPopup *popup )
+{
+    TX_ENTRY
+    if ( mOutstandingPopup ) {
+        TX_LOG_ARGS( "Warning: Multiple popups attempted to be displayed" );
+        if ( mOutstandingPopup->objectName() == KScanFinished ) {
+            disconnect( mOutstandingPopup, SIGNAL( aboutToClose() ), this, SLOT( launchMTPInfoDialog() ) );
+        }
+        mOutstandingPopup->close();
+    }
+
+    connect( popup, SIGNAL( aboutToClose() ), this, SLOT( outstandingPopupClosing() ) );
+    mOutstandingPopup = popup;
+    TX_EXIT
+}
+
--- a/app/src/mpmainwindow.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/app/src/mpmainwindow.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,21 +17,25 @@
 
 
 #include <hbapplication.h>
+#include <hbactivitymanager.h>
 #include <hbview.h>
 #include <mpxviewpluginqt.h>
 #include <xqpluginloader.h>
 #include <xqplugininfo.h>
 #include <xqserviceutil.h>
 #include <xqsharablefile.h>
-#include <QTranslator>
-#include <QLocale>
 
 #include "mpmainwindow.h"
 #include "mpviewbase.h"
 #include "musicservices.h"
-#include "mpengine.h"
+#include "mpenginefactory.h"
+#include "mpsettingsmanager.h"
+#include "mpglobalpopuphandler.h"
 #include "mptrace.h"
 
+const QString MUSIC_MAIN_VIEW = "MusicMainView";
+const QString MUSIC_NOW_PLAYING_VIEW = "MusicNowPlayingView";
+
 /*!
    \class MpMainWindow
    \brief The MpMainWindow class provides Main Window functionalities.
@@ -50,9 +54,13 @@
       mPlaybackViewPlugin(0),
       mSettingsViewPlugin(0),
       mDetailsViewPlugin(0),
+      mMediaWallViewPlugin(0),
       mCurrentViewPlugin(0),
       mVerticalViewType( CollectionView ),
-      mMusicServices(0)
+      mMusicServices(0),
+      mPopupHandler(0),
+      mUserExit( false ),
+      mActivityManager(0)
 {
     TX_LOG
 }
@@ -83,8 +91,11 @@
         mDetailsViewPlugin->destroyView();
         delete mDetailsViewPlugin;
     }
-
-    MpEngine::instance()->close();
+    if (mMediaWallViewPlugin) {
+        mMediaWallViewPlugin->destroyView();
+        delete mMediaWallViewPlugin;
+    }    
+    MpEngineFactory::close();
 
 
     TX_EXIT
@@ -94,22 +105,10 @@
 /*!
 Initialize and activate the collection view
  */
-void MpMainWindow::initialize()
+void MpMainWindow::initialize( ActivityMode mode )
 {
     TX_ENTRY
 
-    //Load musicplayer translator
-    QTranslator translator;
-    QString lang = QLocale::system().name();
-    QString path = QString("z:/resource/qt/translations/");
-
-    bool translatorLoaded = false;
-    translatorLoaded = translator.load(path + "musicplayer_" + lang);
-    TX_LOG_ARGS("Loading musicplayer translator ok=" << translatorLoaded);
-    if ( translatorLoaded ) {
-        qApp->installTranslator( &translator );
-    }
-
 #ifdef _DEBUG
     QList<XQPluginInfo> impls;
     XQPluginLoader::listImplementations("org.nokia.mmdt.MpxViewPlugin/1.0", impls);
@@ -128,20 +127,72 @@
         XQServiceUtil::toBackground( false );
     }
 
-    MpEngine *engine = MpEngine::instance();
-
     if ( !mMusicServices ) {
-        engine->initialize(MpCommon::DefaultView);
-      
-        loadView(CollectionView);
-        activateView(CollectionView);
-
+        HbApplication* app = qobject_cast<HbApplication*>(qApp);
+        QVariantHash params = app->activateParams();
+        MpEngineFactory::createSharedEngine();
+        mPopupHandler = new MpGlobalPopupHandler( this );
+        if( app->activateReason() == Hb::ActivationReasonActivity ) {
+            // Restoring an activity, not a fresh startup or a service
+            // Activities from Task switcher only have one parameter
+            if( params.count() == 1 ) {
+                 loadActivity( app->activateData() );
+            }
+        }
+        if ( orientation() == Qt::Vertical ) {
+            // If first startup ignore shuffleAll and send to collection view to refresh library
+            if ( mode == MusicMainView  || MpSettingsManager::firstStartup() ) {
+                loadView( CollectionView );
+                activateView( CollectionView );
+                loadView( MediaWallView );
+                loadView( PlaybackView );
+            } else if ( mode == MusicNowPlayingView ) {
+                if( params.contains( "shuffle" ) ) {
+                    if( !params.value( "shuffle" ).toString().compare( "yes" ) ) {
+                        MpEngineFactory::sharedEngine()->shuffleAll();
+                    }
+                }
+                loadView( PlaybackView );
+                activateView( PlaybackView );
+                loadView( CollectionView );
+                loadView( MediaWallView );
+            }
+        }
+        else {
+            // If first startup ignore shuffleAll and send to refresh library
+            if( mode == MusicNowPlayingView && !MpSettingsManager::firstStartup() ) {
+                if( params.contains( "shuffle" ) ) {
+                    if( !params.value( "shuffle" ).toString().compare( "yes" ) ) {
+                        MpEngineFactory::sharedEngine()->shuffleAll();
+                    }
+                }
+                mVerticalViewType = PlaybackView;
+            }
+            loadView( MediaWallView );
+            activateView( MediaWallView );
+            loadView( CollectionView );
+            loadView( PlaybackView );
+        }
         connect(this, SIGNAL( orientationChanged( Qt::Orientation ) ), SLOT( switchView( Qt::Orientation ) ) );
-        connect( engine, SIGNAL( libraryUpdated() ), SLOT( handleLibraryUpdated() ) );
-        engine->checkForSystemEvents();
-        loadView( PlaybackView );
+        connect( MpEngineFactory::sharedEngine(), SIGNAL( libraryUpdated() ), SLOT( handleLibraryUpdated() ) );
+        MpEngineFactory::sharedEngine()->checkForSystemEvents();
+        //Register to application manager to wait for activities and clear previous activities on the task switcher
+        mActivityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
+        mActivityManager->waitActivity();
+        mActivityManager->removeActivity( MUSIC_MAIN_VIEW );
+        mActivityManager->removeActivity( MUSIC_NOW_PLAYING_VIEW );
+        connect( app, SIGNAL( activate() ), this , SLOT( handleActivity() ) );
+        connect( app, SIGNAL( aboutToQuit() ), this, SLOT( saveActivity() ) );
+        emit applicationReady();
+        
     }
-    setOrientation(Qt::Vertical, true);//This sould prevent media wall activation.
+    else {
+        setOrientation(Qt::Vertical, true);//This sould prevent media wall activation.
+    }
+    //since we only have one landscape view, media wall, disable automatic 
+    //orientation transitions, they look like a flicker.
+    //This will make the view switch faster.
+    setAutomaticOrientationEffectEnabled( false );    
     TX_EXIT
 }
 
@@ -151,14 +202,18 @@
 void MpMainWindow::handleCommand( int commandCode )
 {
     TX_ENTRY_ARGS("commandCode=" << commandCode );
-
+    
     switch ( commandCode ) {
         case MpCommon::Exit:
             if ( mCurrentViewPlugin ) {
                 disconnectView();
             }
+            mUserExit = true;
             qApp->quit();
             break;
+        case MpCommon::SendToBackground:
+            lower();
+            break;
         case MpCommon::ActivateCollectionView:
             activateView(CollectionView);
             break;
@@ -183,7 +238,9 @@
         if (orientation == Qt::Vertical) {
             activateView( mVerticalViewType );   
         }
-
+        else {
+            activateView(MediaWallView);
+        }
 }
 
 /*!
@@ -199,7 +256,10 @@
     if ( mCurrentViewPlugin ) {     
         disconnectView();
         mCurrentViewPlugin->deactivateView();
-        if ( viewType  == CollectionView && mCurrentViewPlugin == mPlaybackViewPlugin ||
+        if ( viewType  == MediaWallView || mCurrentViewPlugin == mMediaWallViewPlugin ) {
+            doTransition = false;
+        }
+        else if ( viewType  == CollectionView && mCurrentViewPlugin == mPlaybackViewPlugin ||
                   viewType  == PlaybackView && mCurrentViewPlugin == mDetailsViewPlugin ||
                   viewType  == PlaybackView && mCurrentViewPlugin == mSettingsViewPlugin ) {
             transitionFlags |= Hb::ViewSwitchUseBackAnim;
@@ -212,9 +272,9 @@
     Q_ASSERT( mCurrentViewPlugin );
 
     if ( mCurrentViewPlugin ) {
-        
-        mVerticalViewType = viewType;
-        
+        if ( viewType != MediaWallView  ) {
+            mVerticalViewType = viewType;
+        }
         addView( reinterpret_cast<HbView*>( mCurrentViewPlugin->getView() ) );
         setCurrentView( reinterpret_cast<HbView*>( mCurrentViewPlugin->getView() ) , doTransition , transitionFlags);
         mCurrentViewPlugin->activateView();
@@ -275,17 +335,35 @@
 /*!
  Reimp.
  */
-
+void 	MpMainWindow::keyPressEvent(QKeyEvent *event)
+{
+    switch(event->key()) {
+    case 16842753:
+    case Qt::Key_Call:
+        if (orientation () == Qt::Vertical) {
+            setOrientation(Qt::Horizontal, false);
+        }
+        else {
+            setOrientation(Qt::Vertical, false);
+        }
+        break;
+    default:
+        HbMainWindow::keyPressEvent (event);
+        break;          
+    }
+}
 
-void MpMainWindow::initializeServiceView( TUid hostUid ){
-    
-    MpEngine *engine = MpEngine::instance();
-        
+/*!
+  Slot to initialize the view that corresponds to the requested service  
+ */
+void MpMainWindow::initializeServiceView( TUid hostUid )
+{
     switch (mMusicServices->currentService()) {
  
     case MusicServices::EUriFetcher:
         {
-            engine->initialize( MpCommon::FetchView, hostUid );
+            MpEngineFactory::createSharedEngine( hostUid , MpEngine::Fetch );
+            mPopupHandler = new MpGlobalPopupHandler( this );
             loadView( CollectionView, MpCommon::FetchView );
             MpViewBase* collectionView = reinterpret_cast<MpViewBase*>(mCollectionViewPlugin->getView());
             connect(collectionView, SIGNAL(songSelected(QString)), mMusicServices, SLOT(itemSelected(QString)));
@@ -293,25 +371,93 @@
             loadView(PlaybackView, MpCommon::FetchView );
             MpViewBase* playbackView = reinterpret_cast<MpViewBase*>(mPlaybackViewPlugin->getView());
             connect(playbackView, SIGNAL(songSelected(QString)), mMusicServices, SLOT(itemSelected(QString)));
-            connect( engine, SIGNAL( libraryUpdated() ), this, SLOT( handleLibraryUpdated() ) );
-            engine->checkForSystemEvents();
+            connect( MpEngineFactory::sharedEngine(), SIGNAL( libraryUpdated() ), this, SLOT( handleLibraryUpdated() ) );
+            MpEngineFactory::sharedEngine()->checkForSystemEvents();
             break;
         }
     case MusicServices::EPlayback:
         {
-            engine->initialize( MpCommon::EmbeddedView, hostUid );
+            MpEngineFactory::createSharedEngine( hostUid , MpEngine::Embedded );
             loadView(PlaybackView, MpCommon::EmbeddedView );   
             MpViewBase* playbackView = reinterpret_cast<MpViewBase*>(mPlaybackViewPlugin->getView());
-            connect(mMusicServices, SIGNAL(playReady(QString)), engine, SLOT(playEmbedded(QString)));
-            connect(mMusicServices, SIGNAL(playReady(const XQSharableFile&)), engine, SLOT(playEmbedded(const XQSharableFile&)));
+            connect(mMusicServices, SIGNAL(playReady(QString)), MpEngineFactory::sharedEngine(), SLOT(playEmbedded(QString)));
+            connect(mMusicServices, SIGNAL(playReady(const XQSharableFile&)), MpEngineFactory::sharedEngine(), SLOT(playEmbedded(const XQSharableFile&)));
             connect(playbackView, SIGNAL(songSelected(QString)), mMusicServices, SLOT(itemSelected(QString)));
             activateView( PlaybackView );
             break;
         }
-        default:
+    default:
         Q_ASSERT_X(false, "MpMainWindow::initializeServiceView", "undefined service");
         break;
     }
+    emit applicationReady();
+}
+
+/*!
+  Slot to handle activity switching once the stand alone instance is running and registered 
+  in the activity manager to wait for activities.
+  Only running activity supported at the moment is "MusicNowPlayingView"
+ */
+void MpMainWindow::handleActivity()
+{
+    TX_ENTRY
+    HbApplication* app = qobject_cast<HbApplication*>(qApp);
+    QString activityId = app->activateId();
+    
+    if( !activityId.compare( MUSIC_NOW_PLAYING_VIEW ) ) {
+        if ( orientation() == Qt::Vertical ) {
+            if( mVerticalViewType != PlaybackView ) {
+                activateView( PlaybackView );
+            }
+        }
+    }
+    
+    mActivityManager->waitActivity();
+    TX_EXIT
+}
+
+/*!
+  Slot to save activity upon exiting application
+ */
+void MpMainWindow::saveActivity()
+{
+    TX_ENTRY
+    QString activity = ( mVerticalViewType == CollectionView ) ? MUSIC_MAIN_VIEW : MUSIC_NOW_PLAYING_VIEW;
+    //Get data from engine
+    QByteArray serializedRestorePath;
+    if ( mUserExit ) {
+        //Internal exit will always return to the main view
+        activity = MUSIC_MAIN_VIEW;
+    }
+    else {
+        //Only saved data if exited via task switcher or GOOM
+        MpEngineFactory::sharedEngine()->saveActivityData( serializedRestorePath );
+    }
+    QVariantHash activityParameters;
+    activityParameters.insert( "screenshot", QPixmap::grabWidget( this, this->rect() ) );
+    QVariantHash activityData;
+    activityData.insert( "restorePath", serializedRestorePath );
+       
+    
+    bool ok = mActivityManager->addActivity( activity , activityData, activityParameters );
+    if ( !ok ){
+        TX_LOG_ARGS( "Error: Add Failed; should never get here." );
+    }
+    TX_EXIT
+}
+
+/*!
+  Slot to handle a failed path restoration. Switch to collection view if not already there.
+ */
+void MpMainWindow::handleRestorePathFailed()
+{
+    TX_ENTRY
+    if ( orientation() == Qt::Vertical ) {
+        if( mVerticalViewType != CollectionView ) {
+            activateView( CollectionView );
+        }
+    }
+    TX_EXIT
 }
 
 /*!
@@ -338,7 +484,10 @@
         pluginUid = MpCommon::KDetailsViewUid;
         plugin = &mDetailsViewPlugin;
         break;
-
+    case MediaWallView:
+        pluginUid = MpCommon::KMediaWallViewUid;
+        plugin = &mMediaWallViewPlugin;
+        break;
     default:
         Q_ASSERT_X(false, "MpMainWindow::loadView", "undefined view type");
         break;
@@ -362,3 +511,16 @@
     return plugin ? *plugin : 0;
 }
 
+/*!
+  Load activity called via task switcher
+  Restore view and playback path if applicable
+ */
+void MpMainWindow::loadActivity( QVariant data )
+{
+    TX_ENTRY
+    QVariantHash activityData = data.toHash();
+    QByteArray serializedRestorePath = activityData.value( "restorePath" ).toByteArray();
+    MpEngineFactory::sharedEngine()->loadActivityData( serializedRestorePath );
+    TX_EXIT
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/src/mpmtpinfolink.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,98 @@
+/*
+* 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: Music Player MTP info link. This class is used to provide a link
+*              to educate the user about MTP after a successful manual refresh.
+*              Basically this class inherits from HbLabel and catches mouse events,
+*              when clicked it opens a url already specified in settings.
+*
+*/
+
+//Qt
+#include <QUrl>
+#include <QDesktopServices>
+#include <QGraphicsSceneMouseEvent>
+
+//Orbit
+#include <hbparameterlengthlimiter.h>
+
+//Local
+#include "mpsettingsmanager.h"
+#include "mpmtpinfolink.h"
+#include "mptrace.h"
+
+/*!
+    \class MpMtpInfoLink
+    \brief MpMtpInfoLink provides a label that can handle mouse events.
+
+    When label is clicked it opens a URL containing MTP information.
+*/
+
+/*!
+ Constructs MpMtpInfoLink.
+ */
+MpMtpInfoLink::MpMtpInfoLink()
+{
+    TX_ENTRY
+    setTextWrapping( Hb::TextWrapAnywhere );
+    setMtpInfoText();
+    TX_EXIT
+}
+
+/*!
+ Destructs the MpMtpInfoLink.
+ */
+MpMtpInfoLink::~MpMtpInfoLink()
+{
+    TX_LOG
+}
+
+/*!
+ Catches mouse press events.
+ */
+void MpMtpInfoLink::mousePressEvent( QGraphicsSceneMouseEvent *event )
+{
+    Q_UNUSED( event );
+}
+
+/*!
+ Catches mouse release event.
+ */
+void MpMtpInfoLink::mouseReleaseEvent( QGraphicsSceneMouseEvent *event )
+{
+    TX_ENTRY
+    QRectF itemRect = boundingRect();
+    QPointF releasePoint = event->lastPos();
+    if ( itemRect.contains( releasePoint ) ) {
+        QUrl url( MpSettingsManager::instance()->mtpInfoUrl() );
+        QDesktopServices::openUrl( url );
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ Set text to be shown in html format
+ */
+void MpMtpInfoLink::setMtpInfoText()
+{
+    TX_ENTRY
+    QString url = MpSettingsManager::instance()->mtpInfoUrl();
+    QString text = HbParameterLengthLimiter( "txt_mus_info_please_note_that_using_media_transfer" ).arg( url );
+    QString htmlLink = "<a href=\"" + url + "\">" + url + "</a>" ;
+    text.replace( url, htmlLink );
+    text = "<p>" + text + "</p>" ;
+    setHtml( text );
+    TX_EXIT
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,20 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpmtpinfolink
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/inc/unittest_mpmtpinfolink.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* 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: Unit test for MpMtpInfoLink
+*
+*/
+
+#ifndef TESTMPMTPINFOLINK_H
+#define TESTMPMTPINFOLINK_H
+
+#include <QtTest/QtTest>
+
+class MpMtpInfoLink;
+
+class TestMpMtpInfoLink : public QObject
+{
+    Q_OBJECT
+
+public:
+    TestMpMtpInfoLink();
+    virtual ~TestMpMtpInfoLink();
+
+public slots:
+
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+
+    void testConstructor();
+    void testMousePressEvent();
+    void testMouseReleaseEvent();
+    void testSetMtpInfoText();
+
+private:
+    MpMtpInfoLink  *mTest;
+
+};
+
+#endif  // TESTMPMTPINFOLINK_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/src/unittest_mpmtpinfolink.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,149 @@
+/*
+* 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: Unit test for MpMtpInfoLink
+*
+*/
+
+#include <QGraphicsSceneMouseEvent>
+
+#include "stub/inc/hblabel.h"
+#include "stub/inc/qdesktopservices.h"
+#include "stub/inc/mpsettingsmanager.h"
+#include "unittest_mpmtpinfolink.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#define protected public
+#include "mpmtpinfolink.h"
+#undef protected
+#undef private
+
+//This so we can test private functions
+#include "../../src/mpmtpinfolink.cpp"
+
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    TestMpMtpInfoLink tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmtpinfolink.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+
+TestMpMtpInfoLink::TestMpMtpInfoLink()
+    : mTest( 0 )
+{
+}
+
+TestMpMtpInfoLink::~TestMpMtpInfoLink()
+{
+    delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpMtpInfoLink::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpMtpInfoLink::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpMtpInfoLink::init()
+{
+    mTest = new MpMtpInfoLink();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpMtpInfoLink::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+/*!
+ Tests constructor.
+*/
+void TestMpMtpInfoLink::testConstructor()
+{
+    QVERIFY(mTest->textWrapping() == Hb::TextWrapAnywhere );
+}
+
+/*!
+ testMousePressEvent.
+ */
+void TestMpMtpInfoLink::testMousePressEvent()
+{
+    //MpMtpInfoLink::mousePressEvent does nothing, included just to cover all functions.
+    QGraphicsSceneMouseEvent *event = new QGraphicsSceneMouseEvent();
+    mTest->mousePressEvent( event );
+    QVERIFY( mTest );
+}
+
+/*!
+ Tests HandleOpen.
+ */
+void TestMpMtpInfoLink::testMouseReleaseEvent()
+{
+    QGraphicsSceneMouseEvent *event = new QGraphicsSceneMouseEvent();
+
+    //Mock label rect: x=10, y=10, width=10, height=10);
+    QPointF releasePointOut(5,5);
+    QPointF releasePointIn(15,15);
+
+    //Verify releasing the mouse outside the label
+    event->setLastPos( releasePointOut );
+    mTest->mouseReleaseEvent( event );
+    QCOMPARE( QDesktopServices::instance()->mOpenUrlCount, 0);
+    //Verify releasing the mouse inside the label
+    event->setLastPos( releasePointIn );
+    mTest->mouseReleaseEvent( event );
+    QCOMPARE( QDesktopServices::instance()->mOpenUrlCount, 1);
+}
+
+/*!
+ testSetMtpInfoText
+ */
+void TestMpMtpInfoLink::testSetMtpInfoText( )
+{
+    //Verify with an url
+    QVERIFY( mTest->plainText().length() == 0 );
+    QVERIFY( mTest->html().length() > 0 );
+
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/stub/inc/hblabel.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  HbLabel stub for testing MpMtpInfoLink
+*
+*/
+
+#ifndef HBLABEL_H
+#define HBLABEL_H
+
+#include <QGraphicsView>
+
+namespace Hb
+{
+/*!
+    A type definition for text wrapping
+*/
+    enum TextWrapping
+    {
+        TextNoWrap = 0,
+        TextWordWrap = 1,
+        TextWrapAnywhere = 3
+    };
+}
+
+class HbLabel : public QObject
+{
+
+public:
+    explicit HbLabel ();
+    virtual ~HbLabel ();
+
+    QString plainText() const;
+    QString html() const;
+
+    void setTextWrapping(Hb::TextWrapping mode);
+    Hb::TextWrapping textWrapping() const;
+
+    void setPlainText(const QString &text);
+    void setHtml(const QString &text);
+    QRectF boundingRect();
+
+private:
+    QString mText;
+    QString mHtmlText;
+    Hb::TextWrapping mTextWrapping;
+};
+
+
+#endif // HBLABEL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/stub/inc/hbparameterlengthlimiter.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  HbLabel stub for testing MpMtpInfoLink
+*
+*/
+
+#ifndef HBPARAMETERLENGTHLIMITER_H
+#define HBPARAMETERLENGTHLIMITER_H
+
+#include <QtCore/qstring.h>
+
+typedef QString HbParameterLengthLimiter;
+
+#endif // HBPARAMETERLENGTHLIMITER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/stub/inc/mpsettingsmanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,45 @@
+/*
+* 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: MpSettingsManager stub for testing MpMtpInfoLink.
+*
+*/
+
+#ifndef MPSETTINGSMANAGER_H
+#define MPSETTINGSMANAGER_H
+
+#include<QObject>
+#include <QtGlobal>
+
+class  MpSettingsManager: public QObject
+{
+    
+Q_OBJECT
+
+private:
+    explicit MpSettingsManager();
+
+public:
+    virtual ~MpSettingsManager();
+    static MpSettingsManager *instance();
+    static void SetUrl( QString url );
+    static QString mtpInfoUrl();
+
+public:
+    QString mMtpInfoUrl;
+
+private:
+    Q_DISABLE_COPY(MpSettingsManager)
+};
+
+#endif    // MPSETTINGSMANAGER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/stub/inc/qdesktopservices.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,39 @@
+/*
+* 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: QDesktopServices stub for testing MpMtpInfoLink.
+*
+*/
+
+#ifndef QDESKTOPSERVICES_H
+#define QDESKTOPSERVICES_H
+
+#include <QtCore/qstring.h>
+
+class QUrl;
+
+class QDesktopServices
+{
+private:
+    explicit QDesktopServices();
+
+public:
+    virtual ~QDesktopServices();
+    static QDesktopServices *instance();
+    static bool openUrl( const QUrl &url);
+
+    int mOpenUrlCount;
+
+};
+
+#endif    // QDESKTOPSERVICES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/stub/src/hblabel.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: HbLabel stub for testing MpMtpInfoLink
+*
+*/
+
+#include <QGraphicsSceneMouseEvent>
+
+#include "stub/inc/hblabel.h"
+
+
+/*!
+    Constructs the label
+ */
+HbLabel::HbLabel() 
+{
+    mText = QString();
+    mHtmlText = QString();
+    mTextWrapping = Hb::TextNoWrap;
+}
+
+/*!
+    Label destructor.
+ */
+HbLabel::~HbLabel ()
+{
+}
+
+/*!
+    Sets the text wrapping mode to \a mode.
+    \param mode - wrapping mode
+
+    \sa Hb::TextWrapping
+ */
+void HbLabel::setTextWrapping(Hb::TextWrapping mode)
+{
+    mTextWrapping = mode;
+}
+
+/*!
+    \return the label's current text wrapping mode.
+    Default value is NoWrap.
+
+    \sa setTextWrapping()
+ */
+Hb::TextWrapping HbLabel::textWrapping() const
+{
+    return mTextWrapping;
+}
+
+/*!
+    Sets the label contents to plain text containing \a text. Any previous content is cleared.
+    \param text - the plain text that is shown in the label.
+
+    \sa setHtml()
+ */
+void HbLabel::setPlainText(const QString &text)
+{
+    mText = text;
+}
+
+/*!
+    Sets the label contents to html text containing \a text. Any previous content is cleared.
+    \param text - the html text that is shown in the label.
+
+    \sa setPlainText()
+ */
+void HbLabel::setHtml(const QString &text)
+{
+    mHtmlText = text;
+}
+
+/*!
+    Plain text accessor. Returns empty string if not set.
+ */
+QString HbLabel::plainText() const
+{
+    return mText;
+}
+
+/*!
+    Rich text text accessor. Returns empty string if not set.
+ */
+QString HbLabel::html() const
+{
+    return mHtmlText;
+}
+
+/*!
+    Fake widget rectangle accessor.
+ */
+QRectF HbLabel::boundingRect()
+{
+    return QRectF(10, 10, 10, 10);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/stub/src/mpsettingsmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* 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: MpSettingsManager stub for testing MpMtpInfoLink.
+*
+*/
+
+#include "stub/inc/mpsettingsmanager.h"
+
+
+/*!
+ Constructs the MP Settings Manager.
+ */
+MpSettingsManager::MpSettingsManager()
+{
+    mMtpInfoUrl = QString( "http://nokia.com/" );
+}
+
+/*!
+ Destructs the settings manager.
+ */
+MpSettingsManager::~MpSettingsManager()
+{
+}
+
+/*!
+ Returns the singleton instance to the settings manager.
+ */
+MpSettingsManager * MpSettingsManager::instance()
+{
+    static MpSettingsManager instance;
+    return &instance;
+}
+
+void MpSettingsManager::SetUrl( QString url )
+{
+    instance()->mMtpInfoUrl = url;
+}
+
+/*!
+ Returns mtp info url.
+ */
+QString MpSettingsManager::mtpInfoUrl()
+{
+    return instance()->mMtpInfoUrl;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/stub/src/qdesktopservices.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* 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: QDesktopServices stub for testing MpMtpInfoLink.
+*
+*/
+
+#include <QUrl>
+
+#include "stub/inc/qdesktopservices.h"
+
+
+/*!
+ Constructs the QDesktopServices.
+ */
+QDesktopServices::QDesktopServices()
+{
+    mOpenUrlCount = 0;
+}
+
+/*!
+ Destructs the QDesktopServices.
+ */
+QDesktopServices::~QDesktopServices()
+{
+}
+
+/*!
+ Returns the singleton instance to the QDesktopServices.
+ */
+QDesktopServices * QDesktopServices::instance()
+{
+    static QDesktopServices instance;
+    return &instance;
+}
+
+bool QDesktopServices::openUrl( const QUrl &url)
+{
+    Q_UNUSED( url );
+    instance()->mOpenUrlCount++;
+    return true;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/tsrc/unittest_mpmtpinfolink/unittest_mpmtpinfolink.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,45 @@
+#
+# 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
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpmtpinfolink
+TARGET.CAPABILITY = CAP_APPLICATION
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+               ../../inc \
+               ../../../inc
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lestor.dll \
+        -lfbscli.dll
+
+HEADERS += inc/unittest_mpmtpinfolink.h \
+           ../../inc/mpmtpinfolink.h \
+           stub/inc/hblabel.h \
+           stub/inc/hbparameterlengthlimiter.h \
+           stub/inc/mpsettingsmanager.h \
+           stub/inc/qdesktopservices.h
+
+SOURCES += src/unittest_mpmtpinfolink.cpp \
+           ../../src/mpmtpinfolink.cpp \
+           stub/src/hblabel.cpp \
+           stub/src/mpsettingsmanager.cpp \
+           stub/src/qdesktopservices.cpp
+
--- a/inc/mpcollectiondatamodel.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpcollectiondatamodel.h	Thu Jul 22 16:32:33 2010 +0100
@@ -20,6 +20,8 @@
 
 #include <QAbstractListModel>
 
+#include "mpmpxcollectionviewdefs.h"
+
 class MpMpxCollectionData;
 class MpCollectionAlbumArtManager;
 
@@ -32,7 +34,7 @@
 class MPDATA_EXPORT MpCollectionDataModel : public QAbstractListModel
 {
     Q_OBJECT
-
+   
 public:
 
     explicit MpCollectionDataModel( MpMpxCollectionData *data, QObject *parent=0 );
@@ -46,22 +48,29 @@
     QMimeData *mimeData(const QModelIndexList &indexes) const;
     bool dropMimeData(const QMimeData *data, Qt::DropAction action,
                               int row, int column, const QModelIndex &parent);
+    void setItemVisibility(const QModelIndex &index, bool visible);
     
     MpMpxCollectionData *collectionData();
     
 signals:
+
     void orderChanged( int containerId, int itemId, int itemOrdinal, int newOrdinal );
+    void dataReloaded();
 
 public slots:
 
+    void setContext( TCollectionContext context );
     void updateAlbumArt( int index );
     void refreshModel();
+    void reloadData();
 
 private:
 
-    MpMpxCollectionData             *mCollectionData;
-	MpCollectionAlbumArtManager     *mAlbumArtManager;  // Own
+    MpMpxCollectionData             *mCollectionData;       // Not own
+    MpCollectionAlbumArtManager     *mAlbumArtManager;      // Own
     int                             mRowCount;
+    int                             mAlbumIndexOffset;
+    int                             mHiddenItemIndex;
 
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/mpcollectiontbonelistdatamodel.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,69 @@
+/*
+* 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: Music Player collection abstract data model. This is
+*              primarily used to support TBone Mediawall in Collection View.
+*              This model represents the list containing album songs.
+*
+*/
+
+#ifndef MPCOLLECTIONTBONELISTDATAMODEL_H
+#define MPCOLLECTIONTBONELISTDATAMODEL_H
+
+#include <QAbstractListModel>
+
+class MpMpxCollectionData;
+class MpPlaybackData;
+
+#if defined(BUILD_MPDATA_LIB)
+#define MPDATA_EXPORT Q_DECL_EXPORT
+#else
+#define MPDATA_EXPORT Q_DECL_IMPORT
+#endif
+
+class MPDATA_EXPORT MpCollectionTBoneListDataModel : public QAbstractListModel
+{
+    Q_OBJECT
+
+public:
+
+    explicit MpCollectionTBoneListDataModel( MpMpxCollectionData *collectionData, 
+            MpPlaybackData *playbackData = 0, QObject *parent = 0 );
+    virtual ~MpCollectionTBoneListDataModel();
+
+    int rowCount(const QModelIndex &parent=QModelIndex()) const;
+    QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const;
+
+signals:
+
+    void albumDataChanged();
+    void albumDataAvailable();
+
+public slots:
+
+    void refreshModel();
+    void updateSong();
+    void updatePlaybackState();
+
+private:
+
+    MpMpxCollectionData             *mCollectionData; // Not own
+    MpPlaybackData                  *mPlaybackData;   // Not own
+    int                             mRowCount;
+    int                             mCurrentSongId;
+    bool                            mPlaybackActive;
+
+};
+
+#endif // MPCOLLECTIONTBONELISTDATAMODEL_H
+
--- a/inc/mpcommondefs.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpcommondefs.h	Thu Jul 22 16:32:33 2010 +0100
@@ -28,6 +28,7 @@
     const long int KPlaybackViewUid     = {0x10207C64};
     const long int KSettingsViewUid     = {0x10207C66};
     const long int KDetailsViewUid      = {0x2002D0AA};
+    const long int KMediaWallViewUid    = {0x10207C94};
 
     /*!
      Command code sent from the views to the application main window
@@ -35,10 +36,11 @@
      */
     enum MpCommandCode {
         Exit,
+        SendToBackground,
         ActivateCollectionView,
         ActivatePlaybackView,
-		ActivateSettingsView,
-		ActivateDetailsView
+        ActivateSettingsView,
+        ActivateDetailsView
     };
 
     /*!
@@ -51,6 +53,15 @@
         FetchView,
         EmbeddedView
     };
+    
+    /*!
+    Thumbnail type, used in collection model.
+    */
+    enum MpThumbType{
+        ListThumb,
+        TBoneThumb,
+        MediaWallThumb,
+    };
 }
 
 #endif	// MPCOMMONDEFS_H
--- a/inc/mpengine.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpengine.h	Thu Jul 22 16:32:33 2010 +0100
@@ -25,16 +25,19 @@
 
 
 class QStringList;
-class QTranslator;
-class HbPopup;
 class MpMpxHarvesterFrameworkWrapper;
 class MpSongScanner;
 class MpMediaKeyHandler;
 class MpMpxCollectionFrameworkWrapper;
 class MpMpxPlaybackFrameworkWrapper;
+class MpMpxDetailsFrameworkWrapper;
 class MpMpxCollectionData;
 class MpPlaybackData;
+class MpSongData;
 class XQSharableFile;
+class MpEngineFactory;
+class MpAudioEffectsFrameworkWrapper;
+class MpEqualizerFrameworkWrapper;
 
 #if defined(BUILD_MPENGINE_LIB)
 #define MPENGINE_EXPORT Q_DECL_EXPORT
@@ -46,9 +49,19 @@
 class MPENGINE_EXPORT MpEngine : public QObject
 {
     Q_OBJECT
+    Q_PROPERTY(int activePreset READ activePreset)
+
+    friend class MpEngineFactory;
+
+public:
+    enum EngineMode{
+        StandAlone,
+        Fetch,
+        Embedded,
+        MediaBrowsing
+    };
 
 private:
-
     enum UsbBlockingState {
         USB_NotConnected,          // Not connected
         USB_Connected,             // Connected in MTP mode but not synchronizing
@@ -61,15 +74,12 @@
 public:
 
     virtual ~MpEngine();
-    static MpEngine *instance();
 
-    void initialize(MpCommon::MpViewMode viewMode, TUid uid = TUid::Uid( MpCommon::KMusicPlayerUid ) );
-    void close();
-	
     // Harvester related
-    bool verifyUsbBlocking( bool showMessage = false );
+    bool verifyUsbBlocking( bool notify = false );
     void checkForSystemEvents();
-    
+    MpSongScanner *songScanner();
+
     // Collection related
     void openCollection( TCollectionContext context );
     void openCollectionItem( int index );
@@ -82,58 +92,105 @@
     void renamePlaylist( QString &newName );
     void deleteSongs( QList<int> &selection );
 
-    
     void previewItem( int index );
     void openIsolatedCollection( TCollectionContext context );
     void releaseIsolatedCollection();
-    
+
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData = 0 );
+
     MpMpxCollectionData *collectionData();
-    
+
     // Playback related
-    
+
     MpPlaybackData *playbackData();
 
+    void shuffleAll();
+
+
+    // Details related
+    MpSongData *songData();
+    void retrieveSong();
+
+    // Audio Effects related
+    int balance();
+    bool loudness();
+
+    // Equalizer related
+    void applyPreset( int presetIndex );
+    void disableEqualizer();
+    int activePreset();
+    QStringList presetNames();
+    
+    //Activity related
+    void saveActivityData( QByteArray &data );
+    void loadActivityData( const QByteArray &data );
+
 signals:
-    
+
     // Harvester related
     void libraryAboutToUpdate();
     void libraryUpdated();
     void usbBlocked( bool blocked );
-    
+    void unableToCotinueDueUSB();
+    void usbSynchronizationStarted();
+    void usbSynchronizationFinished();
+    void libraryRefreshNeeded();
+
     // Collection related
     void collectionPlaylistOpened();
+    void aboutToAddSongs( int count );
     void playlistSaved( bool success );
+    void deleteStarted(TCollectionContext context, int Count);
     void songsDeleted( bool success );
     void playlistsRenamed( bool success );
-    
     void isolatedCollectionOpened( MpMpxCollectionData* collectionData );
+    void containerContentsChanged();
+    void restorePathFailed();
+
+    // Equalizer related
+    void equalizerReady();
 
 public slots:
 
     // Harvester related
-    void refreshLibrary();
+    void refreshLibrary( bool automaticRequest = false );
     void handleScanStarted();
     void handleScanEnded( int count, int error );
     void handleDiskEvent( MpxDiskEvents event );
     void handleUsbEvent( MpxUsbEvents event );
-    void handleOutstandingNoteClosing();
-    
+
     // Collection related
     void reopenCollection();
     void reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal );
+    void handleDeleteStarted( TCollectionContext context, int count );
+    void handleDeleteEnded( bool success );
+    void cancelCollectionRequest();
 
-	// Playback related
-	void playEmbedded( QString aFilename );
-	void playEmbedded( const XQSharableFile&  file );
+    // Playback related
+    void playEmbedded( QString aFilename );
+    void playEmbedded( const XQSharableFile&  file );
     void playPause();
     void stop();
     void skipForward();
+    void startSeekForward();
+    void stopSeeking();
     void skipBackward();
+    void startSeekBackward();
     void setPosition( int position );
     void setShuffle( bool mode );
     void setRepeat( bool mode );
-	
+
+    // Audio Effects related
+    void setBalance( int balance );
+    void setLoudness( bool mode );
+
+    // Equalizer related
+    void handleEqualizerReady();
+
 private:
+    
+    void initialize( TUid hostUid, EngineMode mode);
 
     // Harvester related
     void handleUsbMassStorageStartEvent();
@@ -141,10 +198,7 @@
     void handleUsbMtpStartEvent();
     void handleUsbMtpEndEvent();
     void handleUsbMtpNotActive();
-
     void changeUsbBlockingState( UsbBlockingState state );
-    void launchBlockingNote();
-    void setOutstandingPopup( HbPopup *popup );
 
 private:
 
@@ -154,21 +208,27 @@
     MpMpxHarvesterFrameworkWrapper       *mMpxHarvesterWrapper;  // Own
     MpSongScanner                        *mSongScanner;          // Own
     MpMediaKeyHandler                    *mMediaKeyHandler;      // Own
-    HbPopup                              *mUsbOutstandingNote;   // Own
-    
+
     // Collection related
     MpMpxCollectionFrameworkWrapper      *mMpxCollectionWrapper; //Own
 
     // Playback related
     MpMpxPlaybackFrameworkWrapper        *mMpxPlaybackWrapper; //Own
-        
+
+    // Details related
+    MpMpxDetailsFrameworkWrapper         *mMpxDetailsWrapper;  // Own
+
+    // Audio Effects related
+    MpAudioEffectsFrameworkWrapper       *mAudioEffectsWrapper; // Own
+
+    // Equalizer related
+    MpEqualizerFrameworkWrapper          *mEqualizerWrapper; // Own
+    int                                  mCurrentPresetIndex;
+
     // General
-    QTranslator                          *mMpTranslator;         // Own
     UsbBlockingState                     mUsbBlockingState;
     UsbBlockingState                     mPreviousUsbState;    
-    MpCommon::MpViewMode                 mViewMode;
     TUid                                 mHostUid;
-
 };
 
 #endif // MPENGINE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/mpenginefactory.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* 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: Music Player engine.
+*
+*/
+
+#ifndef MPENGINEFACTORY_H
+#define MPENGINEFACTORY_H
+
+#include <QObject>
+
+#include "mpengine.h"
+#include "mpcommondefs.h"
+
+
+#if defined(BUILD_MPENGINE_LIB)
+#define MPENGINE_EXPORT Q_DECL_EXPORT
+#else
+#define MPENGINE_EXPORT Q_DECL_IMPORT
+#endif
+
+
+class MPENGINE_EXPORT MpEngineFactory : public QObject
+{
+    Q_OBJECT
+
+private:
+    explicit MpEngineFactory();
+
+public:
+    virtual ~MpEngineFactory();
+    static MpEngineFactory * instance();
+    
+    static MpEngine *createSharedEngine( TUid uid = TUid::Uid( MpCommon::KMusicPlayerUid ), MpEngine::EngineMode mode = MpEngine::StandAlone );
+    static MpEngine *createIsolatedEngine( MpEngine::EngineMode mode );
+    static MpEngine *sharedEngine();
+    static void close();
+	
+private:
+    
+    Q_DISABLE_COPY( MpEngineFactory )
+    
+    MpEngine             *mSharedEngine;
+    QList<MpEngine *>    mEngines;
+
+};
+
+#endif // MPENGINEFACTORY_H
--- a/inc/mpmpxcollectiondata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpmpxcollectiondata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -65,16 +65,30 @@
     int itemCount( int index );
     int containerId();
     int itemId(int index);
+    int albumSongId( int index );
     void removeItem(int index);
     bool testCachedItem( int itemId );
     void insertCachedItem(int index);
 
-    void setMpxMedia( const CMPXMedia& entries );
+    bool setCurrentAlbum( int index );
+    int currentAlbumIndex() const;
+    int albumSongsCount() const;
+    QString albumSongData( int index, MpMpxCollectionData::DataType type ) const;
+
+    void setMpxMedia( const CMPXMedia& entries, bool reopen=false );
     const CMPXMedia& containerMedia();
+    void setContext( TCollectionContext context );
+    void setAlbumContent( const CMPXMedia& albumContent );
+    int itemIndex( int itemUniqueId );
+    int albumSongIndex( int songUniqueId );
 
 signals:
 
     void contextChanged( TCollectionContext context );
+    void dataChanged();
+    void albumDataChanged();
+    void refreshAlbumSongs();
+
 private:
 
     Q_DISABLE_COPY(MpMpxCollectionData)
--- a/inc/mpmpxcollectionviewdefs.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpmpxcollectionviewdefs.h	Thu Jul 22 16:32:33 2010 +0100
@@ -25,15 +25,15 @@
 enum TCollectionContext {
     ECollectionContextUnknown = 0,
     ECollectionContextAllSongs,
-	ECollectionContextArtists,
-	ECollectionContextArtistAlbums,
-	ECollectionContextArtistSongs,
+    ECollectionContextArtists,
+    ECollectionContextArtistAlbums,
+    ECollectionContextArtistAlbumsTBone,
+    ECollectionContextArtistAllSongs,
     ECollectionContextAlbums,
-    ECollectionContextAlbumSongs,
+    ECollectionContextAlbumsTBone,
     ECollectionContextPlaylists,
     ECollectionContextPlaylistSongs,
-    ECollectionContextGenres,
-    ECollectionContextGenreSongs
+    ECollectionContextAlbumsMediaWall
 };
 // Register so type can be used in signal and slot connection
 Q_DECLARE_METATYPE(TCollectionContext)
--- a/inc/mpnowplayingwidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpnowplayingwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -31,6 +31,8 @@
 //forward declartions
 class QGraphicsSceneMouseEvent;
 class MpNowPlayingWidgetPrivate;
+class HbFrameItem;
+
 
 class MPNOWPLAYINGBANNER_EXPORT MpNowPlayingWidget : public HbWidget
 {
@@ -38,11 +40,11 @@
     friend class MpNowPlayingWidgetPrivate;
 
 public:
-    explicit MpNowPlayingWidget(long int playerId, QGraphicsItem *parent=0 );
+    explicit MpNowPlayingWidget( QGraphicsItem *parent=0 );
     virtual ~MpNowPlayingWidget();
     void setEnabled( bool enabled );
-    void paint( QPainter *painter, const QStyleOptionGraphicsItem *option,
-                QWidget *widget = 0 );
+    void resizeEvent(QGraphicsSceneResizeEvent *event);
+    bool isBannerAttached();
 
 signals:
     void clicked();
@@ -51,12 +53,12 @@
 private:
     void mousePressEvent( QGraphicsSceneMouseEvent *event );
     void mouseReleaseEvent( QGraphicsSceneMouseEvent *event );
-    void changeEvent(QEvent *event);
+    void mouseMoveEvent( QGraphicsSceneMouseEvent *event );
 
 private:
     Q_DISABLE_COPY(MpNowPlayingWidget)
     MpNowPlayingWidgetPrivate * const d_ptr; //owned
-
+    HbFrameItem     *mFrameItem;
 };
 
 #endif    // MPNOWPLAYINGWIDGET_H
--- a/inc/mpplaybackdata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpplaybackdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -22,9 +22,10 @@
 #include <QString>
 #include <QPixmap>
 
+#include <hbicon.h>
+
 //forward declartions
 
-class HbIcon;
 class ThumbnailManager;
 
 #if defined(BUILD_MPDATA_LIB)
@@ -40,6 +41,7 @@
 public:
 
     enum SimplifiedState {
+        NotPlaying,
         Playing,
         Paused,
         Stopped
@@ -61,14 +63,20 @@
     const QString& album() const;
     bool setUri( const QString& uri );
     const QString& uri() const;
-
     void setAlbumArtUri( const QString& albumArtUri );
     void albumArt( HbIcon& icon ) const;
-
+    bool setAlbumId( int id );
+    int albumId();
+    bool setId( int id );
+    int id();
+    bool setRealAudio( bool mode );
+    bool realAudio();
     void setPlaybackState( const SimplifiedState state );
     MpPlaybackData::SimplifiedState playbackState() const;
 
     void commitPlaybackInfo();
+    void resetData();
+    
 
 public slots:
 
@@ -81,7 +89,7 @@
     void albumArtReady();
     void playbackStateChanged();
     void playbackInfoChanged();
-
+    
 private:
 
     ThumbnailManager         *mThumbnailManager; //owned
@@ -93,9 +101,12 @@
     QString                  mAlbum;
     QString                  mArtist;
     QString                  mUri;
-    HbIcon                   *mAlbumArt;
-    HbIcon                   *mDefaultAlbumArt;
+    int                      mAlbumId;
+    int                      mId;
+    HbIcon                   mAlbumArt;
+    HbIcon                   mDefaultAlbumArt;
     SimplifiedState          mPlaybackState;
+    bool                     mRealAudio;
 
     Q_DISABLE_COPY(MpPlaybackData)
 };
--- a/inc/mpsettingsmanager.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/inc/mpsettingsmanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -44,25 +44,38 @@
     static bool shuffle();
     static bool repeat();
     static int preset();
+    static bool inspireMe();
+    static bool songDetailsGb();
+    static bool showMtpInfo();
+    static QString mtpInfoUrl();
 
 public slots:
     void valueChanged(const XQSettingsKey& key, const QVariant& value);
     static void setShuffle(bool shuffle);
     static void setRepeat(bool repeat);
     static void setPreset(int preset);
+    static void setInspireMe(bool inspireme);
+    static void setSongDetailsGb(bool songdetails);
+    static void stopShowingMtpInfo();
         
 signals:
     void shuffleChanged(bool shuffle);
     void repeatChanged(bool repeat);
     void presetChanged(int preset);
+    void InspireMeChanged(bool inspireme);
+    void SongDetailsGbChanged(bool songdetails);
     
 private:
     Q_DISABLE_COPY(MpSettingsManager)
     XQSettingsManager* mSettingsManager;
-    bool mFirstStartup;
-    bool mShuffle;
-    bool mRepeat;
-    int  mPreset;
+    bool        mFirstStartup;
+    bool        mShuffle;
+    bool        mRepeat;
+    int         mPreset;
+    bool        mInspireMe;
+    bool        mSongDetailsGb;
+    bool        mShowMtpInfo;
+    QString     mMtpInfoUrl;
 };
 
 #endif    // MPSETTINGSMANAGER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/mpsongdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,135 @@
+/*
+* 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: Metadata of song for details view.
+*
+*/
+
+#ifndef MPSONGDATA_H
+#define MPSONGDATA_H
+
+#include <QObject>
+#include <QString>
+#include <QPixmap>
+
+//forward declartions
+class ThumbnailManager;
+class HbIcon;
+
+#if defined(BUILD_MPDATA_LIB)
+#define MPDATA_EXPORT Q_DECL_EXPORT
+#else
+#define MPDATA_EXPORT Q_DECL_IMPORT
+#endif
+
+//class declaration
+class MPDATA_EXPORT MpSongData : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit MpSongData( QObject *parent=0 );
+    virtual ~MpSongData();
+    
+    bool setTitle( const QString &title );
+    bool setAlbum( const QString &album );
+    bool setArtist( const QString &artist );
+    bool setComment( const QString &comment );
+    void setAlbumArtUri( const QString &albumArtUri );
+    bool setYear( int date );
+    bool setGenre( const QString &genre );
+    bool setComposer( const QString &compoer );
+    bool setAlbumTrack( const QString &albumtrack );
+    void setLink( const QString &link );
+    bool setFileName( const QString &fileName );
+    bool setMimeType( const QString &mimeType );
+    bool setDuration( int duration );
+    bool setBitRate( int bitRate);
+    bool setSampleRate( int sampleRate );
+    bool setSize( int size );
+    bool setModified( const QString &modified );
+    bool setCopyright( const QString &copyright );
+    bool setMusicURL( const QString &musicURL );
+    bool setDrmProtected( bool drmProtected );
+    
+    // inform details view when basic information is ready to accelerate UI update
+    void commitPlaybackInfo();
+    // inform details view when details information is ready
+    void commitSongDetailInfo();
+    void removeAlbumArtFile() const; //TODO: Remove when base64 starts to work
+
+public slots:
+    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+    
+    int reservedLength() const { return mLink.length() + mTitle.length() + mArtist.length(); }
+
+    QString title() const;
+    QString album() const;
+    QString artist() const;
+    QString comment() const;
+    void albumArt( HbIcon& icon ) const;
+    QString year() const;
+    QString genre() const;
+    QString composer() const;
+    QString albumTrack() const;
+    QString link() const;
+    
+    QString fileName() const;
+    QString mimeType() const;
+    QString duration() const;
+    QString bitRate() const;
+    QString sampleRate() const;
+    QString size() const;
+    QString modified() const;
+    QString copyright() const;
+    QString musicURL() const;
+    bool isDrmProtected() const;
+    
+    QString albumArtBase64() const;
+
+signals:
+    void albumArtReady();
+    void playbackInfoChanged();
+	void songDetailInfoChanged();	
+
+private:
+    QString                  mTitle;
+    QString                  mAlbum;
+    QString                  mArtist;
+    QString                  mComment;
+    QString                  mComposer;
+    QString                  mGenre;
+    QString                  mYear;
+    QString                  mAlbumTrack;
+    HbIcon                   *mAlbumArt;
+    ThumbnailManager         *mThumbnailManager; //owned
+    TInt                     mReqId;
+    QString                  currentAAUri; 
+    HbIcon                   *mDefaultAlbumArt;
+    QString                  mLink;
+    QString                  mFileName;
+    QString                  mMimeType;
+    QString                  mDuration;
+    QString                  mBitRate;
+    QString                  mSampleRate;
+    QString                  mSize;
+    QString                  mModified;
+    QString                  mCopyright;
+    QString                  mMusicURL;
+    QString                  mTempAlbumArt; //TODO: Remove when base64 starts to work
+    bool                     mDrmProtected;
+    
+    Q_DISABLE_COPY(MpSongData)
+};
+
+#endif // MPSONGDATA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/mpsongscanner.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,71 @@
+/*
+* 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: Music Player song scanner.
+*
+*/
+
+
+#ifndef MPSONGSCANNER_H
+#define MPSONGSCANNER_H
+
+class MpMpxHarvesterFrameworkWrapper;
+
+#include <QObject>
+#include "mpmpxcommondefs.h"
+
+#if defined(BUILD_MPENGINE_LIB)
+#define MPENGINE_EXPORT Q_DECL_EXPORT
+#else
+#define MPENGINE_EXPORT Q_DECL_IMPORT
+#endif
+
+class MPENGINE_EXPORT MpSongScanner : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    enum ScanError{
+        ScanErrorNone,
+        ScanGeneralError,
+        ScanErrorDiskFull,
+        ScanInterrupted
+    };
+
+    explicit MpSongScanner( MpMpxHarvesterFrameworkWrapper *wrapper, QObject *parent = 0 );
+    virtual ~MpSongScanner();
+
+    void scan( bool automaticScan );
+    bool isAutomaticScan();
+
+signals:
+    void scanStarted();
+    void scanCountChanged( int count );
+    void scanFinished( int error, int itemsAdded );
+
+public slots:
+    void cancelScan();
+    void handleScanEnded( int numItemsAdded, int error );
+    void handleDiskEvent( MpxDiskEvents event );
+
+private:
+
+    MpMpxHarvesterFrameworkWrapper       *mMpxHarvesterWrapper;       // Not own
+    bool                                 mScanning;
+    bool                                 mAutomaticScan;
+
+};
+
+#endif // MPSONGSCANNER_H
+
--- a/mpdata/bwins/mpdatau.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/bwins/mpdatau.def	Thu Jul 22 16:32:33 2010 +0100
@@ -1,87 +1,190 @@
 EXPORTS
 	?tr@MpMpxCollectionData@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString MpMpxCollectionData::tr(char const *, char const *)
-	?album@MpPlaybackData@@QBEABVQString@@XZ @ 2 NONAME ; class QString const & MpPlaybackData::album(void) const
-	?dropMimeData@MpCollectionDataModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 3 NONAME ; bool MpCollectionDataModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &)
-	?count@MpMpxCollectionData@@QBEHXZ @ 4 NONAME ; int MpMpxCollectionData::count(void) const
-	?refreshModel@MpCollectionDataModel@@QAEXXZ @ 5 NONAME ; void MpCollectionDataModel::refreshModel(void)
-	?contextChanged@MpMpxCollectionData@@IAEXW4TCollectionContext@@@Z @ 6 NONAME ; void MpMpxCollectionData::contextChanged(enum TCollectionContext)
-	?testCachedItem@MpMpxCollectionData@@QAE_NH@Z @ 7 NONAME ; bool MpMpxCollectionData::testCachedItem(int)
-	?tr@MpCollectionDataModel@@SA?AVQString@@PBD0@Z @ 8 NONAME ; class QString MpCollectionDataModel::tr(char const *, char const *)
-	?mimeData@MpCollectionDataModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 9 NONAME ; class QMimeData * MpCollectionDataModel::mimeData(class QList<class QModelIndex> const &) const
-	?setTitle@MpPlaybackData@@QAE_NABVQString@@@Z @ 10 NONAME ; bool MpPlaybackData::setTitle(class QString const &)
-	?trUtf8@MpMpxCollectionData@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString MpMpxCollectionData::trUtf8(char const *, char const *, int)
-	?tr@MpMpxCollectionData@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString MpMpxCollectionData::tr(char const *, char const *, int)
-	??_EMpMpxCollectionData@@UAE@I@Z @ 13 NONAME ; MpMpxCollectionData::~MpMpxCollectionData(unsigned int)
-	?trUtf8@MpCollectionDataModel@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString MpCollectionDataModel::trUtf8(char const *, char const *)
-	?qt_metacast@MpCollectionDataModel@@UAEPAXPBD@Z @ 15 NONAME ; void * MpCollectionDataModel::qt_metacast(char const *)
-	?staticMetaObject@MpCollectionDataModel@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const MpCollectionDataModel::staticMetaObject
-	?updateAlbumArt@MpCollectionDataModel@@QAEXH@Z @ 17 NONAME ; void MpCollectionDataModel::updateAlbumArt(int)
-	??_EMpPlaybackData@@UAE@I@Z @ 18 NONAME ; MpPlaybackData::~MpPlaybackData(unsigned int)
-	?metaObject@MpPlaybackData@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * MpPlaybackData::metaObject(void) const
+	?dropMimeData@MpCollectionDataModel@@UAE_NPBVQMimeData@@W4DropAction@Qt@@HHABVQModelIndex@@@Z @ 2 NONAME ; bool MpCollectionDataModel::dropMimeData(class QMimeData const *, enum Qt::DropAction, int, int, class QModelIndex const &)
+	?currentAlbumIndex@MpMpxCollectionData@@QBEHXZ @ 3 NONAME ; int MpMpxCollectionData::currentAlbumIndex(void) const
+	?refreshModel@MpCollectionDataModel@@QAEXXZ @ 4 NONAME ; void MpCollectionDataModel::refreshModel(void)
+	?contextChanged@MpMpxCollectionData@@IAEXW4TCollectionContext@@@Z @ 5 NONAME ; void MpMpxCollectionData::contextChanged(enum TCollectionContext)
+	?mimeData@MpCollectionDataModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 6 NONAME ; class QMimeData * MpCollectionDataModel::mimeData(class QList<class QModelIndex> const &) const
+	?fileName@MpSongData@@QBE?AVQString@@XZ @ 7 NONAME ; class QString MpSongData::fileName(void) const
+	?trUtf8@MpMpxCollectionData@@SA?AVQString@@PBD0H@Z @ 8 NONAME ; class QString MpMpxCollectionData::trUtf8(char const *, char const *, int)
+	?tr@MpMpxCollectionData@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString MpMpxCollectionData::tr(char const *, char const *, int)
+	??_EMpMpxCollectionData@@UAE@I@Z @ 10 NONAME ; MpMpxCollectionData::~MpMpxCollectionData(unsigned int)
+	?qt_metacast@MpCollectionDataModel@@UAEPAXPBD@Z @ 11 NONAME ; void * MpCollectionDataModel::qt_metacast(char const *)
+	?updateAlbumArt@MpCollectionDataModel@@QAEXH@Z @ 12 NONAME ; void MpCollectionDataModel::updateAlbumArt(int)
+	?resetData@MpPlaybackData@@QAEXXZ @ 13 NONAME ; void MpPlaybackData::resetData(void)
+	??_EMpPlaybackData@@UAE@I@Z @ 14 NONAME ; MpPlaybackData::~MpPlaybackData(unsigned int)
+	?setLink@MpSongData@@QAEXABVQString@@@Z @ 15 NONAME ; void MpSongData::setLink(class QString const &)
+	?metaObject@MpPlaybackData@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * MpPlaybackData::metaObject(void) const
+	?setCopyright@MpSongData@@QAE_NABVQString@@@Z @ 17 NONAME ; bool MpSongData::setCopyright(class QString const &)
+	?refreshModel@MpCollectionTBoneListDataModel@@QAEXXZ @ 18 NONAME ; void MpCollectionTBoneListDataModel::refreshModel(void)
+	?title@MpSongData@@QBE?AVQString@@XZ @ 19 NONAME ; class QString MpSongData::title(void) const
 	?data@MpCollectionDataModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 20 NONAME ; class QVariant MpCollectionDataModel::data(class QModelIndex const &, int) const
-	?removeItem@MpMpxCollectionData@@QAEXH@Z @ 21 NONAME ; void MpMpxCollectionData::removeItem(int)
-	?getStaticMetaObject@MpMpxCollectionData@@SAABUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const & MpMpxCollectionData::getStaticMetaObject(void)
-	?mimeTypes@MpCollectionDataModel@@UBE?AVQStringList@@XZ @ 23 NONAME ; class QStringList MpCollectionDataModel::mimeTypes(void) const
-	?itemCount@MpMpxCollectionData@@QAEHH@Z @ 24 NONAME ; int MpMpxCollectionData::itemCount(int)
-	?collectionTitle@MpMpxCollectionData@@QBE?AVQString@@XZ @ 25 NONAME ; class QString MpMpxCollectionData::collectionTitle(void) const
-	?isAutoPlaylist@MpMpxCollectionData@@QAE_NH@Z @ 26 NONAME ; bool MpMpxCollectionData::isAutoPlaylist(int)
-	?tr@MpPlaybackData@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString MpPlaybackData::tr(char const *, char const *)
-	?qt_metacall@MpPlaybackData@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int MpPlaybackData::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?position@MpPlaybackData@@QBEHXZ @ 29 NONAME ; int MpPlaybackData::position(void) const
-	?setAlbumArtUri@MpPlaybackData@@QAEXABVQString@@@Z @ 30 NONAME ; void MpPlaybackData::setAlbumArtUri(class QString const &)
-	??_EMpCollectionDataModel@@UAE@I@Z @ 31 NONAME ; MpCollectionDataModel::~MpCollectionDataModel(unsigned int)
-	?insertCachedItem@MpMpxCollectionData@@QAEXH@Z @ 32 NONAME ; void MpMpxCollectionData::insertCachedItem(int)
+	?setAlbumId@MpPlaybackData@@QAE_NH@Z @ 21 NONAME ; bool MpPlaybackData::setAlbumId(int)
+	?setDrmProtected@MpSongData@@QAE_N_N@Z @ 22 NONAME ; bool MpSongData::setDrmProtected(bool)
+	?mimeType@MpSongData@@QBE?AVQString@@XZ @ 23 NONAME ; class QString MpSongData::mimeType(void) const
+	?removeItem@MpMpxCollectionData@@QAEXH@Z @ 24 NONAME ; void MpMpxCollectionData::removeItem(int)
+	?getStaticMetaObject@MpMpxCollectionData@@SAABUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const & MpMpxCollectionData::getStaticMetaObject(void)
+	?itemCount@MpMpxCollectionData@@QAEHH@Z @ 26 NONAME ; int MpMpxCollectionData::itemCount(int)
+	?isAutoPlaylist@MpMpxCollectionData@@QAE_NH@Z @ 27 NONAME ; bool MpMpxCollectionData::isAutoPlaylist(int)
+	?position@MpPlaybackData@@QBEHXZ @ 28 NONAME ; int MpPlaybackData::position(void) const
+	?setAlbumArtUri@MpPlaybackData@@QAEXABVQString@@@Z @ 29 NONAME ; void MpPlaybackData::setAlbumArtUri(class QString const &)
+	??_EMpCollectionDataModel@@UAE@I@Z @ 30 NONAME ; MpCollectionDataModel::~MpCollectionDataModel(unsigned int)
+	?qt_metacast@MpSongData@@UAEPAXPBD@Z @ 31 NONAME ; void * MpSongData::qt_metacast(char const *)
+	?setBitRate@MpSongData@@QAE_NH@Z @ 32 NONAME ; bool MpSongData::setBitRate(int)
 	?positionChanged@MpPlaybackData@@IAEXXZ @ 33 NONAME ; void MpPlaybackData::positionChanged(void)
-	?title@MpPlaybackData@@QBEABVQString@@XZ @ 34 NONAME ; class QString const & MpPlaybackData::title(void) const
-	??0MpMpxCollectionData@@QAE@PAVQObject@@@Z @ 35 NONAME ; MpMpxCollectionData::MpMpxCollectionData(class QObject *)
-	?setArtist@MpPlaybackData@@QAE_NABVQString@@@Z @ 36 NONAME ; bool MpPlaybackData::setArtist(class QString const &)
+	?tr@MpCollectionTBoneListDataModel@@SA?AVQString@@PBD0H@Z @ 34 NONAME ; class QString MpCollectionTBoneListDataModel::tr(char const *, char const *, int)
+	?itemIndex@MpMpxCollectionData@@QAEHH@Z @ 35 NONAME ; int MpMpxCollectionData::itemIndex(int)
+	?title@MpPlaybackData@@QBEABVQString@@XZ @ 36 NONAME ; class QString const & MpPlaybackData::title(void) const
 	?qt_metacall@MpCollectionDataModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 37 NONAME ; int MpCollectionDataModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??1MpMpxCollectionData@@UAE@XZ @ 38 NONAME ; MpMpxCollectionData::~MpMpxCollectionData(void)
-	?playbackState@MpPlaybackData@@QBE?AW4SimplifiedState@1@XZ @ 39 NONAME ; enum MpPlaybackData::SimplifiedState MpPlaybackData::playbackState(void) const
-	??0MpPlaybackData@@QAE@PAVQObject@@@Z @ 40 NONAME ; MpPlaybackData::MpPlaybackData(class QObject *)
-	?trUtf8@MpCollectionDataModel@@SA?AVQString@@PBD0H@Z @ 41 NONAME ; class QString MpCollectionDataModel::trUtf8(char const *, char const *, int)
-	?context@MpMpxCollectionData@@QBE?AW4TCollectionContext@@XZ @ 42 NONAME ; enum TCollectionContext MpMpxCollectionData::context(void) const
-	?metaObject@MpMpxCollectionData@@UBEPBUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const * MpMpxCollectionData::metaObject(void) const
-	?qt_metacast@MpMpxCollectionData@@UAEPAXPBD@Z @ 44 NONAME ; void * MpMpxCollectionData::qt_metacast(char const *)
-	?qt_metacast@MpPlaybackData@@UAEPAXPBD@Z @ 45 NONAME ; void * MpPlaybackData::qt_metacast(char const *)
-	?supportedDropActions@MpCollectionDataModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 46 NONAME ; class QFlags<enum Qt::DropAction> MpCollectionDataModel::supportedDropActions(void) const
-	?durationChanged@MpPlaybackData@@IAEXXZ @ 47 NONAME ; void MpPlaybackData::durationChanged(void)
-	?staticMetaObject@MpPlaybackData@@2UQMetaObject@@B @ 48 NONAME ; struct QMetaObject const MpPlaybackData::staticMetaObject
-	?containerId@MpMpxCollectionData@@QAEHXZ @ 49 NONAME ; int MpMpxCollectionData::containerId(void)
-	?orderChanged@MpCollectionDataModel@@IAEXHHHH@Z @ 50 NONAME ; void MpCollectionDataModel::orderChanged(int, int, int, int)
-	?containerMedia@MpMpxCollectionData@@QAEABVCMPXMedia@@XZ @ 51 NONAME ; class CMPXMedia const & MpMpxCollectionData::containerMedia(void)
-	??1MpCollectionDataModel@@UAE@XZ @ 52 NONAME ; MpCollectionDataModel::~MpCollectionDataModel(void)
-	?setUri@MpPlaybackData@@QAE_NABVQString@@@Z @ 53 NONAME ; bool MpPlaybackData::setUri(class QString const &)
-	?tr@MpCollectionDataModel@@SA?AVQString@@PBD0H@Z @ 54 NONAME ; class QString MpCollectionDataModel::tr(char const *, char const *, int)
-	?collectionData@MpCollectionDataModel@@QAEPAVMpMpxCollectionData@@XZ @ 55 NONAME ; class MpMpxCollectionData * MpCollectionDataModel::collectionData(void)
-	??0MpCollectionDataModel@@QAE@PAVMpMpxCollectionData@@PAVQObject@@@Z @ 56 NONAME ; MpCollectionDataModel::MpCollectionDataModel(class MpMpxCollectionData *, class QObject *)
-	?isAutoPlaylist@MpMpxCollectionData@@QAE_NXZ @ 57 NONAME ; bool MpMpxCollectionData::isAutoPlaylist(void)
-	?trUtf8@MpMpxCollectionData@@SA?AVQString@@PBD0@Z @ 58 NONAME ; class QString MpMpxCollectionData::trUtf8(char const *, char const *)
-	?setPosition@MpPlaybackData@@QAEXH@Z @ 59 NONAME ; void MpPlaybackData::setPosition(int)
-	??1MpPlaybackData@@UAE@XZ @ 60 NONAME ; MpPlaybackData::~MpPlaybackData(void)
-	?setAlbum@MpPlaybackData@@QAE_NABVQString@@@Z @ 61 NONAME ; bool MpPlaybackData::setAlbum(class QString const &)
-	?setPlaybackState@MpPlaybackData@@QAEXW4SimplifiedState@1@@Z @ 62 NONAME ; void MpPlaybackData::setPlaybackState(enum MpPlaybackData::SimplifiedState)
-	?trUtf8@MpPlaybackData@@SA?AVQString@@PBD0@Z @ 63 NONAME ; class QString MpPlaybackData::trUtf8(char const *, char const *)
-	?itemId@MpMpxCollectionData@@QAEHH@Z @ 64 NONAME ; int MpMpxCollectionData::itemId(int)
-	?setMpxMedia@MpMpxCollectionData@@QAEXABVCMPXMedia@@@Z @ 65 NONAME ; void MpMpxCollectionData::setMpxMedia(class CMPXMedia const &)
-	?artist@MpPlaybackData@@QBEABVQString@@XZ @ 66 NONAME ; class QString const & MpPlaybackData::artist(void) const
-	?getStaticMetaObject@MpPlaybackData@@SAABUQMetaObject@@XZ @ 67 NONAME ; struct QMetaObject const & MpPlaybackData::getStaticMetaObject(void)
-	?albumArt@MpPlaybackData@@QBEXAAVHbIcon@@@Z @ 68 NONAME ; void MpPlaybackData::albumArt(class HbIcon &) const
-	?playbackStateChanged@MpPlaybackData@@IAEXXZ @ 69 NONAME ; void MpPlaybackData::playbackStateChanged(void)
-	?duration@MpPlaybackData@@QBEHXZ @ 70 NONAME ; int MpPlaybackData::duration(void) const
-	?commitPlaybackInfo@MpPlaybackData@@QAEXXZ @ 71 NONAME ; void MpPlaybackData::commitPlaybackInfo(void)
-	?removeRows@MpCollectionDataModel@@UAE_NHHABVQModelIndex@@@Z @ 72 NONAME ; bool MpCollectionDataModel::removeRows(int, int, class QModelIndex const &)
-	?getStaticMetaObject@MpCollectionDataModel@@SAABUQMetaObject@@XZ @ 73 NONAME ; struct QMetaObject const & MpCollectionDataModel::getStaticMetaObject(void)
-	?setDuration@MpPlaybackData@@QAEXH@Z @ 74 NONAME ; void MpPlaybackData::setDuration(int)
-	?playbackInfoChanged@MpPlaybackData@@IAEXXZ @ 75 NONAME ; void MpPlaybackData::playbackInfoChanged(void)
-	?itemData@MpMpxCollectionData@@QBE?AVQString@@HW4DataType@1@@Z @ 76 NONAME ; class QString MpMpxCollectionData::itemData(int, enum MpMpxCollectionData::DataType) const
-	?uri@MpPlaybackData@@QBEABVQString@@XZ @ 77 NONAME ; class QString const & MpPlaybackData::uri(void) const
-	?rowCount@MpCollectionDataModel@@UBEHABVQModelIndex@@@Z @ 78 NONAME ; int MpCollectionDataModel::rowCount(class QModelIndex const &) const
-	?trUtf8@MpPlaybackData@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString MpPlaybackData::trUtf8(char const *, char const *, int)
-	?thumbnailReady@MpPlaybackData@@QAEXABVQPixmap@@PAXHH@Z @ 80 NONAME ; void MpPlaybackData::thumbnailReady(class QPixmap const &, void *, int, int)
-	?staticMetaObject@MpMpxCollectionData@@2UQMetaObject@@B @ 81 NONAME ; struct QMetaObject const MpMpxCollectionData::staticMetaObject
-	?tr@MpPlaybackData@@SA?AVQString@@PBD0H@Z @ 82 NONAME ; class QString MpPlaybackData::tr(char const *, char const *, int)
-	?metaObject@MpCollectionDataModel@@UBEPBUQMetaObject@@XZ @ 83 NONAME ; struct QMetaObject const * MpCollectionDataModel::metaObject(void) const
-	?albumArtReady@MpPlaybackData@@IAEXXZ @ 84 NONAME ; void MpPlaybackData::albumArtReady(void)
-	?qt_metacall@MpMpxCollectionData@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 85 NONAME ; int MpMpxCollectionData::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?artist@MpSongData@@QBE?AVQString@@XZ @ 38 NONAME ; class QString MpSongData::artist(void) const
+	?setMpxMedia@MpMpxCollectionData@@QAEXABVCMPXMedia@@_N@Z @ 39 NONAME ; void MpMpxCollectionData::setMpxMedia(class CMPXMedia const &, bool)
+	?staticMetaObject@MpSongData@@2UQMetaObject@@B @ 40 NONAME ; struct QMetaObject const MpSongData::staticMetaObject
+	?playbackState@MpPlaybackData@@QBE?AW4SimplifiedState@1@XZ @ 41 NONAME ; enum MpPlaybackData::SimplifiedState MpPlaybackData::playbackState(void) const
+	?tr@MpSongData@@SA?AVQString@@PBD0H@Z @ 42 NONAME ; class QString MpSongData::tr(char const *, char const *, int)
+	?context@MpMpxCollectionData@@QBE?AW4TCollectionContext@@XZ @ 43 NONAME ; enum TCollectionContext MpMpxCollectionData::context(void) const
+	?supportedDropActions@MpCollectionDataModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 44 NONAME ; class QFlags<enum Qt::DropAction> MpCollectionDataModel::supportedDropActions(void) const
+	?setContext@MpMpxCollectionData@@QAEXW4TCollectionContext@@@Z @ 45 NONAME ; void MpMpxCollectionData::setContext(enum TCollectionContext)
+	?durationChanged@MpPlaybackData@@IAEXXZ @ 46 NONAME ; void MpPlaybackData::durationChanged(void)
+	?staticMetaObject@MpPlaybackData@@2UQMetaObject@@B @ 47 NONAME ; struct QMetaObject const MpPlaybackData::staticMetaObject
+	?staticMetaObject@MpCollectionTBoneListDataModel@@2UQMetaObject@@B @ 48 NONAME ; struct QMetaObject const MpCollectionTBoneListDataModel::staticMetaObject
+	?orderChanged@MpCollectionDataModel@@IAEXHHHH@Z @ 49 NONAME ; void MpCollectionDataModel::orderChanged(int, int, int, int)
+	?metaObject@MpCollectionTBoneListDataModel@@UBEPBUQMetaObject@@XZ @ 50 NONAME ; struct QMetaObject const * MpCollectionTBoneListDataModel::metaObject(void) const
+	?tr@MpCollectionTBoneListDataModel@@SA?AVQString@@PBD0@Z @ 51 NONAME ; class QString MpCollectionTBoneListDataModel::tr(char const *, char const *)
+	?bitRate@MpSongData@@QBE?AVQString@@XZ @ 52 NONAME ; class QString MpSongData::bitRate(void) const
+	?albumDataAvailable@MpCollectionTBoneListDataModel@@IAEXXZ @ 53 NONAME ; void MpCollectionTBoneListDataModel::albumDataAvailable(void)
+	?setModified@MpSongData@@QAE_NABVQString@@@Z @ 54 NONAME ; bool MpSongData::setModified(class QString const &)
+	?setUri@MpPlaybackData@@QAE_NABVQString@@@Z @ 55 NONAME ; bool MpPlaybackData::setUri(class QString const &)
+	?qt_metacast@MpCollectionTBoneListDataModel@@UAEPAXPBD@Z @ 56 NONAME ; void * MpCollectionTBoneListDataModel::qt_metacast(char const *)
+	?removeAlbumArtFile@MpSongData@@QBEXXZ @ 57 NONAME ; void MpSongData::removeAlbumArtFile(void) const
+	?duration@MpSongData@@QBE?AVQString@@XZ @ 58 NONAME ; class QString MpSongData::duration(void) const
+	?qt_metacall@MpCollectionTBoneListDataModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 59 NONAME ; int MpCollectionTBoneListDataModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0MpCollectionDataModel@@QAE@PAVMpMpxCollectionData@@PAVQObject@@@Z @ 60 NONAME ; MpCollectionDataModel::MpCollectionDataModel(class MpMpxCollectionData *, class QObject *)
+	?isAutoPlaylist@MpMpxCollectionData@@QAE_NXZ @ 61 NONAME ; bool MpMpxCollectionData::isAutoPlaylist(void)
+	?updatePlaybackState@MpCollectionTBoneListDataModel@@QAEXXZ @ 62 NONAME ; void MpCollectionTBoneListDataModel::updatePlaybackState(void)
+	?setAlbum@MpPlaybackData@@QAE_NABVQString@@@Z @ 63 NONAME ; bool MpPlaybackData::setAlbum(class QString const &)
+	?setGenre@MpSongData@@QAE_NABVQString@@@Z @ 64 NONAME ; bool MpSongData::setGenre(class QString const &)
+	?setCurrentAlbum@MpMpxCollectionData@@QAE_NH@Z @ 65 NONAME ; bool MpMpxCollectionData::setCurrentAlbum(int)
+	?itemId@MpMpxCollectionData@@QAEHH@Z @ 66 NONAME ; int MpMpxCollectionData::itemId(int)
+	?trUtf8@MpSongData@@SA?AVQString@@PBD0H@Z @ 67 NONAME ; class QString MpSongData::trUtf8(char const *, char const *, int)
+	?artist@MpPlaybackData@@QBEABVQString@@XZ @ 68 NONAME ; class QString const & MpPlaybackData::artist(void) const
+	?setFileName@MpSongData@@QAE_NABVQString@@@Z @ 69 NONAME ; bool MpSongData::setFileName(class QString const &)
+	?setContext@MpCollectionDataModel@@QAEXW4TCollectionContext@@@Z @ 70 NONAME ; void MpCollectionDataModel::setContext(enum TCollectionContext)
+	?commitPlaybackInfo@MpSongData@@QAEXXZ @ 71 NONAME ; void MpSongData::commitPlaybackInfo(void)
+	?sampleRate@MpSongData@@QBE?AVQString@@XZ @ 72 NONAME ; class QString MpSongData::sampleRate(void) const
+	?playbackStateChanged@MpPlaybackData@@IAEXXZ @ 73 NONAME ; void MpPlaybackData::playbackStateChanged(void)
+	?copyright@MpSongData@@QBE?AVQString@@XZ @ 74 NONAME ; class QString MpSongData::copyright(void) const
+	?duration@MpPlaybackData@@QBEHXZ @ 75 NONAME ; int MpPlaybackData::duration(void) const
+	?genre@MpSongData@@QBE?AVQString@@XZ @ 76 NONAME ; class QString MpSongData::genre(void) const
+	?setMimeType@MpSongData@@QAE_NABVQString@@@Z @ 77 NONAME ; bool MpSongData::setMimeType(class QString const &)
+	??0MpCollectionTBoneListDataModel@@QAE@PAVMpMpxCollectionData@@PAVMpPlaybackData@@PAVQObject@@@Z @ 78 NONAME ; MpCollectionTBoneListDataModel::MpCollectionTBoneListDataModel(class MpMpxCollectionData *, class MpPlaybackData *, class QObject *)
+	?getStaticMetaObject@MpCollectionDataModel@@SAABUQMetaObject@@XZ @ 79 NONAME ; struct QMetaObject const & MpCollectionDataModel::getStaticMetaObject(void)
+	?setSampleRate@MpSongData@@QAE_NH@Z @ 80 NONAME ; bool MpSongData::setSampleRate(int)
+	?setDuration@MpPlaybackData@@QAEXH@Z @ 81 NONAME ; void MpPlaybackData::setDuration(int)
+	?albumDataChanged@MpMpxCollectionData@@IAEXXZ @ 82 NONAME ; void MpMpxCollectionData::albumDataChanged(void)
+	?setMusicURL@MpSongData@@QAE_NABVQString@@@Z @ 83 NONAME ; bool MpSongData::setMusicURL(class QString const &)
+	??0MpSongData@@QAE@PAVQObject@@@Z @ 84 NONAME ; MpSongData::MpSongData(class QObject *)
+	?setComment@MpSongData@@QAE_NABVQString@@@Z @ 85 NONAME ; bool MpSongData::setComment(class QString const &)
+	?uri@MpPlaybackData@@QBEABVQString@@XZ @ 86 NONAME ; class QString const & MpPlaybackData::uri(void) const
+	?albumArtReady@MpSongData@@IAEXXZ @ 87 NONAME ; void MpSongData::albumArtReady(void)
+	?rowCount@MpCollectionDataModel@@UBEHABVQModelIndex@@@Z @ 88 NONAME ; int MpCollectionDataModel::rowCount(class QModelIndex const &) const
+	?trUtf8@MpPlaybackData@@SA?AVQString@@PBD0H@Z @ 89 NONAME ; class QString MpPlaybackData::trUtf8(char const *, char const *, int)
+	?thumbnailReady@MpPlaybackData@@QAEXABVQPixmap@@PAXHH@Z @ 90 NONAME ; void MpPlaybackData::thumbnailReady(class QPixmap const &, void *, int, int)
+	?staticMetaObject@MpMpxCollectionData@@2UQMetaObject@@B @ 91 NONAME ; struct QMetaObject const MpMpxCollectionData::staticMetaObject
+	?tr@MpPlaybackData@@SA?AVQString@@PBD0H@Z @ 92 NONAME ; class QString MpPlaybackData::tr(char const *, char const *, int)
+	?modified@MpSongData@@QBE?AVQString@@XZ @ 93 NONAME ; class QString MpSongData::modified(void) const
+	?setRealAudio@MpPlaybackData@@QAE_N_N@Z @ 94 NONAME ; bool MpPlaybackData::setRealAudio(bool)
+	?qt_metacall@MpMpxCollectionData@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 95 NONAME ; int MpMpxCollectionData::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?albumArtReady@MpPlaybackData@@IAEXXZ @ 96 NONAME ; void MpPlaybackData::albumArtReady(void)
+	?setAlbumTrack@MpSongData@@QAE_NABVQString@@@Z @ 97 NONAME ; bool MpSongData::setAlbumTrack(class QString const &)
+	?album@MpPlaybackData@@QBEABVQString@@XZ @ 98 NONAME ; class QString const & MpPlaybackData::album(void) const
+	?albumSongsCount@MpMpxCollectionData@@QBEHXZ @ 99 NONAME ; int MpMpxCollectionData::albumSongsCount(void) const
+	?count@MpMpxCollectionData@@QBEHXZ @ 100 NONAME ; int MpMpxCollectionData::count(void) const
+	?setAlbumArtUri@MpSongData@@QAEXABVQString@@@Z @ 101 NONAME ; void MpSongData::setAlbumArtUri(class QString const &)
+	??1MpSongData@@UAE@XZ @ 102 NONAME ; MpSongData::~MpSongData(void)
+	?dataReloaded@MpCollectionDataModel@@IAEXXZ @ 103 NONAME ; void MpCollectionDataModel::dataReloaded(void)
+	?testCachedItem@MpMpxCollectionData@@QAE_NH@Z @ 104 NONAME ; bool MpMpxCollectionData::testCachedItem(int)
+	?tr@MpCollectionDataModel@@SA?AVQString@@PBD0@Z @ 105 NONAME ; class QString MpCollectionDataModel::tr(char const *, char const *)
+	?setTitle@MpPlaybackData@@QAE_NABVQString@@@Z @ 106 NONAME ; bool MpPlaybackData::setTitle(class QString const &)
+	?getStaticMetaObject@MpCollectionTBoneListDataModel@@SAABUQMetaObject@@XZ @ 107 NONAME ; struct QMetaObject const & MpCollectionTBoneListDataModel::getStaticMetaObject(void)
+	?trUtf8@MpCollectionDataModel@@SA?AVQString@@PBD0@Z @ 108 NONAME ; class QString MpCollectionDataModel::trUtf8(char const *, char const *)
+	?setTitle@MpSongData@@QAE_NABVQString@@@Z @ 109 NONAME ; bool MpSongData::setTitle(class QString const &)
+	?musicURL@MpSongData@@QBE?AVQString@@XZ @ 110 NONAME ; class QString MpSongData::musicURL(void) const
+	?realAudio@MpPlaybackData@@QAE_NXZ @ 111 NONAME ; bool MpPlaybackData::realAudio(void)
+	?staticMetaObject@MpCollectionDataModel@@2UQMetaObject@@B @ 112 NONAME ; struct QMetaObject const MpCollectionDataModel::staticMetaObject
+	?rowCount@MpCollectionTBoneListDataModel@@UBEHABVQModelIndex@@@Z @ 113 NONAME ; int MpCollectionTBoneListDataModel::rowCount(class QModelIndex const &) const
+	?dataChanged@MpMpxCollectionData@@IAEXXZ @ 114 NONAME ; void MpMpxCollectionData::dataChanged(void)
+	?trUtf8@MpCollectionTBoneListDataModel@@SA?AVQString@@PBD0H@Z @ 115 NONAME ; class QString MpCollectionTBoneListDataModel::trUtf8(char const *, char const *, int)
+	?setItemVisibility@MpCollectionDataModel@@QAEXABVQModelIndex@@_N@Z @ 116 NONAME ; void MpCollectionDataModel::setItemVisibility(class QModelIndex const &, bool)
+	?getStaticMetaObject@MpSongData@@SAABUQMetaObject@@XZ @ 117 NONAME ; struct QMetaObject const & MpSongData::getStaticMetaObject(void)
+	?songDetailInfoChanged@MpSongData@@IAEXXZ @ 118 NONAME ; void MpSongData::songDetailInfoChanged(void)
+	?mimeTypes@MpCollectionDataModel@@UBE?AVQStringList@@XZ @ 119 NONAME ; class QStringList MpCollectionDataModel::mimeTypes(void) const
+	?albumArt@MpSongData@@QBEXAAVHbIcon@@@Z @ 120 NONAME ; void MpSongData::albumArt(class HbIcon &) const
+	?isDrmProtected@MpSongData@@QBE_NXZ @ 121 NONAME ; bool MpSongData::isDrmProtected(void) const
+	?collectionTitle@MpMpxCollectionData@@QBE?AVQString@@XZ @ 122 NONAME ; class QString MpMpxCollectionData::collectionTitle(void) const
+	?albumTrack@MpSongData@@QBE?AVQString@@XZ @ 123 NONAME ; class QString MpSongData::albumTrack(void) const
+	?setArtist@MpSongData@@QAE_NABVQString@@@Z @ 124 NONAME ; bool MpSongData::setArtist(class QString const &)
+	?tr@MpPlaybackData@@SA?AVQString@@PBD0@Z @ 125 NONAME ; class QString MpPlaybackData::tr(char const *, char const *)
+	?setYear@MpSongData@@QAE_NH@Z @ 126 NONAME ; bool MpSongData::setYear(int)
+	?qt_metacall@MpPlaybackData@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 127 NONAME ; int MpPlaybackData::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?albumSongData@MpMpxCollectionData@@QBE?AVQString@@HW4DataType@1@@Z @ 128 NONAME ; class QString MpMpxCollectionData::albumSongData(int, enum MpMpxCollectionData::DataType) const
+	?playbackInfoChanged@MpSongData@@IAEXXZ @ 129 NONAME ; void MpSongData::playbackInfoChanged(void)
+	?insertCachedItem@MpMpxCollectionData@@QAEXH@Z @ 130 NONAME ; void MpMpxCollectionData::insertCachedItem(int)
+	?setComposer@MpSongData@@QAE_NABVQString@@@Z @ 131 NONAME ; bool MpSongData::setComposer(class QString const &)
+	?setAlbumContent@MpMpxCollectionData@@QAEXABVCMPXMedia@@@Z @ 132 NONAME ; void MpMpxCollectionData::setAlbumContent(class CMPXMedia const &)
+	??0MpMpxCollectionData@@QAE@PAVQObject@@@Z @ 133 NONAME ; MpMpxCollectionData::MpMpxCollectionData(class QObject *)
+	?setArtist@MpPlaybackData@@QAE_NABVQString@@@Z @ 134 NONAME ; bool MpPlaybackData::setArtist(class QString const &)
+	?trUtf8@MpSongData@@SA?AVQString@@PBD0@Z @ 135 NONAME ; class QString MpSongData::trUtf8(char const *, char const *)
+	?albumId@MpPlaybackData@@QAEHXZ @ 136 NONAME ; int MpPlaybackData::albumId(void)
+	??1MpMpxCollectionData@@UAE@XZ @ 137 NONAME ; MpMpxCollectionData::~MpMpxCollectionData(void)
+	??0MpPlaybackData@@QAE@PAVQObject@@@Z @ 138 NONAME ; MpPlaybackData::MpPlaybackData(class QObject *)
+	?trUtf8@MpCollectionDataModel@@SA?AVQString@@PBD0H@Z @ 139 NONAME ; class QString MpCollectionDataModel::trUtf8(char const *, char const *, int)
+	?metaObject@MpMpxCollectionData@@UBEPBUQMetaObject@@XZ @ 140 NONAME ; struct QMetaObject const * MpMpxCollectionData::metaObject(void) const
+	?qt_metacast@MpMpxCollectionData@@UAEPAXPBD@Z @ 141 NONAME ; void * MpMpxCollectionData::qt_metacast(char const *)
+	?qt_metacast@MpPlaybackData@@UAEPAXPBD@Z @ 142 NONAME ; void * MpPlaybackData::qt_metacast(char const *)
+	?size@MpSongData@@QBE?AVQString@@XZ @ 143 NONAME ; class QString MpSongData::size(void) const
+	??_EMpSongData@@UAE@I@Z @ 144 NONAME ; MpSongData::~MpSongData(unsigned int)
+	?containerId@MpMpxCollectionData@@QAEHXZ @ 145 NONAME ; int MpMpxCollectionData::containerId(void)
+	?containerMedia@MpMpxCollectionData@@QAEABVCMPXMedia@@XZ @ 146 NONAME ; class CMPXMedia const & MpMpxCollectionData::containerMedia(void)
+	?setDuration@MpSongData@@QAE_NH@Z @ 147 NONAME ; bool MpSongData::setDuration(int)
+	??_EMpCollectionTBoneListDataModel@@UAE@I@Z @ 148 NONAME ; MpCollectionTBoneListDataModel::~MpCollectionTBoneListDataModel(unsigned int)
+	??1MpCollectionDataModel@@UAE@XZ @ 149 NONAME ; MpCollectionDataModel::~MpCollectionDataModel(void)
+	?setSize@MpSongData@@QAE_NH@Z @ 150 NONAME ; bool MpSongData::setSize(int)
+	?thumbnailReady@MpSongData@@QAEXABVQPixmap@@PAXHH@Z @ 151 NONAME ; void MpSongData::thumbnailReady(class QPixmap const &, void *, int, int)
+	?tr@MpCollectionDataModel@@SA?AVQString@@PBD0H@Z @ 152 NONAME ; class QString MpCollectionDataModel::tr(char const *, char const *, int)
+	?reloadData@MpCollectionDataModel@@QAEXXZ @ 153 NONAME ; void MpCollectionDataModel::reloadData(void)
+	?commitSongDetailInfo@MpSongData@@QAEXXZ @ 154 NONAME ; void MpSongData::commitSongDetailInfo(void)
+	??1MpCollectionTBoneListDataModel@@UAE@XZ @ 155 NONAME ; MpCollectionTBoneListDataModel::~MpCollectionTBoneListDataModel(void)
+	?qt_metacall@MpSongData@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 156 NONAME ; int MpSongData::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?reservedLength@MpSongData@@QBEHXZ @ 157 NONAME ; int MpSongData::reservedLength(void) const
+	?collectionData@MpCollectionDataModel@@QAEPAVMpMpxCollectionData@@XZ @ 158 NONAME ; class MpMpxCollectionData * MpCollectionDataModel::collectionData(void)
+	?trUtf8@MpMpxCollectionData@@SA?AVQString@@PBD0@Z @ 159 NONAME ; class QString MpMpxCollectionData::trUtf8(char const *, char const *)
+	?setPosition@MpPlaybackData@@QAEXH@Z @ 160 NONAME ; void MpPlaybackData::setPosition(int)
+	??1MpPlaybackData@@UAE@XZ @ 161 NONAME ; MpPlaybackData::~MpPlaybackData(void)
+	?tr@MpSongData@@SA?AVQString@@PBD0@Z @ 162 NONAME ; class QString MpSongData::tr(char const *, char const *)
+	?setPlaybackState@MpPlaybackData@@QAEXW4SimplifiedState@1@@Z @ 163 NONAME ; void MpPlaybackData::setPlaybackState(enum MpPlaybackData::SimplifiedState)
+	?refreshAlbumSongs@MpMpxCollectionData@@IAEXXZ @ 164 NONAME ; void MpMpxCollectionData::refreshAlbumSongs(void)
+	?trUtf8@MpPlaybackData@@SA?AVQString@@PBD0@Z @ 165 NONAME ; class QString MpPlaybackData::trUtf8(char const *, char const *)
+	?albumDataChanged@MpCollectionTBoneListDataModel@@IAEXXZ @ 166 NONAME ; void MpCollectionTBoneListDataModel::albumDataChanged(void)
+	?comment@MpSongData@@QBE?AVQString@@XZ @ 167 NONAME ; class QString MpSongData::comment(void) const
+	?year@MpSongData@@QBE?AVQString@@XZ @ 168 NONAME ; class QString MpSongData::year(void) const
+	?data@MpCollectionTBoneListDataModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 169 NONAME ; class QVariant MpCollectionTBoneListDataModel::data(class QModelIndex const &, int) const
+	?setAlbum@MpSongData@@QAE_NABVQString@@@Z @ 170 NONAME ; bool MpSongData::setAlbum(class QString const &)
+	?albumSongIndex@MpMpxCollectionData@@QAEHH@Z @ 171 NONAME ; int MpMpxCollectionData::albumSongIndex(int)
+	?getStaticMetaObject@MpPlaybackData@@SAABUQMetaObject@@XZ @ 172 NONAME ; struct QMetaObject const & MpPlaybackData::getStaticMetaObject(void)
+	?composer@MpSongData@@QBE?AVQString@@XZ @ 173 NONAME ; class QString MpSongData::composer(void) const
+	?albumArt@MpPlaybackData@@QBEXAAVHbIcon@@@Z @ 174 NONAME ; void MpPlaybackData::albumArt(class HbIcon &) const
+	?commitPlaybackInfo@MpPlaybackData@@QAEXXZ @ 175 NONAME ; void MpPlaybackData::commitPlaybackInfo(void)
+	?removeRows@MpCollectionDataModel@@UAE_NHHABVQModelIndex@@@Z @ 176 NONAME ; bool MpCollectionDataModel::removeRows(int, int, class QModelIndex const &)
+	?albumSongId@MpMpxCollectionData@@QAEHH@Z @ 177 NONAME ; int MpMpxCollectionData::albumSongId(int)
+	?id@MpPlaybackData@@QAEHXZ @ 178 NONAME ; int MpPlaybackData::id(void)
+	?album@MpSongData@@QBE?AVQString@@XZ @ 179 NONAME ; class QString MpSongData::album(void) const
+	?albumArtBase64@MpSongData@@QBE?AVQString@@XZ @ 180 NONAME ; class QString MpSongData::albumArtBase64(void) const
+	?playbackInfoChanged@MpPlaybackData@@IAEXXZ @ 181 NONAME ; void MpPlaybackData::playbackInfoChanged(void)
+	?itemData@MpMpxCollectionData@@QBE?AVQString@@HW4DataType@1@@Z @ 182 NONAME ; class QString MpMpxCollectionData::itemData(int, enum MpMpxCollectionData::DataType) const
+	?link@MpSongData@@QBE?AVQString@@XZ @ 183 NONAME ; class QString MpSongData::link(void) const
+	?trUtf8@MpCollectionTBoneListDataModel@@SA?AVQString@@PBD0@Z @ 184 NONAME ; class QString MpCollectionTBoneListDataModel::trUtf8(char const *, char const *)
+	?updateSong@MpCollectionTBoneListDataModel@@QAEXXZ @ 185 NONAME ; void MpCollectionTBoneListDataModel::updateSong(void)
+	?setId@MpPlaybackData@@QAE_NH@Z @ 186 NONAME ; bool MpPlaybackData::setId(int)
+	?metaObject@MpCollectionDataModel@@UBEPBUQMetaObject@@XZ @ 187 NONAME ; struct QMetaObject const * MpCollectionDataModel::metaObject(void) const
+	?metaObject@MpSongData@@UBEPBUQMetaObject@@XZ @ 188 NONAME ; struct QMetaObject const * MpSongData::metaObject(void) const
 
--- a/mpdata/eabi/mpdatau.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/eabi/mpdatau.def	Thu Jul 22 16:32:33 2010 +0100
@@ -1,87 +1,189 @@
 EXPORTS
-	_ZN14MpPlaybackData11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
-	_ZN14MpPlaybackData11qt_metacastEPKc @ 2 NONAME
-	_ZN14MpPlaybackData11setDurationEi @ 3 NONAME
-	_ZN14MpPlaybackData11setPositionEi @ 4 NONAME
-	_ZN14MpPlaybackData13albumArtReadyEv @ 5 NONAME
-	_ZN14MpPlaybackData14setAlbumArtUriERK7QString @ 6 NONAME
-	_ZN14MpPlaybackData14thumbnailReadyERK7QPixmapPvii @ 7 NONAME
-	_ZN14MpPlaybackData15durationChangedEv @ 8 NONAME
-	_ZN14MpPlaybackData15positionChangedEv @ 9 NONAME
-	_ZN14MpPlaybackData16setPlaybackStateENS_15SimplifiedStateE @ 10 NONAME
-	_ZN14MpPlaybackData16staticMetaObjectE @ 11 NONAME DATA 16
-	_ZN14MpPlaybackData18commitPlaybackInfoEv @ 12 NONAME
-	_ZN14MpPlaybackData19getStaticMetaObjectEv @ 13 NONAME
-	_ZN14MpPlaybackData19playbackInfoChangedEv @ 14 NONAME
-	_ZN14MpPlaybackData20playbackStateChangedEv @ 15 NONAME
-	_ZN14MpPlaybackData6setUriERK7QString @ 16 NONAME
-	_ZN14MpPlaybackData8setAlbumERK7QString @ 17 NONAME
-	_ZN14MpPlaybackData8setTitleERK7QString @ 18 NONAME
-	_ZN14MpPlaybackData9setArtistERK7QString @ 19 NONAME
-	_ZN14MpPlaybackDataC1EP7QObject @ 20 NONAME
-	_ZN14MpPlaybackDataC2EP7QObject @ 21 NONAME
-	_ZN14MpPlaybackDataD0Ev @ 22 NONAME
-	_ZN14MpPlaybackDataD1Ev @ 23 NONAME
-	_ZN14MpPlaybackDataD2Ev @ 24 NONAME
-	_ZN19MpMpxCollectionData10removeItemEi @ 25 NONAME
-	_ZN19MpMpxCollectionData11containerIdEv @ 26 NONAME
-	_ZN19MpMpxCollectionData11qt_metacallEN11QMetaObject4CallEiPPv @ 27 NONAME
-	_ZN19MpMpxCollectionData11qt_metacastEPKc @ 28 NONAME
-	_ZN19MpMpxCollectionData11setMpxMediaERK9CMPXMedia @ 29 NONAME
-	_ZN19MpMpxCollectionData14containerMediaEv @ 30 NONAME
-	_ZN19MpMpxCollectionData14contextChangedE18TCollectionContext @ 31 NONAME
-	_ZN19MpMpxCollectionData14isAutoPlaylistEi @ 32 NONAME
-	_ZN19MpMpxCollectionData14isAutoPlaylistEv @ 33 NONAME
-	_ZN19MpMpxCollectionData14testCachedItemEi @ 34 NONAME
-	_ZN19MpMpxCollectionData16insertCachedItemEi @ 35 NONAME
-	_ZN19MpMpxCollectionData16staticMetaObjectE @ 36 NONAME DATA 16
-	_ZN19MpMpxCollectionData19getStaticMetaObjectEv @ 37 NONAME
-	_ZN19MpMpxCollectionData6itemIdEi @ 38 NONAME
-	_ZN19MpMpxCollectionData9itemCountEi @ 39 NONAME
-	_ZN19MpMpxCollectionDataC1EP7QObject @ 40 NONAME
-	_ZN19MpMpxCollectionDataC2EP7QObject @ 41 NONAME
-	_ZN19MpMpxCollectionDataD0Ev @ 42 NONAME
-	_ZN19MpMpxCollectionDataD1Ev @ 43 NONAME
-	_ZN19MpMpxCollectionDataD2Ev @ 44 NONAME
-	_ZN21MpCollectionDataModel10removeRowsEiiRK11QModelIndex @ 45 NONAME
-	_ZN21MpCollectionDataModel11qt_metacallEN11QMetaObject4CallEiPPv @ 46 NONAME
-	_ZN21MpCollectionDataModel11qt_metacastEPKc @ 47 NONAME
-	_ZN21MpCollectionDataModel12dropMimeDataEPK9QMimeDataN2Qt10DropActionEiiRK11QModelIndex @ 48 NONAME
-	_ZN21MpCollectionDataModel12orderChangedEiiii @ 49 NONAME
-	_ZN21MpCollectionDataModel12refreshModelEv @ 50 NONAME
-	_ZN21MpCollectionDataModel14collectionDataEv @ 51 NONAME
-	_ZN21MpCollectionDataModel14updateAlbumArtEi @ 52 NONAME
-	_ZN21MpCollectionDataModel16staticMetaObjectE @ 53 NONAME DATA 16
-	_ZN21MpCollectionDataModel19getStaticMetaObjectEv @ 54 NONAME
-	_ZN21MpCollectionDataModelC1EP19MpMpxCollectionDataP7QObject @ 55 NONAME
-	_ZN21MpCollectionDataModelC2EP19MpMpxCollectionDataP7QObject @ 56 NONAME
-	_ZN21MpCollectionDataModelD0Ev @ 57 NONAME
-	_ZN21MpCollectionDataModelD1Ev @ 58 NONAME
-	_ZN21MpCollectionDataModelD2Ev @ 59 NONAME
-	_ZNK14MpPlaybackData10metaObjectEv @ 60 NONAME
-	_ZNK14MpPlaybackData13playbackStateEv @ 61 NONAME
-	_ZNK14MpPlaybackData3uriEv @ 62 NONAME
-	_ZNK14MpPlaybackData5albumEv @ 63 NONAME
-	_ZNK14MpPlaybackData5titleEv @ 64 NONAME
-	_ZNK14MpPlaybackData6artistEv @ 65 NONAME
-	_ZNK14MpPlaybackData8albumArtER6HbIcon @ 66 NONAME
-	_ZNK14MpPlaybackData8durationEv @ 67 NONAME
-	_ZNK14MpPlaybackData8positionEv @ 68 NONAME
-	_ZNK19MpMpxCollectionData10metaObjectEv @ 69 NONAME
-	_ZNK19MpMpxCollectionData15collectionTitleEv @ 70 NONAME
-	_ZNK19MpMpxCollectionData5countEv @ 71 NONAME
-	_ZNK19MpMpxCollectionData7contextEv @ 72 NONAME
-	_ZNK19MpMpxCollectionData8itemDataEiNS_8DataTypeE @ 73 NONAME
-	_ZNK21MpCollectionDataModel10metaObjectEv @ 74 NONAME
-	_ZNK21MpCollectionDataModel20supportedDropActionsEv @ 75 NONAME
-	_ZNK21MpCollectionDataModel4dataERK11QModelIndexi @ 76 NONAME
-	_ZNK21MpCollectionDataModel8mimeDataERK5QListI11QModelIndexE @ 77 NONAME
-	_ZNK21MpCollectionDataModel8rowCountERK11QModelIndex @ 78 NONAME
-	_ZNK21MpCollectionDataModel9mimeTypesEv @ 79 NONAME
-	_ZTI14MpPlaybackData @ 80 NONAME
-	_ZTI19MpMpxCollectionData @ 81 NONAME
-	_ZTI21MpCollectionDataModel @ 82 NONAME
-	_ZTV14MpPlaybackData @ 83 NONAME
-	_ZTV19MpMpxCollectionData @ 84 NONAME
-	_ZTV21MpCollectionDataModel @ 85 NONAME
+	_ZN10MpSongData10setBitRateEi @ 1 NONAME
+	_ZN10MpSongData10setCommentERK7QString @ 2 NONAME
+	_ZN10MpSongData11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME
+	_ZN10MpSongData11qt_metacastEPKc @ 4 NONAME
+	_ZN10MpSongData11setComposerERK7QString @ 5 NONAME
+	_ZN10MpSongData11setDurationEi @ 6 NONAME
+	_ZN10MpSongData11setFileNameERK7QString @ 7 NONAME
+	_ZN10MpSongData11setMimeTypeERK7QString @ 8 NONAME
+	_ZN10MpSongData11setModifiedERK7QString @ 9 NONAME
+	_ZN10MpSongData11setMusicURLERK7QString @ 10 NONAME
+	_ZN10MpSongData12setCopyrightERK7QString @ 11 NONAME
+	_ZN10MpSongData13albumArtReadyEv @ 12 NONAME
+	_ZN10MpSongData13setAlbumTrackERK7QString @ 13 NONAME
+	_ZN10MpSongData13setSampleRateEi @ 14 NONAME
+	_ZN10MpSongData14setAlbumArtUriERK7QString @ 15 NONAME
+	_ZN10MpSongData14thumbnailReadyERK7QPixmapPvii @ 16 NONAME
+	_ZN10MpSongData15setDrmProtectedEb @ 17 NONAME
+	_ZN10MpSongData16staticMetaObjectE @ 18 NONAME DATA 16
+	_ZN10MpSongData18commitPlaybackInfoEv @ 19 NONAME
+	_ZN10MpSongData19getStaticMetaObjectEv @ 20 NONAME
+	_ZN10MpSongData19playbackInfoChangedEv @ 21 NONAME
+	_ZN10MpSongData20commitSongDetailInfoEv @ 22 NONAME
+	_ZN10MpSongData21songDetailInfoChangedEv @ 23 NONAME
+	_ZN10MpSongData7setLinkERK7QString @ 24 NONAME
+	_ZN10MpSongData7setSizeEi @ 25 NONAME
+	_ZN10MpSongData7setYearEi @ 26 NONAME
+	_ZN10MpSongData8setAlbumERK7QString @ 27 NONAME
+	_ZN10MpSongData8setGenreERK7QString @ 28 NONAME
+	_ZN10MpSongData8setTitleERK7QString @ 29 NONAME
+	_ZN10MpSongData9setArtistERK7QString @ 30 NONAME
+	_ZN10MpSongDataC1EP7QObject @ 31 NONAME
+	_ZN10MpSongDataC2EP7QObject @ 32 NONAME
+	_ZN10MpSongDataD0Ev @ 33 NONAME
+	_ZN10MpSongDataD1Ev @ 34 NONAME
+	_ZN10MpSongDataD2Ev @ 35 NONAME
+	_ZN14MpPlaybackData10setAlbumIdEi @ 36 NONAME
+	_ZN14MpPlaybackData11qt_metacallEN11QMetaObject4CallEiPPv @ 37 NONAME
+	_ZN14MpPlaybackData11qt_metacastEPKc @ 38 NONAME
+	_ZN14MpPlaybackData11setDurationEi @ 39 NONAME
+	_ZN14MpPlaybackData11setPositionEi @ 40 NONAME
+	_ZN14MpPlaybackData12setRealAudioEb @ 41 NONAME
+	_ZN14MpPlaybackData13albumArtReadyEv @ 42 NONAME
+	_ZN14MpPlaybackData14setAlbumArtUriERK7QString @ 43 NONAME
+	_ZN14MpPlaybackData14thumbnailReadyERK7QPixmapPvii @ 44 NONAME
+	_ZN14MpPlaybackData15durationChangedEv @ 45 NONAME
+	_ZN14MpPlaybackData15positionChangedEv @ 46 NONAME
+	_ZN14MpPlaybackData16setPlaybackStateENS_15SimplifiedStateE @ 47 NONAME
+	_ZN14MpPlaybackData16staticMetaObjectE @ 48 NONAME DATA 16
+	_ZN14MpPlaybackData18commitPlaybackInfoEv @ 49 NONAME
+	_ZN14MpPlaybackData19getStaticMetaObjectEv @ 50 NONAME
+	_ZN14MpPlaybackData19playbackInfoChangedEv @ 51 NONAME
+	_ZN14MpPlaybackData20playbackStateChangedEv @ 52 NONAME
+	_ZN14MpPlaybackData2idEv @ 53 NONAME
+	_ZN14MpPlaybackData5setIdEi @ 54 NONAME
+	_ZN14MpPlaybackData6setUriERK7QString @ 55 NONAME
+	_ZN14MpPlaybackData7albumIdEv @ 56 NONAME
+	_ZN14MpPlaybackData8setAlbumERK7QString @ 57 NONAME
+	_ZN14MpPlaybackData8setTitleERK7QString @ 58 NONAME
+	_ZN14MpPlaybackData9realAudioEv @ 59 NONAME
+	_ZN14MpPlaybackData9resetDataEv @ 60 NONAME
+	_ZN14MpPlaybackData9setArtistERK7QString @ 61 NONAME
+	_ZN14MpPlaybackDataC1EP7QObject @ 62 NONAME
+	_ZN14MpPlaybackDataC2EP7QObject @ 63 NONAME
+	_ZN14MpPlaybackDataD0Ev @ 64 NONAME
+	_ZN14MpPlaybackDataD1Ev @ 65 NONAME
+	_ZN14MpPlaybackDataD2Ev @ 66 NONAME
+	_ZN19MpMpxCollectionData10removeItemEi @ 67 NONAME
+	_ZN19MpMpxCollectionData10setContextE18TCollectionContext @ 68 NONAME
+	_ZN19MpMpxCollectionData11albumSongIdEi @ 69 NONAME
+	_ZN19MpMpxCollectionData11containerIdEv @ 70 NONAME
+	_ZN19MpMpxCollectionData11dataChangedEv @ 71 NONAME
+	_ZN19MpMpxCollectionData11qt_metacallEN11QMetaObject4CallEiPPv @ 72 NONAME
+	_ZN19MpMpxCollectionData11qt_metacastEPKc @ 73 NONAME
+	_ZN19MpMpxCollectionData11setMpxMediaERK9CMPXMediab @ 74 NONAME
+	_ZN19MpMpxCollectionData14albumSongIndexEi @ 75 NONAME
+	_ZN19MpMpxCollectionData14containerMediaEv @ 76 NONAME
+	_ZN19MpMpxCollectionData14contextChangedE18TCollectionContext @ 77 NONAME
+	_ZN19MpMpxCollectionData14isAutoPlaylistEi @ 78 NONAME
+	_ZN19MpMpxCollectionData14isAutoPlaylistEv @ 79 NONAME
+	_ZN19MpMpxCollectionData14testCachedItemEi @ 80 NONAME
+	_ZN19MpMpxCollectionData15setAlbumContentERK9CMPXMedia @ 81 NONAME
+	_ZN19MpMpxCollectionData15setCurrentAlbumEi @ 82 NONAME
+	_ZN19MpMpxCollectionData16albumDataChangedEv @ 83 NONAME
+	_ZN19MpMpxCollectionData16insertCachedItemEi @ 84 NONAME
+	_ZN19MpMpxCollectionData16staticMetaObjectE @ 85 NONAME DATA 16
+	_ZN19MpMpxCollectionData17refreshAlbumSongsEv @ 86 NONAME
+	_ZN19MpMpxCollectionData19getStaticMetaObjectEv @ 87 NONAME
+	_ZN19MpMpxCollectionData6itemIdEi @ 88 NONAME
+	_ZN19MpMpxCollectionData9itemCountEi @ 89 NONAME
+	_ZN19MpMpxCollectionData9itemIndexEi @ 90 NONAME
+	_ZN19MpMpxCollectionDataC1EP7QObject @ 91 NONAME
+	_ZN19MpMpxCollectionDataC2EP7QObject @ 92 NONAME
+	_ZN19MpMpxCollectionDataD0Ev @ 93 NONAME
+	_ZN19MpMpxCollectionDataD1Ev @ 94 NONAME
+	_ZN19MpMpxCollectionDataD2Ev @ 95 NONAME
+	_ZN21MpCollectionDataModel10reloadDataEv @ 96 NONAME
+	_ZN21MpCollectionDataModel10removeRowsEiiRK11QModelIndex @ 97 NONAME
+	_ZN21MpCollectionDataModel10setContextE18TCollectionContext @ 98 NONAME
+	_ZN21MpCollectionDataModel11qt_metacallEN11QMetaObject4CallEiPPv @ 99 NONAME
+	_ZN21MpCollectionDataModel11qt_metacastEPKc @ 100 NONAME
+	_ZN21MpCollectionDataModel12dataReloadedEv @ 101 NONAME
+	_ZN21MpCollectionDataModel12dropMimeDataEPK9QMimeDataN2Qt10DropActionEiiRK11QModelIndex @ 102 NONAME
+	_ZN21MpCollectionDataModel12orderChangedEiiii @ 103 NONAME
+	_ZN21MpCollectionDataModel12refreshModelEv @ 104 NONAME
+	_ZN21MpCollectionDataModel14collectionDataEv @ 105 NONAME
+	_ZN21MpCollectionDataModel14updateAlbumArtEi @ 106 NONAME
+	_ZN21MpCollectionDataModel16staticMetaObjectE @ 107 NONAME DATA 16
+	_ZN21MpCollectionDataModel17setItemVisibilityERK11QModelIndexb @ 108 NONAME
+	_ZN21MpCollectionDataModel19getStaticMetaObjectEv @ 109 NONAME
+	_ZN21MpCollectionDataModelC1EP19MpMpxCollectionDataP7QObject @ 110 NONAME
+	_ZN21MpCollectionDataModelC2EP19MpMpxCollectionDataP7QObject @ 111 NONAME
+	_ZN21MpCollectionDataModelD0Ev @ 112 NONAME
+	_ZN21MpCollectionDataModelD1Ev @ 113 NONAME
+	_ZN21MpCollectionDataModelD2Ev @ 114 NONAME
+	_ZN30MpCollectionTBoneListDataModel10updateSongEv @ 115 NONAME
+	_ZN30MpCollectionTBoneListDataModel11qt_metacallEN11QMetaObject4CallEiPPv @ 116 NONAME
+	_ZN30MpCollectionTBoneListDataModel11qt_metacastEPKc @ 117 NONAME
+	_ZN30MpCollectionTBoneListDataModel12refreshModelEv @ 118 NONAME
+	_ZN30MpCollectionTBoneListDataModel16albumDataChangedEv @ 119 NONAME
+	_ZN30MpCollectionTBoneListDataModel16staticMetaObjectE @ 120 NONAME DATA 16
+	_ZN30MpCollectionTBoneListDataModel18albumDataAvailableEv @ 121 NONAME
+	_ZN30MpCollectionTBoneListDataModel19getStaticMetaObjectEv @ 122 NONAME
+	_ZN30MpCollectionTBoneListDataModel19updatePlaybackStateEv @ 123 NONAME
+	_ZN30MpCollectionTBoneListDataModelC1EP19MpMpxCollectionDataP14MpPlaybackDataP7QObject @ 124 NONAME
+	_ZN30MpCollectionTBoneListDataModelC2EP19MpMpxCollectionDataP14MpPlaybackDataP7QObject @ 125 NONAME
+	_ZN30MpCollectionTBoneListDataModelD0Ev @ 126 NONAME
+	_ZN30MpCollectionTBoneListDataModelD1Ev @ 127 NONAME
+	_ZN30MpCollectionTBoneListDataModelD2Ev @ 128 NONAME
+	_ZNK10MpSongData10albumTrackEv @ 129 NONAME
+	_ZNK10MpSongData10metaObjectEv @ 130 NONAME
+	_ZNK10MpSongData10sampleRateEv @ 131 NONAME
+	_ZNK10MpSongData14albumArtBase64Ev @ 132 NONAME
+	_ZNK10MpSongData14isDrmProtectedEv @ 133 NONAME
+	_ZNK10MpSongData18removeAlbumArtFileEv @ 134 NONAME
+	_ZNK10MpSongData4linkEv @ 135 NONAME
+	_ZNK10MpSongData4sizeEv @ 136 NONAME
+	_ZNK10MpSongData4yearEv @ 137 NONAME
+	_ZNK10MpSongData5albumEv @ 138 NONAME
+	_ZNK10MpSongData5genreEv @ 139 NONAME
+	_ZNK10MpSongData5titleEv @ 140 NONAME
+	_ZNK10MpSongData6artistEv @ 141 NONAME
+	_ZNK10MpSongData7bitRateEv @ 142 NONAME
+	_ZNK10MpSongData7commentEv @ 143 NONAME
+	_ZNK10MpSongData8albumArtER6HbIcon @ 144 NONAME
+	_ZNK10MpSongData8composerEv @ 145 NONAME
+	_ZNK10MpSongData8durationEv @ 146 NONAME
+	_ZNK10MpSongData8fileNameEv @ 147 NONAME
+	_ZNK10MpSongData8mimeTypeEv @ 148 NONAME
+	_ZNK10MpSongData8modifiedEv @ 149 NONAME
+	_ZNK10MpSongData8musicURLEv @ 150 NONAME
+	_ZNK10MpSongData9copyrightEv @ 151 NONAME
+	_ZNK14MpPlaybackData10metaObjectEv @ 152 NONAME
+	_ZNK14MpPlaybackData13playbackStateEv @ 153 NONAME
+	_ZNK14MpPlaybackData3uriEv @ 154 NONAME
+	_ZNK14MpPlaybackData5albumEv @ 155 NONAME
+	_ZNK14MpPlaybackData5titleEv @ 156 NONAME
+	_ZNK14MpPlaybackData6artistEv @ 157 NONAME
+	_ZNK14MpPlaybackData8albumArtER6HbIcon @ 158 NONAME
+	_ZNK14MpPlaybackData8durationEv @ 159 NONAME
+	_ZNK14MpPlaybackData8positionEv @ 160 NONAME
+	_ZNK19MpMpxCollectionData10metaObjectEv @ 161 NONAME
+	_ZNK19MpMpxCollectionData13albumSongDataEiNS_8DataTypeE @ 162 NONAME
+	_ZNK19MpMpxCollectionData15albumSongsCountEv @ 163 NONAME
+	_ZNK19MpMpxCollectionData15collectionTitleEv @ 164 NONAME
+	_ZNK19MpMpxCollectionData17currentAlbumIndexEv @ 165 NONAME
+	_ZNK19MpMpxCollectionData5countEv @ 166 NONAME
+	_ZNK19MpMpxCollectionData7contextEv @ 167 NONAME
+	_ZNK19MpMpxCollectionData8itemDataEiNS_8DataTypeE @ 168 NONAME
+	_ZNK21MpCollectionDataModel10metaObjectEv @ 169 NONAME
+	_ZNK21MpCollectionDataModel20supportedDropActionsEv @ 170 NONAME
+	_ZNK21MpCollectionDataModel4dataERK11QModelIndexi @ 171 NONAME
+	_ZNK21MpCollectionDataModel8mimeDataERK5QListI11QModelIndexE @ 172 NONAME
+	_ZNK21MpCollectionDataModel8rowCountERK11QModelIndex @ 173 NONAME
+	_ZNK21MpCollectionDataModel9mimeTypesEv @ 174 NONAME
+	_ZNK30MpCollectionTBoneListDataModel10metaObjectEv @ 175 NONAME
+	_ZNK30MpCollectionTBoneListDataModel4dataERK11QModelIndexi @ 176 NONAME
+	_ZNK30MpCollectionTBoneListDataModel8rowCountERK11QModelIndex @ 177 NONAME
+	_ZTI10MpSongData @ 178 NONAME
+	_ZTI14MpPlaybackData @ 179 NONAME
+	_ZTI19MpMpxCollectionData @ 180 NONAME
+	_ZTI21MpCollectionDataModel @ 181 NONAME
+	_ZTI30MpCollectionTBoneListDataModel @ 182 NONAME
+	_ZTV10MpSongData @ 183 NONAME
+	_ZTV14MpPlaybackData @ 184 NONAME
+	_ZTV19MpMpxCollectionData @ 185 NONAME
+	_ZTV21MpCollectionDataModel @ 186 NONAME
+	_ZTV30MpCollectionTBoneListDataModel @ 187 NONAME
 
--- a/mpdata/inc/mpcollectionalbumartmanager.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/inc/mpcollectionalbumartmanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -21,9 +21,12 @@
 
 #include <QObject>
 #include <QCache>
-#include <QIcon>
 #include <QList>
 
+#include <hbicon.h>
+
+#include "mpcommondefs.h"
+
 class MpMpxCollectionData;
 class ThumbnailManager;
 
@@ -36,9 +39,11 @@
     explicit MpCollectionAlbumArtManager( MpMpxCollectionData *data, QObject *parent=0 );
     virtual ~MpCollectionAlbumArtManager();
 
-    const QIcon* albumArt( int index );
+    const HbIcon albumArt( int index );
     void cacheFirstScreen();
     void cancel();
+    void setThumbnailSize( MpCommon::MpThumbType type );
+    void enableDefaultArt( bool enabled );
 
 signals:
 
@@ -52,14 +57,15 @@
 
     MpMpxCollectionData             *mCollectionData;
     ThumbnailManager                *mThumbnailManager;
-    QCache<int, QIcon>              mImageCache;
+    QCache<int, HbIcon>             mImageCache;
     bool                            mCachingInProgress;
 
-    QIcon                           *mDefaultIcon;
+    HbIcon                          mDefaultIcon;
 
     QList<int>                      mRequestQueue;
     bool                            mPendingRequest;
     int                             mRequestId;
+    bool                            mDefaultArtEnabled;
 
 };
 
--- a/mpdata/inc/mpmpxcollectiondata_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/inc/mpmpxcollectiondata_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -20,6 +20,8 @@
 
 #include <e32base.h>
 
+#include <QHash>
+
 #include "mpmpxcollectiondata.h"
 #include "mpmpxcollectionviewdefs.h"
 
@@ -44,38 +46,58 @@
     bool isAutoPlaylist( int index );
     int itemCount( int index );
     int containerId();
-    int itemId(int index);
-    void removeItem(int index);
+    int itemId( int index);
+    int albumSongId( int index);
+    void removeItem( int index);
     bool testCachedItem( int itemId );
-    void insertCachedItem(int index);
+    void insertCachedItem( int index);
+
+    bool setCurrentAlbum( int index );
+    int currentAlbumIndex() const;
+    int albumSongsCount() const;
+    QString albumSongData( int index, MpMpxCollectionData::DataType type ) const;
 
-    void setMpxMedia( const CMPXMedia& entries );
+    void setMpxMedia( const CMPXMedia& entries, bool reopen );
     const CMPXMedia& containerMedia();
+    void setContext( TCollectionContext context );
+    void setAlbumContent( const CMPXMedia& albumContent );
+    int itemIndex( int itemUniqueId );
+    int albumSongIndex( int songUniqueId );
 
 private:
-
+    void loadAlbumsLookup();
+    void loadAlbumSongsLookup();
     void DoGetDataL( int index, MpMpxCollectionData::DataType type, QString& data ) const;
     bool DoIsAutoPlaylistL();
     bool DoIsAutoPlaylistL( int index );
     int DoGetItemCountL( int index );
     int DoGetContainerIdL();
     int DoGetItemIdL( int index );
+    int DoGetAlbumSongIdL( int index );
     void DoRemoveItemL( int index );
     bool DoTestCachedItemL( int itemId );
-    
+
+    bool DoSetCurrentAlbumL( int index );
+    void DoGetAlbumSongDataL( int index, MpMpxCollectionData::DataType type, QString& data ) const;
+
     void SetCollectionContextL();
     void DoSetMpxMediaL( const CMPXMedia& entries );
+    void DoSetAlbumContentL( const CMPXMedia& albumContent );
 
 private:
 
     MpMpxCollectionData     *q_ptr;
 
+    TCollectionContext      iContext;
+
     CMPXMedia               *iContainerMedia;       // Owned
     CMPXMediaArray          *iMediaArray;           // Not owned
+    CMPXMedia               *iCachedRemovedItem;    // Owned
 
-    TCollectionContext      iContext;
-    
-    CMPXMedia               *iCachedRemovedItem; //Owned
+    int                     iCurrentAlbumIndex;
+    int                     iAlbumSongCount;
+    QHash<int, int>         albumIdIndexMapping;
+    QHash<int, int>         albumSongIdIndexMapping;
 
 };
 
--- a/mpdata/mpdata.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/mpdata.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,42 +14,42 @@
 # Description: Project file for Music Player Data.
 #
 
-symbian:TARGET.UID3 = 0x10207C95
-
 TEMPLATE = lib
 CONFIG += hb
 TARGET = mpdata
-
-TARGET.CAPABILITY = CAP_GENERAL_DLL
+symbian: { 
+    TARGET.UID3 = 0x10207C95
+    MMP_RULES += "DEFFILE mpdata.def"
+    defFilePath = .
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.EPOCALLOWDLLDATA = 1
+}
+DEFINES += BUILD_MPDATA_LIB
 
 INCLUDEPATH += . \
-    	inc \
-    	../inc
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+    	       inc \
+    	       ../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH(hgwidgets)
 
-LIBS += -lmpxcommon.dll \
-    -lthumbnailmanagerqt.dll
-    
-symbian:TARGET.EPOCALLOWDLLDATA	= 1
+LIBS += -lestor \
+        -lmpxcommon \
+        -lthumbnailmanagerqt
 
+# Input
 HEADERS += ../inc/mpmpxcollectiondata.h \
            inc/mpmpxcollectiondata_p.h \
            ../inc/mpcollectiondatamodel.h \
-    	     inc/mpcollectionalbumartmanager.h \
-    	     ../inc/mpplaybackdata.h
+           ../inc/mpcollectiontbonelistdatamodel.h \
+    	   inc/mpcollectionalbumartmanager.h \
+    	   ../inc/mpplaybackdata.h \
+    	   ../inc/mpsongdata.h
 
 SOURCES += src/mpmpxcollectiondata.cpp \
            src/mpmpxcollectiondata_p.cpp \
            src/mpcollectiondatamodel.cpp \
-    	     src/mpcollectionalbumartmanager.cpp \
-           src/mpplaybackdata.cpp
-           
-DEFINES += BUILD_MPDATA_LIB
+           src/mpcollectiontbonelistdatamodel.cpp \
+    	   src/mpcollectionalbumartmanager.cpp \
+           src/mpplaybackdata.cpp \
+           src/mpsongdata.cpp
 
-myDefInclude = "NOSTRICTDEF" \
-"$${LITERAL_HASH}if defined(WINS)"\
-"DEFFILE  bwins/mpdatau.def "\
-"$${LITERAL_HASH}else "\
-"DEFFILE  eabi/mpdatau.def "\
-"$${LITERAL_HASH}endif"
-MMP_RULES += myDefInclude
--- a/mpdata/src/mpcollectionalbumartmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/src/mpcollectionalbumartmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -57,26 +57,23 @@
  Constructs the album art manager.
  */
 MpCollectionAlbumArtManager::MpCollectionAlbumArtManager( MpMpxCollectionData *data, QObject *parent )
-    : QObject(parent),
-      mCollectionData(data),
-      mThumbnailManager(0),
-      mCachingInProgress(false),
-      mDefaultIcon(0),
-      mPendingRequest(false)
+    : QObject( parent ),
+      mCollectionData( data ),
+      mThumbnailManager( 0 ),
+      mCachingInProgress( false ),
+      mDefaultIcon( "qtg_large_music_album" ),
+      mPendingRequest( false ),
+      mDefaultArtEnabled( true )
 {
     TX_ENTRY
     mThumbnailManager = new ThumbnailManager(this);
     mThumbnailManager->setMode(ThumbnailManager::Default);
     mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
     mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailSmall);
-
     connect( mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
              this, SLOT(thumbnailReady(QPixmap, void *, int, int)) );
 
     mImageCache.setMaxCost(KMaxCacheSize);
-    //TODO: Change to final resource when available
-    HbIcon albumArt( "qtg_large_music" );
-    mDefaultIcon = new QIcon( albumArt.qicon() );
     TX_EXIT
 }
 
@@ -88,7 +85,6 @@
     TX_ENTRY
     cancel();
     delete mThumbnailManager;
-    delete mDefaultIcon;
     TX_EXIT
 }
 
@@ -99,12 +95,17 @@
 
  \sa signal albumArtReady
  */
-const QIcon* MpCollectionAlbumArtManager::albumArt( int index )
+const HbIcon MpCollectionAlbumArtManager::albumArt( int index )
 {
     TX_ENTRY_ARGS("index=" << index);
-    QIcon *icon = mImageCache[index];
-    if ( !icon ) {
-        icon = mDefaultIcon;
+    HbIcon icon;
+    if ( mImageCache.contains( index ) ) {
+        icon = *mImageCache[index];
+    }
+    else {
+        if ( mDefaultArtEnabled ) {
+            icon = mDefaultIcon;
+        }
         if ( !mRequestQueue.contains(index) ) {
             // Icon was not found in cache. If the item has AlbumArtUri, request it
             // through ThumbnailManager interface.
@@ -167,17 +168,50 @@
     TX_EXIT
 }
 
+
+/*!
+ changes the thumbnail size.
+
+ */
+void MpCollectionAlbumArtManager::setThumbnailSize(MpCommon::MpThumbType type)
+{
+    switch ( type ) {
+    case MpCommon::ListThumb:
+        mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailSmall);
+        break;
+    case MpCommon::TBoneThumb:
+        mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailMedium);
+        break;
+    case MpCommon::MediaWallThumb:
+    default:
+        mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
+        break;
+    }
+    cancel();
+}
+
+/*!
+ sets the Default art \a enabled.
+ */
+void MpCollectionAlbumArtManager::enableDefaultArt( bool enabled )
+{
+    mDefaultArtEnabled = enabled;
+}
+
 /*!
  Slot to be called when thumbnail bitmap generation or loading is complete.
  */
 void MpCollectionAlbumArtManager::thumbnailReady( QPixmap pixmap, void *data, int id, int error )
 {
-    int index = reinterpret_cast<int>(data);
+    int index = reinterpret_cast<int>( data );
     TX_ENTRY_ARGS("index=" << index << ", id=" << id << ", error=" << error);
     if ( !error && id == mRequestId && !pixmap.isNull() ) {
         // Find the index
-        mImageCache.insert(index, new QIcon(pixmap));
-        TX_LOG_ARGS("Album art ready for index=" << index);
+        HbIcon *tmpIconPtr = new HbIcon(pixmap);
+        //TODO:Enable This optimization for WK16
+        //tmpIconPtr->setFlags( HbIcon::NonThemeable );
+        mImageCache.insert( index, tmpIconPtr );
+        TX_LOG_ARGS( "Album art ready for index=" << index );
         if ( !mCachingInProgress ) {
             emit albumArtReady(index);
         }
--- a/mpdata/src/mpcollectiondatamodel.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/src/mpcollectiondatamodel.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,10 +17,13 @@
 
 #include <QIcon>
 #include <QList>
-#include <qmimedata.h>
+#include <QMimeData>
 #include <hbicon.h>
 #include <hbnamespace.h>
 
+#include <hgwidgets.h>
+
+
 #include "mpcollectiondatamodel.h"
 #include "mpcollectionalbumartmanager.h"
 #include "mpmpxcollectiondata.h"
@@ -53,14 +56,27 @@
  */
 
 /*!
+    \fn void dataReloaded()
+
+    This signal is emitted when there has been a changed in the data represented
+    by this model. This signal is emitted so that the view owning this model can
+    refresh the view. This can happen after operations like delete and several
+    playlist related operations (save, rearrange, remove).
+ */
+
+/*!
  Constructs the collection data model.
  */
 MpCollectionDataModel::MpCollectionDataModel( MpMpxCollectionData *data, QObject *parent )
-    : QAbstractListModel(parent),
-      mCollectionData(data),
-      mRowCount(0)
+    : QAbstractListModel( parent ),
+      mCollectionData( data ),
+      mRowCount( 0 ),
+      mAlbumIndexOffset( 0 ),
+      mHiddenItemIndex( -1 )
 {
     TX_ENTRY
+    connect( mCollectionData, SIGNAL(contextChanged(TCollectionContext)), this, SLOT(setContext(TCollectionContext)) );
+    connect( mCollectionData, SIGNAL(dataChanged()), this, SLOT(reloadData()) );
     mAlbumArtManager = new MpCollectionAlbumArtManager(mCollectionData);
     connect( mAlbumArtManager, SIGNAL(albumArtReady(int)), this, SLOT(updateAlbumArt(int)) );
     TX_EXIT
@@ -89,7 +105,7 @@
 {
     TX_LOG
     Q_UNUSED(parent);
-    return mRowCount;
+    return mRowCount - mAlbumIndexOffset;
 }
 
 /*!
@@ -105,27 +121,51 @@
         return returnValue;
     }
 
-    int row = index.row();
+    int row = index.row() + mAlbumIndexOffset;
     TX_LOG_ARGS("index=" << row << ", role=" << role);
     TCollectionContext context = mCollectionData->context();
     if ( role == Qt::DisplayRole ) {
         QStringList display;
         // Fetch the primary text, which is the title, if available.
         QString primaryText;
-        primaryText = mCollectionData->itemData(row, MpMpxCollectionData::Title);
-        if ( !primaryText.isEmpty() ) {
-            display << primaryText;
+        switch ( context ) {
+            case ECollectionContextAllSongs:
+            case ECollectionContextArtists:
+            case ECollectionContextAlbums:
+            case ECollectionContextArtistAlbums:
+            case ECollectionContextPlaylists:
+            case ECollectionContextPlaylistSongs:
+            case ECollectionContextAlbumsTBone:
+            case ECollectionContextArtistAlbumsTBone:
+            case ECollectionContextArtistAllSongs:
+                primaryText = mCollectionData->itemData(row, MpMpxCollectionData::Title);
+                if ( !primaryText.isEmpty() ) {
+                    display << primaryText;
+                }
+                else {
+                    display << hbTrId("txt_mus_other_unknown4");
+                }
+                break;
+            case ECollectionContextAlbumsMediaWall:
+                primaryText = mCollectionData->itemData(row, MpMpxCollectionData::Artist);
+                if ( !primaryText.isEmpty() ) {
+                    display << primaryText;
+                }
+                else {
+                    display << hbTrId("txt_mus_other_unknown4");
+                }    
+                break;
+            default:
+                break;
         }
-        else {
-            display << hbTrId("txt_mus_other_unknown4");
-        }
-
+        
         // Fetch the secondary text, which depends on the current context, if available.
         QString secondaryText;
         switch ( context ) {
             case ECollectionContextAllSongs:
             case ECollectionContextAlbums:
             case ECollectionContextPlaylistSongs:
+            case ECollectionContextAlbumsTBone:
                 secondaryText = mCollectionData->itemData(row, MpMpxCollectionData::Artist);
                 if ( !secondaryText.isEmpty() ) {
                     display << secondaryText;
@@ -134,7 +174,16 @@
                     display << hbTrId("txt_mus_other_unknown3");
                 }
                 break;
-            case ECollectionContextArtistSongs: 
+            case ECollectionContextArtistAlbumsTBone:
+                secondaryText = mCollectionData->collectionTitle();
+                if ( !secondaryText.isEmpty() ) {
+                    display << secondaryText;
+                }
+                else {
+                    display << hbTrId("txt_mus_other_unknown3");
+                }
+                break;
+            case ECollectionContextArtistAllSongs:
                 secondaryText = mCollectionData->itemData(row, MpMpxCollectionData::Album);
                 if ( !secondaryText.isEmpty() ) {
                     display << secondaryText;
@@ -143,6 +192,15 @@
                     display << hbTrId("txt_mus_other_unknown4");
                 }
                 break;
+            case ECollectionContextAlbumsMediaWall:
+                secondaryText = mCollectionData->itemData(row, MpMpxCollectionData::Title);
+                if ( !secondaryText.isEmpty() ) {
+                    display << secondaryText;
+                }
+                else {
+                    display << hbTrId("txt_mus_other_unknown3");
+                }
+                break;
             default:
                 break;
         }
@@ -151,18 +209,47 @@
     else if ( role == Qt::DecorationRole ) {
         switch ( context ) {
             case ECollectionContextAlbums:
+            case ECollectionContextAlbumsMediaWall:
+            case ECollectionContextArtistAlbumsTBone:
+            case ECollectionContextAlbumsTBone:
+                    returnValue = mAlbumArtManager->albumArt( row ) ;
+                break;
             case ECollectionContextArtistAlbums:
-                const QIcon *icon = mAlbumArtManager->albumArt(row);
-                QVariant iconVariant(QVariant::Icon, icon);
-                returnValue = iconVariant;
+                if ( row == 0 ) {
+                    returnValue = HbIcon( "qtg_small_sound" );
+                }
+                else {
+                    returnValue = mAlbumArtManager->albumArt( row );
+                }
                 break;
         }
     }
     else if ( role == Hb::IndexFeedbackRole ) {
         QString feedbackIndex;
-        feedbackIndex = mCollectionData->itemData(row, MpMpxCollectionData::Title);
+        switch ( context ) {
+            case ECollectionContextAllSongs:
+            case ECollectionContextArtists:
+            case ECollectionContextAlbums:
+            case ECollectionContextArtistAlbums:
+            case ECollectionContextPlaylists:
+            case ECollectionContextPlaylistSongs:
+            case ECollectionContextAlbumsTBone:
+            case ECollectionContextArtistAlbumsTBone:
+            case ECollectionContextArtistAllSongs:
+                feedbackIndex = mCollectionData->itemData(row, MpMpxCollectionData::Title);
+                break;
+            case ECollectionContextAlbumsMediaWall:
+                feedbackIndex = mCollectionData->itemData(row, MpMpxCollectionData::Artist);
+                break;
+            default:
+                break;
+        }
         returnValue = feedbackIndex;
     }
+    else if ( role == HgWidget::HgVisibilityRole 
+        && context == ECollectionContextAlbumsMediaWall) {
+        returnValue = !( row == mHiddenItemIndex );
+        }
     TX_EXIT
     return returnValue;
 }
@@ -267,6 +354,18 @@
     return true;
 }
 
+/*! 
+ Sets the item visibility, model will report \a visible value as 
+ HgWidget::HgVisibilityRole for the item at \a index. 
+ datachanged() signal is emited when calling this function.
+ Currently this is only used by Media Wall View.
+*/
+void MpCollectionDataModel::setItemVisibility(const QModelIndex &index, bool visible)
+{
+    mHiddenItemIndex = visible ? -1 : index.row();
+    emit dataChanged(index, index);
+}
+
 /*!
  Returns pointer to MpMpxCollectionData, which is the collection data.
  */
@@ -276,11 +375,49 @@
 }
 
 /*!
+ Slot to be called when collection context is changed.
+ */
+void MpCollectionDataModel::setContext( TCollectionContext context )
+{
+    TX_ENTRY_ARGS( "context=" << context );
+    // Reset the album index offset for navigation
+    mAlbumIndexOffset = 0;
+    switch ( context ) {
+        case ECollectionContextArtistAlbums:
+        case ECollectionContextAlbums:
+            mAlbumArtManager->setThumbnailSize( MpCommon::ListThumb );
+            mAlbumArtManager->enableDefaultArt( true );
+            break;
+        case ECollectionContextArtistAlbumsTBone:
+            if ( mCollectionData->count() > 1 ) {
+                // Selected artist has more than 1 album and therefore the
+                // artist's "All songs" exist. Since we don't show artist's
+                // "All songs" in TBone, we need to set an offset.
+                mAlbumIndexOffset = 1;
+            }
+            //intentional fallthrough
+       case ECollectionContextAlbumsTBone:
+            mAlbumArtManager->setThumbnailSize( MpCommon::TBoneThumb );
+            mAlbumArtManager->enableDefaultArt( false );
+            break;
+        case ECollectionContextAlbumsMediaWall:
+            mAlbumArtManager->setThumbnailSize( MpCommon::MediaWallThumb );
+            mAlbumArtManager->enableDefaultArt( false );
+            break;
+        default:
+            break;
+    }
+    TX_EXIT
+}
+
+/*!
  Slot to be called when album art for the \a index needs to be updated.
  */
 void MpCollectionDataModel::updateAlbumArt( int index )
 {
     TX_ENTRY_ARGS("index=" << index);
+
+    index -= mAlbumIndexOffset;
     if ( index >= 0 && index < mRowCount ) {
         QModelIndex modelIndex = QAbstractItemModel::createIndex(index, 0);
         emit dataChanged(modelIndex, modelIndex);
@@ -300,7 +437,9 @@
     mRowCount = mCollectionData->count();
 
     TCollectionContext context = mCollectionData->context();
-    if ( context == ECollectionContextAlbums || ECollectionContextArtistAlbums ) {
+    if ( context == ECollectionContextAlbums || 
+         context == ECollectionContextArtistAlbums ||
+         context == ECollectionContextAlbumsMediaWall ) {
         // Before providing the new data to the view (list, grid, etc.), we want
         // to make sure that we have enough album arts for the first screen.
         mAlbumArtManager->cacheFirstScreen();
@@ -309,3 +448,17 @@
     TX_EXIT
 }
 
+/*!
+ Slot to be called when data has changed (same context) and model needs to reload
+ the data.
+ */
+void MpCollectionDataModel::reloadData()
+{
+    TX_ENTRY
+    mAlbumArtManager->cancel();
+    mRowCount = mCollectionData->count();
+    reset();
+    emit dataReloaded();
+    TX_EXIT
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/src/mpcollectiontbonelistdatamodel.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,214 @@
+/*
+* 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: Music Player secondary collection abstract data model. This is
+*              primarily used to support Mediawall in Collection View. This
+*              model represents the list containing album songs.
+*
+*/
+
+#include <hbnamespace.h>
+
+#include "mpcollectiontbonelistdatamodel.h"
+#include "mpmpxcollectiondata.h"
+#include "mpplaybackdata.h"
+#include "mptrace.h"
+
+/*!
+    \class MpCollectionTBoneListDataModel
+    \brief Music Player collection data model.
+
+    Secondary collection data model implements the interface specified by
+    QAbstractListModel, which defines the standard interface that item models
+    must use to be able to interoperate with other components in the model/view
+    architecture.
+
+    Every item of data that can be accessed via a model has an associated model
+    index.
+
+    Each item has a number of data elements associated with it and they can be
+    retrieved by specifying a role (see Qt::ItemDataRole) to the model's data
+    returned by itemData() function.
+
+    MpCollectionTBoneListDataModel is primarily used to support Mediawall in
+    Collection View. This model represents the list containing album songs.
+
+    \sa QAbstractListModel
+*/
+
+/*!
+    \fn void albumDataChanged()
+
+    This signal is specific to views with TBone. This signal is emitted when
+    there's a change in album data. This is an indication that the container
+    should re-fetch the album content. Currently, the only operation that can
+    trigger this is the delete operation.
+ */
+
+/*!
+    \fn void albumDataAvailable()
+
+    This signal is specific to views with TBone. This signal is emitted when
+    a new data set is available for the list section of the TBone. This is
+    triggered as a result of container re-fetching the album content.
+
+    \sa albumDataChanged
+ */
+
+/*!
+ Constructs the collection data model.
+ */
+MpCollectionTBoneListDataModel::MpCollectionTBoneListDataModel( MpMpxCollectionData *collectionData, 
+        MpPlaybackData *playbackData, QObject *parent )
+    : QAbstractListModel( parent ),
+      mCollectionData( collectionData ),
+      mPlaybackData( playbackData ),
+      mRowCount( 0 ),
+      mCurrentSongId( 0 ),
+      mPlaybackActive( false )
+{
+    TX_ENTRY
+    connect( mCollectionData, SIGNAL(refreshAlbumSongs()),
+             this, SLOT(refreshModel()) );
+    connect( mCollectionData, SIGNAL(albumDataChanged()),
+             this, SIGNAL(albumDataChanged()) );
+    
+    if ( mPlaybackData ) {
+        connect( mPlaybackData, SIGNAL(playbackInfoChanged()),
+                this, SLOT(updateSong()));
+        
+        connect( mPlaybackData, SIGNAL(playbackStateChanged()), 
+                this, SLOT(updatePlaybackState()));
+        mPlaybackActive = mPlaybackData->playbackState() != MpPlaybackData::NotPlaying;
+    }
+    
+    TX_EXIT
+}
+
+/*!
+ Destructs the collection data model.
+ */
+MpCollectionTBoneListDataModel::~MpCollectionTBoneListDataModel()
+{
+    TX_LOG
+}
+
+/*!
+ Returns the number of rows under the given \a parent.
+
+ \reimp
+ */
+int MpCollectionTBoneListDataModel::rowCount( const QModelIndex &parent ) const
+{
+    TX_LOG
+    Q_UNUSED(parent);
+    return mRowCount;
+}
+
+/*!
+ Returns the data stored for the item referred to by the \a index.
+
+ \reimp
+ */
+QVariant MpCollectionTBoneListDataModel::data(const QModelIndex &index, int role) const
+{
+    TX_ENTRY
+    QVariant returnValue = QVariant();
+    if ( !index.isValid() ) {
+        return returnValue;
+    }
+
+    int row = index.row();
+    TX_LOG_ARGS("index=" << row << ", role=" << role);
+    if ( role == Qt::DisplayRole ) {
+        // Fetch the primary text, which is the title, if available.
+        QString songTitle = mCollectionData->albumSongData(row, MpMpxCollectionData::Title);
+        if ( !songTitle.isEmpty() ) {
+            returnValue = songTitle;
+        }
+        else {
+            returnValue = hbTrId("txt_mus_other_unknown4");
+        }
+    }
+    else if ( role == Qt::DecorationRole ) {
+        if ( mPlaybackActive
+                && mPlaybackData->id() == mCollectionData->albumSongId( row ) ) {
+            QList<QVariant> iconList;
+            iconList << QVariant(); //primary icon is not used.
+
+            iconList << HbIcon("qtg_small_speaker");
+            returnValue = iconList;
+        }
+    }
+    TX_EXIT
+    return returnValue;
+}
+
+/*!
+ Slot to be called when data has changed and model needs to be refreshed
+ to reflect the new data.
+ */
+void MpCollectionTBoneListDataModel::refreshModel()
+{
+    TX_ENTRY
+    mRowCount = mCollectionData->albumSongsCount();
+    reset();
+    emit albumDataAvailable();
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when playing song status has changed.
+ */
+void MpCollectionTBoneListDataModel::updateSong()
+{
+    TX_ENTRY
+    int newSongId = mPlaybackData->id();
+    
+    if ( mCurrentSongId && newSongId != mCurrentSongId) {
+        //Attempt to remove old song icon.
+        QModelIndex oldSongIndex;
+        oldSongIndex = index( mCollectionData->albumSongIndex( mCurrentSongId ) );
+        if ( oldSongIndex.isValid() ) {
+            emit dataChanged( oldSongIndex, oldSongIndex );
+        }       
+    }
+
+    //Attempt to update current song data and state.
+    QModelIndex songIndex;
+    songIndex = index( mCollectionData->albumSongIndex( newSongId ) );
+    if ( songIndex.isValid() ) {
+        emit dataChanged( songIndex, songIndex );
+    }
+    mCurrentSongId = newSongId;
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when playback state has changed.
+ */
+void MpCollectionTBoneListDataModel::updatePlaybackState()
+{
+    //This logic is to account for when song plays the very first time, we get
+    //media before playback is active.
+    bool playbackWasActive = mPlaybackActive;
+    mPlaybackActive = mPlaybackData->playbackState() != MpPlaybackData::NotPlaying;
+    if ( mPlaybackActive && !playbackWasActive ) {
+        updateSong();
+    }
+}    
+    
+
+//EOF
+
+
--- a/mpdata/src/mpmpxcollectiondata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/src/mpmpxcollectiondata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -43,6 +43,37 @@
  */
 
 /*!
+    \fn void dataChanged()
+
+    This signal is emitted when a new data set is available within the
+    same context. This can happen after operations like delete and several
+    playlist related operations (save, rearrange, remove).
+
+    \sa setMpxMedia()
+ */
+
+
+/*!
+    \fn void albumDataChanged()
+
+    This signal is specific to views with TBone. This signal is emitted when
+    a new data set is available for the list section of the TBone. Currently,
+    the only operation that can trigger this is the delete operation.
+
+    \sa setMpxMedia()
+ */
+
+/*!
+    \fn void refreshAlbumSongs()
+
+    This signal is specific to views with TBone. This signal is emitted when
+    album song data is available (for the list section of the TBone), upon
+    completion of MpEngine's findAlbumSongs() operation.
+
+    \sa setAlbumContent()
+ */
+
+/*!
  Constructs the collection data.
  */
 MpMpxCollectionData::MpMpxCollectionData( QObject *parent )
@@ -61,6 +92,7 @@
 
 /*!
  Returns the current collection context.
+ /sa setContext()
  */
 TCollectionContext MpMpxCollectionData::context() const
 {
@@ -126,20 +158,28 @@
 /*!
  Returns id of the item specified by \a index
  */
-int MpMpxCollectionData::itemId(int index)
+int MpMpxCollectionData::itemId( int index )
 {
     return d_ptr->itemId(index);
 }
 
 /*!
+ Returns id of the album song specified by \a index
+ */
+int MpMpxCollectionData::albumSongId( int index )
+{
+    return d_ptr->albumSongId( index );
+}
+
+/*!
  Removes item specified by \a index, also internally caches the item for drag
  and drop operations.
  
  \sa testCachedItem() insertCachedItem()
  */
-void MpMpxCollectionData::removeItem(int index)
+void MpMpxCollectionData::removeItem( int index )
 {
-    d_ptr->removeItem(index);
+    d_ptr->removeItem( index );
 }
 
 /*!
@@ -157,22 +197,62 @@
  */
 void MpMpxCollectionData::insertCachedItem(int index)
 {
-    return d_ptr->insertCachedItem( index );
+    d_ptr->insertCachedItem( index );
+}
+
+/*!
+ Sets the current album in focus. Also, triggers refreshAlbumSongs() signal
+ if data contains album songs already and returns true. Otherwise, function
+ returns false.
+ */
+bool MpMpxCollectionData::setCurrentAlbum( int index )
+{
+    return d_ptr->setCurrentAlbum( index );
+}
+
+/*!
+ Returns the current album index.
+ \sa setCurrentAlbum()
+ */
+int MpMpxCollectionData::currentAlbumIndex() const
+{
+    return d_ptr->currentAlbumIndex();
 }
 
 /*!
- Sets the media \a entries from the MPX framework.
- Internal usage only from MpMpxFrameworkWrapper.
+ Returns the number of songs in the current album.
  */
-void MpMpxCollectionData::setMpxMedia( const CMPXMedia& entries )
+int MpMpxCollectionData::albumSongsCount() const
 {
-    d_ptr->setMpxMedia(entries);
+    return d_ptr->albumSongsCount();
+}
+
+/*!
+ Returns the data for the specified \a index and \a type in the current album.
+ Currently supported data types are: Title and Uri. All others will return
+
+ empty string.
+
+ \sa setCurrentAlbum()
+ */
+QString MpMpxCollectionData::albumSongData( int index, MpMpxCollectionData::DataType type ) const
+{
+    return d_ptr->albumSongData( index, type );
+}
+
+/*!
+ Sets the media \a entries from the MPX framework. The \a reopen flag indicates
+ whether the new media is a result of reopenCollection() operation in the MpEngine.
+ Internal usage only from MpEngine.
+ */
+void MpMpxCollectionData::setMpxMedia( const CMPXMedia& entries, bool reopen )
+{
+    d_ptr->setMpxMedia(entries, reopen);
 }
 
 /*!
  Returns the container media from the MPX framework.
- Internal usage only from MpMpxFrameworkWrapper.
-
+ Internal usage only from MpEngine.
 
  \sa setMpxMedia()
  */
@@ -181,3 +261,49 @@
     return d_ptr->containerMedia();
 }
 
+/*!
+ Sets the context.
+ Used to fake open() and back() in T-Bone supporting views.
+ Used to force the context for Media Wall view.
+ */
+void MpMpxCollectionData::setContext( TCollectionContext context )
+{
+    d_ptr->setContext( context );
+}
+
+/*!
+ Sets the media \a albumContent from the MPX framework.
+ Internal usage only from MpEngine.
+ Album songs have been populated. Notify the change by emitting
+ refreshAlbumSongs() signal.
+
+ \sa setCurrentAlbum()
+ */
+void MpMpxCollectionData::setAlbumContent( const CMPXMedia& albumContent )
+{
+    d_ptr->setAlbumContent(albumContent);
+}
+
+/*!
+ Returns the index of the item with \a ItemUniqueId.
+ Only supported for ECollectionContextAlbumsMediaWall.
+
+ \sa setContext()
+ */
+int MpMpxCollectionData::itemIndex( int itemUniqueId )
+{
+    return d_ptr->itemIndex( itemUniqueId );
+}
+
+/*!
+ Returns the index within the album data for the song with \a songUniqueId.
+
+ */
+int MpMpxCollectionData::albumSongIndex( int songUniqueId )
+{
+    return d_ptr->albumSongIndex( songUniqueId );
+}
+
+//EOF
+
+
--- a/mpdata/src/mpmpxcollectiondata_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/src/mpmpxcollectiondata_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -27,9 +27,6 @@
 #include "mpmpxcollectiondata_p.h"
 #include "mptrace.h"
 
-_LIT( KSong, " song" );
-_LIT( KSongs, " songs" );
-
 /*!
     \class MpMpxCollectionDataPrivate
     \brief Music Player collection data - private implementation.
@@ -42,10 +39,12 @@
  */
 MpMpxCollectionDataPrivate::MpMpxCollectionDataPrivate( MpMpxCollectionData *wrapper )
     : q_ptr( wrapper ),
+      iContext( ECollectionContextUnknown ),
       iContainerMedia(0),
       iMediaArray(0),
-      iContext( ECollectionContextUnknown ),
-      iCachedRemovedItem ( 0 )
+      iCachedRemovedItem(0),
+      iCurrentAlbumIndex(-1),
+      iAlbumSongCount(0)
 {
     TX_LOG
 }
@@ -196,16 +195,34 @@
 /*!
  \internal
  */
-int MpMpxCollectionDataPrivate::itemId(int index)
+int MpMpxCollectionDataPrivate::itemId( int index )
 {
-    TX_ENTRY_ARGS("index=" << index);
+    TX_ENTRY_ARGS( "index=" << index );
     int id = -1;
-    TRAPD(err, id = DoGetItemIdL(index));
+    TRAPD( err, id = DoGetItemIdL( index ) );
     if ( err == KErrNone ) {
-        TX_LOG_ARGS("id=" << id);
+        TX_LOG_ARGS( "id=" << id );
     }
     else {
-        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+    }
+    TX_EXIT
+    return id;
+}
+
+/*!
+ \internal
+ */
+int MpMpxCollectionDataPrivate::albumSongId( int index )
+{
+    TX_ENTRY_ARGS( "index=" << index );
+    int id = -1;
+    TRAPD( err, id = DoGetAlbumSongIdL( index ) );
+    if ( err == KErrNone ) {
+        TX_LOG_ARGS( "id=" << id );
+    }
+    else {
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
     }
     TX_EXIT
     return id;
@@ -256,13 +273,137 @@
 /*!
  \internal
  */
-void MpMpxCollectionDataPrivate::setMpxMedia( const CMPXMedia& entries )
+bool MpMpxCollectionDataPrivate::setCurrentAlbum( int index )
+{
+    TX_ENTRY_ARGS( "index=" << index);
+    bool available = false;
+    TRAPD( err, available = DoSetCurrentAlbumL( index ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+    return available;
+}
+
+/*!
+ \internal
+ */
+int MpMpxCollectionDataPrivate::currentAlbumIndex() const
+{
+    return iCurrentAlbumIndex;
+}
+
+/*!
+ \internal
+ */
+int MpMpxCollectionDataPrivate::albumSongsCount() const
+{
+    return iAlbumSongCount;
+}
+
+/*!
+ \internal
+ */
+QString MpMpxCollectionDataPrivate::albumSongData( int index, MpMpxCollectionData::DataType type ) const
+{
+    TX_ENTRY_ARGS("index=" << index << ", type=" << type);
+    QString data;
+    TRAPD(err, DoGetAlbumSongDataL(index, type, data));
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+    return data;
+}
+
+/*!
+ \internal
+ New data from MPX collection. This could be due to Open operation, in which case
+ context would have changed. This could also be due to Re-open after operations
+ such as delete, playlist renaming, playlist rearraging, etc., in which case the
+ context would remain the same, but the internal data may have changed.
+ */
+void MpMpxCollectionDataPrivate::setMpxMedia( const CMPXMedia& entries, bool reopen )
 {
     TX_ENTRY
+    TCollectionContext prevContext = iContext;
+    int prevCount = count();
+
     TRAPD(err, DoSetMpxMediaL(entries));
     if ( err == KErrNone ) {
-        TX_LOG_ARGS("Context changed: iContext=" << iContext);
-        emit q_ptr->contextChanged(iContext);
+        int newCount = count();
+        if ( (newCount == 0) || (prevCount == 0) ) {
+            TX_LOG_ARGS("Empty container");
+            // Two cases:
+            //     1) newCount is zero: Last item in the model was deleted.
+            //     2) prevCount is zero: Refresh operation found new data.
+            // In these cases, independent of context change, we must emit the
+            // contextChanged() signal so that the container can properly reload
+            // the layout.
+            emit q_ptr->contextChanged(iContext);
+        }
+        else if ( iContext != prevContext ) {
+            TX_LOG_ARGS("Context changed: iContext=" << iContext);
+            if ( prevContext == ECollectionContextArtistAlbumsTBone
+                 && iContext == ECollectionContextArtistAlbums
+                 && reopen ) {
+                // Special case 1: This occurs when a song was deleted from TBone list
+                // within artist container. And the fact that the new context is ArtistAlbums
+                // indicates that the artist has more than 1 album.
+                // Restore context to ArtistAlbumsTBone.
+                iContext = ECollectionContextArtistAlbumsTBone;
+                if ( newCount != prevCount ) {
+                    // Change in count indicates that the deleted song was the last song
+                    // in the TBone list. As a result, the album was deleted also, therefore
+                    // we must emit dataChanged() indicating changes to the album section
+                    // of the TBone.
+                    emit q_ptr->dataChanged();
+                }
+                else {
+                    // Same count indicates that one of the songs in the TBone's list
+                    // section was deleted. We only want to reload the list section of the
+                    // TBone in this case.
+                    emit q_ptr->albumDataChanged();
+                }
+            }
+            else if ( prevContext == ECollectionContextAlbumsTBone && reopen ) {
+                // Special case 2: This occurs when a song was deleted from TBone list
+                // within album container. Restore context to AlbumsTBone.
+                iContext = ECollectionContextAlbumsTBone;
+                if ( newCount != prevCount ) {
+                    // Change in count indicates that the deleted song was the last song
+                    // in the TBone list. As a result, the album was deleted also, therefore
+                    // we must emit dataChanged() indicating changes to the album section
+                    // of the TBone.
+                    emit q_ptr->dataChanged();
+                }
+                else {
+                    // Same count indicates that one of the songs in the TBone's list
+                    // section was deleted. We only want to reload the list section of the
+                    // TBone in this case.
+                    emit q_ptr->albumDataChanged();
+                }
+            }
+            else {
+                // Simple case where the context has really changed and it didn't
+                // involve TBone.
+                emit q_ptr->contextChanged(iContext);
+            }
+        }
+        else if ( prevContext == ECollectionContextArtistAlbumsTBone
+                  && iContext == ECollectionContextArtistAlbumsTBone
+                  && reopen ) {
+            // Special case 3: This occurs when a song was deleted from TBone list
+            // within artist container. This is similar to special case 1, however, the
+            // fact that the new context is also ArtistAlbumsTBone indicates that the
+            // artist has only 1 album. We only want to reload the list section of the
+            // TBone in this case.
+            emit q_ptr->albumDataChanged();
+        }
+        else {
+            // Same context, but the data has changed.
+            emit q_ptr->dataChanged();
+        }
     }
     else {
         TX_LOG_ARGS("Error: " << err << "; should never get here.");
@@ -273,13 +414,102 @@
 /*!
  \internal
  */
+const CMPXMedia& MpMpxCollectionDataPrivate::containerMedia()
+{
+    return *iContainerMedia;
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::setContext( TCollectionContext context )
+{
+    iContext = context;
+    TX_LOG_ARGS("Context changed: iContext=" << iContext);
+    loadAlbumsLookup();
+    emit q_ptr->contextChanged(iContext);
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::setAlbumContent( const CMPXMedia& albumContent )
+{
+    TX_ENTRY
+    TRAPD(err, DoSetAlbumContentL(albumContent));
+    if ( err == KErrNone ) {
+        TX_LOG_ARGS("Album content is available.");
+        loadAlbumSongsLookup();
+        emit q_ptr->refreshAlbumSongs();
+    }
+    else {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+   Currently only used to lookup playing song album id to index of albums on 
+   media wall.
+ */
+int MpMpxCollectionDataPrivate::itemIndex( int itemUniqueId )
+{
+    return albumIdIndexMapping.value( itemUniqueId, -1 );
+}
+
+/*!
+ \internal
+   Currently only used to lookup playing song id to index of song in the 
+   current album on media wall.
+ */
+int MpMpxCollectionDataPrivate::albumSongIndex( int songUniqueId )
+{
+    return albumSongIdIndexMapping.value( songUniqueId, -1 );
+}
+
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::loadAlbumsLookup()
+{
+    //Clearing all the album ids.
+    albumIdIndexMapping.clear();
+    if ( iContext == ECollectionContextAlbumsMediaWall) {
+        //Adding album ids and indixes to the hash, for itemIndex lookup.
+        //This is disabled for other containers to save resources.
+        for ( int i = count() - 1 ; i >= 0 ; i-- ) {
+            albumIdIndexMapping.insert( itemId( i ) , i );
+        }
+    }
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::loadAlbumSongsLookup()
+{
+    //Clearing all the song ids.
+    albumSongIdIndexMapping.clear();
+    if ( iContext == ECollectionContextAlbumsMediaWall) {
+        //Adding album song ids and indixes to the hash, for albumSongIndex lookup.
+        //This is disabled for other containers to save resources.
+        for ( int i = albumSongsCount() - 1 ; i >= 0 ; i-- ) {
+            albumSongIdIndexMapping.insert( albumSongId( i ) , i );
+        }
+    }
+}
+
+/*!
+ \internal
+ */
 void MpMpxCollectionDataPrivate::DoGetDataL( int index, MpMpxCollectionData::DataType type, QString& data ) const
 {
     TX_ENTRY
     CMPXMedia* currentMedia( iMediaArray->AtL( index ) );
 
-    TBuf<256> countBuf;
-    TBuf<20> temp;
+    TBuf<10> countBuf;
     TInt count = 0;
     switch ( type ) {
         case MpMpxCollectionData::Title:
@@ -310,10 +540,7 @@
             if ( currentMedia->IsSupported( KMPXMediaGeneralCount ) ) {
                 count = currentMedia->ValueTObjectL<TInt>( KMPXMediaGeneralCount );
             }
-            temp.AppendNum( count );
-            //AknTextUtils::LanguageSpecificNumberConversion( temp );
-            countBuf.Append( temp );
-            countBuf.Append( (count > 1 ) ? KSongs() : KSong() );
+            countBuf.AppendNum( count );
             data = QString::fromUtf16( countBuf.Ptr(), countBuf.Length() );
             break;
         case MpMpxCollectionData::AlbumArtUri:
@@ -413,6 +640,21 @@
 /*!
  \internal
  */
+int MpMpxCollectionDataPrivate::DoGetAlbumSongIdL( int index )
+{
+    CMPXMedia* album( iMediaArray->AtL( iCurrentAlbumIndex ) );
+    const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
+    User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
+    CMPXMedia* song = songs->AtL(index);
+    if ( !song->IsSupported( KMPXMediaGeneralId ) ) {
+        User::Leave(KErrNotFound);
+    }
+    return song->ValueTObjectL<TInt>( KMPXMediaGeneralId );
+}
+
+/*!
+ \internal
+ */
 void MpMpxCollectionDataPrivate::DoRemoveItemL( int index )
 {
     delete iCachedRemovedItem;
@@ -426,12 +668,71 @@
  */
 bool MpMpxCollectionDataPrivate::DoTestCachedItemL( int itemId )
 {
-    if ( !iCachedRemovedItem && !iCachedRemovedItem->IsSupported( KMPXMediaGeneralId ) ) {
+    if ( !iCachedRemovedItem || !iCachedRemovedItem->IsSupported( KMPXMediaGeneralId ) ) {
         User::Leave(KErrNotFound);
     }
     return ( itemId == iCachedRemovedItem->ValueTObjectL<TInt>( KMPXMediaGeneralId ) );
 }
 
+/*!
+ \internal
+ */
+bool MpMpxCollectionDataPrivate::DoSetCurrentAlbumL( int index )
+{
+    TX_ENTRY_ARGS( "index=" << index);
+    iCurrentAlbumIndex = index;
+
+    bool songsAvailable = false;
+    CMPXMedia* album( iMediaArray->AtL( index ) );
+    if ( album->IsSupported(KMPXMediaArrayContents) ) {
+        // We've previously fetched the songs for this album so
+        // all we do now is populate the list with the song titles.
+        const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
+        iAlbumSongCount = songs->Count();
+        songsAvailable = true;
+        TX_LOG_ARGS("Songs available.");
+        loadAlbumSongsLookup();
+        emit q_ptr->refreshAlbumSongs();
+    }
+    TX_EXIT
+    return songsAvailable;
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::DoGetAlbumSongDataL( int index, MpMpxCollectionData::DataType type, QString& data ) const
+{
+    TX_ENTRY
+    CMPXMedia* album( iMediaArray->AtL( iCurrentAlbumIndex ) );
+    if ( album->IsSupported(KMPXMediaArrayContents) ) {
+        const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
+        User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
+        CMPXMedia* song = songs->AtL(index);
+
+        switch ( type ) {
+            case MpMpxCollectionData::Title:
+                if ( song->IsSupported( KMPXMediaGeneralTitle ) ) {
+                    const TDesC& title = song->ValueText( KMPXMediaGeneralTitle );
+                    if ( title.Compare( KNullDesC ) != 0 ) {
+                        data = QString::fromUtf16( title.Ptr(), title.Length() );
+                    }
+                }
+                break;
+            case MpMpxCollectionData::Uri:
+                if ( song->IsSupported( KMPXMediaGeneralUri ) ) {
+                    const TDesC& uri = song->ValueText( KMPXMediaGeneralUri );
+                    if ( uri.Compare( KNullDesC ) != 0 ) {
+                        data = QString::fromUtf16( uri.Ptr(), uri.Length() );
+                    }
+                }
+                break;
+            default:
+                break;
+        }
+    }
+    TX_EXIT
+}
 
 /*!
  \internal
@@ -465,28 +766,26 @@
             case EMPXPlaylist:
                 iContext = ECollectionContextPlaylists;
                 break;
-            case EMPXGenre:
-                iContext = ECollectionContextGenres;
-                break;
         }
     }
     else if ( containerType == EMPXItem ) {
         switch (containerCategory) {
             case EMPXArtist:
-                iContext = ECollectionContextArtistAlbums;
-                break;
-            case EMPXAlbum:
-                iContext = ECollectionContextAlbumSongs;
+                if ( iMediaArray->Count() > 1 ) {
+                    iContext = ECollectionContextArtistAlbums;
+                }
+                else {
+                    // Single album. Go directly to TBone.
+                    iContext = ECollectionContextArtistAlbumsTBone;
+                }
                 break;
             case EMPXSong:
-                iContext = ECollectionContextArtistSongs;
+                // All songs for an artist
+                iContext = ECollectionContextArtistAllSongs;
                 break;
             case EMPXPlaylist:
                 iContext = ECollectionContextPlaylistSongs;
                 break;
-            case EMPXGenre:
-                iContext = ECollectionContextGenreSongs;
-                break;
         }
     }
     TX_EXIT
@@ -511,8 +810,23 @@
 /*!
  \internal
  */
-const CMPXMedia& MpMpxCollectionDataPrivate::containerMedia()
+void MpMpxCollectionDataPrivate::DoSetAlbumContentL( const CMPXMedia& albumContent )
 {
-    return *iContainerMedia;
+    TX_ENTRY
+    CMPXMediaArray* songArray(const_cast<CMPXMediaArray*>( albumContent.Value<CMPXMediaArray>(
+                    KMPXMediaArrayContents ) ) );
+    User::LeaveIfNull( songArray );
+
+    // Save the songs to the album so that we don't need to find them again
+    // if the same album is selected again.
+    iAlbumSongCount = songArray->Count();
+
+    if ( iAlbumSongCount ) {
+        CMPXMedia* albumMedia( iMediaArray->AtL( iCurrentAlbumIndex ) );
+        albumMedia->SetCObjectValueL(KMPXMediaArrayContents, songArray);
+        albumMedia->SetTObjectValueL<TInt>(KMPXMediaArrayCount, iAlbumSongCount);
+    }
+    TX_EXIT
 }
 
+
--- a/mpdata/src/mpplaybackdata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/src/mpplaybackdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,10 +15,10 @@
 *
 */
 
-#include <qicon>
-#include <qstring>
-#include <qpixmap>
-#include <qpainter>
+#include <QIcon>
+#include <QString>
+#include <QPixmap>
+#include <QPainter>
 #include <hbicon.h>
 #include <thumbnailmanager_qt.h>
 
@@ -74,23 +74,23 @@
     Constructs a new MpPlaybackData.
  */
 MpPlaybackData::MpPlaybackData( QObject *parent )
-    : QObject(parent),
-      mThumbnailManager(0),
-      mReqId(KUndefined),
+    : QObject( parent ),
+      mThumbnailManager( new ThumbnailManager( this ) ),
+      mReqId( KUndefined ),
       mDuration(0),
       mPosition(0),
-      mAlbumArt(),
-      mPlaybackState(Stopped)
+      mAlbumId(0),
+      mId(0),
+      mAlbumArt( "qtg_large_music_album" ),
+      mDefaultAlbumArt( "qtg_large_music_album" ),
+      mPlaybackState( NotPlaying ),
+      mRealAudio( false )
 {
     TX_ENTRY
-    mThumbnailManager = new ThumbnailManager(this);
-    mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
-    mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
-    connect( mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
-             this, SLOT(thumbnailReady(QPixmap, void *, int, int)) );
-
-    //TODO: Change to final resource when available
-    mDefaultAlbumArt =  new HbIcon("qtg_large_music");
+    mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality );
+    mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailLarge );
+    connect( mThumbnailManager, SIGNAL( thumbnailReady(QPixmap, void *, int, int ) ),
+             this, SLOT(thumbnailReady( QPixmap, void *, int, int ) ) );
     TX_EXIT
 }
 
@@ -175,9 +175,16 @@
 {
     TX_ENTRY_ARGS( "artist = " << artist )
     bool change = false;
-    if ( artist != mArtist ) {
+    // data is different or mArtist was not set befor or it was reset.
+    // When artist is empty and mArtist is empty mArtist should be unknown text.
+    if ( artist != mArtist || mArtist.isNull()) {
         change = true;
-        mArtist = artist;
+        if ( artist.isEmpty() ){
+            mArtist = hbTrId( "txt_mus_other_unknown3" );      
+        }
+        else {
+            mArtist = artist;
+        }
     }
     TX_EXIT
     return change;
@@ -199,9 +206,16 @@
 {
     TX_ENTRY_ARGS( "album = " << album )
     bool change = false;
-    if ( album != mAlbum ) {
+    // data is different or mAlbum was not set befor or it was reset.
+    // when album is empty and mAlbum is empty mAlbum should be unknown text.
+    if ( album != mAlbum || mAlbum.isNull() ) {
         change = true;
-        mAlbum = album;
+        if ( album.isEmpty() ){
+            mAlbum = hbTrId( "txt_mus_other_unknown4" );
+        }
+        else{
+            mAlbum = album;            
+        }
     }
     TX_EXIT
     return change;
@@ -275,16 +289,75 @@
 void MpPlaybackData::albumArt( HbIcon& icon ) const
 {
     TX_ENTRY
-    if ( mAlbumArt->isNull() ) {
-        icon = HbIcon();
-     }
-     else {
-        icon = *mAlbumArt ;
-     }
+    icon = mAlbumArt ;
     TX_EXIT
 }
 
 /*!
+ Sets the song's album \a id, returns true if the value is new.
+*/
+bool MpPlaybackData::setAlbumId( int id )
+{
+    bool change = false;
+    if (mAlbumId != id) {
+        mAlbumId = id;
+        change = true;
+    }
+    return change;
+}
+
+/*!
+ Returns the id of the album to which the song belongs.
+*/
+int MpPlaybackData::albumId()
+{
+    return mAlbumId;
+}
+
+/*!
+ Sets the song's \a id, returns true if the value is new.
+*/
+bool MpPlaybackData::setId( int id )
+{
+    bool change = false;
+    if (mId != id) {
+        mId = id;
+        change = true;
+    }
+    return change;
+}
+
+/*!
+ Returns the id the song.
+*/
+int MpPlaybackData::id()
+{
+    return mId;
+}
+/*!
+Set Real Audio \a mode.
+*/
+bool MpPlaybackData::setRealAudio( bool mode )
+{
+    TX_ENTRY
+    bool change = false;
+    if (mRealAudio != mode) {
+        mRealAudio = mode;
+        change = true;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Returns the mode of Real Audio.
+*/
+bool MpPlaybackData::realAudio()
+{
+    return mRealAudio;
+}
+
+/*!
  Sets the playback \a state.
 */
 void MpPlaybackData::setPlaybackState( const SimplifiedState state )
@@ -317,6 +390,28 @@
 }
 
 /*!
+ Resets the data, currently called when source is removed.
+*/
+void MpPlaybackData::resetData()
+{
+    mDuration = 0;
+    mPosition = 0;
+    mTitle = QString();
+    mAlbum = QString();
+    mArtist = QString();
+    mUri = QString();
+    mAlbumId = 0;
+    mId = 0;
+    mAlbumArt = HbIcon();
+    mRealAudio = false;
+    
+    emit durationChanged();
+    emit positionChanged();
+    emit albumArtReady();
+    emit playbackInfoChanged();
+}
+
+/*!
  Slot to handle the album art thumb.
 */
 void MpPlaybackData::thumbnailReady(
@@ -345,7 +440,7 @@
         }
         
         
-        mAlbumArt = new HbIcon(qicon);
+        mAlbumArt = HbIcon(qicon);
         
         emit albumArtReady();
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/src/mpsongdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,777 @@
+/*
+* 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: Playback Data provider for playback view.
+*
+*/
+
+
+#include <QString>
+#include <QPixmap>
+#include <QPainter>
+#include <QBuffer>
+#include <QPixmap>
+#include <QTime>
+#include <hbicon.h>
+#include <QIcon>
+#include <QFile>
+
+#include <thumbnailmanager_qt.h>
+#include <thumbnaildata.h>
+#include <thumbnailobjectsource.h>
+
+#include "mpsongdata.h"
+#include "mptrace.h"
+
+const int KUndefined = -1;
+
+/*!
+    \class MpSongData
+    \brief Music Player song metadata.
+
+    Song data provide acces to current playing song metadata
+*/
+    
+/*!
+    \fn void albumArtReady()
+
+    This signal is albuma alrt is ready.
+ */
+
+/*!
+    \fn void playbackInfoChanged()
+
+    This signal is emitted when basic information is available
+ */
+    
+/*!
+    \fn void songDetailInfoChanged()
+
+    This signal is emitted when detail information is available
+ */
+    
+       
+
+/*!
+    Constructs a new MpSongData.
+ */
+MpSongData::MpSongData( QObject *parent )
+    : QObject( parent ),
+      mAlbumArt(),
+      mReqId( KUndefined )
+{
+    TX_ENTRY
+    mThumbnailManager = new ThumbnailManager( this );
+    mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality );
+    mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailMedium );
+    QObject::connect( mThumbnailManager, SIGNAL( thumbnailReady( QPixmap , void * , int , int ) ),
+            this, SLOT( thumbnailReady( QPixmap , void * , int , int  ) ) );
+
+    mDefaultAlbumArt = new HbIcon( "qtg_large_music_album" );
+    TX_EXIT
+}
+
+/*!
+ Constructs a new MpSongData.
+ */
+MpSongData::~MpSongData()
+{
+    TX_ENTRY
+    if( mThumbnailManager ) {
+        delete mThumbnailManager;
+    }
+    removeAlbumArtFile(); // TODO Remove when base64 is working
+    TX_EXIT
+}
+
+/*!
+ Returns the song album art on \a pixmap.
+*/
+void MpSongData::albumArt( HbIcon& icon ) const
+{
+    TX_ENTRY
+     if (  !mAlbumArt || mAlbumArt->isNull() ) {
+         TX_LOG_ARGS( "Album art is NULL." );
+         icon = HbIcon();
+     } else {
+         TX_LOG_ARGS( "Album art is not NULL." );
+         icon = *mAlbumArt ;
+     }
+    TX_EXIT
+}
+
+
+/*!
+ Returns the song title.
+*/
+QString MpSongData::title() const
+{
+    TX_LOG
+    return mTitle;
+}
+
+/*!
+ Returns the song album.
+*/
+QString MpSongData::album() const
+{
+    TX_LOG
+    return mAlbum;
+}
+
+/*!
+ Returns the song artist.
+*/
+QString MpSongData::artist() const
+{
+    TX_LOG
+    return mArtist;
+}
+
+/*!
+ Returns comment
+*/
+QString MpSongData::comment() const
+{
+    TX_LOG
+    return mComment;
+}
+
+/*!
+ Returns the song composer.
+*/
+QString MpSongData::composer() const
+{
+    TX_LOG
+    return mComposer;
+}
+
+
+/*!
+ Returns the song genre.
+*/
+QString MpSongData::genre() const
+{
+    TX_LOG
+    return mGenre;
+}
+
+
+/*!
+ Returns the album track.
+*/
+QString MpSongData::albumTrack() const
+{
+    TX_LOG
+    return mAlbumTrack;
+}
+
+/*!
+ Returns link
+*/
+QString MpSongData::link() const
+{
+    TX_LOG
+    return mLink;
+}
+
+/*!
+ Returns the release date.
+*/
+QString MpSongData::year() const
+{
+    TX_LOG    
+    return mYear;
+}
+
+/*!
+ Returns the file name
+*/
+QString MpSongData::fileName() const
+{
+    TX_LOG    
+    return mFileName;
+}
+
+/*!
+ Returns the MIME type
+*/
+QString MpSongData::mimeType() const
+{
+    TX_LOG    
+    return mMimeType;   
+}
+
+/*!
+ Returns the duration
+*/
+QString MpSongData::duration() const
+{
+    TX_LOG    
+    return mDuration;  
+}
+
+/*!
+ Returns the bit rate
+*/
+QString MpSongData::bitRate() const
+{
+    TX_LOG    
+    return mBitRate;  
+}
+
+/*!
+ Returns the sampling rate
+*/
+QString MpSongData::sampleRate() const
+{
+    TX_LOG    
+    return mSampleRate;  
+}
+
+/*!
+ Returns the size
+*/
+QString MpSongData::size() const
+{
+    TX_LOG    
+    return mSize;  
+}
+
+/*!
+ Returns the size
+*/
+QString MpSongData::modified() const
+{
+    TX_LOG    
+    return mModified;  
+}
+
+/*!
+ Returns the copy right
+*/
+QString MpSongData::copyright() const
+{
+    TX_LOG    
+    return mCopyright;  
+}
+
+/*!
+ Returns the music URL
+*/
+QString MpSongData::musicURL() const
+{
+    TX_LOG    
+    return mMusicURL;  
+}
+
+/*!
+ Returns whether the song is protected
+*/
+bool MpSongData::isDrmProtected() const
+{
+    TX_LOG    
+    return mDrmProtected;
+}
+
+/*!
+ Sets the song \a title, returns true if the value is new.
+*/
+bool MpSongData::setTitle( const QString &title )
+{
+    TX_ENTRY_ARGS( "title =" << title )
+    bool change = false;
+    if ( title != mTitle ) {
+        change = true;
+        mTitle = title;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a album, returns true if the value is new.
+*/
+bool MpSongData::setAlbum( const QString &album )
+{
+    TX_ENTRY_ARGS( "album =" << album )
+    bool change = false;
+    if ( album != mAlbum ) {
+        change = true;
+        mAlbum = album;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a artist, returns true if the value is new.
+*/
+bool MpSongData::setArtist( const QString &artist )
+{
+    TX_ENTRY_ARGS( "artist =" << artist )
+    bool change = false;
+    if ( artist != mArtist ) {
+        change = true;
+        mArtist = artist;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a comment, returns true if the value is new.
+*/
+bool MpSongData::setComment( const QString &comment)
+{
+    TX_ENTRY_ARGS( "comment =" << comment )
+    bool change = false;
+    if ( comment != mComment ) {
+        change = true;
+        mComment = comment;
+    }
+    TX_EXIT
+    return change;
+}
+
+
+/*!
+ Sets the song \a composer, returns true if the value is new.
+*/
+bool MpSongData::setComposer( const QString &composer )
+{
+    TX_ENTRY_ARGS( "composer =" << composer )
+    bool change = false;
+    if ( composer != mComposer ) {
+        change = true;
+        mComposer = composer;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a genre, returns true if the value is new.
+*/
+bool MpSongData::setGenre( const QString &genre )
+{
+    TX_ENTRY_ARGS( "genre =" << genre )
+    bool change = false;
+    if ( genre != mGenre ) {
+        change = true;
+        mGenre = genre;
+    }
+    TX_EXIT
+    return change;
+}
+
+
+/*!
+ Sets the song \a date, returns true if the value is new.
+*/
+bool MpSongData::setYear( int year )
+{
+    TX_ENTRY_ARGS( "year =" << year )
+    bool change = false;
+    if ( QString::number(year) != mYear ) {
+        change = true;
+        if ( year >= 0 && year < 9999 ) {
+            mYear = QString::number(year);
+        } else {
+            mYear = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a album track, returns true if the value is new.
+*/
+bool MpSongData::setAlbumTrack( const QString &track )
+{
+    TX_ENTRY_ARGS( "track =" << track )
+    bool change = false;
+    if ( track != mAlbumTrack ) {
+        change = true;
+        mAlbumTrack = track;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a link
+*/
+void MpSongData::setLink( const QString &link )
+{
+    TX_ENTRY_ARGS( "Link =" << link )
+    mLink = link;
+    TX_EXIT
+}
+
+/*!
+ Sets the song \a albumArtUri.
+*/
+void MpSongData::setAlbumArtUri( const QString &albumArtUri)
+{
+    TX_ENTRY_ARGS( "albumArtUri = " << albumArtUri )
+    if ( !albumArtUri.isEmpty() ) {
+        TX_LOG_ARGS( "There is album art" );
+        bool ok = true;
+        if ( mReqId != KUndefined ) {
+            // There is already an outstanding request. Cancel it first.
+            bool ok = mThumbnailManager->cancelRequest( mReqId );
+        }
+        if ( ok ) {
+            mReqId = mThumbnailManager->getThumbnail( albumArtUri );
+            if ( mReqId == KUndefined ) {
+                // Request failed. Set default album art.
+                mAlbumArt = mDefaultAlbumArt;
+                emit albumArtReady();
+            }
+        }
+    }
+    else {
+        // No album art uri. Set default album art.
+        TX_LOG_ARGS( "There is No album art" );
+        mAlbumArt = mDefaultAlbumArt;
+        emit albumArtReady();
+    }
+    TX_EXIT
+}
+
+/*!
+ Sets the \a file name
+*/
+bool MpSongData::setFileName( const QString &fileName )
+{
+    TX_ENTRY_ARGS( "File name =" << fileName )
+    bool change = false;
+    if ( fileName != mFileName ) {
+        change = true;
+        mFileName = fileName;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a MIME type
+*/
+bool MpSongData::setMimeType( const QString &mimeType )
+{    
+    TX_ENTRY_ARGS( "Mime =" << mimeType )
+    bool change = false;
+    if ( mimeType != mMimeType ) {
+        change = true;
+        mMimeType = mimeType;
+    }
+    TX_EXIT
+    return change;    
+}
+
+/*!
+ Sets the \a duration
+*/
+bool MpSongData::setDuration( int duration )
+{   
+    TX_ENTRY_ARGS( "Duration =" << duration )
+    bool change = false;
+    QString timeFormatOne("%1:%2:%3");
+    QString timeFormatTwo("%1:%2");
+    if ( QString::number( duration ) != mDuration ) {
+        change = true;
+        if ( duration >= 3600 ) {
+            // more than one hours
+            QString hourStr, minStr, secStr;
+            int hour = duration / 3600;
+            int min = duration % 3600 / 60;
+            int sec = duration % 3600 % 60;
+            
+            hourStr = hour >= 10 ? QString::number( hour ) : QString::number( hour ).prepend( "0" );
+            minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" );
+            secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" );            
+            mDuration = timeFormatOne.arg( hourStr ).arg( minStr ).arg( secStr );
+        } else if ( duration >= 60 && duration < 3600 ) {
+            // more than one min && less than one hour
+            QString minStr, secStr;
+            int min = duration / 60;
+            int sec = duration % 60;
+            
+            minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" );
+            secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" );     
+            mDuration = timeFormatTwo.arg( minStr ).arg( secStr );
+        } else if ( duration > 0 && duration < 60 ) {
+            QString secStr;
+            secStr = duration >= 10 ? QString::number( duration ) : QString::number( duration ).prepend( "0" ); 
+            mDuration = secStr;
+        } else {
+            mDuration = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets bit rate
+*/
+bool MpSongData::setBitRate( int bitRate)
+{
+    TX_ENTRY_ARGS( "Bit rate =" << bitRate )
+    bool change = false;
+    if ( QString::number( bitRate ) != mBitRate ) {
+        change = true;
+        if ( bitRate > 0 ) {
+            mBitRate = QString::number( bitRate / 1000 );
+        } else {
+            mBitRate = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets sample rate
+*/
+bool MpSongData::setSampleRate( int sampleRate )
+{
+    TX_ENTRY_ARGS( "Sample rate =" << sampleRate )
+    bool change = false;
+    if ( QString::number( sampleRate ) != mSampleRate ) {
+        change = true;
+        if ( sampleRate > 0 ) {
+            mSampleRate = QString::number( sampleRate );
+        } else {
+            mSampleRate = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a size
+*/
+bool MpSongData::setSize( int size )
+{   
+    TX_ENTRY_ARGS( "Size =" << size )
+    bool change = false;
+    if ( QString::number( size ) != mSize ) {
+        change = true;
+        mSize = QString::number( size / 1000 );
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a modification information
+*/
+bool MpSongData::setModified( const QString &modified )
+{
+    TX_ENTRY_ARGS( "Modified =" << modified )
+    bool change = false;
+    if ( modified != mModified ) {
+        change = true;
+        mModified = modified;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a copyright information
+*/
+bool MpSongData::setCopyright( const QString &copyright )
+{
+    TX_ENTRY_ARGS( "Copyright =" << copyright )
+    bool change = false;
+    if ( copyright != mCopyright ) {
+        change = true;
+        mCopyright = copyright;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a music URL
+*/
+bool MpSongData::setMusicURL( const QString &musicURL )
+{
+    TX_ENTRY_ARGS( "Music URL =" << musicURL )
+    bool change = false;
+    if ( musicURL != mMusicURL ) {
+        change = true;
+        mMusicURL = musicURL;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Set whether the song is DRM protected
+*/
+bool MpSongData::setDrmProtected( bool drmProtected )
+{
+    TX_ENTRY_ARGS( "DRM protected =" << drmProtected )
+    bool change = false;
+    if ( drmProtected != mDrmProtected ) {
+        change = true;
+        mDrmProtected = drmProtected;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Slot to handle the album art thumb.
+*/
+void MpSongData::thumbnailReady(
+        const QPixmap& pixmap,
+        void *data,
+        int id,
+        int error  )
+{
+    TX_ENTRY
+    Q_UNUSED( data );
+    if ( error == 0 && mReqId == id ) {
+        QIcon qicon;
+        QPixmap mCompositePixmap;
+        mReqId = KUndefined;
+        
+        mCompositePixmap = QPixmap( 360, 360 );
+        mCompositePixmap.fill( Qt::transparent );
+        QPainter painter(&mCompositePixmap);
+        painter.setCompositionMode(QPainter::CompositionMode_Clear);
+        painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
+        painter.fillRect(mCompositePixmap.rect(), Qt::transparent);
+        painter.drawPixmap(QRect(0, 0,360,360), pixmap);
+        
+        if ( !mCompositePixmap.isNull() ) {
+            qicon = QIcon( mCompositePixmap );
+        }
+        else {
+            qicon = QIcon( pixmap );
+        }
+        
+        if ( mAlbumArt == mDefaultAlbumArt ) {        
+            TX_LOG_ARGS( "Album art is default album art." )
+            delete mAlbumArt; 
+            mAlbumArt = new HbIcon(qicon);
+            mDefaultAlbumArt = new HbIcon( "qtg_large_music_album" );
+        } else {
+            TX_LOG_ARGS( "Album art is NOT default album art." )
+            delete mAlbumArt;
+            mAlbumArt = new HbIcon(qicon);
+        }       
+                
+        emit albumArtReady();
+    }
+    else {
+        mReqId = KUndefined;
+        mAlbumArt = mDefaultAlbumArt;
+        emit albumArtReady();
+    }
+
+    TX_EXIT
+}
+
+/*!
+ Emit signal when playback information changed, such as artist, track name
+*/
+void MpSongData::commitPlaybackInfo()
+{
+    TX_ENTRY
+    emit playbackInfoChanged();
+    TX_EXIT
+}
+
+/*!
+ Emit signal when song detail information changed
+*/
+void MpSongData::commitSongDetailInfo()
+{
+    TX_ENTRY
+    emit songDetailInfoChanged();
+    TX_EXIT
+}
+
+/*!
+ Retrieve the album art in base64 encoding suitable for inline HTML display for sharing player.
+ */
+QString MpSongData::albumArtBase64() const
+{
+    /*
+    // Converts the current album art icon to a base64 string, and return the string.
+    TX_LOG
+    if ( mAlbumArt->isNull() ) {
+        TX_ENTRY_ARGS( "MpSongData: album art isNull" )
+        return "nullimgcraptoberemoved";
+    }
+    TX_ENTRY_ARGS("MpSongData: album art exists");
+    QByteArray array;
+    QBuffer buffer( &array );
+    buffer.open( QIODevice::WriteOnly );
+    mAlbumArt->pixmap().save( &buffer, "PNG" ); // writes pixmap into bytes in PNG format
+    buffer.close();
+    QString result = array.toBase64().constData();
+    TX_ENTRY_ARGS("MpSongData: album art base64 length: " << result.length());
+    return result;
+    */
+    // TODO: this is temporary solution until base64 defect in QT is fixed.
+    TX_LOG
+    QByteArray array;
+
+    // Remove old album art in case new one cannot be written.
+    removeAlbumArtFile();
+
+    QString sTimeStamp = QTime::currentTime().toString( "hhmmsszzz" );
+    QString sTempFileLocation = QString( "e:\\album_art_%1.png" ).arg( sTimeStamp );
+
+    ( ( MpSongData* ) this )->mTempAlbumArt = sTempFileLocation;
+    TX_LOG_ARGS( "Create album art file " << mTempAlbumArt );
+
+    QFile file( mTempAlbumArt );
+    file.open( QIODevice::WriteOnly );
+    if ( mAlbumArt && !mAlbumArt->isNull() && !mAlbumArt->qicon().isNull() )
+    {
+        QPixmap p = mAlbumArt->qicon().pixmap( QSize( 74, 74 ), QIcon::Normal, QIcon::Off );
+        p.save( &file, "PNG" );
+        //mAlbumArt->pixmap().save( &file, "PNG" ); // writes pixmap into bytes in PNG format
+    }
+    file.close();
+    return mTempAlbumArt;
+}
+
+/*!
+ Delete temporary album art file.
+ */
+void MpSongData::removeAlbumArtFile() const
+{
+    TX_ENTRY
+    if ( !mTempAlbumArt.isEmpty() )
+    {
+        TX_LOG_ARGS( "Remove album art file " << mTempAlbumArt );
+        QFile::remove( mTempAlbumArt );
+        ( ( MpSongData* ) this )->mTempAlbumArt = "";
+    }
+    else
+    {
+        TX_LOG_ARGS( "Album art filename is empty" );
+    }
+    TX_EXIT
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,22 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpcollectionalbumartmanager \
+          unittest_mpmpxcollectiondata \
+          unittest_mpcollectiontbonelistdatamodel
+
--- a/mpdata/tsrc/unittest_mpcollectionalbumartmanager/inc/unittest_mpcollectionalbumartmanager.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectionalbumartmanager/inc/unittest_mpcollectionalbumartmanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -56,6 +56,7 @@
     void testCacheFirstScreen();
     void testCacheFirstScreenAllCached();
     void testCancel();
+    void testSetThumbnailSize();
     void testThumbnailReadyCache();
     void testThumbnailReadyCacheError();
     void testThumbnailReadyAlbumArt();
--- a/mpdata/tsrc/unittest_mpcollectionalbumartmanager/src/unittest_mpcollectionalbumartmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectionalbumartmanager/src/unittest_mpcollectionalbumartmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,8 +16,6 @@
 */
 
 #include <QSignalSpy>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
 #include <hbicon.h>
 
 #include "unittest_mpcollectionalbumartmanager.h"
@@ -34,19 +32,21 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
+    QApplication app(argc, argv);
 
     TestMpCollectionAlbumArtManager tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpcollectionalbumartmanager.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpcollectionalbumartmanager.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpCollectionAlbumArtManager::TestMpCollectionAlbumArtManager()
@@ -254,6 +254,24 @@
 }
 
 /*!
+ Tests setThumbnailSize().
+ */
+void TestMpCollectionAlbumArtManager::testSetThumbnailSize()
+{
+    mTest->mThumbnailManager->mThumbSize = ThumbnailManager::ThumbnailUndefined;
+    
+    mTest->setThumbnailSize(MpCommon::ListThumb);
+    QCOMPARE(mTest->mThumbnailManager->mThumbSize,  ThumbnailManager::ThumbnailSmall);
+    
+    mTest->setThumbnailSize(MpCommon::TBoneThumb);
+    QCOMPARE(mTest->mThumbnailManager->mThumbSize,  ThumbnailManager::ThumbnailMedium); 
+    
+    mTest->setThumbnailSize(MpCommon::MediaWallThumb);
+    QCOMPARE(mTest->mThumbnailManager->mThumbSize,  ThumbnailManager::ThumbnailLarge);
+    
+}
+
+/*!
  Tests thumbnailReady() slot.
  Tests completion of cacheFirstScreen() request.
  */
--- a/mpdata/tsrc/unittest_mpcollectionalbumartmanager/stub/inc/thumbnailmanager_qt.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectionalbumartmanager/stub/inc/thumbnailmanager_qt.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,8 +18,8 @@
 #ifndef THUMBNAILMANAGER_QT_H
 #define THUMBNAILMANAGER_QT_H
 
-#include <qobject>
-#include <QPixmap.h>
+#include <QObject>
+#include <QPixmap>
 
 
 /** default priority value */
@@ -36,9 +36,13 @@
     enum ThumbnailSize
     {
         /**
+         * Undefined, only for test verification
+         */
+        ThumbnailUndefined = 0,
+        /**
          * Small thumbnail
          */
-        ThumbnailSmall = 0,
+        ThumbnailSmall,
         /**
          * Medium thumbnail
          */
@@ -120,9 +124,10 @@
 
 public:
 
-    bool    mGetThumbFails;
-    int     mThumbnailReqCounter;
-    int     mCancelCounter;
+    bool          mGetThumbFails;
+    int           mThumbnailReqCounter;
+    int           mCancelCounter;
+    ThumbnailSize mThumbSize;
 
 };
 
--- a/mpdata/tsrc/unittest_mpcollectionalbumartmanager/stub/src/thumbnailmanager_qt.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectionalbumartmanager/stub/src/thumbnailmanager_qt.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,7 +15,7 @@
 *
 */
 
-#include <qsize.h>
+#include <QSize>
 #include "stub/inc/thumbnailmanager_qt.h"
 
 int gInitCounter = 0;
@@ -44,7 +44,8 @@
 QObject( parentPtr ),
 mGetThumbFails(false),
 mThumbnailReqCounter(0),
-mCancelCounter(0)
+mCancelCounter(0),
+mThumbSize(ThumbnailManager::ThumbnailUndefined)
 {
     gInitCounter++;
 }
@@ -81,7 +82,7 @@
  */
 bool ThumbnailManager::setThumbnailSize( ThumbnailSize thumbnailSize )
 {
-    Q_UNUSED(thumbnailSize);
+    mThumbSize = thumbnailSize;
     return true;
 }
 
--- a/mpdata/tsrc/unittest_mpcollectionalbumartmanager/unittest_mpcollectionalbumartmanager.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectionalbumartmanager/unittest_mpcollectionalbumartmanager.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,10 +14,11 @@
 # Description: Unit test for mpcollectionalbumartmanager
 #
 
-
 TEMPLATE = app
 CONFIG += qtestlib hb
-TARGET = 
+CONFIG += symbian_test
+TARGET = unittest_mpcollectionalbumartmanager
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
--- a/mpdata/tsrc/unittest_mpcollectionalbumartmanager/unittest_mpcollectionalbumartmanager_template.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-; unittest_mpcollectionalbumartmanager_template.pkg generated by qmake at 2010-04-05T18:18:57
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"unittest_mpcollectionalbumartmanager"},(0xE48c0263),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-; Manual PKG pre-rules from PRO files
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
- 
-; Default dependency to Qt libraries
-(0x2001E61C), , , , {"Qt"}
-
-; Executable and default resource files
-"/epoc32/release/$(PLATFORM)/$(TARGET)/unittest_mpcollectionalbumartmanager.exe"    - "!:\sys\bin\unittest_mpcollectionalbumartmanager.exe"
-"/epoc32/data/z/resource/apps/unittest_mpcollectionalbumartmanager.rsc"    - "!:\resource\apps\unittest_mpcollectionalbumartmanager.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpcollectionalbumartmanager_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpcollectionalbumartmanager_reg.rsc"
-
-; Manual PKG post-rules from PRO files
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/inc/unittest_mpcollectiondatamodel.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectiondatamodel/inc/unittest_mpcollectiondatamodel.h	Thu Jul 22 16:32:33 2010 +0100
@@ -37,7 +37,6 @@
 signals:
 
     void updateAlbumArt( int index );
-    void albumCacheReady();
 
 public slots:
 
@@ -50,7 +49,6 @@
 
     void testMemberCleanup();
     void testRefreshModel();
-    void testRefreshModelZeroCount();
     void testCollectionData();
     void testDataAllSongs();
     void testDataAllSongsNoData();
@@ -58,12 +56,14 @@
     void testDataArtistsNoData();
     void testDataArtistAlbums();
     void testDataArtistAlbumsNoData();
-    void testDataArtistSongs();
-    void testDataArtistSongsNoData();
+    void testDataArtistAlbumsTBone();
+    void testDataArtistAlbumsTBoneNoData();
+    void testDataArtistAllSongs();
+    void testDataArtistAllSongsNoData();
     void testDataAlbums();
     void testDataAlbumsNoData();
-    void testDataAlbumSongs();
-    void testDataAlbumSongsNoData();
+    void testDataAlbumsTBone();
+    void testDataAlbumsTBoneNoData();
     void testDataPlaylists();
     void testDataPlaylistsNoData();
     void testDataPlaylistSongs();
@@ -75,6 +75,7 @@
     void testMimeTypes();
     void testMimeData();
     void testDropMimeData();
+    void testSetContext();
 
 private:
 
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/src/unittest_mpcollectiondatamodel.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectiondatamodel/src/unittest_mpcollectiondatamodel.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -36,17 +36,12 @@
 #include "mpcollectiondatamodel.h"
 #undef private
 
-// Init cache size defined in mpcollectiondatamodel.cpp
-const int KInitCacheSize = 11;
-
 /*!
  Make our test case a stand-alone executable that runs all the test functions.
  */
 int main(int argc, char *argv[])
 {
     HbApplication app(argc, argv);
-    HbMainWindow window;
-
     TestMpCollectionDataModel tv;
 
     char *pass[3];
@@ -113,6 +108,7 @@
     mTest = new MpCollectionDataModel(mStubData);
     MpMpxCollectionData::resetItemDataCounter();
     mTest->mCollectionData->mItemDataReturn = true;
+    mTest->mCollectionData->mCollectionTitleReturn = true;
 }
 
 /*!
@@ -150,26 +146,32 @@
     // - It sets correct row count
     QCOMPARE(mTest->mRowCount, 100);
     QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 1);
-    // Stub QAbstractListModel to verify call to reset()
-    mTest->mCollectionData->mCount = 100;
+
+    mTest->mCollectionData->mCount = 50;
     mTest->mCollectionData->mContext = ECollectionContextArtistAlbums;
     mTest->refreshModel();
     // Verify that:
     // - It sets correct row count
-    QCOMPARE(mTest->mRowCount, 100);
+    QCOMPARE(mTest->mRowCount, 50);
     QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 2);
-}
-
-/*!
- Tests refreshModel() request with empty data model.
- */
-void TestMpCollectionDataModel::testRefreshModelZeroCount()
-{
-    mTest->mCollectionData->mCount = 0;
+    
+    mTest->mCollectionData->mCount = 150;
+    mTest->mCollectionData->mContext = ECollectionContextAlbumsMediaWall;
     mTest->refreshModel();
     // Verify that:
     // - It sets correct row count
-    QCOMPARE(mTest->mRowCount, 0);
+    QCOMPARE(mTest->mRowCount, 150);
+    QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 3);
+
+
+    mTest->mCollectionData->mCount = 200;
+    mTest->mCollectionData->mContext = ECollectionContextAllSongs;
+    mTest->refreshModel();
+    // Verify that:
+    // - It sets correct row count
+    // - It shouldn't trigger first screen cache
+    QCOMPARE(mTest->mRowCount, 200);
+    QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 3);
 }
 
 /*!
@@ -196,18 +198,16 @@
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 2);
-    QCOMPARE(dataList.at(0), QString("Title"));
-    QCOMPARE(dataList.at(1), QString("Artist"));
+    QCOMPARE(dataList.at(0), QString("Title1"));
+    QCOMPARE(dataList.at(1), QString("Artist1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-    
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
-    
-    
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
@@ -217,8 +217,8 @@
 {
     mTest->mCollectionData->mCount = 100;
     mTest->mRowCount = 100;
+    mTest->mCollectionData->mItemDataReturn = false;
     mTest->mCollectionData->mContext = ECollectionContextAllSongs;
-    mTest->mCollectionData->mItemDataReturn = false;
 
     QModelIndex modelIndex = mHelper->indexFor(1);
 
@@ -233,7 +233,7 @@
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-    
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
     QCOMPARE(data.toString(), QString(""));
@@ -255,15 +255,15 @@
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 1);
-    QCOMPARE(dataList.at(0), QString("Title"));
+    QCOMPARE(dataList.at(0), QString("Title1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
@@ -273,8 +273,8 @@
 {
     mTest->mCollectionData->mCount = 100;
     mTest->mRowCount = 100;
+    mTest->mCollectionData->mItemDataReturn = false;
     mTest->mCollectionData->mContext = ECollectionContextArtists;
-    mTest->mCollectionData->mItemDataReturn = false;
 
     QModelIndex modelIndex = mHelper->indexFor(1);
 
@@ -284,19 +284,19 @@
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 1);
     QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
-    
+
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
     QCOMPARE(data.toString(), QString(""));
 }
 
 /*!
- Tests data() request for Artist Albums context.
+ Tests data() request for ArtistAlbums context.
  */
 void TestMpCollectionDataModel::testDataArtistAlbums()
 {
@@ -311,26 +311,26 @@
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 1);
-    QCOMPARE(dataList.at(0), QString("Title"));
+    QCOMPARE(dataList.at(0), QString("Title1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.userType(), QMetaType::type("QIcon"));
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
- Tests data() request for Artist Albums context with no data available.
+ Tests data() request for ArtistAlbums context with no data available.
  */
 void TestMpCollectionDataModel::testDataArtistAlbumsNoData()
 {
     mTest->mCollectionData->mCount = 100;
     mTest->mRowCount = 100;
+    mTest->mCollectionData->mItemDataReturn = false;
     mTest->mCollectionData->mContext = ECollectionContextArtistAlbums;
-    mTest->mCollectionData->mItemDataReturn = false;
 
     QModelIndex modelIndex = mHelper->indexFor(1);
 
@@ -340,25 +340,25 @@
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 1);
     QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
-    
+
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.userType(), QMetaType::type("QIcon"));
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
     QCOMPARE(data.toString(), QString(""));
 }
 
 /*!
- Tests data() request for Artist Songs context.
+ Tests data() request for ArtistAlbumsTBone context.
  */
-void TestMpCollectionDataModel::testDataArtistSongs()
+void TestMpCollectionDataModel::testDataArtistAlbumsTBone()
 {
     mTest->mCollectionData->mCount = 100;
     mTest->mRowCount = 100;
-    mTest->mCollectionData->mContext = ECollectionContextArtistSongs;
+    mTest->mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
 
     QModelIndex modelIndex = mHelper->indexFor(1);
 
@@ -367,26 +367,76 @@
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 2);
-    QCOMPARE(dataList.at(0), QString("Title"));
-    QCOMPARE(dataList.at(1), QString("Album"));
+    QCOMPARE(dataList.at(0), QString("Title1"));
+    QCOMPARE(dataList.at(1), QString("CollectionTitle"));
+
+    // Qt::DecorationRole
+    data = mTest->data(modelIndex, Qt::DecorationRole);
+    QCOMPARE(data.userType(), QMetaType::type("QIcon"));
+}
+
+/*!
+ Tests data() request for ArtistAlbumsTBone context with no data available.
+ */
+void TestMpCollectionDataModel::testDataArtistAlbumsTBoneNoData()
+{
+    mTest->mCollectionData->mCount = 100;
+    mTest->mRowCount = 100;
+    mTest->mCollectionData->mItemDataReturn = false;
+    mTest->mCollectionData->mCollectionTitleReturn = false;
+    mTest->mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
+
+    QModelIndex modelIndex = mHelper->indexFor(1);
+
+    // Qt::DisplayRole
+    QVariant data = mTest->data(modelIndex, Qt::DisplayRole);
+    QCOMPARE(data.canConvert(QVariant::StringList), true);
+    QStringList dataList = data.toStringList();
+    QCOMPARE(dataList.count(), 2);
+    QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
+    QCOMPARE(dataList.at(1), hbTrId("txt_mus_other_unknown3"));
+
+    // Qt::DecorationRole
+    data = mTest->data(modelIndex, Qt::DecorationRole);
+    QCOMPARE(data.userType(), QMetaType::type("QIcon"));
+}
+
+/*!
+ Tests data() request for ArtistAllSongs context.
+ */
+void TestMpCollectionDataModel::testDataArtistAllSongs()
+{
+    mTest->mCollectionData->mCount = 100;
+    mTest->mRowCount = 100;
+    mTest->mCollectionData->mContext = ECollectionContextArtistAllSongs;
+
+    QModelIndex modelIndex = mHelper->indexFor(1);
+
+    // Qt::DisplayRole
+    QVariant data = mTest->data(modelIndex, Qt::DisplayRole);
+    QCOMPARE(data.canConvert(QVariant::StringList), true);
+    QStringList dataList = data.toStringList();
+    QCOMPARE(dataList.count(), 2);
+    QCOMPARE(dataList.at(0), QString("Title1"));
+    QCOMPARE(dataList.at(1), QString("Album1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
- Tests data() request for Artists context with no data available.
+ Tests data() request for ArtistAllSongs context with no data available.
  */
-void TestMpCollectionDataModel::testDataArtistSongsNoData()
+void TestMpCollectionDataModel::testDataArtistAllSongsNoData()
 {
     mTest->mCollectionData->mCount = 100;
     mTest->mRowCount = 100;
-    mTest->mCollectionData->mContext = ECollectionContextArtistSongs;
+    mTest->mCollectionData->mContext = ECollectionContextArtistAllSongs;
     mTest->mCollectionData->mItemDataReturn = false;
 
     QModelIndex modelIndex = mHelper->indexFor(1);
@@ -397,19 +447,18 @@
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 2);
     QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
-    QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
-    
+    QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown3"));
+
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
     QCOMPARE(data.toString(), QString(""));
 }
 
-
 /*!
  Tests data() request for Albums context.
  */
@@ -426,16 +475,16 @@
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 2);
-    QCOMPARE(dataList.at(0), QString("Title"));
-    QCOMPARE(dataList.at(1), QString("Artist"));
+    QCOMPARE(dataList.at(0), QString("Title1"));
+    QCOMPARE(dataList.at(1), QString("Artist1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.userType(), QMetaType::type("QIcon"));
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
@@ -461,20 +510,20 @@
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.userType(), QMetaType::type("QIcon"));
-        
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
     QCOMPARE(data.toString(), QString(""));
 }
 
 /*!
- Tests data() request for AlbumSongs context.
+ Tests data() request for AlbumsTBone context.
  */
-void TestMpCollectionDataModel::testDataAlbumSongs()
+void TestMpCollectionDataModel::testDataAlbumsTBone()
 {
     mTest->mCollectionData->mCount = 100;
     mTest->mRowCount = 100;
-    mTest->mCollectionData->mContext = ECollectionContextAlbumSongs;
+    mTest->mCollectionData->mContext = ECollectionContextAlbumsTBone;
 
     QModelIndex modelIndex = mHelper->indexFor(1);
 
@@ -482,26 +531,27 @@
     QVariant data = mTest->data(modelIndex, Qt::DisplayRole);
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
-    QCOMPARE(dataList.count(), 1);
-    QCOMPARE(dataList.at(0), QString("Title"));
+    QCOMPARE(dataList.count(), 2);
+    QCOMPARE(dataList.at(0), QString("Title1"));
+    QCOMPARE(dataList.at(1), QString("Artist1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
-    QCOMPARE(data.isNull(), true);
-    
+    QCOMPARE(data.userType(), QMetaType::type("QIcon"));
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
- Tests data() request for AlbumSongs context with no data available.
+ Tests data() request for AlbumsTBone context with no data available.
  */
-void TestMpCollectionDataModel::testDataAlbumSongsNoData()
+void TestMpCollectionDataModel::testDataAlbumsTBoneNoData()
 {
     mTest->mCollectionData->mCount = 100;
     mTest->mRowCount = 100;
-    mTest->mCollectionData->mContext = ECollectionContextAlbumSongs;
+    mTest->mCollectionData->mContext = ECollectionContextAlbumsTBone;
     mTest->mCollectionData->mItemDataReturn = false;
 
     QModelIndex modelIndex = mHelper->indexFor(1);
@@ -510,8 +560,13 @@
     QVariant data = mTest->data(modelIndex, Qt::DisplayRole);
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
-    QCOMPARE(dataList.count(), 1);
+    QCOMPARE(dataList.count(), 2);
     QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
+    QCOMPARE(dataList.at(1), hbTrId("txt_mus_other_unknown3"));
+
+    // Qt::DecorationRole
+    data = mTest->data(modelIndex, Qt::DecorationRole);
+    QCOMPARE(data.userType(), QMetaType::type("QIcon"));
 
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
@@ -534,15 +589,15 @@
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 1);
-    QCOMPARE(dataList.at(0), QString("Title"));
+    QCOMPARE(dataList.at(0), QString("Title1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-    
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
@@ -563,7 +618,7 @@
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 1);
     QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
-    
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
     QCOMPARE(data.toString(), QString(""));
@@ -585,16 +640,16 @@
     QCOMPARE(data.canConvert(QVariant::StringList), true);
     QStringList dataList = data.toStringList();
     QCOMPARE(dataList.count(), 2);
-    QCOMPARE(dataList.at(0), QString("Title"));
-    QCOMPARE(dataList.at(1), QString("Artist"));
+    QCOMPARE(dataList.at(0), QString("Title1"));
+    QCOMPARE(dataList.at(1), QString("Artist1"));
 
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-    
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
-    QCOMPARE(data.toString(), QString("Title"));
+    QCOMPARE(data.toString(), QString("Title1"));
 }
 
 /*!
@@ -620,7 +675,7 @@
     // Qt::DecorationRole
     data = mTest->data(modelIndex, Qt::DecorationRole);
     QCOMPARE(data.isNull(), true);
-    
+
     // Hb::IndexFeedbackRole
     data = mTest->data(modelIndex, Hb::IndexFeedbackRole);
     QCOMPARE(data.toString(), QString(""));
@@ -679,18 +734,18 @@
     MpMpxCollectionData::resetItemDataCounter();
     mTest->mCollectionData->mCount = 2;
     mTest->mRowCount = 2;
-    
+
     QVERIFY(!mTest->removeRows(0,0,QModelIndex())); //no rows to remove.
     QVERIFY(!mTest->removeRows(0,2,QModelIndex())); //more than one row.
     QVERIFY(!mTest->removeRows(2,1,QModelIndex())); //row out of bounds.
-    
+
     //a valid row to be removed.
     QVERIFY(mTest->removeRows(0,1,QModelIndex()));
     QCOMPARE(spy.count(), 1);
     QCOMPARE(spy2.count(), 1);
     QCOMPARE(MpMpxCollectionData::getremoveItemCounter(), 1);
     QCOMPARE(mTest->mRowCount, 1);
-    
+
 }
 
 /*!
@@ -715,7 +770,7 @@
     QMimeData *data;
     data = mTest->mimeData(indexList);
     QVERIFY(data); //one item row 2
-    
+
     QByteArray encoded = data->data(QLatin1String("application/x-mpcollectiondatamodelrowandids"));
     QDataStream stream(&encoded, QIODevice::ReadOnly);
     int rowFrom;
@@ -737,7 +792,7 @@
     int indexFrom = 5;
     int containerId = 123;
     int itemId = 20;
-    
+
     QSignalSpy spy(mTest, SIGNAL(rowsAboutToBeInserted(QModelIndex, int, int)));
     QSignalSpy spy2(mTest, SIGNAL(rowsInserted(QModelIndex, int, int)));
     QSignalSpy spy3(mTest, SIGNAL(orderChanged(int, int, int, int)));
@@ -762,8 +817,8 @@
 
     QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex()));
     delete data;
-    }    
-    
+    }
+
     {//drop row out of bounds
     QMimeData *data = new QMimeData();
     QByteArray encoded;
@@ -777,8 +832,8 @@
 
     QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,15,0,QModelIndex()));
     delete data;
-    }    
-    
+    }
+
     {//incorrect action
     QMimeData *data = new QMimeData();
     QByteArray encoded;
@@ -792,8 +847,8 @@
 
     QVERIFY(!mTest->dropMimeData(data,Qt::IgnoreAction,0,0,QModelIndex()));
     delete data;
-    }    
-    
+    }
+
     {//bad item ids
     QMimeData *data = new QMimeData();
     QByteArray encoded;
@@ -804,8 +859,8 @@
     mTest->mRowCount = 2;
     QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex()));
     delete data;
-    }  
-    
+    }
+
     {//bad item ids 2
     QMimeData *data = new QMimeData();
     QByteArray encoded;
@@ -818,8 +873,8 @@
     mTest->mRowCount = 2;
     QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex()));
     delete data;
-    } 
-    
+    }
+
     {//data with bad format
     QMimeData *data = new QMimeData();
     QByteArray encoded;
@@ -829,11 +884,11 @@
     stream << itemId;
     data->setData(QLatin1String("application/x-blabla"), encoded);
     MpMpxCollectionData::setCachedItemId(itemId);
-    mTest->mRowCount = 10;        
+    mTest->mRowCount = 10;
     QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex()));
     delete data;
-    }    
-     
+    }
+
     QMimeData *data = new QMimeData();
     QByteArray encoded;
     QDataStream stream(&encoded, QIODevice::WriteOnly);
@@ -843,16 +898,16 @@
     data->setData(QLatin1String("application/x-mpcollectiondatamodelrowandids"), encoded);
     MpMpxCollectionData::setCachedItemId(0);
     mTest->mRowCount = 10;
-    
+
     // not matching item id
     QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex()));
-   
+
     //matching item id
     MpMpxCollectionData::setCachedItemId(itemId);
 
-    
+
     QVERIFY(mTest->dropMimeData(data,Qt::MoveAction,5,0,QModelIndex()));
-    delete data;    
+    delete data;
     QCOMPARE(spy.count(), 1);
     QCOMPARE(spy2.count(), 1);
     QCOMPARE(spy3.count(), 1);
@@ -864,5 +919,51 @@
     QCOMPARE(MpMpxCollectionData::getInsertCachedItemCounter(),1);
 }
 
+/*!
+ Tests setContext()
+ */
+void TestMpCollectionDataModel::testSetContext()
+{
+    mTest->mCollectionData->setContext(ECollectionContextArtistAlbums);
+    QCOMPARE(mTest->mCollectionData->mContext, ECollectionContextArtistAlbums);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::ListThumb);
+
+    mTest->mCollectionData->mCount = 3;
+    mTest->mCollectionData->setContext(ECollectionContextArtistAlbumsTBone);
+    QCOMPARE(mTest->mCollectionData->mContext, ECollectionContextArtistAlbumsTBone);
+    QCOMPARE(mTest->mAlbumIndexOffset, 1);
+    QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::TBoneThumb);
+
+    mTest->mCollectionData->mCount = 1;
+    mTest->mCollectionData->setContext(ECollectionContextArtistAlbumsTBone);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::TBoneThumb);
+
+    mTest->mCollectionData->setContext(ECollectionContextAlbums);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::ListThumb);
+
+    mTest->mCollectionData->setContext(ECollectionContextAlbumsTBone);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::TBoneThumb);
+
+    mTest->mCollectionData->setContext(ECollectionContextAlbumsMediaWall);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::MediaWallThumb);
+
+    // All other context should have index set to zero.
+    mTest->mCollectionData->setContext(ECollectionContextAllSongs);
+    QCOMPARE(mTest->mCollectionData->mContext, ECollectionContextAllSongs);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    mTest->mCollectionData->setContext(ECollectionContextArtists);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    mTest->mCollectionData->setContext(ECollectionContextArtistAllSongs);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    mTest->mCollectionData->setContext(ECollectionContextPlaylists);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+    mTest->mCollectionData->setContext(ECollectionContextPlaylistSongs);
+    QCOMPARE(mTest->mAlbumIndexOffset, 0);
+}
 
 // End of file
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/inc/mpcollectionalbumartmanager.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/inc/mpcollectionalbumartmanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -22,6 +22,8 @@
 #include <QObject>
 #include <QIcon>
 
+#include "mpcommondefs.h"
+
 class MpMpxCollectionData;
 
 class MpCollectionAlbumArtManager : public QObject
@@ -41,6 +43,7 @@
     const QIcon* albumArt( int index );
     void cacheFirstScreen();
     void cancel();
+    void setThumbnailSize( MpCommon::MpThumbType type );
 
 signals:
 
@@ -48,9 +51,10 @@
 
 public:
 
-    QIcon       *mIcon;
-    int         mAlbumArtCount;
-    int         mCacheAlbumArtCount;
+    QIcon                   *mIcon;
+    int                     mAlbumArtCount;
+    int                     mCacheAlbumArtCount;
+    MpCommon::MpThumbType   mThumbType;
 
 };
 
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/inc/mpmpxcollectiondata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/inc/mpmpxcollectiondata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -47,20 +47,25 @@
     static void setCachedItemId (int id);
     static int getInsertCachedItemCounter();
     static void resetInsertCachedItemCounter();
-    
+
     // Stub functions
     explicit MpMpxCollectionData( QObject *parent=0 );
     virtual ~MpMpxCollectionData();
 
     TCollectionContext context() const;
+
     int count() const;
+    QString collectionTitle() const;
     QString itemData( int index, MpMpxCollectionData::DataType type ) const;
+
     int containerId();
     int itemId(int index);
     void removeItem(int index);
     bool testCachedItem( int itemId );
     void insertCachedItem(int index);
 
+    void setContext( TCollectionContext context );
+
 signals:
 
     void contextChanged( TCollectionContext context );
@@ -70,6 +75,7 @@
     TCollectionContext      mContext;
     int                     mCount;
     bool                    mItemDataReturn;
+    bool                    mCollectionTitleReturn;
 
 };
 
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/src/mpcollectionalbumartmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/src/mpcollectionalbumartmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -86,3 +86,12 @@
 void MpCollectionAlbumArtManager::cancel()
 {
 }
+
+/*!
+ Stub function.
+ */
+void MpCollectionAlbumArtManager::setThumbnailSize( MpCommon::MpThumbType type )
+{
+    mThumbType = type;
+}
+
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/src/mpmpxcollectiondata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectiondatamodel/stub/src/mpmpxcollectiondata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -107,7 +107,8 @@
     : QObject(parent),
       mContext(ECollectionContextUnknown),
       mCount(0),
-      mItemDataReturn(true)
+      mItemDataReturn(true),
+      mCollectionTitleReturn(true)
 {
     gInitCounter++;
 }
@@ -139,6 +140,19 @@
 /*!
  Stub function.
  */
+QString MpMpxCollectionData::collectionTitle() const
+{
+    if ( mCollectionTitleReturn ) {
+        return QString("CollectionTitle");
+    }
+    else {
+        return QString();
+    }
+}
+
+/*!
+ Stub function.
+ */
 QString MpMpxCollectionData::itemData( int index, MpMpxCollectionData::DataType type ) const
 {
     if ( index < 0 || index > mCount ) {
@@ -153,18 +167,23 @@
     switch ( type ) {
         case MpMpxCollectionData::Title:
             data = QString("Title");
+            data.append( QString().setNum(index) );
             break;
         case MpMpxCollectionData::Artist:
             data = QString("Artist");
+            data.append( QString().setNum(index) );
             break;
         case MpMpxCollectionData::Album:
             data = QString("Album");
+            data.append( QString().setNum(index) );
             break;
         case MpMpxCollectionData::Count:
             data = QString("Count");
+            data.append( QString().setNum(index) );
             break;
         case MpMpxCollectionData::AlbumArtUri:
             data = QString("AlbumArtUri");
+            data.append( QString().setNum(index) );
             break;
         default:
             qFatal("MpMpxCollectionData::itemData called with unknown type");
@@ -184,7 +203,7 @@
 /*!
  Stub function.
  */
-int MpMpxCollectionData::itemId(int index)
+int MpMpxCollectionData::itemId( int index )
 {
     return 2000+index;
 }
@@ -192,7 +211,7 @@
 /*!
  Stub function.
  */
-void MpMpxCollectionData::removeItem(int index)
+void MpMpxCollectionData::removeItem( int index )
 {
     Q_UNUSED(index);
     gRemoveItemCount++;
@@ -210,10 +229,20 @@
 /*!
  Stub function.
  */
-void MpMpxCollectionData::insertCachedItem(int index)
+void MpMpxCollectionData::insertCachedItem( int index )
 {
     Q_UNUSED(index);
     gInsertCachedItemCount++;
     return ;
 }
 
+/*!
+ Stub function.
+ */
+void MpMpxCollectionData::setContext( TCollectionContext context )
+{
+    mContext = context;
+    emit contextChanged(mContext);
+    return ;
+}
+
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/unittest_mpcollectiondatamodel.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpcollectiondatamodel/unittest_mpcollectiondatamodel.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -25,6 +25,7 @@
     ../../inc \
     ../../../inc
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH(hgwidgets)
 
 LIBS += -lestor.dll \
         -lfbscli.dll
--- a/mpdata/tsrc/unittest_mpcollectiondatamodel/unittest_mpcollectiondatamodel_template.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-; unittest_mpcollectiondatamodel_template.pkg generated by qmake at 2010-04-05T18:50:04
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"unittest_mpcollectiondatamodel"},(0xE05e4948),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-; Manual PKG pre-rules from PRO files
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
- 
-; Default dependency to Qt libraries
-(0x2001E61C), , , , {"Qt"}
-
-; Executable and default resource files
-"/epoc32/release/$(PLATFORM)/$(TARGET)/unittest_mpcollectiondatamodel.exe"    - "!:\sys\bin\unittest_mpcollectiondatamodel.exe"
-"/epoc32/data/z/resource/apps/unittest_mpcollectiondatamodel.rsc"    - "!:\resource\apps\unittest_mpcollectiondatamodel.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpcollectiondatamodel_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpcollectiondatamodel_reg.rsc"
-
-; Manual PKG post-rules from PRO files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpcollectiontbonelistdatamodel/inc/unittest_helper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Unit test helper for mpcollectiondatamodel
+*
+*/
+
+#ifndef TESTHELPER_H
+#define TESTHELPER_H
+
+#include <QAbstractListModel>
+
+class TestHelper : public QAbstractListModel
+{
+    Q_OBJECT
+
+public:
+
+    TestHelper(QObject *parent=0);
+    virtual ~TestHelper();
+
+    // These are dummy; We have to inherit from QAbstractListModel so that
+    // we can invoke the protected member QAbstractItemModel::createIndex()
+    int rowCount(const QModelIndex &parent=QModelIndex()) const;
+    QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const;
+
+    QModelIndex indexFor(int index);
+};
+
+#endif  // TESTHELPER_H
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpcollectiontbonelistdatamodel/inc/unittest_mpcollectiontbonelistdatamodel.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,69 @@
+/*
+* 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: Unit test for mpcollectiontbonelistdatamodel
+*
+*/
+
+#ifndef TESTMPCOLLECTIONTBONELISTDATAMODEL_H
+#define TESTMPCOLLECTIONTBONELISTDATAMODEL_H
+
+#include <QtTest/QtTest>
+
+class QTranslator;
+class MpCollectionTBoneListDataModel;
+class MpMpxCollectionData;
+class TestHelper;
+
+class TestMpCollectionTBoneListDataModel : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpCollectionTBoneListDataModel();
+    virtual ~TestMpCollectionTBoneListDataModel();
+
+signals:
+
+    void updateAlbumArt( int index );
+
+public slots:
+
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+
+    void testMemberCleanup();
+    void testRefreshModel();
+    void testData();
+    void testDataNoData();
+    void testDataAnyOtherRole();
+
+private:
+
+    MpCollectionTBoneListDataModel  *mTest;
+    TestHelper                      *mHelper;
+    MpMpxCollectionData             *mStubData;
+    QTranslator                     *mMpTranslator; // Own
+
+};
+
+#endif  // TESTMPCOLLECTIONTBONELISTDATAMODEL_H
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpcollectiontbonelistdatamodel/src/unittest_helper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* 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: Unit test helper for TestHelper
+*
+*/
+
+#include "unittest_helper.h"
+
+
+TestHelper::TestHelper(QObject *parent)
+    : QAbstractListModel(parent)
+{
+}
+
+TestHelper::~TestHelper()
+{
+}
+
+/*!
+ Dummy function to satisfy QAbstractListModel inheritance.
+ */
+int TestHelper::rowCount( const QModelIndex &parent ) const
+{
+    Q_UNUSED(parent);
+    return 0;
+}
+
+/*!
+ Dummy function to satisfy QAbstractListModel inheritance.
+ */
+QVariant TestHelper::data(const QModelIndex &index, int role) const
+{
+    Q_UNUSED(index);
+    Q_UNUSED(role);
+    return QVariant();
+}
+
+/*!
+ Slot to be called when album art for the \a index needs to be updated.
+ */
+QModelIndex TestHelper::indexFor(int index)
+{
+    return QAbstractItemModel::createIndex(index, 0);
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpcollectiontbonelistdatamodel/src/unittest_mpcollectiontbonelistdatamodel.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,190 @@
+/*
+* 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: Unit test for mpcollectiontbonelistdatamodel
+*
+*/
+
+#include <QAbstractItemModel>
+#include <QSignalSpy>
+#include <QMetaType>
+#include <QTranslator>
+#include <QLocale>
+
+#include <hbicon.h>
+#include <hbnamespace.h>
+
+#include "unittest_mpcollectiontbonelistdatamodel.h"
+#include "unittest_helper.h"
+#include "stub/inc/mpmpxcollectiondata.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpcollectiontbonelistdatamodel.h"
+#undef private
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    TestMpCollectionTBoneListDataModel tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpcollectiontbonelistdatamodel.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+
+TestMpCollectionTBoneListDataModel::TestMpCollectionTBoneListDataModel()
+    : mTest(0),
+      mHelper(0),
+      mStubData(0),
+      mMpTranslator(0)
+{
+}
+
+TestMpCollectionTBoneListDataModel::~TestMpCollectionTBoneListDataModel()
+{
+    delete mTest;
+    delete mHelper;
+    delete mStubData;
+    delete mMpTranslator;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpCollectionTBoneListDataModel::initTestCase()
+{
+    QString lang = QLocale::system().name();
+    QString path = QString("z:/resource/qt/translations/");
+    bool translatorLoaded = false;
+
+    mMpTranslator = new QTranslator(this);
+    translatorLoaded = mMpTranslator->load(path + "musicplayer_" + lang);
+    if ( translatorLoaded ) {
+        qApp->installTranslator(mMpTranslator);
+    }
+
+    mStubData = new MpMpxCollectionData();
+    mHelper = new TestHelper();
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpCollectionTBoneListDataModel::cleanupTestCase()
+{
+    delete mStubData;
+    mStubData = 0;
+    delete mHelper;
+    mHelper = 0;
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpCollectionTBoneListDataModel::init()
+{
+    mTest = new MpCollectionTBoneListDataModel(mStubData);
+    mTest->mCollectionData->mItemDataReturn = true;
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpCollectionTBoneListDataModel::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+/*!
+ Tests correct cleanup of member variables.
+ */
+void TestMpCollectionTBoneListDataModel::testMemberCleanup()
+{
+    cleanup();
+    int count = MpMpxCollectionData::getInitCounter();
+    init();
+    cleanup();
+    QCOMPARE(MpMpxCollectionData::getInitCounter(), count);
+}
+
+/*!
+ Tests refreshModel() request.
+ */
+void TestMpCollectionTBoneListDataModel::testRefreshModel()
+{
+    mTest->mCollectionData->mAlbumSongCount = 10;
+    mTest->refreshModel();
+    QModelIndex modelIndex = mHelper->indexFor(1);
+    // Verify that:
+    // - It sets correct row count
+    QCOMPARE(mTest->rowCount(modelIndex), 10);
+}
+
+/*!
+ Tests data() request.
+ */
+void TestMpCollectionTBoneListDataModel::testData()
+{
+    QModelIndex modelIndex = mHelper->indexFor(1);
+
+    // Qt::DisplayRole
+    QVariant data = mTest->data(modelIndex, Qt::DisplayRole);
+    QCOMPARE(data.canConvert(QVariant::StringList), true);
+    QStringList dataList = data.toStringList();
+    QCOMPARE(dataList.count(), 1);
+    QCOMPARE(dataList.at(0), QString("Title1"));
+}
+
+/*!
+ Tests data() request with no data available.
+ */
+void TestMpCollectionTBoneListDataModel::testDataNoData()
+{
+    mTest->mCollectionData->mItemDataReturn = false;
+
+    QModelIndex modelIndex = mHelper->indexFor(1);
+
+    // Qt::DisplayRole
+    QVariant data = mTest->data(modelIndex, Qt::DisplayRole);
+    QCOMPARE(data.canConvert(QVariant::StringList), true);
+    QStringList dataList = data.toStringList();
+    QCOMPARE(dataList.count(), 1);
+    QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
+}
+
+/*!
+ Tests data() request for a role it doesn't support.
+ Make sure it doesn't crash.
+ */
+void TestMpCollectionTBoneListDataModel::testDataAnyOtherRole()
+{
+    QModelIndex modelIndex = mHelper->indexFor(1);
+
+    // Qt::DecorationRole
+    QVariant data = mTest->data(modelIndex, Qt::DecorationRole);
+    QCOMPARE(data.isValid(), false);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpcollectiontbonelistdatamodel/stub/inc/mpmpxcollectiondata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* 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: MpMpxCollectionData stub for testing MpCollectionDataModel
+*
+*/
+
+#ifndef MPMPXCOLLECTIONDATA_H
+#define MPMPXCOLLECTIONDATA_H
+
+#include <QObject>
+
+#include "mpmpxcollectionviewdefs.h"
+
+
+class MpMpxCollectionData : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    enum DataType {
+        Title,
+        Uri,
+        Duration,
+        Count,
+        Artist,
+        Album,
+        Genre,
+        Rating,
+        AlbumArtUri
+    };
+
+    // Test utility functions
+    static int getInitCounter();
+    static void resetInitCounter();
+
+    // Stub functions
+    explicit MpMpxCollectionData( QObject *parent=0 );
+    virtual ~MpMpxCollectionData();
+
+    int albumSongsCount() const;
+    QString albumSongData( int index, MpMpxCollectionData::DataType type ) const;
+
+signals:
+
+    void contextChanged( TCollectionContext context );
+    void refreshAlbumSongs();
+
+public:
+
+    int                     mAlbumSongCount;
+    bool                    mItemDataReturn;
+
+};
+
+#endif // MPMPXCOLLECTIONDATA_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpcollectiontbonelistdatamodel/stub/src/mpmpxcollectiondata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,89 @@
+/*
+* 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: MpMpxCollectionData stub for testing MpCollectionDataModel
+*
+*/
+
+#include "mptrace.h"
+#include "stub/inc/mpmpxcollectiondata.h"
+
+
+int gInitCounter = 0;
+
+/*!
+ Returns gInitCounter.
+ gInitCounter counts the number of constructor/destructor calls.
+ */
+int MpMpxCollectionData::getInitCounter()
+{
+    return gInitCounter;
+}
+
+/*!
+ Resets gInitCounter to zero.
+ */
+void MpMpxCollectionData::resetInitCounter()
+{
+    gInitCounter = 0;
+}
+
+
+/*!
+ Stub function.
+ */
+MpMpxCollectionData::MpMpxCollectionData( QObject *parent )
+    : QObject(parent),
+      mAlbumSongCount(0),
+      mItemDataReturn(true)
+{
+    gInitCounter++;
+}
+
+/*!
+ Stub function.
+ */
+MpMpxCollectionData::~MpMpxCollectionData()
+{
+    gInitCounter--;
+}
+
+/*!
+ Stub function.
+ */
+int MpMpxCollectionData::albumSongsCount() const
+{
+    return mAlbumSongCount;
+}
+
+/*!
+ Stub function.
+ */
+QString MpMpxCollectionData::albumSongData( int index, MpMpxCollectionData::DataType type ) const
+{
+    QString data;
+    if ( !mItemDataReturn ) {
+        return data;
+    }
+    switch ( type ) {
+        case MpMpxCollectionData::Title:
+            data = QString("Title");
+            data.append( QString().setNum(index) );
+            break;
+        default:
+            qFatal("MpMpxCollectionData::itemData called with unknown type");
+            break;
+    }
+    return data;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpcollectiontbonelistdatamodel/unittest_mpcollectiontbonelistdatamodel.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,45 @@
+#
+# 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: Unit test for mpcollectiontbonelistdatamodel
+#
+
+
+TEMPLATE = app
+CONFIG += qtestlib hb
+CONFIG += symbian_test
+TARGET = unittest_mpcollectiontbonelistdatamodel
+TARGET.CAPABILITY = CAP_APPLICATION
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+    stub/inc \
+    ../../inc \
+    ../../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+
+LIBS += -lestor.dll \
+        -lfbscli.dll
+
+HEADERS += inc/unittest_mpcollectiontbonelistdatamodel.h \
+           inc/unittest_helper.h \
+           stub/inc/mpmpxcollectiondata.h \
+           ../../../inc/mpcollectiontbonelistdatamodel.h \
+               
+SOURCES += src/unittest_mpcollectiontbonelistdatamodel.cpp \
+           src/unittest_helper.cpp \
+           stub/src/mpmpxcollectiondata.cpp \
+           ../../src/mpcollectiontbonelistdatamodel.cpp
+
+DEFINES += BUILD_MPDATA_LIB
+
--- a/mpdata/tsrc/unittest_mpmpxcollectiondata/inc/unittest_mpmpxcollectiondata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpmpxcollectiondata/inc/unittest_mpmpxcollectiondata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -19,6 +19,7 @@
 #define TESTMPMPXCOLLECTIONDATA_H
 
 #include <QtTest/QtTest>
+#include "mpmpxcollectionviewdefs.h"
 
 class MpMpxCollectionData;
 class MpMpxCollectionDataPrivate;
@@ -28,17 +29,19 @@
     Q_OBJECT
 
 public:
+
     TestMpMpxCollectionData();
     virtual ~TestMpMpxCollectionData();
 
+public slots:
 
-public slots:
     void initTestCase();
     void cleanupTestCase();
     void init();
     void cleanup();
 
 private slots:
+
     void testConstructor();
     void testContextRetrieval();
     void testCount();
@@ -54,8 +57,14 @@
     void testRemoveItem();
     void testTestCachedItem();
     void testInsertCachedItemItem();
-    
+    void testSetContext();
+    void testSetContextMediaWall();
+    void testSetAlbumContent();
+    void testSetCurrentAlbum();
+    void testAlbumSongData();
+
 private:
+
     MpMpxCollectionData         *mTest;
     MpMpxCollectionDataPrivate  *mTestPrivate;
 
--- a/mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,8 +17,6 @@
 
 #include <QSignalSpy>
 #include <QMetaType>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
 
 #include <apacmdln.h>
 #include <mpxmediamusicdefs.h>
@@ -46,45 +44,46 @@
 
 struct TTestAttrs
     {
+    const TInt GeneralId;
     const wchar_t* GeneralTitle;
     const wchar_t* MusicArtist;
     const TInt GeneralCount;
     const wchar_t* MusicAlbumArtFileName;
     };
-    
+
 const TTestAttrs KAllSongsTestData[] =
     {
-     { L"Title 1", L"Artist 1", 1, L"e:\\data\\images\\art1.jpg" }
-    ,{ L"Title 2", L"Artist 2", 1, L"e:\\data\\images\\art2.jpg" }
-    ,{ L"Title 3", L"Artist 3", 1, L"e:\\data\\images\\art3.jpg" }
-    ,{ L"Title 4", L"Artist 4", 1, L"e:\\data\\images\\art4.jpg" }
-    ,{ L"Title 5", L"Artist 5", 1, L"e:\\data\\images\\art5.jpg" }
-    ,{ L"Title 6", L"Artist 6", 1, L"e:\\data\\images\\art6.jpg" }
-    ,{ L"Title 7", L"Artist 7", 1, L"e:\\data\\images\\art7.jpg" }
-    ,{ L"Title 8", L"Artist 8", 1, L"e:\\data\\images\\art8.jpg" }
-    ,{ L"Title 9", L"Artist 9", 1, L"e:\\data\\images\\art9.jpg" }
-    ,{ L"Title 10", L"Artist 10", 1, L"e:\\data\\images\\art10.jpg" }
+     { 1001, L"Title 1", L"Artist 1", 1, L"e:\\data\\images\\art1.jpg" }
+    ,{ 1002, L"Title 2", L"Artist 2", 1, L"e:\\data\\images\\art2.jpg" }
+    ,{ 1003, L"Title 3", L"Artist 3", 1, L"e:\\data\\images\\art3.jpg" }
+    ,{ 1004, L"Title 4", L"Artist 4", 1, L"e:\\data\\images\\art4.jpg" }
+    ,{ 1005, L"Title 5", L"Artist 5", 1, L"e:\\data\\images\\art5.jpg" }
+    ,{ 1006, L"Title 6", L"Artist 6", 1, L"e:\\data\\images\\art6.jpg" }
+    ,{ 1007, L"Title 7", L"Artist 7", 1, L"e:\\data\\images\\art7.jpg" }
+    ,{ 1008, L"Title 8", L"Artist 8", 1, L"e:\\data\\images\\art8.jpg" }
+    ,{ 1009, L"Title 9", L"Artist 9", 1, L"e:\\data\\images\\art9.jpg" }
+    ,{ 1010, L"Title 10", L"Artist 10", 1, L"e:\\data\\images\\art10.jpg" }
     };
-    
-    
+
+
 /*!
  Make our test case a stand-alone executable that runs all the test functions.
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
     TestMpMpxCollectionData tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpmpxcollectiondata.txt";
+    if ( argc > 1 ) {
+            return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmpxcollectiondata.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpMpxCollectionData::TestMpMpxCollectionData()
@@ -147,7 +146,6 @@
     QCOMPARE(mTest->context(), ECollectionContextPlaylistSongs);
 }
 
-
 /*!
  Tests count().
  */
@@ -155,9 +153,9 @@
 {
     mTestPrivate->iMediaArray = NULL;
     QCOMPARE(mTest->count(), 0);
-    
+
     CMPXMediaArray* array = CMPXMediaArray::NewL();
-    CleanupStack::PushL(array);   
+    CleanupStack::PushL(array);
     TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
     for (TInt i =0; i < count; i++) {
         mTestPrivate->iMediaArray = array;
@@ -182,7 +180,7 @@
 void TestMpMpxCollectionData::testCollectionTitle()
 {
     mTestPrivate->iContainerMedia = NULL;
-    QCOMPARE(mTest->collectionTitle(), QString());   
+    QCOMPARE(mTest->collectionTitle(), QString());
     RArray<TInt> supportedIds;
     CleanupClosePushL( supportedIds );
     supportedIds.AppendL( KMPXMediaIdMusic );
@@ -190,10 +188,10 @@
     CMPXMedia* entries = CMPXMedia::NewL(supportedIds.Array());
     CleanupStack::PopAndDestroy(&supportedIds);
     CleanupStack::PushL(entries);
-        
+
     mTestPrivate->iContainerMedia = entries;
     QCOMPARE(mTest->collectionTitle(), QString());
-    
+
     entries->SetTextValueL(KMPXMediaGeneralTitle, _L("All songs"));
 
     mTestPrivate->iContainerMedia = entries;
@@ -208,9 +206,9 @@
 void TestMpMpxCollectionData::testItemData()
 {
     CMPXMediaArray* array = CMPXMediaArray::NewL();
-    CleanupStack::PushL(array);   
+    CleanupStack::PushL(array);
     mTestPrivate->iMediaArray = array;
-        
+
     TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
     for (TInt i =0; i < count; i++) {
 
@@ -230,8 +228,7 @@
         const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicArtist));
         QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Artist), QString::fromUtf16( artist.Ptr(), artist.Length()));
 
-        //verification depends on language, just exercising the item.
-        QVERIFY(!mTest->itemData( i, MpMpxCollectionData::Count).isNull());
+        QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Count), QString().setNum(1));
 
         const TDesC& albumArtUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName));
         QCOMPARE(mTest->itemData( i, MpMpxCollectionData::AlbumArtUri), QString::fromUtf16( albumArtUri.Ptr(), albumArtUri.Length()));
@@ -250,28 +247,21 @@
     array->AppendL(*media);
     CleanupStack::PopAndDestroy(media);
     mTestPrivate->iMediaArray = array;
-    
+
     //Media without attributes.
     QVERIFY(mTest->itemData( count, MpMpxCollectionData::Title).isNull());
     QVERIFY(mTest->itemData( count, MpMpxCollectionData::Artist).isNull());
-    //verification depends on language, just exercising the item.
-    QVERIFY(!mTest->itemData( count, MpMpxCollectionData::Count).isNull());
+    QCOMPARE(mTest->itemData( count, MpMpxCollectionData::Count), QString().setNum(0));
     QVERIFY(mTest->itemData( count, MpMpxCollectionData::AlbumArtUri).isNull());
-    
+
     //Media with empty attributes.
     QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::Title).isNull());
     QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::Artist).isNull());
-    //verification depends on language, just exercising the item.
-    QVERIFY(!mTest->itemData( count + 1, MpMpxCollectionData::Count).isNull());
+    QCOMPARE(mTest->itemData( count + 1, MpMpxCollectionData::Count), QString().setNum(0));
     QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::AlbumArtUri).isNull());
 
-    /*Test Attributes that are not implemented yet.
-        Uri,
-        Duration,
-        Album,
-        Genre,
-        Rating,
-    */
+    // Test Attributes that are not implemented yet:
+    //     Uri, Duration, Album, Genre, Rating
     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Uri).isNull());
     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Duration).isNull());
     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Album).isNull());
@@ -283,11 +273,11 @@
 }
 
 /*!
- Tests isAutoPlaylis().
+ Tests isAutoPlaylist().
  */
 void TestMpMpxCollectionData::testIsAutoPlaylist()
 {
-    //if cotext is different than playlistsongs value returned should be false
+    //if context is different than playlistsongs value returned should be false
     QVERIFY(!mTest->isAutoPlaylist());
     RArray<TInt> supportedIds;
     CleanupClosePushL( supportedIds );
@@ -298,7 +288,7 @@
     CleanupStack::PushL(entries);
     CMPXMediaArray* array = CMPXMediaArray::NewL();
     CleanupStack::PushL(array);
-    
+
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXPlaylist);
     entries->SetTextValueL(KMPXMediaGeneralTitle, _L("My Test Playlist Songs"));
@@ -311,17 +301,16 @@
     QCOMPARE(spy.count(), 1);
     TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
     QCOMPARE(context, ECollectionContextPlaylistSongs);
-    QVERIFY(!mTest->isAutoPlaylist());  
-    
+    QVERIFY(!mTest->isAutoPlaylist());
+
     entries->SetTObjectValueL<TMPXGeneralNonPermissibleActions>(
                     KMPXMediaGeneralNonPermissibleActions, EMPXWrite);
     mTest->setMpxMedia(*entries);
     QCOMPARE(spy.count(), 2);
     context = qvariant_cast<TCollectionContext>(spy.at(1).at(0));
     QCOMPARE(context, ECollectionContextPlaylistSongs);
-    QVERIFY(mTest->isAutoPlaylist());  
+    QVERIFY(mTest->isAutoPlaylist());
     CleanupStack::PopAndDestroy(entries);
-
 }
 
 /*!
@@ -329,9 +318,9 @@
  */
 void TestMpMpxCollectionData::testIsAutoPlaylistWithIndex()
 {
-    //if cotext is different than playlists value returned should be false
+    // If context is different than playlists value returned should be false
     QVERIFY(!mTest->isAutoPlaylist(0));
-    
+
     RArray<TInt> supportedIds;
     CleanupClosePushL( supportedIds );
     supportedIds.AppendL( KMPXMediaIdMusic );
@@ -363,7 +352,7 @@
     entries->SetCObjectValueL(KMPXMediaArrayContents, array);
     entries->SetTObjectValueL<TInt>(KMPXMediaArrayCount, array->Count());
     CleanupStack::PopAndDestroy(array);
-        
+
     qRegisterMetaType<TCollectionContext>();
     QSignalSpy spy(mTest, SIGNAL(contextChanged(TCollectionContext)));
     mTest->setMpxMedia(*entries);
@@ -372,6 +361,7 @@
     QCOMPARE(context, ECollectionContextPlaylists);
     QVERIFY(!mTest->isAutoPlaylist( 0 ));
     QVERIFY(mTest->isAutoPlaylist( 1 ));
+    CleanupStack::PopAndDestroy(entries);
 }
 
 /*!
@@ -379,11 +369,9 @@
  */
 void TestMpMpxCollectionData::TestItemCountWithIndex()
 {
-
-
     CMPXMediaArray* array = CMPXMediaArray::NewL();
     CleanupStack::PushL(array);
-    
+
     CMPXMedia* media = CMPXMedia::NewL();
     CleanupStack::PushL(media);
     //no attributes
@@ -401,8 +389,7 @@
     media3->SetTObjectValueL<TInt>(KMPXMediaGeneralCount,20);
     array->AppendL(*media3);
     CleanupStack::PopAndDestroy(media3);
-    
-    
+
     mTestPrivate->iMediaArray=array;
     QCOMPARE(mTest->itemCount(0),0);
     QCOMPARE(mTest->itemCount(1),0);
@@ -417,7 +404,6 @@
  */
 void TestMpMpxCollectionData::testSetCollectionContextL()
 {
-    
     RArray<TInt> supportedIds;
     CleanupClosePushL( supportedIds );
     supportedIds.AppendL( KMPXMediaIdMusic );
@@ -426,141 +412,84 @@
     CleanupStack::PopAndDestroy(&supportedIds);
     CleanupStack::PushL(entries);
 
-
-    
-    /* FROM MPXDBPLUGIN.CPP
-    // All Songs
-    SetMediaGeneralAttributesL(aEntries, EMPXGroup, EMPXSong ...
-    ...
-    // All artists  
-    SetMediaGeneralAttributesL(aEntries, EMPXGroup, EMPXArtist ...
-    ...            
-    // All albums of an artist
-    SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXArtist ...
-    ...
-    // all songs for an artist
-    SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXSong ...
-    ...        
-    // all songs of an album for an artist
-    SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXAlbum ...
-    ...        
-    // All Albums
-    SetMediaGeneralAttributesL(aEntries, EMPXGroup, EMPXAlbum ...
-    ...
-    // All songs in one or multiple albums
-    SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXAlbum ...
-    ...       
-    // All playlists
-    SetMediaGeneralAttributesL(aEntries, EMPXGroup, EMPXPlaylist ...
-    ...
-    // All songs in a playlist
-    SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXPlaylist ...
-    ...     
-    // All genres
-    SetMediaGeneralAttributesL(aEntries, EMPXGroup, EMPXGenre ...
-    ...            
-    // All songs of a genre
-    SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXGenre ...
-    ...                    
-    // All composers
-    SetMediaGeneralAttributesL(aEntries, EMPXGroup, EMPXComposer ...
-    ...
-    // All songs of a composer
-    SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXComposer ...
-    */
-    
     // All Songs
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXSong);
     mTestPrivate->iContainerMedia = entries;
     mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextAllSongs);
-    
-    // All artists  
+    QCOMPARE(mTestPrivate->iContext, ECollectionContextAllSongs);
+
+    // All artists
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXArtist);
     mTestPrivate->iContainerMedia = entries;
     mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextUnknown);//not implemented because is not in use.
-    
+    QCOMPARE(mTestPrivate->iContext, ECollectionContextArtists);
+
     // All albums of an artist
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXArtist);
     mTestPrivate->iContainerMedia = entries;
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    CMPXMedia* media = CMPXMedia::NewL();
+    CleanupStack::PushL(media);
+    array->AppendL(*media);
+    CleanupStack::PopAndDestroy(media);
+    CMPXMedia* media2 = CMPXMedia::NewL();
+    CleanupStack::PushL(media2);
+    array->AppendL(*media2);
+    CleanupStack::PopAndDestroy(media2);
+    mTestPrivate->iMediaArray = array;
     mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextUnknown);//not implemented because is not in use.
-    
-    // all songs for an artist
+    QCOMPARE(mTestPrivate->iContext, ECollectionContextArtistAlbums);
+    mTestPrivate->iMediaArray = NULL;
+    CleanupStack::PopAndDestroy(array);
+
+    // All albums of an artist - Artist has only 1 album
+    entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
+    entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXArtist);
+    mTestPrivate->iContainerMedia = entries;
+    array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    CMPXMedia* media3 = CMPXMedia::NewL();
+    CleanupStack::PushL(media3);
+    array->AppendL(*media3);
+    CleanupStack::PopAndDestroy(media3);
+    mTestPrivate->iMediaArray = array;
+    mTestPrivate->SetCollectionContextL();
+    QCOMPARE(mTestPrivate->iContext, ECollectionContextArtistAlbumsTBone);
+    mTestPrivate->iMediaArray=NULL;
+    CleanupStack::PopAndDestroy(array);
+
+    // All songs for an artist
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXSong);
     mTestPrivate->iContainerMedia = entries;
     mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextUnknown);//not implemented because is not in use.
-    
-    // all songs of an album for an artist
-    entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
-    entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
-    mTestPrivate->iContainerMedia = entries;
-    mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextAlbumSongs);
-    
-    // All Albums
+    QCOMPARE(mTestPrivate->iContext, ECollectionContextArtistAllSongs);
+
+    // All albums
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
     mTestPrivate->iContainerMedia = entries;
     mTestPrivate->SetCollectionContextL();
     QCOMPARE(mTestPrivate->iContext,ECollectionContextAlbums);
 
-    // All songs in one or multiple albums
-    entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
-    entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
-    mTestPrivate->iContainerMedia = entries;
-    mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextAlbumSongs);
-    
     // All playlists
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXPlaylist);
     mTestPrivate->iContainerMedia = entries;
     mTestPrivate->SetCollectionContextL();
     QCOMPARE(mTestPrivate->iContext,ECollectionContextPlaylists);
-    
+
     // All songs in a playlist
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXPlaylist);
     mTestPrivate->iContainerMedia = entries;
     mTestPrivate->SetCollectionContextL();
     QCOMPARE(mTestPrivate->iContext,ECollectionContextPlaylistSongs);
-    
-    // All genres
-    entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
-    entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXGenre);
-    mTestPrivate->iContainerMedia = entries;
-    mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextGenres);//not in use and implementation could go away.
-    
-    // All songs of a genre
-    entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
-    entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXGenre);
-    mTestPrivate->iContainerMedia = entries;
-    mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextGenreSongs);///not in use and implementation could go away.
-    
-    // All composers
-    entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
-    entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXComposer);
-    mTestPrivate->iContainerMedia = entries;
-    mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextUnknown);//not implemented because is not in use.
-    
-    // All songs of a composer
-    entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
-    entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXComposer);
-    mTestPrivate->iContainerMedia = entries;
-    mTestPrivate->SetCollectionContextL();
-    QCOMPARE(mTestPrivate->iContext,ECollectionContextUnknown);//not implemented because is not in use.
-    
-    
+
     mTestPrivate->iContainerMedia = NULL;
     CleanupStack::PopAndDestroy(entries);
 }
@@ -570,8 +499,6 @@
  */
 void TestMpMpxCollectionData::testSetMpxMediaAllSongs()
 {
-
-
     RArray<TInt> supportedIds;
     CleanupClosePushL( supportedIds );
     supportedIds.AppendL( KMPXMediaIdMusic );
@@ -592,15 +519,15 @@
         array->AppendL(*media);
         CleanupStack::PopAndDestroy(media);
     }
-    
+
     entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
     entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXSong);
     entries->SetTextValueL(KMPXMediaGeneralTitle, _L("All songs"));
-   
+
     entries->SetCObjectValueL(KMPXMediaArrayContents, array);
     entries->SetTObjectValueL<TInt>(KMPXMediaArrayCount, array->Count());
     CleanupStack::PopAndDestroy(array);
- 
+
     qRegisterMetaType<TCollectionContext>();
     QSignalSpy spy(mTest, SIGNAL(contextChanged(TCollectionContext)));
     mTest->setMpxMedia(*entries);
@@ -624,7 +551,7 @@
     QCOMPARE( mTest->containerId(), containerId);
     delete container;
     mTestPrivate->iContainerMedia = 0;
-    
+
 }
 
 /*!
@@ -642,10 +569,10 @@
 
     item->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, itemId );
     QCOMPARE( mTest->itemId(0), itemId);
-    
+
     delete array;
     mTestPrivate->iMediaArray = 0;
-    
+
 }
 
 /*!
@@ -659,12 +586,12 @@
     CMPXMediaArray* array = CMPXMediaArray::NewL();
     array->AppendL(item);
     mTestPrivate->iMediaArray = array;
-    
+
     mTest->removeItem(0);
     QVERIFY( mTestPrivate->iCachedRemovedItem );
     QCOMPARE( int(mTestPrivate->iCachedRemovedItem->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId )), itemId );
     QCOMPARE( mTestPrivate->iMediaArray->Count(), 0 );
-    
+
     delete array;
     mTestPrivate->iMediaArray = 0;
 }
@@ -680,12 +607,12 @@
     mTestPrivate->iCachedRemovedItem = item;
     CMPXMediaArray* array = CMPXMediaArray::NewL();
     mTestPrivate->iMediaArray = array;
-    
+
     mTest->insertCachedItem(0);
     QCOMPARE( mTestPrivate->iMediaArray->Count(), 1 );
     QCOMPARE( int(mTestPrivate->iMediaArray->AtL( 0 )->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId )), itemId );
     QVERIFY( !mTestPrivate->iCachedRemovedItem );
-    
+
     delete array;
     mTestPrivate->iMediaArray = 0;
 }
@@ -697,15 +624,239 @@
 {
     int itemId = 147;
     CMPXMedia* item = CMPXMedia::NewL();
-    
+
+    // Test error case when iCachedRemovedItem is NULL. 
+    QVERIFY( !mTest->testCachedItem( itemId ) );
+
+    // Test error case when KMPXMediaGeneralId is not supported. 
     mTestPrivate->iCachedRemovedItem = item;
     QVERIFY( !mTest->testCachedItem( itemId ) );
-        
+
+    // Test good case.
     item->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, itemId );
     QVERIFY( mTest->testCachedItem( itemId ) );
-        
+
     delete mTestPrivate->iCachedRemovedItem;
     mTestPrivate->iCachedRemovedItem = 0;
 }
 
-//EOF
+/*!
+ Tests setContext().
+ */
+void TestMpMpxCollectionData::testSetContext()
+{
+    qRegisterMetaType<TCollectionContext>();
+    QSignalSpy spy(mTest, SIGNAL(contextChanged(TCollectionContext)));
+    mTest->setContext(ECollectionContextPlaylistSongs);
+    // Verify that:
+    // - contextChanged() signal is emitted
+    // - Context is changed
+    // - album index mapping is not cashed.
+    QCOMPARE(spy.count(), 1);
+    TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
+    QCOMPARE(context, ECollectionContextPlaylistSongs);
+    QCOMPARE(mTestPrivate->iContext, ECollectionContextPlaylistSongs);
+    QVERIFY(mTestPrivate->albumIdIndexMapping.isEmpty());
+}
+
+/*!
+ Tests setContext() for media wall use case.
+ Tests setContext() for media wall use case.
+*/ 
+void TestMpMpxCollectionData::testSetContextMediaWall()
+{
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
+    for (TInt i =0; i < count; i++) {
+        mTestPrivate->iMediaArray = array;
+        QCOMPARE(mTest->count(), i);
+        CMPXMedia* media = CMPXMedia::NewL();
+        CleanupStack::PushL(media);
+        media->SetTObjectValueL<TInt>(KMPXMediaGeneralId, KAllSongsTestData[i].GeneralId);
+        array->AppendL(*media);
+        CleanupStack::PopAndDestroy(media);
+    }
+    mTestPrivate->iMediaArray = array;
+    
+    qRegisterMetaType<TCollectionContext>();
+    QSignalSpy spy(mTest, SIGNAL(contextChanged(TCollectionContext)));
+    
+    mTest->setContext(ECollectionContextAlbumsMediaWall);
+    // Verify that:
+    // - contextChanged() signal is emitted
+    // - Context is changed
+    // - album index mapping is cashed.
+    // - album index mapping is cleared when changing context again.
+    QCOMPARE(spy.count(), 1);
+    TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
+    QCOMPARE(context, ECollectionContextAlbumsMediaWall);
+    QCOMPARE(mTestPrivate->iContext, ECollectionContextAlbumsMediaWall);
+    QVERIFY(!mTestPrivate->albumIdIndexMapping.isEmpty());
+    for (TInt i =0; i < count; i++) {
+        QCOMPARE(mTest->itemIndex(KAllSongsTestData[i].GeneralId),i);
+    }
+    mTest->setContext(ECollectionContextPlaylistSongs);
+    QVERIFY(mTestPrivate->albumIdIndexMapping.isEmpty());
+    CleanupStack::PopAndDestroy(array);
+}
+
+
+/*!
+ Tests setAlbumContent().
+ */
+void TestMpMpxCollectionData::testSetAlbumContent()
+{
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    CMPXMedia* media = CMPXMedia::NewL();
+    CleanupStack::PushL(media);
+    array->AppendL(*media);
+    CleanupStack::PopAndDestroy(media);
+
+    mTestPrivate->iMediaArray = array;
+    mTestPrivate->iCurrentAlbumIndex = 0;
+
+    CMPXMedia* albumContent = CMPXMedia::NewL();
+    CleanupStack::PushL(albumContent);
+    CMPXMediaArray* songArray = CMPXMediaArray::NewL();
+    CleanupStack::PushL(songArray);
+    TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
+    for (TInt i =0; i < count; i++) {
+        CMPXMedia* song = CMPXMedia::NewL();
+        CleanupStack::PushL(song);
+        songArray->AppendL(*song);
+        CleanupStack::PopAndDestroy(song);
+    }
+    albumContent->SetCObjectValueL(KMPXMediaArrayContents, songArray);
+    CleanupStack::PopAndDestroy(songArray);
+
+    // Verify that:
+    // - refreshAlbumSongs() signal is emitted
+    // - Album song count is updated correctly
+    QSignalSpy spy(mTest, SIGNAL(refreshAlbumSongs()));
+    mTest->setAlbumContent(*albumContent);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(mTest->albumSongsCount(), count);
+    QCOMPARE(mTestPrivate->iMediaArray->AtL(0)->ValueTObjectL<TInt>(KMPXMediaArrayCount), count);
+
+    CleanupStack::PopAndDestroy(albumContent);
+    mTestPrivate->iMediaArray = NULL;
+    CleanupStack::PopAndDestroy(array);
+}
+
+/*!
+ Tests setCurrentAlbum().
+ */
+void TestMpMpxCollectionData::testSetCurrentAlbum()
+{
+    QSignalSpy spy(mTest, SIGNAL(refreshAlbumSongs()));
+
+    // Create media array that doesn't have the album songs yet.
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    CMPXMedia* media = CMPXMedia::NewL();
+    CleanupStack::PushL(media);
+    array->AppendL(*media);
+    CleanupStack::PopAndDestroy(media);
+    mTestPrivate->iMediaArray = array;
+    mTestPrivate->iCurrentAlbumIndex = -1;
+
+    // Verify that:
+    // - refreshAlbumSongs() signal is NOT emitted
+    // - album index is set
+    // - availability is returned as false (this means that client
+    //   should initiate a find)
+    bool available = mTest->setCurrentAlbum(0);
+    QCOMPARE(available, false);
+    QCOMPARE(mTest->currentAlbumIndex(), 0);
+    QCOMPARE(spy.count(), 0);
+
+    // Now populate the media (album) with songs. This is basically
+    // simulating setAlbumContent().
+    CMPXMediaArray* songArray = CMPXMediaArray::NewL();
+    CleanupStack::PushL(songArray);
+    TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
+    for (TInt i =0; i < count; i++) {
+        CMPXMedia* media = CMPXMedia::NewL();
+        CleanupStack::PushL(media);
+        songArray->AppendL(*media);
+        CleanupStack::PopAndDestroy(media);
+    }
+    media = CMPXMedia::NewL();
+    CleanupStack::PushL(media);
+    media->SetCObjectValueL(KMPXMediaArrayContents, songArray);
+    array->AppendL(*media);
+    CleanupStack::PopAndDestroy(media);
+    CleanupStack::PopAndDestroy(songArray);
+    mTestPrivate->iAlbumSongCount = 0;
+
+    // Verify that:
+    // - refreshAlbumSongs() signal is emitted
+    // - album index is set
+    // - availability is returned as true
+    // - album song count is set
+    available = mTest->setCurrentAlbum(1);
+    QCOMPARE(available, true);
+    QCOMPARE(mTest->currentAlbumIndex(), 1);
+    QCOMPARE(mTest->albumSongsCount(), count);
+    QCOMPARE(spy.count(), 1);
+
+    mTestPrivate->iMediaArray = NULL;
+    CleanupStack::PopAndDestroy(array);
+}
+
+/*!
+ Tests albumSongData().
+ */
+void TestMpMpxCollectionData::testAlbumSongData()
+{
+    // Populate the media (album) with songs. This is basically
+    // simulating setAlbumContent().
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    CMPXMedia* media = CMPXMedia::NewL();
+    CleanupStack::PushL(media);
+    CMPXMediaArray* songArray = CMPXMediaArray::NewL();
+    CleanupStack::PushL(songArray);
+    TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
+    for (TInt i = 0; i < count; i++) {
+        CMPXMedia* song = CMPXMedia::NewL();
+        CleanupStack::PushL(song);
+        song->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle)));
+        song->SetTextValueL(KMPXMediaGeneralUri, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName)));
+        songArray->AppendL(*song);
+        CleanupStack::PopAndDestroy(song);
+    }
+    media->SetCObjectValueL(KMPXMediaArrayContents, songArray);
+    array->AppendL(*media);
+
+    mTestPrivate->iMediaArray = array;
+    mTestPrivate->iCurrentAlbumIndex = 0;
+
+    // Loop through all items to verify the album song data
+    for (TInt i =0; i < count; i++) {
+        const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle));
+        QCOMPARE(mTest->albumSongData( i, MpMpxCollectionData::Title), QString::fromUtf16( title.Ptr(), title.Length()));
+
+        const TDesC& uri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName));
+        QCOMPARE(mTest->albumSongData( i, MpMpxCollectionData::Uri), QString::fromUtf16( uri.Ptr(), uri.Length()));
+    }
+
+    // Create a song entry that doesn't have Title or Uri.
+    CMPXMedia* song = CMPXMedia::NewL();
+    CleanupStack::PushL(song);
+    song->SetTextValueL(KMPXMediaGeneralTitle, KNullDesC );
+    song->SetTextValueL(KMPXMediaMusicArtist, KNullDesC);
+    songArray->AppendL(*song);
+    CleanupStack::PopAndDestroy(song);
+
+    // Verify that it returned empty string.
+    QVERIFY(mTest->albumSongData( count, MpMpxCollectionData::Title).isNull());
+    QVERIFY(mTest->albumSongData( count, MpMpxCollectionData::Uri).isNull());
+
+    CleanupStack::PopAndDestroy(songArray);
+    CleanupStack::PopAndDestroy(media);
+    mTestPrivate->iMediaArray = NULL;
+    CleanupStack::PopAndDestroy(array);
+}
--- a/mpdata/tsrc/unittest_mpmpxcollectiondata/unittest_mpmpxcollectiondata.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpmpxcollectiondata/unittest_mpmpxcollectiondata.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,10 +14,11 @@
 # Description: 
 #
 
-
 TEMPLATE = app
-CONFIG += qtestlib hb
-TARGET = 
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpmpxcollectiondata
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
--- a/mpdata/tsrc/unittest_mpplaybackdata/inc/unittest_mpplaybackdata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpplaybackdata/inc/unittest_mpplaybackdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -50,6 +50,7 @@
     void testSetUri();
     void testSetAlbumArtUri();
     void testThumbnailReady();
+    void testSeAlbumId();
     void testSetPlaybackState();
     void testCommitPlaybackInfo();
     
--- a/mpdata/tsrc/unittest_mpplaybackdata/src/unittest_mpplaybackdata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpplaybackdata/src/unittest_mpplaybackdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -20,6 +20,7 @@
 #include <hbapplication.h>
 #include <hbmainwindow.h>
 #include <hbInstance.h>
+#include <hbicon.h>
 
 #include "unittest_mpplaybackdata.h"
 #include "stub/inc/thumbnailmanager_qt.h"
@@ -101,7 +102,7 @@
     QCOMPARE(mTest->mThumbnailManager->getInitCounter(), 1);
     QVERIFY(mTest->mDuration == 0);
     QVERIFY(mTest->mPosition == 0);
-    QVERIFY(!mTest->mDefaultAlbumArt);
+    QVERIFY(mTest->mDefaultAlbumArt != 0);
 
 }
 
@@ -267,7 +268,7 @@
     temp=0;
     QSignalSpy spy(mTest, SIGNAL(albumArtReady()));
     QPixmap albumArt(100,100);
-    QPixmap albumArt2;
+    HbIcon albumArtIcon;
    
     //Error
     mTest->thumbnailReady(albumArt,temp,KUndefined,KUndefined);
@@ -289,8 +290,18 @@
     mTest->thumbnailReady(albumArt,temp,1,0);
     QCOMPARE(mTest->mReqId, KUndefined);
     QCOMPARE(spy.count(),1);
-    mTest->albumArt(albumArt2);
-    QCOMPARE(albumArt,albumArt2);
+    mTest->albumArt(albumArtIcon);
+    QVERIFY(!albumArtIcon.isNull());
+}
+
+/*!
+ test SeAlbumId and albumId
+ */
+void TestMpPlaybackData::testSeAlbumId()
+{
+    mTest->setAlbumId(65535);
+    QCOMPARE(mTest->mAlbumId, 65535);
+    QCOMPARE(mTest->albumId(), 65535);
 }
 
 /*!
--- a/mpdata/tsrc/unittest_mpplaybackdata/stub/inc/thumbnailmanager_qt.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpplaybackdata/stub/inc/thumbnailmanager_qt.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef THUMBNAILMANAGER_QT_H
 #define THUMBNAILMANAGER_QT_H
 
-#include <qobject>
+#include <QObject>
 #include <QPixmap.h>
 
 
--- a/mpdata/tsrc/unittest_mpplaybackdata/stub/src/thumbnailmanager_qt.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpdata/tsrc/unittest_mpplaybackdata/stub/src/thumbnailmanager_qt.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,7 +15,7 @@
 *
 */
 
-#include <qsize.h>
+#include <QSize>
 #include "stub/inc/thumbnailmanager_qt.h"
 
 int gInitCounter = 0;
--- a/mpdata/tsrc/unittest_mpplaybackdata/unittest_mpplaybackdata_template.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-; unittest_mpplaybackdata_template.pkg generated by qmake at 2010-04-05T19:32:11
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"unittest_mpplaybackdata"},(0xE0350e5d),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-; Manual PKG pre-rules from PRO files
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
- 
-; Default dependency to Qt libraries
-(0x2001E61C), , , , {"Qt"}
-
-; Executable and default resource files
-"/epoc32/release/$(PLATFORM)/$(TARGET)/unittest_mpplaybackdata.exe"    - "!:\sys\bin\unittest_mpplaybackdata.exe"
-"/epoc32/data/z/resource/apps/unittest_mpplaybackdata.rsc"    - "!:\resource\apps\unittest_mpplaybackdata.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpplaybackdata_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpplaybackdata_reg.rsc"
-
-; Manual PKG post-rules from PRO files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpsongdata/UT_mpsongdata.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,30 @@
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"unittest_mpsongdata"},(0xE003e880),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+; Executable and default resource files
+"/epoc32/release/armv5/udeb/unittest_mpsongdata.exe"    - "!:\sys\bin\unittest_mpsongdata.exe"
+"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpsongdata_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpsongdata_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,99 @@
+/*
+* 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: Unit test for mpsongdata
+*
+*/
+
+#ifndef UNITTEST_MPSONGDATA_H_
+#define UNITTEST_MPSONGDATA_H_
+
+#include <QtTest/QtTest>
+
+class MpSongData;
+
+class TestMpSongData : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpSongData();
+    virtual ~TestMpSongData();
+
+signals:
+
+    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+    
+private slots:
+    void testMemberCleanup();
+    void testTitle();
+    void testAlbum();
+    void testArtist();
+    void testComment();
+    void testAlbumArt();
+    void testYear();
+    void testGenre();
+    void testComposer();
+    void testAlbumtrack();
+    void testLink();
+    
+    void testFileName();
+    void testMimeType();
+    void testDuration();
+    void testBitRate();
+    void testSampleRate();
+    void testSize();
+    void testModified();
+    void testCopyright();
+    void testMusicURL();
+    void testIsDrmProtected();
+
+    void testSetTitle();    
+    void testSetAlbum();
+    void testSetArtist();
+    void testSetComment();
+    void testSetYear();
+    void testSetGenre();
+    void testSetComposer();    
+    void testSetAlbumTrack();
+    void testSetLink();
+    
+    void testSetFileName();
+    void testSetMimeType();
+    void testSetDuration();
+    void testSetBitRate();
+    void testSetSampleRate();
+    void testSetSize();
+    void testSetModified();
+    void testSetCopyright();
+    void testSetMusicURL();
+    void testSetDrmProtected();
+          
+    void testSetAlbumArtUri();
+    void testThumbnailReady();
+    void testCommitPlaybackInfo();
+    void testCommitSongDetailInfo();
+private:
+    MpSongData *mTest;
+    
+};
+
+
+#endif /* UNITTEST_MPSONGDATA_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpsongdata/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,20 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+del *.sisx
+makesis UT_mpsongdata.pkg
+signsis UT_mpsongdata.sis UT_mpsongdata.sisx RNDCERTS_PATH\Nokia_RnDCert_02.der RNDCERTS_PATH\Nokia_RnDCert_02.key
+del     UT_mpsongdata.sis
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,1100 @@
+/*
+* 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: Unit test for mpsongdata
+*
+*/
+#include <QSignalSpy>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbicon.h>
+
+#include"unittest_mpsongdata.h"
+#include "stub/inc/thumbnailmanager_qt.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpsongdata.h"
+#undef private
+
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    HbApplication app(argc, argv);
+    HbMainWindow window;
+
+    TestMpSongData tv;
+
+if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpsongdata.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }    
+}
+
+//Constructor
+TestMpSongData::TestMpSongData()
+    : mTest(0)
+{
+
+}
+
+//Destructor
+TestMpSongData::~TestMpSongData()
+{
+    delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpSongData::initTestCase()
+{
+    
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpSongData::cleanupTestCase()
+{
+QCoreApplication::processEvents();
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpSongData::init()
+{
+    mTest = new MpSongData();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpSongData::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+/*!
+ Test correct cleanup of member variables.
+ */
+void TestMpSongData::testMemberCleanup()
+{
+    cleanup();
+    ThumbnailManager::resetInitCounter();
+    init();
+    cleanup();
+    QCOMPARE( ThumbnailManager::getInitCounter(), 0 );
+}
+
+
+/*!
+ Test title() 
+ */
+void TestMpSongData::testTitle()
+{
+    mTest->mTitle = QString();
+    QVERIFY( mTest->title().isNull() == true );    
+    
+    QString title( "title" );
+    mTest->mTitle = title;
+    QVERIFY( mTest->title().isNull() == false );
+    QCOMPARE( mTest->title(), title );
+}
+
+/*!
+ Test album() 
+ */
+void TestMpSongData::testAlbum()
+{
+    mTest->mAlbum = QString();
+    QVERIFY( mTest->album().isNull() == true );
+    
+    QString album( "album" );
+    mTest->mAlbum = album;
+    QVERIFY( mTest->album().isNull() == false );
+    QCOMPARE( mTest->album(), album );
+}
+
+/*!
+ Test artist() 
+ */
+void TestMpSongData::testArtist()
+{
+    mTest->mArtist = QString();
+    QVERIFY( mTest->artist().isNull() == true );
+    
+    QString artist( "artist");
+    mTest->mArtist = artist;
+    QVERIFY( mTest->artist().isNull() == false );
+    QCOMPARE( mTest->artist(), artist );
+}
+
+/*!
+ Test comment() 
+ */
+void TestMpSongData::testComment()
+{
+    mTest->mComment = QString();
+    QVERIFY( mTest->comment().isNull() == true );
+    
+    QString comment( "This is a nice song" );
+    mTest->mComment = comment;
+    QVERIFY( mTest->comment().isNull() == false );
+    QCOMPARE( mTest->comment(), comment );
+}
+
+/*!
+ Test albumArt() 
+ */
+void TestMpSongData::testAlbumArt()
+{
+    HbIcon dummyAlbumArt;
+    mTest->albumArt( dummyAlbumArt );
+    QVERIFY( dummyAlbumArt.isNull() == true );
+    
+    HbIcon dummyAlbumArtTwo;
+    mTest->mAlbumArt = new HbIcon( ":/playbackviewicons/someAlbumArt.png" );
+    mTest->albumArt( dummyAlbumArtTwo );
+    QVERIFY( dummyAlbumArtTwo.isNull() == false );
+}
+
+/*!
+ Test year() 
+ */
+void TestMpSongData::testYear()
+{
+    mTest->mYear = QString();
+    QVERIFY( mTest->year().isNull() == true );
+    
+    QString year("2000");
+    mTest->mYear = year;
+    QVERIFY( mTest->year().isNull() == false );
+    QCOMPARE( mTest->year(), year );
+}
+
+/*!
+ Test genre() 
+ */
+void TestMpSongData::testGenre()
+{
+    mTest->mGenre = QString();    
+    QVERIFY( mTest->genre().isNull() == true );
+
+    QString genre( "pop" );    
+    mTest->mGenre = genre;    
+    QVERIFY( mTest->genre().isNull() == false );
+    QCOMPARE( mTest->genre(), genre );
+}
+
+/*!
+ Test composer() 
+ */
+void TestMpSongData::testComposer()
+{
+    mTest->mComposer = QString();
+    QVERIFY( mTest->composer().isNull() == true );
+    
+    QString composer( "composer ");
+    mTest->mComposer = composer;
+    QVERIFY( mTest->composer().isNull() == false );
+    QCOMPARE( mTest->composer(), composer );
+}
+
+
+/*!
+ Test albumTrack() 
+ */
+void TestMpSongData::testAlbumtrack()
+{
+    mTest->mAlbumTrack = QString();
+    QVERIFY( mTest->albumTrack().isNull() == true );
+    
+    QString albumTrack("2");
+    mTest->mAlbumTrack = albumTrack;
+    QVERIFY( mTest->albumTrack().isNull() == false );   
+    QCOMPARE( mTest->albumTrack(), albumTrack );
+}
+
+/*!
+ Test link() 
+ */
+void TestMpSongData::testLink()
+{
+    mTest->mLink = QString();
+    QVERIFY( mTest->link().isNull() == true );
+    
+    QString link( "www.nokia.com" );
+    mTest->mLink = link;
+    QVERIFY( mTest->link().isNull() == false );
+    QCOMPARE( mTest->link(), link );
+}
+
+/*!
+ Test fileName()
+ */
+void TestMpSongData::testFileName()
+{
+    mTest->mFileName = QString();
+    QVERIFY( mTest->fileName().isNull() == true );
+    
+    QString fileName( "test.mp3" );
+    mTest->mFileName = fileName;
+    QVERIFY( mTest->fileName().isNull() == false );
+    QCOMPARE( mTest->fileName(), fileName );
+}
+
+/*!
+ Test fileName()
+ */
+void TestMpSongData::testMimeType()
+{
+    mTest->mMimeType = QString();
+    QVERIFY( mTest->mimeType().isNull() == true );
+    
+    QString mimeType( "mp3" );
+    mTest->mMimeType = mimeType;
+    QVERIFY( mTest->mimeType().isNull() == false );
+    QCOMPARE( mTest->mimeType(), mimeType );
+}
+
+/*!
+ Test fileName()
+ */
+void TestMpSongData::testDuration()
+{
+    mTest->mDuration = QString();
+    QVERIFY( mTest->duration().isNull() == true );
+    
+    QString duration( "04:16" );
+    mTest->mDuration = duration;
+    QVERIFY( mTest->duration().isNull() == false );
+    QCOMPARE( mTest->duration(), duration );
+}
+
+/*!
+ Test bitRate()
+ */
+void TestMpSongData::testBitRate()
+{
+    mTest->mBitRate = QString();
+    QVERIFY( mTest->bitRate().isNull() == true );
+    
+    QString bitRate( "320 Kbps" );
+    mTest->mBitRate = bitRate;
+    QVERIFY( mTest->bitRate().isNull() == false );
+    QCOMPARE( mTest->bitRate(), bitRate );
+}
+
+/*!
+ Test sampleRate()
+ */
+void TestMpSongData::testSampleRate()
+{
+    mTest->mSampleRate = QString();
+    QVERIFY( mTest->sampleRate().isNull() == true );
+    
+    QString sampleRate( "44100 hz" );
+    mTest->mSampleRate = sampleRate;
+    QVERIFY( mTest->sampleRate().isNull() == false );
+    QCOMPARE( mTest->sampleRate(), sampleRate );
+}
+
+/*!
+ Test size()
+ */
+void TestMpSongData::testSize()
+{
+    mTest->mSize = QString();
+    QVERIFY( mTest->size().isNull() == true );
+    
+    QString size( "4.3MB" );
+    mTest->mSize = size;
+    QVERIFY( mTest->size().isNull() == false );
+    QCOMPARE( mTest->size(), size );
+}
+
+/*!
+ Test modified()
+ */
+void TestMpSongData::testModified()
+{
+    mTest->mModified = QString();
+    QVERIFY( mTest->modified().isNull() == true );
+    
+    QString modified( "5.7.2010 14:35:08" );
+    mTest->mModified = modified;
+    QVERIFY( mTest->modified().isNull() == false );
+    QCOMPARE( mTest->modified(), modified );
+}
+
+/*!
+ Test copyright()
+ */
+void TestMpSongData::testCopyright()
+{
+    mTest->mCopyright = QString();
+    QVERIFY( mTest->copyright().isNull() == true );
+    
+    QString copyright( "Copyright holder" );
+    mTest->mCopyright = copyright;
+    QVERIFY( mTest->copyright().isNull() == false );
+    QCOMPARE( mTest->copyright(), copyright );
+}
+
+/*!
+ Test musicURL()
+ */
+void TestMpSongData::testMusicURL()
+{
+    mTest->mMusicURL = QString();
+    QVERIFY( mTest->musicURL().isNull() == true );
+    
+    QString musicURL( "www.nokia.com" );
+    mTest->mMusicURL = musicURL;
+    QVERIFY( mTest->musicURL().isNull() == false );
+    QCOMPARE( mTest->musicURL(), musicURL );
+}
+
+/*!
+ Test isDrmProtected()
+ */
+void TestMpSongData::testIsDrmProtected()
+{
+    mTest->mDrmProtected = true;
+    QVERIFY( mTest->isDrmProtected() == true );
+    
+    mTest->mDrmProtected = false;
+    QVERIFY( mTest->isDrmProtected() == false );
+}
+
+/*!
+ Test setTitle() 
+ */
+void TestMpSongData::testSetTitle()
+{
+    bool result;    
+    QString title( "title" );
+    mTest->mTitle = QString();
+    result = mTest->setTitle( title );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->title(), title ); 
+    
+    result = false;
+    title = QString( "title" );
+    mTest->mTitle = QString( "titleTwo" );
+    result = mTest->setTitle( title );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->title(), title ); 
+    
+    result = false;
+    title = QString();
+    mTest->mTitle = QString();
+    result = mTest->setTitle( title );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->title().isNull(), true ); 
+    
+    result = false;
+    title = QString();
+    mTest->mTitle = QString( "titleTwo" );
+    result = mTest->setTitle( title );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->title().isNull(), true ); 
+}
+
+/*!
+ Test SetAlbum() 
+ */
+void TestMpSongData::TestMpSongData::testSetAlbum()
+{
+    bool result;    
+    QString album( "album" );
+    mTest->mAlbum = QString();
+    result = mTest->setAlbum( album );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->album(), album ); 
+    
+    result = false;
+    album = QString( "album" );
+    mTest->mAlbum = QString( "albumTwo" );
+    result = mTest->setAlbum( album );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->album(), album ); 
+    
+    result = false;
+    album = QString();
+    mTest->mAlbum = QString();
+    result = mTest->setAlbum( album );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->album().isNull(), true ); 
+    
+    result = false;
+    album = QString();
+    mTest->mAlbum = QString( "albumTwo" );
+    result = mTest->setAlbum( album );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->album().isNull(), true ); 
+}
+
+/*!
+ Test SetArtist() 
+ */
+void TestMpSongData::testSetArtist()
+{
+    bool result;    
+    QString artist( "artist" );
+    mTest->mArtist = QString();
+    result = mTest->setArtist( artist );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->artist(), artist ); 
+    
+    result = false;
+    artist = QString( "artist" );
+    mTest->mArtist = QString( "artistTwo" );
+    result = mTest->setArtist( artist );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->artist(), artist ); 
+    
+    result = false;
+    artist = QString();
+    mTest->mArtist = QString();
+    result = mTest->setArtist( artist );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->artist().isNull(), true ); 
+    
+    result = false;
+    artist = QString();
+    mTest->mArtist = QString( "artistTwo" );
+    result = mTest->setArtist( artist );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->artist().isNull(), true ); 
+}
+
+/*!
+ Test SetComment() 
+ */
+void TestMpSongData::testSetComment()
+{
+    bool result;    
+    QString comment( "comment" );
+    mTest->mComment = QString();
+    result = mTest->setComment( comment );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->comment(), comment ); 
+    
+    result = false;
+    comment = QString( "comment" );
+    mTest->mComment = QString( "commentTwo" );
+    result = mTest->setComment( comment );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->comment(), comment ); 
+    
+    result = false;
+    comment = QString();
+    mTest->mComment = QString();
+    result = mTest->setComment( comment );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->comment().isNull(), true ); 
+    
+    result = false;
+    comment = QString();
+    mTest->mComment = QString( "commentTwo" );
+    result = mTest->setComment( comment );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->comment().isNull(), true ); 
+}
+
+/*!
+ Test SetYear() 
+ */
+void TestMpSongData::testSetYear()
+{
+    bool result;    
+    int year = 2010;
+    mTest->mYear = QString();
+    result = mTest->setYear( year );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->year(), QString::number( year ) ); 
+    
+    result = false;
+    year = 2010;
+    mTest->mYear = QString::number( 2011 );
+    result = mTest->setYear( year );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->year(), QString::number( year ) ); 
+    
+    result = false;
+    year = -1;
+    mTest->mYear = QString();
+    result = mTest->setYear( year );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->year().isNull(), true ); 
+    
+    result = false;
+    year = -1;
+    mTest->mYear = QString::number( 2011 );
+    result = mTest->setYear( year );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->year().isNull(), true ); 
+}
+
+/*!
+ Test setGenre() 
+ */
+void TestMpSongData::testSetGenre()
+{
+    bool result;    
+    QString genre( "genre" );
+    mTest->mGenre = QString();
+    result = mTest->setGenre( genre );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->genre(), genre ); 
+    
+    result = false;
+    genre = QString( "genre" );
+    mTest->mGenre = QString( "genreTwo" );
+    result = mTest->setGenre( genre );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->genre(), genre ); 
+    
+    result = false;
+    genre = QString();
+    mTest->mGenre = QString();
+    result = mTest->setGenre( genre );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->genre().isNull(), true ); 
+    
+    result = false;
+    genre = QString();
+    mTest->mGenre = QString( "genreTwo" );
+    result = mTest->setGenre( genre );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->genre().isNull(), true ); 
+}
+
+/*!
+ Test setComposer() 
+ */
+void TestMpSongData::testSetComposer()
+{
+    bool result;    
+    QString composer( "composer" );
+    mTest->mComposer = QString();
+    result = mTest->setComposer( composer );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->composer(), composer ); 
+    
+    result = false;
+    composer = QString( "composer" );
+    mTest->mComposer = QString( "composerTwo" );
+    result = mTest->setComposer( composer );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->composer(), composer ); 
+    
+    result = false;
+    composer = QString();
+    mTest->mComposer = QString();
+    result = mTest->setComposer( composer );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->composer().isNull(), true ); 
+    
+    result = false;
+    composer = QString();
+    mTest->mComposer = QString( "composerTwo" );
+    result = mTest->setComposer( composer );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->composer().isNull(), true ); 
+}
+
+/*!
+ Test setAlbumTrack() 
+ */
+void TestMpSongData::testSetAlbumTrack()
+{
+    bool result;    
+    QString albumTrack( "2" );
+    mTest->mAlbumTrack = QString();
+    result = mTest->setAlbumTrack( albumTrack );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->albumTrack(), albumTrack ); 
+    
+    result = false;
+    albumTrack = QString( "2" );
+    mTest->mAlbumTrack = QString( "3" );
+    result = mTest->setAlbumTrack( albumTrack );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->albumTrack(), albumTrack ); 
+    
+    result = false;
+    albumTrack = QString();
+    mTest->mAlbumTrack = QString();
+    result = mTest->setAlbumTrack( albumTrack );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->albumTrack().isNull(), true ); 
+    
+    result = false;
+    albumTrack = QString();
+    mTest->mAlbumTrack = QString( "3" );
+    result = mTest->setAlbumTrack( albumTrack );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->albumTrack().isNull(), true ); 
+}
+
+/*!
+ Test setLink() 
+ */
+void TestMpSongData::testSetLink()
+{  
+    QString link( "www.nokia.com" );
+    mTest->mLink = QString();
+    mTest->setLink( link );
+    QCOMPARE( mTest->link(), link ); 
+    
+    link = QString( "www.nokia.com" );
+    mTest->mLink = QString( "www.nokia.fi" );
+    mTest->setLink( link );
+    QCOMPARE( mTest->link(), link ); 
+    
+    link = QString();
+    mTest->mLink = QString();
+    mTest->setLink( link );
+    QCOMPARE( mTest->link().isNull(), true ); 
+    
+    link = QString();
+    mTest->mLink = QString( "www.nokia.fi" );
+    mTest->setLink( link );
+    QCOMPARE( mTest->link().isNull(), true ); 
+}
+
+/*!
+ Test setFileName() 
+ */
+void TestMpSongData::testSetFileName()
+{
+    bool result;    
+    QString fileName( "fileName" );
+    mTest->mFileName = QString();
+    result = mTest->setFileName( fileName );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->fileName(), fileName ); 
+    
+    result = false;
+    fileName = QString( "fileName" );
+    mTest->mFileName = QString( "fileNameTwo" );
+    result = mTest->setFileName( fileName );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->fileName(), fileName ); 
+    
+    result = false;
+    fileName = QString();
+    mTest->mFileName = QString();
+    result = mTest->setFileName( fileName );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->fileName().isNull(), true ); 
+    
+    result = false;
+    fileName = QString();
+    mTest->mFileName = QString( "fileNameTwo" );
+    result = mTest->setFileName( fileName );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->fileName().isNull(), true ); 
+}
+
+/*!
+ Test setMimeType() 
+ */
+void TestMpSongData::testSetMimeType()
+{
+    bool result;    
+    QString mimeType( "mimeType" );
+    mTest->mMimeType = QString();
+    result = mTest->setMimeType( mimeType );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->mimeType(), mimeType ); 
+    
+    result = false;
+    mimeType = QString( "mimeType" );
+    mTest->mMimeType = QString( "mimeTypeTwo" );
+    result = mTest->setMimeType( mimeType );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->mimeType(), mimeType ); 
+    
+    result = false;
+    mimeType = QString();
+    mTest->mMimeType = QString();
+    result = mTest->setMimeType( mimeType );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->mimeType().isNull(), true ); 
+    
+    result = false;
+    mimeType = QString();
+    mTest->mMimeType = QString( "mimeTypeTwo" );
+    result = mTest->setMimeType( mimeType );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->mimeType().isNull(), true ); 
+}
+
+/*!
+ Test setDuration()  // TODO: more cases to add here for different time interval
+ */
+void TestMpSongData::testSetDuration()
+{
+    bool result;    
+    int duration = 100;
+    mTest->mDuration = QString();
+    result = mTest->setDuration( duration );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->duration(), QString("01:40") ); 
+    
+    result = false;
+    duration = 100;
+    mTest->mDuration = QString( "02:00" );
+    result = mTest->setDuration( duration );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->duration(), QString("01:40") ); 
+    
+    result = false;
+    duration = -1;
+    mTest->mDuration = QString();
+    result = mTest->setDuration( duration );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->duration().isNull(), true ); 
+    
+    result = false;
+    duration = -1;
+    mTest->mDuration = QString( "02:00" );
+    result = mTest->setDuration( duration );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->duration().isNull(), true ); 
+}
+
+/*!
+ Test setBitRate() 
+ */
+void TestMpSongData::testSetBitRate()
+{
+    bool result;    
+    int bitRate = 302000;
+    mTest->mBitRate = QString();
+    result = mTest->setBitRate( bitRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->bitRate(), QString::number( bitRate / 1000 ) ); 
+    
+    result = false;
+    bitRate = 302000;
+    mTest->mBitRate = QString::number( 412 );
+    result = mTest->setBitRate( bitRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->bitRate(), QString::number( bitRate / 1000 ) ); 
+    
+    result = false;
+    bitRate = -1;
+    mTest->mBitRate = QString();
+    result = mTest->setBitRate( bitRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->bitRate().isNull(), true ); 
+    
+    result = false;
+    bitRate = -1;
+    mTest->mBitRate = QString::number( 412 );
+    result = mTest->setBitRate( bitRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->bitRate().isNull(), true ); 
+}
+
+/*!
+ Test setSampleRate
+ */
+void TestMpSongData::testSetSampleRate()
+{
+    bool result;    
+    int sampleRate = 44100;
+    mTest->mSampleRate = QString();
+    result = mTest->setSampleRate( sampleRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->sampleRate(), QString::number( sampleRate ) ); 
+    
+    result = false;
+    sampleRate = 44100;
+    mTest->mSampleRate = QString::number( 55000 );
+    result = mTest->setSampleRate( sampleRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->sampleRate(), QString::number( sampleRate ) ); 
+    
+    result = false;
+    sampleRate = -1;
+    mTest->mSampleRate = QString();
+    result = mTest->setSampleRate( sampleRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->sampleRate().isNull(), true ); 
+    
+    result = false;
+    sampleRate = -1;
+    mTest->mSampleRate = QString::number( 55000 );
+    result = mTest->setSampleRate( sampleRate );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->sampleRate().isNull(), true ); 
+}
+
+/*!
+ Test setSize
+ */
+void TestMpSongData::testSetSize()
+{
+    bool result;    
+    int size = 4300;
+    mTest->mSize = QString();
+    result = mTest->setSize( size );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->size(), QString::number( size / 1000 ) ); 
+    
+    result = false;
+    size = 4300;
+    mTest->mSize = QString( "5" );
+    result = mTest->setSize( size );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->size(), QString::number( size / 1000 ) );     
+}
+
+/*!
+ Test setModified
+ */
+void TestMpSongData::testSetModified()
+{
+    bool result;    
+    QString modified( "5.7.2010 14:35:08" );
+    mTest->mModified = QString();
+    result = mTest->setModified( modified );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->modified(), modified ); 
+    
+    result = false;
+    modified = QString( "5.7.2010 14:35:08" );
+    mTest->mModified = QString( "9.7.2010 16:35:08" );
+    result = mTest->setModified( modified );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->modified(), modified ); 
+    
+    result = false;
+    modified = QString();
+    mTest->mModified = QString();
+    result = mTest->setModified( modified );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->modified().isNull(), true ); 
+    
+    result = false;
+    modified = QString();
+    mTest->mModified = QString( "9.7.2010 16:35:08" );
+    result = mTest->setModified( modified );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->modified().isNull(), true ); 
+}
+
+/*!
+ Test setCopyright
+ */
+void TestMpSongData::testSetCopyright()
+{
+    bool result;    
+    QString copyright( "copyright" );
+    mTest->mCopyright = QString();
+    result = mTest->setCopyright( copyright );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->copyright(), copyright ); 
+    
+    result = false;
+    copyright = QString( "copyright" );
+    mTest->mCopyright = QString( "copyrightTwo" );
+    result = mTest->setCopyright( copyright );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->copyright(), copyright ); 
+    
+    result = false;
+    copyright = QString();
+    mTest->mCopyright = QString();
+    result = mTest->setCopyright( copyright );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->copyright().isNull(), true ); 
+    
+    result = false;
+    copyright = QString();
+    mTest->mCopyright = QString( "copyrightTwo" );
+    result = mTest->setCopyright( copyright );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->copyright().isNull(), true ); 
+}
+
+/*!
+ Test setMusicURL
+ */
+void TestMpSongData::testSetMusicURL()
+{
+    bool result;    
+    QString musicURL( "musicURL" );
+    mTest->mMusicURL = QString();
+    result = mTest->setMusicURL( musicURL );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->musicURL(), musicURL ); 
+    
+    result = false;
+    musicURL = QString( "musicURL" );
+    mTest->mMusicURL = QString( "musicURLTwo" );
+    result = mTest->setMusicURL( musicURL );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->musicURL(), musicURL ); 
+    
+    result = false;
+    musicURL = QString();
+    mTest->mMusicURL = QString();
+    result = mTest->setMusicURL( musicURL );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->musicURL().isNull(), true ); 
+    
+    result = false;
+    musicURL = QString();
+    mTest->mMusicURL = QString( "musicURLTwo" );
+    result = mTest->setMusicURL( musicURL );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->musicURL().isNull(), true ); 
+}
+
+/*!
+ Test setDrmProtected
+ */
+void TestMpSongData::testSetDrmProtected()
+{
+    bool result;    
+    bool drmProtected = false;
+    mTest->mDrmProtected = true;
+    result = mTest->setDrmProtected( drmProtected );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->isDrmProtected(), false ); 
+    
+    result = false;
+    drmProtected = false;
+    mTest->mDrmProtected = false;
+    result = mTest->setDrmProtected( drmProtected );
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->isDrmProtected(), false ); 
+    
+    result = false;
+    drmProtected = true;
+    mTest->mDrmProtected = true;
+    result = mTest->setDrmProtected( drmProtected);
+    QCOMPARE( result, false );
+    QCOMPARE( mTest->isDrmProtected(), true ); 
+    
+    result = false;
+    drmProtected = true;
+    mTest->mDrmProtected = false;
+    result = mTest->setDrmProtected( drmProtected );
+    QCOMPARE( result, true );
+    QCOMPARE( mTest->isDrmProtected(), true ); 
+}
+
+
+/*!
+ Test setAlbumArtUri() 
+ */
+void TestMpSongData::testSetAlbumArtUri() 
+{
+    const QString albumArtUri( "AlbumArt" );
+    const QString albumArtUriEmpty( "" );
+    
+    QSignalSpy spy( mTest, SIGNAL( albumArtReady() ) );
+    
+    QVERIFY( spy.isValid() );
+    QCOMPARE( spy.count(), 0 );
+    
+    mTest->setAlbumArtUri( albumArtUri );
+    QCOMPARE( spy.count(), 0 );
+    
+    mTest->mThumbnailManager->mGetThumbFails = true;
+    mTest->setAlbumArtUri( albumArtUri );
+    QCOMPARE( spy.count(), 1 );
+    QCOMPARE( mTest->mAlbumArt, mTest->mDefaultAlbumArt );
+    
+    mTest->setAlbumArtUri( albumArtUriEmpty );
+    QCOMPARE( spy.count(), 2 );
+    QCOMPARE( mTest->mAlbumArt, mTest->mDefaultAlbumArt );  
+}
+
+/*!
+ Test thumbnailReady()() 
+ */
+void TestMpSongData::testThumbnailReady()
+{
+   connect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
+           mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );    
+
+   QSignalSpy spy(mTest, SIGNAL(albumArtReady()));
+   QVERIFY( spy.isValid() );
+   QCOMPARE( spy.count(), 0 );
+   
+   QPixmap dummyAlbumArt(":/playbackviewicons/someAlbumArt.png" );
+   
+   emit thumbnailReady(dummyAlbumArt, 0, -1, 0);
+   QCOMPARE( spy.count(), 1 );
+   HbIcon dummyAlbumArtCompare;
+   mTest->albumArt(dummyAlbumArtCompare);
+   QCOMPARE( dummyAlbumArtCompare.isNull(), false );
+   
+   emit thumbnailReady(dummyAlbumArt, 0, -1 , 1);
+   QCOMPARE( spy.count(), 2 );
+   mTest->albumArt(dummyAlbumArtCompare);
+   QCOMPARE( dummyAlbumArtCompare.isNull(), false );
+   
+}
+
+
+/*!
+ Test commitPlaybackInfo() 
+ */
+void TestMpSongData::testCommitPlaybackInfo() 
+    {
+    QSignalSpy spy( mTest, SIGNAL( playbackInfoChanged() ) );
+    
+    QVERIFY( spy.isValid() );
+    QCOMPARE( spy.count(), 0 );
+    
+    mTest->commitPlaybackInfo();
+    QCOMPARE( spy.count(), 1 );
+    
+    }
+
+/*!
+ Test commitSongDetailInfo() 
+ */
+void TestMpSongData::testCommitSongDetailInfo() 
+    {
+    QSignalSpy spy( mTest, SIGNAL( songDetailInfoChanged() ) );
+    
+    QVERIFY( spy.isValid() );
+    QCOMPARE( spy.count(), 0 );
+    
+    mTest->commitSongDetailInfo();
+    QCOMPARE( spy.count(), 1 );
+    
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,128 @@
+/*
+* 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: ThumbnailManager stub for testing MpSongData
+*
+*/
+
+#ifndef THUMBNAILMANAGER_QT_H_
+#define THUMBNAILMANAGER_QT_H_
+#include <QObject>
+#include <QPixmap>
+
+
+/** default priority value */
+const int tnmWrapperPriorityIdle = -100;
+
+class ThumbnailManager : public QObject
+    {
+    Q_OBJECT
+
+public:
+
+
+    /** Thumbnail size. */
+    enum ThumbnailSize
+    {
+        /**
+         * Small thumbnail
+         */
+        ThumbnailSmall = 0,
+        /**
+         * Medium thumbnail
+         */
+        ThumbnailMedium,
+        /**
+         * Large thumbnail
+         */
+        ThumbnailLarge
+    };
+
+    /** Mode of thumbnail creation. */
+    enum ThumbnailMode
+        {
+        /**
+         * Default mode. This means that:
+         * - Thumbnail must be as large as requested (unless the actual object is smaller).
+         * - Smaller thumbnails may be up scaled to desired resolution.
+         * - Aspect ratio is maintained and thumbnails are not cropped. The
+         *   resulting thumbnail may smaller in either width or height if
+         *   the aspect ratio of the object does not match the aspect ratio
+         *   of the requested size.
+         */
+        Default = 0,
+
+        /**
+         * Allow thumbnails which are smaller than requested are. Thumbnail
+         * bitmaps are never up scaled if this flag is set.
+         */
+        AllowAnySize = 1,
+
+        /**
+         * New thumbnail images are not created if this flag is set. Only
+         * existing thumbnails may be returned. If a requested thumbnail does
+         * not exist null pixmap will be returned.
+         */
+        DoNotCreate = 2,
+
+        /**
+         * Thumbnail images are cropped to match requested aspect ratio. If
+         * this mode is set, the size of the resulting thumbnail always
+         * matches the requested size.
+         */
+        CropToAspectRatio = 4
+    };
+
+    /**  Quality versus speed preference setting */
+    enum QualityPreference
+    {
+        /**
+         * Prefer thumbnails in the highest quality possible disregarding
+         * any negative impact on performance.
+         */
+        OptimizeForQuality,
+
+        /**
+         * Get thumbnails as fast as possible, even if
+         * it means lower quality.
+         */
+        OptimizeForPerformance
+    };
+
+    // Test utility functions
+    static int getInitCounter();
+    static void resetInitCounter();
+
+    // Stub functions
+    ThumbnailManager( QObject* parentPtr = NULL );
+    virtual ~ThumbnailManager();
+    bool setMode( ThumbnailMode mode );
+    bool setQualityPreference( QualityPreference qualityPreference );
+    bool setThumbnailSize( ThumbnailSize thumbnailSize );
+    int getThumbnail( const QString& fileName, void * clientData = NULL,
+            int priority = tnmWrapperPriorityIdle );
+    bool cancelRequest( int id );
+
+signals:
+
+    void thumbnailReady( QPixmap , void * , int , int );
+
+public:
+
+    bool    mGetThumbFails;
+    int     mThumbnailReqCounter;
+    int     mCancelCounter;
+
+};
+
+#endif /* THUMBNAILMANAGER_QT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,120 @@
+/*
+* 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: ThumbnailManager stub for testing MpSongData
+*
+*/
+#include <QSize>
+#include "stub/inc/thumbnailmanager_qt.h"
+
+int gInitCounter = 0;
+
+/*!
+ Returns gInitCounter.
+ gInitCounter counts the number of constructor/destructor calls.
+ */
+int ThumbnailManager::getInitCounter()
+{
+    return gInitCounter;
+}
+
+/*!
+ Resets gInitCounter to zero.
+ */
+void ThumbnailManager::resetInitCounter()
+{
+    gInitCounter = 0;
+}
+
+/*!
+ Stub function.
+ */
+ThumbnailManager::ThumbnailManager( QObject* parentPtr ) :
+QObject( parentPtr ),
+mGetThumbFails(false),
+mThumbnailReqCounter(0),
+mCancelCounter(0)
+{
+    gInitCounter++;
+}
+
+/*!
+ Stub function.
+ */
+ThumbnailManager::~ThumbnailManager()
+{
+    gInitCounter--;
+}
+
+/*!
+ Stub function.
+ */
+bool ThumbnailManager::setMode( ThumbnailMode mode )
+{
+    Q_UNUSED(mode);
+    return true;
+}
+
+/*!
+ Stub function.
+ */
+bool ThumbnailManager::setQualityPreference( QualityPreference
+    qualityPreference )
+{
+    Q_UNUSED(qualityPreference);
+    return true;
+}
+
+/*!
+ Stub function.
+ */
+bool ThumbnailManager::setThumbnailSize( ThumbnailSize thumbnailSize )
+{
+    Q_UNUSED(thumbnailSize);
+    return true;
+}
+
+/*!
+ Stub function.
+ */
+int ThumbnailManager::getThumbnail( const QString& fileName, void *clientData,
+        int priority )
+{
+    Q_UNUSED(fileName);
+    Q_UNUSED(priority);
+
+    if (clientData) {
+        // Delete this to prevent memory leak
+        int *data = (int *)clientData;
+        delete data;
+
+        data = 0;
+    }
+
+    if ( mGetThumbFails ) {
+        return -1;
+    }
+
+    mThumbnailReqCounter++;
+    return mThumbnailReqCounter;
+}
+
+/*!
+ Stub function.
+ */
+bool ThumbnailManager::cancelRequest( int id )
+{
+    Q_UNUSED(id);
+    mCancelCounter++;
+    return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpdata/tsrc/unittest_mpsongdata/unittest_mpsongdata.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,40 @@
+#
+# 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
+CONFIG += qtestlib \
+					symbian_test \
+							hb
+
+TARGET = 
+DEPENDPATH += . 
+INCLUDEPATH += ./stub/inc \   
+    		   ../../../inc
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+DEFINES += BUILD_MPDATA_LIB
+LIBS += -lmpxviewframeworkqt.dll 
+
+# Input
+HEADERS += inc/unittest_mpsongdata.h \
+	   ../../../inc/mpsongdata.h \
+	   stub/inc/thumbnailmanager_qt.h 
+	   
+SOURCES += src/unittest_mpsongdata.cpp \
+	   ../../src/mpsongdata.cpp \
+	   stub/src/thumbnailmanager_qt.cpp
+
+
--- a/mpengine/bwins/mpengineu.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/bwins/mpengineu.def	Thu Jul 22 16:32:33 2010 +0100
@@ -1,67 +1,131 @@
 EXPORTS
-	?releaseIsolatedCollection@MpEngine@@QAEXXZ @ 1 NONAME ; void MpEngine::releaseIsolatedCollection(void)
-	?metaObject@MpEngine@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * MpEngine::metaObject(void) const
-	?refreshLibrary@MpEngine@@QAEXXZ @ 3 NONAME ; void MpEngine::refreshLibrary(void)
-	?launchBlockingNote@MpEngine@@AAEXXZ @ 4 NONAME ; void MpEngine::launchBlockingNote(void)
-	?playEmbedded@MpEngine@@QAEXVQString@@@Z @ 5 NONAME ; void MpEngine::playEmbedded(class QString)
-	?tr@MpEngine@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString MpEngine::tr(char const *, char const *)
-	?setPosition@MpEngine@@QAEXH@Z @ 7 NONAME ; void MpEngine::setPosition(int)
-	?saveToCurrentPlaylist@MpEngine@@QAEXAAV?$QList@H@@PAVMpMpxCollectionData@@@Z @ 8 NONAME ; void MpEngine::saveToCurrentPlaylist(class QList<int> &, class MpMpxCollectionData *)
-	?getStaticMetaObject@MpEngine@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & MpEngine::getStaticMetaObject(void)
-	?renamePlaylist@MpEngine@@QAEXAAVQString@@@Z @ 10 NONAME ; void MpEngine::renamePlaylist(class QString &)
-	?libraryUpdated@MpEngine@@IAEXXZ @ 11 NONAME ; void MpEngine::libraryUpdated(void)
-	?setRepeat@MpEngine@@QAEX_N@Z @ 12 NONAME ; void MpEngine::setRepeat(bool)
-	?collectionData@MpEngine@@QAEPAVMpMpxCollectionData@@XZ @ 13 NONAME ; class MpMpxCollectionData * MpEngine::collectionData(void)
-	?createPlaylist@MpEngine@@QAEXAAVQString@@AAV?$QList@H@@PAVMpMpxCollectionData@@@Z @ 14 NONAME ; void MpEngine::createPlaylist(class QString &, class QList<int> &, class MpMpxCollectionData *)
-	?collectionPlaylistOpened@MpEngine@@IAEXXZ @ 15 NONAME ; void MpEngine::collectionPlaylistOpened(void)
-	?playlistsRenamed@MpEngine@@IAEX_N@Z @ 16 NONAME ; void MpEngine::playlistsRenamed(bool)
-	?playPause@MpEngine@@QAEXXZ @ 17 NONAME ; void MpEngine::playPause(void)
-	?checkForSystemEvents@MpEngine@@QAEXXZ @ 18 NONAME ; void MpEngine::checkForSystemEvents(void)
-	?renamePlaylist@MpEngine@@QAEXAAVQString@@H@Z @ 19 NONAME ; void MpEngine::renamePlaylist(class QString &, int)
-	?handleUsbMtpEndEvent@MpEngine@@AAEXXZ @ 20 NONAME ; void MpEngine::handleUsbMtpEndEvent(void)
-	?playEmbedded@MpEngine@@QAEXABVXQSharableFile@@@Z @ 21 NONAME ; void MpEngine::playEmbedded(class XQSharableFile const &)
-	?skipForward@MpEngine@@QAEXXZ @ 22 NONAME ; void MpEngine::skipForward(void)
-	?staticMetaObject@MpEngine@@2UQMetaObject@@B @ 23 NONAME ; struct QMetaObject const MpEngine::staticMetaObject
-	?setShuffle@MpEngine@@QAEX_N@Z @ 24 NONAME ; void MpEngine::setShuffle(bool)
-	?openIsolatedCollection@MpEngine@@QAEXW4TCollectionContext@@@Z @ 25 NONAME ; void MpEngine::openIsolatedCollection(enum TCollectionContext)
-	?handleUsbMtpStartEvent@MpEngine@@AAEXXZ @ 26 NONAME ; void MpEngine::handleUsbMtpStartEvent(void)
-	?instance@MpEngine@@SAPAV1@XZ @ 27 NONAME ; class MpEngine * MpEngine::instance(void)
-	?openCollectionItem@MpEngine@@QAEXH@Z @ 28 NONAME ; void MpEngine::openCollectionItem(int)
-	?qt_metacall@MpEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int MpEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?playlistSaved@MpEngine@@IAEX_N@Z @ 30 NONAME ; void MpEngine::playlistSaved(bool)
-	?handleScanStarted@MpEngine@@QAEXXZ @ 31 NONAME ; void MpEngine::handleScanStarted(void)
-	?initialize@MpEngine@@QAEXW4MpViewMode@MpCommon@@VTUid@@@Z @ 32 NONAME ; void MpEngine::initialize(enum MpCommon::MpViewMode, class TUid)
-	?playbackData@MpEngine@@QAEPAVMpPlaybackData@@XZ @ 33 NONAME ; class MpPlaybackData * MpEngine::playbackData(void)
-	?handleOutstandingNoteClosing@MpEngine@@QAEXXZ @ 34 NONAME ; void MpEngine::handleOutstandingNoteClosing(void)
-	?stop@MpEngine@@QAEXXZ @ 35 NONAME ; void MpEngine::stop(void)
-	?setOutstandingPopup@MpEngine@@AAEXPAVHbPopup@@@Z @ 36 NONAME ; void MpEngine::setOutstandingPopup(class HbPopup *)
-	?back@MpEngine@@QAEXXZ @ 37 NONAME ; void MpEngine::back(void)
-	?libraryAboutToUpdate@MpEngine@@IAEXXZ @ 38 NONAME ; void MpEngine::libraryAboutToUpdate(void)
-	?openCollection@MpEngine@@QAEXW4TCollectionContext@@@Z @ 39 NONAME ; void MpEngine::openCollection(enum TCollectionContext)
-	?trUtf8@MpEngine@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString MpEngine::trUtf8(char const *, char const *, int)
-	?reopenCollection@MpEngine@@QAEXXZ @ 41 NONAME ; void MpEngine::reopenCollection(void)
-	?handleUsbEvent@MpEngine@@QAEXW4MpxUsbEvents@@@Z @ 42 NONAME ; void MpEngine::handleUsbEvent(enum MpxUsbEvents)
-	?songsDeleted@MpEngine@@IAEX_N@Z @ 43 NONAME ; void MpEngine::songsDeleted(bool)
-	?handleUsbMassStorageStartEvent@MpEngine@@AAEXXZ @ 44 NONAME ; void MpEngine::handleUsbMassStorageStartEvent(void)
-	?qt_metacast@MpEngine@@UAEPAXPBD@Z @ 45 NONAME ; void * MpEngine::qt_metacast(char const *)
-	?handleDiskEvent@MpEngine@@QAEXW4MpxDiskEvents@@@Z @ 46 NONAME ; void MpEngine::handleDiskEvent(enum MpxDiskEvents)
-	?verifyUsbBlocking@MpEngine@@QAE_N_N@Z @ 47 NONAME ; bool MpEngine::verifyUsbBlocking(bool)
-	?saveToPlaylist@MpEngine@@QAEXHAAV?$QList@H@@@Z @ 48 NONAME ; void MpEngine::saveToPlaylist(int, class QList<int> &)
-	?handleUsbMassStorageEndEvent@MpEngine@@AAEXXZ @ 49 NONAME ; void MpEngine::handleUsbMassStorageEndEvent(void)
-	?usbBlocked@MpEngine@@IAEX_N@Z @ 50 NONAME ; void MpEngine::usbBlocked(bool)
-	??0MpEngine@@AAE@XZ @ 51 NONAME ; MpEngine::MpEngine(void)
-	?handleUsbMtpNotActive@MpEngine@@AAEXXZ @ 52 NONAME ; void MpEngine::handleUsbMtpNotActive(void)
-	?tr@MpEngine@@SA?AVQString@@PBD0H@Z @ 53 NONAME ; class QString MpEngine::tr(char const *, char const *, int)
-	?trUtf8@MpEngine@@SA?AVQString@@PBD0@Z @ 54 NONAME ; class QString MpEngine::trUtf8(char const *, char const *)
-	?findPlaylists@MpEngine@@QAEXAAVQStringList@@@Z @ 55 NONAME ; void MpEngine::findPlaylists(class QStringList &)
-	?close@MpEngine@@QAEXXZ @ 56 NONAME ; void MpEngine::close(void)
-	?isolatedCollectionOpened@MpEngine@@IAEXPAVMpMpxCollectionData@@@Z @ 57 NONAME ; void MpEngine::isolatedCollectionOpened(class MpMpxCollectionData *)
-	?handleScanEnded@MpEngine@@QAEXHH@Z @ 58 NONAME ; void MpEngine::handleScanEnded(int, int)
-	?previewItem@MpEngine@@QAEXH@Z @ 59 NONAME ; void MpEngine::previewItem(int)
-	?skipBackward@MpEngine@@QAEXXZ @ 60 NONAME ; void MpEngine::skipBackward(void)
-	??1MpEngine@@UAE@XZ @ 61 NONAME ; MpEngine::~MpEngine(void)
-	??_EMpEngine@@UAE@I@Z @ 62 NONAME ; MpEngine::~MpEngine(unsigned int)
-	?changeUsbBlockingState@MpEngine@@AAEXW4UsbBlockingState@1@@Z @ 63 NONAME ; void MpEngine::changeUsbBlockingState(enum MpEngine::UsbBlockingState)
-	?deleteSongs@MpEngine@@QAEXAAV?$QList@H@@@Z @ 64 NONAME ; void MpEngine::deleteSongs(class QList<int> &)
-	?reorderPlaylist@MpEngine@@QAEXHHHH@Z @ 65 NONAME ; void MpEngine::reorderPlaylist(int, int, int, int)
+	?instance@MpEngineFactory@@SAPAV1@XZ @ 1 NONAME ; class MpEngineFactory * MpEngineFactory::instance(void)
+	?saveToCurrentPlaylist@MpEngine@@QAEXAAV?$QList@H@@PAVMpMpxCollectionData@@@Z @ 2 NONAME ; void MpEngine::saveToCurrentPlaylist(class QList<int> &, class MpMpxCollectionData *)
+	?handleDeleteStarted@MpEngine@@QAEXW4TCollectionContext@@H@Z @ 3 NONAME ; void MpEngine::handleDeleteStarted(enum TCollectionContext, int)
+	?collectionData@MpEngine@@QAEPAVMpMpxCollectionData@@XZ @ 4 NONAME ; class MpMpxCollectionData * MpEngine::collectionData(void)
+	?createPlaylist@MpEngine@@QAEXAAVQString@@AAV?$QList@H@@PAVMpMpxCollectionData@@@Z @ 5 NONAME ; void MpEngine::createPlaylist(class QString &, class QList<int> &, class MpMpxCollectionData *)
+	?collectionPlaylistOpened@MpEngine@@IAEXXZ @ 6 NONAME ; void MpEngine::collectionPlaylistOpened(void)
+	?renamePlaylist@MpEngine@@QAEXAAVQString@@H@Z @ 7 NONAME ; void MpEngine::renamePlaylist(class QString &, int)
+	?scanCountChanged@MpSongScanner@@IAEXH@Z @ 8 NONAME ; void MpSongScanner::scanCountChanged(int)
+	?handleUsbMtpEndEvent@MpEngine@@AAEXXZ @ 9 NONAME ; void MpEngine::handleUsbMtpEndEvent(void)
+	?setBalance@MpEngine@@QAEXH@Z @ 10 NONAME ; void MpEngine::setBalance(int)
+	?playAlbumSongs@MpEngine@@QAEXHHPAVMpMpxCollectionData@@@Z @ 11 NONAME ; void MpEngine::playAlbumSongs(int, int, class MpMpxCollectionData *)
+	?setShuffle@MpEngine@@QAEX_N@Z @ 12 NONAME ; void MpEngine::setShuffle(bool)
+	?openIsolatedCollection@MpEngine@@QAEXW4TCollectionContext@@@Z @ 13 NONAME ; void MpEngine::openIsolatedCollection(enum TCollectionContext)
+	?usbSynchronizationFinished@MpEngine@@IAEXXZ @ 14 NONAME ; void MpEngine::usbSynchronizationFinished(void)
+	?qt_metacall@MpEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 15 NONAME ; int MpEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?playlistSaved@MpEngine@@IAEX_N@Z @ 16 NONAME ; void MpEngine::playlistSaved(bool)
+	?playbackData@MpEngine@@QAEPAVMpPlaybackData@@XZ @ 17 NONAME ; class MpPlaybackData * MpEngine::playbackData(void)
+	?stop@MpEngine@@QAEXXZ @ 18 NONAME ; void MpEngine::stop(void)
+	?retrieveSong@MpEngine@@QAEXXZ @ 19 NONAME ; void MpEngine::retrieveSong(void)
+	?scan@MpSongScanner@@QAEX_N@Z @ 20 NONAME ; void MpSongScanner::scan(bool)
+	?openCollection@MpEngine@@QAEXW4TCollectionContext@@@Z @ 21 NONAME ; void MpEngine::openCollection(enum TCollectionContext)
+	??0MpEngineFactory@@AAE@XZ @ 22 NONAME ; MpEngineFactory::MpEngineFactory(void)
+	?libraryRefreshNeeded@MpEngine@@IAEXXZ @ 23 NONAME ; void MpEngine::libraryRefreshNeeded(void)
+	?handleDiskEvent@MpSongScanner@@QAEXW4MpxDiskEvents@@@Z @ 24 NONAME ; void MpSongScanner::handleDiskEvent(enum MpxDiskEvents)
+	?tr@MpEngine@@SA?AVQString@@PBD0H@Z @ 25 NONAME ; class QString MpEngine::tr(char const *, char const *, int)
+	?trUtf8@MpEngine@@SA?AVQString@@PBD0@Z @ 26 NONAME ; class QString MpEngine::trUtf8(char const *, char const *)
+	?presetNames@MpEngine@@QAE?AVQStringList@@XZ @ 27 NONAME ; class QStringList MpEngine::presetNames(void)
+	?previewItem@MpEngine@@QAEXH@Z @ 28 NONAME ; void MpEngine::previewItem(int)
+	??1MpSongScanner@@UAE@XZ @ 29 NONAME ; MpSongScanner::~MpSongScanner(void)
+	?loudness@MpEngine@@QAE_NXZ @ 30 NONAME ; bool MpEngine::loudness(void)
+	?deleteSongs@MpEngine@@QAEXAAV?$QList@H@@@Z @ 31 NONAME ; void MpEngine::deleteSongs(class QList<int> &)
+	?releaseIsolatedCollection@MpEngine@@QAEXXZ @ 32 NONAME ; void MpEngine::releaseIsolatedCollection(void)
+	?deleteStarted@MpEngine@@IAEXW4TCollectionContext@@H@Z @ 33 NONAME ; void MpEngine::deleteStarted(enum TCollectionContext, int)
+	?stopSeeking@MpEngine@@QAEXXZ @ 34 NONAME ; void MpEngine::stopSeeking(void)
+	?initialize@MpEngine@@AAEXVTUid@@W4EngineMode@1@@Z @ 35 NONAME ; void MpEngine::initialize(class TUid, enum MpEngine::EngineMode)
+	?tr@MpEngine@@SA?AVQString@@PBD0@Z @ 36 NONAME ; class QString MpEngine::tr(char const *, char const *)
+	?disableEqualizer@MpEngine@@QAEXXZ @ 37 NONAME ; void MpEngine::disableEqualizer(void)
+	?getStaticMetaObject@MpEngine@@SAABUQMetaObject@@XZ @ 38 NONAME ; struct QMetaObject const & MpEngine::getStaticMetaObject(void)
+	?qt_metacast@MpEngineFactory@@UAEPAXPBD@Z @ 39 NONAME ; void * MpEngineFactory::qt_metacast(char const *)
+	?libraryUpdated@MpEngine@@IAEXXZ @ 40 NONAME ; void MpEngine::libraryUpdated(void)
+	??0MpSongScanner@@QAE@PAVMpMpxHarvesterFrameworkWrapper@@PAVQObject@@@Z @ 41 NONAME ; MpSongScanner::MpSongScanner(class MpMpxHarvesterFrameworkWrapper *, class QObject *)
+	?checkForSystemEvents@MpEngine@@QAEXXZ @ 42 NONAME ; void MpEngine::checkForSystemEvents(void)
+	?applyPreset@MpEngine@@QAEXH@Z @ 43 NONAME ; void MpEngine::applyPreset(int)
+	?trUtf8@MpEngineFactory@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString MpEngineFactory::trUtf8(char const *, char const *, int)
+	?staticMetaObject@MpEngine@@2UQMetaObject@@B @ 45 NONAME ; struct QMetaObject const MpEngine::staticMetaObject
+	?scanStarted@MpSongScanner@@IAEXXZ @ 46 NONAME ; void MpSongScanner::scanStarted(void)
+	?unableToCotinueDueUSB@MpEngine@@IAEXXZ @ 47 NONAME ; void MpEngine::unableToCotinueDueUSB(void)
+	?openCollectionItem@MpEngine@@QAEXH@Z @ 48 NONAME ; void MpEngine::openCollectionItem(int)
+	?handleScanStarted@MpEngine@@QAEXXZ @ 49 NONAME ; void MpEngine::handleScanStarted(void)
+	?back@MpEngine@@QAEXXZ @ 50 NONAME ; void MpEngine::back(void)
+	?tr@MpSongScanner@@SA?AVQString@@PBD0H@Z @ 51 NONAME ; class QString MpSongScanner::tr(char const *, char const *, int)
+	?songScanner@MpEngine@@QAEPAVMpSongScanner@@XZ @ 52 NONAME ; class MpSongScanner * MpEngine::songScanner(void)
+	?handleUsbMassStorageStartEvent@MpEngine@@AAEXXZ @ 53 NONAME ; void MpEngine::handleUsbMassStorageStartEvent(void)
+	?saveActivityData@MpEngine@@QAEXAAVQByteArray@@@Z @ 54 NONAME ; void MpEngine::saveActivityData(class QByteArray &)
+	?handleDeleteEnded@MpEngine@@QAEX_N@Z @ 55 NONAME ; void MpEngine::handleDeleteEnded(bool)
+	?handleDiskEvent@MpEngine@@QAEXW4MpxDiskEvents@@@Z @ 56 NONAME ; void MpEngine::handleDiskEvent(enum MpxDiskEvents)
+	?verifyUsbBlocking@MpEngine@@QAE_N_N@Z @ 57 NONAME ; bool MpEngine::verifyUsbBlocking(bool)
+	?usbSynchronizationStarted@MpEngine@@IAEXXZ @ 58 NONAME ; void MpEngine::usbSynchronizationStarted(void)
+	?handleUsbMassStorageEndEvent@MpEngine@@AAEXXZ @ 59 NONAME ; void MpEngine::handleUsbMassStorageEndEvent(void)
+	?getStaticMetaObject@MpSongScanner@@SAABUQMetaObject@@XZ @ 60 NONAME ; struct QMetaObject const & MpSongScanner::getStaticMetaObject(void)
+	?getStaticMetaObject@MpEngineFactory@@SAABUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const & MpEngineFactory::getStaticMetaObject(void)
+	??0MpEngine@@AAE@XZ @ 62 NONAME ; MpEngine::MpEngine(void)
+	?isolatedCollectionOpened@MpEngine@@IAEXPAVMpMpxCollectionData@@@Z @ 63 NONAME ; void MpEngine::isolatedCollectionOpened(class MpMpxCollectionData *)
+	?aboutToAddSongs@MpEngine@@IAEXH@Z @ 64 NONAME ; void MpEngine::aboutToAddSongs(int)
+	??1MpEngine@@UAE@XZ @ 65 NONAME ; MpEngine::~MpEngine(void)
+	?changeUsbBlockingState@MpEngine@@AAEXW4UsbBlockingState@1@@Z @ 66 NONAME ; void MpEngine::changeUsbBlockingState(enum MpEngine::UsbBlockingState)
+	?metaObject@MpEngine@@UBEPBUQMetaObject@@XZ @ 67 NONAME ; struct QMetaObject const * MpEngine::metaObject(void) const
+	??_EMpSongScanner@@UAE@I@Z @ 68 NONAME ; MpSongScanner::~MpSongScanner(unsigned int)
+	?createIsolatedEngine@MpEngineFactory@@SAPAVMpEngine@@W4EngineMode@2@@Z @ 69 NONAME ; class MpEngine * MpEngineFactory::createIsolatedEngine(enum MpEngine::EngineMode)
+	?equalizerReady@MpEngine@@IAEXXZ @ 70 NONAME ; void MpEngine::equalizerReady(void)
+	?findAlbumSongs@MpEngine@@QAEXH@Z @ 71 NONAME ; void MpEngine::findAlbumSongs(int)
+	?setPosition@MpEngine@@QAEXH@Z @ 72 NONAME ; void MpEngine::setPosition(int)
+	?metaObject@MpEngineFactory@@UBEPBUQMetaObject@@XZ @ 73 NONAME ; struct QMetaObject const * MpEngineFactory::metaObject(void) const
+	?handleEqualizerReady@MpEngine@@QAEXXZ @ 74 NONAME ; void MpEngine::handleEqualizerReady(void)
+	?tr@MpSongScanner@@SA?AVQString@@PBD0@Z @ 75 NONAME ; class QString MpSongScanner::tr(char const *, char const *)
+	??_EMpEngineFactory@@UAE@I@Z @ 76 NONAME ; MpEngineFactory::~MpEngineFactory(unsigned int)
+	?skipForward@MpEngine@@QAEXXZ @ 77 NONAME ; void MpEngine::skipForward(void)
+	?songData@MpEngine@@QAEPAVMpSongData@@XZ @ 78 NONAME ; class MpSongData * MpEngine::songData(void)
+	?trUtf8@MpSongScanner@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString MpSongScanner::trUtf8(char const *, char const *, int)
+	?close@MpEngineFactory@@SAXXZ @ 80 NONAME ; void MpEngineFactory::close(void)
+	?libraryAboutToUpdate@MpEngine@@IAEXXZ @ 81 NONAME ; void MpEngine::libraryAboutToUpdate(void)
+	?reopenCollection@MpEngine@@QAEXXZ @ 82 NONAME ; void MpEngine::reopenCollection(void)
+	?trUtf8@MpEngine@@SA?AVQString@@PBD0H@Z @ 83 NONAME ; class QString MpEngine::trUtf8(char const *, char const *, int)
+	?songsDeleted@MpEngine@@IAEX_N@Z @ 84 NONAME ; void MpEngine::songsDeleted(bool)
+	?refreshLibrary@MpEngine@@QAEX_N@Z @ 85 NONAME ; void MpEngine::refreshLibrary(bool)
+	?qt_metacast@MpEngine@@UAEPAXPBD@Z @ 86 NONAME ; void * MpEngine::qt_metacast(char const *)
+	?startSeekForward@MpEngine@@QAEXXZ @ 87 NONAME ; void MpEngine::startSeekForward(void)
+	?saveToPlaylist@MpEngine@@QAEXHAAV?$QList@H@@@Z @ 88 NONAME ; void MpEngine::saveToPlaylist(int, class QList<int> &)
+	?qt_metacall@MpEngineFactory@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 89 NONAME ; int MpEngineFactory::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@MpSongScanner@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 90 NONAME ; int MpSongScanner::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@MpEngineFactory@@SA?AVQString@@PBD0H@Z @ 91 NONAME ; class QString MpEngineFactory::tr(char const *, char const *, int)
+	?findPlaylists@MpEngine@@QAEXAAVQStringList@@@Z @ 92 NONAME ; void MpEngine::findPlaylists(class QStringList &)
+	?isAutomaticScan@MpSongScanner@@QAE_NXZ @ 93 NONAME ; bool MpSongScanner::isAutomaticScan(void)
+	??1MpEngineFactory@@UAE@XZ @ 94 NONAME ; MpEngineFactory::~MpEngineFactory(void)
+	?staticMetaObject@MpEngineFactory@@2UQMetaObject@@B @ 95 NONAME ; struct QMetaObject const MpEngineFactory::staticMetaObject
+	?playEmbedded@MpEngine@@QAEXVQString@@@Z @ 96 NONAME ; void MpEngine::playEmbedded(class QString)
+	?shuffleAll@MpEngine@@QAEXXZ @ 97 NONAME ; void MpEngine::shuffleAll(void)
+	?metaObject@MpSongScanner@@UBEPBUQMetaObject@@XZ @ 98 NONAME ; struct QMetaObject const * MpSongScanner::metaObject(void) const
+	?renamePlaylist@MpEngine@@QAEXAAVQString@@@Z @ 99 NONAME ; void MpEngine::renamePlaylist(class QString &)
+	?setRepeat@MpEngine@@QAEX_N@Z @ 100 NONAME ; void MpEngine::setRepeat(bool)
+	?cancelCollectionRequest@MpEngine@@QAEXXZ @ 101 NONAME ; void MpEngine::cancelCollectionRequest(void)
+	?trUtf8@MpEngineFactory@@SA?AVQString@@PBD0@Z @ 102 NONAME ; class QString MpEngineFactory::trUtf8(char const *, char const *)
+	?containerContentsChanged@MpEngine@@IAEXXZ @ 103 NONAME ; void MpEngine::containerContentsChanged(void)
+	?playPause@MpEngine@@QAEXXZ @ 104 NONAME ; void MpEngine::playPause(void)
+	?playlistsRenamed@MpEngine@@IAEX_N@Z @ 105 NONAME ; void MpEngine::playlistsRenamed(bool)
+	?startSeekBackward@MpEngine@@QAEXXZ @ 106 NONAME ; void MpEngine::startSeekBackward(void)
+	?tr@MpEngineFactory@@SA?AVQString@@PBD0@Z @ 107 NONAME ; class QString MpEngineFactory::tr(char const *, char const *)
+	?playEmbedded@MpEngine@@QAEXABVXQSharableFile@@@Z @ 108 NONAME ; void MpEngine::playEmbedded(class XQSharableFile const &)
+	?handleUsbMtpStartEvent@MpEngine@@AAEXXZ @ 109 NONAME ; void MpEngine::handleUsbMtpStartEvent(void)
+	?cancelScan@MpSongScanner@@QAEXXZ @ 110 NONAME ; void MpSongScanner::cancelScan(void)
+	?trUtf8@MpSongScanner@@SA?AVQString@@PBD0@Z @ 111 NONAME ; class QString MpSongScanner::trUtf8(char const *, char const *)
+	?activePreset@MpEngine@@QAEHXZ @ 112 NONAME ; int MpEngine::activePreset(void)
+	?handleUsbEvent@MpEngine@@QAEXW4MpxUsbEvents@@@Z @ 113 NONAME ; void MpEngine::handleUsbEvent(enum MpxUsbEvents)
+	?loadActivityData@MpEngine@@QAEXABVQByteArray@@@Z @ 114 NONAME ; void MpEngine::loadActivityData(class QByteArray const &)
+	?sharedEngine@MpEngineFactory@@SAPAVMpEngine@@XZ @ 115 NONAME ; class MpEngine * MpEngineFactory::sharedEngine(void)
+	?balance@MpEngine@@QAEHXZ @ 116 NONAME ; int MpEngine::balance(void)
+	?createSharedEngine@MpEngineFactory@@SAPAVMpEngine@@VTUid@@W4EngineMode@2@@Z @ 117 NONAME ; class MpEngine * MpEngineFactory::createSharedEngine(class TUid, enum MpEngine::EngineMode)
+	?handleUsbMtpNotActive@MpEngine@@AAEXXZ @ 118 NONAME ; void MpEngine::handleUsbMtpNotActive(void)
+	?restorePathFailed@MpEngine@@IAEXXZ @ 119 NONAME ; void MpEngine::restorePathFailed(void)
+	?usbBlocked@MpEngine@@IAEX_N@Z @ 120 NONAME ; void MpEngine::usbBlocked(bool)
+	?handleScanEnded@MpSongScanner@@QAEXHH@Z @ 121 NONAME ; void MpSongScanner::handleScanEnded(int, int)
+	?staticMetaObject@MpSongScanner@@2UQMetaObject@@B @ 122 NONAME ; struct QMetaObject const MpSongScanner::staticMetaObject
+	?handleScanEnded@MpEngine@@QAEXHH@Z @ 123 NONAME ; void MpEngine::handleScanEnded(int, int)
+	??_EMpEngine@@UAE@I@Z @ 124 NONAME ; MpEngine::~MpEngine(unsigned int)
+	?skipBackward@MpEngine@@QAEXXZ @ 125 NONAME ; void MpEngine::skipBackward(void)
+	?qt_metacast@MpSongScanner@@UAEPAXPBD@Z @ 126 NONAME ; void * MpSongScanner::qt_metacast(char const *)
+	?reorderPlaylist@MpEngine@@QAEXHHHH@Z @ 127 NONAME ; void MpEngine::reorderPlaylist(int, int, int, int)
+	?scanFinished@MpSongScanner@@IAEXHH@Z @ 128 NONAME ; void MpSongScanner::scanFinished(int, int)
+	?setLoudness@MpEngine@@QAEX_N@Z @ 129 NONAME ; void MpEngine::setLoudness(bool)
 
--- a/mpengine/eabi/mpengineu.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/eabi/mpengineu.def	Thu Jul 22 16:32:33 2010 +0100
@@ -1,67 +1,131 @@
 EXPORTS
-	_ZN8MpEngine10initializeEN8MpCommon10MpViewModeE4TUid @ 1 NONAME
-	_ZN8MpEngine10setShuffleEb @ 2 NONAME
-	_ZN8MpEngine10usbBlockedEb @ 3 NONAME
-	_ZN8MpEngine11deleteSongsER5QListIiE @ 4 NONAME
-	_ZN8MpEngine11previewItemEi @ 5 NONAME
-	_ZN8MpEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
-	_ZN8MpEngine11qt_metacastEPKc @ 7 NONAME
-	_ZN8MpEngine11setPositionEi @ 8 NONAME
-	_ZN8MpEngine11skipForwardEv @ 9 NONAME
-	_ZN8MpEngine12playEmbeddedE7QString @ 10 NONAME
-	_ZN8MpEngine12playEmbeddedERK14XQSharableFile @ 11 NONAME
-	_ZN8MpEngine12playbackDataEv @ 12 NONAME
-	_ZN8MpEngine12skipBackwardEv @ 13 NONAME
-	_ZN8MpEngine12songsDeletedEb @ 14 NONAME
-	_ZN8MpEngine13findPlaylistsER11QStringList @ 15 NONAME
-	_ZN8MpEngine13playlistSavedEb @ 16 NONAME
-	_ZN8MpEngine14collectionDataEv @ 17 NONAME
-	_ZN8MpEngine14createPlaylistER7QStringR5QListIiEP19MpMpxCollectionData @ 18 NONAME
-	_ZN8MpEngine14handleUsbEventE12MpxUsbEvents @ 19 NONAME
-	_ZN8MpEngine14libraryUpdatedEv @ 20 NONAME
-	_ZN8MpEngine14openCollectionE18TCollectionContext @ 21 NONAME
-	_ZN8MpEngine14refreshLibraryEv @ 22 NONAME
-	_ZN8MpEngine14renamePlaylistER7QString @ 23 NONAME
-	_ZN8MpEngine14renamePlaylistER7QStringi @ 24 NONAME
-	_ZN8MpEngine14saveToPlaylistEiR5QListIiE @ 25 NONAME
-	_ZN8MpEngine15handleDiskEventE13MpxDiskEvents @ 26 NONAME
-	_ZN8MpEngine15handleScanEndedEii @ 27 NONAME
-	_ZN8MpEngine15reorderPlaylistEiiii @ 28 NONAME
-	_ZN8MpEngine16playlistsRenamedEb @ 29 NONAME
-	_ZN8MpEngine16reopenCollectionEv @ 30 NONAME
-	_ZN8MpEngine16staticMetaObjectE @ 31 NONAME DATA 16
-	_ZN8MpEngine17handleScanStartedEv @ 32 NONAME
-	_ZN8MpEngine17verifyUsbBlockingEb @ 33 NONAME
-	_ZN8MpEngine18launchBlockingNoteEv @ 34 NONAME
-	_ZN8MpEngine18openCollectionItemEi @ 35 NONAME
-	_ZN8MpEngine19getStaticMetaObjectEv @ 36 NONAME
-	_ZN8MpEngine19setOutstandingPopupEP7HbPopup @ 37 NONAME
-	_ZN8MpEngine20checkForSystemEventsEv @ 38 NONAME
-	_ZN8MpEngine20handleUsbMtpEndEventEv @ 39 NONAME
-	_ZN8MpEngine20libraryAboutToUpdateEv @ 40 NONAME
-	_ZN8MpEngine21handleUsbMtpNotActiveEv @ 41 NONAME
-	_ZN8MpEngine21saveToCurrentPlaylistER5QListIiEP19MpMpxCollectionData @ 42 NONAME
-	_ZN8MpEngine22changeUsbBlockingStateENS_16UsbBlockingStateE @ 43 NONAME
-	_ZN8MpEngine22handleUsbMtpStartEventEv @ 44 NONAME
-	_ZN8MpEngine22openIsolatedCollectionE18TCollectionContext @ 45 NONAME
-	_ZN8MpEngine24collectionPlaylistOpenedEv @ 46 NONAME
-	_ZN8MpEngine24isolatedCollectionOpenedEP19MpMpxCollectionData @ 47 NONAME
-	_ZN8MpEngine25releaseIsolatedCollectionEv @ 48 NONAME
-	_ZN8MpEngine28handleOutstandingNoteClosingEv @ 49 NONAME
-	_ZN8MpEngine28handleUsbMassStorageEndEventEv @ 50 NONAME
-	_ZN8MpEngine30handleUsbMassStorageStartEventEv @ 51 NONAME
-	_ZN8MpEngine4backEv @ 52 NONAME
-	_ZN8MpEngine4stopEv @ 53 NONAME
-	_ZN8MpEngine5closeEv @ 54 NONAME
-	_ZN8MpEngine8instanceEv @ 55 NONAME
-	_ZN8MpEngine9playPauseEv @ 56 NONAME
-	_ZN8MpEngine9setRepeatEb @ 57 NONAME
-	_ZN8MpEngineC1Ev @ 58 NONAME
-	_ZN8MpEngineC2Ev @ 59 NONAME
-	_ZN8MpEngineD0Ev @ 60 NONAME
-	_ZN8MpEngineD1Ev @ 61 NONAME
-	_ZN8MpEngineD2Ev @ 62 NONAME
-	_ZNK8MpEngine10metaObjectEv @ 63 NONAME
-	_ZTI8MpEngine @ 64 NONAME
-	_ZTV8MpEngine @ 65 NONAME
+	_ZN13MpSongScanner10cancelScanEv @ 1 NONAME
+	_ZN13MpSongScanner11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
+	_ZN13MpSongScanner11qt_metacastEPKc @ 3 NONAME
+	_ZN13MpSongScanner11scanStartedEv @ 4 NONAME
+	_ZN13MpSongScanner12scanFinishedEii @ 5 NONAME
+	_ZN13MpSongScanner15handleDiskEventE13MpxDiskEvents @ 6 NONAME
+	_ZN13MpSongScanner15handleScanEndedEii @ 7 NONAME
+	_ZN13MpSongScanner15isAutomaticScanEv @ 8 NONAME
+	_ZN13MpSongScanner16scanCountChangedEi @ 9 NONAME
+	_ZN13MpSongScanner16staticMetaObjectE @ 10 NONAME DATA 16
+	_ZN13MpSongScanner19getStaticMetaObjectEv @ 11 NONAME
+	_ZN13MpSongScanner4scanEb @ 12 NONAME
+	_ZN13MpSongScannerC1EP30MpMpxHarvesterFrameworkWrapperP7QObject @ 13 NONAME
+	_ZN13MpSongScannerC2EP30MpMpxHarvesterFrameworkWrapperP7QObject @ 14 NONAME
+	_ZN13MpSongScannerD0Ev @ 15 NONAME
+	_ZN13MpSongScannerD1Ev @ 16 NONAME
+	_ZN13MpSongScannerD2Ev @ 17 NONAME
+	_ZN15MpEngineFactory11qt_metacallEN11QMetaObject4CallEiPPv @ 18 NONAME
+	_ZN15MpEngineFactory11qt_metacastEPKc @ 19 NONAME
+	_ZN15MpEngineFactory12sharedEngineEv @ 20 NONAME
+	_ZN15MpEngineFactory16staticMetaObjectE @ 21 NONAME DATA 16
+	_ZN15MpEngineFactory18createSharedEngineE4TUidN8MpEngine10EngineModeE @ 22 NONAME
+	_ZN15MpEngineFactory19getStaticMetaObjectEv @ 23 NONAME
+	_ZN15MpEngineFactory20createIsolatedEngineEN8MpEngine10EngineModeE @ 24 NONAME
+	_ZN15MpEngineFactory5closeEv @ 25 NONAME
+	_ZN15MpEngineFactory8instanceEv @ 26 NONAME
+	_ZN15MpEngineFactoryC1Ev @ 27 NONAME
+	_ZN15MpEngineFactoryC2Ev @ 28 NONAME
+	_ZN15MpEngineFactoryD0Ev @ 29 NONAME
+	_ZN15MpEngineFactoryD1Ev @ 30 NONAME
+	_ZN15MpEngineFactoryD2Ev @ 31 NONAME
+	_ZN8MpEngine10initializeE4TUidNS_10EngineModeE @ 32 NONAME
+	_ZN8MpEngine10setBalanceEi @ 33 NONAME
+	_ZN8MpEngine10setShuffleEb @ 34 NONAME
+	_ZN8MpEngine10shuffleAllEv @ 35 NONAME
+	_ZN8MpEngine10usbBlockedEb @ 36 NONAME
+	_ZN8MpEngine11applyPresetEi @ 37 NONAME
+	_ZN8MpEngine11deleteSongsER5QListIiE @ 38 NONAME
+	_ZN8MpEngine11presetNamesEv @ 39 NONAME
+	_ZN8MpEngine11previewItemEi @ 40 NONAME
+	_ZN8MpEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 41 NONAME
+	_ZN8MpEngine11qt_metacastEPKc @ 42 NONAME
+	_ZN8MpEngine11setLoudnessEb @ 43 NONAME
+	_ZN8MpEngine11setPositionEi @ 44 NONAME
+	_ZN8MpEngine11skipForwardEv @ 45 NONAME
+	_ZN8MpEngine11songScannerEv @ 46 NONAME
+	_ZN8MpEngine11stopSeekingEv @ 47 NONAME
+	_ZN8MpEngine12activePresetEv @ 48 NONAME
+	_ZN8MpEngine12playEmbeddedE7QString @ 49 NONAME
+	_ZN8MpEngine12playEmbeddedERK14XQSharableFile @ 50 NONAME
+	_ZN8MpEngine12playbackDataEv @ 51 NONAME
+	_ZN8MpEngine12retrieveSongEv @ 52 NONAME
+	_ZN8MpEngine12skipBackwardEv @ 53 NONAME
+	_ZN8MpEngine12songsDeletedEb @ 54 NONAME
+	_ZN8MpEngine13deleteStartedE18TCollectionContexti @ 55 NONAME
+	_ZN8MpEngine13findPlaylistsER11QStringList @ 56 NONAME
+	_ZN8MpEngine13playlistSavedEb @ 57 NONAME
+	_ZN8MpEngine14collectionDataEv @ 58 NONAME
+	_ZN8MpEngine14createPlaylistER7QStringR5QListIiEP19MpMpxCollectionData @ 59 NONAME
+	_ZN8MpEngine14equalizerReadyEv @ 60 NONAME
+	_ZN8MpEngine14findAlbumSongsEi @ 61 NONAME
+	_ZN8MpEngine14handleUsbEventE12MpxUsbEvents @ 62 NONAME
+	_ZN8MpEngine14libraryUpdatedEv @ 63 NONAME
+	_ZN8MpEngine14openCollectionE18TCollectionContext @ 64 NONAME
+	_ZN8MpEngine14playAlbumSongsEiiP19MpMpxCollectionData @ 65 NONAME
+	_ZN8MpEngine14refreshLibraryEb @ 66 NONAME
+	_ZN8MpEngine14renamePlaylistER7QString @ 67 NONAME
+	_ZN8MpEngine14renamePlaylistER7QStringi @ 68 NONAME
+	_ZN8MpEngine14saveToPlaylistEiR5QListIiE @ 69 NONAME
+	_ZN8MpEngine15aboutToAddSongsEi @ 70 NONAME
+	_ZN8MpEngine15handleDiskEventE13MpxDiskEvents @ 71 NONAME
+	_ZN8MpEngine15handleScanEndedEii @ 72 NONAME
+	_ZN8MpEngine15reorderPlaylistEiiii @ 73 NONAME
+	_ZN8MpEngine16disableEqualizerEv @ 74 NONAME
+	_ZN8MpEngine16loadActivityDataERK10QByteArray @ 75 NONAME
+	_ZN8MpEngine16playlistsRenamedEb @ 76 NONAME
+	_ZN8MpEngine16reopenCollectionEv @ 77 NONAME
+	_ZN8MpEngine16saveActivityDataER10QByteArray @ 78 NONAME
+	_ZN8MpEngine16startSeekForwardEv @ 79 NONAME
+	_ZN8MpEngine16staticMetaObjectE @ 80 NONAME DATA 16
+	_ZN8MpEngine17handleDeleteEndedEb @ 81 NONAME
+	_ZN8MpEngine17handleScanStartedEv @ 82 NONAME
+	_ZN8MpEngine17restorePathFailedEv @ 83 NONAME
+	_ZN8MpEngine17startSeekBackwardEv @ 84 NONAME
+	_ZN8MpEngine17verifyUsbBlockingEb @ 85 NONAME
+	_ZN8MpEngine18openCollectionItemEi @ 86 NONAME
+	_ZN8MpEngine19getStaticMetaObjectEv @ 87 NONAME
+	_ZN8MpEngine19handleDeleteStartedE18TCollectionContexti @ 88 NONAME
+	_ZN8MpEngine20checkForSystemEventsEv @ 89 NONAME
+	_ZN8MpEngine20handleEqualizerReadyEv @ 90 NONAME
+	_ZN8MpEngine20handleUsbMtpEndEventEv @ 91 NONAME
+	_ZN8MpEngine20libraryAboutToUpdateEv @ 92 NONAME
+	_ZN8MpEngine20libraryRefreshNeededEv @ 93 NONAME
+	_ZN8MpEngine21handleUsbMtpNotActiveEv @ 94 NONAME
+	_ZN8MpEngine21saveToCurrentPlaylistER5QListIiEP19MpMpxCollectionData @ 95 NONAME
+	_ZN8MpEngine21unableToCotinueDueUSBEv @ 96 NONAME
+	_ZN8MpEngine22changeUsbBlockingStateENS_16UsbBlockingStateE @ 97 NONAME
+	_ZN8MpEngine22handleUsbMtpStartEventEv @ 98 NONAME
+	_ZN8MpEngine22openIsolatedCollectionE18TCollectionContext @ 99 NONAME
+	_ZN8MpEngine23cancelCollectionRequestEv @ 100 NONAME
+	_ZN8MpEngine24collectionPlaylistOpenedEv @ 101 NONAME
+	_ZN8MpEngine24containerContentsChangedEv @ 102 NONAME
+	_ZN8MpEngine24isolatedCollectionOpenedEP19MpMpxCollectionData @ 103 NONAME
+	_ZN8MpEngine25releaseIsolatedCollectionEv @ 104 NONAME
+	_ZN8MpEngine25usbSynchronizationStartedEv @ 105 NONAME
+	_ZN8MpEngine26usbSynchronizationFinishedEv @ 106 NONAME
+	_ZN8MpEngine28handleUsbMassStorageEndEventEv @ 107 NONAME
+	_ZN8MpEngine30handleUsbMassStorageStartEventEv @ 108 NONAME
+	_ZN8MpEngine4backEv @ 109 NONAME
+	_ZN8MpEngine4stopEv @ 110 NONAME
+	_ZN8MpEngine7balanceEv @ 111 NONAME
+	_ZN8MpEngine8loudnessEv @ 112 NONAME
+	_ZN8MpEngine8songDataEv @ 113 NONAME
+	_ZN8MpEngine9playPauseEv @ 114 NONAME
+	_ZN8MpEngine9setRepeatEb @ 115 NONAME
+	_ZN8MpEngineC1Ev @ 116 NONAME
+	_ZN8MpEngineC2Ev @ 117 NONAME
+	_ZN8MpEngineD0Ev @ 118 NONAME
+	_ZN8MpEngineD1Ev @ 119 NONAME
+	_ZN8MpEngineD2Ev @ 120 NONAME
+	_ZNK13MpSongScanner10metaObjectEv @ 121 NONAME
+	_ZNK15MpEngineFactory10metaObjectEv @ 122 NONAME
+	_ZNK8MpEngine10metaObjectEv @ 123 NONAME
+	_ZTI13MpSongScanner @ 124 NONAME
+	_ZTI15MpEngineFactory @ 125 NONAME
+	_ZTI8MpEngine @ 126 NONAME
+	_ZTV13MpSongScanner @ 127 NONAME
+	_ZTV15MpEngineFactory @ 128 NONAME
+	_ZTV8MpEngine @ 129 NONAME
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpaudioeffectsframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* 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: Framework wraper for Audio Effects
+*
+*/
+
+#ifndef MPAUDIOEFFECTSFRAMEWORKWRAPPER_H
+#define MPAUDIOEFFECTSFRAMEWORKWRAPPER_H
+
+#include <QObject>
+
+class MpAudioEffectsFrameworkWrapperPrivate;
+
+class MpAudioEffectsFrameworkWrapper : public QObject
+{
+    Q_OBJECT
+    friend class MpAudioEffectsFrameworkWrapperPrivate;
+
+public:
+    
+    explicit MpAudioEffectsFrameworkWrapper();
+    virtual ~MpAudioEffectsFrameworkWrapper();
+    
+    int balance();
+    bool loudness();
+    void setBalance( int balance );
+    void setLoudness( bool mode );
+    
+private: // data
+    
+    MpAudioEffectsFrameworkWrapperPrivate *d_ptr; //owned
+   
+};
+
+#endif /*MPAUDIOEFFECTSFRAMEWORKWRAPPER_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpaudioeffectsframeworkwrapper_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -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: Framework wraper for Audio Effects - Private.
+*
+*/
+
+#ifndef MPAUDIOEFFECTSFRAMEWORKWRAPPER_P_H
+#define MPAUDIOEFFECTSFRAMEWORKWRAPPER_P_H
+
+class CMPXAudioEffectProperties;
+
+class MpAudioEffectsFrameworkWrapperPrivate 
+{
+public:
+    
+    explicit MpAudioEffectsFrameworkWrapperPrivate(); 
+    virtual ~MpAudioEffectsFrameworkWrapperPrivate();
+    
+public:
+    
+    void init();
+    void setBalance( int balance );
+    void setLoudness( bool mode );
+    int  balance();
+    bool loudness();
+            
+private:
+    
+    void doInitL();
+    void saveToFile();
+             
+private: // data
+    
+    CMPXAudioEffectProperties     *mAudioEffectProperties; // owned
+    
+};
+
+#endif /*MPAUDIOEFFECTSFRAMEWORKWRAPPER_P_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpequalizerframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* 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: Wrapper for equalizer framework
+*
+*/
+
+#ifndef MPEQUALIZERFRAMEWORKWRAPPER_H
+#define MPEQUALIZERFRAMEWORKWRAPPER_H
+
+// System includes
+#include <QObject>
+#include <QStringList>
+
+class MpEqualizerFrameworkWrapperPrivate;
+
+/**
+ *  Wrapper for equalizer framework
+ */
+class MpEqualizerFrameworkWrapper : public QObject
+    {
+    Q_OBJECT
+    Q_PROPERTY(QStringList presetNames READ presetNames)
+    
+public:
+
+    explicit MpEqualizerFrameworkWrapper( QObject *parent = 0 );
+    virtual ~MpEqualizerFrameworkWrapper();
+
+    int getPresetNameKey( int presetIndex );
+    int getPresetIndex( int presetNameKey );
+    QStringList presetNames();
+
+signals:
+    void equalizerReady();
+
+private:
+
+    Q_DISABLE_COPY(MpEqualizerFrameworkWrapper)
+    MpEqualizerFrameworkWrapperPrivate *d_ptr;
+
+    friend class MpEqualizerFrameworkWrapperPrivate;
+    };
+
+#endif // MPEQUALIZERFRAMEWORKWRAPPER_H
+
+//End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpequalizerframeworkwrapper_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* 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: Wrapper for equalizer framework - private implementation.
+*
+*/
+
+#ifndef MPEQUALIZERFRAMEWORKWRAPPER_P_H
+#define MPEQUALIZERFRAMEWORKWRAPPER_P_H
+
+// System includes
+#include <e32base.h>
+#include <mdaaudiosampleplayer.h>
+
+// FORWARD DECLARATIONS
+class CAudioEqualizerUtility;
+
+class MpEqualizerFrameworkWrapperPrivate : public CBase,
+                                           public MMdaAudioPlayerCallback
+    {
+public:
+
+    MpEqualizerFrameworkWrapperPrivate( MpEqualizerFrameworkWrapper *wrapper );
+    virtual ~MpEqualizerFrameworkWrapperPrivate();
+
+    void init();
+    int getPresetNameKey( int presetIndex );
+    int getPresetIndex( int presetNameKey );
+    QStringList presetNames();
+
+private:
+
+    void DoInitL();
+    TInt DoGetPresetNameKeyL( const TInt presetIndex ) const; 
+    void MapcInitComplete( TInt aError, 
+                           const TTimeIntervalMicroSeconds& aDuration );
+    void MapcPlayComplete( TInt aError );
+    
+private: 
+
+    MpEqualizerFrameworkWrapper *q_ptr;    
+    CMdaAudioPlayerUtility* mMdaPlayUtility;
+    CAudioEqualizerUtility* mEqualizerUtility;
+    };
+
+#endif // MPEQUALIZERFRAMEWORKWRAPPER_P_H
+
+//End of File
--- a/mpengine/inc/mpmediakeyhandler.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmediakeyhandler.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef MPMEDIAKEYHANDLER_H
 #define MPMEDIAKEYHANDLER_H
 
-#include <qobject>
+#include <QObject>
 
 class MpMediaKeyHandlerPrivate;
 
--- a/mpengine/inc/mpmpxcollectionframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmpxcollectionframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -36,39 +36,54 @@
 
 public:
 
-    explicit MpMpxCollectionFrameworkWrapper( 
-                MpCommon::MpViewMode viewMode=MpCommon::DefaultView, TUid hostUid = TUid::Uid( MpCommon::KMusicPlayerUid ), QObject *parent=0 );
+    explicit MpMpxCollectionFrameworkWrapper( TUid hostUid = TUid::Uid( MpCommon::KMusicPlayerUid ), QObject *parent=0 );
     virtual ~MpMpxCollectionFrameworkWrapper();
 
     void openCollection( TCollectionContext context );
     void openCollectionItem( int index );
     void back();
     void findPlaylists( QStringList &playlists );
-    void createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData = 0  );
+    void createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData );
     void saveToPlaylist( int playlistIndex, QList<int> &selection );
     void saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData );    
     void renamePlaylist( QString &newName, int index );
     void renamePlaylist( QString &newName );
     void deleteSongs( QList<int> &selection );
     void setShuffle( bool active );
+    void cancelRequest();
     
     void previewItem( int index );
     void openIsolatedCollection( TCollectionContext context );
     void releaseIsolatedCollection();
-    
+
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData );
+
     MpMpxCollectionData *collectionData();
     
     void reopenCollection();
     void reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal );
+    void setRepeatFeatureEnabled( bool enable );
+    void setShuffleFeatureEnabled( bool enable );
+   
+    void openShuffleAllSongsPath();
+    
+    void savePath( QByteArray &data );
+    void restorePath( const QByteArray &data ); 
     
 signals:
 
     void collectionPlaylistOpened();
     void playlistSaved( bool success );
+    void deleteStarted(TCollectionContext context, int Count);
     void songsDeleted( bool success );
     void playlistsRenamed( bool success );
+    void aboutToAddSongs( int count );
     
     void isolatedCollectionOpened( MpMpxCollectionData* collectionData );
+    
+    void containerContentsChanged();
+    void restorePathFailed();
 
 private:
 
--- a/mpengine/inc/mpmpxcollectionframeworkwrapper_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmpxcollectionframeworkwrapper_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -24,7 +24,7 @@
 
 #include "mpmpxisolatedcollectionhelper.h" //MMpMpxIsolatedCollectionHelperObserver
 #include "mpmpxcollectionviewdefs.h"
-#include "mpcommondefs.h"
+
 
 class MMPXCollectionUtility;
 class MMPXCollectionUiHelper;
@@ -37,14 +37,30 @@
 
 class MpMpxCollectionFrameworkWrapperPrivate : public MMPXCollectionObserver,
                                      public MMPXCHelperObserver,
-                                     public MMpMpxIsolatedCollectionHelperObserver
+                                     public MMpMpxIsolatedCollectionHelperObserver,
+                                     public MMPXCollectionFindObserver
 {
+
+private:
+    //Keep in sync with TMCBrowseType in mpxcollectiondb.hrh
+    enum MpBrowseType{
+        BrowseAll = 0,
+        BrowsePlaylist,
+        BrowseArtist,
+        BrowseAlbum,
+        BrowsePodcasts,
+        BrowseGenre,
+        BrowseComposer,        
+        BrowseAlbumSong, 
+        BrowseAlbumMediaWall 
+    };
+    
 public:
 
     explicit MpMpxCollectionFrameworkWrapperPrivate( MpMpxCollectionFrameworkWrapper *wrapper );
     virtual ~MpMpxCollectionFrameworkWrapperPrivate();
 
-    void init( MpCommon::MpViewMode viewMode, TUid hostUid );
+    void init( TUid hostUid );
     void openCollection( TCollectionContext context );
     void openCollectionItem( int index );
     void reopenCollection();
@@ -61,8 +77,17 @@
     void openIsolatedCollection( TCollectionContext context );
     void releaseIsolatedCollection();
     void reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal );
-
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData );
+    void setRepeatFeatureEnabled( bool enable );
+    void setShuffleFeatureEnabled( bool enable );
+    void cancel();
+    
     MpMpxCollectionData *collectionData();
+    void openShuffleAllSongsPath();
+    
+    void savePath( QByteArray &data );
+    void restorePath( const QByteArray &data );
 
 private:
 
@@ -74,7 +99,9 @@
     void HandleCollectionMediaL( const CMPXMedia& aMedia, TInt aError );
     void HandleOperationCompleteL( TCHelperOperation aOperation, TInt aErr, void* aArgument );
     void HandleIsolatedOpenL( const CMPXMedia& aEntries, TInt aError );
-    
+    void HandleIsolatedOpenRestorePathL( const CMPXCollectionPath& aPath, TInt aError );
+    void HandleFindAllL( const CMPXMedia& aResults, TBool aComplete, TInt aError );
+
     void DoInitL();
     void DoOpenCollectionL( TCollectionContext aContext );
     void DoOpenCollectionItemL( TInt aIndex );
@@ -87,17 +114,27 @@
     void DoSaveToPlaylistL( int playlistIndex, QList<int> &selection );
     
     void DoDeleteSongsL( QList<int> &selection );
+    void DoDeleteAlbumSongsL( QList<int> &selection );
     void DoRenamePlaylistL( QString &newName, int index );
     void DoRenamePlaylistL( QString &newname );
     void DoRenamePlaylistL( TMPXItemId id, QString &newName );
     void DoSaveToCurrentPlaylistL( QList<int> &selection, MpMpxCollectionData *collectionData );
     void DoSetShuffleL( bool active );
-    void DoPreviewItemL( int index );
+    void DoPreviewSongL( int index );
+    void DoPreviewAlbumSongL( int index );
     void DoOpenIsolatedCollectionL( TCollectionContext context );
     void DoReorderPlaylistL( int playlistId, int songId, int originalOrdinal, int newOrdinal );
+    void DoFindAlbumSongsL( int index );
+    void DoPlayAlbumSongsL( int albumIndex, int songIndex, MpMpxCollectionData* collectionData );
+
     void DoHandleCollectionMessageL( const CMPXMessage& aMsg );
+    void DoHandleItemChangedMessageL( const CMPXMessage& aMsg );
 
     void PreparePlaylistMediaL( CMPXMedia& aMedia, QList<int> &selection, MpMpxCollectionData *collectionData );
+    void createPlaybackUtilityL();
+    void DoPlayAllSongsPlaylistL();
+    void DoSavePathL( QByteArray &data );
+    void DoRestorePathL( const QByteArray &data );
 
 private:
 
@@ -113,8 +150,14 @@
     TBool                             iFirstIncrementalOpen;
     CMPXMedia                         *iUserPlaylists;          // Owned
     TInt                              iNumItemsAdded;
-    MpCommon::MpViewMode              iViewMode;
     TUid                              mHostUid;
+    TBool                             iRepeatFeature;
+    TBool                             iShuffleFeature;
+    TBool                             iReopen;
+    TBool                             iShuffleAll;
+    TBool                             iRestoreDefaultPath;
+    TInt                              iRestorePathIndex;
+    TMPXItemId                        iRestorePathIndexId;
 
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpmpxdetailsframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -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: Framework wrapper 
+*
+*/
+
+#ifndef MPMPXDETAILSFRAMEWORKWRAPPER_H_
+#define MPMPXDETAILSFRAMEWORKWRAPPER_H_
+
+//includes
+#include <QObject>
+
+//forward declartions
+class MpSongData;
+class MpMpxDetailsFrameworkWrapperPrivate;
+
+//class declaration
+class MpMpxDetailsFrameworkWrapper : public QObject
+{
+    Q_OBJECT
+    friend class MpMpxDetailsFrameworkWrapperPrivate;
+
+public:
+    explicit MpMpxDetailsFrameworkWrapper( TUid hostUid, QObject *parent=0 );
+    virtual ~MpMpxDetailsFrameworkWrapper();
+    
+    MpSongData *songData();
+   
+public:
+    void retrieveSong();
+    
+private:
+    Q_DISABLE_COPY( MpMpxDetailsFrameworkWrapper )
+    MpMpxDetailsFrameworkWrapperPrivate *d_ptr; //owned
+};
+
+
+#endif /* MPMPXDETAILSFRAMEWORKWRAPPER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpmpxdetailsframeworkwrapper_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,67 @@
+/*
+* 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: Framework wrapper - Private.
+*
+*/
+
+
+#ifndef MPMPXDETAILSFRAMEWORKWRAPPER_P_H_
+#define MPMPXDETAILSFRAMEWORKWRAPPER_P_H_
+
+#include <QObject>
+#include <mpxplaybackobserver.h>
+
+//forward declartions
+class MMPXPlaybackUtility;
+class MpMpxDetailsFrameworkWrapper;
+class CMPXMedia;
+class MpSongData;
+
+//class declaration
+class MpMpxDetailsFrameworkWrapperPrivate : public MMPXPlaybackObserver,
+                                            public MMPXPlaybackCallback
+{
+
+public:
+    explicit MpMpxDetailsFrameworkWrapperPrivate( MpMpxDetailsFrameworkWrapper *qq );
+    virtual ~MpMpxDetailsFrameworkWrapperPrivate();
+    
+    void init( TUid hostUid );
+    
+public: //from MMPXPlaybackObserver
+    void HandlePlaybackMessage( CMPXMessage *aMessage, TInt aError );
+    
+public: //from MMPXPlaybackCallback
+    void HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError );
+    void HandleSubPlayerNamesL( TUid aPlayer, const MDesCArray *aSubPlayers,
+                                TBool aComplete, TInt aError );
+    void HandleMediaL( const CMPXMedia& aProperties, TInt aError );
+    
+public:
+    MpSongData *songData();
+    void retrieveSong();
+    
+private:
+    void DoInitL();
+    void doRetrieveSongL();
+    
+private:
+    MpMpxDetailsFrameworkWrapper             *q_ptr; //not owned
+    MpSongData                               *iSongData; // not owned
+    MMPXPlaybackUtility                      *iPlaybackUtility; // owned
+    TUid                                     mHostUid;
+};
+
+
+#endif /* MPMPXDETAILSFRAMEWORKWRAPPER_P_H_ */
--- a/mpengine/inc/mpmpxharvesterframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmpxharvesterframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -23,10 +23,6 @@
 #include "mpcommondefs.h"
 
 class MpMpxHarvesterFrameworkWrapperPrivate;
-class MpSongScannerHelper;
-class HbNotificationDialog;
-class QStringList;
-class QTranslator;
 
 class MpMpxHarvesterFrameworkWrapper : public QObject
 {
@@ -36,8 +32,7 @@
 
 public:
 
-    explicit MpMpxHarvesterFrameworkWrapper( 
-                MpCommon::MpViewMode viewMode=MpCommon::DefaultView, TUid hostUid = TUid::Uid( MpCommon::KMusicPlayerUid ), QObject *parent=0 );
+    explicit MpMpxHarvesterFrameworkWrapper( TUid hostUid = TUid::Uid( MpCommon::KMusicPlayerUid ), QObject *parent=0 );
     virtual ~MpMpxHarvesterFrameworkWrapper();
 
     void scan();
--- a/mpengine/inc/mpmpxharvesterframeworkwrapper_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmpxharvesterframeworkwrapper_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -35,7 +35,7 @@
     explicit MpMpxHarvesterFrameworkWrapperPrivate( MpMpxHarvesterFrameworkWrapper *wrapper );
     virtual ~MpMpxHarvesterFrameworkWrapperPrivate();
 
-    void init( MpCommon::MpViewMode viewMode, TUid hostUid );
+    void init( TUid hostUid );
     void scan();
     void cancelScan();
     void checkForSystemEvents();
@@ -64,7 +64,6 @@
     TInt                            iNumItemsAdded;
     TBool                           iScanning;
     TInt                            iPreviousBroadCastMsg;
-    MpCommon::MpViewMode            iViewMode;
     TUid                            mHostUid;
 
 };
--- a/mpengine/inc/mpmpxisolatedcollectionhelper.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmpxisolatedcollectionhelper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -23,6 +23,7 @@
 class CMPXCollectionOpenUtility;
 class CMPXCollectionPath;
 
+const TInt KIncrementalNullOffset = 0;
 /*!
     \class MpMpxIsolatedCollectionHelperObserver
     \brief Observer interface for class CMpMpxIsolatedCollectionHelper
@@ -35,17 +36,23 @@
 
     virtual void HandleIsolatedOpenL( const CMPXMedia& aEntries, 
             TInt aError ) = 0;
+    
+    virtual void HandleIsolatedOpenRestorePathL( const CMPXCollectionPath& aPath,
+            TInt aError ) = 0;
 };
 
 class CMpMpxIsolatedCollectionHelper : public CBase,
                                       public MMPXCollectionObserver
 {
 public:
-
+    enum MpOpenMode{
+        DefaultMode = 0,
+        RestorePathMode 
+    };
     static CMpMpxIsolatedCollectionHelper* NewL( MMpMpxIsolatedCollectionHelperObserver* aObserver );
     static CMpMpxIsolatedCollectionHelper* NewLC( MMpMpxIsolatedCollectionHelperObserver* aObserver );
     virtual ~CMpMpxIsolatedCollectionHelper();
-    void OpenCollectionL( CMPXCollectionPath& aPath );
+    void OpenCollectionL( CMPXCollectionPath& aPath, TInt aIndex = KIncrementalNullOffset, MpOpenMode aMode = DefaultMode );
     
 private:
     CMpMpxIsolatedCollectionHelper( MMpMpxIsolatedCollectionHelperObserver* aObserver );
@@ -60,6 +67,7 @@
     MMpMpxIsolatedCollectionHelperObserver* iObserver;
     CMPXCollectionOpenUtility*              iIncrementalOpenUtil; //owned
     TBool                                   iFirstIncrementalOpen;
+    MpOpenMode                              iOpenMode;
 
 };
 
--- a/mpengine/inc/mpmpxplaybackframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmpxplaybackframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -36,11 +36,13 @@
 
 public:
 
-    explicit MpMpxPlaybackFrameworkWrapper( 
-                MpCommon::MpViewMode viewMode=MpCommon::DefaultView, TUid hostUid = TUid::Uid( MpCommon::KMusicPlayerUid ), QObject *parent=0 );
+    explicit MpMpxPlaybackFrameworkWrapper( TUid hostUid = TUid::Uid( MpCommon::KMusicPlayerUid ), QObject *parent=0 );
     virtual ~MpMpxPlaybackFrameworkWrapper();
     
     MpPlaybackData *playbackData();
+    void setBalance( int balance );
+    void applyAudioEffects();
+    void applyEqualizer();
     
 public slots:
     
@@ -49,7 +51,10 @@
     void playPause();
     void stop();
     void skipForward();
+    void startSeekForward();
+    void stopSeeking();
     void skipBackward();
+    void startSeekBackward();
     void setPosition( int position );
     void setShuffle( bool mode );
     void setRepeat( bool mode );
--- a/mpengine/inc/mpmpxplaybackframeworkwrapper_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/inc/mpmpxplaybackframeworkwrapper_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -20,7 +20,6 @@
 
 #include <e32base.h>
 #include <mpxplaybackobserver.h>
-#include "mpmpxcollectionviewdefs.h"
 #include "mpcommondefs.h"
 
 
@@ -40,17 +39,23 @@
     explicit MpMpxPlaybackFrameworkWrapperPrivate( MpMpxPlaybackFrameworkWrapper *wrapper );
     virtual ~MpMpxPlaybackFrameworkWrapperPrivate();
 
-    void init( MpCommon::MpViewMode viewMode, TUid hostUid );
+    void init( TUid hostUid );
 
     void play( QString aFilename );
     void play( const XQSharableFile& file );
     void playPause();
     void stop();
     void skipForward();
+    void startSeekForward();
+    void stopSeeking();
     void skipBackward();
+    void startSeekBackward();
     void setPosition( int value );
     void setShuffle( bool mode );
     void setRepeat( bool mode );
+    void setBalance( int balance );
+    void applyAudioEffects();
+    void applyEqualizer();
 
     MpPlaybackData *playbackData();
 
@@ -79,7 +84,6 @@
     MMPXPlaybackUtility                 *iPlaybackUtility;     // Own
     CMPXMedia                           *iMedia;               // Own
     MpPlaybackData                      *iPlaybackData;        // Own
-    MpCommon::MpViewMode                iViewMode;
     TUid                                mHostUid;
     
 };
--- a/mpengine/inc/mpsongscanner.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +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: Music Player song scanner.
-*
-*/
-
-
-#ifndef MPSONGSCANNER_H
-#define MPSONGSCANNER_H
-
-class MpMpxHarvesterFrameworkWrapper;
-class HbProgressDialog;
-
-#include <QObject>
-#include "mpmpxcommondefs.h"
-
-class MpSongScanner : public QObject
-{
-    Q_OBJECT
-
-public:
-
-    explicit MpSongScanner( MpMpxHarvesterFrameworkWrapper *wrapper, QObject *parent=0 );
-    virtual ~MpSongScanner();
-
-    void scan();
-    bool isScanning();
-
-public slots:
-
-    void cancelScan();
-    void handleScanStarted();
-    void handleScanEnded( int numItemsAdded, int error );
-    void handleScanCountChanged(int count);
-    void handleDiskEvent( MpxDiskEvents event );
-    void handleProgressNoteClosing();
-
-private:
-
-    MpMpxHarvesterFrameworkWrapper       *mMpxWrapper;       // Not own
-    HbProgressDialog                     *mScanProgressNote; // Own
-    TBool                                mScanning;
-
-};
-
-#endif // MPSONGSCANNER_H
-
--- a/mpengine/mpengine.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/mpengine.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,65 +14,80 @@
 # Description: Project file for Music Player Engine.
 #
 
-symbian:TARGET.UID3 = 0x10207C93
-
 TEMPLATE = lib
 CONFIG += hb
 TARGET = mpengine
-
-TARGET.CAPABILITY = CAP_GENERAL_DLL
+symbian: { 
+    TARGET.UID3 = 0x10207C93
+    MMP_RULES += "DEFFILE mpengine.def"
+    defFilePath = .
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.EPOCALLOWDLLDATA = 1
+    BLD_INF_RULES.prj_exports += \
+        "resources/nullsound.mp3 /epoc32/release/winscw/udeb/Z/system/data/nullsound.mp3" \
+        "resources/nullsound.mp3 /epoc32/data/Z/system/data/nullsound.mp3"
+}
+DEFINES += BUILD_MPENGINE_LIB
 
 INCLUDEPATH += . \
-    	inc \
-    	../inc
+    	       inc \
+    	       ../inc \
+    	       ../mpserviceplugins/inc    	
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
 
-LIBS += -lestor.dll \
-    -lmpxplaybackutility.dll \
-    -lmpxcollectionutility.dll \
-    -lmpxharvesterutility.dll \
-    -lmpxcommon.dll \
-    -lmpxcollectionhelper.dll \
-    -lremconcoreapi.dll \
-    -lremconinterfacebase.dll \
-    -lmpsettingsmanager \
-    -lmpdata.dll \
-    -lxqserviceutil
-    
-symbian:TARGET.EPOCALLOWDLLDATA	= 1
+LIBS += -lestor \
+        -lmpxplaybackutility \
+        -lmpxcollectionutility \
+        -lmpxharvesterutility \
+        -lmpxcommon \
+        -lmpxcollectionhelper \
+        -lremconcoreapi \
+        -lremconinterfacebase \
+        -lmpsettingsmanager \
+        -lmpdata \
+        -lxqserviceutil \
+        -laudioequalizerutility \
+        -lmediaclientaudio \
+        -lefsrv
 
-HEADERS += ../inc/mpengine.h \
+# Input
+HEADERS += ../inc/mpenginefactory.h \
+           ../inc/mpengine.h \
+           ../inc/mpsongscanner.h \
            inc/mpmpxharvesterframeworkwrapper.h \
            inc/mpmpxharvesterframeworkwrapper_p.h \
            inc/mpmpxplaybackframeworkwrapper.h \
            inc/mpmpxplaybackframeworkwrapper_p.h \
-           inc/mpsongscanner.h \
+           inc/mpmpxdetailsframeworkwrapper.h \
+           inc/mpmpxdetailsframeworkwrapper_p.h \
            inc/mpmediakeyhandler.h \
            inc/mpmediakeyhandler_p.h\
            inc/mpmediakeyremconresponse.h \
            inc/mpmpxcollectionframeworkwrapper.h \
            inc/mpmpxisolatedcollectionhelper.h \
-           inc/mpmpxcollectionframeworkwrapper_p.h
+           inc/mpmpxcollectionframeworkwrapper_p.h \
+           inc/mpaudioeffectsframeworkwrapper.h \
+           inc/mpaudioeffectsframeworkwrapper_p.h \
+           inc/mpequalizerframeworkwrapper.h \
+           inc/mpequalizerframeworkwrapper_p.h
 
-SOURCES += src/mpengine.cpp \
+SOURCES += src/mpenginefactory.cpp \
+           src/mpengine.cpp \
+           src/mpsongscanner.cpp \
            src/mpmpxharvesterframeworkwrapper.cpp \
            src/mpmpxharvesterframeworkwrapper_p.cpp \
            src/mpmpxplaybackframeworkwrapper.cpp \
            src/mpmpxplaybackframeworkwrapper_p.cpp \
-           src/mpsongscanner.cpp \
+           src/mpmpxdetailsframeworkwrapper.cpp \
+           src/mpmpxdetailsframeworkwrapper_p.cpp \
            src/mpmediakeyhandler.cpp \
            src/mpmediakeyhandler_p.cpp \
            src/mpmediakeyremconresponse.cpp \
            src/mpmpxcollectionframeworkwrapper.cpp \
            src/mpmpxisolatedcollectionhelper.cpp \
-           src/mpmpxcollectionframeworkwrapper_p.cpp       
-
-DEFINES += BUILD_MPENGINE_LIB
+           src/mpmpxcollectionframeworkwrapper_p.cpp \
+           src/mpaudioeffectsframeworkwrapper.cpp \
+           src/mpaudioeffectsframeworkwrapper_p.cpp \
+           src/mpequalizerframeworkwrapper.cpp \
+           src/mpequalizerframeworkwrapper_p.cpp   
 
-myDefInclude = "NOSTRICTDEF" \
-"$${LITERAL_HASH}if defined(WINS)"\
-"DEFFILE  bwins/mpengineu.def "\
-"$${LITERAL_HASH}else "\
-"DEFFILE  eabi/mpengineu.def "\
-"$${LITERAL_HASH}endif"
-MMP_RULES += myDefInclude
Binary file mpengine/resources/nullsound.mp3 has changed
--- a/mpengine/rom/mpengine.iby	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/rom/mpengine.iby	Thu Jul 22 16:32:33 2010 +0100
@@ -22,4 +22,6 @@
 
 file=ABI_DIR\BUILD_DIR\mpengine.dll          SHARED_LIB_DIR\mpengine.dll
 
+data=ZSYSTEM\data\nullsound.mp3                system\data\nullsound.mp3
+
 #endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpaudioeffectsframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,86 @@
+/*
+* 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: Framework wraper for Audio Effects.
+*
+*/
+
+#include "mpaudioeffectsframeworkwrapper.h"
+#include "mpaudioeffectsframeworkwrapper_p.h"
+#include "mptrace.h"
+
+/*!
+    \class MpAudioEffectsFrameworkWrapper
+    \brief Wrapper for Audio Effects framework.
+
+    Audio effects framework wrapper provides Qt style interface to the audio effects framework
+    utilities. Its implementation is hidden using private class data pattern.
+*/
+
+/*!
+ Constructor.
+ */
+MpAudioEffectsFrameworkWrapper::MpAudioEffectsFrameworkWrapper()
+    :d_ptr( new MpAudioEffectsFrameworkWrapperPrivate() )
+{
+    d_ptr->init();
+}
+
+/*!
+ Destructor.
+ */
+MpAudioEffectsFrameworkWrapper::~MpAudioEffectsFrameworkWrapper()
+{
+    TX_ENTRY
+    delete d_ptr;
+    TX_EXIT
+}
+
+/*!
+ Returns the current persistent balance.
+ */
+int MpAudioEffectsFrameworkWrapper::balance()
+{
+    TX_LOG
+    return d_ptr->balance();
+}
+
+/*!
+ Returns the current persistent loudness.
+ */
+bool MpAudioEffectsFrameworkWrapper::loudness()
+{
+    TX_LOG
+    return d_ptr->loudness();
+}
+
+/*!
+ Set the \a balance.
+ */
+void MpAudioEffectsFrameworkWrapper::setBalance( int balance )
+{
+    TX_ENTRY
+    d_ptr->setBalance( balance );
+    TX_EXIT
+}
+
+/*!
+ Set the loudness \a mode.
+ */
+void MpAudioEffectsFrameworkWrapper::setLoudness( bool mode )
+{
+    TX_ENTRY
+    d_ptr->setLoudness( mode );
+    TX_EXIT
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpaudioeffectsframeworkwrapper_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,109 @@
+/*
+* 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: Framework wraper for Audio Effects - Private.
+*
+*/
+
+#include "mpaudioeffectsframeworkwrapper_p.h"
+#include "mpxaudioeffectproperties.h"
+#include "mpcommondefs.h"
+#include "mptrace.h"
+
+/*!
+    \class MpAudioEffectsFrameworkWrapperPrivate
+    \brief Wrapper for audio effects framework utilities - private implementation.
+
+    This is a private implementation of the audio effects framework wrapper utilties interface.
+*/
+
+/*!
+ \internal
+ */
+MpAudioEffectsFrameworkWrapperPrivate::MpAudioEffectsFrameworkWrapperPrivate()
+    :mAudioEffectProperties( new CMPXAudioEffectProperties() )
+{
+}
+
+/*!
+ \internal
+ */
+MpAudioEffectsFrameworkWrapperPrivate::~MpAudioEffectsFrameworkWrapperPrivate()
+{
+    delete mAudioEffectProperties;
+}
+
+/*!
+ \internal
+ */
+void MpAudioEffectsFrameworkWrapperPrivate::init()
+{
+    TRAPD( err, doInitL() );
+    if ( err != KErrNone ) {
+        mAudioEffectProperties->Reset();
+    }
+}
+
+/*!
+ \internal
+ */
+void MpAudioEffectsFrameworkWrapperPrivate::setBalance( int balance )
+{
+    mAudioEffectProperties->SetBalance( balance );
+    saveToFile();
+}
+
+/*!
+ \internal
+ */
+void MpAudioEffectsFrameworkWrapperPrivate::setLoudness( bool mode )
+{
+    mAudioEffectProperties->SetLoudness( mode );
+    saveToFile();
+}
+
+/*!
+ \internal
+ */
+int MpAudioEffectsFrameworkWrapperPrivate::balance()
+{
+    return mAudioEffectProperties->Balance();
+}
+
+/*!
+ \internal
+ */
+bool MpAudioEffectsFrameworkWrapperPrivate::loudness()
+{
+    return mAudioEffectProperties->Loudness();
+}
+
+/*!
+ \internal
+ */
+void MpAudioEffectsFrameworkWrapperPrivate::saveToFile()
+{
+    TRAPD( err, mAudioEffectProperties->SaveToFileL() );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+    }
+}
+
+/*!
+ \internal
+ */
+void MpAudioEffectsFrameworkWrapperPrivate::doInitL()
+{
+    mAudioEffectProperties->LoadFromFileL();
+}
+
--- a/mpengine/src/mpengine.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpengine.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,21 +15,20 @@
 *
 */
 
-#include <QTranslator>
-#include <QLocale>
-#include <hbmessagebox.h>
-#include <hbprogressdialog.h>
-#include <hbaction.h>
-#include <hbinstance.h>
 #include <xqsharablefile.h>
+#include <EqualizerConstants.h>
 
 #include "mpengine.h"
 #include "mpmpxharvesterframeworkwrapper.h"
 #include "mpmpxcollectionframeworkwrapper.h"
 #include "mpmpxplaybackframeworkwrapper.h"
-#include "mpsongscanner.h"
+#include "mpmpxdetailsframeworkwrapper.h"
+#include "mpaudioeffectsframeworkwrapper.h"
+#include "mpequalizerframeworkwrapper.h"
 #include "mpmediakeyhandler.h"
 #include "mptrace.h"
+#include "mpsettingsmanager.h"
+#include "mpsongscanner.h"
 
 /*!
     \class MpEngine
@@ -46,87 +45,61 @@
 */
 
 /*!
-    \fn void scanStarted()
-
-    This signal is emitted when scan operation is started.
-
- */
-
-/*!
-    \fn void scanEnded()
+    \fn void libraryAboutToUpdate()
 
-    This signal is emitted when scan operation ends.
-
- */
-
-/*!
-    \fn void scanCountChanged( int count )
-
-    This signal is emitted when scan count is updated.
+    This signal is emitted when a scan operation has been requested or
+    when MTP synchronization starts.
 
  */
 
 /*!
     \fn void libraryUpdated()
 
-    This signal is emitted when MpSongScannerHelper ends scanning,
-    or USB-MTP Synchronization finishes.
+    This signal is emitted when library has changed.
+    
+    \sa handleScanEnded()
+    \sa handleDiskEvent()
+    \sa handleUsbMtpEndEvent()
 
  */
 
 /*!
-    \fn void formatStarted()
-
-    This signal is emitted when EMcMsgFormatStart is received from MPXCollectionUtility.
-
- */
-
-/*!
-    \fn void formatEnded()
+    \fn void usbBlocked( bool blocked )
 
-    This signal is emitted when EMcMsgFormatEnd is received from MPXCollectionUtility.
-
- */
-
-/*!
-    \fn void diskRemoved()
-
-    This signal is emitted when EMcMsgDiskRemoved is received from MPXCollectionUtility.
+    This signal is emitted to update the usb blocking state
+    due a previous usb event received.
+    
+    \sa handleUsbEvent()
 
  */
 
 /*!
-    \fn void diskInserted()
-
-    This signal is emitted when EMcMsgDiskInserted is received from MPXCollectionUtility.
+    \fn void unableToCotinueDueUSB()
 
- */
-
-/*!
-    \fn void usbMassStorageStarted()
-
-    This signal is emitted when EMcMsgUSBMassStorageStart is received from MPXCollectionUtility.
+    This signal is emitted if usb blocking verification returns true.
+    
+    \sa verifyUsbBlocking()
 
  */
 
 /*!
-    \fn void usbMassStorageEnded()
+    \fn void usbSynchronizationStarted()
 
-    This signal is emitted when EMcMsgUSBMassStorageEnd is received from MPXCollectionUtility.
+    This signal is emitted when usb is connected in MassStorage mode or MTP mode and synchronizing.
 
  */
 
 /*!
-    \fn void usbMtpStarted()
+    \fn void usbSynchronizationFinished()
 
-    This signal is emitted when EMcMsgUSBMtpStart is received from MPXCollectionUtility.
+    This signal is emitted when usb in synchronizing state is disconnected.
 
  */
 
 /*!
-    \fn void usbMtpEnded()
+    \fn void libraryRefreshNeeded()
 
-    This signal is emitted when EMcMsgUSBMtpEnd is received from MPXCollectionUtility.
+    This signal is emitted when usb in MassStorage mode is disconnected.
 
  */
 
@@ -154,6 +127,24 @@
  */
 
 /*!
+    \fn void aboutToAddSongs( int count )
+
+    Signal emitted up on a notification from MPX Collection wrapper, 
+    when play list is prepared and about to be added.
+    \a count Indicates number of songs to be added.
+
+ */
+
+/*!
+    \fn void deleteStarted(TCollectionContext context, int Count)
+
+    This signal is emitted when song delete operation has started.
+    \a context The context where delete operation is taking place.
+    \a Count Number of items to delete.
+
+ */
+
+/*!
     \fn void songsDeleted( bool success )
 
     This signal is emitted when song delete operation is completed, it 
@@ -177,19 +168,36 @@
  */
 
 /*!
+    \fn void restorePathFailed()
+
+    This signal is emitted when an the previous path cannot be restored 
+    (i.e. no music in collection).
+
+ */
+
+/*!
+    \fn void containerContentsChanged()
+
+    This signal is emitted when items are removed or inserted on the current 
+    container.
+
+ */
+
+/*!
  Constructs music player engine.
  */
 MpEngine::MpEngine()
     : mMpxHarvesterWrapper(0),
       mSongScanner(0),
       mMediaKeyHandler(0),
-      mUsbOutstandingNote(0),
       mMpxCollectionWrapper(0),
       mMpxPlaybackWrapper(0),
-      mMpTranslator(0),
+      mMpxDetailsWrapper(0),
+      mAudioEffectsWrapper(0),
+      mEqualizerWrapper(0),
+      mCurrentPresetIndex(KEqualizerPresetNone),
       mUsbBlockingState(USB_NotConnected),
-      mPreviousUsbState(USB_NotConnected),
-      mViewMode(MpCommon::DefaultView)
+      mPreviousUsbState(USB_NotConnected)
 {
     TX_LOG
 }
@@ -200,42 +208,28 @@
 MpEngine::~MpEngine()
 {
     TX_ENTRY
+    delete mMediaKeyHandler;
+    delete mMpxPlaybackWrapper;
+    delete mMpxDetailsWrapper;
+    delete mMpxHarvesterWrapper;
+    delete mMpxCollectionWrapper;
+    delete mAudioEffectsWrapper;
+    delete mEqualizerWrapper;
+    delete mSongScanner;
     TX_EXIT
 }
 
 /*!
- Returns the singleton instance of music player engine.
- */
-MpEngine * MpEngine::instance()
-{
-    static MpEngine instance;
-    return &instance;
-}
-
-/*!
  Initialize engine
  */
-void MpEngine::initialize( MpCommon::MpViewMode viewMode, TUid hostUid )
+void MpEngine::initialize( TUid hostUid, EngineMode mode )
 {
     TX_ENTRY
-    mViewMode = viewMode;
     mHostUid = hostUid;
-    
-    //Load musicplayer translator
-    QString lang = QLocale::system().name();
-    QString path = QString( "z:/resource/qt/translations/" );
-    bool translatorLoaded = false;
 
-    mMpTranslator = new QTranslator( this );
-    translatorLoaded = mMpTranslator->load( path + "musicplayer_" + lang );
-    TX_LOG_ARGS( "Loading translator ok=" << translatorLoaded );
-    if ( translatorLoaded ) {
-        qApp->installTranslator( mMpTranslator );
-    }
-    
-    if( mViewMode == MpCommon::DefaultView || mViewMode == MpCommon::FetchView ){
+    if( mode == StandAlone || mode == Fetch ){
         // Harvesting Wrapper
-        mMpxHarvesterWrapper = new MpMpxHarvesterFrameworkWrapper( mViewMode, mHostUid );
+        mMpxHarvesterWrapper = new MpMpxHarvesterFrameworkWrapper( mHostUid );
         connect( mMpxHarvesterWrapper, SIGNAL( scanStarted() ), 
                  this, SLOT( handleScanStarted() ), Qt::QueuedConnection );
         connect( mMpxHarvesterWrapper, SIGNAL( scanEnded(int, int) ), 
@@ -246,53 +240,65 @@
         qRegisterMetaType<MpxUsbEvents>("MpxUsbEvents");
         connect( mMpxHarvesterWrapper, SIGNAL( usbEvent(MpxUsbEvents) ), 
                  this, SLOT( handleUsbEvent(MpxUsbEvents) ), Qt::QueuedConnection );
-        mSongScanner = new MpSongScanner( mMpxHarvesterWrapper );
         mMediaKeyHandler = new MpMediaKeyHandler();
+    }
+
+    if ( mode == StandAlone || mode == Fetch || mode == MediaBrowsing) {
         
         // Collection Wrapper
-        mMpxCollectionWrapper = new MpMpxCollectionFrameworkWrapper( mViewMode, mHostUid );
+        mMpxCollectionWrapper = new MpMpxCollectionFrameworkWrapper( mHostUid );
+        
+        //disabling these since fetch mode plays only one song at a time.
+        mMpxCollectionWrapper->setRepeatFeatureEnabled( mode != Fetch );
+        mMpxCollectionWrapper->setShuffleFeatureEnabled( mode != Fetch );
+        
         connect( mMpxCollectionWrapper, SIGNAL( collectionPlaylistOpened() ),
                 this, SIGNAL( collectionPlaylistOpened() ),
                 Qt::QueuedConnection );
+        connect( mMpxCollectionWrapper, SIGNAL( aboutToAddSongs( int ) ),
+                this, SIGNAL( aboutToAddSongs( int ) ) );
         connect( mMpxCollectionWrapper, SIGNAL( playlistSaved( bool ) ),
                 this, SIGNAL( playlistSaved( bool ) ),
                 Qt::QueuedConnection );
-        connect( mMpxCollectionWrapper, SIGNAL( songsDeleted( bool ) ),
-                this, SIGNAL( songsDeleted( bool ) ),
-                Qt::QueuedConnection );
         connect( mMpxCollectionWrapper, SIGNAL( playlistsRenamed( bool ) ),
                 this, SIGNAL( playlistsRenamed( bool ) ),
                 Qt::QueuedConnection );
         connect( mMpxCollectionWrapper, SIGNAL( isolatedCollectionOpened( MpMpxCollectionData* ) ),
                 this, SIGNAL( isolatedCollectionOpened( MpMpxCollectionData* ) ),
                 Qt::QueuedConnection );
+        connect( mMpxCollectionWrapper, SIGNAL( containerContentsChanged() ),
+                this, SIGNAL( containerContentsChanged() ),
+                Qt::QueuedConnection );
+        connect( mMpxCollectionWrapper, SIGNAL( deleteStarted( TCollectionContext, int ) ),
+                this, SLOT( handleDeleteStarted( TCollectionContext, int ) ) );
+        connect( mMpxCollectionWrapper, SIGNAL( songsDeleted( bool ) ),
+                this, SLOT( handleDeleteEnded( bool ) ),
+                Qt::QueuedConnection );
+        connect( mMpxCollectionWrapper, SIGNAL( restorePathFailed() ),
+                this, SIGNAL( restorePathFailed() ),
+                Qt::QueuedConnection );
     }
 
-    // Playback Wrapper 
-    mMpxPlaybackWrapper = new MpMpxPlaybackFrameworkWrapper( mViewMode, mHostUid );
-
-    TX_EXIT
-}
+    if( mode == StandAlone ){
+        // Equalizer wrapper , this needs to be created before playback wrapper.
+        mEqualizerWrapper = new MpEqualizerFrameworkWrapper();
+        connect( mEqualizerWrapper, SIGNAL( equalizerReady() ), 
+                 this, SLOT( handleEqualizerReady() ), Qt::QueuedConnection );
+    }
+    
+    if ( mode == StandAlone || mode == Fetch || mode == Embedded ) {
+        // Playback Wrapper 
+        mMpxPlaybackWrapper = new MpMpxPlaybackFrameworkWrapper( mHostUid );
+        
+        // Details Wrapper
+        mMpxDetailsWrapper = new MpMpxDetailsFrameworkWrapper( mHostUid );
+    }
 
-/*!
-  Deinitialize wrappers
- */
-void MpEngine::close( )
-{
-    delete mMpTranslator;
-    mMpTranslator = 0;
-    delete mSongScanner;
-    mSongScanner = 0;
-    delete mMediaKeyHandler;
-    mMediaKeyHandler = 0;   
-    delete mUsbOutstandingNote;
-    mUsbOutstandingNote = 0;
-    delete mMpxPlaybackWrapper;
-    mMpxPlaybackWrapper = 0;
-    delete mMpxHarvesterWrapper;
-    mMpxHarvesterWrapper = 0;
-    delete mMpxCollectionWrapper;
-    mMpxCollectionWrapper = 0;
+    if( mode == StandAlone ){
+        // AudioEffects wrapper
+        mAudioEffectsWrapper = new MpAudioEffectsFrameworkWrapper();
+    }
+    TX_EXIT
 }
 
 /*!
@@ -306,18 +312,14 @@
  Used to verify if an action can be executed depending on USB blocking state.
  If not, a notification note might be displayed.
  */
-bool MpEngine::verifyUsbBlocking( bool showMessage )
+bool MpEngine::verifyUsbBlocking( bool notify )
 {
     TX_ENTRY
     bool result( false );
     if ( mUsbBlockingState == USB_Connected ) {
         result = true;
-        if ( showMessage ) {
-            HbMessageBox *dialog = new HbMessageBox( HbMessageBox::MessageTypeInformation );
-            dialog->setText( hbTrId( "txt_mus_info_usb_conn_in_progress" ) );
-            dialog->setModal( true );
-            setOutstandingPopup( dialog );
-            mUsbOutstandingNote->show();;
+        if ( notify ) {
+            emit unableToCotinueDueUSB();
         }
     }
     TX_EXIT
@@ -336,15 +338,26 @@
 }
 
 /*!
+ \
+ Returs the current songScanner instance
+ */
+MpSongScanner *MpEngine::songScanner()
+{
+    return mSongScanner;
+}
+/*!
  Slot to be called to start Refresh library process.
  If scanning is already ongoing, this request is ignored.
  */
-void MpEngine::refreshLibrary()
+void MpEngine::refreshLibrary( bool automaticRequest )
 {
     TX_ENTRY
     if ( !verifyUsbBlocking( true ) ) {
+        if ( !mSongScanner ) {
+            mSongScanner = new MpSongScanner( mMpxHarvesterWrapper );
+        }
         emit libraryAboutToUpdate();
-        mSongScanner->scan();
+        mSongScanner->scan( automaticRequest );
     }
     TX_EXIT
 }
@@ -390,7 +403,7 @@
             break;
         case DiskInserted:
             if ( mUsbBlockingState == USB_NotConnected ) {
-                refreshLibrary();
+                refreshLibrary( true );
             }
             else if ( mUsbBlockingState == USB_Connected ) {
                 emit libraryUpdated();
@@ -430,16 +443,6 @@
 }
 
 /*!
- Slot to be called when mUsbOutstandingNote is about to close.
- */
-void MpEngine::handleOutstandingNoteClosing()
-{
-    TX_ENTRY
-    mUsbOutstandingNote = 0;
-    TX_EXIT
-}
-
-/*!
  To be called when EMcMsgUSBMassStorageStart event is received.
  */
 void MpEngine::handleUsbMassStorageStartEvent()
@@ -449,9 +452,8 @@
 
     changeUsbBlockingState( USB_Synchronizing );
     emit usbBlocked(true);
-    
-    launchBlockingNote();
-    
+    emit usbSynchronizationStarted();
+
     TX_EXIT
 }
 
@@ -461,24 +463,13 @@
 void MpEngine::handleUsbMassStorageEndEvent()
 {
     TX_ENTRY
-    mMediaKeyHandler->setEnabled(true);    
+    mMediaKeyHandler->setEnabled(true);
 
     changeUsbBlockingState( USB_NotConnected );
     emit usbBlocked(false);
+    emit usbSynchronizationFinished();
+    emit libraryRefreshNeeded();
 
-    HbAction *action;
-    HbMessageBox *promptRefresh = new HbMessageBox( HbMessageBox::MessageTypeQuestion );
-    promptRefresh->setText( hbTrId( "txt_mus_info_music_may_need_to_be_refreshed" ) );
-    promptRefresh->setTimeout( HbPopup::NoTimeout );
-    promptRefresh->setModal( true );
-    promptRefresh->clearActions();
-    action = new HbAction( hbTrId( "txt_common_button_yes" ) );
-    connect( action, SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );
-    promptRefresh->addAction( action );
-    action = new HbAction( hbTrId( "txt_common_button_no" ) );
-    promptRefresh->addAction( action );
-    setOutstandingPopup( promptRefresh );
-    mUsbOutstandingNote->show();
     TX_EXIT
 }
 
@@ -496,7 +487,7 @@
     //Cancel any ongoing operation.
     emit libraryAboutToUpdate();
     
-    launchBlockingNote();
+    emit usbSynchronizationStarted();
     
     TX_EXIT
 }
@@ -507,15 +498,13 @@
 void MpEngine::handleUsbMtpEndEvent()
 {
     TX_ENTRY
-    mMediaKeyHandler->setEnabled(true);    
+    mMediaKeyHandler->setEnabled(true);
 
     changeUsbBlockingState( USB_NotConnected );
     emit usbBlocked(false);
-    
-    if ( mUsbOutstandingNote ) {
-        mUsbOutstandingNote->close();
-    }
+
     if ( mPreviousUsbState == USB_Synchronizing ) {
+        emit usbSynchronizationFinished();
         emit libraryUpdated();
     }
     TX_EXIT
@@ -545,48 +534,6 @@
 }
 
 /*!
- Internal
- Used to launch the usb blocking note
- */
-void MpEngine::launchBlockingNote()
-{
-    TX_ENTRY
-
-    HbProgressDialog *usbBlockingNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
-    usbBlockingNote->setModal( true );
-    if ( usbBlockingNote->actions().count() ) {
-        //Hide cancel action.
-        usbBlockingNote->actions().at( 0 )->setVisible( false );
-    }
-    usbBlockingNote->setDismissPolicy( HbPopup::NoDismiss );
-    usbBlockingNote->setText( hbTrId( "txt_mus_info_usb_conn_in_progress" ) );
-    setOutstandingPopup( usbBlockingNote );
-    mUsbOutstandingNote->show();
-
-    TX_EXIT
-}
-
-/*!
- \internal
- sets \a popup as the current outstanding popup and cancels any other active popup.
- */
-void MpEngine::setOutstandingPopup( HbPopup *popup )
-{
-    TX_ENTRY
-    //Close previous popup (Normally blocking usb note)
-    if ( mUsbOutstandingNote ) {
-        disconnect( mUsbOutstandingNote, SIGNAL( aboutToClose() ), this, SLOT( handleOutstandingNoteClosing() ) );
-        mUsbOutstandingNote->close();
-    }
-
-    //Set new outstanding popup
-    popup->setAttribute( Qt::WA_DeleteOnClose );
-    connect( popup, SIGNAL( aboutToClose() ), this, SLOT( handleOutstandingNoteClosing() ) );
-    mUsbOutstandingNote = popup;
-    TX_EXIT
-}
-
-/*!
 -------------------------------------------------------------------------------
     Collection related
 -------------------------------------------------------------------------------
@@ -722,6 +669,22 @@
 }
 
 /*!
+ Finds all songs beloging to the album specified by the \a index.
+ */
+void MpEngine::findAlbumSongs( int index )
+{
+    mMpxCollectionWrapper->findAlbumSongs(index);
+}
+
+/*!
+ Plays album with \a albumIndex starting with the songs with \a songIndex.
+ */
+void MpEngine::playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
+{
+    mMpxCollectionWrapper->playAlbumSongs(albumIndex, songIndex, collectionData);
+}
+
+/*!
  Returns pointer to MpMpxCollectionData, which is the collection data.
  */
 MpMpxCollectionData *MpEngine::collectionData()
@@ -750,12 +713,53 @@
 }
 
 /*!
+ Slot to be called when song deleting starts.
+ */
+void MpEngine::handleDeleteStarted( TCollectionContext context, int count )
+{
+    TX_ENTRY
+    mMediaKeyHandler->setEnabled( false );
+    emit deleteStarted( context, count );
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when song deleting ends.
+ */
+void MpEngine::handleDeleteEnded( bool success )
+{
+    TX_ENTRY
+    mMediaKeyHandler->setEnabled(true);
+    emit songsDeleted( success );
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when song deleting ends.
+ */
+void MpEngine::cancelCollectionRequest()
+{
+    TX_ENTRY
+    mMpxCollectionWrapper->cancelRequest();
+    TX_EXIT
+}
+
+/*!
  Returns pointer to MpPlaybackData, which is the playback data.
  */
 MpPlaybackData *MpEngine::playbackData()
 {
     return mMpxPlaybackWrapper->playbackData();
 }
+
+/*!
+ Requests playback of all songs with shuffle enabled
+ */
+void MpEngine::shuffleAll()
+{
+    mMpxCollectionWrapper->openShuffleAllSongsPath();
+}
+
 /*!
  Slot to be called to request embedded playback of item with Uri aFilename
  */
@@ -790,7 +794,7 @@
 }
 
 /*!
- Slot to handle a skeep forward.
+ Slot to handle a skip forward.
  */
 void MpEngine::skipForward()
 {
@@ -798,7 +802,23 @@
 }
 
 /*!
- Slot to handle a skeep backwards.
+ Slot to handle  seek forward.
+ */
+void MpEngine::startSeekForward()
+{
+    mMpxPlaybackWrapper->startSeekForward();
+}
+
+/*!
+ Slot to handle stop seeking.
+ */
+void MpEngine::stopSeeking()
+{
+    mMpxPlaybackWrapper->stopSeeking();
+}
+
+/*!
+ Slot to handle a skip backwards.
  */
 void MpEngine::skipBackward()
 {
@@ -806,6 +826,13 @@
 }
 
 /*!
+ Slot to handle seek backwards.
+ */
+void MpEngine::startSeekBackward()
+{
+    mMpxPlaybackWrapper->startSeekBackward();
+}
+/*!
  Slot to handle a request to change \a position.
  */
 void MpEngine::setPosition( int position )
@@ -829,3 +856,161 @@
     mMpxPlaybackWrapper->setRepeat( mode );
 }
 
+/*!
+ Returns pointer to MpSongData, which is the song data for detail's view.
+ */
+MpSongData *MpEngine::songData()
+{
+    return mMpxDetailsWrapper->songData();
+}
+
+/*!
+ Retrieve song informatioin
+ */
+void MpEngine::retrieveSong()
+{
+    TX_ENTRY
+    mMpxDetailsWrapper->retrieveSong();
+    TX_EXIT
+}
+
+/*!
+ Retrieve balance informatioin from audio effects
+ */
+int MpEngine::balance()
+{
+    return mAudioEffectsWrapper->balance();
+}
+
+/*!
+ Retrieve loudness informatioin from audio effects
+ */
+bool MpEngine::loudness()
+{
+    return mAudioEffectsWrapper->loudness();
+}
+
+/*!
+ Slot to handle a request to change \a balance in audio effects.
+ */
+void MpEngine::setBalance( int balance )
+{
+    TX_ENTRY
+    
+    if ( mAudioEffectsWrapper->balance() != balance ) {
+        mAudioEffectsWrapper->setBalance( balance );
+        mMpxPlaybackWrapper->setBalance( balance );
+    }
+    
+    TX_EXIT
+}
+
+/*!
+ Slot to handle a request to change loudness \a mode in audio effects.
+ */
+void MpEngine::setLoudness( bool mode )
+{
+    TX_ENTRY
+    
+    if( mAudioEffectsWrapper->loudness() != mode ) { //do not set same value twice
+        mAudioEffectsWrapper->setLoudness( mode );
+        mMpxPlaybackWrapper->applyAudioEffects();
+    }
+    
+    TX_EXIT
+}
+
+/*!
+ Apply the preset by giving \a presetIndex. The index is subtracted by 1 because
+ index 0 represent "Off" at UI level.
+ */
+void MpEngine::applyPreset( int presetIndex )
+{
+    TX_ENTRY_ARGS( "presetIndex=" << presetIndex );
+    
+    TInt presetKey = mEqualizerWrapper->getPresetNameKey( presetIndex - 1 );
+    
+    if ( presetKey != KEqualizerPresetNone ) {
+        TX_LOG_ARGS( "Preset key in engine =" << presetKey );
+        // Store in CenRep file
+        MpSettingsManager::setPreset( presetKey );
+        // Notify playback framework of the change.
+        mMpxPlaybackWrapper->applyEqualizer();
+        mCurrentPresetIndex = presetIndex;
+    }
+    else {
+        TX_LOG_ARGS("getPresetNameKey Error  = " << KEqualizerPresetNone);
+    }
+    
+    TX_EXIT
+}
+
+/*!
+ Disabling equalizer by setting the preset to -1 and apply it to 
+ disable current preset.
+ */
+void MpEngine::disableEqualizer()
+{
+    TX_ENTRY
+
+    mCurrentPresetIndex = KEqualizerPresetNone;
+    // Store in CenRep file
+    MpSettingsManager::setPreset( mCurrentPresetIndex );
+    // Notify playback framework of the change.
+    mMpxPlaybackWrapper->applyEqualizer();
+
+    TX_EXIT
+}
+
+/*!
+ Return current preset index (UI)
+ */
+int MpEngine::activePreset()
+{
+    TX_LOG_ARGS("mCurrentPresetIndex = " << mCurrentPresetIndex );
+
+    return mCurrentPresetIndex;
+}
+
+/*!
+ Retrieve list of preset names from equalizer wrapper
+ */
+QStringList MpEngine::presetNames()
+{
+    return mEqualizerWrapper->presetNames(); 
+}
+
+/*!
+ Save data needed to later restore state (activity)
+ */
+void MpEngine::saveActivityData( QByteArray &data )
+{
+    mMpxCollectionWrapper->savePath( data );
+}
+
+/*!
+ Restore state from activity data 
+ */
+void MpEngine::loadActivityData( const QByteArray &data ) 
+{
+    mMpxCollectionWrapper->restorePath( data );
+}
+
+/*!
+ Slot to handle equalizer ready signal from equalizer wrapper.
+ */
+void MpEngine::handleEqualizerReady()
+{
+    TX_ENTRY
+    
+    // Get preset id from cenrep
+    TInt presetKey( MpSettingsManager::preset() );
+    
+    //Set the current preset index. 1 is added to index because index 0 represent "Off" at UI level.
+    mCurrentPresetIndex = mEqualizerWrapper->getPresetIndex( presetKey );
+    mCurrentPresetIndex++;
+    emit equalizerReady();
+    
+    TX_EXIT
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpenginefactory.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,100 @@
+/*
+* 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: mp engine factory.
+*
+*/
+
+#include "mpengine.h"
+#include "mpenginefactory.h"
+#include "mptrace.h"
+
+/*!
+    \class MpEngineFactory
+    \brief Music Player engine factory.
+
+    MP Engine factory is responsible to create and mantain ownership of MP engines.
+*/
+
+/*!
+ Constructs music player engine factory.
+ */
+MpEngineFactory::MpEngineFactory()
+    : mSharedEngine( 0 )
+{
+    TX_LOG
+}
+
+/*!
+ Destructs music player engine factory.
+ */
+MpEngineFactory::~MpEngineFactory()
+{
+}
+
+/*!
+ Returns the singleton instance of music player engine factory.
+ */
+MpEngineFactory * MpEngineFactory::instance()
+{
+    static MpEngineFactory instance;
+    return &instance;
+}
+
+/*!
+ Returns an instance to an engine with \a hostUid, and \a mode, if the shared engine is 
+ already created parameters are ignored.
+ */
+MpEngine *MpEngineFactory::createSharedEngine( TUid hostUid , MpEngine::EngineMode mode )
+{
+    if ( !instance()->mSharedEngine ) {
+        instance()->mSharedEngine = new MpEngine();
+        instance()->mSharedEngine->initialize( hostUid, mode );
+    }
+    return instance()->mSharedEngine;
+}
+
+/*!
+ Returns an instance to an isolated engine with \a mode.
+ */
+MpEngine *MpEngineFactory::createIsolatedEngine( MpEngine::EngineMode mode )
+{
+    instance()->mEngines.append( new MpEngine() );
+    instance()->mEngines.last()->initialize( TUid::Uid( MpCommon::KMusicPlayerUid + instance()->mEngines.count() ), mode );
+    return instance()->mEngines.last();
+}
+
+/*!
+ Returns an instance to the current shared engine previously created with createEngine().
+ */
+MpEngine *MpEngineFactory::sharedEngine()
+{
+    return instance()->mSharedEngine;
+}
+
+/*!
+ Closes all engines created on this process.
+ */
+void MpEngineFactory::close()
+{
+    if ( instance()->mSharedEngine ) {
+        delete instance()->mSharedEngine;
+        instance()->mSharedEngine = 0;
+        
+    }
+    MpEngine *ptr;
+    foreach ( ptr, instance()->mEngines ) {
+        delete ptr;
+        ptr = 0;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpequalizerframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,112 @@
+/*
+* 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: Wrapper for equalizer framework.
+*
+*/
+
+// System includes
+#include <QStringList>
+#include <QDebug>
+
+// User includes
+#include "mpequalizerframeworkwrapper.h"
+#include "mpequalizerframeworkwrapper_p.h"
+#include "mptrace.h"
+
+/*!
+    \class MpEqualizerFrameworkWrapper
+    \ingroup musicplayer
+    \brief Wrapper for equalizer framework.
+    \since 10.1
+    
+    Equalizer wrapper provides Qt style interface to the audio equalizer
+    utilities. Its implementation is hidden using private class data pattern.
+    
+    This class defines several APIs that are needed from \a MpPlaybackView
+    and other components in \a mpplaybackviewplugin.
+
+    \sa MpEqualizerFrameworkWrapperPrivate
+*/
+
+/*!
+    \fn MpEqualizerFrameworkWrapper::equalizerReady()
+
+    This signal will be emitted when Audio Eqalizer is initialized. This is
+    when all APIs, like \a applyPreset, are ready to be used.
+    
+    \sa MpEqualizerFrameworkWrapperPrivate::MapcInitComplete
+*/
+
+/*!
+    Constructs a new MpEqualizerFrameworkWrapper with \a parent and initializes
+    private imaplementation.
+
+*/
+MpEqualizerFrameworkWrapper::MpEqualizerFrameworkWrapper( QObject *parent )
+    : QObject(parent)
+{
+    TX_ENTRY
+
+    d_ptr = new MpEqualizerFrameworkWrapperPrivate(this);
+    d_ptr->init();
+
+    TX_EXIT
+}
+
+/*!
+    Destructs the class and its private imaplementation.
+    
+ */
+MpEqualizerFrameworkWrapper::~MpEqualizerFrameworkWrapper()
+{
+    TX_LOG
+
+    delete d_ptr;
+}
+
+/*!
+    Get the preset name key by giving \a presetIndex. The command then 
+    relays to its private implementation.
+
+ */
+int MpEqualizerFrameworkWrapper::getPresetNameKey( int presetIndex )
+{
+    TX_LOG_ARGS( "Preset index: " << presetIndex );
+
+	return d_ptr->getPresetNameKey( presetIndex );
+}
+
+/*!
+    Get the preset index by giving \a presetNameKey. The command then 
+    relays to its private implementation.
+
+ */
+int MpEqualizerFrameworkWrapper::getPresetIndex( int presetNameKey )
+{
+    TX_LOG_ARGS( "Preset name key: " << presetNameKey );
+    
+    return d_ptr->getPresetIndex( presetNameKey );
+}
+
+/*!
+    Returning the list of availale preset names. The command then relays to its 
+    private implementation. 
+
+ */
+ QStringList MpEqualizerFrameworkWrapper::presetNames()
+{
+    return d_ptr->presetNames();
+}
+
+ //End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpequalizerframeworkwrapper_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,258 @@
+/*
+* 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: Wrapper for equalizer framework - private implementation.
+*
+*/
+
+// System includes
+#include <QDebug>
+#include <QStringList>
+#include <hbglobal.h>
+#include <AudioEqualizerUtility.h>
+#include <EqualizerConstants.h>
+#include <mpxuser.h>
+
+// User includes
+#include "mpequalizerframeworkwrapper.h"
+#include "mpequalizerframeworkwrapper_p.h"
+#include "mptrace.h"
+
+// CONSTANTS
+_LIT( KMPXNullSoundPath, "\\system\\data\\nullsound.mp3" );
+
+/*!
+    \class MpEqualizerFrameworkWrapperPrivate
+    \ingroup musicplayer
+    \brief Wrapper for equalizer framework - private implementation.
+    
+    This is a private implementation of the audio eqalizer wrapper 
+    utilties interface.
+
+*/
+
+/*!
+    Constructs a new MpEqualizerFrameworkWrapper with \a parent and initializes its
+    private imaplementation.
+*/
+MpEqualizerFrameworkWrapperPrivate::MpEqualizerFrameworkWrapperPrivate( MpEqualizerFrameworkWrapper *wrapper ): 
+    q_ptr( wrapper ),
+    mEqualizerUtility (NULL)
+{
+    TX_LOG
+}
+
+/*!
+    Destructs the class.    
+ */
+MpEqualizerFrameworkWrapperPrivate::~MpEqualizerFrameworkWrapperPrivate()
+{
+    TX_ENTRY
+
+    delete mEqualizerUtility;
+    
+    if ( mMdaPlayUtility ) {
+        mMdaPlayUtility->Close();
+    }
+    delete mMdaPlayUtility;
+
+    TX_EXIT
+}
+
+/*!
+    Calls the DoInit to initialize Symbian based components.
+    
+    \sa DoInitL()
+ */
+void MpEqualizerFrameworkWrapperPrivate::init()
+{
+    TX_ENTRY
+
+    TRAPD(err, DoInitL());
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("MpEqualizerFrameworkWrapperPrivate::init err = " << err);
+    }
+    
+    TX_EXIT
+}
+
+/*!
+    Get the preset name key by giving preset index.
+
+ */
+int MpEqualizerFrameworkWrapperPrivate::getPresetNameKey( int presetIndex )
+{
+    TX_ENTRY_ARGS( "preset index=" << presetIndex );
+
+    int presetKey( KEqualizerPresetNone );
+    if ( mEqualizerUtility ) {
+        TRAPD( err, presetKey = DoGetPresetNameKeyL( presetIndex ) );
+        if ( err != KErrNone ) {
+            TX_LOG_ARGS("DoGetPresetNameKeyL Error  = " << err);
+            presetKey = KEqualizerPresetNone;
+        }
+        TX_LOG_ARGS( "Preset key in engine =" << presetKey );
+    } 
+    else {
+        TX_LOG_ARGS( "Equalizer not ready." );
+    }
+
+    TX_EXIT_ARGS( "Preset Name Key = " << presetKey );
+    
+    return presetKey;
+}
+
+/*!
+    Get the preset index by giving preset name key.
+    
+ */
+int MpEqualizerFrameworkWrapperPrivate::getPresetIndex( int presetNameKey )
+{
+    TX_ENTRY_ARGS( "Preset Name Key = " << presetNameKey);
+
+    int presetIndex = KEqualizerPresetNone;
+    if ( mEqualizerUtility && presetNameKey != KEqualizerPresetNone ) {
+        TArray<TEfAudioEqualizerUtilityPreset> presetArray = mEqualizerUtility->Presets();
+        for ( TInt i = 0; i < presetArray.Count(); i++ ) {
+            TX_LOG_ARGS("presetArray[" << i << "].iPresetNameKey (" 
+                << presetArray[i].iPresetNameKey << ") vs presetId (" <<presetNameKey << ")");
+            if ( presetArray[i].iPresetNameKey == static_cast<TUint32>( presetNameKey ) ) {
+                presetIndex = i;
+                break;
+            }
+        }
+    }
+
+    TX_EXIT_ARGS( "Preset Index = " << presetIndex );
+
+    return presetIndex;
+}
+
+
+/*!
+    Returning the list of availale preset names.  
+
+    \sa CAudioEqualizerUtility
+ */
+QStringList MpEqualizerFrameworkWrapperPrivate::presetNames()
+{
+    TX_ENTRY
+
+    QStringList presetList;
+
+    if ( mEqualizerUtility == NULL ) {
+        TX_LOG_ARGS( "Equalizer not ready." );
+        return presetList;
+    }
+
+    TArray<TEfAudioEqualizerUtilityPreset> presetArray = mEqualizerUtility->Presets();
+    for (TInt i=0; i<presetArray.Count(); i++) {
+        TPresetName selectedItem = presetArray[i].iPresetName;
+        presetList << QString::fromUtf16( selectedItem.Ptr(), selectedItem.Length() );
+    }
+
+    TX_EXIT_ARGS( "PresetNames=" << presetList);
+
+    return presetList;
+}
+
+/*!
+ \internal
+ */
+void MpEqualizerFrameworkWrapperPrivate::DoInitL()
+{
+    TX_ENTRY
+
+    if (mMdaPlayUtility) {
+        mMdaPlayUtility->Close();
+        delete mMdaPlayUtility;
+        mMdaPlayUtility = NULL;
+    }
+    
+    mMdaPlayUtility = ( CMdaAudioPlayerUtility* )User::LeaveIfNull(
+        CMdaAudioPlayerUtility::NewL(
+            *this,
+            EMdaPriorityMin,
+            EMdaPriorityPreferenceNone ));
+
+    TX_LOG_ARGS("Loading null sound");
+    TFileName nullSoundPath( KMPXNullSoundPath );
+    User::LeaveIfError( MPXUser::CompleteWithDllPath( nullSoundPath ) );
+    TX_LOG_ARGS("Loading null sound done!");
+    mMdaPlayUtility->OpenFileL( nullSoundPath );
+    
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+TInt MpEqualizerFrameworkWrapperPrivate::DoGetPresetNameKeyL( const TInt presetIndex ) const 
+{
+    TX_ENTRY_ARGS( "preset index=" << presetIndex );
+
+    TInt presetNameKey = KErrNotFound;
+    TPresetName presetName = mEqualizerUtility->GetPresetL( presetIndex );
+
+    TArray<TEfAudioEqualizerUtilityPreset> presets = mEqualizerUtility->Presets();
+    for ( TInt index = 0; index < presets.Count(); index++ ) {
+        TPresetName selectedItem = presets[index].iPresetName;
+        TX_LOG_ARGS(" Comparing..." << presets[index].iPresetNameKey );
+        if ( selectedItem == presetName ) {
+            presetNameKey = presets[index].iPresetNameKey;
+            TX_LOG_ARGS(" Comparing mached presetNameKey = " << presetNameKey );
+            break;
+            }
+    }
+
+    TX_EXIT
+
+    return presetNameKey;
+}
+
+/*!
+ \internal
+ */
+void MpEqualizerFrameworkWrapperPrivate::MapcInitComplete(
+    TInt aError,
+    const TTimeIntervalMicroSeconds& /* aDuration */ )
+{
+    TX_ENTRY_ARGS( "aError=" << aError );
+
+    if ( !aError ) {
+        TRAPD(err, mEqualizerUtility = CAudioEqualizerUtility::NewL( *mMdaPlayUtility ) );
+        if ( err == KErrNone ) {
+            emit q_ptr->equalizerReady();
+        }
+        else {
+            TX_ENTRY_ARGS( "CAudioEquqlizerUtility error=" << err );
+        }
+    }
+    else {
+        TX_ENTRY_ARGS( "MapcInitComplete error=" << aError );
+    }
+
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpEqualizerFrameworkWrapperPrivate::MapcPlayComplete(
+    TInt /* aError */ )
+{
+    TX_LOG
+    // Do nothing
+}
+
+//End of File
--- a/mpengine/src/mpmediakeyhandler_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmediakeyhandler_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -405,13 +405,63 @@
         TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
 
         switch ( aCommandId ) {
+        case EPbCmdPlayPause:
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused 
+                 || playerState == EPbStateStopped ) {
+                iPlaybackUtility->CommandL( EPbCmdPlayPause );
+            }
+            break;
+        case EPbCmdPlay:
+            if ( playerState == EPbStateStopped || playerState == EPbStatePaused ) {
+                iPlaybackUtility->CommandL( EPbCmdPlay );
+            }
+            break;
+        case EPbCmdStop:
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused ) {
+                iPlaybackUtility->CommandL( EPbCmdStop );
+            }
+            break;
+        case EPbCmdPause:
+            if ( playerState == EPbStatePlaying ) {
+                iPlaybackUtility->CommandL( EPbCmdPause );
+            }
+            break;
+        case EPbCmdStartSeekBackward:
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused ) {
+                iPlaybackUtility->CommandL( EPbCmdStartSeekBackward );
+            }
+            break;
+        case EPbCmdStartSeekForward:
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused ) {
+                iPlaybackUtility->CommandL( EPbCmdStartSeekForward );
+            }
+            break;
+        case EPbCmdStopSeeking:
+            if ( playerState == EPbStateSeekingBackward || playerState == EPbStateSeekingForward ) {
+                iPlaybackUtility->CommandL( EPbCmdStopSeeking );
+            }
+            break;
+        case EPbCmdPrevious:
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused 
+                 || playerState == EPbStateStopped ) {
+                iPlaybackUtility->CommandL( EPbCmdPrevious );
+            }
+            break;
+        case EPbCmdNext:
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused 
+                 || playerState == EPbStateStopped ) {
+                iPlaybackUtility->CommandL( EPbCmdNext );
+            }
+            break;
         case EPbCmdIncreaseVolume:
-            if ( EPbStatePlaying == playerState ) {
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused 
+                 || playerState == EPbStateStopped ) {
                 iPlaybackUtility->CommandL( EPbCmdIncreaseVolume );
             }
             break;
         case EPbCmdDecreaseVolume:
-            if ( EPbStatePlaying == playerState ) {
+            if ( playerState == EPbStatePlaying || playerState == EPbStatePaused 
+                 || playerState == EPbStateStopped ) {
                 iPlaybackUtility->CommandL( EPbCmdDecreaseVolume );
             }
             break;
@@ -419,7 +469,6 @@
             break;
         }
     }
-
 }
 
 // ---------------------------------------------------------------------------
@@ -431,7 +480,6 @@
 
     static_cast<MpMediaKeyHandlerPrivate*>( aPtr )->HandleRepeatEvent();
 
-
     return KErrNone;
 }
 
--- a/mpengine/src/mpmediakeyremconresponse.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmediakeyremconresponse.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -70,6 +70,54 @@
         {
         switch ( aOperationId )
             {
+            case ERemConCoreApiPausePlayFunction:
+                {
+                iRemConCoreApiTarget.PausePlayFunctionResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
+            case ERemConCoreApiPlay:
+                {
+                iRemConCoreApiTarget.PlayResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
+            case ERemConCoreApiStop:
+                {
+                iRemConCoreApiTarget.StopResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
+            case ERemConCoreApiPause:
+                {
+                iRemConCoreApiTarget.PauseResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
+            case ERemConCoreApiRewind:
+                {
+                iRemConCoreApiTarget.RewindResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
+            case ERemConCoreApiFastForward:
+                {
+                iRemConCoreApiTarget.FastForwardResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
+            case ERemConCoreApiBackward:
+                {
+                iRemConCoreApiTarget.BackwardResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
+            case ERemConCoreApiForward:
+                {
+                iRemConCoreApiTarget.ForwardResponse( iStatus, KErrNone );
+                SetActive();
+                break;
+                }
             case ERemConCoreApiVolumeUp:
                 {
                 iRemConCoreApiTarget.VolumeUpResponse( iStatus, KErrNone );
--- a/mpengine/src/mpmpxcollectionframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmpxcollectionframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -43,6 +43,13 @@
  */
 
 /*!
+    \fn void deleteStarted();
+
+    This signal is emitted when song delete operation is started
+
+ */
+
+/*!
     \fn void songsDeleted( bool success )
 
     This signal is emitted when song delete operation is completed, it 
@@ -59,22 +66,36 @@
  */
 
 /*!
+    \fn void aboutToAddSongs( int count )
+
+    This signal is emitted when play list is prepared and about to be added.
+    \a count Indicates number of songs to be added
+
+ */
+
+/*!
     \fn void isolatedCollectionOpened( MpMpxCollectionData* collectionData )
 
     This signal is emitted when an isolated collection is opened on \a context
 
  */
  
- 
+/*!
+    \fn void containerContentsChanged()
+
+    This signal is emitted when items are removed or inserted on the current 
+    container.
+
+ */
  
 /*!
  Constructs the utility wrapper.
  */
-MpMpxCollectionFrameworkWrapper::MpMpxCollectionFrameworkWrapper( MpCommon::MpViewMode viewMode, TUid hostUid, QObject *parent )
+MpMpxCollectionFrameworkWrapper::MpMpxCollectionFrameworkWrapper( TUid hostUid, QObject *parent )
     : QObject( parent )
 {
     d_ptr = new MpMpxCollectionFrameworkWrapperPrivate( this );
-    d_ptr->init( viewMode, hostUid );
+    d_ptr->init( hostUid );
 }
 
 /*!
@@ -207,6 +228,22 @@
 }
 
 /*!
+ Finds all songs beloging to the album specified by the \a index.
+ */
+void MpMpxCollectionFrameworkWrapper::findAlbumSongs( int index )
+{
+    d_ptr->findAlbumSongs(index);
+}
+
+/*!
+ Plays album with \a albumIndex starting with the songs with \a songIndex.
+*/
+void MpMpxCollectionFrameworkWrapper::playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
+{
+     d_ptr->playAlbumSongs( albumIndex, songIndex, collectionData );
+}
+
+/*!
  Returns pointer to MpMpxCollectionData, which is the collection data.
  */
 MpMpxCollectionData *MpMpxCollectionFrameworkWrapper::collectionData()
@@ -234,4 +271,51 @@
     d_ptr->reorderPlaylist( playlistId, songId, originalOrdinal, newOrdinal );
 }
 
+/*!
+  Called to set the repeat feature to \a enable
+ */
+void MpMpxCollectionFrameworkWrapper::setRepeatFeatureEnabled( bool enable ) 
+{
+    d_ptr->setRepeatFeatureEnabled( enable );
+}
 
+/*!
+ Called to set the shuffle feature to \a enable
+ */
+void MpMpxCollectionFrameworkWrapper::setShuffleFeatureEnabled( bool enable )
+{
+    d_ptr->setShuffleFeatureEnabled( enable );
+}
+
+/*!
+ Called to open all songs path and trigger shuffle all songs play
+ */
+void MpMpxCollectionFrameworkWrapper::openShuffleAllSongsPath()
+{
+    d_ptr->openShuffleAllSongsPath();
+}
+
+/*!
+ Called to save playback data used for publishing activity (i.e. restore path) 
+ */
+void  MpMpxCollectionFrameworkWrapper::savePath( QByteArray &data )
+{
+    d_ptr->savePath( data );
+}
+
+/*!
+ Called to load playback data used from returning activity (i.e. restore path) 
+ */
+void MpMpxCollectionFrameworkWrapper::restorePath( const QByteArray &data ) 
+{
+    return d_ptr->restorePath( data );
+}
+/*!
+ Cancels CollectionUiHelper request.
+ */
+void MpMpxCollectionFrameworkWrapper::cancelRequest()
+{
+    d_ptr->cancel();
+}
+
+//EOF
--- a/mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -78,7 +78,13 @@
       iCollectionData( 0 ),
       iIsolatedCollectionData( 0 ),
       iFirstIncrementalOpen( EFalse ),
-      iUserPlaylists( 0 )
+      iUserPlaylists( 0 ),
+      iRepeatFeature( ETrue ),
+      iShuffleFeature( ETrue ),
+      iReopen( EFalse ),
+      iShuffleAll( EFalse ),
+      iRestoreDefaultPath( EFalse ),
+      iRestorePathIndex(0)
 {
     TX_LOG
 }
@@ -115,10 +121,9 @@
 /*!
  \internal
  */
-void MpMpxCollectionFrameworkWrapperPrivate::init( MpCommon::MpViewMode viewMode, TUid hostUid )
+void MpMpxCollectionFrameworkWrapperPrivate::init( TUid hostUid )
 {
 
-    iViewMode = viewMode;
     mHostUid = hostUid;
     TRAPD( err, DoInitL() );
     if ( err != KErrNone ) {
@@ -154,7 +159,10 @@
 void MpMpxCollectionFrameworkWrapperPrivate::reopenCollection()
 {
     TRAPD( err, DoReopenCollectionL() );
-    if ( err != KErrNone ) {
+    if ( err == KErrNone ) {
+        iReopen = ETrue;
+    }
+    else {
         TX_LOG_ARGS( "Error: " << err << "; should never get here." );
     }
 }
@@ -218,8 +226,20 @@
  */
 void MpMpxCollectionFrameworkWrapperPrivate::deleteSongs( QList<int> &selection )
 {
-    TRAPD( err, DoDeleteSongsL( selection ) );
-    if ( err != KErrNone ) {
+    TCollectionContext context = iCollectionData->context();
+    int err;
+    if ( context == ECollectionContextArtistAlbumsTBone
+         || context == ECollectionContextAlbumsTBone ) {
+        TRAP( err, DoDeleteAlbumSongsL( selection ) );
+    }
+    else {
+        TRAP( err, DoDeleteSongsL( selection ) );
+    }
+    if ( err == KErrNone ) {
+        // send signal that deleting has started.
+        emit q_ptr->deleteStarted(iCollectionData->context(), selection.count());
+    }
+    else{
         TX_LOG_ARGS( "Error: " << err << "; should never get here." );
     }
 }
@@ -261,7 +281,15 @@
  */
 void MpMpxCollectionFrameworkWrapperPrivate::previewItem( int index )
 {
-    TRAPD( err, DoPreviewItemL( index ) );
+    TCollectionContext context = iCollectionData->context();
+    int err;
+    if ( context == ECollectionContextArtistAlbumsTBone
+         || context == ECollectionContextAlbumsTBone ) {
+        TRAP( err, DoPreviewAlbumSongL( index ) );
+    }
+    else {
+        TRAP( err, DoPreviewSongL( index ) );
+    }
     if ( err != KErrNone ) {
         TX_LOG_ARGS( "Error: " << err << "; should never get here." );
     }
@@ -303,6 +331,36 @@
 /*!
  \internal
  */
+void MpMpxCollectionFrameworkWrapperPrivate::cancel()
+{
+    iCollectionUiHelper->Cancel();
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::findAlbumSongs( int index )
+{
+    TRAPD( err, DoFindAlbumSongsL( index ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+    }
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
+{
+    TRAPD( err, DoPlayAlbumSongsL( albumIndex, songIndex, collectionData ? collectionData : iCollectionData ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+    }
+}
+
+/*!
+ \internal
+ */
 MpMpxCollectionData *MpMpxCollectionFrameworkWrapperPrivate::collectionData()
 {
     return iCollectionData;
@@ -311,6 +369,51 @@
 /*!
  \internal
  */
+void MpMpxCollectionFrameworkWrapperPrivate::openShuffleAllSongsPath()
+{
+    TX_ENTRY
+    TRAPD( err, DoOpenCollectionL(ECollectionContextAllSongs) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+    }
+    else {
+        iShuffleAll = ETrue; 
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::savePath( QByteArray &data )
+{
+    TX_ENTRY
+    TRAPD( err, DoSavePathL( data ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+    }
+    TX_EXIT
+    
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::restorePath( const QByteArray &data )
+{
+    TX_ENTRY
+    TRAPD( err, DoRestorePathL( data ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+    }
+    TX_EXIT
+}
+
+
+/*!
+ \internal
+ Result of open or re-open operation to the Collection Framework.
+ */
 void MpMpxCollectionFrameworkWrapperPrivate::HandleOpenL( 
     const CMPXMedia& aEntries,
     TInt aIndex,
@@ -322,8 +425,15 @@
     TX_ENTRY_ARGS( "aError=" << aError << "aComplete=" << aComplete );
     if ( aError == KErrNone ) {
         if ( iFirstIncrementalOpen ) {
-            iCollectionData->setMpxMedia( aEntries );
             iFirstIncrementalOpen = EFalse;
+            if( iShuffleAll ) {
+                iShuffleAll = EFalse;
+                TX_ENTRY_ARGS( "Path is ready" );
+                DoPlayAllSongsPlaylistL();
+                
+            }
+            iCollectionData->setMpxMedia( aEntries, iReopen );
+            iReopen = EFalse;
         }
     }
     else {
@@ -342,15 +452,8 @@
     TX_ENTRY_ARGS( "aError=" << aError );
 
     if ( aError == KErrNone ) {
-        if ( !iPlaybackUtility ) {
-
-            iPlaybackUtility = MMPXPlaybackUtility::UtilityL( mHostUid );
-
-            if ( iViewMode == MpCommon::DefaultView ) {
-                iPlaybackUtility->SetL( EPbPropertyRandomMode, MpSettingsManager::shuffle() ? ETrue : EFalse );
-                iPlaybackUtility->SetL( EPbPropertyRepeatMode, MpSettingsManager::repeat() ? EPbRepeatAll : EPbRepeatOff );
-            }
-        }
+        //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
+        createPlaybackUtilityL();
         iPlaybackUtility->InitL( aPlaylist, ETrue );
         emit q_ptr->collectionPlaylistOpened();
     }
@@ -439,20 +542,96 @@
 /*!
  \internal
  */
+void MpMpxCollectionFrameworkWrapperPrivate::HandleIsolatedOpenRestorePathL( const CMPXCollectionPath& aPath, TInt aError )
+{
+    TX_ENTRY_ARGS( "aError=" << aError );
+    if ( aError == KErrNone ) {
+        CMPXCollectionPath* cpath = CMPXCollectionPath::NewL( aPath );
+        CleanupStack::PushL( cpath );
+        if ( cpath->Count() <= 0 ) {
+            //There are no entries on the path
+            if ( !iRestoreDefaultPath ) {
+                //Try restoring default path if not already tried
+                //This is a special case where a playlist's songs where on the MMC and it was removed
+                iRestoreDefaultPath = ETrue;
+                iRestorePathIndex = 0;
+                CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
+                CleanupStack::PushL( cpath );
+                iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
+                CleanupStack::PopAndDestroy( cpath );
+            }
+            else {
+                //emit signal to go back to collection view because there is no music
+                emit q_ptr->restorePathFailed();
+            }
+        }
+        else if ( iRestorePathIndex ) {
+            //If RestorePathIndex equals zero there is no need to check with previous index
+            //just go and create playlist below
+            if ( iRestorePathIndex == cpath->IndexOfId( iRestorePathIndexId ) ) {
+                //Song is in path and maintains previous position
+                cpath->Set( iRestorePathIndex );
+                CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
+                CleanupStack::PushL( playList );
+                createPlaybackUtilityL();
+                iPlaybackUtility->InitL( *playList, EFalse );
+                CleanupStack::PopAndDestroy( playList );
+            }
+            else { 
+                //Re open path starting at the beginning of the collection
+                iRestorePathIndex = 0;
+                cpath->Back(); 
+                iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
+            }
+        }
+        else {
+            //We create a playlist right away since there is no need to check the index for the first element
+            CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
+            CleanupStack::PushL( playList );
+            createPlaybackUtilityL();
+            iPlaybackUtility->InitL( *playList, EFalse );
+            CleanupStack::PopAndDestroy( playList );
+        }
+        CleanupStack::PopAndDestroy( cpath );
+    }
+    else if ( aError == KErrNotFound ) {
+        //Path not found (e.g. MMC removed) try restoring default path
+        iRestoreDefaultPath = ETrue;
+        iRestorePathIndex = 0;
+        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
+        CleanupStack::PushL( cpath );
+        iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
+        CleanupStack::PopAndDestroy( cpath );
+    }
+    else {
+        //Open path failed
+        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::HandleFindAllL( const CMPXMedia& aResults, TBool aComplete, TInt aError )
+{
+    Q_UNUSED( aComplete );
+    TX_ENTRY_ARGS( "aError=" << aError );
+
+    if ( aError == KErrNone ) {
+        iCollectionData->setAlbumContent( aResults );
+    }
+}
+
+/*!
+ \internal
+ */
 void MpMpxCollectionFrameworkWrapperPrivate::DoInitL()
 {
     TX_ENTRY
-    if ( iViewMode == MpCommon::FetchView ) {
-        iCollectionUtility = MMPXCollectionUtility::NewL( this, mHostUid );
-        iCollectionUiHelper = CMPXCollectionHelperFactory:: NewCollectionUiHelperL( mHostUid );
-        iIncrementalOpenUtil = CMPXCollectionOpenUtility::NewL( this, mHostUid );
-    }
-    else {
-        iCollectionUtility = MMPXCollectionUtility::NewL( this, KMcModeDefault );
-        iCollectionUiHelper = CMPXCollectionHelperFactory:: NewCollectionUiHelperL();
-        iIncrementalOpenUtil = CMPXCollectionOpenUtility::NewL( this );
-    }
-    
+    iCollectionUtility = MMPXCollectionUtility::NewL( this, mHostUid );
+    iCollectionUiHelper = CMPXCollectionHelperFactory:: NewCollectionUiHelperL( mHostUid );
+    iIncrementalOpenUtil = CMPXCollectionOpenUtility::NewL( this, mHostUid );  
     iCollectionData = new MpMpxCollectionData();
     TX_EXIT
 }
@@ -478,7 +657,7 @@
         {
         CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
         CleanupStack::PushL( cpath );
-        cpath->AppendL( 2 );
+        cpath->AppendL( BrowseArtist );
         iCollectionUtility->Collection().OpenL( *cpath );
         CleanupStack::PopAndDestroy( cpath );
         break;
@@ -487,7 +666,7 @@
         {
         CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
         CleanupStack::PushL( cpath );
-        cpath->AppendL( 3 );
+        cpath->AppendL( BrowseAlbum );
         iCollectionUtility->Collection().OpenL( *cpath );
         CleanupStack::PopAndDestroy( cpath );
         break;
@@ -500,12 +679,11 @@
         CleanupStack::PopAndDestroy( cpath );
         break;
         }
-    case ECollectionContextGenres:
+    case ECollectionContextAlbumsMediaWall:
         {
         CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
         CleanupStack::PushL( cpath );
-        // Temp
-        cpath->AppendL( 5 );
+        cpath->AppendL( BrowseAlbumMediaWall );
         iCollectionUtility->Collection().OpenL( *cpath );
         CleanupStack::PopAndDestroy( cpath );
         break;
@@ -710,7 +888,7 @@
 
     CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
     CleanupStack::PushL( path );
-
+    
     if (count > 1) {
         for ( TInt i = 0; i < count; i++ ){
             path->SelectL( selection.at( i ) );
@@ -719,6 +897,7 @@
     else {
         path->Set( selection.at(0) );
     }
+        
     iCollectionUiHelper->DeleteL( *path, this );
     CleanupStack::PopAndDestroy( path );
     TX_EXIT
@@ -727,6 +906,39 @@
 /*!
  \internal
  */
+void MpMpxCollectionFrameworkWrapperPrivate::DoDeleteAlbumSongsL( QList<int> &selection )
+{
+    int count = selection.count();
+    TX_ENTRY_ARGS( "selection count=" << count );
+
+    CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
+    CleanupStack::PushL( path );
+    MPX_DEBUG_PATH( *path );
+
+    CMPXMediaArray *mediaArray;
+    const CMPXMedia& container = iCollectionData->containerMedia();
+    mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
+    int currentAlbumIndex = iCollectionData->currentAlbumIndex();
+    CMPXMedia* album( mediaArray->AtL( currentAlbumIndex ) );
+    if ( album->IsSupported(KMPXMediaArrayContents) ) {
+        const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
+        User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
+        int index = selection.at(0);
+        CMPXMedia* song = songs->AtL(index);
+
+        TMPXItemId id( song->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
+        path->AppendL( id );   // Append the song ID to be deleted
+        path->Set( 0 );        // Select 1st song
+
+        iCollectionUiHelper->DeleteL( *path, this );
+    }
+    CleanupStack::PopAndDestroy( path );
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
 void MpMpxCollectionFrameworkWrapperPrivate::DoRenamePlaylistL( QString &newName, int index )
 {
     TX_ENTRY
@@ -784,9 +996,40 @@
 /*!
  \internal
  */
-void MpMpxCollectionFrameworkWrapperPrivate::DoPreviewItemL( int index )
+void MpMpxCollectionFrameworkWrapperPrivate::DoPreviewSongL( int index )
 {
     TX_ENTRY
+    
+    // Get the current path
+    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
+    CleanupStack::PushL( cpath );
+    MPX_DEBUG_PATH( *cpath );
+    cpath->Back();
+
+    TMPXItemId id( iCollectionData->itemId(index) );
+    cpath->AppendL( id ); // Top level items of songs
+    cpath->Set( 0 ); // Select 1st song
+
+    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
+    CleanupStack::PushL( playList );
+    playList->SetToFirst();
+    //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
+    createPlaybackUtilityL();
+    iPlaybackUtility->InitL( *playList, ETrue );
+    emit q_ptr->collectionPlaylistOpened();
+
+    CleanupStack::PopAndDestroy( playList );
+    CleanupStack::PopAndDestroy( cpath );
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::DoPreviewAlbumSongL( int index )
+{
+    TX_ENTRY
+    //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
     if ( !iPlaybackUtility ) {
         iPlaybackUtility = MMPXPlaybackUtility::UtilityL( mHostUid );
     }
@@ -795,25 +1038,30 @@
     CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
     CleanupStack::PushL( cpath );
     MPX_DEBUG_PATH( *cpath );
-    cpath->Back();
 
     CMPXMediaArray *mediaArray;
     const CMPXMedia& container = iCollectionData->containerMedia();
     mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
-    CMPXMedia* currentMedia( mediaArray->AtL( index ) );
-    TMPXItemId id( currentMedia->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
-
-    cpath->AppendL( id ); // Top level items of songs
-    cpath->Set( 0 ); // Select 1st song
+    int currentAlbumIndex = iCollectionData->currentAlbumIndex();
+    CMPXMedia* album( mediaArray->AtL( currentAlbumIndex ) );
+    if ( album->IsSupported(KMPXMediaArrayContents) ) {
+        const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
+        User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
+        CMPXMedia* song = songs->AtL(index);
 
-    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
-    CleanupStack::PushL( playList );
-    playList->SetToFirst();
+        TMPXItemId id( song->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
+        cpath->AppendL( id );   // Top level items of songs
+        cpath->Set( 0 );        // Select 1st song
 
-    iPlaybackUtility->InitL( *playList, ETrue );
-    emit q_ptr->collectionPlaylistOpened();
+        CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
+        CleanupStack::PushL( playList );
+        playList->SetToFirst();
+        //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
+        iPlaybackUtility->InitL( *playList, ETrue );
+        emit q_ptr->collectionPlaylistOpened();
 
-    CleanupStack::PopAndDestroy( playList );
+        CleanupStack::PopAndDestroy( playList );
+    }
     CleanupStack::PopAndDestroy( cpath );
     TX_EXIT
 }
@@ -840,9 +1088,126 @@
  */
 void MpMpxCollectionFrameworkWrapperPrivate::DoReorderPlaylistL( int playlistId, int songId, int originalOrdinal, int newOrdinal )
 {
-    iCollectionUiHelper->ReorderPlaylistL( playlistId, songId, originalOrdinal, newOrdinal, this );           
+    iCollectionUiHelper->ReorderPlaylistL( playlistId, songId, originalOrdinal, newOrdinal, this );
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::DoFindAlbumSongsL( int index )
+{
+    const CMPXMedia& container = iCollectionData->containerMedia();
+    const CMPXMediaArray* mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
+    CMPXMedia* album( mediaArray->AtL( index ) );
+
+    // Fetch the songs for the selected album
+    TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+    CMPXMedia* findCriteria = CMPXMedia::NewL();
+    CleanupStack::PushL( findCriteria );
+    findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
+    findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
+    findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, albumId );
+    RArray<TMPXAttribute> attrs;
+    CleanupClosePushL( attrs );
+    attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
+                                 EMPXMediaGeneralTitle |
+								 EMPXMediaGeneralUri |
+                                 EMPXMediaGeneralId |
+                                 EMPXMediaGeneralType |
+                                 EMPXMediaGeneralCategory |
+                                 EMPXMediaGeneralFlags ) );
+    attrs.Append( KMPXMediaMusicAlbumTrack );
+
+    iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array(), *this );
+    CleanupStack::PopAndDestroy( &attrs );
+    CleanupStack::PopAndDestroy( findCriteria );
 }
 
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::DoPlayAlbumSongsL( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
+{
+    TX_ENTRY
+
+    RArray<TMPXItemId> ids;
+    CleanupClosePushL(ids);
+
+    CMPXCollectionPath* cpath;
+    
+    //Following check is for a use case for media wall, where it is required 
+    //to play songs that are browsed by an isolated collection.
+    if ( collectionData->context() ==  ECollectionContextAlbumsMediaWall ) {
+        //Get the Media Wall path.
+        cpath = iCollectionUiHelper->MusicMenuPathL();
+        CleanupStack::PushL( cpath );
+        //TODO: change to BrowseAlbumMediaWall befor when merging with olveras changes.
+        cpath->AppendL( BrowseAlbum );
+        const TMPXItemId albumId = collectionData->itemId( albumIndex );
+        //Append the selected album.
+        RArray<TMPXItemId> items;
+        CleanupClosePushL(items);
+        items.AppendL(albumId);
+        cpath->AppendL(items.Array());
+        CleanupStack::PopAndDestroy( &items );
+        cpath->Set( 0 ); // Set the album.
+        
+    }
+    else {
+        // Get the current path
+        cpath = iCollectionUtility->Collection().PathL();
+        CleanupStack::PushL( cpath );
+        cpath->Set(albumIndex); // Set the selected album
+    }
+    MPX_DEBUG_PATH( *cpath );
+
+    CMPXMediaArray *mediaArray;
+    const CMPXMedia& container = collectionData->containerMedia();
+    mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
+    CMPXMedia* album( mediaArray->AtL( albumIndex ) );
+    const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
+    User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
+
+    TInt count = songs->Count();
+    for ( TInt i = 0; i < count; ++i ) {
+        CMPXMedia* song = songs->AtL(i);
+        const TMPXItemId id = song->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+        ids.AppendL(id);
+    }
+
+    cpath->AppendL(ids.Array());    // Top level items of songs
+    cpath->Set(songIndex);          // Set the selected song
+    MPX_DEBUG_PATH(*cpath);
+
+    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
+    CleanupStack::PushL( playList );
+    
+    //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
+    createPlaybackUtilityL();
+    iPlaybackUtility->InitL( *playList, ETrue );
+    emit q_ptr->collectionPlaylistOpened();
+
+    CleanupStack::PopAndDestroy( playList );
+    CleanupStack::PopAndDestroy( cpath );
+    CleanupStack::PopAndDestroy( &ids );
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::setRepeatFeatureEnabled( bool enable ) 
+{
+    iRepeatFeature = enable;
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::setShuffleFeatureEnabled( bool enable )
+{
+    iShuffleFeature = enable;
+}
 
 /*!
  \internal
@@ -872,6 +1237,9 @@
             iCollectionUtility->Collection().OpenL();
         }
     }
+    else if( id == KMPXMessageIdItemChanged ) {
+        emit q_ptr->containerContentsChanged();                     
+    }  
     TX_EXIT
 }
 
@@ -887,9 +1255,27 @@
     int count = selection.count();
     TX_ENTRY_ARGS( "selection count=" << count );
 
-    const CMPXMedia& container = collectionData->containerMedia();
-    const CMPXMediaArray* containerArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
-    User::LeaveIfNull( const_cast<CMPXMediaArray*>( containerArray ) );
+    const CMPXMediaArray* mediaArray = 0;
+    
+    if ( ( collectionData->context() == ECollectionContextArtistAlbumsTBone ) || 
+         ( collectionData->context() == ECollectionContextAlbumsTBone ) ) {
+        //There is no need to find the track information, for TBone we cash it under the media itself.
+        //Fetching song data from container media.
+        CMPXMedia* album;
+        const CMPXMediaArray* albumsArray;
+        albumsArray = collectionData->containerMedia().Value<CMPXMediaArray>( KMPXMediaArrayContents );
+        int index = collectionData->currentAlbumIndex();
+        if ( index >= 0 ) {
+            album = albumsArray->AtL( collectionData->currentAlbumIndex() );
+            mediaArray = album->Value<CMPXMediaArray>( KMPXMediaArrayContents );
+        }
+    }
+    else {
+        const CMPXMedia& container = collectionData->containerMedia();
+        mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
+    }
+       
+    User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ) );
     CMPXMediaArray* tracksArray( CMPXMediaArray::NewL() );
     CleanupStack::PushL( tracksArray );
 
@@ -898,13 +1284,15 @@
     TMPXItemId collectionId( path->Id( 0 ) );
     CleanupStack::PopAndDestroy( path );
 
-    if ( ( collectionData->context() == ECollectionContextAlbums ) || 
-            ( collectionData->context() == ECollectionContextArtistAlbums ) || 
-            ( collectionData->context() == ECollectionContextArtists ) ) {
+    if ( collectionData->context() == ECollectionContextAlbums || 
+         collectionData->context() == ECollectionContextArtistAlbums ||
+         collectionData->context() == ECollectionContextArtists ) {
+        //Container, it is possible to append multiple containers to a playlist. 
+        //Currently we are just using single selection from the ui.
         for ( TInt i = 0; i < count; i++ ) {
             CMPXMedia* results;
-            CMPXMedia* container( containerArray->AtL( selection[i] ) );
-            // Fetch the songs for the selected album
+            CMPXMedia* container( mediaArray->AtL( selection[i] ) );
+            // Fetch the songs for the selected container
             TMPXItemId containerId = container->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
             CMPXMedia* findCriteria = CMPXMedia::NewL();
             CleanupStack::PushL( findCriteria );
@@ -916,12 +1304,6 @@
             attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
                                          EMPXMediaGeneralTitle |
                                          EMPXMediaGeneralId ) );
-            if ( collectionData->context() == ECollectionContextArtists ){
-                attrs.Append( KMPXMediaMusicArtist );
-            }
-            else {
-                attrs.Append( KMPXMediaMusicAlbumTrack );
-            }
             results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() );
             CleanupStack::PopAndDestroy( &attrs );
             CleanupStack::PopAndDestroy( findCriteria );
@@ -947,9 +1329,10 @@
         }
         
     }
-    else {   
+    else {
+        //Tracks
         for ( TInt i = 0; i < count; i++ ) {
-            CMPXMedia* media( containerArray->AtL( selection.at( i ) ) );
+            CMPXMedia* media( mediaArray->AtL( selection.at( i ) ) );
             CMPXMedia* entry = CMPXMedia::NewL();
             CleanupStack::PushL( entry );
             entry->SetTextValueL( KMPXMediaGeneralTitle,
@@ -968,6 +1351,121 @@
     aMedia.SetCObjectValueL( KMPXMediaArrayContents, tracksArray );
     aMedia.SetTObjectValueL( KMPXMediaArrayCount, tracksArray->Count() );
 
+    emit q_ptr->aboutToAddSongs( tracksArray->Count() );
+
     CleanupStack::PopAndDestroy( tracksArray );
     TX_EXIT
 }
+
+/*!
+ \internal
+ TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::createPlaybackUtilityL() 
+{
+    if ( !iPlaybackUtility ) {
+
+        iPlaybackUtility = MMPXPlaybackUtility::UtilityL( mHostUid );
+
+        if ( iShuffleFeature ) {
+            iPlaybackUtility->SetL( EPbPropertyRandomMode, MpSettingsManager::shuffle() ? ETrue : EFalse );
+        }
+        if ( iRepeatFeature ) {
+            iPlaybackUtility->SetL( EPbPropertyRepeatMode, MpSettingsManager::repeat() ? EPbRepeatAll : EPbRepeatOff );
+        }
+    }
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::DoPlayAllSongsPlaylistL()
+{
+    TX_ENTRY
+    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
+    CleanupStack::PushL( cpath );
+    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
+    CleanupStack::PushL( playList );
+    playList->SetShuffleL( true, false );
+    MpSettingsManager::setShuffle( true );
+    createPlaybackUtilityL();
+    iPlaybackUtility->InitL( *playList, ETrue );
+    CleanupStack::PopAndDestroy( playList );
+    CleanupStack::PopAndDestroy( cpath );
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::DoSavePathL( QByteArray &data )
+{
+    TX_ENTRY
+    CBufFlat* buffer = CBufFlat::NewL( 256 );
+    CleanupStack::PushL( buffer );
+    TBufBuf bufBuf;
+    bufBuf.Set( *buffer, 0, TBufBuf::EWrite );
+    
+    RWriteStream writeStream( &bufBuf );
+    writeStream.PushL();
+    
+    if ( iPlaybackUtility ) {
+        MMPXSource* source = iPlaybackUtility->Source();
+        CMPXCollectionPlaylist* playList( NULL );
+        if( source ) {
+        playList = source->PlaylistL();
+            if ( playList ) {
+                CleanupStack::PushL( playList );
+                const CMPXCollectionPath& cpath = playList->Path();
+                writeStream << cpath;
+                writeStream.CommitL();
+                CleanupStack::PopAndDestroy( playList );
+            }
+        }
+    }
+    data.append(reinterpret_cast<const char*>(buffer->Ptr(0).Ptr()) ,buffer->Ptr(0).Length());
+    CleanupStack::PopAndDestroy( 2, buffer ); //writeStream and buffer
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionFrameworkWrapperPrivate::DoRestorePathL( const QByteArray &data )
+{
+    TX_ENTRY
+    int dataSize = data.size();
+    if ( dataSize > 0 ) {
+        TPtrC8 activityDataDescriptor( reinterpret_cast<const unsigned char*> ( data.constData() ), data.size() );
+         
+        //Take a copy of the data
+        CBufFlat* buffer = CBufFlat::NewL( dataSize );
+        CleanupStack::PushL( buffer );
+        buffer->InsertL( 0, activityDataDescriptor, dataSize );
+        
+        TBufBuf bufBuf;
+        bufBuf.Set( *buffer, 0, TBufBuf::ERead );
+        RReadStream readStream( &bufBuf );
+        readStream.PushL();
+        
+        CMPXCollectionPath* cpath( NULL );
+        cpath = CMPXCollectionPath::NewL(readStream);
+        CleanupStack::PushL(cpath);
+        iRestorePathIndex = 0;
+        if( cpath->Levels() ) {
+            iRestorePathIndexId = cpath->Id();
+            iRestorePathIndex = cpath->Index();
+            cpath->Back();
+        }
+        if ( !iIsolatedCollectionHelper ) {
+            iIsolatedCollectionHelper = CMpMpxIsolatedCollectionHelper::NewL( this );
+        }   
+        iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
+          
+        CleanupStack::PopAndDestroy( cpath );
+        CleanupStack::PopAndDestroy( 2, buffer ); //readStream and buffer
+    }
+    TX_EXIT
+}
+
+//EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpmpxdetailsframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,71 @@
+/*
+* 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: Framework wrapper
+*
+*/
+
+
+#include "mpmpxdetailsframeworkwrapper.h"
+#include "mpmpxdetailsframeworkwrapper_p.h"
+#include "mptrace.h"
+
+/*!
+    \class MpMpxDetailsFrameworkWrapper
+    \brief Wrapper for mpx framework utilities.
+
+    MPX framework wrapper provides Qt style interface to the MPX framework
+    utilities. Its implementation is hidden using private class data pattern.
+*/
+
+
+/*!
+ Constructs the utility wrapper.
+ */
+MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper( TUid hostUid, QObject *parent )
+    : QObject(parent)      
+{
+    TX_ENTRY
+    d_ptr = q_check_ptr( new MpMpxDetailsFrameworkWrapperPrivate( this ) );  //from Qt 4.6
+    d_ptr->init( hostUid );
+    TX_EXIT
+}
+
+/*!
+ Destructs the utility wrapper.
+ */
+MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper()
+{
+    TX_ENTRY
+    delete d_ptr;
+    TX_EXIT
+}
+
+/*!
+ Returns pointer to MpSongData
+ */
+MpSongData *MpMpxDetailsFrameworkWrapper::songData()
+{
+    TX_LOG
+    return d_ptr->songData();
+}
+
+/*!
+ Retrieve currently playing song meta data
+ */
+void MpMpxDetailsFrameworkWrapper::retrieveSong()
+{
+    TX_LOG
+    d_ptr->retrieveSong();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpmpxdetailsframeworkwrapper_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,399 @@
+/*
+* 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: Framework wraper - Private.
+*
+*/
+
+#include <QRegExp>
+#include <QStringList>
+#include <QFileInfo>
+#include <QDateTime>
+#include <QTime>
+#include <QDate>
+
+#include <mpxplaybackutility.h>
+#include <mpxmedia.h>
+#include <mpxmediageneraldefs.h>
+#include <mpxmediamusicdefs.h>
+#include <mpxcommandgeneraldefs.h>
+#include <mpxplaybackmessage.h>
+#include <mpxmessagegeneraldefs.h>
+#include <mpxplaybackmessagedefs.h>
+#include <mpxmediaaudiodefs.h>
+#include <mpxmediadrmdefs.h>
+
+#include "mpmpxdetailsframeworkwrapper_p.h"
+#include "mpmpxdetailsframeworkwrapper.h"
+#include "mpcommondefs.h"
+#include "mptrace.h"
+#include "mpsongdata.h"
+
+/*!
+    \class MpMpxDetailsFrameworkWrapperPrivate
+    \brief Wrapper for mpx framework utilities - private implementation.
+
+    This is a private implementation of the mpx framework wrapper utilties interface.
+*/
+
+/*!
+ \internal
+ */
+MpMpxDetailsFrameworkWrapperPrivate::MpMpxDetailsFrameworkWrapperPrivate( MpMpxDetailsFrameworkWrapper *qq )
+    : q_ptr( qq ),
+      iSongData(0),
+      iPlaybackUtility(0)
+{
+    TX_LOG
+}
+
+/*!
+ \internal
+ */
+MpMpxDetailsFrameworkWrapperPrivate::~MpMpxDetailsFrameworkWrapperPrivate()
+{
+    TX_ENTRY
+    
+    if ( iPlaybackUtility )
+        {        
+        TRAP_IGNORE(iPlaybackUtility->RemoveObserverL( *this ));
+        iPlaybackUtility->Close();
+        iPlaybackUtility = NULL;
+        //do not delete pointer data
+        }
+    
+    delete iSongData;
+    iSongData=NULL;
+    
+    TX_EXIT
+}
+
+/*!
+ \initialize wrapper
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::init( TUid hostUid )
+{
+    mHostUid = hostUid;
+    TRAPD(err, DoInitL());
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+}
+
+/*!
+ \internal
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::DoInitL()
+{
+    TX_ENTRY
+
+    iPlaybackUtility = MMPXPlaybackUtility::UtilityL( mHostUid );
+    iPlaybackUtility->AddObserverL( *this );
+    iSongData = new MpSongData();
+    User::LeaveIfNull(iSongData);
+   
+    TX_EXIT
+}
+
+
+/*!
+ \internal
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::HandlePlaybackMessage(
+        CMPXMessage *aMessage,
+        TInt aError )
+{
+    Q_UNUSED( aMessage );
+    Q_UNUSED( aError );
+}
+
+/*!
+ \internal
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::HandlePropertyL( TMPXPlaybackProperty /*aProperty*/, TInt /*aValue*/, TInt /*aError*/ )
+{
+    TX_LOG
+}
+
+/*!
+ \internal
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::HandleSubPlayerNamesL( TUid /*aPlayer*/, const MDesCArray */*aSubPlayers*/, TBool /*aComplete*/, TInt /*aError*/ )
+{
+    TX_LOG    
+}
+
+/*!
+ \internal
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::HandleMediaL(
+        const CMPXMedia& aProperties,
+        TInt aError )
+{
+    TX_ENTRY
+  
+    if ( KErrNone != aError ){
+        // TODO: Hkn: Add a proper trace macro and trace
+        TX_EXIT
+        return;
+    }
+  
+    bool changed = false;
+    if ( aProperties.IsSupported( KMPXMediaGeneralTitle ) ) {
+        changed |= iSongData->setTitle(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaGeneralTitle ).Ptr(),
+                aProperties.ValueText( KMPXMediaGeneralTitle ).Length() ) );
+    } else {
+        changed |= iSongData->setTitle( QString() );
+    }
+    
+    if ( aProperties.IsSupported( KMPXMediaMusicArtist ) ) {
+        changed |= iSongData->setArtist(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaMusicArtist ).Ptr(),
+                aProperties.ValueText( KMPXMediaMusicArtist ).Length() ) );
+    } else {
+        changed |= iSongData->setArtist( QString() );
+    }
+    
+    if ( aProperties.IsSupported( KMPXMediaMusicAlbum ) ) {
+        changed |= iSongData->setAlbum(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaMusicAlbum ).Ptr(),
+                aProperties.ValueText( KMPXMediaMusicAlbum ).Length() ) );
+    } else {
+        changed |= iSongData->setAlbum( QString() );
+    }
+    if ( changed ) {
+        iSongData->commitPlaybackInfo( );
+    }    
+    
+    // call back will be called when Album art is retrieved
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicAlbumArtFileName ) ) ) {        
+        iSongData->setAlbumArtUri( 
+                QString::fromUtf16(
+                        aProperties.ValueText(KMPXMediaMusicAlbumArtFileName).Ptr(),
+                        aProperties.ValueText(KMPXMediaMusicAlbumArtFileName).Length() ) );
+    } else {
+        iSongData->setAlbumArtUri( QString() );
+    }
+    
+    // all following will be for song details
+    changed = false;  
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaGeneralUri ) ) ) {
+        QString fullName = QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaGeneralUri ).Ptr(),
+                aProperties.ValueText( KMPXMediaGeneralUri ).Length() );
+        
+        TX_LOG_ARGS( "File name with path: " << fullName );
+        // get size & last modifed information from file system
+        QFileInfo info( fullName );
+        changed |= iSongData->setSize( info.size() );
+        
+        QDateTime lastModified = info.lastModified();
+        QDate date = lastModified.date();
+        int day = date.day();
+        int month = date.month();
+        int year = date.year();
+        QTime time = lastModified.time();
+        int sec = time.second();
+        int min = time.minute();
+        int hr = time.hour();
+        
+        
+        QString lastModifiedStr("%1.%2.%3 %4:%5:%6");
+        lastModifiedStr = lastModifiedStr.arg( day ).arg( month ).arg( year ).arg( hr ).arg( min ).arg( sec );
+        changed |= iSongData->setModified( lastModifiedStr );
+        
+        
+        // get file name without suffix
+        QString file;
+        QRegExp rx("(.+)\\..+");
+        QString str = info.fileName();
+        TX_LOG_ARGS( "File name with suffix = " << str );
+
+        int pos = rx.indexIn( str );
+        if( pos > -1 ) {
+            file = rx.cap( 1 );
+            TX_LOG_ARGS( "File = " << file );
+        }
+
+        changed |= iSongData->setFileName( file );
+    } else {
+        changed |= iSongData->setFileName( QString() );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicComposer ) ) ) {
+        TX_LOG_ARGS( "Composer is supported " );
+        changed |= iSongData->setComposer(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaMusicComposer ).Ptr(),
+                aProperties.ValueText( KMPXMediaMusicComposer ).Length() ) );
+    } else {
+        changed |= iSongData->setComposer( QString() );
+    }
+
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicYear ) ) ) {
+        TInt64 yearInMicroSeconds = aProperties.ValueTObjectL<TInt64>( KMPXMediaMusicYear );
+        TX_LOG_ARGS( "year = " << yearInMicroSeconds );
+        TTime yearTime( yearInMicroSeconds );
+        changed |= iSongData->setYear( yearTime.DateTime().Year() );
+    } else {
+        // to clear previous result
+        changed |= iSongData->setYear( -1 );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicAlbumTrack ) ) ) {
+        changed |= iSongData->setAlbumTrack(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaMusicAlbumTrack ).Ptr(),
+                aProperties.ValueText( KMPXMediaMusicAlbumTrack ).Length() ) );
+    } else {
+        changed |= iSongData->setAlbumTrack( QString() );  
+    }
+
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicGenre ) ) ) {
+        changed |= iSongData->setGenre(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaMusicGenre ).Ptr(),
+                aProperties.ValueText( KMPXMediaMusicGenre ).Length() ) );
+    } else {
+        changed |= iSongData->setGenre( QString() );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaGeneralMimeType ) ) ) {
+        QString type = QString::fromUtf16(
+                            aProperties.ValueText( KMPXMediaGeneralMimeType ).Ptr(),
+                            aProperties.ValueText( KMPXMediaGeneralMimeType ).Length() );
+        QString regularExpression(".+/(.+)");                            
+        QRegExp rx(regularExpression);
+        QString mimeType;
+
+        int pos = rx.indexIn( type );
+        if( pos > -1 ) {
+            mimeType = rx.cap( 1 );
+            mimeType = mimeType.toUpper();
+            TX_LOG_ARGS( "MIME type =" << mimeType );
+        }        
+        
+        changed |= iSongData->setMimeType( mimeType );  
+    } else {
+        changed |= iSongData->setMimeType( QString() );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaGeneralDuration ) ) ) {
+        TInt duration( aProperties.ValueTObjectL<TInt>( KMPXMediaGeneralDuration ) );
+        changed |= iSongData->setDuration( duration / 1000 );
+    } else {
+        changed |= iSongData->setDuration( -1 );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaAudioBitrate  ) ) ) {
+        TInt bitRate( aProperties.ValueTObjectL<TInt>( KMPXMediaAudioBitrate ) );
+        changed |= iSongData->setBitRate( bitRate );
+    } else {
+        changed |= iSongData->setBitRate( -1 );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaAudioSamplerate  ) ) ) {
+        TInt sampleRate( aProperties.ValueTObjectL<TInt>( KMPXMediaAudioSamplerate ) );
+        changed |= iSongData->setSampleRate( sampleRate );
+    } else {
+        changed |= iSongData->setSampleRate( -1 );
+    }
+        
+
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaGeneralCopyright ) ) ) {
+        changed |= iSongData->setCopyright(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaGeneralCopyright ).Ptr(),
+                aProperties.ValueText( KMPXMediaGeneralCopyright ).Length() ) );
+    } else {
+        changed |= iSongData->setCopyright( QString() );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicURL ) ) ) {
+        changed |= iSongData->setMusicURL(
+            QString::fromUtf16(
+                aProperties.ValueText( KMPXMediaMusicURL ).Ptr(),
+                aProperties.ValueText( KMPXMediaMusicURL ).Length() ) );
+    } else {
+        changed |= iSongData->setMusicURL( QString() );
+    }
+    
+    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaDrmProtected ) ) ) {
+    TX_LOG_ARGS( "DRM is supported." );
+        changed |= iSongData->setDrmProtected( aProperties.ValueTObjectL<TBool>( KMPXMediaDrmProtected ) );
+    } else {
+        changed |= iSongData->setDrmProtected( false );
+    } 
+    
+    if ( changed ) {
+        iSongData->commitSongDetailInfo( );
+    }    
+    TX_EXIT
+}
+
+/*!
+ return song data
+ */
+MpSongData *MpMpxDetailsFrameworkWrapperPrivate::songData()
+{
+    TX_LOG
+    return iSongData;
+}
+
+/*!
+ \internal
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::retrieveSong()
+{
+    TX_ENTRY
+    TRAP_IGNORE( doRetrieveSongL() );
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxDetailsFrameworkWrapperPrivate::doRetrieveSongL()
+{
+    TX_ENTRY
+    MMPXSource *mediaSrc = iPlaybackUtility->Source();
+    User::LeaveIfNull( mediaSrc );
+    RArray<TMPXAttribute> requestedAttr;
+    CleanupClosePushL( requestedAttr );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralTitle ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicArtist ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbum ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralUri ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumArtFileName ) );
+
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumTrack ) );   
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicComposer ) );   
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicYear ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicGenre ) );   
+    
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralMimeType ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralDuration ) );    
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaAudioBitrate ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaAudioSamplerate ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralCopyright ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicURL ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaDrmProtected ) );    
+    
+    mediaSrc->MediaL( requestedAttr.Array(), *this );
+    CleanupStack::PopAndDestroy( &requestedAttr );
+    TX_EXIT
+}
--- a/mpengine/src/mpmpxharvesterframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmpxharvesterframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -65,11 +65,11 @@
 /*!
  Constructs the utility wrapper.
  */
-MpMpxHarvesterFrameworkWrapper::MpMpxHarvesterFrameworkWrapper( MpCommon::MpViewMode viewMode, TUid hostUid, QObject *parent )
+MpMpxHarvesterFrameworkWrapper::MpMpxHarvesterFrameworkWrapper( TUid hostUid, QObject *parent )
     : QObject( parent )
 {
     d_ptr = new MpMpxHarvesterFrameworkWrapperPrivate( this );
-    d_ptr->init( viewMode, hostUid );
+    d_ptr->init( hostUid );
 }
 
 /*!
--- a/mpengine/src/mpmpxharvesterframeworkwrapper_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmpxharvesterframeworkwrapper_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -77,9 +77,8 @@
 /*!
  \internal
  */
-void MpMpxHarvesterFrameworkWrapperPrivate::init( MpCommon::MpViewMode viewMode, TUid hostUid )
+void MpMpxHarvesterFrameworkWrapperPrivate::init( TUid hostUid )
 {
-    iViewMode = viewMode;
     mHostUid = hostUid;
     TRAPD( err, DoInitL() );
     if ( err != KErrNone ) {
@@ -177,12 +176,7 @@
 void MpMpxHarvesterFrameworkWrapperPrivate::DoInitL()
 {
     TX_ENTRY
-    if ( iViewMode == MpCommon::FetchView ) {
-        iCollectionUtility = MMPXCollectionUtility::NewL( this, mHostUid );
-    }
-    else {
-        iCollectionUtility = MMPXCollectionUtility::NewL( this, KMcModeDefault );
-    }
+    iCollectionUtility = MMPXCollectionUtility::NewL( this, mHostUid );
     iHarvesterUtility = CMPXHarvesterFactory::NewL();
     iHarvesterUtility->CheckForSystemEventsL();
     TX_EXIT
--- a/mpengine/src/mpmpxisolatedcollectionhelper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmpxisolatedcollectionhelper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -28,7 +28,7 @@
 const TInt KIncrementalDelayNone = 0;
 const TInt KIncrementalDelayHalfSecond = 1000000;
 const TInt KIncrementalFetchBlockSize = 20;
-const TInt KIncrementalNullOffset = 0;
+
 
 
 /*!
@@ -78,10 +78,10 @@
  \internal
  Opens an isolated collection with the /a path.
  */
-void CMpMpxIsolatedCollectionHelper::OpenCollectionL( CMPXCollectionPath& aPath )
+void CMpMpxIsolatedCollectionHelper::OpenCollectionL( CMPXCollectionPath& aPath, TInt aIndex, MpOpenMode aMode )
     {
     //Using incremental open to open the collection.
-    
+    iOpenMode = aMode;
     // Cancel any reads
     iIncrementalOpenUtil->Stop();
 
@@ -92,7 +92,7 @@
     TArray<TMPXAttribute> ary = attrs.Array();
     iIncrementalOpenUtil->SetDelay( KIncrementalDelayNone );
     iIncrementalOpenUtil->StartL( aPath, ary, KIncrementalFetchBlockSize,
-                                  KIncrementalNullOffset, CMPXCollectionOpenUtility::EFetchNormal );
+                                  aIndex, CMPXCollectionOpenUtility::EFetchNormal );
     iIncrementalOpenUtil->SetDelay( KIncrementalDelayHalfSecond );
     CleanupStack::PopAndDestroy( &attrs );
     }
@@ -131,8 +131,22 @@
     {
     if ( iFirstIncrementalOpen )
         {
-        iObserver->HandleIsolatedOpenL( aEntries, aError );
+        CMPXCollectionPath* cPath = NULL;
         iFirstIncrementalOpen = EFalse;
+        switch( iOpenMode ) {
+        case RestorePathMode:
+            cPath = iIncrementalOpenUtil->PathL();
+            CleanupStack::PushL( cPath );
+            iObserver->HandleIsolatedOpenRestorePathL( *cPath, aError );
+            CleanupStack::PopAndDestroy( cPath );
+
+            break;
+        case DefaultMode:
+        default:
+            iObserver->HandleIsolatedOpenL( aEntries, aError );
+            break;
+        }
+        
         }
     }
 
--- a/mpengine/src/mpmpxplaybackframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmpxplaybackframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -31,11 +31,11 @@
 /*!
  Constructs the utility wrapper.
  */
-MpMpxPlaybackFrameworkWrapper::MpMpxPlaybackFrameworkWrapper( MpCommon::MpViewMode viewMode, TUid hostUid, QObject *parent )
+MpMpxPlaybackFrameworkWrapper::MpMpxPlaybackFrameworkWrapper( TUid hostUid, QObject *parent )
     : QObject(parent)
 {
     d_ptr = new MpMpxPlaybackFrameworkWrapperPrivate(this );
-    d_ptr->init( viewMode, hostUid );
+    d_ptr->init( hostUid );
 }
 
 /*!
@@ -55,7 +55,7 @@
 }
 
 /*!
- Slot to handle a play from Uri aFilename
+ Slot to handle play from Uri aFilename
  */
 void MpMpxPlaybackFrameworkWrapper::play( QString aFilename )
 {
@@ -63,7 +63,7 @@
 }
 
 /*!
- Slot to handle a play from file handle
+ Slot to handle play from file handle
  */
 void MpMpxPlaybackFrameworkWrapper::play( const XQSharableFile& file)
 {
@@ -87,7 +87,7 @@
 }
 
 /*!
- Slot to handle a skeep forward.
+ Slot to handle a skip forward.
  */
 void MpMpxPlaybackFrameworkWrapper::skipForward()
 {
@@ -95,7 +95,23 @@
 }
 
 /*!
- Slot to handle a skeep backwards.
+ Slot to handle seek forward.
+ */
+void MpMpxPlaybackFrameworkWrapper::startSeekForward()
+{
+    d_ptr->startSeekForward();
+}
+
+/*!
+ Slot to handle stop seeking.
+ */
+void MpMpxPlaybackFrameworkWrapper::stopSeeking()
+{
+    d_ptr->stopSeeking();
+}
+
+/*!
+ Slot to handle a skip backwards.
  */
 void MpMpxPlaybackFrameworkWrapper::skipBackward()
 {
@@ -103,6 +119,15 @@
 }
 
 /*!
+ Slot to handle seek backwards.
+ */
+
+void MpMpxPlaybackFrameworkWrapper::startSeekBackward()
+{
+    d_ptr->startSeekBackward();
+}
+
+/*!
  Slot to handle a request to change \a position.
  */
 void MpMpxPlaybackFrameworkWrapper::setPosition( int position )
@@ -125,3 +150,27 @@
 {
     d_ptr->setRepeat( mode );
 }
+
+/*!
+ Change \a balance.
+ */
+void MpMpxPlaybackFrameworkWrapper::setBalance( int balance )
+{
+    d_ptr->setBalance( balance );
+}
+
+/*!
+ Send command to apply audio effects.
+ */
+void MpMpxPlaybackFrameworkWrapper::applyAudioEffects()
+{
+    d_ptr->applyAudioEffects();
+}
+
+/*!
+ Send command to apply equalizer.
+ */
+void MpMpxPlaybackFrameworkWrapper::applyEqualizer()
+{
+    d_ptr->applyEqualizer();
+}
--- a/mpengine/src/mpmpxplaybackframeworkwrapper_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpmpxplaybackframeworkwrapper_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -32,6 +32,11 @@
 #include "mpplaybackdata.h"
 #include "mpcommondefs.h"
 #include "mptrace.h"
+#include "mpxaudioeffectengine.h"
+
+_LIT(KMPXPnRealAudioMimeType, "audio/x-pn-realaudio");
+_LIT(KMPXRealAudioMimeType, "audio/x-realaudio");
+_LIT(KMPXRnRealAudioMimeType, "audio/vnd.rn-realaudio");
 /*!
     \class MpMpxPlaybackFrameworkWrapperPrivate
     \brief Wrapper for mpx framework utilities - private implementation.
@@ -44,9 +49,9 @@
  */
 MpMpxPlaybackFrameworkWrapperPrivate::MpMpxPlaybackFrameworkWrapperPrivate( MpMpxPlaybackFrameworkWrapper *qq)
     : q_ptr( qq ),
-      iPlaybackUtility(0),
-      iMedia(0),
-      iPlaybackData(0)
+      iPlaybackUtility( 0 ),
+      iMedia( 0 ),
+      iPlaybackData( 0 )
 {
     TX_LOG
 }
@@ -59,8 +64,8 @@
     TX_ENTRY
 
     if ( iPlaybackUtility ) {
-        ForceStopL();
-        iPlaybackUtility->RemoveObserverL(*this);
+        TRAP_IGNORE( ForceStopL() );
+        TRAP_IGNORE( iPlaybackUtility->RemoveObserverL(*this) );
         iPlaybackUtility->Close();
     }
 
@@ -73,9 +78,8 @@
 /*!
  \internal
  */
-void MpMpxPlaybackFrameworkWrapperPrivate::init( MpCommon::MpViewMode viewMode, TUid hostUid )
+void MpMpxPlaybackFrameworkWrapperPrivate::init( TUid hostUid )
 {
-    iViewMode = viewMode;
     mHostUid = hostUid;
     TRAPD(err, DoInitL());
     if ( err != KErrNone ) {
@@ -146,6 +150,32 @@
 /*!
  \internal
  */
+void MpMpxPlaybackFrameworkWrapperPrivate::startSeekForward()
+{
+    TX_ENTRY
+    TRAPD(err, iPlaybackUtility->CommandL(EPbCmdStartSeekForward));
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxPlaybackFrameworkWrapperPrivate::stopSeeking()
+{
+    TX_ENTRY
+    TRAPD(err, iPlaybackUtility->CommandL(EPbCmdStopSeeking));
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
 void MpMpxPlaybackFrameworkWrapperPrivate::skipBackward()
 {
     TX_ENTRY
@@ -159,6 +189,19 @@
 /*!
  \internal
  */
+void MpMpxPlaybackFrameworkWrapperPrivate::startSeekBackward()
+{
+    TX_ENTRY
+    TRAPD(err, iPlaybackUtility->CommandL(EPbCmdStartSeekBackward));
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
 void MpMpxPlaybackFrameworkWrapperPrivate::setPosition( int value )
 {
     TX_ENTRY_ARGS("value =" << value);
@@ -198,6 +241,45 @@
 /*!
  \internal
  */
+void MpMpxPlaybackFrameworkWrapperPrivate::setBalance( int value )
+{
+    TX_ENTRY_ARGS("value =" << value);
+    TRAPD( err, iPlaybackUtility->SetL( EPbPropertyBalance, value ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxPlaybackFrameworkWrapperPrivate::applyAudioEffects()
+{
+    TX_ENTRY
+    TRAPD( err, iPlaybackUtility->CommandL( EPbApplyEffect, KAudioEffectsID ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxPlaybackFrameworkWrapperPrivate::applyEqualizer()
+{
+    TX_ENTRY
+    TRAPD( err, iPlaybackUtility->CommandL( EPbApplyEffect, KEqualizerID ) );
+    if ( err != KErrNone ) {
+        TX_LOG_ARGS("Error: " << err << "; should never get here.");
+    }
+    TX_EXIT
+}
+
+/*!
+ \internal
+ */
 MpPlaybackData *MpMpxPlaybackFrameworkWrapperPrivate::playbackData()
 {
     return iPlaybackData;
@@ -297,7 +379,7 @@
                 aProperties.ValueText( KMPXMediaMusicArtist ).Length() ) );
     }
     else {
-            changed |= iPlaybackData->setArtist(hbTrId("txt_mus_other_unknown3"));
+            changed |= iPlaybackData->setArtist(QString());
     }
     if ( aProperties.IsSupported( KMPXMediaMusicAlbum ) ) {
         changed |= iPlaybackData->setAlbum(
@@ -306,13 +388,21 @@
                 aProperties.ValueText( KMPXMediaMusicAlbum ).Length() ) );
     }
     else {
-            changed |= iPlaybackData->setAlbum(hbTrId("txt_mus_other_unknown4"));
+            changed |= iPlaybackData->setAlbum(QString());
     }
-    if ( changed ) {
-        // This is required to propagate the playback info to UI at once.
-        iPlaybackData->commitPlaybackInfo();
+    if (aProperties.IsSupported(TMPXAttribute(KMPXMediaGeneralMimeType))) {
+        
+            const TDesC& mimeType = aProperties.ValueText ( KMPXMediaGeneralMimeType );
+            
+            bool realAudioMode =
+                    ( mimeType.Compare( KMPXPnRealAudioMimeType ) == 0 ) ||
+                    ( mimeType.Compare( KMPXRealAudioMimeType ) == 0) ||
+                    ( mimeType.Compare( KMPXRnRealAudioMimeType ) == 0 );
+            
+            changed |= iPlaybackData->setRealAudio( realAudioMode );
     }
 
+
     if ( aProperties.IsSupported( KMPXMediaGeneralUri) ) {
         iPlaybackData->setUri(
             QString::fromUtf16(
@@ -331,8 +421,20 @@
                 aProperties.ValueText( KMPXMediaGeneralUri ).Ptr(),
                 aProperties.ValueText( KMPXMediaGeneralUri ).Length() ) );
     }
+    if ( aProperties.IsSupported( KMPXMediaMusicAlbumId) ) {
+    changed |= iPlaybackData->setAlbumId( 
+                aProperties.ValueTObjectL<TInt>( KMPXMediaMusicAlbumId ) );
+    }
     
-  
+    if ( aProperties.IsSupported( KMPXMediaGeneralId) ) {
+    changed |= iPlaybackData->setId( 
+                aProperties.ValueTObjectL<TInt>( KMPXMediaGeneralId ) );
+    }
+    
+    if ( changed ) {
+        // This is required to propagate the playback info to UI at once.
+        iPlaybackData->commitPlaybackInfo();
+    }
     TX_EXIT
 }
 
@@ -342,10 +444,14 @@
 void MpMpxPlaybackFrameworkWrapperPrivate::DoInitL()
 {
     TX_ENTRY
+    iPlaybackUtility = MMPXPlaybackUtility::UtilityL( mHostUid );
+    iPlaybackUtility->AddObserverL( *this );
+    iPlaybackData = new MpPlaybackData();
 
-   iPlaybackUtility = MMPXPlaybackUtility::UtilityL( mHostUid );
-   iPlaybackUtility->AddObserverL( *this );
-   iPlaybackData = new MpPlaybackData();
+    UpdateStateL();
+    if ( iPlaybackUtility->Source() ) {
+        RetrieveSongDetailsL();
+    }
     TX_EXIT
 }
 
@@ -374,13 +480,12 @@
     if ( ok ) {
         iPlaybackUtility->InitL( xqfile );
     }
-	else {
-		TX_LOG_ARGS("Error: " << ok << "; should never get here.");
-	}
-    
-    
+    else {
+        TX_LOG_ARGS("Error: " << ok << "; should never get here.");
+    }
     TX_EXIT
 }
+
 /*!
  \internal
  */
@@ -429,6 +534,13 @@
                 TX_LOG_ARGS("TMPXPlaybackMessage::EMediaChanged")
                 RetrieveSongDetailsL();
                 break;
+            case TMPXPlaybackMessage::EPlaylistUpdated:
+                TX_LOG_ARGS( "EPlaylistUpdated" )
+            case TMPXPlaybackMessage::EActivePlayerChanged:
+                TX_LOG_ARGS( "EActivePlayerChanged or fall through from EPlaylistUpdated" )
+                UpdateStateL();
+                RetrieveSongDetailsL();
+                break;
             default:
                 break;
         }
@@ -452,8 +564,6 @@
         cmd->SetTObjectValueL<TBool>( KMPXCommandPlaybackGeneralNoBuffer, ETrue );
         iPlaybackUtility->CommandL( *cmd );
         CleanupStack::PopAndDestroy( cmd );
-
-       // iPlaybackUtility->RemoveObserverL(*this);
     }
     TX_EXIT
 }
@@ -466,7 +576,11 @@
     TX_ENTRY
     if ( !iPlaybackUtility->Source() ) {
         TX_LOG_ARGS("There is no source")
-        iPlaybackData->setPlaybackState( MpPlaybackData::Stopped );
+        //this to prevent mutiple calls to state change.
+        if ( iPlaybackData->playbackState() != MpPlaybackData::NotPlaying ) {
+            iPlaybackData->setPlaybackState( MpPlaybackData::NotPlaying );
+            iPlaybackData->resetData();
+        }
     }
     else {
         switch ( iPlaybackUtility->StateL() ) {
@@ -504,6 +618,10 @@
     requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbum ) );
     requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralUri ) );
     requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumArtFileName ) );
+    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumId ) );
+	requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralMimeType ) );
+	requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralId ) );
+	
 
     mediaSrc->MediaL( requestedAttr.Array(), *this );
     CleanupStack::PopAndDestroy( &requestedAttr );
--- a/mpengine/src/mpsongscanner.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/src/mpsongscanner.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,12 +15,6 @@
 *
 */
 
-#include <hbprogressdialog.h>
-#include <hbnotificationdialog.h>
-#include <hblabel.h>
-#include <hbfontspec.h>
-#include <hbmessagebox.h>
-
 #include "mpsongscanner.h"
 #include "mpmpxharvesterframeworkwrapper.h"
 #include "mptrace.h"
@@ -34,26 +28,44 @@
 */
 
 /*!
- \fn void scanEnd()
+ \fn void scanStarted()
+
+ This signal is emitted when scanning has started.
+
+ */
+
+/*!
+ \fn void scanCountChanged( int count )
 
- This signal is emitted when scanning is ended.
+ This signal is emitted to notify that scan count has changed.
+
+ */
 
- \sa scan()
-*/
+/*!
+ \fn void scanFinished( int error, int itemsAdded )
+
+ Emitted when scanning has finished.
+
+ */
 
 /*!
  Constructs the song scanner.
  */
 MpSongScanner::MpSongScanner( MpMpxHarvesterFrameworkWrapper *wrapper, QObject *parent )
     : QObject( parent ),
-      mMpxWrapper(wrapper),
-      mScanProgressNote(0),
-      mScanning(false)
+      mMpxHarvesterWrapper(wrapper),
+      mScanning( false ),
+      mAutomaticScan( true )
 {
     TX_ENTRY
-    connect( mMpxWrapper, SIGNAL(scanStarted()), this, SLOT(handleScanStarted()) );
-    connect( mMpxWrapper, SIGNAL(scanEnded( int, int )), this, SLOT(handleScanEnded( int, int )) );
-    connect( mMpxWrapper, SIGNAL(scanCountChanged(int)), this, SLOT(handleScanCountChanged(int)) );
+    connect( mMpxHarvesterWrapper, SIGNAL( scanStarted() ),
+            this, SIGNAL( scanStarted() ), Qt::QueuedConnection );
+    connect( mMpxHarvesterWrapper, SIGNAL( scanEnded( int, int ) ),
+            this, SLOT( handleScanEnded( int, int ) ), Qt::QueuedConnection );
+    connect( mMpxHarvesterWrapper, SIGNAL( scanCountChanged( int ) ), 
+            this, SIGNAL( scanCountChanged( int ) ), Qt::QueuedConnection );
+    connect( mMpxHarvesterWrapper, SIGNAL( diskEvent( MpxDiskEvents ) ),
+            this, SLOT( handleDiskEvent(MpxDiskEvents) ), Qt::QueuedConnection );
     TX_EXIT
 }
 
@@ -68,20 +80,23 @@
 /*!
  Initiates song scanning.
  */
-void MpSongScanner::scan()
+void MpSongScanner::scan( bool automaticScan )
 {
+    TX_ENTRY
     if ( !mScanning ) {
         mScanning = true;
-        mMpxWrapper->scan();
+        mAutomaticScan = automaticScan;
+        mMpxHarvesterWrapper->scan();
     }
+    TX_EXIT
 }
 
 /*!
- Returns true if scanning is ongoing.
+ Returns mAutomaticScan value.
  */
-bool MpSongScanner::isScanning()
+bool MpSongScanner::isAutomaticScan()
 {
-    return mScanning;
+    return mAutomaticScan;
 }
 
 /*!
@@ -91,31 +106,12 @@
  */
 void MpSongScanner::cancelScan()
 {
+    TX_ENTRY
     if ( mScanning ) {
         mScanning = false;
-        mMpxWrapper->cancelScan();
+        mMpxHarvesterWrapper->cancelScan();
     }
-}
-
-/*!
- Slot called upon notification from MPX Harvesting FW indicating start of
- scanning process.
- */
-void MpSongScanner::handleScanStarted()
-{
-    if ( !mScanProgressNote ) {
-        mScanProgressNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
-        connect( mScanProgressNote, SIGNAL( cancelled() ), this, SLOT( cancelScan() ) );
-        connect( mScanProgressNote, SIGNAL( aboutToClose() ), this, SLOT( handleProgressNoteClosing() ) );
-    }
-    mScanProgressNote->setModal( true );
-    HbLabel *title = new HbLabel( hbTrId( "txt_mus_title_refreshing" ) );
-    title->setFontSpec(HbFontSpec(HbFontSpec::Primary));
-
-    mScanProgressNote->setHeadingWidget( title );
-    mScanProgressNote->setText( QString("") );
-    mScanProgressNote->setAttribute( Qt::WA_DeleteOnClose );
-    mScanProgressNote->show();
+    TX_EXIT
 }
 
 /*!
@@ -124,63 +120,25 @@
  */
 void MpSongScanner::handleScanEnded( int numItemsAdded, int error )
 {
+    TX_ENTRY
     if (error == KErrDiskFull) {
-		if ( mScanProgressNote ) {     
-                mScanProgressNote->cancel();
-        }
-        HbMessageBox *diskFullDialog = new HbMessageBox();
-        diskFullDialog->setIcon( HbIcon( QString("qtg_small_fail") ) );
-        diskFullDialog->setText( hbTrId( "txt_mus_title_refresh_cancelled" ) );
-        diskFullDialog->setTimeout( HbPopup::NoTimeout);
-        diskFullDialog->setAttribute( Qt::WA_DeleteOnClose );
-        diskFullDialog->show();
+        emit scanFinished( ScanErrorDiskFull, 0 );
         mScanning = false;
-               
     }
     else{
-        QString added;
-        HbNotificationDialog *finishedDialog = new HbNotificationDialog();
-        finishedDialog->setModal(true);
-        finishedDialog->setAttribute( Qt::WA_DeleteOnClose );
-    
-        added = hbTrId( "txt_mus_dpopinfo_ln_songs_added", numItemsAdded );
-        finishedDialog->setText( added );
-              
         if( error < 0) {
-            if ( mScanProgressNote ) {     
-                mScanProgressNote->cancel();
-            }
-            finishedDialog->setIcon( HbIcon( QString("qtg_small_fail") ) );
-            finishedDialog->setTitle( hbTrId( "txt_mus_dpophead_refresh_cancelled" ) );
+            emit scanFinished( ScanGeneralError, numItemsAdded );
         }
         else if ( mScanning ) {
-            if ( mScanProgressNote ) {     
-                mScanProgressNote->cancel();
-            }
-            finishedDialog->setIcon( HbIcon( QString("qtg_large_ok") ) );
-            finishedDialog->setTitle( hbTrId( "txt_mus_dpophead_refresh_complete" ) );
+            emit scanFinished( ScanErrorNone, numItemsAdded );
         }
         else {
-            finishedDialog->setIcon( HbIcon( QString("qtg_small_fail") ) );
-            finishedDialog->setTitle( hbTrId( "txt_mus_dpophead_refresh_cancelled" ) );
+            // Scan canceled
+            emit scanFinished( ScanGeneralError, numItemsAdded );
         }
         mScanning = false;
-        finishedDialog->show();
     }
-}
-
-/*!
- Slot called upon notification from MPX Harvesting FW indicating the number of
- songs scanned so far.
- */
-void MpSongScanner::handleScanCountChanged(int count)
-{
-    QString added;
-
-    added = hbTrId( "txt_mus_info_ln_songs_added" , count );
-    if ( mScanProgressNote ) {
-        mScanProgressNote->setText( added );
-    }
+    TX_EXIT
 }
 
 /*!
@@ -188,22 +146,12 @@
  */
 void MpSongScanner::handleDiskEvent( MpxDiskEvents event )
 {
+    TX_ENTRY
     Q_UNUSED( event );
     if ( mScanning ) {
-        if ( mScanProgressNote ) {
-            mScanProgressNote->cancel();
-        }
+        emit scanFinished( ScanInterrupted, 0 );
         mScanning = false;
-        // AK - Should we show a dialog?
     }
     TX_EXIT
 }
 
-/*!
- Slot used to clear mScanProgressNote when dialog is closing.
- */
-void MpSongScanner::handleProgressNoteClosing()
-{
-    mScanProgressNote = 0;
-}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,26 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpaudioeffectsframeworkwrapper \
+          unittest_mpequalizerframeworkwrapper \
+          unittest_mpmpxcollectionframeworkwrapper \
+          unittest_mpmpxharvesterframeworkwrapper \
+          unittest_mpmpxisolatedcollectionhelper \
+          unittest_mpmpxplaybackframeworkwrapper \
+          unittest_mpsongscanner
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpaudioeffectsframeworkwrapper/inc/unittest_mpaudioeffectsframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* 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: Unit test for mpaudioeffectsframeworkwrapper
+*
+*/
+
+#ifndef TESTMPAUDIOEFFECTSFRAMEWORKWRAPPER_H
+#define TESTMPAUDIOEFFECTSFRAMEWORKWRAPPER_H
+
+#include <QtTest/QtTest>
+
+class MpAudioEffectsFrameworkWrapper;
+class MpAudioEffectsFrameworkWrapperPrivate;
+
+class TestMpAudioEffectsFrameworkWrapper : public QObject
+{
+    Q_OBJECT
+
+public:
+    TestMpAudioEffectsFrameworkWrapper();
+    virtual ~TestMpAudioEffectsFrameworkWrapper();
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+    void testConstructor();
+    void testInit();
+    void testBalance();
+    void testLoudness();
+    void testSetBalance();
+    void testSetLoudness();
+    void testSaveToFile();
+    
+private:
+    MpAudioEffectsFrameworkWrapper          *mTest;
+    MpAudioEffectsFrameworkWrapperPrivate   *mTestPrivate;
+
+};
+
+#endif  // TESTMPAUDIOEFFECTSFRAMEWORKWRAPPER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpaudioeffectsframeworkwrapper/src/unittest_mpaudioeffectsframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,174 @@
+/*
+* 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: Unit test for MpMpxAsFrameworkWrapper
+*
+*/
+
+#include <QSignalSpy>
+#include <qnamespace.h>
+
+#include "unittest_mpaudioeffectsframeworkwrapper.h"
+#include "stub/inc/mpxaudioeffectproperties.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpaudioeffectsframeworkwrapper.h"
+#include "mpaudioeffectsframeworkwrapper_p.h"
+#undef private
+
+//This so we can test private functions
+#include "mpaudioeffectsframeworkwrapper_p.cpp"
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    TestMpAudioEffectsFrameworkWrapper tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpaudioeffectsframeworkwrapper.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+
+TestMpAudioEffectsFrameworkWrapper::TestMpAudioEffectsFrameworkWrapper()
+    : mTest(0)
+{
+}
+
+TestMpAudioEffectsFrameworkWrapper::~TestMpAudioEffectsFrameworkWrapper()
+{
+    delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpAudioEffectsFrameworkWrapper::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpAudioEffectsFrameworkWrapper::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpAudioEffectsFrameworkWrapper::init()
+{
+    mTest = new MpAudioEffectsFrameworkWrapper();
+    mTestPrivate = mTest->d_ptr;
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpAudioEffectsFrameworkWrapper::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+/*!
+ test Constructor
+ */
+void TestMpAudioEffectsFrameworkWrapper::testConstructor()
+{
+    QVERIFY(mTestPrivate->mAudioEffectProperties != 0);
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iLoadFromFile, TBool(ETrue));
+}
+
+/*!
+ test init
+ */
+void TestMpAudioEffectsFrameworkWrapper::testInit()
+{
+    mTestPrivate->mAudioEffectProperties->iLeave = ETrue;
+    mTestPrivate->init();
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iLoadFromFile, TBool(EFalse));
+    mTestPrivate->mAudioEffectProperties->iLeave = EFalse;
+    mTestPrivate->init();
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iLoadFromFile, TBool(ETrue));
+}
+
+/*!
+ test balance
+ */
+void TestMpAudioEffectsFrameworkWrapper::testBalance()
+{
+    QCOMPARE( mTest->balance(), 0 );
+    mTest->setBalance( -100 );
+    QCOMPARE( mTest->balance(), -100 );
+    mTest->setBalance( 100 );
+    QCOMPARE( mTest->balance(), 100 );
+}
+
+/*!
+ test loudness
+ */
+void TestMpAudioEffectsFrameworkWrapper::testLoudness()
+{
+    QCOMPARE(mTest->loudness(), false);
+    mTest->setLoudness(true);
+    QCOMPARE(mTest->loudness(), true);
+}
+
+/*!
+ test setBalance
+ */
+void TestMpAudioEffectsFrameworkWrapper::testSetBalance()
+{
+    mTest->setBalance(-5);
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iBalance, -5);
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iSaveToFile, TBool(ETrue));
+}
+
+/*!
+ test setLoudness   
+ */
+void TestMpAudioEffectsFrameworkWrapper::testSetLoudness()
+{   
+    mTest->setLoudness(true);
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iLoudness, TBool(ETrue));
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iSaveToFile, TBool(ETrue));
+    mTest->setLoudness(false);
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iLoudness, TBool(EFalse));
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iSaveToFile, TBool(ETrue));
+}
+
+/*!
+ test saveToFile
+ */
+void TestMpAudioEffectsFrameworkWrapper::testSaveToFile()
+{
+    mTestPrivate->saveToFile();
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iSaveToFile, TBool(ETrue));
+    mTestPrivate->mAudioEffectProperties->iLeave = ETrue;
+    mTestPrivate->saveToFile();
+    QCOMPARE(mTestPrivate->mAudioEffectProperties->iSaveToFile, TBool(EFalse));
+}
+    
+// end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpaudioeffectsframeworkwrapper/stub/inc/mpxaudioeffectproperties.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  audio effect properties stub for testing mpmpxasframeworkwrapper 
+*
+*/
+ 
+#ifndef CMPXAUDIOEFFECTPROPERTIES_H
+#define CMPXAUDIOEFFECTPROPERTIES_H
+
+#include <e32base.h>
+
+class CMPXAudioEffectProperties : public CBase
+    {
+public: 
+    explicit CMPXAudioEffectProperties();   
+    virtual ~CMPXAudioEffectProperties();
+
+public:
+    
+    // Stub functions
+    TInt Balance();
+    TBool Loudness();
+    void SetBalance(TInt aBalance);
+    void SetLoudness(TBool aLoudness);
+    void Reset();
+    void SaveToFileL();
+    void LoadFromFileL();
+
+public:
+    
+    TInt    iBalance;
+    TBool   iLoudness;
+    TBool   iLoadFromFile;
+    TBool   iSaveToFile;
+    TBool   iLeave;
+};
+
+#endif // CMPXAUDIOEFFECTPROPERTIES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpaudioeffectsframeworkwrapper/stub/src/mpxaudioeffectproperties.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,116 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  audio effect properties stub for testing mpmpxasframeworkwrapper
+*
+*/
+
+#include "mptrace.h"
+#include "stub/inc/mpxaudioeffectproperties.h"
+
+/*!
+ Stub function.
+*/
+CMPXAudioEffectProperties::CMPXAudioEffectProperties():iBalance(0),
+                                                       iLoudness(EFalse),
+                                                       iLoadFromFile(EFalse),
+                                                       iSaveToFile(EFalse),
+                                                       iLeave(EFalse)
+{
+}
+
+/*!
+ Stub function.
+*/
+CMPXAudioEffectProperties::~CMPXAudioEffectProperties()
+{
+}
+
+/*!
+ Stub function.
+*/
+TInt CMPXAudioEffectProperties::Balance()
+{
+    return iBalance;
+}
+
+/*!
+ Stub function.
+*/
+TBool CMPXAudioEffectProperties::Loudness()
+{
+    return iLoudness;
+}
+
+/*!
+ Stub function.
+*/
+void CMPXAudioEffectProperties::SetBalance(TInt aBalance)
+{
+    iBalance = aBalance;
+}
+
+/*!
+ Stub function.
+*/
+void CMPXAudioEffectProperties::SetLoudness(TBool aLoudness)
+{
+    iLoudness = aLoudness;
+}
+
+/*!
+ Stub function.
+*/
+void CMPXAudioEffectProperties::Reset()
+{
+    TX_ENTRY
+    iBalance = 0;
+    iLoudness = EFalse;
+    iLeave = EFalse;
+    iLoadFromFile = EFalse;
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+void CMPXAudioEffectProperties::SaveToFileL()
+{
+    TX_ENTRY
+    if (iLeave) {
+        iSaveToFile = EFalse;
+        User::Leave(KErrNotFound);
+    }
+    else {
+        iSaveToFile = ETrue;
+    }
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+void CMPXAudioEffectProperties::LoadFromFileL()
+{
+    TX_ENTRY
+    if (iLeave) {
+        iLoadFromFile = EFalse;
+        User::Leave(KErrNotFound);
+    }
+    else {
+        iLoadFromFile = ETrue;
+    }
+    TX_EXIT
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpaudioeffectsframeworkwrapper/unittest_mpaudioeffectsframeworkwrapper.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,37 @@
+#
+# 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: Unit test for mpaudioeffectsframeworkwrapper
+#
+
+TEMPLATE = app
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpaudioeffectsframeworkwrapper
+TARGET.CAPABILITY = CAP_APPLICATION
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+    ../../inc \
+    ../../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+
+HEADERS += inc/unittest_mpaudioeffectsframeworkwrapper.h \
+           ../../inc/mpaudioeffectsframeworkwrapper.h \
+           ../../inc/mpaudioeffectsframeworkwrapper_p.h \
+           stub/inc/mpxaudioeffectproperties.h
+
+SOURCES += src/unittest_mpaudioeffectsframeworkwrapper.cpp \
+           ../../src/mpaudioeffectsframeworkwrapper.cpp \
+           stub/src/mpxaudioeffectproperties.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/inc/unittest_mpequalizerframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* 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: Unit test for mpequalizerframeworkwrapper
+*
+*/
+
+#ifndef TESTMPEQUALIZERFRAMEWORKWRAPPER_H
+#define TESTMPEQUALIZERFRAMEWORKWRAPPER_H
+
+#include <QtTest/QtTest>
+
+class MpEqualizerFrameworkWrapper;
+class MpEqualizerFrameworkWrapperPrivate;
+
+class TestMpEqualizerFrameworkWrapper : public QObject
+{
+    Q_OBJECT
+
+public:
+    TestMpEqualizerFrameworkWrapper();
+    virtual ~TestMpEqualizerFrameworkWrapper();
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+    void testConstructor();    
+    void testMapcInitComplete();
+    void testGetPresetIndex();
+    void testGetPresetNameKey();
+    void testPresetNames();
+
+private:
+
+    MpEqualizerFrameworkWrapper           *mTest;
+    MpEqualizerFrameworkWrapperPrivate    *mTestPrivate;
+};
+
+#endif  // TESTMPEQUALIZERFRAMEWORKWRAPPER_H
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/src/unittest_mpequalizerframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,190 @@
+/*
+* 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: Unit test for mpequalizerframeworkwrapper
+*
+*/
+
+#include <QSignalSpy>
+#include <QStringList>
+
+#include "unittest_mpequalizerframeworkwrapper.h"
+#include "stub/inc/audioequalizerutility.h"
+#include "stub/inc/mpxuser.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpequalizerframeworkwrapper.h"
+#include "mpequalizerframeworkwrapper_p.h"
+#undef private
+
+//This so we can test private functions
+#include "mpequalizerframeworkwrapper_p.cpp"
+
+//    Predifined values
+//sa stub/inc/audioequalizerutility.cpp for Predifined Values
+//PresetName    PresetEngineId  PresetId
+//  Off              -1             -1
+//  Bass             0x0A           0
+//  Classical        0x0B           1
+//  Pop              0x0C           2
+//  Jazz             0x0D           3
+//  Rock             0x0E           4
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    TestMpEqualizerFrameworkWrapper tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpequalizerframeworkwrapper.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+
+TestMpEqualizerFrameworkWrapper::TestMpEqualizerFrameworkWrapper()
+    : mTest(0)
+{
+}
+
+TestMpEqualizerFrameworkWrapper::~TestMpEqualizerFrameworkWrapper()
+{
+    delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpEqualizerFrameworkWrapper::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpEqualizerFrameworkWrapper::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpEqualizerFrameworkWrapper::init()
+{
+    mTest = new MpEqualizerFrameworkWrapper();
+    mTestPrivate = mTest->d_ptr;
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpEqualizerFrameworkWrapper::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+/*!
+ Tests constructor.
+ */
+void TestMpEqualizerFrameworkWrapper::testConstructor()
+{
+    QVERIFY(mTestPrivate->mMdaPlayUtility != 0);
+}
+
+/*!
+ Tests MapcInitComplete.
+ */
+void TestMpEqualizerFrameworkWrapper::testMapcInitComplete()
+{   
+    QSignalSpy spyEqualizerReady(mTest, SIGNAL(equalizerReady()));
+    
+    mTestPrivate->MapcInitComplete(KErrNone, 0);
+
+    QVERIFY(mTestPrivate->mEqualizerUtility != 0);
+    QCOMPARE(spyEqualizerReady.count(), 1);
+}
+
+/*!
+ Tests getPresetId
+ */
+void TestMpEqualizerFrameworkWrapper::testGetPresetIndex()
+{       
+    TInt presetIndex(0);
+    
+    // When EqualizerUtility is not ready
+    presetIndex = mTestPrivate->getPresetIndex(0x0B);    
+    QVERIFY(presetIndex == KEqualizerPresetNone);
+    
+    mTestPrivate->MapcInitComplete(KErrNone, 0);
+    
+    //When a valid preset is currently set
+    presetIndex = mTestPrivate->getPresetIndex(0x0B);    
+    QVERIFY(presetIndex == 1);
+    
+    //When there is no any preset set
+    presetIndex = mTestPrivate->getPresetIndex(KEqualizerPresetNone);    
+    QVERIFY(presetIndex == KEqualizerPresetNone);
+
+    //When an invalid preset is currently set
+    presetIndex = mTestPrivate->getPresetIndex(0xFF);    
+    QVERIFY(presetIndex == KEqualizerPresetNone);
+}
+
+/*!
+ Tests GetEngineIndexL.
+ */
+void TestMpEqualizerFrameworkWrapper::testGetPresetNameKey()
+{   
+    // When EqualizerUtility is not ready
+    QVERIFY(mTestPrivate->getPresetNameKey(2) == KEqualizerPresetNone);    
+    
+    mTestPrivate->MapcInitComplete(KErrNone, 0);    
+    
+    // test valid index.
+    QVERIFY(mTestPrivate->getPresetNameKey(2) == 0x0C);    
+    
+    // test invalid index.
+    QVERIFY(mTestPrivate->getPresetNameKey(99) == KEqualizerPresetNone);    
+}
+
+/*!
+ Tests presetNames
+ */
+void TestMpEqualizerFrameworkWrapper::testPresetNames()
+{
+    // test negative case - don't call MapcInitComplete so EqualizerUtility is null.
+    QStringList presetNames = mTest->presetNames();
+    QVERIFY(presetNames.count() == 0);
+    
+    // test valid case
+    mTestPrivate->MapcInitComplete(KErrNone, 0);
+    presetNames = mTest->presetNames();
+    
+    QVERIFY(presetNames.at(0) == "Bass");
+    QVERIFY(presetNames.at(1) == "Classical");
+    QVERIFY(presetNames.at(2) == "Pop");
+    QVERIFY(presetNames.at(3) == "Jazz");
+    QVERIFY(presetNames.at(4) == "Rock");    
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/stub/inc/audioequalizerutility.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: audioequalizerutility stub for testing mpequalizerframeworkwrapper
+*
+*/
+
+
+#ifndef CAUDIOEQUALIZERUTILITY_H
+#define CAUDIOEQUALIZERUTILITY_H
+
+//#include <e32base.h>
+//#include <e32svr.h>
+#include <AudioEqualizerBase.h>
+//#include <centralrepository.h>
+#include <AudioEqualizerUtilityData.h>
+
+//#include <badesca.h>
+
+
+//Forward declarations
+class CMdaAudioPlayerUtility;
+
+class CAudioEqualizerUtility : public CBase
+{
+public:  // Constructors and destructor
+
+    /**
+    * Factory function for creating the audio equalizer utility object.
+    * @since 3.0
+    * @param aUtility A reference to a audio player utility
+    * @return pointer to CAudioEqualizerUtility object
+    */
+    static CAudioEqualizerUtility* NewL(CMdaAudioPlayerUtility& aUtility);
+
+    /**
+    * Destructor.
+    */
+    virtual ~CAudioEqualizerUtility();
+
+    /**
+    * Retrieves a Preset with the given index from the Central Repository
+    * @since 3.0
+    * @param aPresetIndex Index of the Preset in the Array
+    */
+    const TDesC& GetPresetL(TInt aPresetIndex);
+
+    /**
+    * Get all the Presets defined in the Central Repository
+    * @since 3.0
+    * @return Array of all Presets.
+    */
+    TArray<TEfAudioEqualizerUtilityPreset> Presets();
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CAudioEqualizerUtility();
+
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */
+        
+    /**
+    * Second Phase Costructor for CMdaAudioPlayerUtility
+    * @since 3.0
+    * @param aUtility CMdaAudioPlayerUtility Referece
+    */
+    void ConstructL(CMdaAudioPlayerUtility& aUtility);
+
+
+    /**
+    * Function of Updating the Preset Array for the User
+    * @since 3.0
+    * @param aUtility MCustomInterface Referece
+    */
+    void UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray);
+
+private: // Data
+
+    // Array for Storing the Current State of the Repository
+    // which has been compacted after the transaction
+    // with the Central Repository
+    RArray<TEfAudioEqualizerUtilityPreset> iPresetArray;
+
+};
+
+#endif      // CAUDIOEQUALIZERUTILITY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/stub/inc/mdaaudioplayerutility.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: mdaaudioplayerutility stub for testing mpequalizerframeworkwrapper
+*
+*/
+
+#ifndef CMDAAUDIOPLAYERUTILITY_H
+#define CMDAAUDIOPLAYERUTILITY_H
+
+
+#include <e32base.h>
+#include <mmf/common/mmfbase.h>
+
+//Forward declarations
+class MMdaAudioPlayerCallback;
+
+class CMdaAudioPlayerUtility : public CBase
+{
+public:  // Constructors and destructor
+
+    static CMdaAudioPlayerUtility* NewL(MMdaAudioPlayerCallback& aCallback,
+                                        TInt aPriority = EMdaPriorityNormal,
+                                        TInt aPref = EMdaPriorityPreferenceTimeAndQuality);
+
+    /**
+    * Destructor.
+    */
+    virtual ~CMdaAudioPlayerUtility();
+
+    void OpenFileL(const TDesC& aFileName);
+    
+    void Close();
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CMdaAudioPlayerUtility();
+
+    /**
+    * Second Phase Costructor for CMdaAudioPlayerUtility
+    */
+    void ConstructL();
+
+private: // Data
+
+};
+
+#endif      // CMDAAUDIOPLAYERUTILITY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/stub/inc/mpxuser.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: mpxuser stub for testing mpequalizerframeworkwrapper
+*
+*/
+
+#ifndef MPXUSER_H
+#define MPXUSER_H
+
+#include <e32base.h>
+
+class MPXUser
+{
+public: // stub functions
+    
+    MPXUser();
+    ~MPXUser();
+
+    static TInt CompleteWithDllPath(TDes& aFileName);
+
+};
+
+#endif   // MPXUSER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/stub/src/audioequalizerutility.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: audioequalizerutility stub for testing mpequalizerframeworkwrapper
+*
+*/
+
+
+#include "mptrace.h"
+//#include <e32debug.h>
+
+#include "stub/inc/audioequalizerutility.h"
+
+
+/*!
+ Stub function.
+*/
+CAudioEqualizerUtility::CAudioEqualizerUtility()
+{
+}
+
+
+/*!
+ Stub function.
+*/
+CAudioEqualizerUtility::~CAudioEqualizerUtility()
+{
+    iPresetArray.Close();
+}
+
+/*!
+ Stub function.
+*/
+void CAudioEqualizerUtility::ConstructL(CMdaAudioPlayerUtility& /*aUtility*/)
+{
+    UpdatePresetArray(iPresetArray);
+}
+
+/*!
+ Stub function.
+*/
+CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioPlayerUtility& aUtility)
+{
+    CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
+    CleanupStack::PushL( self );
+    self->ConstructL(aUtility);
+    CleanupStack::Pop(self);
+    return self;
+}
+
+/*!
+ Stub function.
+*/
+const TDesC& CAudioEqualizerUtility::GetPresetL( TInt aPresetIndex )
+{
+    TX_ENTRY
+
+    if(aPresetIndex > (iPresetArray.Count() - 1) || aPresetIndex < 0 ) {
+        User::Leave(KErrArgument);
+    }
+
+    TX_EXIT
+    return iPresetArray[aPresetIndex].iPresetName;
+}
+
+/*!
+ Stub function.
+*/
+TArray<TEfAudioEqualizerUtilityPreset> CAudioEqualizerUtility::Presets()
+{
+    return iPresetArray.Array();
+}
+
+/*!
+ Stub function.
+*/
+void CAudioEqualizerUtility::UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray)
+{
+    aPresetArray.Reset();
+    
+    TEfAudioEqualizerUtilityPreset  tempPreset1;        
+    tempPreset1.iPresetDescriptionKey = 0x10;
+    tempPreset1.iPresetName = _L("Bass");
+    tempPreset1.iPresetNameKey = 0x0A;
+    aPresetArray.Append(tempPreset1);
+        
+    TEfAudioEqualizerUtilityPreset  tempPreset2;        
+    tempPreset2.iPresetDescriptionKey = 0x20;
+    tempPreset2.iPresetName = _L("Classical");
+    tempPreset2.iPresetNameKey = 0x0B;
+    aPresetArray.Append(tempPreset2);
+
+    TEfAudioEqualizerUtilityPreset  tempPreset3;        
+    tempPreset3.iPresetDescriptionKey = 0x30;
+    tempPreset3.iPresetName = _L("Pop");
+    tempPreset3.iPresetNameKey = 0x0C;
+    aPresetArray.Append(tempPreset3);
+        
+    TEfAudioEqualizerUtilityPreset  tempPreset4;        
+    tempPreset4.iPresetDescriptionKey = 0x40;
+    tempPreset4.iPresetName = _L("Jazz");
+    tempPreset4.iPresetNameKey = 0x0D;
+    aPresetArray.Append(tempPreset4);
+
+    TEfAudioEqualizerUtilityPreset  tempPreset5;        
+    tempPreset5.iPresetDescriptionKey = 0x50;
+    tempPreset5.iPresetName = _L("Rock");
+    tempPreset5.iPresetNameKey = 0x0E;
+    aPresetArray.Append(tempPreset5);
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/stub/src/mdaaudioplayerutility.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: mdaaudioplayerutility stub for testing mpequalizerframeworkwrapper
+*
+*/
+
+
+#include "mptrace.h"
+#include "stub/inc/mdaaudioplayerutility.h"
+
+
+/*!
+ Stub function.
+*/
+CMdaAudioPlayerUtility::CMdaAudioPlayerUtility()
+{
+}
+
+/*!
+ Stub function.
+*/
+CMdaAudioPlayerUtility::~CMdaAudioPlayerUtility()
+{
+}
+
+/*!
+ Stub function.
+*/
+void CMdaAudioPlayerUtility::ConstructL()
+{
+}
+
+/*!
+ Stub function.
+*/
+CMdaAudioPlayerUtility* CMdaAudioPlayerUtility::NewL( MMdaAudioPlayerCallback& /*aCallback*/,
+                                                      TInt /*aPriority*/,
+                                                      TInt /*aPref*/ )
+{
+    CMdaAudioPlayerUtility* self = new( ELeave ) CMdaAudioPlayerUtility;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+}
+
+/*!
+ Stub function.
+*/
+void CMdaAudioPlayerUtility::OpenFileL(const TDesC& /*aFileName*/)
+{
+}
+
+/*!
+ Stub function.
+*/
+void CMdaAudioPlayerUtility::Close()
+{
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/stub/src/mpxuser.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: mpxuser stub for testing mpequalizerframeworkwrapper
+*
+*/
+
+#include "stub/inc/mpxuser.h"
+
+
+/*!
+ Stub function.
+*/
+MPXUser::MPXUser()
+{
+}
+
+/*!
+ Stub function.
+*/
+MPXUser::~MPXUser()
+{
+}
+
+/*!
+ Stub function.
+*/
+TInt MPXUser::CompleteWithDllPath(TDes& /*aFileName*/)
+{
+    //Do nothing
+    
+    return KErrNone;
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpequalizerframeworkwrapper/unittest_mpequalizerframeworkwrapper.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,45 @@
+#
+# 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: Unit test for mpequalizerframeworkwrapper
+#
+
+TEMPLATE = app
+CONFIG += qtestlib \
+    hb \
+    symbian_test
+TARGET = unittest_mpequalizerframeworkwrapper
+TARGET.CAPABILITY = CAP_APPLICATION
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+    ../../inc \
+    ../../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lestor.dll \
+    -lfbscli.dll
+
+HEADERS += inc/unittest_mpequalizerframeworkwrapper.h \
+    ../../inc/mpequalizerframeworkwrapper.h \
+    ../../inc/mpequalizerframeworkwrapper_p.h \
+    stub/inc/audioequalizerutility.h \
+    stub/inc/mdaaudioplayerutility.h \
+    stub/inc/mpxuser.h
+
+SOURCES += src/unittest_mpequalizerframeworkwrapper.cpp \
+    ../../src/mpequalizerframeworkwrapper.cpp \
+    stub/src/audioequalizerutility.cpp \
+    stub/src/mdaaudioplayerutility.cpp \
+    stub/src/mpxuser.cpp
+
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/inc/unittest_mpmpxcollectionframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/inc/unittest_mpmpxcollectionframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -35,7 +35,7 @@
     //test utility functions
     void loadTestData();
     void loadPlaylists();
-    bool waitForSignal(QSignalSpy* spy, int timeoutms);  
+    void loadAlbumsTestData();
 
 public slots:
 
@@ -50,28 +50,36 @@
     void testReleaseIsolatedCollection();
     void testCollectionData();
     void testHandleOpenEntries();
-    void testHandleOpenPlaylist();    
+    void testHandleOpenPlaylist();
     void testHandleOperationComplete();
     void testHandleIsolatedOpen();
-    void testOpenCollection();  
+    void testOpenCollection();
     void testDoIncrementalOpen();
     void testReopenCollection();
-    void testOpenCollectionItem();  
+    void testOpenCollectionItem();
     void testGoBack();
     void testFindPlaylists();
     void testCreatePlaylist();
-    void testCreatePlaylistWithProvidedCollectionData();   
+    void testCreatePlaylistWithProvidedCollectionData();
     void testSaveToPlaylist();
     void testSaveToCurrentPlaylist();
     void testRenamePlaylist();
     void testDeleteSongs();
     void testSetShuffle();
+    void testCancel();
     void testPreviewItem();
     void testOpenIsolatedCollection();
     void testHandleCollectionMessage();
+    void testHandleCollectionMediaL();
     void testPreparePlaylistMediaSongsContext();
     void testPreparePlaylistMediaArtistAlbumsContext();
     void testReorderPlaylist();
+    void testFindAlbumSongs();
+    void testHandleFindAll();
+    void testPlayAlbumSongs();
+    void testSetRepeatFeatureEnabled();
+    void testSetShuffleFeatureEnabled();
+    void testCreatePlaybackUtilityL();
 
 private:
 
@@ -79,6 +87,7 @@
     MpMpxCollectionFrameworkWrapperPrivate    *mTestPrivate;
     CMPXMedia                                 *iMediaTestData;
     CMPXMedia                                 *iPlaylistsTestData;
+    CMPXMedia                                 *iAlbumsTestData;
 
 };
 
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/src/unittest_mpmpxcollectionframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/src/unittest_mpmpxcollectionframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,8 +16,6 @@
 */
 
 #include <QSignalSpy>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
 
 #include <mpxmedia.h>
 #include <mpxcollectionplaylist.h>
@@ -29,7 +27,7 @@
 #include "stub/inc/mpxcollectionutility.h"
 #include "stub/inc/mpxplaybackutility.h"
 #include "stub/inc/mpmpxisolatedcollectionhelper.h"
-#include "mpsettingsmanager.h"
+#include "stub/inc/mpsettingsmanager.h"
 
 // Do this so we can access all member variables.
 #define private public
@@ -68,25 +66,27 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
+    QApplication app(argc, argv);
     TestMpMpxCollectionFrameworkWrapper tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpmpxcollectionframeworkwrapper.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmpxcollectionframeworkwrapper.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpMpxCollectionFrameworkWrapper::TestMpMpxCollectionFrameworkWrapper()
     : mTest(0),
       iMediaTestData(0),
-      iPlaylistsTestData(0)
+      iPlaylistsTestData(0),
+      iAlbumsTestData(0)
 {
 }
 
@@ -201,51 +201,37 @@
     mTestPrivate->HandleOpenL(*playlist, KErrNotFound);
     QCOMPARE(spy.count(), 0);
     QVERIFY(mTestPrivate->iPlaybackUtility == 0);
-    
+
     //Called without error
-    QSignalSpy spy2( MpSettingsManager::instance(),SIGNAL(shuffleChanged(bool)));
     MpSettingsManager::setRepeat(false);
     MpSettingsManager::setShuffle(false);
-    if(waitForSignal(&spy2, 1000)){
-        bool shuffle = MpSettingsManager::shuffle();
-        TX_LOG_ARGS("shuffle changed to "<< shuffle);
-        bool repeat = MpSettingsManager::repeat();
-        TX_LOG_ARGS("repeat changed to "<< repeat);
-    }
+
     mTestPrivate->HandleOpenL(*playlist, KErrNone);
     QCOMPARE(spy.count(), 1);
     QVERIFY(mTestPrivate->iPlaybackUtility != 0);
     QCOMPARE(mTestPrivate->iPlaybackUtility->iPlay, TBool(ETrue));
     QCOMPARE(mTestPrivate->iPlaybackUtility->iShuffle, 0);
     QCOMPARE(mTestPrivate->iPlaybackUtility->iRepeat, TInt(EPbRepeatOff));
-    
+
     cleanup();
     init();
-    QSignalSpy spy3(mTest, SIGNAL(collectionPlaylistOpened()));
+    QSignalSpy spy2(mTest, SIGNAL(collectionPlaylistOpened()));
 
     //Called without error
-    spy2.clear();
     MpSettingsManager::setRepeat(true);
     MpSettingsManager::setShuffle(true);
     
-    if(waitForSignal(&spy2, 1000)){
-        bool shuffle = MpSettingsManager::shuffle();
-        TX_LOG_ARGS("shuffle2 changed to "<< shuffle);
-        bool repeat = MpSettingsManager::repeat();
-        TX_LOG_ARGS("repeat2 changed to "<< repeat);
-    }
-    
     mTestPrivate->HandleOpenL(*playlist, KErrNone);
-    QCOMPARE(spy3.count(), 1);
+    QCOMPARE(spy2.count(), 1);
     QVERIFY(mTestPrivate->iPlaybackUtility != 0);
     QCOMPARE(mTestPrivate->iPlaybackUtility->iPlay, TBool(ETrue));
     QCOMPARE(mTestPrivate->iPlaybackUtility->iRepeat, TInt(EPbRepeatAll));
     QCOMPARE(mTestPrivate->iPlaybackUtility->iShuffle, 1);
        
     //Called without error 
-    spy3.clear();
+    spy2.clear();
     mTestPrivate->HandleOpenL(*playlist, KErrNone);
-    QCOMPARE(spy3.count(), 1);
+    QCOMPARE(spy2.count(), 1);
     QVERIFY(mTestPrivate->iPlaybackUtility != 0);
     QCOMPARE(mTestPrivate->iPlaybackUtility->iPlay, TBool(ETrue));
 }
@@ -322,6 +308,12 @@
     QCOMPARE(mTestPrivate->iCollectionUtility->iOpenCount, 1);
     cleanup();
     init();
+    mTest->openCollection(ECollectionContextArtists);
+    QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(ETrue));
+    QCOMPARE(mTestPrivate->iCollectionUtility->iCountPath, 1);
+    QCOMPARE(mTestPrivate->iCollectionUtility->iOpenCount, 1);
+    cleanup();
+    init();
     mTest->openCollection(ECollectionContextAlbums);
     QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(ETrue));
     QCOMPARE(mTestPrivate->iCollectionUtility->iCountPath, 1);
@@ -334,12 +326,6 @@
     QCOMPARE(mTestPrivate->iCollectionUtility->iOpenCount, 1);
     cleanup();
     init();
-    mTest->openCollection(ECollectionContextGenres);
-    QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(ETrue));
-    QCOMPARE(mTestPrivate->iCollectionUtility->iCountPath, 1);
-    QCOMPARE(mTestPrivate->iCollectionUtility->iOpenCount, 1);
-    cleanup();
-    init();
     mTest->openCollection(ECollectionContextUnknown);
     QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(EFalse));
     QCOMPARE(mTestPrivate->iCollectionUtility->iOpenCount, 0);
@@ -366,7 +352,7 @@
 void TestMpMpxCollectionFrameworkWrapper::testReopenCollection()
 {
     mTest->reopenCollection();
-    QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(ETrue));    
+    QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(ETrue));
 }
 
 /*!
@@ -403,7 +389,7 @@
     QCOMPARE(count,testList.count());
     for(TInt i=0; i < count; i++){
         const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle));
-        QCOMPARE(testList.at(i),QString::fromUtf16( title.Ptr(), title.Length() ));        
+        QCOMPARE(testList.at(i),QString::fromUtf16( title.Ptr(), title.Length() ));
     }
 }
 
@@ -419,7 +405,7 @@
     QString playListName("playlistname");
     loadTestData();
     mTestPrivate->iCollectionData->setMpxMedia(*iMediaTestData);
-    mTest->createPlaylist(playListName,selection);
+    mTest->createPlaylist(playListName, selection, NULL );
     QCOMPARE(mTestPrivate->iCollectionUiHelper->iIncAdd, TBool(ETrue));
     CMPXMedia* testTracks = mTestPrivate->iCollectionUiHelper->iMedia;
     QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType),EMPXItem);
@@ -586,15 +572,32 @@
  */
 void TestMpMpxCollectionFrameworkWrapper::testDeleteSongs()
 {
+    //DoDeleteSongsL
     QList<int> selection;
     selection.append(1);
     mTest->deleteSongs(selection);
     QCOMPARE(mTestPrivate->iCollectionUiHelper->iDelete, TBool(ETrue));
     selection.append(3);
-	selection.append(4);
+    selection.append(4);
     selection.append(5);
     mTest->deleteSongs(selection);
     QCOMPARE(mTestPrivate->iCollectionUiHelper->iDelete, TBool(ETrue));
+
+    
+    //DoDeleteAlbumSongsL
+    cleanup();
+    init();
+
+    loadAlbumsTestData();
+    mTestPrivate->iCollectionData->setMpxMedia(*iAlbumsTestData);
+    mTestPrivate->iCollectionData->mContext = ECollectionContextAlbumsTBone;
+    mTestPrivate->iCollectionData->mCurrentAlbumIndex = 1;
+
+    QList<int> AlbumSongSelection;
+    AlbumSongSelection.append(1);
+    mTest->deleteSongs(AlbumSongSelection);
+    QCOMPARE(mTestPrivate->iCollectionUiHelper->iDelete, TBool(ETrue));
+
 }
 
 /*!
@@ -622,19 +625,47 @@
 }
 
 /*!
+ Tests Cancel
+ */
+void TestMpMpxCollectionFrameworkWrapper::testCancel()
+{
+    mTest->cancelRequest();
+    QVERIFY(mTestPrivate->iCollectionUiHelper->iCancel);
+    
+}
+
+/*!
  Tests PreviewItem
  */
 void TestMpMpxCollectionFrameworkWrapper::testPreviewItem()
 {
-    loadTestData();
-    mTestPrivate->iCollectionData->setMpxMedia(*iMediaTestData);
-    QSignalSpy spy(mTest, SIGNAL(collectionPlaylistOpened()));
-    mTest->previewItem(1);
-    
-    // Playback utility should be created.
-    QVERIFY(mTestPrivate->iPlaybackUtility != 0);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iPlay, TBool(ETrue));
-    QCOMPARE(spy.count(), 1);
+    {// DoPreviewSongL 
+        loadTestData();
+        mTestPrivate->iCollectionData->setMpxMedia(*iMediaTestData);
+
+        QSignalSpy spy(mTest, SIGNAL(collectionPlaylistOpened()));
+        mTest->previewItem(1);
+
+        QVERIFY(mTestPrivate->iPlaybackUtility != 0);
+        QCOMPARE(mTestPrivate->iPlaybackUtility->iPlay, TBool(ETrue));
+        QCOMPARE(spy.count(), 1);
+    }
+
+    {// DoPreviewAlbumSongL
+        cleanup();
+        init();
+        loadAlbumsTestData();
+        mTestPrivate->iCollectionData->setMpxMedia(*iAlbumsTestData);
+        mTestPrivate->iCollectionData->mContext = ECollectionContextAlbumsTBone;
+        mTestPrivate->iCollectionData->mCurrentAlbumIndex = 1;
+
+        QSignalSpy spy(mTest, SIGNAL(collectionPlaylistOpened()));
+        mTest->previewItem(1);
+
+        QVERIFY(mTestPrivate->iPlaybackUtility != 0);
+        QCOMPARE(mTestPrivate->iPlaybackUtility->iPlay, TBool(ETrue));
+        QCOMPARE(spy.count(), 1);
+    }
 }
 
 /*!
@@ -658,8 +689,6 @@
 
 }
 
-
-
 /*!
  Tests handleCollectionMessage. Part of private implementation.
  */
@@ -678,6 +707,7 @@
     testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EMcPathChangedByOpen);
     testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,EMcContainerOpened);
     mTestPrivate->DoHandleCollectionMessageL(*testMessage);
+    //mTestPrivate->HandleCollectionMessage(*testMessage, KErrNone);
     QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(EFalse)); 
     
     QCOMPARE(mTestPrivate->iIncrementalOpenUtil->iDelay, KIncrementalDelayHalfSecond);
@@ -702,8 +732,29 @@
     QCOMPARE(mTestPrivate->iFirstIncrementalOpen,TBool(EFalse));
     QCOMPARE(mTestPrivate->iIncrementalOpenUtil->iDirection,CMPXCollectionOpenUtility::EFetchDown);
     QCOMPARE(mTestPrivate->iIncrementalOpenUtil->iChunkSize, 0);
-    
-    CleanupStack::PopAndDestroy(testMessage);    
+
+    //Content changed
+    cleanup();
+    init();
+    QSignalSpy spy(mTest, SIGNAL(containerContentsChanged()));
+    testMessage->SetTObjectValueL<TMPXMessageId>(KMPXMessageGeneralId,KMPXMessageIdItemChanged);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXCollectionMessage::EPathChanged);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EMcPathChangedByOpen);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,EMcItemOpened);
+    mTestPrivate->DoHandleCollectionMessageL(*testMessage);
+    QCOMPARE(spy.count(), 1);
+
+    CleanupStack::PopAndDestroy(testMessage);
+}
+
+/*!
+ Tests handleCollectionMessage. Part of private implementation.
+ */
+void TestMpMpxCollectionFrameworkWrapper::testHandleCollectionMediaL()
+{
+    //HandleCollectionMediaL does nothing, test added just to cover all member functions.
+    mTestPrivate->HandleCollectionMediaL( *iMediaTestData, KErrNone);
+    QVERIFY( iMediaTestData );
 }
 
 /*!
@@ -883,6 +934,133 @@
 }
 
 /*!
+ Used to test findAlbumSongs
+ */
+void TestMpMpxCollectionFrameworkWrapper::testFindAlbumSongs()
+{
+    int index(1);
+    loadAlbumsTestData();
+
+    CMPXMediaArray* albumsTestData = CMPXMediaArray::NewL(
+            *( iAlbumsTestData->Value<CMPXMediaArray>( KMPXMediaArrayContents ) ) );
+    mTestPrivate->iCollectionUtility->iAlbumSongs = albumsTestData;
+    mTestPrivate->iCollectionData->setMpxMedia(*iAlbumsTestData);
+
+    mTest->findAlbumSongs(index);
+    CMPXMedia* findResult = mTestPrivate->iCollectionUtility->iAsynchFindResult;
+    QVERIFY( findResult );
+    QCOMPARE( findResult->ValueTObjectL<TInt>( KMPXMediaGeneralId ),
+            albumsTestData->AtL(index)->ValueTObjectL<TInt>( KMPXMediaGeneralId ) );
+}
+
+/*!
+ Used to test findAlbumSongs
+ */
+void TestMpMpxCollectionFrameworkWrapper::testHandleFindAll()
+{
+    int index(1);
+    loadAlbumsTestData();
+
+    CMPXMediaArray* albumsTestData = CMPXMediaArray::NewL(
+            *( iAlbumsTestData->Value<CMPXMediaArray>( KMPXMediaArrayContents ) ) );
+    mTestPrivate->iCollectionUtility->iAlbumSongs = albumsTestData;
+    mTestPrivate->iCollectionData->setMpxMedia(*iAlbumsTestData);
+    mTestPrivate->iCollectionData->mCurrentAlbumIndex = index;
+    CMPXMedia* findResult = albumsTestData->AtL(index);
+    CMPXMediaArray* songArray = 
+            findResult->Value<CMPXMediaArray>( KMPXMediaArrayContents );
+
+    mTestPrivate->HandleFindAllL(*findResult, ETrue, KErrNone);
+    QCOMPARE( mTestPrivate->iCollectionData->mAlbumSongCount, songArray->Count() );
+}
+
+/*!
+ Used to test findAlbumSongs
+ */
+void TestMpMpxCollectionFrameworkWrapper::testPlayAlbumSongs()
+{
+    int albumIndex(1);
+    int songIndex(3);
+    loadAlbumsTestData();
+
+    {// With ECollectionContextAlbumsMediaWall
+        QSignalSpy spy(mTest, SIGNAL(collectionPlaylistOpened()));
+        CMPXMediaArray* albumsTestData = CMPXMediaArray::NewL(
+                *( iAlbumsTestData->Value<CMPXMediaArray>( KMPXMediaArrayContents ) ) );
+        
+        mTestPrivate->iCollectionUtility->iAlbumSongs = albumsTestData;
+        mTestPrivate->iCollectionData->setMpxMedia(*iAlbumsTestData);
+        mTestPrivate->iCollectionData->mCurrentAlbumIndex = albumIndex;
+        mTestPrivate->iCollectionData->mContext = ECollectionContextAlbumsMediaWall;
+
+        mTest->playAlbumSongs(albumIndex, songIndex, 0);
+        CMPXCollectionPath* cpath = mTestPrivate->iPlaybackUtility->iCurrentPath;
+        QCOMPARE(spy.count(), 1);
+        QVERIFY(cpath->Levels() == 4);
+    }
+    
+    {// With other context
+        cleanup();
+        init();
+        QSignalSpy spy(mTest, SIGNAL(collectionPlaylistOpened()));
+        CMPXMediaArray* albumsTestData = CMPXMediaArray::NewL(
+                *( iAlbumsTestData->Value<CMPXMediaArray>( KMPXMediaArrayContents ) ) );
+
+        mTestPrivate->iCollectionUtility->iAlbumSongs = albumsTestData;
+        mTestPrivate->iCollectionData->setMpxMedia(*iAlbumsTestData);
+        mTestPrivate->iCollectionData->mCurrentAlbumIndex = albumIndex;
+
+        mTest->playAlbumSongs(albumIndex, songIndex, NULL);
+        CMPXCollectionPath* cpath = mTestPrivate->iPlaybackUtility->iCurrentPath;
+        QCOMPARE(spy.count(), 1);
+        QVERIFY(cpath->Levels() == 2);
+    }
+}
+
+/*!
+ Used to test setRepeatFeatureEnabled
+ */
+void TestMpMpxCollectionFrameworkWrapper::testSetRepeatFeatureEnabled()
+{
+    bool enabled( true );
+    mTest->setRepeatFeatureEnabled( enabled );
+    QVERIFY( mTestPrivate->iRepeatFeature );
+
+    enabled = false;
+    mTest->setRepeatFeatureEnabled( enabled );
+    QVERIFY( !mTestPrivate->iRepeatFeature );
+}
+
+/*!
+ Used to test setShuffleFeatureEnabled
+ */
+void TestMpMpxCollectionFrameworkWrapper::testSetShuffleFeatureEnabled()
+{
+    bool enabled( true );
+    mTest->setShuffleFeatureEnabled( enabled );
+    QVERIFY( mTestPrivate->iShuffleFeature );
+
+    enabled = false;
+    mTest->setShuffleFeatureEnabled( enabled );
+    QVERIFY( !mTestPrivate->iShuffleFeature );
+}
+
+/*!
+ Used to test createPlaybackUtilityL
+ */
+void TestMpMpxCollectionFrameworkWrapper::testCreatePlaybackUtilityL()
+{
+    bool repeat = true;
+    bool shuffle = true;
+    mTest->setRepeatFeatureEnabled( repeat );
+    mTest->setShuffleFeatureEnabled( shuffle );
+    mTestPrivate->createPlaybackUtilityL();
+    QVERIFY( mTestPrivate->iPlaybackUtility );
+    QVERIFY( mTestPrivate->iPlaybackUtility->iRepeat );
+    QVERIFY( mTestPrivate->iPlaybackUtility->iShuffle );
+}
+
+/*!
  Used to load test data
  */
 void TestMpMpxCollectionFrameworkWrapper::loadTestData()
@@ -908,6 +1086,7 @@
         media->SetTextValueL(KMPXMediaMusicArtist, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicArtist)));
         media->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[i].GeneralCount);
         media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName)));
+        media->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, 300 + i );
         array->AppendL(*media);
         CleanupStack::PopAndDestroy(media);
     }
@@ -970,17 +1149,85 @@
 }
 
 /*!
- Used to wait on spy signal
+ Used to load test playlists
  */
-bool TestMpMpxCollectionFrameworkWrapper::waitForSignal(QSignalSpy* spy, int timeoutms) 
-{ 
-    QTime timer; 
-    timer.start(); 
-    while (spy->isEmpty() && timer.elapsed() < timeoutms) 
-    { 
-        QCoreApplication::processEvents(); 
-    } 
-    return !spy->isEmpty(); 
+void TestMpMpxCollectionFrameworkWrapper::loadAlbumsTestData()
+{
+    if(iAlbumsTestData){
+        delete iAlbumsTestData;
+        iAlbumsTestData=0;
+    }
+
+    //Loading Test Data.
+    RArray<TInt> supportedIds;
+    CleanupClosePushL( supportedIds );
+    supportedIds.AppendL( KMPXMediaIdMusic );
+    supportedIds.AppendL( KMPXMediaIdGeneral );
+    iAlbumsTestData = CMPXMedia::NewL(supportedIds.Array());
+    CMPXMedia* albumOneTracksTestData = CMPXMedia::NewL(supportedIds.Array());
+    CMPXMedia* albumTwoTracksTestData = CMPXMedia::NewL(supportedIds.Array());
+    CleanupStack::PopAndDestroy(&supportedIds);
+    CleanupStack::PushL(iAlbumsTestData);
+    CleanupStack::PushL(albumOneTracksTestData);
+    CleanupStack::PushL(albumTwoTracksTestData);
+
+    {//Loading pseudo data for album one
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
+    for (TInt i =0; i < count/2; i++) {
+        CMPXMedia* media = CMPXMedia::NewL();
+        CleanupStack::PushL(media);
+        media->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle)));
+        media->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, TMPXItemId(i));
+        array->AppendL(*media);
+        CleanupStack::PopAndDestroy(media);
+    }
+    albumOneTracksTestData->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
+    albumOneTracksTestData->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
+    albumOneTracksTestData->SetCObjectValueL(KMPXMediaArrayContents, array);
+    albumOneTracksTestData->SetTObjectValueL<TInt>(KMPXMediaArrayCount, array->Count());
+    albumOneTracksTestData->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId,TMPXItemId(1));
+    CleanupStack::PopAndDestroy(array);
+    }
+
+    {//Loading pseudo data for album two
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
+    for (TInt i = count/2; i < count; i++) {
+        CMPXMedia* media = CMPXMedia::NewL();
+        CleanupStack::PushL(media);
+        media->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle)));
+        media->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, (i));
+        array->AppendL(*media);
+        CleanupStack::PopAndDestroy(media);
+    }
+    albumTwoTracksTestData->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
+    albumTwoTracksTestData->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
+    albumTwoTracksTestData->SetCObjectValueL(KMPXMediaArrayContents, array);
+    albumTwoTracksTestData->SetTObjectValueL<TInt>(KMPXMediaArrayCount, array->Count());
+    albumTwoTracksTestData->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId,TMPXItemId(2));
+    CleanupStack::PopAndDestroy(array);
+    }
+
+    {//Loading pseudo data for albums container
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    array->AppendL(CMPXMedia::NewL()); //empty, this album is not selected for the test case. Useful to get ItemID = Album index
+    array->AppendL(*albumOneTracksTestData);
+    array->AppendL(*albumTwoTracksTestData);
+    iAlbumsTestData->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXGroup);
+    iAlbumsTestData->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
+    iAlbumsTestData->SetCObjectValueL(KMPXMediaArrayContents, array);
+    iAlbumsTestData->SetTObjectValueL<TInt>(KMPXMediaArrayCount, array->Count());
+    iAlbumsTestData->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId,TMPXItemId(88));//any number
+    CleanupStack::PopAndDestroy(array);
+    }
+
+    CleanupStack::PopAndDestroy(albumTwoTracksTestData);
+    CleanupStack::PopAndDestroy(albumOneTracksTestData);
+    CleanupStack::Pop(iAlbumsTestData);
 }
 
 //end of file
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpmpxcollectiondata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpmpxcollectiondata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -21,6 +21,7 @@
 #include "mpmpxcollectionviewdefs.h"
 
 class CMPXMedia;
+class CMPXMediaArray;
  
 
 class MpMpxCollectionData 
@@ -45,15 +46,25 @@
     ~MpMpxCollectionData();
 
     TCollectionContext context();
+    int count() const;
+    QString collectionTitle() const;
     QString itemData( int index, MpMpxCollectionData::DataType type ) const;
 
-    void setMpxMedia( const CMPXMedia& entries );
+    int itemId(int index);
+    int currentAlbumIndex() const;
+
+    void setMpxMedia( const CMPXMedia& entries, bool reopen=false );
     const CMPXMedia& containerMedia();
 
+    void setAlbumContent( const CMPXMedia& albumContent );
+
 public:
-    CMPXMedia               *mContainerMedia;
+    CMPXMedia               *mContainerMedia; //Not owned
+    CMPXMediaArray          *mMediaArray; //Not owned
     TBool                   mMediaSet;
     TCollectionContext      mContext;
+    int                     mCurrentAlbumIndex;
+    int                     mAlbumSongCount;
 
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpsettingsmanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* 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: MpSettingsManager stub for testing MpMtpInfoLink.
+*
+*/
+
+#ifndef MPSETTINGSMANAGER_H
+#define MPSETTINGSMANAGER_H
+
+#include<QObject>
+#include <QtGlobal>
+
+class  MpSettingsManager: public QObject
+{
+    
+Q_OBJECT
+
+private:
+    explicit MpSettingsManager();
+
+public:
+    virtual ~MpSettingsManager();
+    static MpSettingsManager *instance();
+    static bool shuffle();
+    static bool repeat();
+    static void setShuffle(bool shuffle);
+    static void setRepeat(bool repeat);
+
+public:
+    bool mShuffle;
+    bool mRepeat;
+
+private:
+    Q_DISABLE_COPY(MpSettingsManager)
+};
+
+#endif    // MPSETTINGSMANAGER_H
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpxcollectionuihelper.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpxcollectionuihelper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -37,7 +37,7 @@
     MMPXCollectionUiHelper();
     ~MMPXCollectionUiHelper();
     
-   void DeleteL( CMPXCollectionPath& aPath,
+    void DeleteL( CMPXCollectionPath& aPath,
                           MMPXCHelperObserver* aObserver );
     CMPXCollectionPath* MusicMenuPathL();
     CMPXCollectionPath* MusicAllSongsPathL();
@@ -53,11 +53,13 @@
                                       TUint aOriginalOrdinal,
                                       TUint aNewOrdinal,
                                       MMPXCHelperObserver* aObserver);
+    void Cancel();
     
 public:
     
     TBool           iIncAdd;
     TBool           iDelete;
+    TBool           iCancel;
     CMPXMedia       *iMedia;
     TBool           iValidRename;
     TBool           iValidReorder;
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpxcollectionutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpxcollectionutility.h	Thu Jul 22 16:32:33 2010 +0100
@@ -31,6 +31,7 @@
 
 //Forward declarations
 class CMPXCollectionPath;
+class MMPXCollectionFindObserver;
 
 class MMPXCollection
 {
@@ -46,6 +47,9 @@
     virtual void CancelRequest() = 0;
     virtual CMPXMedia* FindAllL(const CMPXSearchCriteria& aCriteria,
                                 const TArray<TMPXAttribute>& aAttrs) = 0;
+    virtual void FindAllL(const CMPXSearchCriteria& aCriteria,
+                          const TArray<TMPXAttribute>& aAttrs,
+                          MMPXCollectionFindObserver& aObs) = 0;
    
 };
 
@@ -73,7 +77,10 @@
     void BackL();
     void CancelRequest();
     CMPXMedia* FindAllL(const CMPXSearchCriteria& aCriteria,
-                                    const TArray<TMPXAttribute>& aAttrs);
+                        const TArray<TMPXAttribute>& aAttrs);
+    void FindAllL(const CMPXSearchCriteria& aCriteria,
+                  const TArray<TMPXAttribute>& aAttrs,
+                  MMPXCollectionFindObserver& aObs);
     
 public:
  
@@ -84,6 +91,7 @@
     int            iIndex;
     CMPXMedia      *iPlaylists; //Owned
     CMPXMediaArray *iAlbumSongs; //Owned
+    CMPXMedia      *iAsynchFindResult; //Owned
 };
 
 
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpxplaybackutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/inc/mpxplaybackutility.h	Thu Jul 22 16:32:33 2010 +0100
@@ -27,6 +27,7 @@
 
 //Forward declarations
 class CMPXCollectionPlaylist;
+class CMPXCollectionPath;
 
 class MMPXPlaybackUtility
 {
@@ -47,6 +48,7 @@
     TInt                    iRepeat;
     TMPXPlaybackProperty    iProperty;
     TBool                   iPlay;
+    CMPXCollectionPath      *iCurrentPath;
 };
 
 #endif      // MMPXPLAYBACKUTILITY_H
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpmpxcollectiondata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpmpxcollectiondata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -18,6 +18,9 @@
 #include "mptrace.h"
 #include "stub/inc/mpmpxcollectiondata.h"
 #include <mpxmedia.h>
+#include <mpxmediaarray.h>
+#include <mpxmediageneraldefs.h>
+#include <mpxmediacontainerdefs.h>
 
 
 /*!
@@ -25,16 +28,19 @@
  */
 MpMpxCollectionData::MpMpxCollectionData()
     :mContainerMedia(0),
+    mMediaArray(0),
     mMediaSet(EFalse),
-    mContext (ECollectionContextUnknown)
-{   
+    mContext (ECollectionContextUnknown),
+    mCurrentAlbumIndex(0),
+    mAlbumSongCount(0)
+{
 }
 
 /*!
  Stub function.
 */
 MpMpxCollectionData::~MpMpxCollectionData()
-{   
+{
 }
 
 /*!
@@ -47,6 +53,28 @@
 
 /*!
  Stub function.
+ */
+int MpMpxCollectionData::count() const
+{
+    return 0;
+}
+
+/*!
+ Stub function.
+ */
+QString MpMpxCollectionData::collectionTitle() const
+{
+    QString title;
+    if ( mContainerMedia && mContainerMedia->IsSupported( KMPXMediaGeneralTitle ) ) {
+        const TDesC& titleText = mContainerMedia->ValueText( KMPXMediaGeneralTitle );
+        if ( titleText.Compare( KNullDesC ) != 0 ) {
+            title = QString::fromUtf16( titleText.Ptr(), titleText.Length() );
+        }
+    }
+    return title;
+}
+/*!
+ Stub function.
 */
 QString MpMpxCollectionData::itemData( int index, MpMpxCollectionData::DataType type ) const
 {
@@ -58,14 +86,35 @@
         return QString();
     }
 }
+
+/*!
+ Stub function.
+ */
+int MpMpxCollectionData::itemId( int index )
+{
+    CMPXMedia* currentMedia( mMediaArray->AtL( index ) );
+    Q_ASSERT( currentMedia->IsSupported( KMPXMediaGeneralId ) );
+    return currentMedia->ValueTObjectL<TInt>( KMPXMediaGeneralId );
+}
+
+/*!
+ Stub function.
+ */
+int MpMpxCollectionData::currentAlbumIndex() const
+{
+    return mCurrentAlbumIndex;
+}
+
 /*!
  Stub function.
 */
-void MpMpxCollectionData::setMpxMedia( const CMPXMedia& entries )
+void MpMpxCollectionData::setMpxMedia( const CMPXMedia& entries, bool reopen)
 {
+    Q_UNUSED(reopen);
     delete mContainerMedia;
     mContainerMedia = 0;
     mContainerMedia = CMPXMedia::NewL(entries);
+    mMediaArray = const_cast<CMPXMediaArray*>(mContainerMedia->Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
     mMediaSet = ETrue;
 }
 
@@ -77,4 +126,25 @@
     return *mContainerMedia;
 }
 
+/*!
+ Stub function.
+*/
+void MpMpxCollectionData::setAlbumContent( const CMPXMedia& albumContent )
+{
+    //CMPXMediaArray* songArray(const_cast<CMPXMediaArray*>( albumContent.Value<CMPXMediaArray>(
+    //                KMPXMediaArrayContents ) ) );
+    CMPXMediaArray* songArray = albumContent.Value<CMPXMediaArray>( KMPXMediaArrayContents );
+    User::LeaveIfNull( songArray );
+
+    // Save the songs to the album so that we don't need to find them again
+    // if the same album is selected again.
+    mAlbumSongCount = songArray->Count();
+
+    if ( mAlbumSongCount ) {
+        CMPXMedia* albumMedia( mMediaArray->AtL( mCurrentAlbumIndex ) );
+        albumMedia->SetCObjectValueL(KMPXMediaArrayContents, songArray);
+        albumMedia->SetTObjectValueL<TInt>(KMPXMediaArrayCount, mAlbumSongCount);
+    }
+}
+
 //end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpsettingsmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,77 @@
+/*
+* 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: MpSettingsManager stub for testing MpMtpInfoLink.
+*
+*/
+
+#include "stub/inc/mpsettingsmanager.h"
+
+
+/*!
+ Constructs the MP Settings Manager.
+ */
+MpSettingsManager::MpSettingsManager() :
+    mShuffle(true),
+    mRepeat(true)
+{
+}
+
+/*!
+ Destructs the settings manager.
+ */
+MpSettingsManager::~MpSettingsManager()
+{
+}
+
+/*!
+ Returns the singleton instance to the settings manager.
+ */
+MpSettingsManager * MpSettingsManager::instance()
+{
+    static MpSettingsManager instance;
+    return &instance;
+}
+
+/*!
+ Stub function.
+ */
+void MpSettingsManager::setShuffle( bool shuffle )
+{
+    instance()->mShuffle = shuffle;
+}
+
+/*!
+ Stub function.
+ */
+void MpSettingsManager::setRepeat( bool repeat )
+{
+    instance()->mRepeat = repeat;
+}
+
+/*!
+ Stub function.
+ */
+bool MpSettingsManager::shuffle()
+{
+    return instance()->mShuffle;
+}
+
+/*!
+ Stub function.
+ */
+bool MpSettingsManager::repeat()
+{
+    return instance()->mRepeat;
+}
+
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpxcollectionuihelper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpxcollectionuihelper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -32,6 +32,7 @@
 */
 MMPXCollectionUiHelper::MMPXCollectionUiHelper():iIncAdd(EFalse),
                                                  iDelete(EFalse),
+                                                 iCancel(EFalse),
                                                  iValidRename(EFalse),
                                                  iValidReorder(EFalse),
                                                  iMedia(0)
@@ -131,7 +132,7 @@
     }
     CleanupStack::Pop( path );
         
-    return path;    
+    return path;
 }
 
 /*!
@@ -149,7 +150,7 @@
     }
     CleanupStack::Pop( path );
         
-    return path;    
+    return path;
 }
 
 /*!
@@ -167,7 +168,15 @@
     }
     CleanupStack::Pop( path );
         
-    return path;    
+    return path;
+}
+
+/*!
+ Stub function.
+*/
+void MMPXCollectionUiHelper::Cancel()
+{
+    iCancel = ETrue;
 }
 
 //end of file
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpxcollectionutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpxcollectionutility.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -25,6 +25,7 @@
 #include <mpxmediacollectiondetaildefs.h>
 #include <mpxcollectionplugin.hrh>
 #include <mpxcollectionpath.h>
+#include <mpxcollectionobserver.h>
 #include "mptrace.h"
 #include <e32debug.h>
 
@@ -41,7 +42,8 @@
                                                iOpenCount(0),
                                                iCountPath(0),
                                                iPlaylists(0),
-                                               iAlbumSongs(0)
+                                               iAlbumSongs(0),
+                                               iAsynchFindResult(0)
 {
     
 }
@@ -59,6 +61,10 @@
     {
         delete iPlaylists;
     }
+    if (iAsynchFindResult)
+    {
+        delete iAsynchFindResult;
+    }
 }
 
 /*!
@@ -115,7 +121,16 @@
         {
         return NULL;
         }
-
+}
+/*!
+ Stub function.
+*/
+void MMPXCollectionUtility::FindAllL(const CMPXSearchCriteria& aCriteria,
+                                    const TArray<TMPXAttribute>& aAttrs,
+                                    MMPXCollectionFindObserver& aObs)
+{
+    Q_UNUSED(aObs);
+    iAsynchFindResult = FindAllL(aCriteria, aAttrs);
 }
 
 /*!
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpxplaybackutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/stub/src/mpxplaybackutility.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,6 +17,7 @@
 
 #include <Qt>
 #include <mpxcollectionplaylist.h>
+#include <mpxcollectionpath.h>
 #include <mptrace.h>
 
 #include "stub/inc/mpxplaybackutility.h"
@@ -27,7 +28,8 @@
 MMPXPlaybackUtility::MMPXPlaybackUtility():iShuffle(-1),
                                            iRepeat(-1),
                                            iProperty(EPbPropertyVolume),
-                                           iPlay(EFalse)
+                                           iPlay(EFalse),
+                                           iCurrentPath(0)
 {
 }
 
@@ -60,7 +62,7 @@
 */
 void MMPXPlaybackUtility::InitL(const CMPXCollectionPlaylist& aPlaylist, TBool aPlay)
 {
-    Q_UNUSED(aPlaylist);
+    iCurrentPath = aPlaylist.Path().ContainerPathL();
     iPlay = aPlay;
 }
 
--- a/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/unittest_mpmpxcollectionframeworkwrapper.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxcollectionframeworkwrapper/unittest_mpmpxcollectionframeworkwrapper.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -1,32 +1,35 @@
+#
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
 # Initial Contributors:
 # Nokia Corporation - initial contribution.
+#
 # Contributors:
+#
 # Description: Unit test for mpmpxframeworkwrapper
+#
+
 TEMPLATE = app
-CONFIG += qtestlib \
-    hb
-TARGET = 
-
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpmpxcollectionframeworkwrapper
 TARGET.CAPABILITY = All -TCB
 
 DEPENDPATH += .
 INCLUDEPATH += . \
     ../../inc \
     ../../../inc
-
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
 
 LIBS += -lestor.dll \
     -lfbscli.dll \
     -lmpxcommon.dll \
-    -lmpxcollectionutility.dll \
-    -lmpsettingsmanager
+    -lmpxcollectionutility.dll
 
 HEADERS += inc/unittest_mpmpxcollectionframeworkwrapper.h \
     ../../inc/mpmpxcollectionframeworkwrapper.h \
@@ -37,7 +40,8 @@
     stub/inc/mpxcollectionutility.h \
     stub/inc/mpxcollectionhelperfactory.h \
     stub/inc/mpxplaybackutility.h \
-    stub/inc/mpmpxisolatedcollectionhelper.h
+    stub/inc/mpmpxisolatedcollectionhelper.h \
+    stub/inc/mpsettingsmanager.h
 
 SOURCES += src/unittest_mpmpxcollectionframeworkwrapper.cpp \
     ../../src/mpmpxcollectionframeworkwrapper.cpp \
@@ -47,6 +51,6 @@
     stub/src/mpxcollectionutility.cpp \
     stub/src/mpxcollectionhelperfactory.cpp \
     stub/src/mpxplaybackutility.cpp \
-    stub/src/mpmpxisolatedcollectionhelper.cpp
+    stub/src/mpmpxisolatedcollectionhelper.cpp \
+    stub/src/mpsettingsmanager.cpp
 
-# RESOURCES += ../../resources/mpcollectionviewresources.qrc
Binary file mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/CTCHTML.zip has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/UT_mpmpxdetailsframeworkwrapper.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,30 @@
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"unittest_mpmpxdetailsframeworkwrapper"},(0xE40d71fd),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+; Executable and default resource files
+"/epoc32/release/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.exe"    - "!:\sys\bin\unittest_mpmpxdetailsframeworkwrapper.exe"
+"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpmpxdetailsframeworkwrapper_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpmpxdetailsframeworkwrapper_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/logger.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,100 @@
+/*
+* 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: Unit test for mpmpxdetailsframeworkwrapper
+*
+*/
+
+#ifndef LOGGER_H
+#define LOGGER_H
+
+#ifndef _DEBUG
+
+    #define TRACE( AA )
+
+    #define TRACE2( AA, BB )
+
+    #define TRACE3( AA, BB, CC )
+
+    #define TRACE4( AA, BB, CC, DD )
+
+    #define TRACE5( AA, BB, CC, DD, EE )
+
+    #define DUMP8( AA )
+
+    #define TRACE_DOWNLOADER_STATE( AA )
+
+    #define TRACE_AND_PANIC( AA )
+
+    #define PANIC_ON_ERROR(AA, BB)
+
+#else
+
+    // INCLUDES
+    #include <e32debug.h>
+
+    #define TRACE_AND_PANIC( AA ) \
+        { \
+        RDebug::Printf( "ERROR: " AA ); \
+        ASSERT(EFalse); \
+        }
+
+    #define PANIC_ON_ERROR(AA, BB) \
+        { \
+        if(AA) \
+            { \
+            RDebug::Printf( "ERROR: " BB, AA ); \
+            ASSERT(EFalse); \
+            } \
+        }
+
+    #define TRACE( AA ) do { RDebug::Printf( AA ); } while( 0 )
+
+    #define TRACE2( AA, BB ) do { RDebug::Printf( AA, BB ); } while( 0 )
+
+    #define TRACE3( AA, BB, CC ) do { RDebug::Printf( AA, BB, CC ); } while( 0 )
+
+    #define TRACE4( AA, BB, CC, DD ) do { RDebug::Printf( AA, BB, CC, DD ); } while( 0 )
+
+    #define TRACE5( AA, BB, CC, DD, EE ) do { RDebug::Printf( AA, BB, CC, DD, EE ); } while( 0 )
+
+    #define DUMP8( AA ) \
+            TRAP_IGNORE( \
+                { \
+                HBufC* conversion = HBufC::NewLC( AA.Length() ); \
+                TPtr convPtr( conversion->Des() ); \
+                convPtr.Copy( AA ); \
+                const TInt KMaxLine = 60; \
+                for ( TInt index = convPtr.Length(); index > 0; \
+                    index -= KMaxLine ) \
+                    { \
+                    if ( index <= KMaxLine ) \
+                        { \
+                        RDebug::Print( convPtr ); \
+                        break; \
+                        } \
+                    else  \
+                        { \
+                        RDebug::Print( convPtr.Left( KMaxLine ) ); \
+                        convPtr.Copy( convPtr.Mid( KMaxLine ) ); \
+                        } \
+                    } \
+                CleanupStack::PopAndDestroy( conversion ); \
+                } );
+
+
+#endif // _LOGGER
+
+#endif // _LOGGER
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,77 @@
+/*
+* 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: Unit test for mpmpxdetailsframeworkwrapper
+*
+*/
+
+#ifndef TESTMPMPXDETAILSFRAMEWORKWRAPPER_H
+#define TESTMPMPXDETAILSFRAMEWORKWRAPPER_H
+
+#include <QtTest/QtTest>
+
+class MpMpxDetailsFrameworkWrapper;
+class MpMpxDetailsFrameworkWrapperPrivate;
+class CMPXMedia;
+class MpSongData;
+
+class TestMpMpxDetailsFrameworkWrapper : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpMpxDetailsFrameworkWrapper();
+    virtual ~TestMpMpxDetailsFrameworkWrapper();
+    
+private:     //test utility functions
+    void loadTestData(TInt aPos);
+    void verifyEmptyTestData();
+    void verify(int index);
+    void handleSongDetailInfoChanged();
+    void doTestHandleMedia(int index, TInt aResult);
+	void doTestNoChange();
+    
+private slots:
+
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+    void handleCommitPlaybackInfo();
+
+private slots: // test functions
+    void testConstructor();
+    void testSongData();
+    void testHandlePlaybackMessage();
+    void testHandleMedia();        
+    void testRetrieveSong();
+    void testHandleProperty();
+    void testHandleSubPlayerNames();
+
+private:
+
+    MpMpxDetailsFrameworkWrapper           *mTest;
+    MpMpxDetailsFrameworkWrapperPrivate    *mTestPrivate;
+    CMPXMedia                              *iMediaTestData;
+    bool                                   mSongDetailInfoChanged;
+    bool    mPlaybackInfoChanged;
+    TInt mAllocCells;
+
+};
+
+#endif  // TESTMPMPXDETAILSFRAMEWORKWRAPPER_H
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,20 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+del *.sisx
+makesis UT_mpmpxdetailsframeworkwrapper.pkg
+signsis UT_mpmpxdetailsframeworkwrapper.sis UT_mpmpxdetailsframeworkwrapper.sisx RNDCERTS_PATH\Nokia_RnDCert_02.der RNDCERTS_PATH\Nokia_RnDCert_02.key
+del     UT_mpmpxdetailsframeworkwrapper.sis
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,769 @@
+/*
+* 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: Unit test for mpmpxdetailsframeworkwrapper
+*
+*/
+
+#include <QSignalSpy>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+
+#include <mpxmessagegeneraldefs.h>
+#include <mpxplaybackmessage.h>
+#include <mpxmediamusicdefs.h>
+#include <mpxmediageneraldefs.h>
+#include <mpxmediaaudiodefs.h>
+
+#include <e32std.h>
+#include <e32des8.h>
+
+#include "unittest_mpmpxdetailsframeworkwrapper.h"
+#include "stub/inc/mpxplaybackutility.h"
+#include "stub/inc/mpsongdata.h"
+#include "logger.h"
+#include "mpcommondefs.h"
+
+// classes under test
+#define private public
+#include "mpmpxdetailsframeworkwrapper.h"
+#include "mpmpxdetailsframeworkwrapper_p.h"
+#undef private
+
+struct TTestAttrs
+    {
+    const wchar_t* GeneralTitle;     // MpSongData::mTitle
+    const wchar_t* MusicArtist;      // MpSongData::mArtist
+    const wchar_t* MusicAlbum;       // MpSongData::mAlbum
+    const wchar_t* MusicAlbumArtFileName; // MpSongData::mAlbumArt (TODO: not tested yet)
+    const wchar_t* Composer;         // MpSongData::mComposer
+    const TInt Year;                 // MpSongData::mYear
+    const wchar_t* MusicAlbumTrack;  // MpSongData::mAlbumTrack
+    const wchar_t* MusicGenre;       // MpSongData::mGenre
+    const wchar_t* MusicUri;         // N/A in MpSongData (TODO: not tested yet)
+    const wchar_t* MimeType;         // MpSongData::mMimeType
+    const TInt Duration;             // MpSongData::mDuration
+    const TInt MediaAudioBitRate;    // MpSongData::mbitRate
+    const TInt MediaAudioSampleRate; // MpSongData::mSampleRate
+    const wchar_t* Copyright;        // MpSongData::mCopyright
+    const wchar_t* Url;              // MpSongData::mMusicURL    
+    };
+
+// title
+const TInt KTitleZeroSized = 0;
+const TInt KTitleVeryLarge = 1;
+const TInt KTitleOff = 2;
+
+// artist
+const TInt KMusicArtistZeroSized = 3;
+const TInt KMusicArtistLarge = 4;
+const TInt KMusicArtistOff = 5;
+
+// album
+const TInt KAlbumZeroSized = 6;
+const TInt KAlbumLarge = 7;
+const TInt KAlbumOff = 8;
+
+// comment
+const TInt KCommentZeroSized = 9;
+const TInt KCommentLarge = 10;
+const TInt KCommentOff = 11;
+
+// composer
+const TInt KComposerZeroSized = 12;
+const TInt KComposerLarge = 13;
+const TInt KComposerOff = 14;
+
+// year
+const TInt KYearNegative = 15;
+const TInt KYearZero = 16;
+const TInt KYearPositive = 17;
+const TInt KYearOff = 18;
+
+// album track
+const TInt KAlbumTrackZeroSized = 19;
+const TInt KAlbumTrackLarge = 20;
+const TInt KAlbumTrackOff = 21;
+
+// genre
+const TInt KGenreZeroSized = 22;
+const TInt KGenreLarge = 23;
+const TInt KGenreOff = 24;
+
+// everything is OFF
+const TInt KAllFieldsOFF = 25;
+
+// MIME Type
+const TInt KMimeTypeZeroSized = 26;
+const TInt KMimeTypeMP3 = 27;
+const TInt KMimeTypeLarge = 28;
+const TInt KMimeTypeOff = 29;
+
+// duration
+const TInt KDuration = 30;
+
+// bit rate
+const TInt KMediaAudioBitrate = 31;
+
+// sample rate
+const TInt KMediaAudioSampleRate = 32;
+
+// sample rate
+const TInt KMediaGeneralCopyright = 33;
+const TInt KMediaMusicURL = 34;
+
+_LIT(KOff,"OFF");
+
+const TTestAttrs KAllSongsTestData[] =
+    {
+    // Title    
+     { L"", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+    ,{ L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+    ,{ L"OFF", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+    // Artist  
+    , { L"Title", L"", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+    , { L"Title", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+    ,{ L"Title", L"OFF", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}  
+    // Album
+     , { L"Title", L"Artist", L"", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     , { L"Title", L"Artist", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     , { L"Title", L"Artist", L"OFF", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}  
+    // Comment
+     , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}  
+     // Composer
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", 2009, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"OFF", 2009, L"Track 1", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     // Year
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", -200, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 0, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 3000, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", -1, L"Track 1", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}     
+     // Album Track
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"OFF", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     // Genre
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"OFF", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     // all fields OFF
+    , { L"OFF", L"OFF", L"OFF", L"OFF", L"OFF", -1, L"OFF", L"OFF", L"OFF", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     // MIME TYPE - FORMAT
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"MP3", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", -1,-1,-1, L"OFF", L"OFF"}
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"OFF", -1,-1,-1, L"OFF", L"OFF"}
+     // duration
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"", 0,-1,-1, L"OFF", L"OFF"}
+	  // KMediaAudioBitrate
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"", 0,0, -1, L"OFF", L"OFF"}
+	  // KMPXMediaAudioSamplerate
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"", -1,-1, 0, L"OFF", L"OFF"}	
+	  // KMPXMediaGeneralCopyright
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"", -1,-1, 0, L"Copyright", L"OFF"}	
+	  // KMPXMediaMusicURL
+      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Composer 1", 2000, L"Track", L"Genre", L"Uri 1", L"", -1,-1, 0, L"OFF", L"URL"}      
+      
+    };
+
+
+QString referenceGeneralCopyright(int index)
+{
+    QString result;
+    const TDesC& copyright = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Copyright));
+    if(copyright.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( copyright.Ptr(), copyright.Length() );
+    }
+    return result;
+}
+
+QString referenceUrl(int index)
+{
+    QString result;
+    const TDesC& url = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Url));
+    if(url.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( url.Ptr(), url.Length() );
+    }
+    return result;
+}
+
+QString referenceMimeType(int index)
+{
+    QString result;
+    const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MimeType));
+    _LIT(KMime, "audio/aac");
+    if(title.Match(KMime) == KErrNone)
+    {
+        result = QString("AAC");
+    }
+    return result;
+}
+
+QString referenceGeneralTitle(int index)
+{
+    QString result;
+    const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].GeneralTitle));
+    if(title.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( title.Ptr(), title.Length() );
+    }
+    return result;
+}
+
+QString referenceMusicArtist(int index)
+{
+    QString result;
+    const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicArtist));
+    if(artist.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( artist.Ptr(), artist.Length());
+    }    
+    return result;
+}
+
+QString referenceMusicAlbum(int index)
+{
+    QString result;
+    const TDesC& album = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbum));
+    if(album.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( album.Ptr(), album.Length() );
+    }    
+    return result;
+}
+
+QString referenceMusicAlbumArtFileName(int index)
+{
+    QString result;
+    const TDesC& musicAlbumArtFileName = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumArtFileName));
+    if(musicAlbumArtFileName.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( musicAlbumArtFileName.Ptr(), musicAlbumArtFileName.Length() );
+    }    
+    return result;
+}
+
+QString referenceComposer(int index)
+{
+    QString result;
+    const TDesC& composer = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Composer));
+    if(composer.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( composer.Ptr(), composer.Length() );
+    }    
+    return result;
+}
+
+int referenceYear(int index)
+{
+    return (KAllSongsTestData[index].Year >= 0) ? KAllSongsTestData[index].Year : 0;
+}
+
+QString referenceMusicAlbumTrack(int index)
+{
+    QString result;
+    const TDesC& musicAlbumTrack = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumTrack));
+    if(musicAlbumTrack.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( musicAlbumTrack.Ptr(), musicAlbumTrack.Length() );
+    }    
+    return result;
+}
+
+QString referenceMusicGenre(int index)
+{
+    QString result;
+    const TDesC& musicGenre = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicGenre));
+    if(musicGenre.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( musicGenre.Ptr(), musicGenre.Length() );
+    }    
+    return result;
+}
+
+QString referenceMusicUri(int index)
+{
+    QString result;
+    const TDesC& musicUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicUri));
+    if(musicUri.Match(KOff) == KErrNotFound)
+    {
+        result = QString::fromUtf16( musicUri.Ptr(), musicUri.Length() );
+    }    
+    return result;
+}
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    HbApplication app(argc, argv);
+    HbMainWindow window;
+
+    TestMpMpxDetailsFrameworkWrapper tv;
+
+if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmpxdetailsframeworkwrapper.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }    
+
+}
+
+TestMpMpxDetailsFrameworkWrapper::TestMpMpxDetailsFrameworkWrapper()
+    : mTest(0),
+      iMediaTestData(0),
+      mSongDetailInfoChanged(false),
+      mPlaybackInfoChanged(false)
+{
+}
+
+TestMpMpxDetailsFrameworkWrapper::~TestMpMpxDetailsFrameworkWrapper()
+{
+    delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpMpxDetailsFrameworkWrapper::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpMpxDetailsFrameworkWrapper::cleanupTestCase()
+{
+QCoreApplication::processEvents();
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpMpxDetailsFrameworkWrapper::init()
+{
+    User::__DbgMarkStart(RHeap::EUser);
+    TInt freeCount(0);
+    mAllocCells = User::CountAllocCells(freeCount);
+    TRACE3("TestMpMpxDetailsFrameworkWrapper::init() -- allocCount: %d, freeCount: %d", 
+            mAllocCells, freeCount );
+    
+    mTest = new MpMpxDetailsFrameworkWrapper( TUid::Uid( MpCommon::KMusicPlayerUid ) );
+    mTestPrivate = mTest->d_ptr;
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpMpxDetailsFrameworkWrapper::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+    mTestPrivate = 0;
+
+    TInt freeCount(0);
+    TInt allocCount = User::CountAllocCells(freeCount);     
+    TRACE3( "TestMpMpxDetailsFrameworkWrapper::cleanup() -- allocCount: %d, freeCount: %d", 
+        allocCount, freeCount );      
+    User::__DbgMarkEnd(RHeap::EUser,0); // this should panic if leak        
+}
+
+/*!
+ Tests constructor.
+ */
+void TestMpMpxDetailsFrameworkWrapper::testConstructor()
+{
+    QVERIFY( mTestPrivate->q_ptr );
+    QVERIFY( mTestPrivate->iPlaybackUtility );
+    QVERIFY( mTestPrivate->iSongData );
+    // TODO: test observer?
+}
+
+/*!
+ Tests playbackData
+ */
+void TestMpMpxDetailsFrameworkWrapper::testSongData()
+{
+    QCOMPARE(mTestPrivate->iSongData, mTest->songData());
+}
+
+void TestMpMpxDetailsFrameworkWrapper::testHandleProperty()
+{
+    // dummy call just to get coverage up. Empty imp in function under test
+    mTestPrivate->HandlePropertyL(EPbPropertyVolume, 0, 0);
+}
+
+void TestMpMpxDetailsFrameworkWrapper::testHandleSubPlayerNames()
+{
+    // dummy call just to get coverage up. Empty imp in function under test
+    mTestPrivate->HandleSubPlayerNamesL(TUid::Null(), 0, 0, 0);
+}
+
+/*!
+ Tests testHandlePlaybackMessage
+ */
+void TestMpMpxDetailsFrameworkWrapper::testHandlePlaybackMessage()
+{
+    RArray<TInt> supportedIds;
+    CleanupClosePushL( supportedIds );
+    supportedIds.AppendL( KMPXMessageContentIdGeneral );
+    CMPXMedia* testMessage = CMPXMedia::NewL(supportedIds.Array());
+    CleanupStack::PopAndDestroy(&supportedIds);
+    CleanupStack::PushL(testMessage);
+    testMessage->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral);    
+    
+    //Media change
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EMediaChanged);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
+    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
+    CleanupStack::PopAndDestroy(testMessage);
+}
+
+void TestMpMpxDetailsFrameworkWrapper::verifyEmptyTestData()
+{
+    QVERIFY(mTestPrivate->iSongData->title().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->album().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->artist().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->comment().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->year().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->genre().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->composer().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->albumTrack().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->link().isEmpty());
+    QVERIFY(mTestPrivate->iSongData->mimeType().isEmpty());
+    QVERIFY(mTestPrivate->songData()->duration().isEmpty());
+    QVERIFY(mTestPrivate->songData()->bitRate().isEmpty());
+    QVERIFY(mTestPrivate->songData()->sampleRate().isEmpty());
+    QVERIFY(mTestPrivate->songData()->copyright().isEmpty());    
+    QVERIFY(mTestPrivate->songData()->musicURL().isEmpty());          	
+}
+
+void TestMpMpxDetailsFrameworkWrapper::verify(int index)
+{
+    QCOMPARE(mTestPrivate->songData()->title(), referenceGeneralTitle( index ));
+    QCOMPARE(mTestPrivate->songData()->album(), referenceMusicAlbum( index ));    
+    QCOMPARE(mTestPrivate->songData()->artist(), referenceMusicArtist( index ));
+    // TODO: how to verify albumArt ?
+    QCOMPARE(mTestPrivate->songData()->composer(), referenceComposer( index ));    
+    QCOMPARE(mTestPrivate->songData()->year().toInt(), referenceYear( index ));    
+    QCOMPARE(mTestPrivate->songData()->albumTrack(), referenceMusicAlbumTrack( index ));    
+    QCOMPARE(mTestPrivate->songData()->genre(), referenceMusicGenre( index ));
+    QCOMPARE(mTestPrivate->songData()->mimeType(), referenceMimeType( index ));
+    QVERIFY(mTestPrivate->songData()->duration().isEmpty());
+    QVERIFY(mTestPrivate->songData()->bitRate().isEmpty());  
+    QVERIFY(mTestPrivate->songData()->sampleRate().isEmpty());
+    QCOMPARE(mTestPrivate->songData()->copyright(), referenceGeneralCopyright(index) );
+    QCOMPARE(mTestPrivate->songData()->musicURL(), referenceUrl(index) );
+    
+}
+
+void TestMpMpxDetailsFrameworkWrapper::doTestHandleMedia(int dataIndex, TInt aResult)
+{
+    init();
+    loadTestData(dataIndex);
+    mTestPrivate->HandleMediaL(*iMediaTestData, aResult);
+    if(aResult != KErrNone)
+    {
+        verifyEmptyTestData();        
+    }
+    else
+    {
+        verify(dataIndex);
+    }
+    cleanup();
+}
+
+/*
+ Tests handleMedia
+*/
+void TestMpMpxDetailsFrameworkWrapper::testHandleMedia()
+{
+    // testing passing error code. iSongData should not be modified
+    // as it got constructed fresh with init(), all its string
+    // members must be empty
+    doTestHandleMedia(KTitleZeroSized, KErrGeneral);
+    
+    // Testing zero sized title
+    doTestHandleMedia(KTitleZeroSized, KErrNone);
+    
+    // very large title
+    doTestHandleMedia(KTitleVeryLarge, KErrNone);    
+    
+    // Testing title field OFF
+    doTestHandleMedia(KTitleOff, KErrNone);
+    
+    // Testing artist empty string
+    doTestHandleMedia(KMusicArtistZeroSized, KErrNone);
+    
+    // Testing artist long
+    doTestHandleMedia(KMusicArtistLarge, KErrNone);    
+    
+    // Testing artist field OFF
+    doTestHandleMedia(KMusicArtistOff, KErrNone);    
+    
+    // Testing album zero sized
+    doTestHandleMedia(KAlbumZeroSized, KErrNone);
+    
+    // Testing album long
+    doTestHandleMedia(KAlbumLarge, KErrNone);
+    
+    // Testing album off
+    doTestHandleMedia(KAlbumOff, KErrNone);
+    
+    // Testing comment zero sized
+    doTestHandleMedia(KCommentZeroSized, KErrNone);
+    
+    // Testing comment large
+    doTestHandleMedia(KCommentLarge, KErrNone);
+    
+    // Testing comment OFF
+    doTestHandleMedia(KCommentOff, KErrNone);
+    
+    // Testing composer zero sized
+    doTestHandleMedia(KComposerZeroSized, KErrNone);
+    
+    // Testing composer large
+    doTestHandleMedia(KComposerLarge, KErrNone);
+    
+    // Testing composer OFF
+    doTestHandleMedia(KComposerOff, KErrNone);
+    
+    // Testing year negative
+    doTestHandleMedia(KYearNegative, KErrNone);
+    
+    // Testing year 0
+    doTestHandleMedia(KYearZero, KErrNone);
+    
+    // Testing year +
+    doTestHandleMedia(KYearPositive, KErrNone);
+    
+    // Testing year OFF
+    doTestHandleMedia(KYearOff, KErrNone);
+    
+    // Testing album track zero sized
+    doTestHandleMedia(KAlbumTrackZeroSized, KErrNone);
+    
+    // Testing album track large
+    doTestHandleMedia(KAlbumTrackLarge, KErrNone);
+    
+    // Testing album track OFF
+    doTestHandleMedia(KAlbumTrackOff, KErrNone);
+    
+    // Testing genre zero sized
+    doTestHandleMedia(KGenreZeroSized, KErrNone);
+ 
+    // Testing genre large
+    doTestHandleMedia(KGenreLarge, KErrNone);    
+    
+    // Testing genre OFF
+    doTestHandleMedia(KGenreOff, KErrNone);  
+    
+    // Testing all fields OFF
+    doTestHandleMedia(KAllFieldsOFF, KErrNone);  
+    
+    // Zero sized Mime Type
+    doTestHandleMedia(KMimeTypeZeroSized, KErrNone); 
+
+    // audio/aac mime type
+    doTestHandleMedia(KMimeTypeMP3, KErrNone); 
+
+    // Damn long mime type
+    doTestHandleMedia(KMimeTypeLarge, KErrNone);
+
+    // no mime type
+    doTestHandleMedia(KMimeTypeOff, KErrNone);
+    
+    doTestNoChange();
+    
+    // duration
+    doTestHandleMedia(KDuration, KErrNone);
+    
+    // media audio bit rate
+    doTestHandleMedia(KMediaAudioBitrate, KErrNone);
+    
+    // audio sample rate
+    doTestHandleMedia(KMediaAudioSampleRate, KErrNone);
+    
+    // copyright
+    doTestHandleMedia(KMediaGeneralCopyright, KErrNone);
+    
+    // url
+    doTestHandleMedia(KMediaMusicURL, KErrNone);
+            
+}
+
+void TestMpMpxDetailsFrameworkWrapper::doTestNoChange()
+{
+    init();
+    mPlaybackInfoChanged = false;
+    loadTestData(KYearPositive);
+    connect( mTestPrivate->iSongData, SIGNAL( songDetailInfoChanged() ), this, SLOT( handleCommitPlaybackInfo() ) );
+    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
+    QCOMPARE( mPlaybackInfoChanged, true );
+    mPlaybackInfoChanged = false; 
+    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
+    QCOMPARE( mPlaybackInfoChanged, true ); // TODO: this must be false, donno why we get songDetailInfoChanged signal 
+    cleanup();
+}
+
+void TestMpMpxDetailsFrameworkWrapper::handleCommitPlaybackInfo()
+{
+    mPlaybackInfoChanged = true;       
+}
+
+/*!
+ Tests retrieveSong
+ */
+void TestMpMpxDetailsFrameworkWrapper::testRetrieveSong()
+{
+    mTest->retrieveSong(); // async
+    // no need to verify the data received. As we already
+    // tested them in testHandleMedia    
+}
+
+void TestMpMpxDetailsFrameworkWrapper::handleSongDetailInfoChanged()
+{
+    mSongDetailInfoChanged = true;
+}
+
+/*!
+ Used to load test data
+ */
+void TestMpMpxDetailsFrameworkWrapper::loadTestData( TInt aPos )
+{
+    TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData entry");
+    if( iMediaTestData ){
+        delete iMediaTestData;
+        iMediaTestData=0;
+    }
+    RArray<TInt> supportedIds;
+    CleanupClosePushL( supportedIds );
+    supportedIds.AppendL( KMPXMediaIdMusic );
+    supportedIds.AppendL( KMPXMediaIdGeneral );
+    iMediaTestData = CMPXMedia::NewL( supportedIds.Array() );
+    CleanupStack::PopAndDestroy( &supportedIds );
+
+    TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Loading %d.th data entry", aPos);
+    TPtrC title( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].GeneralTitle ) );
+    if(title.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding title: %S to iMediaTestData", &title);
+        iMediaTestData->SetTextValueL( KMPXMediaGeneralTitle, title );
+    }
+    
+    TPtrC artist( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicArtist ) );
+    if(artist.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding artist: %S to iMediaTestData", &artist);
+        iMediaTestData->SetTextValueL( KMPXMediaMusicArtist, artist );
+    }
+
+    TPtrC musicAlbum( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbum ) );
+    if(musicAlbum.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbum: %S to iMediaTestData", &musicAlbum);        
+        iMediaTestData->SetTextValueL( KMPXMediaMusicAlbum, musicAlbum );
+    }
+
+    TPtrC musicAlbumArtFileName( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumArtFileName ) );
+    if(musicAlbumArtFileName.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumArtFileName: %S to iMediaTestData", &musicAlbumArtFileName);        
+        iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumArtFileName, musicAlbumArtFileName );        
+    }
+
+    TPtrC composer( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Composer ) );
+    if(composer.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding composer: %S to iMediaTestData", &composer);        
+        iMediaTestData->SetTextValueL( KMPXMediaMusicComposer, composer);
+    }
+    
+    if(KAllSongsTestData[aPos].Year != -1) {
+        TDateTime date_time;
+        date_time.SetYear(KAllSongsTestData[aPos].Year);
+        date_time.SetMonth(EJanuary);
+        date_time.SetDay(1);
+        date_time.SetHour(0);
+        date_time.SetMinute(0);
+        date_time.SetSecond(0);
+        date_time.SetMicroSecond(0);
+        TTime date(date_time);
+        TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding year: %d in %LD to iMediaTestData", KAllSongsTestData[aPos].Year, date.Int64());
+        TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Is year %d equal to %d", KAllSongsTestData[aPos].Year, date.DateTime().Year());        
+        iMediaTestData->SetTObjectValueL<TInt64>( KMPXMediaMusicYear, date.Int64() );        
+    }
+
+    TPtrC musicAlbumTrack( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumTrack ) );
+    if(musicAlbumTrack.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumTrack: %S to iMediaTestData", &musicAlbumTrack);        
+        iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumTrack,  musicAlbumTrack);        
+    }
+    
+    TPtrC genre( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicGenre ) );
+    if(genre.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding genre: %S to iMediaTestData", &genre);        
+        iMediaTestData->SetTextValueL( KMPXMediaMusicGenre, genre);
+    }
+    
+    TPtrC musicUri( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicUri ) );
+    if(musicUri.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicUri: %S to iMediaTestData", &musicUri);        
+        iMediaTestData->SetTextValueL( KMPXMediaGeneralUri, musicUri);
+    }
+
+    TPtrC mimeType( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MimeType ) );
+    if(mimeType.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding mimeType: %S to iMediaTestData", &mimeType);        
+        iMediaTestData->SetTextValueL( KMPXMediaGeneralMimeType, mimeType);
+    }
+    
+    if(KAllSongsTestData[aPos].Duration != -1) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding duration: %d to iMediaTestData", KAllSongsTestData[aPos].Duration );
+        iMediaTestData->SetTObjectValueL<TInt>( KMPXMediaGeneralDuration, KAllSongsTestData[aPos].Duration );
+    }
+    
+    if(KAllSongsTestData[aPos].MediaAudioBitRate != -1) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding MediaAudioBitRate: %d to iMediaTestData", KAllSongsTestData[aPos].MediaAudioBitRate );
+        iMediaTestData->SetTObjectValueL<TInt>( KMPXMediaAudioBitrate, KAllSongsTestData[aPos].MediaAudioBitRate );
+    }    
+
+    if(KAllSongsTestData[aPos].MediaAudioSampleRate != -1) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding MediaAudioBitRate: %d to iMediaTestData", KAllSongsTestData[aPos].MediaAudioSampleRate );
+        iMediaTestData->SetTObjectValueL<TInt>( KMPXMediaAudioSamplerate, KAllSongsTestData[aPos].MediaAudioSampleRate );
+    }    
+
+    TPtrC copyright( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Copyright ) );
+    if(copyright.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding copyright: %S to iMediaTestData", &copyright);        
+        iMediaTestData->SetTextValueL( KMPXMediaGeneralCopyright, copyright);
+    }
+
+    TPtrC url( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Url ) );
+    if(url.Match(KOff) == KErrNotFound) {
+        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding url: %S to iMediaTestData", &url);        
+        iMediaTestData->SetTextValueL( KMPXMediaMusicURL, url );
+    }
+               
+    TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData exit");    
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,125 @@
+/*
+* 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: Metadata of song for details view.
+*
+*/
+
+#ifndef MPSONGDATA_H
+#define MPSONGDATA_H
+
+#include <QObject>
+#include <QString>
+#include <QPixmap>
+
+//forward declartions
+class HbIcon;
+
+//class declaration
+class MpSongData : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit MpSongData( QObject *parent=0 );
+    virtual ~MpSongData();
+    
+    bool setTitle( const QString &title );
+    bool setAlbum( const QString &album );
+    bool setArtist( const QString &artist );
+    bool setComment( const QString &comment );
+    void setAlbumArtUri( const QString &albumArtUri );
+    bool setYear( int date );
+    bool setGenre( const QString &genre );
+    bool setComposer( const QString &compoer );
+    bool setAlbumTrack( const QString &albumtrack );
+    void setLink( const QString &link );
+    bool setFileName( const QString &fileName );
+    bool setMimeType( const QString &mimeType );
+    bool setDuration( int duration );
+    bool setBitRate( int bitRate);
+    bool setSampleRate( int sampleRate );
+    bool setSize( int size );
+    bool setModified( const QString &modified );
+    bool setCopyright( const QString &copyright );
+    bool setMusicURL( const QString &musicURL );
+    bool setDrmProtected( bool drmProtected );
+    
+    // inform details view when basic information is ready to accelerate UI update
+    void commitPlaybackInfo();
+    // inform details view when details information is ready
+    void commitSongDetailInfo();
+
+public slots:
+    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+    
+    int reservedLength() const { return mLink.length() + mTitle.length() + mArtist.length(); }
+
+    QString title() const;
+    QString album() const;
+    QString artist() const;
+    QString comment() const;
+    void albumArt( HbIcon& icon ) const;
+    QString year() const;
+    QString genre() const;
+    QString composer() const;
+    QString albumTrack() const;
+    QString link() const;
+    
+    QString fileName() const;
+    QString mimeType() const;
+    QString duration() const;
+    QString bitRate() const;
+    QString sampleRate() const;
+    QString size() const;
+    QString modified() const;
+    QString copyright() const;
+    QString musicURL() const;
+    bool isDrmProtected() const;
+    
+    QString albumArtBase64() const;
+
+signals:
+    void albumArtReady();
+    void playbackInfoChanged();
+	void songDetailInfoChanged();	
+
+private:
+    QString                  mTitle;
+    QString                  mAlbum;
+    QString                  mArtist;
+    QString                  mComment;
+    QString                  mComposer;
+    QString                  mGenre;
+    QString                  mYear;
+    QString                  mAlbumTrack;
+    HbIcon                   *mAlbumArt;
+    TInt                     mReqId;
+    QString                  currentAAUri; 
+    HbIcon                   *mDefaultAlbumArt;
+    QString                  mLink;
+    QString                  mFileName;
+    QString                  mMimeType;
+    QString                  mDuration;
+    QString                  mBitRate;
+    QString                  mSampleRate;
+    QString                  mSize;
+    QString                  mModified;
+    QString                  mCopyright;
+    QString                  mMusicURL;
+    bool                     mDrmProtected;
+    
+    Q_DISABLE_COPY(MpSongData)
+};
+
+#endif // MPSONGDATA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+
+#ifndef MMPXPLAYBACKUTILITY_H
+#define MMPXPLAYBACKUTILITY_H
+
+#include "stub/inc/mpxplayermanager.h"
+#include "stub/inc/mpxsource.h"
+#include <mpxplaybackframeworkdefs.h>
+#include <mpxcommand.h>
+#include <f32file.h>
+#include <BADESCA.H>
+
+//Forward declarations
+class CMPXCollectionPlaylist;
+class MMPXPlaybackObserver;  
+class MMPXPlaybackCallback;
+class CAsyncCallBack;
+class CMPXSubscription;
+
+class MMPXPlaybackUtility 
+{
+public: 
+    ~MMPXPlaybackUtility();
+    
+protected:
+    MMPXPlaybackUtility();
+    void ConstructL();
+
+public: // MMPXPlaybackUtility's overridden (stubbed by us) functions
+    static MMPXPlaybackUtility* NewL(const TUid& aModeId = KPbModeDefault,
+                                     MMPXPlaybackObserver* aObs=NULL);
+    
+    static MMPXPlaybackUtility* NewL(const TMPXCategory aCategory,
+                                     const TUid& aModeId = KPbModeDefault,
+                                     MMPXPlaybackObserver* aObs=NULL);
+    static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault );
+    static MMPXPlaybackUtility* UtilityL(const TMPXCategory aCategory,
+                                  const TUid& aModeId = KPbModeDefault );    
+    
+public: // MMPXPlaybackUtility stubbed pure virtuals
+    void AddObserverL(MMPXPlaybackObserver& aPlaybackObserver);
+    void RemoveObserverL(MMPXPlaybackObserver& aPlaybackObserver);
+    void GetClientsL(RArray<TProcessId>& aClients);
+    void InitL(const CMPXCollectionPlaylist& aPlaylist, TBool aPlay=ETrue);
+    void InitL(const TDesC& aUri, const TDesC8* aType=NULL);
+    void InitL(RFile& aShareableFile);
+    void Close();
+    void CancelRequest();
+    void CommandL(TMPXPlaybackCommand aCmd, TInt aData=0);
+    void CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback=NULL);
+    TMPXPlaybackState StateL() const;
+    MMPXSource* Source();
+    MMPXPlayerManager& PlayerManager();
+    void SetL(TMPXPlaybackProperty aProperty, TInt aValue);
+    void ValueL(MMPXPlaybackCallback& aCallback, TMPXPlaybackProperty aProperty);
+    void PropertyL(MMPXPlaybackCallback& aCallback, TMPXPlaybackProperty aProperty);
+    CDesCArray* SupportedMimeTypes();
+    CDesCArray* SupportedExtensions();
+    CDesCArray* SupportedSchemas();
+    void SetPriority( TInt aPriority );
+    void AddSubscriptionL(const CMPXSubscription& aSubscription);
+    void RemoveSubscriptionL(const CMPXSubscription& aSubscription);
+    void ClearSubscriptionsL();
+    void InitStreamingL(const TDesC& aUri, const TDesC8* aType, const TInt aAccessPoint);
+    void InitStreamingL(RFile& aShareableFile, const TInt aAccessPoint);
+
+private:
+    MMPXSource*             iMpxSource;
+    MMPXPlayerManager*      iMpxPlayerManager;
+    MMPXPlaybackObserver*   iPlaybackObserver;
+    MMPXPlaybackCallback*   iPlaybackCallback;
+    TMPXPlaybackState       iState;
+    CAsyncCallBack*         iOneShot;
+
+private:
+    static MMPXPlaybackUtility* singleton;
+};
+
+#endif      // MMPXPLAYBACKUTILITY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+
+#ifndef MPXPLAYERMANAGER_H
+#define MPXPLAYERMANAGER_H
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <mpxplaybackplugin.hrh>
+
+class MMPXPlayer;
+class MMPXPlaybackCallback;
+
+class MMPXPlayerManager
+{
+public:
+    MMPXPlayerManager();
+    ~MMPXPlayerManager();
+    
+public: // MMPXPlayerManager
+    void GetPlayerTypesL(RArray<TMPXPlaybackPlayerType>& aTypes);
+    HBufC* PlayerTypeDisplayNameL(TMPXPlaybackPlayerType aType);
+    void GetPlayerListL(RArray<TUid>& aPlayers);
+    void GetPlayerListL(RArray<TUid>& aPlayers, TMPXPlaybackPlayerType aType);
+    void SubPlayerNamesL(MMPXPlaybackCallback& aCallback, TUid aPlayer);
+    void SelectPlayersL(TMPXPlaybackPlayerType aType);
+    void SelectSubPlayerL(TUid aPlayer, TInt aSubPlayerIndex);
+    void SelectPlayerL(TUid aPlayer);
+    void ClearSelectPlayersL();
+    void GetSelectionL(TMPXPlaybackPlayerType& aType,
+                                   TUid& aPlayer,
+                                   TInt& aSubPlayerIndex,
+                                   HBufC*& aSubPlayerName);
+    MMPXPlayer* CurrentPlayer();
+};
+
+#endif // MPXPLAYERMANAGER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+
+#ifndef MPXSOURCE_H
+#define MPXSOURCE_H
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <f32file.h>
+
+class CMPXCollectionPlaylist;
+class MMPXPlaybackCallback;
+class TMPXAttribute;
+class CMPXAttributeSpecs;
+
+class MMPXSource
+{
+public:
+    MMPXSource();
+    ~MMPXSource();
+    
+public: // MMPXSource    
+    CMPXCollectionPlaylist* PlaylistL();
+    RFile* FileL();
+    HBufC* UriL();
+    void MediaL(const TArray<TMPXAttribute>& aAttrs, MMPXPlaybackCallback& aCallback);
+    void MediaL(const TArray<TMPXAttribute>& aAttrs, MMPXPlaybackCallback& aCallback,
+                            CMPXAttributeSpecs* aSpecs);    
+};
+    
+#endif // MPXSOURCE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,477 @@
+/*
+* 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: Playback Data provider for playback view.
+*
+*/
+
+
+#include <QString>
+#include <QPixmap>
+#include <QPainter>
+#include <QBuffer>
+#include <hbicon.h>
+#include "stub/inc/mpsongdata.h"
+#include "mptrace.h"
+
+const int KUndefined = -1;
+
+
+MpSongData::MpSongData( QObject *parent )
+    : QObject( parent ),
+      mTitle( NULL ),
+      mAlbum( NULL ),
+      mArtist( NULL ),
+      mComposer( NULL),
+      mGenre( NULL ),
+      mYear( NULL ),
+      mAlbumTrack( NULL ),
+      mAlbumArt(),
+      mReqId( KUndefined )
+{
+    TX_ENTRY_ARGS("Stub")
+    TX_EXIT_ARGS("Stub")
+}
+
+MpSongData::~MpSongData()
+{
+    TX_ENTRY_ARGS("Stub")
+    TX_EXIT_ARGS("Stub")
+}
+
+void MpSongData::albumArt( HbIcon& icon ) const
+{
+    TX_ENTRY_ARGS("Stub")
+    TX_EXIT_ARGS("Stub")
+}
+
+
+QString MpSongData::title() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mTitle;
+}
+
+QString MpSongData::album() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mAlbum;
+}
+
+QString MpSongData::artist() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mArtist;
+}
+
+QString MpSongData::comment() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mComment;
+}
+
+QString MpSongData::composer() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mComposer;
+}
+
+
+QString MpSongData::genre() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mGenre;
+}
+
+
+QString MpSongData::albumTrack() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mAlbumTrack;
+}
+
+QString MpSongData::link() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mLink;
+}
+
+QString MpSongData::year() const
+{
+    TX_ENTRY_ARGS("Stub")    
+    return mYear;
+}
+
+QString MpSongData::fileName() const
+{
+    TX_ENTRY_ARGS("Stub")  
+    return mFileName;
+}
+
+QString MpSongData::mimeType() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return mMimeType;   
+}
+
+QString MpSongData::duration() const
+{
+    TX_ENTRY_ARGS("Stub")   
+    return mDuration;  
+}
+
+QString MpSongData::bitRate() const
+{
+    TX_ENTRY_ARGS("Stub")  
+    return mBitRate;  
+}
+
+QString MpSongData::sampleRate() const
+{
+    TX_ENTRY_ARGS("Stub")  
+    return mSampleRate;  
+}
+
+QString MpSongData::size() const
+{
+    TX_ENTRY_ARGS("Stub")   
+    return mSize;  
+}
+
+QString MpSongData::modified() const
+{
+    TX_ENTRY_ARGS("Stub")   
+    return mModified;  
+}
+
+QString MpSongData::copyright() const
+{
+    TX_ENTRY_ARGS("Stub")  
+    return mCopyright;  
+}
+
+QString MpSongData::musicURL() const
+{
+    TX_ENTRY_ARGS("Stub")  
+    return mMusicURL;  
+}
+
+bool MpSongData::isDrmProtected() const
+{
+    TX_ENTRY_ARGS("Stub")   
+    return mDrmProtected;
+}
+bool MpSongData::setTitle( const QString &title )
+{
+    TX_ENTRY_ARGS("Stub title =" << title )
+    bool change = false;
+    if ( title != mTitle ) {
+        change = true;
+        mTitle = title;
+    }
+    TX_EXIT_ARGS("Stub")
+    return change;
+}
+
+bool MpSongData::setAlbum( const QString &album )
+{
+    TX_ENTRY_ARGS( "Stub album =" << album )
+    bool change = false;
+    if ( album != mAlbum ) {
+        change = true;
+        mAlbum = album;
+    }
+
+    return change;
+}
+
+bool MpSongData::setArtist( const QString &artist )
+{
+    TX_ENTRY_ARGS("Stub artist =" << artist )
+    bool change = false;
+    if ( artist != mArtist ) {
+        change = true;
+        mArtist = artist;
+    }
+    TX_EXIT_ARGS("Stub")
+    return change;
+}
+
+bool MpSongData::setComment( const QString &comment)
+{
+    TX_ENTRY_ARGS("Stub comment =" << comment )
+    bool change = false;
+    if ( comment != mComment ) {
+        change = true;
+        mComment = comment;
+    }
+    TX_EXIT_ARGS("Stub")
+    return change;
+}
+
+bool MpSongData::setComposer( const QString &composer )
+{
+    TX_ENTRY_ARGS("Stub composer =" << composer )
+    bool change = false;
+    if ( composer != mComposer ) {
+        change = true;
+        mComposer = composer;
+    }
+    TX_EXIT_ARGS("Stub")
+    return change;
+}
+
+bool MpSongData::setGenre( const QString &genre )
+{
+    TX_ENTRY_ARGS("Stub genre =" << genre )
+    bool change = false;
+    if ( genre != mGenre ) {
+        change = true;
+        mGenre = genre;
+    }
+    TX_EXIT_ARGS("Stub")
+    return change;
+}
+
+
+bool MpSongData::setYear( int year )
+{
+    TX_ENTRY_ARGS("Stub year =" << year )
+    bool change = false;
+    if ( QString::number(year) != mYear ) {
+        change = true;
+        if ( year >= 0 && year < 9999 ) {
+            mYear = QString::number(year);
+        }
+    }
+    TX_EXIT_ARGS("Stub")
+    return change;
+}
+
+bool MpSongData::setAlbumTrack( const QString &track )
+{
+    TX_ENTRY_ARGS("Stub track =" << track )
+    bool change = false;
+    if ( track != mAlbumTrack ) {
+        change = true;
+        mAlbumTrack = track;
+    }
+    TX_EXIT_ARGS("Stub")
+    return change;
+}
+
+void MpSongData::setLink( const QString &link )
+{
+    TX_ENTRY_ARGS("Stub Link =" << link )
+    mLink = link;
+    TX_EXIT_ARGS("Stub")
+}
+
+void MpSongData::setAlbumArtUri( const QString &albumArtUri)
+{
+    TX_ENTRY_ARGS("Stub albumArtUri = " << albumArtUri )
+    // Set default album art.
+    mAlbumArt = mDefaultAlbumArt;
+    emit albumArtReady();
+    TX_EXIT
+}
+
+bool MpSongData::setFileName( const QString &fileName )
+{
+    TX_ENTRY_ARGS( "File name =" << fileName )
+    bool change = false;
+    if ( fileName != mFileName ) {
+        change = true;
+        mFileName = fileName;
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setMimeType( const QString &mimeType )
+{    
+    TX_ENTRY_ARGS( "Mime =" << mimeType )
+    bool change = false;
+    if ( mimeType != mMimeType ) {
+        change = true;
+        mMimeType = mimeType;
+    }
+    TX_EXIT
+    return change;    
+}
+
+bool MpSongData::setDuration( int duration )
+{   
+    TX_ENTRY_ARGS( "Duration =" << duration )
+    bool change = false;
+    QString timeFormatOne("%1:%2:%3");
+    QString timeFormatTwo("%1:%2");
+    if ( QString::number( duration ) != mDuration ) {
+        change = true;
+        if ( duration >= 3600 ) {
+            // more than one hours
+            QString hourStr, minStr, secStr;
+            int hour = duration / 3600;
+            int min = duration % 3600 / 60;
+            int sec = duration % 3600 % 60;
+            
+            hourStr = hour >= 10 ? QString::number( hour ) : QString::number( hour ).prepend( "0" );
+            minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" );
+            secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" );            
+            mDuration = timeFormatOne.arg( hourStr ).arg( minStr ).arg( secStr );
+        } else if ( duration >= 60 && duration < 3600 ) {
+            // more than one min && less than one hour
+            QString minStr, secStr;
+            int min = duration / 60;
+            int sec = duration % 60;
+            
+            minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" );
+            secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" );     
+            mDuration = timeFormatTwo.arg( minStr ).arg( secStr );
+        } else if ( duration > 0 && duration < 60 ) {
+            QString secStr;
+            secStr = duration >= 10 ? QString::number( duration ) : QString::number( duration ).prepend( "0" ); 
+            mDuration = secStr;
+        } else {
+            mDuration = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setBitRate( int bitRate)
+{
+    TX_ENTRY_ARGS( "Bit rate =" << bitRate )
+    bool change = false;
+    if ( QString::number( bitRate ) != mBitRate ) {
+        change = true;
+        if ( bitRate > 0 ) {
+            mBitRate = QString::number( bitRate / 1000 );
+        } else {
+            mBitRate = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setSampleRate( int sampleRate )
+{
+    TX_ENTRY_ARGS( "Sample rate =" << sampleRate )
+    bool change = false;
+    if ( QString::number( sampleRate ) != mSampleRate ) {
+        change = true;
+        if ( sampleRate > 0 ) {
+            mSampleRate = QString::number( sampleRate );
+        } else {
+            mSampleRate = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setSize( int size )
+{   
+    TX_ENTRY_ARGS( "Size =" << size )
+    bool change = false;
+    if ( QString::number( size ) != mSize ) {
+        change = true;
+        mSize = QString::number( size / 1000 ).append( " MB" );
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setModified( const QString &modified )
+{
+    TX_ENTRY_ARGS( "Modified =" << modified )
+    bool change = false;
+    if ( modified != mModified ) {
+        change = true;
+        mModified = modified;
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setCopyright( const QString &copyright )
+{
+    TX_ENTRY_ARGS( "Copyright =" << copyright )
+    bool change = false;
+    if ( copyright != mCopyright ) {
+        change = true;
+        mCopyright = copyright;
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setMusicURL( const QString &musicURL )
+{
+    TX_ENTRY_ARGS( "Music URL =" << musicURL )
+    bool change = false;
+    if ( musicURL != mMusicURL ) {
+        change = true;
+        mMusicURL = musicURL;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Set whether the song is DRM protected
+*/
+bool MpSongData::setDrmProtected( bool drmProtected )
+{
+    TX_ENTRY_ARGS( "STUB DRM protected =" << drmProtected )
+    bool change = false;
+    if ( drmProtected != mDrmProtected ) {
+        change = true;
+        mDrmProtected = drmProtected;
+    }
+    TX_EXIT
+    return change;
+}
+
+void MpSongData::thumbnailReady(
+        const QPixmap& pixmap,
+        void *data,
+        int id,
+        int error  )
+{
+    TX_ENTRY_ARGS("Stub")
+    Q_UNUSED( data );
+    TX_EXIT_ARGS("Stub")
+}
+
+void MpSongData::commitPlaybackInfo()
+{
+    TX_ENTRY_ARGS("Stub")
+    emit playbackInfoChanged();
+    TX_EXIT_ARGS("Stub")
+}
+
+void MpSongData::commitSongDetailInfo()
+{
+    TX_ENTRY_ARGS("Stub")
+    emit songDetailInfoChanged();
+    TX_EXIT_ARGS("Stub")
+}
+
+QString MpSongData::albumArtBase64() const
+{
+    TX_ENTRY_ARGS("Stub")
+    return QString();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,220 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+#include "stub/inc/mpxplaybackutility.h"
+#include "stub/inc/mpxplayermanager.h"
+#include "stub/inc/mpxsource.h"
+#include "mptrace.h"
+
+MMPXPlaybackUtility* MMPXPlaybackUtility::singleton = NULL;
+
+MMPXPlaybackUtility* MMPXPlaybackUtility::NewL(const TUid& /*aModeId*/,
+                                            MMPXPlaybackObserver* /*aObs*/)
+{
+    MMPXPlaybackUtility* obj = new(ELeave) MMPXPlaybackUtility();
+    CleanupStack::PushL(obj);
+    obj->ConstructL();
+    CleanupStack::Pop(obj);
+    return obj;
+}
+
+void MMPXPlaybackUtility::ConstructL()
+{
+    TX_ENTRY_ARGS("STUB")
+    iMpxPlayerManager = new(ELeave) MMPXPlayerManager(); 
+    iMpxSource = new(ELeave) MMPXSource();
+    TX_EXIT_ARGS("STUB")
+}
+
+MMPXPlaybackUtility::~MMPXPlaybackUtility()
+{
+    TX_ENTRY_ARGS("STUB")    
+}
+
+MMPXPlaybackUtility::MMPXPlaybackUtility()
+    : iMpxSource(0),
+      iMpxPlayerManager(0),
+      iPlaybackObserver(0),
+      iPlaybackCallback(0),
+      iState(EPbStateNotInitialised),
+      iOneShot(0)
+{
+    TX_ENTRY_ARGS("STUB")
+}
+
+  
+void MMPXPlaybackUtility::AddObserverL(MMPXPlaybackObserver& aPlaybackObserver)
+{
+    TX_ENTRY_ARGS("STUB")
+    iPlaybackObserver = &aPlaybackObserver;
+}
+
+void MMPXPlaybackUtility::RemoveObserverL(MMPXPlaybackObserver& aPlaybackObserver)
+{
+    TX_ENTRY_ARGS("STUB")
+    if(iPlaybackObserver == &aPlaybackObserver)
+    {
+        iPlaybackObserver = NULL;
+    }
+}
+
+void MMPXPlaybackUtility::GetClientsL(RArray<TProcessId>& /*aClients*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlaybackUtility::InitL(const CMPXCollectionPlaylist& /*aPlaylist*/, TBool /*aPlay*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+    
+void MMPXPlaybackUtility::InitL(const TDesC& /*aUri*/, const TDesC8* /*aType*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+    
+void MMPXPlaybackUtility::InitL(RFile& /*aShareableFile*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlaybackUtility::Close()
+{
+    TX_ENTRY_ARGS("STUB")
+    delete singleton;
+    singleton = NULL;
+    TX_EXIT_ARGS("STUB")
+}
+
+void MMPXPlaybackUtility::CancelRequest()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+
+void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand /*aCmd*/, TInt /*aData*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlaybackUtility::CommandL(CMPXCommand& /*aCmd*/, MMPXPlaybackCallback* /*aCallback*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+TMPXPlaybackState MMPXPlaybackUtility::StateL() const
+{
+    TX_ENTRY_ARGS("STUB")
+    return iState;
+}
+    
+MMPXSource* MMPXPlaybackUtility::Source()
+{
+    TX_ENTRY_ARGS("STUB")
+    return iMpxSource;
+}
+
+MMPXPlayerManager& MMPXPlaybackUtility::PlayerManager()
+{
+    TX_ENTRY_ARGS("STUB")
+    return *iMpxPlayerManager;
+}
+
+void MMPXPlaybackUtility::SetL(TMPXPlaybackProperty /*aProperty*/, TInt /*aValue*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+
+void MMPXPlaybackUtility::ValueL(MMPXPlaybackCallback& /*aCallback*/, TMPXPlaybackProperty /*aProperty*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlaybackUtility::PropertyL(MMPXPlaybackCallback& /*aCallback*/, TMPXPlaybackProperty /*aProperty*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+CDesCArray* MMPXPlaybackUtility::SupportedMimeTypes()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+    return 0;    
+}
+
+CDesCArray* MMPXPlaybackUtility::SupportedExtensions()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+    return 0;
+}
+
+CDesCArray* MMPXPlaybackUtility::SupportedSchemas()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+    return 0;
+}
+
+void MMPXPlaybackUtility::SetPriority( TInt /*aPriority*/ )
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+
+void MMPXPlaybackUtility::AddSubscriptionL(const CMPXSubscription& /*aSubscription*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+
+void MMPXPlaybackUtility::RemoveSubscriptionL(const CMPXSubscription& /*aSubscription*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+
+void MMPXPlaybackUtility::ClearSubscriptionsL()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+    
+void MMPXPlaybackUtility::InitStreamingL(const TDesC& /*aUri*/, const TDesC8* /*aType*/, const TInt /*aAccessPoint*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+
+void MMPXPlaybackUtility::InitStreamingL(RFile& /*aShareableFile*/, const TInt /*aAccessPoint*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+}
+
+MMPXPlaybackUtility* MMPXPlaybackUtility::NewL(const TMPXCategory /*aCategory*/,
+                                               const TUid& /*aModeId*/,
+                                               MMPXPlaybackObserver* /*aObs*/)
+{
+    return 0;    
+}
+
+MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TMPXCategory /*aCategory*/,
+                                                   const TUid& /*aModeId*/ )
+{
+    return 0;    
+}
+
+MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& /*aModeId*/ )
+{
+    if(!singleton) {
+        singleton = MMPXPlaybackUtility::NewL();
+    }
+    return singleton;
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,91 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+#include "stub/inc/mpxplayermanager.h"
+#include "mptrace.h"
+
+MMPXPlayerManager::MMPXPlayerManager()
+{
+    TX_ENTRY_ARGS("STUB")    
+}
+
+MMPXPlayerManager::~MMPXPlayerManager()
+{
+    TX_ENTRY_ARGS("STUB")
+}
+
+void MMPXPlayerManager::GetPlayerTypesL(RArray<TMPXPlaybackPlayerType>& aTypes)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+HBufC* MMPXPlayerManager::PlayerTypeDisplayNameL(TMPXPlaybackPlayerType aType)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+    return 0;
+}
+
+void MMPXPlayerManager::GetPlayerListL(RArray<TUid>& aPlayers)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlayerManager::GetPlayerListL(RArray<TUid>& aPlayers, TMPXPlaybackPlayerType aType)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlayerManager::SubPlayerNamesL(MMPXPlaybackCallback& aCallback, TUid aPlayer)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlayerManager::SelectPlayersL(TMPXPlaybackPlayerType aType)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlayerManager::SelectSubPlayerL(TUid aPlayer, TInt aSubPlayerIndex)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlayerManager::SelectPlayerL(TUid aPlayer)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlayerManager::ClearSelectPlayersL()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+void MMPXPlayerManager::GetSelectionL(TMPXPlaybackPlayerType& aType,    
+                   TUid& /*aPlayer*/,
+                   TInt& /*aSubPlayerIndex*/,
+                   HBufC*& /*aSubPlayerName*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
+
+MMPXPlayer* MMPXPlayerManager::CurrentPlayer()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
+    return 0;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+#include "mpxsource.h"
+#include "mptrace.h"
+
+MMPXSource::MMPXSource()
+{
+    TX_ENTRY_ARGS("STUB") 
+}
+
+MMPXSource::~MMPXSource()
+{
+    TX_ENTRY_ARGS("STUB")
+}
+
+CMPXCollectionPlaylist* MMPXSource::PlaylistL()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+    return 0;
+}
+
+RFile* MMPXSource::FileL()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+    return 0;
+}
+
+HBufC* MMPXSource::UriL()
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+    return 0;
+}
+
+void MMPXSource::MediaL(const TArray<TMPXAttribute>& /*aAttrs*/, MMPXPlaybackCallback& /*aCallback*/)
+{
+    TX_ENTRY_ARGS("STUB")    
+}
+
+void MMPXSource::MediaL(const TArray<TMPXAttribute>& /*aAttrs*/, MMPXPlaybackCallback& /*aCallback*/,
+                            CMPXAttributeSpecs* /*aSpecs*/)
+{
+    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxdetailsframeworkwrapper/unittest_mpmpxdetailsframeworkwrapper.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,52 @@
+#
+# 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
+CONFIG += qtestlib \
+					symbian_test \
+    hb
+TARGET = 
+
+TARGET.CAPABILITY = All -TCB
+
+DEPENDPATH += .
+INCLUDEPATH += ./stub/inc \
+    ../../inc \
+    ../../../inc
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lestor.dll \
+    -lfbscli.dll \
+     -lmpxcommon.dll \
+     -lthumbnailmanagerqt.dll
+
+
+HEADERS += inc/unittest_mpmpxdetailsframeworkwrapper.h \
+    stub/inc/mpsongdata.h \
+    stub/inc/mpxplaybackutility.h \
+    stub/inc/mpxplayermanager.h \
+    stub/inc/mpxsource.h \
+    ../../inc/mpmpxdetailsframeworkwrapper.h \
+    ../../inc/mpmpxdetailsframeworkwrapper_p.h
+ 
+SOURCES += src/unittest_mpmpxdetailsframeworkwrapper.cpp \
+    stub/src/mpxplaybackutility.cpp \
+    stub/src/mpsongdata.cpp \    
+    stub/src/mpxplayermanager.cpp \
+    stub/src/mpxsource.cpp \    
+    ../../src/mpmpxdetailsframeworkwrapper.cpp \
+    ../../src/mpmpxdetailsframeworkwrapper_p.cpp
+
--- a/mpengine/tsrc/unittest_mpmpxharvesterframeworkwrapper/src/unittest_mpmpxharvesterframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxharvesterframeworkwrapper/src/unittest_mpmpxharvesterframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,8 +16,6 @@
 */
 
 #include <QSignalSpy>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
 
 #include <mpxmedia.h>
 #include <mpxcollectionplaylist.h>
@@ -40,19 +38,19 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
     TestMpMpxHarvesterFrameworkWrapper tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpmpxharvesterframeworkwrapper.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmpxharvesterframeworkwrapper.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpMpxHarvesterFrameworkWrapper::TestMpMpxHarvesterFrameworkWrapper()
--- a/mpengine/tsrc/unittest_mpmpxharvesterframeworkwrapper/unittest_mpmpxharvesterframeworkwrapper.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxharvesterframeworkwrapper/unittest_mpmpxharvesterframeworkwrapper.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -1,25 +1,29 @@
+#
 # 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: Unit test for mpmpxframeworkwrapper
+#
+# Description: 
+#
+
 TEMPLATE = app
-CONFIG += qtestlib \
-    hb
-TARGET = 
-
-TARGET.CAPABILITY = All -TCB
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpmpxharvesterframeworkwrapper
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
     ../../inc \
     ../../../inc
-
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
 
 LIBS += -lestor.dll \
--- a/mpengine/tsrc/unittest_mpmpxisolatedcollectionhelper/src/unittest_mpmpxisolatedcollectionhelper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxisolatedcollectionhelper/src/unittest_mpmpxisolatedcollectionhelper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,9 +15,6 @@
 *
 */
 
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
 #include <mpxmedia.h>
 #include <mpxcollectionplaylist.h>
 #include <mpxcollectionpath.h>
@@ -34,19 +31,19 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
     TestCMpMpxIsolatedCollectionHelper tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpmpxisolatedcollectionhelper.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmpxisolatedcollectionhelper.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestCMpMpxIsolatedCollectionHelper::TestCMpMpxIsolatedCollectionHelper()
--- a/mpengine/tsrc/unittest_mpmpxisolatedcollectionhelper/unittest_mpmpxisolatedcollectionhelper.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpengine/tsrc/unittest_mpmpxisolatedcollectionhelper/unittest_mpmpxisolatedcollectionhelper.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -1,25 +1,29 @@
+#
 # 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: Unit test for CMpMpxIsolatedCollectionHelper
+#
+# Description: 
+#
+
 TEMPLATE = app
-CONFIG += qtestlib \
-    hb
-TARGET = 
-
-TARGET.CAPABILITY = All -TCB
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpmpxisolatedcollectionhelper
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
     ../../inc \
     ../../../inc
-
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
 
 LIBS += -lestor.dll \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/inc/unittest_mpmpxplaybackframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,84 @@
+/*
+* 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: Unit test for mpmpxplaybackframeworkwrapper
+*
+*/
+
+#ifndef TESTMPMPXPLAYBACKFRAMEWORKWRAPPER_H
+#define TESTMPMPXPLAYBACKFRAMEWORKWRAPPER_H
+
+#include <QtTest/QtTest>
+
+class MpMpxPlaybackFrameworkWrapper;
+class MpMpxPlaybackFrameworkWrapperPrivate;
+class CMPXMedia;
+class MpPlaybackData;
+
+class TestMpMpxPlaybackFrameworkWrapper : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpMpxPlaybackFrameworkWrapper();
+    virtual ~TestMpMpxPlaybackFrameworkWrapper();
+    //test utility functions
+    void loadTestData(TInt aPos);
+
+public slots:
+
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+
+    void testConstructor();
+    void testPlaybackData();
+    void testStop();
+    void testPlayPause();
+    void testSkipForward();
+    void testSkipBackward();
+    void testSetPosition();
+    void testSetShuffle();
+    void testSetRepeat();
+    void testHandlePlaybackMessage();
+    void testHandleProperty();
+    void testHandleMedia();
+    void testRetrieveSongDetails();
+    void testUpdateState();
+    void testForceStop();
+    void testSetBalance();
+    void testApplyAudioEffects();
+    void testApplyEqualizer();
+    void testPlay();
+    void testStartSeekForward();
+    void testStopSeeking();
+    void testStartSeekBackward();
+    void testHandleSubPlayerNamesL();
+
+private:
+
+    MpMpxPlaybackFrameworkWrapper           *mTest;
+    MpMpxPlaybackFrameworkWrapperPrivate    *mTestPrivate;
+    CMPXMedia                               *iMediaTestData;
+
+};
+
+#endif  // TESTMPMPXPLAYBACKFRAMEWORKWRAPPER_H
+
+
+
+
Binary file mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/resources/nullsound.mp3 has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/src/unittest_mpmpxplaybackframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,543 @@
+/*
+* 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: Unit test for mpmpxpbframeworkwrapper
+*
+*/
+
+#include <mpxmedia.h>
+#include <mpxcollectionplaylist.h>
+#include <xqsharablefile.h>
+
+#include "mpxaudioeffectengine.h"
+#include "unittest_mpmpxplaybackframeworkwrapper.h"
+#include "stub/inc/mpplaybackdata.h"
+#include "stub/inc/mpxplaybackutility.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpmpxplaybackframeworkwrapper.h"
+#include "mpmpxplaybackframeworkwrapper_p.h"
+#undef private
+
+//This so we can test private functions
+#include "mpmpxplaybackframeworkwrapper_p.cpp"
+//Test data
+struct TTestAttrs
+    {
+    const wchar_t* GeneralTitle;
+    const wchar_t* MusicArtist;
+    const TInt GeneralCount;
+    const wchar_t* MusicAlbumArtFileName;
+    const wchar_t* MusicAlbum;
+    const wchar_t* MusicUri;
+    const wchar_t* MimeType;
+    };
+
+const TTestAttrs KAllSongsTestData[] =
+    {
+     { L"Title 1", L"Artist 1", 1, L"e:\\data\\images\\art1.jpg", L"Album 1", L"Uri 1", L"audio/x-pn-realaudio"}
+    ,{ L"Title 2", L"Artist 2", 1, L"e:\\data\\images\\art2.jpg", L"Album 2", L"Uri 2", L"audio/x-realaudio"}
+    };
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    TestMpMpxPlaybackFrameworkWrapper tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmpxplaybackframeworkwrapper.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+
+TestMpMpxPlaybackFrameworkWrapper::TestMpMpxPlaybackFrameworkWrapper()
+    : mTest(0),
+      iMediaTestData(0)
+{
+}
+
+TestMpMpxPlaybackFrameworkWrapper::~TestMpMpxPlaybackFrameworkWrapper()
+{
+    delete mTest;
+    delete iMediaTestData;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::init()
+{
+
+    mTest = new MpMpxPlaybackFrameworkWrapper();
+    mTestPrivate = mTest->d_ptr;
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+/*!
+ Tests constructor.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testConstructor()
+{
+    QVERIFY(mTestPrivate->iPlaybackUtility != 0);
+    QVERIFY(mTestPrivate->iPlaybackData != 0);
+}
+
+/*!
+ Tests playbackData
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testPlaybackData()
+{
+    MpPlaybackData *playbackdata;
+    playbackdata = mTest->playbackData();
+    QCOMPARE(mTestPrivate->iPlaybackData, playbackdata);
+}
+
+/*!
+ Tests stop.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testStop()
+{
+    mTest->stop();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStop);
+}
+
+/*!
+ Tests playPause.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testPlayPause()
+{
+    mTest->playPause();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdPlayPause);
+}
+
+/*!
+ Tests skipForward.
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testSkipForward()
+{
+    mTest->skipForward();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdNext);
+}
+
+/*!
+ Tests skipBackward
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testSkipBackward()
+{
+    mTest->skipBackward();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdPrevious);
+}
+
+/*!
+ Tests setPosition
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testSetPosition()
+{
+    mTest->setPosition(100);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 100);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
+    mTest->setPosition(50);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 50);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
+    mTest->setPosition(700);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 700);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
+}
+
+/*!
+ Tests setShuffle
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testSetShuffle()
+{
+    mTest->setShuffle(true);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, TBool(ETrue));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRandomMode);
+    mTest->setShuffle(false);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, TBool(EFalse));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRandomMode);
+}
+
+/*!
+ Tests setRepeat
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testSetRepeat()
+{
+    mTest->setRepeat(true);
+    QCOMPARE(TMPXPlaybackRepeatMode(mTestPrivate->iPlaybackUtility->iValue), EPbRepeatAll);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRepeatMode);
+    mTest->setRepeat(false);
+    QCOMPARE(TMPXPlaybackRepeatMode(mTestPrivate->iPlaybackUtility->iValue), EPbRepeatOff);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRepeatMode);
+}
+
+/*!
+ Tests handleProperty
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testHandlePlaybackMessage()
+{
+    RArray<TInt> supportedIds;
+    CleanupClosePushL( supportedIds );
+    supportedIds.AppendL( KMPXMessageContentIdGeneral );
+    CMPXMedia* testMessage = CMPXMedia::NewL(supportedIds.Array());
+    CleanupStack::PopAndDestroy(&supportedIds);
+    CleanupStack::PushL(testMessage);
+    testMessage->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral);
+
+    //Update State
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EStateChanged);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
+    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
+    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
+
+    //Initialize complete
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EInitializeComplete);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,1);
+    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandGeneralId),KMPXCommandIdPlaybackGeneral);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralType),TInt(EPbCmdPlay));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandGeneralDoSync),TBool(ETrue));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandPlaybackGeneralNoBuffer),TBool(ETrue));
+
+    //Property change
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EPropertyChanged);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EPbPropertyPosition);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,50);
+    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackData->mPosition, 50);
+
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EPbPropertyDuration);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,100);
+    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackData->mDuration, 100);
+
+    //Media change
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EMediaChanged);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
+    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
+    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iAttrs->Count(), 8);
+
+    CleanupStack::PopAndDestroy(testMessage);
+}
+
+/*!
+ Tests handleProperty
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testHandleProperty()
+{
+    for(TInt i = 0; i < 10; i++){
+        mTestPrivate->HandlePropertyL(EPbPropertyPosition, i, KErrNone);
+        mTestPrivate->HandlePropertyL(EPbPropertyDuration, i+1, KErrNone);
+        QCOMPARE(mTestPrivate->iPlaybackData->mPosition, i);
+        QCOMPARE(mTestPrivate->iPlaybackData->mDuration, i+1);
+    }
+    mTestPrivate->iPlaybackData->mPosition = 100;
+    mTestPrivate->iPlaybackData->mDuration = 100;
+    mTestPrivate->HandlePropertyL(EPbPropertyPosition, 10, KErrNotFound);
+    mTestPrivate->HandlePropertyL(EPbPropertyDuration, 10, KErrNotFound);
+
+    QCOMPARE(mTestPrivate->iPlaybackData->mPosition, 100);
+    QCOMPARE(mTestPrivate->iPlaybackData->mDuration, 100);
+}
+
+/*!
+ Tests handleMedia
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testHandleMedia()
+{
+    loadTestData(0);
+    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
+    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
+    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(EFalse));
+
+    loadTestData(1);
+    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
+    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
+    const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].GeneralTitle));
+    QCOMPARE(mTestPrivate->iPlaybackData->title(), QString::fromUtf16( title.Ptr(), title.Length() ));
+    const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicArtist));
+    QCOMPARE(mTestPrivate->iPlaybackData->artist(), QString::fromUtf16( artist.Ptr(), artist.Length() ));
+    const TDesC& album = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicAlbum));
+    QCOMPARE(mTestPrivate->iPlaybackData->album(), QString::fromUtf16( album.Ptr(), album.Length() ));
+    const TDesC& albumArt = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicAlbumArtFileName));
+    QCOMPARE(mTestPrivate->iPlaybackData->currentAAUri, QString::fromUtf16( albumArt.Ptr(), albumArt.Length() ));
+    const TDesC& albumUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicUri));
+    QCOMPARE(mTestPrivate->iPlaybackData->currentUri, QString::fromUtf16( albumUri.Ptr(), albumUri.Length() ));
+    QVERIFY(mTestPrivate->iPlaybackData->mRealAudio);
+    QCOMPARE(mTestPrivate->iPlaybackData->mId, 1);
+    QCOMPARE(mTestPrivate->iPlaybackData->mAlbumId, 2);
+
+    //Empty data
+    cleanup();
+    init();
+    RArray<TInt> supportedIds;
+    CleanupClosePushL( supportedIds );
+    supportedIds.AppendL( KMPXMediaIdMusic );
+    supportedIds.AppendL( KMPXMediaIdGeneral );
+    CMPXMedia* entries = CMPXMedia::NewL(supportedIds.Array());
+    CleanupStack::PopAndDestroy(&supportedIds);
+    CleanupStack::PushL(entries);
+    entries->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[1].GeneralCount);
+    entries->SetTextValueL(KMPXMediaGeneralUri, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicUri)));
+    CMPXMedia* emptyTestData = CMPXMedia::NewL(*entries);
+    CleanupStack::PopAndDestroy(entries);
+    CleanupStack::PushL(emptyTestData);
+
+    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
+    mTestPrivate->HandleMediaL(*emptyTestData, KErrNone);
+    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
+    const TDesC& musicUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicUri));
+    QCOMPARE(mTestPrivate->iPlaybackData->title(), QString::fromUtf16( musicUri.Ptr(), musicUri.Length() ));
+    QCOMPARE(mTestPrivate->iPlaybackData->artist(), QString());
+    QCOMPARE(mTestPrivate->iPlaybackData->album(), QString());
+    QCOMPARE(mTestPrivate->iPlaybackData->currentAAUri, QString::fromUtf16( musicUri.Ptr(), musicUri.Length() ));
+    QCOMPARE(mTestPrivate->iPlaybackData->currentUri, QString::fromUtf16( musicUri.Ptr(), musicUri.Length() ));
+    QVERIFY(!mTestPrivate->iPlaybackData->mRealAudio);
+
+    CleanupStack::PopAndDestroy(emptyTestData);
+}
+
+/*!
+ Tests retrieveSong
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testRetrieveSongDetails()
+{
+    mTestPrivate->RetrieveSongDetailsL();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iAttrs->Count(), 8);
+}
+
+/*!
+ Tests updateState
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testUpdateState()
+{
+    mTestPrivate->iPlaybackUtility->iReturnSource = false;
+    mTestPrivate->UpdateStateL();
+    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::NotPlaying);
+    mTestPrivate->iPlaybackUtility->iReturnSource = true;
+
+    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
+    mTestPrivate->UpdateStateL();
+    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
+
+    mTestPrivate->iPlaybackUtility->iState = EPbStatePaused;
+    mTestPrivate->UpdateStateL();
+    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Paused);
+
+    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
+    mTestPrivate->UpdateStateL();
+    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
+
+    mTestPrivate->iPlaybackUtility->iState = EPbStateStopped;
+    mTestPrivate->UpdateStateL();
+    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Stopped);
+}
+
+/*!
+ Tests forceStop
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testForceStop()
+{
+    mTestPrivate->ForceStopL();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandGeneralId),KMPXCommandIdPlaybackGeneral);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralType),TInt(EPbCmdStop));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandGeneralDoSync),TBool(ETrue));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandPlaybackGeneralNoBuffer),TBool(ETrue));
+}
+
+/*!
+ Tests setBalance
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testSetBalance()
+{
+    int balance = 25;
+    mTest->setBalance( balance );
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, balance);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyBalance);
+
+    balance = 75;
+    mTest->setBalance( balance );
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, balance);
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyBalance);
+}
+
+/*!
+ Tests applyAudioEffects
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testApplyAudioEffects()
+{
+    mTest->applyAudioEffects();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iComandData, TInt(KAudioEffectsID));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbApplyEffect);
+}
+
+/*!
+ Tests applyEqualizer
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testApplyEqualizer()
+{
+    mTest->applyEqualizer();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iComandData, TInt(KEqualizerID));
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbApplyEffect);
+}
+
+/*!
+ Tests applyEqualizer
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testPlay()
+{
+    //Play from filename
+    QString fileName = QString("z:\\system\\data\\nullsound.mp3");
+    mTest->play( fileName );
+    QVERIFY( mTestPrivate->iPlaybackUtility->iInitialized );
+
+    //Play from Shareable file
+    mTestPrivate->iPlaybackUtility->iInitialized = false;
+    _LIT( KMPXNullSoundPath, "z:\\system\\data\\nullsound.mp3" );
+    RFs fileServerSession;
+    RFile file;
+    TInt err( KErrNone );
+    err = fileServerSession.Connect();
+    if( err == KErrNone ) {
+        err = file.Open( fileServerSession, KMPXNullSoundPath, EFileShareReadersOrWriters );
+        if( err == KErrNone ) {
+            XQSharableFile* sFile = new XQSharableFile(file);
+
+            mTest->play( *sFile );
+            QVERIFY( mTestPrivate->iPlaybackUtility->iInitialized );
+
+            sFile->close();
+            delete sFile;
+            sFile = 0;
+            fileServerSession.Close();
+        }
+        else {
+            QWARN("Not able to Open test file");
+        }
+    }
+    else {
+        QWARN("Not able to create RF Session");
+    }
+}
+
+/*!
+ Tests startSeekForward()
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testStartSeekForward()
+{
+    mTest->startSeekForward();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStartSeekForward);
+}
+
+/*!
+ Tests stopSeeking()
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testStopSeeking()
+{
+    mTest->stopSeeking();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStopSeeking);
+}
+
+/*!
+ Tests startSeekBackward()
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testStartSeekBackward()
+{
+    mTest->startSeekBackward();
+    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStartSeekBackward);
+}
+
+/*!
+ Tests HandleSubPlayerNamesL()
+ */
+void TestMpMpxPlaybackFrameworkWrapper::testHandleSubPlayerNamesL()
+{
+    //HandleSubPlayerNamesL does nothing, included just to cover all declared functions.
+    TUid stubUid = {0x00000001};
+    MDesCArray* stubArray = NULL;
+    mTestPrivate->HandleSubPlayerNamesL(stubUid, stubArray, false, KErrNone);
+    QVERIFY(mTestPrivate);
+}
+
+/*!
+ Used to load test data
+ */
+void TestMpMpxPlaybackFrameworkWrapper::loadTestData(TInt aPos)
+{
+    if(iMediaTestData){
+        delete iMediaTestData;
+        iMediaTestData=0;
+    }
+    RArray<TInt> supportedIds;
+    CleanupClosePushL( supportedIds );
+    supportedIds.AppendL( KMPXMediaIdMusic );
+    supportedIds.AppendL( KMPXMediaIdGeneral );
+    CMPXMedia* entries = CMPXMedia::NewL(supportedIds.Array());
+    CleanupStack::PopAndDestroy(&supportedIds);
+    CleanupStack::PushL(entries);
+
+    entries->SetTObjectValueL<TInt>(KMPXMediaGeneralId, 1);
+    entries->SetTObjectValueL<TInt>(KMPXMediaMusicAlbumId, 2);
+    entries->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].GeneralTitle)));
+    entries->SetTextValueL(KMPXMediaMusicArtist, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicArtist)));
+    entries->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[aPos].GeneralCount);
+    entries->SetTextValueL(KMPXMediaMusicAlbumArtFileName, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicAlbumArtFileName)));
+    entries->SetTextValueL(KMPXMediaMusicAlbum, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicAlbum)));
+    entries->SetTextValueL(KMPXMediaGeneralUri, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicUri)));
+    entries->SetTextValueL(TMPXAttribute(KMPXMediaGeneralMimeType), TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MimeType)));
+
+    iMediaTestData = CMPXMedia::NewL(*entries);
+    CleanupStack::PopAndDestroy(entries);
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/stub/inc/hbglobal.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  HbTrId stub
+*
+*/
+
+#ifndef HBGLOBAL_H
+#define HBGLOBAL_H
+
+#include <QtCore/qstring.h>
+
+typedef QString hbTrId;
+
+#endif // HBGLOBAL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/stub/inc/mpplaybackdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,80 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Playback Data stub for testing mpmpxpbframeworkwrapper
+*
+*/
+
+#ifndef MPPLAYBACKDATA_H
+#define MPPLAYBACKDATA_H
+
+#include <QObject>
+#include <QString>
+
+
+//class declaration
+class MpPlaybackData : public QObject
+{
+    Q_OBJECT
+
+public:
+    enum SimplifiedPlaybackState {
+        NotPlaying,
+        Playing,
+        Paused,
+        Stopped
+    };
+    
+    explicit MpPlaybackData();
+    virtual ~MpPlaybackData();
+
+    void setDuration( int duration);
+    void setPosition( int position);
+    bool setTitle( const QString& title);
+    bool setAlbum( const QString& album);
+    bool setArtist( const QString& artist);
+    void setAlbumArtUri( const QString& albumArtUri);
+    void setUri( const QString& aUri);
+    void setPlaybackState(const SimplifiedPlaybackState state );
+    int duration() const;
+    int position() const;
+    const QString& title() const;
+    const QString& album() const;
+    const QString& artist() const;
+    MpPlaybackData::SimplifiedPlaybackState playbackState();
+    void commitPlaybackInfo();
+    void handleMediaReady();
+    bool setRealAudio( bool mode );
+    bool setAlbumId( int id );
+    bool setId( int id );
+    void resetData();
+
+
+public:
+    int                      mDuration;
+    int                      mPosition;
+    QString                  mTitle;
+    QString                  mAlbum;
+    QString                  mArtist;
+    SimplifiedPlaybackState  mPlaybackState;
+    QString                  currentAAUri; 
+    QString                  currentUri;
+    TBool                    mMediaReady;
+    bool                     mRealAudio;
+    int                      mAlbumId;
+    int                      mId;
+
+    Q_DISABLE_COPY(MpPlaybackData)
+};
+
+#endif // MPPLAYBACKDATA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/stub/inc/mpxplaybackutility.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,83 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+
+#ifndef MMPXPLAYBACKUTILITY_H
+#define MMPXPLAYBACKUTILITY_H
+
+#include <mpxplaybackframeworkdefs.h>
+#include <mpxcommonframeworkdefs.h>
+#include <badesca.h>
+#include <mpxattribute.h>
+#include <mpxattributespecs.h>
+
+//Forward declarations
+class CMPXCollectionPlaylist;
+class MMPXPlaybackObserver;  
+class MMPXPlaybackCallback;
+
+class MMPXSource
+{
+public:
+    //MMPXSource interface for playback utility stub
+    virtual CMPXCollectionPlaylist* PlaylistL()=0;
+    virtual void MediaL(const TArray<TMPXAttribute>& aAttrs,
+                    MMPXPlaybackCallback& aCallback)=0;
+
+ 
+};
+
+class MMPXPlaybackUtility: public MMPXSource
+{
+public:
+
+    // Stub functions
+    MMPXPlaybackUtility();
+    ~MMPXPlaybackUtility();
+    static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault);
+    void AddObserverL(MMPXPlaybackObserver& aObs);
+    void RemoveObserverL(MMPXPlaybackObserver& aObs);
+    void Close();
+    void CommandL(TMPXPlaybackCommand aCmd,TInt aData=0);
+    void CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback=NULL);
+    MMPXSource* Source();
+     void SetL(TMPXPlaybackProperty aProperty, TInt aValue);
+    TMPXPlaybackState StateL() const;
+    // Stub function from MMPXSource
+    CMPXCollectionPlaylist* PlaylistL();
+    void MediaL(const TArray<TMPXAttribute>& aAttrs,
+                    MMPXPlaybackCallback& aCallback);
+    void InitL(RFile& aShareableFile);
+    void InitL(const TDesC& aUri,const TDesC8* aType=NULL);
+    
+
+public:
+
+    TInt                    iValue;
+    TInt                    iComandData;
+    TMPXPlaybackProperty    iProperty;
+    MMPXPlaybackObserver*   iObs;
+    TMPXPlaybackCommand     iCmd;
+    CMPXCommand*            iCMPXCmd;
+    TMPXPlaybackState       iState;
+    RArray<TMPXAttribute>*  iAttrs;
+    bool                    iInitialized;
+    bool                    iReturnSource;
+};
+
+#endif      // MMPXPLAYBACKUTILITY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/stub/src/mpplaybackdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,282 @@
+/*
+* 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: Playback Data stub for testing mpmpxframeworkwrapper
+*
+*/
+
+
+#include <QString>
+
+#include "stub/inc/mpplaybackdata.h"
+#include "mptrace.h"
+
+
+/*!
+ Stub function.
+*/
+MpPlaybackData::MpPlaybackData()
+    : mDuration( 0 ),
+      mPosition( 0 ),
+      mTitle(""),
+      mAlbum(""),
+      mArtist("Unknown"),
+      mMediaReady(EFalse),
+      mPlaybackState(MpPlaybackData::Stopped),
+      mRealAudio( false ),
+      mAlbumId( 0 ),
+      mId( 0 )
+{
+}
+
+/*!
+ Stub function.
+*/
+MpPlaybackData::~MpPlaybackData()
+{
+}
+    
+/*!
+ Stub function.
+*/
+int MpPlaybackData::duration() const
+{
+    TX_LOG
+    return mDuration;
+}
+
+/*!
+ Stub function.
+*/
+int MpPlaybackData::position() const
+{
+    TX_LOG
+    return mPosition;
+}
+
+/*!
+ Stub function.
+*/
+const QString& MpPlaybackData::title() const
+{
+    TX_LOG
+    return mTitle;
+}
+
+/*!
+ Stub function.
+*/
+const QString& MpPlaybackData::album() const
+{
+    TX_LOG
+    return mAlbum;
+}
+
+/*!
+ Stub function.
+*/
+const QString& MpPlaybackData::artist() const
+{
+    TX_LOG
+    return mArtist;
+}
+
+/*!
+ Stub function.
+*/
+MpPlaybackData::SimplifiedPlaybackState MpPlaybackData::playbackState()
+{
+    TX_LOG_ARGS("mPlaybackState=" << mPlaybackState)
+    return mPlaybackState;
+}
+
+/*!
+ Stub function.
+*/
+void MpPlaybackData::setDuration( int duration )
+{
+    TX_ENTRY_ARGS( "duration =" << duration )
+    mDuration = duration;
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+void MpPlaybackData::setPosition( int position )
+{
+    TX_ENTRY_ARGS( "position =" << position )
+    mPosition = position;
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+bool MpPlaybackData::setTitle( const QString& title )
+{
+    TX_ENTRY_ARGS( "title =" << title )
+    bool change = false;
+    if ( title != mTitle ) {
+        change = true;
+        mTitle = title;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Stub function.
+*/
+bool MpPlaybackData::setAlbum( const QString& album )
+{
+    TX_ENTRY_ARGS( "album =" << album )
+    bool change = false;
+    if ( album != mAlbum ) {
+        change = true;
+        mAlbum = album;
+    }
+    TX_EXIT
+    return change;
+}
+
+/*!
+ Stub function.
+*/
+bool MpPlaybackData::setArtist( const QString& artist )
+{
+    TX_ENTRY_ARGS( "artist =" << artist )
+    bool change = false;
+    if ( artist != mArtist ) {
+        change = true;
+        mArtist = artist;
+    }
+    TX_EXIT
+    return change;
+}
+
+
+/*!
+ Stub function.
+*/
+void MpPlaybackData::setAlbumArtUri( const QString& albumArtUri)
+{
+    TX_ENTRY_ARGS( "albumArtUri =" << albumArtUri )
+    if ( !albumArtUri.isEmpty() ) {
+        if ( albumArtUri != currentAAUri ) {
+            currentAAUri = albumArtUri;
+        }
+    }
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+void MpPlaybackData::setUri( const QString& aUri)
+{
+    TX_ENTRY_ARGS( "aUri =" << aUri )
+    if ( !aUri.isEmpty() ) {
+        if ( aUri != currentUri ) {
+            currentUri = aUri;
+        }
+    }
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+void MpPlaybackData::setPlaybackState(const SimplifiedPlaybackState state )
+{
+    TX_ENTRY_ARGS( "state =" << state )
+    mPlaybackState = state;
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+void MpPlaybackData::commitPlaybackInfo()
+{
+    TX_ENTRY
+    mMediaReady = ETrue;
+    TX_EXIT
+}
+
+/*!
+ Stub function.
+*/
+void MpPlaybackData::handleMediaReady()
+{
+    mMediaReady = ETrue;
+}
+
+/*!
+Stub function.
+*/
+bool MpPlaybackData::setRealAudio( bool mode )
+{
+    if( mRealAudio != mode ) {
+        mRealAudio = mode;
+        return true;
+    }
+    else {
+       return false;
+    }
+}
+
+/*!
+Stub function.
+*/
+bool MpPlaybackData::setAlbumId( int id )
+{
+    if ( mAlbumId != id ) {
+        mAlbumId = id;
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+
+/*!
+Stub function.
+*/
+bool MpPlaybackData::setId( int id )
+{
+    if( mId != id ) {
+        mId = id;
+        return true;
+    }
+    else {
+       return false;
+    }
+}
+
+/*!
+Stub function.
+*/
+void MpPlaybackData::resetData()
+{
+    mDuration = 0;
+    mPosition = 0;
+    mTitle = QString();
+    mAlbum = QString();
+    mArtist = QString();
+    currentUri = QString();
+    mAlbumId = 0;
+    mId = 0;
+    mRealAudio = false;
+}
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/stub/src/mpxplaybackutility.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,173 @@
+/*
+* 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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
+*
+*/
+
+#include <Qt>
+#include <mpxcollectionplaylist.h>
+#include <mptrace.h>
+
+#include "stub/inc/mpxplaybackutility.h"
+
+/*!
+ Stub function.
+*/
+MMPXPlaybackUtility::MMPXPlaybackUtility():iProperty(EPbPropertyVolume),
+                                           iObs(0),
+                                           iValue(0),
+                                           iComandData(0),
+                                           iState(EPbStateNotInitialised),
+                                           iAttrs(0),
+                                           iCMPXCmd(0),
+                                           iInitialized(false),
+                                           iReturnSource(true)
+{
+}
+
+/*!
+ Stub function.
+*/
+MMPXPlaybackUtility::~MMPXPlaybackUtility()
+{
+}
+
+/*!
+ Stub function.
+ */
+MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& aModeId)
+{
+    Q_UNUSED(aModeId);
+    static MMPXPlaybackUtility playbackUtilility;
+    return &playbackUtilility;
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::AddObserverL(MMPXPlaybackObserver& aObs)
+{
+    iObs = &aObs;
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::RemoveObserverL(MMPXPlaybackObserver& aObs)
+{
+   if(iObs == &aObs){
+       iObs = 0;
+   }   
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::Close()
+{
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand aCmd,TInt aData)
+{
+    iComandData = aData;
+    iCmd = aCmd;
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback)
+{
+    Q_UNUSED(aCallback);
+    if(iCMPXCmd){
+        delete iCMPXCmd;
+        iCMPXCmd = 0;
+    }
+    iCMPXCmd = CMPXCommand::NewL(aCmd);
+}
+
+/*!
+ Stub function.
+*/
+MMPXSource* MMPXPlaybackUtility::Source()
+{
+    if (iReturnSource) {
+        return this;
+    }
+    else {
+        return NULL;
+    }
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::SetL(TMPXPlaybackProperty aProperty, TInt aValue)
+{
+    iProperty = aProperty;
+    iValue = aValue;
+}
+
+/*!
+ Stub function.
+*/
+TMPXPlaybackState MMPXPlaybackUtility::StateL() const
+{
+    return iState;
+}
+
+/*!
+ Stub function.
+*/
+CMPXCollectionPlaylist* MMPXPlaybackUtility::PlaylistL()
+{
+    CMPXCollectionPlaylist* temp = CMPXCollectionPlaylist::NewL();
+    return temp;
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::MediaL(const TArray<TMPXAttribute>& aAttrs,
+                    MMPXPlaybackCallback& aCallback)
+{
+    Q_UNUSED(aCallback);
+    RArray<TMPXAttribute> attrs;
+    CleanupClosePushL(attrs);
+    for(TInt i = 0; i < aAttrs.Count(); i++){
+        attrs.AppendL(aAttrs[i]);
+    }
+    iAttrs = new RArray<TMPXAttribute>(attrs);
+    CleanupStack::PopAndDestroy(&attrs);
+   
+}
+
+void MMPXPlaybackUtility::InitL(const TDesC& aUri,const TDesC8* aType)
+{
+    Q_UNUSED(aType);
+    if ( aUri.Length() )
+    {
+        iInitialized = true;
+    }
+}
+
+void MMPXPlaybackUtility::InitL(RFile& aShareableFile)
+{
+    Q_UNUSED(aShareableFile)
+    iInitialized = true;
+}
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/unittest_mpmpxplaybackframeworkwrapper.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,56 @@
+#
+# 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: Unit test for mpmpxplaybackframeworkwrapper
+#
+
+TEMPLATE = app
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpmpxplaybackframeworkwrapper
+TARGET.CAPABILITY = All -TCB
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+    ../../inc \
+    ../../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+symbian:
+{
+    TARGET.EPOCALLOWDLLDATA = 1
+    
+    BLD_INF_RULES.prj_exports += \
+        "resources/nullsound.mp3 /epoc32/release/winscw/udeb/Z/system/data/nullsound.mp3" \
+        "resources/nullsound.mp3 /epoc32/release/winscw/urel/Z/system/data/nullsound.mp3" \
+        "resources/nullsound.mp3 /epoc32/data/Z/system/data/nullsound.mp3"
+}
+
+LIBS += -lestor.dll \
+    -lfbscli.dll \
+    -lmpxcommon.dll \
+    -lmpxcollectionutility.dll \
+    -lxqserviceutil
+
+HEADERS += inc/unittest_mpmpxplaybackframeworkwrapper.h \
+    ../../inc/mpmpxplaybackframeworkwrapper.h \
+    ../../inc/mpmpxplaybackframeworkwrapper_p.h \
+    stub/inc/mpplaybackdata.h \
+    stub/inc/mpxplaybackutility.h \
+    stub/inc/hbglobal.h \
+    ../../../mpserviceplugins/inc/mpxaudioeffectengine.h
+
+SOURCES += src/unittest_mpmpxplaybackframeworkwrapper.cpp \
+    ../../src/mpmpxplaybackframeworkwrapper.cpp \
+    stub/src/mpplaybackdata.cpp \
+    stub/src/mpxplaybackutility.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpsongscanner/inc/unittest_mpsongscanner.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* 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: Unit test for MpSongScanner
+*
+*/
+
+#ifndef TESTMPSONGSCANNER_H
+#define TESTMPSONGSCANNER_H
+
+#include <QtTest/QtTest>
+
+class MpSongScanner;
+class MpMpxHarvesterFrameworkWrapper;
+
+class TestMpSongScanner : public QObject
+{
+    Q_OBJECT
+
+public:
+    TestMpSongScanner();
+    virtual ~TestMpSongScanner();
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+    void testConstructor();
+    void testScan();
+    void testIsAutomaticScan();
+    void testCancelScan();
+    void testScanStartedSignal();
+    void testHandleScanEnded();
+    void testScanCountChangedSignal();
+    void testHandleDiskEvent();
+
+private:
+    MpSongScanner  *mTest;
+    MpMpxHarvesterFrameworkWrapper *mHarvesterWrapper;
+
+};
+
+#endif  // TESTMPSONGSCANNER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpsongscanner/src/unittest_mpsongscanner.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,265 @@
+/*
+* 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: Unit test for MpSongScanner
+*
+*/
+
+#include <QSignalSpy>
+
+#include "stub/inc/mpmpxharvesterframeworkwrapper.h"
+#include "unittest_mpsongscanner.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#define protected public
+#include "mpsongscanner.h"
+#undef protected
+#undef private
+
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    TestMpSongScanner tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpsongscanner.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+
+TestMpSongScanner::TestMpSongScanner()
+    : mTest( 0 ),
+      mHarvesterWrapper( 0 )
+{
+}
+
+TestMpSongScanner::~TestMpSongScanner()
+{
+    delete mTest;
+    delete mHarvesterWrapper;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpSongScanner::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpSongScanner::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpSongScanner::init()
+{
+    qRegisterMetaType<MpxDiskEvents>("MpxDiskEvents");
+    mHarvesterWrapper = new MpMpxHarvesterFrameworkWrapper();
+    mTest = new MpSongScanner( mHarvesterWrapper );
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpSongScanner::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+    delete mHarvesterWrapper;
+    mHarvesterWrapper = 0;
+}
+
+/*!
+ Tests constructor.
+*/
+void TestMpSongScanner::testConstructor()
+{
+    QVERIFY( mTest->mMpxHarvesterWrapper );
+    QVERIFY( !mTest->mScanning );
+    QVERIFY( mTest->mAutomaticScan );
+}
+
+/*!
+ testScan.
+ */
+void TestMpSongScanner::testScan()
+{
+    // Manual Scan
+    mTest->scan( false );
+    QVERIFY( mTest->mScanning );
+    QVERIFY( !mTest->mAutomaticScan );
+    QVERIFY( mTest->mMpxHarvesterWrapper->mScanRequested );
+
+    // Automatic Scan
+    cleanup();
+    init();
+    mTest->scan( true );
+    QVERIFY( mTest->mScanning );
+    QVERIFY( mTest->mAutomaticScan );
+    QVERIFY( mTest->mMpxHarvesterWrapper->mScanRequested );
+}
+
+/*!
+ testIsAutomaticScan.
+ */
+void TestMpSongScanner::testIsAutomaticScan()
+{
+    mTest->mAutomaticScan = true;
+    QVERIFY( mTest->isAutomaticScan() );
+    mTest->mAutomaticScan = false;
+    QVERIFY( !mTest->isAutomaticScan() );
+}
+
+/*!
+ testCancelScan
+ */
+void TestMpSongScanner::testCancelScan( )
+{
+    mTest->scan( true );
+    mTest->cancelScan();
+    QVERIFY( !mTest->mScanning );
+    QVERIFY( !mTest->mMpxHarvesterWrapper->mScanRequested );
+}
+
+/*!
+ testScanStartedSignal
+ */
+void TestMpSongScanner::testScanStartedSignal( )
+{
+    QSignalSpy spy( mTest, SIGNAL( scanStarted() ) );
+    mTest->scan( true );
+    mTest->mMpxHarvesterWrapper->emitScanStarted();
+    QTest::qWait(500);
+    QCOMPARE( spy.count(), 1 );
+}
+
+/*!
+ testHandleScanEnded
+ */
+void TestMpSongScanner::testHandleScanEnded( )
+{
+    int itemsAdded( -1 );
+    int error( KErrNone );
+
+    // Scand endend with error KErrDiskFull 1/4
+    {
+    QSignalSpy spyScanFinished( mTest, SIGNAL( scanFinished( int, int ) ) );
+    itemsAdded = 10;
+    error = KErrDiskFull;
+    mTest->scan( true );
+    mTest->mMpxHarvesterWrapper->emitScanEnded( itemsAdded, error );
+    QTest::qWait(500);
+    QCOMPARE( spyScanFinished.count(), 1 );
+    QCOMPARE( spyScanFinished.at(0).at(0), QVariant( MpSongScanner::ScanErrorDiskFull ) );
+    QCOMPARE( spyScanFinished.at(0).at(1), QVariant( 0 ) );
+    QVERIFY( !mTest->mScanning );
+    }
+
+    // Any other error 2/4
+    {
+    cleanup();
+    init();
+    QSignalSpy spyScanFinished( mTest, SIGNAL( scanFinished( int, int ) ) );
+    itemsAdded = 10;
+    error = KErrUnknown;
+    mTest->scan( true );
+    mTest->mMpxHarvesterWrapper->emitScanEnded( itemsAdded, error );
+    QTest::qWait(500);
+    QCOMPARE( spyScanFinished.count(), 1 );
+    QCOMPARE( spyScanFinished.at(0).at(0), QVariant( MpSongScanner::ScanGeneralError ) );
+    QCOMPARE( spyScanFinished.at(0).at(1), QVariant( itemsAdded ) );
+    QVERIFY( !mTest->mScanning );
+    }
+
+    // Normal scan finish (No error, no cancel) 3/4
+    {
+    cleanup();
+    init();
+    QSignalSpy spyScanFinished( mTest, SIGNAL( scanFinished( int, int ) ) );
+    itemsAdded = 20;
+    error = KErrNone;
+    mTest->scan( true );
+    mTest->mMpxHarvesterWrapper->emitScanEnded( itemsAdded, error );
+    QTest::qWait(500);
+    QCOMPARE( spyScanFinished.count(), 1 );
+    QCOMPARE( spyScanFinished.at(0).at(0), QVariant( MpSongScanner::ScanErrorNone ) );
+    QCOMPARE( spyScanFinished.at(0).at(1), QVariant( itemsAdded ) );
+    QVERIFY( !mTest->mScanning );
+    }
+
+    // Scan canceled 4/4
+    {
+    cleanup();
+    init();
+    QSignalSpy spyScanFinished( mTest, SIGNAL( scanFinished( int, int ) ) );
+    itemsAdded = 20;
+    error = KErrNone;
+    mTest->scan( true );
+    mTest->cancelScan();
+    mTest->mMpxHarvesterWrapper->emitScanEnded( itemsAdded, error );
+    QTest::qWait(500);
+    QCOMPARE( spyScanFinished.count(), 1 );
+    QCOMPARE( spyScanFinished.at(0).at(0), QVariant( MpSongScanner::ScanGeneralError ) );
+    QCOMPARE( spyScanFinished.at(0).at(1), QVariant( itemsAdded ) );
+    QVERIFY( !mTest->mScanning );
+    }
+}
+
+/*!
+ testScanCountChangedSignal
+ */
+void TestMpSongScanner::testScanCountChangedSignal()
+{
+    int itemsAdded = 15;
+    QSignalSpy spy( mTest, SIGNAL( scanCountChanged( int ) ) );
+    mTest->scan( true );
+    mTest->mMpxHarvesterWrapper->emitScanCountChanged( itemsAdded );
+    QTest::qWait(500);
+    QCOMPARE( spy.count(), 1 );
+    QCOMPARE( spy.at(0).at(0), QVariant( itemsAdded ) );
+}
+
+/*!
+ testHandleDiskEvent
+ */
+void TestMpSongScanner::testHandleDiskEvent()
+{
+    QSignalSpy spyScanFinished( mTest, SIGNAL( scanFinished( int, int ) ) );
+    mTest->scan( true );
+    mTest->mMpxHarvesterWrapper->emitDiskEvent();
+    QTest::qWait(500);
+    QCOMPARE( spyScanFinished.count(), 1 );
+    QCOMPARE( spyScanFinished.at(0).at(0), QVariant( MpSongScanner::ScanInterrupted ) );
+    QCOMPARE( spyScanFinished.at(0).at(1), QVariant( 0 ) );
+    QVERIFY( !mTest->mScanning );
+}
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpsongscanner/stub/inc/mpmpxharvesterframeworkwrapper.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* 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 class for mpsongscanner unittest.
+*
+*/
+
+#ifndef MPMPXHARVESTERFRAMEWORKWRAPPER_H
+#define MPMPXHARVESTERFRAMEWORKWRAPPER_H
+
+#include <QObject>
+
+#include "mpmpxcommondefs.h"
+
+class MpMpxHarvesterFrameworkWrapper : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit MpMpxHarvesterFrameworkWrapper( QObject *parent=0 );
+    virtual ~MpMpxHarvesterFrameworkWrapper();
+
+    // mock functions
+    void scan();
+    void cancelScan();
+    void checkForSystemEvents();
+
+    // unittest specific functions
+    void emitScanStarted();
+    void emitScanEnded( int count, int error );
+    void emitScanCountChanged( int count );
+    void emitDiskEvent();
+
+signals:
+    void scanStarted();
+    void scanEnded( int count, int error );
+    void scanCountChanged( int count );
+
+    void diskEvent( MpxDiskEvents event );
+
+public:
+    bool     mScanRequested;
+    bool     mScanning;
+    int      mScanCount;
+    bool     mCheckSystemEventsRequested;
+
+};
+
+#endif // MPMPXHARVESTERFRAMEWORKWRAPPER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpsongscanner/stub/src/mpmpxharvesterframeworkwrapper.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,95 @@
+/*
+* 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 class for mpsongscanner unittest.
+*
+*/
+
+#include "stub/inc/mpmpxharvesterframeworkwrapper.h"
+
+/*!
+ Stub function.
+ */
+MpMpxHarvesterFrameworkWrapper::MpMpxHarvesterFrameworkWrapper( QObject *parent )
+    : QObject( parent ),
+      mScanRequested( false ),
+      mScanning( false ),
+      mScanCount( -1 ),
+      mCheckSystemEventsRequested( false )
+{
+}
+
+/*!
+ Stub function.
+ */
+MpMpxHarvesterFrameworkWrapper::~MpMpxHarvesterFrameworkWrapper()
+{
+}
+
+/*!
+ Stub function.
+ */
+void MpMpxHarvesterFrameworkWrapper::scan()
+{
+    mScanRequested = true;
+}
+
+/*!
+ Stub function.
+ */
+void MpMpxHarvesterFrameworkWrapper::cancelScan()
+{
+    mScanRequested = false;
+}
+
+/*!
+ Stub function.
+ */
+void MpMpxHarvesterFrameworkWrapper::checkForSystemEvents()
+{
+    mCheckSystemEventsRequested = true;
+}
+
+/*!
+ Stub function.
+ */
+void MpMpxHarvesterFrameworkWrapper::emitScanStarted()
+{
+    mScanning = true;
+    emit scanStarted();
+}
+
+/*!
+ Stub function.
+ */
+void MpMpxHarvesterFrameworkWrapper::emitScanEnded( int count, int error )
+{
+    mScanning = false;
+    emit scanEnded( count, error );
+}
+
+/*!
+ Stub function.
+ */
+void MpMpxHarvesterFrameworkWrapper::emitScanCountChanged( int count )
+{
+    emit scanCountChanged( count );
+}
+
+/*!
+ Stub function.
+ */
+void MpMpxHarvesterFrameworkWrapper::emitDiskEvent()
+{
+    emit diskEvent( DiskInserted );
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpsongscanner/unittest_mpsongscanner.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,42 @@
+#
+# 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
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpsongscanner
+TARGET.CAPABILITY = CAP_APPLICATION
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+               ../../inc \
+               ../../../inc
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lestor.dll \
+        -lfbscli.dll
+
+HEADERS += inc/unittest_mpsongscanner.h \
+           ../../../inc/mpsongscanner.h \
+           stub/inc/mpmpxharvesterframeworkwrapper.h
+
+SOURCES += src/unittest_mpsongscanner.cpp \
+           ../../src/mpsongscanner.cpp \
+           stub/src/mpmpxharvesterframeworkwrapper.cpp
+
+DEFINES += BUILD_MPENGINE_LIB
+
--- a/mpserviceplugins/audioeffects/src/mpxaudioeffectengine.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/audioeffects/src/mpxaudioeffectengine.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -109,9 +109,20 @@
     iProp->LoadFromFileL();
     if(iMdaPlayer)
         {
-        if(iMdaPlayer->SetBalance(iProp->Balance())!=KErrNone)
+        TInt currentBalance;    
+        TInt err = iMdaPlayer->GetBalance(currentBalance);
+        if( err !=KErrNone )
+            {   
+            User::Leave(KErrNotSupported);    
+            }        
+        // don't set non-changed values:   
+        if( iProp->Balance() != currentBalance )
             {
-            User::Leave(KErrNotSupported);
+            err = iMdaPlayer->SetBalance(iProp->Balance());
+            if( err !=KErrNone )
+                {
+                User::Leave(KErrNotSupported);    
+                }            
             }
         } 
     }
@@ -219,14 +230,18 @@
                 }
             }
 
-        iStereoEffect->EnableL();
-        TUint8 level = 30;
-        iStereoEffect->SetStereoWideningLevelL( level );
-        iStereoEffect->ApplyL();
+        if ( !iStereoEffect->IsEnabled() )
+            {
+            iStereoEffect->EnableL();
+            TUint8 level = 30;
+            iStereoEffect->SetStereoWideningLevelL( level );
+            iStereoEffect->ApplyL();                
+            }
+
         }
     else
         {
-        if (iStereoEffect)   // If audio effects was not on, then no need to disable
+        if (iStereoEffect && iStereoEffect->IsEnabled() )   // If audio effects was not on, then no need to disable
             { 
             iStereoEffect->DisableL();
             }
@@ -295,12 +310,15 @@
                 }
             } 
             
-        iLoudnessEffect->EnableL();
+        if( !iLoudnessEffect->IsEnabled() )
+            {   
+            iLoudnessEffect->EnableL();    
+            }
         }
     else
-        {
-        if( iLoudnessEffect )   // Only disable if it was constructed
-            {
+        { 
+        if( iLoudnessEffect && iLoudnessEffect->IsEnabled() )
+            {       
             iLoudnessEffect->DisableL();
             }
         }
--- a/mpserviceplugins/inc/mpxdbcommondef.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/inc/mpxdbcommondef.h	Thu Jul 22 16:32:33 2010 +0100
@@ -34,6 +34,10 @@
 _LIT(KMCAndKeyword," AND ");
 _LIT(KMCOrKeyword, " OR ");
 
+// QT localization TS file
+_LIT(KMPXMusicPlayerTsFile, "musicplayer_");
+_LIT(KMPXMusicPlayerTsPath, "z:/resource/qt/translations/");
+
 #endif // MPXDBCOMMONDEF_H
 
 //End of File
--- a/mpserviceplugins/localaudio/inc/mpxlocalaudioplayback.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/localaudio/inc/mpxlocalaudioplayback.h	Thu Jul 22 16:32:33 2010 +0100
@@ -180,14 +180,16 @@
         /**
         * Sets the volume level in audio controller
         * @param aVolume Volume level, ranges from 0 - KPbPlaybackVolumeLevelMax
+        * @param aNotifyChange ETrue if EPVolumeChanged must be sent to observer
         */
-        void SetVolume( TInt aVolume );
+        void SetVolume( TInt aVolume, TBool aNotifyChange = ETrue );
 
         /**
         * Sets the volume level in audio controller to mute.
         * @param aMute ETrue to indicated mute
+        * @param aNotifyChange ETrue if EPMuteChanged must be sent to observer 
         */
-        void SetMute( TBool aMute );
+        void SetMute( TBool aMute, TBool aNotifyChange = ETrue );
 
         /**
         *  Consumes the rights for the current media according
--- a/mpserviceplugins/localaudio/src/mpxlocalaudioplayback.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/localaudio/src/mpxlocalaudioplayback.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -433,14 +433,19 @@
             {
             // Re-init audio effects
             MPX_DEBUG1("CMPXLocalAudioPlayback::CommandL EPbApplyEffect");
-            iAudioEffects->DestroyAudioEffect();
             if( ( aData == KAudioEffectsID || aData == KEqualizerID ) &&
                 ( EStateInitialised == iState ) )
                 {
+                // Here we rely on CreateAudioEffectsL() to be safe to be called 
+                // in order to just set values again     
                 TRAPD(err, iAudioEffects->CreateAudioEffectsL() );
                 if(err)
                     {
                     MPX_DEBUG2("EPbApplyEffect err = %d", err);
+                    // Sometimes we get KErrAccessDenied, then destroying effects
+                    // and setting them again should help. This is a work-around, 
+                    // and would be good to be fixed more properly.   
+                    iAudioEffects->DestroyAudioEffect(); 
                     TRAPD(err, iAudioEffects->CreateAudioEffectsL() );
                     if(err)
                         {
@@ -493,14 +498,14 @@
         {
         case EPbPropertyVolume:
             {
-            SetVolume( aValue );
+            SetVolume( aValue, EFalse ); // don't notify MPX because playback engine converts EPSetComplete to EPropertyChanged
             break;
             }
         case EPbPropertyVolumeRamp:
             iPlayer->SetVolumeRamp(TTimeIntervalMicroSeconds(TInt64(aValue)));
             break;
         case EPbPropertyMute:
-            SetMute( aValue );
+            SetMute( aValue, EFalse ); // don't notify MPX because playback engine converts EPSetComplete to EPropertyChanged
             break;
         case EPbPropertyBalance:
             iPlayer->SetBalance(MMFBalance(aValue));
@@ -1108,7 +1113,7 @@
 // Sets the volume level in audio controller
 // ----------------------------------------------------------------------------
 //
-void CMPXLocalAudioPlayback::SetVolume( TInt aVolume )
+void CMPXLocalAudioPlayback::SetVolume( TInt aVolume, TBool aNotifyChange )
     {
     MPX_DEBUG3("-->CMPXLocalAudioPlayback::SetVolume 0x%08x vol (%d)", this, aVolume);
 
@@ -1160,9 +1165,15 @@
                 }
             }
         }
+    else if ( volError == KErrNone && aVolume == currentVol && changed )
+        {
+        // volume changed only to player after it has been initialised, 
+        // no need to reflect this to upper layers as the stored setting haven't changed
+        changed = EFalse;
+        }
 
     // Notify observer if value changed
-    if ( changed )
+    if ( changed && aNotifyChange )
         {
         iObs->HandlePluginEvent( MMPXPlaybackPluginObserver::EPVolumeChanged,
                                  aVolume,
@@ -1176,7 +1187,7 @@
 // Sets the volume level in audio controller
 // ----------------------------------------------------------------------------
 //
-void CMPXLocalAudioPlayback::SetMute( TBool aMute )
+void CMPXLocalAudioPlayback::SetMute( TBool aMute, TBool aNotifyChange )
     {
     MPX_DEBUG3("-->CMPXLocalAudioPlayback::SetMute 0x%08x vol (%d)", this, aMute);
 
@@ -1212,10 +1223,14 @@
             {
             MPX_TRAP( muteError, iMuteWatcher->SetValueL( aMute ) );
             }
+        else if ( changed ) // Cenrep setting hasn't changed, no need to propagate to MPX
+            {
+            changed = EFalse;
+            }
         }
 
     // Notify observer if value changed
-    if ( changed )
+    if ( changed  && aNotifyChange )
         {
         iObs->HandlePluginEvent( MMPXPlaybackPluginObserver::EPMuteChanged,
                                  aMute,
--- a/mpserviceplugins/mpxsqlitedbcommon/src/mpxdbmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbcommon/src/mpxdbmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -29,7 +29,7 @@
 #include <sysutil.h>
 #ifdef __RAMDISK_PERF_ENABLE
 #include <centralrepository.h>
-#include <BAUTILS.H>  
+#include <bautils.h>  
 #endif //__RAMDISK_PERF_ENABLE
 
 #include <mpxlog.h>
@@ -271,16 +271,20 @@
             }
 
         TInt count(iDatabaseHandles.Count());
-        //TBool ret = EFalse;
         for ( TInt i = 0; i < count ; ++i )
             {
+            if ( ! iDatabaseHandles[i].iOpen )
+                {
+                MPX_DEBUG1("CMPXDbManager::CopyDBsToRamL DB not open (assuming drive is not present)");
+                continue;
+                }
             if ( iDatabaseHandles[i].iUseRAMdb )
                 {
                 // already used
                 MPX_DEBUG1("CMPXDbManager::CopyDBsToRamL iUseRAMdb already ETrue");
                 continue;
                 }
-            CloseDatabaseAtIndexL( i ); // let leave: not much we can't do if we can't close the original DB
+            CloseDatabaseAtIndexL( i ); // let leave: not much we can do if we can't close the original DB
             DoCopyDBToRam( i, aIsMTPInUse ); // copies if it can
             TRAPD( err, OpenDatabaseAtIndexL( i ) );
             if ( err != KErrNone )
@@ -863,30 +867,27 @@
     {
     MPX_FUNC("CMPXDbManager::CloseAllDatabases");
 
-    if (iInitialized)
-        {
-        // Close all prepared statements if a db is closed
-        //
-        ResetPreparedQueries();
+    // Close all prepared statements if a db is closed
+    //
+    ResetPreparedQueries();
 
-        TInt count(iDatabaseHandles.Count());
-        for (TInt i = 0; i < count; ++i)
-            {
-            delete iDatabaseHandles[i].iAliasname;
-            iDatabaseHandles[i].iAliasname = 0;
+    TInt count(iDatabaseHandles.Count());
+    for (TInt i = 0; i < count; ++i)
+        {
+        delete iDatabaseHandles[i].iAliasname;
+        iDatabaseHandles[i].iAliasname = 0;
 #ifdef __RAMDISK_PERF_ENABLE 
-            RemoveDummyFile(i);            	
-            delete iDatabaseHandles[i].iOrigFullFilePath;
-			iDatabaseHandles[i].iOrigFullFilePath = 0;
-            delete iDatabaseHandles[i].iTargetFullFilePath;
-			iDatabaseHandles[i].iTargetFullFilePath = 0;
+        RemoveDummyFile(i);            	
+        delete iDatabaseHandles[i].iOrigFullFilePath;
+        iDatabaseHandles[i].iOrigFullFilePath = 0;
+        delete iDatabaseHandles[i].iTargetFullFilePath;
+        iDatabaseHandles[i].iTargetFullFilePath = 0;
 #endif //__RAMDISK_PERF_ENABLE 
-            }
+        }
 
-        iDatabaseHandles.Reset();
-        iDatabase.Close();
-        iInitialized = EFalse;
-        }
+    iDatabaseHandles.Reset();
+    iDatabase.Close();
+    iInitialized = EFalse;
     }
 
 // ----------------------------------------------------------------------------
@@ -1728,6 +1729,16 @@
     }
 
 // ----------------------------------------------------------------------------
+// CleanupTransaction: close transaction when creating DB
+// ----------------------------------------------------------------------------
+//
+static void CleanupTransaction(TAny * aDatabase)
+    {
+    TInt err = ((RSqlDatabase*)aDatabase)->Exec(KRollbackTransaction);
+    MPX_DEBUG2("CMPXDbManager CleanupTransaction rollback, error %d", err);
+    }
+    
+// ----------------------------------------------------------------------------
 // CMPXDbManager::CreateTablesL
 // ----------------------------------------------------------------------------
 //
@@ -1735,11 +1746,26 @@
 	RSqlDatabase& aDatabase,
 	TBool aCorrupt)
 	{
+	MPX_FUNC("CMPXDbManager::CreateTablesL");
+    TInt err = aDatabase.Exec(KBeginTransaction);
+    if (err < 0)
+       {
+       MPX_DEBUG2("SQL BEGIN TRANSACTION error %d", err);
+       User::Leave (err);
+       }
+    CleanupStack::PushL(TCleanupItem(&CleanupTransaction, &aDatabase));
     TInt count(iTables.Count());
     for (TInt i = 0; i < count; ++i)
         {
         iTables[i]->CreateTableL(aDatabase, aCorrupt);
         }
+    err = aDatabase.Exec(KCommitTransaction);
+    if (err < 0)
+        {
+        MPX_DEBUG2("SQL COMMIT TRANSACTION error %d", err);
+        User::Leave (err);
+        }
+    CleanupStack::Pop();
 	}
 
 // ----------------------------------------------------------------------------
@@ -2019,12 +2045,7 @@
         User::Leave(KErrNotReady);
         }
     
-#ifndef __RAMDISK_PERF_ENABLE 
-    
     EnsureDiskSpaceL(aDrive);
-    
-#endif //__RAMDISK_PERF_ENABLE
-
     }
     
 // ----------------------------------------------------------------------------
@@ -2864,19 +2885,24 @@
     TInt count(iDatabaseHandles.Count());
     for (TInt i = 0; i < count; ++i)
         {
+        DatabaseHandle& database = iDatabaseHandles[i];
         if (((KDbManagerAllDrives == aDrive) ||
-            (aDrive == iDatabaseHandles[i].iDrive)) &&
-            iDatabaseHandles[i].iOpen)
+            (aDrive == database.iDrive)) &&
+            database.iOpen
+#ifdef __RAMDISK_PERF_ENABLE
+            && !database.iUseRAMdb
+#endif
+            )
             {
             if (SysUtil::DiskSpaceBelowCriticalLevelL(&iFs, 0,
-                iDatabaseHandles[i].iDrive))
+                database.iDrive))
                 {
                 MPX_DEBUG1("CMPXDbManager::EnsureDiskSpaceL Error diskspace full");
                 User::Leave(KErrDiskFull);
                 }
             }
 
-        if (aDrive == iDatabaseHandles[i].iDrive)
+        if (aDrive == database.iDrive)
             {
             // exit if just one drive to check
             break;
--- a/mpserviceplugins/mpxsqlitedbhgplugin/group/mpxsqlitedbhgplugin.mmp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/group/mpxsqlitedbhgplugin.mmp	Thu Jul 22 16:32:33 2010 +0100
@@ -82,6 +82,7 @@
 APP_LAYER_SYSTEMINCLUDE
 SYSTEMINCLUDE   /epoc32/include/ecom
 SYSTEMINCLUDE   /epoc32/include/mmf/common
+SYSTEMINCLUDE   /epoc32/include/mw/hb/hbcore
 
 LIBRARY         euser.lib
 LIBRARY         ecom.lib
@@ -91,6 +92,7 @@
 LIBRARY         bafl.lib
 LIBRARY         apmime.lib
 LIBRARY         sysutil.lib
+LIBRARY         hbcore.lib
 #ifdef __MTP_PROTOCOL_SUPPORT
 LIBRARY         centralrepository.lib
 #endif
--- a/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxcollectiondb.hrh	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxcollectiondb.hrh	Thu Jul 22 16:32:33 2010 +0100
@@ -32,7 +32,8 @@
 #endif    
     EBrowseGenre,
     EBrowseComposer,        
-    EBrowseAlbumSong //added for ganes
+    EBrowseAlbumSong, //added for ganes
+    EBrowseAlbumMediaWall //added for mediawall
     };
 
 #endif      // MPXCOLLECTIONDB_HRH
--- a/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxcollectiondbdef.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxcollectiondbdef.h	Thu Jul 22 16:32:33 2010 +0100
@@ -28,9 +28,11 @@
 
 // Db filename
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
-_LIT(KMCDbFile, "mpxv2_6.db");
+_LIT(KMCDbFile, "mpxv3_0.db");
+_LIT(KMCDbFileEMMC, "mpxv3_0i.db");
 #else 
-_LIT(KMCDbFile, "mpxv2_5.db");
+_LIT(KMCDbFile, "mpxv3_0n.db");
+_LIT(KMCDbFileEMMC, "mpxv3_0in.db");
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
 // Collection Db resource file
 _LIT(KMPXCollectionDbResourceFile,  "mpxcollectiondbhgres.rsc");
@@ -133,6 +135,8 @@
 _LIT(KMCPlaylistSongInfoVolumeId,   "VolumeId");
 _LIT(KMCPlaylistSongInfoDbFlag,     "DbFlag");
 
+// == Album TABLE FIELDS ==============================================
+_LIT(KMCAlbumArtistName, "ArtistName");
 // == Auxiliary TABLE FIELDS ==================================================
 // Version of database
 // The version integer looks like:
--- a/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbabstractalbum.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbabstractalbum.h	Thu Jul 22 16:32:33 2010 +0100
@@ -156,6 +156,25 @@
         */
         void GetAllItemsWithNoSongL(RArray<TUint32>& aItemsIds);
 
+        /**
+        * Create Thumbnail Manager session.
+        * Create Thumbnail Manager session when needed: rename/delete entries in Thumbnail table.
+        */
+        void CreateTNMSessionL();
+        
+        /**
+        * Remove all abstractalbum items with no songs associated,
+        * TN entry and .alb files also removed.
+        *
+        */
+        void RemoveAbstractAlbumsWithNoSongL();
+        
+        /**
+        /* When refresh library, Remove .alb entry from AbstractAlnum table, TN table if .alb files already deleted 
+        /* from file system via file manager.
+        */
+        void AbstractAlbumCleanUpL();
+       
     private:
 
 
--- a/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbalbum.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbalbum.h	Thu Jul 22 16:32:33 2010 +0100
@@ -30,7 +30,14 @@
     {
     public:
         virtual TInt HandleIsUnknownArtistL(TUint32 aId) = 0;
-        virtual TUint32 HandleArtistForAlbumL( const TUint32 aId ) = 0;
+        virtual HBufC* HandleArtistForAlbumL( const TUint32 aId ) = 0;
+        /**
+        * HandleAlbumartForAlbumL.
+        * @param aId, The album ID.
+        * @param aArt, The albumart uri.
+        * @returns alternative albumart retrieved in the specified Album.
+        */
+        virtual HBufC* HandleAlbumartForAlbumL( const TUint32 aId, TPtrC aArt ) = 0;
     };
 /**
 * Responsible for managing all music databases
@@ -79,7 +86,7 @@
         *        into consideration when generating the unique row id
         * @return The unique id of the row added.
         */
-        TUint32 AddItemL(const TDesC& aName, TUint32 aArtist, const TDesC& aArt, TInt aDriveId, TBool& aNewRecord,
+        TUint32 AddItemL(const TDesC& aName, const TDesC& aArtistName, const TDesC& aArt, TInt aDriveId, TBool& aNewRecord,
             TBool aCaseSensitive = ETrue);
 
         /**
@@ -95,42 +102,51 @@
         *                  category was deleted
         * @param aItemExist Out parameter, ETrue if the category is not deleted after the delete,
         *        EFalse otherwise
-		* @param aArtist: The ID of the artist
+        * @param aArtist: The ID of the artist
+        * @param aArt: The albumart uri
         */
         void DecrementSongsForCategoryL(TUint32 aId, TInt aDriveId,
-            CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, const TUint32 aArtist);
+            CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, const TUint32 aArtist, const TDesC& aArt );
 
-		/**
-	* Gets the details for all category items.
-	* @param aAttrs attributes to be returned
-	* @param aMediaArray returns the requested attributes for all items
-	*/
-		void GetAllCategoryItemsL(const TArray<TMPXAttribute>& aAttrs,
-			CMPXMediaArray& aMediaArray);
+        /**
+        * Gets the details for all category items.
+        * @param aAttrs attributes to be returned
+        * @param aMediaArray returns the requested attributes for all items
+        */
+        void GetAllCategoryItemsL(const TArray<TMPXAttribute>& aAttrs,
+            CMPXMediaArray& aMediaArray);
+
+        /**
+        * Gets the details for all category items.
+        * @param aAttrs attributes to be returned
+        * @param aMediaArray returns the requested attributes for all items
+        */
+        void GetAllCategoryItemsMediaWallL(const TArray<TMPXAttribute>& aAttrs,
+            CMPXMediaArray& aMediaArray);
 
-		/**
-	* Update a category item.
-	* @param aId: The ID of the category to update
-	* @param aMedia: The media data
-	* @param aDriveId: The Drive Id the name (category) belongs
-	* @param aItemChangedMessages: if valid on return contains a updated message if the
-    *        category was updated
-	*/
-		void UpdateItemL(TUint32 aId, const CMPXMedia& aMedia, TInt aDriveId, CMPXMessageArray* aItemChangedMessages);
+        /**
+        * Update a category item.
+        * @param aId: The ID of the category to update
+        * @param aMedia: The media data
+        * @param aDriveId: The Drive Id the name (category) belongs
+        * @param aItemChangedMessages: if valid on return contains a updated message if the
+        *        category was updated
+        */
+        void UpdateItemL(TUint32 aId, const CMPXMedia& aMedia, TInt aDriveId, CMPXMessageArray* aItemChangedMessages);
 
-	public:
-		/**
-	* Get albums count for a specified artist
-	* @param aId: The ID of the artist
-	*/
-	    TInt GetAlbumsCountForArtistL(TUint32 aArtistId);
+    public:
+        /**
+        * Get albums count for a specified artist
+        * @param aId: The ID of the artist
+        */
+        TInt GetAlbumsCountForArtistL(TUint32 aArtistId);
 
-		/**
-	* Get songs count for a specified album and a specified artist
-	* @param aArtistId: The ID of the artist
-	* @param aAlbumId: The ID of the album
-	*/
-		TInt GetSongsCountInAlbumMatchingArtistL(TUint32 aArtistId, TUint32 aAlbumId);
+        /**
+        * Get songs count for a specified album and a specified artist
+        * @param aArtistId: The ID of the artist
+        * @param aAlbumId: The ID of the album
+        */
+        TInt GetSongsCountInAlbumMatchingArtistL(TUint32 aArtistId, TUint32 aAlbumId);
 
     private:
         /**
@@ -149,13 +165,25 @@
         * @param aValues values of each field of Album table
         * @return a string containing the selection criteria. The ownership is passed to the caller.
         */
-		void GenerateAlbumFieldsValuesL(const CMPXMedia& aMedia,
-			CDesCArray& aFields, CDesCArray& aValues);
+        void GenerateAlbumFieldsValuesL(const CMPXMedia& aMedia,
+            CDesCArray& aFields, CDesCArray& aValues);
 
 
-		TBool IsUnknownArtistL(TUint32 aId);
+        TBool IsUnknownArtistL(TUint32 aId);
 
-		TUint32 ArtistForAlbumL(const TUint32 aId);
+        /**
+        * Get the ArtistName of song which belongs to the specified Album.
+        * @param aId The ID of the album
+        * @returns alternative artistname retrieved in the specified Album.
+        */
+        HBufC* ArtistForAlbumL(const TUint32 aId);
+        /**
+        * Get the Albumart of song which belongs to the specified Album.
+        * @param aId The ID of the album
+        * @param aArt albumart with the song is deleted.
+        * @returns alternative albumart retrieved in the specified Album.
+        */
+        HBufC* AlbumartForAlbumL(const TUint32 aId, TPtrC aArt);
 
     private:    // from MMPXTable
 
@@ -191,11 +219,10 @@
         enum TAlbumColumns
             {
             EAlbumUniqueId = KMPXTableDefaultIndex,
+            EAlbumArtistName,
             EAlbumName,
-            EAlbumSongCount,
-            EAlbumArtist,
+            EAlbumSongCount,      
             EAlbumArt,
-            EAlbumArtistName,
             EAlbumFieldCount
             };
 
--- a/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbhandler.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbhandler.h	Thu Jul 22 16:32:33 2010 +0100
@@ -463,6 +463,14 @@
             CMPXMediaArray* aMediaArray);
 
         /**
+        * Get all the album names from the music collection database sorted by artist.
+        * @param aAttrs required attributes
+        * @param aMediaArray Array to place all the albums' required info
+        */
+        void GetAllAlbumsMediaWallL(const TArray<TMPXAttribute>& aAttrs,
+            CMPXMediaArray* aMediaArray);
+        
+        /**
         * Get all the albums that match the given artist ID sorted by name.
         * @param aArtistId ID of the artist to match
         * @param aAttrs required attributes
@@ -905,21 +913,7 @@
         void DoRemoveSongFromPlaylistL(TUint32 aPlaylistId, const TMPXItemId& aSongId,
             TInt aOrdinal, CMPXMessageArray& aItemChangedMessages);
 
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED  
-        /**
-        * Remove all abstractalbum items with no songs associated,
-        * TN and .alb files also removed.
-        *
-        */
-        void RemoveAbstractAlbumsWithNoSongL();
-        
-          /**
-        /* When refresh library, Remove .alb entry from AbstractAlnum table, TN table if .alb files deleted 
-        /* from file manager 
-        */
-        void AbstractAlbumCleanUpL();
-       
-#endif // ABSTRACTAUDIOALBUM_INCLUDED
+
 
         /**
         * Deletes all song records marked as deleted.
@@ -1044,7 +1038,7 @@
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
 
        virtual TUint32 AddCategoryItemL(TMPXGeneralCategory aCategory, const TDesC& aName,
-            TUint32 aArtist, const TDesC& aArt,
+           const TDesC& aArtistName, const TDesC& aArt,
             TInt aDrive, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist);
 
        virtual void UpdateCategoryItemL(TMPXGeneralCategory aCategory, TUint32 aCategoryId,
@@ -1082,8 +1076,21 @@
     /**
     * @see MMPXDbAlbumObserver
     */
-        virtual TBool HandleIsUnknownArtistL(TUint32 aArtistId);
-        virtual TUint32 HandleArtistForAlbumL(const TUint32 aAlbumId);
+    virtual TBool HandleIsUnknownArtistL(TUint32 aArtistId);
+    /**
+    * Get the Artistname of song which belongs to the specified Album.     
+    * @param aId, The Album ID.
+	* @returns alternative artistname retrieved in the specified Album.
+    */
+    virtual HBufC* HandleArtistForAlbumL(const TUint32 aAlbumId);
+        
+    /**
+    * Get the Albumart of song which belongs to the specified Album.     
+    * @param aId, The Album ID.
+    * @param aArt, the AlbumArt uri.
+	* @returns alternative albumart retrieved in the specified Album.
+    */
+    virtual HBufC* HandleAlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt);
 
     private:	// From MMPXDbPlaylistObserver
 	/**
--- a/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h	Thu Jul 22 16:32:33 2010 +0100
@@ -80,7 +80,7 @@
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
        // for Album and Artist table
         virtual TUint32 AddCategoryItemL(TMPXGeneralCategory aCategory, const TDesC& aName,
-            TUint32 aArtistId, const TDesC& aArt,
+            const TDesC& aArtistName, const TDesC& aArt,
             TInt aDrive, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist) = 0;
         /**
         * Called when the ID of a category item changed for a Music record, for example when
@@ -245,10 +245,11 @@
         * @param aComposerId returns the artist ID
         * @param aAbstractAlbumId returns the AbstractAlbum ID
         * @param aDriveId returns the song drive
+        * @param aArt returns the albumart uri
         * @return song URI. The ownership is transferred.
         */
         HBufC* GetSongInfoL(TUint32 aSongId, TUint32& aArtistId, TUint32& aAlbumId,
-            TUint32& aGenreId, TUint32& aComposerId, TUint32& aAbstractAlbumId, TInt& aDriveId);
+            TUint32& aGenreId, TUint32& aComposerId, TUint32& aAbstractAlbumId, TInt& aDriveId, HBufC*& aArt);
 #else 
         /**
         * Get the drive and category IDs for a specified song
@@ -258,10 +259,11 @@
         * @param aGenreId returns the artist ID
         * @param aComposerId returns the artist ID
         * @param aDriveId returns the song drive
+        * @param aArt returns the albumart uri
         * @return song URI. The ownership is transferred.
         */
         HBufC* GetSongInfoL(TUint32 aSongId, TUint32& aArtistId, TUint32& aAlbumId,
-            TUint32& aGenreId, TUint32& aComposerId, TInt& aDriveId);
+            TUint32& aGenreId, TUint32& aComposerId, TInt& aDriveId, HBufC*& aArt);
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
         /**
         * Get the song Id, title, URI, and general flags from the given song Id and/or URI
@@ -526,7 +528,16 @@
          * Get the ID of Artist which belongs to the specified Album
          * @param aId, the ID of Album
          */
-        TUint32 CMPXDbMusic::ArtistForAlbumL(const TUint32 aId);
+        TUint32 ArtistForAlbumL(const TUint32 aId);
+            
+        /**
+        * Get the Albumart of song which belongs to the specified Album
+        * @param aId, the ID of Album
+        * @param aArt, AlbumArt uri
+		* @returns alternative albumart retrieved in the specified Album.
+        */
+        HBufC* AlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt);
+        
 
         /*
         * Check the integrity of the music basic table
@@ -677,9 +688,6 @@
             const TMPXAttribute& aAttribute, TUint32 aOldId, TInt aDriveId,
             CMPXMessageArray* aItemChangedMessages, TUint32& aItemId);
 
-        TBool UpdateCategoryFieldL(TMPXGeneralCategory aCategory, const CMPXMedia& aMedia,
-          const TMPXAttribute& aAttribute, TUint32 aOldId, TInt aDriveId,
-          CMPXMessageArray* aItemChangedMessages, TUint32& aItemId, TUint32 aArtistId);
         /**
         * Checks if extra attributes are required. The "standard attribute set includes:
         * EMPXMediaGeneralId, EMPXMediaGeneralType, EMPXMediaGeneralCategory,
@@ -696,6 +704,12 @@
         *  otherwise EFalse.
         */
         TBool IsSupported(const CMPXMedia& aMedia);
+        
+        /**
+         * Query all songs from the database and add results to the 
+         * iAllSongsQueryResult cache array.
+         */
+        void ExecuteQueryAllSongsL(const TArray<TMPXAttribute>& aAttrs);
 
     private:    // from MMPXTable
 
@@ -798,6 +812,7 @@
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED 
         TBool iArtNeedUpdated;
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
+        RPointerArray<CMPXMedia> iAllSongsQueryResult;
     };
 
 #endif // MPXDBMUSIC_H
--- a/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbpluginqueries.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/inc/mpxdbpluginqueries.h	Thu Jul 22 16:32:33 2010 +0100
@@ -229,7 +229,7 @@
 #endif
 _LIT(KQuerySongsInArtistAlbum, "SELECT count(*) FROM :dbname.Music WHERE Deleted=0 AND Artist=%u AND Album=%u");
 _LIT(KQueryMusicGetArtistForAlbum, "SELECT Artist FROM :dbname.Music,:dbname.Artist WHERE Music.Deleted=0 AND Music.Artist=Artist.UniqueId AND Music.Album=%u");
-
+_LIT(KQueryMusicGetAlbumartForAlbum, "SELECT Art FROM :dbname.Music WHERE Music.Deleted=0 AND Music.Album=%u");
 // == Category table queries ==================================================
 //
 _LIT(KCategoryTablePlaceholder, "##table##");
@@ -270,9 +270,9 @@
 _LIT(KAuxiliaryDropTable,"DROP TABLE Auxiliary");
 _LIT(KAuxiliaryCheckTable, "SELECT Id,Version,TimeRefreshed,TimeSynced,Corrupt,SaveDeletedRecordCount FROM AUXILIARY");
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
-_LIT(KQueryAuxiliaryInsert, "INSERT INTO Auxiliary(Id,Version,Corrupt) VALUES(0,'6.5.0',%u)");
+_LIT(KQueryAuxiliaryInsert, "INSERT INTO Auxiliary(Id,Version,Corrupt) VALUES(0,'6.6.0',%u)");
 #else
-_LIT(KQueryAuxiliaryInsert, "INSERT INTO Auxiliary(Id,Version,Corrupt) VALUES(0,'6.4.0',%u)");
+_LIT(KQueryAuxiliaryInsert, "INSERT INTO Auxiliary(Id,Version,Corrupt) VALUES(0,'6.6.1',%u)");
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
 _LIT(KQueryAuxiliarySetTime, "UPDATE :dbname.Auxiliary SET TimeRefreshed='%S', Corrupt=0");
 _LIT(KQueryAuxiliaryGetTime, "SELECT TimeRefreshed FROM :dbname.Auxiliary");
@@ -427,18 +427,21 @@
 //
 _LIT(KAlbumCreateTable,"CREATE TABLE Album("
     L"UniqueId INTEGER PRIMARY KEY,"
+    L"ArtistName TEXT COLLATE NOCASE,"
     L"Name TEXT COLLATE NOCASE,"
     L"SongCount INTEGER,"
-    L"Artist INTEGER,"
-    L"Art TEXT)");
+	L"Art TEXT)");
 
-_LIT(KAlbumCheckTable,"SELECT UniqueId,Name,SongCount,Artist,Art FROM Album");
+_LIT(KAlbumCheckTable,"SELECT UniqueId,ArtistName,Name,SongCount,Art FROM Album");
 
-_LIT(KQueryAlbumInsert, "INSERT INTO :dbname.Album(UniqueId,Name,SongCount,Artist,Art) VALUES(%u,'%S',%u,%u,'%S')");
+_LIT(KQueryAlbumInsert, "INSERT INTO :dbname.Album(UniqueId,ArtistName,Name,SongCount,Art) VALUES(%u,'%S','%S',%u,'%S')");
 _LIT(KQueryAlbumUpdate, "UPDATE :dbname.Album SET %S WHERE UniqueId=%u");
 
 _LIT(KQueryAlbumItem, "SELECT Album.*,Artist.Name FROM :dbname.Album,:dbname.Artist WHERE Album.Artist=Artist.UniqueId AND UniqueId=%u");
-_LIT(KQueryAlbumAll, "SELECT Album.*,Artist.Name FROM :dbname.Album,:dbname.Artist WHERE Album.Artist=Artist.UniqueId ORDER BY 2");
+_LIT(KQueryAlbumAll, "SELECT Album.* FROM :dbname.Album ORDER BY Name");
+_LIT(KQueryAlbumAllMediaWall, "SELECT Album.* FROM :dbname.Album ORDER BY ArtistName");
+_LIT(KCriterionArtistName, "ArtistName='%S'");
+_LIT(KCriterionArt, "Art='%S'");
 
 // == Artist table queries ==========================================
 //
--- a/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxcollectiondbmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxcollectiondbmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -80,7 +80,26 @@
 void CMPXCollectionDbManager::ConstructL()
     {
     MPX_FUNC("CMPXCollectionDbManager::ConstructL");
-    CMPXDbManager::ConstructL(TFileName(KMCDbFile));
+    //Find out if the system has an internal drive (eMMC)
+    TBool eMMC( EFalse );
+    TDriveInfo driveInfo;  
+    if( Fs().Drive( driveInfo, EDriveE ) == KErrNone )
+    	{
+        if ( driveInfo.iDriveAtt & KDriveAttInternal )
+        	eMMC = ETrue;
+    	}
+    
+    //Use different name for Dbs if the system has an internal drive vs. MMC-only.	
+    //Since hard-coded drive letters in the Thumbnail URIs
+    //So Dbs are not interchangeable between an internal drive system and MMC-only system.
+    if ( eMMC )	
+        {
+        CMPXDbManager::ConstructL(TFileName( KMCDbFileEMMC ));
+        }
+    else
+        {
+        CMPXDbManager::ConstructL(TFileName( KMCDbFile ));
+    	}
     }
 
 // End of File
--- a/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbabstractalbum.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbabstractalbum.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -78,7 +78,8 @@
     {
     MPX_FUNC("CMPXDbAbstractAlbum::~CMPXDbAbstractAlbum");
 #ifdef RD_MPX_TNM_INTEGRATION
-    delete iTNManager;
+    if (iTNManager)
+        delete iTNManager;
 #endif //RD_MPX_TNM_INTEGRATION
     }
 
@@ -222,6 +223,81 @@
     }
 
 // ----------------------------------------------------------------------------
+// Remove abstractalbums which have no songs associated.
+// ----------------------------------------------------------------------------
+//
+void CMPXDbAbstractAlbum::RemoveAbstractAlbumsWithNoSongL()
+    {
+    MPX_FUNC("CMPXDbAbstractAlbum::RemoveAbstractAlbumsWithNoSongL");
+    
+    RArray<TUint32> iItemsIds;
+    CleanupClosePushL(iItemsIds);
+    
+    //get all abstractalbum with no songs associated.
+    GetAllItemsWithNoSongL(iItemsIds);
+    TInt count = iItemsIds.Count();
+    TInt err = KErrNone;
+    if (count)
+        {           	
+        MPX_DEBUG2("CMPXDbAbstractAlbum::RemoveAbstractAlbumsWithNoSongL, abstractalbum count[%d] ", iItemsIds.Count());
+        CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
+        CleanupStack::PushL(itemChangedMessages);
+
+        //go through each one to delete
+        for (TInt i=0; i< count; i++)
+            {
+            TRAP(err, RemoveAbstractAlbumL(iItemsIds[i], *itemChangedMessages, EFalse));
+            if (err != KErrNone)
+                {
+                MPX_DEBUG2("CMPXDbAbstractAlbum::RemoveAbstractAlbumsWithNoSongL, error happens when delete abstractalbum, err ", err);
+                }
+            }
+       CleanupStack::PopAndDestroy(itemChangedMessages);
+       }
+    CleanupStack::PopAndDestroy(&iItemsIds);
+  }
+
+// ----------------------------------------------------------------------------
+// Remove .alb entry from AbstractAlnum table, TN table if .alb files deleted 
+// from file manager when refresh library
+// ----------------------------------------------------------------------------
+//
+void CMPXDbAbstractAlbum::AbstractAlbumCleanUpL()
+    {
+    MPX_FUNC("CMPXDbAbstractAlbum::AbstractAlbumCleanUpL");
+    RArray<TMPXAttribute> attributes;
+    CleanupClosePushL(attributes);
+    attributes.AppendL(KMPXMediaGeneralUri);
+    CMPXMediaArray* mediaArray = CMPXMediaArray::NewL();
+    CleanupStack::PushL(mediaArray);
+    
+    GetAllCategoryItemsL(attributes.Array(), *mediaArray);
+
+    TInt count(mediaArray->Count());
+    if (count)
+        {      
+        CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
+        CleanupStack::PushL(itemChangedMessages);
+        for (TInt i = 0; i < count; i++)
+            {
+            CMPXMedia* element = mediaArray->AtL(i);
+            const TDesC& uri = element->ValueText(KMPXMediaGeneralUri);                                 
+
+            //check if the file exists in file system
+            if (!(BaflUtils::FileExists(iFs, uri)))
+                {
+                //generate abstractalbum UID with the Uri
+                TUint32 abstractAlbumId(MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, uri, EFalse));
+                RemoveAbstractAlbumL(abstractAlbumId, *itemChangedMessages, ETrue);             
+                }
+            }
+            CleanupStack::PopAndDestroy(itemChangedMessages);
+        }
+        CleanupStack::PopAndDestroy(mediaArray);       
+        CleanupStack::PopAndDestroy(&attributes);     
+    }
+
+// ----------------------------------------------------------------------------
 // CMPXDbAbstractAlbum::RemoveAbstractAlbumL
 // ----------------------------------------------------------------------------
 //
@@ -255,7 +331,10 @@
         const TDesC& aNewPath, TInt aPriority )
   {
   MPX_FUNC("CMPXDbAbstractAlbum::HandleTNL");
-
+  if (!iTNManager)
+      {
+      CreateTNMSessionL();
+      }
   if (aNewPath.Compare(KNullDesC)==0 && aOldPath.Compare(KNullDesC)!=0)
       {         
       // remove from thumbnail database table
@@ -263,14 +342,15 @@
       CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(
                aOldPath, KImageFileType );
       iTNManager->DeleteThumbnails( *source );
+          
       CleanupStack::PopAndDestroy( source );
       }
    else if (aNewPath.Compare(KNullDesC)!=0)
       {
       //rename thumbnail
-      MPX_DEBUG1("CMPXDbAbstractAlbum::HandleTNL, rename TN");
-      // TODO: uncomment when RenameThumbnailsL is supported.
-      //iTNManager->RenameThumbnailsL( aOldPath,  aNewPath, aPriority );
+      MPX_DEBUG1("CMPXDbAbstractAlbum::HandleTNL, rename Thumbnail entry in Thumbnail table");
+    
+      iTNManager->RenameThumbnailsL( aOldPath,  aNewPath, aPriority );  
       //after rename, reset flag
       iRenameTN = EFalse;
       }
@@ -324,13 +404,19 @@
 
     RSqlStatement recordset(GetCategoryRecordL(aId));
     CleanupClosePushL(recordset);
-
-    if (recordset.Next() != KSqlAtRow)
+    HBufC* uri = NULL;
+    if (recordset.Next() == KSqlAtRow)
+        {
+        uri = MPXDbCommonUtil::GetColumnTextL(recordset, EAbstractAlbumUri).AllocL();     
+        }
+    else
         {
-        User::LeaveIfError(KErrNotFound);
+        //entry is deleted due to garbage collection 
+        MPX_DEBUG1("CMPXDbAbstractAlbum::GetUriL, no uri, entry is deleted due to garbage collection"); 
+        TPtrC nullUri(KNullDesC);
+        uri = nullUri.AllocL();
         }
-    HBufC* uri = MPXDbCommonUtil::GetColumnTextL(recordset, EAbstractAlbumUri).AllocL();
-    CleanupStack::PopAndDestroy(&recordset);
+    CleanupStack::PopAndDestroy(&recordset);    
     return uri;
     }
 
@@ -526,6 +612,7 @@
     CMPXDbManager& aDbManager,
     TMPXGeneralCategory aCategory, RFs& aFs) :
     CMPXDbCategory(aDbManager, aCategory),
+    iTNManager(NULL),
     iFs(aFs)
     {
     MPX_FUNC("CMPXDbAbstractAlbum::CMPXDbAbstractAlbum");
@@ -540,11 +627,7 @@
     MPX_FUNC("CMPXDbAbstractAlbum::ConstructL");
 
     BaseConstructL();
-#ifdef RD_MPX_TNM_INTEGRATION
-    // Create Thumbnail Manager instance. This object is the observer.
-    iTNManager = CThumbnailManager::NewL( *this );
     iRenameTN = EFalse;
-#endif //RD_MPX_TNM_INTEGRATION
     }
 
 
@@ -567,4 +650,16 @@
         MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
     {
     }
+
+// ---------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::CreateTNMSessionL
+// Create thumbnail session
+// ---------------------------------------------------------------------------    
+void CMPXDbAbstractAlbum::CreateTNMSessionL()
+    {
+    if(!iTNManager)
+        {
+        iTNManager = CThumbnailManager::NewL( *this );
+        }
+    }
 // End of File
--- a/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbalbum.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbalbum.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -33,6 +33,9 @@
 #include "mpxdbalbum.h"
 
 // CONSTANTS
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+_LIT( KAbstractAlbumExt, ".alb" );
+#endif // ABSTRACTAUDIOALBUM_INCLUDED
 
 // ============================ MEMBER FUNCTIONS ==============================
 
@@ -109,7 +112,7 @@
 //
 TUint32 CMPXDbAlbum::AddItemL(
     const TDesC& aName,
-    TUint32 aArtist,
+    const TDesC& aArtistName,
     const TDesC& aArt,
     TInt aDriveId,
     TBool& aNewRecord,
@@ -127,11 +130,13 @@
         // insert new
         HBufC* query = PreProcessStringLC(KQueryAlbumInsert);
         HBufC* name = MPXDbCommonUtil::ProcessSingleQuotesLC(aName);
+        HBufC* artistname = MPXDbCommonUtil::ProcessSingleQuotesLC(aArtistName);
 		HBufC* art = MPXDbCommonUtil::ProcessSingleQuotesLC(aArt);
 
-        iDbManager.ExecuteQueryL(aDriveId, *query, rowId, name, 1, aArtist, art);
+        iDbManager.ExecuteQueryL(aDriveId, *query, rowId, artistname, name, 1, art); 
 
 		CleanupStack::PopAndDestroy(art);
+        CleanupStack::PopAndDestroy(artistname);
         CleanupStack::PopAndDestroy(name);
         CleanupStack::PopAndDestroy(query);
         }
@@ -151,17 +156,21 @@
 	    }
 
         // Artist
-        TUint32 artistId = recordset.ColumnInt64(EAlbumArtist);
+        TPtrC artistname(KNullDesC);
+        artistname.Set(MPXDbCommonUtil::GetColumnTextL(recordset, EAlbumArtistName));
 
         // the current one is Unknown and the new one is Not Unknown.
-        if ( IsUnknownArtistL( artistId ) && !IsUnknownArtistL( aArtist ) )
+         if ( artistname == KNullDesC  && aArtistName!= KNullDesC )
             {
-            _LIT( KFormatArtistId, "Artist=%d" );
-            HBufC* setStr = HBufC::NewLC(KFormatArtistId().Length() + KMCIntegerLen);
-            setStr->Des().Format( KFormatArtistId, aArtist );
-
+            HBufC* artistnameReplaceSingleQuote = 
+                            MPXDbCommonUtil::ProcessSingleQuotesLC( aArtistName );
+            TPtrC criteria(KCriterionArtistName);
+            HBufC* setStr = HBufC::NewLC(criteria.Length() + artistnameReplaceSingleQuote->Length()); 
+            setStr->Des().Format( KCriterionArtistName, artistnameReplaceSingleQuote );
+           
             iDbManager.ExecuteQueryL(aDriveId, KQueryAlbumUpdate, setStr, rowId);
             CleanupStack::PopAndDestroy(setStr);
+            CleanupStack::PopAndDestroy(artistnameReplaceSingleQuote);
             }
 
         // Album Art
@@ -173,9 +182,10 @@
             {
             HBufC* artReplaceSingleQuote = 
                             MPXDbCommonUtil::ProcessSingleQuotesLC( aArt );
-            _LIT( KFormatArt, "Art=\'%S\'" );
-            HBufC* setStr = HBufC::NewLC(256);
-            setStr->Des().Format( KFormatArt, artReplaceSingleQuote );
+
+            TPtrC criteria(KCriterionArt);
+            HBufC* setStr = HBufC::NewLC(criteria.Length() + artReplaceSingleQuote->Length()); 
+            setStr->Des().Format( KCriterionArt, artReplaceSingleQuote );
 
             iDbManager.ExecuteQueryL(aDriveId, KQueryAlbumUpdate, setStr, rowId);
             CleanupStack::PopAndDestroy(setStr);
@@ -202,7 +212,8 @@
     TInt aDriveId,
     CMPXMessageArray* aItemChangedMessages,
     TBool& aItemExist,
-    const TUint32 aArtist)
+    const TUint32 aArtist,
+    const TDesC& aArt)
     {
     MPX_FUNC("CMPXDbAlbum::DecrementSongsForCategoryL");
 
@@ -236,31 +247,84 @@
             User::Leave(KErrNotFound);
         }
 
-        TUint32 artistId = recordset.ColumnInt64(EAlbumArtist);
-
-        CleanupStack::PopAndDestroy(&recordset);
+        TBool itemModified = EFalse;
+        TPtrC artistname(MPXDbCommonUtil::GetColumnTextL(recordset, EAlbumArtistName));
+        TUint32 artistId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), EMPXArtist,
+	            artistname, ETrue);
 
         // the current artist is equal to deleted song's artist
         if ( artistId == aArtist )
             {
-            TUint32 newArtistId = ArtistForAlbumL(aId);
-            if ( artistId != newArtistId )
-                {
-                _LIT( KFormatArtistId, "Artist=%d" );
-                HBufC* setStr = HBufC::NewLC(KFormatArtistId().Length() + KMCIntegerLen);
-                setStr->Des().Format(KFormatArtistId, newArtistId);
+            HBufC* newArtistname = ArtistForAlbumL(aId);
+            
+            CleanupStack::PushL(newArtistname);
+            if (newArtistname && newArtistname->CompareF(artistname)!=0)
+                { 
+                HBufC* artistnameReplaceSingleQuote = MPXDbCommonUtil::ProcessSingleQuotesLC( *newArtistname );
+                TPtrC criteria(KCriterionArtistName);
+                HBufC* setStr = HBufC::NewLC(criteria.Length() + artistnameReplaceSingleQuote->Length()); 
+                setStr->Des().Format( KCriterionArtistName, artistnameReplaceSingleQuote );                    	
 
                 iDbManager.ExecuteQueryL(aDriveId, KQueryAlbumUpdate, setStr, aId);
                 CleanupStack::PopAndDestroy(setStr);
-                
-                if (aItemChangedMessages)
-                    {
-                    // add the item changed message
-                    MPXDbCommonUtil::AddItemAlbumChangedMessageL(*aItemChangedMessages, aId, EMPXItemModified,
-                        EMPXAlbum, KDBPluginUid, ETrue, 0 );  
-                    }
+                CleanupStack::PopAndDestroy(artistnameReplaceSingleQuote);
+                itemModified = ETrue;
                 }
+            CleanupStack::PopAndDestroy(newArtistname);             
+            }         
+        
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED      
+    TBool nonEmbeddedArt = EFalse;
+    if (aArt.Length()>0)
+        {
+        TParsePtrC parse(aArt);
+        TPtrC ext(parse.Ext());
+        //set flag to false, so .alb will not overwrite art field in album, artist table 
+        // when song with embedded art
+        if (ext.CompareF(KAbstractAlbumExt)== 0) 
+            {     
+            nonEmbeddedArt = ETrue;        
             }
+        }
+  if (!nonEmbeddedArt)       
+       {
+#endif // ABSTRACTAUDIOALBUM_INCLUDED
+       TPtrC art(MPXDbCommonUtil::GetColumnTextL(recordset, EAlbumArt));
+        // the current art is equal to deleted song's art      
+        if(aArt.Length()>0 && art.Length()>0 && aArt.CompareF(art) ==0 )
+            {
+            MPX_DEBUG2("AlbumArt of the Song to be deleted is [%S]", &aArt);
+            
+            //need to get alternative art in the same album to display
+            HBufC* newArt = AlbumartForAlbumL(aId, aArt);
+            CleanupStack::PushL(newArt);
+
+            //update Album table only if alternative albumart found
+            if (newArt)
+                {
+                MPX_DEBUG1("CMPXDbAlbum::DecrementSongsForCategoryL, get newArt");
+                HBufC* artReplaceSingleQuote = MPXDbCommonUtil::ProcessSingleQuotesLC( *newArt );
+                TPtrC criteria(KCriterionArt);   
+                HBufC* setStr = HBufC::NewLC(criteria.Length() + artReplaceSingleQuote->Length()); 
+                setStr->Des().Format( KCriterionArt, artReplaceSingleQuote );
+
+                iDbManager.ExecuteQueryL(aDriveId, KQueryAlbumUpdate, setStr, aId);
+                CleanupStack::PopAndDestroy(setStr);
+                CleanupStack::PopAndDestroy(artReplaceSingleQuote);
+                itemModified = ETrue;                     
+                }
+           CleanupStack::PopAndDestroy(newArt);             
+           }
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED            
+         }
+#endif // ABSTRACTAUDIOALBUM_INCLUDED
+        if (aItemChangedMessages && itemModified)
+           {
+           // add the item changed message
+           MPXDbCommonUtil::AddItemAlbumChangedMessageL(*aItemChangedMessages, aId, EMPXItemModified,
+                      EMPXAlbum, KDBPluginUid, ETrue, 0 );
+           }
+        CleanupStack::PopAndDestroy(&recordset);
         
         // decrement the number of songs for the category
         query = PreProcessStringLC(KQueryCategoryDecrementSongCount);
@@ -289,6 +353,24 @@
     }
 
 // ----------------------------------------------------------------------------
+// CMPXDbAlbum::GetAllCategoryItemsMediaWallL
+// ----------------------------------------------------------------------------
+//
+void CMPXDbAlbum::GetAllCategoryItemsMediaWallL(
+    const TArray<TMPXAttribute>& aAttrs,
+    CMPXMediaArray& aMediaArray)
+    {
+    MPX_FUNC("CMPXDbAlbum::GetAllCategoryItemsL");
+
+    HBufC* query = PreProcessStringLC(KQueryAlbumAllMediaWall);
+    RSqlStatement recordset(iDbManager.ExecuteSelectQueryL(*query));
+    CleanupStack::PopAndDestroy(query);
+
+    CleanupClosePushL(recordset);
+    ProcessRecordsetL(aAttrs, recordset, aMediaArray);
+    CleanupStack::PopAndDestroy(&recordset);
+    }
+// ----------------------------------------------------------------------------
 // CMPXDbAlbum::UpdateItemL
 // ----------------------------------------------------------------------------
 //
@@ -485,9 +567,7 @@
 	if (aMedia.IsSupported(KMPXMediaMusicArtist))
 	    {
 	    const TDesC& artistName = aMedia.ValueText(KMPXMediaMusicArtist).Left(KMCMaxTextLen);
-	    TUint32 artistId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), EMPXArtist,
-	            artistName, ETrue);
-	    MPXDbCommonUtil::AppendValueL(aFields, aValues, KMCMusicArtist, artistId);
+	    MPXDbCommonUtil::AppendValueL(aFields, aValues, KMCAlbumArtistName, artistName);
 	    }
 	}
 
@@ -504,12 +584,21 @@
 // CMPXDbAlbum::ArtistForAlbumL
 // ----------------------------------------------------------------------------
 //
-TUint32 CMPXDbAlbum::ArtistForAlbumL(const TUint32 aId)
+HBufC* CMPXDbAlbum::ArtistForAlbumL(const TUint32 aId)
     {
     return iObserver.HandleArtistForAlbumL(aId);
     }
 
 // ----------------------------------------------------------------------------
+// CMPXDbAlbum::AlbumartForAlbumL
+// ----------------------------------------------------------------------------
+//
+HBufC* CMPXDbAlbum::AlbumartForAlbumL(const TUint32 aId, TPtrC aArt)
+    {
+    return iObserver.HandleAlbumartForAlbumL(aId, aArt);
+    }
+
+// ----------------------------------------------------------------------------
 // CMPXDbAlbum::CreateTableL
 // ----------------------------------------------------------------------------
 //
--- a/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbautoplaylist.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbautoplaylist.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -20,6 +20,7 @@
 #include <mpxlog.h>
 #include <mpxcollectiondbhgres.rsg>
 #include <sqldb.h>
+#include <hbtextresolversymbian.h>
 
 #include "mpxresource.h"
 #include "mpxdbcommonutil.h"
@@ -28,17 +29,13 @@
 #include "mpxcollectiondbdef.h"
 #include "mpxdbautoplaylist.h"
 #include "mpxdbpluginqueries.h"
+#include "mpxdbcommondef.h"
 
 const TInt KMPXTableDefaultIndex = 0;
 const TInt32 KMPXRecentlyPlayedPlaylistId = 0x20000000;
 const TInt32 KMPXMostPlayedPlaylistId = 0x20000001;
 const TInt32 KMPXRecentlyAddedPlaylistId = 0x20000002;
 
-const TInt KPlaylistTitleSize = 32;
-_LIT( KMostPlayed, "Most played" );
-_LIT( KRecentlyPlayed, "Recently played" );
-_LIT( KRecentlyAdded, "Recently added" );
-
 
 // ============================ MEMBER FUNCTIONS ==============================
 
@@ -107,12 +104,26 @@
     CMPXResource& /*aResource*/)
     {
     MPX_FUNC("CMPXDbAutoPlaylist::ConstructL");
-    iRecentlyPlayedPlaylist = HBufC::NewL(KPlaylistTitleSize);
-    iRecentlyPlayedPlaylist->Des().Append(KMostPlayed);
-    iMostPlayedPlaylist = HBufC::NewL(KPlaylistTitleSize);
-    iMostPlayedPlaylist->Des().Append(KRecentlyPlayed);
-    iRecentlyAddedPlaylist = HBufC::NewL(KPlaylistTitleSize);
-    iRecentlyAddedPlaylist->Des().Append(KRecentlyAdded);
+
+    // Localization using QT
+    TBool result = HbTextResolverSymbian::Init(KMPXMusicPlayerTsFile, KMPXMusicPlayerTsPath);
+    if ( result )
+        {
+        iMostPlayedPlaylist = HbTextResolverSymbian::LoadL( _L("txt_mus_list_most_played") );
+        iRecentlyAddedPlaylist = HbTextResolverSymbian::LoadL( _L("txt_mus_list_recently_added") );
+        iRecentlyPlayedPlaylist = HbTextResolverSymbian::LoadL( _L("txt_mus_list_recently_played") );
+        }
+    else
+        {
+        // error initializing HbTextResolverSymbian, use logical string.
+        MPX_DEBUG1("CMPXDbAutoPlaylist::ConstructL - HbTextResolverSymbian::Init() Failed.");
+        TBufC<50> buf( _L("txt_mus_list_most_played") );
+        iMostPlayedPlaylist = buf.AllocL();
+        buf = _L("txt_mus_list_recently_added");
+        iRecentlyAddedPlaylist = buf.AllocL();
+        buf = _L("txt_mus_list_recently_played");
+        iRecentlyPlayedPlaylist = buf.AllocL();
+        }
 
     iRecentlyPlayedPlaylistId = KMPXRecentlyPlayedPlaylistId;
     iMostPlayedPlaylistId = KMPXMostPlayedPlaylistId;
--- a/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -963,6 +963,18 @@
     }
 
 // ----------------------------------------------------------------------------
+// Get all albums for Media Wall
+// ----------------------------------------------------------------------------
+//
+void CMPXDbHandler::GetAllAlbumsMediaWallL(
+    const TArray<TMPXAttribute>& aAttrs,
+    CMPXMediaArray* aMediaArray)
+    {
+    MPX_FUNC("CMPXDbHandler::GetAllAlbumsL");
+    iDbAlbum->GetAllCategoryItemsMediaWallL(aAttrs, *aMediaArray);
+    }
+
+// ----------------------------------------------------------------------------
 // Get all albums for the given artist ID
 // ----------------------------------------------------------------------------
 //
@@ -1537,6 +1549,8 @@
             iOutOfDisk = ETrue;
         }
 
+    User::LeaveIfError( err );
+    	
     if(!iOutOfDisk)
     {
         MPX_TRAP(err,CheckDiskSpaceOnDrivesL());
@@ -1561,26 +1575,28 @@
 void CMPXDbHandler::RefreshEndL()
     {
     MPX_FUNC("CMPXDbHandler::RefreshEndL");
-    iRefresh = EFalse;
-    EndTransactionL(KErrNone);
-    if (!iOutOfDisk)
-        {
-        // Write last refreshed time as current time
-        // This also sets corrupt = 0
-        TTime curTime;
-        curTime.HomeTime();
-        SetLastRefreshedTimeL(curTime);
-        }
+    if ( iRefresh )
+        { 
+        iRefresh = EFalse;
+        EndTransactionL(KErrNone);
+        if (!iOutOfDisk)
+            {
+            // Write last refreshed time as current time
+            // This also sets corrupt = 0
+            TTime curTime;
+            curTime.HomeTime();
+            SetLastRefreshedTimeL(curTime);
+            }
 
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
     //for AbstractAlbum garbage collection
-    //can not leave
-    TRAP_IGNORE( AbstractAlbumCleanUpL() );
+    TRAP_IGNORE( iDbAbstractAlbum->AbstractAlbumCleanUpL() );
 #endif
    
 #ifdef __RAMDISK_PERF_ENABLE
-    iDbManager->CopyDBsFromRamL();
+        iDbManager->CopyDBsFromRamL();
 #endif //__RAMDISK_PERF_ENABLE
+        }
     }
 
 // ----------------------------------------------------------------------------
@@ -1605,6 +1621,12 @@
     
         iDbManager->BeginL();
         }
+    //create Thumbnail manager session for cleanup for abstractalbum when MTP end.
+    //because when MTP end comes, in case of mode switching, we need to do it as fast as possible, 
+    //hence we don’t want the delay happens on that time.    
+#ifdef RD_MPX_TNM_INTEGRATION           
+    iDbAbstractAlbum->CreateTNMSessionL();
+#endif  //RD_MPX_TNM_INTEGRATION
     MPX_DEBUG1("<--CMPXDbHandler::MtpStartL");
     }
 
@@ -1630,11 +1652,13 @@
 #endif //__RAMDISK_PERF_ENABLE
 
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
-    TRAP(err, RemoveAbstractAlbumsWithNoSongL());
+    BeginTransactionL();
+    TRAP(err, iDbAbstractAlbum->RemoveAbstractAlbumsWithNoSongL());
     if ( err != KErrNone )
         {
         MPX_DEBUG2("CMPXDbHandler::MtpEndL error happened when cleanup albstractalbum with no songs association[%d]", err);
         }
+    EndTransactionL(err);
 #endif
     MPX_DEBUG1("<--CMPXDbHandler::MtpEndL");
     }
@@ -2114,6 +2138,7 @@
     TUint32 albumID(0);
     TUint32 genreID(0);
     TUint32 composerID(0);
+    HBufC*  art(NULL);
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
     TUint32 abstractAlbumID(0);
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
@@ -2121,11 +2146,12 @@
 
 // Get information from the Music table first
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
-    HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, abstractAlbumID, drive);
+    HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, abstractAlbumID, drive, art);
 #else
-    HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, drive);
+    HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, drive, art);
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
 
+    CleanupStack::PushL(art);
     // add the URI to the return array
     CleanupStack::PushL(uri);
     aUriArray.AppendL(*uri);
@@ -2134,9 +2160,10 @@
     // Update the category records
     TBool categoryExist( EFalse );
     iDbArtist->DecrementSongsForCategoryL(artistID, drive, &aItemChangedMessages, categoryExist);
-    iDbAlbum->DecrementSongsForCategoryL(albumID, drive, &aItemChangedMessages, categoryExist, artistID);
+    iDbAlbum->DecrementSongsForCategoryL(albumID, drive, &aItemChangedMessages, categoryExist, artistID, *art);
     iDbGenre->DecrementSongsForCategoryL(genreID, drive, &aItemChangedMessages, categoryExist);
     iDbComposer->DecrementSongsForCategoryL(composerID, drive, &aItemChangedMessages, categoryExist);
+    CleanupStack::PopAndDestroy(art);
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
     if (abstractAlbumID)
         {
@@ -2363,83 +2390,6 @@
         EMPXSong, KDBPluginUid);
     }
     
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED  
-// ----------------------------------------------------------------------------
-// Remove abstractalbums which have no songs associated.
-// ----------------------------------------------------------------------------
-//
-void CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL()
-    {
-    MPX_FUNC("CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL");
-    
-    BeginTransactionL();
-    RArray<TUint32> iItemsIds;
-    CleanupClosePushL(iItemsIds);
-      //get all abstractalbum with no songs associated.
-    iDbAbstractAlbum->GetAllItemsWithNoSongL(iItemsIds);
-    TInt count = iItemsIds.Count();
-    TInt err = KErrNone;
-    if (count)
-        {
-        MPX_DEBUG2("CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL, abstractalbum count[%d] ", iItemsIds.Count());
-        CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
-        CleanupStack::PushL(itemChangedMessages);
-
-        //go through each one to delete
-        for (TInt i=0; i< count; i++)
-            {
-            TRAP(err, RemoveAbstractAlbumL(iItemsIds[i], *itemChangedMessages, EFalse));
-            if (err != KErrNone)
-                {
-                MPX_DEBUG2("CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL, error happens when delete abstractalbum, err ", err);
-                }
-            }
-       CleanupStack::PopAndDestroy(itemChangedMessages);
-       }
-    CleanupStack::PopAndDestroy(&iItemsIds);
-    EndTransactionL(err); 
-  }
-  
-// ----------------------------------------------------------------------------
-// Remove .alb entry from AbstractAlnum table, TN table if .alb files deleted 
-// from file manager when refresh library
-// ----------------------------------------------------------------------------
-//
-void CMPXDbHandler::AbstractAlbumCleanUpL()
-    {
-    MPX_FUNC("CMPXDbHandler::AbstractAlbumCleanUpL");
-    RArray<TMPXAttribute> attributes;
-    CleanupClosePushL(attributes);
-    attributes.AppendL(KMPXMediaGeneralUri);
-    CMPXMediaArray* mediaArray = CMPXMediaArray::NewL();
-    CleanupStack::PushL(mediaArray);
-    
-    iDbAbstractAlbum->GetAllCategoryItemsL(attributes.Array(), *mediaArray);
-
-    TInt count(mediaArray->Count());
-    if (count)
-        {
-        CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
-        CleanupStack::PushL(itemChangedMessages);
-        for (TInt i = 0; i < count; i++)
-            {
-            CMPXMedia* element = mediaArray->AtL(i);
-            const TDesC& uri = element->ValueText(KMPXMediaGeneralUri);                                 
-
-            //check if the file exists in file system
-            if (!(BaflUtils::FileExists(iFs, uri)))
-                {
-                //generate abstractalbum UID with the Uri
-                TUint32 abstractAlbumId(MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, uri, EFalse));
-                RemoveAbstractAlbumL(abstractAlbumId, *itemChangedMessages, ETrue);             
-                }
-            }
-            CleanupStack::PopAndDestroy(itemChangedMessages);
-        }
-        CleanupStack::PopAndDestroy(mediaArray);       
-        CleanupStack::PopAndDestroy(&attributes);     
-    }
-#endif //ABSTRACTAUDIOALBUM_INCLUDED
 
 // ----------------------------------------------------------------------------
 // CMPXDbHandler::DoCleanupDeletedRecordsL
@@ -2891,22 +2841,6 @@
 
         // append the drive to the drive list
         iDbDrives.AppendL(driveUnit);
-
-        // make sure the folder is created
-        TVolumeInfo info;
-        if (iFs.Volume(info, driveUnit) == KErrNone)
-           {
-            if (!BaflUtils::PathExists(iFs, folder))
-                {
-                // create music folder if necessary
-                TInt err(iFs.MkDirAll(folder));
-                MPX_DEBUG3("Try to create music folder %S return code %d", &folder, err);
-                if (err != KErrAlreadyExists)
-                    {
-                    User::LeaveIfError(err);
-                    }
-                }
-            }
         }
     }
 
@@ -3182,7 +3116,7 @@
 TUint32 CMPXDbHandler::AddCategoryItemL(
         TMPXGeneralCategory aCategory,
         const TDesC& aName,
-        TUint32 aArtist,
+        const TDesC& aArtistName,
         const TDesC& aArt,
         TInt aDriveId,
         CMPXMessageArray* aItemChangedMessages,
@@ -3195,9 +3129,9 @@
     TBool newRecord(EFalse);
 
     TUint32 id = 0;
-    if ( aArtist )
+    if(aCategory == EMPXAlbum)
         {
-        id = iDbAlbum->AddItemL(aName, aArtist, aArt, aDriveId, newRecord, (aCategory != EMPXGenre));
+        id = iDbAlbum->AddItemL(aName, aArtistName, aArt, aDriveId, newRecord, (aCategory != EMPXGenre));
         }
     else
         {
@@ -3355,9 +3289,25 @@
     return iDbArtist->IsUnknownArtistL(aArtistId);
     }
 
-TUint32 CMPXDbHandler::HandleArtistForAlbumL(const TUint32 aAlbumId)
+// ---------------------------------------------------------------------------
+// CMPXDbHandler::HandleArtistForAlbumL
+// ---------------------------------------------------------------------------
+//
+HBufC* CMPXDbHandler::HandleArtistForAlbumL(const TUint32 aAlbumId)
     {
-    return iDbMusic->ArtistForAlbumL(aAlbumId);
+
+    TUint32 artistId = iDbMusic->ArtistForAlbumL(aAlbumId);
+    HBufC* artistname = GetNameMatchingIdL(artistId);
+    return artistname;
+    }
+
+// ---------------------------------------------------------------------------
+// CMPXDbHandler::HandleAlbumartForAlbumL
+// ---------------------------------------------------------------------------
+//
+HBufC*  CMPXDbHandler::HandleAlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt)
+    {
+    return iDbMusic->AlbumartForAlbumL(aAlbumId, aArt);
     }
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED   
 // ----------------------------------------------------------------------------------------------------------
--- a/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -56,6 +56,7 @@
 _LIT( KAbstractAlbumExt, ".alb" );
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
 
+const TInt KAllSongsQueryResultGranularity = 250;
 
 // ============================ MEMBER FUNCTIONS ==============================
 
@@ -99,6 +100,7 @@
     {
     MPX_FUNC("CMPXDbMusic::~CMPXDbMusic");
     delete iExtensionsDrm;
+    iAllSongsQueryResult.ResetAndDestroy();
     }
 
 // ----------------------------------------------------------------------------
@@ -113,6 +115,7 @@
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
     ,iArtNeedUpdated(ETrue)
 #endif
+    ,iAllSongsQueryResult(KAllSongsQueryResultGranularity)
     {
     MPX_FUNC("CMPXDbMusic::CMPXDbMusic");
     }
@@ -448,7 +451,8 @@
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
     TUint32& aAbstractAlbumId,
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
-    TInt& aDriveId)
+    TInt& aDriveId,
+    HBufC*& aArt)
     {
     MPX_FUNC("CMPXDbMusic::GetSongInfoL");
 
@@ -469,6 +473,7 @@
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
     aAbstractAlbumId = recordset.ColumnInt64(EMusicAbstractAlbum);
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
+    aArt = MPXDbCommonUtil::GetColumnTextL(recordset, EMusicArt).AllocL();
     HBufC* uri = ConstructUriL(recordset, aSongId);
 
     CleanupStack::PopAndDestroy(&recordset);
@@ -680,11 +685,51 @@
     {
     MPX_FUNC("CMPXDbMusic::GetAllSongsLimitedL");
 
-    // Gets a subset of the data from all songs ordered by title
-    HBufC* query = HBufC::NewLC( KQueryMusicGetSongsLimited().Length() + KMCIntegerLen );
-    query->Des().Format( KQueryMusicGetSongsLimited, aLimit );
-    ExecuteMediaQueryL(aAttrs, aMediaArray, *query);
-    CleanupStack::PopAndDestroy( query );    
+	// Reset and create a cache for the query results.
+	if (iAllSongsQueryResult.Count())
+		{
+        iAllSongsQueryResult.ResetAndDestroy();
+		}
+
+	ExecuteQueryAllSongsL(aAttrs);
+
+    TInt limit = aLimit > iAllSongsQueryResult.Count() ?
+    	iAllSongsQueryResult.Count() : aLimit;
+
+	for ( TInt i=0; i < limit; i++ )
+		{
+        CMPXMedia* m = iAllSongsQueryResult[i];
+		aMediaArray.AppendL(*m);
+		}
+    }
+
+// ----------------------------------------------------------------------------
+// CMPXDbMusic::ExecuteQueryAllSongsL
+// ----------------------------------------------------------------------------
+//
+void CMPXDbMusic::ExecuteQueryAllSongsL(const TArray<TMPXAttribute>& aAttrs)
+    {
+    // Run query and add result media objects to the cache array.
+    MPX_FUNC("CMPXDbMusic::ExecuteQueryAllSongsL");
+
+    RSqlStatement recordset(iDbManager.ExecuteSelectQueryL(KQueryMusicGetAllSongs));
+    CleanupClosePushL(recordset);
+
+    TInt err(KErrNone);
+    while ((err = recordset.Next()) == KSqlAtRow)
+        {
+        CMPXMedia* media = CMPXMedia::NewL();
+        CleanupStack::PushL(media);
+        UpdateMediaL(recordset, aAttrs, *media);
+        iAllSongsQueryResult.AppendL(media);
+        CleanupStack::Pop(media);
+        }
+
+    CleanupStack::PopAndDestroy(&recordset);
+    if (err!= KSqlAtEnd)
+        {
+        User::Leave(KErrCorrupt);
+        }
     }
 
 // ----------------------------------------------------------------------------
@@ -721,12 +766,23 @@
                                      TInt aOffset,
                                      TInt aCount )
     {
-    MPX_DEBUG1("CMPXDbMusic::GetSongsAtOffsetL <--");   
+	MPX_DEBUG3("CMPXDbMusic::GetSongsAtOffsetL offset[%d], count[%d]", aOffset, aCount);
+
+	if ( !iAllSongsQueryResult.Count() )
+		{
+		// If there's no cache, create a cache for the query results.
+		ExecuteQueryAllSongsL(aAttrs);
+		}
 
-    ExecuteMediaQueryL(aAttrs, aMediaArray, KQueryMusicGetSongsAtOffset, 
-                       aCount, aOffset, EOffSetQuery );
-    
-    MPX_DEBUG1("CMPXDbMusic::GetSongsAtOffsetL() -->"); 
+	TInt limit = aOffset + aCount > iAllSongsQueryResult.Count() ?
+		iAllSongsQueryResult.Count() : aOffset + aCount;
+	for ( TInt i = aOffset; i < limit; i++ )
+		{
+        CMPXMedia* m = iAllSongsQueryResult[i];
+		aMediaArray.AppendL(*m);
+		}
+
+    MPX_DEBUG1("CMPXDbMusic::GetSongsAtOffsetL() -->");
     }
 
 // ----------------------------------------------------------------------------
@@ -1063,6 +1119,30 @@
     }
 
 // ----------------------------------------------------------------------------
+// CMPXDbMusic::AlbumartForAlbumL
+// ----------------------------------------------------------------------------
+//
+HBufC* CMPXDbMusic::AlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt)
+    {
+    MPX_FUNC("CMPXDbMusic::AlbumartForAlbumL");
+    RSqlStatement recordset(iDbManager.ExecuteSelectQueryL(KQueryMusicGetAlbumartForAlbum, aAlbumId));
+    HBufC* albumart(NULL);
+   
+    CleanupClosePushL(recordset);
+    while ( recordset.Next() == KSqlAtRow )
+        {     
+        TPtrC art(MPXDbCommonUtil::GetColumnTextL(recordset, KMPXTableDefaultIndex));		
+        if (art.Length()>0 && art.Compare(KNullDesC)!=0 &&  art.CompareF(aArt)!=0 )
+            {
+            albumart = art.AllocL(); 
+            break;
+            }	
+        }
+       
+    CleanupStack::PopAndDestroy(&recordset);
+    return albumart;
+    }
+// ----------------------------------------------------------------------------
 // CMPXDbMusic::SongExistsL
 // ----------------------------------------------------------------------------
 //
@@ -2055,19 +2135,17 @@
 
     // update the artist field
     TUint32 id(0);
-    TUint32 artistIdForAlbum(artistId);
     if (UpdateCategoryFieldL(EMPXArtist, aMedia, KMPXMediaMusicArtist, artistId,
-        aDrive, aItemChangedMessages, id, 0))
+        aDrive, aItemChangedMessages, id))
         {
         MPXDbCommonUtil::AppendValueL(aFields, aValues, KMCMusicArtist, id);
         metaDataModified = (aMusicTable != NULL);
         visibleChange = CMPXDbActiveTask::EAllVisible;
-        artistIdForAlbum = id;
         }
 
     // update the album field
     if (UpdateCategoryFieldL(EMPXAlbum, aMedia, KMPXMediaMusicAlbum, albumId,
-        aDrive, aItemChangedMessages, id, artistIdForAlbum))
+        aDrive, aItemChangedMessages, id))
         {
         MPXDbCommonUtil::AppendValueL(aFields, aValues, KMCMusicAlbum, id);
         metaDataModified = (aMusicTable != NULL);
@@ -2462,6 +2540,25 @@
                     }
                 else
 #endif // ABSTRACTAUDIOALBUM_INCLUDED
+                    if (aCategory == EMPXArtist || aCategory == EMPXAlbum)
+                    {
+                    TPtrC art(KNullDesC);
+                    TPtrC artistname(KNullDesC);
+
+                    if (aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName))
+                        {
+                        art.Set(aMedia.ValueText(KMPXMediaMusicAlbumArtFileName).Left(KMCMaxTextLen));
+                        }
+                    if (aCategory == EMPXAlbum)
+                        {
+                        if (aMedia.IsSupported(KMPXMediaMusicArtist))
+                            {
+                            artistname.Set(aMedia.ValueText(KMPXMediaMusicArtist).Left(KMCMaxTextLen));
+                            }
+                        }
+                    iObserver.AddCategoryItemL(aCategory, name, artistname, art, aDriveId, aItemChangedMessages, itemAdded);
+                    }
+                else
                     {
                     // ignore the return value
                     iObserver.AddCategoryItemL(aCategory, name, aDriveId,
@@ -2497,8 +2594,27 @@
                     }            
                else
 #endif // ABSTRACTAUDIOALBUM_INCLUDED        
-                      {              
-                      // ignore the return value
+                    if (aCategory == EMPXArtist || aCategory == EMPXAlbum)
+                   {
+                   TPtrC art(KNullDesC);
+                   TPtrC artistname(KNullDesC);
+                   if (aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName))
+                       {
+                       art.Set(aMedia.ValueText(KMPXMediaMusicAlbumArtFileName).Left(KMCMaxTextLen));
+                        }
+                   if (aCategory == EMPXAlbum)
+                       {
+                       if (aMedia.IsSupported(KMPXMediaMusicArtist))
+                           {
+                           artistname.Set(aMedia.ValueText(KMPXMediaMusicArtist).Left(KMCMaxTextLen));
+                           }
+                       }
+                   iObserver.AddCategoryItemL(aCategory, KNullDesC, artistname, art, aDriveId,
+                        aItemChangedMessages, itemAdded);
+                   }
+               else
+                   {
+                   // ignore the return value
                       iObserver.AddCategoryItemL(aCategory, KNullDesC, aDriveId,
                             aItemChangedMessages, itemAdded);
                       }
@@ -2569,132 +2685,7 @@
     return updated;
     }
 
-TBool CMPXDbMusic::UpdateCategoryFieldL(
-    TMPXGeneralCategory aCategory,
-    const CMPXMedia& aMedia,
-    const TMPXAttribute& aAttribute,
-    TUint32 aOldId,
-    TInt aDriveId,
-    CMPXMessageArray* aItemChangedMessages,
-    TUint32& aItemId,
-    TUint32 aArtistId)
-    {
-    TBool updated(EFalse);
-    TBool itemNotRemoved( EFalse );
-    TBool itemAdded( EFalse );
 
-    // update category table and add category Id to the music table
-    if (!aOldId || aMedia.IsSupported(aAttribute))
-        {
-        TInt changeMsgCount( 0 );
-        if( aItemChangedMessages )
-            {
-            changeMsgCount = aItemChangedMessages->Count();
-            }
-
-        if (aMedia.IsSupported(aAttribute))
-            {
-            TPtrC name(aMedia.ValueText(aAttribute).Left(KMCMaxTextLen));
-
-            // construct the new ID for the category record
-            // only genre is not case sensitive
-            aItemId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), aCategory,
-                name, (aCategory != EMPXGenre));
-            if (!aOldId || (aOldId != aItemId))
-                {
-                // only add if the ID changed,
-                // otherwise the song was updated but the artist name was not
-                TPtrC art(KNullDesC);
-                if (aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName))
-                    {
-                    art.Set(aMedia.ValueText(KMPXMediaMusicAlbumArtFileName).Left(KMCMaxTextLen));
-                    }
-
-                iObserver.AddCategoryItemL(aCategory, name, aArtistId, art, aDriveId, aItemChangedMessages, itemAdded);
-                updated = ETrue;
-                }
-            }
-        else
-            {
-            // only genre is not case sensitive
-            aItemId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), aCategory, KNullDesC,
-                (aCategory != EMPXGenre));
-            if (!aOldId || (aOldId != aItemId))
-                {
-				TPtrC art(KNullDesC);
-				if (aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName))
-					{
-					art.Set(aMedia.ValueText(KMPXMediaMusicAlbumArtFileName).Left(KMCMaxTextLen));
-					}
-
-				iObserver.AddCategoryItemL(aCategory, KNullDesC, aArtistId, art, aDriveId,
-                    aItemChangedMessages, itemAdded);
-                updated = ETrue;
-                }
-            }
-
-        if (aOldId && (aOldId != aItemId))
-            {
-            iObserver.DeleteSongForCategoryL(aCategory, aOldId, aDriveId,
-                aItemChangedMessages, itemNotRemoved);
-            updated = ETrue;
-            }
-
-        // Special case where the item(s) has been renamed.
-        // In this case, a new category is created +1 change msg
-        //               a old category is removed +1 change msg
-        // We merge these 2 change messages into one using the deprecated ID
-        //
-        if( aItemChangedMessages )
-            {
-            TInt newChangeMsgCount( aItemChangedMessages->Count() );
-            if(  newChangeMsgCount - changeMsgCount > 0 )
-                {
-                TInt oldId = KErrNotFound;
-                TInt newId = KErrNotFound;
-                for( TInt i=0; i<newChangeMsgCount; ++i )
-                    {
-                    CMPXMessage& msg = *(*aItemChangedMessages)[i];
-
-                    TMPXItemId id = msg.ValueTObjectL<TMPXItemId>(KMPXMessageMediaGeneralId);
-                    TMPXChangeEventType changeType = msg.ValueTObjectL<TMPXChangeEventType>(KMPXMessageChangeEventType);
-
-                    // Look for the added and deleted category IDs
-                    //
-                    if( id == aOldId && changeType == EMPXItemDeleted )
-                        {
-                        oldId = i;
-                        }
-                    else if( id == aItemId && changeType == EMPXItemInserted )
-                        {
-                        newId = i;
-                        }
-                    }
-
-                if( oldId != KErrNotFound &&
-                    newId != KErrNotFound )
-                    {
-                    aItemChangedMessages->Remove(oldId);  // category removed
-                    aItemChangedMessages->Remove(newId);  // category added
-                    MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, aItemId, EMPXItemModified,
-                                                            aCategory, KDBPluginUid, aOldId );
-                    }
-                else if ( oldId !=KErrNotFound && itemAdded ) // old item removed, new item already exist
-                    {
-                    MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, aItemId, EMPXItemModified,
-                                                            aCategory, KDBPluginUid, aOldId );
-                    }
-                else if ( newId !=KErrNotFound && itemNotRemoved ) // new item added, old item still exist
-                    {
-                    MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, aOldId, EMPXItemModified,
-                                                            aCategory, KDBPluginUid, aItemId );
-                    }
-                }
-            }
-        }
-
-    return updated;
-    }
 // ----------------------------------------------------------------------------
 // CMPXDbMusic::ExtraFieldsRequired
 // ----------------------------------------------------------------------------
--- a/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbplugin.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitedbhgplugin/src/mpxdbplugin.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -21,6 +21,7 @@
 #include <StringLoader.h>
 #include <bautils.h>
 #include <data_caging_path_literals.hrh>
+#include <hbtextresolversymbian.h>
 
 #include <mpxcmn.h>
 #include <mpxuser.h>
@@ -145,7 +146,20 @@
     iDbHandler = CMPXDbHandler::NewL(iFs, *iResource);
     iMusicLibraryMenuTitles = iResource->ReadMenuArrayL(R_MC_MENU_ITEMS_ARRAY, iMusicLibraryMenuIds);
     iMusicLibraryTitles = iResource->ReadMenuArrayL(R_MC_TITLE_ITEMS_ARRAY, iMusicLibraryMenuIds );
-    iAllSongsForArtistTitle = iResource->ReadHBufCL(R_MC_ALL_SONGS_FOR_ARTIST);
+    
+    // Localization using QT
+    TBool result = HbTextResolverSymbian::Init(KMPXMusicPlayerTsFile, KMPXMusicPlayerTsPath);
+    if ( result )
+        {
+        iAllSongsForArtistTitle = HbTextResolverSymbian::LoadL( _L("txt_mus_dblist_all_songs") );
+        }
+    else
+        {
+        // error initializing HbTextResolverSymbian, use logical string.
+        MPX_DEBUG1("CMPXDbPlugin::ConstructL - HbTextResolverSymbian::Init() Failed.");
+        TBufC<50> buf( _L("txt_mus_dblist_all_songs") );
+        iAllSongsForArtistTitle = buf.AllocL();
+        }
 
 #ifdef __ENABLE_MUSIC_TEXT_ALIGNMENT
     iMusicMenuTitle = iResource->ReadHBufCL(R_MPX_QTN_MP_TITLE_MY_MUSIC_MENU_NSERIES);
@@ -410,7 +424,6 @@
         case EMcRefreshEnded:
             {
             MPX_DEBUG1("CMPXDbPlugin::CommandL - EMcRefreshEnded");
-            iDbHandler->CheckDiskSpaceOnDrivesL();
             // ask the handler to finalize the transaction
             iDbHandler->RefreshEndL();
             iRefreshing=EFalse;
@@ -442,7 +455,6 @@
             iDbHandler->MtpStartL();
             break;
         case EMcCmdMtpEnd:
-            iDbHandler->CheckDiskSpaceOnDrivesL();
             iMtpInUse = EFalse;
             iDbHandler->MtpEndL();
             break;
@@ -894,6 +906,7 @@
                 }
 
             case EBrowseAlbum:
+            case EBrowseAlbumMediaWall:
                 {
                 if( iAllSongsValid )
                     {
@@ -1259,8 +1272,15 @@
         case 2:
             {
             MPX_PERF_START(CMPXDbPlugin_DoOpenBrowseAlbumL_All);
-
-            TRAPD(err, iDbHandler->GetAllAlbumsL(aAttrs, aArray) );
+            TInt err = 0;
+            if( aPath.Id(1).iId2 == EBrowseAlbumMediaWall ) 
+                {
+                TRAP(err, iDbHandler->GetAllAlbumsMediaWallL(aAttrs, aArray) );
+                }
+            else 
+                {
+                TRAP(err, iDbHandler->GetAllAlbumsL(aAttrs, aArray) );
+                }
             // in error case, return empty list and append empty id to path 
             // in order to increase one level 
             if ( err != KErrNone )
@@ -4059,12 +4079,13 @@
     TInt numItems = aCmd.ValueTObjectL<TInt>( KMPXCollectionCommandIdIncOpenLNumItems );
 
     TReadDirection direction(EReadUnknown);
+/*  Ascending and Decending reads are currently not used. We optimized for offset reads.
     if( aCmd.IsSupported(KMPXCollectionCommandIdIncOpenLAscDsc) &&
         aCmd.IsSupported(KMPXCollectionCommandIdIncOpenLKeyItem) )
         {
         direction = aCmd.ValueTObjectL<TReadDirection>(KMPXCollectionCommandIdIncOpenLAscDsc);
         }
-
+*/
     CMPXCollectionPath* path =  aCmd.ValueCObjectL<CMPXCollectionPath>(KMPXCollectionCommandIdIncOpenLPath);
     CleanupStack::PushL( path );
     MPX_DEBUG_PATH( *path );
@@ -4339,6 +4360,7 @@
                 break;
                 }
             case EBrowseAlbum:
+            case EBrowseAlbumMediaWall:
                 {
                 aAttrs.AppendL( TMPXAttribute(KMPXMediaIdMusic,
                     EMPXMediaMusicArtist | EMPXMediaMusicAlbum | EMPXMediaMusicAlbumArtFileName ) );
--- a/mpserviceplugins/mpxsqlitepodcastdbplugin/inc/mpxpodcastcollectiondbdef.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpserviceplugins/mpxsqlitepodcastdbplugin/inc/mpxpodcastcollectiondbdef.h	Thu Jul 22 16:32:33 2010 +0100
@@ -27,7 +27,7 @@
 
 // Db filename
 _LIT(KMCDbFile, "pcv6_1.db");
-
+_LIT(KMCDbFileEMMC, "pcv6_1i.db");
 // Collection Db resource file
 _LIT(KMPXCollectionDbResourceFile,  "PCRes.rsc");
 
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainer.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainer.h	Thu Jul 22 16:32:33 2010 +0100
@@ -47,6 +47,13 @@
 
     void itemActivated( int index );
     void itemLongPressed( int index, const QPointF &coords );
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex );
+    void shuffleEnabled( bool enabled );
+
+public slots:
+
+    virtual void dataReloaded() = 0;
 
 protected:
 
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontaineralbums.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontaineralbums.h	Thu Jul 22 16:32:33 2010 +0100
@@ -21,6 +21,8 @@
 #include "mpcollectionlistcontainer.h"
 
 class HbGroupBox;
+class HgMediawall;
+class MpCollectionTBoneListDataModel;
 
 class MpCollectionContainerAlbums : public MpCollectionListContainer
 {
@@ -31,9 +33,16 @@
     explicit MpCollectionContainerAlbums( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
     virtual ~MpCollectionContainerAlbums();
 
+    void setDataModel( MpCollectionDataModel *dataModel );
+
 public slots:
 
     void itemActivated( const QModelIndex &index );
+    void albumCentered();
+    void dataReloaded();
+    void albumDataChanged();
+    void scrollingStarted();
+    void albumDataAvailable();
 
 private:
 
@@ -41,10 +50,10 @@
 
 private:
 
-    HbGroupBox      *mInfoBar;          // Own
-
-    QString         mArtist;
-    QString         mAlbum;
+    HbGroupBox                      *mInfoBar;          // Own
+	HgMediawall                     *mTBone;            // Own
+    MpCollectionTBoneListDataModel  *mTBoneListModel;   // Own
+    int                             mCurrentAlbumIndex;
 
 };
 
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerallsongs.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerallsongs.h	Thu Jul 22 16:32:33 2010 +0100
@@ -31,6 +31,10 @@
     explicit MpCollectionContainerAllSongs( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
     virtual ~MpCollectionContainerAllSongs();
 
+public slots:
+
+    void dataReloaded();
+
 private:
 
     void setupContainer();
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerartists.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerartists.h	Thu Jul 22 16:32:33 2010 +0100
@@ -21,6 +21,8 @@
 #include "mpcollectionlistcontainer.h"
 
 class HbGroupBox;
+class HgMediawall;
+class MpCollectionTBoneListDataModel;
 
 class MpCollectionContainerArtists : public MpCollectionListContainer
 {
@@ -31,9 +33,16 @@
     explicit MpCollectionContainerArtists( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
     virtual ~MpCollectionContainerArtists();
 
+    void setDataModel( MpCollectionDataModel *dataModel );
+
 public slots:
 
     void itemActivated( const QModelIndex &index );
+    void albumCentered();
+    void dataReloaded();
+    void albumDataChanged();
+    void scrollingStarted();
+    void albumDataAvailable();
 
 private:
 
@@ -41,10 +50,12 @@
 
 private:
 
-    HbGroupBox      *mInfoBar;          // Own
-
-    QString         mArtist;
-    QString         mAlbum;
+    HbGroupBox                      *mInfoBar;          // Own
+    HgMediawall                     *mTBone;            // Own
+    MpCollectionTBoneListDataModel  *mTBoneListModel;   // Own
+    int                             mCurrentArtistIndex;
+    int                             mCurrentAlbumIndex;
+    int                             mAlbumIndexOffset;
 
 };
 
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainergenres.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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: Music Player collection container definition - Genres.
-*
-*/
-
-#ifndef MPCOLLECTIONCONTAINERGENRES_H
-#define MPCOLLECTIONCONTAINERGENRES_H
-
-#include "mpcollectionlistcontainer.h"
-
-class MpCollectionContainerGenres : public MpCollectionListContainer
-{
-    Q_OBJECT
-
-public:
-
-    explicit MpCollectionContainerGenres( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
-    virtual ~MpCollectionContainerGenres();
-
-private:
-
-    void setupContainer();
-
-};
-
-#endif  // MPCOLLECTIONCONTAINERGENRES_H
-
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerplaylists.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerplaylists.h	Thu Jul 22 16:32:33 2010 +0100
@@ -31,6 +31,13 @@
     explicit MpCollectionContainerPlaylists( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
     virtual ~MpCollectionContainerPlaylists();
 
+    void setDataModel( MpCollectionDataModel *dataModel );
+
+public slots:
+
+    void itemActivated( const QModelIndex &index );
+    void dataReloaded();
+
 private:
 
     void setupContainer();
@@ -38,7 +45,8 @@
 private:
 
     HbGroupBox      *mInfoBar;              // Own
-
+    int             mCurrentPlaylistIndex;
+    
 };
 
 #endif  // MPCOLLECTIONCONTAINERPLAYLISTS_H
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionlistcontainer.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionlistcontainer.h	Thu Jul 22 16:32:33 2010 +0100
@@ -40,14 +40,13 @@
     virtual ~MpCollectionListContainer();
 
     void initialize();
-    void setDataModel( MpCollectionDataModel *dataModel );
-
+    virtual void setDataModel( MpCollectionDataModel *dataModel );
 
 public slots:
 
     virtual void itemActivated( const QModelIndex &index );
     virtual void onLongPressed(HbAbstractViewItem *listViewItem, const QPointF &coords);
-
+    virtual void dataReloaded();
 
 protected:
 
@@ -60,6 +59,8 @@
     HbListView              *mList;
     HbLabel                 *mNoMusic;
     HbIndexFeedback         *mIndexFeedback;
+    int                     mLongPressedIndex;
+    bool                    mLongPressEnabled;
 
 };
 
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionpopuphandler.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionpopuphandler.h	Thu Jul 22 16:32:33 2010 +0100
@@ -19,6 +19,7 @@
 #define MPCOLLECTIONPOPUPHANDLER_H
 
 #include <QObject>
+#include "mpmpxcollectionviewdefs.h"
 
 class MpCollectionView;
 class HbPopup;
@@ -27,6 +28,7 @@
 class QAbstractItemModel;
 class MpMpxCollectionData;
 class QPointF;
+class MpPopupHandlerPermanentData;
 
 class MpCollectionPopupHandler : public QObject
 {
@@ -41,13 +43,12 @@
     void openRenamePlaylistContainerDialog( const QString &currentName );
     void openRenamePlaylistItemDialog( const QString &currentName );
     void openAddSongsToPlaylist( QAbstractItemModel* model );
+    void openAddSongsToPlaylistFromTBone();
     void openDeleteSongs( QAbstractItemModel* model );
     void openAddToCurrentPlaylist( MpMpxCollectionData* collectionData );
     void openCreateNewPlaylist( MpMpxCollectionData* collectionData );
-    void openArrangeSongs( MpMpxCollectionData* collectionData );
-    void cancelOngoingPopup();
-
-    bool showingPopup();
+    void openArrangeSongs();
+    void cancelOngoingPopup(  bool onlyContextMenu );
 
 public slots:
     //Context Menus
@@ -67,6 +68,11 @@
     void handleArrangeSongs( HbAction *selectedAction );
     void handleRequestDelete( HbAction *selectedAction );
 
+    //External Events
+    void handleDeleteStarted( TCollectionContext context, int count );
+    void handleAddingSongs( int count );
+    void handleOperationEnded( bool success );
+
     void outstandingPopupClosing();
 
 private:
@@ -76,29 +82,17 @@
     void queryNewPlaylistName(const QStringList &playlists, const char *handler );
     void getText(const QString &label, const QString &text, const char *handler );
     void getModelIndexes( const QString &label, QAbstractItemModel* model, const char *handler );
-    void launchArrangeSongsDialog( MpMpxCollectionData* collectionData );
+    void launchArrangeSongsDialog();
     void requestDelete( QList<int> &selection );
+    void launchProgressDialog( const char *id );
+    void connectExternalEvents();
 
 private:
     MpCollectionView                *mView;                          // Not own
     HbPopup                         *mOutstandingPopup;              // Own
     MpEngine                        *mMpEngine;                      // Not own
-
-    class MpPopupHandlerPermanentData : public QObject
-    {
-    public:
-        MpPopupHandlerPermanentData( QObject *parent=0 );
-        virtual ~MpPopupHandlerPermanentData();
-        void clear();
-    public:
-        MpMpxCollectionData         *mIsolatedCollectionData;        // Not own
-        QAbstractItemModel          *mAbstractItemModel;             // Own
-        QList<int>                  mSelectedItems;
-        QString                     mOriginalName;
-        int                         mContextMenuIndex;
-    };
-    
     MpPopupHandlerPermanentData     *mPermanentData;                 // Own
+    bool                            mExternalEventsConnected;
 };
 
 #endif  // MPCOLLECTIONPOPUPHANDLER_H
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionview.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -39,7 +39,6 @@
 class MpNowPlayingWidget;
 class MpSnapshotWidget;
 class MpCollectionPopupHandler;
-class QTranslator;
 
 class MpCollectionView : public MpViewBase
 {
@@ -69,11 +68,12 @@
     void openArtists();
     void openAlbums();
     void openPlaylists();
-    void openGenres();
     void find();
     void openMusicStore();
 
     void openIndex( int index );
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex );
 
     void back();
     void exit();
@@ -83,7 +83,6 @@
     void containerTransitionComplete( const HbEffect::EffectStatus &status );
 
     void shufflePlayAll();
-    void refreshLibrary();
     void addToPlaylist();
     void deleteSongs();
     void renameCurrentPlaylistContainer();
@@ -101,13 +100,15 @@
     void handleLibraryAboutToUpdate();
     void handleLibraryUpdated();
 
+    void setShuffleAction( bool enabled );
+
 private:
 
     void setMainToolBar();
     void setPlaylistToolBar();
 
     HbAction *createToolBarAction( QActionGroup *actionsGroup,
-        const QString& icon );
+        const QString& icon, const QString& objectName );
 
     void updateMenu();
     void updateToolBar();
@@ -116,7 +117,7 @@
     void setBannerVisibility( bool visible );
     int generateShuffleIndex();
     void startContainerTransition( TCollectionContext contextFrom, TCollectionContext contextTo );
-    void cancelOngoingOperation();
+    void closeActiveDialog( bool onlyContextMenu = false );
 
 private:
 
@@ -134,8 +135,10 @@
     bool                            mBannerAttached;
 
     HbMainWindow                    *mWindow;               // Not own
-    HbAction                        *mNavigationQuit;       // Not own
-    HbAction                        *mNavigationBack;       // Not own
+    HbAction                        *mSoftKeyQuit;          // Not own
+    HbAction                        *mSoftKeyBack;          // Not own
+    HbAction                        *mShuffleAction;        // Not own
+    bool                            mShuffleEnabled;
 
     MpCollectionDocumentLoader      *mDocumentLoader;       // Own
     HbWidget                        *mMainContainer;        // Own
@@ -145,9 +148,6 @@
 
     MpSnapshotWidget                *mSnapshot;
 
-    QTranslator                     *mMpTranslator;         // Own
-    QTranslator                     *mCommonTranslator;     // Own
-
     bool                            mActivationWaiting;
     MpCollectionPopupHandler        *mMpPopupHandler;       // Own
 
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionviewplugin.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionviewplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -19,7 +19,7 @@
 #define MPCOLLECTIONVIEWPLUGIN_H
 
 
-#include <qobject>
+#include <QObject>
 #include <mpxviewpluginqt.h>
 
 class MpCollectionView;
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpsnapshotwidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpsnapshotwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -19,7 +19,7 @@
 #define MPSNAPSHOTWIDGET_H
 
 
-#include <qtglobal>
+#include <QtGlobal>
 #include <hbwidget.h>
 
 
--- a/mpviewplugins/mpcollectionviewplugin/mpcollectionviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/mpcollectionviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,32 +14,47 @@
 # Description: 
 #
 
-symbian:TARGET.UID3 = 0x10207C63
-
 TEMPLATE = lib
 CONFIG += hb qt ecomplugin
 TARGET = mpcollectionviewplugin
+symbian: { 
+    TARGET.UID3 = 0x10207C63
+    TARGET.CAPABILITY = All -TCB
+    TARGET.EPOCALLOWDLLDATA = 1
+}
 
 SERVICE.INTERFACE_NAME = org.nokia.mmdt.MpxViewPlugin/1.0
 SERVICE.CONFIGURATION = "<t>0x101FFCA1</t><p>0x101FFC3A;0xE419BEEE</p><i>EMPXViewPluginPriorityNormal</i><f>0x00000001</f>"
 
-TARGET.CAPABILITY = All -TCB
-
 DEPENDPATH += .
 INCLUDEPATH += . \
-     inc \
-     ../../inc
+               inc \
+               ../../inc
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH(hgwidgets)
 
-LIBS += -lmpxviewframeworkqt.dll \
-    -lmpnowplayingbanner.dll  \
-    -lmpsettingsmanager \
-    -lmpengine \
-    -lmpdata.dll
+LIBS += -lmpxviewframeworkqt \
+        -lganeswidgets \
+        -lmpnowplayingbanner  \
+        -lmpsettingsmanager \
+        -lmpengine \
+        -lmpdata
     
-symbian:TARGET.EPOCALLOWDLLDATA	= 1
-
 # Input
+HEADERS += ../../inc/mpviewbase.h \
+           inc/mpcollectionviewplugin.h \
+    	   inc/mpcollectionview.h \
+    	   inc/mpcollectiondocumentloader.h \
+    	   inc/mpcollectioncontainerfactory.h \
+    	   inc/mpcollectioncontainer.h \
+    	   inc/mpcollectionlistcontainer.h \
+    	   inc/mpcollectioncontainerallsongs.h \
+    	   inc/mpcollectioncontainerartists.h \
+    	   inc/mpcollectioncontaineralbums.h \
+    	   inc/mpcollectioncontainerplaylists.h  \
+           inc/mpsnapshotwidget.h \
+           inc/mpcollectionpopuphandler.h
+          
 SOURCES += src/mpcollectionviewplugin.cpp \
     	   src/mpcollectionview.cpp \
     	   src/mpcollectiondocumentloader.cpp \
@@ -50,23 +65,8 @@
     	   src/mpcollectioncontainerartists.cpp \
     	   src/mpcollectioncontaineralbums.cpp \
     	   src/mpcollectioncontainerplaylists.cpp \
-    	   src/mpcollectioncontainergenres.cpp \
            src/mpsnapshotwidget.cpp \
            src/mpcollectionpopuphandler.cpp
-
-HEADERS = ../../inc/mpviewbase.h \
-          inc/mpcollectionviewplugin.h \
-    	  inc/mpcollectionview.h \
-    	  inc/mpcollectiondocumentloader.h \
-    	  inc/mpcollectioncontainerfactory.h \
-    	  inc/mpcollectioncontainer.h \
-    	  inc/mpcollectionlistcontainer.h \
-    	  inc/mpcollectioncontainerallsongs.h \
-    	  inc/mpcollectioncontainerartists.h \
-    	  inc/mpcollectioncontaineralbums.h \
-    	  inc/mpcollectioncontainerplaylists.h  \
-    	  inc/mpcollectioncontainergenres.h  \
-          inc/mpsnapshotwidget.h \
-          inc/mpcollectionpopuphandler.h
        
 RESOURCES += resources/mpcollectionviewresources.qrc
+
--- a/mpviewplugins/mpcollectionviewplugin/resources/effects_item_select.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<!-- This effect file was generated by effectDialog -->
-
-<layers>
-<visual>
-
-<param name="scale_x" type="anim">
-<duration>0.01</duration>
-<style>inoutback</style>
-<keyframe at="0.0">1.0</keyframe>
-<keyframe at="1.0">1.2</keyframe>
-</param>
-<param name="scale_y" type="anim">
-<keyframe at="0.0">1.0</keyframe>
-<keyframe at="1.0">1.2</keyframe>
-</param>
-<param name="scale_origin_x" ref="visual.width">0.5</param>
-<param name="scale_origin_y" ref="visual.height">0.5</param>
-<param name="opacity" type="anim">
-<duration>0.01</duration>
-<style>linear</style>
-<keyframe at="0.0">1.0</keyframe>
-<keyframe at="1.0">0.5</keyframe>
-</param>
-
-</visual>
-</layers>
-
--- a/mpviewplugins/mpcollectionviewplugin/resources/effects_item_select_end.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<!-- This effect file was generated by effectDialog -->
-
-<layers>
-<visual>
-
-<param name="scale_x" type="anim">
-<duration>0.01</duration>
-<style>inoutback</style>
-<keyframe at="0.0">1.2</keyframe>
-<keyframe at="1.0">1.0</keyframe>
-</param>
-<param name="scale_y" type="anim">
-<keyframe at="0.0">1.2</keyframe>
-<keyframe at="1.0">1.0</keyframe>
-</param>
-<param name="scale_origin_x" ref="visual.width">0.5</param>
-<param name="scale_origin_y" ref="visual.height">0.5</param>
-<param name="opacity" type="anim">
-<duration>0.01</duration>
-<style>linear</style>
-<keyframe at="0.0">0.5</keyframe>
-<keyframe at="1.0">1.0</keyframe>
-</param>
-
-</visual>
-</layers>
-
--- a/mpviewplugins/mpcollectionviewplugin/resources/mpcollectionviewresources.qrc	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/resources/mpcollectionviewresources.qrc	Thu Jul 22 16:32:33 2010 +0100
@@ -7,16 +7,5 @@
     <qresource prefix="/icons" >      
         <file alias="default_album.png">default_album.png</file>    
     </qresource>
-    
-    <qresource prefix="/effects" >
-        <file alias="select.fxml">effects_item_select.fxml</file>
-        <file alias="select_end.fxml">effects_item_select_end.fxml</file>
-        <file alias="slide_out_to_top.fxml">slide_out_to_top.fxml</file>
-        <file alias="slide_out_to_right.fxml">slide_out_to_right.fxml</file>
-        <file alias="slide_out_to_left.fxml">slide_out_to_left.fxml</file>
-        <file alias="slide_in_to_top_and_fade_in.fxml">slide_in_to_top_and_fade_in.fxml</file>
-        <file alias="slide_in_to_right_and_fade_in.fxml">slide_in_to_right_and_fade_in.fxml</file>
-        <file alias="slide_in_to_left_and_fade_in.fxml">slide_in_to_left_and_fade_in.fxml</file>
-    </qresource>
-    
+        
 </RCC>
--- a/mpviewplugins/mpcollectionviewplugin/resources/musiccollection.docml	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/resources/musiccollection.docml	Thu Jul 22 16:32:33 2010 +0100
@@ -59,20 +59,57 @@
         </widget>
     </section>
 
-    <section name="artistSongs">
+    <section name="artistAlbums">
         <widget name="container">
-            <widget name="artistSongsDetail" type="HbGroupBox">
+            <widget name="artistDetail" type="HbGroupBox">
                 <bool name="collapsable" value="FALSE"/>
                 <real name="z" value="1.0"/>
             </widget>
             <layout orientation="Vertical" spacing="0un" type="linear">
                 <contentsmargins bottom="0.0" left="var(hb-param-margin-view-left)" right="var(hb-param-margin-view-right)" top="0.0"/>
-                <linearitem itemname="artistSongsDetail" spacing="0.0"/>
+                <linearitem itemname="artistDetail" spacing="0.0"/>
                 <linearitem itemname="artistsList" spacing="0.0"/>
             </layout>
         </widget>
     </section>
 
+    <section name="artistAlbumTBone">
+        <widget name="container">
+            <widget name="artistAlbumWall" type="HgMediawall">
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MAXIMUM" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="PREFERRED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="FIXED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MINIMUM" width="var(hb-param-screen-width)"/>
+            </widget>
+            <layout orientation="Vertical" spacing="var(hb-param-margin-gene-middle-vertical)" type="linear">
+                <contentsmargins bottom="0.0" left="var(hb-param-margin-view-left)" right="var(hb-param-margin-view-right)" top="0.0"/>
+                <linearitem itemname="artistAlbumWall"/>
+                <linearitem itemname="artistsList"/>
+            </layout>
+        </widget>
+    </section>
+    
+    <section name="artistAlbumTBoneFetcher">
+        <widget name="container">
+            <widget name="artistDetail" type="HbGroupBox">
+                <bool name="collapsable" value="FALSE"/>
+                <real name="z" value="1.0"/>
+            </widget>
+            <widget name="artistAlbumWall" type="HgMediawall">
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MAXIMUM" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="PREFERRED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="FIXED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MINIMUM" width="var(hb-param-screen-width)"/>
+            </widget>
+            <layout orientation="Vertical" spacing="var(hb-param-margin-gene-middle-vertical)" type="linear">
+                <contentsmargins bottom="0.0" left="var(hb-param-margin-view-left)" right="var(hb-param-margin-view-right)" top="0.0"/>
+                <linearitem itemname="artistDetail" spacing="0.0"/>
+                <linearitem itemname="artistAlbumWall"/>
+                <linearitem itemname="artistsList"/>
+            </layout>
+        </widget>
+    </section>
+    
     <section name="albums">
         <widget name="container">
             <widget name="albumsList" type="HbListView">
@@ -85,16 +122,39 @@
         </widget>
     </section>
 
-    <section name="albumSongs">
+    <section name="albumTBone">
         <widget name="container">
-            <widget name="albumSongsDetail" type="HbGroupBox">
+            <widget name="albumWall" type="HgMediawall">
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MAXIMUM" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="PREFERRED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="FIXED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MINIMUM" width="var(hb-param-screen-width)"/>
+            </widget>
+            <layout orientation="Vertical" spacing="var(hb-param-margin-gene-middle-vertical)" type="linear">
+                <contentsmargins bottom="0.0" left="var(hb-param-margin-view-left)" right="var(hb-param-margin-view-right)" top="0.0"/>
+                <linearitem itemname="albumWall"/>
+                <linearitem itemname="albumsList"/>
+            </layout>
+        </widget>
+    </section>
+    
+    <section name="albumTBoneFetcher">
+        <widget name="container">
+            <widget name="albumTBoneDetail" type="HbGroupBox">
                 <bool name="collapsable" value="FALSE"/>
                 <real name="z" value="1.0"/>
             </widget>
-            <layout orientation="Vertical" spacing="0un" type="linear">
+            <widget name="albumWall" type="HgMediawall">
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MAXIMUM" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="PREFERRED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="FIXED" width="var(hb-param-screen-width)"/>
+                <sizehint height="expr(24.5un + var(hb-param-text-height-primary) + var(hb-param-text-height-secondary) + (2*var(hb-param-margin-gene-middle-vertical)) + var(hb-param-margin-gene-bottom))" type="MINIMUM" width="var(hb-param-screen-width)"/>
+            </widget>
+            <layout orientation="Vertical" spacing="var(hb-param-margin-gene-middle-vertical)" type="linear">
                 <contentsmargins bottom="0.0" left="var(hb-param-margin-view-left)" right="var(hb-param-margin-view-right)" top="0.0"/>
-                <linearitem itemname="albumSongsDetail" spacing="0.0"/>
-                <linearitem itemname="albumsList" spacing="0.0"/>
+                <linearitem itemname="albumTBoneDetail" spacing="0.0"/>
+                <linearitem itemname="albumWall"/>
+                <linearitem itemname="albumsList"/>
             </layout>
         </widget>
     </section>
--- a/mpviewplugins/mpcollectionviewplugin/resources/slide_in_to_left_and_fade_in.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="visual.right">.3</start>
-            <end ref="visual.left">1</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">0.0</keyframe>
-	          <keyframe at="1.0">1.0</keyframe>
-	      </param>
-
-    </visual>
-</layers>
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/resources/slide_in_to_right_and_fade_in.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="visual.right">-.3</start>
-            <end ref="visual.left">1</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">0.0</keyframe>
-	          <keyframe at="1.0">1.0</keyframe>
-	      </param>
-
-    </visual>
-</layers>
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/resources/slide_in_to_top_and_fade_in.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_y" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="visual.height">.3</start>
-            <end ref="visual.top">1</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">0.0</keyframe>
-	          <keyframe at="1.0">1.0</keyframe>
-	      </param>
-
-    </visual>
-</layers>
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/resources/slide_out_to_left.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="visual.left">1</start>
-            <end ref="visual.right">-0.3</end>
-        </param>
-        
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">1.0</keyframe>
-	          <keyframe at="1.0">0.0</keyframe>
-	      </param>
-	      
-    </visual>
-</layers>
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/resources/slide_out_to_right.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_x" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="visual.left">1</start>
-            <end ref="visual.right">0.3</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">1.0</keyframe>
-	          <keyframe at="1.0">0.0</keyframe>
-	      </param>
-	      
-    </visual>
-</layers>
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/resources/slide_out_to_top.fxml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<layers>
-    <visual>
-
-        <param name="translation_y" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-            <keyframe at="0.0">0.0</keyframe>
-            <keyframe at="1.0">1.0</keyframe>
-            <start ref="visual.top">1</start>
-            <end ref="visual.height">-0.3</end>
-        </param>
-
-        <param name="opacity" type="anim">
-            <duration>.6</duration>
-            <!--style>inoutcubic</style-->
-	          <keyframe at="0.0">1.0</keyframe>
-	          <keyframe at="1.0">0.0</keyframe>
-	      </param>
-	      
-    </visual>
-</layers>
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainer.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainer.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -46,12 +46,19 @@
  */
 
 /*!
+    \fn void albumCentered( int index );
+
+    This signal is emitted only when container contains hgmediawall T-Bone when album
+    with \a index is centered following a scrolling action.
+ */
+
+/*!
  Constructs the collection container.
  */
 MpCollectionContainer::MpCollectionContainer( HbDocumentLoader *loader, QGraphicsItem *parent )
     : HbWidget(parent),
       mDocumentLoader(loader),
-      mCollectionContext(ECollectionContextUnknown)
+      mViewMode(MpCommon::DefaultView)
 {
     TX_LOG
 }
@@ -66,6 +73,9 @@
 
 /*!
  Sets the data model for the container.
+ Some of the containers are used for multiple contexts, i.e. Artist, Albums, Playlists. So,
+ setDataModel() is called multiple times to the same container object. We only want to connect
+ to dataReloaded() signal once or we'll receive multiple call backs.
  */
 void MpCollectionContainer::setDataModel( MpCollectionDataModel *dataModel )
 {
@@ -73,6 +83,7 @@
     mDataModel = dataModel;
     mCollectionData = mDataModel->collectionData();
     mCollectionContext = mCollectionData->context();
+    connect( dataModel, SIGNAL(dataReloaded()), this, SLOT(dataReloaded()), Qt::UniqueConnection );
 
     setupContainer();
     TX_EXIT
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontaineralbums.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontaineralbums.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -22,8 +22,12 @@
 #include <hbgroupbox.h>
 #include <hbindexfeedback.h>
 
+#include <hgmediawall.h>
+
 #include "mpcollectioncontaineralbums.h"
 #include "mpmpxcollectiondata.h"
+#include "mpcollectiondatamodel.h"
+#include "mpcollectiontbonelistdatamodel.h"
 #include "mptrace.h"
 
 /*!
@@ -36,7 +40,7 @@
 
     This container handles the following contexts:
     \li ECollectionContextAlbums
-    \li ECollectionContextAlbumSongs
+    \li ECollectionContextAlbumsTBone
 
     \sa MpCollectionContainer
 */
@@ -46,9 +50,13 @@
  */
 MpCollectionContainerAlbums::MpCollectionContainerAlbums( HbDocumentLoader *loader, QGraphicsItem *parent )
     : MpCollectionListContainer(loader, parent),
-      mInfoBar(0)
+      mInfoBar(0),
+      mTBone(0),
+      mTBoneListModel(0),
+      mCurrentAlbumIndex(0)
 {
     TX_LOG
+    mCollectionContext = ECollectionContextAlbums;
 }
 
 /*!
@@ -57,30 +65,178 @@
 MpCollectionContainerAlbums::~MpCollectionContainerAlbums()
 {
     TX_ENTRY
-    delete mInfoBar;
+	delete mInfoBar;
+    delete mTBone;
     delete mList;
+    delete mTBoneListModel;
+    TX_EXIT
+}
+
+/*!
+ Sets the data model for the container.
+ */
+void MpCollectionContainerAlbums::setDataModel( MpCollectionDataModel *dataModel )
+{
+    TX_ENTRY
+    MpCollectionContainer::setDataModel(dataModel);
+    if ( mCollectionContext == ECollectionContextAlbums ) {
+        if ( mList ) {
+            mList->setModel(dataModel);
+            if ( mCollectionData->count() ) {
+                mList->scrollTo( dataModel->index(mCurrentAlbumIndex, 0) );
+            }
+        }
+    }
+    else if ( mCollectionContext == ECollectionContextAlbumsTBone ) {
+        if ( mTBone ) {
+            mTBone->setModel(dataModel);
+            mTBone->scrollTo( dataModel->index(mCurrentAlbumIndex, 0) );
+            if ( mTBoneListModel == 0 ) {
+                mTBoneListModel = new MpCollectionTBoneListDataModel(mCollectionData);
+                connect( mTBoneListModel, SIGNAL(albumDataChanged()), this, SLOT(albumDataChanged()) );
+                connect( mTBoneListModel, SIGNAL(albumDataAvailable()), this, SLOT(albumDataAvailable()) );
+            }
+            mList->setModel(mTBoneListModel);
+            if ( mCollectionData->setCurrentAlbum(mCurrentAlbumIndex) ) {
+                if ( mCollectionData->albumSongsCount() > 1 ) {
+                    emit shuffleEnabled(true);
+                }
+                else {
+                    emit shuffleEnabled(false);
+                }
+            }
+            else {
+                emit findAlbumSongs(mCurrentAlbumIndex);
+                emit shuffleEnabled(false);
+            }
+        }
+    }
     TX_EXIT
 }
 
 /*!
  Slot to be called when an item is selected by the user.
- */
+*/
 void MpCollectionContainerAlbums::itemActivated( const QModelIndex &index )
 {
-    int row = index.row();
-    TX_ENTRY_ARGS("index=" << row);
+    if ( mCollectionContext == ECollectionContextAlbums ) {
+        mCurrentAlbumIndex = index.row();
+        TX_ENTRY_ARGS("mCurrentAlbumIndex=" << mCurrentAlbumIndex);
+        MpCollectionListContainer::itemActivated(index);
+    }
+    else if ( mCollectionContext == ECollectionContextAlbumsTBone ) {
+        int row = index.row();
+        TX_ENTRY_ARGS("index=" << row);
+        if ( mViewMode == MpCommon::FetchView ) {
+            MpCollectionListContainer::itemActivated(index);
+        }
+        else {
+            emit playAlbumSongs(mCurrentAlbumIndex, row);
+        }
+    }
+    TX_EXIT
+}
 
-    mAlbum = mCollectionData->itemData(row, MpMpxCollectionData::Title);
-    if ( mAlbum.isEmpty() ) {
-        mAlbum = hbTrId("txt_mus_dblist_val_unknown3");
+/*!
+ Slot to be called when scrolling ends in media wall and an album is centered.
+ */
+void MpCollectionContainerAlbums::albumCentered()
+{
+    TX_ENTRY
+    QModelIndex index = mTBone->currentIndex();
+    if ( mCurrentAlbumIndex != index.row() ) {
+        // Prevent reloading if user just moves the center album a little
+        // and the same album re-centers.
+        mCurrentAlbumIndex = index.row();
+        TX_LOG_ARGS("mCurrentAlbumIndex=" << mCurrentAlbumIndex);
+        if ( mCollectionData->setCurrentAlbum(mCurrentAlbumIndex) ) {
+            if ( mCollectionData->albumSongsCount() > 1 ) {
+                emit shuffleEnabled(true);
+            }
+            // Enable context menu
+            mLongPressEnabled = true;
+        }
+        else {
+            emit findAlbumSongs(mCurrentAlbumIndex);
+        }
+    }
+    else {
+        // Landed on the same album. Just update menu.
+        if ( mCollectionData->albumSongsCount() > 1 ) {
+            emit shuffleEnabled(true);
+        }
+        // Enable context menu
+        mLongPressEnabled = true;
     }
+    TX_EXIT
+}
 
-    mArtist = mCollectionData->itemData(row, MpMpxCollectionData::Artist);
-    if ( mArtist.isEmpty() ) {
-        mArtist = hbTrId("txt_mus_subtitle_unknown");
+/*!
+ Slot to be called data model has new data.
+ Two cases:
+     1) User deleted an album.
+	 2) User deleted last song in an album.
+ */
+void MpCollectionContainerAlbums::dataReloaded()
+{
+    TX_ENTRY
+    if ( mCollectionContext == ECollectionContextAlbumsTBone ) {
+        if ( mCurrentAlbumIndex > 0 ) {
+            --mCurrentAlbumIndex;
+        }
+        mTBone->scrollTo( mDataModel->index(mCurrentAlbumIndex, 0) );
+        if ( mCollectionData->setCurrentAlbum(mCurrentAlbumIndex) ) {
+            if ( mCollectionData->albumSongsCount() == 1 ) {
+                emit shuffleEnabled(false);
+            }
+        }
+        else {
+            emit findAlbumSongs(mCurrentAlbumIndex);
+        }
+    }
+    else {
+        MpCollectionListContainer::dataReloaded();
     }
+    TX_EXIT
+}
 
-    MpCollectionListContainer::itemActivated(index);
+/*!
+ Slot to be called data model has new data.
+ User has deleted one of the songs from TBone list.
+ */
+void MpCollectionContainerAlbums::albumDataChanged()
+{
+    TX_ENTRY
+    emit findAlbumSongs(mCurrentAlbumIndex);
+    emit shuffleEnabled(false);
+    TX_EXIT
+}
+
+/*!
+ Slot to be called TBone starts scrolling.
+ */
+void MpCollectionContainerAlbums::scrollingStarted()
+{
+    TX_ENTRY
+    // Disable shuffle action from the menu
+    emit shuffleEnabled(false);
+    // Disable context menu
+    mLongPressEnabled = false;
+    TX_EXIT
+}
+
+/*!
+ Slot to be called album data is available. This is a result of findAlbumSongs signal.
+ */
+void MpCollectionContainerAlbums::albumDataAvailable()
+{
+    TX_ENTRY
+    int count = mCollectionData->albumSongsCount();
+    if ( count > 1 ) {
+        emit shuffleEnabled(true);
+    }
+    // Enable context menu
+    mLongPressEnabled = true;
     TX_EXIT
 }
 
@@ -111,35 +267,52 @@
                 delete mInfoBar;
                 mInfoBar = 0;
             }
-        }
-        else if ( mCollectionContext == ECollectionContextAlbumSongs ) {
-            mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "albumSongs", &ok);
-            if ( !ok ) {
-                TX_LOG_ARGS("Error: invalid xml file.");
-                Q_ASSERT_X(ok, "MpCollectionContainerAlbums::setupContainer", "invalid xml file");
+            if ( mTBone ) {
+                delete mTBone;
+                mTBone = 0;
             }
-
-            widget = mDocumentLoader->findWidget(QString("albumSongsDetail"));
-            mInfoBar = qobject_cast<HbGroupBox*>(widget);
-
-            QString details;
+        }
+        else if ( mCollectionContext == ECollectionContextAlbumsTBone ) {
             if ( mViewMode == MpCommon::FetchView ) {
-                details = "Select a song";
+                mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "albumTBoneFetcher", &ok);
+                if ( !ok ) {
+                    TX_LOG_ARGS("Error: invalid xml file.");
+                    Q_ASSERT_X(ok, "MpCollectionContainerAlbums::setupContainer", "invalid xml file");
+                }
+                widget = mDocumentLoader->findWidget(QString("albumTBoneDetail"));
+                mInfoBar = qobject_cast<HbGroupBox*>(widget);
+                mInfoBar->setHeading( hbTrId("txt_mus_subtitle_select_a_song") );
             }
             else {
-                details = mArtist;
-                details.append(" : ");
-                details.append(mAlbum);
+                mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "albumTBone", &ok);
+                if ( !ok ) {
+                    TX_LOG_ARGS("Error: invalid xml file.");
+                    Q_ASSERT_X(ok, "MpCollectionContainerAlbums::setupContainer", "invalid xml file");
+                }
             }
-            mInfoBar->setHeading(details);
+            widget = mDocumentLoader->findWidget(QString("albumWall"));
+            mTBone = qobject_cast<HgMediawall*>(widget);
+            HbIcon defaultIcon( "qtg_large_album_art" );
+            defaultIcon.setSize(mTBone->itemSize());
+            mTBone->setDefaultImage( defaultIcon.pixmap().toImage() );
+            mTBone->setTitleFontSpec( HbFontSpec(HbFontSpec::Primary) );
+            mTBone->setDescriptionFontSpec( HbFontSpec(HbFontSpec::Secondary) );
+            mTBone->setScrollBarPolicy( HgWidget::ScrollBarAlwaysOff );
+            mTBone->enableReflections(true);
+            connect( mTBone, SIGNAL(scrollingStarted()), this, SLOT(scrollingStarted()) );
+            connect( mTBone, SIGNAL(scrollingEnded()), this, SLOT(albumCentered()) );
         }
     }
     else {
+        // Must delete widgets when last song is deleted and view is reloaded.
         if ( mInfoBar ) {
-            // When last song in an album is deleted and album list is reloaded
             delete mInfoBar;
             mInfoBar = 0;
         }
+        if ( mTBone ) {
+            delete mTBone;
+            mTBone = 0;
+        }
         // Call empty list from base class
         setupEmptyListContainer();
     }
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerallsongs.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerallsongs.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -45,6 +45,7 @@
       mInfoBar(0)
 {
     TX_LOG
+    mCollectionContext = ECollectionContextAllSongs;
 }
 
 /*!
@@ -59,6 +60,30 @@
 }
 
 /*!
+ Slot to be called data model has new data.
+ Two cases:
+     1) User deleted a song.
+	 2) New song found during 'Refresh' operation.
+ */
+void MpCollectionContainerAllSongs::dataReloaded()
+{
+    TX_ENTRY
+    MpCollectionListContainer::dataReloaded();
+    if ( mViewMode != MpCommon::FetchView ) {
+        int count = mCollectionData->count();
+        QString details = hbTrId("txt_mus_subhead_ln_songs", count);
+        mInfoBar->setHeading(details);
+    }
+    if ( mCollectionData->count() > 1 ) {
+        emit shuffleEnabled(true);
+    }
+    else {
+        emit shuffleEnabled(false);
+    }
+    TX_EXIT
+}
+
+/*!
  Sets up the container by organizing widgets according to its layout.
 
  \reimp
@@ -84,7 +109,7 @@
 
         QString details;
         if ( mViewMode == MpCommon::FetchView ) {
-            details = "Select a song";
+            details = hbTrId("txt_mus_subtitle_select_a_song");
         }
         else {
             int count = mCollectionData->count();
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerartists.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerartists.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -22,8 +22,12 @@
 #include <hbgroupbox.h>
 #include <hbindexfeedback.h>
 
+#include <hgmediawall.h>
+
 #include "mpcollectioncontainerartists.h"
 #include "mpmpxcollectiondata.h"
+#include "mpcollectiondatamodel.h"
+#include "mpcollectiontbonelistdatamodel.h"
 #include "mptrace.h"
 
 /*!
@@ -37,8 +41,9 @@
     This container handles the following contexts:
     \li ECollectionContextArtists
     \li ECollectionContextArtistAlbums
-    \li ECollectionContextArtistSongs
-    
+    \li ECollectionContextArtistAlbumsTBone
+    \li ECollectionContextArtistAllSongs
+
     \sa MpCollectionContainer
 */
 
@@ -47,9 +52,14 @@
  */
 MpCollectionContainerArtists::MpCollectionContainerArtists( HbDocumentLoader *loader, QGraphicsItem *parent )
     : MpCollectionListContainer(loader, parent),
-      mInfoBar(0)
+      mInfoBar(0),
+      mTBone(0),
+      mTBoneListModel(0),
+      mCurrentArtistIndex(0),
+      mCurrentAlbumIndex(0)
 {
     TX_LOG
+    mCollectionContext = ECollectionContextArtists;
 }
 
 /*!
@@ -59,7 +69,98 @@
 {
     TX_ENTRY
     delete mInfoBar;
+    delete mTBone;
     delete mList;
+    delete mTBoneListModel;
+    TX_EXIT
+}
+
+/*!
+ Sets the data model for the container.
+ */
+void MpCollectionContainerArtists::setDataModel( MpCollectionDataModel *dataModel )
+{
+    TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext);
+    MpCollectionContainer::setDataModel(dataModel);
+    int count = mCollectionData->count();
+    switch ( mCollectionContext ) {
+        case ECollectionContextArtists:
+            if ( mList ) {
+                mList->setModel(dataModel);
+                if ( count ) {
+                    if ( mCurrentArtistIndex >= count ) {
+						// This can happen if the last item is deleted
+                        mCurrentArtistIndex = count - 1;
+                    }
+                    mList->scrollTo( dataModel->index(mCurrentArtistIndex, 0) );
+                }
+                // Reset the current album index for navigation:
+                // ECollectionContextArtistAlbums -> ECollectionContextArtists
+                mCurrentAlbumIndex = 0;
+            }
+            break;
+        case ECollectionContextArtistAlbums:
+            if ( mList ) {
+                mList->setModel(dataModel);
+                if ( count ) {
+                    if ( mCurrentAlbumIndex >= count ) {
+                        // This can happen if the last item is deleted
+                        mCurrentAlbumIndex = count - 1;
+                    }
+                    mList->scrollTo( dataModel->index(mCurrentAlbumIndex, 0) );
+                }
+                // Reset the album index offset for navigation:
+                // ECollectionContextArtistAlbumsTBone -> ECollectionContextArtistAlbums
+                mAlbumIndexOffset = 0;
+            }
+            break;
+        case ECollectionContextArtistAlbumsTBone:
+            if ( mTBone ) {
+                if ( count > 1 ) {
+                    // Selected artist has more than 1 album and therefore the
+                    // artist's "All songs" exist. Since we don't show artist's
+                    // "All songs" in TBone, we need to set an offset.
+                    mAlbumIndexOffset = 1;
+                }
+                else {
+                    // Selected artist has exactly 1 album and therefore the
+                    // artist's "All songs" doesn't exist.
+                    mAlbumIndexOffset = 0;
+                }
+                if ( mCurrentAlbumIndex >= count ) {
+				    // This can happen if the last item is deleted
+                    mCurrentAlbumIndex = count - 1;
+                }
+                mTBone->setModel(dataModel);
+                mTBone->scrollTo( dataModel->index(mCurrentAlbumIndex - mAlbumIndexOffset, 0) );
+                if ( mTBoneListModel == 0 ) {
+                    mTBoneListModel = new MpCollectionTBoneListDataModel(mCollectionData);
+                    connect( mTBoneListModel, SIGNAL(albumDataChanged()), this, SLOT(albumDataChanged()) );
+                    connect( mTBoneListModel, SIGNAL(albumDataAvailable()), this, SLOT(albumDataAvailable()) );
+                }
+                mList->setModel(mTBoneListModel);
+                if ( mCollectionData->setCurrentAlbum(mCurrentAlbumIndex) ) {
+                    if ( mCollectionData->albumSongsCount() > 1 ) {
+                        emit shuffleEnabled(true);
+                    }
+                    else {
+                        emit shuffleEnabled(false);
+                    }
+                }
+                else {
+                    emit findAlbumSongs(mCurrentAlbumIndex);
+                    emit shuffleEnabled(false);
+                }
+            }
+            break;
+        case ECollectionContextArtistAllSongs:
+            if ( mList ) {
+                mList->setModel(dataModel);
+            }
+            break;
+        default:
+            break;
+    }
     TX_EXIT
 }
 
@@ -69,21 +170,138 @@
 void MpCollectionContainerArtists::itemActivated( const QModelIndex &index )
 {
     int row = index.row();
-    TX_ENTRY_ARGS("index=" << row);
-    
-    if ( mCollectionContext == ECollectionContextArtists ) {
-        mArtist = mCollectionData->itemData(row, MpMpxCollectionData::Title);
-        if ( mArtist.isEmpty() ) {
-        mArtist = hbTrId("txt_mus_subtitle_unknown");
+    TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext << "index=" << row);
+    switch ( mCollectionContext ) {
+        case ECollectionContextArtists:
+            mCurrentArtistIndex = row;
+            TX_LOG_ARGS("mCurrentArtistIndex=" << mCurrentArtistIndex);
+            MpCollectionListContainer::itemActivated(index);
+            break;
+        case ECollectionContextArtistAlbums:
+            mCurrentAlbumIndex = row;
+            TX_LOG_ARGS("mCurrentAlbumIndex=" << mCurrentAlbumIndex);
+            MpCollectionListContainer::itemActivated(index);
+            break;
+        case ECollectionContextArtistAlbumsTBone:
+            TX_LOG_ARGS("mCurrentAlbumIndex=" << mCurrentAlbumIndex);
+            if ( mViewMode == MpCommon::FetchView ) {
+                MpCollectionListContainer::itemActivated(index);
+            }
+            else {
+                emit playAlbumSongs(mCurrentAlbumIndex, row);
+            }
+            break;
+        case ECollectionContextArtistAllSongs:
+            MpCollectionListContainer::itemActivated(index);
+            break;
+        default:
+            break;
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when scrolling ends in media wall and an album is centered.
+ */
+void MpCollectionContainerArtists::albumCentered()
+{
+    TX_ENTRY
+    int index = mTBone->currentIndex().row();
+    TX_LOG_ARGS("index=" << index);
+    index += mAlbumIndexOffset;
+    if ( mCurrentAlbumIndex != index ) {
+        // Prevent reloading if user just moves the center album a little
+        // and the same album re-centers.
+        mCurrentAlbumIndex = index;
+        TX_LOG_ARGS("mCurrentAlbumIndex=" << mCurrentAlbumIndex);
+        if ( mCollectionData->setCurrentAlbum(mCurrentAlbumIndex) ) {
+            if ( mCollectionData->albumSongsCount() > 1 ) {
+                emit shuffleEnabled(true);
+            }
+            // Enable context menu
+            mLongPressEnabled = true;
+        }
+        else {
+            emit findAlbumSongs(mCurrentAlbumIndex);
         }
     }
-    else if ( mCollectionContext == ECollectionContextArtistAlbums ) {
-        mAlbum = mCollectionData->itemData(row, MpMpxCollectionData::Title);
-        if ( mAlbum.isEmpty() ) {
-            mAlbum = hbTrId("txt_mus_dblist_val_unknown3");
+    else {
+        // Landed on the same album. Just update menu.
+        if ( mCollectionData->albumSongsCount() > 1 ) {
+            emit shuffleEnabled(true);
+        }
+        // Enable context menu
+        mLongPressEnabled = true;
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when data model has new data. This occurs after a delete operation is complete.
+ Two cases:
+     1) User deleted an artist.
+	 2) User deleted last song in an album.
+ */
+void MpCollectionContainerArtists::dataReloaded()
+{
+    TX_ENTRY
+    if ( mCollectionContext == ECollectionContextArtistAlbumsTBone ) {
+        if ( mCurrentAlbumIndex > 0 ) {
+            --mCurrentAlbumIndex;
+        }
+        mTBone->scrollTo( mDataModel->index(mCurrentAlbumIndex - mAlbumIndexOffset, 0) );
+        if ( mCollectionData->setCurrentAlbum(mCurrentAlbumIndex) ) {
+            if ( mCollectionData->albumSongsCount() == 1 ) {
+                emit shuffleEnabled(false);
+            }
+        }
+        else {
+            emit findAlbumSongs(mCurrentAlbumIndex);
         }
     }
-    MpCollectionListContainer::itemActivated(index);
+    else {
+        MpCollectionListContainer::dataReloaded();
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when data model has new data.
+ User has deleted one of the songs from TBone list.
+ */
+void MpCollectionContainerArtists::albumDataChanged()
+{
+    TX_ENTRY
+    emit findAlbumSongs(mCurrentAlbumIndex);
+    emit shuffleEnabled(false);
+    TX_EXIT
+}
+
+/*!
+ Slot to be called TBone starts scrolling.
+ */
+void MpCollectionContainerArtists::scrollingStarted()
+{
+    TX_ENTRY
+    // Disable shuffle action from the menu
+    emit shuffleEnabled(false);
+    // Disable context menu
+    mLongPressEnabled = false;
+    TX_EXIT
+}
+
+/*!
+ Slot to be called album data is available. This is a result of findAlbumSongs signal.
+ */
+void MpCollectionContainerArtists::albumDataAvailable()
+{
+    TX_ENTRY
+    int count = mCollectionData->albumSongsCount();
+    if ( count > 1 ) {
+        emit shuffleEnabled(true);
+    }
+    // Enable context menu
+    mLongPressEnabled = true;
     TX_EXIT
 }
 
@@ -98,93 +316,115 @@
     if ( mCollectionData->count() ) {
         bool ok = false;
         QGraphicsWidget *widget;
-        if ( mCollectionContext == ECollectionContextArtists ) {
-            mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artists", &ok);
-            if ( !ok ) {
-                TX_LOG_ARGS("Error: invalid xml file.");
-                Q_ASSERT_X(ok, "MpCollectionContainerArtists::setupContainer", "invalid xml file");
-            }
-            if ( !mList ) {
-                widget = mDocumentLoader->findWidget(QString("artistsList"));
-                mList = qobject_cast<HbListView*>(widget);
-                mIndexFeedback->setItemView(mList);
-                initializeList();
-            }
-            if ( mInfoBar ) {
-                delete mInfoBar;
-                mInfoBar = 0;
-            }
-        }
-        else if ( mCollectionContext == ECollectionContextArtistAlbums ) {
-            mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artistSongs", &ok);
-            if ( !ok ) {
-                TX_LOG_ARGS("Error: invalid xml file.");
-                Q_ASSERT_X(ok, "MpCollectionContainerArtists::setupContainer", "invalid xml file");
-            }
-           
-            widget = mDocumentLoader->findWidget(QString("artistSongsDetail"));
-            mInfoBar = qobject_cast<HbGroupBox*>(widget);
-            
-            QString details;
-            if ( mViewMode == MpCommon::FetchView ) { 
-                details = "Select a song";
-            }
-            else {
-                details = mArtist;
-            }
-            mInfoBar->setHeading(details);
+        QString artist;
+        switch ( mCollectionContext ) {
+            case ECollectionContextArtists:
+                mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artists", &ok);
+                if ( !ok ) {
+                    TX_LOG_ARGS("Error: invalid xml file.");
+                    Q_ASSERT_X(ok, "MpCollectionContainerArtists::setupContainer", "invalid xml file");
+                }
+                if ( !mList ) {
+                    widget = mDocumentLoader->findWidget(QString("artistsList"));
+                    mList = qobject_cast<HbListView*>(widget);
+                    mIndexFeedback->setItemView(mList);
+                    initializeList();
+                }
+                if ( mInfoBar ) {
+                    delete mInfoBar;
+                    mInfoBar = 0;
+                }
+                if ( mTBone ) {
+                    delete mTBone;
+                    mTBone = 0;
+                }
+                break;
+            case ECollectionContextArtistAlbums:
+                mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artistAlbums", &ok);
+                if ( !ok ) {
+                    TX_LOG_ARGS("Error: invalid xml file.");
+                    Q_ASSERT_X(ok, "MpCollectionContainerArtists::setupContainer", "invalid xml file");
+                }
+                widget = mDocumentLoader->findWidget(QString("artistDetail"));
+                mInfoBar = qobject_cast<HbGroupBox*>(widget);
+
+                artist = mCollectionData->collectionTitle();
+                if ( artist.isEmpty() ) {
+                    artist = hbTrId("txt_mus_subtitle_unknown");
+                }
+                mInfoBar->setHeading(artist);
+                if ( mTBone ) {
+                    delete mTBone;
+                    mTBone = 0;
+                }
+                break;
+            case ECollectionContextArtistAlbumsTBone:
+                {
+                if ( mViewMode == MpCommon::FetchView ) {
+                    mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artistAlbumTBoneFetcher", &ok);
+                    if ( !ok ) {
+                        TX_LOG_ARGS("Error: invalid xml file.");
+                        Q_ASSERT_X(ok, "MpCollectionContainerAlbums::setupContainer", "invalid xml file");
+                    }
+                    widget = mDocumentLoader->findWidget(QString("artistDetail"));
+                    mInfoBar = qobject_cast<HbGroupBox*>(widget);
+                    mInfoBar->setHeading( hbTrId("txt_mus_subtitle_select_a_song") );
+                }
+                else {
+                    mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artistAlbumTBone", &ok);
+                    if ( !ok ) {
+                        TX_LOG_ARGS("Error: invalid xml file.");
+                        Q_ASSERT_X(ok, "MpCollectionContainerAlbums::setupContainer", "invalid xml file");
+                    }
+                    if ( mInfoBar ) {
+                        delete mInfoBar;
+                        mInfoBar = 0;
+                    }
+                }
+                widget = mDocumentLoader->findWidget(QString("artistAlbumWall"));
+                mTBone = qobject_cast<HgMediawall*>(widget);
+                HbIcon defaultIcon( "qtg_large_album_art" );
+                defaultIcon.setSize(mTBone->itemSize());
+                mTBone->setDefaultImage( defaultIcon.pixmap().toImage() );
+                mTBone->setTitleFontSpec( HbFontSpec(HbFontSpec::Primary) );
+                mTBone->setDescriptionFontSpec( HbFontSpec(HbFontSpec::Secondary) );
+                mTBone->setScrollBarPolicy( HgWidget::ScrollBarAlwaysOff );
+                mTBone->enableReflections(true);
+                connect( mTBone, SIGNAL(scrollingStarted()), this, SLOT(scrollingStarted()) );
+                connect( mTBone, SIGNAL(scrollingEnded()), this, SLOT(albumCentered()) );
+                }
+                break;
+            case ECollectionContextArtistAllSongs:
+                // No need to load anything. Just reuse the section "artistAlbums" loaded
+                // in ECollectionContextArtistAlbums context.
+                if ( mViewMode == MpCommon::FetchView ) {
+                    mInfoBar->setHeading( hbTrId("txt_mus_subtitle_select_a_song") );
+                }
+                else {
+                    artist = mCollectionData->collectionTitle();
+                    if ( artist.isEmpty() ) {
+                        artist = hbTrId("txt_mus_subtitle_unknown_all");
+                    }
+                    else {
+                        artist = hbTrId("txt_mus_subtitle_1_all").arg(artist);
+                    }
+                    mInfoBar->setHeading(artist);
+                }
+                break;
+            default:
+                break;
         }
-        else if ( mCollectionContext == ECollectionContextAlbumSongs ) {
-            mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artistSongs", &ok);
-            if ( !ok ) {
-                TX_LOG_ARGS("Error: invalid xml file.");
-                Q_ASSERT_X(ok, "MpCollectionContainerArtists::setupContainer", "invalid xml file");
-            }
-                   
-            widget = mDocumentLoader->findWidget(QString("artistSongsDetail"));
-            mInfoBar = qobject_cast<HbGroupBox*>(widget);
-                    
-            QString details;
-            if ( mViewMode == MpCommon::FetchView ) {
-                details = "Select a song";
-                }
-            else {
-                details = mArtist;
-                details.append(" - ");
-                details.append(mAlbum);
-            }
-            mInfoBar->setHeading(details);
-        }
-        else if ( mCollectionContext == ECollectionContextArtistSongs ) {
-            mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artistSongs", &ok);
-            if ( !ok ) {
-                TX_LOG_ARGS("Error: invalid xml file.");
-                Q_ASSERT_X(ok, "MpCollectionContainerArtists::setupContainer", "invalid xml file");
-            }
-                   
-            widget = mDocumentLoader->findWidget(QString("artistSongsDetail"));
-            mInfoBar = qobject_cast<HbGroupBox*>(widget);
-                    
-            QString details;
-            if ( mViewMode == MpCommon::FetchView ) {
-                details = "Select a song";
-                }
-            else if ( mArtist.isEmpty() ) {
-                details = hbTrId("txt_mus_subtitle_unknown_all");
-            }
-            else{
-                details = hbTrId( "txt_mus_subtitle_1_all" ).arg(mArtist);
-    
-            }
-            mInfoBar->setHeading(details);
-        }
-    } 
+    }
     else {
+        // Must delete widgets when last song is deleted and view is reloaded.
         if ( mInfoBar ) {
-            // When last song in an album is deleted and album list is reloaded
             delete mInfoBar;
             mInfoBar = 0;
         }
+        if ( mTBone ) {
+            delete mTBone;
+            mTBone = 0;
+        }
         // Call empty list from base class
         setupEmptyListContainer();
     }
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerfactory.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerfactory.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -24,7 +24,6 @@
 #include "mpcollectioncontainerartists.h"
 #include "mpcollectioncontaineralbums.h"
 #include "mpcollectioncontainerplaylists.h"
-#include "mpcollectioncontainergenres.h"
 #include "mptrace.h"
 
 /*!
@@ -75,24 +74,33 @@
         mCurrentContainer->initialize();
         connect( mCurrentContainer, SIGNAL(itemActivated(int)), mView, SLOT(openIndex(int)) );
         connect( mCurrentContainer, SIGNAL(itemLongPressed(int, QPointF)), mView, SLOT(openContextMenu(int, QPointF)) );
+        connect( mCurrentContainer, SIGNAL(shuffleEnabled(bool)), mView, SLOT(setShuffleAction(bool)) );
         break;
     case ECollectionContextArtists:
-            if ( ( mCurrentContext != ECollectionContextArtistAlbums ) && ( mCurrentContext != ECollectionContextAlbumSongs) )
-                {
-                deleteCurrentContainer();
-                mCurrentContainer = new MpCollectionContainerArtists(mDocumentLoader);
-                mCurrentContainer->initialize();
-                connect( mCurrentContainer, SIGNAL(itemActivated(int)), mView, SLOT(openIndex(int)) );
-                connect( mCurrentContainer, SIGNAL(itemLongPressed(int, QPointF)), mView, SLOT(openContextMenu(int, QPointF)) );
-            }
-            break;
+        if ( ( mCurrentContext != ECollectionContextArtistAlbums )
+               && ( mCurrentContext != ECollectionContextArtistAlbumsTBone)
+               && ( mCurrentContext != ECollectionContextArtistAllSongs) )
+            {
+            deleteCurrentContainer();
+            mCurrentContainer = new MpCollectionContainerArtists(mDocumentLoader);
+            mCurrentContainer->initialize();
+            connect( mCurrentContainer, SIGNAL(itemActivated(int)), mView, SLOT(openIndex(int)) );
+            connect( mCurrentContainer, SIGNAL(itemLongPressed(int, QPointF)), mView, SLOT(openContextMenu(int, QPointF)) );
+            connect( mCurrentContainer, SIGNAL(findAlbumSongs(int)), mView, SLOT(findAlbumSongs(int)) );
+            connect( mCurrentContainer, SIGNAL(playAlbumSongs(int, int)), mView, SLOT(playAlbumSongs(int, int)) );
+            connect( mCurrentContainer, SIGNAL(shuffleEnabled(bool)), mView, SLOT(setShuffleAction(bool)) );
+        }
+        break;
     case ECollectionContextAlbums:
-        if ( mCurrentContext != ECollectionContextAlbumSongs ) {
+        if ( mCurrentContext != ECollectionContextAlbumsTBone ) {
             deleteCurrentContainer();
             mCurrentContainer = new MpCollectionContainerAlbums(mDocumentLoader);
             mCurrentContainer->initialize();
             connect( mCurrentContainer, SIGNAL(itemActivated(int)), mView, SLOT(openIndex(int)) );
             connect( mCurrentContainer, SIGNAL(itemLongPressed(int, QPointF)), mView, SLOT(openContextMenu(int, QPointF)) );
+            connect( mCurrentContainer, SIGNAL(findAlbumSongs(int)), mView, SLOT(findAlbumSongs(int)) );
+            connect( mCurrentContainer, SIGNAL(playAlbumSongs(int, int)), mView, SLOT(playAlbumSongs(int, int)) );
+            connect( mCurrentContainer, SIGNAL(shuffleEnabled(bool)), mView, SLOT(setShuffleAction(bool)) );
         }
         break;
     case ECollectionContextPlaylists:
@@ -102,22 +110,14 @@
             mCurrentContainer->initialize();
             connect( mCurrentContainer, SIGNAL(itemActivated(int)), mView, SLOT(openIndex(int)) );
             connect( mCurrentContainer, SIGNAL(itemLongPressed(int, QPointF)), mView, SLOT(openContextMenu(int, QPointF)) );
+            connect( mCurrentContainer, SIGNAL(shuffleEnabled(bool)), mView, SLOT(setShuffleAction(bool)) );
         }
         break;
-    case ECollectionContextGenres:
-        if ( mCurrentContext != ECollectionContextGenreSongs ) {
-            deleteCurrentContainer();
-            mCurrentContainer = new MpCollectionContainerGenres(mDocumentLoader);
-            mCurrentContainer->initialize();
-            connect( mCurrentContainer, SIGNAL(itemActivated(int)), mView, SLOT(openIndex(int)) );
-            //connect( mCurrentContainer, SIGNAL(itemLongPressed(int, QPointF)), mView, SLOT(openContextMenu(int, QPointF)) );
-        }
-        break;
-    case ECollectionContextAlbumSongs:
     case ECollectionContextArtistAlbums:
-    case ECollectionContextArtistSongs:
+    case ECollectionContextArtistAlbumsTBone:
+    case ECollectionContextArtistAllSongs:
+    case ECollectionContextAlbumsTBone:
     case ECollectionContextPlaylistSongs:
-    case ECollectionContextGenreSongs:
         // For this contexts, reuse the same container.
         break;
     }
@@ -138,21 +138,18 @@
         break;
     case ECollectionContextArtists:
     case ECollectionContextArtistAlbums:
-    case ECollectionContextArtistSongs:
+    case ECollectionContextArtistAlbumsTBone:
+    case ECollectionContextArtistAllSongs:
         delete static_cast<MpCollectionContainerArtists *>(mCurrentContainer);
         break;
     case ECollectionContextAlbums:
-    case ECollectionContextAlbumSongs:
+    case ECollectionContextAlbumsTBone:
         delete static_cast<MpCollectionContainerAlbums *>(mCurrentContainer);
         break;
     case ECollectionContextPlaylists:
     case ECollectionContextPlaylistSongs:
         delete static_cast<MpCollectionContainerPlaylists *>(mCurrentContainer);
         break;
-    case ECollectionContextGenres:
-    case ECollectionContextGenreSongs:
-        delete static_cast<MpCollectionContainerGenres *>(mCurrentContainer);
-        break;
     }
     TX_EXIT
 }
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainergenres.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +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: Music Player collection container definition - Genres.
-*
-*/
-
-// INCLUDE FILES
-#include <QtCore>
-
-#include <hbdocumentloader.h>
-#include <hblistview.h>
-#include <hbindexfeedback.h>
-
-#include "mpcollectioncontainergenres.h"
-#include "mptrace.h"
-
-/*!
-    \class MpCollectionContainerGenres
-    \brief Music Player collection container definition - Genres.
-
-    'Genres' collection container implements the interface specified
-    by MpCollectionContainer. It provides a layout and widgets for the
-    'Genres' view.
-
-    This container handles the following contexts:
-    \li ECollectionContextGenres
-    \li ECollectionContextGenreSongs
-
-    \sa MpCollectionContainer
-*/
-
-/*!
- Constructs the collection container.
- */
-MpCollectionContainerGenres::MpCollectionContainerGenres( HbDocumentLoader *loader, QGraphicsItem *parent )
-    : MpCollectionListContainer(loader, parent)
-{
-    TX_LOG
-}
-
-/*!
- Destructs the collection container.
- */
-MpCollectionContainerGenres::~MpCollectionContainerGenres()
-{
-    TX_ENTRY
-    delete mList;
-    TX_EXIT
-}
-
-/*!
- Sets up the container by organizing widgets according to its layout.
-
- \reimp
- */
-void MpCollectionContainerGenres::setupContainer()
-{
-    TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext);
-    if ( !mList ) {
-        bool ok = false;
-        mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "genre", &ok);
-
-        if ( !ok ) {
-            TX_LOG_ARGS("Error: invalid xml file.");
-            Q_ASSERT_X(ok, "MpCollectionContainerGenres::setupContainer", "invalid xml file");
-        }
-
-        QGraphicsWidget *widget;
-        widget = mDocumentLoader->findWidget(QString("genreList"));
-        mList = qobject_cast<HbListView*>(widget);
-        mIndexFeedback->setItemView(mList);
-        initializeList();
-    }
-    TX_EXIT
-}
-
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerplaylists.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerplaylists.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -23,6 +23,7 @@
 #include <hblabel.h>
 
 #include "mpcollectioncontainerplaylists.h"
+#include "mpcollectiondatamodel.h"
 #include "mpmpxcollectiondata.h"
 #include "mptrace.h"
 
@@ -48,9 +49,12 @@
  */
 MpCollectionContainerPlaylists::MpCollectionContainerPlaylists( HbDocumentLoader *loader, QGraphicsItem *parent )
     : MpCollectionListContainer(loader, parent),
-      mInfoBar(0)
+      mInfoBar(0),
+      mCurrentPlaylistIndex(0)
 {
     TX_LOG
+    mCollectionContext = ECollectionContextPlaylists;
+
 }
 
 /*!
@@ -65,6 +69,60 @@
 }
 
 /*!
+ Sets the data model for the container.
+ */
+void MpCollectionContainerPlaylists::setDataModel( MpCollectionDataModel *dataModel )
+{
+    TX_ENTRY
+    MpCollectionListContainer::setDataModel(dataModel);
+    if ( mCollectionContext == ECollectionContextPlaylists ) {
+        if ( mList ) {
+            if ( mCollectionData->count() ) {
+                mList->scrollTo( dataModel->index(mCurrentPlaylistIndex, 0) );
+            }
+        }
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when an item is selected by the user.
+*/
+void MpCollectionContainerPlaylists::itemActivated( const QModelIndex &index )
+{
+    if ( mCollectionContext == ECollectionContextPlaylists ) {
+        mCurrentPlaylistIndex = index.row();
+        TX_ENTRY_ARGS("mCurrentPlaylistIndex=" << mCurrentPlaylistIndex);
+    }
+    MpCollectionListContainer::itemActivated(index);
+    TX_EXIT
+}
+
+/*!
+ Slot to be called data model has new data.
+ Use cases:
+     1) User renames a playlist.
+	 2) Song added or removed from playlist.
+ */
+void MpCollectionContainerPlaylists::dataReloaded()
+{
+    TX_ENTRY
+    MpCollectionListContainer::dataReloaded();
+    if ( mCollectionContext == ECollectionContextPlaylistSongs ) {
+        // Playlist could have been renamed.
+        QString details = mCollectionData->collectionTitle();
+        mInfoBar->setHeading(details);
+        if ( mCollectionData->count() > 1 ) {
+            emit shuffleEnabled(true);
+        }
+        else {
+            emit shuffleEnabled(false);
+        }
+    }
+    TX_EXIT
+}
+
+/*!
  Sets up the container by organizing widgets according to its layout.
 
  \reimp
@@ -103,7 +161,7 @@
 
             QString details;
             if ( mViewMode == MpCommon::FetchView ) {
-                details = "Select a song";
+                details = hbTrId("txt_mus_subtitle_select_a_song");
             }
             else {
                 details = mCollectionData->collectionTitle();
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectiondocumentloader.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectiondocumentloader.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,7 +15,8 @@
 *
 */
 
-// INCLUDE FILES
+#include <hgmediawall.h>
+
 #include "mpcollectiondocumentloader.h"
 #include "mpnowplayingwidget.h"
 #include "mpcommondefs.h"
@@ -39,8 +40,14 @@
 {
     TX_ENTRY_ARGS("type=" << type << ", name=" << name);
 
-    if (type == MpNowPlayingWidget::staticMetaObject.className()) {
-        QObject *object = new MpNowPlayingWidget(MpCommon::KMusicPlayerUid);
+    if ( type == MpNowPlayingWidget::staticMetaObject.className() ) {
+        QObject *object = new MpNowPlayingWidget();
+        object->setObjectName(name);
+        TX_EXIT
+        return object;
+    }
+    else if ( type == HgMediawall::staticMetaObject.className() ) {
+        QObject *object = new HgMediawall();
         object->setObjectName(name);
         TX_EXIT
         return object;
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectionlistcontainer.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectionlistcontainer.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -49,9 +49,12 @@
     : MpCollectionContainer(loader, parent),
       mList(0),
       mNoMusic(0),
-      mIndexFeedback( new HbIndexFeedback())
+      mIndexFeedback(0),
+      mLongPressedIndex(0),
+      mLongPressEnabled(true)
 {
     TX_ENTRY
+    mIndexFeedback = new HbIndexFeedback();
     mIndexFeedback->setIndexFeedbackPolicy(HbIndexFeedback::IndexFeedbackSingleCharacter);
     TX_EXIT
 }
@@ -91,7 +94,6 @@
 
 /*!
  Slot to be called when an item is selected by the user.
- Start animation.
  */
 void MpCollectionListContainer::itemActivated( const QModelIndex &index )
 {
@@ -102,11 +104,35 @@
 
 /*!
  Slot to be called when an item is long pressed by the user.
+ Remember the index so that we can scroll to this vicinity if the data is reloaded, for example,
+ after a delete operation is selected from the context menu.
  */
 void MpCollectionListContainer::onLongPressed( HbAbstractViewItem *listViewItem, const QPointF &coords )
 {
     TX_ENTRY
-    emit MpCollectionContainer::itemLongPressed(listViewItem->modelIndex().row(), coords);
+    if ( mLongPressEnabled ) {
+        mLongPressedIndex = listViewItem->modelIndex().row();
+        emit MpCollectionContainer::itemLongPressed(mLongPressedIndex, coords);
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to be called data model has new data. 
+ If the data is reloaded as a result of operation like delete, we want to scroll to the 
+ nearby area where user has performed the action.
+ 
+ \sa onLongPressed
+ */
+void MpCollectionListContainer::dataReloaded()
+{
+    TX_ENTRY
+    if ( mLongPressedIndex > 0 ) {
+        --mLongPressedIndex;
+    }
+    if ( mList ) {
+        mList->scrollTo( mDataModel->index(mLongPressedIndex, 0) );
+    }
     TX_EXIT
 }
 
@@ -117,8 +143,6 @@
 {
     TX_ENTRY
     mList->setItemRecycling(true);
-    mList->setScrollingStyle( HbListView::PanOrFlick );
-    mList->setClampingStyle( HbListView::BounceBackClamping );
     mList->setLongPressEnabled(true);
 
     connect(mList, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex)));
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectionpopuphandler.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectionpopuphandler.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -19,21 +19,121 @@
 #include <hbaction.h>
 #include <hbmenu.h>
 #include <hbmessagebox.h>
+#include <hbprogressdialog.h>
 #include <hbselectiondialog.h>
 #include <hbinputdialog.h>
 #include <hblabel.h>
 #include <hblistview.h>
 #include <hbscrollbar.h>
 
-#include "mpengine.h"
+#include "mpenginefactory.h"
 #include "mpcollectionview.h"
 #include "mpmpxcollectiondata.h"
 #include "mpcollectiondatamodel.h"
-#include "mpmpxcollectionviewdefs.h"
+#include "mpcollectiontbonelistdatamodel.h"
 #include "mpcollectionpopuphandler.h"
 #include "mptrace.h"
 
 const int KNullIndex = -1;
+const int KSongsToDisplayProgressDlg = 100;
+
+// Popups launched by this class
+const QString KContextMenu = QString( "ContextMenu" );
+const QString KProgressDialog = QString( "ProgressDialog" );
+const QString KAddToPlaylistSelectionDialog = QString( "AddToPlaylistSelectionDialog" );
+const QString KInputTextDialog = QString( "InputTextDialog" );
+const QString KGetModelIndexesListDialog = QString( "GetModelIndexesListDialog" );
+const QString KArrangeSongsDialog = QString( "ArrangeSongsDialog" );
+const QString KRequestDeleteMessageBox = QString( "RequestDeleteMessageBox" );
+
+// Popups Actions
+const QString KOk = QString( "Ok" );
+const QString KCancel = QString( "Cancel" );
+const QString KNew = QString( "New" );
+const QString KOpen = QString( "Open" );
+const QString KAdd = QString( "Add" );
+const QString KDelete = QString( "Delete" );
+const QString KRenamePlayList = QString( "RenamePlayList" );
+
+
+//------------------------------------------------------------------
+//    MpPopupHandlerPermanentData
+//------------------------------------------------------------------
+
+/*!
+    \class MpPopupHandlerPermanentData. This class is used by MpCollectionPopupHandler to
+    store permanent data needed during asynchronous popups operation.
+
+*/
+
+class MpPopupHandlerPermanentData : public QObject
+{
+    public:
+        MpPopupHandlerPermanentData( QObject *parent=0 );
+        virtual ~MpPopupHandlerPermanentData();
+        void clear();
+    public:
+        MpMpxCollectionData         *mIsolatedCollectionData;        // Not own
+        QAbstractItemModel          *mAbstractItemModel;             // Own
+        QList<int>                  mSelectedItems;
+        QString                     mOriginalName;
+        int                         mContextMenuIndex;
+};
+
+/*!
+ Constructs the popup handler permanent data.
+ */
+MpPopupHandlerPermanentData::MpPopupHandlerPermanentData( QObject *parent )
+    : QObject( parent ),
+      mIsolatedCollectionData( 0 ),
+      mAbstractItemModel( 0 ),
+      mContextMenuIndex( KNullIndex )
+{
+      TX_ENTRY
+      mSelectedItems.clear();
+      mOriginalName.clear();
+      TX_EXIT
+}
+
+/*!
+ Destructs the popup handler permanent data.
+ */
+MpPopupHandlerPermanentData::~MpPopupHandlerPermanentData()
+{
+    TX_ENTRY
+    clear();
+    TX_EXIT
+}
+
+/*!
+ \internal
+  Clears all permanent data. 
+ */
+void MpPopupHandlerPermanentData::clear()
+{
+    TX_ENTRY
+    mSelectedItems.clear();
+    mOriginalName.clear();
+    mContextMenuIndex = KNullIndex;
+    if ( mIsolatedCollectionData ) {
+        MpEngineFactory::sharedEngine()->releaseIsolatedCollection();
+        mIsolatedCollectionData = 0;
+    }
+    if ( mAbstractItemModel ) {
+        delete mAbstractItemModel;
+        mAbstractItemModel = 0;
+    }
+    //clearing any child Objects.
+    foreach (QObject* child, children()) {
+        child->deleteLater();
+    }
+    TX_EXIT
+}
+
+
+//------------------------------------------------------------------
+//    MpCollectionPopupHandler
+//------------------------------------------------------------------
 
 /*!
     \class MpCollectionPopupHandler
@@ -51,10 +151,11 @@
       mView( parent ),
       mOutstandingPopup( 0 ),
       mMpEngine( 0 ),
-      mPermanentData( 0 )
+      mPermanentData( 0 ),
+      mExternalEventsConnected( false )
 {
     TX_ENTRY
-    mMpEngine = MpEngine::instance();
+    mMpEngine = MpEngineFactory::sharedEngine();
     mPermanentData = new MpPopupHandlerPermanentData( this );
     TX_EXIT
 }
@@ -75,76 +176,76 @@
 void MpCollectionPopupHandler::openDefaultViewContextMenu( int index, const QPointF &coords )
 {
     TX_ENTRY
-    HbMenu *contextMenu = 0;
-    HbAction *action;
-    bool usbBlocked = mMpEngine->verifyUsbBlocking();
+
+    if ( mView->isActivated() ) {
+
+        HbMenu *contextMenu = 0;
+        HbAction *action;
+        bool usbBlocked = mMpEngine->verifyUsbBlocking();
 
-    switch ( mMpEngine->collectionData()->context() ) {
-        case ECollectionContextAllSongs:
-        case ECollectionContextArtistSongs:
-        case ECollectionContextAlbumSongs:
-            contextMenu = new HbMenu();
-            action = contextMenu->addAction( hbTrId( "txt_common_menu_play_music" ) );
-            action->setObjectName( "open" );
-            action = contextMenu->addAction( hbTrId( "txt_mus_menu_add_to_playlist" ) );
-            action->setObjectName( "add" );
-            action->setEnabled( !usbBlocked );
-            action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
-            action->setObjectName( "delete" );
-            action->setEnabled( !usbBlocked );
-            break;
-        case ECollectionContextAlbums:
-        case ECollectionContextArtists:
-        case ECollectionContextArtistAlbums:
-            contextMenu = new HbMenu();
-            action = contextMenu->addAction( hbTrId( "txt_common_menu_open" ) );
-            action->setObjectName( "open" );
-            action = contextMenu->addAction( hbTrId( "txt_mus_menu_add_to_playlist" ) );
-            action->setObjectName( "add" );
-            action->setEnabled( !usbBlocked );
-            action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
-            action->setObjectName( "delete" );
-            action->setEnabled( !usbBlocked );
-            break;
-        case ECollectionContextPlaylists:
-            if ( !mMpEngine->collectionData()->isAutoPlaylist( index ) ) {
+        switch ( mMpEngine->collectionData()->context() ) {
+            case ECollectionContextAllSongs:
+            case ECollectionContextArtistAllSongs:
+            case ECollectionContextArtistAlbumsTBone:
+            case ECollectionContextAlbumsTBone:
+                contextMenu = new HbMenu();
+                action = contextMenu->addAction( hbTrId( "txt_common_menu_play_music" ) );
+                action->setObjectName( KOpen );
+                action = contextMenu->addAction( hbTrId( "txt_mus_menu_add_to_playlist" ) );
+                action->setObjectName( KAdd );
+                action->setEnabled( !usbBlocked );
+                action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
+                action->setObjectName( KDelete );
+                action->setEnabled( !usbBlocked );
+                break;
+            case ECollectionContextAlbums:
+            case ECollectionContextArtists:
+            case ECollectionContextArtistAlbums:
                 contextMenu = new HbMenu();
                 action = contextMenu->addAction( hbTrId( "txt_common_menu_open" ) );
-                action->setObjectName( "open" );
+                action->setObjectName( KOpen );
+                action = contextMenu->addAction( hbTrId( "txt_mus_menu_add_to_playlist" ) );
+                action->setObjectName( KAdd );
+                action->setEnabled( !usbBlocked );
                 action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
-                action->setObjectName("delete");
-                action->setEnabled( !usbBlocked );
-                action = contextMenu->addAction( hbTrId( "txt_common_menu_rename_item" ) );
-                action->setObjectName( "rename playlist" );
+                action->setObjectName( KDelete );
                 action->setEnabled( !usbBlocked );
-            }
-            break;
-        case ECollectionContextPlaylistSongs:
-            if ( !mMpEngine->collectionData()->isAutoPlaylist() ) {
-                contextMenu = new HbMenu();
-                action = contextMenu->addAction( hbTrId( "txt_common_menu_play_music" ) );
-                action->setObjectName( "open" );
-                action = contextMenu->addAction( hbTrId( "txt_common_menu_remove" ) );
-                action->setObjectName( "delete" );
-                action->setEnabled( !usbBlocked );
-            }
-            break;
-        default:
-            break;
-    }
+                break;
+            case ECollectionContextPlaylists:
+                if ( !mMpEngine->collectionData()->isAutoPlaylist( index ) ) {
+                    contextMenu = new HbMenu();
+                    action = contextMenu->addAction( hbTrId( "txt_common_menu_open" ) );
+                    action->setObjectName( KOpen );
+                    action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
+                    action->setObjectName(KDelete);
+                    action->setEnabled( !usbBlocked );
+                    action = contextMenu->addAction( hbTrId( "txt_common_menu_rename_item" ) );
+                    action->setObjectName( KRenamePlayList );
+                    action->setEnabled( !usbBlocked );
+                }
+                break;
+            case ECollectionContextPlaylistSongs:
+                if ( !mMpEngine->collectionData()->isAutoPlaylist() ) {
+                    contextMenu = new HbMenu();
+                    action = contextMenu->addAction( hbTrId( "txt_common_menu_play_music" ) );
+                    action->setObjectName( KOpen );
+                    action = contextMenu->addAction( hbTrId( "txt_common_menu_remove" ) );
+                    action->setObjectName( KDelete );
+                    action->setEnabled( !usbBlocked );
+                }
+                break;
+            default:
+                break;
+        }
 
-    if ( contextMenu ) {
-        if ( mView->isActivated() ) {
+        if ( contextMenu ) {
             mPermanentData->mContextMenuIndex = index;
             contextMenu->setPreferredPos( coords );
+            contextMenu->setObjectName( KContextMenu );
             contextMenu->setAttribute( Qt::WA_DeleteOnClose );
             setOutstandingPopup( contextMenu );
             contextMenu->open( this, SLOT( defaultContextMenuOptionSelected( HbAction* ) ) );
         }
-        else {
-            delete contextMenu;
-            contextMenu = 0;
-        }
     }
 
     TX_EXIT
@@ -157,34 +258,32 @@
 {
     TX_ENTRY_ARGS( "index=" << index );
 
-    HbAction *action;
-    HbMenu *contextMenu = 0;
+    if ( mView->isActivated() ) {
+
+        HbAction *action;
+        HbMenu *contextMenu = 0;
 
-    switch ( mMpEngine->collectionData()->context() ) {
-        case ECollectionContextAllSongs:
-        case ECollectionContextArtistSongs:
-        case ECollectionContextAlbumSongs:
-        case ECollectionContextPlaylistSongs:
-        case ECollectionContextGenreSongs:
-            contextMenu = new HbMenu();
-            action = contextMenu->addAction( hbTrId("txt_common_menu_play_music") );
-            action->setEnabled( mMpEngine->verifyUsbBlocking() );
-            break;
-        default:
-            break;
-    }
+        switch ( mMpEngine->collectionData()->context() ) {
+            case ECollectionContextAllSongs:
+            case ECollectionContextArtistAlbumsTBone:
+            case ECollectionContextArtistAllSongs:
+            case ECollectionContextAlbumsTBone:
+            case ECollectionContextPlaylistSongs:
+                contextMenu = new HbMenu();
+                action = contextMenu->addAction( hbTrId("txt_common_menu_play_music") );
+                action->setEnabled( !mMpEngine->verifyUsbBlocking() );
+                break;
+            default:
+                break;
+        }
 
-    if ( contextMenu ) {
-        if ( mView->isActivated() ) {
+        if ( contextMenu ) {
             mPermanentData->mContextMenuIndex = index;
             contextMenu->setPreferredPos( coords );
             contextMenu->setAttribute( Qt::WA_DeleteOnClose );
+            contextMenu->setObjectName( KContextMenu );
             setOutstandingPopup( contextMenu );
-            contextMenu->open( this, SLOT( fetcherContextMenuOptionSelected( HbAction* ) ) );        
-        }
-        else {
-            delete contextMenu;
-            contextMenu = 0;
+            contextMenu->open( this, SLOT( fetcherContextMenuOptionSelected( HbAction* ) ) );
         }
     }
 
@@ -227,6 +326,22 @@
 }
 
 /*!
+ Request to select songs to add to the playlist from TBone
+ */
+void MpCollectionPopupHandler::openAddSongsToPlaylistFromTBone( )
+{
+    TX_ENTRY
+    MpCollectionTBoneListDataModel *model;
+    model = new MpCollectionTBoneListDataModel( mMpEngine->collectionData() );
+    //this item will be deleted when clearing permanent data.
+    model->setParent(mPermanentData);
+    model->refreshModel();
+    getModelIndexes( hbTrId( "txt_mus_title_select_songs" ), model,
+                     SLOT( handleAddSongsToPlayList( HbAction* ) ) );
+    TX_EXIT
+}
+
+/*!
  Request to select songs to be deleted
  */
 void MpCollectionPopupHandler::openDeleteSongs( QAbstractItemModel* model )
@@ -275,43 +390,41 @@
 /*!
  Request to reorder songs
  */
-void MpCollectionPopupHandler::openArrangeSongs( MpMpxCollectionData* collectionData )
+void MpCollectionPopupHandler::openArrangeSongs( )
 {
     TX_ENTRY
-    launchArrangeSongsDialog( collectionData );
+    launchArrangeSongsDialog();
     TX_EXIT
 }
 
 /*!
  Closes any active popup
  */
-void MpCollectionPopupHandler::cancelOngoingPopup()
+void MpCollectionPopupHandler::cancelOngoingPopup( bool onlyContextMenu )
 {
-    TX_ENTRY    
+    TX_ENTRY
     if ( mOutstandingPopup ) {
-         mOutstandingPopup->close();
-         
-         //Delete/Clear permanent data until current popup gets deleted
-         mPermanentData->setParent( mOutstandingPopup );
-         //Generate new permanent data for future popups
-         mPermanentData = new MpPopupHandlerPermanentData( this );
+        if ( onlyContextMenu ) {
+            if ( mOutstandingPopup->objectName() == KContextMenu ) {
+                mOutstandingPopup->close();
+                mPermanentData->clear();
+            }
+        }
+        else {
+            mOutstandingPopup->close();
+            //Delete/Clear permanent data until current popup gets deleted
+            mPermanentData->setParent( mOutstandingPopup );
+            //Generate new permanent data for future popups
+            mPermanentData = new MpPopupHandlerPermanentData( this );
+        }
     }
     else {
         mPermanentData->clear();
     }
-
     TX_EXIT
 }
 
 /*!
- TODO: Workaround for HbListView multiple events: longPress and activated. Remove once HbListView get fixed (wk16)
- */
-bool MpCollectionPopupHandler::showingPopup()
-{
-    return mOutstandingPopup;
-}
-
-/*!
  Slot to be called when an option has been selected from default context menu.
  */
 void MpCollectionPopupHandler::defaultContextMenuOptionSelected( HbAction *selectedAction )
@@ -321,16 +434,16 @@
         QString objectName = selectedAction->objectName();
         QList<int> selection;
         selection.append( mPermanentData->mContextMenuIndex );
-        if ( objectName == "open" ) {
+        if ( objectName == KOpen ) {
             mView->openItem( mPermanentData->mContextMenuIndex );
         }
-        if ( objectName == "add" ) {
+        if ( objectName == KAdd ) {
             launchAddToPlaylistDialog( selection );
         }
-        else if ( objectName == "delete" ) {
+        else if ( objectName == KDelete ) {
             requestDelete( selection );
         }
-        else if ( objectName == "rename playlist" ) {
+        else if ( objectName == KRenamePlayList ) {
             QString currentName;
             currentName = mMpEngine->collectionData()->itemData( 
                     mPermanentData->mContextMenuIndex, MpMpxCollectionData::Title );
@@ -365,7 +478,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "new" ) {
+        if ( objectName == KNew ) {
             QStringList playlists;
             mMpEngine->findPlaylists( playlists );
             queryNewPlaylistName( playlists, SLOT( handleAddToPlaylistGetTextFinished( HbAction* ) ) );
@@ -395,7 +508,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QString newPlaylistName = dialog->value().toString();
             if ( newPlaylistName.length() ) {
                 //Create new playlist with given name
@@ -438,7 +551,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QString newPlaylistName = dialog->value().toString();
             if ( newPlaylistName.length() ) {
                 if ( newPlaylistName != mPermanentData->mOriginalName ) {
@@ -472,7 +585,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QString newPlaylistName = dialog->value().toString();
             if ( newPlaylistName.length() ) {
                 if ( newPlaylistName != mPermanentData->mOriginalName ) {
@@ -505,7 +618,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QModelIndexList selectedModelIndexes;
             selectedModelIndexes = dialog->selectedModelIndexes();
             if ( selectedModelIndexes.count() ) {
@@ -516,6 +629,9 @@
                 launchAddToPlaylistDialog( selection );
             }
         }
+        else {
+            mPermanentData->clear();
+        }
     }
 
     //Dialog is using CollectionView main model, avoid dialog destructor to alter it.
@@ -535,7 +651,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QModelIndexList selectedModelIndexes;
             selectedModelIndexes = dialog->selectedModelIndexes();
             if ( selectedModelIndexes.count() ) {
@@ -565,7 +681,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QModelIndexList selectedModelIndexes;
             selectedModelIndexes = dialog->selectedModelIndexes();
             if ( selectedModelIndexes.count() ) {
@@ -600,7 +716,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QString newPlaylistName = dialog->value().toString();
             if ( newPlaylistName.length() ) {
                 //Store the new playlist name and query for the items to be added
@@ -635,7 +751,7 @@
 
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             QList<int> selection;
             QModelIndexList selectedModelIndexes;
             selectedModelIndexes = dialog->selectedModelIndexes();
@@ -685,7 +801,7 @@
     
     if ( selectedAction ) {
         QString objectName = selectedAction->objectName();
-        if ( objectName == "ok" ) {
+        if ( objectName == KOk ) {
             mMpEngine->deleteSongs( mPermanentData->mSelectedItems );
         }
         selectedAction->setEnabled( false );
@@ -697,6 +813,59 @@
 }
 
 /*!
+ Slot called upon notification from MpEngine indicating start of
+ deleting process.
+ */
+void MpCollectionPopupHandler::handleDeleteStarted( TCollectionContext context, int count )
+{
+    TX_ENTRY
+    if ( context == ECollectionContextPlaylistSongs ) {
+        if (count >= KSongsToDisplayProgressDlg) {  //show progress dialog if removing more than 100 songs
+            launchProgressDialog( "txt_mus_info_removing_songs" );
+        }
+    }
+    else if (context != ECollectionContextPlaylists ) {  //no progress dialog for delete playlist
+        launchProgressDialog( "txt_mus_info_deleting" );
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot called upon notification from MpEngine indicating 'count' songs are going to be added.
+ */
+void MpCollectionPopupHandler::handleAddingSongs( int count )
+{
+    TX_ENTRY
+    if ( count >= KSongsToDisplayProgressDlg )
+    {
+        HbProgressDialog *addSongsWaitNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
+        connect( addSongsWaitNote, SIGNAL( cancelled() ), mMpEngine, SLOT( cancelCollectionRequest() ) );
+        addSongsWaitNote->setModal( true );
+        addSongsWaitNote->setText( hbTrId( "txt_mus_info_adding_songs" ) );
+        addSongsWaitNote->setObjectName( KProgressDialog );
+        addSongsWaitNote->setAttribute( Qt::WA_DeleteOnClose );
+        setOutstandingPopup( addSongsWaitNote );
+        addSongsWaitNote->show();
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot called upon notification from MpEngine indicating end of
+ deleting or adding process.
+ */
+void MpCollectionPopupHandler::handleOperationEnded( bool success )
+{
+    TX_ENTRY
+    Q_UNUSED( success );
+    if ( mOutstandingPopup && ( mOutstandingPopup->objectName() == KProgressDialog ) ) {
+        HbProgressDialog *dialog = qobject_cast<HbProgressDialog *>( mOutstandingPopup );
+        dialog->cancel();
+    }
+    TX_EXIT
+}
+
+/*!
  Slot to be called when a popup is getting closed. Usefull when a dialog is closed before it finishes
  (dialog not closed by a direct user action).
  */
@@ -747,11 +916,7 @@
 void MpCollectionPopupHandler::launchAddToPlaylistDialog( QList<int> &selection )
 {
     TX_ENTRY
-    if (!mView->isActivated()) {
-        mPermanentData->clear();
-        return;
-    }
- 
+
     QStringList playlists;
     mPermanentData->mSelectedItems = selection;
     mMpEngine->findPlaylists( playlists );
@@ -764,11 +929,12 @@
         dialog->setHeadingWidget(new HbLabel( hbTrId( "txt_mus_title_select_playlist" ) ) );
         dialog->clearActions();
         action = new HbAction( hbTrId( "txt_mus_button_new" ) );
-        action->setObjectName( "new" );
+        action->setObjectName( KNew );
         dialog->addAction( action );
         action = new HbAction( hbTrId( "txt_common_button_cancel" ) );
-        action->setObjectName( "cancel" );
+        action->setObjectName( KCancel );
         dialog->addAction( action );
+        dialog->setObjectName( KAddToPlaylistSelectionDialog );
         dialog->setAttribute( Qt::WA_DeleteOnClose );
         setOutstandingPopup( dialog );
         dialog->open( this, SLOT( handleAddToPlaylistDialogFinished( HbAction* ) ) );
@@ -810,11 +976,6 @@
                                         const char *handler )
 {
     TX_ENTRY
-    if ( !mView->isActivated() ) {
-        mPermanentData->clear();
-        return;
-    }
-
     HbAction *action;
     HbInputDialog *dialog = new HbInputDialog();
     dialog->setPromptText( label );
@@ -822,11 +983,12 @@
     dialog->setValue( text );
     dialog->clearActions();
     action = new HbAction( hbTrId( "txt_common_button_ok" ) );
-    action->setObjectName( "ok" );
+    action->setObjectName( KOk );
     dialog->addAction( action );
     action = new HbAction( hbTrId( "txt_common_button_cancel" ) );
-    action->setObjectName( "cancel" );
+    action->setObjectName( KCancel );
     dialog->addAction( action );
+    dialog->setObjectName( KInputTextDialog );
     dialog->setAttribute( Qt::WA_DeleteOnClose );
     setOutstandingPopup( dialog );
     dialog->open( this, handler );
@@ -845,10 +1007,7 @@
 {   
     TX_ENTRY
 
-    if ( !mView->isActivated() ) {
-        mPermanentData->clear();
-        return;
-    }
+    connectExternalEvents();
 
     HbAction *action;
     HbSelectionDialog *dialog = new HbSelectionDialog();
@@ -857,11 +1016,12 @@
     dialog->setModel( model );
     dialog->clearActions();
     action = new HbAction( hbTrId( "txt_common_button_ok" ) );
-    action->setObjectName( "ok" );
+    action->setObjectName( KOk );
     dialog->addAction( action );
     action = new HbAction( hbTrId( "txt_common_button_cancel" ) );
-    action->setObjectName( "cancel" );
+    action->setObjectName( KCancel );
     dialog->addAction( action );
+    dialog->setObjectName( KGetModelIndexesListDialog );
     dialog->setAttribute( Qt::WA_DeleteOnClose );
     setOutstandingPopup( dialog );
     dialog->open( this, handler );
@@ -872,16 +1032,11 @@
 /*!
  \internal
  Launches a list dialog to reorder them.
- \a collectionData Base to generate dialog's model.
  */
-void MpCollectionPopupHandler::launchArrangeSongsDialog( MpMpxCollectionData* collectionData )
+void MpCollectionPopupHandler::launchArrangeSongsDialog()
 {   
     TX_ENTRY
 
-    if ( !mView->isActivated() ) {
-        return;
-    }
-
     HbListView *listView = new HbListView();
     listView->setItemRecycling( true );
     listView->setScrollingStyle( HbListView::PanOrFlick );
@@ -892,7 +1047,7 @@
     listView->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded);
     MpCollectionDataModel *model;
     //Ownership of the model is passed to the listView as a child object.
-    model = new MpCollectionDataModel( collectionData, listView );
+    model = new MpCollectionDataModel( mMpEngine->collectionData() , listView );
     model->refreshModel();
     connect( model,
              SIGNAL( orderChanged( int, int, int, int ) ),
@@ -911,6 +1066,7 @@
     HbAction *action;
     action = new HbAction( hbTrId( "txt_common_button_ok" ) );
     dialog->addAction( action );
+    dialog->setObjectName( KArrangeSongsDialog );
     dialog->setAttribute( Qt::WA_DeleteOnClose );
     setOutstandingPopup(dialog);
     dialog->open( this, SLOT( handleArrangeSongs( HbAction* ) ) );
@@ -929,11 +1085,13 @@
     QString message;
     mPermanentData->mSelectedItems = selection;
     bool needsConfirmation = true;
+    connectExternalEvents();
 
     switch ( mMpEngine->collectionData()->context() ) {
         case ECollectionContextAllSongs:
-        case ECollectionContextArtistSongs:
-        case ECollectionContextAlbumSongs:
+        case ECollectionContextArtistAlbumsTBone:
+        case ECollectionContextArtistAllSongs:
+        case ECollectionContextAlbumsTBone:
             message = hbTrId( "txt_mus_delete_song" );
             break;
         case ECollectionContextArtists:
@@ -947,8 +1105,6 @@
             message = hbTrId( "txt_mus_delete_playlist" );
             break;
         case ECollectionContextPlaylistSongs:
-        case ECollectionContextGenres:
-        case ECollectionContextGenreSongs:
             needsConfirmation = false;
             mMpEngine->deleteSongs( mPermanentData->mSelectedItems );
             mPermanentData->clear();
@@ -963,11 +1119,6 @@
     }
 
     if ( needsConfirmation ) {
-        if ( !mView->isActivated() ) {
-            mPermanentData->clear();
-            return;
-        }
-
         HbAction *action;
         HbMessageBox *dialog = new HbMessageBox( HbMessageBox::MessageTypeQuestion );
 
@@ -975,11 +1126,12 @@
         dialog->setTimeout( HbPopup::NoTimeout );
         dialog->clearActions();
         action = new HbAction( hbTrId( "txt_common_button_yes" ) );
-        action->setObjectName( "ok" );
+        action->setObjectName( KOk );
         dialog->addAction( action );
         action = new HbAction( hbTrId( "txt_common_button_no" ) );
-        action->setObjectName( "cancel" );
+        action->setObjectName( KCancel );
         dialog->addAction( action );
+        dialog->setObjectName( KRequestDeleteMessageBox );
         dialog->setAttribute( Qt::WA_DeleteOnClose );
         setOutstandingPopup( dialog );
         dialog->open( this, SLOT( handleRequestDelete( HbAction* ) ) );
@@ -988,52 +1140,37 @@
     TX_EXIT
 }
 
-
-//------------------------------------------------------------------
-//    MpPopupHandlerPermanentData
-//------------------------------------------------------------------
 /*!
- Constructs the popup handler permanent data.
+ \internal
+ Launches a waiting progress note.
+ \a content String id to display in the dialog.
  */
-MpCollectionPopupHandler::MpPopupHandlerPermanentData::MpPopupHandlerPermanentData( QObject *parent )
-    : QObject( parent ),
-      mIsolatedCollectionData( 0 ),
-      mAbstractItemModel( 0 ),
-      mContextMenuIndex( KNullIndex )
+void MpCollectionPopupHandler::launchProgressDialog( const char *id )
 {
-      TX_ENTRY
-      mSelectedItems.clear();
-      mOriginalName.clear();
-      TX_EXIT
-}
-
-/*!
- Destructs the popup handler permanent data.
- */
-MpCollectionPopupHandler::MpPopupHandlerPermanentData::~MpPopupHandlerPermanentData()
-{
-    TX_ENTRY
-    clear();
-    TX_EXIT
+    HbProgressDialog *deleteProgressNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
+    connect( deleteProgressNote, SIGNAL( cancelled() ), mMpEngine, SLOT( cancelCollectionRequest() ) );
+    deleteProgressNote->setModal( true );
+    deleteProgressNote->setDismissPolicy( HbPopup::NoDismiss );
+    deleteProgressNote->setText( hbTrId( id ) );
+    deleteProgressNote->setObjectName( KProgressDialog );
+    deleteProgressNote->setAttribute( Qt::WA_DeleteOnClose );
+    setOutstandingPopup( deleteProgressNote );
+    deleteProgressNote->show();
 }
 
 /*!
  \internal
-  Clears all permanent data. 
- */
-void MpCollectionPopupHandler::MpPopupHandlerPermanentData::clear()
+ Connects MpEngine signals on demand in order to save time at start up.
+  */
+void MpCollectionPopupHandler::connectExternalEvents()
 {
-    TX_ENTRY
-    mSelectedItems.clear();
-    mOriginalName.clear();
-    mContextMenuIndex = KNullIndex;
-    if ( mIsolatedCollectionData ) {
-        MpEngine::instance()->releaseIsolatedCollection();
-        mIsolatedCollectionData = 0;
+    if ( !mExternalEventsConnected ) {
+        connect( mMpEngine, SIGNAL( deleteStarted( TCollectionContext, int ) ),
+                this, SLOT( handleDeleteStarted( TCollectionContext, int ) ) );
+        connect( mMpEngine, SIGNAL( songsDeleted( bool ) ), this, SLOT( handleOperationEnded( bool ) ) );
+        connect( mMpEngine, SIGNAL( aboutToAddSongs( int ) ), this, SLOT( handleAddingSongs( int ) ) );
+        connect( mMpEngine, SIGNAL( playlistSaved( bool ) ), this, SLOT( handleOperationEnded( bool ) ) );
+        mExternalEventsConnected = true;
     }
-    if ( mAbstractItemModel ) {
-        delete mAbstractItemModel;
-        mAbstractItemModel = 0;
-    }
-    TX_EXIT
 }
+
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectionview.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectionview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -18,7 +18,7 @@
 // INCLUDE FILES
 #include <time.h>
 #include <cstdlib>
-#include <qtcore>
+#include <QtCore>
 
 #include <hbinstance.h>
 #include <hbapplication.h>
@@ -27,8 +27,6 @@
 #include <hbmenu.h>
 #include <hbmessagebox.h>
 #include <hblabel.h>
-#include <QTranslator>
-#include <QLocale>
 #include <hblistview.h>
 #include <hbscrollbar.h>
 
@@ -37,7 +35,7 @@
 #include "mpcollectioncontainerfactory.h"
 #include "mpcollectioncontainer.h"
 #include "mpcollectiondatamodel.h"
-#include "mpengine.h"
+#include "mpenginefactory.h"
 #include "mpmpxcollectiondata.h"
 #include "mpnowplayingwidget.h"
 #include "mpcommondefs.h"
@@ -49,8 +47,21 @@
 
 
 const char*MUSIC_COLLECTION_DOCML = ":/docml/musiccollection.docml";
-const char*EFFECT_SELECT = ":/effects/select.fxml";
-const char*EFFECT_SELECT_END = ":/effects/select_end.fxml";
+
+const char*CONTAINER_EFFECT_GROUP = "mpcontainer";
+
+const char*SHOW_EFFECT = "show";
+const char*HIDE_EFFECT = "hide";
+const char*SHOW_BACK_EFFECT = "show_back";
+const char*HIDE_BACK_EFFECT = "hide_back";
+
+const char*SHOW_EFFECT_RESOURCE_NAME = "view_show_normal";
+const char*HIDE_EFFECT_RESOURCE_NAME = "view_hide_normal";
+const char*SHOW_BACK_EFFECT_RESOURCE_NAME = "view_show_back";
+const char*HIDE_BACK_EFFECT_RESOURCE_NAME = "view_hide_back";
+
+const char*EFFECT_TARGET_SNAPSHOT = "snapshot";
+const char*EFFECT_TARGET_CONTAINER = "container";
 
 const int KMainToolBarAll = 0;
 const int KMainToolBarArtists = 1;
@@ -90,15 +101,15 @@
       mActivated( false ),
       mNowPlayingBanner( 0 ),
       mBannerAttached( false ),
-      mNavigationQuit( 0 ),
-      mNavigationBack( 0 ),
+      mSoftKeyQuit( 0 ),
+      mSoftKeyBack( 0 ),
+      mShuffleAction( 0 ),
+      mShuffleEnabled( false ),
       mDocumentLoader( 0 ),
       mMainContainer( 0 ),
       mMainToolBar( 0 ),
       mPlaylistToolBar( 0 ),
       mSnapshot( 0 ),
-      mMpTranslator( 0 ),
-      mCommonTranslator( 0 ),
       mActivationWaiting( false ),
       mMpPopupHandler( 0 ),
       mUsbBlocked( false )
@@ -113,8 +124,8 @@
 {
     TX_ENTRY
     delete mSnapshot;
-    delete mNavigationQuit;
-    delete mNavigationBack;
+    delete mSoftKeyQuit;
+    delete mSoftKeyBack;
 
     HbToolBar *toolBar = takeToolBar();
     if ( mMainToolBar != toolBar && mPlaylistToolBar != toolBar ) {
@@ -127,12 +138,10 @@
         mPlaylistToolBar->deleteLater();
     }
 
-    delete mCollectionDataModel;
     delete mCollectionContainer;
     delete mContainerFactory;
+    delete mCollectionDataModel;
     delete mDocumentLoader;
-    delete mMpTranslator;
-    delete mCommonTranslator;
     TX_EXIT
 }
 
@@ -143,56 +152,27 @@
 {
     TX_ENTRY
 
-    //Load musicplayer and common translators
-    QString lang = QLocale::system().name();
-    QString path = QString( "z:/resource/qt/translations/" );
-    bool translatorLoaded = false;
-
-    mMpTranslator = new QTranslator( this );
-    translatorLoaded = mMpTranslator->load( path + "musicplayer_" + lang );
-    TX_LOG_ARGS( "Loading translator ok=" << translatorLoaded );
-    if ( translatorLoaded ) {
-        qApp->installTranslator( mMpTranslator );
-    }
-
-    mCommonTranslator = new QTranslator( this );
-    translatorLoaded = mCommonTranslator->load( path + "common_" + lang );
-    TX_LOG_ARGS( "Loading common translator ok=" << translatorLoaded );
-    if ( translatorLoaded ) {
-        qApp->installTranslator( mCommonTranslator );
-    }
-
     mWindow = mainWindow();
 
     // Create softkey actions
-    mNavigationQuit = new HbAction( Hb::QuitNaviAction, this );
-    connect( mNavigationQuit, SIGNAL( triggered() ), this, SLOT( back() ) );
+    mSoftKeyQuit = new HbAction( Hb::QuitNaviAction, this );
+    connect( mSoftKeyQuit, SIGNAL( triggered() ), this, SLOT( back() ) );
 
-    mNavigationBack = new HbAction( Hb::BackNaviAction, this );
-    connect( mNavigationBack, SIGNAL( triggered() ), this, SLOT( back() ) );
+    mSoftKeyBack = new HbAction( Hb::BackNaviAction, this );
+    connect( mSoftKeyBack, SIGNAL( triggered() ), this, SLOT( back() ) );
+
+    mMpEngine = MpEngineFactory::sharedEngine();
 
-    mMpEngine = MpEngine::instance();
-    
-    connect( mMpEngine,
-            SIGNAL( collectionPlaylistOpened() ),
-            this,
-            SLOT( startPlaybackView() ) );
-    connect( mMpEngine,
-            SIGNAL( playlistSaved( bool ) ),
-            this,
-            SLOT( playlistSaved( bool ) ) );
-    connect( mMpEngine,
-            SIGNAL( songsDeleted( bool ) ),
-            this,
-            SLOT( songsDeleted( bool ) ) );
-    connect( mMpEngine,
-            SIGNAL( playlistsRenamed( bool ) ),
-            this,
-            SLOT( playlistsRenamed( bool ) ) );
-    connect( mMpEngine,
-            SIGNAL( isolatedCollectionOpened( MpMpxCollectionData* ) ),
-            this,
-            SLOT( handleIsolatedCollectionOpened( MpMpxCollectionData* ) ) );
+    connect( mMpEngine, SIGNAL( collectionPlaylistOpened() ),
+            this, SLOT( startPlaybackView() ) );
+    connect( mMpEngine, SIGNAL( playlistSaved( bool ) ),
+            this, SLOT( playlistSaved( bool ) ) );
+    connect( mMpEngine, SIGNAL( songsDeleted( bool ) ),
+            this, SLOT( songsDeleted( bool ) ) );
+    connect( mMpEngine, SIGNAL( playlistsRenamed( bool ) ),
+            this, SLOT( playlistsRenamed( bool ) ) );
+    connect( mMpEngine, SIGNAL( isolatedCollectionOpened( MpMpxCollectionData* ) ),
+            this, SLOT( handleIsolatedCollectionOpened( MpMpxCollectionData* ) ) );
 
     mCollectionData = mMpEngine->collectionData();
     qRegisterMetaType<TCollectionContext>("TCollectionContext");
@@ -213,10 +193,13 @@
             // Banner is not needed since playback is stopped when returning
             // from playback preview. Disable the banner from updating.
             mNowPlayingBanner->setEnabled( false );
+            attachNowPlayingBanner( false );
         }
         else {
             connect( mNowPlayingBanner, SIGNAL( clicked() ), this, SLOT( startPlaybackView() ) );
-            connect( mNowPlayingBanner, SIGNAL( playbackAttachmentChanged( bool ) ), this, SLOT( attachNowPlayingBanner( bool ) ) );
+            connect( mNowPlayingBanner, SIGNAL( playbackAttachmentChanged( bool ) ),
+                     this, SLOT( attachNowPlayingBanner( bool ) ) );
+            attachNowPlayingBanner( mNowPlayingBanner->isBannerAttached() );
         }
 
         widget = mDocumentLoader->findWidget( QString( "mainContainer" ) );
@@ -224,29 +207,12 @@
 
         setWidget( mMainContainer );
 
-        HbEffect::add( QString( "container" ),
-                QString( ":/effects/slide_out_to_left.fxml" ),
-                QString( "slide_out_to_left" ) );
-
-        HbEffect::add( QString( "container" ),
-                QString( ":/effects/slide_out_to_right.fxml" ),
-                QString( "slide_out_to_right" ) );
-
-        HbEffect::add( QString( "container" ),
-                QString( ":/effects/slide_out_to_top.fxml" ),
-                QString( "slide_out_to_top" ) );
+        HbEffect::add(
+            QStringList() << CONTAINER_EFFECT_GROUP << CONTAINER_EFFECT_GROUP << CONTAINER_EFFECT_GROUP << CONTAINER_EFFECT_GROUP,
+            QStringList() << SHOW_EFFECT_RESOURCE_NAME <<  HIDE_EFFECT_RESOURCE_NAME << SHOW_BACK_EFFECT_RESOURCE_NAME << HIDE_BACK_EFFECT_RESOURCE_NAME,
+            QStringList() << SHOW_EFFECT << HIDE_EFFECT << SHOW_BACK_EFFECT << HIDE_BACK_EFFECT);
 
-        HbEffect::add( QString( "container" ),
-                QString( ":/effects/slide_in_to_right_and_fade_in.fxml" ),
-                QString( "slide_in_to_right_and_fade_in" ) );
 
-        HbEffect::add( QString( "container" ),
-                QString( ":/effects/slide_in_to_left_and_fade_in.fxml" ),
-                QString( "slide_in_to_left_and_fade_in" ) );
-
-        HbEffect::add( QString( "container" ),
-                QString( ":/effects/slide_in_to_top_and_fade_in.fxml" ),
-                QString( "slide_in_to_top_and_fade_in" ) );
     }
     else {
         TX_LOG_ARGS( "Error: invalid xml file." );
@@ -267,7 +233,7 @@
 
     if ( MpSettingsManager::firstStartup() ) {
         mActivationWaiting = true;
-        mMpEngine->refreshLibrary();
+        mMpEngine->refreshLibrary( true );
     }
 
     TX_EXIT
@@ -285,7 +251,12 @@
     TX_ENTRY_ARGS( "mCollectionContext=" << mCollectionContext );
     if ( mCollectionContext == ECollectionContextUnknown ) {
         // Open 'All Songs' by default
-        mMpEngine->openCollection( ECollectionContextAllSongs );
+        if ( mCollectionData->context() == ECollectionContextAllSongs ){
+            setContext( ECollectionContextAllSongs );
+        }
+        else {
+            mMpEngine->openCollection( ECollectionContextAllSongs );
+        }
     }
     else {
         // This true when returning from other views, e.g. playback view
@@ -301,8 +272,8 @@
 {
     TX_ENTRY
     mActivated = false;
-	
-    cancelOngoingOperation();
+
+    closeActiveDialog( true );
 
     setNavigationAction( 0 );
     TX_EXIT
@@ -319,9 +290,7 @@
         mMpEngine->openCollection( ECollectionContextAllSongs );
     }
 
-    if ( mBannerAttached ) {
-        setBannerVisibility( false );
-    }
+
     TX_EXIT
 }
 
@@ -356,18 +325,24 @@
     if ( mActivated ) {
         startContainerTransition( mCollectionContext, context );
     }
+
     mCollectionContext = context;
+    // Reset softkey and the menu
+    if ( mActivated ) {
+        setSoftkey();
+    }
+
+    // Close any possible popup already launched with previous context
+    closeActiveDialog();
+
+    updateToolBar();
+    updateMenu();
+
     mCollectionContainer = mContainerFactory->createContainer( context );
     mCollectionContainer->setViewMode( mViewMode );
     mCollectionDataModel->refreshModel();
     mCollectionContainer->setDataModel( mCollectionDataModel );
 
-    // Reset softkey and the menu
-    if ( mActivated ) {
-        setSoftkey();
-    }
-    updateToolBar();
-    updateMenu();
     TX_EXIT
 }
 
@@ -421,18 +396,6 @@
 }
 
 /*!
- Slot to be called when 'Genres' action is triggered from the toolbar.
- */
-void MpCollectionView::openGenres()
-{
-    TX_ENTRY
-    if ( mCollectionContext != ECollectionContextGenres ) {
-        mMpEngine->openCollection( ECollectionContextGenres );
-    }
-    TX_EXIT
-}
-
-/*!
  Slot to be called when 'Find' action is triggered from the toolbar.
  */
 void MpCollectionView::find()
@@ -467,22 +430,41 @@
         QString songUri;
         switch ( mCollectionContext ) {
             case ECollectionContextAllSongs:
-            case ECollectionContextArtistSongs:
-            case ECollectionContextAlbumSongs:
+            case ECollectionContextArtistAllSongs:
             case ECollectionContextPlaylistSongs:
-            case ECollectionContextGenreSongs:
                 doOpen = false;
                 songUri = mCollectionData->itemData( index, MpMpxCollectionData::Uri );
                 emit songSelected( songUri );
                 break;
+            case ECollectionContextArtistAlbumsTBone:
+            case ECollectionContextAlbumsTBone:
+                doOpen = false;
+                songUri = mCollectionData->albumSongData( index, MpMpxCollectionData::Uri );
+                emit songSelected( songUri );
+                break;
             default:
                 break;
         }
     }
+
     if ( doOpen ) {
-        // TODO: "if" used as workaround for HbListView multiple events: longPress and activated.
-        //       Remove once HbListView get fixed (wk14 or 16)
-        if ( !mMpPopupHandler->showingPopup() ) {
+        if ( mCollectionContext == ECollectionContextArtistAlbums ) {
+            if ( (mCollectionData->count() > 1) && (index == 0) ) {
+                mMpEngine->openCollectionItem( index );
+            }
+            else {
+                // Artist-Album view going into T-bone. We don't actually open the
+                // collection. Just fake an open.
+                mCollectionData->setContext( ECollectionContextArtistAlbumsTBone );
+            }
+        }
+        else if ( mCollectionContext == ECollectionContextAlbums ) {
+            // Album view going into T-bone. We don't actually open the
+            // collection. Just fake an open.
+            mCollectionData->setContext( ECollectionContextAlbumsTBone );
+        }
+        else {
+            // Real open. Forward it to the engine.
             mMpEngine->openCollectionItem( index );
         }
     }
@@ -490,6 +472,28 @@
 }
 
 /*!
+ Slot to be called when an album is centered in T-Bone view and we need to
+ find the songs beloging to album with \a index.
+ */
+void MpCollectionView::findAlbumSongs( int index )
+{
+    TX_ENTRY_ARGS( "index=" << index );
+    mMpEngine->findAlbumSongs(index);
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when a song is selected in T-Bone view and we need to
+ play album with \a albumIndex starting with the songs with \a songIndex.
+ */
+void MpCollectionView::playAlbumSongs( int albumIndex, int songIndex )
+{
+    TX_ENTRY_ARGS( "albumIndex=" << albumIndex << "songIndex=" << songIndex );
+    mMpEngine->playAlbumSongs(albumIndex, songIndex);
+    TX_EXIT
+}
+
+/*!
  Slot to be called when back/quit softkey is pressed.
  */
 void MpCollectionView::back()
@@ -501,17 +505,28 @@
         case ECollectionContextArtists: 
         case ECollectionContextAlbums:
         case ECollectionContextPlaylists:
-        case ECollectionContextGenres:
             // Exit from these levels.
             doExit = true;
             break;
-        case ECollectionContextAlbumSongs:
         case ECollectionContextArtistAlbums:
-        case ECollectionContextArtistSongs:
+        case ECollectionContextArtistAllSongs:
         case ECollectionContextPlaylistSongs:
-        case ECollectionContextGenreSongs:
             mMpEngine->back();
             break;
+        case ECollectionContextArtistAlbumsTBone:
+            if ( mCollectionData->count() > 1 ) {
+                // Going from T-Bone to Artist-Album view; Need to fake back.
+                mCollectionData->setContext(ECollectionContextArtistAlbums);
+            }
+            else {
+                // There only 1 album under this artist. Return to artist view.
+                mMpEngine->back();
+            }
+            break;
+        case ECollectionContextAlbumsTBone:
+            // Going from T-Bone to Album view; Need to fake back.
+            mCollectionData->setContext(ECollectionContextAlbums);
+            break;
         default:
             doExit = true;
             break;
@@ -524,7 +539,7 @@
             emit songSelected( "" );
         }
         else {
-            emit command( MpCommon::Exit );
+            emit command( MpCommon::SendToBackground );
         }
     }
     TX_EXIT
@@ -568,7 +583,7 @@
  */
 void MpCollectionView::containerTransitionComplete( const HbEffect::EffectStatus &status )
 {    
-    if ( status.userData == "snapshot_effect" ) {
+    if ( status.userData == EFFECT_TARGET_SNAPSHOT ) {
         qobject_cast<QGraphicsView *>( mWindow )->scene()->removeItem( mSnapshot );
         mSnapshot->deleteLater();
         mSnapshot = 0;
@@ -583,16 +598,15 @@
     mMpEngine->setShuffle( true );
     MpSettingsManager::setShuffle( true );
     int index = generateShuffleIndex();
-    openIndex( index );
-}
-
-
-/*!
- Slot to be called when 'Refresh Library' is clicked by the user from the menu.
- */
-void MpCollectionView::refreshLibrary()
-{
-    mMpEngine->refreshLibrary();
+    switch ( mCollectionContext ) {
+        case ECollectionContextArtistAlbumsTBone:
+        case ECollectionContextAlbumsTBone:
+            playAlbumSongs( mCollectionData->currentAlbumIndex(), index );
+            break;
+        default:
+            openIndex( index );
+            break;
+    }
 }
 
 /*!
@@ -600,7 +614,15 @@
  */
 void MpCollectionView::addToPlaylist()
 {
-    mMpPopupHandler->openAddSongsToPlaylist( mCollectionDataModel );
+    switch ( mCollectionContext ) {
+        case ECollectionContextArtistAlbumsTBone:
+        case ECollectionContextAlbumsTBone:
+            mMpPopupHandler->openAddSongsToPlaylistFromTBone();    
+            break;
+        default:
+            mMpPopupHandler->openAddSongsToPlaylist( mCollectionDataModel );
+            break;
+    }
 }
 
 /*!
@@ -627,9 +649,9 @@
  */
 void MpCollectionView::playlistSaved( bool success )
 {
-    if ( success &&
-            ( ECollectionContextPlaylists == mCollectionContext ||
-            ECollectionContextPlaylistSongs == mCollectionContext ) ) {
+    if ( success
+         && ( ECollectionContextPlaylists == mCollectionContext
+              || ECollectionContextPlaylistSongs == mCollectionContext ) ) {
         mMpEngine->reopenCollection();
     }
 }
@@ -687,7 +709,7 @@
  */
 void MpCollectionView::arrangeSongs( )
 {
-    mMpPopupHandler->openArrangeSongs( mCollectionData );
+    mMpPopupHandler->openArrangeSongs();
 }
 
 /*!
@@ -717,7 +739,7 @@
     TX_ENTRY_ARGS( "blocked=" << blocked );
     mUsbBlocked = blocked;
         
-    cancelOngoingOperation();
+    closeActiveDialog();
     
     updateMenu();
     if ( mCollectionContext == ECollectionContextPlaylistSongs ) {
@@ -732,7 +754,7 @@
 void MpCollectionView::handleLibraryAboutToUpdate()
 {
     TX_ENTRY
-    cancelOngoingOperation();
+    closeActiveDialog();
     TX_EXIT
 }
 
@@ -747,7 +769,7 @@
         activateView();
     }
     else {
-        cancelOngoingOperation();
+        closeActiveDialog();
         
         //Update cache, even if collection is in background.
         //Library refreshing could be triggered at any point due USB/MMC events.
@@ -757,6 +779,21 @@
 }
 
 /*!
+ Slot to be called when shuffle action status changes. This is called by the
+ containers. Shuffle is only enabled when there is more than 1 song and the
+ it can change when songs are deleted or when new songs are found during refresh.
+ */
+void MpCollectionView::setShuffleAction( bool enabled )
+{
+    TX_ENTRY
+    mShuffleEnabled = enabled;
+    if ( mShuffleAction ) {
+        mShuffleAction->setEnabled(enabled);
+    }
+    TX_EXIT
+}
+
+/*!
  \internal
  Sets the main ( default ) toolbar for the view.
  */
@@ -766,38 +803,34 @@
     if ( !mMainToolBar ) {
         //Create the toolbar.
         mMainToolBar = new HbToolBar();
+        mMainToolBar->setObjectName( "MainToolBar" );
         mMainToolBar->setOrientation( Qt::Horizontal );
         QActionGroup *actionsGroup = new QActionGroup( mMainToolBar );
         HbAction *action;
 
         // All Songs
-        action = createToolBarAction( actionsGroup, "qtg_mono_songs_all" );
+        action = createToolBarAction( actionsGroup, "qtg_mono_songs_all", "AllSongsAction" );
         connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openSongs() ) );
         mMainToolBar->addAction( action );
         
         // Artists
-        action = createToolBarAction( actionsGroup, "qtg_mono_artists" );
+        action = createToolBarAction( actionsGroup, "qtg_mono_artists", "ArtistsAction" );
         connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openArtists() ) );
         mMainToolBar->addAction( action );
 
         // Albums
-        action = createToolBarAction( actionsGroup, "qtg_mono_music_albums" );
+        action = createToolBarAction( actionsGroup, "qtg_mono_music_albums", "AlbumsAction" );
         connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openAlbums() ) );
         mMainToolBar->addAction( action );
 
         // Playlists
-        action = createToolBarAction( actionsGroup, "qtg_mono_playlist" );
+        action = createToolBarAction( actionsGroup, "qtg_mono_playlist", "PlaylistsAction" );
         connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openPlaylists() ) );
         mMainToolBar->addAction( action );
-
-        // Genres
-        action = createToolBarAction( actionsGroup, "qtg_mono_search" );
-        connect( action, SIGNAL( triggered( bool ) ), this, SLOT( find() ) );
-        mMainToolBar->addAction( action );
-
+        
         if ( mViewMode != MpCommon::FetchView ) {
             // Music Store
-            action = createToolBarAction(actionsGroup, "qtg_mono_ovistore" );
+            action = createToolBarAction(actionsGroup, "qtg_mono_ovistore", "MusicStoreAction" );
             connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openMusicStore() ) );
             mMainToolBar->addAction( action );
         }
@@ -808,15 +841,12 @@
             action = qobject_cast<HbAction*>( mMainToolBar->actions()[KMainToolBarAll] );
             break;
         case ECollectionContextArtists:
-        case ECollectionContextArtistAlbums:
             action = qobject_cast<HbAction*>( mMainToolBar->actions()[KMainToolBarArtists] );
             break;
         case ECollectionContextAlbums:
-        case ECollectionContextAlbumSongs:
             action = qobject_cast<HbAction*>( mMainToolBar->actions()[KMainToolBarAlbums] );
             break;
         case ECollectionContextPlaylists:
-        case ECollectionContextPlaylistSongs:
             action = qobject_cast<HbAction*>( mMainToolBar->actions()[KMainToolBarPlaylists] );
             break;
     }
@@ -843,26 +873,26 @@
     TX_ENTRY
     if ( !mPlaylistToolBar ) {
         mPlaylistToolBar = new HbToolBar();
+        mPlaylistToolBar->setObjectName( "PlaylistToolBar" );
         mPlaylistToolBar->setOrientation( Qt::Horizontal );
         HbAction *action;
-        HbIcon *icon;
 
         action = new HbAction( this );
-        icon = new HbIcon( "qtg_mono_plus" );
-        action->setIcon( *icon );
+        action->setIcon( HbIcon( "qtg_mono_plus" ) );
         connect( action, SIGNAL( triggered( bool ) ), this, SLOT( prepareToAddToPlaylist() ) );
+        action->setObjectName( "AddToPlaylistAction" );
         mPlaylistToolBar->addAction( action );
 
         action = new HbAction( this );
-        icon = new HbIcon( "qtg_mono_minus" );
-        action->setIcon( *icon);
+        action->setIcon( HbIcon( "qtg_mono_minus" ) );
         connect( action, SIGNAL( triggered( bool ) ), this, SLOT( deleteSongs() ) );
+        action->setObjectName( "RemoveFromPlaylistAction" );
         mPlaylistToolBar->addAction( action );
 
         action = new HbAction( this );
-        icon = new HbIcon( "qtg_mono_organize" );
-        action->setIcon( *icon );
+        action->setIcon( HbIcon( "qtg_mono_organize" ) );
         connect( action, SIGNAL( triggered( bool ) ), this, SLOT( arrangeSongs() ) );
+        action->setObjectName( "OrganizePlaylistAction" );
         mPlaylistToolBar->addAction( action );
     }
 
@@ -893,13 +923,15 @@
  */
 HbAction *MpCollectionView::createToolBarAction(
     QActionGroup *actionsGroup,
-    const QString& icon )
+    const QString& icon,
+    const QString& objectName )
 {
     HbIcon actionIcon( icon );
 
     HbAction *action = new HbAction( actionsGroup );
     action->setIcon( actionIcon );
     action->setCheckable( true );
+    action->setObjectName( objectName );
     return action;
 }
 
@@ -913,61 +945,63 @@
     HbMenu *myMenu = new HbMenu();
     HbAction *menuAction;
     if ( mViewMode == MpCommon::DefaultView ) {
-        bool items = mCollectionData->count() != 0;
+        int count = mCollectionData->count();
         switch ( mCollectionContext ) {
-            case ECollectionContextAllSongs:                
-                menuAction = myMenu->addAction( hbTrId( "txt_mus_dblist_shuffle" ) ); 
-                if ( items ){
-                    connect( menuAction, SIGNAL( triggered() ), this, SLOT( shufflePlayAll() ) );
+            case ECollectionContextAllSongs:
+                mShuffleAction = myMenu->addAction( hbTrId( "txt_mus_opt_shuffle" ) );
+                connect( mShuffleAction, SIGNAL( triggered() ), this, SLOT( shufflePlayAll() ) );
+                if ( count <= 1 ) {
+                    mShuffleAction->setDisabled( true );
                 }
-                else {
-                    menuAction->setDisabled( true );
-                }
-                
-                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) ); 
-                if ( items && !mUsbBlocked ) {
+                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) );
+                if ( count && !mUsbBlocked ) {
                     connect( menuAction, SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
                 }
                 else {
                     menuAction->setDisabled( true );
                 }
-                
-                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) ); 
+                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) );
                 if ( !mUsbBlocked ) {
-                    connect( menuAction, SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );                
-                }
-                else {
-                    menuAction->setDisabled( true );
-                }
-                
-                connect( myMenu->addAction(hbTrId("txt_common_opt_exit")), SIGNAL(triggered()), this, SLOT(exit()) );
-                break;
-  
-            case ECollectionContextArtists:
-                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) ); 
-                if ( !mUsbBlocked ) {
-                    connect( menuAction, SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );                
+                    connect( menuAction, SIGNAL( triggered() ), mMpEngine, SLOT( refreshLibrary() ) );
                 }
                 else {
                     menuAction->setDisabled( true );
                 }
                 connect( myMenu->addAction(hbTrId("txt_common_opt_exit")), SIGNAL(triggered()), this, SLOT(exit()) );
                 break;
+            case ECollectionContextArtists:
             case ECollectionContextAlbums:
-                //connect( myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) ), SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
-                // Todo: View as coverflow
                 menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) );
                 if ( !mUsbBlocked ) {
-                    connect( menuAction, SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );
+                    connect( menuAction, SIGNAL( triggered() ), mMpEngine, SLOT( refreshLibrary() ) );                
                 }
                 else {
                     menuAction->setDisabled( true );
                 }
                 connect( myMenu->addAction(hbTrId("txt_common_opt_exit")), SIGNAL(triggered()), this, SLOT(exit()) );
                 break;
-            case ECollectionContextArtistSongs:
-            case ECollectionContextAlbumSongs:
-                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) ); 
+            case ECollectionContextArtistAlbumsTBone:
+            case ECollectionContextAlbumsTBone:
+                mShuffleAction = myMenu->addAction( hbTrId( "txt_mus_opt_shuffle" ) );
+                connect( mShuffleAction, SIGNAL( triggered() ), this, SLOT( shufflePlayAll() ) );
+                if ( !mShuffleEnabled ) {
+                    mShuffleAction->setDisabled( true );
+                }
+                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) );
+                if ( !mUsbBlocked ) {
+                    connect( menuAction, SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
+                }
+                else {
+                    menuAction->setDisabled( true );
+                }
+                break;
+            case ECollectionContextArtistAllSongs:
+                mShuffleAction = myMenu->addAction( hbTrId( "txt_mus_opt_shuffle" ) );
+                connect( mShuffleAction, SIGNAL( triggered() ), this, SLOT( shufflePlayAll() ) );
+                if ( count <= 1 ) {
+                    mShuffleAction->setDisabled( true );
+                }
+                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) );
                 if ( !mUsbBlocked ) {
                     connect( menuAction, SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
                 }
@@ -986,7 +1020,12 @@
                 connect( myMenu->addAction(hbTrId("txt_common_opt_exit")), SIGNAL(triggered()), this, SLOT(exit()) );
                 break;
             case ECollectionContextPlaylistSongs:
-                if ( !mCollectionData->isAutoPlaylist() ){
+                mShuffleAction = myMenu->addAction( hbTrId( "txt_mus_opt_shuffle" ) );
+                connect( mShuffleAction, SIGNAL( triggered() ), this, SLOT( shufflePlayAll() ) );
+                if ( count <= 1 ) {
+                    mShuffleAction->setDisabled( true );
+                }
+                if ( !mCollectionData->isAutoPlaylist() ) {
                 menuAction = myMenu->addAction( hbTrId( "txt_common_menu_rename_item" ) );
                     if ( !mUsbBlocked ) {
                         connect( menuAction, SIGNAL( triggered() ), this, SLOT( renameCurrentPlaylistContainer() ) );
@@ -1002,21 +1041,12 @@
     }
     else if ( mViewMode == MpCommon::FetchView ) {
         switch ( mCollectionContext ) {
-            case ECollectionContextAllSongs:                
-                menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) ); 
-                if ( !mUsbBlocked ) {
-                    connect( menuAction, SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );                
-                }
-                else {
-                    menuAction->setDisabled( true );
-                }
-                break;
+            case ECollectionContextAllSongs:
+            case ECollectionContextArtists:
             case ECollectionContextAlbums:
-                //connect( myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) ), SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
-                // Todo: View as coverflow
                 menuAction = myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) );
                 if ( !mUsbBlocked ) {
-                    connect( menuAction, SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );
+                    connect( menuAction, SIGNAL( triggered() ), mMpEngine, SLOT( refreshLibrary() ) );
                 }
                 else {
                     menuAction->setDisabled( true );
@@ -1050,9 +1080,9 @@
             }
             break;
         case ECollectionContextArtistAlbums:
-        case ECollectionContextArtistSongs:
-        case ECollectionContextAlbumSongs:
-        case ECollectionContextGenreSongs:
+        case ECollectionContextArtistAlbumsTBone:
+        case ECollectionContextArtistAllSongs:
+        case ECollectionContextAlbumsTBone:
             if ( !toolBar()->actions().empty() ) {
                 takeToolBar();
                 setToolBar( new HbToolBar );
@@ -1074,7 +1104,7 @@
     if ( mViewMode == MpCommon::FetchView ) {
         // 'Back' is used in all views in fetch mode because we must
         // appear as an embedded application.
-        setNavigationAction( mNavigationBack );
+        setNavigationAction( mSoftKeyBack );
     }
     else {
         switch ( mCollectionContext ) {
@@ -1082,11 +1112,10 @@
             case ECollectionContextArtists:
             case ECollectionContextAlbums:
             case ECollectionContextPlaylists:
-            case ECollectionContextGenres:
-                setNavigationAction( mNavigationQuit );
+                setNavigationAction( mSoftKeyQuit );
                 break;
             default:
-                setNavigationAction( mNavigationBack );
+                setNavigationAction( mSoftKeyBack );
                 break;
         }
     }
@@ -1121,7 +1150,16 @@
 int MpCollectionView::generateShuffleIndex()
 {
     int low = 0;
-    int high = mCollectionData->count();
+    int high = 0;
+    switch ( mCollectionContext ) {
+        case ECollectionContextArtistAlbumsTBone:
+        case ECollectionContextAlbumsTBone:
+            high = mCollectionData->albumSongsCount();
+            break;
+        default:
+            high = mCollectionData->count();
+            break;
+    }
 
     time_t seconds;
     time( &seconds );
@@ -1148,73 +1186,50 @@
     mWindow->scene()->addItem( mSnapshot );
 
 
-    if ( ( contextFrom == ECollectionContextAlbums && contextTo == ECollectionContextAlbumSongs ) ||
-            ( contextFrom == ECollectionContextArtists && contextTo == ECollectionContextArtistAlbums ) ||
-            ( contextFrom == ECollectionContextArtistAlbums && contextTo == ECollectionContextAlbumSongs ) ||
-            ( contextFrom == ECollectionContextArtistAlbums && contextTo == ECollectionContextArtistSongs ) ||
-            ( contextFrom == ECollectionContextPlaylists && contextTo == ECollectionContextPlaylistSongs ) ||
-            ( contextFrom == ECollectionContextGenres && contextTo == ECollectionContextGenreSongs ) ) {
+    if( ( contextFrom == ECollectionContextAlbumsTBone && contextTo == ECollectionContextAlbums ) ||
+             ( contextFrom == ECollectionContextArtistAlbums && contextTo == ECollectionContextArtists ) ||
+             ( contextFrom == ECollectionContextArtistAlbumsTBone && contextTo == ECollectionContextArtistAlbums ) ||
+             ( contextFrom == ECollectionContextArtistAlbumsTBone && contextTo == ECollectionContextArtists ) ||
+             ( contextFrom == ECollectionContextArtistAllSongs && contextTo == ECollectionContextArtistAlbums ) ||
+             ( contextFrom == ECollectionContextPlaylistSongs && contextTo == ECollectionContextPlaylists ) ) {
         HbEffect::start( mSnapshot,
-                QString( "container" ),
-                QString( "slide_out_to_left" ),
-                this,
-                "containerTransitionComplete",
-                QString( "snapshot_effect") );
-
-        HbEffect::start( mMainContainer,
-                QString( "container" ),
-                QString( "slide_in_to_left_and_fade_in" ),
+                QString( CONTAINER_EFFECT_GROUP ),
+                QString( HIDE_BACK_EFFECT ),
                 this,
                 "containerTransitionComplete",
-                QString( "mainContainer_effect") );
-    }
-    else if( ( contextFrom == ECollectionContextAlbumSongs && contextTo == ECollectionContextAlbums ) ||
-            ( contextFrom == ECollectionContextArtistAlbums && contextTo == ECollectionContextArtists ) ||
-            ( contextFrom == ECollectionContextAlbumSongs && contextTo == ECollectionContextArtistAlbums ) ||
-            ( contextFrom == ECollectionContextArtistSongs && contextTo == ECollectionContextArtistAlbums ) ||
-            ( contextFrom == ECollectionContextPlaylistSongs && contextTo == ECollectionContextPlaylists ) ||
-            ( contextFrom == ECollectionContextGenreSongs && contextTo == ECollectionContextGenres ) ) {
-        HbEffect::start( mSnapshot,
-                QString( "container" ),
-                QString( "slide_out_to_right" ),
+                QString( EFFECT_TARGET_SNAPSHOT) );
+
+        HbEffect::start( mMainContainer,
+                QString( CONTAINER_EFFECT_GROUP ),
+                QString( SHOW_BACK_EFFECT ),
                 this,
                 "containerTransitionComplete",
-                QString( "snapshot_effect") );
-
-        HbEffect::start( mMainContainer,
-                QString( "container" ),
-                QString( "slide_in_to_right_and_fade_in" ),
-                this,
-                "containerTransitionComplete",
-                QString( "mainContainer_effect") );
+                QString( EFFECT_TARGET_CONTAINER) );
     }
     else {
         HbEffect::start( mSnapshot,
-                QString( "container" ),
-                QString( "slide_out_to_top" ),
+                QString( CONTAINER_EFFECT_GROUP ),
+                QString( HIDE_EFFECT ),
                 this,
                 "containerTransitionComplete",
-                QString( "snapshot_effect") );
+                QString( EFFECT_TARGET_SNAPSHOT) );
 
         HbEffect::start( mMainContainer,
-                QString( "container" ),
-                QString( "slide_in_to_top_and_fade_in" ),
+                QString( CONTAINER_EFFECT_GROUP ),
+                QString( SHOW_EFFECT ),
                 this,
                 "containerTransitionComplete",
-                QString( "mainContainer_effect") );
+                QString( EFFECT_TARGET_CONTAINER ) );
     }
-
 }
 
 /*!
  \internal
  Closes any active dialog or menu.
  */
-void MpCollectionView::cancelOngoingOperation()
+void MpCollectionView::closeActiveDialog( bool onlyContextMenu )
 {
-    if ( mActivated ) {
-        mMpPopupHandler->cancelOngoingPopup();
-        menu()->close();
-    }
+    mMpPopupHandler->cancelOngoingPopup( onlyContextMenu );
+    menu()->close();
 }
 
--- a/mpviewplugins/mpcollectionviewplugin/src/mpsnapshotwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpsnapshotwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,7 +17,7 @@
 
 #include <QPainter>
 #include <QImage>
-#include <qgraphicsview.h>
+#include <QGraphicsView>
 
 #include "mpsnapshotwidget.h"
 #include "mptrace.h"
@@ -39,6 +39,7 @@
       mSnapshot(0)
 {
     TX_ENTRY_ARGS( " Parent=" << (void *)parent )
+    setFlag( QGraphicsItem::ItemHasNoContents, false );
     TX_EXIT
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,22 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpcollectioncontainers \
+          unittest_mpcollectiondocumentloader \
+          unittest_mpsnapshotwidget
+
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/inc/unittest_mpcollectioncontainers.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/inc/unittest_mpcollectioncontainers.h	Thu Jul 22 16:32:33 2010 +0100
@@ -20,7 +20,7 @@
 
 #include <QtTest/QtTest>
 
-//Forward declarations
+class QTranslator;
 class MpCollectionContainer;
 class MpCollectionContainerFactory;
 class MpCollectionDocumentLoader;
@@ -48,11 +48,34 @@
 
 private slots:
 
-    void testConstructors();
-    void testSetupContainers();
-    void testItemActivated();
+    void testConstructorAllSongs();
+    void testConstructorArtists();
+    void testConstructorAlbums();
+    void testConstructorPlaylists();
+
+    void testSetupContainerAllSongs();
+    void testSetupContainerAllSongsFetcher();
+    void testSetupContainerAllSongsNoData();
+    void testSetupContainerArtists();
+    void testSetupContainerArtistsFetcher();
+    void testSetupContainerArtistsNoData();
+    void testSetupContainerAlbums();
+    void testSetupContainerAlbumsFetcher();
+    void testSetupContainerAlbumsNoData();
+    void testSetupContainerPlaylists();
+    void testSetupContainerPlaylistsFetcher();
+    void testSetupContainerPlaylistsNoData();
+
+    void testItemActivatedAllSongs();
+    void testItemActivatedArtists();
+    void testItemActivatedAlbums();
+    void testItemActivatedPlaylists();
+
     void testOnLongPressed();
-    
+
+    void testAlbumCenteredArtists();
+    void testAlbumCenteredAlbums();
+
 private:
 
     MpCollectionContainer           *mTest;
@@ -60,6 +83,8 @@
     MpCollectionDataModel           *mCollectionDataModel;
     MpMpxCollectionData             *mCollectionData;
 
+    QTranslator                     *mMpTranslator; // Own
+
 };
 
 #endif  // TESTMPCOLLECTIONCONTAINERS_H
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/src/unittest_mpcollectioncontainers.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/src/unittest_mpcollectioncontainers.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,12 +15,16 @@
 *
 */
 
-#include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
-#include <hbListView.h>
-#include <hbListViewItem.h>
+#include <QTranslator>
+#include <QLocale>
+#include <QSignalSpy>
+#include <hblistview.h>
+#include <hblistviewitem.h>
+#include <hbindexfeedback.h>
+#include <hbgroupbox.h>
+#include <hgmediawall.h>
+
+#include "mpcommondefs.h"
 #include "mpcollectiondocumentloader.h"
 #include "stub/inc/mpcollectionview.h"
 #include "stub/inc/mpmpxcollectiondata.h"
@@ -39,7 +43,6 @@
 #include "mpcollectioncontainerartists.h"
 #include "mpcollectioncontaineralbums.h"
 #include "mpcollectioncontainerplaylists.h"
-#include "mpcollectioncontainergenres.h"
 #undef private
 #undef protected
 /*!
@@ -47,30 +50,34 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
+    QApplication app(argc, argv);
     TestMpCollectionContainers tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpcollectioncontainers.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpcollectioncontainers.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpCollectionContainers::TestMpCollectionContainers()
     : mTest(0),
       mCollectionDataModel(0),
-      mCollectionData(0)
+      mCollectionData(0),
+      mMpTranslator(0)
 {
 }
 
 TestMpCollectionContainers::~TestMpCollectionContainers()
 {
     delete mTest;
+    delete mMpTranslator;
 }
 
 /*!
@@ -78,6 +85,15 @@
  */
 void TestMpCollectionContainers::initTestCase()
 {
+    QString lang = QLocale::system().name();
+    QString path = QString("z:/resource/qt/translations/");
+    bool translatorLoaded = false;
+
+    mMpTranslator = new QTranslator(this);
+    translatorLoaded = mMpTranslator->load(path + "musicplayer_" + lang);
+    if ( translatorLoaded ) {
+        qApp->installTranslator(mMpTranslator);
+    }
 }
 
 /*!
@@ -96,6 +112,7 @@
     mView->initializeView();
     mCollectionData = new MpMpxCollectionData();
     mCollectionDataModel = new MpCollectionDataModel(mCollectionData);
+    mTest = 0;
 }
 
 /*!
@@ -109,345 +126,661 @@
 }
 
 /*!
- Test constructors
+ Test constructor for AllSongs container
+ */
+void TestMpCollectionContainers::testConstructorAllSongs()
+{
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+    QCOMPARE(mTest->mCollectionContext, ECollectionContextAllSongs);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
+    MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+    QVERIFY(allSongs->mList == 0);
+    QVERIFY(allSongs->mInfoBar == 0);
+    QVERIFY(allSongs->mNoMusic == 0);
+    QVERIFY(allSongs->mIndexFeedback != 0);
+    QVERIFY(allSongs->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+}
+
+/*!
+ Test constructor for Artists container
  */
-void TestMpCollectionContainers::testConstructors()
+void TestMpCollectionContainers::testConstructorArtists()
+{
+    MpCollectionContainer *temp = 0;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+    QCOMPARE(mTest->mCollectionContext, ECollectionContextArtists);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
+    MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+    QVERIFY(artists->mList == 0);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mNoMusic == 0);
+    QVERIFY(artists->mIndexFeedback != 0);
+    QVERIFY(artists->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+
+    temp = mView->mContainerFactory->createContainer(ECollectionContextArtistAlbums);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtistAlbums);
+    // Verify that the same container is used.
+    QVERIFY(mTest == temp);
+
+    temp = 0;
+    temp = mView->mContainerFactory->createContainer(ECollectionContextArtistAlbumsTBone);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtistAlbumsTBone);
+    // Verify that the same container is used.
+    QVERIFY(mTest == temp);
+
+    temp = 0;
+    temp = mView->mContainerFactory->createContainer(ECollectionContextArtistAllSongs);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtistAllSongs);
+    // Verify that the same container is used.
+    QVERIFY(mTest == temp);
+}
+
+/*!
+ Test constructor for Albums container
+ */
+void TestMpCollectionContainers::testConstructorAlbums()
 {
-    mTest = new MpCollectionContainerAllSongs(mView->mDocumentLoader);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mNoMusic == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-    
-    QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
+    MpCollectionContainer *temp = 0;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+    QCOMPARE(mTest->mCollectionContext, ECollectionContextAlbums);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
+    MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+    QVERIFY(albums->mList == 0);
+    QVERIFY(albums->mInfoBar == 0);
+    QVERIFY(albums->mNoMusic == 0);
+    QVERIFY(albums->mIndexFeedback != 0);
+    QVERIFY(albums->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+
+    temp = 0;
+    temp = mView->mContainerFactory->createContainer(ECollectionContextAlbumsTBone);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbumsTBone);
+    // Verify that the same container is used.
+    QVERIFY(mTest == temp);
+}
+
+/*!
+ Test constructor for Playlists container
+ */
+void TestMpCollectionContainers::testConstructorPlaylists()
+{
+    MpCollectionContainer *temp = 0;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+    QCOMPARE(mTest->mCollectionContext, ECollectionContextPlaylists);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
+    MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+
+    QVERIFY(playlists->mList == 0);
+    QVERIFY(playlists->mInfoBar == 0);
+    QVERIFY(playlists->mNoMusic == 0);
+    QVERIFY(playlists->mIndexFeedback != 0);
+    QVERIFY(playlists->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+
+    temp = 0;
+    temp = mView->mContainerFactory->createContainer(ECollectionContextPlaylistSongs);
+    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylistSongs);
+    // Verify that the same container is used.
+    QVERIFY(mTest == temp);
+}
+
+/*!
+ Test setupContainer via setDataModel for AllSongs container.
+ */
+void TestMpCollectionContainers::testSetupContainerAllSongs()
+{
+    mCollectionData->mCount = 5;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+
+    QVERIFY(allSongs->mList != 0);
+    QVERIFY(allSongs->mInfoBar != 0);
+    QVERIFY(allSongs->mNoMusic == 0);
+    QCOMPARE(allSongs->mList->itemRecycling(), true);
+    QCOMPARE(allSongs->mList->scrollingStyle(), HbListView::PanOrFlick);
+    QCOMPARE(allSongs->mList->clampingStyle(), HbListView::BounceBackClamping);
+    QCOMPARE(allSongs->mList->frictionEnabled(), true);
+    QCOMPARE(allSongs->mList->longPressEnabled(), true);
+    QCOMPARE(allSongs->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+    QCOMPARE(allSongs->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+    QVERIFY(allSongs->mIndexFeedback->itemView() == allSongs->mList);
+
+    // Normal mode. Should see count.
+    QCOMPARE(allSongs->mInfoBar->heading(), hbTrId("txt_mus_subhead_ln_songs", 5));
+}
+
+/*!
+ Test setupContainer via setDataModel for AllSongs container in Fetcher mode.
+ */
+void TestMpCollectionContainers::testSetupContainerAllSongsFetcher()
+{
+    mCollectionData->mCount = 5;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+    mTest->setViewMode(MpCommon::FetchView);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+
+    // Fetcher mode.
+    QCOMPARE(allSongs->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+}
+
+/*!
+ Test setupContainer via setDataModel for AllSongs container with no data.
+ */
+void TestMpCollectionContainers::testSetupContainerAllSongsNoData()
+{
+    mCollectionData->mCount = 0;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+
+    QVERIFY(allSongs->mList == 0);
+    QVERIFY(allSongs->mInfoBar == 0);
+    QVERIFY(allSongs->mNoMusic != 0);
+}
 
-    delete mTest;
-    mTest = 0;
-    
-    mTest = new MpCollectionContainerArtists(mView->mDocumentLoader);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mNoMusic == 0);
-	QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-    	
-    QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-    
-    delete mTest;
-    mTest = 0;
-    
-    mTest = new MpCollectionContainerAlbums(mView->mDocumentLoader);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-    QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-    
-    delete mTest;
-    mTest = 0;
-    
-    mTest = new MpCollectionContainerPlaylists(mView->mDocumentLoader);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-    QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-    
-    delete mTest;
-    mTest = 0;
-    
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mNoMusic == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-    QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
-   
-    mTest = 0;   
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-    QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-      
-    mTest = 0;   
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-    QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);        
+/*!
+ Test setupContainer via setDataModel for Artists container.
+ */
+void TestMpCollectionContainers::testSetupContainerArtists()
+{
+    mCollectionData->mCount = 5;
+
+    // User selects Artists
+    mCollectionData->mContext = ECollectionContextArtists;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mTBone == 0);
+    QVERIFY(artists->mNoMusic == 0);
+    QCOMPARE(artists->mList->itemRecycling(), true);
+    QCOMPARE(artists->mList->scrollingStyle(), HbListView::PanOrFlick);
+    QCOMPARE(artists->mList->clampingStyle(), HbListView::BounceBackClamping);
+    QCOMPARE(artists->mList->frictionEnabled(), true);
+    QCOMPARE(artists->mList->longPressEnabled(), true);
+    QCOMPARE(artists->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+    QCOMPARE(artists->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+    QVERIFY(artists->mIndexFeedback->itemView() == artists->mList);
+    QVERIFY(artists->mCurrentAlbumIndex == 0);
+
+    // User selects an artist - case where artist has more than 1 album
+    mCollectionData->mContext = ECollectionContextArtistAlbums;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar != 0);
+    QCOMPARE(artists->mInfoBar->heading(), QString("Title"));
+
+    // User selects an album
+    QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+    mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
+    mCollectionData->mCurrentAlbumAvailable = false;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbumsTBone);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mTBone != 0);
+    QVERIFY(artists->mTBoneListModel != 0);
+    QVERIFY(artists->mAlbumIndexOffset == 1);
+    QCOMPARE(artists->mTBone->reflectionsEnabled(), false);
+    QCOMPARE(spy.count(), 1);
+
+    // User selects back - navigate back to artist albums
+    mCollectionData->mContext = ECollectionContextArtistAlbums;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar != 0);
+    QVERIFY(artists->mTBone == 0);
+    QVERIFY(artists->mAlbumIndexOffset == 0);
+    QCOMPARE(artists->mInfoBar->heading(), QString("Title"));
+
+    // User selects Artist's all songs
+    mCollectionData->mContext = ECollectionContextArtistAllSongs;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAllSongs);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar != 0);
+    QCOMPARE(artists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_1_all").arg("Title"));
+
+    // User selects back - navigate back to artist albums
+    mCollectionData->mContext = ECollectionContextArtistAlbums;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+
+    // User selects back - navigate back to artists
+    mCollectionData->mContext = ECollectionContextArtists;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mCurrentAlbumIndex == 0);
+
+    // User selects an artist - case where artist has 1 album
+    // Goes directly to TBone
+    mCollectionData->mCount = 1;
+    mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
+    mCollectionData->mCurrentAlbumAvailable = true;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbumsTBone);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mTBone != 0);
+    QVERIFY(artists->mTBoneListModel != 0);
+    QVERIFY(artists->mAlbumIndexOffset == 0);
+    // We set mCurrentAlbumAvailable to true, so no signal should emit.
+    QCOMPARE(spy.count(), 1);
+
+    // User selects back - navigate back to artists
+    mCollectionData->mContext = ECollectionContextArtists;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mTBone == 0);
+    QVERIFY(artists->mCurrentAlbumIndex == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Artists container in Fetcher mode.
+ */
+void TestMpCollectionContainers::testSetupContainerArtistsFetcher()
+{
+    mCollectionData->mCount = 1;
+
+    // User selects Artists
+    mCollectionData->mContext = ECollectionContextArtists;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+    mTest->setViewMode(MpCommon::FetchView);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+
+    // User selects an artist - case where artist has 1 album
+    // Goes directly to TBone
+    QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+    mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
+    mCollectionData->mCurrentAlbumAvailable = false;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbumsTBone);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar != 0);
+    QVERIFY(artists->mTBone != 0);
+    QVERIFY(artists->mTBoneListModel != 0);
+    QVERIFY(artists->mAlbumIndexOffset == 0);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(artists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+
+    // User selects back - navigate back to artists
+    mCollectionData->mContext = ECollectionContextArtists;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mTBone == 0);
+    QVERIFY(artists->mCurrentAlbumIndex == 0);
+
+    // User selects an artist - case where artist has more than 1 album
+    mCollectionData->mCount = 5;
+    mCollectionData->mContext = ECollectionContextArtistAlbums;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar != 0);
+    QCOMPARE(artists->mInfoBar->heading(), QString("Title"));
+
+    // User selects Artist's all songs
+    mCollectionData->mContext = ECollectionContextArtistAllSongs;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAllSongs);
+    QVERIFY(artists->mList != 0);
+    QVERIFY(artists->mInfoBar != 0);
+    QCOMPARE(artists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
 }
 
 /*!
- Test setupContainer via setDataModel 
+ Test setupContainer via setDataModel for Artists container with no data.
  */
-void TestMpCollectionContainers::testSetupContainers()
+void TestMpCollectionContainers::testSetupContainerArtistsNoData()
 {
-    mCollectionData->mCount = 1;
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+    mCollectionData->mCount = 0;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
     mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar != 0);
-    QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerAllSongs*>(mTest)->mList);    
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
-    
-    mTest = 0;   
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
-    mCollectionData->mContext = ECollectionContextArtists;
+    MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+
+    QVERIFY(artists->mList == 0);
+    QVERIFY(artists->mInfoBar == 0);
+    QVERIFY(artists->mTBone == 0);
+    QVERIFY(artists->mNoMusic != 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Albums container.
+ */
+void TestMpCollectionContainers::testSetupContainerAlbums()
+{
+    mCollectionData->mCount = 5;
+
+    // User selects Albums
+    mCollectionData->mContext = ECollectionContextAlbums;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
     mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar == 0);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerArtists*>(mTest)->mList);    
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
-    
-    mCollectionData->mContext = ECollectionContextArtistAlbums;
+    MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+    QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+    QVERIFY(albums->mList != 0);
+    QVERIFY(albums->mInfoBar == 0);
+    QVERIFY(albums->mTBone == 0);
+    QVERIFY(albums->mNoMusic == 0);
+    QCOMPARE(albums->mList->itemRecycling(), true);
+    QCOMPARE(albums->mList->scrollingStyle(), HbListView::PanOrFlick);
+    QCOMPARE(albums->mList->clampingStyle(), HbListView::BounceBackClamping);
+    QCOMPARE(albums->mList->frictionEnabled(), true);
+    QCOMPARE(albums->mList->longPressEnabled(), true);
+    QCOMPARE(albums->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+    QCOMPARE(albums->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+    QVERIFY(albums->mIndexFeedback->itemView() == albums->mList);
+
+    // User selects an album
+    QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+    mCollectionData->mContext = ECollectionContextAlbumsTBone;
+    mCollectionData->mCurrentAlbumAvailable = false;
     mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar != 0);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerArtists*>(mTest)->mList);    
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
-    
-    mCollectionData->mContext = ECollectionContextArtistSongs;
-    mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar != 0);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerArtists*>(mTest)->mList);    
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
-    
-    mTest = 0;   
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+    QCOMPARE(albums->mCollectionContext, ECollectionContextAlbumsTBone);
+    QVERIFY(albums->mList != 0);
+    QVERIFY(albums->mInfoBar == 0);
+    QVERIFY(albums->mTBone != 0);
+    QVERIFY(albums->mTBoneListModel != 0);
+    QCOMPARE(albums->mTBone->reflectionsEnabled(), false);
+    QCOMPARE(spy.count(), 1);
+
+    // User selects back - navigate back to albums
     mCollectionData->mContext = ECollectionContextAlbums;
     mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerAlbums*>(mTest)->mList);   
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-    
-    mCollectionData->mContext = ECollectionContextAlbumSongs;
-    mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar != 0);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerAlbums*>(mTest)->mList);   
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-    
-    mTest = 0;   
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
-    mCollectionData->mContext = ECollectionContextPlaylists;
-    mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );   
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-    
-    mCollectionData->mContext = ECollectionContextPlaylistSongs;
+    QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+    QVERIFY(albums->mList != 0);
+    QVERIFY(albums->mInfoBar == 0);
+    QVERIFY(albums->mTBone == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Albums container in Fetcher mode.
+ */
+void TestMpCollectionContainers::testSetupContainerAlbumsFetcher()
+{
+    mCollectionData->mCount = 5;
+
+    // User selects Albums
+    mCollectionData->mContext = ECollectionContextAlbums;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+    mTest->setViewMode(MpCommon::FetchView);
     mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar != 0);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->itemRecycling(), true);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->longPressEnabled(), true);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
-    QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0);   
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-    
-    //Test the case when all the songs are removed from a playlist, previous case is precondition...
-    mCollectionData->mCount = 0;
+    MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+    QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+
+    // User selects an album
+    QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+    mCollectionData->mContext = ECollectionContextAlbumsTBone;
+    mCollectionData->mCurrentAlbumAvailable = true;
     mTest->setDataModel(mCollectionDataModel);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-    
-    //Test the case when songs get added to empty playlist, previous case is precondition...
-    mCollectionData->mCount = 1;
-    mTest->setDataModel(mCollectionDataModel);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-    
-    
-    //No data
-    mTest = 0;
-    mCollectionData->mCount = 0;
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
-    mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mNoMusic != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
-    
-    mTest = 0;   
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+    QCOMPARE(albums->mCollectionContext, ECollectionContextAlbumsTBone);
+    QVERIFY(albums->mList != 0);
+    QVERIFY(albums->mInfoBar != 0);
+    QVERIFY(albums->mTBone != 0);
+    QVERIFY(albums->mTBoneListModel != 0);
+    QCOMPARE(albums->mTBone->reflectionsEnabled(), false);
+    // We set mCurrentAlbumAvailable to true, so no signal should emit.
+    QCOMPARE(spy.count(), 0);
+    QCOMPARE(albums->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+
+    // User selects back - navigate back to albums
     mCollectionData->mContext = ECollectionContextAlbums;
     mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-    
-    mCollectionData->mContext = ECollectionContextAlbumSongs;
+    QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+    QVERIFY(albums->mList != 0);
+    QVERIFY(albums->mInfoBar == 0);
+    QVERIFY(albums->mTBone == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Albums container with no data.
+ */
+void TestMpCollectionContainers::testSetupContainerAlbumsNoData()
+{
+    mCollectionData->mCount = 0;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
     mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-    
-    mTest = 0;   
-    mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
-    mCollectionData->mContext = ECollectionContextPlaylists;
-    mTest->setDataModel(mCollectionDataModel);
-    
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-    
-    mCollectionData->mContext = ECollectionContextPlaylistSongs;
-    mTest->setDataModel(mCollectionDataModel);
-    mCollectionData->mCount = 0;
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic != 0);
-    QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
-    QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-    
+    MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+
+    QVERIFY(albums->mList == 0);
+    QVERIFY(albums->mInfoBar == 0);
+    QVERIFY(albums->mTBone == 0);
+    QVERIFY(albums->mNoMusic != 0);
 }
 
 /*!
- Test itemActivated
+ Test setupContainer via setDataModel for Playlists container.
+ */
+void TestMpCollectionContainers::testSetupContainerPlaylists()
+{
+    mCollectionData->mCount = 5;
+
+    // User selects Playlists
+    mCollectionData->mContext = ECollectionContextPlaylists;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+    QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+    QVERIFY(playlists->mList != 0);
+    QVERIFY(playlists->mInfoBar == 0);
+    QVERIFY(playlists->mNoMusic == 0);
+    QCOMPARE(playlists->mList->itemRecycling(), true);
+    QCOMPARE(playlists->mList->scrollingStyle(), HbListView::PanOrFlick);
+    QCOMPARE(playlists->mList->clampingStyle(), HbListView::BounceBackClamping);
+    QCOMPARE(playlists->mList->frictionEnabled(), true);
+    QCOMPARE(playlists->mList->longPressEnabled(), true);
+    QCOMPARE(playlists->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+    QCOMPARE(playlists->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+    QVERIFY(playlists->mIndexFeedback->itemView() == 0 );
+
+    // User selects a playlist
+    mCollectionData->mContext = ECollectionContextPlaylistSongs;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylistSongs);
+    QVERIFY(playlists->mList != 0);
+    QVERIFY(playlists->mInfoBar != 0);
+    QVERIFY(playlists->mNoMusic == 0);
+    QCOMPARE(playlists->mInfoBar->heading(), QString("Title"));
+
+    // User selects back - navigate back to playlists
+    mCollectionData->mContext = ECollectionContextPlaylists;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+    QVERIFY(playlists->mList != 0);
+    QVERIFY(playlists->mInfoBar == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Playlists container in Fetcher mode.
  */
-void TestMpCollectionContainers::testItemActivated()
-{ 
+void TestMpCollectionContainers::testSetupContainerPlaylistsFetcher()
+{
+    mCollectionData->mCount = 5;
+
+    // User selects Playlists
+    mCollectionData->mContext = ECollectionContextPlaylists;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+    mTest->setViewMode(MpCommon::FetchView);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+    QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+
+    // User selects a playlist
+    mCollectionData->mContext = ECollectionContextPlaylistSongs;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylistSongs);
+    QVERIFY(playlists->mList != 0);
+    QVERIFY(playlists->mInfoBar != 0);
+    QVERIFY(playlists->mNoMusic == 0);
+    QCOMPARE(playlists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+
+    // User selects back - navigate back to playlists
+    mCollectionData->mContext = ECollectionContextPlaylists;
+    mTest->setDataModel(mCollectionDataModel);
+    QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+    QVERIFY(playlists->mList != 0);
+    QVERIFY(playlists->mInfoBar == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Playlists container with no data.
+ */
+void TestMpCollectionContainers::testSetupContainerPlaylistsNoData()
+{
+    mCollectionData->mCount = 0;
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+    mTest->setDataModel(mCollectionDataModel);
+    MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+
+    QVERIFY(playlists->mList == 0);
+    QVERIFY(playlists->mInfoBar == 0);
+    QVERIFY(playlists->mNoMusic != 0);
+}
+
+/*!
+ Test itemActivated - AllSongs container
+ */
+void TestMpCollectionContainers::testItemActivatedAllSongs()
+{
     mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
-    
-    QSignalSpy spy(mTest, SIGNAL(itemActivated( int )));
+    QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
     static_cast<MpCollectionContainerAllSongs*>(mTest)->itemActivated(QModelIndex());
     QCOMPARE(spy.count(), 1);
     QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
-    
-    mTest = 0;   
+}
+
+/*!
+ Test itemActivated - Artists container.
+ */
+void TestMpCollectionContainers::testItemActivatedArtists()
+{
+    QModelIndex index = QModelIndex();
     mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
-    QSignalSpy spy2(mTest, SIGNAL(itemActivated( int )));
-    static_cast<MpCollectionContainerArtists*>(mTest)->itemActivated(QModelIndex());
+    QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
+    MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+
+    artists->itemActivated(index);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+    QCOMPARE(artists->mCurrentArtistIndex, -1);
+
+    artists->mCollectionContext = ECollectionContextArtistAlbums;
+    artists->itemActivated(index);
+    QCOMPARE(spy.count(), 2);
+    QCOMPARE(qvariant_cast<int>(spy.at(1).at(0)), -1);
+    QCOMPARE(artists->mCurrentAlbumIndex, -1);
+
+    artists->mCollectionContext = ECollectionContextArtistAlbumsTBone;
+    QSignalSpy spy2(mTest, SIGNAL(playAlbumSongs(int, int)));
+    artists->mCurrentAlbumIndex = 1;
+    artists->itemActivated(index);
+    QCOMPARE(spy.count(), 2);
     QCOMPARE(spy2.count(), 1);
-    QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), -1);
-   
-    mTest = 0;   
+    QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), 1);
+    QCOMPARE(qvariant_cast<int>(spy2.at(0).at(1)), -1);
+
+    artists->setViewMode(MpCommon::FetchView);
+    artists->mCollectionContext = ECollectionContextArtistAlbumsTBone;
+    artists->itemActivated(index);
+    QCOMPARE(spy.count(), 3);
+    QCOMPARE(spy2.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy.at(2).at(0)), -1);
+
+    artists->mCollectionContext = ECollectionContextArtistAllSongs;
+    artists->itemActivated(index);
+    QCOMPARE(spy.count(), 4);
+    QCOMPARE(qvariant_cast<int>(spy.at(3).at(0)), -1);
+}
+
+/*!
+ Test itemActivated - Albums container.
+ */
+void TestMpCollectionContainers::testItemActivatedAlbums()
+{
+    QModelIndex index = QModelIndex();
     mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
-    QSignalSpy spy3(mTest, SIGNAL(itemActivated( int )));
-    static_cast<MpCollectionContainerAlbums*>(mTest)->itemActivated(QModelIndex());
-    QCOMPARE(spy3.count(), 1);
-    QCOMPARE(qvariant_cast<int>(spy3.at(0).at(0)), -1);
-   
-    mTest = 0;   
+    QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
+    MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+
+    albums->itemActivated(index);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+    QCOMPARE(albums->mCurrentAlbumIndex, -1);
+
+    albums->mCollectionContext = ECollectionContextAlbumsTBone;
+    QSignalSpy spy2(mTest, SIGNAL(playAlbumSongs(int, int)));
+    albums->mCurrentAlbumIndex = 1;
+    albums->itemActivated(index);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(spy2.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), 1);
+    QCOMPARE(qvariant_cast<int>(spy2.at(0).at(1)), -1);
+
+    albums->setViewMode(MpCommon::FetchView);
+    albums->mCollectionContext = ECollectionContextAlbumsTBone;
+    albums->itemActivated(index);
+    QCOMPARE(spy.count(), 2);
+    QCOMPARE(spy2.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy.at(1).at(0)), -1);
+}
+
+/*!
+ Test itemActivated - Playlists container
+ */
+void TestMpCollectionContainers::testItemActivatedPlaylists()
+{
+    QModelIndex index = QModelIndex();
     mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
-    QSignalSpy spy4(mTest, SIGNAL(itemActivated( int )));
-    static_cast<MpCollectionContainerPlaylists*>(mTest)->itemActivated(QModelIndex());
-    QCOMPARE(spy4.count(), 1);
-    QCOMPARE(qvariant_cast<int>(spy4.at(0).at(0)), -1);
+    QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
+    MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+
+    playlists->itemActivated(index);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+    QCOMPARE(playlists->mCurrentPlaylistIndex, -1);
+
+    playlists->mCollectionContext = ECollectionContextPlaylistSongs;
+    playlists->itemActivated(index);
+    QCOMPARE(spy.count(), 2);
+    QCOMPARE(qvariant_cast<int>(spy.at(1).at(0)), -1);
 }
 
 /*!
  Test onLongPressed
- */
+*/
 void TestMpCollectionContainers::testOnLongPressed()
 {
     mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
     QSignalSpy spy(mTest, SIGNAL(itemLongPressed( int, QPointF )));
-    
+
     HbListView *viewItem = new HbListView();
     static_cast<MpCollectionContainerAllSongs*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
     QCOMPARE(spy.count(), 1);
     QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
-        
-    mTest = 0;   
+
+    mTest = 0;
     mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
     QSignalSpy spy2(mTest, SIGNAL(itemLongPressed( int, QPointF )));
     static_cast<MpCollectionContainerArtists*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
     QCOMPARE(spy2.count(), 1);
     QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), -1);
-    
-    mTest = 0;   
+
+    mTest = 0;
     mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
     QSignalSpy spy3(mTest, SIGNAL(itemLongPressed( int, QPointF )));
     static_cast<MpCollectionContainerAlbums*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
     QCOMPARE(spy3.count(), 1);
     QCOMPARE(qvariant_cast<int>(spy3.at(0).at(0)), -1);
-    
-    mTest = 0;   
+
+    mTest = 0;
     mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
     QSignalSpy spy4(mTest, SIGNAL(itemLongPressed( int, QPointF )));
     static_cast<MpCollectionContainerPlaylists*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
@@ -455,4 +788,65 @@
     QCOMPARE(qvariant_cast<int>(spy4.at(0).at(0)), -1);
 }
 
-// End of file
+
+/*!
+ Test albumCentered - Artists container.
+ */
+void TestMpCollectionContainers::testAlbumCenteredArtists()
+{
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+    mTest->mCollectionData = mCollectionData;
+    QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+    MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+
+    mCollectionData->mCurrentAlbumAvailable = false;
+    artists->mAlbumIndexOffset = 0;
+    artists->mCurrentAlbumIndex = 0;
+    artists->albumCentered();
+    QCOMPARE(artists->mCurrentAlbumIndex, -1);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+
+    mCollectionData->mCurrentAlbumAvailable = true;
+    artists->mAlbumIndexOffset = 0;
+    artists->mCurrentAlbumIndex = 0;
+    artists->albumCentered();
+    QCOMPARE(artists->mCurrentAlbumIndex, -1);
+    QCOMPARE(spy.count(), 1);
+
+    // Re-centered on same item
+    artists->mAlbumIndexOffset = 1;
+    artists->mCurrentAlbumIndex = 0;
+    artists->albumCentered();
+    QCOMPARE(spy.count(), 1);
+}
+
+/*!
+ Test albumCentered - Albums container.
+ */
+void TestMpCollectionContainers::testAlbumCenteredAlbums()
+{
+    mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+    mTest->mCollectionData = mCollectionData;
+    QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+    MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+
+    mCollectionData->mCurrentAlbumAvailable = false;
+    albums->mCurrentAlbumIndex = 0;
+    albums->albumCentered();
+    QCOMPARE(albums->mCurrentAlbumIndex, -1);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+
+    mCollectionData->mCurrentAlbumAvailable = true;
+    albums->mCurrentAlbumIndex = 0;
+    albums->albumCentered();
+    QCOMPARE(albums->mCurrentAlbumIndex, -1);
+    QCOMPARE(spy.count(), 1);
+
+    // Re-centered on same item
+    albums->mCurrentAlbumIndex = -1;
+    albums->albumCentered();
+    QCOMPARE(spy.count(), 1);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/hgmediawall.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,82 @@
+/*
+* 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: HgMediawall stub for testing mpcollectioncontainers
+*
+*/
+
+#ifndef HGMEDIAWALL_H
+#define HGMEDIAWALL_H
+
+//includes
+#include <hbglobal.h>
+#include <hbnamespace.h>
+#include <hbwidget.h>
+
+class HgWidget : public HbWidget
+{
+    Q_OBJECT
+
+public:
+
+    enum ScrollBarPolicy {
+        ScrollBarAsNeeded = Qt::ScrollBarAsNeeded,
+        ScrollBarAlwaysOff = Qt::ScrollBarAlwaysOff,
+        ScrollBarAlwaysOn = Qt::ScrollBarAlwaysOn,
+        ScrollBarAutoHide
+    };
+
+    explicit HgWidget ( QGraphicsItem *parent = 0 );
+    virtual ~HgWidget ();
+
+    void setScrollBarPolicy( ScrollBarPolicy policy );
+    virtual void setModel(QAbstractItemModel *model);
+    void scrollTo(const QModelIndex &index);
+    QModelIndex currentIndex() const;
+
+signals:
+
+    void scrollingEnded();
+
+};
+
+class HgMediawall : public HgWidget
+{
+    Q_OBJECT
+
+public:
+
+    enum LabelPosition {
+        PositionNone = 0,
+        PositionAboveImage,
+        PositionBelowImage
+    };
+
+    explicit HgMediawall( QGraphicsItem *parent = 0 );
+    virtual ~HgMediawall();
+
+    void setTitlePosition( LabelPosition position );
+    void setDescriptionPosition( LabelPosition position );
+    void setTitleFontSpec( const HbFontSpec &fontSpec );
+    void setDescriptionFontSpec( const HbFontSpec &fontSpec );
+
+    void enableReflections( bool enabled );
+    bool reflectionsEnabled() const;
+
+public:
+
+    bool        mReflectionEnabled;
+
+};
+
+#endif    // HGMEDIAWALL_H
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpcollectiondatamodel.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpcollectiondatamodel.h	Thu Jul 22 16:32:33 2010 +0100
@@ -11,7 +11,8 @@
 *
 * Contributors:
 *
-* Description: Music Player collection abstract data model stub for testing mpcollectioncontainers
+* Description: Music Player collection abstract data model stub for testing
+*              mpcollectioncontainers.
 *
 */
 
@@ -39,7 +40,6 @@
     void refreshModel();
     MpMpxCollectionData *collectionData();
 
-
 public:
 
     MpMpxCollectionData             *mCollectionData;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpcollectiontbonelistdatamodel.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* 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: Music Player collection abstract data model (for TBone) stub
+*              for testing mpcollectioncontainers.
+*
+*/
+
+#ifndef MPCOLLECTIONTBONELISTDATAMODEL_H
+#define MPCOLLECTIONTBONELISTDATAMODEL_H
+
+#include <QAbstractListModel>
+
+class MpMpxCollectionData;
+
+class MpCollectionTBoneListDataModel : public QAbstractListModel
+{
+    Q_OBJECT
+
+public:
+
+    explicit MpCollectionTBoneListDataModel( MpMpxCollectionData *data, QObject *parent=0 );
+    virtual ~MpCollectionTBoneListDataModel();
+
+    int rowCount(const QModelIndex &parent=QModelIndex()) const;
+    QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const;
+
+public slots:
+
+    void refreshModel();
+
+private:
+
+    MpMpxCollectionData             *mCollectionData;   // Not own
+    int                             mRowCount;
+
+};
+
+#endif // MPCOLLECTIONTBONELISTDATAMODEL_H
+
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpcollectionview.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpcollectionview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -55,9 +55,11 @@
 
 
 public slots:
-   
+
     void openIndex( int index );
     void openContextMenu( int index, const QPointF &coords );
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex );
 
 public:
 
@@ -76,8 +78,8 @@
     bool                            mEffectOnGoing;
 
     HbMainWindow                    *mWindow;               // Not own
-    HbAction                        *mNavigationQuit;       // Not own
-    HbAction                        *mNavigationBack;       // Not own
+    HbAction                        *mSoftKeyQuit;          // Not own
+    HbAction                        *mSoftKeyBack;          // Not own
 
     MpCollectionDocumentLoader      *mDocumentLoader;       // Own
     HbWidget                        *mMainContainer;        // Own
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpmpxcollectiondata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpmpxcollectiondata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,12 +18,12 @@
 #ifndef MPMPXCOLLECTIONDATA_H
 #define MPMPXCOLLECTIONDATA_H
 
+#include <QObject>
 #include "mpmpxcollectionviewdefs.h"
 
 class CMPXMedia;
- 
 
-class MpMpxCollectionData 
+class MpMpxCollectionData : public QObject
 {
 
 public:
@@ -41,22 +41,29 @@
     };
 
     // Stub functions
-     MpMpxCollectionData();
-    ~MpMpxCollectionData();
+    explicit MpMpxCollectionData( QObject *parent=0 );
+    virtual ~MpMpxCollectionData();
 
     TCollectionContext context();
+
+    int count() const;
+    QString collectionTitle() const;
     QString itemData( int index, MpMpxCollectionData::DataType type ) const;
 
-    void setMpxMedia( const CMPXMedia& entries );
+    bool setCurrentAlbum( int index );
+
     const CMPXMedia& containerMedia();
-    int count() const;
-    QString collectionTitle() const;
 
 public:
+
     CMPXMedia               *mContainerMedia;
-    TBool                   mMediaSet;
+    bool                    mMediaSet;
     TCollectionContext      mContext;
     int                     mCount;
+    int                     mCurrentAlbumIndex;
+    bool                    mCurrentAlbumAvailable;
+    bool                    mReturnCollectionTitle;
+
 };
 
 #endif // MPMPXCOLLECTIONDATA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/hgmediawall.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,135 @@
+/*
+* 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: HgMediawall stub for testing mpcollectioncontainers
+*
+*/
+
+#include "hgmediawall.h"
+
+
+/*!
+ Constructs the mediawall widget stub.
+ */
+HgWidget::HgWidget( QGraphicsItem *parent )
+{
+    Q_UNUSED(parent);
+}
+
+/*!
+ Destructs the mediawall widget stub.
+ */
+HgWidget::~HgWidget()
+{
+}
+
+/*!
+ Stub function
+ */
+void HgWidget::setScrollBarPolicy( ScrollBarPolicy policy )
+{
+    Q_UNUSED(policy);
+}
+
+/*!
+ Stub function
+ */
+void HgWidget::setModel( QAbstractItemModel *model )
+{
+    Q_UNUSED(model);
+}
+
+/*!
+ Stub function
+ */
+void HgWidget::scrollTo( const QModelIndex &index )
+{
+    Q_UNUSED(index);
+}
+
+/*!
+ Stub function
+ */
+QModelIndex HgWidget::currentIndex() const
+{
+    return QModelIndex();
+}
+
+
+//===========================================================================
+//===========================================================================
+
+/*!
+ Constructs the mediawall widget stub.
+ */
+HgMediawall::HgMediawall( QGraphicsItem *parent )
+{
+    Q_UNUSED(parent);
+    mReflectionEnabled = true;
+}
+
+/*!
+ Destructs the mediawall widget stub.
+ */
+HgMediawall::~HgMediawall()
+{
+}
+
+/*!
+ Stub function
+ */
+void HgMediawall::setTitlePosition( LabelPosition position )
+{
+    Q_UNUSED(position);
+}
+
+/*!
+ Stub function
+ */
+void HgMediawall::setDescriptionPosition( LabelPosition position )
+{
+    Q_UNUSED(position);
+}
+
+/*!
+ Stub function
+ */
+void HgMediawall::setTitleFontSpec( const HbFontSpec &fontSpec )
+{
+    Q_UNUSED(fontSpec);
+}
+
+/*!
+ Stub function
+ */
+void HgMediawall::setDescriptionFontSpec( const HbFontSpec &fontSpec )
+{
+    Q_UNUSED(fontSpec);
+}
+
+/*!
+ Stub function
+ */
+void HgMediawall::enableReflections( bool enabled )
+{
+    mReflectionEnabled = enabled;
+}
+
+/*!
+ Stub function
+ */
+bool HgMediawall::reflectionsEnabled() const
+{
+    return mReflectionEnabled;
+}
+
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpcollectiondatamodel.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpcollectiondatamodel.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -11,7 +11,8 @@
 *
 * Contributors:
 *
-* Description: Music Player collection data model stub for testing mpcollectioncontainers.
+* Description: Music Player collection abstract data model stub for testing
+*              mpcollectioncontainers.
 *
 */
 
@@ -28,8 +29,7 @@
     : QAbstractListModel(parent),
       mCollectionData(data)
 {
-    TX_ENTRY
-    TX_EXIT
+    TX_LOG
 }
 
 /*!
@@ -37,8 +37,7 @@
  */
 MpCollectionDataModel::~MpCollectionDataModel()
 {
-    TX_ENTRY
-    TX_EXIT
+    TX_LOG
 }
 
 /*!
@@ -65,8 +64,8 @@
     Q_UNUSED(index);
     Q_UNUSED(role);
     QVariant returnValue = QVariant();
+    TX_EXIT
     return returnValue;
-    TX_EXIT
 }
 
 /*!
@@ -74,8 +73,7 @@
  */
 void MpCollectionDataModel::refreshModel()
 {
-    TX_ENTRY
-    TX_EXIT
+    TX_LOG
 }
 
 /*!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpcollectiontbonelistdatamodel.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* 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: Music Player collection abstract data model (for TBone) stub
+*              for testing mpcollectioncontainers.
+*
+*/
+
+#include "stub/inc/mpcollectiontbonelistdatamodel.h"
+#include "stub/inc/mpmpxcollectiondata.h"
+#include "mptrace.h"
+
+/*!
+ Stub function
+ */
+MpCollectionTBoneListDataModel::MpCollectionTBoneListDataModel( MpMpxCollectionData *data, QObject *parent )
+    : QAbstractListModel(parent),
+      mCollectionData(data),
+      mRowCount(0)
+{
+    TX_LOG
+}
+
+/*!
+ Stub function
+ */
+MpCollectionTBoneListDataModel::~MpCollectionTBoneListDataModel()
+{
+    TX_LOG
+}
+
+/*!
+ Stub function
+ */
+int MpCollectionTBoneListDataModel::rowCount( const QModelIndex &parent ) const
+{
+    TX_LOG
+    Q_UNUSED(parent);
+    return mRowCount;
+}
+
+/*!
+ Stub function
+ */
+QVariant MpCollectionTBoneListDataModel::data(const QModelIndex &index, int role) const
+{
+    TX_ENTRY
+    Q_UNUSED(index);
+    Q_UNUSED(role);
+    QVariant returnValue = QVariant();
+    TX_EXIT
+    return returnValue;
+}
+
+/*!
+ Stub function
+ */
+void MpCollectionTBoneListDataModel::refreshModel()
+{
+    TX_LOG
+}
+
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpcollectionview.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpcollectionview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -18,7 +18,7 @@
 // INCLUDE FILES
 
 #include <cstdlib>
-#include <qtcore>
+#include <QtCore>
 
 #include "stub/inc/mpcollectionview.h"
 #include "mpcollectiondocumentloader.h"
@@ -36,7 +36,7 @@
  */
 MpCollectionView::MpCollectionView()
     : mContainerFactory(0),
-      mDocumentLoader(0)      
+      mDocumentLoader(0)
 {
     TX_LOG
 }
@@ -84,5 +84,21 @@
     Q_UNUSED(coords);
 }
 
+/*!
+ Stub function
+ */
+void MpCollectionView::findAlbumSongs( int index )
+{
+    Q_UNUSED(index);
+}
+
+/*!
+ Stub function
+ */
+void MpCollectionView::playAlbumSongs( int albumIndex, int songIndex )
+{
+    Q_UNUSED(albumIndex);
+    Q_UNUSED(songIndex);
+}
 
 
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpmpxcollectiondata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpmpxcollectiondata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -23,18 +23,23 @@
 /*!
  Stub function.
  */
-MpMpxCollectionData::MpMpxCollectionData()
-    :mContainerMedia(0),
-    mMediaSet(EFalse),
-    mContext (ECollectionContextUnknown)
-{   
+MpMpxCollectionData::MpMpxCollectionData( QObject *parent )
+    : QObject(parent),
+      mContainerMedia(0),
+      mMediaSet(false),
+      mContext(ECollectionContextUnknown),
+      mCount(0),
+      mCurrentAlbumIndex(-1),
+      mCurrentAlbumAvailable(false),
+      mReturnCollectionTitle(true)
+{
 }
 
 /*!
  Stub function.
 */
 MpMpxCollectionData::~MpMpxCollectionData()
-{   
+{
 }
 
 /*!
@@ -47,6 +52,27 @@
 
 /*!
  Stub function.
+ */
+int MpMpxCollectionData::count() const
+{
+    return mCount;
+}
+
+/*!
+ Stub function.
+ */
+QString MpMpxCollectionData::collectionTitle() const
+{
+    if ( mReturnCollectionTitle ) {
+        return QString("Title");
+    }
+    else {
+        return QString();
+    }
+}
+
+/*!
+ Stub function.
 */
 QString MpMpxCollectionData::itemData( int index, MpMpxCollectionData::DataType type ) const
 {
@@ -58,15 +84,14 @@
         return QString();
     }
 }
+
 /*!
  Stub function.
 */
-void MpMpxCollectionData::setMpxMedia( const CMPXMedia& entries )
+bool MpMpxCollectionData::setCurrentAlbum( int index )
 {
-    delete mContainerMedia;
-    mContainerMedia = 0;
-    mContainerMedia = CMPXMedia::NewL(entries);
-    mMediaSet = ETrue;
+    mCurrentAlbumIndex = index;
+    return mCurrentAlbumAvailable;
 }
 
 /*!
@@ -77,20 +102,3 @@
     return *mContainerMedia;
 }
 
-/*!
- Stub function.
- */
-int MpMpxCollectionData::count() const
-{
-    return mCount;
-}
-
-/*!
- Stub function.
- */
-QString MpMpxCollectionData::collectionTitle() const
-{
-    QString title("Title");
-    return title;
-}
-//end of file
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/unittest_mpcollectioncontainers.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/unittest_mpcollectioncontainers.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -16,19 +16,21 @@
 
 TEMPLATE = app
 CONFIG += qtestlib hb
-TARGET = 
+CONFIG += symbian_test
+TARGET = unittest_mpcollectioncontainers
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
     stub/inc \
     ../../../../inc
 
-    
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH(hgwidgets)
 
 LIBS += -lestor.dll \
-    	-lmpnowplayingbanner.dll
-
+    	-lmpnowplayingbanner.dll \
+        -lganeswidgets.dll
 
 HEADERS += inc/unittest_mpcollectioncontainers.h \
            ../../inc/mpcollectioncontainerfactory.h \
@@ -38,12 +40,13 @@
            ../../inc/mpcollectioncontainerartists.h \
            ../../inc/mpcollectioncontaineralbums.h \
            ../../inc/mpcollectioncontainerplaylists.h \
-           ../../inc/mpcollectioncontainergenres.h \
            ../../inc/mpcollectiondocumentloader.h \
            stub/inc/mpcollectiondatamodel.h \
+           stub/inc/mpcollectiontbonelistdatamodel.h \
            stub/inc/mpmpxcollectiondata.h \
-           stub/inc/mpcollectionview.h
-               
+           stub/inc/mpcollectionview.h \
+           stub/inc/hgmediawall.h
+
 SOURCES += src/unittest_mpcollectioncontainers.cpp \
            ../../src/mpcollectioncontainerfactory.cpp \
            ../../src/mpcollectioncontainer.cpp \
@@ -52,10 +55,11 @@
            ../../src/mpcollectioncontainerartists.cpp \
            ../../src/mpcollectioncontaineralbums.cpp \
            ../../src/mpcollectioncontainerplaylists.cpp \
-           ../../src/mpcollectioncontainergenres.cpp \ 
            ../../src/mpcollectiondocumentloader.cpp \
            stub/src/mpcollectiondatamodel.cpp \
+           stub/src/mpcollectiontbonelistdatamodel.cpp \
            stub/src/mpmpxcollectiondata.cpp \
-           stub/src/mpcollectionview.cpp 
-           
+           stub/src/mpcollectionview.cpp \
+           stub/src/hgmediawall.cpp
+
 RESOURCES += ../../resources/mpcollectionviewresources.qrc
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/inc/unittest_mpcollectiondocumentloader.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/inc/unittest_mpcollectiondocumentloader.h	Thu Jul 22 16:32:33 2010 +0100
@@ -31,17 +31,17 @@
     TestMpCollectionDocumentLoader();
     virtual ~TestMpCollectionDocumentLoader();
 
-signals:
+public slots:
 
-
-public slots:
     void initTestCase();
     void cleanupTestCase();
     void init();
     void cleanup();
 
 private slots:
+
     void testCreateMpNowPlayingWidget();
+    void testCreateHgMediawall();
     void testCreateQObject();
 
 private:
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/src/unittest_mpcollectiondocumentloader.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/src/unittest_mpcollectiondocumentloader.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,12 +16,10 @@
 */
 
 #include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
 
 #include "unittest_mpcollectiondocumentloader.h"
 #include "mpnowplayingwidget.h"
+#include "hgmediawall.h"
 
 // Do this so we can access all member variables.
 #define private public
@@ -33,18 +31,20 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
+    QApplication app(argc, argv);
     TestMpCollectionDocumentLoader tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpcollectiondocumentloader.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpcollectiondocumentloader.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpCollectionDocumentLoader::TestMpCollectionDocumentLoader()
@@ -93,30 +93,37 @@
  */
 void TestMpCollectionDocumentLoader::testCreateMpNowPlayingWidget()
 {
-    cleanup();
-    init();
     QObject *theObject;
-    theObject = mTest->createObject(QString("MpNowPlayingWidget"),QString("myMpNowPlayingWidget"));
-    QCOMPARE(theObject->metaObject()->className(),"MpNowPlayingWidget");
-    QCOMPARE(theObject->objectName(),QString("myMpNowPlayingWidget"));
+    theObject = mTest->createObject(QString("MpNowPlayingWidget"), QString("myMpNowPlayingWidget"));
+    QCOMPARE(theObject->metaObject()->className(), "MpNowPlayingWidget");
+    QCOMPARE(theObject->objectName(), QString("myMpNowPlayingWidget"));
     QVERIFY(qobject_cast<MpNowPlayingWidget*>(theObject));
     delete theObject;
+}
 
+/*!
+ Tests the correct creation of HgMediawall.
+ */
+void TestMpCollectionDocumentLoader::testCreateHgMediawall()
+{
+    QObject *theObject;
+    theObject = mTest->createObject(QString("HgMediawall"), QString("HgMediawall"));
+    QCOMPARE(theObject->metaObject()->className(),"HgMediawall");
+    QCOMPARE(theObject->objectName(),QString("HgMediawall"));
+    QVERIFY(qobject_cast<HgMediawall*>(theObject));
+    delete theObject;
 }
 
 /*!
  Tests the correct creation of QObject, this should be pased to the
- base clas and base clas should return a named object.
+ base class and base class should return a named object.
  */
 void TestMpCollectionDocumentLoader::testCreateQObject()
 {
-    cleanup();
-    init();
     QObject *theObject;
-    theObject = mTest->createObject(QString("QObject"),QString("myQObject"));
-    QCOMPARE(theObject->metaObject()->className(),"QObject");
-    QCOMPARE(theObject->objectName(),QString("myQObject"));
+    theObject = mTest->createObject(QString("QObject"), QString("myQObject"));
+    QCOMPARE(theObject->metaObject()->className(), "QObject");
+    QCOMPARE(theObject->objectName(), QString("myQObject"));
     delete theObject;
 }
 
-// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/inc/hgmediawall.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* 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: HgMediawall stub for testing MpCollectionDocumentLoader
+*
+*/
+
+#ifndef HGMEDIAWALL_H
+#define HGMEDIAWALL_H
+
+//includes
+#include <QGraphicsItem>
+#include <QObject>
+
+class HgMediawall : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    explicit HgMediawall( QGraphicsItem *parent = 0 );
+    virtual ~HgMediawall();
+
+};
+
+#endif    // HGMEDIAWALL_H
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/inc/mpnowplayingwidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/inc/mpnowplayingwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -26,7 +26,7 @@
     Q_OBJECT
 
 public:
-    explicit MpNowPlayingWidget(long int playerId);
+    explicit MpNowPlayingWidget();
     virtual ~MpNowPlayingWidget();
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/src/hgmediawall.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: HgMediawall stub for testing MpCollectionDocumentLoader
+*
+*/
+
+#include "hgmediawall.h"
+
+
+/*!
+ Constructs the mediawall widget stub.
+ */
+HgMediawall::HgMediawall( QGraphicsItem *parent )
+{
+    Q_UNUSED(parent);
+}
+
+/*!
+ Destructs the mediawall widget stub.
+ */
+HgMediawall::~HgMediawall()
+{
+}
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/src/mpnowplayingwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/src/mpnowplayingwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -21,9 +21,8 @@
 /*!
  Constructs the now playing widget stub
  */
-MpNowPlayingWidget::MpNowPlayingWidget(long int playerId )
+MpNowPlayingWidget::MpNowPlayingWidget( )
 {
-    Q_UNUSED(playerId);
 }
 
 /*!
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/unittest_mpcollectiondocumentloader.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/unittest_mpcollectiondocumentloader.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -16,20 +16,25 @@
 
 TEMPLATE = app
 CONFIG += qtestlib hb
-TARGET = 
+CONFIG += symbian_test
+TARGET = unittest_mpcollectiondocumentloader
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
     stub/inc \
     ../../../../inc
-
     
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH(hgwidgets)
 
 HEADERS += inc/unittest_mpcollectiondocumentloader.h \
            ../../inc/mpcollectiondocumentloader.h \
-           stub/inc/mpnowplayingwidget.h
-               
+           stub/inc/mpnowplayingwidget.h \
+           stub/inc/hgmediawall.h
+
 SOURCES += src/unittest_mpcollectiondocumentloader.cpp \
            ../../src/mpcollectiondocumentloader.cpp \
-           stub/src/mpnowplayingwidget.cpp
+           stub/src/mpnowplayingwidget.cpp \
+           stub/src/hgmediawall.cpp
+
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpsnapshotwidget/src/unittest_mpsnapshotwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpsnapshotwidget/src/unittest_mpsnapshotwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,9 +16,7 @@
 */
 
 #include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
+#include <QtGui/QtGui>
 
 #include "unittest_mpsnapshotwidget.h"
 
@@ -32,19 +30,24 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-    window.show();
+    QApplication app(argc, argv);
+    QGraphicsScene *testScene = new QGraphicsScene(QRectF(0,0,200,200));
+    QGraphicsView mainWindow(testScene);
+    mainWindow.show();
+
     TestMpSnapshotWidget tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpsnapshotwidget.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpsnapshotwidget.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpSnapshotWidget::TestMpSnapshotWidget()
@@ -112,7 +115,8 @@
 {
     cleanup();
     init();
-    HbMainWindow *mainWindow = hbInstance->allMainWindows()[0];
+    QGraphicsView *mainWindow = qobject_cast<QGraphicsView *>(qApp->activeWindow());
+    QVERIFY(mainWindow != 0);
     QGraphicsRectItem rectItem(QRectF(0,0,10,10));
     mainWindow->scene()->addItem(&rectItem);
     rectItem.show();
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpsnapshotwidget/unittest_mpsnapshotwidget.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpsnapshotwidget/unittest_mpsnapshotwidget.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -16,7 +16,9 @@
 
 TEMPLATE = app
 CONFIG += qtestlib hb
-TARGET = 
+CONFIG += symbian_test
+TARGET = unittest_mpsnapshotwidget
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
@@ -26,6 +28,6 @@
 
 HEADERS += inc/unittest_mpsnapshotwidget.h \
            ../../inc/mpsnapshotwidget.h 
-               
+
 SOURCES += src/unittest_mpsnapshotwidget.cpp \
            ../../src/mpsnapshotwidget.cpp 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpdetailssharedialog.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,90 @@
+/*
+* 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: Header file for share player.
+*
+*/
+
+#ifdef SHARE_FUNC_ENABLED
+#ifndef MPDETAILSSHAREDIALOG_H
+#define MPDETAILSSHAREDIALOG_H
+
+#include <HbDialog>
+#include <QList>
+#include <QSslError>
+#include "mpsharedata.h"
+
+class QGraphicsWebView;
+class QNetworkAccessManager;
+class QNetworkReply;
+class MpShareWebView;
+class MpSongData;
+class HbProgressDialog;
+
+/*!
+    Implements Share Player dialog for music player details view.
+    First, construct an instance of the class, then call initialize method.
+*/
+class MpDetailsShareDialog : public HbDialog
+{
+    Q_OBJECT
+
+public:
+    MpDetailsShareDialog();
+
+    /*!
+      Initializes an instance of the class with given MpSongData.
+      Translation for "unknown" string is passed so that the share
+      dialog can display "unknown" if artist or title are not set.
+      MpSongData object ownership is not transferred,
+      Music Player Engine retains the ownership.
+    */
+    void initialize( MpSongData* aSongData, const QString& aUnknownTr );
+    virtual ~MpDetailsShareDialog();
+    void cachePublishingPlayerFiles();
+    void logoutPlayer();
+    bool isInitialized() const;
+
+public slots:
+    void addContext();
+    void updateSharedData();
+    void onIndexLoad( bool ok );
+    void debugJs( QString s );
+    void errorHandler( QString aError, QString aMessage );
+    void clearCache();
+    void showWindow();
+    void showProgressDialog();
+    void handleRequestSSLErrors( QNetworkReply* aReply, const QList< QSslError >& aErrors );
+    void handleRequestFinished( QNetworkReply* aReply );
+
+signals:
+    void closeShareDialog();
+
+private:
+    void initShareData( MpSongData* aSongData, const QString& aUnknownTr );
+    void initLanguage();
+    void initNetworkAccessManager();
+    void initWebView();
+    void initSignalSlots();
+    bool initUser();
+
+private:
+    MpShareData            mShareData;
+    MpShareWebView*        mShareWebView;   // Owned by HbDialog
+    QNetworkAccessManager* mShareNetAccMan; // Owned
+    HbProgressDialog*      mProgressbar; // Owned
+    bool                   mIsInitialized;
+};
+
+#endif // MPDETAILSSHAREDIALOG_H
+#endif // SHARE_FUNC_ENABLED
--- a/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,8 +18,7 @@
 #ifndef MPDETAILSVIEW_H
 #define MPDETAILSVIEW_H
 
-#include <qpixmap>
-#include <qpointer.h>
+#include <QPointer>
 #include <QNetworkReply>
 #include <QDomDocument>
 #include <QMap>
@@ -37,15 +36,32 @@
 class HbPushButton;
 class HbDocumentLoader;
 class HbListWidget;
-class HbDialog;
-class ThumbnailManager;
-class QTranslator;
+
 class QGraphicsLinearLayout;
+class HbProgressBar;
 
+class MpEngine;
 class MpSongData;
-class MpMpxDetailsFrameworkWrapper;
+class MpQueryManager;
+
+#ifdef SHARE_FUNC_ENABLED
+#include <qnetworkconfigmanager.h>
+QTM_USE_NAMESPACE
+class MpDetailsShareDialog;
+#endif
 
 //class declaration
+/*!
+  Details view is the "flipside view" of Music Player.
+  In addition to displaying song details, details view
+  also provides user the possibility to comment a
+  track (by initiating sharedialog), and to get
+  recommendations based on his playlist (by displaying
+  a list of favourites, fetched from OVI music server).
+
+  DetailsView's song information will not be updated
+  if the track changes while detailsview is active.
+*/
 class MpDetailsView : public MpViewBase
 {
     Q_OBJECT
@@ -67,51 +83,39 @@
     void albumArtChanged();
     
 private slots:
-    void share();
-    void webViewLoaded( bool ok );
-    void playbackInfoChanged();
+    void handlePlaybackInfoChanged();
     void songDetailInfoChanged();
     
-    // groupbox handling, one or zero groupbox is expanded
-    void toggleDetailsGroupBox( bool state );
-    void toggleInspireMeGroupBox( bool state );
-      
-    void retrieveInformationFinished( QNetworkReply* reply );
-    void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
-    void retrieveInformationSslErrors( const QList<QSslError> &error );
-    
-    void DownloadFinished( QNetworkReply* reply );
-    
-    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
-    
-    void addContext();
-    void close();
-    
+    void handleDetailsGroupBoxToggled( bool state );
+    void handleInspireMeGroupBoxToggled( bool state );
+    void RenderInspireMeGroupBox();          
+    void handleNetworkError();    
+    void updateSharedData(const QString& url);
+
+#ifdef SHARE_FUNC_ENABLED
+    void share();
+    void closeShareDialog();
+#endif
+
 private:
+    bool canQueryRecommendations() const;
+    bool canQuerySharePlayerLink() const;   
     void setupMenu();
-    void loadSharePlayer();
-    
-    void constructRequest( QString &uri );     
-    // retrieve URI from Ovi music server
-    void retrieveInformation( const QString &urlEncoded );
+    void clearInspireMe();    
+
+#ifdef SHARE_FUNC_ENABLED
+    void createShareDialog();
+    void preloadShareDialog();
+#endif
+
+private:    
+    MpEngine                *mMpEngine;         // Own
     
-    void composeAlbumCover( QPixmap albumart );
-    QString keyValues( QStringList keys, QStringList values ) const;
-    void handleParsedXML();
-    
-    void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
-    void RenderInspireMeGroupBox();
-    void recommendationAlbumArtReady();
-    
-private:
     MpSongData              *mSongData;
-    MpMpxDetailsFrameworkWrapper   *mFrameworkWrapper;
     
     bool                    mActivated;
-    HbMainWindow            *mWindow;
-    HbAction                *mNavigationBack;
+    HbAction                *mSoftKeyBack;
     
-    HbWidget                *mContainer;
     HbLabel                 *mSongText; //owned
     HbLabel                 *mAlbumText; //owned
     HbLabel                 *mArtistText; //owned
@@ -120,37 +124,22 @@
     HbGroupBox              *mInspireMeGroupBox; //owned
     HbPushButton            *mShareButton; //owned
     HbDocumentLoader        *mDocumentLoader;//owned
-    QPixmap                  mCompositePixmap;
     HbListWidget            *mDetailList; // owned by mSongDetailsGroupBox
     HbListWidget            *mInspireList; // owned by mInspireMeGroupBox
-    HbWidget                *mInspireMe;
-    QGraphicsLinearLayout   *mLayout;
     HbPushButton            *mButton;
-    
-    QList<QString>          mRecommendationSongs;
-    QList<QString>          mRecommendationArtists;
-    QList<QString>          mRecommendationAlbumArtsLink;
-    QList<QString>          mRecommendationAlbumArtsName;
-    
-    QNetworkAccessManager   *mManager;
-    QNetworkAccessManager   *mDownloadManager;
-    
-    int                     mDownloadedAlbumArts;
+    HbProgressBar           *mInspireMeProgressBar;
+
+    MpQueryManager*         mMpQueryManager;     // Own
+	
+    bool                    mInspireMeQueryOngoing;
+    bool                    mInspireMeQueryRendered;
+    bool                    mInspireMeOpen;
+    bool                    mSongDetailsGbOpen;
     
-    ThumbnailManager        *mThumbnailManager; //owned
-    QPixmap                 mDefaultRecommendationAlbumArt;
-    QMap<QString, QPixmap>    mRecommendationAlbumArtsMap;
-    int                     mAlbumArtsReadyCount;
-    QList<QNetworkReply *>  mReplys;
-    
-    QDomDocument            mDomDocument;
-    
-    QTranslator             *mMpTranslator;         // Own
-    QTranslator             *mCommonTranslator;     // Own
-    
-    HbDialog                *mPopup;
-    QGraphicsWebView        *mWebView; // owned by popup dialog
-    
+#ifdef SHARE_FUNC_ENABLED
+    MpDetailsShareDialog*   mSharePopup;            // Own
+#endif
+
     Q_DISABLE_COPY(MpDetailsView)
 };
 
--- a/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,13 +18,22 @@
 #ifndef MPDETAILSVIEWPLUGIN_H
 #define MPDETAILSVIEWPLUGIN_H
 
-#include <qobject>
+#include <QObject>
 #include <mpxviewpluginqt.h>
 
 //forward declartions
 class MpDetailsView;
 
 //class declaration
+/*!
+ MpDetailsViewPlugin is one of the four view plugins in Music Player.
+ Each view plugin is instantiated on music player startup, and
+ destructed on music player exit.
+
+ The actual view is a member variable of ViewPlugin.
+ View's visibility is controlled by using its activateView() and
+ deactivateView() methods.
+*/
 class MpDetailsViewPlugin : public MpxViewPlugin
 {
     Q_OBJECT
--- a/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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: Framework wrapper 
-*
-*/
-
-#ifndef MPMPXDETAILSFRAMEWORKWRAPPER_H_
-#define MPMPXDETAILSFRAMEWORKWRAPPER_H_
-
-//includes
-#include <QObject>
-
-//forward declartions
-class MpSongData;
-class MpMpxDetailsFrameworkWrapperPrivate;
-
-//class declaration
-class MpMpxDetailsFrameworkWrapper : public QObject
-{
-    Q_OBJECT
-    friend class MpMpxDetailsFrameworkWrapperPrivate;
-
-public:
-    explicit MpMpxDetailsFrameworkWrapper( QObject *parent=0 );
-    virtual ~MpMpxDetailsFrameworkWrapper();
-    
-    MpSongData *songData();
-   
-public:
-    void retrieveSong();
-    
-private:
-    Q_DISABLE_COPY( MpMpxDetailsFrameworkWrapper )
-    MpMpxDetailsFrameworkWrapperPrivate *d_ptr; //owned
-};
-
-
-#endif /* MPMPXDETAILSFRAMEWORKWRAPPER_H_ */
--- a/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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: Framework wrapper - Private.
-*
-*/
-
-
-#ifndef MPMPXDETAILSFRAMEWORKWRAPPER_P_H_
-#define MPMPXDETAILSFRAMEWORKWRAPPER_P_H_
-
-#include <qobject>
-#include <mpxplaybackobserver.h>
-
-//forward declartions
-class MMPXPlaybackUtility;
-class MpMpxDetailsFrameworkWrapper;
-class CMPXMedia;
-class MpSongData;
-
-//class declaration
-class MpMpxDetailsFrameworkWrapperPrivate : public MMPXPlaybackObserver,
-                                            public MMPXPlaybackCallback
-{
-
-public:
-    explicit MpMpxDetailsFrameworkWrapperPrivate( MpMpxDetailsFrameworkWrapper *qq );
-    virtual ~MpMpxDetailsFrameworkWrapperPrivate();
-    
-public: //from MMPXPlaybackObserver
-    void HandlePlaybackMessage( CMPXMessage *aMessage, TInt aError );
-    
-public: //from MMPXPlaybackCallback
-    void HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError );
-    void HandleSubPlayerNamesL( TUid aPlayer, const MDesCArray *aSubPlayers,
-                                TBool aComplete, TInt aError );
-    void HandleMediaL( const CMPXMedia& aProperties, TInt aError );
-    
-public:
-    MpSongData *songData();
-    void retrieveSong();
-    
-private:
-    void constructProviderL();
-    void destructProviderL();
-    void doRetrieveSongL();
-    
-private:
-    MpMpxDetailsFrameworkWrapper             *q_ptr; //not owned
-    MpSongData                               *iSongData; // not owned
-    MMPXPlaybackUtility                      *iPlaybackUtility; // owned
-};
-
-
-#endif /* MPMPXDETAILSFRAMEWORKWRAPPER_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpquerymanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,110 @@
+/*
+* 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: Music Player Query Manager.
+*
+*/
+#ifndef MPQUERYMANAGER_H_
+#define MPQUERYMANAGER_H_
+
+#include <QPixmap>
+#include <QPointer>
+#include <QNetworkReply>
+#include <QDomDocument>
+#include <QMap>
+
+#include "mpviewbase.h"
+
+class QNetworkAccessManager;
+class ThumbnailManager;
+
+/*!
+  MpQueryManager class is responsible for performing music player
+  related network queries, including retrieving the URL for the
+  music.
+
+  It emits searchUrlRetrieved signal when it has received the
+  URL.
+*/
+class MpQueryManager : public QObject
+{
+    Q_OBJECT
+
+public:
+    MpQueryManager();
+    ~MpQueryManager();
+    
+public:
+    void clearNetworkReplies();
+    void queryLocalMusicStore( QString mArtist,QString mAlbum,QString mTitle );
+    void queryInspireMeItems( QString mArtist,QString mAlbum,QString mTitle );
+    void clearRecommendations();
+    
+    QStringList recommendationSongs();
+    QStringList recommendationArtists();
+    QStringList recommendationAlbumArtsLink();
+    QMap<QString, QPixmap>  recommendationAlbumArtsMap(); 
+    void insertMapItem( const QString &uri, const QPixmap &pixmap );    
+
+private slots:
+    void retrieveInformationFinished( QNetworkReply* reply );
+    void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
+    void retrieveInformationSslErrors( const QList<QSslError> &error );
+    void DownloadFinished( QNetworkReply* reply );    
+    void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
+    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+                  
+private:
+    void constructRequest( QString &uri );     
+    // retrieve URI from Ovi music server
+    void retrieveInformation( const QString &urlEncoded );
+    
+    void composeAlbumCover( QPixmap albumart );
+    QString keyValues( QStringList keys, QStringList values ) const;
+    void handleParsedXML();
+
+    bool writeImageToFile( const QByteArray &aImageData, const QString &aImageFileName );
+    
+signals:
+    void networkError();  
+    void searchUrlRetrieved( const QString& url );
+    void recommendationAlbumArtsReady();
+
+private:    
+   
+    QNetworkAccessManager   *mManager;
+    QNetworkAccessManager   *mDownloadManager;
+    
+    int                     mDownloadedAlbumArts;
+  
+    QList<QNetworkReply *>  mReplys;
+    
+    QDomDocument            mDomDocument;
+    ThumbnailManager        *mThumbnailManager; //owned    
+    
+    QString                 mArtist;
+    QString                 mAlbum;
+    QString                 mTitle;
+    
+    QStringList          mRecommendationAlbumArtsName;
+    
+    QStringList          mRecommendationSongs;
+    QStringList          mRecommendationArtists;
+    QStringList          mRecommendationAlbumArtsLink;
+    QMap<QString, QPixmap>  mRecommendationAlbumArtsMap;
+    int                     mAlbumArtsReadyCount;
+    QPixmap                 mDefaultRecommendationAlbumArt;
+       
+ 
+};
+#endif /* MPQUERYMANAGER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpsharedata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,76 @@
+/*
+* 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: meta data used by publish player.
+*
+*/
+
+#ifdef SHARE_FUNC_ENABLED
+
+#ifndef MPSHAREDATA_H
+#define MPSHAREDATA_H
+
+#include <QObject>
+#include <QString>
+#include <QPixmap>
+
+class MpSongData;
+class HbIcon;
+
+/*!
+  MpShareData represents the information that is
+  used for sharing purposes. This information includes
+  e.g. song information and user information.
+*/
+class MpShareData : public QObject
+{
+    Q_OBJECT
+
+public:
+    MpShareData();
+    virtual ~MpShareData();
+
+    void setOwner( QObject* aOwner );
+    void setSongData( MpSongData* aSongData );
+    void setErrorMessage( const QString& s );
+	void setLanguage( const QString& s );
+    void setUnknownTr( const QString& s );
+
+public slots:
+    QObject* owner() const;
+    MpSongData* songData() const;
+    QString errorMessage() const;
+    void setUsername( const QString& s );
+    QString username() const;
+    void setPassword( const QString& s );
+    QString password() const;
+    QString objectType() const;
+    QString objectContent() const;
+    int objectReservedLength() const;
+	QString language() const;
+    QString title() const;
+    QString artist() const;
+    QString albumArtBase64() const;
+
+private:
+    QObject*    mOwner;    // NOT owned.
+    MpSongData* mSongData; // NOT owned.
+    QString     mErrorMessage;
+    QString     mUsername;
+    QString     mPassword;
+	QString     mLanguage;
+    QString     mUnknownTr;
+};
+
+#endif // MPSHAREDATA_H
+#endif // SHARE_FUNC_ENABLED
--- a/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +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: Metadata of song for details view.
-*
-*/
-
-#ifndef MPSONGDATA_H
-#define MPSONGDATA_H
-
-#include <QObject>
-#include <QString>
-#include <QPixmap>
-
-//forward declartions
-class QIcon;
-class ThumbnailManager;
-
-//class declaration
-class MpSongData : public QObject
-{
-    Q_OBJECT
-
-public:
-    explicit MpSongData( QObject *parent=0 );
-    virtual ~MpSongData();
-    
-    bool setTitle( const QString &title );
-    bool setAlbum( const QString &album );
-    bool setArtist( const QString &artist );
-    bool setComment( const QString &comment );
-    void setAlbumArtUri( const QString &albumArtUri );
-    bool setYear( int date );
-    bool setGenre( const QString &genre );
-    bool setComposer( const QString &compoer );
-    bool setAlbumTrack( const QString &albumtrack );
-    void setLink( const QString &link );
-
-    // inform details view when basic information is ready to accelerate UI update
-    void commitPlaybackInfo();
-    // inform details view when details information is ready
-    void commitSongDetailInfo();
-
-public slots:
-    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
-    
-    int reservedLength() const { return mLink.length() + mTitle.length() + mArtist.length(); }
-
-    QString title() const;
-    QString album() const;
-    QString artist() const;
-    QString comment() const;
-    void albumArt( QPixmap& pixmap );
-    QString year() const;
-    QString genre() const;
-    QString composer() const;
-    QString albumTrack() const;
-    QString link() const;
-
-signals:
-    void albumArtReady();
-    void playbackInfoChanged();
-	void songDetailInfoChanged();	
-
-private:
-    QString                  mTitle;
-    QString                  mAlbum;
-    QString                  mArtist;
-    QString                  mComment;
-    QString                  mComposer;
-    QString                  mGenre;
-    QString                  mYear;
-    QString                  mAlbumTrack;
-    QPixmap                  mAlbumArt;
-    ThumbnailManager         *mThumbnailManager; //owned
-    TInt                     mReqId;
-    QString                  currentAAUri; 
-    QPixmap                  mDefaultAlbumArt;
-    QString                  mLink;
-    
-    Q_DISABLE_COPY(MpSongData)
-};
-
-#endif // MPSONGDATA_H
--- a/mpviewplugins/mpdetailsviewplugin/mpdetailsviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/mpdetailsviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,45 +14,55 @@
 # Description: 
 #
 
-symbian:TARGET.UID3 = 0x2002D0AA
-
 TEMPLATE = lib
-CONFIG += hb qt ecomplugin
+CONFIG += hb qt ecomplugin mobility SHARE_FUNC_ENABLED
 QT += webkit \
-    network \
-    xml
+      network \
+      xml
 TARGET = mpdetailsviewplugin
+MOBILITY += bearer systeminfo
+symbian: { 
+    TARGET.UID3 = 0x2002D0AA
+    TARGET.CAPABILITY = All -TCB
+    TARGET.EPOCALLOWDLLDATA = 1
+}
 
 SERVICE.INTERFACE_NAME = org.nokia.mmdt.MpxViewPlugin/1.0
 SERVICE.CONFIGURATION = ""
 
-TARGET.CAPABILITY = All -TCB
-
 DEPENDPATH += .
 INCLUDEPATH += . \
-     inc \
-     ../../inc
+               inc \
+               ../../inc
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
 
-LIBS += -lmpxviewframeworkqt.dll \
-		-lmpxplaybackutility.dll \
-        -lmpxcommon.dll \
-        -lthumbnailmanagerqt.dll 
-    
-symbian:TARGET.EPOCALLOWDLLDATA	= 1
+LIBS += -lmpxviewframeworkqt \
+        -lmpxplaybackutility \
+        -lmpxcommon \
+        -lthumbnailmanagerqt \
+        -lmpsettingsmanager \
+        -lmpengine \
+        -lmpdata
 
 # Input
+HEADERS += ../../inc/mpviewbase.h \
+           inc/mpdetailsviewplugin.h \
+           inc/mpdetailsview.h \
+           inc/mpquerymanager.h
+           
 SOURCES += src/mpdetailsviewplugin.cpp \
-    	   src/mpdetailsview.cpp \
-    	   src/mpmpxdetailsframeworkwrapper.cpp \
-    	   src/mpmpxdetailsframeworkwrapper_p.cpp \
-    	   src/mpsongdata.cpp
+           src/mpdetailsview.cpp \
+           src/mpquerymanager.cpp
 
-HEADERS = ../../inc/mpviewbase.h \
-        inc/mpdetailsviewplugin.h \
-    	  inc/mpdetailsview.h \
-    	  inc/mpmpxdetailsframeworkwrapper.h \
-    	  inc/mpmpxdetailsframeworkwrapper_p.h \
-    	  inc/mpsongdata.h
-    	  
+# Sharing functionality
+CONFIG(SHARE_FUNC_ENABLED) {
+    SOURCES += src/mpdetailssharedialog.cpp src/mpsharedata.cpp
+    HEADERS += inc/mpdetailssharedialog.h inc/mpsharedata.h
+    DEFINES += SHARE_FUNC_ENABLED
+    debug {
+        DEFINES += SHARE_PLAYER_RND
+    }
+}
+
 RESOURCES += resources/mpdetailsviewresources.qrc
+
Binary file mpviewplugins/mpdetailsviewplugin/resources/defaultalbumart.png has changed
--- a/mpviewplugins/mpdetailsviewplugin/resources/detailsview.docml	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
-    <widget name="content" type="HbWidget">
-        <widget name="container_2" type="HbWidget">
-            <widget name="songDetailsGroupBox" type="HbGroupBox">
-                <string name="heading" value="Song Details 1"/>
-                <real name="z" value="5"/>
-                <sizehint type="PREFERRED" width="53un"/>
-                <bool name="collapsable" value="TRUE"/>
-            </widget>
-            <widget name="inspireMeGroupBox" type="HbGroupBox">
-                <string name="heading" value="Inspire me"/>
-                <real name="z" value="6"/>
-                <sizehint type="PREFERRED" width="53un"/>
-                <bool name="collapsable" value="TRUE"/>
-            </widget>
-            <real name="z" value="0"/>
-            <sizehint height="40un" type="PREFERRED" width="53un"/>
-            <layout orientation="Vertical" spacing="0px" type="linear">
-                <linearitem itemname="songDetailsGroupBox"/>
-                <linearitem itemname="inspireMeGroupBox"/>
-            </layout>
-        </widget>
-        <widget name="albumArt" type="HbLabel">
-            <enums name="alignment" value="AlignAbsolute|AlignLeft|AlignBottom|AlignRight|AlignVCenter|AlignJustify|AlignHCenter|AlignLeading|AlignTrailing"/>
-            <real name="z" value="1"/>
-            <sizehint height="22un" type="PREFERRED" width="22un"/>
-            <string name="plainText" value=""/>
-        </widget>
-        <widget name="shareButton" type="HbPushButton">
-            <real name="z" value="3"/>
-            <string name="text" value="Share"/>
-            <sizehint type="PREFERRED" width="17.61194un"/>
-        </widget>
-        <widget name="container_1" type="HbWidget">
-            <widget name="songText" type="HbLabel">
-                <real name="z" value="4"/>
-                <sizehint height="3.9un" type="PREFERRED"/>
-                <string name="plainText" value="Label"/>
-                <string name="html" value=""/>
-            </widget>
-            <widget name="artistText" type="HbLabel">
-                <real name="z" value="6"/>
-                <sizehint height="3.9un" type="PREFERRED"/>
-                <string name="plainText" value="Label"/>
-                <string name="html" value=""/>
-            </widget>
-            <widget name="albumText" type="HbLabel">
-                <real name="z" value="5"/>
-                <sizehint height="3.9un" type="PREFERRED"/>
-                <string name="plainText" value="Label"/>
-                <string name="html" value=""/>
-            </widget>
-            <real name="z" value="0"/>
-            <sizehint height="20un" type="PREFERRED" width="22.53731un"/>
-            <layout orientation="Vertical" type="linear">
-                <linearitem itemname="songText"/>
-                <linearitem itemname="artistText"/>
-                <linearitem itemname="albumText"/>
-            </layout>
-        </widget>
-        <string name="windowTitle" value="ass"/>
-        <layout type="anchor">
-            <anchoritem dst="container_2" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-            <anchoritem dst="container_2" dstEdge="TOP" spacing="28.0597un" src="" srcEdge="TOP"/>
-            <anchoritem dst="albumArt" dstEdge="LEFT" spacing="1.49254un" src="" srcEdge="LEFT"/>
-            <anchoritem dst="albumArt" dstEdge="TOP" spacing="4.77612un" src="" srcEdge="TOP"/>
-            <anchoritem dst="shareButton" dstEdge="TOP" spacing="17.61194un" src="" srcEdge="TOP"/>
-            <anchoritem dst="shareButton" dstEdge="RIGHT" spacing="-32.43284un" src="" srcEdge="RIGHT"/>
-            <anchoritem dst="container_1" dstEdge="TOP" spacing="4.62687un" src="" srcEdge="TOP"/>
-            <anchoritem dst="container_1" dstEdge="RIGHT" spacing="-4.92537un" src="" srcEdge="RIGHT"/>
-        </layout>
-    </widget>
-    <metadata activeUIState="Common ui state" display="QHD portrait" unit="un">
-        <uistate name="Common ui state" sections="#common"/>
-    </metadata>
-</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/resources/index.html	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />        
+        <title>Publish</title>
+
+        <link type="text/css" rel="stylesheet" href="http://hf.ci.wipsl.com/PleiXXPTsup/noheva-be/css/ovi.player.share.ui.css" />
+		<link type="text/css" rel="stylesheet" href="musiccontext.css" />		<!-- CSS for music context area -->
+		
+		<!-- Player scripts -->
+        <script type="text/javascript" src="http://hf.ci.wipsl.com/PleiXXPTsup/noheva-be/js/publishplayer.js"></script>
+		
+		<!-- Local stuff to be implemented by user application to provide the contextual information -->
+		<script type="text/javascript" src="musiccontext.js"></script>
+		
+		<!-- Error recovery in case page player script loading fails -->
+		 <script type="text/javascript">
+		 var mybody = {
+				onLoad: function () {
+					if (window['music'] &&
+						window['ovi'] &&
+						ovi['player'] &&
+						ovi.player['publish'] ) {
+						music.initPlayer();
+						music.updateContextArea();
+					} else {
+						showErrorMessage();
+					}
+				},
+				onFocus: function () {
+					if (window['music']) {
+						music.updateContextArea();
+					}
+				}
+			}
+			function showErrorMessage() {
+				var errorUi = "<H1>" + window.context.errorMessage() + "</H1>";
+				errorUi += "<input type='button' value='Close' onClick='context.owner().closeShareDialog();'>";
+				document.getElementById("ovi.player.share.ui").innerHTML = errorUi;
+			}
+		</script>		
+
+    </head>
+	<!-- onfocus refreshes only the song when publishplayer is set active / deactive -->
+    <body onload="mybody.onLoad();" onfocus="mybody.onFocus();">
+		<div id="ovi.player.share.ui"></div>
+    </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/resources/mpdetailsview.docml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<hbdocument version="0.7">
+    <widget name="content" type="HbWidget">    
+        <spaceritem name="spacer1">
+            <sizepolicy verticalPolicy="Expanding"/>
+        </spaceritem>
+        <widget name="albumArt" type="HbLabel">
+            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+            <icon iconName="Album Art" name="icon"/>
+        </widget>
+        <widget name="trackTitle" type="HbLabel">
+            <fontspec name="fontSpec" role="Primary"/>
+            <enums name="alignment" value="AlignLeft"/>
+        </widget>
+        <widget name="artist" type="HbLabel">
+            <fontspec name="fontSpec" role="Secondary"/>
+            <enums name="alignment" value="AlignLeft"/>
+        </widget>
+        <widget name="albumName" type="HbLabel">
+            <fontspec name="fontSpec" role="Secondary"/>
+            <enums name="alignment" value="AlignLeft"/>
+        </widget>
+        <widget name="shareButton" type="HbPushButton">
+            <string name="text" value="Share"/>
+            <enums name="textAlignment" value="AlignCenter"/>                
+        </widget>
+        <widget name="songDetails" type="HbGroupBox">
+             <widget name="songDetailsListWidget" role="HbGroupBox:contentWidget" type="HbListWidget">
+                <string name="verticalScrollBarPolicy" value="ScrollBarAlwaysOff"/>
+             </widget>
+             <bool name="collapsable" value="TRUE"/>
+             <string name="heading" value="Song details"/>
+        </widget>
+        <widget name="inspireMeGroupBox" type="HbGroupBox">
+            <widget name="inspireListWidget" role="HbGroupBox:contentWidget" type="HbListWidget">
+                <string name="verticalScrollBarPolicy" value="ScrollBarAlwaysOff"/>
+            </widget>
+            <widget name="inspireMeProgressBar" type="HbProgressBar">
+            	<integer name="minimum" value="0"/>
+            	<integer name="maximum" value="0"/>
+              <enums name="orientation" value="Horizontal"/>
+              <bool name="visible" value="FALSE"/>
+            </widget>
+            <bool name="collapsable" value="TRUE"/>
+            <string name="heading" value="Inspire me"/>
+        </widget>
+    </widget>
+
+  <section name="ShowInspireMe">
+    <widget name="content" type="HbWidget">
+      <layout type="anchor">
+        <anchoritem dst="artist" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="albumArt" srcEdge="RIGHT"/>
+        <anchoritem dst="albumArt" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
+        <anchoritem dst="albumArt" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
+        <anchoritem dst="trackTitle" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
+        <anchoritem dst="trackTitle" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="trackTitle" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="albumArt" srcEdge="RIGHT"/>
+        <anchoritem dst="artist" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="artist" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="trackTitle" srcEdge="BOTTOM"/>
+        <anchoritem dst="albumName" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="albumName" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="artist" srcEdge="BOTTOM"/>
+        <anchoritem dst="albumName" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="albumArt" srcEdge="RIGHT"/>
+        <anchoritem dst="shareButton" dstEdge="TOP" spacing="var(hb-param-margin-gene-bottom)" src="albumName" srcEdge="BOTTOM"/>
+        <anchoritem dst="shareButton" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
+        <anchoritem dst="shareButton" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="songDetails" dstEdge="TOP" spacing="var(hb-param-margin-gene-bottom)" src="shareButton" srcEdge="BOTTOM"/>
+        <anchoritem dst="songDetails" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+        <anchoritem dst="songDetails" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="inspireMeGroupBox" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+        <anchoritem dst="inspireMeGroupBox" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="inspireMeGroupBox" dstEdge="TOP" spacing="0un" src="songDetails" srcEdge="BOTTOM"/>
+        <anchoritem dst="inspireMeGroupBox" dstEdge="BOTTOM" spacer="spacer1" src="" srcEdge="BOTTOM"/>
+      </layout>
+    </widget>
+  </section>
+
+  <section name="HideInspireMe">
+    <widget name="content" type="HbWidget">
+      <layout type="anchor">
+        <anchoritem dst="artist" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="albumArt" srcEdge="RIGHT"/>
+        <anchoritem dst="albumArt" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
+        <anchoritem dst="albumArt" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
+        <anchoritem dst="trackTitle" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
+        <anchoritem dst="trackTitle" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="trackTitle" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="albumArt" srcEdge="RIGHT"/>
+        <anchoritem dst="artist" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="artist" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="trackTitle" srcEdge="BOTTOM"/>
+        <anchoritem dst="albumName" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="albumName" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="artist" srcEdge="BOTTOM"/>
+        <anchoritem dst="albumName" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="albumArt" srcEdge="RIGHT"/>
+        <anchoritem dst="shareButton" dstEdge="TOP" spacing="var(hb-param-margin-gene-bottom)" src="albumName" srcEdge="BOTTOM"/>
+        <anchoritem dst="shareButton" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
+        <anchoritem dst="shareButton" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="songDetails" dstEdge="TOP" spacing="var(hb-param-margin-gene-bottom)" src="shareButton" srcEdge="BOTTOM"/>
+        <anchoritem dst="songDetails" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+        <anchoritem dst="songDetails" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+        <anchoritem dst="songDetails" dstEdge="BOTTOM" spacer="spacer1" src="" srcEdge="BOTTOM"/>
+      </layout>
+    </widget>
+  </section>
+
+
+  <metadata activeUIState="Common ui state" display="QHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+    </metadata>
+</hbdocument>
--- a/mpviewplugins/mpdetailsviewplugin/resources/mpdetailsviewresources.qrc	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/resources/mpdetailsviewresources.qrc	Thu Jul 22 16:32:33 2010 +0100
@@ -1,9 +1,13 @@
-<RCC>    
-    <qresource prefix="/detailsviewdocml" >
-        <file alias="detailsview.docml">detailsview.docml</file>
+<RCC>
+    <qresource prefix="/mpdetailsviewdocml">
+        <file alias="mpdetailsview.docml">mpdetailsview.docml</file>
     </qresource>
-    
-    <qresource prefix="/detailsviewicons" >
-        <file alias="defaultalbumart.png">defaultalbumart.png</file>
+    <qresource prefix="/mpdetailsviewicons">
+        <file alias="qtg_large_music_album.svg">qtg_large_music_album.svg</file>
+    </qresource>
+    <qresource prefix="/shareview">
+        <file alias="index.html">index.html</file>
+        <file alias="musiccontext.js">musiccontext.js</file>
+        <file alias="musiccontext.css">musiccontext.css</file>
     </qresource>
 </RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/resources/musiccontext.css	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,23 @@
+/* Info */
+table.info-list {
+    padding-top:10px;
+}
+
+table.info-list td {
+    padding: 2px 0;	
+}
+
+.info-list .description .artist {
+    padding-top:10px;
+	color:#ccc;
+}
+
+.info-list .description .title {
+
+}
+
+.info-list .description {	
+	display:inline-block;
+    padding-left:20px;
+    vertical-align:top;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/resources/musiccontext.js	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,165 @@
+//Logging for QT
+
+// Override the default alert function.
+// TODO remove this when alert in platform is working?
+alert = function(str) {
+    console.log(str);
+    window.context.owner().errorHandler("Alert", str);
+}
+
+function logme(str){
+    console.log(str);
+    if(window['context'] && context['owner']){
+        context.owner().debugJs('debugJs: ' + str);
+    }
+}
+
+function traceme(){
+    var cf = arguments.callee.caller;
+    logme('-------------- Start traceme ' + new Date().toLocaleTimeString() + ' --------------');
+    var arr = new Array();
+    while (cf) {
+      var fn = cf.toString();
+      fn = fn.substr(0,fn.indexOf('{'));
+      arr.push(fn);
+      cf = cf.caller;
+    }
+    //arr.reverse();
+    for(i=0;i<=arr.length -1;i++){
+        logme(arr[i]);
+    }
+    logme('-------------- End traceme --------------');
+}
+
+
+window["music"] = window["music"] ||
+{};
+
+(function(){
+	var musicContext = null;
+	var publishingPlayer = null;
+    
+    music.getPostContent = function(){
+        traceme();
+        return {
+            reservedLength : window.context.objectReservedLength(),
+			type : window.context.objectType(), 
+		    content : window.context.objectContent()
+        };
+    }
+    	
+	/**
+	 * Call this for player to show UI and initialize connection to SNC
+	 */
+	music.initPlayer = function() 
+	{	
+        traceme();
+	    // Initialize player    
+	    publishingPlayer = new ovi.player.publish.Player({
+	        locale : window.context.language(),
+	        credentials : {
+	            type : "",
+	            sso_base_url : "",
+	            token : _getNoa() 
+	        }
+	    });
+	    
+	    // Show UI 
+	    publishingPlayer.create(null, function(status, data){
+            traceme();
+			if (status != publishingPlayer.status.updateservices_ok && status != publishingPlayer.status.show_ok) {
+				// Delegate errors to native side
+                window.context.owner().errorHandler(status, data.message);
+			} 		
+		});	
+		
+	}
+	
+	/** 
+	 * Call this for player to update context area (the song UI).
+	 */
+	music.updateContextArea = function() {
+		// Update artist and title metadata.
+        traceme();
+	    publishingPlayer.setContextObject(_getMusicContext());
+	    if(window['context'] && context['owner']){
+        context.owner().showWindow();
+    }
+}
+	
+	/**
+	 * Call this function to update metadata (called when music player has retrieved the link) 
+	 */
+	music.updateMetadata = function() {
+	    // Update url at bottom of comment field.
+        traceme();
+		musicContext.updateObject(music.getPostContent());
+	}
+	
+	/**
+	 * Call this function to release all resources from player.
+	 */
+	music.teardown = function() {
+        traceme();
+		publishingPlayer.cancel();
+	}
+	
+	// Private functions, read data from native side..
+	function _playerReady() {
+        traceme();
+        return typeof ovi != "undefined" &&
+            typeof ovi.player != "undefined" &&
+			typeof ovi.player.publish != "undefinded";
+	}
+	
+	
+	function _getMusicContext() {
+	    traceme();            
+	    musicContext = new ovi.player.contextobject.Player(); 
+        
+        var attachment = music.getPostContent();
+	
+        logme('music._getMusicContext() | attachment'); 	 
+
+        logme('music._getMusicContext() | musicContext.create');
+
+        var sharePlayerArtImage = "";
+        var sharePlayerArtBase64 = window.context.albumArtBase64();
+        if ( sharePlayerArtBase64.length > 0 ) {
+            // TODO: this is temporary solution until base64 defect in QT is fixed.
+            sharePlayerArtImage = "<td valign='top' width='74px'><img src='" + sharePlayerArtBase64 + "' width='74px' height='74px' /></td>";
+//            sharePlayerArtImage = "<img class='cover' src='data:image/png;base64," + sharePlayerArtBase64 + "' width='74px' height='74px' />";
+        }
+        // Create context object
+	    musicContext.create({
+	        view: "none",
+	        data: { 
+	            miniview: "<table width='100%' class='list info-list'><tr>"
+				/*
+						// TODO REMOVE, for testing only
+						+ "<input type=\"button\" value=\"Clear JS Cache\" onClick=\"window.context.owner().clearCache();\">"
+                */
+                        + sharePlayerArtImage
+						+ "<td align='left' valign='top'>"
+						+ "<span class='description'>"
+						+ "<div class='title'>" + window.context.title() + "</div>"
+						+ "<div class='artist'>" + window.context.artist() + "</div>"
+						+ "</span>"
+					    + "</td></tr></table>",
+	            object: attachment 
+	        }
+	    });
+        return musicContext;
+	}
+	                        
+	function _getNoa() {
+        traceme();
+	    // temporary solution until SSO token get from QT SSO DE (now we fetch username, password and re-authenticate using api.ovi.com)
+	    var token = (window.context.username)? [window.context.username(),window.context.password()] : window.context.token.split(":");
+        logme(token[0] + "/" + token[1]);
+	    return {
+            username: token[0],
+	        password: token[1]
+	    }           
+	}	
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/resources/ovicredentials.txt	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,1 @@
+hipsu:hipsupass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/resources/qtg_large_music_album.svg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,101 @@
+<?xml version="1.0" ?>
+<!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1//EN'  'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
+<svg height="60" viewBox="0 0 60 60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g>
+<rect fill="none" height="60" width="60"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1" x1="29.87" x2="30.09" y1="8.18" y2="51.03">
+
+<stop offset="0" stop-color="#D1D7D9"/>
+
+<stop offset="0.69" stop-color="#808A8C"/>
+
+<stop offset="1" stop-color="#A4ACAE"/>
+
+</linearGradient>
+<path d="M29.89,7.958c-11.83,0.062-21.38,9.702-21.32,21.54,0.061,11.83,9.704,21.38,21.54,21.32,11.83-0.06,21.38-9.702,21.32-21.54-0.07-11.84-9.71-21.38-21.54-21.32zm0.13,26.94c-3.043,0.016-5.522-2.438-5.538-5.481-0.014-3.043,2.438-5.522,5.481-5.539,3.042-0.016,5.523,2.439,5.539,5.482s-2.43,5.52-5.48,5.54z" fill="url(#SVGID_1)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2" x1="29.93" x2="30.02" y1="20.37" y2="38.59">
+
+<stop offset="0" stop-color="#FFFFFF"/>
+
+<stop offset="1" stop-color="#CFCFCF"/>
+
+</linearGradient>
+<path d="M29.95,20.2c-5.072,0.026-9.163,4.158-9.136,9.23,0.026,5.071,4.157,9.161,9.229,9.135,5.072-0.024,9.162-4.157,9.136-9.229-0.03-5.06-4.16-9.15-9.23-9.13zm0.07,14.08c-2.705,0.014-4.909-2.168-4.923-4.872-0.013-2.705,2.168-4.909,4.873-4.923,2.705-0.012,4.91,2.169,4.923,4.874,0.02,2.7-2.16,4.91-4.87,4.92z" fill="url(#SVGID_2)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3" x1="50.84" x2="9.32" y1="39.88" y2="40.09">
+
+<stop offset="0" stop-color="#A0A7A9"/>
+
+<stop offset="0.5" stop-color="#FFFFFF"/>
+
+<stop offset="1" stop-color="#A0A7A9"/>
+
+</linearGradient>
+<path d="M30.1,49.7c-11.32,0.06-20.56-8.95-20.85-20.21-0.002,0.147-0.01,0.295-0.008,0.446,0.059,11.46,9.4,20.71,20.87,20.66,11.47-0.06,20.72-9.401,20.66-20.87-0.002-0.149-0.01-0.297-0.014-0.445-0.19,11.26-9.34,20.37-20.66,20.42z" fill="url(#SVGID_3)" fill-opacity="0.3" stroke-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4" x1="25.09" x2="34.89" y1="31.65" y2="31.6">
+
+<stop offset="0" stop-color="#848C8E"/>
+
+<stop offset="0.5" stop-color="#FFFFFF"/>
+
+<stop offset="1" stop-color="#848C8E"/>
+
+</linearGradient>
+<path d="M30.02,34.28c2.705-0.013,4.885-2.217,4.873-4.922-0.001-0.155-0.011-0.309-0.026-0.459-0.217,2.49-2.301,4.603-4.85,4.615-2.55,0.013-4.654-2.078-4.897-4.565-0.013,0.151-0.022,0.305-0.021,0.459,0.02,2.69,2.23,4.88,4.93,4.86z" fill="url(#SVGID_4)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5" x1="30" x2="30" y1="8.88" y2="50.2">
+
+<stop offset="0" stop-color="#36B5FF"/>
+
+<stop offset="1" stop-color="#1B66D8"/>
+
+</linearGradient>
+<path d="M29.89,8.571c-11.49,0.058-20.77,9.429-20.71,20.92,0.06,11.5,9.427,20.76,20.92,20.71,11.5-0.059,20.77-9.424,20.71-20.92s-9.42-20.77-20.92-20.71zm0.15,29.65c-4.877,0.025-8.851-3.908-8.875-8.785h-0.002c-0.025-4.877,3.909-8.85,8.787-8.875s8.85,3.908,8.875,8.785h0.003c0.03,4.88-3.9,8.85-8.78,8.88z" fill="url(#SVGID_5)"/>
+<path d="M10.22,33.47c-2.163-10.42,4.19-20.78,14.45-23.58,1.672-0.457,3.401-0.693,5.133-0.701,8.607-0.044,16.55,5.571,19.31,13.65l0.21,0.617-10.39,2.838-0.205-0.502c-1.441-3.524-4.975-5.879-8.794-5.859-0.819,0.004-1.639,0.116-2.434,0.333-4.6,1.258-7.546,5.759-6.855,10.47l0.079,0.535-10.38,2.841-0.12-0.65z" fill="#FFFFFF" fill-opacity="0.2" stroke-opacity="0.2"/>
+<rect fill="none" height="60" width="60"/>
+</g>
+<g transform="matrix(1 0 0 1 30 30)">
+<rect fill="none" height="30" width="30"/>
+<linearGradient gradientTransform="matrix(0.5 0 0 -0.5 -313.5 -276)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="655.1" x2="655.1" y1="-564.3" y2="-603.3">
+
+<stop offset="0" stop-color="#8CFF24"/>
+
+<stop offset="1" stop-color="#15570B"/>
+
+</linearGradient>
+<path d="M24.32,6.54l-1.54-3.749-8.86,3.939,0.014,11.96c-1.356-0.886-3.354-1.177-5.384-0.627-3.203,0.862-5.271,3.476-4.624,5.833,0.65,2.358,3.771,3.57,6.972,2.707,2.706-0.73,4.58-2.662,4.569-4.726-0.009-2.064,0.016-7.669,0-11.72l8.86-3.61z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.5 0 0 -0.5 -313.5 -276)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="654.9" x2="654.9" y1="-561" y2="-570.8">
+
+<stop offset="0" stop-color="#36B5FF"/>
+
+<stop offset="1" stop-color="#1B66D8"/>
+
+</linearGradient>
+<polygon fill="url(#SVGID_2_)" points="13.94,16.63,13.93,6.73,13.92,6.73,13.94,16.63"/>
+<linearGradient gradientTransform="matrix(0.5 0 0 -0.5 -313.5 -276)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="666.8" x2="666.8" y1="-561" y2="-570.7">
+
+<stop offset="0" stop-color="#9EFF47"/>
+
+<stop offset="1" stop-color="#11470A"/>
+
+</linearGradient>
+<path d="M15.47,9.54c0.003,0.653,0.005-0.101,0.006,0.611l8.837-3.612-0.218-0.554-8.63,3.556z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientTransform="matrix(0.5 0 0 -0.5 -313.5 -276)" gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="663.6" x2="663.7" y1="-564.2" y2="-588.5">
+
+<stop offset="0" stop-color="#B3FF6E"/>
+
+<stop offset="1" stop-color="#11470A"/>
+
+</linearGradient>
+<polygon fill="url(#SVGID_4_)" points="14.07,19.03,14.07,7.071,22.94,3.207,22.78,2.791,13.73,6.73,13.73,18.69"/>
+<linearGradient gradientTransform="matrix(0.5 0 0 -0.5 -313.5 -276)" gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="646.3" x2="646.3" y1="-589.9" y2="-604.1">
+
+<stop offset="0" stop-color="#B2F56E"/>
+
+<stop offset="0.47" stop-color="#40AD00"/>
+
+<stop offset="1" stop-color="#074D00"/>
+
+</linearGradient>
+<path d="M8.813,26.19c-2.129,0.011-3.827-0.97-4.224-2.442-0.242-0.893,0.014-1.881,0.722-2.777,0.775-0.982,1.972-1.727,3.374-2.096,0.593-0.158,1.193-0.238,1.787-0.242,2.129-0.01,3.825,0.972,4.225,2.443,0.529,1.949-1.309,4.135-4.098,4.873-0.59,0.17-1.196,0.25-1.787,0.25z" fill="url(#SVGID_5_)"/>
+<rect fill="none" height="30" width="30"/>
+</g>
+</svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpdetailssharedialog.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,568 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Implementation for share player.
+*
+*/
+
+#ifdef SHARE_FUNC_ENABLED
+
+#include "mpdetailssharedialog.h"
+#include "mpsharedata.h"
+#include "mpsongdata.h"
+#include "mptrace.h"
+#include <QObject>
+#include <QGraphicsWebView>
+#include <QGraphicsScene>
+#include <QWebPage>
+#include <QWebFrame>
+#include <QNetworkAccessManager>
+#include <QNetworkDiskCache>
+#include <QNetworkReply>
+#include <QDesktopServices>
+#include <QNetworkProxyFactory>
+#include <QTimer>
+#include <hbmessagebox.h>
+#include <QFile>
+#include <QTextStream>
+#include <qsysteminfo.h>
+#include <hbmainwindow.h>
+#include <hbstyleloader.h>
+#include <hbprogressdialog.h>
+
+QTM_USE_NAMESPACE
+
+// SHARE_INDEX_FILE defines where the index.html file is loaded from.
+#define SHARE_INDEX_URL "qrc:///shareview/index.html"
+
+#ifdef Q_OS_SYMBIAN
+// Symbian target.
+#ifdef SHARE_PLAYER_RND
+// For R&D testing, index.html may be loaded from E: drive.
+// User must manually place index.html in the correct location.
+// If the RND file does not exist, then SHARE_INDEX_URL will be used.
+#define RND_SHARE_INDEX_URL "file:///f:/index.html"
+#define RND_SHARE_INDEX_FILE "f:\\index.html"
+#define RND_OVI_LOGIN_FILE "f:\\ovicredentials.txt"
+#endif
+#else
+// Assume Windows target.
+#define RND_SHARE_INDEX_URL "file:///c:/temp/index.html"
+#define RND_SHARE_INDEX_FILE "c:\\temp\\index.html"
+#define RND_OVI_LOGIN_FILE "c:\\temp\\ovicredentials.txt"
+
+#endif
+
+// Default language in case QSystemInfo does not work.
+#define DEFAULT_LANGUAGE "en-US"
+
+// Default error message.
+#define ERROR_MESSAGE "An error occured. Sharing is not currently available"
+
+
+/*!
+ MpNetworkAccessManager allows local caching of publishing player files
+ in order to minimize network traffic.
+ The files will be cached to the private directory of the application,
+ i.e. in the music player's case, this is C:\Private\10207C62\Cache.
+ */
+class MpNetworkAccessManager : public QNetworkAccessManager
+{
+public:
+    MpNetworkAccessManager( QObject* parent = 0 )
+        : QNetworkAccessManager( parent )
+    {
+        proxyFactory()->setUseSystemConfiguration( true );
+        QNetworkDiskCache* diskCache = new QNetworkDiskCache( this );
+        QString location = QDesktopServices::storageLocation( QDesktopServices::CacheLocation );
+        diskCache->setCacheDirectory( location );
+        setCache( diskCache );
+    }
+
+private:
+    QNetworkReply* createRequest( Operation op,
+                                  const QNetworkRequest &request,
+                                  QIODevice* outgoingData = 0 )
+    {
+        TX_ENTRY
+        TX_LOG_ARGS( "share: createRequest URL=" << request.url().toString() )
+
+        QVariant val = request.attribute( QNetworkRequest::CacheLoadControlAttribute );
+
+         // Change the cache load control attrbute!
+        QNetworkRequest req = request;
+        req.setAttribute( QNetworkRequest::CacheLoadControlAttribute,
+                          QVariant( QNetworkRequest::PreferCache ) );
+        QNetworkReply* result = QNetworkAccessManager::createRequest( op, req, outgoingData );
+        TX_EXIT
+        return result;
+    }
+};
+
+/*!
+ MpShareWebView derives from QGraphicsWebView in order to override it's
+ contextMenuEvent method to prevent the background context menu from
+ being displayed when user makes long click in the web view.
+ */
+class MpShareWebView : public QGraphicsWebView
+{
+public:
+    MpShareWebView( QGraphicsItem * parent = 0 )
+        : QGraphicsWebView( parent )
+    {
+        settings()->setAttribute( QWebSettings::LocalContentCanAccessRemoteUrls, true );
+        settings()->setAttribute( QWebSettings::LocalStorageDatabaseEnabled, true );
+        settings()->enablePersistentStorage();
+    }
+
+protected:
+    void contextMenuEvent( QGraphicsSceneContextMenuEvent* /*ev*/ ) // Override QGraphicsWebView::contextMenuEvent
+    {
+        // Fix to prevent "Stop" and "Reload" buttons in page background.
+        // Do not respond to the contextMenuEvent.
+    }
+};
+
+
+/*!
+ Constructor.
+ */
+MpDetailsShareDialog::MpDetailsShareDialog()
+    : mShareWebView( 0 ),
+      mShareNetAccMan( 0 ),
+      mProgressbar ( 0 ),
+      mIsInitialized( false )
+{
+    // DeleteOnClose attribute prevents crash when user presses Cancel
+    // before publishing player is fully loaded.
+    setAttribute( Qt::WA_DeleteOnClose, true );
+}
+
+/*!
+ Initialize the share dialog.
+ When fully initialized we set our mIsInitialized flag to true.
+ Our isInitialized() method can be called to determine whether
+ initialization was successful.
+ */
+void MpDetailsShareDialog::initialize( MpSongData* aSongData, const QString& aUnknownTr )
+{
+    TX_ENTRY
+    if ( !initUser() )
+    {
+        emit closeShareDialog();
+        return;
+    }
+    initShareData( aSongData, aUnknownTr );
+    initLanguage();
+    initNetworkAccessManager();
+    initWebView();
+    initSignalSlots();
+
+    setDismissPolicy( HbDialog::NoDismiss );
+
+    // No timeout needed for the dialog.
+    setTimeout( HbPopup::NoTimeout );
+
+#ifdef SHARE_PLAYER_RND
+    // Test whether the RND file exists.
+    QFile file( RND_SHARE_INDEX_FILE );
+    if ( file.exists() )
+    {
+        // Load the RND URL from the specified location to the web view.
+        TX_LOG_ARGS( "share: Use RND index.html file " << RND_SHARE_INDEX_FILE )
+        mShareWebView->load( QUrl( RND_SHARE_INDEX_URL ) );
+    }
+    else
+#endif
+    {
+        // Load the production URL from the application resources to the web view.
+        TX_LOG_ARGS( "share: Use QRC index.html file " << SHARE_INDEX_URL )
+        mShareWebView->load( QUrl( SHARE_INDEX_URL ) );
+    }
+
+    // Flag that the dialog is now fully initialized.
+    mIsInitialized = true;
+
+    // Show progress dialog in .3 second if loading not finished.
+    QTimer::singleShot(300, this, SLOT(showProgressDialog()));
+
+    TX_EXIT
+}
+
+/*!
+ Destructor.
+ */
+MpDetailsShareDialog::~MpDetailsShareDialog()
+{
+    TX_ENTRY
+    if ( mShareData.songData() )
+    {
+        // Ensure that we remove the temporary album art file when we close the dialog.
+        // TODO this should be removed when base64 issue is solved.
+        TX_LOG_ARGS( "share: remove album art file" )
+        mShareData.songData()->removeAlbumArtFile();
+    }
+    logoutPlayer();
+    // Probably mShareNetAccMan should not be deleted but qt documentation
+    // does not indicate whether QWebPage takes ownership of the object or not.
+    // See http://doc.qt.nokia.com/4.6/qwebpage.html
+    //delete mShareNetAccMan;
+    TX_EXIT
+}
+
+/*!
+ Initialize share data.
+ */
+void MpDetailsShareDialog::initShareData( MpSongData* aSongData, const QString& aUnknownTr )
+{
+    TX_ENTRY
+    // Set information for the share data.
+    mShareData.setOwner( this );
+    mShareData.setSongData( aSongData );
+    mShareData.setErrorMessage( tr( ERROR_MESSAGE ) );
+    mShareData.setUnknownTr( aUnknownTr );
+    TX_EXIT
+}
+
+/*!
+ Initialize language.
+ Language string is formatted like "en-US", where "en" is the ISO-639-1 language code,
+ and "US" is the ISO-3166-1 country code.
+ We use the QT Mobility API (systeminfo) to obtain the settings from the device.
+ In the event that we cannot construct the QSystemInfo variable then we will fallback
+ to some DEFAULT_LANGUAGE setting.
+ */
+void MpDetailsShareDialog::initLanguage()
+{
+    TX_ENTRY
+    // Set language string, example "en-US".
+    QString language;
+    QSystemInfo* sysInfo = new QSystemInfo( this );
+    if ( sysInfo )
+    {
+        language += sysInfo->currentLanguage(); // ISO-639-1 language code.
+        language += "-";
+        language += sysInfo->currentCountryCode(); // ISO-3166-1 country code.
+        delete sysInfo;
+    }
+    else
+    {
+        // Fallback to the default language.
+        language = DEFAULT_LANGUAGE;
+    }
+    TX_LOG_ARGS( "share: language '" << language << "'" )
+    mShareData.setLanguage( language );
+    TX_EXIT
+}
+
+/*!
+ Initialize network access manager.
+ */
+void MpDetailsShareDialog::initNetworkAccessManager()
+{
+    TX_ENTRY
+    // Make our own network access manager to allow file retrieval from local cache,
+    // since configuration for the default network access manager seems to be
+    // to always redownload from network.
+    if ( !mShareNetAccMan )
+    {
+        TX_LOG_ARGS( "share: construct network access manager" )
+        mShareNetAccMan = new MpNetworkAccessManager( this );
+    }
+    TX_EXIT
+}
+
+/*!
+ Initialize the web view.
+ */
+void MpDetailsShareDialog::initWebView()
+{
+    TX_ENTRY
+    if ( !mShareWebView )
+    {
+        TX_LOG_ARGS( "share: construct share web view" )
+        mShareWebView = new MpShareWebView( this );
+        mShareWebView->page()->setNetworkAccessManager( mShareNetAccMan );
+        mShareWebView->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
+        mShareWebView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAsNeeded);
+        setContentWidget( mShareWebView );
+        addContext();
+        mProgressbar = new HbProgressDialog(HbProgressDialog::WaitDialog);
+        mProgressbar->setText(tr("Loading"));
+    }
+    TX_EXIT
+}
+
+/*!
+ Initialize signals and slots.
+ */
+void MpDetailsShareDialog::initSignalSlots()
+{
+    TX_ENTRY
+    // Connect various signals to slots for networking.
+    connect( mShareNetAccMan, SIGNAL( sslErrors( QNetworkReply*, const QList< QSslError >& ) ),
+             this, SLOT( handleRequestSSLErrors( QNetworkReply*, const QList< QSslError >& ) ) );
+    connect( mShareNetAccMan, SIGNAL( finished( QNetworkReply* ) ), this, SLOT( handleRequestFinished( QNetworkReply* ) ) );
+
+    // Connect various signals to slots for interface to webview.
+    connect( mShareWebView, SIGNAL( loadFinished( bool ) ), SLOT( onIndexLoad( bool ) ) );
+    connect( mShareWebView->page()->mainFrame(), SIGNAL( javaScriptWindowObjectCleared() ), this, SLOT( addContext() ) );
+    connect( mShareWebView->page(), SIGNAL( windowCloseRequested() ), this, SIGNAL( closeShareDialog() ) );
+    connect( mProgressbar, SIGNAL(cancelled()), this, SIGNAL( closeShareDialog() ) );
+    TX_EXIT
+}
+
+/*!
+ initUser is used as temporary solution until Single Sign On is implemented in platform.
+ */
+bool MpDetailsShareDialog::initUser()
+{
+    TX_ENTRY
+    bool result = false;
+#ifdef SHARE_PLAYER_RND
+    // ovicredentials.txt is used as temporary solution until Single Sign On is implemented in platform.
+    QFile file( RND_OVI_LOGIN_FILE );
+    if ( !file.open( QFile::ReadOnly ) )
+    {
+        // There must be e:ovicredentials.txt in the filesystem but don't show error dialog
+        // otherwise it will appear as soon as detailsview is created.
+        result = false;
+    }
+    else
+    {
+        QTextStream stream ( &file );
+        QString strCred = stream.readLine( 0 );
+        file.close();
+        QStringList slCred = strCred.split( ":" );
+        if ( slCred.length() > 1 )
+        {
+            mShareData.setUsername( slCred[ 0 ] );
+            mShareData.setPassword( slCred[ 1 ] );
+            result = true;
+        }
+        else
+        {
+            errorHandler( "share", QString( RND_OVI_LOGIN_FILE ) + " username:password expected" );
+        }
+    }
+    TX_LOG_ARGS( "share: credentials " << mShareData.username() << " / " << mShareData.password() )
+#else
+    // TODO: Single Sign On stuff.
+#endif // SHARE_PLAYER_RND
+    TX_EXIT
+    return result;
+}
+
+/*!
+ Returns true if the dialog has been fully initialized.
+  */
+bool MpDetailsShareDialog::isInitialized() const
+{
+    return mIsInitialized;
+}
+
+/*!
+ Attempt to cache the publishing player files from internet
+ to improve user experience for first-time use.
+ If the files are already in the cache and have not expired,
+ then this should not do anything.
+ */
+void MpDetailsShareDialog::cachePublishingPlayerFiles()
+{
+    TX_ENTRY
+    // We need the network access manager, so make sure it is initialized.
+    if ( !mShareNetAccMan )
+    {
+        initNetworkAccessManager();
+    }
+    // Attempt to get the required publishing player files from the net in advance.
+    // We don't listen to any signal that the download succeeded or failed
+    // since we will let it silently fail at this stage.
+    // These URLs are also included in index.html resource, and the two must
+    // be kept the same.
+    mShareNetAccMan->get( QNetworkRequest( QUrl(
+            "http://hf.ci.wipsl.com/PleiXXPTsup/noheva-be/css/ovi.player.share.ui.css" ) ) );
+    mShareNetAccMan->get( QNetworkRequest( QUrl(
+            "http://hf.ci.wipsl.com/PleiXXPTsup/noheva-be/js/publishplayer.js" ) ) );
+    TX_EXIT
+}
+
+/*!
+ Release resources from share player.
+ */
+void MpDetailsShareDialog::logoutPlayer()
+{
+    TX_ENTRY
+    if ( mShareWebView )
+    {
+        mShareWebView->page()->mainFrame()->evaluateJavaScript( "music.teardown();" );
+    }
+    TX_EXIT
+}
+
+/*!
+ Adds the shared data context to the javascript of the loaded page.
+ */
+void MpDetailsShareDialog::addContext()
+{
+    TX_ENTRY
+    if ( mShareWebView )
+    {
+        mShareWebView->page()->mainFrame()->addToJavaScriptWindowObject( "context", &mShareData );
+    }
+    TX_EXIT
+}
+
+/*!
+ Updates the shared data context in the javascript of the loaded page.
+ */
+void MpDetailsShareDialog::updateSharedData()
+{
+    TX_ENTRY
+    if ( mShareWebView )
+    {
+        // We don't need to call updateContextArea when the track URL has been updated.
+        //mShareWebView->page()->mainFrame()->evaluateJavaScript( "music.updateContextArea();" );
+        mShareWebView->page()->mainFrame()->evaluateJavaScript( "music.updateMetadata();" );
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to call when index.html loading completes.
+ */
+void MpDetailsShareDialog::onIndexLoad( bool aOk )
+{
+    TX_ENTRY
+    if ( !aOk )
+    {
+        // Close the popup window, failed to load index.html.
+        // This is pretty serious and most likely unrecoverable error.
+        // Only thing we can do really is to close the share player
+        // dialog - TODO do we need to show any error message to user?
+        TX_LOG_ARGS( "share: failed to load index.html" )
+        emit closeShareDialog();
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to call for debug output.
+ */
+void MpDetailsShareDialog::debugJs( QString s )
+{
+    TX_ENTRY
+    TX_LOG_ARGS( "share: debugJs: " << s )
+    TX_EXIT
+}
+
+/*!
+ Slot to call for displaying an error message to the user.
+ */
+void MpDetailsShareDialog::errorHandler( QString aError, QString aMessage )
+{
+    TX_ENTRY
+    // If error argument ends with "_SUCCESS", then this should be an info message.
+    // If error argument ends with "_FAILED" or something else, then this should be a warning message.
+    TX_LOG_ARGS( "share: errorHandler: " << aError << ": " << aMessage )
+    if ( aError.endsWith( "_SUCCESS" ) )
+    {
+        // TODO this method seems to be deprecated?
+        HbMessageBox::information( tr( "%1" ).arg( aError ) + ": " + tr( "%1" ).arg( aMessage ) ); // For week16 hbwidgets
+    }
+    else
+    {
+        // TODO this method seems to be deprecated?
+        HbMessageBox::warning( tr( "%1" ).arg( aError ) + ": " + tr( "%1" ).arg( aMessage ) ); // For week16 hbwidgets
+        // HbMessageBox::launchWarningMessageBox( tr( "%1" ).arg( aError ) + ": " + tr( "%1" ).arg( message ) ); // For week12 hbwidgets
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to call to clear the web view cache.
+ */
+void MpDetailsShareDialog::clearCache()
+{
+    TX_ENTRY
+    QAbstractNetworkCache* cache = mShareNetAccMan ? mShareNetAccMan->cache() : NULL;
+    if ( cache )
+    {
+        TX_LOG_ARGS( "share: clearCache: clearing cache" )
+        cache->clear();
+#ifdef SHARE_PLAYER_RND
+        errorHandler( "Cache", "Cleared cache!" );
+#endif
+    }
+    else
+    {
+        TX_LOG_ARGS( "share: clearCache: unable to clear cache" )
+#ifdef SHARE_PLAYER_RND
+        errorHandler( "Cache", "Could not clear cache!" );
+#endif
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to show the publishing window after html elements are created in javascript.
+ */
+void MpDetailsShareDialog::showWindow()
+{
+    TX_ENTRY
+    if (mProgressbar)
+        mProgressbar->close();
+    show();
+    TX_EXIT
+}
+
+/*!
+ Slot to show progress dialog if the publishing window is not loaded in .3 sec.
+ */
+void MpDetailsShareDialog::showProgressDialog()
+{
+    TX_ENTRY
+    if (!isVisible())
+        mProgressbar->show();
+    TX_EXIT
+}
+
+/*!
+ Slot to SSL errors in network request. We will ignore any errors.
+ */
+void MpDetailsShareDialog::handleRequestSSLErrors( QNetworkReply* aReply, const QList< QSslError >& aErrors )
+{
+    TX_ENTRY
+    aReply->ignoreSslErrors();
+    for( int i = 0; i < aErrors.count(); i++ )
+    {
+        TX_LOG_ARGS( "SSL error " << aErrors.at( i ).errorString() );
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to handle network request completion.
+ */
+void MpDetailsShareDialog::handleRequestFinished( QNetworkReply* aReply )
+{
+    TX_ENTRY
+    if ( aReply->error() != QNetworkReply::NoError )
+    {
+        TX_LOG_ARGS( "Network request error " << aReply->error() << aReply->errorString() );
+        // TODO what to do now?
+    }
+    TX_EXIT
+}
+
+#endif // SHARE_FUNC_ENABLED
--- a/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -1,7 +1,7 @@
 /*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
-* This component and the accompanying materials are made available 
+* 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".
@@ -14,24 +14,17 @@
 * Description: Music Player details view.
 *
 */
-#include <qgraphicswebview>
-#include <qwebsettings>
+#include <QWebSettings>
 #include <QGraphicsWidget>
 #include <QGraphicsLayoutItem>
 #include <QUrl>
-#include <QSslError>
 #include <QDomElement>
-#include <QWebPage>
-#include <QWebFrame>
 #include <QList>
 #include <QFile>
-#include <QTranslator>
-#include <QLocale>
 #include <QGraphicsLinearLayout>
+#include <QSizeF>
 
-#include <thumbnailmanager_qt.h>
-#include <thumbnaildata.h>
-#include <thumbnailobjectsource.h>
+
 
 #include <hbinstance.h>
 #include <hbmainwindow.h>
@@ -45,76 +38,127 @@
 #include <hbdialog.h>
 #include <hblistwidget.h>
 #include <hblistwidgetitem.h>
+#include <hblistviewitem.h>
+#include <hbprogressbar.h>
 
 #include "mpdetailsview.h"
+#include "mpenginefactory.h"
 #include "mpcommondefs.h"
-#include "mpmpxdetailsframeworkwrapper.h"
 #include "mpsongdata.h"
+#include "mpsettingsmanager.h"
+#include "mpquerymanager.h"
 #include "mptrace.h"
 
-const int KUndefined = -1;
-const int KRecommendationNum = 2;
+#ifdef SHARE_FUNC_ENABLED
+#include "mpdetailssharedialog.h"
+#endif
+
+
+const int KRecommendationCount = 2;
+
 
 /*!
  Constructor
  */
 MpDetailsView::MpDetailsView()
-    : mSongData( 0 ),
-      mFrameworkWrapper( 0 ),
+    : mMpEngine( 0 ),
+      mSongData( 0 ),
       mActivated( false ),
-      mWindow( 0 ),
-      mNavigationBack( 0 ),
-      mSongText( NULL ),
-      mAlbumText( NULL ),
-      mArtistText( NULL ),
-      mAlbumArt( NULL ),
-      mDocumentLoader( NULL ),
-      mDownloadedAlbumArts( 0 ),
-      mAlbumArtsReadyCount( 0 ),
-      mMpTranslator( 0 ),
-      mCommonTranslator( 0 )
+      mSoftKeyBack( 0 ),
+      mSongText( 0 ),
+      mAlbumText( 0 ),
+      mArtistText( 0 ),
+      mAlbumArt( 0 ),
+      mSongDetailsGroupBox(0),
+      mInspireMeGroupBox(0),
+      mShareButton(0),
+      mDocumentLoader( 0 ),
+      mDetailList(0),
+      mInspireList(0),
+      mInspireMeProgressBar(0),
+      mMpQueryManager( 0 ),
+      mInspireMeQueryOngoing( false ),
+      mInspireMeQueryRendered( false ),
+      mInspireMeOpen(true),
+      mSongDetailsGbOpen(false)
+#ifdef SHARE_FUNC_ENABLED
+      , mSharePopup( 0 )
+#endif
 {
     TX_ENTRY
     bool widgetsOk = false;
     HbMainWindow *mainWindow = hbInstance->allMainWindows()[0];
     mDocumentLoader = new HbDocumentLoader();
 
-    if ( mDocumentLoader ) {
-            mDocumentLoader->load( QString(":/detailsviewdocml/detailsview.docml"), &widgetsOk );
-        }
-    if ( widgetsOk ) {
-        QGraphicsWidget *widget; 
-        
-        widget = mDocumentLoader->findWidget( QString("content") );
-        mContainer = qobject_cast<HbWidget *>(widget);
-        if ( mContainer ) {
-            setWidget( mContainer );
-        }
-        
-     widget = mDocumentLoader->findWidget( QString("shareButton") );
-     mShareButton = qobject_cast<HbPushButton *>(widget);         
-        
-     widget = mDocumentLoader->findWidget( QString("songText") );
-     mSongText = qobject_cast<HbLabel *>(widget);
+    TX_LOG_ARGS("Document loader created")
+    if(!mDocumentLoader) {
+        TX_LOG_ARGS( "MpDetailsView() Error: HbDocumentLoader not constructed" );
+        return;
+    }
+
+    TX_LOG_ARGS("Loading :/mpdetailsviewdocml/mpdetailsview.docml")
+    mDocumentLoader->load( QString(":/mpdetailsviewdocml/mpdetailsview.docml"), &widgetsOk );
+    if(!widgetsOk) {
+        TX_LOG_ARGS( "MpDetailsView() Error: invalid mpdetailsview.docml" );
+        return;
+    }
+
+    TX_LOG_ARGS("Loaded :/mpdetailsviewdocml/mpdetailsview.docml")
+    QGraphicsWidget *widget = 0;
+
+    widget = mDocumentLoader->findWidget( QString("content") );
+    TX_LOG_ARGS( "MpDetailsView() mDocumentLoader->findWidget for <content>: " << (int)(widget) );
+    setWidget(  qobject_cast<HbWidget *>(widget) );
+
+    widget = mDocumentLoader->findWidget( QString("shareButton") );
+    mShareButton = qobject_cast<HbPushButton *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <shareButton> widget found mShareButton: " << (int)(mShareButton) );
+
+    widget = mDocumentLoader->findWidget( QString("trackTitle") );
+    mSongText = qobject_cast<HbLabel *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <trackTitle> widget found mSongText: " << (int)(mSongText) );
+
+    widget = mDocumentLoader->findWidget( QString("artist") );
+    mArtistText = qobject_cast<HbLabel *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <artist> widget found mArtistText: " << (int)(mArtistText) );
+
+    widget = mDocumentLoader->findWidget( QString("albumName") );
+    mAlbumText = qobject_cast<HbLabel *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <albumName> widget found mAlbumText: " << (int)(mAlbumText) );
+
+    widget = mDocumentLoader->findWidget( QString("albumArt") );
+    mAlbumArt = qobject_cast<HbLabel *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <albumArt> widget found mAlbumArt: " << (int)(mAlbumArt) );
+
+    widget = mDocumentLoader->findWidget( QString("songDetails") );
+    mSongDetailsGroupBox = qobject_cast<HbGroupBox *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <songDetails> widget found mSongDetailsGroupBox: " << (int)(mSongDetailsGroupBox) );
+
+    widget = mDocumentLoader->findWidget( QString("songDetailsListWidget") );
+    mDetailList = qobject_cast<HbListWidget *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <songDetailsListWidget> widget found mDetailList: " << (int)(mDetailList) );
+
+    widget = mDocumentLoader->findWidget( QString("inspireMeGroupBox") );
+    mInspireMeGroupBox = qobject_cast<HbGroupBox *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <inspireMeGroupBox> widget found mInspireMeGroupBox: " << (int)(mInspireMeGroupBox) );
+
+    widget = mDocumentLoader->findWidget( QString("inspireListWidget") );
+    mInspireList = qobject_cast<HbListWidget *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <inspireListWidget> widget found mInspireList: " << (int)(mInspireList) );
+
+    widget = mDocumentLoader->findWidget( QString("inspireMeProgressBar") );
+    mInspireMeProgressBar = qobject_cast<HbProgressBar *>(widget);
+    TX_LOG_ARGS("MpDetailsView() <inspireMeProgressBar> widget found mInspireMeProgressBar: " << (int)(mInspireMeProgressBar) );
     
-     widget = mDocumentLoader->findWidget( QString("artistText") );
-     mArtistText = qobject_cast<HbLabel *>(widget);
-    
-     widget = mDocumentLoader->findWidget( QString("albumText") );
-     mAlbumText = qobject_cast<HbLabel *>(widget);
+    // load section HideInspireMe if no ovi store suport
+    bool loadingSectionOk = false;
+    mDocumentLoader->load( QString(":/mpdetailsviewdocml/mpdetailsview.docml"), QString( "ShowInspireMe" ), &loadingSectionOk );    
+    if( loadingSectionOk ) {
+        TX_LOG_ARGS( "Loading ShowInspireMe section is successful." );
+    } else {
+        TX_LOG_ARGS( "Loading ShowInspireMe section fails." );
+    }
 
-     widget = mDocumentLoader->findWidget( QString("albumArt") );
-     mAlbumArt = qobject_cast<HbLabel *>(widget);
-        
-     widget = mDocumentLoader->findWidget( QString("songDetailsGroupBox") );
-     mSongDetailsGroupBox = qobject_cast<HbGroupBox *>(widget);
-        
-     widget = mDocumentLoader->findWidget( QString("inspireMeGroupBox") );
-     mInspireMeGroupBox = qobject_cast<HbGroupBox *>(widget);
-    }
-    else {
-        TX_LOG_ARGS( "Error: invalid detailsview.docml" );
-    }
     TX_EXIT
 }
 
@@ -123,103 +167,50 @@
  */
 MpDetailsView::~MpDetailsView()
 {
-    TX_ENTRY    
-    if ( mFrameworkWrapper ) {
-        delete mFrameworkWrapper;
-    }
-    if ( mNavigationBack ) {
-        delete mNavigationBack;
-    }
-    if ( mDocumentLoader ) {
-        delete mDocumentLoader;
-    }
-    if ( mManager ) {
-        mManager->deleteLater();
-    }
-    if ( mDownloadManager ) {
-        mDownloadManager->deleteLater();
-    }    
-    if( mThumbnailManager ) {
-        delete mThumbnailManager;
-    }
-    delete mMpTranslator;
-    delete mCommonTranslator;
+    TX_ENTRY
+    delete mSoftKeyBack;
+    delete mDocumentLoader;
+    delete mMpQueryManager;
+
+#ifdef SHARE_FUNC_ENABLED
+    closeShareDialog();
+#endif
     TX_EXIT
 }
 
+
 /*!
  Initializes the details view. Allocates all resources needed by the view.
  */
 void MpDetailsView::initializeView()
 {
-    TX_ENTRY    
-    
-    //Load musicplayer and common translators
-        QString lang = QLocale::system().name();
-        QString path = QString( "z:/resource/qt/translations/" );
-        bool translatorLoaded = false;
+    TX_ENTRY
 
-        mMpTranslator = new QTranslator( this );
-        translatorLoaded = mMpTranslator->load( path + "musicplayer_" + lang );
-        TX_LOG_ARGS( "Loading translator ok=" << translatorLoaded );
-        if ( translatorLoaded ) {
-            qApp->installTranslator( mMpTranslator );
-        }
+    mSoftKeyBack = new HbAction( Hb::BackNaviAction, this );
 
-        mCommonTranslator = new QTranslator( this );
-        translatorLoaded = mCommonTranslator->load( path + "common_" + lang );
-        TX_LOG_ARGS( "Loading common translator ok=" << translatorLoaded );
-        if ( translatorLoaded ) {
-            qApp->installTranslator( mCommonTranslator );
-        }
-        
-    mWindow = mainWindow();
-    mNavigationBack = new HbAction( Hb::BackNaviAction, this );
-    mFrameworkWrapper = new MpMpxDetailsFrameworkWrapper( );
-    mSongData = mFrameworkWrapper->songData();
-    
-    mCompositePixmap = QPixmap( 150, 150 );
-    
-    mDetailList = new HbListWidget( mSongDetailsGroupBox );
-    mButton = new HbPushButton( tr( "More recommendations" ) );
-    mSongDetailsGroupBox->setCollapsable( true );
-    mSongDetailsGroupBox->setHeading( tr("Song details") );
-    mSongDetailsGroupBox->setContentWidget( mDetailList );
-    mSongDetailsGroupBox->setCollapsed( true );
+    mMpEngine = MpEngineFactory::sharedEngine();
+    mSongData = mMpEngine->songData();
 
-    mLayout = new QGraphicsLinearLayout( Qt::Vertical );
-    mInspireMe = new HbWidget( mInspireMeGroupBox );
-    mInspireList = new HbListWidget();
-    mInspireMeGroupBox->setCollapsable( true );   
-    mInspireMeGroupBox->setHeading( tr("Inspire me") );
-    mInspireMeGroupBox->setContentWidget( mInspireMe ); 
-    
-
-    mManager = new QNetworkAccessManager( this );
-    connect( mManager, SIGNAL( finished( QNetworkReply * ) ), this, SLOT( retrieveInformationFinished( QNetworkReply * ) ) );
-    
-    mDownloadManager = new QNetworkAccessManager( this );
-    connect( mDownloadManager, SIGNAL( finished( QNetworkReply * ) ), this, SLOT( DownloadFinished( QNetworkReply * ) ) );
-    
-    mRecommendationAlbumArtsName << "C:\\Data\\albumOne.png" << "C:\\Data\\albumTwo.png"; 
-    
-    mThumbnailManager = new ThumbnailManager( this );
-    mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality );
-    mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailSmall );
-    QObject::connect( mThumbnailManager, SIGNAL( thumbnailReady( QPixmap , void * , int , int ) ),
-            this, SLOT( thumbnailReady( QPixmap , void * , int , int  ) ) );
-    mDefaultRecommendationAlbumArt = QPixmap( ":/detailsviewicons/defaultalbumart.png" );
-    
     // TODO: might need later
     setupMenu();
-      
-    connect( mNavigationBack, SIGNAL( triggered() ), this, SLOT( back() ) );
-    connect( mShareButton, SIGNAL( clicked() ), this, SLOT( share() ) );    
-    connect( mSongData, SIGNAL( albumArtReady() ), this, SLOT( albumArtChanged() ) ); 
-    connect( mSongData, SIGNAL( playbackInfoChanged() ), this, SLOT( playbackInfoChanged() ) );
-    connect( mSongData, SIGNAL( songDetailInfoChanged() ), this, SLOT( songDetailInfoChanged() ) ); 
-    connect( mSongDetailsGroupBox, SIGNAL( toggled( bool ) ), this, SLOT( toggleInspireMeGroupBox( bool ) ) );
-    connect( mInspireMeGroupBox, SIGNAL( toggled( bool ) ), this, SLOT( toggleDetailsGroupBox( bool ) ) );
+    mMpQueryManager = new MpQueryManager();
+
+    connect( mSoftKeyBack, SIGNAL( triggered() ), this, SLOT( back() ) );
+    connect( mSongData, SIGNAL( albumArtReady() ), this, SLOT( albumArtChanged() ) );
+    connect( mSongData, SIGNAL( playbackInfoChanged() ), this, SLOT( handlePlaybackInfoChanged() ) );
+    connect( mSongData, SIGNAL( songDetailInfoChanged() ), this, SLOT( songDetailInfoChanged() ) );
+    connect( mSongDetailsGroupBox, SIGNAL( toggled( bool ) ), this, SLOT( handleDetailsGroupBoxToggled( bool ) ) );
+    connect( mInspireMeGroupBox, SIGNAL( toggled( bool ) ), this, SLOT( handleInspireMeGroupBoxToggled( bool ) ) );
+    connect( mMpQueryManager, SIGNAL( networkError() ), this ,SLOT( handleNetworkError() ) );
+    connect( mMpQueryManager, SIGNAL(searchUrlRetrieved(const QString&)), this, SLOT(updateSharedData(const QString&)));
+    connect( mMpQueryManager, SIGNAL(recommendationAlbumArtsReady()), this, SLOT(RenderInspireMeGroupBox()));
+
+#ifdef SHARE_FUNC_ENABLED
+    connect( mShareButton, SIGNAL( clicked() ), this, SLOT( share() ) );
+
+    // Preload the share popup
+    preloadShareDialog();
+#endif
     TX_EXIT
 }
 
@@ -228,11 +219,17 @@
  */
 void MpDetailsView::activateView()
 {
-    TX_ENTRY    
-    setNavigationAction( mNavigationBack );
-    mFrameworkWrapper->retrieveSong();
-        
+    TX_ENTRY
+    setNavigationAction( mSoftKeyBack );
+    mMpEngine->retrieveSong();
+
     mActivated = true;
+    mInspireMeOpen = MpSettingsManager::inspireMe();
+    mSongDetailsGbOpen = MpSettingsManager::songDetailsGb();
+    TX_LOG_ARGS( "InspireMeVal: " << mInspireMeOpen );
+    TX_LOG_ARGS( "SongDetailsGbVal: " << mSongDetailsGbOpen );
+    mInspireMeGroupBox->setCollapsed(!mInspireMeOpen);
+    mSongDetailsGroupBox->setCollapsed(!mSongDetailsGbOpen);
     TX_EXIT
 }
 
@@ -241,9 +238,21 @@
  */
 void MpDetailsView::deactivateView()
 {
-    TX_ENTRY    
+    TX_ENTRY
+    if (mInspireMeGroupBox->isCollapsed() ) {
+      MpSettingsManager::setInspireMe(false);
+      } else {
+      MpSettingsManager::setInspireMe(true);
+      }
+
+    if (mSongDetailsGroupBox->isCollapsed() ) {
+      MpSettingsManager::setSongDetailsGb(false);
+      } else {
+      MpSettingsManager::setSongDetailsGb(true);
+      }
+
     setNavigationAction( 0 );
-    mActivated = false;    
+    mActivated = false;
     TX_EXIT
 }
 
@@ -259,302 +268,162 @@
 
 /*!
  Slot to handle back command from softkey.
-
- \reimp
  */
 void MpDetailsView::back()
 {
-    TX_ENTRY  
+    TX_ENTRY
     emit command( MpCommon::ActivatePlaybackView );
     TX_EXIT
 }
 
 /*!
- Slot to be called when share button is clicked
- */
-void MpDetailsView::share()
-{
-    TX_ENTRY  
-    TX_EXIT    
-}
-
-/*!
  Slot to handle Album art changed.
  */
 void MpDetailsView::albumArtChanged( )
-{    
-    TX_ENTRY
-    QPixmap pixmap;
-    QIcon qicon;
-    mSongData->albumArt( pixmap );
-    composeAlbumCover( pixmap );
-    if ( !mCompositePixmap.isNull() )
-        qicon = QIcon( mCompositePixmap );
-    else
-        qicon = QIcon( pixmap );
-    HbIcon icon( qicon );  
-    mAlbumArt->setIcon( icon );
-    TX_EXIT
-}
-
-void MpDetailsView::loadSharePlayer()
-{
-    TX_ENTRY       
-    TX_EXIT    
-}
-
-
-/*!
- Slot to call when widget is loaded
- */
-void MpDetailsView::webViewLoaded( bool ok )
-{
-    TX_ENTRY    
-    if ( ok ) {
-        TX_LOG_ARGS( "Loading web page successfully." );
-
-    } else {
-        TX_LOG_ARGS( "Loading web page failed!" );
-    }
-    TX_EXIT    
-}
-
-
-/*!
- Compose the album art.
- */
-void MpDetailsView::composeAlbumCover( QPixmap albumart )
 {
     TX_ENTRY
-    mCompositePixmap.fill( Qt::transparent );
-    QPainter painter( &mCompositePixmap );
-    painter.setCompositionMode( QPainter::CompositionMode_Clear );
-    painter.setCompositionMode( QPainter::CompositionMode_SourceOver );
-    painter.fillRect( mCompositePixmap.rect(), Qt::transparent );
-    painter.drawPixmap( QRect( 0, 0, 150, 150 ), albumart );
+    HbIcon icon;
+    mSongData->albumArt( icon );
+    mAlbumArt->setIcon( icon );
     TX_EXIT
 }
 
 /*!
- Make a key & value pair string for querying
+ Slot to handle network error.
  */
-QString MpDetailsView::keyValues( QStringList keys, QStringList values ) const
-{
-    TX_ENTRY
-    QString str;
-    if ( keys.length() != values.length() ) {
-        TX_LOG_ARGS( "Error: keys length is not equal to values length" ); 
-    } else {
-        for ( int i = 0; i < keys.length(); i++ ) {
-            QString tValue = values.at( i );
-            if ( 0 != tValue.length() )
-            {
-                str += keys.at( i ) + "=" + values.at( i ) + "&";
-            }
-        }
-    }
-    TX_EXIT
-    return str.left( str.length() - 1 );
-}
-
-/*!
- Find the most suitable link based on Atom response from Ovi music server
- */
-void MpDetailsView::handleParsedXML()
+void MpDetailsView::handleNetworkError()
 {
     TX_ENTRY
-    QDomElement rootElement = mDomDocument.documentElement();
-    
-    if ( rootElement.attribute( "type" ) == tr( "search" ) ) {
-        TX_LOG_ARGS( "URI response" )
-        QString result;
-        QDomElement entry = rootElement.firstChildElement( "entry" );
-        while ( !entry.isNull() )
-        {
-            if ( entry.attribute( "type" ) == tr( "musictrack" ) ) {
-                QDomElement link = entry.firstChildElement( "link" );
-                while ( !link.isNull() )
-                {
-                    if ( link.attribute( "rel" ) == tr( "alternate" )
-                        && link.attribute( "type" ) == tr( "text/html" ) ) {
-                        result = link.attribute( "href" );
-                    }
-                    link = link.nextSiblingElement( "link" );
-                }
-            }
-            entry = entry.nextSiblingElement( "entry" );
-        }  
-        
-        mSongData->setLink( result );
-    } else if ( rootElement.attribute( "type" ) == tr( "recommendedTracks" ) ) {
-        TX_LOG_ARGS( "Recommendation response" )
-        QDomElement entry = rootElement.firstChildElement( "entry" );
-        QNetworkReply *reply;
-        int count = 0;
-        while ( !entry.isNull() && count < KRecommendationNum )
-        {
-            if ( entry.attribute( "type" ) == tr( "musictrack" ) ) {
-                QDomElement link = entry.firstChildElement( "link" );
-                while ( !link.isNull() )
-                {
-                    if ( link.attribute( "title" ) == tr( "albumart100" ) ) {
-                        mRecommendationAlbumArtsLink.append( link.attribute( "href" ) );
-                        break;
-                    } else {
-                        link = link.nextSiblingElement( "link" );
-                    }                    
-                }
-                QDomElement metadata = entry.firstChildElement( "metadata" );
-                mRecommendationSongs.append( metadata.firstChildElement( "name" ).text() );
-                mRecommendationArtists.append( metadata.firstChildElement( "primaryartist" ).text() );
-                count++;
-            }
-            entry = entry.nextSiblingElement( "entry" );
-        }          
-        
-        for (int i = 0; i < KRecommendationNum; i++ ) {
-            TX_LOG_ARGS( "song name: " << mRecommendationSongs.at(i) );
-            TX_LOG_ARGS( "Artist name: " << mRecommendationArtists.at(i) );
-            TX_LOG_ARGS( "Album art link: " << mRecommendationAlbumArtsLink.at(i) );
-            
-            if ( mRecommendationAlbumArtsLink.at( i ).contains( "http", Qt::CaseInsensitive ) ) {
-                reply = mDownloadManager->get( QNetworkRequest( QUrl( mRecommendationAlbumArtsLink.at(i) ) ) );
-                mReplys.append( reply );
-                connect( reply, SIGNAL( error( QNetworkReply::NetworkError ) ), this, SLOT( retrieveInformationNetworkError( QNetworkReply::NetworkError ) ) );
-                connect( reply, SIGNAL( sslErrors( QList<QSslError> ) ), this, SLOT( retrieveInformationSslErrors( QList<QSslError> ) ) );
-            }             
-        }
-    } else {
-        TX_LOG_ARGS( "Not supported response" )
-    }
-    TX_EXIT
-}
-
-/*!
- Sets recommendation album art
-*/
-void MpDetailsView::setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName )
-{
-    TX_ENTRY_ARGS( "albumArtUri = " << albumArtUri )
-    TX_LOG_ARGS( "albumArtName = " << albumArtName )
-    if ( !albumArtUri.isEmpty() ) {
-        int id = mThumbnailManager->getThumbnail( albumArtName, reinterpret_cast<void *>( const_cast<QString *>( &albumArtUri ) ) );
-        if ( id == KUndefined ) {
-            // Request failed. Set default album art.
-            mRecommendationAlbumArtsMap.insert( albumArtUri, mDefaultRecommendationAlbumArt );
-            recommendationAlbumArtReady();
-        }
-    }
-    else {
-        // No album art uri. Set default album art.
-        mRecommendationAlbumArtsMap.insert( albumArtUri, mDefaultRecommendationAlbumArt );
-        recommendationAlbumArtReady();
-    }
+    mInspireMeQueryOngoing = false;
+    mInspireMeQueryRendered = false;
+    clearInspireMe();
+    mInspireMeGroupBox->setCollapsed( true );
     TX_EXIT
 }
 
 /*!
  Render inspireme groupbox after album arts downloaded
  */
-void MpDetailsView::RenderInspireMeGroupBox() 
+void MpDetailsView::RenderInspireMeGroupBox()
 {
     TX_ENTRY
-    for ( int i = 0; i < KRecommendationNum; i++ ) {
-       HbListWidgetItem  *item = new HbListWidgetItem();       
-       HbIcon icon( QIcon( mRecommendationAlbumArtsMap.value( mRecommendationAlbumArtsLink.at( i ) ) ) );
-       item->setIcon( icon );
-       item->setText( mRecommendationSongs.at( i ) );
-       item->setSecondaryText( mRecommendationArtists.at( i ) );
-
-       mInspireList->addItem( item );       
+    mInspireMeQueryOngoing = false;
+    mInspireMeQueryRendered = true;
+    mInspireMeProgressBar->hide();
+    if( mMpQueryManager->recommendationAlbumArtsMap().count() ) {
+        TX_LOG_ARGS( "There are recommendations." )
+        // we have recommendations
+        for ( int i = 0; i < KRecommendationCount; i++ ) {
+            // configure the layout properties
+            if(!mInspireList->count()) {
+                // we havent configured the prototype before
+                HbListViewItem *prototype = mInspireList->listItemPrototype();
+                prototype->setGraphicsSize( HbListViewItem::LargeIcon );
+            }
+            // create the item
+            HbListWidgetItem  *inspireMeItem = new HbListWidgetItem();
+            HbIcon icon( QIcon( mMpQueryManager->recommendationAlbumArtsMap().value(mMpQueryManager->recommendationAlbumArtsLink().at( i ) ) ) );
+            inspireMeItem->setIcon( icon );
+            inspireMeItem->setText( mMpQueryManager->recommendationSongs().at( i ) );
+            inspireMeItem->setSecondaryText( mMpQueryManager->recommendationArtists().at( i ) );
+            mInspireList->addItem( inspireMeItem );
+        }
     }
-    
-    // TODO: HbListWidget has some problem to return the correct height, hard code to 180 for now.
-    TX_LOG_ARGS( "height = " << mInspireList->geometry().height() );
-    TX_LOG_ARGS( "height2 = " << mInspireList->size().height() );
-    mInspireList->setMinimumHeight( 180 );
-    mInspireList->setMaximumHeight( 180 );    
-    
-    mLayout->addItem( mInspireList );
-    mButton->show();
-    mLayout->addItem( mButton );
-    mInspireMe->setLayout( mLayout );
-    
+    else {
+        TX_LOG_ARGS( "There is NO recommendation." )
+        // we dont have recommendations
+        // we havent configured the prototype before
+        HbListViewItem *prototype = mInspireList->listItemPrototype();
+        const int maxTextRowCount = 20;
+        const int minTextRowCount = 1;
+        prototype->setSecondaryTextRowCount(minTextRowCount,maxTextRowCount);
+
+        HbListWidgetItem  *inspireMeItem = new HbListWidgetItem();
+        QString info(tr("There are no recommendations for this track, but you can always discover new music on Ovi"));
+        inspireMeItem->setText( QString( " " ) );
+        inspireMeItem->setSecondaryText( info );
+        mInspireList->addItem( inspireMeItem );
+    }
+
     TX_EXIT
 }
 
-void MpDetailsView::recommendationAlbumArtReady()
-{   
-    TX_ENTRY_ARGS( "mAlbumArtsReadyCount = " << mAlbumArtsReadyCount )
-    mAlbumArtsReadyCount++;
-    if ( mAlbumArtsReadyCount == KRecommendationNum ) {
+bool MpDetailsView::canQueryRecommendations() const
+{
+    bool result = ( ( !mSongData->album().isEmpty() ) ||
+                    ( !mSongData->artist().isEmpty() ) ) &&
+                  !( mInspireMeGroupBox->isCollapsed() );
+    TX_LOG_ARGS( "Can query recommendations:" << result );
+    return result;
+}
+
+bool MpDetailsView::canQuerySharePlayerLink() const
+{
+  bool result = ( !mSongData->title().isEmpty() ) &&
+                ( !mSongData->artist().isEmpty() ) ;
+  TX_LOG_ARGS( "Can query share player link:" << result );
+  return result;
+}
+
+/*!
+ Slot to handle basic song information
+ */
+void MpDetailsView::handlePlaybackInfoChanged()
+{
+    TX_ENTRY
+    mMpQueryManager->clearNetworkReplies();
+    clearInspireMe();
+    mInspireMeQueryRendered = false;
+
+    // Clear the song data link until new query has been made.
+    mSongData->setLink( "" );
+
+    if ( !mSongData->title().isEmpty () ) {
+        mSongText->setPlainText( mSongData->title() );
+    } else {
+        mSongText->setPlainText( mSongData->fileName() );
+    }
+
+    if ( !mSongData->album().isEmpty () ) {
+        mAlbumText->setPlainText( mSongData->album() );
+    } else {
+        mAlbumText->setPlainText( tr( "Unknown") );
+    }
+
+    if ( !mSongData->artist().isEmpty() ) {
+        mArtistText->setPlainText( mSongData->artist() );
+    } else {
+        mArtistText->setPlainText( tr( "Unknown") );
+    }
+
+    if (canQuerySharePlayerLink() ) {
+        mMpQueryManager->queryLocalMusicStore(mSongData->artist(),mSongData->album(),mSongData->title());
+    }
+
+    if (canQueryRecommendations()) {
+        // start inspire me area progress bar
+        // TODO: currently, till we get to this callback from MPX the bar not shown
+        // TODO: check if inspireMe is ON, if not, dont show
+        mInspireMeProgressBar->show();
+        mMpQueryManager->queryInspireMeItems(mSongData->artist(),mSongData->album(),mSongData->title());
+        mInspireMeQueryOngoing = true;
+    }
+    else {
+        // metadata to query for inspire me items not available
+        // show information note
+      if (!mInspireMeGroupBox->isCollapsed())
         RenderInspireMeGroupBox();
     }
     TX_EXIT
 }
 
-
-/*!
- Slot to handle basic song information
- */
-void MpDetailsView::playbackInfoChanged()
+void MpDetailsView::clearInspireMe()
 {
     TX_ENTRY
-    mSongText->setPlainText( mSongData->title() );
-    mAlbumText->setPlainText( mSongData->album() );
-    mArtistText->setPlainText( mSongData->artist() );
-    
-    // Clear information & Remove album arts downloaded previously when song changes
-    TX_LOG_ARGS( "Reply count = " << mReplys.count() );
-    for ( int i = 0; i < mReplys.count(); i++ ) {
-        QNetworkReply *reply = mReplys.at( i );
-        if ( reply != NULL ) {
-            TX_LOG_ARGS( "Reply index : " << i );
-            reply->close();
-            delete reply;
-            reply = NULL;
-        }   
-    }
-    mReplys.clear();
-    
-    mDownloadedAlbumArts = 0;
-    mAlbumArtsReadyCount = 0;
     mInspireList->clear();
-    for ( int i = 0; i < KRecommendationNum; i++) {
-        mRecommendationSongs.clear();
-        mRecommendationArtists.clear();
-        mRecommendationAlbumArtsLink.clear();
-        mRecommendationAlbumArtsMap.clear();
-        
-        QFile file( mRecommendationAlbumArtsName.at( i ) );        
-        if ( file.exists() ) {
-            if ( file.remove() ) {
-                TX_LOG_ARGS( "File removed - " << file.fileName() );
-            }
-            else {
-                TX_LOG_ARGS( "Cannot remove file - " << file.fileName() );
-            }
-        } else {
-            TX_LOG_ARGS( "File doesn't exist - " << file.fileName() );
-        }
-    }
-    mButton->hide();
-        
-    // TODO: country information handling, MCC
-    QString queryURI("http://api.music.ovi.com/1.0/ru/?");
-    constructRequest( queryURI );
-    TX_LOG_ARGS( "queryURI : " << queryURI );
-    retrieveInformation( queryURI );
-    
-    QString queryRecommendation("http://api.music.ovi.com/1.0/gb/releases/recommend/?");
-    constructRequest( queryRecommendation );
-    TX_LOG_ARGS( "queryRecommendation : " << queryRecommendation );
-    retrieveInformation( queryRecommendation );
-    
-    loadSharePlayer();
+    mMpQueryManager->clearRecommendations();
     TX_EXIT
 }
-
 /*!
  Slot to handle detail song information
  */
@@ -562,225 +431,241 @@
 {
     TX_ENTRY
     mDetailList->clear();
-    
-    HbListWidgetItem *item = new HbListWidgetItem();  
-    item->setText( tr( "Track" ) );
-    item->setSecondaryText( mSongData->albumTrack() );
-    mDetailList->addItem( item );
-    
-    item = new HbListWidgetItem();
-    item->setText( tr( "Composer" ) );
-    item->setSecondaryText( mSongData->composer() );
-    mDetailList->addItem( item );
+
+    if ( !mSongData->albumTrack().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Song number" ) );
+        item->setSecondaryText( mSongData->albumTrack() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->year().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Year" ) );
+        item->setSecondaryText( mSongData->year() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->genre().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Genre" ) );
+        item->setSecondaryText( mSongData->genre() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->composer().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Composer" ) );
+        item->setSecondaryText( mSongData->composer() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->fileName().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "File name" ) );
+        item->setSecondaryText( mSongData->fileName() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->mimeType().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Format" ) );
+        item->setSecondaryText( mSongData->mimeType() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->duration().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Duration" ) );
+        item->setSecondaryText( mSongData->duration() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
 
-    item = new HbListWidgetItem();
-    item->setText( tr( "Year" ) );
-    item->setSecondaryText( mSongData->year() );
-    mDetailList->addItem( item );
-    
-    item = new HbListWidgetItem();
-    item->setText( tr( "Genre" ) );
-    item->setSecondaryText( mSongData->genre() );
-    mDetailList->addItem( item );
+    if ( !mSongData->bitRate().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Bitrate" ) );
+        item->setSecondaryText( mSongData->bitRate().append( " Kbps" ) );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->sampleRate().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Sampling rate" ) );
+        item->setSecondaryText( mSongData->sampleRate().append( " hz" ) );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->size().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Size" ) );
+        item->setSecondaryText( mSongData->size().append( " MB" ) );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
 
-    item = new HbListWidgetItem();
-    item->setText( tr( "Comment" ) );
-    item->setSecondaryText( mSongData->comment() );
-    mDetailList->addItem( item );    
+    if ( !mSongData->modified().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Modified" ) );
+        item->setSecondaryText( mSongData->modified() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->copyright().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Copyright" ) );
+        item->setSecondaryText( mSongData->copyright() );
+        item->setEnabled( false );
+        mDetailList->addItem( item );
+    }
+
+    if ( !mSongData->musicURL().isNull() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Web site" ) );
+        item->setSecondaryText( mSongData->musicURL() );
+        item->setEnabled( true );
+        mDetailList->addItem( item );
+    }
+
+    if ( mSongData->isDrmProtected() ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setText( tr( "Licences" ) );
+        item->setSecondaryText( tr( "Click for details" ) );
+        item->setEnabled( true );
+        mDetailList->addItem( item );
+    }
+
     TX_EXIT
 }
 
-/*!
- Slot to handle details groupbox toggling
- */
-void MpDetailsView::toggleDetailsGroupBox(bool /*state*/)
+void MpDetailsView::handleDetailsGroupBoxToggled(bool /*state*/)
 {
     TX_ENTRY
-    if ( !mInspireMeGroupBox->isCollapsed() ) {
-        mSongDetailsGroupBox->setCollapsed( true );
+    if ( !mSongDetailsGroupBox->isCollapsed() ) {
+            mInspireMeGroupBox->setCollapsed( true );
     }
     TX_EXIT
 }
 
-/*!
- Slot to handle inspire me groupbox toggling
- */
-void MpDetailsView::toggleInspireMeGroupBox(bool /*state*/)
+void MpDetailsView::handleInspireMeGroupBoxToggled(bool /*state*/)
 {
     TX_ENTRY
-    if ( !mSongDetailsGroupBox->isCollapsed() ) {
-        mInspireMeGroupBox->setCollapsed( true );
+    if ( !mInspireMeGroupBox->isCollapsed() ) {
+        TX_LOG_ARGS( "InspireMe is expanded." )
+        mSongDetailsGroupBox->setCollapsed( true );
+        if ( mInspireMeQueryOngoing ) {
+            TX_LOG_ARGS( "Query is ongoing " )
+            mInspireMeProgressBar->show();
+        } else {
+            TX_LOG_ARGS( "Query is NOT ongoing " )
+            if ( mInspireMeQueryRendered ) {
+                TX_LOG_ARGS( "InspireMe is rendered already. " )
+                mInspireMeProgressBar->hide();
+            } else {
+                if ( canQueryRecommendations() ) {
+                    TX_LOG_ARGS( "InspireMe is NOT rendered yet but can query for recommendations. " )
+                    mMpQueryManager->queryInspireMeItems(mSongData->artist(),mSongData->album(),mSongData->title());
+                    mInspireMeProgressBar->show();
+                    mInspireMeQueryOngoing = true;
+                } else {
+                    TX_LOG_ARGS( "InspireMe is NOT rendered yet and CANNOT query for recommendations either. " )
+                    RenderInspireMeGroupBox();
+                }
+            }
+        }
+    } else {
+        TX_LOG_ARGS( "InspireMe is collapsed." )
+        mInspireMeProgressBar->hide();
+    }
+    TX_EXIT
+}
+
+#ifdef SHARE_FUNC_ENABLED
+/*!
+ Slot to be called when share button is clicked
+ */
+void MpDetailsView::share()
+{
+    TX_ENTRY
+    createShareDialog();
+    if (canQuerySharePlayerLink() )
+    {
+        mMpQueryManager->queryLocalMusicStore(mSongData->artist(),mSongData->album(),mSongData->title() );
     }
     TX_EXIT
 }
 
 /*!
- Construct the query for fetching URI & recommendations
- */
-void MpDetailsView::constructRequest( QString &uri )
-{
-    TX_ENTRY_ARGS( "uri =" << uri)
-    
-    QStringList keys;
-    keys << tr("artist") << tr("albumtitle") << tr("tracktitle") << tr("orderby");
-    
-    // TODO: need to clarify which crition to use for sort, currently hard code to "relevancy"
-    // order can be relevancy, alltimedownloads, streetreleasedate, sortname, recentdownloads
-    QStringList values;
-    values << mSongData->artist() << mSongData->album()
-            << mSongData->title() << QString(tr("relevancy"));
-    TX_LOG_ARGS( "Artist: " << mSongData->artist() ); 
-    TX_LOG_ARGS( "Album: " << mSongData->album() );
-    TX_LOG_ARGS( "Title: " << mSongData->title() );
-    
-    uri += keyValues( keys, values );
-
-    QUrl url(uri);
-    uri = url.toEncoded();
-    TX_EXIT
-}
-
-/*!
- Get Atom response from Ovi server based on query
- */
-void MpDetailsView::retrieveInformation( const QString &urlEncoded )
-{
-    TX_ENTRY_ARGS( "urlEconded = " << urlEncoded)
-    QNetworkReply *reply = mManager->get( QNetworkRequest( QUrl( urlEncoded ) ) );
-    mReplys.append( reply );
-    
-    connect( reply, SIGNAL( error( QNetworkReply::NetworkError ) ), this, SLOT( retrieveInformationNetworkError( QNetworkReply::NetworkError ) ) );
-    connect( reply, SIGNAL( sslErrors( QList<QSslError> ) ), this, SLOT( retrieveInformationSslErrors( QList<QSslError> ) ) );
-    TX_EXIT
-}
-
-
-/*!
- Slot to call when getting response
- */
-void MpDetailsView::retrieveInformationFinished( QNetworkReply* reply )
+  Method to create the share dialog on demand.
+  This will cause the share web view to be created and start loading.
+  */
+void MpDetailsView::createShareDialog()
 {
     TX_ENTRY
-    QString errorStr;
-    int errorLine;
-    int errorColumn;
-    bool parsingSuccess;
-    
-    if ( reply->error() == QNetworkReply::NoError )
+    if ( !mSharePopup )
     {
-        parsingSuccess = mDomDocument.setContent( reply, true, &errorStr, &errorLine, &errorColumn );
-        if ( parsingSuccess ) {
-            handleParsedXML();  //CodeScanner throws a warning mis-interpreting the trailing 'L' to be a leaving function.
-        } else {
-            // TODO: agree on error handling            
-            TX_LOG_ARGS( "XML parsing error" );
-        }
+        mSharePopup = new MpDetailsShareDialog();
     }
-    else
+    if ( !mSharePopup->isInitialized() )
     {
-    // TODO: agree on error handling
-        TX_LOG_ARGS( "Network error in retrieving Information" );
+        connect( mSharePopup, SIGNAL( closeShareDialog() ), this, SLOT( closeShareDialog() ) );
+        mSharePopup->initialize( mSongData, tr( "Unknown" ) );
     }
     TX_EXIT
 }
 
 /*!
- Slot to call when there is network error
- */
-void MpDetailsView::retrieveInformationNetworkError( QNetworkReply::NetworkError /*error*/ )
+  Method to create the share dialog on demand and preload publishing player files.
+  This will construct the share dialog but it will still be in "uninitialized" state.
+  */
+void MpDetailsView::preloadShareDialog()
 {
-    // TODO: agree on error handling
-    TX_ENTRY_ARGS( "Network error for retrieving Information" );
-    TX_EXIT
-}
-
-/*!
- Slot to call when there is ssl error
- */
-void MpDetailsView::retrieveInformationSslErrors( const QList<QSslError> &/*error*/ )
-{   
-    // TODO: agree on error handling
-    TX_ENTRY_ARGS( "SSL error for retrieving Information" );
+    TX_ENTRY
+    if ( !mSharePopup )
+    {
+        mSharePopup = new MpDetailsShareDialog();
+    }
+    mSharePopup->cachePublishingPlayerFiles();
     TX_EXIT
 }
 
 /*!
- Slot to call when downloading finished
+ Slot to be called when ok/close button in share dialog is pressed.
  */
-void MpDetailsView::DownloadFinished( QNetworkReply* reply )
+void MpDetailsView::closeShareDialog()
 {
-    TX_ENTRY_ARGS( "mDownloadedAlbumArts = " << mDownloadedAlbumArts );
-    if ( reply->error() == QNetworkReply::NoError )
+    TX_ENTRY
+    if ( mSharePopup )
     {
-        QString fileName = mRecommendationAlbumArtsName.at( mDownloadedAlbumArts );
-        TX_LOG_ARGS( "File name: " << fileName );
-        QFile file(fileName);
-
-        if ( fileName.isEmpty() ) {
-            TX_LOG_ARGS( "Only store two album arts" );
-        } else {
-            if ( !file.open( QIODevice::ReadWrite ) ) {
-                TX_LOG_ARGS( "Unable to open file" );
-            } else {
-                file.write( reply->readAll() );
-                file.flush();
-                file.close();
-                setAlbumArtUri( mRecommendationAlbumArtsLink.at( mDownloadedAlbumArts ), 
-                                mRecommendationAlbumArtsName.at( mDownloadedAlbumArts ) );
-            }
-        }
+        // Dialog uses WA_DeleteOnClose so no need to delete it explicitely here, just close it.
+        mSharePopup->close();
+        mSharePopup = NULL;
     }
-    else
-    {
-        TX_LOG_ARGS( "Downloading album art failed!" );
-    }
-    
-    mDownloadedAlbumArts++;
     TX_EXIT
 }
+#endif
 
 /*!
- Slot to handle the recommendation album art 
+ Slot to handle the music store URL retrieval from the query manager.
 */
-void MpDetailsView::thumbnailReady(
-        const QPixmap& pixmap,
-        void *data,
-        int /*id*/,
-        int error  )
+void MpDetailsView::updateSharedData(const QString& url)
 {
     TX_ENTRY
-    QString uri = *( reinterpret_cast<QString *>( data ) );
-    TX_LOG_ARGS( "Uri: " << uri );
-    
-    if ( error == 0 ) {
-        TX_LOG_ARGS( "album art link: " << uri );
-        mRecommendationAlbumArtsMap.insert( uri, pixmap );
-        recommendationAlbumArtReady();
-    }
-    else {
-        mRecommendationAlbumArtsMap.insert( uri, mDefaultRecommendationAlbumArt );
-        recommendationAlbumArtReady();
-    }
-
+    mSongData->setLink( url );
+#ifdef SHARE_FUNC_ENABLED
+    if ( mSharePopup )
+	{
+		mSharePopup->updateSharedData();
+	}
+#endif
     TX_EXIT
 }
-
-
-/*!
- Slot to add context to javascript
- */
-void MpDetailsView::addContext()
-{
-    TX_ENTRY
-    TX_EXIT
-}
-
-/*!
- Slot to close widget
- */
-void MpDetailsView::close()
-{
-    TX_ENTRY
-    TX_EXIT
-}
-
--- a/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +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: Framework wrapper
-*
-*/
-
-
-#include "mpmpxdetailsframeworkwrapper.h"
-#include "mpmpxdetailsframeworkwrapper_p.h"
-#include "mptrace.h"
-
-/*!
-    \class MpMpxDetailsFrameworkWrapper
-    \brief Wrapper for mpx framework utilities.
-
-    MPX framework wrapper provides Qt style interface to the MPX framework
-    utilities. Its implementation is hidden using private class data pattern.
-*/
-
-
-/*!
- Constructs the utility wrapper.
- */
-MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper( QObject *parent )
-    : QObject(parent),
-      d_ptr( q_check_ptr( new MpMpxDetailsFrameworkWrapperPrivate( this ) ) )  //from Qt 4.6
-{
-    TX_ENTRY
-    TX_EXIT
-}
-
-/*!
- Destructs the utility wrapper.
- */
-MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper()
-{
-    TX_ENTRY
-    delete d_ptr;
-    TX_EXIT
-}
-
-/*!
- Returns pointer to MpSongData
- */
-MpSongData *MpMpxDetailsFrameworkWrapper::songData()
-{
-    TX_LOG
-    return d_ptr->songData();
-}
-
-/*!
- Retrieve currently playing song meta data
- */
-void MpMpxDetailsFrameworkWrapper::retrieveSong()
-{
-    TX_LOG
-    d_ptr->retrieveSong();
-}
-
--- a/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +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: Framework wraper - Private.
-*
-*/
-
-#include <mpxplaybackutility.h>
-#include <mpxmedia.h>
-#include <mpxmediageneraldefs.h>
-#include <mpxmediamusicdefs.h>
-#include <mpxcommandgeneraldefs.h>
-#include <mpxplaybackmessage.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxplaybackmessagedefs.h>
-
-#include "mpmpxdetailsframeworkwrapper_p.h"
-#include "mpmpxdetailsframeworkwrapper.h"
-#include "mpcommondefs.h"
-#include "mptrace.h"
-#include "mpsongdata.h"
-
-/*!
-    \class MpMpxDetailsFrameworkWrapperPrivate
-    \brief Wrapper for mpx framework utilities - private implementation.
-
-    This is a private implementation of the mpx framework wrapper utilties interface.
-*/
-
-/*!
- \internal
- */
-MpMpxDetailsFrameworkWrapperPrivate::MpMpxDetailsFrameworkWrapperPrivate( MpMpxDetailsFrameworkWrapper *qq )
-    : q_ptr( qq ),
-      iSongData(0),
-      iPlaybackUtility(0)
-{
-    TX_ENTRY
-	// TODO: Who will call the destructor if it throws ?
-    QT_TRAP_THROWING( constructProviderL() );
-    TX_EXIT
-}
-
-/*!
- \internal
- */
-MpMpxDetailsFrameworkWrapperPrivate::~MpMpxDetailsFrameworkWrapperPrivate()
-{
-    TX_ENTRY
-    // TODO: Hkn: Trace the leave on debug, remove any TRAP_IGNORE s
-    TRAP_IGNORE( destructProviderL() );
-    TX_EXIT
-}
-
-/*!
- \internal
- \ TODO: Hkn: rename
- */
-void MpMpxDetailsFrameworkWrapperPrivate::constructProviderL()
-{
-    TX_ENTRY
-    iPlaybackUtility = MMPXPlaybackUtility::UtilityL(
-            TUid::Uid( MpCommon::KMusicPlayerUid ) );
-    iPlaybackUtility->AddObserverL( *this );
-    
-    iSongData = new MpSongData();
-    User::LeaveIfNull(iSongData);
-    
-    TX_EXIT
-}
-
-/*!
- \internal
- */
-void MpMpxDetailsFrameworkWrapperPrivate::destructProviderL()
-{
-    TX_ENTRY
-    if ( iPlaybackUtility )
-        {        
-        iPlaybackUtility->RemoveObserverL( *this );
-        iPlaybackUtility->Close();
-        iPlaybackUtility = NULL;
-        //do not delete pointer data
-        }
-    
-    delete iSongData;
-    iSongData=NULL;
-    TX_EXIT
-}
-
-/*!
- \internal
- */
-void MpMpxDetailsFrameworkWrapperPrivate::HandlePlaybackMessage(
-        CMPXMessage *aMessage,
-        TInt aError )
-{
-    Q_UNUSED( aMessage );
-    Q_UNUSED( aError );
-}
-
-/*!
- \internal
- */
-void MpMpxDetailsFrameworkWrapperPrivate::HandlePropertyL( TMPXPlaybackProperty /*aProperty*/, TInt /*aValue*/, TInt /*aError*/ )
-{
-    TX_LOG
-}
-
-/*!
- \internal
- */
-void MpMpxDetailsFrameworkWrapperPrivate::HandleSubPlayerNamesL( TUid /*aPlayer*/, const MDesCArray */*aSubPlayers*/, TBool /*aComplete*/, TInt /*aError*/ )
-{
-    TX_LOG    
-}
-
-/*!
- \internal
- */
-void MpMpxDetailsFrameworkWrapperPrivate::HandleMediaL(
-        const CMPXMedia& aProperties,
-        TInt aError )
-{
-    TX_ENTRY
-  
-    if ( KErrNone != aError ){
-        // TODO: Hkn: Add a proper trace macro and trace
-        TX_EXIT
-        return;
-    }
-  
-    bool changed = false;
-    if ( aProperties.IsSupported( KMPXMediaGeneralTitle ) ) {
-        changed |= iSongData->setTitle(
-            QString::fromUtf16(
-                aProperties.ValueText( KMPXMediaGeneralTitle ).Ptr(),
-                aProperties.ValueText( KMPXMediaGeneralTitle ).Length() ) );
-    } else {
-        changed |= iSongData->setTitle( QString() );
-    }
-    
-    if ( aProperties.IsSupported( KMPXMediaMusicArtist ) ) {
-        changed |= iSongData->setArtist(
-            QString::fromUtf16(
-                aProperties.ValueText( KMPXMediaMusicArtist ).Ptr(),
-                aProperties.ValueText( KMPXMediaMusicArtist ).Length() ) );
-    } else {
-        changed |= iSongData->setArtist( QString() );
-    }
-    
-    if ( aProperties.IsSupported( KMPXMediaMusicAlbum ) ) {
-        changed |= iSongData->setAlbum(
-            QString::fromUtf16(
-                aProperties.ValueText( KMPXMediaMusicAlbum ).Ptr(),
-                aProperties.ValueText( KMPXMediaMusicAlbum ).Length() ) );
-    } else {
-        changed |= iSongData->setAlbum( QString() );
-    }
-    if ( changed ) {
-        iSongData->commitPlaybackInfo( );
-    }    
-    
-    // call back will be called when Album art is retrieved
-    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicAlbumArtFileName ) ) ) {
-        iSongData->setAlbumArtUri(
-            QString::fromUtf16(
-                aProperties.ValueText(KMPXMediaMusicAlbumArtFileName).Ptr(),
-                aProperties.ValueText(KMPXMediaMusicAlbumArtFileName).Length()));
-    } else {
-        iSongData->setAlbumArtUri( QString() );
-    }
-    
-    // all following will be for song details
-    changed = false;
-    if ( aProperties.IsSupported( KMPXMediaGeneralComment ) ) {
-        TX_LOG_ARGS( "Comment is supported " );
-        changed |= iSongData->setComment(
-            QString::fromUtf16(
-                aProperties.ValueText( KMPXMediaGeneralComment ).Ptr(),
-                aProperties.ValueText( KMPXMediaGeneralComment ).Length() ) );
-    } else {
-        changed |= iSongData->setComment( QString() );
-    }
-    
-    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicComposer ) ) ) {
-        TX_LOG_ARGS( "Composer is supported " );
-        changed |= iSongData->setComposer(
-            QString::fromUtf16(
-                aProperties.ValueText( KMPXMediaMusicComposer ).Ptr(),
-                aProperties.ValueText( KMPXMediaMusicComposer ).Length()));
-    } else {
-        changed |= iSongData->setComposer( QString() );
-    }
-
-    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicYear ) ) ) {
-        TInt64 yearInMicroSeconds = aProperties.ValueTObjectL<TInt64>( KMPXMediaMusicYear );
-        TTime yearTime( yearInMicroSeconds );
-        changed |= iSongData->setYear( yearTime.DateTime().Year() );
-    } else {
-        // to clear previous result
-        changed |= iSongData->setYear( -1 );
-    }
-    
-    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicAlbumTrack ) ) ) {
-        changed |= iSongData->setAlbumTrack(
-            QString::fromUtf16(
-                aProperties.ValueText( KMPXMediaMusicAlbumTrack ).Ptr(),
-                aProperties.ValueText( KMPXMediaMusicAlbumTrack ).Length()));
-    } else {
-        changed |= iSongData->setAlbumTrack( QString() );  
-    }
-
-    if ( aProperties.IsSupported( TMPXAttribute( KMPXMediaMusicGenre ) ) ) {
-        changed |= iSongData->setGenre(
-            QString::fromUtf16(
-                aProperties.ValueText( KMPXMediaMusicGenre ).Ptr(),
-                aProperties.ValueText( KMPXMediaMusicGenre ).Length()));
-    } else {
-        changed |= iSongData->setGenre( QString() );
-    }
-        
-    if ( changed ) {
-        iSongData->commitSongDetailInfo( );
-    }    
-    TX_EXIT
-}
-
-/*!
- return song data
- */
-MpSongData *MpMpxDetailsFrameworkWrapperPrivate::songData()
-{
-    TX_LOG
-    return iSongData;
-}
-
-/*!
- \internal
- */
-void MpMpxDetailsFrameworkWrapperPrivate::retrieveSong()
-{
-    TX_ENTRY
-    TRAP_IGNORE( doRetrieveSongL() );
-    TX_EXIT
-}
-
-/*!
- \internal
- */
-void MpMpxDetailsFrameworkWrapperPrivate::doRetrieveSongL()
-{
-    TX_ENTRY
-    MMPXSource *mediaSrc = iPlaybackUtility->Source();
-    User::LeaveIfNull( mediaSrc );
-    RArray<TMPXAttribute> requestedAttr;
-    CleanupClosePushL( requestedAttr );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralTitle ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicArtist ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbum ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralUri ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumArtFileName ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralComment ) );
-
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumTrack ) );   
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicComposer ) );   
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicYear ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicGenre ) );   
-
-    mediaSrc->MediaL( requestedAttr.Array(), *this );
-    CleanupStack::PopAndDestroy( &requestedAttr );
-    TX_EXIT
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpquerymanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,528 @@
+/*
+* 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: Music Player Query Manager.
+*
+*/
+
+#include "mpquerymanager.h"
+#include <QDebug>
+#include <QObject>
+#include <QNetworkAccessManager>
+#include <QNetworkDiskCache>
+#include <QNetworkProxyFactory>
+#include <qmobilityglobal.h>
+#include <qnetworksession.h>
+#include <QDomElement>
+#include <QList>
+#include <QFile>
+#include <QUrl>
+#include <QSslError>
+#include <QDir>
+#include <QCoreApplication>
+
+#include <thumbnailmanager_qt.h>
+#include <thumbnaildata.h>
+#include <thumbnailobjectsource.h>
+
+#include "mpdetailssharedialog.h"
+#include "mptrace.h"
+
+const int KUndefined = -1;
+const int KRecommendationCount = 2;
+
+MpQueryManager::MpQueryManager()
+    : mManager(0),
+      mDownloadManager(0),
+      mThumbnailManager(0)        
+                               
+{
+    TX_ENTRY
+
+    QString privatePathQt( QCoreApplication::applicationDirPath() );
+    TX_LOG_ARGS( "Private path: " << privatePathQt );
+    QDir dir( privatePathQt );
+    QString newDir = "detailsview";
+    bool res = dir.mkdir( newDir );
+    TX_LOG_ARGS( "New dir creation result: " << res);
+
+    // We're not handling a negative result for directory creation here,
+    // instead it will be escalated in DownloadFinished() method.
+    privatePathQt = privatePathQt + "/detailsview";
+    QString albumArt1( privatePathQt + "/albumOne.png" );
+    QString albumArt2( privatePathQt + "/albumTwo.png" );
+    mRecommendationAlbumArtsName << albumArt1 << albumArt2;
+    TX_LOG_ARGS( "recommendation album art names: " << mRecommendationAlbumArtsName );
+
+    mManager = new QNetworkAccessManager( this );
+      
+    mDownloadManager = new QNetworkAccessManager( this );
+    connect( mDownloadManager, SIGNAL( finished( QNetworkReply * ) ), this, SLOT( DownloadFinished( QNetworkReply * ) ) );
+    
+    mThumbnailManager = new ThumbnailManager( this );
+    mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality );
+    mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailSmall );
+    QObject::connect( mThumbnailManager, SIGNAL( thumbnailReady( QPixmap , void * , int , int ) ),
+            this, SLOT( thumbnailReady( QPixmap , void * , int , int  ) ) );
+    // TODO: Use the album art in provided by 10.1 wk16 platform. Current one is in the binary        
+    mDefaultRecommendationAlbumArt = QPixmap( ":/mpdetailsviewicons/qtg_large_music_album.svg" );    
+     
+    TX_EXIT
+}
+
+MpQueryManager::~MpQueryManager()
+{
+    TX_ENTRY
+    if ( mManager ) {
+       mManager->deleteLater();
+     }
+    if ( mDownloadManager ) {
+       mDownloadManager->deleteLater();
+    }
+    delete mThumbnailManager;
+    TX_EXIT
+}
+
+
+void MpQueryManager::clearNetworkReplies()
+{
+    disconnect( mManager, SIGNAL( finished( QNetworkReply * ) ), this, SLOT( retrieveInformationFinished( QNetworkReply * ) ) );     
+    TX_ENTRY_ARGS( "Reply count = " << mReplys.count() );    
+    for ( int i = 0; i < mReplys.count(); i++ ) {
+        QNetworkReply *reply = mReplys.at( i );
+        disconnect( reply, SIGNAL( error( QNetworkReply::NetworkError ) ), this, SLOT( retrieveInformationNetworkError( QNetworkReply::NetworkError ) ) );        
+        if ( reply != NULL ) {
+            reply->close();
+            reply->deleteLater();
+            reply = NULL;
+        }   
+    }
+    mReplys.clear();
+    TX_EXIT
+}
+
+
+void MpQueryManager::queryLocalMusicStore(QString artist,QString album,QString title)
+{
+    TX_ENTRY
+    mArtist=artist;
+    mAlbum=album;
+    mTitle=title;
+    // TODO: country information handling, MCC
+    QString queryURI("http://api.music.ovi.com/1.0/ru/?");
+    constructRequest( queryURI );
+    TX_LOG_ARGS( "queryURI : " << queryURI );
+    retrieveInformation( queryURI );
+    TX_EXIT    
+}
+    
+void MpQueryManager::queryInspireMeItems(QString artist,QString album,QString title)
+{
+    TX_ENTRY    
+    mArtist=artist;
+    mAlbum=album;
+    mTitle=title;
+    // start querying inspire me items
+    QString queryRecommendation("http://api.music.ovi.com/1.0/gb/releases/recommend/?");
+    constructRequest( queryRecommendation );
+    TX_LOG_ARGS( "queryRecommendation : " << queryRecommendation );
+    retrieveInformation( queryRecommendation );
+    TX_EXIT
+}
+
+void MpQueryManager::clearRecommendations()
+{
+    TX_ENTRY    
+    mDownloadedAlbumArts = 0;
+    mAlbumArtsReadyCount = 0;
+    for ( int i = 0; i < KRecommendationCount; i++ ) {
+       mRecommendationSongs.clear();
+       mRecommendationArtists.clear();
+       mRecommendationAlbumArtsLink.clear();
+       mRecommendationAlbumArtsMap.clear();      
+       QFile file( mRecommendationAlbumArtsName.at( i ) );        
+       if ( file.exists() ) {
+           if ( file.remove() ) {
+               TX_LOG_ARGS( "File removed - " << file.fileName() );
+           }
+           else {
+               TX_LOG_ARGS( "Cannot remove file - " << file.fileName() );
+           }
+       } else {
+           TX_LOG_ARGS( "File doesn't exist - " << file.fileName() );
+       }
+    }
+    TX_EXIT    
+}
+
+/*!
+ Return recommendation songs
+ */
+QStringList MpQueryManager::recommendationSongs()
+{
+    TX_LOG  
+    return mRecommendationSongs;
+}
+
+/*!
+ Return recommendation artists
+ */
+QStringList MpQueryManager::recommendationArtists()
+{
+    TX_LOG  
+    return mRecommendationArtists;
+}
+
+/*!
+ Return recommendation album arts links
+ */
+QStringList MpQueryManager::recommendationAlbumArtsLink()
+{
+    TX_LOG  
+    return mRecommendationAlbumArtsLink;
+}
+
+/*!
+ Return map of name and pixmap
+ */
+QMap<QString, QPixmap>  MpQueryManager::recommendationAlbumArtsMap()
+{
+    TX_LOG  
+    return mRecommendationAlbumArtsMap;
+}
+
+/*!
+ Insert one uri & pixmap item into map
+ */
+void MpQueryManager::insertMapItem( const QString &uri, const QPixmap &pixmap )
+{
+    TX_ENTRY_ARGS( "Map Item URI: " << uri );
+    mRecommendationAlbumArtsMap.insert( uri, pixmap );
+    TX_EXIT
+}
+
+/*!
+ Slot to call when getting response
+ */
+void MpQueryManager::retrieveInformationFinished( QNetworkReply* reply )
+{
+    TX_ENTRY
+    QString errorStr;
+    int errorLine;
+    int errorColumn;
+    bool parsingSuccess;
+    
+    if ( reply->error() == QNetworkReply::NoError )
+    {
+        parsingSuccess = mDomDocument.setContent( reply, true, &errorStr, &errorLine, &errorColumn );
+        if ( parsingSuccess ) {
+            handleParsedXML();  //CodeScanner throws a warning mis-interpreting the trailing 'L' to be a leaving function.
+        } else {
+            // TODO: agree on error handling            
+            TX_LOG_ARGS( "XML parsing error" );
+        }
+    }
+    else
+    {
+        // TODO: agree on error handling
+        TX_LOG_ARGS( "Network error in retrieving Information" );
+        emit networkError();
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to call when there is network error
+ */
+void MpQueryManager::retrieveInformationNetworkError( QNetworkReply::NetworkError error )
+{
+    // TODO: agree on error handling
+    TX_ENTRY_ARGS( "Network error for retrieving Information" << error);
+    TX_EXIT
+}
+
+/*!
+ Slot to call when there is ssl error
+ */
+void MpQueryManager::retrieveInformationSslErrors( const QList<QSslError> &/*error*/ )
+{   
+    // TODO: agree on error handling
+    TX_ENTRY_ARGS( "SSL error for retrieving Information" );
+    TX_EXIT
+}
+
+/*!
+ Slot to call when downloading finished
+ */
+void MpQueryManager::DownloadFinished( QNetworkReply* reply )
+{
+    TX_ENTRY_ARGS( "mDownloadedAlbumArts = " << mDownloadedAlbumArts );
+    if ( reply->error() == QNetworkReply::NoError )
+        {
+        QString fileName = mRecommendationAlbumArtsName.at( mDownloadedAlbumArts );
+        QByteArray imageData = reply->readAll();
+        bool ret = writeImageToFile( imageData, fileName );
+
+        // If file writing went OK, emit a signal with the real filename
+        // If it failed, use empty filename (since file was removed in any case)
+        if ( ret )
+            {
+            setAlbumArtUri( mRecommendationAlbumArtsLink.at( mDownloadedAlbumArts), 
+                            mRecommendationAlbumArtsName.at( mDownloadedAlbumArts ) );
+            }
+        else
+            {
+            setAlbumArtUri(mRecommendationAlbumArtsLink.at( mDownloadedAlbumArts), "");
+            }
+        }
+    else
+    {
+        TX_LOG_ARGS( "Downloading album art failed!" );
+        emit networkError();
+    }
+    
+    mDownloadedAlbumArts++;
+    TX_EXIT
+}
+
+/*!
+ Write the image data to a file with the given filename.
+ If writing operation fails for any reason (e.g. OOD),
+ returns false, otherwise true.
+ */
+bool MpQueryManager::writeImageToFile(const QByteArray &aImageData, const QString &aImageFileName )
+    {
+    bool ret( false );
+    TX_ENTRY_ARGS( "imagefile: " << aImageFileName );
+    if ( aImageFileName.isEmpty() )
+        {
+        TX_LOG_ARGS( "Only store two album arts" );
+        }
+    else
+        {
+        QFile file( aImageFileName );
+
+        if ( !file.open( QIODevice::ReadWrite ) )
+            {
+            TX_LOG_ARGS( "Unable to open file" );
+            }
+        else
+            {
+            qint64 writtenBytes = file.write( aImageData );
+
+            // Verify file write status
+            if ( writtenBytes < aImageData.size() )
+                {
+                // If write succeeded only partially, or completely failed,
+                // remove the file from filesystem to remove risk of corruption
+                TX_LOG_ARGS( "Wrote only " << writtenBytes << " bytes, aborting operation!" );
+                file.close();
+                QFile::remove( mRecommendationAlbumArtsName.at( mDownloadedAlbumArts ) );
+                }
+            else
+                {
+                // If write fully succeeded, flush contents
+                TX_LOG_ARGS( "Wrote all the bytes (" << writtenBytes << "), flushing and closing!");
+                file.flush();
+                file.close();
+                ret = true;
+                }
+            }
+        }
+    TX_LOG_ARGS( "Returning with value: " << ret );
+    TX_EXIT
+    return ret;
+    }
+
+/*!
+ Get Atom response from Ovi server based on query
+ */
+void MpQueryManager::retrieveInformation( const QString &urlEncoded )
+{
+    TX_ENTRY_ARGS( "urlEconded = " << urlEncoded)
+    connect( mManager, SIGNAL( finished( QNetworkReply * ) ), this, SLOT( retrieveInformationFinished( QNetworkReply * ) ) );    
+    QNetworkReply *reply = mManager->get( QNetworkRequest( QUrl( urlEncoded ) ) );
+    mReplys.append( reply );
+    
+    connect( reply, SIGNAL( error( QNetworkReply::NetworkError ) ), this, SLOT( retrieveInformationNetworkError( QNetworkReply::NetworkError ) ) );
+    connect( reply, SIGNAL( sslErrors( QList<QSslError> ) ), this, SLOT( retrieveInformationSslErrors( QList<QSslError> ) ) );
+    TX_EXIT
+}
+
+
+/*!
+ Find the most suitable link based on Atom response from Ovi music server
+ */
+void MpQueryManager::handleParsedXML()
+{
+    TX_ENTRY
+    QDomElement rootElement = mDomDocument.documentElement();
+    
+    if ( rootElement.attribute( "type" ) == "search" ) {
+        TX_LOG_ARGS( "URI response" )
+        QString result;
+        QDomElement entry = rootElement.firstChildElement( "entry" );
+        while ( !entry.isNull() )
+        {
+            if ( entry.attribute( "type" ) == "musictrack" ) {
+                QDomElement link = entry.firstChildElement( "link" );
+                while ( !link.isNull() )
+                {
+                    if ( link.attribute( "rel" ) == "alternate"
+                        && link.attribute( "type" ) == "text/html" ) {
+                        result = link.attribute( "href" );
+                    }
+                    link = link.nextSiblingElement( "link" );
+                }
+            }
+            entry = entry.nextSiblingElement( "entry" );
+        }
+		// Signal that the url was received. Might be empty string.
+		emit searchUrlRetrieved( result );
+    } else if ( rootElement.attribute( "type" ) == "recommendedTracks" ) {
+        TX_LOG_ARGS( "Recommendation response" )
+        QDomElement entry = rootElement.firstChildElement( "entry" );
+        QNetworkReply *reply;
+        int count = 0;
+        while ( !entry.isNull() && count < KRecommendationCount )
+        {
+            if ( entry.attribute( "type" ) == "musictrack" ) {
+                QDomElement link = entry.firstChildElement( "link" );
+                while ( !link.isNull() )
+                {
+                    if ( link.attribute( "title" ) == "albumart100" ) {
+                        mRecommendationAlbumArtsLink.append( link.attribute( "href" ) );
+                        break;
+                    } else {
+                        link = link.nextSiblingElement( "link" );
+                    }                    
+                }
+                QDomElement metadata = entry.firstChildElement( "metadata" );
+                mRecommendationSongs.append( metadata.firstChildElement( "name" ).text() );
+                mRecommendationArtists.append( metadata.firstChildElement( "primaryartist" ).text() );
+                count++;
+            }
+            entry = entry.nextSiblingElement( "entry" );
+        }          
+        
+        for (int i = 0; i < KRecommendationCount; i++ ) {
+            TX_LOG_ARGS( "song name: " << mRecommendationSongs.at(i) );
+            TX_LOG_ARGS( "Artist name: " << mRecommendationArtists.at(i) );
+            TX_LOG_ARGS( "Album art link: " << mRecommendationAlbumArtsLink.at(i) );
+            
+            if ( mRecommendationAlbumArtsLink.at( i ).contains( "http", Qt::CaseInsensitive ) ) {
+                reply = mDownloadManager->get( QNetworkRequest( QUrl( mRecommendationAlbumArtsLink.at(i) ) ) );
+                mReplys.append( reply );
+                connect( reply, SIGNAL( error( QNetworkReply::NetworkError ) ), this, SLOT( retrieveInformationNetworkError( QNetworkReply::NetworkError ) ) );
+                connect( reply, SIGNAL( sslErrors( QList<QSslError> ) ), this, SLOT( retrieveInformationSslErrors( QList<QSslError> ) ) );
+            }             
+        }
+    } else {
+        TX_LOG_ARGS( "Not supported response" )
+    }
+    TX_EXIT
+}
+
+/*!
+ Construct the query for fetching URI & recommendations
+ */
+void MpQueryManager::constructRequest( QString &uri )
+{
+    TX_ENTRY_ARGS( "uri =" << uri)
+    
+    QStringList keys;
+    keys << "artist" << "albumtitle" << "tracktitle" << "orderby";
+    
+    // TODO: need to clarify which crition to use for sort, currently hard code to "relevancy"
+    // order can be relevancy, alltimedownloads, streetreleasedate, sortname, recentdownloads
+    QStringList values;
+    values << mArtist << mAlbum << mTitle << QString("relevancy");
+    TX_LOG_ARGS( "Artist: " << mArtist ); 
+    TX_LOG_ARGS( "Album: " << mAlbum );
+    TX_LOG_ARGS( "Title: " << mTitle );
+    
+    uri += keyValues( keys, values );
+
+    QUrl url(uri);
+    uri = url.toEncoded();
+    TX_EXIT
+}
+
+/*!
+ Make a key & value pair string for querying
+ */
+QString MpQueryManager::keyValues( QStringList keys, QStringList values ) const
+{
+    TX_ENTRY
+    QString str;
+    if ( keys.length() != values.length() ) {
+        TX_LOG_ARGS( "Error: keys length is not equal to values length" ); 
+    } else {
+        for ( int i = 0; i < keys.length(); i++ ) {
+            QString tValue = values.at( i );
+            if ( 0 != tValue.length() )
+            {
+                str += keys.at( i ) + "=" + values.at( i ) + "&";
+            }
+        }
+    }
+    TX_EXIT
+    return str.left( str.length() - 1 );
+}
+
+/*!
+ Sets recommendation album art
+*/
+void MpQueryManager::setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName )
+{
+    TX_ENTRY_ARGS( "albumArtUri = " << albumArtUri )
+    TX_LOG_ARGS( "albumArtName = " << albumArtName )
+    if ( !albumArtUri.isEmpty() && !albumArtName.isEmpty() ) {
+        int id = mThumbnailManager->getThumbnail( albumArtName, reinterpret_cast<void *>( const_cast<QString *>( &albumArtUri ) ) );
+        if ( id == KUndefined ) {
+            // Request failed. Set default album art.
+            insertMapItem( albumArtUri, mDefaultRecommendationAlbumArt );
+        }
+    }
+    else {
+        // No album art uri. Set default album art.
+        insertMapItem( albumArtUri, mDefaultRecommendationAlbumArt );
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot to handle the recommendation album art 
+*/
+void MpQueryManager::thumbnailReady(
+        const QPixmap& pixmap,
+        void *data,
+        int /*id*/,
+        int error  )
+{
+    TX_ENTRY
+    // TODO: Hkn: use qobject_cast
+    QString uri = *( reinterpret_cast<QString *>( data ) );
+    TX_LOG_ARGS( "Uri: " << uri );
+    
+    if ( error == 0 ) {
+        TX_LOG_ARGS( "album art link: " << uri );
+        insertMapItem( uri, pixmap );
+    } else {
+        insertMapItem( uri, mDefaultRecommendationAlbumArt );
+    }
+    if(++mAlbumArtsReadyCount == KRecommendationCount) {
+        emit recommendationAlbumArtsReady();
+    }    
+    TX_EXIT
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpsharedata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,156 @@
+/*
+* 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: 
+*
+*/
+
+#ifdef SHARE_FUNC_ENABLED
+
+#include "mpsharedata.h"
+#include "mpsongdata.h"
+
+
+// TODO OVI_URL needs to come from cenrep
+const QString OVI_URL = "http://music.ovi.com";
+
+// The music note symbol that we post if we do not have music store URL.
+const QString MUSIC_NOTE_SYMBOL = "&#9835;";
+
+
+MpShareData::MpShareData()
+    : mOwner( 0 ),
+      mSongData( 0 )
+{
+}
+
+MpShareData::~MpShareData()
+{
+    // Intentionally empty.
+}
+
+void MpShareData::setOwner( QObject* aOwner )
+{
+    mOwner = aOwner;
+}
+
+QObject* MpShareData::owner() const
+{
+    return mOwner;
+}
+
+void MpShareData::setSongData( MpSongData* aSongData )
+{
+    mSongData = aSongData;
+}
+
+MpSongData* MpShareData::songData() const
+{
+    return mSongData;
+}
+
+void MpShareData::setErrorMessage( const QString& s )
+{
+    mErrorMessage = s;
+}
+
+QString MpShareData::errorMessage() const
+{
+    return mErrorMessage;
+}
+
+void MpShareData::setUsername( const QString& s )
+{
+    mUsername = s;
+}
+
+QString MpShareData::username() const
+{
+    return mUsername;
+}
+
+void MpShareData::setPassword( const QString& s )
+{
+    mPassword = s;
+}
+
+QString MpShareData::password() const
+{
+    return mPassword;
+}
+
+void MpShareData::setLanguage( const QString& s )
+{
+	mLanguage = s;
+}
+
+QString MpShareData::language() const
+{
+	return mLanguage;
+}
+
+void MpShareData::setUnknownTr( const QString& s )
+{
+    mUnknownTr = s;
+}
+
+QString MpShareData::objectType() const
+{
+    if ( !mSongData || mSongData->link().isEmpty() )
+    {
+        return "NOTE-APPEND";
+    }
+    // No link, append artist-song
+    return "URI";
+}
+
+int MpShareData::objectReservedLength() const
+{
+    return objectContent().length();
+}
+
+QString MpShareData::objectContent() const
+{
+    if ( mSongData && !mSongData->link().isEmpty() )
+    {
+        return mSongData->link();
+    }
+    // TODO: do we need to have right-to-left text direction here,
+    // i.e. putting the title before the artist in such a case?
+    return MUSIC_NOTE_SYMBOL + " " + artist() + ": " + title() + " " + OVI_URL;
+}
+
+QString MpShareData::title() const
+{
+    if ( mSongData && !mSongData->title().isEmpty() )
+    {
+        return mSongData->title();
+    }
+    return mUnknownTr;
+}
+
+QString MpShareData::artist() const
+{
+    if ( mSongData && !mSongData->artist().isEmpty() )
+    {
+        return mSongData->artist();
+    }
+    return mUnknownTr;
+}
+
+QString MpShareData::albumArtBase64() const
+{
+    return mSongData ? mSongData->albumArtBase64() : "";
+}
+
+#endif // SHARE_FUNC_ENABLED
--- a/mpviewplugins/mpdetailsviewplugin/src/mpsongdata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,400 +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: Playback Data provider for playback view.
-*
-*/
-
-
-#include <qstring>
-#include <qpixmap>
-
-#include <thumbnailmanager_qt.h>
-#include <thumbnaildata.h>
-#include <thumbnailobjectsource.h>
-
-#include "mpsongdata.h"
-#include "mptrace.h"
-
-
-const int KUndefined = -1;
-
-/*!
-    \class MpSongData
-    \brief Music Player song metadata.
-
-    Song data provide acces to current playing song metadata
-*/
-    
-/*!
-    \fn void albumArtReady()
-
-    This signal is albuma alrt is ready.
- */
-
-/*!
-    \fn void playbackInfoChanged()
-
-    This signal is emitted when basic information is available
- */
-    
-/*!
-    \fn void songDetailInfoChanged()
-
-    This signal is emitted when detail information is available
- */
-    
-       
-
-/*!
-    Constructs a new MpSongData.
- */
-MpSongData::MpSongData( QObject *parent )
-    : QObject( parent ),
-      mAlbumArt(),
-      mReqId( KUndefined )
-{
-    TX_ENTRY
-    mThumbnailManager = new ThumbnailManager( this );
-    mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality );
-    mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailMedium );
-    QObject::connect( mThumbnailManager, SIGNAL( thumbnailReady( QPixmap , void * , int , int ) ),
-            this, SLOT( thumbnailReady( QPixmap , void * , int , int  ) ) );
-    
-    mDefaultAlbumArt = QPixmap( ":/detailsviewicons/defaultalbumart.png" );
-    TX_EXIT
-}
-
-/*!
- Constructs a new MpSongData.
- */
-MpSongData::~MpSongData()
-{
-    TX_ENTRY
-    if( mThumbnailManager ) {
-        delete mThumbnailManager;
-    }
-    TX_EXIT
-}
-
-/*!
- Returns the song album art on \a pixmap.
-*/
-void MpSongData::albumArt( QPixmap& pixmap )
-{
-    TX_ENTRY
-     if ( !mAlbumArt.isNull() ) {
-        pixmap = mAlbumArt;
-     }
-     else {
-         pixmap = QPixmap();
-     }
-    TX_EXIT
-}
-
-
-/*!
- Returns the song title.
-*/
-QString MpSongData::title() const
-{
-    TX_LOG
-    return mTitle;
-}
-
-/*!
- Returns the song album.
-*/
-QString MpSongData::album() const
-{
-    TX_LOG
-    return mAlbum;
-}
-
-/*!
- Returns the song artist.
-*/
-QString MpSongData::artist() const
-{
-    TX_LOG
-    return mArtist;
-}
-
-/*!
- Returns comment
-*/
-QString MpSongData::comment() const
-{
-    TX_LOG
-    return mComment;
-}
-
-/*!
- Returns the song composer.
-*/
-QString MpSongData::composer() const
-{
-    TX_LOG
-    return mComposer;
-}
-
-
-/*!
- Returns the song genre.
-*/
-QString MpSongData::genre() const
-{
-    TX_LOG
-    return mGenre;
-}
-
-
-/*!
- Returns the album track.
-*/
-QString MpSongData::albumTrack() const
-{
-    TX_LOG
-    return mAlbumTrack;
-}
-
-/*!
- Returns link
-*/
-QString MpSongData::link() const
-{
-    TX_LOG
-    return mLink;
-}
-
-/*!
- Returns the release date.
-*/
-QString MpSongData::year() const
-{
-    TX_LOG    
-    return mYear;
-}
-
-
-/*!
- Sets the song \a title, returns true if the value is new.
-*/
-bool MpSongData::setTitle( const QString &title )
-{
-    TX_ENTRY_ARGS( "title =" << title )
-    bool change = false;
-    if ( title != mTitle ) {
-        change = true;
-        mTitle = title;
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Sets the song \a album, returns true if the value is new.
-*/
-bool MpSongData::setAlbum( const QString &album )
-{
-    TX_ENTRY_ARGS( "album =" << album )
-    bool change = false;
-    if ( album != mAlbum ) {
-        change = true;
-        mAlbum = album;
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Sets the song \a artist, returns true if the value is new.
-*/
-bool MpSongData::setArtist( const QString &artist )
-{
-    TX_ENTRY_ARGS( "artist =" << artist )
-    bool change = false;
-    if ( artist != mArtist ) {
-        change = true;
-        mArtist = artist;
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Sets the song \a comment, returns true if the value is new.
-*/
-bool MpSongData::setComment( const QString &comment)
-{
-    TX_ENTRY_ARGS( "comment =" << comment )
-    bool change = false;
-    if ( comment != mComment ) {
-        change = true;
-        mComment = comment;
-    }
-    TX_EXIT
-    return change;
-}
-
-
-/*!
- Sets the song \a composer, returns true if the value is new.
-*/
-bool MpSongData::setComposer( const QString &composer )
-{
-    TX_ENTRY_ARGS( "composer =" << composer )
-    bool change = false;
-    if ( composer != mComposer ) {
-        change = true;
-        mComposer = composer;
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Sets the song \a genre, returns true if the value is new.
-*/
-bool MpSongData::setGenre( const QString &genre )
-{
-    TX_ENTRY_ARGS( "genre =" << genre )
-    bool change = false;
-    if ( genre != mGenre ) {
-        change = true;
-        mGenre = genre;
-    }
-    TX_EXIT
-    return change;
-}
-
-
-/*!
- Sets the song \a date, returns true if the value is new.
-*/
-bool MpSongData::setYear( int year )
-{
-    TX_ENTRY_ARGS( "year =" << year )
-    bool change = false;
-    if ( QString::number(year) != mYear ) {
-        change = true;
-        if ( year >= 0 && year < 9999 ) {
-            mYear = QString::number(year);
-        } else {
-            mYear = QString();
-        }
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Sets the \a album track, returns true if the value is new.
-*/
-bool MpSongData::setAlbumTrack( const QString &track )
-{
-    TX_ENTRY_ARGS( "track =" << track )
-    bool change = false;
-    if ( track != mAlbumTrack ) {
-        change = true;
-        mAlbumTrack = track;
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Sets the \a link
-*/
-void MpSongData::setLink( const QString &link )
-{
-    TX_ENTRY_ARGS( "Link =" << link )
-    mLink = link;
-    TX_EXIT
-}
-
-/*!
- Sets the song \a albumArtUri.
-*/
-void MpSongData::setAlbumArtUri( const QString &albumArtUri)
-{
-    TX_ENTRY_ARGS( "albumArtUri = " << albumArtUri )
-    if ( !albumArtUri.isEmpty() ) {
-        bool ok = true;
-        if ( mReqId != KUndefined ) {
-            // There is already an outstanding request. Cancel it first.
-            bool ok = mThumbnailManager->cancelRequest( mReqId );
-        }
-        if ( ok ) {
-            mReqId = mThumbnailManager->getThumbnail( albumArtUri );
-            if ( mReqId == KUndefined ) {
-                // Request failed. Set default album art.
-                mAlbumArt = mDefaultAlbumArt;
-                emit albumArtReady();
-            }
-        }
-    }
-    else {
-        // No album art uri. Set default album art.
-        mAlbumArt = mDefaultAlbumArt;
-        emit albumArtReady();
-    }
-    TX_EXIT
-}
-
-
-/*!
- Slot to handle the album art thumb.
-*/
-void MpSongData::thumbnailReady(
-        const QPixmap& pixmap,
-        void *data,
-        int id,
-        int error  )
-{
-    TX_ENTRY
-    Q_UNUSED( data );
-    if ( error == 0 && mReqId == id ) {
-        mReqId = 0;
-        mAlbumArt = pixmap;
-        emit albumArtReady();
-    }
-    else {
-        mReqId = 0;
-        mAlbumArt = mDefaultAlbumArt; 
-        emit albumArtReady();
-    }
-
-    TX_EXIT
-}
-
-/*!
- Emit signal when playback information changed, such as artist, track name
-*/
-void MpSongData::commitPlaybackInfo()
-{
-    TX_ENTRY
-    emit playbackInfoChanged();
-    TX_EXIT
-}
-
-/*!
- Emit signal when song detail information changed
-*/
-void MpSongData::commitSongDetailInfo()
-{
-    TX_ENTRY
-    emit songDetailInfoChanged();
-    TX_EXIT
-}
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/UT_ALL_mpdetailsviewplugin.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/UT_ALL_mpdetailsviewplugin.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -1,7 +1,18 @@
-; unittest_mpmpxpbframeworkwrapper_template.pkg generated by qmake at 2010-03-07T16:15:41
-; This file is generated by qmake and should not be modified by the user
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
-
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
 ; Language
 &EN
 
@@ -15,8 +26,8 @@
 :"Vendor"
 
 ; Executable and default resource files
-"/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe"    - "!:\sys\bin\unittest_mpmpxpbframeworkwrapper.exe"
-"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpmpxpbframeworkwrapper_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpmpxpbframeworkwrapper_reg.rsc"
+"/epoc32/release/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.exe"    - "!:\sys\bin\unittest_mpmpxdetailsframeworkwrapper.exe"
+"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpmpxdetailsframeworkwrapper_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpmpxdetailsframeworkwrapper_reg.rsc"
 
 "/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe"    - "!:\sys\bin\unittest_mpdetailsview.exe"
 "/epoc32/data/z/private/10003a3f/import/apps/unittest_mpdetailsview_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpdetailsview_reg.rsc"
@@ -27,4 +38,6 @@
 "/epoc32/release/armv5/udeb/unittest_mpdetailsviewplugin.exe"    - "!:\sys\bin\unittest_mpdetailsviewplugin.exe"
 "/epoc32/data/z/private/10003a3f/import/apps/unittest_mpdetailsviewplugin_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpdetailsviewplugin_reg.rsc"
 
+"/epoc32/release/armv5/udeb/unittest_mpquerymanager.exe"    - "!:\sys\bin\unittest_mpquerymanager.exe"
+"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpquerymanager_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpquerymanager_reg.rsc"
 
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/UT_ALL_mpdetailsviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/UT_ALL_mpdetailsviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -11,16 +11,18 @@
 #
 # Contributors:
 #
-# Description: 
+# Description: Unit test for mpdetailsviewplugin
 #
 
+
 TEMPLATE = subdirs
 
 ## TODO: fix this pro file, unit tests in their own root compile, but not within this pro file
-##SUBDIRS += ./unittest_mpdetailsview
-##SUBDIRS += ./unittest_mpdetailsviewplugin
-##SUBDIRS += ./unittest_mpmpxdetailsframeworkwrapper
-##SUBDIRS += ./unittest_mpsongdata
+SUBDIRS += ./unittest_mpdetailssharedialog
+SUBDIRS += ./unittest_mpdetailsview
+SUBDIRS += ./unittest_mpdetailsviewplugin
+SUBDIRS += ./unittest_mpquerymanager
+SUBDIRS += ./unittest_mpsharedata
 
 test.depends = first
 test.CONFIG += recursive
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/UT_ALL_mpdetailsviewplugin.sisx has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/megapak.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,46 @@
+;
+; 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: Metapackage for all unit tests
+;
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"megapak"},(0xEEEECAFE),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+;[0x101F7961],0,0,0,{"S60ProductID"}
+;[0x102032BE],0,0,0,{"S60ProductID"}
+;[0x102752AE],0,0,0,{"S60ProductID"}
+;[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+;(0x2001E61C), 4, 6, 3, {"Qt"}
+; Dependency to Qt Webkit
+;(0x200267C2), 4, 6, 3, {"QtWebKit"}
+
+; Embedded SIS files
+@"./unittest_mpdetailssharedialog/unittest_mpdetailssharedialog.sisx", (0xE3fe6204)
+@"./unittest_mpdetailsview/UT_detailsview.sisx", (0xE003e880)
+@"./unittest_mpdetailsviewplugin/UT_mpdetailsviewplugin.sisx", (0xE003e881)
+@"./unittest_mpquerymanager/UT_mpquerymanager.sisx", (0xE003e882)
+@"./unittest_mpsharedata/unittest_mpsharedata.sisx", (0xE5d27be8)
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/sis.bat	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of "Eclipse Public License v1.0"
@@ -14,7 +14,8 @@
 @rem Description: 
 @rem
 
+@echo off
 del *.sisx
 makesis UT_ALL_mpdetailsviewplugin.pkg
-signsis UT_ALL_mpdetailsviewplugin.sis UT_ALL_mpdetailsviewplugin.sisx .\RndCerts\Nokia_RnDCert_02.der .\RndCerts\Nokia_RnDCert_02.key
+signsis UT_ALL_mpdetailsviewplugin.sis UT_ALL_mpdetailsviewplugin.sisx %RNDCERTS_PATH%\Nokia_RnDCert_02.der %RNDCERTS_PATH%\Nokia_RnDCert_02.key
 del     UT_ALL_mpdetailsviewplugin.sis
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/sissify.py	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,69 @@
+#
+# 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: 
+#
+
+import os
+import sys
+import re
+
+
+def scanUnitTestDirs( dir ):
+	unitTestDirectories = []
+	for root, dirs, files in os.walk(dir):
+		for dir in dirs:
+			m = re.match("unittest_.+", dir)
+			if m != None:
+				m = re.match("unittest_resources", dir)
+				if m == None:
+					fullpath = root + "\\" + dir
+					unitTestDirectories.append( fullpath )
+	return unitTestDirectories
+
+print "Creating all unit test SIS files"
+print "  Compiling all unit test binaries..."
+os.system( "sbs -c armv5.test reallyclean > NULL" )
+os.system( "qmake" )
+os.system( "sbs -c armv5_udeb.test -j 4" )
+
+print "  Generating individual SIS files..."
+dirs = scanUnitTestDirs( "." )
+for dir in dirs:
+	print "  Processing unit test directory " + dir
+	os.chdir( dir )
+
+### Removed individual compiling for now, using main level 
+### PRO template to handle all at once.
+#	print "    Cleaning up the project..."
+#	os.system( "sbs -c armv5_udeb.test reallyclean > NULL" )
+#	print "    Compiling the project..."
+#	os.system( "qmake" )
+#	os.system( "sbs -c armv5_udeb.test -j 4" )
+
+	print "    Creating the SISX..."
+	os.system( "sis.bat > NULL" )
+	print "    Directory processed!\n"
+	os.chdir( ".." )
+
+print "Generating main SIS..."
+print " Remove previous files..."
+os.system( "del megapak.sisx > NULL" )
+print " Makesis..."
+os.system( "makesis megapak.pkg megapak.sis > NULL" )
+os.system( "signsis megapak.sis megapak.sisx  %RNDCERTS_PATH%\Nokia_RnDCert_02.der %RNDCERTS_PATH%\Nokia_RnDCert_02.key" )
+print " Cleaning up..."
+os.system( "del megapak.sis > NULL" )
+
+print "\n\nJob's done!"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/UT_mpdetailssharedialog.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,46 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"unittest_mpdetailssharedialog"},(0xE3fe6204),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+;[0x101F7961],0,0,0,{"S60ProductID"}
+;[0x102032BE],0,0,0,{"S60ProductID"}
+;[0x102752AE],0,0,0,{"S60ProductID"}
+;[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+;(0x2001E61C), 4, 6, 3, {"Qt"}
+; Dependency to Qt Webkit
+;(0x200267C2), 4, 6, 3, {"QtWebKit"}
+
+; Executable and default resource files
+"/epoc32/release/armv5/udeb/unittest_mpdetailssharedialog.exe"    - "!:\sys\bin\unittest_mpdetailssharedialog.exe"
+"/epoc32/data/z/resource/apps/unittest_mpdetailssharedialog.rsc"    - "!:\resource\apps\unittest_mpdetailssharedialog.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpdetailssharedialog_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpdetailssharedialog_reg.rsc"
+
+; Manual PKG post-rules from PRO files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/inc/unittest_mpdetailssharedialog.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* 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: Unit test for mpdetailssharedialog
+*
+*/
+
+#ifndef UNITTEST_MPDETAILSSHAREDIALOG_H_
+#define UNITTEST_MPDETAILSSHAREDIALOG_H_
+
+#include <QtTest/QtTest>
+
+class MpDetailsShareDialog;
+class MpSongData;
+
+class TestMpDetailsShareDialog : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpDetailsShareDialog();
+    virtual ~TestMpDetailsShareDialog();
+
+signals:
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+    void testIndexLoadOk();
+    void testConstruction();
+
+private:
+    MpDetailsShareDialog *mTest;
+    MpSongData* mSongData;
+
+};
+
+
+#endif /* UNITTEST_MPDETAILSSHAREDIALOG_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,21 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+@echo off
+del *.sisx
+makesis UT_mpdetailssharedialog.pkg
+signsis UT_mpdetailssharedialog.sis UT_mpdetailssharedialog.sisx %RNDCERTS_PATH%\Nokia_RnDCert_02.der %RNDCERTS_PATH%\Nokia_RnDCert_02.key
+del UT_mpdetailssharedialog.sis
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/src/unittest_mpdetailssharedialog.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,139 @@
+/*
+* 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: Unit test for MpDetailsShareDialog
+*
+*/
+#include <QSignalSpy>
+#ifdef Q_OS_SYMBIAN
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbicon.h>
+#endif
+#include"unittest_mpdetailssharedialog.h"
+#include "hbmessagebox.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpdetailssharedialog.h"
+#undef private
+#include "mpsharedata.h"
+#include "mpsongdata.h"
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+#ifdef Q_OS_SYMBIAN
+int main(int argc, char *argv[])
+{
+
+    HbApplication app(argc, argv);
+    HbMainWindow window;
+
+    TestMpDetailsShareDialog tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_testmpdetailssharedialog.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+#endif
+
+#ifdef Q_OS_WIN32
+QTEST_MAIN(TestMpDetailsShareDialog)
+#endif
+//Constructor
+TestMpDetailsShareDialog::TestMpDetailsShareDialog()
+    : mTest(0)
+{
+
+}
+
+//Destructor
+TestMpDetailsShareDialog::~TestMpDetailsShareDialog()
+{
+    if (mTest) delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpDetailsShareDialog::initTestCase()
+{
+    qDebug() << "unit test for mpdetailssharedialog begin.";
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpDetailsShareDialog::cleanupTestCase()
+{
+    qDebug() << "unit test for mpdetailssharedialog end.";
+    QCoreApplication::processEvents();
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpDetailsShareDialog::init()
+{
+    mSongData = new MpSongData();
+    mTest = new MpDetailsShareDialog();
+    mTest->initialize(mSongData, "unknown");
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpDetailsShareDialog::cleanup()
+{
+    delete mTest;
+    delete mSongData;
+    mTest = 0;
+    mSongData = 0;
+}
+
+void TestMpDetailsShareDialog::testConstruction()
+{
+    mTest->updateSharedData();
+    mTest->debugJs("Test");
+    mTest->errorHandler("Test error", "Test message");
+    mTest->clearCache();
+    mTest->addContext();
+
+    mTest->mShareNetAccMan = NULL;
+    mTest->mShareWebView = NULL;
+    mTest->updateSharedData();
+    mTest->debugJs("Test");
+    mTest->errorHandler("Test error", "Test message");
+    mTest->clearCache();
+    mTest->addContext();
+    //nothing to verify
+    QCOMPARE(true, true);
+}
+
+void TestMpDetailsShareDialog::testIndexLoadOk()
+{
+    mTest->onIndexLoad(true);
+    mTest->onIndexLoad(false);
+    //nothing to verify
+    QCOMPARE(true, true);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/stub/inc/hbmessagebox.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: stub file for hbmessagebox class.
+*
+*/
+#ifndef HBMESSAGEBOX_H
+#define HBMESSAGEBOX_H
+
+#include <QObject>
+
+class HbMessageBox : public QObject
+{
+    Q_OBJECT
+public:
+    explicit HbMessageBox();
+    virtual ~HbMessageBox();
+
+public:
+    static void information(const QString &warningText);
+    static void warning(const QString &warningText);
+};
+
+#endif // HB_MESSAGEBOX_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/stub/inc/mpsongdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,95 @@
+/*
+* 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 of Metadata of song
+*
+*/
+
+#ifndef MPSONGDATA_H
+#define MPSONGDATA_H
+
+#include <QObject>
+#include <QString>
+#include <QPixmap>
+
+
+//forward declartions
+class QIcon;
+
+//class declaration
+class MpSongData : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit MpSongData( QObject *parent=0 );
+    virtual ~MpSongData();
+    
+    bool setTitle( const QString &title );
+    bool setAlbum( const QString &album );
+    bool setArtist( const QString &artist );
+    bool setComment( const QString &comment );
+    void setAlbumArtUri( const QString &albumArtUri );
+    bool setYear( int date );
+    bool setGenre( const QString &genre );
+    bool setComposer( const QString &compoer );
+    bool setAlbumTrack( const QString &albumtrack );
+    void setLink( const QString &link );
+
+    // inform details view when basic information is ready to accelerate UI update
+    void commitPlaybackInfo();
+    // inform details view when details information is ready
+    void commitSongDetailInfo();
+    void removeAlbumArtFile() const; //TODO: Remove when base64 starts to work
+
+public slots:
+    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+    
+    int reservedLength() const { return mLink.length() + mTitle.length() + mArtist.length(); }
+
+    QString title() const;
+    QString album() const;
+    QString artist() const;
+    QString comment() const;
+    void albumArt( QPixmap& pixmap );
+    QString year() const;
+    QString genre() const;
+    QString composer() const;
+    QString albumTrack() const;
+    QString link() const;
+    QString albumArtBase64() const;
+
+signals:
+    void albumArtReady();
+    void playbackInfoChanged();
+	void songDetailInfoChanged();	
+
+private:
+    QString                  mTitle;
+    QString                  mAlbum;
+    QString                  mArtist;
+    QString                  mComment;
+    QString                  mComposer;
+    QString                  mGenre;
+    QString                  mYear;
+    QString                  mAlbumTrack;
+    QPixmap                  mAlbumArt;
+    int                      mReqId;
+    QString                  currentAAUri; 
+    QPixmap                  mDefaultAlbumArt;
+    QString                  mLink;
+    
+    Q_DISABLE_COPY(MpSongData)
+};
+
+#endif // MPSONGDATA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/stub/inc/qsysteminfo.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,40 @@
+/*
+* 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 of QSystemInfo
+*
+*/
+
+#ifndef QSYSTEMINFO_H
+#define QSYSTEMINFO_H
+
+#include <QObject>
+#include <QString>
+
+
+//class declaration
+class QSystemInfo : public QObject
+{
+    Q_OBJECT
+
+public:
+    QSystemInfo( QObject *parent = 0 );
+    ~QSystemInfo();
+    
+    QString currentLanguage();
+    QString currentCountryCode();    
+};
+
+#define QTM_USE_NAMESPACE ;
+
+#endif // QSYSTEMINFO_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/stub/src/hbmessagebox.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,38 @@
+/*
+* 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
+*
+*/
+
+#include "hbmessagebox.h"
+
+HbMessageBox::HbMessageBox()
+{
+
+}
+
+HbMessageBox::~HbMessageBox()
+{
+
+}
+
+void HbMessageBox::information(const QString &warningText)
+{
+
+}
+
+void HbMessageBox::warning(const QString &warningText)
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/stub/src/mpsongdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,382 @@
+/*
+* 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: Playback Data provider for playback view.
+*
+*/
+
+
+#include <QString>
+#include <QPixmap>
+
+#include "mpsongdata.h"
+#include "mptrace.h"
+
+
+const int KUndefined = -1;
+
+/*!
+    \class MpSongData
+    \brief Music Player song metadata.
+
+    Song data provide acces to current playing song metadata
+*/
+    
+/*!
+    \fn void albumArtReady()
+
+    This signal is albuma alrt is ready.
+ */
+
+/*!
+    \fn void playbackInfoChanged()
+
+    This signal is emitted when basic information is available
+ */
+    
+/*!
+    \fn void songDetailInfoChanged()
+
+    This signal is emitted when detail information is available
+ */
+    
+       
+
+/*!
+    Constructs a new MpSongData.
+ */
+MpSongData::MpSongData( QObject *parent )
+    : QObject( parent ),
+      mTitle( NULL ),
+      mAlbum( NULL ),
+      mArtist( NULL ),
+      mComposer( NULL),
+      mGenre( NULL ),
+      mYear( NULL ),
+      mAlbumTrack( NULL ),
+      mAlbumArt(),
+      mReqId( KUndefined )
+{
+    //TX_ENTRY
+    //TX_EXIT
+}
+
+/*!
+ Constructs a new MpSongData.
+ */
+MpSongData::~MpSongData()
+{
+    //TX_ENTRY
+    //TX_EXIT
+}
+
+/*!
+ Returns the song album art on \a pixmap.
+*/
+void MpSongData::albumArt( QPixmap& pixmap )
+{
+    //TX_ENTRY
+     if ( !mAlbumArt.isNull() ) {
+        pixmap = mAlbumArt;
+     }
+     else {
+         pixmap = QPixmap();
+     }
+    //TX_EXIT
+}
+
+
+/*!
+ Returns the song title.
+*/
+QString MpSongData::title() const
+{
+    //TX_LOG
+    return mTitle;
+}
+
+/*!
+ Returns the song album.
+*/
+QString MpSongData::album() const
+{
+    //TX_LOG
+    return mAlbum;
+}
+
+/*!
+ Returns the song artist.
+*/
+QString MpSongData::artist() const
+{
+    //TX_LOG
+    return mArtist;
+}
+
+/*!
+ Returns comment
+*/
+QString MpSongData::comment() const
+{
+    //TX_LOG
+    return mComment;
+}
+
+/*!
+ Returns the song composer.
+*/
+QString MpSongData::composer() const
+{
+    //TX_LOG
+    return mComposer;
+}
+
+
+/*!
+ Returns the song genre.
+*/
+QString MpSongData::genre() const
+{
+    //TX_LOG
+    return mGenre;
+}
+
+
+/*!
+ Returns the album track.
+*/
+QString MpSongData::albumTrack() const
+{
+    //TX_LOG
+    return mAlbumTrack;
+}
+
+/*!
+ Returns link
+*/
+QString MpSongData::link() const
+{
+    //TX_LOG
+    return mLink;
+}
+
+/*!
+ Returns the release date.
+*/
+QString MpSongData::year() const
+{
+    //TX_LOG    
+    return mYear;
+}
+
+
+/*!
+ Sets the song \a title, returns true if the value is new.
+*/
+bool MpSongData::setTitle( const QString &title )
+{
+    //TX_ENTRY_ARGS( "title =" << title )
+    bool change = false;
+    if ( title != mTitle ) {
+        change = true;
+        mTitle = title;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a album, returns true if the value is new.
+*/
+bool MpSongData::setAlbum( const QString &album )
+{
+    //TX_ENTRY_ARGS( "album =" << album )
+    bool change = false;
+    if ( album != mAlbum ) {
+        change = true;
+        mAlbum = album;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a artist, returns true if the value is new.
+*/
+bool MpSongData::setArtist( const QString &artist )
+{
+    //TX_ENTRY_ARGS( "artist =" << artist )
+    bool change = false;
+    if ( artist != mArtist ) {
+        change = true;
+        mArtist = artist;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a comment, returns true if the value is new.
+*/
+bool MpSongData::setComment( const QString &comment)
+{
+    //TX_ENTRY_ARGS( "comment =" << comment )
+    bool change = false;
+    if ( comment != mComment ) {
+        change = true;
+        mComment = comment;
+    }
+    //TX_EXIT
+    return change;
+}
+
+
+/*!
+ Sets the song \a composer, returns true if the value is new.
+*/
+bool MpSongData::setComposer( const QString &composer )
+{
+    //TX_ENTRY_ARGS( "composer =" << composer )
+    bool change = false;
+    if ( composer != mComposer ) {
+        change = true;
+        mComposer = composer;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a genre, returns true if the value is new.
+*/
+bool MpSongData::setGenre( const QString &genre )
+{
+    //TX_ENTRY_ARGS( "genre =" << genre )
+    bool change = false;
+    if ( genre != mGenre ) {
+        change = true;
+        mGenre = genre;
+    }
+    //TX_EXIT
+    return change;
+}
+
+
+/*!
+ Sets the song \a date, returns true if the value is new.
+*/
+bool MpSongData::setYear( int year )
+{
+    //TX_ENTRY_ARGS( "year =" << year )
+    bool change = false;
+    if ( QString::number(year) != mYear ) {
+        change = true;
+        if ( year >= 0 && year < 9999 ) {
+            mYear = QString::number(year);
+        }
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a album track, returns true if the value is new.
+*/
+bool MpSongData::setAlbumTrack( const QString &track )
+{
+    //TX_ENTRY_ARGS( "track =" << track )
+    bool change = false;
+    if ( track != mAlbumTrack ) {
+        change = true;
+        mAlbumTrack = track;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a link
+*/
+void MpSongData::setLink( const QString &link )
+{
+    //TX_ENTRY_ARGS( "Link =" << link )
+    mLink = link;
+    //TX_EXIT
+}
+
+/*!
+ Sets the song \a albumArtUri.
+*/
+void MpSongData::setAlbumArtUri( const QString &albumArtUri)
+{
+    //TX_ENTRY
+    mAlbumArt = mDefaultAlbumArt;
+    emit albumArtReady();
+    //TX_EXIT
+}
+
+
+/*!
+ Slot to handle the album art thumb.
+*/
+void MpSongData::thumbnailReady(
+        const QPixmap& pixmap,
+        void *data,
+        int id,
+        int error  )
+{
+    //TX_ENTRY
+    Q_UNUSED( data );
+
+    //TX_EXIT
+}
+
+/*!
+ Emit signal when playback information changed, such as artist, track name
+*/
+void MpSongData::commitPlaybackInfo()
+{
+    //TX_ENTRY
+    emit playbackInfoChanged();
+    //TX_EXIT
+}
+
+/*!
+ Emit signal when song detail information changed
+*/
+void MpSongData::commitSongDetailInfo()
+{
+    //TX_ENTRY
+    emit songDetailInfoChanged();
+    //TX_EXIT
+}
+
+QString MpSongData::albumArtBase64() const
+{
+    // Converts the current album art pixmap to a base64 string, and return the string.
+//    TX_ENTRY
+//    QByteArray array;
+//    QBuffer buffer(&array);
+//    buffer.open(QIODevice::WriteOnly);
+//    mAlbumArt.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format
+//    buffer.close();
+//    QByteArray base64 = array.toBase64();
+//    TX_EXIT
+//    return base64.constData();
+    return QString("");
+}
+
+void MpSongData::removeAlbumArtFile() const
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/stub/src/qsysteminfo.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Stub of QSystemInfo
+*
+*/
+
+
+#include "qsysteminfo.h"
+
+QSystemInfo::QSystemInfo( QObject *parent )
+    : QObject( parent )
+{
+    //TX_ENTRY
+    //TX_EXIT
+}
+
+QSystemInfo::~QSystemInfo()
+{
+    //TX_ENTRY
+    //TX_EXIT
+}
+
+QString QSystemInfo::currentLanguage() { return "fi"; };
+QString QSystemInfo::currentCountryCode() { return "Fi"; };
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailssharedialog/unittest_mpdetailssharedialog.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,58 @@
+#
+# 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
+CONFIG += qtestlib \
+          symbian_test \
+          hb \
+          mobility
+
+QT += webkit \
+    network \
+    xml
+
+MOBILITY += bearer systeminfo
+
+TARGET = unittest_mpdetailssharedialog
+
+TARGET.CAPABILITY = All -TCB
+
+DEPENDPATH += .
+INCLUDEPATH += ./inc \
+    ./stub/inc \
+    ../../inc \
+    ../../../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+DEFINES += SHARE_FUNC_ENABLED SHARE_PLAYER_RND
+
+# Input
+HEADERS += inc/unittest_mpdetailssharedialog.h \
+    ../../inc/mpdetailssharedialog.h \
+    ../../inc/mpsharedata.h \
+    stub/inc/mpsongdata.h \
+    stub/inc/hbmessagebox.h
+win32:{
+HEADERS += stub/inc/qsysteminfo.h
+}
+SOURCES += src/unittest_mpdetailssharedialog.cpp \
+    ../../src/mpdetailssharedialog.cpp \
+    ../../src/mpsharedata.cpp \
+    stub/src/mpsongdata.cpp \
+    stub/src/hbmessagebox.cpp
+
+win32:{
+SOURCES += stub/src/qsysteminfo.cpp
+}
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/CTCHTML.zip has changed
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/MON.dat has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/MON.sym	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,718 +0,0 @@
-CTC++ sym 5.0
-Tue Mar 16 12:54:07 2010
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpmpxdetailsframeworkwrapper.cpp
-3 1268394783
-0 0 46 0 MpMpxDetailsFrameworkWrapper::getStaticMetaObject
-0 90 0 0 ( )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpmpxdetailsframeworkwrapper.h
-0 13 46 1 staticMetaObject
-1 0 49 0 MpMpxDetailsFrameworkWrapper::metaObject
-0 90 0 0 ( )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpmpxdetailsframeworkwrapper.h
-0 25 51 1 QObject::d_ptr -> metaObject
-1 13 51 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 54 0 MpMpxDetailsFrameworkWrapper::qt_metacast
-0 90 0 0 ( const char * )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpmpxdetailsframeworkwrapper.h
-1 20 56 1 ! _clname
-2 13 56 2 0
-2 20 57 1 ! strcmp ( _clname , qt_meta_stringdata_MpMpxDetailsFrameworkWrapper )
-3 13 58 2 static_cast < void * > ( const_cast < MpMpxDetailsFrameworkWrapper * > ( this ) )
-4 13 59 1 QObject::qt_metacast ( _clname )
-3 0 62 0 MpMpxDetailsFrameworkWrapper::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpmpxdetailsframeworkwrapper.h
-3 20 65 1 _id < 0
-5 13 66 2 _id
-6 13 67 1 _id
-%69,4,7,4,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpdetailsview.cpp
-3 1268394783
-0 0 79 0 MpDetailsView::getStaticMetaObject
-0 90 0 0 ( )
-0 91 50 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\../../inc/mpdetailsview.h
-0 13 79 1 staticMetaObject
-1 0 82 0 MpDetailsView::metaObject
-0 90 0 0 ( )
-0 91 50 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\../../inc/mpdetailsview.h
-0 25 84 1 QObject::d_ptr -> metaObject
-1 13 84 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 87 0 MpDetailsView::qt_metacast
-0 90 0 0 ( const char * )
-0 91 50 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\../../inc/mpdetailsview.h
-1 20 89 1 ! _clname
-2 13 89 2 0
-2 20 90 1 ! strcmp ( _clname , qt_meta_stringdata_MpDetailsView )
-3 13 91 2 static_cast < void * > ( const_cast < MpDetailsView * > ( this ) )
-4 13 92 1 HbView::qt_metacast ( _clname )
-3 0 95 0 MpDetailsView::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 50 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\../../inc/mpdetailsview.h
-3 20 98 1 _id < 0
-5 13 99 2 _id
-4 20 100 1 _c == QMetaObject::InvokeMetaMethod
-0 1 101 2 switch ( _id )
-6 14 102 2 0
-7 12 102 3
-8 14 103 2 1
-9 12 103 3
-10 14 104 2 2
-11 12 104 3
-12 14 105 2 3
-13 12 105 3
-14 14 106 2 4
-15 12 106 3
-16 14 107 2 5
-17 12 107 3
-18 14 108 2 6
-19 12 108 3
-20 14 109 2 7
-21 12 109 3
-22 14 110 2 8
-23 12 110 3
-24 14 111 2 9
-25 12 111 3
-26 14 112 2 10
-27 12 112 3
-28 14 113 2 11
-29 12 113 3
-30 14 114 2 12
-31 12 114 3
-32 14 115 2 13
-33 12 115 3
-34 14 116 2 14
-35 12 116 3
-36 14 117 2 15
-37 12 117 3
-38 15 118 2
-39 13 122 1 _id
-4 0 126 0 MpDetailsView::command
-0 90 0 0 ( int aCommand )
-0 91 62 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\../../inc/mpdetailsview.h
-%131,5,40,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_unittest_mpdetailsview.cpp
-3 1268394783
-0 0 86 0 TestMpDetailsView::getStaticMetaObject
-0 90 0 0 ( )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-0 13 86 1 staticMetaObject
-1 0 89 0 TestMpDetailsView::metaObject
-0 90 0 0 ( )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-0 25 91 1 QObject::d_ptr -> metaObject
-1 13 91 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 94 0 TestMpDetailsView::qt_metacast
-0 90 0 0 ( const char * )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-1 20 96 1 ! _clname
-2 13 96 2 0
-2 20 97 1 ! strcmp ( _clname , qt_meta_stringdata_TestMpDetailsView )
-3 13 98 2 static_cast < void * > ( const_cast < TestMpDetailsView * > ( this ) )
-4 13 99 1 HbView::qt_metacast ( _clname )
-3 0 102 0 TestMpDetailsView::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-3 20 105 1 _id < 0
-5 13 106 2 _id
-4 20 107 1 _c == QMetaObject::InvokeMetaMethod
-0 1 108 2 switch ( _id )
-6 14 109 2 0
-7 12 109 3
-8 14 110 2 1
-9 12 110 3
-10 14 111 2 2
-11 12 111 3
-12 14 112 2 3
-13 12 112 3
-14 14 113 2 4
-15 12 113 3
-16 14 114 2 5
-17 12 114 3
-18 14 115 2 6
-19 12 115 3
-20 14 116 2 7
-21 12 116 3
-22 14 117 2 8
-23 12 117 3
-24 14 118 2 9
-25 12 118 3
-26 14 119 2 10
-27 12 119 3
-28 14 120 2 11
-29 12 120 3
-30 14 121 2 12
-31 12 121 3
-32 14 122 2 13
-33 12 122 3
-34 14 123 2 14
-35 12 123 3
-36 14 124 2 15
-37 12 124 3
-38 14 125 2 16
-39 12 125 3
-40 14 126 2 17
-41 12 126 3
-42 14 127 2 18
-43 12 127 3
-44 14 128 2 19
-45 12 128 3
-46 14 129 2 20
-47 12 129 3
-48 14 130 2 21
-49 12 130 3
-50 15 131 2
-51 13 135 1 _id
-4 0 139 0 TestMpDetailsView::back
-0 90 0 0 ( )
-0 91 41 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-5 0 145 0 TestMpDetailsView::albumArtChanged
-0 90 0 0 ( )
-0 91 42 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-6 0 151 0 TestMpDetailsView::share
-0 90 0 0 ( )
-0 91 43 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-7 0 157 0 TestMpDetailsView::webViewLoaded
-0 90 0 0 ( bool ok )
-0 91 44 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-8 0 164 0 TestMpDetailsView::playbackInfoChanged
-0 90 0 0 ( )
-0 91 45 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-9 0 170 0 TestMpDetailsView::songDetailInfoChanged
-0 90 0 0 ( )
-0 91 46 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-10 0 176 0 TestMpDetailsView::toggleDetailsGroupBox
-0 90 0 0 ( bool state )
-0 91 48 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-11 0 183 0 TestMpDetailsView::toggleInspireMeGroupBox
-0 90 0 0 ( bool state )
-0 91 49 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-12 0 190 0 TestMpDetailsView::retrieveInformationFinished
-0 90 0 0 ( QNetworkReply * reply )
-0 91 51 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-13 0 197 0 TestMpDetailsView::retrieveInformationNetworkError
-0 90 0 0 ( QNetworkReply::NetworkError error )
-0 91 52 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-14 0 204 0 TestMpDetailsView::retrieveInformationSslErrors
-0 90 0 0 ( const QList<QSslError> & error )
-0 91 53 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-15 0 211 0 TestMpDetailsView::DownloadFinished
-0 90 0 0 ( QNetworkReply * reply )
-0 91 55 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-16 0 218 0 TestMpDetailsView::addContext
-0 90 0 0 ( )
-0 91 57 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-17 0 224 0 TestMpDetailsView::close
-0 90 0 0 ( )
-0 91 58 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-18 0 230 0 TestMpDetailsView::thumbnailReady
-0 90 0 0 ( const QPixmap & pixmap , void * data , int id , int error )
-0 91 59 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\inc/unittest_mpdetailsview.h
-%235,19,52,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp
-3 1268394784
-0 0 61 0 MpDetailsView::MpDetailsView
-0 90 0 0 ( )
-0 91 54 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-0 20 82 1 mDocumentLoader
-1 20 85 1 widgetsOk
-2 20 90 2 mContainer
-0 1 115 1 else
-1 0 124 0 MpDetailsView::~MpDetailsView
-0 90 0 0 ( )
-0 91 55 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-3 20 127 1 mFrameworkWrapper
-4 20 130 1 mSoftKeyBack
-5 20 133 1 mDocumentLoader
-6 20 136 1 mManager
-7 20 139 1 mDownloadManager
-8 20 142 1 mThumbnailManager
-2 0 153 0 MpDetailsView::initializeView
-0 90 0 0 ( )
-0 91 57 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-9 20 165 1 translatorLoaded
-10 20 172 1 translatorLoaded
-3 0 230 0 MpDetailsView::activateView
-0 90 0 0 ( )
-0 91 58 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-4 0 243 0 MpDetailsView::deactivateView
-0 90 0 0 ( )
-0 91 59 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-5 0 254 0 MpDetailsView::setupMenu
-0 90 0 0 ( )
-0 91 90 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-6 0 266 0 MpDetailsView::back
-0 90 0 0 ( )
-0 91 65 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-7 0 276 0 MpDetailsView::share
-0 90 0 0 ( )
-0 91 69 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-8 0 285 0 MpDetailsView::albumArtChanged
-0 90 0 0 ( )
-0 91 66 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-11 20 292 1 ! mCompositePixmap . isNull ( )
-0 1 294 1 else
-9 0 301 0 MpDetailsView::loadSharePlayer
-0 90 0 0 ( )
-0 91 91 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-10 0 311 0 MpDetailsView::webViewLoaded
-0 90 0 0 ( bool ok )
-0 91 70 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-12 20 314 1 ok
-0 1 317 1 else
-11 0 327 0 MpDetailsView::composeAlbumCover
-0 90 0 0 ( QPixmap albumart )
-0 91 97 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-12 0 342 0 MpDetailsView::keyValues
-0 90 0 0 ( QStringList keys , QStringList values )
-0 91 98 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-13 20 346 1 keys . length ( ) != values . length ( )
-0 1 348 1 else
-14 23 349 2 i < keys . length ( )
-15 20 351 3 0 != tValue . length ( )
-0 13 358 1 str . left ( str . length ( ) - 1 )
-13 0 364 0 MpDetailsView::handleParsedXML
-0 90 0 0 ( )
-0 91 99 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-16 20 369 1 rootElement . attribute ( "type" ) == tr ( "search" )
-17 22 373 2 ! entry . isNull ( )
-18 20 375 3 entry . attribute ( "type" ) == tr ( "musictrack" )
-19 22 377 4 ! link . isNull ( )
-20 20 380 5 link . attribute ( "rel" ) == tr ( "alternate" ) && link . attribute ( "type" ) == tr ( "text/html" )
-21 21 390 1 rootElement . attribute ( "type" ) == tr ( "recommendedTracks" )
-22 22 395 2 ! entry . isNull ( ) && count<KRecommendationNum
-23 20 397 3 entry . attribute ( "type" ) == tr ( "musictrack" )
-24 22 399 4 ! link . isNull ( )
-25 20 401 5 link . attribute ( "title" ) == tr ( "albumart100" )
-1 12 403 6
-0 1 404 5 else
-26 23 416 2 i < KRecommendationNum
-27 20 421 3 mRecommendationAlbumArtsLink . at ( i ) . contains ( "http" , Qt::CaseInsensitive )
-0 1 428 1 else
-14 0 437 0 MpDetailsView::setAlbumArtUri
-0 90 0 0 ( const QString & albumArtUri , const QString & albumArtName )
-0 91 101 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-28 20 441 1 ! albumArtUri . isEmpty ( )
-29 20 443 2 id == KUndefined
-0 1 449 1 else
-15 0 460 0 MpDetailsView::RenderInspireMeGroupBox
-0 90 0 0 ( )
-0 91 102 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-30 23 463 1 i < KRecommendationNum
-16 0 487 0 MpDetailsView::recommendationAlbumArtReady
-0 90 0 0 ( )
-0 91 103 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-31 20 491 1 mAlbumArtsReadyCount == KRecommendationNum
-17 0 501 0 MpDetailsView::playbackInfoChanged
-0 90 0 0 ( )
-0 91 71 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-32 23 510 1 i < mReplys . count ( )
-33 20 512 2 reply != 0
-34 23 524 1 i < KRecommendationNum
-35 20 531 2 file . exists ( )
-36 20 532 3 file . remove ( )
-0 1 535 3 else
-0 1 538 2 else
-18 0 562 0 MpDetailsView::songDetailInfoChanged
-0 90 0 0 ( )
-0 91 72 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-19 0 597 0 MpDetailsView::toggleDetailsGroupBox
-0 90 0 0 ( bool state )
-0 91 75 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-37 20 600 1 ! mInspireMeGroupBox -> isCollapsed ( )
-20 0 609 0 MpDetailsView::toggleInspireMeGroupBox
-0 90 0 0 ( bool state )
-0 91 76 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-38 20 612 1 ! mSongDetailsGroupBox -> isCollapsed ( )
-21 0 621 0 MpDetailsView::constructRequest
-0 90 0 0 ( QString & uri )
-0 91 93 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-22 0 647 0 MpDetailsView::retrieveInformation
-0 90 0 0 ( const QString & urlEncoded )
-0 91 95 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-23 0 662 0 MpDetailsView::retrieveInformationFinished
-0 90 0 0 ( QNetworkReply * reply )
-0 91 78 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-39 20 670 1 reply -> error ( ) == QNetworkReply::NoError
-40 20 673 2 parsingSuccess
-0 1 675 2 else
-0 1 680 1 else
-24 0 691 0 MpDetailsView::retrieveInformationNetworkError
-0 90 0 0 ( QNetworkReply::NetworkError error )
-0 91 79 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-25 0 701 0 MpDetailsView::retrieveInformationSslErrors
-0 90 0 0 ( const QList<QSslError> & error )
-0 91 80 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-26 0 711 0 MpDetailsView::DownloadFinished
-0 90 0 0 ( QNetworkReply * reply )
-0 91 82 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-41 20 714 1 reply -> error ( ) == QNetworkReply::NoError
-42 20 720 2 fileName . isEmpty ( )
-0 1 722 2 else
-43 20 723 3 ! file . open ( QIODevice::ReadWrite )
-0 1 725 3 else
-0 1 734 1 else
-27 0 746 0 MpDetailsView::thumbnailReady
-0 90 0 0 ( const QPixmap & pixmap , void * data , int id , int error )
-0 91 84 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-44 20 756 1 error == 0
-0 1 761 1 else
-28 0 773 0 MpDetailsView::addContext
-0 90 0 0 ( )
-0 91 86 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-29 0 782 0 MpDetailsView::close
-0 90 0 0 ( )
-0 91 87 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
-%787,30,2,45,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpsongdata.cpp
-3 1268394786
-0 0 72 0 MpSongData::getStaticMetaObject
-0 90 0 0 ( )
-0 91 33 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpsongdata.h
-0 13 72 1 staticMetaObject
-1 0 75 0 MpSongData::metaObject
-0 90 0 0 ( )
-0 91 33 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpsongdata.h
-0 25 77 1 QObject::d_ptr -> metaObject
-1 13 77 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 80 0 MpSongData::qt_metacast
-0 90 0 0 ( const char * )
-0 91 33 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpsongdata.h
-1 20 82 1 ! _clname
-2 13 82 2 0
-2 20 83 1 ! strcmp ( _clname , qt_meta_stringdata_MpSongData )
-3 13 84 2 static_cast < void * > ( const_cast < MpSongData * > ( this ) )
-4 13 85 1 QObject::qt_metacast ( _clname )
-3 0 88 0 MpSongData::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 33 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpsongdata.h
-3 20 91 1 _id < 0
-5 13 92 2 _id
-4 20 93 1 _c == QMetaObject::InvokeMetaMethod
-0 1 94 2 switch ( _id )
-6 14 95 2 0
-7 12 95 3
-8 14 96 2 1
-9 12 96 3
-10 14 97 2 2
-11 12 97 3
-12 14 98 2 3
-13 12 98 3
-14 14 99 2 4
-5 20 100 4 _a [ 0 ]
-15 12 100 3
-16 14 101 2 5
-6 20 102 4 _a [ 0 ]
-17 12 102 3
-18 14 103 2 6
-7 20 104 4 _a [ 0 ]
-19 12 104 3
-20 14 105 2 7
-8 20 106 4 _a [ 0 ]
-21 12 106 3
-22 14 107 2 8
-9 20 108 4 _a [ 0 ]
-23 12 108 3
-24 14 109 2 9
-25 12 109 3
-26 14 110 2 10
-10 20 111 4 _a [ 0 ]
-27 12 111 3
-28 14 112 2 11
-11 20 113 4 _a [ 0 ]
-29 12 113 3
-30 14 114 2 12
-12 20 115 4 _a [ 0 ]
-31 12 115 3
-32 14 116 2 13
-13 20 117 4 _a [ 0 ]
-33 12 117 3
-34 14 118 2 14
-14 20 119 4 _a [ 0 ]
-35 12 119 3
-36 15 120 2
-37 13 124 1 _id
-4 0 128 0 MpSongData::albumArtReady
-0 90 0 0 ( )
-0 91 72 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpsongdata.h
-5 0 134 0 MpSongData::playbackInfoChanged
-0 90 0 0 ( )
-0 91 73 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpsongdata.h
-6 0 140 0 MpSongData::songDetailInfoChanged
-0 90 0 0 ( )
-0 91 74 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/mpsongdata.h
-%144,7,38,15,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_thumbnailmanager_qt.cpp
-3 1268394787
-0 0 50 0 ThumbnailManager::getStaticMetaObject
-0 90 0 0 ( )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/thumbnailmanager_qt.h
-0 13 50 1 staticMetaObject
-1 0 53 0 ThumbnailManager::metaObject
-0 90 0 0 ( )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/thumbnailmanager_qt.h
-0 25 55 1 QObject::d_ptr -> metaObject
-1 13 55 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 58 0 ThumbnailManager::qt_metacast
-0 90 0 0 ( const char * )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/thumbnailmanager_qt.h
-1 20 60 1 ! _clname
-2 13 60 2 0
-2 20 61 1 ! strcmp ( _clname , qt_meta_stringdata_ThumbnailManager )
-3 13 62 2 static_cast < void * > ( const_cast < ThumbnailManager * > ( this ) )
-4 13 63 1 QObject::qt_metacast ( _clname )
-3 0 66 0 ThumbnailManager::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/thumbnailmanager_qt.h
-3 20 69 1 _id < 0
-5 13 70 2 _id
-4 20 71 1 _c == QMetaObject::InvokeMetaMethod
-0 1 72 2 switch ( _id )
-6 14 73 2 0
-7 12 73 3
-8 15 74 2
-9 13 78 1 _id
-4 0 82 0 ThumbnailManager::thumbnailReady
-0 90 0 0 ( QPixmap , void * , int , int )
-0 91 118 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\stub/inc/thumbnailmanager_qt.h
-%87,5,10,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/qrc_mpdetailsviewresources.cpp
-3 1268394787
-0 0 10532 0 qInitResources_mpdetailsviewresources
-0 90 0 0 ( )
-0 91 10532 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\qrc_mpdetailsviewresources.cpp
-0 13 10536 1 1
-1 0 10541 0 qCleanupResources_mpdetailsviewresources
-0 90 0 0 ( )
-0 91 10541 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\qrc_mpdetailsviewresources.cpp
-1 13 10545 1 1
-2 0 10548 0 qCleanupResources_mpdetailsviewresources__dest_class__::qCleanupResources_mpdetailsviewresources__dest_class__
-0 90 0 0 ( )
-0 91 10548 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\qrc_mpdetailsviewresources.cpp
-3 0 10548 0 qCleanupResources_mpdetailsviewresources__dest_class__::~qCleanupResources_mpdetailsviewresources__dest_class__
-0 90 0 0 ( )
-0 91 10548 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\qrc_mpdetailsviewresources.cpp
-%10549,4,2,0,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
-3 1268394789
-0 0 25 0 MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper
-0 90 0 0 ( QObject * parent = 0 )
-0 91 34 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpmpxdetailsframeworkwrapper.h
-1 0 36 0 MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper
-0 90 0 0 ( )
-0 91 35 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpmpxdetailsframeworkwrapper.h
-2 0 46 0 MpMpxDetailsFrameworkWrapper::songData
-0 90 0 0 ( )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpmpxdetailsframeworkwrapper.h
-0 13 48 1 iSongData
-3 0 54 0 MpMpxDetailsFrameworkWrapper::retrieveSong
-0 90 0 0 ( )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpmpxdetailsframeworkwrapper.h
-%60,4,1,0,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp
-3 1268394789
-0 0 62 0 MpSongData::MpSongData
-0 90 0 0 ( QObject * parent = 0 )
-0 91 36 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-1 0 88 0 MpSongData::~MpSongData
-0 90 0 0 ( )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-0 20 91 1 mThumbnailManager
-2 0 100 0 MpSongData::albumArt
-0 90 0 0 ( QPixmap & pixmap )
-0 91 64 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-1 20 103 1 ! mAlbumArt . isNull ( )
-0 1 106 1 else
-3 0 116 0 MpSongData::title
-0 90 0 0 ( )
-0 91 60 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-0 13 119 1 mTitle
-4 0 125 0 MpSongData::album
-0 90 0 0 ( )
-0 91 61 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-1 13 128 1 mAlbum
-5 0 134 0 MpSongData::artist
-0 90 0 0 ( )
-0 91 62 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-2 13 137 1 mArtist
-6 0 143 0 MpSongData::comment
-0 90 0 0 ( )
-0 91 63 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-3 13 146 1 mComment
-7 0 152 0 MpSongData::composer
-0 90 0 0 ( )
-0 91 67 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-4 13 155 1 mComposer
-8 0 162 0 MpSongData::genre
-0 90 0 0 ( )
-0 91 66 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-5 13 165 1 mGenre
-9 0 172 0 MpSongData::albumTrack
-0 90 0 0 ( )
-0 91 68 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-6 13 175 1 mAlbumTrack
-10 0 181 0 MpSongData::link
-0 90 0 0 ( )
-0 91 69 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-7 13 184 1 mLink
-11 0 190 0 MpSongData::year
-0 90 0 0 ( )
-0 91 65 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-8 13 193 1 mYear
-12 0 200 0 MpSongData::setTitle
-0 90 0 0 ( const QString & title )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-2 20 204 1 title != mTitle
-9 13 209 1 change
-13 0 215 0 MpSongData::setAlbum
-0 90 0 0 ( const QString & album )
-0 91 40 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-3 20 219 1 album != mAlbum
-10 13 224 1 change
-14 0 230 0 MpSongData::setArtist
-0 90 0 0 ( const QString & artist )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-4 20 234 1 artist != mArtist
-11 13 239 1 change
-15 0 245 0 MpSongData::setComment
-0 90 0 0 ( const QString & comment )
-0 91 42 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-5 20 249 1 comment != mComment
-12 13 254 1 change
-16 0 261 0 MpSongData::setComposer
-0 90 0 0 ( const QString & compoer )
-0 91 46 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-6 20 265 1 composer != mComposer
-13 13 270 1 change
-17 0 276 0 MpSongData::setGenre
-0 90 0 0 ( const QString & genre )
-0 91 45 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-7 20 280 1 genre != mGenre
-14 13 285 1 change
-18 0 292 0 MpSongData::setYear
-0 90 0 0 ( int date )
-0 91 44 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-8 20 296 1 QString::number ( year ) != mYear
-9 20 298 2 year >= 0 && year < 9999
-15 13 303 1 change
-19 0 309 0 MpSongData::setAlbumTrack
-0 90 0 0 ( const QString & albumtrack )
-0 91 47 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-10 20 313 1 track != mAlbumTrack
-16 13 318 1 change
-20 0 324 0 MpSongData::setLink
-0 90 0 0 ( const QString & link )
-0 91 48 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-21 0 334 0 MpSongData::setAlbumArtUri
-0 90 0 0 ( const QString & albumArtUri )
-0 91 43 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-11 20 337 1 ! albumArtUri . isEmpty ( )
-12 20 339 2 mReqId != KUndefined
-13 20 343 2 ok
-14 20 345 3 mReqId == KUndefined
-0 1 352 1 else
-22 0 364 0 MpSongData::thumbnailReady
-0 90 0 0 ( const QPixmap & pixmap , void * data , int id , int error )
-0 91 56 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-15 20 372 1 error == 0 && mReqId == id
-0 1 377 1 else
-23 0 389 0 MpSongData::commitPlaybackInfo
-0 90 0 0 ( )
-0 91 51 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-24 0 399 0 MpSongData::commitSongDetailInfo
-0 90 0 0 ( )
-0 91 53 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h
-%405,25,17,16,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp
-3 1268394789
-0 0 62 0 main
-0 90 0 0 ( int argc , char * argv [ ] )
-0 91 62 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsview\src\unittest_mpdetailsview.cpp
-0 13 76 1 res
-1 0 80 0 TestMpDetailsView::TestMpDetailsView
-0 90 0 0 ( )
-0 91 36 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-2 0 87 0 TestMpDetailsView::~TestMpDetailsView
-0 90 0 0 ( )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-3 0 95 0 TestMpDetailsView::initTestCase
-0 90 0 0 ( )
-0 91 62 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-4 0 103 0 TestMpDetailsView::cleanupTestCase
-0 90 0 0 ( )
-0 91 63 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-5 0 111 0 TestMpDetailsView::init
-0 90 0 0 ( )
-0 91 64 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-6 0 120 0 TestMpDetailsView::cleanup
-0 90 0 0 ( )
-0 91 65 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-7 0 126 0 TestMpDetailsView::testactivateView
-0 90 0 0 ( )
-0 91 69 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-0 1 129 1 do
-0 20 129 2 ! QTest::qVerify ( ( mTest -> mActivated == true ) , "mTest->mActivated==true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsview\\src\\unittest_mpdetailsview.cpp" , 129 )
-1 13 129 3
-0 1 129 1 while ( 0 )
-8 0 132 0 TestMpDetailsView::testdeactivateView
-0 90 0 0 ( )
-0 91 70 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-0 1 135 1 do
-1 20 135 2 ! QTest::qVerify ( ( mTest -> mActivated == false ) , "mTest->mActivated==false" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsview\\src\\unittest_mpdetailsview.cpp" , 135 )
-2 13 135 3
-0 1 135 1 while ( 0 )
-9 0 138 0 TestMpDetailsView::testbackSlot
-0 90 0 0 ( )
-0 91 71 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h
-0 1 141 1 do
-2 20 141 2 ! QTest::qVerify ( ( spy . isValid ( ) ) , "spy.isValid()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsview\\src\\unittest_mpdetailsview.cpp" , 141 )
-3 13 141 3
-0 1 141 1 while ( 0 )
-0 1 142 1 do
-3 20 142 2 ! QTest::qCompare ( spy . count ( ) , 0 , "spy.count()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsview\\src\\unittest_mpdetailsview.cpp" , 142 )
-4 13 142 3
-0 1 142 1 while ( 0 )
-0 1 145 1 do
-4 20 145 2 ! QTest::qCompare ( spy . count ( ) , 1 , "spy.count()" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsview\\src\\unittest_mpdetailsview.cpp" , 145 )
-5 13 145 3
-0 1 145 1 while ( 0 )
-%148,10,6,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp
-3 1268394790
-0 0 26 0 ThumbnailManager::getInitCounter
-0 90 0 0 ( )
-0 91 103 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-0 13 28 1 gInitCounter
-1 0 34 0 ThumbnailManager::resetInitCounter
-0 90 0 0 ( )
-0 91 104 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-2 0 42 0 ThumbnailManager::ThumbnailManager
-0 90 0 0 ( QObject * parentPtr = 0 )
-0 91 107 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-3 0 54 0 ThumbnailManager::~ThumbnailManager
-0 90 0 0 ( )
-0 91 108 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-4 0 62 0 ThumbnailManager::setMode
-0 90 0 0 ( ThumbnailMode mode )
-0 91 109 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-1 13 65 1 true
-5 0 71 0 ThumbnailManager::setQualityPreference
-0 90 0 0 ( QualityPreference qualityPreference )
-0 91 110 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-2 13 75 1 true
-6 0 81 0 ThumbnailManager::setThumbnailSize
-0 90 0 0 ( ThumbnailSize thumbnailSize )
-0 91 111 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-3 13 84 1 true
-7 0 90 0 ThumbnailManager::getThumbnail
-0 90 0 0 ( const QString & fileName , void * clientData = 0 , int priority = tnmWrapperPriorityIdle )
-0 91 112 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-0 20 96 1 clientData
-1 20 104 1 mGetThumbFails
-4 13 105 2 - 1
-5 13 109 1 mThumbnailReqCounter
-8 0 115 0 ThumbnailManager::cancelRequest
-0 90 0 0 ( int id )
-0 91 114 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h
-6 13 119 1 true
-%120,9,7,2,0,0
-END OF SYMBOLFILE
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/UT_detailsview.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/UT_detailsview.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -1,7 +1,18 @@
-; unittest_mpmpxpbframeworkwrapper_template.pkg generated by qmake at 2010-03-07T16:15:41
-; This file is generated by qmake and should not be modified by the user
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
-
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
 ; Language
 &EN
 
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/UT_detailsview.sisx has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/ctcdata.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,652 +0,0 @@
-
-
-CTCRTS: Write coverage data to file 2010-03-12 13:39:14
-
-CTCDATA:<START:1j,1M,1,4,2,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,
-
-CTCDATA:1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l
-
-CTCDATA:,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1p,1q,1b,1X,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1q,1d,1r,1n,1t,1q,1b,1d,1r,k,1b,1o,1o,1S,w,1U,1l,1
-
-CTCDATA:t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r
-
-CTCDATA:,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,
-
-CTCDATA:1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,1,0,1,0,0,0,1,0,1,0,1j,1M,1,A,6,5,0
-
-CTCDATA:,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,
-
-CTCDATA:1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s
-
-CTCDATA:,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq3QT,1,1,1,1,1,4,4,1,1,1,0,1,1,1,1,4,4,1,1,1,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,1,1,1,1,1,1j,1M,1,J,q,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1
-
-CTCDATA:q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1
-
-CTCDATA:s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1l,1n,1b,1X,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,
-
-CTCDATA:1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U
-
-CTCDATA:,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,u,0,E,1,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,u,0,0,0,1,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,4,4,4,1,1,
-
-CTCDATA:1,1,1,1,0,D,0,0,0,1,D,u,0,0,D,0,18,1M,1,U,2,j,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1
-
-CTCDATA:k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d
-
-CTCDATA:,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,
-
-CTCDATA:1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1
-
-CTCDATA:G,k,1c,1Z,1s,1Nq3QO,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1a,1M,1,5,e,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S
-
-CTCDATA:,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1
-
-CTCDATA:f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,o,0,1,1,0,0,0,0,1,0,o,0
-
-CTCDATA:,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,1,0,0,0,0,1,o,0,0,1,0,1u,1M,1,4,1,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1
-
-CTCDATA:x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z
-
-CTCDATA:,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c
-
-CTCDATA:,1Z,1s,1Nq3QT,4,4,4,1,4,4,0,1,4,1c,1M,1,P,H,G,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1
-
-CTCDATA:m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,
-
-CTCDATA:1t,1a,l,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1
-
-CTCDATA:r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QT,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,1l,1M,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k
-
-CTCDATA:,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k
-
-CTCDATA:,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QU,0,0,8,4,0,8,8
-
-CTCDATA:,0,0,0,0,8,4,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,1g,1M,1,5,A,5,0,0,1S,w,l,
-
-CTCDATA:1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r
-
-CTCDATA:,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,
-
-CTCDATA:1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,0,G,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,1X,1M,1,7,c,F,0,
-
-CTCDATA:0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1
-
-CTCDATA:S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QQ,0,G,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:1v,1S,1,D,q,p,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,
-
-CTCDATA:1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1t,1m,1h,
-
-CTCDATA:1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v
-
-CTCDATA:,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq35R,1,1,1,1,1,6,6,1,1,1,1,1,1,0,1,1,1,1,6,6,1,1,1,1,1,1,1,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1v,1S,1,4,S,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,
-
-CTCDATA:1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1l,1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,1E,0,K,0,0,0,0,0,1E,0,0,0,0,1,1,1,1
-
-CTCDATA:,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,0,K,0,0,0,0,K,1E,0,0,K,0,1E,1S,1,B,9,
-
-CTCDATA:3,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq35O,6,6,1,4,5,5,1,0,0,0,0,6,6,1,4,5,5,0,0,0,0,0,1,1,1,1,3,3,1,
-
-CTCDATA:0,0,1,3,1,0,1,4,1l,1S,1,7,0,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d
-
-CTCDATA:,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:s,1t,1a,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o
-
-CTCDATA:,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,
-
-CTCDATA:1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35R,8,8,
-
-CTCDATA:1,2,1,6,1,8,8,1,2,1,6,1,1g,1S,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w
-
-CTCDATA:,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,2,0,0,1
-
-CTCDATA:,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1m,1S,1,5,E,5,0,0,1
-
-CTCDATA:S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1
-
-CTCDATA:u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1
-
-CTCDATA:s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h
-
-CTCDATA:,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,3,0,1,1,0,0,0,0,1,0,3,0,0,0,0,1,
-
-CTCDATA:1,0,0,0,0,0,1,0,0,0,0,1,3,0,0,1,0,2D,1b,1,T,V,h,0,0,1S,w,l,1l,1t,1r,1h
-
-CTCDATA:,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t
-
-CTCDATA:,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,
-
-CTCDATA:1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,
-
-CTCDATA:1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1
-
-CTCDATA:j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1
-
-CTCDATA:d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq366,Q,Q,Q,0,Q,Q,Q,
-
-CTCDATA:4,4,0,1,1,1,1,1,Y,Y,1,1,1,1,1,1,Q,R,1,1,0,R,0,0,0,0,0,0,0,0,0,0,0,1,1,
-
-CTCDATA:1,1,Y,Y,1,1,1,1,1,1,4,R,1,1,0,R,Q,Q,Q,0,Q,Q,Q,4,4,0,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,M,0,0,O,O,O,0,O,O,N,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,M,0,0,1,Q,P,P,P,Q,P,P,P,P,P,Q,2,2,2,0,2,2,3,1,1,0,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,Q,Q,Q,Q,Q,4,4,4,Q,1,2,2,2,1,2,2,2,2,2,1,2D,1b,1,4,U,
-
-CTCDATA:5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1l,1n
-
-CTCDATA:,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq363,0,1P,0,N,0,0,0,0,0,1P,0,0,0,0,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,0,N,0,0,0,0,N,1P,0,0,N,0,1P,1b,1,E,8,D,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l
-
-CTCDATA:,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,
-
-CTCDATA:1Z,1o,1o,1d,1q,1X,1o,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,
-
-CTCDATA:1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1
-
-CTCDATA:k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d
-
-CTCDATA:,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,
-
-CTCDATA:1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq4iQ,Y,Y,X,X,Y,X,1,1,
-
-CTCDATA:1,R,2f,1,1,1,Y,Y,X,X,Y,X,1,1,1,Q,0,1,1,1,0,0,0,0,1,2f,0,0,X,1,O,O,O,P,
-
-CTCDATA:P,O,O,O,O,O,Q,0,Q,2,2,2,1,1,2,2,2,2,2,0,1z,1b,1,V,A,2,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1
-
-CTCDATA:b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,
-
-CTCDATA:l,1l,1o,1w,1o,1k,1Z,1x,1a,1Z,1b,1j,1t,1s,1h,1k,1h,1s,1x,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G
-
-CTCDATA:,k,1c,1Z,1s,1Nq366,X,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,Y,0,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,X,0,1,0,0,0,0,0,0,Y,X,X,0,1,1x,1b,1,D,2,0,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z
-
-CTCDATA:,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,
-
-CTCDATA:1o,1w,1o,1k,1Z,1x,1d,1q,1l,1Z,1m,1Z,1f,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,
-
-CTCDATA:1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1
-
-CTCDATA:U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q
-
-CTCDATA:,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s
-
-CTCDATA:,1Nq367,X,0,0,0,0,0,0,0,0,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1q,1b,
-
-CTCDATA:1,7,3,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,
-
-CTCDATA:1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l
-
-CTCDATA:,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1r,1n,1t,1q,1b,1d,k,1b,1o,1o,1S,w,1
-
-CTCDATA:U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,
-
-CTCDATA:1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36A,X,0,0,0,0,1,0,X,0,0,0,0,1,0,0,0,0,1r,1b,1,P,H,B,0,0,1S
-
-CTCDATA:,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,
-
-CTCDATA:1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,
-
-CTCDATA:1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1
-
-CTCDATA:l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b
-
-CTCDATA:,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1N
-
-CTCDATA:q367,Y,X,0,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0,Q,0,P,Q,Y,X,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,Q,0,P,Q,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0
-
-CTCDATA:,N,N,N,N,O,E,Q,N,N,0,0,3,3,3,3,2,C,0,3,3,0,1N,1b,1,4,1,0,0,0,1S,w,l,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1
-
-CTCDATA:b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,
-
-CTCDATA:1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,
-
-CTCDATA:1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,
-
-CTCDATA:1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq362,Y,X,1,1,Y,X,0,1,1,1
-
-CTCDATA:m,1b,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1
-
-CTCDATA:o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d
-
-CTCDATA:,1q,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq362,0,0,0,0,Q,P,Q,0,0,0,0,Q,P,Q,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1d,1J,1,d,k,j,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1
-
-CTCDATA:s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3ia,1,1,1,1,1,X,Y,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,X,Y,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1d,1J,1,5,1K,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,
-
-CTCDATA:1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b
-
-CTCDATA:,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,
-
-CTCDATA:1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,5s,0,1a,2,0,0,0,0,2,0,5
-
-CTCDATA:s,0,0,0,0,0,0,1,1,1,1,V,V,V,V,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,0,1a,0,0,0,0,1a,5s,0,0,1a,0,15,1J,1,P,H,G,0,0,1S,w,l
-
-CTCDATA:,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b
-
-CTCDATA:,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36s,X,X,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,1,2,0,3,2,1,1,X,X,
-
-CTCDATA:2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,1,1,0,0,0,0,0,0,0,0,0,2,2,2,
-
-CTCDATA:2,2,2,1,2,X,0,1,1,1,1,1,1,1,1,1,2,1,2,1,1,0,2,1,1,1,1,1,1,0,0,1,1,1,0,
-
-CTCDATA:1,1,1i,1J,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1s,1t,1a,l,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,
-
-CTCDATA:1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,
-
-CTCDATA:1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U
-
-CTCDATA:,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,
-
-CTCDATA:k,1c,1Z,1s,1Nq36v,1,1,X,X,0,X,X,2,1,0,1,X,X,0,0,0,0,0,1,0,X,X,1,1,1,0,
-
-CTCDATA:1,2,1,1d,1J,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1
-
-CTCDATA:o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,
-
-CTCDATA:1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,
-
-CTCDATA:1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l
-
-CTCDATA:,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z
-
-CTCDATA:,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1
-
-CTCDATA:s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,
-
-CTCDATA:1Nq36s,0,15,0,2,2,0,0,0,0,2,0,15,0,0,0,0,2,2,0,2,0,0,0,0,2,15,0,0,2,0,
-
-CTCDATA:1U,1J,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,
-
-CTCDATA:1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,
-
-CTCDATA:1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o
-
-CTCDATA:,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1
-
-CTCDATA:f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,f,0,2,4,1,1,0,0,0,0,4,1,
-
-CTCDATA:1,0,f,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,f,0,0,2,0,0,0,0,0,0,0,0,0,0,0,>
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/ctcerr.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5167 +0,0 @@
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/iRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/iepoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsvie-JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32ins/mpdetailsviewplugin/src/mpdetailsview.cpp
-
-gins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_unittest_mpdetailsview.cpp
-
-/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5428.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3352.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5728.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3156.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-824.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4708.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/qrc_mpdetailsviewresources.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-6060.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5080.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2484.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5944.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3024.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpdetailsview{000a0000}[e0b6d7d1].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtWebKit.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtXml.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[38]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[39]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[40]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[42]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[43]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[45]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[46]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[47]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[48]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[50]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[51]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[52]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[53]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[54]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[55]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[57]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[58]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5012.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-444.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpdetailsview.cpp
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5296.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_unittest_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_unittest_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_unittest_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3032.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3648.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-6112.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4948.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/qrc_mpdetailsviewresources.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5240.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5464.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4664.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1984.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3444.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpdetailsview{000a0000}[e0b6d7d1].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtWebKit.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtXml.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[38]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[39]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[40]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[42]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[43]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[45]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[46]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[47]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[48]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[50]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[51]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[52]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[53]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[54]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[55]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[57]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[58]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-264.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_unittest_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_unittest_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_unittest_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3648.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4844.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpdetailsview.cpp
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4740.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5940.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5904.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-6080.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/qrc_mpdetailsviewresources.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3100.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1648.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3916.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5884.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4380.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpdetailsview{000a0000}[e0b6d7d1].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtWebKit.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtXml.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[38]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[39]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[40]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[42]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[43]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[45]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[46]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[47]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[48]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[50]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[51]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[52]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[53]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[54]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[55]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[57]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[58]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-1044.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp
-
-gins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_unittest_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4396.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3996.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5464.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5756.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2364.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/moc_thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2728.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/qrc_mpdetailsviewresources.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/qrc_mpdetailsviewresources.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5280.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5384.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4232.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/mpsongdata.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5904.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_WEBKIT_LIB
-argv[48]: -DQT_SVG_LIB
-argv[49]: -DQT_XML_LIB
-argv[50]: -DQT_GUI_LIB
-argv[51]: -DQT_NETWORK_LIB
-argv[52]: -DQT_CORE_LIB
-argv[53]: -D__MARM_ARMV5__
-argv[54]: -D__ARMCC_2__
-argv[55]: -D__ARMCC_2_2__
-argv[56]: -D__EXE__
-argv[57]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[58]: --preinclude
-argv[59]: Z:/epoc32/include/rvct/rvct.h
-argv[60]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[61]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[62]: -JZ:/epoc32/include/mw/QtCore
-argv[63]: -JZ:/epoc32/include/mw/QtNetwork
-argv[64]: -JZ:/epoc32/include/mw/QtGui
-argv[65]: -JZ:/epoc32/include/mw/QtXml
-argv[66]: -JZ:/epoc32/include/mw/QtSvg
-argv[67]: -JZ:/epoc32/include/mw/QtWebKit
-argv[68]: -JZ:/epoc32/include/mw
-argv[69]: -JZ:/epoc32/include/mw/QtTest
-argv[70]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[71]: -JZ:/epoc32/include
-argv[72]: -JZ:/epoc32/include/stdapis
-argv[73]: -JZ:/epoc32/include/stdapis/sys
-argv[74]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc
-argv[75]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[76]: -JZ:/musicplayer/inc
-argv[77]: -JZ:/epoc32/include/platform/mw
-argv[78]: -JZ:/epoc32/include/platform
-argv[79]: -JZ:/epoc32/include/app
-argv[80]: -JZ:/epoc32/include/platform/app
-argv[81]: -JZ:/epoc32/include/platform/loc
-argv[82]: -JZ:/epoc32/include/platform/mw/loc
-argv[83]: -JZ:/epoc32/include/platform/app/loc
-argv[84]: -JZ:/epoc32/include/platform/loc/sc
-argv[85]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[86]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[87]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[88]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[89]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[90]: -JZ:/epoc32/include/mw/QtXmlPatterns
-argv[91]: -JZ:/epoc32/include/mw/qtwebkit
-argv[92]: -JZ:/epoc32/include/mw/qtsvg
-argv[93]: -JZ:/epoc32/include/mw/qtxml
-argv[94]: -JZ:/epoc32/include/mw/qtgui
-argv[95]: -JZ:/epoc32/include/mw/qtnetwork
-argv[96]: -JZ:/epoc32/include/mw/qtcore
-argv[97]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview
-argv[98]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[99]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc
-argv[100]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src
-argv[101]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[102]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src
-argv[103]: -JZ:/epoc32/include
-argv[104]: -JZ:/epoc32/include/stdapis
-argv[105]: --depend_format=unix
-argv[106]: --depend
-argv[107]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[108]: -o
-argv[109]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[110]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2508.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpdetailsview{000a0000}[e0b6d7d1].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpdetailsview.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpdetailsview/c_01737eaf1f968da1/unittest_mpdetailsview_exe/armv5/udeb/unittest_mpdetailsview_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtWebKit.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtXml.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[38]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[39]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[40]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[42]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[43]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[45]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[46]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[47]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[48]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[50]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[51]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[52]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[53]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[54]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[55]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[57]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[58]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5076.rsp
-*** CTC++/ctcagent command status: 0
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -40,24 +40,7 @@
 signals:
     void back ();    
     void albumArtChanged();
-    void share();
-    void webViewLoaded( bool ok );
-    void playbackInfoChanged();
-    void songDetailInfoChanged();
-    
-    void toggleDetailsGroupBox( bool state );
-    void toggleInspireMeGroupBox( bool state );
-      
-    void retrieveInformationFinished( QNetworkReply* reply );
-    void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
-    void retrieveInformationSslErrors( const QList<QSslError> &error );
-    
-    void DownloadFinished( QNetworkReply* reply );
-    
-    void addContext();
-    void close();
-    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
-
+ 
 public slots:
     void initTestCase();
     void cleanupTestCase();
@@ -69,6 +52,14 @@
     void testactivateView();
     void testdeactivateView();
     void testbackSlot();
+    void testAlbumArtChanged();
+    void testHandleNetworkError();
+    void testCanQueryRecommendations();
+    void testCanQuerySharePlayerLink();
+    void testHandlePlaybackInfoChanged();
+    void testClearInspireMe();
+    void testHandleDetailsGroupBoxToggled();
+    void testHandleInspireMeGroupBoxToggled();
     
 private:
     MpDetailsView *mTest;
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/profile.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1094 +0,0 @@
-*****************************************************************************
-*           CTC++, Test Coverage Analyzer for C/C++, Version 6.5.5          *
-*                                                                           *
-*                         EXECUTION PROFILE LISTING                         *
-*                                                                           *
-*                    Copyright (c) 1993-2009 Testwell Oy                    *
-*****************************************************************************
-
-
-Symbol file(s) used   : MON.sym (Fri Mar 12 15:14:36 2010)
-Data file(s) used     : MON.dat (Fri Mar 12 15:56:49 2010)
-Listing produced at   : Fri Mar 12 16:01:10 2010
-Coverage view         : As instrumented
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpmpxdetailsframeworkwrapper.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    46 FUNCTION MpMpxDetailsFrameworkWrapper::getStaticMetaObject()
-         0            -    46 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpMpxDetailsFrameworkWrapper::getStaticMetaObject()
------------------------------------------------------------------------------
-
-         0          0 -    49 FUNCTION MpMpxDetailsFrameworkWrapper::metaObject()
-         0          0 -    51 ternary-?: QObject::d_ptr -> metaObject
-         0            -    51 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER   0 % (  0/  4) of FUNCTION MpMpxDetailsFrameworkWrapper::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    54 FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacast()
-         0          0 -    56 if (! _clname)
-         0            -    56   return 0
-         0          0 -    57 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    58   return static_cast < void * > ( const_cast <..
-         0            -    59 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacast()
------------------------------------------------------------------------------
-
-         0          0 -    62 FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacall()
-         0          0 -    65 if (_id < 0)
-         0            -    66   return _id
-         0            -    67 return _id
-
-***TER   0 % (  0/  5) of FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacall()
------------------------------------------------------------------------------
-
-
-***TER   0 % (  0/ 19) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpmpxdetailsframeworkwrapper.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpdetailsview.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    79 FUNCTION MpDetailsView::getStaticMetaObject()
-         0            -    79 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpDetailsView::getStaticMetaObject()
------------------------------------------------------------------------------
-
-       200          0      82 FUNCTION MpDetailsView::metaObject()
-         0        200 -    84 ternary-?: QObject::d_ptr -> metaObject
-       200                 84 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION MpDetailsView::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    87 FUNCTION MpDetailsView::qt_metacast()
-         0          0 -    89 if (! _clname)
-         0            -    89   return 0
-         0          0 -    90 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    91   return static_cast < void * > ( const_cast <..
-         0            -    92 return HbView::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpDetailsView::qt_metacast()
------------------------------------------------------------------------------
-
-         4          0      95 FUNCTION MpDetailsView::qt_metacall()
-         0          4 -    98 if (_id < 0)
-         0            -    99   return _id
-         4          0 -   100 if (_c == QMetaObject::InvokeMetaMethod)
-                          101   switch ( _id )
-         0            -   102   case 0:
-         0            -   102     break
-         4                103   case 1:
-         4                103     break
-         0            -   104   case 2:
-         0            -   104     break
-         0            -   105   case 3:
-         0            -   105     break
-         0            -   106   case 4:
-         0            -   106     break
-         0            -   107   case 5:
-         0            -   107     break
-         0            -   108   case 6:
-         0            -   108     break
-         0            -   109   case 7:
-         0            -   109     break
-         0            -   110   case 8:
-         0            -   110     break
-         0            -   111   case 9:
-         0            -   111     break
-         0            -   112   case 10:
-         0            -   112     break
-         0            -   113   case 11:
-         0            -   113     break
-         0            -   114   case 12:
-         0            -   114     break
-         0            -   115   case 13:
-         0            -   115     break
-         0            -   116   case 14:
-         0            -   116     break
-         0            -   117   case 15:
-         0            -   117     break
-         0            -   118   default:
-         4                122 return _id
-
-***TER  15 % (  6/ 40) of FUNCTION MpDetailsView::qt_metacall()
------------------------------------------------------------------------------
-
-         4          4     126 FUNCTION MpDetailsView::command()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::command()
------------------------------------------------------------------------------
-
-
-***TER  18 % ( 10/ 55) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpdetailsview.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_unittest_mpdetailsview.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    86 FUNCTION TestMpDetailsView::getStaticMetaObject()
-         0            -    86 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION TestMpDetailsView::getStaticMetaObject()
------------------------------------------------------------------------------
-
-       224          0      89 FUNCTION TestMpDetailsView::metaObject()
-         0        224 -    91 ternary-?: QObject::d_ptr -> metaObject
-       224                 91 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION TestMpDetailsView::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    94 FUNCTION TestMpDetailsView::qt_metacast()
-         0          0 -    96 if (! _clname)
-         0            -    96   return 0
-         0          0 -    97 if (! strcmp ( _clname , qt_meta_stringdata_Te..
-         0            -    98   return static_cast < void * > ( const_cast <..
-         0            -    99 return HbView::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION TestMpDetailsView::qt_metacast()
------------------------------------------------------------------------------
-
-        56          0     102 FUNCTION TestMpDetailsView::qt_metacall()
-         4         52     105 if (_id < 0)
-         4                106   return _id
-        52          0 -   107 if (_c == QMetaObject::InvokeMetaMethod)
-                          108   switch ( _id )
-         0            -   109   case 0:
-         0            -   109     break
-         0            -   110   case 1:
-         0            -   110     break
-         0            -   111   case 2:
-         0            -   111     break
-         0            -   112   case 3:
-         0            -   112     break
-         0            -   113   case 4:
-         0            -   113     break
-         0            -   114   case 5:
-         0            -   114     break
-         0            -   115   case 6:
-         0            -   115     break
-         0            -   116   case 7:
-         0            -   116     break
-         0            -   117   case 8:
-         0            -   117     break
-         0            -   118   case 9:
-         0            -   118     break
-         0            -   119   case 10:
-         0            -   119     break
-         0            -   120   case 11:
-         0            -   120     break
-         0            -   121   case 12:
-         0            -   121     break
-         0            -   122   case 13:
-         0            -   122     break
-         0            -   123   case 14:
-         0            -   123     break
-         4                124   case 15:
-         4                124     break
-         4                125   case 16:
-         4                125     break
-        16                126   case 17:
-        16                126     break
-        16                127   case 18:
-        16                127     break
-         4                128   case 19:
-         4                128     break
-         4                129   case 20:
-         4                129     break
-         4                130   case 21:
-         4                130     break
-         0            -   131   default:
-        52                135 return _id
-
-***TER  38 % ( 20/ 52) of FUNCTION TestMpDetailsView::qt_metacall()
------------------------------------------------------------------------------
-
-         4          4     139 FUNCTION TestMpDetailsView::back()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsView::back()
------------------------------------------------------------------------------
-
-         0          0 -   145 FUNCTION TestMpDetailsView::albumArtChanged()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::albumArtChanged()
------------------------------------------------------------------------------
-
-         0          0 -   151 FUNCTION TestMpDetailsView::share()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::share()
------------------------------------------------------------------------------
-
-         0          0 -   157 FUNCTION TestMpDetailsView::webViewLoaded()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::webViewLoaded()
------------------------------------------------------------------------------
-
-         0          0 -   164 FUNCTION TestMpDetailsView::playbackInfoChanged()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::playbackInfoChanged()
------------------------------------------------------------------------------
-
-         0          0 -   170 FUNCTION TestMpDetailsView::songDetailInfoChanged()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::songDetailInfoChanged()
------------------------------------------------------------------------------
-
-         0          0 -   176 FUNCTION TestMpDetailsView::toggleDetailsGroupBox()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::toggleDetailsGroupBox()
------------------------------------------------------------------------------
-
-         0          0 -   183 FUNCTION TestMpDetailsView::toggleInspireMeGroupBox()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::toggleInspireMeGroupBox()
------------------------------------------------------------------------------
-
-         0          0 -   190 FUNCTION TestMpDetailsView::retrieveInformationFinished()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::retrieveInformationFinished()
------------------------------------------------------------------------------
-
-         0          0 -   197 FUNCTION TestMpDetailsView::retrieveInformationNetworkError()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::retrieveInformationNetworkError()
------------------------------------------------------------------------------
-
-         0          0 -   204 FUNCTION TestMpDetailsView::retrieveInformationSslErrors()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::retrieveInformationSslErrors()
------------------------------------------------------------------------------
-
-         0          0 -   211 FUNCTION TestMpDetailsView::DownloadFinished()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::DownloadFinished()
------------------------------------------------------------------------------
-
-         0          0 -   218 FUNCTION TestMpDetailsView::addContext()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::addContext()
------------------------------------------------------------------------------
-
-         0          0 -   224 FUNCTION TestMpDetailsView::close()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::close()
------------------------------------------------------------------------------
-
-         0          0 -   230 FUNCTION TestMpDetailsView::thumbnailReady()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpDetailsView::thumbnailReady()
------------------------------------------------------------------------------
-
-
-***TER  30 % ( 24/ 81) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_unittest_mpdetailsview.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        16         16      61 FUNCTION MpDetailsView::MpDetailsView()
-        16          0 -    82 if (mDocumentLoader)
-        16          0 -    85 if (widgetsOk)
-        16          0 -    90   if (mContainer)
-                          115 else
-
-***TER  57 % (  4/  7) of FUNCTION MpDetailsView::MpDetailsView()
------------------------------------------------------------------------------
-
-        16         16     124 FUNCTION MpDetailsView::~MpDetailsView()
-        16          0 -   127 if (mFrameworkWrapper)
-        16          0 -   130 if (mSoftKeyBack)
-        16          0 -   133 if (mDocumentLoader)
-        16          0 -   136 if (mManager)
-        16          0 -   139 if (mDownloadManager)
-        16          0 -   142 if (mThumbnailManager)
-
-***TER  54 % (  7/ 13) of FUNCTION MpDetailsView::~MpDetailsView()
------------------------------------------------------------------------------
-
-        16         16     153 FUNCTION MpDetailsView::initializeView()
-        16          0 -   165 if (translatorLoaded)
-         0         16 -   172 if (translatorLoaded)
-
-***TER  60 % (  3/  5) of FUNCTION MpDetailsView::initializeView()
------------------------------------------------------------------------------
-
-         4          4     230 FUNCTION MpDetailsView::activateView()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::activateView()
------------------------------------------------------------------------------
-
-         4          4     243 FUNCTION MpDetailsView::deactivateView()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::deactivateView()
------------------------------------------------------------------------------
-
-        16         16     254 FUNCTION MpDetailsView::setupMenu()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::setupMenu()
------------------------------------------------------------------------------
-
-         4          4     266 FUNCTION MpDetailsView::back()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::back()
------------------------------------------------------------------------------
-
-         0          0 -   276 FUNCTION MpDetailsView::share()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::share()
------------------------------------------------------------------------------
-
-         0          0 -   285 FUNCTION MpDetailsView::albumArtChanged()
-         0          0 -   292 if (! mCompositePixmap . isNull ( ))
-                          294 else
-
-***TER   0 % (  0/  3) of FUNCTION MpDetailsView::albumArtChanged()
------------------------------------------------------------------------------
-
-         0          0 -   301 FUNCTION MpDetailsView::loadSharePlayer()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::loadSharePlayer()
------------------------------------------------------------------------------
-
-         0          0 -   311 FUNCTION MpDetailsView::webViewLoaded()
-         0          0 -   314 if (ok)
-                          317 else
-
-***TER   0 % (  0/  3) of FUNCTION MpDetailsView::webViewLoaded()
------------------------------------------------------------------------------
-
-         0          0 -   327 FUNCTION MpDetailsView::composeAlbumCover()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::composeAlbumCover()
------------------------------------------------------------------------------
-
-         0          0 -   342 FUNCTION MpDetailsView::keyValues()
-         0          0 -   346 if (keys . length ( ) != values . length ( ))
-                          348 else
-         0          0 -   349   for (;i < keys . length ( );)
-         0          0 -   351     if (0 != tValue . length ( ))
-         0            -   358 return str . left ( str . length ( ) - 1 )
-
-***TER   0 % (  0/  8) of FUNCTION MpDetailsView::keyValues()
------------------------------------------------------------------------------
-
-         0          0 -   364 FUNCTION MpDetailsView::handleParsedXML()
-         0          0 -   369 if (rootElement . attribute ( "type" ) == tr (..
-         0          0 -   373   while (! entry . isNull ( ))
-         0          0 -   375     if (entry . attribute ( "type" ) == tr ( "..
-         0          0 -   377       while (! link . isNull ( ))
-         0          0 -   380         if (link . attribute ( "rel" ) == tr (..
-         0          0 -   390 else if (rootElement . attribute ( "type" ) ==..
-         0          0 -   395   while (! entry . isNull ( ) && count<KRecomm..
-         0          0 -   397     if (entry . attribute ( "type" ) == tr ( "..
-         0          0 -   399       while (! link . isNull ( ))
-         0          0 -   401         if (link . attribute ( "title" ) == tr..
-         0            -   403           break
-                          404         else
-         0          0 -   416   for (;i < KRecommendationNum;)
-         0          0 -   421     if (mRecommendationAlbumArtsLink . at ( i ..
-                          428 else
-
-***TER   0 % (  0/ 26) of FUNCTION MpDetailsView::handleParsedXML()
------------------------------------------------------------------------------
-
-         0          0 -   437 FUNCTION MpDetailsView::setAlbumArtUri()
-         0          0 -   441 if (! albumArtUri . isEmpty ( ))
-         0          0 -   443   if (id == KUndefined)
-                          449 else
-
-***TER   0 % (  0/  5) of FUNCTION MpDetailsView::setAlbumArtUri()
------------------------------------------------------------------------------
-
-         0          0 -   460 FUNCTION MpDetailsView::RenderInspireMeGroupBox()
-         0          0 -   463 for (;i < KRecommendationNum;)
-
-***TER   0 % (  0/  3) of FUNCTION MpDetailsView::RenderInspireMeGroupBox()
------------------------------------------------------------------------------
-
-         0          0 -   487 FUNCTION MpDetailsView::recommendationAlbumArtReady()
-         0          0 -   491 if (mAlbumArtsReadyCount == KRecommendationNum)
-
-***TER   0 % (  0/  3) of FUNCTION MpDetailsView::recommendationAlbumArtReady()
------------------------------------------------------------------------------
-
-         0          0 -   501 FUNCTION MpDetailsView::playbackInfoChanged()
-         0          0 -   510 for (;i < mReplys . count ( );)
-         0          0 -   512   if (reply != 0)
-         0          0 -   524 for (;i < KRecommendationNum;)
-         0          0 -   531   if (file . exists ( ))
-         0          0 -   532     if (file . remove ( ))
-                          535     else
-                          538   else
-
-***TER   0 % (  0/ 11) of FUNCTION MpDetailsView::playbackInfoChanged()
------------------------------------------------------------------------------
-
-         0          0 -   562 FUNCTION MpDetailsView::songDetailInfoChanged()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::songDetailInfoChanged()
------------------------------------------------------------------------------
-
-         0          0 -   597 FUNCTION MpDetailsView::toggleDetailsGroupBox()
-         0          0 -   600 if (! mInspireMeGroupBox -> isCollapsed ( ))
-
-***TER   0 % (  0/  3) of FUNCTION MpDetailsView::toggleDetailsGroupBox()
------------------------------------------------------------------------------
-
-         0          0 -   609 FUNCTION MpDetailsView::toggleInspireMeGroupBox()
-         0          0 -   612 if (! mSongDetailsGroupBox -> isCollapsed ( ))
-
-***TER   0 % (  0/  3) of FUNCTION MpDetailsView::toggleInspireMeGroupBox()
------------------------------------------------------------------------------
-
-         0          0 -   621 FUNCTION MpDetailsView::constructRequest()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::constructRequest()
------------------------------------------------------------------------------
-
-         0          0 -   647 FUNCTION MpDetailsView::retrieveInformation()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::retrieveInformation()
------------------------------------------------------------------------------
-
-         0          0 -   662 FUNCTION MpDetailsView::retrieveInformationFinished()
-         0          0 -   670 if (reply -> error ( ) == QNetworkReply::NoErr..
-         0          0 -   673   if (parsingSuccess)
-                          675   else
-                          680 else
-
-***TER   0 % (  0/  5) of FUNCTION MpDetailsView::retrieveInformationFinished()
------------------------------------------------------------------------------
-
-         0          0 -   691 FUNCTION MpDetailsView::retrieveInformationNetworkError()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::retrieveInformationNetworkError()
------------------------------------------------------------------------------
-
-         0          0 -   701 FUNCTION MpDetailsView::retrieveInformationSslErrors()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::retrieveInformationSslErrors()
------------------------------------------------------------------------------
-
-         0          0 -   711 FUNCTION MpDetailsView::DownloadFinished()
-         0          0 -   714 if (reply -> error ( ) == QNetworkReply::NoErr..
-         0          0 -   720   if (fileName . isEmpty ( ))
-                          722   else
-         0          0 -   723     if (! file . open ( QIODevice::ReadWrite ))
-                          725     else
-                          734 else
-
-***TER   0 % (  0/  7) of FUNCTION MpDetailsView::DownloadFinished()
------------------------------------------------------------------------------
-
-         0          0 -   746 FUNCTION MpDetailsView::thumbnailReady()
-         0          0 -   756 if (error == 0)
-                          761 else
-
-***TER   0 % (  0/  3) of FUNCTION MpDetailsView::thumbnailReady()
------------------------------------------------------------------------------
-
-         0          0 -   773 FUNCTION MpDetailsView::addContext()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::addContext()
------------------------------------------------------------------------------
-
-         0          0 -   782 FUNCTION MpDetailsView::close()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsView::close()
------------------------------------------------------------------------------
-
-
-***TER  15 % ( 18/122) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    72 FUNCTION MpSongData::getStaticMetaObject()
-         0            -    72 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::getStaticMetaObject()
------------------------------------------------------------------------------
-
-        64          0      75 FUNCTION MpSongData::metaObject()
-         0         64 -    77 ternary-?: QObject::d_ptr -> metaObject
-        64                 77 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION MpSongData::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    80 FUNCTION MpSongData::qt_metacast()
-         0          0 -    82 if (! _clname)
-         0            -    82   return 0
-         0          0 -    83 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    84   return static_cast < void * > ( const_cast <..
-         0            -    85 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpSongData::qt_metacast()
------------------------------------------------------------------------------
-
-         0          0 -    88 FUNCTION MpSongData::qt_metacall()
-         0          0 -    91 if (_id < 0)
-         0            -    92   return _id
-         0          0 -    93 if (_c == QMetaObject::InvokeMetaMethod)
-                           94   switch ( _id )
-         0            -    95   case 0:
-         0            -    95     break
-         0            -    96   case 1:
-         0            -    96     break
-         0            -    97   case 2:
-         0            -    97     break
-         0            -    98   case 3:
-         0            -    98     break
-         0            -    99   case 4:
-         0          0 -   100       if (_a [ 0 ])
-         0            -   100     break
-         0            -   101   case 5:
-         0          0 -   102       if (_a [ 0 ])
-         0            -   102     break
-         0            -   103   case 6:
-         0          0 -   104       if (_a [ 0 ])
-         0            -   104     break
-         0            -   105   case 7:
-         0          0 -   106       if (_a [ 0 ])
-         0            -   106     break
-         0            -   107   case 8:
-         0          0 -   108       if (_a [ 0 ])
-         0            -   108     break
-         0            -   109   case 9:
-         0            -   109     break
-         0            -   110   case 10:
-         0          0 -   111       if (_a [ 0 ])
-         0            -   111     break
-         0            -   112   case 11:
-         0          0 -   113       if (_a [ 0 ])
-         0            -   113     break
-         0            -   114   case 12:
-         0          0 -   115       if (_a [ 0 ])
-         0            -   115     break
-         0            -   116   case 13:
-         0          0 -   117       if (_a [ 0 ])
-         0            -   117     break
-         0            -   118   case 14:
-         0          0 -   119       if (_a [ 0 ])
-         0            -   119     break
-         0            -   120   default:
-         0            -   124 return _id
-
-***TER   0 % (  0/ 58) of FUNCTION MpSongData::qt_metacall()
------------------------------------------------------------------------------
-
-         0          0 -   128 FUNCTION MpSongData::albumArtReady()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::albumArtReady()
------------------------------------------------------------------------------
-
-         0          0 -   134 FUNCTION MpSongData::playbackInfoChanged()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::playbackInfoChanged()
------------------------------------------------------------------------------
-
-         0          0 -   140 FUNCTION MpSongData::songDetailInfoChanged()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::songDetailInfoChanged()
------------------------------------------------------------------------------
-
-
-***TER   4 % (  3/ 75) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_thumbnailmanager_qt.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    50 FUNCTION ThumbnailManager::getStaticMetaObject()
-         0            -    50 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION ThumbnailManager::getStaticMetaObject()
------------------------------------------------------------------------------
-
-        64          0      53 FUNCTION ThumbnailManager::metaObject()
-         0         64 -    55 ternary-?: QObject::d_ptr -> metaObject
-        64                 55 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION ThumbnailManager::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    58 FUNCTION ThumbnailManager::qt_metacast()
-         0          0 -    60 if (! _clname)
-         0            -    60   return 0
-         0          0 -    61 if (! strcmp ( _clname , qt_meta_stringdata_Th..
-         0            -    62   return static_cast < void * > ( const_cast <..
-         0            -    63 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION ThumbnailManager::qt_metacast()
------------------------------------------------------------------------------
-
-         0          0 -    66 FUNCTION ThumbnailManager::qt_metacall()
-         0          0 -    69 if (_id < 0)
-         0            -    70   return _id
-         0          0 -    71 if (_c == QMetaObject::InvokeMetaMethod)
-                           72   switch ( _id )
-         0            -    73   case 0:
-         0            -    73     break
-         0            -    74   default:
-         0            -    78 return _id
-
-***TER   0 % (  0/ 10) of FUNCTION ThumbnailManager::qt_metacall()
------------------------------------------------------------------------------
-
-         0          0 -    82 FUNCTION ThumbnailManager::thumbnailReady()
-
-***TER   0 % (  0/  1) of FUNCTION ThumbnailManager::thumbnailReady()
------------------------------------------------------------------------------
-
-
-***TER  12 % (  3/ 25) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/moc_thumbnailmanager_qt.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/qrc_mpdetailsviewresources.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         4          0   10532 FUNCTION qInitResources_mpdetailsviewresources()
-         4              10536 return 1
-
-***TER 100 % (  2/  2) of FUNCTION qInitResources_mpdetailsviewresources()
------------------------------------------------------------------------------
-
-         0          0 - 10541 FUNCTION qCleanupResources_mpdetailsviewresources()
-         0            - 10545 return 1
-
-***TER   0 % (  0/  2) of FUNCTION qCleanupResources_mpdetailsviewresources()
------------------------------------------------------------------------------
-
-         4          4   10548 FUNCTION qCleanupResources_mpdetailsviewresources__dest_class__::qCleanupResources_mpdetailsviewresources__dest_class__()
-
-***TER 100 % (  1/  1) of FUNCTION qCleanupResources_mpdetailsviewresources__dest_class__::qCleanupResources_mpdetailsviewresources__dest_class__()
------------------------------------------------------------------------------
-
-         0          0 - 10548 FUNCTION qCleanupResources_mpdetailsviewresources__dest_class__::~qCleanupResources_mpdetailsviewresources__dest_class__()
-
-***TER   0 % (  0/  1) of FUNCTION qCleanupResources_mpdetailsviewresources__dest_class__::~qCleanupResources_mpdetailsviewresources__dest_class__()
------------------------------------------------------------------------------
-
-
-***TER  50 % (  3/  6) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/qrc_mpdetailsviewresources.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        16         16      25 FUNCTION MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper()
------------------------------------------------------------------------------
-
-        16         16      36 FUNCTION MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper()
------------------------------------------------------------------------------
-
-        16          0      46 FUNCTION MpMpxDetailsFrameworkWrapper::songData()
-        16                 48 return iSongData
-
-***TER 100 % (  2/  2) of FUNCTION MpMpxDetailsFrameworkWrapper::songData()
------------------------------------------------------------------------------
-
-         4          4      54 FUNCTION MpMpxDetailsFrameworkWrapper::retrieveSong()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapper::retrieveSong()
------------------------------------------------------------------------------
-
-
-***TER 100 % (  5/  5) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        16         16      62 FUNCTION MpSongData::MpSongData()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::MpSongData()
------------------------------------------------------------------------------
-
-         0          0 -    88 FUNCTION MpSongData::~MpSongData()
-         0          0 -    91 if (mThumbnailManager)
-
-***TER   0 % (  0/  3) of FUNCTION MpSongData::~MpSongData()
------------------------------------------------------------------------------
-
-         0          0 -   100 FUNCTION MpSongData::albumArt()
-         0          0 -   103 if (! mAlbumArt . isNull ( ))
-                          106 else
-
-***TER   0 % (  0/  3) of FUNCTION MpSongData::albumArt()
------------------------------------------------------------------------------
-
-         0          0 -   116 FUNCTION MpSongData::title()
-         0            -   119 return mTitle
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::title()
------------------------------------------------------------------------------
-
-         0          0 -   125 FUNCTION MpSongData::album()
-         0            -   128 return mAlbum
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::album()
------------------------------------------------------------------------------
-
-         0          0 -   134 FUNCTION MpSongData::artist()
-         0            -   137 return mArtist
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::artist()
------------------------------------------------------------------------------
-
-         0          0 -   143 FUNCTION MpSongData::comment()
-         0            -   146 return mComment
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::comment()
------------------------------------------------------------------------------
-
-         0          0 -   152 FUNCTION MpSongData::composer()
-         0            -   155 return mComposer
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::composer()
------------------------------------------------------------------------------
-
-         0          0 -   162 FUNCTION MpSongData::genre()
-         0            -   165 return mGenre
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::genre()
------------------------------------------------------------------------------
-
-         0          0 -   172 FUNCTION MpSongData::albumTrack()
-         0            -   175 return mAlbumTrack
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::albumTrack()
------------------------------------------------------------------------------
-
-         0          0 -   181 FUNCTION MpSongData::link()
-         0            -   184 return mLink
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::link()
------------------------------------------------------------------------------
-
-         0          0 -   190 FUNCTION MpSongData::year()
-         0            -   193 return mYear
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::year()
------------------------------------------------------------------------------
-
-         0          0 -   200 FUNCTION MpSongData::setTitle()
-         0          0 -   204 if (title != mTitle)
-         0            -   209 return change
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::setTitle()
------------------------------------------------------------------------------
-
-         0          0 -   215 FUNCTION MpSongData::setAlbum()
-         0          0 -   219 if (album != mAlbum)
-         0            -   224 return change
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::setAlbum()
------------------------------------------------------------------------------
-
-         0          0 -   230 FUNCTION MpSongData::setArtist()
-         0          0 -   234 if (artist != mArtist)
-         0            -   239 return change
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::setArtist()
------------------------------------------------------------------------------
-
-         0          0 -   245 FUNCTION MpSongData::setComment()
-         0          0 -   249 if (comment != mComment)
-         0            -   254 return change
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::setComment()
------------------------------------------------------------------------------
-
-         0          0 -   261 FUNCTION MpSongData::setComposer()
-         0          0 -   265 if (composer != mComposer)
-         0            -   270 return change
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::setComposer()
------------------------------------------------------------------------------
-
-         0          0 -   276 FUNCTION MpSongData::setGenre()
-         0          0 -   280 if (genre != mGenre)
-         0            -   285 return change
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::setGenre()
------------------------------------------------------------------------------
-
-         0          0 -   292 FUNCTION MpSongData::setYear()
-         0          0 -   296 if (QString::number ( year ) != mYear)
-         0          0 -   298   if (year >= 0 && year < 9999)
-         0            -   303 return change
-
-***TER   0 % (  0/  6) of FUNCTION MpSongData::setYear()
------------------------------------------------------------------------------
-
-         0          0 -   309 FUNCTION MpSongData::setAlbumTrack()
-         0          0 -   313 if (track != mAlbumTrack)
-         0            -   318 return change
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::setAlbumTrack()
------------------------------------------------------------------------------
-
-         0          0 -   324 FUNCTION MpSongData::setLink()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::setLink()
------------------------------------------------------------------------------
-
-         0          0 -   334 FUNCTION MpSongData::setAlbumArtUri()
-         0          0 -   337 if (! albumArtUri . isEmpty ( ))
-         0          0 -   339   if (mReqId != KUndefined)
-         0          0 -   343   if (ok)
-         0          0 -   345     if (mReqId == KUndefined)
-                          352 else
-
-***TER   0 % (  0/  9) of FUNCTION MpSongData::setAlbumArtUri()
------------------------------------------------------------------------------
-
-         0          0 -   364 FUNCTION MpSongData::thumbnailReady()
-         0          0 -   372 if (error == 0 && mReqId == id)
-                          377 else
-
-***TER   0 % (  0/  3) of FUNCTION MpSongData::thumbnailReady()
------------------------------------------------------------------------------
-
-         0          0 -   389 FUNCTION MpSongData::commitPlaybackInfo()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::commitPlaybackInfo()
------------------------------------------------------------------------------
-
-         0          0 -   399 FUNCTION MpSongData::commitSongDetailInfo()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::commitSongDetailInfo()
------------------------------------------------------------------------------
-
-
-***TER   1 % (  1/ 74) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         4          0      62 FUNCTION main()
-         4                 76 return res
-
-***TER 100 % (  2/  2) of FUNCTION main()
------------------------------------------------------------------------------
-
-         4          4      80 FUNCTION TestMpDetailsView::TestMpDetailsView()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsView::TestMpDetailsView()
------------------------------------------------------------------------------
-
-         4          4      87 FUNCTION TestMpDetailsView::~TestMpDetailsView()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsView::~TestMpDetailsView()
------------------------------------------------------------------------------
-
-         4          4      95 FUNCTION TestMpDetailsView::initTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsView::initTestCase()
------------------------------------------------------------------------------
-
-         4          4     103 FUNCTION TestMpDetailsView::cleanupTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsView::cleanupTestCase()
------------------------------------------------------------------------------
-
-        16         16     111 FUNCTION TestMpDetailsView::init()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsView::init()
------------------------------------------------------------------------------
-
-        16         16     120 FUNCTION TestMpDetailsView::cleanup()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsView::cleanup()
------------------------------------------------------------------------------
-
-         4          4     126 FUNCTION TestMpDetailsView::testactivateView()
-                          129 do
-         0          4 -   129   if (! QTest::qVerify ( ( mTest -> mActivated..
-         0            -   129     return
-                          129 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpDetailsView::testactivateView()
------------------------------------------------------------------------------
-
-         4          4     132 FUNCTION TestMpDetailsView::testdeactivateView()
-                          135 do
-         0          4 -   135   if (! QTest::qVerify ( ( mTest -> mActivated..
-         0            -   135     return
-                          135 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpDetailsView::testdeactivateView()
------------------------------------------------------------------------------
-
-         4          4     138 FUNCTION TestMpDetailsView::testbackSlot()
-                          141 do
-         0          4 -   141   if (! QTest::qVerify ( ( spy . isValid ( ) )..
-         0            -   141     return
-                          141 while ( 0 )
-                          142 do
-         0          4 -   142   if (! QTest::qCompare ( spy . count ( ) , 0 ..
-         0            -   142     return
-                          142 while ( 0 )
-                          145 do
-         0          4 -   145   if (! QTest::qCompare ( spy . count ( ) , 1 ..
-         0            -   145     return
-                          145 while ( 0 )
-
-***TER  40 % (  4/ 10) of FUNCTION TestMpDetailsView::testbackSlot()
------------------------------------------------------------------------------
-
-
-***TER  62 % ( 16/ 26) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    26 FUNCTION ThumbnailManager::getInitCounter()
-         0            -    28 return gInitCounter
-
-***TER   0 % (  0/  2) of FUNCTION ThumbnailManager::getInitCounter()
------------------------------------------------------------------------------
-
-         0          0 -    34 FUNCTION ThumbnailManager::resetInitCounter()
-
-***TER   0 % (  0/  1) of FUNCTION ThumbnailManager::resetInitCounter()
------------------------------------------------------------------------------
-
-        32         32      42 FUNCTION ThumbnailManager::ThumbnailManager()
-
-***TER 100 % (  1/  1) of FUNCTION ThumbnailManager::ThumbnailManager()
------------------------------------------------------------------------------
-
-        16         16      54 FUNCTION ThumbnailManager::~ThumbnailManager()
-
-***TER 100 % (  1/  1) of FUNCTION ThumbnailManager::~ThumbnailManager()
------------------------------------------------------------------------------
-
-         0          0 -    62 FUNCTION ThumbnailManager::setMode()
-         0            -    65 return true
-
-***TER   0 % (  0/  2) of FUNCTION ThumbnailManager::setMode()
------------------------------------------------------------------------------
-
-        32          0      71 FUNCTION ThumbnailManager::setQualityPreference()
-        32                 75 return true
-
-***TER 100 % (  2/  2) of FUNCTION ThumbnailManager::setQualityPreference()
------------------------------------------------------------------------------
-
-        32          0      81 FUNCTION ThumbnailManager::setThumbnailSize()
-        32                 84 return true
-
-***TER 100 % (  2/  2) of FUNCTION ThumbnailManager::setThumbnailSize()
------------------------------------------------------------------------------
-
-         0          0 -    90 FUNCTION ThumbnailManager::getThumbnail()
-         0          0 -    96 if (clientData)
-         0          0 -   104 if (mGetThumbFails)
-         0            -   105   return - 1
-         0            -   109 return mThumbnailReqCounter
-
-***TER   0 % (  0/  7) of FUNCTION ThumbnailManager::getThumbnail()
------------------------------------------------------------------------------
-
-         0          0 -   115 FUNCTION ThumbnailManager::cancelRequest()
-         0            -   119 return true
-
-***TER   0 % (  0/  2) of FUNCTION ThumbnailManager::cancelRequest()
------------------------------------------------------------------------------
-
-
-***TER  30 % (  6/ 20) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp
------------------------------------------------------------------------------
-
-
-
-
-
-SUMMARY
-=======
-
-Number of monitored source files  : 11
-Number of source lines            : 12735
-Number of measurement points      : 630
-TER                               : 18% (decision)
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/sis.bat	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of "Eclipse Public License v1.0"
@@ -16,5 +16,5 @@
 
 del *.sisx
 makesis UT_detailsview.pkg
-signsis UT_detailsview.sis UT_detailsview.sisx  ..\RndCerts\Nokia_RnDCert_02.der ..\RndCerts\Nokia_RnDCert_02.key
+signsis UT_detailsview.sis UT_detailsview.sisx  %RNDCERTS_PATH%\Nokia_RnDCert_02.der %RNDCERTS_PATH%\Nokia_RnDCert_02.key
 del     UT_detailsview.sis
\ No newline at end of file
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,8 +15,8 @@
 *
 */
 #include <QSignalSpy>
-#include <qgraphicswebview>
-#include <qwebsettings>
+#include <QGraphicsWebView>
+#include <QWebSettings>
 #include <QGraphicsWidget>
 #include <QGraphicsLayoutItem>
 #include <QUrl>
@@ -41,13 +41,14 @@
 #include <hbdialog.h>
 #include <hblistwidget.h>
 #include <hblistwidgetitem.h>
-#include <HbApplication>
+#include <hbapplication.h>
+#include <hbprogressbar.h>
 
 #include "unittest_mpdetailsview.h"
 #include "stub/inc/mpsongdata.h"
 #include "stub/inc/thumbnailmanager_qt.h"
-#include "stub/inc/mpmpxdetailsframeworkwrapper.h"
 #include "mpcommondefs.h"
+#include "mpsettingsmanager.h"
 
 // Do this so we can access all member variables.
 #define private public
@@ -66,14 +67,17 @@
 
     TestMpDetailsView tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_testmpdetailsview.txt";
+if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpdetailsview.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 //Constructor
@@ -94,7 +98,7 @@
  */
 void TestMpDetailsView::initTestCase()
 {
-    
+
 }
 
 /*!
@@ -102,7 +106,7 @@
  */
 void TestMpDetailsView::cleanupTestCase()
 {
-
+QCoreApplication::processEvents();
 }
 
 /*!
@@ -124,27 +128,167 @@
 }
 
 void TestMpDetailsView::testactivateView()
-    {
+{
     mTest->activateView();
-    QVERIFY(mTest->mActivated==true);
-    }
+    QCOMPARE( mTest->mActivated, true );
+
+    QCOMPARE( mTest->mInspireMeOpen, MpSettingsManager::inspireMe() );
+    QCOMPARE( mTest->mSongDetailsGbOpen, MpSettingsManager::songDetailsGb() );
+}
 
 void TestMpDetailsView::testdeactivateView()
-    {
-    /* TODO: Fix   
+{
     mTest->deactivateView();
-    QVERIFY(mTest->mActivated==false);
-    */
-     }
+    QCOMPARE( mTest->mActivated, false );
+}
+
+void TestMpDetailsView::testbackSlot()
+{
+    connect( this, SIGNAL( back() ), mTest->mSoftKeyBack, SIGNAL( triggered() ) );
+    QSignalSpy spy( mTest, SIGNAL( command(int) ) );
+    QVERIFY( spy.isValid() );
+    QCOMPARE( spy.count(),0 );
+
+    emit back();
+    QCOMPARE( spy.count(), 1 );
+}
+
+void TestMpDetailsView::testAlbumArtChanged()
+{
+    connect( this, SIGNAL( albumArtChanged() ), mTest->mSongData, SIGNAL( albumArtReady() ) );
+
+    emit albumArtChanged();
+    QVERIFY( mTest->mAlbumArt->icon().isNull() == false );
+}
+
+void TestMpDetailsView::testHandleNetworkError()
+{
+    mTest->handleNetworkError();
+    QVERIFY( mTest->mInspireMeQueryOngoing == false );
+    QVERIFY( mTest->mInspireMeQueryRendered == false );
+}
+
+void TestMpDetailsView::testCanQueryRecommendations()
+{
+    mTest->mSongData = new MpSongData();
+    mTest->mSongData->mAlbum = QString( "album" );
+    mTest->mSongData->mArtist = QString( "artist" );
+    mTest->mInspireMeGroupBox->setCollapsed( true );
+    QVERIFY( mTest->canQueryRecommendations() == false );
+
+    mTest->mSongData->mAlbum = QString( "album" );
+    mTest->mSongData->mArtist = QString();
+    mTest->mInspireMeGroupBox->setCollapsed( true );
+    QVERIFY( mTest->canQueryRecommendations() == false );
+
+    mTest->mSongData->mAlbum = QString();
+    mTest->mSongData->mArtist = QString( "artist" );
+    mTest->mInspireMeGroupBox->setCollapsed( true );
+    QVERIFY( mTest->canQueryRecommendations() == false );
+
+    mTest->mSongData->mAlbum = QString();
+    mTest->mSongData->mArtist = QString();
+    mTest->mInspireMeGroupBox->setCollapsed( true );
+    QVERIFY( mTest->canQueryRecommendations() == false );
+
+    mTest->mSongData->mAlbum = QString( "album" );
+    mTest->mSongData->mArtist = QString( "artist" );
+    mTest->mInspireMeGroupBox->setCollapsed( false );
+    QVERIFY( mTest->canQueryRecommendations() == true );
+
+    mTest->mSongData->mAlbum = QString( "album" );
+    mTest->mSongData->mArtist = QString();
+    mTest->mInspireMeGroupBox->setCollapsed( false );
+    QVERIFY( mTest->canQueryRecommendations() == true );
+
+    mTest->mSongData->mAlbum = QString();
+    mTest->mSongData->mArtist = QString( "artist" );
+    mTest->mInspireMeGroupBox->setCollapsed( false );
+    QVERIFY( mTest->canQueryRecommendations() == true );
+
+    mTest->mSongData->mAlbum = QString();
+    mTest->mSongData->mArtist = QString();
+    mTest->mInspireMeGroupBox->setCollapsed( false );
+    QVERIFY( mTest->canQueryRecommendations() == false );
+}
 
-void TestMpDetailsView::testbackSlot() {
-    connect(this, SIGNAL(back()), mTest->mNavigationBack, SIGNAL(triggered()));
-    QSignalSpy spy(mTest, SIGNAL(command(int)));
-    QVERIFY(spy.isValid());
-    QCOMPARE(spy.count(),0);
-    
-    emit back();
-    QCOMPARE(spy.count(),1);
-    }
+void TestMpDetailsView::testCanQuerySharePlayerLink()
+{
+    mTest->mSongData = new MpSongData();
+    mTest->mSongData->mTitle = QString( "title" );
+    mTest->mSongData->mArtist = QString( "artist" );
+    QVERIFY( mTest->canQuerySharePlayerLink() == true );
+
+    mTest->mSongData->mTitle = QString();
+    mTest->mSongData->mArtist = QString( "artist" );
+    QVERIFY( mTest->canQuerySharePlayerLink() == false );
+
+    mTest->mSongData->mTitle = QString( "title" );
+    mTest->mSongData->mArtist = QString();
+    QVERIFY( mTest->canQuerySharePlayerLink() == false );
+
+    mTest->mSongData->mTitle = QString();
+    mTest->mSongData->mArtist = QString();
+    QVERIFY( mTest->canQuerySharePlayerLink() == false );
+}
+
+void TestMpDetailsView::testHandlePlaybackInfoChanged()
+{
+    mTest->mSongData = new MpSongData();
+    mTest->mInspireMeQueryRendered = true;
+    mTest->mSongData->mAlbum = QString( "album" );
+    mTest->mSongData->mArtist = QString( "artist" );
+    mTest->handlePlaybackInfoChanged();
+    QVERIFY( mTest->mInspireMeQueryRendered == false );
+    QVERIFY( mTest->mSongData->link().isEmpty() == true );
+    QCOMPARE( mTest->mAlbumText->plainText(), QString( "album" ) );
+    QCOMPARE( mTest->mArtistText->plainText(), QString( "artist" ) );
+
+    mTest->mInspireMeQueryRendered = true;
+    mTest->mSongData->mAlbum = QString("");
+    mTest->mSongData->mArtist = QString("");
+    mTest->handlePlaybackInfoChanged();
+    QVERIFY( mTest->mInspireMeQueryRendered == true );
+    QVERIFY( mTest->mSongData->link().isEmpty() == true );
+    QCOMPARE( mTest->mAlbumText->plainText(), QString( "Unknown" ) );
+    QCOMPARE( mTest->mArtistText->plainText(), QString( "Unknown" ) );
+}
+
+void TestMpDetailsView::testClearInspireMe()
+{
+    mTest->clearInspireMe();
+    QVERIFY( mTest->mInspireList->count() == 0 );
+}
+
+void TestMpDetailsView::testHandleDetailsGroupBoxToggled()
+{
+    mTest->handleDetailsGroupBoxToggled( false );
+    QVERIFY( mTest->mInspireMeGroupBox->isCollapsed() == true );
+}
+
+void TestMpDetailsView::testHandleInspireMeGroupBoxToggled()
+{
+    mTest->mSongData = new MpSongData();
+
+    mTest->mInspireMeQueryOngoing = true;
+    mTest->handleInspireMeGroupBoxToggled( false );
+    QVERIFY( mTest->mSongDetailsGroupBox->isCollapsed() == true );
+    QVERIFY ( mTest->mInspireMeProgressBar->isVisible() == true );
+
+    mTest->mInspireMeQueryOngoing = false;
+    mTest->mInspireMeQueryRendered = true;
+    mTest->handleInspireMeGroupBoxToggled( false );
+    QVERIFY( mTest->mSongDetailsGroupBox->isCollapsed() == true );
+
+    mTest->mInspireMeQueryOngoing = false;
+    mTest->mInspireMeQueryRendered = false;
+    mTest->mSongData->mAlbum = QString( "album" );
+    mTest->mSongData->mArtist = QString( "artist" );
+    mTest->handleInspireMeGroupBoxToggled( false );
+    QVERIFY( mTest->mSongDetailsGroupBox->isCollapsed() == true );
+    QVERIFY ( mTest->mInspireMeProgressBar->isVisible() == true );
+    QVERIFY ( mTest->mInspireMeQueryOngoing == true );
+}
 
 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpdetailssharedialog.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef MPDETAILSSHAREDIALOG_H
+#define MPDETAILSSHAREDIALOG_H
+
+#include <HbDialog>
+
+class QGraphicsWebView;
+class QNetworkAccessManager;
+class MpSongData;
+
+class MpDetailsShareDialog : public HbDialog
+{
+    Q_OBJECT
+
+public:
+    MpDetailsShareDialog();
+    void initialize( MpSongData* aSongData );
+    virtual ~MpDetailsShareDialog();
+    void reload();
+
+public slots:
+    void updateSharedData();
+    void onIndexLoad( bool ok );
+
+private:
+    QObject*               mSharedData;     // NOT owned.
+    QGraphicsWebView*      mShareWebView;   // Owned by HbDialog
+    QNetworkAccessManager* mShareNetAccMan; // Owned
+};
+
+#endif // MPDETAILSSHAREDIALOG_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpengine.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,140 @@
+/*
+* 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: Music Player engine.
+*
+*/
+
+#ifndef MPENGINE_H
+#define MPENGINE_H
+
+#include <QObject>
+#include "mpmpxcollectionviewdefs.h"
+#include "mpmpxcommondefs.h"
+#include "mpcommondefs.h"
+
+class MpMpxCollectionData;
+class MpPlaybackData;
+class MpSongData;
+class XQSharableFile;
+class MpEngine : public QObject
+{
+    Q_OBJECT
+
+    friend class MpEngineFactory;
+
+public:
+    enum EngineMode{
+        StandAlone,
+        Fetch,
+        Embedded,
+        MediaBrowsing
+    };
+    
+private:
+
+    enum UsbBlockingState {
+        USB_NotConnected,          // Not connected
+        USB_Connected,             // Connected in MTP mode but not synchronizing
+        USB_Synchronizing          // Connected in MassStorage mode or MTP mode and synchronizing
+    };
+
+private:
+    explicit MpEngine();
+
+public:
+
+    virtual ~MpEngine();
+
+    // Harvester related
+    void refreshLibrary();
+    bool verifyUsbBlocking( bool showMessage = false );
+    void checkForSystemEvents();
+    
+    // Collection related
+    void openCollection( TCollectionContext context );
+    void openCollectionItem( int index );
+    void back();
+    void findPlaylists( QStringList &playlists );
+    void createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData = 0  );
+    void saveToPlaylist( int playlistIndex, QList<int> &selection );
+    void saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData );    
+    void renamePlaylist( QString &newName, int index );
+    void renamePlaylist( QString &newName );
+    void deleteSongs( QList<int> &selection );
+
+    void previewItem( int index );
+    void openIsolatedCollection( TCollectionContext context );
+    void releaseIsolatedCollection();
+
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex );
+
+    MpMpxCollectionData *collectionData();
+    
+    // Playback related
+    
+    MpPlaybackData *playbackData();
+    
+    // Details related
+    MpSongData *songData();
+    void retrieveSong();
+
+signals:
+    
+    // Harvester related
+    void libraryAboutToRefresh();
+    void libraryRefreshed();
+    void usbBlocked( bool blocked );
+    
+    // Collection related
+    void collectionPlaylistOpened();
+    void playlistSaved( bool success );
+    void songsDeleted( bool success );
+    void playlistsRenamed( bool success );
+    
+    void isolatedCollectionOpened( MpMpxCollectionData* collectionData );
+    
+    void containerContentsChanged();
+
+public slots:
+
+    // Harvester related
+    void handleScanStarted();
+    void handleScanEnded( int count, int error );
+    void handleDiskEvent( MpxDiskEvents event );
+    void handleUsbEvent( MpxUsbEvents event );
+    void handleBlockingNoteClosing();
+    
+    // Collection related
+    void reopenCollection();
+    void reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal );
+
+    // Playback related
+    void playEmbedded( QString aFilename );
+    void playEmbedded( const XQSharableFile&  file );
+    void playPause();
+    void stop();
+    void skipForward();
+    void skipBackward();
+    void setPosition( int position );
+    void setShuffle( bool mode );
+    void setRepeat( bool mode );
+	
+private:
+
+    Q_DISABLE_COPY( MpEngine )
+
+};
+
+#endif // MPENGINE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpenginefactory.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Music Player engine.
+*
+*/
+
+#ifndef MPENGINEFACTORY_H
+#define MPENGINEFACTORY_H
+
+#include <QObject>
+
+#include "mpengine.h"
+#include "mpcommondefs.h"
+
+
+class MpEngineFactory
+{
+private:
+    explicit MpEngineFactory();
+
+public:
+    virtual ~MpEngineFactory();
+    static MpEngineFactory * instance();
+    
+    static MpEngine *createSharedEngine( TUid uid = TUid::Uid( MpCommon::KMusicPlayerUid ), MpEngine::EngineMode mode = MpEngine::StandAlone );
+    static MpEngine *sharedEngine();
+    static void close();
+	
+private:       
+    MpEngine    *mSharedEngine;
+};
+
+#endif // MPENGINEFACTORY_H
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpmpxdetailsframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +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: Framework wrapper 
-*
-*/
-
-#ifndef MPMPXDETAILSFRAMEWORKWRAPPER_H_
-#define MPMPXDETAILSFRAMEWORKWRAPPER_H_
-
-//includes
-#include <QObject>
-#include "stub/inc/mpsongdata.h"
-
-//forward declartions
-class MpSongData;
-
-//class declaration
-class MpMpxDetailsFrameworkWrapper : public QObject
-{
-    Q_OBJECT
-
-public:
-    MpMpxDetailsFrameworkWrapper( QObject *parent=0 );
-    virtual ~MpMpxDetailsFrameworkWrapper();
-    
-    MpSongData *songData();
-    void retrieveSong();
-private:
-    MpSongData* iSongData;
-    
-};
-
-
-#endif /* MPMPXDETAILSFRAMEWORKWRAPPER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpquerymanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,76 @@
+/*
+* 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: Music Player Query Manager.
+*
+*/
+#ifndef MPQUERYMANAGER_H_
+#define MPQUERYMANAGER_H_
+
+#include <qnetworkconfigmanager.h>
+#include <qnetworksession.h>
+#include <QPixmap>
+#include <QPointer>
+#include "mpviewbase.h"
+
+class MpSongData;
+class MpDetailsShareDialog;
+class MpEngine;
+
+QTM_USE_NAMESPACE
+
+class MpQueryManager : public QObject
+{
+    Q_OBJECT
+
+public:
+    MpQueryManager( QObject *parent=0 );
+    ~MpQueryManager();
+    
+public:
+    void clearNetworkReplies();
+    void queryLocalMusicStore( QString mArtist,QString mAlbum,QString mTitle );
+    void queryInspireMeItems( QString mArtist,QString mAlbum,QString mTitle );
+    void clearRecommendations();
+    
+    QStringList recommendationSongs();
+    QStringList recommendationArtists();
+    QStringList recommendationAlbumArtsLink();
+    QMap<QString, QPixmap>  recommendationAlbumArtsMap();
+    int &albumArtsReadyCount();
+    
+    void insertMapItem( const QString &uri, const QPixmap &pixmap );    
+
+signals:
+    void onlineStatusChanged( bool state );
+    void setAlbumArt( const QString &albumArtUri, const QString &albumArtName );    
+   
+private:    
+   
+    int                     mDownloadedAlbumArts;  
+    MpDetailsShareDialog*   mSharePopup;
+    
+    QString                 mArtist;
+    QString                 mAlbum;
+    QString                 mTitle;
+    
+    QStringList          mRecommendationAlbumArtsName;
+    
+    QStringList          mRecommendationSongs;
+    QStringList          mRecommendationArtists;
+    QStringList          mRecommendationAlbumArtsLink;
+    QMap<QString, QPixmap>  mRecommendationAlbumArtsMap;
+    int                     mAlbumArtsReadyCount;
+       
+};
+#endif /* MPQUERYMANAGER_H_ */
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpsongdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -22,10 +22,9 @@
 #include <QString>
 #include <QPixmap>
 
-
 //forward declartions
-class QIcon;
 class ThumbnailManager;
+class HbIcon;
 
 //class declaration
 class MpSongData : public QObject
@@ -46,7 +45,17 @@
     bool setComposer( const QString &compoer );
     bool setAlbumTrack( const QString &albumtrack );
     void setLink( const QString &link );
-
+    bool setFileName( const QString &fileName );
+    bool setMimeType( const QString &mimeType );
+    bool setDuration( int duration );
+    bool setBitRate( int bitRate);
+    bool setSampleRate( int sampleRate );
+    bool setSize( int size );
+    bool setModified( const QString &modified );
+    bool setCopyright( const QString &copyright );
+    bool setMusicURL( const QString &musicURL );
+    bool setDrmProtected( bool drmProtected );
+    
     // inform details view when basic information is ready to accelerate UI update
     void commitPlaybackInfo();
     // inform details view when details information is ready
@@ -61,19 +70,32 @@
     QString album() const;
     QString artist() const;
     QString comment() const;
-    void albumArt( QPixmap& pixmap );
+    void albumArt( HbIcon& icon ) const;
     QString year() const;
     QString genre() const;
     QString composer() const;
     QString albumTrack() const;
     QString link() const;
+    
+    QString fileName() const;
+    QString mimeType() const;
+    QString duration() const;
+    QString bitRate() const;
+    QString sampleRate() const;
+    QString size() const;
+    QString modified() const;
+    QString copyright() const;
+    QString musicURL() const;
+    bool isDrmProtected() const;
+    
+    QString albumArtBase64() const;
 
 signals:
     void albumArtReady();
     void playbackInfoChanged();
 	void songDetailInfoChanged();	
 
-private:
+public:
     QString                  mTitle;
     QString                  mAlbum;
     QString                  mArtist;
@@ -82,12 +104,22 @@
     QString                  mGenre;
     QString                  mYear;
     QString                  mAlbumTrack;
-    QPixmap                  mAlbumArt;
+    HbIcon                   *mAlbumArt;
     ThumbnailManager         *mThumbnailManager; //owned
     TInt                     mReqId;
     QString                  currentAAUri; 
-    QPixmap                  mDefaultAlbumArt;
+    HbIcon                   *mDefaultAlbumArt;
     QString                  mLink;
+    QString                  mFileName;
+    QString                  mMimeType;
+    QString                  mDuration;
+    QString                  mBitRate;
+    QString                  mSampleRate;
+    QString                  mSize;
+    QString                  mModified;
+    QString                  mCopyright;
+    QString                  mMusicURL;
+    bool                     mDrmProtected;
     
     Q_DISABLE_COPY(MpSongData)
 };
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h	Thu Jul 22 16:32:33 2010 +0100
@@ -17,8 +17,8 @@
 
 #ifndef THUMBNAILMANAGER_QT_H_
 #define THUMBNAILMANAGER_QT_H_
-#include <qobject>
-#include <QPixmap.h>
+#include <QObject>
+#include <QPixmap>
 
 
 /** default priority value */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpdetailssharedialog.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#include "mpdetailssharedialog.h"
+#include "mptrace.h"
+#include <QObject>
+#include <QGraphicsWebView>
+#include <QGraphicsScene>
+#include <QWebPage>
+#include <QWebFrame>
+#include <QNetworkAccessManager>
+#include <QNetworkDiskCache>
+#include <QDesktopServices>
+#include <QNetworkProxyFactory>
+
+
+// For allowing local caching of javascript files loaded by popup
+class MpNetworkAccessManager : public QNetworkAccessManager
+{
+public:
+    MpNetworkAccessManager() { };
+
+private:
+    QNetworkReply *createRequest( Operation /*op*/,
+                                 const QNetworkRequest &/*request*/,
+                                 QIODevice *outgoingData = 0 ) { return 0; }
+};
+
+
+MpDetailsShareDialog::MpDetailsShareDialog(  )
+    : mSharedData(  ),
+      mShareWebView( 0 ),
+      mShareNetAccMan( 0 )
+{
+    TX_ENTRY_ARGS("STUB")
+    TX_EXIT_ARGS("STUB")
+}
+
+MpDetailsShareDialog::~MpDetailsShareDialog()
+{
+    TX_ENTRY_ARGS("STUB")
+    TX_EXIT_ARGS("STUB")
+}
+
+void MpDetailsShareDialog::initialize( MpSongData* aSongData )
+{
+    TX_ENTRY_ARGS("STUB")
+    TX_EXIT_ARGS("STUB")
+}
+
+void MpDetailsShareDialog::updateSharedData()
+{
+    TX_ENTRY_ARGS("STUB")
+    TX_EXIT_ARGS("STUB")
+}
+
+void MpDetailsShareDialog::reload()
+{
+    TX_ENTRY_ARGS("STUB")
+    TX_EXIT_ARGS("STUB")
+}
+
+void MpDetailsShareDialog::onIndexLoad( bool aOk )
+{
+    TX_ENTRY_ARGS("STUB")
+    TX_EXIT_ARGS("STUB")
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpengine.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,229 @@
+/*
+* 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: Wrapper for mpx framework utilities.
+*
+*/
+
+#include "mpengine.h"
+
+#include "mptrace.h"
+
+
+MpEngine::MpEngine()
+{
+    TX_LOG_ARGS("Stub")
+}
+
+/*!
+ Destructs music player engine.
+ */
+MpEngine::~MpEngine()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::refreshLibrary()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+bool MpEngine::verifyUsbBlocking( bool showMessage )
+{
+    TX_ENTRY_ARGS("Stub")
+    return false;
+}
+
+void MpEngine::checkForSystemEvents()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::handleScanStarted() 
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::handleScanEnded( int count, int error ) 
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::handleDiskEvent( MpxDiskEvents event )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::handleUsbEvent( MpxUsbEvents event )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::handleBlockingNoteClosing()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::openCollection( TCollectionContext context )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::openCollectionItem( int index )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::back()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::findPlaylists( QStringList &playlists )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::saveToPlaylist( int playlistIndex, QList<int> &selection )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::renamePlaylist( QString &newName, int index )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::renamePlaylist( QString &newName )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::deleteSongs( QList<int> &selection )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::previewItem( int index )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::openIsolatedCollection( TCollectionContext context )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::releaseIsolatedCollection()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::findAlbumSongs( int index )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::playAlbumSongs( int albumIndex, int songIndex )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+MpMpxCollectionData *MpEngine::collectionData()
+{
+    TX_ENTRY_ARGS("Stub")
+    return false;
+}
+
+void MpEngine::reopenCollection()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+MpPlaybackData *MpEngine::playbackData()
+{
+    TX_ENTRY_ARGS("Stub")
+    return false;
+}
+
+
+void MpEngine::playEmbedded( QString aFilename )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::playEmbedded(const XQSharableFile& file )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::playPause()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::stop()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::skipForward()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::skipBackward()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::setPosition( int position )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::setShuffle( bool mode )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+void MpEngine::setRepeat( bool mode )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+MpSongData *MpEngine::songData()
+{
+    TX_ENTRY_ARGS("Stub")
+    return 0;
+}
+
+void MpEngine::retrieveSong()
+{
+    TX_ENTRY_ARGS("Stub")
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpenginefactory.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,87 @@
+/*
+* 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: mp engine factory.
+*
+*/
+
+#include "mpengine.h"
+#include "mpenginefactory.h"
+#include "mptrace.h"
+
+/*!
+    \class MpEngineFactory
+    \brief Music Player engine factory.
+
+    MP Engine factory is responsible to create and mantain ownership of MP engines.
+*/
+
+/*!
+ Constructs music player engine factory.
+ */
+MpEngineFactory::MpEngineFactory()
+    : mSharedEngine( 0 )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+/*!
+ Destructs music player engine factory.
+ */
+MpEngineFactory::~MpEngineFactory()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+/*!
+ Returns the singleton instance of music player engine factory.
+ */
+MpEngineFactory * MpEngineFactory::instance()
+{
+    TX_LOG_ARGS("MpEngineFactory::instance() Stub")
+    static MpEngineFactory instance;
+    return &instance;
+}
+
+/*!
+ Returns an instance to an engine with \a hostUid, and \a mode, if the shared engine is 
+ already created parameters are ignored.
+ */
+MpEngine *MpEngineFactory::createSharedEngine( TUid hostUid , MpEngine::EngineMode mode )
+{
+    TX_LOG_ARGS("MpEngineFactory::createSharedEngine() Stub")
+    if ( !instance()->mSharedEngine ) {
+        instance()->mSharedEngine = new MpEngine();
+    }
+    return instance()->mSharedEngine;
+}
+
+/*!
+ Returns an instance to the current shared engine previously created with createEngine().
+ */
+MpEngine *MpEngineFactory::sharedEngine()
+{
+    return instance()->mSharedEngine;
+}
+
+/*!
+ Closes all engines created on this process.
+ */
+void MpEngineFactory::close()
+{
+    if ( instance()->mSharedEngine ) {
+        delete instance()->mSharedEngine;
+        instance()->mSharedEngine = 0;
+        
+    }
+}
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +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: Framework wrapper
-*
-*/
-
-
-#include "stub/inc/mpmpxdetailsframeworkwrapper.h"
-//#include "mptrace.h"
-
-/*!
- Constructs the utility wrapper.
- */
-MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper( QObject *parent )
-    : QObject(parent)
-{
-//    TX_ENTRY
-    iSongData = new MpSongData();
-//    TX_EXIT
-}
-
-/*!
- Destructs the utility wrapper.
- */
-MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper()
-{
-  //  TX_ENTRY
-
-    //TX_EXIT
-}
-
-/*!
- Returns pointer to MpSongData
- */
-MpSongData *MpMpxDetailsFrameworkWrapper::songData()
-{
-    return iSongData;
-}
-
-/*!
- Retrieve currently playing song meta data
- */
-void MpMpxDetailsFrameworkWrapper::retrieveSong()
-{
-    //TX_ENTRY
-        
-    //TX_EXIT
-}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpquerymanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,148 @@
+/*
+* 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: Music Player Query Manager.
+*
+*/
+
+#include "mpquerymanager.h"
+#include <QObject>
+#include <QList>
+#include <QFile>
+#include <QUrl>
+
+#include "mpdetailssharedialog.h"
+#include "mptrace.h"
+
+const int KRecommendationNum = 2;
+
+MpQueryManager::MpQueryManager(QObject *parent)
+                                :QObject(parent)
+{
+    TX_ENTRY_ARGS("STUB")
+    mRecommendationAlbumArtsName << "C:\\Data\\albumOne.png" << "C:\\Data\\albumTwo.png";
+    TX_EXIT_ARGS("STUB")
+}
+
+MpQueryManager::~MpQueryManager()
+{
+    TX_ENTRY_ARGS("STUB")
+    TX_EXIT_ARGS("STUB")
+}
+
+
+void MpQueryManager::clearNetworkReplies()
+{
+    TX_ENTRY_ARGS("STUB Reply count = ");
+    TX_EXIT_ARGS("STUB")
+}
+
+
+void MpQueryManager::queryLocalMusicStore(QString artist,QString album,QString title)
+{
+    TX_ENTRY_ARGS("STUB")
+    mArtist=artist;
+    mAlbum=album;
+    mTitle=title;
+    TX_EXIT_ARGS("STUB")    
+}
+    
+void MpQueryManager::queryInspireMeItems(QString artist,QString album,QString title)
+{
+    TX_ENTRY_ARGS("STUB")    
+    mArtist=artist;
+    mAlbum=album;
+    mTitle=title;
+    TX_EXIT_ARGS("STUB")
+}
+
+void MpQueryManager::clearRecommendations()
+{
+    TX_ENTRY_ARGS("STUB")    
+    mDownloadedAlbumArts = 0;
+    mAlbumArtsReadyCount = 0;
+    for ( int i = 0; i < KRecommendationNum; i++ ) {
+       mRecommendationSongs.clear();
+       mRecommendationArtists.clear();
+       mRecommendationAlbumArtsLink.clear();
+       mRecommendationAlbumArtsMap.clear();      
+       QFile file( mRecommendationAlbumArtsName.at( i ) );        
+       if ( file.exists() ) {
+           if ( file.remove() ) {
+               TX_LOG_ARGS( "File removed - " << file.fileName() );
+           }
+           else {
+               TX_LOG_ARGS( "Cannot remove file - " << file.fileName() );
+           }
+       } else {
+           TX_LOG_ARGS( "File doesn't exist - " << file.fileName() );
+       }
+    }
+    TX_EXIT_ARGS("STUB")    
+}
+
+/*!
+ Return recommendation songs
+ */
+QStringList MpQueryManager::recommendationSongs()
+{
+    TX_LOG  
+    return mRecommendationSongs;
+}
+
+/*!
+ Return recommendation artists
+ */
+QStringList MpQueryManager::recommendationArtists()
+{
+    TX_LOG  
+    return mRecommendationArtists;
+}
+
+/*!
+ Return recommendation album arts links
+ */
+QStringList MpQueryManager::recommendationAlbumArtsLink()
+{
+    TX_LOG  
+    return mRecommendationAlbumArtsLink;
+}
+
+/*!
+ Return map of name and pixmap
+ */
+QMap<QString, QPixmap>  MpQueryManager::recommendationAlbumArtsMap()
+{
+    TX_LOG  
+    return mRecommendationAlbumArtsMap;
+}
+
+/*!
+ Return the number of ready album arts
+ */
+int &MpQueryManager::albumArtsReadyCount()
+{
+    TX_LOG  
+    return mAlbumArtsReadyCount;
+}
+
+/*!
+ Insert one uri & pixmap item into map
+ */
+void MpQueryManager::insertMapItem( const QString &uri, const QPixmap &pixmap )
+{
+    TX_ENTRY_ARGS("STUB Map Item URI: " << uri );
+    mRecommendationAlbumArtsMap.insert( uri, pixmap );
+    TX_EXIT_ARGS("STUB")
+}
+
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpsongdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,8 +16,11 @@
 */
 
 
-#include <qstring>
-#include <qpixmap>
+#include <QString>
+#include <QPixmap>
+#include <QPainter>
+#include <QBuffer>
+#include <hbicon.h>
 
 #include "stub/inc/thumbnailmanager_qt.h"
 #include <thumbnaildata.h>
@@ -26,44 +29,14 @@
 #include "stub/inc/mpsongdata.h"
 #include "mptrace.h"
 
-
 const int KUndefined = -1;
 
-/*!
-    \class MpSongData
-    \brief Music Player song metadata.
 
-    Song data provide acces to current playing song metadata
-*/
-    
-/*!
-    \fn void albumArtReady()
-
-    This signal is albuma alrt is ready.
- */
-
-/*!
-    \fn void playbackInfoChanged()
-
-    This signal is emitted when basic information is available
- */
-    
-/*!
-    \fn void songDetailInfoChanged()
-
-    This signal is emitted when detail information is available
- */
-    
-       
-
-/*!
-    Constructs a new MpSongData.
- */
 MpSongData::MpSongData( QObject *parent )
     : QObject( parent ),
-      mTitle( NULL ),
-      mAlbum( NULL ),
-      mArtist( NULL ),
+      mTitle( QString( "title" ) ),
+      mAlbum( QString( "album" ) ),
+      mArtist( QString( "artist" ) ),
       mComposer( NULL),
       mGenre( NULL ),
       mYear( NULL ),
@@ -71,227 +44,218 @@
       mAlbumArt(),
       mReqId( KUndefined )
 {
-    //TX_ENTRY
+    TX_ENTRY_ARGS("Stub")
     mThumbnailManager = new ThumbnailManager( this );
     mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality );
     mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailMedium );
     QObject::connect( mThumbnailManager, SIGNAL( thumbnailReady( QPixmap , void * , int , int ) ),
             this, SLOT( thumbnailReady( QPixmap , void * , int , int  ) ) );
     
-    mDefaultAlbumArt = QPixmap( ":/detailsviewicons/defaultalbumart.png" );
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
 }
 
-/*!
- Constructs a new MpSongData.
- */
 MpSongData::~MpSongData()
 {
-    //TX_ENTRY
+    TX_ENTRY_ARGS("Stub")
     if( mThumbnailManager ) {
         delete mThumbnailManager;
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
 }
 
-/*!
- Returns the song album art on \a pixmap.
-*/
-void MpSongData::albumArt( QPixmap& pixmap )
+void MpSongData::albumArt( HbIcon& icon ) const
 {
-    //TX_ENTRY
-     if ( !mAlbumArt.isNull() ) {
-        pixmap = mAlbumArt;
-     }
-     else {
-         pixmap = QPixmap();
-     }
-    //TX_EXIT
+    TX_ENTRY_ARGS("Stub")
+    TX_EXIT_ARGS("Stub")
 }
 
 
-/*!
- Returns the song title.
-*/
 QString MpSongData::title() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mTitle;
 }
 
-/*!
- Returns the song album.
-*/
 QString MpSongData::album() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mAlbum;
 }
 
-/*!
- Returns the song artist.
-*/
 QString MpSongData::artist() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mArtist;
 }
 
-/*!
- Returns comment
-*/
 QString MpSongData::comment() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mComment;
 }
 
-/*!
- Returns the song composer.
-*/
 QString MpSongData::composer() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mComposer;
 }
 
 
-/*!
- Returns the song genre.
-*/
 QString MpSongData::genre() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mGenre;
 }
 
 
-/*!
- Returns the album track.
-*/
 QString MpSongData::albumTrack() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mAlbumTrack;
 }
 
-/*!
- Returns link
-*/
 QString MpSongData::link() const
 {
-    //TX_LOG
+    TX_ENTRY_ARGS("Stub")
     return mLink;
 }
 
-/*!
- Returns the release date.
-*/
 QString MpSongData::year() const
 {
-    //TX_LOG    
+    TX_ENTRY_ARGS("Stub")    
     return mYear;
 }
 
+QString MpSongData::fileName() const
+{
+    TX_LOG    
+    return mFileName;
+}
 
-/*!
- Sets the song \a title, returns true if the value is new.
-*/
+QString MpSongData::mimeType() const
+{
+    TX_LOG    
+    return mMimeType;   
+}
+
+QString MpSongData::duration() const
+{
+    TX_LOG    
+    return mDuration;  
+}
+
+QString MpSongData::bitRate() const
+{
+    TX_LOG    
+    return mBitRate;  
+}
+
+QString MpSongData::sampleRate() const
+{
+    TX_LOG    
+    return mSampleRate;  
+}
+
+QString MpSongData::size() const
+{
+    TX_LOG    
+    return mSize;  
+}
+
+QString MpSongData::modified() const
+{
+    TX_LOG    
+    return mModified;  
+}
+
+QString MpSongData::copyright() const
+{
+    TX_LOG    
+    return mCopyright;  
+}
+
+QString MpSongData::musicURL() const
+{
+    TX_LOG    
+    return mMusicURL;  
+}
+
+bool MpSongData::isDrmProtected() const
+{
+    TX_LOG    
+    return mDrmProtected;
+}
 bool MpSongData::setTitle( const QString &title )
 {
-    //TX_ENTRY_ARGS( "title =" << title )
+    TX_ENTRY_ARGS("Stub title =" << title )
     bool change = false;
     if ( title != mTitle ) {
         change = true;
         mTitle = title;
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
     return change;
 }
 
-/*!
- Sets the song \a album, returns true if the value is new.
-*/
 bool MpSongData::setAlbum( const QString &album )
 {
-    //TX_ENTRY_ARGS( "album =" << album )
-    bool change = false;
-    if ( album != mAlbum ) {
-        change = true;
-        mAlbum = album;
-    }
-    //TX_EXIT
-    return change;
+    TX_ENTRY_ARGS("Stub album =" << album )
+    TX_EXIT_ARGS("Stub")
+    return false;
 }
 
-/*!
- Sets the song \a artist, returns true if the value is new.
-*/
 bool MpSongData::setArtist( const QString &artist )
 {
-    //TX_ENTRY_ARGS( "artist =" << artist )
+    TX_ENTRY_ARGS("Stub artist =" << artist )
     bool change = false;
     if ( artist != mArtist ) {
         change = true;
         mArtist = artist;
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
     return change;
 }
 
-/*!
- Sets the song \a comment, returns true if the value is new.
-*/
 bool MpSongData::setComment( const QString &comment)
 {
-    //TX_ENTRY_ARGS( "comment =" << comment )
+    TX_ENTRY_ARGS("Stub comment =" << comment )
     bool change = false;
     if ( comment != mComment ) {
         change = true;
         mComment = comment;
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
     return change;
 }
 
-
-/*!
- Sets the song \a composer, returns true if the value is new.
-*/
 bool MpSongData::setComposer( const QString &composer )
 {
-    //TX_ENTRY_ARGS( "composer =" << composer )
+    TX_ENTRY_ARGS("Stub composer =" << composer )
     bool change = false;
     if ( composer != mComposer ) {
         change = true;
         mComposer = composer;
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
     return change;
 }
 
-/*!
- Sets the song \a genre, returns true if the value is new.
-*/
 bool MpSongData::setGenre( const QString &genre )
 {
-    //TX_ENTRY_ARGS( "genre =" << genre )
+    TX_ENTRY_ARGS("Stub genre =" << genre )
     bool change = false;
     if ( genre != mGenre ) {
         change = true;
         mGenre = genre;
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
     return change;
 }
 
 
-/*!
- Sets the song \a date, returns true if the value is new.
-*/
 bool MpSongData::setYear( int year )
 {
-    //TX_ENTRY_ARGS( "year =" << year )
+    TX_ENTRY_ARGS("Stub year =" << year )
     bool change = false;
     if ( QString::number(year) != mYear ) {
         change = true;
@@ -299,41 +263,32 @@
             mYear = QString::number(year);
         }
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
     return change;
 }
 
-/*!
- Sets the \a album track, returns true if the value is new.
-*/
 bool MpSongData::setAlbumTrack( const QString &track )
 {
-    //TX_ENTRY_ARGS( "track =" << track )
+    TX_ENTRY_ARGS("Stub track =" << track )
     bool change = false;
     if ( track != mAlbumTrack ) {
         change = true;
         mAlbumTrack = track;
     }
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
     return change;
 }
 
-/*!
- Sets the \a link
-*/
 void MpSongData::setLink( const QString &link )
 {
-    //TX_ENTRY_ARGS( "Link =" << link )
+    TX_ENTRY_ARGS("Stub Link =" << link )
     mLink = link;
-    //TX_EXIT
+    TX_EXIT_ARGS("Stub")
 }
 
-/*!
- Sets the song \a albumArtUri.
-*/
 void MpSongData::setAlbumArtUri( const QString &albumArtUri)
 {
-    //TX_ENTRY_ARGS( "albumArtUri = " << albumArtUri )
+    TX_ENTRY_ARGS("Stub albumArtUri = " << albumArtUri )
     if ( !albumArtUri.isEmpty() ) {
         bool ok = true;
         if ( mReqId != KUndefined ) {
@@ -354,52 +309,191 @@
         mAlbumArt = mDefaultAlbumArt;
         emit albumArtReady();
     }
-    //TX_EXIT
+    TX_EXIT
+}
+
+bool MpSongData::setFileName( const QString &fileName )
+{
+    TX_ENTRY_ARGS( "File name =" << fileName )
+    bool change = false;
+    if ( fileName != mFileName ) {
+        change = true;
+        mFileName = fileName;
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setMimeType( const QString &mimeType )
+{    
+    TX_ENTRY_ARGS( "Mime =" << mimeType )
+    bool change = false;
+    if ( mimeType != mMimeType ) {
+        change = true;
+        mMimeType = mimeType;
+    }
+    TX_EXIT
+    return change;    
+}
+
+bool MpSongData::setDuration( int duration )
+{   
+    TX_ENTRY_ARGS( "Duration =" << duration )
+    bool change = false;
+    QString timeFormatOne("%1:%2:%3");
+    QString timeFormatTwo("%1:%2");
+    if ( QString::number( duration ) != mDuration ) {
+        change = true;
+        if ( duration >= 3600 ) {
+            // more than one hours
+            QString hourStr, minStr, secStr;
+            int hour = duration / 3600;
+            int min = duration % 3600 / 60;
+            int sec = duration % 3600 % 60;
+            
+            hourStr = hour >= 10 ? QString::number( hour ) : QString::number( hour ).prepend( "0" );
+            minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" );
+            secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" );            
+            mDuration = timeFormatOne.arg( hourStr ).arg( minStr ).arg( secStr );
+        } else if ( duration >= 60 && duration < 3600 ) {
+            // more than one min && less than one hour
+            QString minStr, secStr;
+            int min = duration / 60;
+            int sec = duration % 60;
+            
+            minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" );
+            secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" );     
+            mDuration = timeFormatTwo.arg( minStr ).arg( secStr );
+        } else if ( duration > 0 && duration < 60 ) {
+            QString secStr;
+            secStr = duration >= 10 ? QString::number( duration ) : QString::number( duration ).prepend( "0" ); 
+            mDuration = secStr;
+        } else {
+            mDuration = QString();
+        }
+    }
+    TX_EXIT
+    return change;
 }
 
+bool MpSongData::setBitRate( int bitRate)
+{
+    TX_ENTRY_ARGS( "Bit rate =" << bitRate )
+    bool change = false;
+    if ( QString::number( bitRate ) != mBitRate ) {
+        change = true;
+        if ( bitRate > 0 ) {
+            mBitRate = QString::number( bitRate / 1000 );
+        } else {
+            mBitRate = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
 
-/*!
- Slot to handle the album art thumb.
-*/
+bool MpSongData::setSampleRate( int sampleRate )
+{
+    TX_ENTRY_ARGS( "Sample rate =" << sampleRate )
+    bool change = false;
+    if ( QString::number( sampleRate ) != mSampleRate ) {
+        change = true;
+        if ( sampleRate > 0 ) {
+            mSampleRate = QString::number( sampleRate );
+        } else {
+            mSampleRate = QString();
+        }
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setSize( int size )
+{   
+    TX_ENTRY_ARGS( "Size =" << size )
+    bool change = false;
+    if ( QString::number( size ) != mSize ) {
+        change = true;
+        mSize = QString::number( size / 1000 ).append( " MB" );
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setModified( const QString &modified )
+{
+    TX_ENTRY_ARGS( "Modified =" << modified )
+    bool change = false;
+    if ( modified != mModified ) {
+        change = true;
+        mModified = modified;
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setCopyright( const QString &copyright )
+{
+    TX_ENTRY_ARGS( "Copyright =" << copyright )
+    bool change = false;
+    if ( copyright != mCopyright ) {
+        change = true;
+        mCopyright = copyright;
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setMusicURL( const QString &musicURL )
+{
+    TX_ENTRY_ARGS( "Music URL =" << musicURL )
+    bool change = false;
+    if ( musicURL != mMusicURL ) {
+        change = true;
+        mMusicURL = musicURL;
+    }
+    TX_EXIT
+    return change;
+}
+
+bool MpSongData::setDrmProtected( bool drmProtected )
+{
+    TX_ENTRY_ARGS( "DRM protected =" << drmProtected )
+    bool change = false;
+    if ( drmProtected != mDrmProtected ) {
+        change = true;
+        mDrmProtected = drmProtected;
+    }
+    TX_EXIT
+    return change;
+}
+
 void MpSongData::thumbnailReady(
         const QPixmap& pixmap,
         void *data,
         int id,
         int error  )
 {
-    //TX_ENTRY
+    TX_ENTRY_ARGS("Stub")
     Q_UNUSED( data );
-    if ( error == 0 && mReqId == id ) {
-        mReqId = 0;
-        mAlbumArt = pixmap;
-        emit albumArtReady();
-    }
-    else {
-        mReqId = 0;
-        mAlbumArt = mDefaultAlbumArt; 
-        emit albumArtReady();
-    }
+    TX_EXIT_ARGS("Stub")
+}
 
-    //TX_EXIT
+void MpSongData::commitPlaybackInfo()
+{
+    TX_ENTRY_ARGS("Stub")
+    emit playbackInfoChanged();
+    TX_EXIT_ARGS("Stub")
 }
 
-/*!
- Emit signal when playback information changed, such as artist, track name
-*/
-void MpSongData::commitPlaybackInfo()
+void MpSongData::commitSongDetailInfo()
 {
-    //TX_ENTRY
-    emit playbackInfoChanged();
-    //TX_EXIT
+    TX_ENTRY_ARGS("Stub")
+    emit songDetailInfoChanged();
+    TX_EXIT_ARGS("Stub")
 }
 
-/*!
- Emit signal when song detail information changed
-*/
-void MpSongData::commitSongDetailInfo()
+QString MpSongData::albumArtBase64() const
 {
-    //TX_ENTRY
-    emit songDetailInfoChanged();
-    //TX_EXIT
+    return QString();
 }
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -14,8 +14,9 @@
 * Description: ThumbnailManager stub for testing MpSongData
 *
 */
-#include <qsize.h>
+#include <QSize>
 #include "stub/inc/thumbnailmanager_qt.h"
+#include "mptrace.h"
 
 int gInitCounter = 0;
 
@@ -25,6 +26,7 @@
  */
 int ThumbnailManager::getInitCounter()
 {
+    TX_LOG_ARGS("ThumbnailManager::getInitCounter() STUB");
     return gInitCounter;
 }
 
@@ -33,63 +35,52 @@
  */
 void ThumbnailManager::resetInitCounter()
 {
+    TX_LOG_ARGS("ThumbnailManager::resetInitCounter() STUB");
     gInitCounter = 0;
 }
 
-/*!
- Stub function.
- */
 ThumbnailManager::ThumbnailManager( QObject* parentPtr ) :
 QObject( parentPtr ),
 mGetThumbFails(false),
 mThumbnailReqCounter(0),
 mCancelCounter(0)
 {
+    TX_ENTRY_ARGS("Stub")    
     gInitCounter++;
 }
 
-/*!
- Stub function.
- */
 ThumbnailManager::~ThumbnailManager()
 {
+    TX_ENTRY_ARGS("Stub")    
     gInitCounter--;
 }
 
-/*!
- Stub function.
- */
 bool ThumbnailManager::setMode( ThumbnailMode mode )
 {
+    TX_ENTRY_ARGS("Stub")    
     Q_UNUSED(mode);
     return true;
 }
 
-/*!
- Stub function.
- */
 bool ThumbnailManager::setQualityPreference( QualityPreference
     qualityPreference )
 {
+    TX_ENTRY_ARGS("Stub")    
     Q_UNUSED(qualityPreference);
     return true;
 }
 
-/*!
- Stub function.
- */
 bool ThumbnailManager::setThumbnailSize( ThumbnailSize thumbnailSize )
 {
+    TX_ENTRY_ARGS("Stub")    
     Q_UNUSED(thumbnailSize);
     return true;
 }
 
-/*!
- Stub function.
- */
 int ThumbnailManager::getThumbnail( const QString& fileName, void *clientData,
         int priority )
 {
+    TX_ENTRY_ARGS("Stub")    
     Q_UNUSED(fileName);
     Q_UNUSED(priority);
 
@@ -109,11 +100,9 @@
     return mThumbnailReqCounter;
 }
 
-/*!
- Stub function.
- */
 bool ThumbnailManager::cancelRequest( int id )
 {
+    TX_ENTRY_ARGS("Stub")    
     Q_UNUSED(id);
     mCancelCounter++;
     return true;
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/unittest_mpdetailsview.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/unittest_mpdetailsview.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -1,10 +1,23 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Tue 9. Mar 14:34:59 2010
-######################################################################
+#
+# 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
-CONFIG += qtestlib hb
-
+CONFIG += qtestlib \
+					symbian_test \
+					hb
 QT += webkit \
     network \
     xml
@@ -13,24 +26,33 @@
 DEPENDPATH += . 
 INCLUDEPATH += ./stub/inc \
 	       ../../inc \
-	       ../../../../inc \
+	       ../../../../inc
 	       
 
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
 
-LIBS += -lmpxviewframeworkqt.dll
+LIBS += -lmpxviewframeworkqt.dll \
+        -lmpsettingsmanager.dll
 
 # Input
 HEADERS += inc/unittest_mpdetailsview.h \
 		   ../../inc/mpdetailsview.h \
-	       stub/inc/mpmpxdetailsframeworkwrapper.h \
+		   stub/inc/mpquerymanager.h \
+		   stub/inc/mpengine.h \
+		   stub/inc/mpenginefactory.h \
            stub/inc/mpsongdata.h \
-           stub/inc/thumbnailmanager_qt.h
+           stub/inc/thumbnailmanager_qt.h \
+           stub/inc/mpdetailssharedialog.h \
+           ../../../../inc/mpviewbase.h
+           
 
 SOURCES += src/unittest_mpdetailsview.cpp \
 	       ../../src/mpdetailsview.cpp \
-	       stub/src/mpmpxdetailsframeworkwrapper.cpp \
+		   stub/src/mpquerymanager.cpp \	       
+		   stub/src/mpengine.cpp \
+		   stub/src/mpenginefactory.cpp \		       
            stub/src/mpsongdata.cpp \
-           stub/src/thumbnailmanager_qt.cpp
+           stub/src/thumbnailmanager_qt.cpp \
+           stub/src/mpdetailssharedialog.cpp
 
-RESOURCES += ../../resources/mpdetailsviewresources.qrc
\ No newline at end of file
+RESOURCES += ../../resources/mpdetailsviewresources.qrc
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/CTCHTML.zip has changed
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/MON.dat has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/MON.sym	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,444 +0,0 @@
-CTC++ sym 5.0
-Fri Mar 12 15:15:16 2010
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_mpdetailsviewplugin.cpp
-3 1268393482
-0 0 55 0 MpDetailsViewPlugin::getStaticMetaObject
-0 90 0 0 ( )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\../../inc/mpdetailsviewplugin.h
-0 13 55 1 staticMetaObject
-1 0 58 0 MpDetailsViewPlugin::metaObject
-0 90 0 0 ( )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\../../inc/mpdetailsviewplugin.h
-0 25 60 1 QObject::d_ptr -> metaObject
-1 13 60 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 63 0 MpDetailsViewPlugin::qt_metacast
-0 90 0 0 ( const char * )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\../../inc/mpdetailsviewplugin.h
-1 20 65 1 ! _clname
-2 13 65 2 0
-2 20 66 1 ! strcmp ( _clname , qt_meta_stringdata_MpDetailsViewPlugin )
-3 13 67 2 static_cast < void * > ( const_cast < MpDetailsViewPlugin * > ( this ) )
-4 13 68 1 MpxViewPlugin::qt_metacast ( _clname )
-3 0 71 0 MpDetailsViewPlugin::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\../../inc/mpdetailsviewplugin.h
-3 20 74 1 _id < 0
-5 13 75 2 _id
-4 20 76 1 _c == QMetaObject::InvokeMetaMethod
-0 1 77 2 switch ( _id )
-6 14 78 2 0
-7 12 78 3
-8 14 79 2 1
-9 12 79 3
-10 14 80 2 2
-11 12 80 3
-12 15 81 2
-13 13 85 1 _id
-4 0 89 0 MpDetailsViewPlugin::command
-0 90 0 0 ( int command )
-0 91 43 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\../../inc/mpdetailsviewplugin.h
-%94,5,14,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_mpdetailsview.cpp
-3 1268393482
-0 0 49 0 MpDetailsView::getStaticMetaObject
-0 90 0 0 ( )
-0 91 26 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\stub/inc/mpdetailsview.h
-0 13 49 1 staticMetaObject
-1 0 52 0 MpDetailsView::metaObject
-0 90 0 0 ( )
-0 91 26 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\stub/inc/mpdetailsview.h
-0 25 54 1 QObject::d_ptr -> metaObject
-1 13 54 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 57 0 MpDetailsView::qt_metacast
-0 90 0 0 ( const char * )
-0 91 26 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\stub/inc/mpdetailsview.h
-1 20 59 1 ! _clname
-2 13 59 2 0
-2 20 60 1 ! strcmp ( _clname , qt_meta_stringdata_MpDetailsView )
-3 13 61 2 static_cast < void * > ( const_cast < MpDetailsView * > ( this ) )
-4 13 62 1 QGraphicsWidget::qt_metacast ( _clname )
-3 0 65 0 MpDetailsView::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 26 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\stub/inc/mpdetailsview.h
-3 20 68 1 _id < 0
-5 13 69 2 _id
-4 20 70 1 _c == QMetaObject::InvokeMetaMethod
-0 1 71 2 switch ( _id )
-6 14 72 2 0
-7 12 72 3
-8 15 73 2
-9 13 77 1 _id
-4 0 81 0 MpDetailsView::command
-0 90 0 0 ( int cmd )
-0 91 40 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\stub/inc/mpdetailsview.h
-%86,5,10,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsviewplugin.cpp
-3 1268393482
-0 0 42 0 MpDetailsViewPlugin::MpDetailsViewPlugin
-0 90 0 0 ( )
-0 91 33 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-1 0 52 0 MpDetailsViewPlugin::~MpDetailsViewPlugin
-0 90 0 0 ( )
-0 91 34 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-2 0 60 0 MpDetailsViewPlugin::createView
-0 90 0 0 ( )
-0 91 36 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-0 20 63 1 mState == NullView
-3 0 74 0 MpDetailsViewPlugin::destroyView
-0 90 0 0 ( )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-1 20 77 1 mState != NullView
-4 0 88 0 MpDetailsViewPlugin::activateView
-0 90 0 0 ( )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-0 1 91 1 switch ( mState )
-0 14 92 1 Created
-1 12 96 2
-2 14 97 1 Initialized
-3 12 100 2
-4 15 101 1
-5 12 103 2
-5 0 111 0 MpDetailsViewPlugin::deactivateView
-0 90 0 0 ( )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-2 20 114 1 mState == Activated
-6 0 127 0 MpDetailsViewPlugin::getView
-0 90 0 0 ( )
-0 91 40 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-6 13 130 1 mView
-7 0 138 0 MpDetailsViewPlugin::orientationChange
-0 90 0 0 ( Qt::Orientation orientation )
-0 91 46 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-8 0 149 0 MpDetailsViewPlugin::back
-0 90 0 0 ( )
-0 91 47 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h
-9 0 155 0 CmpdetailsviewpluginFactory::NewL
-0 90 0 0 ( )
-0 91 155 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\src\mpdetailsviewplugin.cpp
-7 13 155 1 new ( ELeave ) CmpdetailsviewpluginFactory
-10 0 155 0 CmpdetailsviewpluginFactory::constructPlugin
-0 90 0 0 ( )
-0 91 155 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\src\mpdetailsviewplugin.cpp
-8 13 155 1 new MpDetailsViewPlugin
-%156,11,9,3,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_unittest_mpdetailsviewplugin.cpp
-3 1268393482
-0 0 62 0 TestMpDetailsViewPlugin::getStaticMetaObject
-0 90 0 0 ( )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\inc/unittest_mpdetailsviewplugin.h
-0 13 62 1 staticMetaObject
-1 0 65 0 TestMpDetailsViewPlugin::metaObject
-0 90 0 0 ( )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\inc/unittest_mpdetailsviewplugin.h
-0 25 67 1 QObject::d_ptr -> metaObject
-1 13 67 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 70 0 TestMpDetailsViewPlugin::qt_metacast
-0 90 0 0 ( const char * )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\inc/unittest_mpdetailsviewplugin.h
-1 20 72 1 ! _clname
-2 13 72 2 0
-2 20 73 1 ! strcmp ( _clname , qt_meta_stringdata_TestMpDetailsViewPlugin )
-3 13 74 2 static_cast < void * > ( const_cast < TestMpDetailsViewPlugin * > ( this ) )
-4 13 75 1 QObject::qt_metacast ( _clname )
-3 0 78 0 TestMpDetailsViewPlugin::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\inc/unittest_mpdetailsviewplugin.h
-3 20 81 1 _id < 0
-5 13 82 2 _id
-4 20 83 1 _c == QMetaObject::InvokeMetaMethod
-0 1 84 2 switch ( _id )
-6 14 85 2 0
-7 12 85 3
-8 14 86 2 1
-9 12 86 3
-10 14 87 2 2
-11 12 87 3
-12 14 88 2 3
-13 12 88 3
-14 14 89 2 4
-15 12 89 3
-16 14 90 2 5
-17 12 90 3
-18 14 91 2 6
-19 12 91 3
-20 14 92 2 7
-21 12 92 3
-22 14 93 2 8
-23 12 93 3
-24 14 94 2 9
-25 12 94 3
-26 15 95 2
-27 13 99 1 _id
-%101,4,28,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp
-3 1268393485
-0 0 36 0 main
-0 90 0 0 ( int argc , char * argv [ ] )
-0 91 36 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpdetailsviewplugin\src\unittest_mpdetailsviewplugin.cpp
-0 13 49 1 res
-1 0 52 0 TestMpDetailsViewPlugin::TestMpDetailsViewPlugin
-0 90 0 0 ( )
-0 91 31 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-2 0 57 0 TestMpDetailsViewPlugin::~TestMpDetailsViewPlugin
-0 90 0 0 ( )
-0 91 32 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-3 0 65 0 TestMpDetailsViewPlugin::initTestCase
-0 90 0 0 ( )
-0 91 35 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-4 0 72 0 TestMpDetailsViewPlugin::cleanupTestCase
-0 90 0 0 ( )
-0 91 36 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-5 0 79 0 TestMpDetailsViewPlugin::init
-0 90 0 0 ( )
-0 91 37 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-6 0 87 0 TestMpDetailsViewPlugin::cleanup
-0 90 0 0 ( )
-0 91 38 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-7 0 96 0 TestMpDetailsViewPlugin::testConstructor
-0 90 0 0 ( )
-0 91 41 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-0 1 98 1 do
-0 20 98 2 ! QTest::qVerify ( ( ! mTest -> mView ) , "!mTest->mView" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 98 )
-1 13 98 3
-0 1 98 1 while ( 0 )
-0 1 99 1 do
-1 20 99 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::NullView , "mTest->mState" , "MpDetailsViewPlugin::NullView" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 99 )
-2 13 99 3
-0 1 99 1 while ( 0 )
-8 0 105 0 TestMpDetailsViewPlugin::testCreateView
-0 90 0 0 ( )
-0 91 42 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-0 1 108 1 do
-2 20 108 2 ! QTest::qVerify ( ( mTest -> mView ) , "mTest->mView" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 108 )
-3 13 108 3
-0 1 108 1 while ( 0 )
-0 1 109 1 do
-3 20 109 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::Created , "mTest->mState" , "MpDetailsViewPlugin::Created" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 109 )
-4 13 109 3
-0 1 109 1 while ( 0 )
-0 1 112 1 do
-4 20 112 2 ! QTest::qCompare ( spy . count ( ) , 1 , "spy.count()" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 112 )
-5 13 112 3
-0 1 112 1 while ( 0 )
-0 1 113 1 do
-5 20 113 2 ! QTest::qCompare ( spy . at ( 0 ) . at ( 0 ) , QVariant ( 123 ) , "spy.at( 0 ).at( 0 )" , "QVariant( 123 )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 113 )
-6 13 113 3
-0 1 113 1 while ( 0 )
-0 1 115 1 do
-6 20 115 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 115 )
-7 13 115 3
-0 1 115 1 while ( 0 )
-0 1 116 1 do
-7 20 116 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 116 )
-8 13 116 3
-0 1 116 1 while ( 0 )
-0 1 117 1 do
-8 20 117 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 117 )
-9 13 117 3
-0 1 117 1 while ( 0 )
-9 0 127 0 TestMpDetailsViewPlugin::testdestroyView
-0 90 0 0 ( )
-0 91 43 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-0 1 132 1 do
-9 20 132 2 ! QTest::qVerify ( ( ! mTest -> mView ) , "!mTest->mView" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 132 )
-10 13 132 3
-0 1 132 1 while ( 0 )
-0 1 137 1 do
-10 20 137 2 ! QTest::qVerify ( ( ! mTest -> mView ) , "!mTest->mView" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 137 )
-11 13 137 3
-0 1 137 1 while ( 0 )
-0 1 142 1 do
-11 20 142 2 ! QTest::qVerify ( ( ! mTest -> mView ) , "!mTest->mView" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 142 )
-12 13 142 3
-0 1 142 1 while ( 0 )
-0 1 147 1 do
-12 20 147 2 ! QTest::qVerify ( ( mTest -> mView ) , "mTest->mView" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 147 )
-13 13 147 3
-0 1 147 1 while ( 0 )
-0 1 149 1 do
-13 20 149 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 149 )
-14 13 149 3
-0 1 149 1 while ( 0 )
-0 1 150 1 do
-14 20 150 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 150 )
-15 13 150 3
-0 1 150 1 while ( 0 )
-0 1 151 1 do
-15 20 151 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 151 )
-16 13 151 3
-0 1 151 1 while ( 0 )
-10 0 160 0 TestMpDetailsViewPlugin::testActivateView
-0 90 0 0 ( )
-0 91 44 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-0 1 164 1 do
-16 20 164 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::NullView , "mTest->mState" , "MpDetailsViewPlugin::NullView" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 164 )
-17 13 164 3
-0 1 164 1 while ( 0 )
-0 1 169 1 do
-17 20 169 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::NullView , "mTest->mState" , "MpDetailsViewPlugin::NullView" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 169 )
-18 13 169 3
-0 1 169 1 while ( 0 )
-0 1 170 1 do
-18 20 170 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 170 )
-19 13 170 3
-0 1 170 1 while ( 0 )
-0 1 171 1 do
-19 20 171 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 171 )
-20 13 171 3
-0 1 171 1 while ( 0 )
-0 1 172 1 do
-20 20 172 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 172 )
-21 13 172 3
-0 1 172 1 while ( 0 )
-0 1 177 1 do
-21 20 177 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::Activated , "mTest->mState" , "MpDetailsViewPlugin::Activated" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 177 )
-22 13 177 3
-0 1 177 1 while ( 0 )
-0 1 178 1 do
-22 20 178 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 178 )
-23 13 178 3
-0 1 178 1 while ( 0 )
-0 1 179 1 do
-23 20 179 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 179 )
-24 13 179 3
-0 1 179 1 while ( 0 )
-0 1 180 1 do
-24 20 180 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 180 )
-25 13 180 3
-0 1 180 1 while ( 0 )
-0 1 185 1 do
-25 20 185 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::Activated , "mTest->mState" , "MpDetailsViewPlugin::Activated" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 185 )
-26 13 185 3
-0 1 185 1 while ( 0 )
-0 1 186 1 do
-26 20 186 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 1 , "mTest->mView->mInitializeViewCount" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 186 )
-27 13 186 3
-0 1 186 1 while ( 0 )
-0 1 187 1 do
-27 20 187 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 1 , "mTest->mView->mActivateViewCount" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 187 )
-28 13 187 3
-0 1 187 1 while ( 0 )
-0 1 188 1 do
-28 20 188 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 188 )
-29 13 188 3
-0 1 188 1 while ( 0 )
-0 1 193 1 do
-29 20 193 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::Activated , "mTest->mState" , "MpDetailsViewPlugin::Activated" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 193 )
-30 13 193 3
-0 1 193 1 while ( 0 )
-0 1 194 1 do
-30 20 194 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 194 )
-31 13 194 3
-0 1 194 1 while ( 0 )
-0 1 195 1 do
-31 20 195 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 1 , "mTest->mView->mActivateViewCount" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 195 )
-32 13 195 3
-0 1 195 1 while ( 0 )
-0 1 196 1 do
-32 20 196 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 196 )
-33 13 196 3
-0 1 196 1 while ( 0 )
-11 0 205 0 TestMpDetailsViewPlugin::testDeactivateView
-0 90 0 0 ( )
-0 91 45 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-0 1 209 1 do
-33 20 209 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::NullView , "mTest->mState" , "MpDetailsViewPlugin::NullView" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 209 )
-34 13 209 3
-0 1 209 1 while ( 0 )
-0 1 214 1 do
-34 20 214 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::NullView , "mTest->mState" , "MpDetailsViewPlugin::NullView" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 214 )
-35 13 214 3
-0 1 214 1 while ( 0 )
-0 1 215 1 do
-35 20 215 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 215 )
-36 13 215 3
-0 1 215 1 while ( 0 )
-0 1 216 1 do
-36 20 216 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 216 )
-37 13 216 3
-0 1 216 1 while ( 0 )
-0 1 217 1 do
-37 20 217 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 217 )
-38 13 217 3
-0 1 217 1 while ( 0 )
-0 1 222 1 do
-38 20 222 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::Created , "mTest->mState" , "MpDetailsViewPlugin::Created" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 222 )
-39 13 222 3
-0 1 222 1 while ( 0 )
-0 1 223 1 do
-39 20 223 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 223 )
-40 13 223 3
-0 1 223 1 while ( 0 )
-0 1 224 1 do
-40 20 224 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 224 )
-41 13 224 3
-0 1 224 1 while ( 0 )
-0 1 225 1 do
-41 20 225 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 225 )
-42 13 225 3
-0 1 225 1 while ( 0 )
-0 1 230 1 do
-42 20 230 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::Initialized , "mTest->mState" , "MpDetailsViewPlugin::Initialized" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 230 )
-43 13 230 3
-0 1 230 1 while ( 0 )
-0 1 231 1 do
-43 20 231 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 231 )
-44 13 231 3
-0 1 231 1 while ( 0 )
-0 1 232 1 do
-44 20 232 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 232 )
-45 13 232 3
-0 1 232 1 while ( 0 )
-0 1 233 1 do
-45 20 233 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 0 , "mTest->mView->mDeactivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 233 )
-46 13 233 3
-0 1 233 1 while ( 0 )
-0 1 238 1 do
-46 20 238 2 ! QTest::qCompare ( mTest -> mState , MpDetailsViewPlugin::Initialized , "mTest->mState" , "MpDetailsViewPlugin::Initialized" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 238 )
-47 13 238 3
-0 1 238 1 while ( 0 )
-0 1 239 1 do
-47 20 239 2 ! QTest::qCompare ( mTest -> mView -> mInitializeViewCount , 0 , "mTest->mView->mInitializeViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 239 )
-48 13 239 3
-0 1 239 1 while ( 0 )
-0 1 240 1 do
-48 20 240 2 ! QTest::qCompare ( mTest -> mView -> mActivateViewCount , 0 , "mTest->mView->mActivateViewCount" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 240 )
-49 13 240 3
-0 1 240 1 while ( 0 )
-0 1 241 1 do
-49 20 241 2 ! QTest::qCompare ( mTest -> mView -> mDeactivateViewCount , 1 , "mTest->mView->mDeactivateViewCount" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 241 )
-50 13 241 3
-0 1 241 1 while ( 0 )
-12 0 247 0 TestMpDetailsViewPlugin::testGetView
-0 90 0 0 ( )
-0 91 46 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h
-0 1 252 1 do
-50 20 252 2 ! QTest::qCompare ( int ( tmpView ) , int ( mTest -> getView ( ) ) , "int( tmpView )" , "int( mTest->getView() )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpdetailsviewplugin\\src\\unittest_mpdetailsviewplugin.cpp" , 252 )
-51 13 252 3
-0 1 252 1 while ( 0 )
-%257,13,52,51,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src/mpdetailsview.cpp
-3 1268393485
-0 0 24 0 MpDetailsView::MpDetailsView
-0 90 0 0 ( )
-0 91 29 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h
-1 0 34 0 MpDetailsView::~MpDetailsView
-0 90 0 0 ( )
-0 91 30 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h
-2 0 41 0 MpDetailsView::initializeView
-0 90 0 0 ( )
-0 91 32 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h
-3 0 49 0 MpDetailsView::activateView
-0 90 0 0 ( )
-0 91 33 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h
-4 0 57 0 MpDetailsView::deactivateView
-0 90 0 0 ( )
-0 91 34 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h
-5 0 65 0 MpDetailsView::resetCounters
-0 90 0 0 ( )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h
-6 0 75 0 MpDetailsView::emitCommand
-0 90 0 0 ( int cmd )
-0 91 36 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h
-%78,7,0,0,0,0
-END OF SYMBOLFILE
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/UT_mpdetailsviewplugin.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/UT_mpdetailsviewplugin.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -1,12 +1,23 @@
-; unittest_mpmpxpbframeworkwrapper_template.pkg generated by qmake at 2010-03-07T16:15:41
-; This file is generated by qmake and should not be modified by the user
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
-
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
 ; Language
 &EN
 
 ; SIS header: name, uid, version
-#{"unittest_mpdetailsviewplugin"},(0xE003e880),1,0,0
+#{"unittest_mpdetailsviewplugin"},(0xE003e881),1,0,0
 
 ; Localised Vendor name
 %{"Vendor"}
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/UT_mpdetailsviewplugin.sisx has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/ctcdata.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,652 +0,0 @@
-
-
-CTCRTS: Write coverage data to file 2010-03-12 13:39:14
-
-CTCDATA:<START:1j,1M,1,4,2,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,
-
-CTCDATA:1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l
-
-CTCDATA:,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1p,1q,1b,1X,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1q,1d,1r,1n,1t,1q,1b,1d,1r,k,1b,1o,1o,1S,w,1U,1l,1
-
-CTCDATA:t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r
-
-CTCDATA:,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,
-
-CTCDATA:1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,1,0,1,0,0,0,1,0,1,0,1j,1M,1,A,6,5,0
-
-CTCDATA:,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,
-
-CTCDATA:1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s
-
-CTCDATA:,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq3QT,1,1,1,1,1,4,4,1,1,1,0,1,1,1,1,4,4,1,1,1,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,1,1,1,1,1,1j,1M,1,J,q,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1
-
-CTCDATA:q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1
-
-CTCDATA:s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1l,1n,1b,1X,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,
-
-CTCDATA:1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U
-
-CTCDATA:,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,u,0,E,1,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,u,0,0,0,1,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,4,4,4,1,1,
-
-CTCDATA:1,1,1,1,0,D,0,0,0,1,D,u,0,0,D,0,18,1M,1,U,2,j,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1
-
-CTCDATA:k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d
-
-CTCDATA:,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,
-
-CTCDATA:1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1
-
-CTCDATA:G,k,1c,1Z,1s,1Nq3QO,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1a,1M,1,5,e,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S
-
-CTCDATA:,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1
-
-CTCDATA:f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,o,0,1,1,0,0,0,0,1,0,o,0
-
-CTCDATA:,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,1,0,0,0,0,1,o,0,0,1,0,1u,1M,1,4,1,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1
-
-CTCDATA:x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z
-
-CTCDATA:,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c
-
-CTCDATA:,1Z,1s,1Nq3QT,4,4,4,1,4,4,0,1,4,1c,1M,1,P,H,G,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1
-
-CTCDATA:m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,
-
-CTCDATA:1t,1a,l,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1
-
-CTCDATA:r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QT,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,1l,1M,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k
-
-CTCDATA:,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k
-
-CTCDATA:,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QU,0,0,8,4,0,8,8
-
-CTCDATA:,0,0,0,0,8,4,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,1g,1M,1,5,A,5,0,0,1S,w,l,
-
-CTCDATA:1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r
-
-CTCDATA:,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,
-
-CTCDATA:1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,0,G,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,1X,1M,1,7,c,F,0,
-
-CTCDATA:0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1
-
-CTCDATA:S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QQ,0,G,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:1v,1S,1,D,q,p,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,
-
-CTCDATA:1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1t,1m,1h,
-
-CTCDATA:1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v
-
-CTCDATA:,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq35R,1,1,1,1,1,6,6,1,1,1,1,1,1,0,1,1,1,1,6,6,1,1,1,1,1,1,1,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1v,1S,1,4,S,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,
-
-CTCDATA:1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1l,1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,1E,0,K,0,0,0,0,0,1E,0,0,0,0,1,1,1,1
-
-CTCDATA:,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,0,K,0,0,0,0,K,1E,0,0,K,0,1E,1S,1,B,9,
-
-CTCDATA:3,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq35O,6,6,1,4,5,5,1,0,0,0,0,6,6,1,4,5,5,0,0,0,0,0,1,1,1,1,3,3,1,
-
-CTCDATA:0,0,1,3,1,0,1,4,1l,1S,1,7,0,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d
-
-CTCDATA:,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:s,1t,1a,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o
-
-CTCDATA:,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,
-
-CTCDATA:1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35R,8,8,
-
-CTCDATA:1,2,1,6,1,8,8,1,2,1,6,1,1g,1S,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w
-
-CTCDATA:,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,2,0,0,1
-
-CTCDATA:,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1m,1S,1,5,E,5,0,0,1
-
-CTCDATA:S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1
-
-CTCDATA:u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1
-
-CTCDATA:s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h
-
-CTCDATA:,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,3,0,1,1,0,0,0,0,1,0,3,0,0,0,0,1,
-
-CTCDATA:1,0,0,0,0,0,1,0,0,0,0,1,3,0,0,1,0,2D,1b,1,T,V,h,0,0,1S,w,l,1l,1t,1r,1h
-
-CTCDATA:,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t
-
-CTCDATA:,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,
-
-CTCDATA:1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,
-
-CTCDATA:1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1
-
-CTCDATA:j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1
-
-CTCDATA:d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq366,Q,Q,Q,0,Q,Q,Q,
-
-CTCDATA:4,4,0,1,1,1,1,1,Y,Y,1,1,1,1,1,1,Q,R,1,1,0,R,0,0,0,0,0,0,0,0,0,0,0,1,1,
-
-CTCDATA:1,1,Y,Y,1,1,1,1,1,1,4,R,1,1,0,R,Q,Q,Q,0,Q,Q,Q,4,4,0,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,M,0,0,O,O,O,0,O,O,N,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,M,0,0,1,Q,P,P,P,Q,P,P,P,P,P,Q,2,2,2,0,2,2,3,1,1,0,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,Q,Q,Q,Q,Q,4,4,4,Q,1,2,2,2,1,2,2,2,2,2,1,2D,1b,1,4,U,
-
-CTCDATA:5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1l,1n
-
-CTCDATA:,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq363,0,1P,0,N,0,0,0,0,0,1P,0,0,0,0,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,0,N,0,0,0,0,N,1P,0,0,N,0,1P,1b,1,E,8,D,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l
-
-CTCDATA:,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,
-
-CTCDATA:1Z,1o,1o,1d,1q,1X,1o,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,
-
-CTCDATA:1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1
-
-CTCDATA:k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d
-
-CTCDATA:,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,
-
-CTCDATA:1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq4iQ,Y,Y,X,X,Y,X,1,1,
-
-CTCDATA:1,R,2f,1,1,1,Y,Y,X,X,Y,X,1,1,1,Q,0,1,1,1,0,0,0,0,1,2f,0,0,X,1,O,O,O,P,
-
-CTCDATA:P,O,O,O,O,O,Q,0,Q,2,2,2,1,1,2,2,2,2,2,0,1z,1b,1,V,A,2,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1
-
-CTCDATA:b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,
-
-CTCDATA:l,1l,1o,1w,1o,1k,1Z,1x,1a,1Z,1b,1j,1t,1s,1h,1k,1h,1s,1x,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G
-
-CTCDATA:,k,1c,1Z,1s,1Nq366,X,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,Y,0,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,X,0,1,0,0,0,0,0,0,Y,X,X,0,1,1x,1b,1,D,2,0,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z
-
-CTCDATA:,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,
-
-CTCDATA:1o,1w,1o,1k,1Z,1x,1d,1q,1l,1Z,1m,1Z,1f,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,
-
-CTCDATA:1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1
-
-CTCDATA:U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q
-
-CTCDATA:,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s
-
-CTCDATA:,1Nq367,X,0,0,0,0,0,0,0,0,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1q,1b,
-
-CTCDATA:1,7,3,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,
-
-CTCDATA:1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l
-
-CTCDATA:,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1r,1n,1t,1q,1b,1d,k,1b,1o,1o,1S,w,1
-
-CTCDATA:U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,
-
-CTCDATA:1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36A,X,0,0,0,0,1,0,X,0,0,0,0,1,0,0,0,0,1r,1b,1,P,H,B,0,0,1S
-
-CTCDATA:,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,
-
-CTCDATA:1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,
-
-CTCDATA:1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1
-
-CTCDATA:l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b
-
-CTCDATA:,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1N
-
-CTCDATA:q367,Y,X,0,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0,Q,0,P,Q,Y,X,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,Q,0,P,Q,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0
-
-CTCDATA:,N,N,N,N,O,E,Q,N,N,0,0,3,3,3,3,2,C,0,3,3,0,1N,1b,1,4,1,0,0,0,1S,w,l,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1
-
-CTCDATA:b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,
-
-CTCDATA:1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,
-
-CTCDATA:1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,
-
-CTCDATA:1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq362,Y,X,1,1,Y,X,0,1,1,1
-
-CTCDATA:m,1b,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1
-
-CTCDATA:o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d
-
-CTCDATA:,1q,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq362,0,0,0,0,Q,P,Q,0,0,0,0,Q,P,Q,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1d,1J,1,d,k,j,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1
-
-CTCDATA:s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3ia,1,1,1,1,1,X,Y,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,X,Y,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1d,1J,1,5,1K,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,
-
-CTCDATA:1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b
-
-CTCDATA:,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,
-
-CTCDATA:1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,5s,0,1a,2,0,0,0,0,2,0,5
-
-CTCDATA:s,0,0,0,0,0,0,1,1,1,1,V,V,V,V,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,0,1a,0,0,0,0,1a,5s,0,0,1a,0,15,1J,1,P,H,G,0,0,1S,w,l
-
-CTCDATA:,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b
-
-CTCDATA:,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36s,X,X,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,1,2,0,3,2,1,1,X,X,
-
-CTCDATA:2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,1,1,0,0,0,0,0,0,0,0,0,2,2,2,
-
-CTCDATA:2,2,2,1,2,X,0,1,1,1,1,1,1,1,1,1,2,1,2,1,1,0,2,1,1,1,1,1,1,0,0,1,1,1,0,
-
-CTCDATA:1,1,1i,1J,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1s,1t,1a,l,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,
-
-CTCDATA:1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,
-
-CTCDATA:1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U
-
-CTCDATA:,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,
-
-CTCDATA:k,1c,1Z,1s,1Nq36v,1,1,X,X,0,X,X,2,1,0,1,X,X,0,0,0,0,0,1,0,X,X,1,1,1,0,
-
-CTCDATA:1,2,1,1d,1J,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1
-
-CTCDATA:o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,
-
-CTCDATA:1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,
-
-CTCDATA:1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l
-
-CTCDATA:,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z
-
-CTCDATA:,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1
-
-CTCDATA:s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,
-
-CTCDATA:1Nq36s,0,15,0,2,2,0,0,0,0,2,0,15,0,0,0,0,2,2,0,2,0,0,0,0,2,15,0,0,2,0,
-
-CTCDATA:1U,1J,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,
-
-CTCDATA:1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,
-
-CTCDATA:1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o
-
-CTCDATA:,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1
-
-CTCDATA:f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,f,0,2,4,1,1,0,0,0,0,4,1,
-
-CTCDATA:1,0,f,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,f,0,0,2,0,0,0,0,0,0,0,0,0,0,0,>
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/ctcerr.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1513 +0,0 @@
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/includ
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsviewplugin.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsviewplugin.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsviewplugin.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5128.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2080.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1396.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4240.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5692.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsview.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsview.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src/mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1996.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpdetailsviewplugin{000a0000}[efb642d8].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpdetailsviewplugin.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpdetailsviewplugin.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/xqplugins.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[37]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[39]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[40]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[41]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[43]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[44]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[45]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[46]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[48]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[49]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[50]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[51]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[52]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[53]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[55]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[56]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[57]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5048.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsviewplugin.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsviewplugin.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsviewplugin.cpp
-
-gins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_unittest_mpdetailsviewplugin.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5496.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5960.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5952.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4748.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5892.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsview.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsview.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src/mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5804.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpdetailsviewplugin{000a0000}[efb642d8].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpdetailsviewplugin.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpdetailsviewplugin.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/xqplugins.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[37]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[39]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[40]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[41]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[43]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[44]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[45]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[46]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[48]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[49]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[50]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[51]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[52]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[53]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[55]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[56]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[57]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-3332.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/moc_mpdetailsview.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/moc_mpdetailsview.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugiv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/moc_mpdetailsviewplugin.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/moc_mpdetailsviewplugin.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_mpdetailsviewplugin.cpp
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsviewplugin.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsviewplugin.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsviewplugin.cpp
-
-gins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_unittest_mpdetailsviewplugin.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4956.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5668.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3204.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4652.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4356.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsview.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/mpdetailsview.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src/mpdetailsview.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5236.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpdetailsviewplugin{000a0000}[efb642d8].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpdetailsviewplugin.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpdetailsviewplugin.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpdetailsviewplugin/c_0aff2bab8ac9e677/unittest_mpdetailsviewplugin_exe/armv5/udeb/unittest_mpdetailsviewplugin_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/xqplugins.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[37]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[39]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[40]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[41]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[43]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[44]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[45]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[46]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[48]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[49]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[50]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[51]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[52]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[53]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[55]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[56]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[57]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5620.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/profile.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,616 +0,0 @@
-*****************************************************************************
-*           CTC++, Test Coverage Analyzer for C/C++, Version 6.5.5          *
-*                                                                           *
-*                         EXECUTION PROFILE LISTING                         *
-*                                                                           *
-*                    Copyright (c) 1993-2009 Testwell Oy                    *
-*****************************************************************************
-
-
-Symbol file(s) used   : MON.sym (Fri Mar 12 15:15:16 2010)
-Data file(s) used     : MON.dat (Fri Mar 12 15:56:49 2010)
-Listing produced at   : Fri Mar 12 16:00:41 2010
-Coverage view         : As instrumented
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_mpdetailsviewplugin.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    55 FUNCTION MpDetailsViewPlugin::getStaticMetaObject()
-         0            -    55 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpDetailsViewPlugin::getStaticMetaObject()
------------------------------------------------------------------------------
-
-        12          0      58 FUNCTION MpDetailsViewPlugin::metaObject()
-         0         12 -    60 ternary-?: QObject::d_ptr -> metaObject
-        12                 60 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION MpDetailsViewPlugin::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    63 FUNCTION MpDetailsViewPlugin::qt_metacast()
-         0          0 -    65 if (! _clname)
-         0            -    65   return 0
-         0          0 -    66 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    67   return static_cast < void * > ( const_cast <..
-         0            -    68 return MpxViewPlugin::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpDetailsViewPlugin::qt_metacast()
------------------------------------------------------------------------------
-
-         4          0      71 FUNCTION MpDetailsViewPlugin::qt_metacall()
-         0          4 -    74 if (_id < 0)
-         0            -    75   return _id
-         4          0 -    76 if (_c == QMetaObject::InvokeMetaMethod)
-                           77   switch ( _id )
-         4                 78   case 0:
-         4                 78     break
-         0            -    79   case 1:
-         0            -    79     break
-         0            -    80   case 2:
-         0            -    80     break
-         0            -    81   default:
-         4                 85 return _id
-
-***TER  43 % (  6/ 14) of FUNCTION MpDetailsViewPlugin::qt_metacall()
------------------------------------------------------------------------------
-
-         4          4      89 FUNCTION MpDetailsViewPlugin::command()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsViewPlugin::command()
------------------------------------------------------------------------------
-
-
-***TER  34 % ( 10/ 29) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_mpdetailsviewplugin.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_mpdetailsview.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    49 FUNCTION MpDetailsView::getStaticMetaObject()
-         0            -    49 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpDetailsView::getStaticMetaObject()
------------------------------------------------------------------------------
-
-         8          0      52 FUNCTION MpDetailsView::metaObject()
-         0          8 -    54 ternary-?: QObject::d_ptr -> metaObject
-         8                 54 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION MpDetailsView::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    57 FUNCTION MpDetailsView::qt_metacast()
-         0          0 -    59 if (! _clname)
-         0            -    59   return 0
-         0          0 -    60 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    61   return static_cast < void * > ( const_cast <..
-         0            -    62 return QGraphicsWidget::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpDetailsView::qt_metacast()
------------------------------------------------------------------------------
-
-         0          0 -    65 FUNCTION MpDetailsView::qt_metacall()
-         0          0 -    68 if (_id < 0)
-         0            -    69   return _id
-         0          0 -    70 if (_c == QMetaObject::InvokeMetaMethod)
-                           71   switch ( _id )
-         0            -    72   case 0:
-         0            -    72     break
-         0            -    73   default:
-         0            -    77 return _id
-
-***TER   0 % (  0/ 10) of FUNCTION MpDetailsView::qt_metacall()
------------------------------------------------------------------------------
-
-         4          4      81 FUNCTION MpDetailsView::command()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::command()
------------------------------------------------------------------------------
-
-
-***TER  16 % (  4/ 25) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_mpdetailsview.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsviewplugin.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        24         24      42 FUNCTION MpDetailsViewPlugin::MpDetailsViewPlugin()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsViewPlugin::MpDetailsViewPlugin()
------------------------------------------------------------------------------
-
-        24         24      52 FUNCTION MpDetailsViewPlugin::~MpDetailsViewPlugin()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsViewPlugin::~MpDetailsViewPlugin()
------------------------------------------------------------------------------
-
-         4          4      60 FUNCTION MpDetailsViewPlugin::createView()
-         4          0 -    63 if (mState == NullView)
-
-***TER  67 % (  2/  3) of FUNCTION MpDetailsViewPlugin::createView()
------------------------------------------------------------------------------
-
-        16         16      74 FUNCTION MpDetailsViewPlugin::destroyView()
-        12          4      77 if (mState != NullView)
-
-***TER 100 % (  3/  3) of FUNCTION MpDetailsViewPlugin::destroyView()
------------------------------------------------------------------------------
-
-        20         20      88 FUNCTION MpDetailsViewPlugin::activateView()
-                           91 switch ( mState )
-         4                 92 case Created:
-         4                 96   break
-         4                 97 case Initialized:
-         4                100   break
-        12                101 default:
-        12                103   break
-
-***TER 100 % (  7/  7) of FUNCTION MpDetailsViewPlugin::activateView()
------------------------------------------------------------------------------
-
-        20         20     111 FUNCTION MpDetailsViewPlugin::deactivateView()
-         4         16     114 if (mState == Activated)
-
-***TER 100 % (  3/  3) of FUNCTION MpDetailsViewPlugin::deactivateView()
------------------------------------------------------------------------------
-
-         4          0     127 FUNCTION MpDetailsViewPlugin::getView()
-         4                130 return mView
-
-***TER 100 % (  2/  2) of FUNCTION MpDetailsViewPlugin::getView()
------------------------------------------------------------------------------
-
-         0          0 -   138 FUNCTION MpDetailsViewPlugin::orientationChange()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsViewPlugin::orientationChange()
------------------------------------------------------------------------------
-
-         0          0 -   149 FUNCTION MpDetailsViewPlugin::back()
-
-***TER   0 % (  0/  1) of FUNCTION MpDetailsViewPlugin::back()
------------------------------------------------------------------------------
-
-         0          0 -   155 FUNCTION CmpdetailsviewpluginFactory::NewL()
-         0            -   155 return new ( ELeave ) CmpdetailsviewpluginFact..
-
-***TER   0 % (  0/  2) of FUNCTION CmpdetailsviewpluginFactory::NewL()
------------------------------------------------------------------------------
-
-         0          0 -   155 FUNCTION CmpdetailsviewpluginFactory::constructPlugin()
-         0            -   155 return new MpDetailsViewPlugin
-
-***TER   0 % (  0/  2) of FUNCTION CmpdetailsviewpluginFactory::constructPlugin()
------------------------------------------------------------------------------
-
-
-***TER  73 % ( 19/ 26) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpdetailsviewplugin.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_unittest_mpdetailsviewplugin.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    62 FUNCTION TestMpDetailsViewPlugin::getStaticMetaObject()
-         0            -    62 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION TestMpDetailsViewPlugin::getStaticMetaObject()
------------------------------------------------------------------------------
-
-       304          0      65 FUNCTION TestMpDetailsViewPlugin::metaObject()
-         0        304 -    67 ternary-?: QObject::d_ptr -> metaObject
-       304                 67 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION TestMpDetailsViewPlugin::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    70 FUNCTION TestMpDetailsViewPlugin::qt_metacast()
-         0          0 -    72 if (! _clname)
-         0            -    72   return 0
-         0          0 -    73 if (! strcmp ( _clname , qt_meta_stringdata_Te..
-         0            -    74   return static_cast < void * > ( const_cast <..
-         0            -    75 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION TestMpDetailsViewPlugin::qt_metacast()
------------------------------------------------------------------------------
-
-        80          0      78 FUNCTION TestMpDetailsViewPlugin::qt_metacall()
-         0         80 -    81 if (_id < 0)
-         0            -    82   return _id
-        80          0 -    83 if (_c == QMetaObject::InvokeMetaMethod)
-                           84   switch ( _id )
-         4                 85   case 0:
-         4                 85     break
-         4                 86   case 1:
-         4                 86     break
-        24                 87   case 2:
-        24                 87     break
-        24                 88   case 3:
-        24                 88     break
-         4                 89   case 4:
-         4                 89     break
-         4                 90   case 5:
-         4                 90     break
-         4                 91   case 6:
-         4                 91     break
-         4                 92   case 7:
-         4                 92     break
-         4                 93   case 8:
-         4                 93     break
-         4                 94   case 9:
-         4                 94     break
-         0            -    95   default:
-        80                 99 return _id
-
-***TER  86 % ( 24/ 28) of FUNCTION TestMpDetailsViewPlugin::qt_metacall()
------------------------------------------------------------------------------
-
-
-***TER  64 % ( 27/ 42) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/moc_unittest_mpdetailsviewplugin.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         4          0      36 FUNCTION main()
-         4                 49 return res
-
-***TER 100 % (  2/  2) of FUNCTION main()
------------------------------------------------------------------------------
-
-         4          4      52 FUNCTION TestMpDetailsViewPlugin::TestMpDetailsViewPlugin()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsViewPlugin::TestMpDetailsViewPlugin()
------------------------------------------------------------------------------
-
-         4          4      57 FUNCTION TestMpDetailsViewPlugin::~TestMpDetailsViewPlugin()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsViewPlugin::~TestMpDetailsViewPlugin()
------------------------------------------------------------------------------
-
-         4          4      65 FUNCTION TestMpDetailsViewPlugin::initTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsViewPlugin::initTestCase()
------------------------------------------------------------------------------
-
-         4          4      72 FUNCTION TestMpDetailsViewPlugin::cleanupTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsViewPlugin::cleanupTestCase()
------------------------------------------------------------------------------
-
-        24         24      79 FUNCTION TestMpDetailsViewPlugin::init()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsViewPlugin::init()
------------------------------------------------------------------------------
-
-        24         24      87 FUNCTION TestMpDetailsViewPlugin::cleanup()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpDetailsViewPlugin::cleanup()
------------------------------------------------------------------------------
-
-         4          4      96 FUNCTION TestMpDetailsViewPlugin::testConstructor()
-                           98 do
-         0          4 -    98   if (! QTest::qVerify ( ( ! mTest -> mView ) ..
-         0            -    98     return
-                           98 while ( 0 )
-                           99 do
-         0          4 -    99   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -    99     return
-                           99 while ( 0 )
-
-***TER  43 % (  3/  7) of FUNCTION TestMpDetailsViewPlugin::testConstructor()
------------------------------------------------------------------------------
-
-         4          4     105 FUNCTION TestMpDetailsViewPlugin::testCreateView()
-                          108 do
-         0          4 -   108   if (! QTest::qVerify ( ( mTest -> mView ) , ..
-         0            -   108     return
-                          108 while ( 0 )
-                          109 do
-         0          4 -   109   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   109     return
-                          109 while ( 0 )
-                          112 do
-         0          4 -   112   if (! QTest::qCompare ( spy . count ( ) , 1 ..
-         0            -   112     return
-                          112 while ( 0 )
-                          113 do
-         0          4 -   113   if (! QTest::qCompare ( spy . at ( 0 ) . at ..
-         0            -   113     return
-                          113 while ( 0 )
-                          115 do
-         0          4 -   115   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   115     return
-                          115 while ( 0 )
-                          116 do
-         0          4 -   116   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   116     return
-                          116 while ( 0 )
-                          117 do
-         0          4 -   117   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   117     return
-                          117 while ( 0 )
-
-***TER  36 % (  8/ 22) of FUNCTION TestMpDetailsViewPlugin::testCreateView()
------------------------------------------------------------------------------
-
-         4          4     127 FUNCTION TestMpDetailsViewPlugin::testdestroyView()
-                          132 do
-         0          4 -   132   if (! QTest::qVerify ( ( ! mTest -> mView ) ..
-         0            -   132     return
-                          132 while ( 0 )
-                          137 do
-         0          4 -   137   if (! QTest::qVerify ( ( ! mTest -> mView ) ..
-         0            -   137     return
-                          137 while ( 0 )
-                          142 do
-         0          4 -   142   if (! QTest::qVerify ( ( ! mTest -> mView ) ..
-         0            -   142     return
-                          142 while ( 0 )
-                          147 do
-         0          4 -   147   if (! QTest::qVerify ( ( mTest -> mView ) , ..
-         0            -   147     return
-                          147 while ( 0 )
-                          149 do
-         0          4 -   149   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   149     return
-                          149 while ( 0 )
-                          150 do
-         0          4 -   150   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   150     return
-                          150 while ( 0 )
-                          151 do
-         0          4 -   151   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   151     return
-                          151 while ( 0 )
-
-***TER  36 % (  8/ 22) of FUNCTION TestMpDetailsViewPlugin::testdestroyView()
------------------------------------------------------------------------------
-
-         4          4     160 FUNCTION TestMpDetailsViewPlugin::testActivateView()
-                          164 do
-         0          4 -   164   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   164     return
-                          164 while ( 0 )
-                          169 do
-         0          4 -   169   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   169     return
-                          169 while ( 0 )
-                          170 do
-         0          4 -   170   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   170     return
-                          170 while ( 0 )
-                          171 do
-         0          4 -   171   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   171     return
-                          171 while ( 0 )
-                          172 do
-         0          4 -   172   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   172     return
-                          172 while ( 0 )
-                          177 do
-         0          4 -   177   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   177     return
-                          177 while ( 0 )
-                          178 do
-         0          4 -   178   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   178     return
-                          178 while ( 0 )
-                          179 do
-         0          4 -   179   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   179     return
-                          179 while ( 0 )
-                          180 do
-         0          4 -   180   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   180     return
-                          180 while ( 0 )
-                          185 do
-         0          4 -   185   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   185     return
-                          185 while ( 0 )
-                          186 do
-         0          4 -   186   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   186     return
-                          186 while ( 0 )
-                          187 do
-         0          4 -   187   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   187     return
-                          187 while ( 0 )
-                          188 do
-         0          4 -   188   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   188     return
-                          188 while ( 0 )
-                          193 do
-         0          4 -   193   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   193     return
-                          193 while ( 0 )
-                          194 do
-         0          4 -   194   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   194     return
-                          194 while ( 0 )
-                          195 do
-         0          4 -   195   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   195     return
-                          195 while ( 0 )
-                          196 do
-         0          4 -   196   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   196     return
-                          196 while ( 0 )
-
-***TER  35 % ( 18/ 52) of FUNCTION TestMpDetailsViewPlugin::testActivateView()
------------------------------------------------------------------------------
-
-         4          4     205 FUNCTION TestMpDetailsViewPlugin::testDeactivateView()
-                          209 do
-         0          4 -   209   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   209     return
-                          209 while ( 0 )
-                          214 do
-         0          4 -   214   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   214     return
-                          214 while ( 0 )
-                          215 do
-         0          4 -   215   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   215     return
-                          215 while ( 0 )
-                          216 do
-         0          4 -   216   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   216     return
-                          216 while ( 0 )
-                          217 do
-         0          4 -   217   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   217     return
-                          217 while ( 0 )
-                          222 do
-         0          4 -   222   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   222     return
-                          222 while ( 0 )
-                          223 do
-         0          4 -   223   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   223     return
-                          223 while ( 0 )
-                          224 do
-         0          4 -   224   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   224     return
-                          224 while ( 0 )
-                          225 do
-         0          4 -   225   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   225     return
-                          225 while ( 0 )
-                          230 do
-         0          4 -   230   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   230     return
-                          230 while ( 0 )
-                          231 do
-         0          4 -   231   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   231     return
-                          231 while ( 0 )
-                          232 do
-         0          4 -   232   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   232     return
-                          232 while ( 0 )
-                          233 do
-         0          4 -   233   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   233     return
-                          233 while ( 0 )
-                          238 do
-         0          4 -   238   if (! QTest::qCompare ( mTest -> mState , Mp..
-         0            -   238     return
-                          238 while ( 0 )
-                          239 do
-         0          4 -   239   if (! QTest::qCompare ( mTest -> mView -> mI..
-         0            -   239     return
-                          239 while ( 0 )
-                          240 do
-         0          4 -   240   if (! QTest::qCompare ( mTest -> mView -> mA..
-         0            -   240     return
-                          240 while ( 0 )
-                          241 do
-         0          4 -   241   if (! QTest::qCompare ( mTest -> mView -> mD..
-         0            -   241     return
-                          241 while ( 0 )
-
-***TER  35 % ( 18/ 52) of FUNCTION TestMpDetailsViewPlugin::testDeactivateView()
------------------------------------------------------------------------------
-
-         4          4     247 FUNCTION TestMpDetailsViewPlugin::testGetView()
-                          252 do
-         0          4 -   252   if (! QTest::qCompare ( int ( tmpView ) , in..
-         0            -   252     return
-                          252 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpDetailsViewPlugin::testGetView()
------------------------------------------------------------------------------
-
-
-***TER  39 % ( 65/167) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src/mpdetailsview.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        32         32      24 FUNCTION MpDetailsView::MpDetailsView()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::MpDetailsView()
------------------------------------------------------------------------------
-
-        32         32      34 FUNCTION MpDetailsView::~MpDetailsView()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::~MpDetailsView()
------------------------------------------------------------------------------
-
-         4          4      41 FUNCTION MpDetailsView::initializeView()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::initializeView()
------------------------------------------------------------------------------
-
-         8          8      49 FUNCTION MpDetailsView::activateView()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::activateView()
------------------------------------------------------------------------------
-
-         4          4      57 FUNCTION MpDetailsView::deactivateView()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::deactivateView()
------------------------------------------------------------------------------
-
-        24         24      65 FUNCTION MpDetailsView::resetCounters()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::resetCounters()
------------------------------------------------------------------------------
-
-         4          4      75 FUNCTION MpDetailsView::emitCommand()
-
-***TER 100 % (  1/  1) of FUNCTION MpDetailsView::emitCommand()
------------------------------------------------------------------------------
-
-
-***TER 100 % (  7/  7) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src/mpdetailsview.cpp
------------------------------------------------------------------------------
-
-
-
-
-
-SUMMARY
-=======
-
-Number of monitored source files  : 6
-Number of source lines            : 772
-Number of measurement points      : 341
-TER                               : 45% (decision)
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/sis.bat	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of "Eclipse Public License v1.0"
@@ -14,7 +14,8 @@
 @rem Description: 
 @rem
 
+@echo off
 del *.sisx
 makesis UT_mpdetailsviewplugin.pkg
-signsis UT_mpdetailsviewplugin.sis UT_mpdetailsviewplugin.sisx ..\RndCerts\Nokia_RnDCert_02.der ..\RndCerts\Nokia_RnDCert_02.key
+signsis UT_mpdetailsviewplugin.sis UT_mpdetailsviewplugin.sisx %RNDCERTS_PATH%\Nokia_RnDCert_02.der %RNDCERTS_PATH%\Nokia_RnDCert_02.key
 del     UT_mpdetailsviewplugin.sis
\ No newline at end of file
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -39,14 +39,18 @@
     HbMainWindow window;
     TestMpDetailsViewPlugin tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpdetailsviewplugin.txt";
 
-    int res = QTest::qExec( &tv, 3, pass );
+if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpdetailsviewplugin.txt";
 
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }    
 }
 
 TestMpDetailsViewPlugin::TestMpDetailsViewPlugin()
@@ -71,6 +75,7 @@
  */
 void TestMpDetailsViewPlugin::cleanupTestCase()
 {
+QCoreApplication::processEvents();
 }
 
 /*!
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/unittest_mpdetailsviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/unittest_mpdetailsviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -16,6 +16,7 @@
 
 TEMPLATE = app
 CONFIG += qtestlib \
+					symbian_test \
     hb
 TARGET = 
 
@@ -38,4 +39,4 @@
 SOURCES += src/unittest_mpdetailsviewplugin.cpp \
 		       ../../src/mpdetailsviewplugin.cpp \
 		       stub/src/mpdetailsview.cpp
-           
+           
\ No newline at end of file
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/MON.dat has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/MON.sym	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,774 +0,0 @@
-CTC++ sym 5.0
-Tue Mar 16 12:57:21 2010
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp
-3 1268659888
-0 0 35 0 MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper
-0 90 0 0 ( QObject * parent = 0 )
-0 91 35 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper.h
-1 0 46 0 MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper
-0 90 0 0 ( )
-0 91 36 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper.h
-2 0 56 0 MpMpxDetailsFrameworkWrapper::songData
-0 90 0 0 ( )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper.h
-0 13 59 1 d_ptr -> songData ( )
-3 0 65 0 MpMpxDetailsFrameworkWrapper::retrieveSong
-0 90 0 0 ( )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper.h
-%70,4,1,0,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
-3 1268659888
-0 0 64 0 TestMpMpxDetailsFrameworkWrapper::getStaticMetaObject
-0 90 0 0 ( )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 13 64 1 staticMetaObject
-1 0 67 0 TestMpMpxDetailsFrameworkWrapper::metaObject
-0 90 0 0 ( )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 25 69 1 QObject::d_ptr -> metaObject
-1 13 69 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 72 0 TestMpMpxDetailsFrameworkWrapper::qt_metacast
-0 90 0 0 ( const char * )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\inc/unittest_mpmpxdetailsframeworkwrapper.h
-1 20 74 1 ! _clname
-2 13 74 2 0
-2 20 75 1 ! strcmp ( _clname , qt_meta_stringdata_TestMpMpxDetailsFrameworkWrapper )
-3 13 76 2 static_cast < void * > ( const_cast < TestMpMpxDetailsFrameworkWrapper * > ( this ) )
-4 13 77 1 QObject::qt_metacast ( _clname )
-3 0 80 0 TestMpMpxDetailsFrameworkWrapper::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 30 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\inc/unittest_mpmpxdetailsframeworkwrapper.h
-3 20 83 1 _id < 0
-5 13 84 2 _id
-4 20 85 1 _c == QMetaObject::InvokeMetaMethod
-0 1 86 2 switch ( _id )
-6 14 87 2 0
-7 12 87 3
-8 14 88 2 1
-9 12 88 3
-10 14 89 2 2
-11 12 89 3
-12 14 90 2 3
-13 12 90 3
-14 14 91 2 4
-15 12 91 3
-16 14 92 2 5
-17 12 92 3
-18 14 93 2 6
-19 12 93 3
-20 14 94 2 7
-21 12 94 3
-22 14 95 2 8
-23 12 95 3
-24 14 96 2 9
-25 12 96 3
-26 14 97 2 10
-27 12 97 3
-28 15 98 2
-29 13 102 1 _id
-%104,4,30,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
-3 1268659891
-0 0 46 0 MpMpxDetailsFrameworkWrapper::getStaticMetaObject
-0 90 0 0 ( )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\../../inc/mpmpxdetailsframeworkwrapper.h
-0 13 46 1 staticMetaObject
-1 0 49 0 MpMpxDetailsFrameworkWrapper::metaObject
-0 90 0 0 ( )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\../../inc/mpmpxdetailsframeworkwrapper.h
-0 25 51 1 QObject::d_ptr -> metaObject
-1 13 51 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 54 0 MpMpxDetailsFrameworkWrapper::qt_metacast
-0 90 0 0 ( const char * )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\../../inc/mpmpxdetailsframeworkwrapper.h
-1 20 56 1 ! _clname
-2 13 56 2 0
-2 20 57 1 ! strcmp ( _clname , qt_meta_stringdata_MpMpxDetailsFrameworkWrapper )
-3 13 58 2 static_cast < void * > ( const_cast < MpMpxDetailsFrameworkWrapper * > ( this ) )
-4 13 59 1 QObject::qt_metacast ( _clname )
-3 0 62 0 MpMpxDetailsFrameworkWrapper::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\../../inc/mpmpxdetailsframeworkwrapper.h
-3 20 65 1 _id < 0
-5 13 66 2 _id
-6 13 67 1 _id
-%69,4,7,4,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
-3 1268737034
-0 0 43 0 MpMpxDetailsFrameworkWrapperPrivate::MpMpxDetailsFrameworkWrapperPrivate
-0 90 0 0 ( MpMpxDetailsFrameworkWrapper * qq )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-1 60 50 3
-0 63 50 3 XLeaveException & l
-1 63 50 3 ...
-2 0 57 0 MpMpxDetailsFrameworkWrapperPrivate::~MpMpxDetailsFrameworkWrapperPrivate
-0 90 0 0 ( )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-3 60 61 2
-2 63 61 2 XLeaveException & l
-3 63 61 2 ...
-4 0 69 0 MpMpxDetailsFrameworkWrapperPrivate::constructProviderL
-0 90 0 0 ( )
-0 91 54 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-5 0 85 0 MpMpxDetailsFrameworkWrapperPrivate::destructProviderL
-0 90 0 0 ( )
-0 91 55 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-0 20 88 1 iPlaybackUtility
-6 0 103 0 MpMpxDetailsFrameworkWrapperPrivate::HandlePlaybackMessage
-0 90 0 0 ( CMPXMessage * aMessage , TInt aError )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-7 0 114 0 MpMpxDetailsFrameworkWrapperPrivate::HandlePropertyL
-0 90 0 0 ( TMPXPlaybackProperty aProperty , TInt aValue , TInt aError )
-0 91 44 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-8 0 122 0 MpMpxDetailsFrameworkWrapperPrivate::HandleSubPlayerNamesL
-0 90 0 0 ( TUid aPlayer , const MDesC16Array * aSubPlayers , TBool aComplete , TInt aError )
-0 91 45 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-9 0 130 0 MpMpxDetailsFrameworkWrapperPrivate::HandleMediaL
-0 90 0 0 ( const CMPXMedia & aProperties , TInt aError )
-0 91 47 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-1 20 136 1 KErrNone != aError
-4 13 139 2
-2 20 143 1 aProperties . IsSupported ( KMPXMediaGeneralTitle )
-0 1 148 1 else
-3 20 152 1 aProperties . IsSupported ( KMPXMediaMusicArtist )
-0 1 157 1 else
-4 20 161 1 aProperties . IsSupported ( KMPXMediaMusicAlbum )
-0 1 166 1 else
-5 20 169 1 changed
-6 20 174 1 aProperties . IsSupported ( TMPXAttribute ( KMPXMediaMusicAlbumArtFileName ) )
-0 1 179 1 else
-7 20 185 1 aProperties . IsSupported ( KMPXMediaGeneralComment )
-0 1 191 1 else
-8 20 195 1 aProperties . IsSupported ( TMPXAttribute ( KMPXMediaMusicComposer ) )
-0 1 201 1 else
-9 20 205 1 aProperties . IsSupported ( TMPXAttribute ( KMPXMediaMusicYear ) )
-0 1 209 1 else
-10 20 214 1 aProperties . IsSupported ( TMPXAttribute ( KMPXMediaMusicAlbumTrack ) )
-0 1 219 1 else
-11 20 223 1 aProperties . IsSupported ( TMPXAttribute ( KMPXMediaMusicGenre ) )
-0 1 228 1 else
-12 20 232 1 changed
-10 0 241 0 MpMpxDetailsFrameworkWrapperPrivate::songData
-0 90 0 0 ( )
-0 91 50 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-5 13 244 1 iSongData
-11 0 250 0 MpMpxDetailsFrameworkWrapperPrivate::retrieveSong
-0 90 0 0 ( )
-0 91 51 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-12 60 253 2
-6 63 253 2 XLeaveException & l
-7 63 253 2 ...
-13 0 260 0 MpMpxDetailsFrameworkWrapperPrivate::doRetrieveSongL
-0 90 0 0 ( )
-0 91 56 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h
-%282,14,8,13,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
-3 1268664710
-0 0 140 0 referenceGeneralTitle
-0 90 0 0 ( int index )
-0 91 140 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-0 20 144 1 title . Match ( KOff ) == KErrNotFound
-0 13 148 1 result
-1 0 151 0 referenceMusicArtist
-0 90 0 0 ( int index )
-0 91 151 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-1 20 155 1 artist . Match ( KOff ) == KErrNotFound
-1 13 159 1 result
-2 0 162 0 referenceMusicAlbum
-0 90 0 0 ( int index )
-0 91 162 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-2 20 166 1 album . Match ( KOff ) == KErrNotFound
-2 13 170 1 result
-3 0 173 0 referenceMusicAlbumArtFileName
-0 90 0 0 ( int index )
-0 91 173 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-3 20 177 1 musicAlbumArtFileName . Match ( KOff ) == KErrNotFound
-3 13 181 1 result
-4 0 184 0 referenceComment
-0 90 0 0 ( int index )
-0 91 184 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-4 20 188 1 musicComment . Match ( KOff ) == KErrNotFound
-4 13 192 1 result
-5 0 195 0 referenceComposer
-0 90 0 0 ( int index )
-0 91 195 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-5 20 199 1 composer . Match ( KOff ) == KErrNotFound
-5 13 203 1 result
-6 0 206 0 referenceYear
-0 90 0 0 ( int index )
-0 91 206 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-6 25 208 1 ( KAllSongsTestData [ index ] . Year >= 0 )
-6 13 208 1 ( KAllSongsTestData [ index ] . Year >= 0 ) ? KAllSongsTestData [ index ] . Year : 0
-7 0 211 0 referenceMusicAlbumTrack
-0 90 0 0 ( int index )
-0 91 211 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-7 20 215 1 musicAlbumTrack . Match ( KOff ) == KErrNotFound
-7 13 219 1 result
-8 0 222 0 referenceMusicGenre
-0 90 0 0 ( int index )
-0 91 222 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-8 20 226 1 musicGenre . Match ( KOff ) == KErrNotFound
-8 13 230 1 result
-9 0 233 0 referenceMusicUri
-0 90 0 0 ( int index )
-0 91 233 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-9 20 237 1 musicUri . Match ( KOff ) == KErrNotFound
-9 13 241 1 result
-10 0 247 0 main
-0 90 0 0 ( int argc , char * argv [ ] )
-0 91 247 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\src\unittest_mpmpxdetailsframeworkwrapper.cpp
-10 13 261 1 res
-11 0 264 0 TestMpMpxDetailsFrameworkWrapper::TestMpMpxDetailsFrameworkWrapper
-0 90 0 0 ( )
-0 91 34 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-12 0 271 0 TestMpMpxDetailsFrameworkWrapper::~TestMpMpxDetailsFrameworkWrapper
-0 90 0 0 ( )
-0 91 35 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-13 0 279 0 TestMpMpxDetailsFrameworkWrapper::initTestCase
-0 90 0 0 ( )
-0 91 46 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-14 0 286 0 TestMpMpxDetailsFrameworkWrapper::cleanupTestCase
-0 90 0 0 ( )
-0 91 47 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-15 0 293 0 TestMpMpxDetailsFrameworkWrapper::init
-0 90 0 0 ( )
-0 91 48 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 1 298 1 do
-0 1 298 1 while ( 0 )
-16 0 308 0 TestMpMpxDetailsFrameworkWrapper::cleanup
-0 90 0 0 ( )
-0 91 49 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 1 316 1 do
-0 1 316 1 while ( 0 )
-17 0 324 0 TestMpMpxDetailsFrameworkWrapper::testConstructor
-0 90 0 0 ( )
-0 91 52 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 1 326 1 do
-10 20 326 2 ! QTest::qVerify ( ( mTestPrivate -> q_ptr ) , "mTestPrivate->q_ptr" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 326 )
-11 13 326 3
-0 1 326 1 while ( 0 )
-0 1 327 1 do
-11 20 327 2 ! QTest::qVerify ( ( mTestPrivate -> iPlaybackUtility ) , "mTestPrivate->iPlaybackUtility" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 327 )
-12 13 327 3
-0 1 327 1 while ( 0 )
-0 1 328 1 do
-12 20 328 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData ) , "mTestPrivate->iSongData" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 328 )
-13 13 328 3
-0 1 328 1 while ( 0 )
-18 0 335 0 TestMpMpxDetailsFrameworkWrapper::testSongData
-0 90 0 0 ( )
-0 91 53 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 1 337 1 do
-13 20 337 2 ! QTest::qCompare ( mTestPrivate -> iSongData , mTest -> songData ( ) , "mTestPrivate->iSongData" , "mTest->songData()" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 337 )
-14 13 337 3
-0 1 337 1 while ( 0 )
-19 0 340 0 TestMpMpxDetailsFrameworkWrapper::testHandleProperty
-0 90 0 0 ( )
-0 91 57 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-20 0 346 0 TestMpMpxDetailsFrameworkWrapper::testHandleSubPlayerNames
-0 90 0 0 ( )
-0 91 58 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-21 0 355 0 TestMpMpxDetailsFrameworkWrapper::testHandlePlaybackMessage
-0 90 0 0 ( )
-0 91 54 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-22 0 373 0 TestMpMpxDetailsFrameworkWrapper::verifyEmptyTestData
-0 90 0 0 ( )
-0 91 39 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 1 375 1 do
-14 20 375 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> title ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->title().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 375 )
-15 13 375 3
-0 1 375 1 while ( 0 )
-0 1 376 1 do
-15 20 376 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> album ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->album().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 376 )
-16 13 376 3
-0 1 376 1 while ( 0 )
-0 1 377 1 do
-16 20 377 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> artist ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->artist().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 377 )
-17 13 377 3
-0 1 377 1 while ( 0 )
-0 1 378 1 do
-17 20 378 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> comment ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->comment().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 378 )
-18 13 378 3
-0 1 378 1 while ( 0 )
-0 1 379 1 do
-18 20 379 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> year ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->year().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 379 )
-19 13 379 3
-0 1 379 1 while ( 0 )
-0 1 380 1 do
-19 20 380 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> genre ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->genre().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 380 )
-20 13 380 3
-0 1 380 1 while ( 0 )
-0 1 381 1 do
-20 20 381 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> composer ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->composer().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 381 )
-21 13 381 3
-0 1 381 1 while ( 0 )
-0 1 382 1 do
-21 20 382 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> albumTrack ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->albumTrack().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 382 )
-22 13 382 3
-0 1 382 1 while ( 0 )
-0 1 383 1 do
-22 20 383 2 ! QTest::qVerify ( ( mTestPrivate -> iSongData -> link ( ) . isEmpty ( ) ) , "mTestPrivate->iSongData->link().isEmpty()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 383 )
-23 13 383 3
-0 1 383 1 while ( 0 )
-23 0 386 0 TestMpMpxDetailsFrameworkWrapper::verify
-0 90 0 0 ( int index )
-0 91 40 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 1 388 1 do
-23 20 388 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> title ( ) , referenceGeneralTitle ( index ) , "mTestPrivate->songData()->title()" , "referenceGeneralTitle( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 388 )
-24 13 388 3
-0 1 388 1 while ( 0 )
-0 1 389 1 do
-24 20 389 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> album ( ) , referenceMusicAlbum ( index ) , "mTestPrivate->songData()->album()" , "referenceMusicAlbum( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 389 )
-25 13 389 3
-0 1 389 1 while ( 0 )
-0 1 390 1 do
-25 20 390 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> artist ( ) , referenceMusicArtist ( index ) , "mTestPrivate->songData()->artist()" , "referenceMusicArtist( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 390 )
-26 13 390 3
-0 1 390 1 while ( 0 )
-0 1 392 1 do
-26 20 392 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> comment ( ) , referenceComment ( index ) , "mTestPrivate->songData()->comment()" , "referenceComment( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 392 )
-27 13 392 3
-0 1 392 1 while ( 0 )
-0 1 393 1 do
-27 20 393 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> composer ( ) , referenceComposer ( index ) , "mTestPrivate->songData()->composer()" , "referenceComposer( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 393 )
-28 13 393 3
-0 1 393 1 while ( 0 )
-0 1 394 1 do
-28 20 394 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> year ( ) . toInt ( ) , referenceYear ( index ) , "mTestPrivate->songData()->year().toInt()" , "referenceYear( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 394 )
-29 13 394 3
-0 1 394 1 while ( 0 )
-0 1 395 1 do
-29 20 395 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> albumTrack ( ) , referenceMusicAlbumTrack ( index ) , "mTestPrivate->songData()->albumTrack()" , "referenceMusicAlbumTrack( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 395 )
-30 13 395 3
-0 1 395 1 while ( 0 )
-0 1 396 1 do
-30 20 396 2 ! QTest::qCompare ( mTestPrivate -> songData ( ) -> genre ( ) , referenceMusicGenre ( index ) , "mTestPrivate->songData()->genre()" , "referenceMusicGenre( index )" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpmpxdetailsframeworkwrapper\\src\\unittest_mpmpxdetailsframeworkwrapper.cpp" , 396 )
-31 13 396 3
-0 1 396 1 while ( 0 )
-24 0 399 0 TestMpMpxDetailsFrameworkWrapper::doTestHandleMedia
-0 90 0 0 ( int index , TInt aResult )
-0 91 42 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-31 20 404 1 aResult != KErrNone
-0 1 408 1 else
-25 0 418 0 TestMpMpxDetailsFrameworkWrapper::testHandleMedia
-0 90 0 0 ( )
-0 91 55 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-26 0 507 0 TestMpMpxDetailsFrameworkWrapper::testRetrieveSong
-0 90 0 0 ( )
-0 91 56 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-27 0 514 0 TestMpMpxDetailsFrameworkWrapper::handleSongDetailInfoChanged
-0 90 0 0 ( )
-0 91 41 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-28 0 522 0 TestMpMpxDetailsFrameworkWrapper::loadTestData
-0 90 0 0 ( TInt aPos )
-0 91 38 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h
-0 1 524 1 do
-0 1 524 1 while ( 0 )
-32 20 525 1 iMediaTestData
-0 1 536 1 do
-0 1 536 1 while ( 0 )
-33 20 538 1 title . Match ( KOff ) == KErrNotFound
-0 1 539 2 do
-0 1 539 2 while ( 0 )
-34 20 544 1 artist . Match ( KOff ) == KErrNotFound
-0 1 545 2 do
-0 1 545 2 while ( 0 )
-35 20 550 1 musicAlbum . Match ( KOff ) == KErrNotFound
-0 1 551 2 do
-0 1 551 2 while ( 0 )
-36 20 556 1 musicAlbumArtFileName . Match ( KOff ) == KErrNotFound
-0 1 557 2 do
-0 1 557 2 while ( 0 )
-37 20 562 1 comment . Match ( KOff ) == KErrNotFound
-0 1 563 2 do
-0 1 563 2 while ( 0 )
-38 20 568 1 composer . Match ( KOff ) == KErrNotFound
-0 1 569 2 do
-0 1 569 2 while ( 0 )
-39 20 573 1 KAllSongsTestData [ aPos ] . Year != - 1
-0 1 583 2 do
-0 1 583 2 while ( 0 )
-0 1 584 2 do
-0 1 584 2 while ( 0 )
-40 20 589 1 musicAlbumTrack . Match ( KOff ) == KErrNotFound
-0 1 590 2 do
-0 1 590 2 while ( 0 )
-41 20 595 1 genre . Match ( KOff ) == KErrNotFound
-0 1 596 2 do
-0 1 596 2 while ( 0 )
-42 20 601 1 musicUri . Match ( KOff ) == KErrNotFound
-0 1 602 2 do
-0 1 602 2 while ( 0 )
-0 1 605 1 do
-0 1 605 1 while ( 0 )
-%608,29,32,43,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
-3 1268659893
-0 0 72 0 MpSongData::getStaticMetaObject
-0 90 0 0 ( )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub/inc/mpsongdata.h
-0 13 72 1 staticMetaObject
-1 0 75 0 MpSongData::metaObject
-0 90 0 0 ( )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub/inc/mpsongdata.h
-0 25 77 1 QObject::d_ptr -> metaObject
-1 13 77 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 80 0 MpSongData::qt_metacast
-0 90 0 0 ( const char * )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub/inc/mpsongdata.h
-1 20 82 1 ! _clname
-2 13 82 2 0
-2 20 83 1 ! strcmp ( _clname , qt_meta_stringdata_MpSongData )
-3 13 84 2 static_cast < void * > ( const_cast < MpSongData * > ( this ) )
-4 13 85 1 QObject::qt_metacast ( _clname )
-3 0 88 0 MpSongData::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 31 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub/inc/mpsongdata.h
-3 20 91 1 _id < 0
-5 13 92 2 _id
-4 20 93 1 _c == QMetaObject::InvokeMetaMethod
-0 1 94 2 switch ( _id )
-6 14 95 2 0
-7 12 95 3
-8 14 96 2 1
-9 12 96 3
-10 14 97 2 2
-11 12 97 3
-12 14 98 2 3
-13 12 98 3
-14 14 99 2 4
-5 20 100 4 _a [ 0 ]
-15 12 100 3
-16 14 101 2 5
-6 20 102 4 _a [ 0 ]
-17 12 102 3
-18 14 103 2 6
-7 20 104 4 _a [ 0 ]
-19 12 104 3
-20 14 105 2 7
-8 20 106 4 _a [ 0 ]
-21 12 106 3
-22 14 107 2 8
-9 20 108 4 _a [ 0 ]
-23 12 108 3
-24 14 109 2 9
-25 12 109 3
-26 14 110 2 10
-10 20 111 4 _a [ 0 ]
-27 12 111 3
-28 14 112 2 11
-11 20 113 4 _a [ 0 ]
-29 12 113 3
-30 14 114 2 12
-12 20 115 4 _a [ 0 ]
-31 12 115 3
-32 14 116 2 13
-13 20 117 4 _a [ 0 ]
-33 12 117 3
-34 14 118 2 14
-14 20 119 4 _a [ 0 ]
-35 12 119 3
-36 15 120 2
-37 13 124 1 _id
-4 0 128 0 MpSongData::albumArtReady
-0 90 0 0 ( )
-0 91 70 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub/inc/mpsongdata.h
-5 0 134 0 MpSongData::playbackInfoChanged
-0 90 0 0 ( )
-0 91 71 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub/inc/mpsongdata.h
-6 0 140 0 MpSongData::songDetailInfoChanged
-0 90 0 0 ( )
-0 91 72 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub/inc/mpsongdata.h
-%144,7,38,15,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
-3 1268659893
-0 0 25 0 MMPXPlaybackUtility::NewL
-0 90 0 0 ( const TUid & , MMPXPlaybackObserver * )
-0 91 25 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-0 13 32 1 obj
-1 0 35 0 MMPXPlaybackUtility::ConstructL
-0 90 0 0 ( )
-0 91 43 3 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-2 0 43 0 MMPXPlaybackUtility::~MMPXPlaybackUtility
-0 90 0 0 ( )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-3 0 48 0 MMPXPlaybackUtility::MMPXPlaybackUtility
-0 90 0 0 ( )
-0 91 42 3 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-4 0 60 0 MMPXPlaybackUtility::AddObserverL
-0 90 0 0 ( MMPXPlaybackObserver & aPlaybackObserver )
-0 91 57 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-5 0 66 0 MMPXPlaybackUtility::RemoveObserverL
-0 90 0 0 ( MMPXPlaybackObserver & aPlaybackObserver )
-0 91 58 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-0 20 69 1 iPlaybackObserver == & aPlaybackObserver
-6 0 75 0 MMPXPlaybackUtility::GetClientsL
-0 90 0 0 ( RArray<TProcessId> & aClients )
-0 91 59 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-7 0 80 0 MMPXPlaybackUtility::InitL
-0 90 0 0 ( const CMPXCollectionPlaylist & , TBool )
-0 91 80 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-8 0 85 0 MMPXPlaybackUtility::InitL
-0 90 0 0 ( const TDesC & , const TDesC8 * )
-0 91 85 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-9 0 90 0 MMPXPlaybackUtility::InitL
-0 90 0 0 ( RFile & aShareableFile )
-0 91 62 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-10 0 95 0 MMPXPlaybackUtility::Close
-0 90 0 0 ( )
-0 91 63 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-11 0 103 0 MMPXPlaybackUtility::CancelRequest
-0 90 0 0 ( )
-0 91 64 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-12 0 108 0 MMPXPlaybackUtility::CommandL
-0 90 0 0 ( TMPXPlaybackCommand , TInt )
-0 91 108 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-13 0 113 0 MMPXPlaybackUtility::CommandL
-0 90 0 0 ( CMPXCommand & , MMPXPlaybackCallback * )
-0 91 113 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-14 0 118 0 MMPXPlaybackUtility::StateL
-0 90 0 0 ( )
-0 91 67 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-1 13 121 1 iState
-15 0 124 0 MMPXPlaybackUtility::Source
-0 90 0 0 ( )
-0 91 68 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-2 13 127 1 iMpxSource
-16 0 130 0 MMPXPlaybackUtility::PlayerManager
-0 90 0 0 ( )
-0 91 69 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-3 13 133 1 * iMpxPlayerManager
-17 0 136 0 MMPXPlaybackUtility::SetL
-0 90 0 0 ( TMPXPlaybackProperty aProperty , TInt aValue )
-0 91 70 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-18 0 141 0 MMPXPlaybackUtility::ValueL
-0 90 0 0 ( MMPXPlaybackCallback & aCallback , TMPXPlaybackProperty aProperty )
-0 91 71 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-19 0 146 0 MMPXPlaybackUtility::PropertyL
-0 90 0 0 ( MMPXPlaybackCallback & aCallback , TMPXPlaybackProperty aProperty )
-0 91 72 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-20 0 151 0 MMPXPlaybackUtility::SupportedMimeTypes
-0 90 0 0 ( )
-0 91 73 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-4 13 154 1 0
-21 0 157 0 MMPXPlaybackUtility::SupportedExtensions
-0 90 0 0 ( )
-0 91 74 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-5 13 160 1 0
-22 0 163 0 MMPXPlaybackUtility::SupportedSchemas
-0 90 0 0 ( )
-0 91 75 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-6 13 166 1 0
-23 0 169 0 MMPXPlaybackUtility::SetPriority
-0 90 0 0 ( TInt aPriority )
-0 91 76 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-24 0 174 0 MMPXPlaybackUtility::AddSubscriptionL
-0 90 0 0 ( const CMPXSubscription & aSubscription )
-0 91 77 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-25 0 179 0 MMPXPlaybackUtility::RemoveSubscriptionL
-0 90 0 0 ( const CMPXSubscription & aSubscription )
-0 91 78 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-26 0 184 0 MMPXPlaybackUtility::ClearSubscriptionsL
-0 90 0 0 ( )
-0 91 79 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-27 0 189 0 MMPXPlaybackUtility::InitStreamingL
-0 90 0 0 ( const TDesC & aUri , const TDesC8 * aType , const TInt aAccessPoint )
-0 91 80 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-28 0 194 0 MMPXPlaybackUtility::InitStreamingL
-0 90 0 0 ( RFile & aShareableFile , const TInt aAccessPoint )
-0 91 81 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h
-29 0 199 0 MMPXPlaybackUtility::NewL
-0 90 0 0 ( const TMPXCategory , const TUid & , MMPXPlaybackObserver * )
-0 91 199 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-7 13 203 1 0
-30 0 206 0 MMPXPlaybackUtility::UtilityL
-0 90 0 0 ( const TMPXCategory , const TUid & )
-0 91 206 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-8 13 209 1 0
-31 0 212 0 MMPXPlaybackUtility::UtilityL
-0 90 0 0 ( const TUid & )
-0 91 212 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpmpxdetailsframeworkwrapper\stub\src\mpxplaybackutility.cpp
-1 20 214 1 ! singleton
-9 13 217 1 singleton
-%220,32,10,2,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
-3 1268659895
-0 0 62 0 MpSongData::MpSongData
-0 90 0 0 ( QObject * parent = 0 )
-0 91 34 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-1 0 83 0 MpSongData::~MpSongData
-0 90 0 0 ( )
-0 91 35 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-2 0 93 0 MpSongData::albumArt
-0 90 0 0 ( QPixmap & pixmap )
-0 91 62 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-0 20 96 1 ! mAlbumArt . isNull ( )
-0 1 99 1 else
-3 0 109 0 MpSongData::title
-0 90 0 0 ( )
-0 91 58 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-0 13 112 1 mTitle
-4 0 118 0 MpSongData::album
-0 90 0 0 ( )
-0 91 59 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-1 13 121 1 mAlbum
-5 0 127 0 MpSongData::artist
-0 90 0 0 ( )
-0 91 60 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-2 13 130 1 mArtist
-6 0 136 0 MpSongData::comment
-0 90 0 0 ( )
-0 91 61 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-3 13 139 1 mComment
-7 0 145 0 MpSongData::composer
-0 90 0 0 ( )
-0 91 65 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-4 13 148 1 mComposer
-8 0 155 0 MpSongData::genre
-0 90 0 0 ( )
-0 91 64 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-5 13 158 1 mGenre
-9 0 165 0 MpSongData::albumTrack
-0 90 0 0 ( )
-0 91 66 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-6 13 168 1 mAlbumTrack
-10 0 174 0 MpSongData::link
-0 90 0 0 ( )
-0 91 67 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-7 13 177 1 mLink
-11 0 183 0 MpSongData::year
-0 90 0 0 ( )
-0 91 63 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-8 13 186 1 mYear
-12 0 193 0 MpSongData::setTitle
-0 90 0 0 ( const QString & title )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-1 20 197 1 title != mTitle
-9 13 202 1 change
-13 0 208 0 MpSongData::setAlbum
-0 90 0 0 ( const QString & album )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-2 20 212 1 album != mAlbum
-10 13 217 1 change
-14 0 223 0 MpSongData::setArtist
-0 90 0 0 ( const QString & artist )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-3 20 227 1 artist != mArtist
-11 13 232 1 change
-15 0 238 0 MpSongData::setComment
-0 90 0 0 ( const QString & comment )
-0 91 40 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-4 20 242 1 comment != mComment
-12 13 247 1 change
-16 0 254 0 MpSongData::setComposer
-0 90 0 0 ( const QString & compoer )
-0 91 44 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-5 20 258 1 composer != mComposer
-13 13 263 1 change
-17 0 269 0 MpSongData::setGenre
-0 90 0 0 ( const QString & genre )
-0 91 43 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-6 20 273 1 genre != mGenre
-14 13 278 1 change
-18 0 285 0 MpSongData::setYear
-0 90 0 0 ( int date )
-0 91 42 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-7 20 289 1 QString::number ( year ) != mYear
-8 20 291 2 year >= 0 && year < 9999
-0 1 293 2 else
-15 13 298 1 change
-19 0 304 0 MpSongData::setAlbumTrack
-0 90 0 0 ( const QString & albumtrack )
-0 91 45 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-9 20 308 1 track != mAlbumTrack
-16 13 313 1 change
-20 0 319 0 MpSongData::setLink
-0 90 0 0 ( const QString & link )
-0 91 46 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-21 0 329 0 MpSongData::setAlbumArtUri
-0 90 0 0 ( const QString & albumArtUri )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-22 0 343 0 MpSongData::thumbnailReady
-0 90 0 0 ( const QPixmap & pixmap , void * data , int id , int error )
-0 91 54 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-10 20 351 1 error == 0 && mReqId == id
-0 1 356 1 else
-23 0 368 0 MpSongData::commitPlaybackInfo
-0 90 0 0 ( )
-0 91 49 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-24 0 378 0 MpSongData::commitSongDetailInfo
-0 90 0 0 ( )
-0 91 51 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h
-%384,25,17,11,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
-3 1268659896
-0 0 21 0 MMPXPlayerManager::MMPXPlayerManager
-0 90 0 0 ( )
-0 91 32 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-1 0 26 0 MMPXPlayerManager::~MMPXPlayerManager
-0 90 0 0 ( )
-0 91 33 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-2 0 31 0 MMPXPlayerManager::GetPlayerTypesL
-0 90 0 0 ( RArray<TMPXPlaybackPlayerType> & aTypes )
-0 91 36 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-3 0 36 0 MMPXPlayerManager::PlayerTypeDisplayNameL
-0 90 0 0 ( TMPXPlaybackPlayerType aType )
-0 91 37 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-0 13 39 1 0
-4 0 42 0 MMPXPlayerManager::GetPlayerListL
-0 90 0 0 ( RArray<TUid> & aPlayers )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-5 0 47 0 MMPXPlayerManager::GetPlayerListL
-0 90 0 0 ( RArray<TUid> & aPlayers , TMPXPlaybackPlayerType aType )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-6 0 52 0 MMPXPlayerManager::SubPlayerNamesL
-0 90 0 0 ( MMPXPlaybackCallback & aCallback , TUid aPlayer )
-0 91 40 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-7 0 57 0 MMPXPlayerManager::SelectPlayersL
-0 90 0 0 ( TMPXPlaybackPlayerType aType )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-8 0 62 0 MMPXPlayerManager::SelectSubPlayerL
-0 90 0 0 ( TUid aPlayer , TInt aSubPlayerIndex )
-0 91 42 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-9 0 67 0 MMPXPlayerManager::SelectPlayerL
-0 90 0 0 ( TUid aPlayer )
-0 91 43 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-10 0 72 0 MMPXPlayerManager::ClearSelectPlayersL
-0 90 0 0 ( )
-0 91 44 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-11 0 77 0 MMPXPlayerManager::GetSelectionL
-0 90 0 0 ( TMPXPlaybackPlayerType & aType , TUid & aPlayer , TInt & aSubPlayerIndex , HBufC * & aSubPlayerName )
-0 91 45 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-12 0 85 0 MMPXPlayerManager::CurrentPlayer
-0 90 0 0 ( )
-0 91 49 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h
-1 13 88 1 0
-%91,13,2,0,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
-3 1268659896
-0 0 21 0 MMPXSource::MMPXSource
-0 90 0 0 ( )
-0 91 34 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
-1 0 26 0 MMPXSource::~MMPXSource
-0 90 0 0 ( )
-0 91 35 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
-2 0 31 0 MMPXSource::PlaylistL
-0 90 0 0 ( )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
-0 13 34 1 0
-3 0 37 0 MMPXSource::FileL
-0 90 0 0 ( )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
-1 13 40 1 0
-4 0 43 0 MMPXSource::UriL
-0 90 0 0 ( )
-0 91 40 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
-2 13 46 1 0
-5 0 49 0 MMPXSource::MediaL
-0 90 0 0 ( const TArray<TMPXAttribute> & aAttrs , MMPXPlaybackCallback & aCallback )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
-6 0 54 0 MMPXSource::MediaL
-0 90 0 0 ( const TArray<TMPXAttribute> & aAttrs , MMPXPlaybackCallback & aCallback , CMPXAttributeSpecs * aSpecs )
-0 91 42 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h
-%58,7,3,0,0,0
-END OF SYMBOLFILE
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/UT_mpmpxpbframeworkwrapper.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-; unittest_mpmpxpbframeworkwrapper_template.pkg generated by qmake at 2010-03-07T16:15:41
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"unittest_mpmpxpbframeworkwrapper"},(0xE003e880),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-; Executable and default resource files
-"/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe"    - "!:\sys\bin\unittest_mpmpxpbframeworkwrapper.exe"
-"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpmpxpbframeworkwrapper_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpmpxpbframeworkwrapper_reg.rsc"
-
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/UT_mpmpxpbframeworkwrapper.sisx has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/ctcdata.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1044 +0,0 @@
-
-
-CTCRTS: Write coverage data to file 2010-03-12 13:39:14
-
-CTCDATA:<START:1j,1M,1,4,2,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,
-
-CTCDATA:1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l
-
-CTCDATA:,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1p,1q,1b,1X,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1q,1d,1r,1n,1t,1q,1b,1d,1r,k,1b,1o,1o,1S,w,1U,1l,1
-
-CTCDATA:t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r
-
-CTCDATA:,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,
-
-CTCDATA:1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,1,0,1,0,0,0,1,0,1,0,1j,1M,1,A,6,5,0
-
-CTCDATA:,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,
-
-CTCDATA:1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s
-
-CTCDATA:,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq3QT,1,1,1,1,1,4,4,1,1,1,0,1,1,1,1,4,4,1,1,1,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,1,1,1,1,1,1j,1M,1,J,q,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1
-
-CTCDATA:q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1
-
-CTCDATA:s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1l,1n,1b,1X,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,
-
-CTCDATA:1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U
-
-CTCDATA:,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,u,0,E,1,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,u,0,0,0,1,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,4,4,4,1,1,
-
-CTCDATA:1,1,1,1,0,D,0,0,0,1,D,u,0,0,D,0,18,1M,1,U,2,j,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1
-
-CTCDATA:k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d
-
-CTCDATA:,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,
-
-CTCDATA:1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1
-
-CTCDATA:G,k,1c,1Z,1s,1Nq3QO,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1a,1M,1,5,e,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S
-
-CTCDATA:,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1
-
-CTCDATA:f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,o,0,1,1,0,0,0,0,1,0,o,0
-
-CTCDATA:,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,1,0,0,0,0,1,o,0,0,1,0,1u,1M,1,4,1,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1
-
-CTCDATA:x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z
-
-CTCDATA:,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c
-
-CTCDATA:,1Z,1s,1Nq3QT,4,4,4,1,4,4,0,1,4,1c,1M,1,P,H,G,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1
-
-CTCDATA:m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,
-
-CTCDATA:1t,1a,l,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1
-
-CTCDATA:r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QT,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,1l,1M,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k
-
-CTCDATA:,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k
-
-CTCDATA:,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QU,0,0,8,4,0,8,8
-
-CTCDATA:,0,0,0,0,8,4,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,1g,1M,1,5,A,5,0,0,1S,w,l,
-
-CTCDATA:1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r
-
-CTCDATA:,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,
-
-CTCDATA:1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,0,G,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,1X,1M,1,7,c,F,0,
-
-CTCDATA:0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1
-
-CTCDATA:S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QQ,0,G,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:1v,1S,1,D,q,p,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,
-
-CTCDATA:1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1t,1m,1h,
-
-CTCDATA:1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v
-
-CTCDATA:,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq35R,1,1,1,1,1,6,6,1,1,1,1,1,1,0,1,1,1,1,6,6,1,1,1,1,1,1,1,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1v,1S,1,4,S,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,
-
-CTCDATA:1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1l,1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,1E,0,K,0,0,0,0,0,1E,0,0,0,0,1,1,1,1
-
-CTCDATA:,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,0,K,0,0,0,0,K,1E,0,0,K,0,1E,1S,1,B,9,
-
-CTCDATA:3,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq35O,6,6,1,4,5,5,1,0,0,0,0,6,6,1,4,5,5,0,0,0,0,0,1,1,1,1,3,3,1,
-
-CTCDATA:0,0,1,3,1,0,1,4,1l,1S,1,7,0,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d
-
-CTCDATA:,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:s,1t,1a,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o
-
-CTCDATA:,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,
-
-CTCDATA:1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35R,8,8,
-
-CTCDATA:1,2,1,6,1,8,8,1,2,1,6,1,1g,1S,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w
-
-CTCDATA:,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,2,0,0,1
-
-CTCDATA:,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1m,1S,1,5,E,5,0,0,1
-
-CTCDATA:S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1
-
-CTCDATA:u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1
-
-CTCDATA:s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h
-
-CTCDATA:,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,3,0,1,1,0,0,0,0,1,0,3,0,0,0,0,1,
-
-CTCDATA:1,0,0,0,0,0,1,0,0,0,0,1,3,0,0,1,0,2D,1b,1,T,V,h,0,0,1S,w,l,1l,1t,1r,1h
-
-CTCDATA:,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t
-
-CTCDATA:,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,
-
-CTCDATA:1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,
-
-CTCDATA:1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1
-
-CTCDATA:j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1
-
-CTCDATA:d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq366,Q,Q,Q,0,Q,Q,Q,
-
-CTCDATA:4,4,0,1,1,1,1,1,Y,Y,1,1,1,1,1,1,Q,R,1,1,0,R,0,0,0,0,0,0,0,0,0,0,0,1,1,
-
-CTCDATA:1,1,Y,Y,1,1,1,1,1,1,4,R,1,1,0,R,Q,Q,Q,0,Q,Q,Q,4,4,0,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,M,0,0,O,O,O,0,O,O,N,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,M,0,0,1,Q,P,P,P,Q,P,P,P,P,P,Q,2,2,2,0,2,2,3,1,1,0,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,Q,Q,Q,Q,Q,4,4,4,Q,1,2,2,2,1,2,2,2,2,2,1,2D,1b,1,4,U,
-
-CTCDATA:5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1l,1n
-
-CTCDATA:,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq363,0,1P,0,N,0,0,0,0,0,1P,0,0,0,0,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,0,N,0,0,0,0,N,1P,0,0,N,0,1P,1b,1,E,8,D,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l
-
-CTCDATA:,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,
-
-CTCDATA:1Z,1o,1o,1d,1q,1X,1o,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,
-
-CTCDATA:1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1
-
-CTCDATA:k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d
-
-CTCDATA:,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,
-
-CTCDATA:1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq4iQ,Y,Y,X,X,Y,X,1,1,
-
-CTCDATA:1,R,2f,1,1,1,Y,Y,X,X,Y,X,1,1,1,Q,0,1,1,1,0,0,0,0,1,2f,0,0,X,1,O,O,O,P,
-
-CTCDATA:P,O,O,O,O,O,Q,0,Q,2,2,2,1,1,2,2,2,2,2,0,1z,1b,1,V,A,2,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1
-
-CTCDATA:b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,
-
-CTCDATA:l,1l,1o,1w,1o,1k,1Z,1x,1a,1Z,1b,1j,1t,1s,1h,1k,1h,1s,1x,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G
-
-CTCDATA:,k,1c,1Z,1s,1Nq366,X,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,Y,0,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,X,0,1,0,0,0,0,0,0,Y,X,X,0,1,1x,1b,1,D,2,0,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z
-
-CTCDATA:,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,
-
-CTCDATA:1o,1w,1o,1k,1Z,1x,1d,1q,1l,1Z,1m,1Z,1f,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,
-
-CTCDATA:1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1
-
-CTCDATA:U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q
-
-CTCDATA:,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s
-
-CTCDATA:,1Nq367,X,0,0,0,0,0,0,0,0,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1q,1b,
-
-CTCDATA:1,7,3,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,
-
-CTCDATA:1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l
-
-CTCDATA:,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1r,1n,1t,1q,1b,1d,k,1b,1o,1o,1S,w,1
-
-CTCDATA:U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,
-
-CTCDATA:1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36A,X,0,0,0,0,1,0,X,0,0,0,0,1,0,0,0,0,1r,1b,1,P,H,B,0,0,1S
-
-CTCDATA:,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,
-
-CTCDATA:1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,
-
-CTCDATA:1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1
-
-CTCDATA:l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b
-
-CTCDATA:,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1N
-
-CTCDATA:q367,Y,X,0,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0,Q,0,P,Q,Y,X,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,Q,0,P,Q,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0
-
-CTCDATA:,N,N,N,N,O,E,Q,N,N,0,0,3,3,3,3,2,C,0,3,3,0,1N,1b,1,4,1,0,0,0,1S,w,l,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1
-
-CTCDATA:b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,
-
-CTCDATA:1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,
-
-CTCDATA:1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,
-
-CTCDATA:1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq362,Y,X,1,1,Y,X,0,1,1,1
-
-CTCDATA:m,1b,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1
-
-CTCDATA:o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d
-
-CTCDATA:,1q,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq362,0,0,0,0,Q,P,Q,0,0,0,0,Q,P,Q,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1d,1J,1,d,k,j,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1
-
-CTCDATA:s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3ia,1,1,1,1,1,X,Y,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,X,Y,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1d,1J,1,5,1K,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,
-
-CTCDATA:1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b
-
-CTCDATA:,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,
-
-CTCDATA:1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,5s,0,1a,2,0,0,0,0,2,0,5
-
-CTCDATA:s,0,0,0,0,0,0,1,1,1,1,V,V,V,V,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,0,1a,0,0,0,0,1a,5s,0,0,1a,0,15,1J,1,P,H,G,0,0,1S,w,l
-
-CTCDATA:,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b
-
-CTCDATA:,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36s,X,X,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,1,2,0,3,2,1,1,X,X,
-
-CTCDATA:2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,1,1,0,0,0,0,0,0,0,0,0,2,2,2,
-
-CTCDATA:2,2,2,1,2,X,0,1,1,1,1,1,1,1,1,1,2,1,2,1,1,0,2,1,1,1,1,1,1,0,0,1,1,1,0,
-
-CTCDATA:1,1,1i,1J,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1s,1t,1a,l,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,
-
-CTCDATA:1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,
-
-CTCDATA:1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U
-
-CTCDATA:,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,
-
-CTCDATA:k,1c,1Z,1s,1Nq36v,1,1,X,X,0,X,X,2,1,0,1,X,X,0,0,0,0,0,1,0,X,X,1,1,1,0,
-
-CTCDATA:1,2,1,1d,1J,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1
-
-CTCDATA:o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,
-
-CTCDATA:1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,
-
-CTCDATA:1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l
-
-CTCDATA:,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z
-
-CTCDATA:,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1
-
-CTCDATA:s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,
-
-CTCDATA:1Nq36s,0,15,0,2,2,0,0,0,0,2,0,15,0,0,0,0,2,2,0,2,0,0,0,0,2,15,0,0,2,0,
-
-CTCDATA:1U,1J,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,
-
-CTCDATA:1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,
-
-CTCDATA:1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o
-
-CTCDATA:,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1
-
-CTCDATA:f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,f,0,2,4,1,1,0,0,0,0,4,1,
-
-CTCDATA:1,0,f,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,f,0,0,2,0,0,0,0,0,0,0,0,0,0,0,>
-
-
-
-CTCRTS: Write coverage data to file 2010-03-12 14:18:14
-
-CTCDATA:<START:2D,1b,1,S,V,h,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,
-
-CTCDATA:1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l
-
-CTCDATA:,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,
-
-CTCDATA:1o,1o,1d,1q,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,
-
-CTCDATA:1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b
-
-CTCDATA:,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1
-
-CTCDATA:U,1F,1H,1G,k,1c,1Z,1s,1Nq5cu,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,6,6,1,1,1,1
-
-CTCDATA:,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,6,6,1,1,1,1,1,0,0,0,1,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,2D,1b,1,4,S,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,
-
-CTCDATA:1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,
-
-CTCDATA:1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1
-
-CTCDATA:v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1l,1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,
-
-CTCDATA:1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1
-
-CTCDATA:q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1
-
-CTCDATA:U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,
-
-CTCDATA:1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1
-
-CTCDATA:v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq5cr,0,1E,0,K,0,0,0,0,0,1
-
-CTCDATA:E,0,0,0,0,1,1,1,1,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,0,K,0,0,0,0,K,1E,0,0
-
-CTCDATA:,K,0,1P,1b,1,E,8,D,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1X,1o,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G
-
-CTCDATA:,k,1c,1Z,1s,1Nq5cr,6,6,6,6,6,6,1,1,1,0,1,1,1,1,6,6,6,6,6,6,1,1,1,0,0,1
-
-CTCDATA:,1,1,0,0,0,0,0,1,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,1z,1b,1,V,A,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1
-
-CTCDATA:u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,
-
-CTCDATA:1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,
-
-CTCDATA:1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1
-
-CTCDATA:o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1o,1k,1Z,1x,1a,1Z,1b,1j,1t
-
-CTCDATA:,1s,1h,1k,1h,1s,1x,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q
-
-CTCDATA:,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1
-
-CTCDATA:r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j
-
-CTCDATA:,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq5cu,6,6,6,6,6,6,0,0,0,
-
-CTCDATA:0,6,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,6,6,6,6,0,0,0,0,6,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,1,0,0,0,0,0,0,6,6,6,0,0,1x
-
-CTCDATA:,1b,1,D,2,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,
-
-CTCDATA:1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o
-
-CTCDATA:,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o
-
-CTCDATA:,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,
-
-CTCDATA:1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1o,1k,1Z,1x,1d,1q,1l,1Z,1m,1Z,1
-
-CTCDATA:f,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1
-
-CTCDATA:u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,
-
-CTCDATA:1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1
-
-CTCDATA:o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq5cx,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,1q,1b,1,7,3,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,
-
-CTCDATA:1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,
-
-CTCDATA:1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1
-
-CTCDATA:v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1r
-
-CTCDATA:,1n,1t,1q,1b,1d,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U
-
-CTCDATA:,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1
-
-CTCDATA:s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v
-
-CTCDATA:,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq5d2,6,0,0,0,0,1,0,6,0,0,0
-
-CTCDATA:,0,1,0,0,0,0,1r,1b,1,P,H,B,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q
-
-CTCDATA:,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s
-
-CTCDATA:,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,
-
-CTCDATA:1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1
-
-CTCDATA:s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v
-
-CTCDATA:,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,
-
-CTCDATA:1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1
-
-CTCDATA:o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq5cu,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,1N,1b,1,4,1,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1
-
-CTCDATA:o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,
-
-CTCDATA:1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,
-
-CTCDATA:1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s
-
-CTCDATA:,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,
-
-CTCDATA:1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c
-
-CTCDATA:,1Z,1s,1Nq5cr,6,6,1,1,6,6,0,1,1,>
-
-
-
-CTCRTS: Write coverage data to file 2010-03-15 15:03:54
-
-CTCDATA:<START:2D,1b,1,T,V,h,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,
-
-CTCDATA:1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l
-
-CTCDATA:,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,
-
-CTCDATA:1o,1o,1d,1q,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,
-
-CTCDATA:1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b
-
-CTCDATA:,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1
-
-CTCDATA:U,1F,1H,1G,k,1c,1Z,1s,1NrBe2,Q,Q,Q,0,Q,Q,Q,Q,Q,0,1,1,1,1,1,Y,Y,1,1,1,1
-
-CTCDATA:,1,1,Q,R,1,1,0,R,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,Y,Y,1,1,1,1,1,1,Q,R,1,1
-
-CTCDATA:,0,R,Q,Q,Q,0,Q,Q,Q,Q,Q,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,O
-
-CTCDATA:,O,O,0,O,O,N,O,O,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,Q,P,P,P
-
-CTCDATA:,Q,P,P,P,P,P,Q,2,2,2,0,2,2,3,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,Q,Q,Q,Q,Q
-
-CTCDATA:,Q,Q,Q,Q,1,2,2,2,1,2,2,2,2,2,1,2D,1b,1,4,U,5,0,0,1S,w,l,1l,1t,1r,1h,1b
-
-CTCDATA:,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c
-
-CTCDATA:,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m
-
-CTCDATA:,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,
-
-CTCDATA:1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1l,1n,1b,1X,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,
-
-CTCDATA:1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,
-
-CTCDATA:1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1
-
-CTCDATA:k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d
-
-CTCDATA:,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,
-
-CTCDATA:1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1NrAOG,0,1P,0,N,0,0,0,0
-
-CTCDATA:,0,1P,0,0,0,0,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,N,0,0,0,0,
-
-CTCDATA:N,1P,0,0,N,0,1P,1b,1,E,8,D,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q
-
-CTCDATA:,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z
-
-CTCDATA:,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1X,1o,k,1b,1
-
-CTCDATA:o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,
-
-CTCDATA:1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1
-
-CTCDATA:f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c
-
-CTCDATA:,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,
-
-CTCDATA:1F,1H,1G,k,1c,1Z,1s,1NrBmP,Y,Y,X,X,Y,X,1,1,1,R,3N,1,1,1,Y,Y,X,X,Y,X,1,
-
-CTCDATA:1,1,Q,0,1,1,1,0,0,0,0,1,3N,0,0,X,1,O,O,O,P,P,O,O,O,O,O,Q,0,Q,2,2,2,1,1
-
-CTCDATA:,2,2,2,2,2,0,1z,1b,1,V,A,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q
-
-CTCDATA:,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s
-
-CTCDATA:,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,
-
-CTCDATA:1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1o,1k,1Z,1x,1a,1
-
-CTCDATA:Z,1b,1j,1t,1s,1h,1k,1h,1s,1x,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1
-
-CTCDATA:Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,
-
-CTCDATA:1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1
-
-CTCDATA:v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1NrAOL,X,X,X,X,
-
-CTCDATA:Y,X,0,0,0,0,X,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Y,0,X,X,X,Y,X,0,
-
-CTCDATA:0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,0,1,0,0,0,0,0,0,Y,
-
-CTCDATA:X,X,0,1,1x,1b,1,D,2,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l
-
-CTCDATA:,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1
-
-CTCDATA:l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z
-
-CTCDATA:,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1o,1k,1Z,1x,1d,1q,1l,
-
-CTCDATA:1Z,1m,1Z,1f,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,
-
-CTCDATA:1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,
-
-CTCDATA:1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1NrAOO,X,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1q,1b,1,7,3,0,0,0,1S,w,l,1l,1t,1r
-
-CTCDATA:,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l
-
-CTCDATA:,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l
-
-CTCDATA:,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,
-
-CTCDATA:1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1
-
-CTCDATA:l,1o,1w,1r,1n,1t,1q,1b,1d,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1
-
-CTCDATA:x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z
-
-CTCDATA:,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1
-
-CTCDATA:n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1NrAOO,X,0,0,0,0,1
-
-CTCDATA:,0,X,0,0,0,0,1,0,0,0,0,1r,1b,1,P,H,B,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1
-
-CTCDATA:Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1
-
-CTCDATA:s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n
-
-CTCDATA:,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1r,1n,1m,
-
-CTCDATA:1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,
-
-CTCDATA:1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1
-
-CTCDATA:u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s
-
-CTCDATA:,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,
-
-CTCDATA:1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1NrAON,Y,X,0,R,R,R,R,R,R,R,1,
-
-CTCDATA:R,Q,Q,Q,Q,Q,Q,Q,Q,0,Q,0,P,Q,Y,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:Q,0,P,Q,R,R,R,R,R,R,R,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0,N,N,N,N,O,E,Q,N,N,0,0,3,3,
-
-CTCDATA:3,3,2,C,0,3,3,0,1N,1b,1,4,1,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d
-
-CTCDATA:,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1
-
-CTCDATA:o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,
-
-CTCDATA:1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d
-
-CTCDATA:,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,
-
-CTCDATA:1H,1G,k,1c,1Z,1s,1NrAOG,Y,X,1,1,Y,X,0,1,1,1m,1b,1,7,c,F,0,0,1S,w,l,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r
-
-CTCDATA:,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q
-
-CTCDATA:,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1
-
-CTCDATA:e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1l,1n,1b,1X,1l,1o,1r,
-
-CTCDATA:1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,
-
-CTCDATA:1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1
-
-CTCDATA:k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d
-
-CTCDATA:,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,
-
-CTCDATA:1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1NrAOL,0,0,0,0,Q,P,Q,0,
-
-CTCDATA:0,0,0,Q,P,Q,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,>
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/ctcerr.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5529 +0,0 @@
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4936.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-268.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4364.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4668.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3356.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1076.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4612.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4616.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3516.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5196.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpmpxpbframeworkwrapper{000a0000}[e003e880].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxpbframeworkwrapper_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/estor.dso
-argv[25]: Z:/epoc32/release/armv5/lib/fbscli.dso
-argv[26]: Z:/epoc32/release/armv5/lib/mpxcommon.dso
-argv[27]: Z:/epoc32/release/armv5/lib/thumbnailmanagerqt.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[29]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[30]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[35]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[39]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[40]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[41]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[43]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[45]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[47]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[48]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[50]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[51]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[52]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[54]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[57]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[58]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[59]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5956.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4184.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4104.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4660.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4692.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2424.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3560.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-440.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5260.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4820.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4892.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpmpxpbframeworkwrapper{000a0000}[e003e880].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxpbframeworkwrapper_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/estor.dso
-argv[25]: Z:/epoc32/release/armv5/lib/fbscli.dso
-argv[26]: Z:/epoc32/release/armv5/lib/mpxcommon.dso
-argv[27]: Z:/epoc32/release/armv5/lib/thumbnailmanagerqt.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[29]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[30]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[35]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[39]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[40]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[41]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[43]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[45]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[47]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[48]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[50]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[51]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[52]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[54]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[57]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[58]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[59]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-1996.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4832.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5356.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4384.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-440.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4768.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5724.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5484.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-536.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5424.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpmpxpbframeworkwrapper{000a0000}[e003e880].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxpbframeworkwrapper_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/estor.dso
-argv[25]: Z:/epoc32/release/armv5/lib/fbscli.dso
-argv[26]: Z:/epoc32/release/armv5/lib/mpxcommon.dso
-argv[27]: Z:/epoc32/release/armv5/lib/thumbnailmanagerqt.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[29]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[30]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[35]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[39]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[40]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[41]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[43]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[45]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[47]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[48]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[50]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[51]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[52]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[54]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[57]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[58]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[59]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-6036.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: --vsn
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc --vsn
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-264.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5300.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4312.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5368.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5756.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4496.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3024.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3272.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2144.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4164.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpmpxpbframeworkwrapper{000a0000}[e003e880].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxpbframeworkwrapper_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/estor.dso
-argv[25]: Z:/epoc32/release/armv5/lib/fbscli.dso
-argv[26]: Z:/epoc32/release/armv5/lib/mpxcommon.dso
-argv[27]: Z:/epoc32/release/armv5/lib/thumbnailmanagerqt.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[29]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[30]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[35]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[39]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[40]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[41]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[43]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[45]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[47]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[48]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[50]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[51]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[52]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[54]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[57]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[58]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[59]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5196.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpmpxdetailsframeworkwrapper_p.o
-argv[103]: Z:/mu: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
-
-est_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4484.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5208.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4880.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4548.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/moc_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4436.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxdetailsframeworkwrapper.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-652.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplaybackutility.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4540.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4952.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxplayermanager.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2924.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/mpxsource.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5816.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpmpxpbframeworkwrapper{000a0000}[e003e880].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpmpxpbframeworkwrapper.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpmpxdetailsframeworkwrapper/c_fdc6c1688fce786a/unittest_mpmpxpbframeworkwrapper_exe/armv5/udeb/unittest_mpmpxpbframeworkwrapper_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/estor.dso
-argv[25]: Z:/epoc32/release/armv5/lib/fbscli.dso
-argv[26]: Z:/epoc32/release/armv5/lib/mpxcommon.dso
-argv[27]: Z:/epoc32/release/armv5/lib/thumbnailmanagerqt.dso
-argv[28]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[29]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[30]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[33]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[34]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[35]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[36]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[38]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[39]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[40]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[41]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[43]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[44]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[45]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[47]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[48]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[49]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[50]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[51]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[52]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[54]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[56]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[57]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[58]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[59]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-4784.rsp
-*** CTC++/ctcagent command status: 0
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/logger.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +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:  Tracing macros for clipdownloader.
-*
-*/
-
-
-#ifndef LOGGER_H
-#define LOGGER_H
-
-#ifndef _DEBUG
-    
-    #define TRACE( AA )
-    
-    #define TRACE2( AA, BB )
-    
-    #define TRACE3( AA, BB, CC )
-
-    #define TRACE4( AA, BB, CC, DD )
-
-    #define TRACE5( AA, BB, CC, DD, EE )
-
-    #define DUMP8( AA )
-
-    #define TRACE_DOWNLOADER_STATE( AA )
-
-    #define TRACE_AND_PANIC( AA )
-
-    #define PANIC_ON_ERROR(AA, BB)
-
-#else
-    
-    // INCLUDES
-    #include <e32debug.h>
-
-    #define TRACE_AND_PANIC( AA ) \
-        { \
-        RDebug::Printf( "ERROR: " AA ); \
-        ASSERT(EFalse); \
-        }
-
-    #define PANIC_ON_ERROR(AA, BB) \
-        { \
-        if(AA) \
-            { \
-            RDebug::Printf( "ERROR: " BB, AA ); \
-            ASSERT(EFalse); \
-            } \
-        }
-        
-    #define TRACE( AA ) do { RDebug::Printf( AA ); } while( 0 )
-    
-    #define TRACE2( AA, BB ) do { RDebug::Printf( AA, BB ); } while( 0 )
-    
-    #define TRACE3( AA, BB, CC ) do { RDebug::Printf( AA, BB, CC ); } while( 0 )
-
-    #define TRACE4( AA, BB, CC, DD ) do { RDebug::Printf( AA, BB, CC, DD ); } while( 0 )
-
-    #define TRACE5( AA, BB, CC, DD, EE ) do { RDebug::Printf( AA, BB, CC, DD, EE ); } while( 0 )
-
-    #define DUMP8( AA ) \
-            TRAP_IGNORE( \
-                { \
-                HBufC* conversion = HBufC::NewLC( AA.Length() ); \
-                TPtr convPtr( conversion->Des() ); \
-                convPtr.Copy( AA ); \
-                const TInt KMaxLine = 60; \
-                for ( TInt index = convPtr.Length(); index > 0; \
-                    index -= KMaxLine ) \
-                    { \
-                    if ( index <= KMaxLine ) \
-                        { \
-                        RDebug::Print( convPtr ); \
-                        break; \
-                        } \
-                    else  \
-                        { \
-                        RDebug::Print( convPtr.Left( KMaxLine ) ); \
-                        convPtr.Copy( convPtr.Mid( KMaxLine ) ); \
-                        } \
-                    } \
-                CleanupStack::PopAndDestroy( conversion ); \
-                } );
-
-                  
-#endif // _LOGGER
-
-#endif // _LOGGER
-
-// End of File
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +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: Unit test for mpmpxdetailsframeworkwrapper
-*
-*/
-
-#ifndef TESTMPMPXDETAILSFRAMEWORKWRAPPER_H
-#define TESTMPMPXDETAILSFRAMEWORKWRAPPER_H
-
-#include <QtTest/QtTest>
-
-class MpMpxDetailsFrameworkWrapper;
-class MpMpxDetailsFrameworkWrapperPrivate;
-class CMPXMedia;
-class MpSongData;
-
-class TestMpMpxDetailsFrameworkWrapper : public QObject
-{
-    Q_OBJECT
-
-public:
-
-    TestMpMpxDetailsFrameworkWrapper();
-    virtual ~TestMpMpxDetailsFrameworkWrapper();
-    
-private:     //test utility functions
-    void loadTestData(TInt aPos);
-    void verifyEmptyTestData();
-    void verify(int index);
-    void handleSongDetailInfoChanged();
-    void doTestHandleMedia(int index, TInt aResult);
-    
-private slots:
-
-    void initTestCase();
-    void cleanupTestCase();
-    void init();
-    void cleanup();
-
-private slots: // test functions
-    void testConstructor();
-    void testSongData();
-    void testHandlePlaybackMessage();
-    void testHandleMedia();        
-    void testRetrieveSong();
-    void testHandleProperty();
-    void testHandleSubPlayerNames();
-
-private:
-
-    MpMpxDetailsFrameworkWrapper           *mTest;
-    MpMpxDetailsFrameworkWrapperPrivate    *mTestPrivate;
-    CMPXMedia                              *iMediaTestData;
-    bool                                   mSongDetailInfoChanged;
-    TInt mAllocCells;
-
-};
-
-#endif  // TESTMPMPXDETAILSFRAMEWORKWRAPPER_H
-
-
-
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/profile.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1168 +0,0 @@
-*****************************************************************************
-*           CTC++, Test Coverage Analyzer for C/C++, Version 6.5.5          *
-*                                                                           *
-*                         EXECUTION PROFILE LISTING                         *
-*                                                                           *
-*                    Copyright (c) 1993-2009 Testwell Oy                    *
-*****************************************************************************
-
-
-Symbol file(s) used   : MON.sym (Mon Mar 15 17:00:37 2010)
-Data file(s) used     : MON.dat (Mon Mar 15 17:09:14 2010)
-Listing produced at   : Mon Mar 15 17:09:26 2010
-Coverage view         : As instrumented
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        34         34      35 FUNCTION MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapper::MpMpxDetailsFrameworkWrapper()
------------------------------------------------------------------------------
-
-        33         33      46 FUNCTION MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapper::~MpMpxDetailsFrameworkWrapper()
------------------------------------------------------------------------------
-
-         1          0      56 FUNCTION MpMpxDetailsFrameworkWrapper::songData()
-         1                 59 return d_ptr -> songData ( )
-
-***TER 100 % (  2/  2) of FUNCTION MpMpxDetailsFrameworkWrapper::songData()
------------------------------------------------------------------------------
-
-         1          1      65 FUNCTION MpMpxDetailsFrameworkWrapper::retrieveSong()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapper::retrieveSong()
------------------------------------------------------------------------------
-
-
-***TER 100 % (  5/  5) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    64 FUNCTION TestMpMpxDetailsFrameworkWrapper::getStaticMetaObject()
-         0            -    64 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION TestMpMpxDetailsFrameworkWrapper::getStaticMetaObject()
------------------------------------------------------------------------------
-
-        87          0      67 FUNCTION TestMpMpxDetailsFrameworkWrapper::metaObject()
-         0         87 -    69 ternary-?: QObject::d_ptr -> metaObject
-        87                 69 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION TestMpMpxDetailsFrameworkWrapper::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    72 FUNCTION TestMpMpxDetailsFrameworkWrapper::qt_metacast()
-         0          0 -    74 if (! _clname)
-         0            -    74   return 0
-         0          0 -    75 if (! strcmp ( _clname , qt_meta_stringdata_Te..
-         0            -    76   return static_cast < void * > ( const_cast <..
-         0            -    77 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION TestMpMpxDetailsFrameworkWrapper::qt_metacast()
------------------------------------------------------------------------------
-
-        23          0      80 FUNCTION TestMpMpxDetailsFrameworkWrapper::qt_metacall()
-         0         23 -    83 if (_id < 0)
-         0            -    84   return _id
-        23          0 -    85 if (_c == QMetaObject::InvokeMetaMethod)
-                           86   switch ( _id )
-         1                 87   case 0:
-         1                 87     break
-         1                 88   case 1:
-         1                 88     break
-         7                 89   case 2:
-         7                 89     break
-         7                 90   case 3:
-         7                 90     break
-         1                 91   case 4:
-         1                 91     break
-         1                 92   case 5:
-         1                 92     break
-         1                 93   case 6:
-         1                 93     break
-         1                 94   case 7:
-         1                 94     break
-         1                 95   case 8:
-         1                 95     break
-         1                 96   case 9:
-         1                 96     break
-         1                 97   case 10:
-         1                 97     break
-         0            -    98   default:
-        23                102 return _id
-
-***TER  87 % ( 26/ 30) of FUNCTION TestMpMpxDetailsFrameworkWrapper::qt_metacall()
------------------------------------------------------------------------------
-
-
-***TER  66 % ( 29/ 44) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_unittest_mpmpxdetailsframeworkwrapper.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    46 FUNCTION MpMpxDetailsFrameworkWrapper::getStaticMetaObject()
-         0            -    46 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpMpxDetailsFrameworkWrapper::getStaticMetaObject()
------------------------------------------------------------------------------
-
-         0          0 -    49 FUNCTION MpMpxDetailsFrameworkWrapper::metaObject()
-         0          0 -    51 ternary-?: QObject::d_ptr -> metaObject
-         0            -    51 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER   0 % (  0/  4) of FUNCTION MpMpxDetailsFrameworkWrapper::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    54 FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacast()
-         0          0 -    56 if (! _clname)
-         0            -    56   return 0
-         0          0 -    57 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    58   return static_cast < void * > ( const_cast <..
-         0            -    59 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacast()
------------------------------------------------------------------------------
-
-         0          0 -    62 FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacall()
-         0          0 -    65 if (_id < 0)
-         0            -    66   return _id
-         0            -    67 return _id
-
-***TER   0 % (  0/  5) of FUNCTION MpMpxDetailsFrameworkWrapper::qt_metacall()
------------------------------------------------------------------------------
-
-
-***TER   0 % (  0/ 19) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpmpxdetailsframeworkwrapper.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        34         34      43 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::MpMpxDetailsFrameworkWrapperPrivate()
-        34         34      50     try
-         0            -    50     catch (XLeaveException & l)
-         0            -    50     catch (...)
-
-***TER  50 % (  2/  4) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::MpMpxDetailsFrameworkWrapperPrivate()
------------------------------------------------------------------------------
-
-        33         33      57 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::~MpMpxDetailsFrameworkWrapperPrivate()
-        33         33      61   try
-         0            -    61   catch (XLeaveException & l)
-         0            -    61   catch (...)
-
-***TER  50 % (  2/  4) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::~MpMpxDetailsFrameworkWrapperPrivate()
------------------------------------------------------------------------------
-
-        34         34      69 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::constructProviderL()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::constructProviderL()
------------------------------------------------------------------------------
-
-        33         33      85 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::destructProviderL()
-        33          0 -    88 if (iPlaybackUtility)
-
-***TER  67 % (  2/  3) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::destructProviderL()
------------------------------------------------------------------------------
-
-         1          1     103 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandlePlaybackMessage()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandlePlaybackMessage()
------------------------------------------------------------------------------
-
-         1          1     113 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandlePropertyL()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandlePropertyL()
------------------------------------------------------------------------------
-
-         1          1     121 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandleSubPlayerNamesL()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandleSubPlayerNamesL()
------------------------------------------------------------------------------
-
-        27         26     129 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandleMediaL()
-         1         26     135 if (KErrNone != aError)
-         1                138   return
-        24          2     142 if (aProperties . IsSupported ( KMPXMediaGener..
-                          147 else
-        24          2     151 if (aProperties . IsSupported ( KMPXMediaMusic..
-                          156 else
-        24          2     160 if (aProperties . IsSupported ( KMPXMediaMusic..
-                          165 else
-        25          1     168 if (changed)
-        25          1     173 if (aProperties . IsSupported ( TMPXAttribute ..
-                          178 else
-        24          2     184 if (aProperties . IsSupported ( KMPXMediaGener..
-                          190 else
-        24          2     194 if (aProperties . IsSupported ( TMPXAttribute ..
-                          200 else
-        24          2     204 if (aProperties . IsSupported ( TMPXAttribute ..
-                          208 else
-        24          2     213 if (aProperties . IsSupported ( TMPXAttribute ..
-                          218 else
-        24          2     222 if (aProperties . IsSupported ( TMPXAttribute ..
-                          227 else
-        26          0 -   231 if (changed)
-
-***TER  96 % ( 25/ 26) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::HandleMediaL()
------------------------------------------------------------------------------
-
-       209          0     240 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::songData()
-       209                243 return iSongData
-
-***TER 100 % (  2/  2) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::songData()
------------------------------------------------------------------------------
-
-         1          1     249 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::retrieveSong()
-         1          1     252   try
-         0            -   252   catch (XLeaveException & l)
-         0            -   252   catch (...)
-
-***TER  50 % (  2/  4) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::retrieveSong()
------------------------------------------------------------------------------
-
-         1          1     259 FUNCTION MpMpxDetailsFrameworkWrapperPrivate::doRetrieveSongL()
-
-***TER 100 % (  1/  1) of FUNCTION MpMpxDetailsFrameworkWrapperPrivate::doRetrieveSongL()
------------------------------------------------------------------------------
-
-
-***TER  83 % ( 40/ 48) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        26          0     140 FUNCTION referenceGeneralTitle()
-        24          2     144 if (title . Match ( KOff ) == KErrNotFound)
-        26                148 return result
-
-***TER 100 % (  4/  4) of FUNCTION referenceGeneralTitle()
------------------------------------------------------------------------------
-
-        26          0     151 FUNCTION referenceMusicArtist()
-        24          2     155 if (artist . Match ( KOff ) == KErrNotFound)
-        26                159 return result
-
-***TER 100 % (  4/  4) of FUNCTION referenceMusicArtist()
------------------------------------------------------------------------------
-
-        26          0     162 FUNCTION referenceMusicAlbum()
-        24          2     166 if (album . Match ( KOff ) == KErrNotFound)
-        26                170 return result
-
-***TER 100 % (  4/  4) of FUNCTION referenceMusicAlbum()
------------------------------------------------------------------------------
-
-         0          0 -   173 FUNCTION referenceMusicAlbumArtFileName()
-         0          0 -   177 if (musicAlbumArtFileName . Match ( KOff ) == ..
-         0            -   181 return result
-
-***TER   0 % (  0/  4) of FUNCTION referenceMusicAlbumArtFileName()
------------------------------------------------------------------------------
-
-        26          0     184 FUNCTION referenceComment()
-        24          2     188 if (musicComment . Match ( KOff ) == KErrNotFo..
-        26                192 return result
-
-***TER 100 % (  4/  4) of FUNCTION referenceComment()
------------------------------------------------------------------------------
-
-        26          0     195 FUNCTION referenceComposer()
-        24          2     199 if (composer . Match ( KOff ) == KErrNotFound)
-        26                203 return result
-
-***TER 100 % (  4/  4) of FUNCTION referenceComposer()
------------------------------------------------------------------------------
-
-        26          0     206 FUNCTION referenceYear()
-        23          3     208 ternary-?: ( KAllSongsTestData [ index ] . Yea..
-        26                208 return ( KAllSongsTestData [ index ] . Year >=..
-
-***TER 100 % (  4/  4) of FUNCTION referenceYear()
------------------------------------------------------------------------------
-
-        26          0     211 FUNCTION referenceMusicAlbumTrack()
-        24          2     215 if (musicAlbumTrack . Match ( KOff ) == KErrNo..
-        26                219 return result
-
-***TER 100 % (  4/  4) of FUNCTION referenceMusicAlbumTrack()
------------------------------------------------------------------------------
-
-        26          0     222 FUNCTION referenceMusicGenre()
-        24          2     226 if (musicGenre . Match ( KOff ) == KErrNotFound)
-        26                230 return result
-
-***TER 100 % (  4/  4) of FUNCTION referenceMusicGenre()
------------------------------------------------------------------------------
-
-         0          0 -   233 FUNCTION referenceMusicUri()
-         0          0 -   237 if (musicUri . Match ( KOff ) == KErrNotFound)
-         0            -   241 return result
-
-***TER   0 % (  0/  4) of FUNCTION referenceMusicUri()
------------------------------------------------------------------------------
-
-         1          0     247 FUNCTION main()
-         1                261 return res
-
-***TER 100 % (  2/  2) of FUNCTION main()
------------------------------------------------------------------------------
-
-         1          1     264 FUNCTION TestMpMpxDetailsFrameworkWrapper::TestMpMpxDetailsFrameworkWrapper()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::TestMpMpxDetailsFrameworkWrapper()
------------------------------------------------------------------------------
-
-         1          1     271 FUNCTION TestMpMpxDetailsFrameworkWrapper::~TestMpMpxDetailsFrameworkWrapper()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::~TestMpMpxDetailsFrameworkWrapper()
------------------------------------------------------------------------------
-
-         1          1     279 FUNCTION TestMpMpxDetailsFrameworkWrapper::initTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::initTestCase()
------------------------------------------------------------------------------
-
-         1          1     286 FUNCTION TestMpMpxDetailsFrameworkWrapper::cleanupTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::cleanupTestCase()
------------------------------------------------------------------------------
-
-        34         34     293 FUNCTION TestMpMpxDetailsFrameworkWrapper::init()
-                          298 do
-                          298 while ( 0 )
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::init()
------------------------------------------------------------------------------
-
-        34         34     308 FUNCTION TestMpMpxDetailsFrameworkWrapper::cleanup()
-                          316 do
-                          316 while ( 0 )
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::cleanup()
------------------------------------------------------------------------------
-
-         1          1     324 FUNCTION TestMpMpxDetailsFrameworkWrapper::testConstructor()
-                          326 do
-         0          1 -   326   if (! QTest::qVerify ( ( mTestPrivate -> q_p..
-         0            -   326     return
-                          326 while ( 0 )
-                          327 do
-         0          1 -   327   if (! QTest::qVerify ( ( mTestPrivate -> iPl..
-         0            -   327     return
-                          327 while ( 0 )
-                          328 do
-         0          1 -   328   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   328     return
-                          328 while ( 0 )
-
-***TER  40 % (  4/ 10) of FUNCTION TestMpMpxDetailsFrameworkWrapper::testConstructor()
------------------------------------------------------------------------------
-
-         1          1     335 FUNCTION TestMpMpxDetailsFrameworkWrapper::testSongData()
-                          337 do
-         0          1 -   337   if (! QTest::qCompare ( mTestPrivate -> iSon..
-         0            -   337     return
-                          337 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpMpxDetailsFrameworkWrapper::testSongData()
------------------------------------------------------------------------------
-
-         1          1     340 FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandleProperty()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandleProperty()
------------------------------------------------------------------------------
-
-         1          1     346 FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandleSubPlayerNames()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandleSubPlayerNames()
------------------------------------------------------------------------------
-
-         1          1     355 FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandlePlaybackMessage()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandlePlaybackMessage()
------------------------------------------------------------------------------
-
-         1          1     373 FUNCTION TestMpMpxDetailsFrameworkWrapper::verifyEmptyTestData()
-                          375 do
-         0          1 -   375   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   375     return
-                          375 while ( 0 )
-                          376 do
-         0          1 -   376   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   376     return
-                          376 while ( 0 )
-                          377 do
-         0          1 -   377   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   377     return
-                          377 while ( 0 )
-                          378 do
-         0          1 -   378   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   378     return
-                          378 while ( 0 )
-                          379 do
-         0          1 -   379   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   379     return
-                          379 while ( 0 )
-                          380 do
-         0          1 -   380   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   380     return
-                          380 while ( 0 )
-                          381 do
-         0          1 -   381   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   381     return
-                          381 while ( 0 )
-                          382 do
-         0          1 -   382   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   382     return
-                          382 while ( 0 )
-                          383 do
-         0          1 -   383   if (! QTest::qVerify ( ( mTestPrivate -> iSo..
-         0            -   383     return
-                          383 while ( 0 )
-
-***TER  36 % ( 10/ 28) of FUNCTION TestMpMpxDetailsFrameworkWrapper::verifyEmptyTestData()
------------------------------------------------------------------------------
-
-        26         26     386 FUNCTION TestMpMpxDetailsFrameworkWrapper::verify()
-                          388 do
-         0         26 -   388   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   388     return
-                          388 while ( 0 )
-                          389 do
-         0         26 -   389   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   389     return
-                          389 while ( 0 )
-                          390 do
-         0         26 -   390   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   390     return
-                          390 while ( 0 )
-                          392 do
-         0         26 -   392   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   392     return
-                          392 while ( 0 )
-                          393 do
-         0         26 -   393   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   393     return
-                          393 while ( 0 )
-                          394 do
-         0         26 -   394   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   394     return
-                          394 while ( 0 )
-                          395 do
-         0         26 -   395   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   395     return
-                          395 while ( 0 )
-                          396 do
-         0         26 -   396   if (! QTest::qCompare ( mTestPrivate -> song..
-         0            -   396     return
-                          396 while ( 0 )
-
-***TER  36 % (  9/ 25) of FUNCTION TestMpMpxDetailsFrameworkWrapper::verify()
------------------------------------------------------------------------------
-
-        27         27     399 FUNCTION TestMpMpxDetailsFrameworkWrapper::doTestHandleMedia()
-         1         26     404 if (aResult != KErrNone)
-                          408 else
-
-***TER 100 % (  3/  3) of FUNCTION TestMpMpxDetailsFrameworkWrapper::doTestHandleMedia()
------------------------------------------------------------------------------
-
-         1          1     418 FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandleMedia()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::testHandleMedia()
------------------------------------------------------------------------------
-
-         1          1     507 FUNCTION TestMpMpxDetailsFrameworkWrapper::testRetrieveSong()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::testRetrieveSong()
------------------------------------------------------------------------------
-
-         0          0 -   514 FUNCTION TestMpMpxDetailsFrameworkWrapper::handleSongDetailInfoChanged()
-
-***TER   0 % (  0/  1) of FUNCTION TestMpMpxDetailsFrameworkWrapper::handleSongDetailInfoChanged()
------------------------------------------------------------------------------
-
-        27         27     522 FUNCTION TestMpMpxDetailsFrameworkWrapper::loadTestData()
-                          524 do
-                          524 while ( 0 )
-        26          1     525 if (iMediaTestData)
-                          536 do
-                          536 while ( 0 )
-        25          2     538 if (title . Match ( KOff ) == KErrNotFound)
-                          539   do
-                          539   while ( 0 )
-        25          2     544 if (artist . Match ( KOff ) == KErrNotFound)
-                          545   do
-                          545   while ( 0 )
-        25          2     550 if (musicAlbum . Match ( KOff ) == KErrNotFound)
-                          551   do
-                          551   while ( 0 )
-        26          1     556 if (musicAlbumArtFileName . Match ( KOff ) == ..
-                          557   do
-                          557   while ( 0 )
-        25          2     562 if (comment . Match ( KOff ) == KErrNotFound)
-                          563   do
-                          563   while ( 0 )
-        25          2     568 if (composer . Match ( KOff ) == KErrNotFound)
-                          569   do
-                          569   while ( 0 )
-        25          2     573 if (KAllSongsTestData [ aPos ] . Year != - 1)
-                          583   do
-                          583   while ( 0 )
-                          584   do
-                          584   while ( 0 )
-        25          2     589 if (musicAlbumTrack . Match ( KOff ) == KErrNo..
-                          590   do
-                          590   while ( 0 )
-        25          2     595 if (genre . Match ( KOff ) == KErrNotFound)
-                          596   do
-                          596   while ( 0 )
-        26          1     601 if (musicUri . Match ( KOff ) == KErrNotFound)
-                          602   do
-                          602   while ( 0 )
-                          605 do
-                          605 while ( 0 )
-
-***TER 100 % ( 23/ 23) of FUNCTION TestMpMpxDetailsFrameworkWrapper::loadTestData()
------------------------------------------------------------------------------
-
-
-***TER  65 % ( 96/147) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    72 FUNCTION MpSongData::getStaticMetaObject()
-         0            -    72 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::getStaticMetaObject()
------------------------------------------------------------------------------
-
-         0          0 -    75 FUNCTION MpSongData::metaObject()
-         0          0 -    77 ternary-?: QObject::d_ptr -> metaObject
-         0            -    77 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER   0 % (  0/  4) of FUNCTION MpSongData::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    80 FUNCTION MpSongData::qt_metacast()
-         0          0 -    82 if (! _clname)
-         0            -    82   return 0
-         0          0 -    83 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    84   return static_cast < void * > ( const_cast <..
-         0            -    85 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpSongData::qt_metacast()
------------------------------------------------------------------------------
-
-         0          0 -    88 FUNCTION MpSongData::qt_metacall()
-         0          0 -    91 if (_id < 0)
-         0            -    92   return _id
-         0          0 -    93 if (_c == QMetaObject::InvokeMetaMethod)
-                           94   switch ( _id )
-         0            -    95   case 0:
-         0            -    95     break
-         0            -    96   case 1:
-         0            -    96     break
-         0            -    97   case 2:
-         0            -    97     break
-         0            -    98   case 3:
-         0            -    98     break
-         0            -    99   case 4:
-         0          0 -   100       if (_a [ 0 ])
-         0            -   100     break
-         0            -   101   case 5:
-         0          0 -   102       if (_a [ 0 ])
-         0            -   102     break
-         0            -   103   case 6:
-         0          0 -   104       if (_a [ 0 ])
-         0            -   104     break
-         0            -   105   case 7:
-         0          0 -   106       if (_a [ 0 ])
-         0            -   106     break
-         0            -   107   case 8:
-         0          0 -   108       if (_a [ 0 ])
-         0            -   108     break
-         0            -   109   case 9:
-         0            -   109     break
-         0            -   110   case 10:
-         0          0 -   111       if (_a [ 0 ])
-         0            -   111     break
-         0            -   112   case 11:
-         0          0 -   113       if (_a [ 0 ])
-         0            -   113     break
-         0            -   114   case 12:
-         0          0 -   115       if (_a [ 0 ])
-         0            -   115     break
-         0            -   116   case 13:
-         0          0 -   117       if (_a [ 0 ])
-         0            -   117     break
-         0            -   118   case 14:
-         0          0 -   119       if (_a [ 0 ])
-         0            -   119     break
-         0            -   120   default:
-         0            -   124 return _id
-
-***TER   0 % (  0/ 58) of FUNCTION MpSongData::qt_metacall()
------------------------------------------------------------------------------
-
-        26         26     128 FUNCTION MpSongData::albumArtReady()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::albumArtReady()
------------------------------------------------------------------------------
-
-        25         25     134 FUNCTION MpSongData::playbackInfoChanged()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::playbackInfoChanged()
------------------------------------------------------------------------------
-
-        26         26     140 FUNCTION MpSongData::songDetailInfoChanged()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::songDetailInfoChanged()
------------------------------------------------------------------------------
-
-
-***TER   4 % (  3/ 75) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/moc_mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        33          0      25 FUNCTION MMPXPlaybackUtility::NewL()
-        33                 32 return obj
-
-***TER 100 % (  2/  2) of FUNCTION MMPXPlaybackUtility::NewL()
------------------------------------------------------------------------------
-
-        33         33      35 FUNCTION MMPXPlaybackUtility::ConstructL()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXPlaybackUtility::ConstructL()
------------------------------------------------------------------------------
-
-        33         33      43 FUNCTION MMPXPlaybackUtility::~MMPXPlaybackUtility()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXPlaybackUtility::~MMPXPlaybackUtility()
------------------------------------------------------------------------------
-
-        33         33      48 FUNCTION MMPXPlaybackUtility::MMPXPlaybackUtility()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXPlaybackUtility::MMPXPlaybackUtility()
------------------------------------------------------------------------------
-
-        34         34      60 FUNCTION MMPXPlaybackUtility::AddObserverL()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXPlaybackUtility::AddObserverL()
------------------------------------------------------------------------------
-
-        33         33      66 FUNCTION MMPXPlaybackUtility::RemoveObserverL()
-        33          0 -    69 if (iPlaybackObserver == & aPlaybackObserver)
-
-***TER  67 % (  2/  3) of FUNCTION MMPXPlaybackUtility::RemoveObserverL()
------------------------------------------------------------------------------
-
-         0          0 -    75 FUNCTION MMPXPlaybackUtility::GetClientsL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::GetClientsL()
------------------------------------------------------------------------------
-
-         0          0 -    80 FUNCTION MMPXPlaybackUtility::InitL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::InitL()
------------------------------------------------------------------------------
-
-         0          0 -    85 FUNCTION MMPXPlaybackUtility::InitL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::InitL()
------------------------------------------------------------------------------
-
-         0          0 -    90 FUNCTION MMPXPlaybackUtility::InitL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::InitL()
------------------------------------------------------------------------------
-
-        33         33      95 FUNCTION MMPXPlaybackUtility::Close()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXPlaybackUtility::Close()
------------------------------------------------------------------------------
-
-         0          0 -   103 FUNCTION MMPXPlaybackUtility::CancelRequest()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::CancelRequest()
------------------------------------------------------------------------------
-
-         0          0 -   108 FUNCTION MMPXPlaybackUtility::CommandL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::CommandL()
------------------------------------------------------------------------------
-
-         0          0 -   113 FUNCTION MMPXPlaybackUtility::CommandL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::CommandL()
------------------------------------------------------------------------------
-
-         0          0 -   118 FUNCTION MMPXPlaybackUtility::StateL()
-         0            -   121 return iState
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlaybackUtility::StateL()
------------------------------------------------------------------------------
-
-         1          0     124 FUNCTION MMPXPlaybackUtility::Source()
-         1                127 return iMpxSource
-
-***TER 100 % (  2/  2) of FUNCTION MMPXPlaybackUtility::Source()
------------------------------------------------------------------------------
-
-         0          0 -   130 FUNCTION MMPXPlaybackUtility::PlayerManager()
-         0            -   133 return * iMpxPlayerManager
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlaybackUtility::PlayerManager()
------------------------------------------------------------------------------
-
-         0          0 -   136 FUNCTION MMPXPlaybackUtility::SetL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::SetL()
------------------------------------------------------------------------------
-
-         0          0 -   141 FUNCTION MMPXPlaybackUtility::ValueL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::ValueL()
------------------------------------------------------------------------------
-
-         0          0 -   146 FUNCTION MMPXPlaybackUtility::PropertyL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::PropertyL()
------------------------------------------------------------------------------
-
-         0          0 -   151 FUNCTION MMPXPlaybackUtility::SupportedMimeTypes()
-         0            -   154 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlaybackUtility::SupportedMimeTypes()
------------------------------------------------------------------------------
-
-         0          0 -   157 FUNCTION MMPXPlaybackUtility::SupportedExtensions()
-         0            -   160 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlaybackUtility::SupportedExtensions()
------------------------------------------------------------------------------
-
-         0          0 -   163 FUNCTION MMPXPlaybackUtility::SupportedSchemas()
-         0            -   166 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlaybackUtility::SupportedSchemas()
------------------------------------------------------------------------------
-
-         0          0 -   169 FUNCTION MMPXPlaybackUtility::SetPriority()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::SetPriority()
------------------------------------------------------------------------------
-
-         0          0 -   174 FUNCTION MMPXPlaybackUtility::AddSubscriptionL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::AddSubscriptionL()
------------------------------------------------------------------------------
-
-         0          0 -   179 FUNCTION MMPXPlaybackUtility::RemoveSubscriptionL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::RemoveSubscriptionL()
------------------------------------------------------------------------------
-
-         0          0 -   184 FUNCTION MMPXPlaybackUtility::ClearSubscriptionsL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::ClearSubscriptionsL()
------------------------------------------------------------------------------
-
-         0          0 -   189 FUNCTION MMPXPlaybackUtility::InitStreamingL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::InitStreamingL()
------------------------------------------------------------------------------
-
-         0          0 -   194 FUNCTION MMPXPlaybackUtility::InitStreamingL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlaybackUtility::InitStreamingL()
------------------------------------------------------------------------------
-
-         0          0 -   199 FUNCTION MMPXPlaybackUtility::NewL()
-         0            -   203 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlaybackUtility::NewL()
------------------------------------------------------------------------------
-
-         0          0 -   206 FUNCTION MMPXPlaybackUtility::UtilityL()
-         0            -   209 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlaybackUtility::UtilityL()
------------------------------------------------------------------------------
-
-        34          0     212 FUNCTION MMPXPlaybackUtility::UtilityL()
-        33          1     214 if (! singleton)
-        34                217 return singleton
-
-***TER 100 % (  4/  4) of FUNCTION MMPXPlaybackUtility::UtilityL()
------------------------------------------------------------------------------
-
-
-***TER  33 % ( 15/ 46) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        34         34      62 FUNCTION MpSongData::MpSongData()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::MpSongData()
------------------------------------------------------------------------------
-
-        33         33      83 FUNCTION MpSongData::~MpSongData()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::~MpSongData()
------------------------------------------------------------------------------
-
-         0          0 -    93 FUNCTION MpSongData::albumArt()
-         0          0 -    96 if (! mAlbumArt . isNull ( ))
-                           99 else
-
-***TER   0 % (  0/  3) of FUNCTION MpSongData::albumArt()
------------------------------------------------------------------------------
-
-        27          0     109 FUNCTION MpSongData::title()
-        27                112 return mTitle
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::title()
------------------------------------------------------------------------------
-
-        27          0     118 FUNCTION MpSongData::album()
-        27                121 return mAlbum
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::album()
------------------------------------------------------------------------------
-
-        27          0     127 FUNCTION MpSongData::artist()
-        27                130 return mArtist
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::artist()
------------------------------------------------------------------------------
-
-        27          0     136 FUNCTION MpSongData::comment()
-        27                139 return mComment
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::comment()
------------------------------------------------------------------------------
-
-        27          0     145 FUNCTION MpSongData::composer()
-        27                148 return mComposer
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::composer()
------------------------------------------------------------------------------
-
-        27          0     155 FUNCTION MpSongData::genre()
-        27                158 return mGenre
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::genre()
------------------------------------------------------------------------------
-
-        27          0     165 FUNCTION MpSongData::albumTrack()
-        27                168 return mAlbumTrack
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::albumTrack()
------------------------------------------------------------------------------
-
-         1          0     174 FUNCTION MpSongData::link()
-         1                177 return mLink
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::link()
------------------------------------------------------------------------------
-
-        27          0     183 FUNCTION MpSongData::year()
-        27                186 return mYear
-
-***TER 100 % (  2/  2) of FUNCTION MpSongData::year()
------------------------------------------------------------------------------
-
-        26          0     193 FUNCTION MpSongData::setTitle()
-        23          3     197 if (title != mTitle)
-        26                202 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setTitle()
------------------------------------------------------------------------------
-
-        26          0     208 FUNCTION MpSongData::setAlbum()
-        23          3     212 if (album != mAlbum)
-        26                217 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setAlbum()
------------------------------------------------------------------------------
-
-        26          0     223 FUNCTION MpSongData::setArtist()
-        23          3     227 if (artist != mArtist)
-        26                232 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setArtist()
------------------------------------------------------------------------------
-
-        26          0     238 FUNCTION MpSongData::setComment()
-        23          3     242 if (comment != mComment)
-        26                247 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setComment()
------------------------------------------------------------------------------
-
-        26          0     254 FUNCTION MpSongData::setComposer()
-        24          2     258 if (composer != mComposer)
-        26                263 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setComposer()
------------------------------------------------------------------------------
-
-        26          0     269 FUNCTION MpSongData::setGenre()
-        14         12     273 if (genre != mGenre)
-        26                278 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setGenre()
------------------------------------------------------------------------------
-
-        26          0     285 FUNCTION MpSongData::setYear()
-        26          0 -   289 if (QString::number ( year ) != mYear)
-        23          3     291   if (year >= 0 && year < 9999)
-                          293   else
-        26                298 return change
-
-***TER  83 % (  5/  6) of FUNCTION MpSongData::setYear()
------------------------------------------------------------------------------
-
-        26          0     304 FUNCTION MpSongData::setAlbumTrack()
-        23          3     308 if (track != mAlbumTrack)
-        26                313 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setAlbumTrack()
------------------------------------------------------------------------------
-
-         0          0 -   319 FUNCTION MpSongData::setLink()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::setLink()
------------------------------------------------------------------------------
-
-        26         26     329 FUNCTION MpSongData::setAlbumArtUri()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::setAlbumArtUri()
------------------------------------------------------------------------------
-
-         0          0 -   343 FUNCTION MpSongData::thumbnailReady()
-         0          0 -   351 if (error == 0 && mReqId == id)
-                          356 else
-
-***TER   0 % (  0/  3) of FUNCTION MpSongData::thumbnailReady()
------------------------------------------------------------------------------
-
-        25         25     368 FUNCTION MpSongData::commitPlaybackInfo()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::commitPlaybackInfo()
------------------------------------------------------------------------------
-
-        26         26     378 FUNCTION MpSongData::commitSongDetailInfo()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::commitSongDetailInfo()
------------------------------------------------------------------------------
-
-
-***TER  88 % ( 56/ 64) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        33         33      21 FUNCTION MMPXPlayerManager::MMPXPlayerManager()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXPlayerManager::MMPXPlayerManager()
------------------------------------------------------------------------------
-
-         0          0 -    26 FUNCTION MMPXPlayerManager::~MMPXPlayerManager()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::~MMPXPlayerManager()
------------------------------------------------------------------------------
-
-         0          0 -    31 FUNCTION MMPXPlayerManager::GetPlayerTypesL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::GetPlayerTypesL()
------------------------------------------------------------------------------
-
-         0          0 -    36 FUNCTION MMPXPlayerManager::PlayerTypeDisplayNameL()
-         0            -    39 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlayerManager::PlayerTypeDisplayNameL()
------------------------------------------------------------------------------
-
-         0          0 -    42 FUNCTION MMPXPlayerManager::GetPlayerListL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::GetPlayerListL()
------------------------------------------------------------------------------
-
-         0          0 -    47 FUNCTION MMPXPlayerManager::GetPlayerListL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::GetPlayerListL()
------------------------------------------------------------------------------
-
-         0          0 -    52 FUNCTION MMPXPlayerManager::SubPlayerNamesL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::SubPlayerNamesL()
------------------------------------------------------------------------------
-
-         0          0 -    57 FUNCTION MMPXPlayerManager::SelectPlayersL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::SelectPlayersL()
------------------------------------------------------------------------------
-
-         0          0 -    62 FUNCTION MMPXPlayerManager::SelectSubPlayerL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::SelectSubPlayerL()
------------------------------------------------------------------------------
-
-         0          0 -    67 FUNCTION MMPXPlayerManager::SelectPlayerL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::SelectPlayerL()
------------------------------------------------------------------------------
-
-         0          0 -    72 FUNCTION MMPXPlayerManager::ClearSelectPlayersL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::ClearSelectPlayersL()
------------------------------------------------------------------------------
-
-         0          0 -    77 FUNCTION MMPXPlayerManager::GetSelectionL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXPlayerManager::GetSelectionL()
------------------------------------------------------------------------------
-
-         0          0 -    85 FUNCTION MMPXPlayerManager::CurrentPlayer()
-         0            -    88 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXPlayerManager::CurrentPlayer()
------------------------------------------------------------------------------
-
-
-***TER   7 % (  1/ 15) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        33         33      21 FUNCTION MMPXSource::MMPXSource()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXSource::MMPXSource()
------------------------------------------------------------------------------
-
-         0          0 -    26 FUNCTION MMPXSource::~MMPXSource()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXSource::~MMPXSource()
------------------------------------------------------------------------------
-
-         0          0 -    31 FUNCTION MMPXSource::PlaylistL()
-         0            -    34 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXSource::PlaylistL()
------------------------------------------------------------------------------
-
-         0          0 -    37 FUNCTION MMPXSource::FileL()
-         0            -    40 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXSource::FileL()
------------------------------------------------------------------------------
-
-         0          0 -    43 FUNCTION MMPXSource::UriL()
-         0            -    46 return 0
-
-***TER   0 % (  0/  2) of FUNCTION MMPXSource::UriL()
------------------------------------------------------------------------------
-
-         1          1      49 FUNCTION MMPXSource::MediaL()
-
-***TER 100 % (  1/  1) of FUNCTION MMPXSource::MediaL()
------------------------------------------------------------------------------
-
-         0          0 -    54 FUNCTION MMPXSource::MediaL()
-
-***TER   0 % (  0/  1) of FUNCTION MMPXSource::MediaL()
------------------------------------------------------------------------------
-
-
-***TER  20 % (  2/ 10) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp
------------------------------------------------------------------------------
-
-
-
-
-
-SUMMARY
-=======
-
-Number of monitored source files  : 10
-Number of source lines            : 2029
-Number of measurement points      : 612
-TER                               : 52% (decision)
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/sis.bat	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-@rem
-@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-del *.sisx
-makesis UT_mpmpxpbframeworkwrapper.pkg
-signsis UT_mpmpxpbframeworkwrapper.sis UT_mpmpxpbframeworkwrapper.sisx ..\RndCerts\Nokia_RnDCert_02.der ..\RndCerts\Nokia_RnDCert_02.key
-del     UT_mpmpxpbframeworkwrapper.sis
\ No newline at end of file
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,608 +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: Unit test for mpmpxdetailsframeworkwrapper
-*
-*/
-
-#include <QSignalSpy>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
-#include <mpxmessagegeneraldefs.h>
-#include <mpxplaybackmessage.h>
-#include <mpxmediamusicdefs.h>
-#include <mpxmediageneraldefs.h>
-
-#include <e32std.h>
-#include <e32des8.h>
-
-#include "unittest_mpmpxdetailsframeworkwrapper.h"
-#include "stub/inc/mpxplaybackutility.h"
-#include "stub/inc/mpsongdata.h"
-#include "logger.h"
-
-// classes under test
-#define private public
-#include "mpmpxdetailsframeworkwrapper.h"
-#include "mpmpxdetailsframeworkwrapper_p.h"
-#undef private
-
-struct TTestAttrs
-    {
-    const wchar_t* GeneralTitle;     // MpSongData::mTitle
-    const wchar_t* MusicArtist;      // MpSongData::mArtist
-    const wchar_t* MusicAlbum;       // MpSongData::mAlbum
-    const wchar_t* MusicAlbumArtFileName; // MpSongData::mAlbumArt (TODO: not tested yet)
-    const wchar_t* Comment;          // MpSongData::mComment
-    const wchar_t* Composer;         // MpSongData::mComposer
-    const TInt Year;                 // MpSongData::mYear
-    const wchar_t* MusicAlbumTrack;  // MpSongData::mAlbumTrack
-    const wchar_t* MusicGenre;       // MpSongData::mGenre
-    const wchar_t* MusicUri;         // N/A in MpSongData (TODO: not tested yet)
-    };
-
-// title
-const TInt KTitleZeroSized = 0;
-const TInt KTitleVeryLarge = 1;
-const TInt KTitleOff = 2;
-
-// artist
-const TInt KMusicArtistZeroSized = 3;
-const TInt KMusicArtistLarge = 4;
-const TInt KMusicArtistOff = 5;
-
-// album
-const TInt KAlbumZeroSized = 6;
-const TInt KAlbumLarge = 7;
-const TInt KAlbumOff = 8;
-
-// comment
-const TInt KCommentZeroSized = 9;
-const TInt KCommentLarge = 10;
-const TInt KCommentOff = 11;
-
-// composer
-const TInt KComposerZeroSized = 12;
-const TInt KComposerLarge = 13;
-const TInt KComposerOff = 14;
-
-// year
-const TInt KYearNegative = 15;
-const TInt KYearZero = 16;
-const TInt KYearPositive = 17;
-const TInt KYearOff = 18;
-
-// album track
-const TInt KAlbumTrackZeroSized = 19;
-const TInt KAlbumTrackLarge = 20;
-const TInt KAlbumTrackOff = 21;
-
-// genre
-const TInt KGenreZeroSized = 22;
-const TInt KGenreLarge = 23;
-const TInt KGenreOff = 24;
-
-// everything is OFF
-const TInt KAllFieldsOFF = 25;
-
-_LIT(KOff,"OFF");
-
-const TTestAttrs KAllSongsTestData[] =
-    {
-    // Title    
-     { L"", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
-    ,{ L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
-    ,{ L"OFF", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
-    // Artist  
-    , { L"Title", L"", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
-    , { L"Title", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
-    ,{ L"Title", L"OFF", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}  
-    // Album
-     , { L"Title", L"Artist", L"", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
-     , { L"Title", L"Artist", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
-     , { L"Title", L"Artist", L"OFF", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}  
-    // Comment
-     , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
-     , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
-     , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"OFF", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}  
-     // Composer
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", 2009, L"Track 1", L"Genre", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"OFF", 2009, L"Track 1", L"", L"Uri 1"}
-     // Year
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", -200, L"Track 1", L"Genre", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 0, L"Track 1", L"Genre", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 3000, L"Track 1", L"Genre", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", -1, L"Track 1", L"Genre", L"Uri 1"}     
-     // Album Track
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"", L"Genre", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Genre", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"OFF", L"Genre", L"Uri 1"}
-     // Genre
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Uri 1"}
-      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"OFF", L"Uri 1"}
-     // all fields OFF
-    , { L"OFF", L"OFF", L"OFF", L"OFF", L"OFF", L"OFF", -1, L"OFF", L"OFF", L"OFF"}     
-    };
-
-QString referenceGeneralTitle(int index)
-{
-    QString result;
-    const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].GeneralTitle));
-    if(title.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( title.Ptr(), title.Length() );
-    }
-    return result;
-}
-
-QString referenceMusicArtist(int index)
-{
-    QString result;
-    const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicArtist));
-    if(artist.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( artist.Ptr(), artist.Length());
-    }    
-    return result;
-}
-
-QString referenceMusicAlbum(int index)
-{
-    QString result;
-    const TDesC& album = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbum));
-    if(album.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( album.Ptr(), album.Length() );
-    }    
-    return result;
-}
-
-QString referenceMusicAlbumArtFileName(int index)
-{
-    QString result;
-    const TDesC& musicAlbumArtFileName = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumArtFileName));
-    if(musicAlbumArtFileName.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( musicAlbumArtFileName.Ptr(), musicAlbumArtFileName.Length() );
-    }    
-    return result;
-}
-
-QString referenceComment(int index)
-{
-    QString result;
-    const TDesC& musicComment = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Comment));
-    if(musicComment.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( musicComment.Ptr(), musicComment.Length() );
-    }    
-    return result;
-}
-
-QString referenceComposer(int index)
-{
-    QString result;
-    const TDesC& composer = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Composer));
-    if(composer.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( composer.Ptr(), composer.Length() );
-    }    
-    return result;
-}
-
-int referenceYear(int index)
-{
-    return (KAllSongsTestData[index].Year >= 0) ? KAllSongsTestData[index].Year : 0;
-}
-
-QString referenceMusicAlbumTrack(int index)
-{
-    QString result;
-    const TDesC& musicAlbumTrack = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumTrack));
-    if(musicAlbumTrack.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( musicAlbumTrack.Ptr(), musicAlbumTrack.Length() );
-    }    
-    return result;
-}
-
-QString referenceMusicGenre(int index)
-{
-    QString result;
-    const TDesC& musicGenre = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicGenre));
-    if(musicGenre.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( musicGenre.Ptr(), musicGenre.Length() );
-    }    
-    return result;
-}
-
-QString referenceMusicUri(int index)
-{
-    QString result;
-    const TDesC& musicUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicUri));
-    if(musicUri.Match(KOff) == KErrNotFound)
-    {
-        result = QString::fromUtf16( musicUri.Ptr(), musicUri.Length() );
-    }    
-    return result;
-}
-
-/*!
- Make our test case a stand-alone executable that runs all the test functions.
- */
-int main(int argc, char *argv[])
-{
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
-    TestMpMpxDetailsFrameworkWrapper tv;
-
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpmpxdetailsframeworkwrapper.txt";
-
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
-}
-
-TestMpMpxDetailsFrameworkWrapper::TestMpMpxDetailsFrameworkWrapper()
-    : mTest(0),
-      iMediaTestData(0),
-      mSongDetailInfoChanged(false)
-{
-}
-
-TestMpMpxDetailsFrameworkWrapper::~TestMpMpxDetailsFrameworkWrapper()
-{
-    delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpMpxDetailsFrameworkWrapper::initTestCase()
-{
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpMpxDetailsFrameworkWrapper::cleanupTestCase()
-{
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpMpxDetailsFrameworkWrapper::init()
-{
-    User::__DbgMarkStart(RHeap::EUser);
-    TInt freeCount(0);
-    mAllocCells = User::CountAllocCells(freeCount);
-    TRACE3("TestMpMpxDetailsFrameworkWrapper::init() -- allocCount: %d, freeCount: %d", 
-            mAllocCells, freeCount );
-    
-    mTest = new MpMpxDetailsFrameworkWrapper();
-    mTestPrivate = mTest->d_ptr;
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpMpxDetailsFrameworkWrapper::cleanup()
-{
-    delete mTest;
-    mTest = 0;
-    mTestPrivate = 0;
-
-    TInt freeCount(0);
-    TInt allocCount = User::CountAllocCells(freeCount);     
-    TRACE3( "TestMpMpxDetailsFrameworkWrapper::cleanup() -- allocCount: %d, freeCount: %d", 
-        allocCount, freeCount );      
-    User::__DbgMarkEnd(RHeap::EUser,0); // this should panic if leak        
-}
-
-/*!
- Tests constructor.
- */
-void TestMpMpxDetailsFrameworkWrapper::testConstructor()
-{
-    QVERIFY( mTestPrivate->q_ptr );
-    QVERIFY( mTestPrivate->iPlaybackUtility );
-    QVERIFY( mTestPrivate->iSongData );
-    // TODO: test observer?
-}
-
-/*!
- Tests playbackData
- */
-void TestMpMpxDetailsFrameworkWrapper::testSongData()
-{
-    QCOMPARE(mTestPrivate->iSongData, mTest->songData());
-}
-
-void TestMpMpxDetailsFrameworkWrapper::testHandleProperty()
-{
-    // dummy call just to get coverage up. Empty imp in function under test
-    mTestPrivate->HandlePropertyL(EPbPropertyVolume, 0, 0);
-}
-
-void TestMpMpxDetailsFrameworkWrapper::testHandleSubPlayerNames()
-{
-    // dummy call just to get coverage up. Empty imp in function under test
-    mTestPrivate->HandleSubPlayerNamesL(TUid::Null(), 0, 0, 0);
-}
-
-/*!
- Tests testHandlePlaybackMessage
- */
-void TestMpMpxDetailsFrameworkWrapper::testHandlePlaybackMessage()
-{
-    RArray<TInt> supportedIds;
-    CleanupClosePushL( supportedIds );
-    supportedIds.AppendL( KMPXMessageContentIdGeneral );
-    CMPXMedia* testMessage = CMPXMedia::NewL(supportedIds.Array());
-    CleanupStack::PopAndDestroy(&supportedIds);
-    CleanupStack::PushL(testMessage);
-    testMessage->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral);    
-    
-    //Media change
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EMediaChanged);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
-    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
-    CleanupStack::PopAndDestroy(testMessage);
-}
-
-void TestMpMpxDetailsFrameworkWrapper::verifyEmptyTestData()
-{
-    QVERIFY(mTestPrivate->iSongData->title().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->album().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->artist().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->comment().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->year().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->genre().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->composer().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->albumTrack().isEmpty());
-    QVERIFY(mTestPrivate->iSongData->link().isEmpty());    
-}
-
-void TestMpMpxDetailsFrameworkWrapper::verify(int index)
-{
-    QCOMPARE(mTestPrivate->songData()->title(), referenceGeneralTitle( index ));
-    QCOMPARE(mTestPrivate->songData()->album(), referenceMusicAlbum( index ));    
-    QCOMPARE(mTestPrivate->songData()->artist(), referenceMusicArtist( index ));
-    // TODO: how to verify albumArt ?    
-    QCOMPARE(mTestPrivate->songData()->comment(), referenceComment( index ));    
-    QCOMPARE(mTestPrivate->songData()->composer(), referenceComposer( index ));    
-    QCOMPARE(mTestPrivate->songData()->year().toInt(), referenceYear( index ));    
-    QCOMPARE(mTestPrivate->songData()->albumTrack(), referenceMusicAlbumTrack( index ));    
-    QCOMPARE(mTestPrivate->songData()->genre(), referenceMusicGenre( index ));
-}
-
-void TestMpMpxDetailsFrameworkWrapper::doTestHandleMedia(int dataIndex, TInt aResult)
-{
-    init();
-    loadTestData(dataIndex);
-    mTestPrivate->HandleMediaL(*iMediaTestData, aResult);
-    if(aResult != KErrNone)
-    {
-        verifyEmptyTestData();        
-    }
-    else
-    {
-        verify(dataIndex);
-    }
-    cleanup();
-}
-
-/*
- Tests handleMedia
-*/
-void TestMpMpxDetailsFrameworkWrapper::testHandleMedia()
-{
-    // testing passing error code. iSongData should not be modified
-    // as it got constructed fresh with init(), all its string
-    // members must be empty
-    doTestHandleMedia(KTitleZeroSized, KErrGeneral);
-    
-    // Testing zero sized title
-    doTestHandleMedia(KTitleZeroSized, KErrNone);
-    
-    // very large title
-    doTestHandleMedia(KTitleVeryLarge, KErrNone);    
-    
-    // Testing title field OFF
-    doTestHandleMedia(KTitleOff, KErrNone);
-    
-    // Testing artist empty string
-    doTestHandleMedia(KMusicArtistZeroSized, KErrNone);
-    
-    // Testing artist long
-    doTestHandleMedia(KMusicArtistLarge, KErrNone);    
-    
-    // Testing artist field OFF
-    doTestHandleMedia(KMusicArtistOff, KErrNone);    
-    
-    // Testing album zero sized
-    doTestHandleMedia(KAlbumZeroSized, KErrNone);
-    
-    // Testing album long
-    doTestHandleMedia(KAlbumLarge, KErrNone);
-    
-    // Testing album off
-    doTestHandleMedia(KAlbumOff, KErrNone);
-    
-    // Testing comment zero sized
-    doTestHandleMedia(KCommentZeroSized, KErrNone);
-    
-    // Testing comment large
-    doTestHandleMedia(KCommentLarge, KErrNone);
-    
-    // Testing comment OFF
-    doTestHandleMedia(KCommentOff, KErrNone);
-    
-    // Testing composer zero sized
-    doTestHandleMedia(KComposerZeroSized, KErrNone);
-    
-    // Testing composer large
-    doTestHandleMedia(KComposerLarge, KErrNone);
-    
-    // Testing composer OFF
-    doTestHandleMedia(KComposerOff, KErrNone);
-    
-    // Testing year negative
-    doTestHandleMedia(KYearNegative, KErrNone);
-    
-    // Testing year 0
-    doTestHandleMedia(KYearZero, KErrNone);
-    
-    // Testing year +
-    doTestHandleMedia(KYearPositive, KErrNone);
-    
-    // Testing year OFF
-    doTestHandleMedia(KYearOff, KErrNone);
-    
-    // Testing album track zero sized
-    doTestHandleMedia(KAlbumTrackZeroSized, KErrNone);
-    
-    // Testing album track large
-    doTestHandleMedia(KAlbumTrackLarge, KErrNone);
-    
-    // Testing album track OFF
-    doTestHandleMedia(KAlbumTrackOff, KErrNone);
-    
-    // Testing genre zero sized
-    doTestHandleMedia(KGenreZeroSized, KErrNone);
- 
-    // Testing genre large
-    doTestHandleMedia(KGenreLarge, KErrNone);    
-    
-    // Testing genre OFF
-    doTestHandleMedia(KGenreOff, KErrNone);  
-    
-    // Testing all fields OFF
-    doTestHandleMedia(KAllFieldsOFF, KErrNone);    
-}
-
-/*!
- Tests retrieveSong
- */
-void TestMpMpxDetailsFrameworkWrapper::testRetrieveSong()
-{
-    mTest->retrieveSong(); // async
-    // no need to verify the data received. As we already
-    // tested them in testHandleMedia    
-}
-
-void TestMpMpxDetailsFrameworkWrapper::handleSongDetailInfoChanged()
-{
-    mSongDetailInfoChanged = true;
-}
-
-/*!
- Used to load test data
- */
-void TestMpMpxDetailsFrameworkWrapper::loadTestData( TInt aPos )
-{
-    TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData entry");
-    if( iMediaTestData ){
-        delete iMediaTestData;
-        iMediaTestData=0;
-    }
-    RArray<TInt> supportedIds;
-    CleanupClosePushL( supportedIds );
-    supportedIds.AppendL( KMPXMediaIdMusic );
-    supportedIds.AppendL( KMPXMediaIdGeneral );
-    iMediaTestData = CMPXMedia::NewL( supportedIds.Array() );
-    CleanupStack::PopAndDestroy( &supportedIds );
-
-    TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Loading %d.th data entry", aPos);
-    TPtrC title( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].GeneralTitle ) );
-    if(title.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding title: %S to iMediaTestData", &title);
-        iMediaTestData->SetTextValueL( KMPXMediaGeneralTitle, title );
-    }
-    
-    TPtrC artist( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicArtist ) );
-    if(artist.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding artist: %S to iMediaTestData", &artist);
-        iMediaTestData->SetTextValueL( KMPXMediaMusicArtist, artist );
-    }
-
-    TPtrC musicAlbum( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbum ) );
-    if(musicAlbum.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbum: %S to iMediaTestData", &musicAlbum);        
-        iMediaTestData->SetTextValueL( KMPXMediaMusicAlbum, musicAlbum );
-    }
-
-    TPtrC musicAlbumArtFileName( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumArtFileName ) );
-    if(musicAlbumArtFileName.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumArtFileName: %S to iMediaTestData", &musicAlbumArtFileName);        
-        iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumArtFileName, musicAlbumArtFileName );        
-    }
-
-    TPtrC comment( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Comment ) );
-    if(comment.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding comment: %S to iMediaTestData", &comment);        
-        iMediaTestData->SetTextValueL( KMPXMediaGeneralComment, comment);
-    }
-
-    TPtrC composer( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Composer ) );
-    if(composer.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding composer: %S to iMediaTestData", &composer);        
-        iMediaTestData->SetTextValueL( KMPXMediaMusicComposer, composer);
-    }
-    
-    if(KAllSongsTestData[aPos].Year != -1) {
-        TDateTime date_time;
-        date_time.SetYear(KAllSongsTestData[aPos].Year);
-        date_time.SetMonth(EJanuary);
-        date_time.SetDay(1);
-        date_time.SetHour(0);
-        date_time.SetMinute(0);
-        date_time.SetSecond(0);
-        date_time.SetMicroSecond(0);
-        TTime date(date_time);
-        TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding year: %d in %LD to iMediaTestData", KAllSongsTestData[aPos].Year, date.Int64());
-        TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Is year %d equal to %d", KAllSongsTestData[aPos].Year, date.DateTime().Year());        
-        iMediaTestData->SetTObjectValueL<TInt64>( KMPXMediaMusicYear, date.Int64() );        
-    }
-
-    TPtrC musicAlbumTrack( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumTrack ) );
-    if(musicAlbumTrack.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumTrack: %S to iMediaTestData", &musicAlbumTrack);        
-        iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumTrack,  musicAlbumTrack);        
-    }
-    
-    TPtrC genre( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicGenre ) );
-    if(genre.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding genre: %S to iMediaTestData", &genre);        
-        iMediaTestData->SetTextValueL( KMPXMediaMusicGenre, genre);
-    }
-    
-    TPtrC musicUri( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicUri ) );
-    if(musicUri.Match(KOff) == KErrNotFound) {
-        TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicUri: %S to iMediaTestData", &musicUri);        
-        iMediaTestData->SetTextValueL( KMPXMediaGeneralUri, musicUri);
-    }
-    TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData exit");    
-}
-
-//end of file
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +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: Metadata of song for details view.
-*
-*/
-
-#ifndef MPSONGDATA_H
-#define MPSONGDATA_H
-
-#include <QObject>
-#include <QString>
-#include <QPixmap>
-
-//forward declartions
-class QIcon;
-
-//class declaration
-class MpSongData : public QObject
-{
-    Q_OBJECT
-
-public:
-    explicit MpSongData( QObject *parent=0 );
-    virtual ~MpSongData();
-    
-    bool setTitle( const QString &title );
-    bool setAlbum( const QString &album );
-    bool setArtist( const QString &artist );
-    bool setComment( const QString &comment );
-    void setAlbumArtUri( const QString &albumArtUri );
-    bool setYear( int date );
-    bool setGenre( const QString &genre );
-    bool setComposer( const QString &compoer );
-    bool setAlbumTrack( const QString &albumtrack );
-    void setLink( const QString &link );
-
-    // inform details view when basic information is ready to accelerate UI update
-    void commitPlaybackInfo();
-    // inform details view when details information is ready
-    void commitSongDetailInfo();
-
-public slots:
-    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
-    
-    int reservedLength() const { return mLink.length() + mTitle.length() + mArtist.length(); }
-
-    QString title() const;
-    QString album() const;
-    QString artist() const;
-    QString comment() const;
-    void albumArt( QPixmap& pixmap );
-    QString year() const;
-    QString genre() const;
-    QString composer() const;
-    QString albumTrack() const;
-    QString link() const;
-
-signals:
-    void albumArtReady();
-    void playbackInfoChanged();
-	void songDetailInfoChanged();	
-
-private:
-    QString                  mTitle;
-    QString                  mAlbum;
-    QString                  mArtist;
-    QString                  mComment;
-    QString                  mComposer;
-    QString                  mGenre;
-    QString                  mYear;
-    QString                  mAlbumTrack;
-    QPixmap                  mAlbumArt;
-    TInt                     mReqId;
-    QString                  currentAAUri; 
-    QPixmap                  mDefaultAlbumArt;
-    QString                  mLink;
-    
-    Q_DISABLE_COPY(MpSongData)
-};
-
-#endif // MPSONGDATA_H
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#ifndef MMPXPLAYBACKUTILITY_H
-#define MMPXPLAYBACKUTILITY_H
-
-#include "stub/inc/mpxplayermanager.h"
-#include "stub/inc/mpxsource.h"
-#include <mpxplaybackframeworkdefs.h>
-#include <mpxcommand.h>
-#include <f32file.h>
-#include <BADESCA.H>
-
-//Forward declarations
-class CMPXCollectionPlaylist;
-class MMPXPlaybackObserver;  
-class MMPXPlaybackCallback;
-class CAsyncCallBack;
-class CMPXSubscription;
-
-class MMPXPlaybackUtility 
-{
-public: 
-    ~MMPXPlaybackUtility();
-    
-protected:
-    MMPXPlaybackUtility();
-    void ConstructL();
-
-public: // MMPXPlaybackUtility's overridden (stubbed by us) functions
-    static MMPXPlaybackUtility* NewL(const TUid& aModeId = KPbModeDefault,
-                                     MMPXPlaybackObserver* aObs=NULL);
-    
-    static MMPXPlaybackUtility* NewL(const TMPXCategory aCategory,
-                                     const TUid& aModeId = KPbModeDefault,
-                                     MMPXPlaybackObserver* aObs=NULL);
-    static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault );
-    static MMPXPlaybackUtility* UtilityL(const TMPXCategory aCategory,
-                                  const TUid& aModeId = KPbModeDefault );    
-    
-public: // MMPXPlaybackUtility stubbed pure virtuals
-    void AddObserverL(MMPXPlaybackObserver& aPlaybackObserver);
-    void RemoveObserverL(MMPXPlaybackObserver& aPlaybackObserver);
-    void GetClientsL(RArray<TProcessId>& aClients);
-    void InitL(const CMPXCollectionPlaylist& aPlaylist, TBool aPlay=ETrue);
-    void InitL(const TDesC& aUri, const TDesC8* aType=NULL);
-    void InitL(RFile& aShareableFile);
-    void Close();
-    void CancelRequest();
-    void CommandL(TMPXPlaybackCommand aCmd, TInt aData=0);
-    void CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback=NULL);
-    TMPXPlaybackState StateL() const;
-    MMPXSource* Source();
-    MMPXPlayerManager& PlayerManager();
-    void SetL(TMPXPlaybackProperty aProperty, TInt aValue);
-    void ValueL(MMPXPlaybackCallback& aCallback, TMPXPlaybackProperty aProperty);
-    void PropertyL(MMPXPlaybackCallback& aCallback, TMPXPlaybackProperty aProperty);
-    CDesCArray* SupportedMimeTypes();
-    CDesCArray* SupportedExtensions();
-    CDesCArray* SupportedSchemas();
-    void SetPriority( TInt aPriority );
-    void AddSubscriptionL(const CMPXSubscription& aSubscription);
-    void RemoveSubscriptionL(const CMPXSubscription& aSubscription);
-    void ClearSubscriptionsL();
-    void InitStreamingL(const TDesC& aUri, const TDesC8* aType, const TInt aAccessPoint);
-    void InitStreamingL(RFile& aShareableFile, const TInt aAccessPoint);
-
-private:
-    MMPXSource*             iMpxSource;
-    MMPXPlayerManager*      iMpxPlayerManager;
-    MMPXPlaybackObserver*   iPlaybackObserver;
-    MMPXPlaybackCallback*   iPlaybackCallback;
-    TMPXPlaybackState       iState;
-    CAsyncCallBack*         iOneShot;
-
-private:
-    static MMPXPlaybackUtility* singleton;
-};
-
-#endif      // MMPXPLAYBACKUTILITY_H
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#ifndef MPXPLAYERMANAGER_H
-#define MPXPLAYERMANAGER_H
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include <mpxplaybackplugin.hrh>
-
-class MMPXPlayer;
-class MMPXPlaybackCallback;
-
-class MMPXPlayerManager
-{
-public:
-    MMPXPlayerManager();
-    ~MMPXPlayerManager();
-    
-public: // MMPXPlayerManager
-    void GetPlayerTypesL(RArray<TMPXPlaybackPlayerType>& aTypes);
-    HBufC* PlayerTypeDisplayNameL(TMPXPlaybackPlayerType aType);
-    void GetPlayerListL(RArray<TUid>& aPlayers);
-    void GetPlayerListL(RArray<TUid>& aPlayers, TMPXPlaybackPlayerType aType);
-    void SubPlayerNamesL(MMPXPlaybackCallback& aCallback, TUid aPlayer);
-    void SelectPlayersL(TMPXPlaybackPlayerType aType);
-    void SelectSubPlayerL(TUid aPlayer, TInt aSubPlayerIndex);
-    void SelectPlayerL(TUid aPlayer);
-    void ClearSelectPlayersL();
-    void GetSelectionL(TMPXPlaybackPlayerType& aType,
-                                   TUid& aPlayer,
-                                   TInt& aSubPlayerIndex,
-                                   HBufC*& aSubPlayerName);
-    MMPXPlayer* CurrentPlayer();
-};
-
-#endif // MPXPLAYERMANAGER_H
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#ifndef MPXSOURCE_H
-#define MPXSOURCE_H
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include <f32file.h>
-
-class CMPXCollectionPlaylist;
-class MMPXPlaybackCallback;
-class TMPXAttribute;
-class CMPXAttributeSpecs;
-
-class MMPXSource
-{
-public:
-    MMPXSource();
-    ~MMPXSource();
-    
-public: // MMPXSource    
-    CMPXCollectionPlaylist* PlaylistL();
-    RFile* FileL();
-    HBufC* UriL();
-    void MediaL(const TArray<TMPXAttribute>& aAttrs, MMPXPlaybackCallback& aCallback);
-    void MediaL(const TArray<TMPXAttribute>& aAttrs, MMPXPlaybackCallback& aCallback,
-                            CMPXAttributeSpecs* aSpecs);    
-};
-    
-#endif // MPXSOURCE_H
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,384 +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: Playback Data provider for playback view.
-*
-*/
-
-
-#include <qstring>
-#include <qpixmap>
-
-#include <thumbnailmanager_qt.h>
-#include <thumbnaildata.h>
-#include <thumbnailobjectsource.h>
-
-#include "mpsongdata.h"
-#include "mptrace.h"
-
-
-const int KUndefined = -1;
-
-/*!
-    \class MpSongData
-    \brief Music Player song metadata.
-
-    Song data provide acces to current playing song metadata
-*/
-    
-/*!
-    \fn void albumArtReady()
-
-    This signal is albuma alrt is ready.
- */
-
-/*!
-    \fn void playbackInfoChanged()
-
-    This signal is emitted when basic information is available
- */
-    
-/*!
-    \fn void songDetailInfoChanged()
-
-    This signal is emitted when detail information is available
- */
-    
-       
-
-/*!
-    Constructs a new MpSongData.
- */
-MpSongData::MpSongData( QObject *parent )
-    : QObject( parent ),
-      mTitle( NULL ),
-      mAlbum( NULL ),
-      mArtist( NULL ),
-      mComposer( NULL),
-      mGenre( NULL ),
-      mYear( NULL ),
-      mAlbumTrack( NULL ),
-      mAlbumArt(),
-      mReqId( KUndefined )
-{
-    TX_ENTRY_ARGS("STUB")
-
-    mDefaultAlbumArt = QPixmap( ":/playbackviewicons/defaultalbumart.png" );
-    TX_EXIT_ARGS("STUB")
-}
-
-/*!
- Constructs a new MpSongData.
- */
-MpSongData::~MpSongData()
-{
-    TX_ENTRY_ARGS("STUB")
-
-    TX_EXIT_ARGS("STUB")
-}
-
-/*!
- Returns the song album art on \a pixmap.
-*/
-void MpSongData::albumArt( QPixmap& pixmap )
-{
-    TX_ENTRY_ARGS("STUB")
-     if ( !mAlbumArt.isNull() ) {
-        pixmap = mAlbumArt;
-     }
-     else {
-         pixmap = QPixmap();
-     }
-    TX_EXIT_ARGS("STUB")
-}
-
-
-/*!
- Returns the song title.
-*/
-QString MpSongData::title() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mTitle;
-}
-
-/*!
- Returns the song album.
-*/
-QString MpSongData::album() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mAlbum;
-}
-
-/*!
- Returns the song artist.
-*/
-QString MpSongData::artist() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mArtist;
-}
-
-/*!
- Returns comment
-*/
-QString MpSongData::comment() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mComment;
-}
-
-/*!
- Returns the song composer.
-*/
-QString MpSongData::composer() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mComposer;
-}
-
-
-/*!
- Returns the song genre.
-*/
-QString MpSongData::genre() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mGenre;
-}
-
-
-/*!
- Returns the album track.
-*/
-QString MpSongData::albumTrack() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mAlbumTrack;
-}
-
-/*!
- Returns link
-*/
-QString MpSongData::link() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return mLink;
-}
-
-/*!
- Returns the release date.
-*/
-QString MpSongData::year() const
-{
-    TX_ENTRY_ARGS("STUB")    
-    return mYear;
-}
-
-
-/*!
- Sets the song \a title, returns true if the value is new.
-*/
-bool MpSongData::setTitle( const QString &title )
-{
-    TX_ENTRY_ARGS("STUB title =" << title )
-    bool change = false;
-    if ( title != mTitle ) {
-        change = true;
-        mTitle = title;
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-/*!
- Sets the song \a album, returns true if the value is new.
-*/
-bool MpSongData::setAlbum( const QString &album )
-{
-    TX_ENTRY_ARGS("STUB album =" << album )
-    bool change = false;
-    if ( album != mAlbum ) {
-        change = true;
-        mAlbum = album;
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-/*!
- Sets the song \a artist, returns true if the value is new.
-*/
-bool MpSongData::setArtist( const QString &artist )
-{
-    TX_ENTRY_ARGS("STUB artist =" << artist )
-    bool change = false;
-    if ( artist != mArtist ) {
-        change = true;
-        mArtist = artist;
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-/*!
- Sets the song \a comment, returns true if the value is new.
-*/
-bool MpSongData::setComment( const QString &comment)
-{
-    TX_ENTRY_ARGS("STUB comment =" << comment )
-    bool change = false;
-    if ( comment != mComment ) {
-        change = true;
-        mComment = comment;
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-
-/*!
- Sets the song \a composer, returns true if the value is new.
-*/
-bool MpSongData::setComposer( const QString &composer )
-{
-    TX_ENTRY_ARGS("STUB composer =" << composer )
-    bool change = false;
-    if ( composer != mComposer ) {
-        change = true;
-        mComposer = composer;
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-/*!
- Sets the song \a genre, returns true if the value is new.
-*/
-bool MpSongData::setGenre( const QString &genre )
-{
-    TX_ENTRY_ARGS("STUB genre =" << genre )
-    bool change = false;
-    if ( genre != mGenre ) {
-        change = true;
-        mGenre = genre;
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-
-/*!
- Sets the song \a date, returns true if the value is new.
-*/
-bool MpSongData::setYear( int year )
-{
-    TX_ENTRY_ARGS("STUB year =" << year )
-    bool change = false;
-    if ( QString::number(year) != mYear ) {
-        change = true;
-        if ( year >= 0 && year < 9999 ) {
-            mYear = QString::number(year);
-        } else {
-            mYear = QString();
-        }
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-/*!
- Sets the \a album track, returns true if the value is new.
-*/
-bool MpSongData::setAlbumTrack( const QString &track )
-{
-    TX_ENTRY_ARGS("STUB track =" << track )
-    bool change = false;
-    if ( track != mAlbumTrack ) {
-        change = true;
-        mAlbumTrack = track;
-    }
-    TX_EXIT_ARGS("STUB")
-    return change;
-}
-
-/*!
- Sets the \a link
-*/
-void MpSongData::setLink( const QString &link )
-{
-    TX_ENTRY_ARGS("STUB Link =" << link )
-    mLink = link;
-    TX_EXIT_ARGS("STUB")
-}
-
-/*!
- Sets the song \a albumArtUri.
-*/
-void MpSongData::setAlbumArtUri( const QString &albumArtUri)
-{
-    TX_ENTRY_ARGS("STUB albumArtUri =" << albumArtUri )
-
-    // No album art uri. Set default album art.
-    mAlbumArt = mDefaultAlbumArt;
-    emit albumArtReady();
-    TX_EXIT_ARGS("STUB")
-}
-
-
-/*!
- Slot to handle the album art thumb.
-*/
-void MpSongData::thumbnailReady(
-        const QPixmap& pixmap,
-        void *data,
-        int id,
-        int error  )
-{
-    TX_ENTRY_ARGS("STUB")
-    Q_UNUSED( data );
-    if ( error == 0 && mReqId == id ) {
-        mReqId = 0;
-        mAlbumArt = pixmap;
-        emit albumArtReady();
-    }
-    else {
-        mReqId = 0;
-        mAlbumArt = mDefaultAlbumArt; 
-        emit albumArtReady();
-    }
-
-    TX_EXIT_ARGS("STUB")
-}
-
-/*!
- Emit signal when playback information changed, such as artist, track name
-*/
-void MpSongData::commitPlaybackInfo()
-{
-    TX_ENTRY_ARGS("STUB")
-    emit playbackInfoChanged();
-    TX_EXIT_ARGS("STUB")
-}
-
-/*!
- Emit signal when song detail information changed
-*/
-void MpSongData::commitSongDetailInfo()
-{
-    TX_ENTRY_ARGS("STUB")
-    emit songDetailInfoChanged();
-    TX_EXIT_ARGS("STUB")
-}
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#include "stub/inc/mpxplaybackutility.h"
-#include "stub/inc/mpxplayermanager.h"
-#include "stub/inc/mpxsource.h"
-#include "mptrace.h"
-
-MMPXPlaybackUtility* MMPXPlaybackUtility::singleton = NULL;
-
-MMPXPlaybackUtility* MMPXPlaybackUtility::NewL(const TUid& /*aModeId*/,
-                                            MMPXPlaybackObserver* /*aObs*/)
-{
-    MMPXPlaybackUtility* obj = new(ELeave) MMPXPlaybackUtility();
-    CleanupStack::PushL(obj);
-    obj->ConstructL();
-    CleanupStack::Pop(obj);
-    return obj;
-}
-
-void MMPXPlaybackUtility::ConstructL()
-{
-    TX_ENTRY_ARGS("STUB")
-    iMpxPlayerManager = new(ELeave) MMPXPlayerManager(); 
-    iMpxSource = new(ELeave) MMPXSource();
-    TX_EXIT_ARGS("STUB")
-}
-
-MMPXPlaybackUtility::~MMPXPlaybackUtility()
-{
-    TX_ENTRY_ARGS("STUB")    
-}
-
-MMPXPlaybackUtility::MMPXPlaybackUtility()
-    : iMpxSource(0),
-      iMpxPlayerManager(0),
-      iPlaybackObserver(0),
-      iPlaybackCallback(0),
-      iState(EPbStateNotInitialised),
-      iOneShot(0)
-{
-    TX_ENTRY_ARGS("STUB")
-}
-
-  
-void MMPXPlaybackUtility::AddObserverL(MMPXPlaybackObserver& aPlaybackObserver)
-{
-    TX_ENTRY_ARGS("STUB")
-    iPlaybackObserver = &aPlaybackObserver;
-}
-
-void MMPXPlaybackUtility::RemoveObserverL(MMPXPlaybackObserver& aPlaybackObserver)
-{
-    TX_ENTRY_ARGS("STUB")
-    if(iPlaybackObserver == &aPlaybackObserver)
-    {
-        iPlaybackObserver = NULL;
-    }
-}
-
-void MMPXPlaybackUtility::GetClientsL(RArray<TProcessId>& /*aClients*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlaybackUtility::InitL(const CMPXCollectionPlaylist& /*aPlaylist*/, TBool /*aPlay*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-    
-void MMPXPlaybackUtility::InitL(const TDesC& /*aUri*/, const TDesC8* /*aType*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-    
-void MMPXPlaybackUtility::InitL(RFile& /*aShareableFile*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlaybackUtility::Close()
-{
-    TX_ENTRY_ARGS("STUB")
-    delete singleton;
-    singleton = NULL;
-    TX_EXIT_ARGS("STUB")
-}
-
-void MMPXPlaybackUtility::CancelRequest()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-
-void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand /*aCmd*/, TInt /*aData*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlaybackUtility::CommandL(CMPXCommand& /*aCmd*/, MMPXPlaybackCallback* /*aCallback*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-TMPXPlaybackState MMPXPlaybackUtility::StateL() const
-{
-    TX_ENTRY_ARGS("STUB")
-    return iState;
-}
-    
-MMPXSource* MMPXPlaybackUtility::Source()
-{
-    TX_ENTRY_ARGS("STUB")
-    return iMpxSource;
-}
-
-MMPXPlayerManager& MMPXPlaybackUtility::PlayerManager()
-{
-    TX_ENTRY_ARGS("STUB")
-    return *iMpxPlayerManager;
-}
-
-void MMPXPlaybackUtility::SetL(TMPXPlaybackProperty /*aProperty*/, TInt /*aValue*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-
-void MMPXPlaybackUtility::ValueL(MMPXPlaybackCallback& /*aCallback*/, TMPXPlaybackProperty /*aProperty*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlaybackUtility::PropertyL(MMPXPlaybackCallback& /*aCallback*/, TMPXPlaybackProperty /*aProperty*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-CDesCArray* MMPXPlaybackUtility::SupportedMimeTypes()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-    return 0;    
-}
-
-CDesCArray* MMPXPlaybackUtility::SupportedExtensions()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-    return 0;
-}
-
-CDesCArray* MMPXPlaybackUtility::SupportedSchemas()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-    return 0;
-}
-
-void MMPXPlaybackUtility::SetPriority( TInt /*aPriority*/ )
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-
-void MMPXPlaybackUtility::AddSubscriptionL(const CMPXSubscription& /*aSubscription*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-
-void MMPXPlaybackUtility::RemoveSubscriptionL(const CMPXSubscription& /*aSubscription*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-
-void MMPXPlaybackUtility::ClearSubscriptionsL()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-    
-void MMPXPlaybackUtility::InitStreamingL(const TDesC& /*aUri*/, const TDesC8* /*aType*/, const TInt /*aAccessPoint*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-
-void MMPXPlaybackUtility::InitStreamingL(RFile& /*aShareableFile*/, const TInt /*aAccessPoint*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-}
-
-MMPXPlaybackUtility* MMPXPlaybackUtility::NewL(const TMPXCategory /*aCategory*/,
-                                               const TUid& /*aModeId*/,
-                                               MMPXPlaybackObserver* /*aObs*/)
-{
-    return 0;    
-}
-
-MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TMPXCategory /*aCategory*/,
-                                                   const TUid& /*aModeId*/ )
-{
-    return 0;    
-}
-
-MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& /*aModeId*/ )
-{
-    if(!singleton) {
-        singleton = MMPXPlaybackUtility::NewL();
-    }
-    return singleton;
-}
-
-//end of file
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#include "stub/inc/mpxplayermanager.h"
-#include "mptrace.h"
-
-MMPXPlayerManager::MMPXPlayerManager()
-{
-    TX_ENTRY_ARGS("STUB")    
-}
-
-MMPXPlayerManager::~MMPXPlayerManager()
-{
-    TX_ENTRY_ARGS("STUB")
-}
-
-void MMPXPlayerManager::GetPlayerTypesL(RArray<TMPXPlaybackPlayerType>& aTypes)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-HBufC* MMPXPlayerManager::PlayerTypeDisplayNameL(TMPXPlaybackPlayerType aType)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-    return 0;
-}
-
-void MMPXPlayerManager::GetPlayerListL(RArray<TUid>& aPlayers)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlayerManager::GetPlayerListL(RArray<TUid>& aPlayers, TMPXPlaybackPlayerType aType)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlayerManager::SubPlayerNamesL(MMPXPlaybackCallback& aCallback, TUid aPlayer)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlayerManager::SelectPlayersL(TMPXPlaybackPlayerType aType)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlayerManager::SelectSubPlayerL(TUid aPlayer, TInt aSubPlayerIndex)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlayerManager::SelectPlayerL(TUid aPlayer)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlayerManager::ClearSelectPlayersL()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-void MMPXPlayerManager::GetSelectionL(TMPXPlaybackPlayerType& aType,    
-                   TUid& /*aPlayer*/,
-                   TInt& /*aSubPlayerIndex*/,
-                   HBufC*& /*aSubPlayerName*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
-
-MMPXPlayer* MMPXPlayerManager::CurrentPlayer()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")
-    return 0;
-}
-
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#include "mpxsource.h"
-#include "mptrace.h"
-
-MMPXSource::MMPXSource()
-{
-    TX_ENTRY_ARGS("STUB") 
-}
-
-MMPXSource::~MMPXSource()
-{
-    TX_ENTRY_ARGS("STUB")
-}
-
-CMPXCollectionPlaylist* MMPXSource::PlaylistL()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-    return 0;
-}
-
-RFile* MMPXSource::FileL()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-    return 0;
-}
-
-HBufC* MMPXSource::UriL()
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-    return 0;
-}
-
-void MMPXSource::MediaL(const TArray<TMPXAttribute>& /*aAttrs*/, MMPXPlaybackCallback& /*aCallback*/)
-{
-    TX_ENTRY_ARGS("STUB")    
-}
-
-void MMPXSource::MediaL(const TArray<TMPXAttribute>& /*aAttrs*/, MMPXPlaybackCallback& /*aCallback*/,
-                            CMPXAttributeSpecs* /*aSpecs*/)
-{
-    TX_ENTRY_ARGS("STUB WARNING! The unit test required to implement this. Currently empty imp")    
-}
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/unittest_mpmpxpbframeworkwrapper.pro	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +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: Unit test for mpmpxpbframeworkwrapper
-TEMPLATE = app
-CONFIG += qtestlib \
-    hb
-TARGET = 
-
-TARGET.CAPABILITY = All -TCB
-
-DEPENDPATH += .
-INCLUDEPATH += ./stub/inc \
-    ../../inc \
-    ../../../../inc
-
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-
-LIBS += -lestor.dll \
-    -lfbscli.dll \
-     -lmpxcommon.dll \
-     -lthumbnailmanagerqt.dll
-
-
-HEADERS += inc/unittest_mpmpxdetailsframeworkwrapper.h \
-    stub/inc/mpsongdata.h \
-    stub/inc/mpxplaybackutility.h \
-    stub/inc/mpxplayermanager.h \
-    stub/inc/mpxsource.h \
-    ../../inc/mpmpxdetailsframeworkwrapper.h \
-    ../../inc/mpmpxdetailsframeworkwrapper_p.h
- 
-SOURCES += src/unittest_mpmpxdetailsframeworkwrapper.cpp \
-    stub/src/mpxplaybackutility.cpp \
-    stub/src/mpsongdata.cpp \    
-    stub/src/mpxplayermanager.cpp \
-    stub/src/mpxsource.cpp \    
-    ../../src/mpmpxdetailsframeworkwrapper.cpp \
-    ../../src/mpmpxdetailsframeworkwrapper_p.cpp
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpquerymanager/UT_mpquerymanager.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,31 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"unittest_mpdetailsviewplugin"},(0xE2a2a2ad),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+; Executable and default resource files
+"/epoc32/release/armv5/udeb/unittest_mpquerymanager.exe"    - "!:\sys\bin\unittest_mpquerymanager.exe"
+"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpquerymanager_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpquerymanager_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpquerymanager/inc/unittest_mpquerymanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,61 @@
+/*
+* 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: Unit Test for mpdetailsview.
+*
+*/
+
+#ifndef UNITTEST_MPDETAILSVIEW_H_
+#define UNITTEST_MPDETAILSVIEW_H_
+
+#include <QtTest/QtTest>
+#include <hbview.h>
+#include <QNetworkReply>
+#include <QNetworkAccessManager>
+
+//Forward Declaration
+class MpDetailsView;
+class MpQueryManager;
+
+
+class TestMpQueryManager : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpQueryManager();
+    virtual ~TestMpQueryManager();
+    
+
+signals:
+
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+    
+private slots:
+  //Test Cases  
+  void testrecommendationSongs();
+  void testrecommendationArtists();
+  void testrecommendationAlbumArtsLink();
+   
+private:
+    MpQueryManager *mTest;
+    
+};
+
+#endif /* UNITTEST_MPDETAILSVIEW_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpquerymanager/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,21 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+@echo off
+del *.sisx
+makesis UT_mpquerymanager.pkg
+signsis UT_mpquerymanager.sis UT_mpquerymanager.sisx %RNDCERTS_PATH%\Nokia_RnDCert_02.der %RNDCERTS_PATH%\Nokia_RnDCert_02.key
+del     UT_mpquerymanager.sis
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpquerymanager/src/unittest_mpquerymanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,176 @@
+/*
+* 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: Unit Test for mpquerymanager.
+*
+*/
+
+#include <QDebug>
+#include <QObject>
+#include <QNetworkAccessManager>
+#include <QNetworkDiskCache>
+#include <QNetworkProxyFactory>
+#include <qmobilityglobal.h>
+#include <QNetworkSession>
+#include <QDomElement>
+#include <QList>
+#include <QFile>
+#include <QUrl>
+#include <QSslError>
+
+#include <hbinstance.h>
+#include <hbmainwindow.h>
+#include <hbaction.h>
+#include <hblabel.h>
+#include <hbgroupbox.h>
+#include <hbdocumentloader.h>
+#include <hbwidget.h>
+#include <hbpushbutton.h>
+#include <hbpopup.h>
+#include <hbdialog.h>
+#include <hblistwidget.h>
+#include <hblistwidgetitem.h>
+#include <HbApplication>
+#include "unittest_mpquerymanager.h"
+#include "mpcommondefs.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpquerymanager.h"
+#undef private
+
+
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    HbApplication app(argc, argv);
+    HbMainWindow window;
+
+    TestMpQueryManager tv;
+
+    char *pass[3];
+    pass[0] = argv[0];
+    pass[1] = "-o";
+    pass[2] = "c:\\data\\unittest_testmpquerymanager.txt";
+
+    int res = QTest::qExec(&tv, 3, pass);
+
+    return res;
+}
+
+//Constructor
+TestMpQueryManager::TestMpQueryManager()
+    : mTest(0)
+{
+
+}
+
+//Destructor
+TestMpQueryManager::~TestMpQueryManager()
+{
+    delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpQueryManager::initTestCase()
+{
+    
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpQueryManager::cleanupTestCase()
+{
+
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpQueryManager::init()
+{
+    mTest = new MpQueryManager();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpQueryManager::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+void TestMpQueryManager::testrecommendationSongs()
+{
+    QStringList recommendedSongs;
+    QStringList recommendedSongsRecd;
+    
+    QString recommendedSong1("Song1");
+    QString recommendedSong2("Song2");
+        
+    recommendedSongs.append(recommendedSong1);
+    recommendedSongs.append(recommendedSong2);
+    
+    mTest->mRecommendationSongs.append(recommendedSongs);
+    
+    recommendedSongsRecd << mTest->recommendationSongs();
+    
+    QCOMPARE(recommendedSongs,recommendedSongsRecd);
+}
+
+
+void TestMpQueryManager::testrecommendationArtists()
+{
+    QStringList recommendedArtists;
+    QStringList recommendedArtistsRecd;
+        
+    QString recommendedArtist1("Artist1");
+    QString recommendedArtist2("Artist2");
+           
+    recommendedArtists.append(recommendedArtist1);
+    recommendedArtists.append(recommendedArtist2);
+        
+    mTest->mRecommendationArtists.append(recommendedArtists);
+        
+    recommendedArtistsRecd << mTest->recommendationArtists();
+        
+    QCOMPARE(recommendedArtists,recommendedArtistsRecd);
+}
+
+
+void TestMpQueryManager::testrecommendationAlbumArtsLink()
+{
+    QStringList recommendedAlbumArtsLink;
+    QStringList recommendedAlbumArtsLinkRecd;
+        
+    QString recommendedAlbumArtsLink1("AlbumArtsLink1");
+    QString recommendedAlbumArtsLink2("AlbumArtsLink2");
+            
+    recommendedAlbumArtsLink.append(recommendedAlbumArtsLink1);
+    recommendedAlbumArtsLink.append(recommendedAlbumArtsLink2);
+        
+    mTest->mRecommendationAlbumArtsLink.append(recommendedAlbumArtsLink);
+        
+    recommendedAlbumArtsLinkRecd << mTest->recommendationAlbumArtsLink();
+        
+    QCOMPARE(recommendedAlbumArtsLink,recommendedAlbumArtsLinkRecd);
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpquerymanager/stub/inc/thumbnailmanager_qt.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,128 @@
+/*
+* 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: ThumbnailManager stub for testing MpSongData
+*
+*/
+
+#ifndef THUMBNAILMANAGER_QT_H_
+#define THUMBNAILMANAGER_QT_H_
+#include <QObject>
+#include <QPixmap>
+
+
+/** default priority value */
+const int tnmWrapperPriorityIdle = -100;
+
+class ThumbnailManager : public QObject
+    {
+    Q_OBJECT
+
+public:
+
+
+    /** Thumbnail size. */
+    enum ThumbnailSize
+    {
+        /**
+         * Small thumbnail
+         */
+        ThumbnailSmall = 0,
+        /**
+         * Medium thumbnail
+         */
+        ThumbnailMedium,
+        /**
+         * Large thumbnail
+         */
+        ThumbnailLarge
+    };
+
+    /** Mode of thumbnail creation. */
+    enum ThumbnailMode
+        {
+        /**
+         * Default mode. This means that:
+         * - Thumbnail must be as large as requested (unless the actual object is smaller).
+         * - Smaller thumbnails may be up scaled to desired resolution.
+         * - Aspect ratio is maintained and thumbnails are not cropped. The
+         *   resulting thumbnail may smaller in either width or height if
+         *   the aspect ratio of the object does not match the aspect ratio
+         *   of the requested size.
+         */
+        Default = 0,
+
+        /**
+         * Allow thumbnails which are smaller than requested are. Thumbnail
+         * bitmaps are never up scaled if this flag is set.
+         */
+        AllowAnySize = 1,
+
+        /**
+         * New thumbnail images are not created if this flag is set. Only
+         * existing thumbnails may be returned. If a requested thumbnail does
+         * not exist null pixmap will be returned.
+         */
+        DoNotCreate = 2,
+
+        /**
+         * Thumbnail images are cropped to match requested aspect ratio. If
+         * this mode is set, the size of the resulting thumbnail always
+         * matches the requested size.
+         */
+        CropToAspectRatio = 4
+    };
+
+    /**  Quality versus speed preference setting */
+    enum QualityPreference
+    {
+        /**
+         * Prefer thumbnails in the highest quality possible disregarding
+         * any negative impact on performance.
+         */
+        OptimizeForQuality,
+
+        /**
+         * Get thumbnails as fast as possible, even if
+         * it means lower quality.
+         */
+        OptimizeForPerformance
+    };
+
+    // Test utility functions
+    static int getInitCounter();
+    static void resetInitCounter();
+
+    // Stub functions
+    ThumbnailManager( QObject* parentPtr = NULL );
+    virtual ~ThumbnailManager();
+    bool setMode( ThumbnailMode mode );
+    bool setQualityPreference( QualityPreference qualityPreference );
+    bool setThumbnailSize( ThumbnailSize thumbnailSize );
+    int getThumbnail( const QString& fileName, void * clientData = NULL,
+            int priority = tnmWrapperPriorityIdle );
+    bool cancelRequest( int id );
+
+signals:
+
+    void thumbnailReady( QPixmap , void * , int , int );
+
+public:
+
+    bool    mGetThumbFails;
+    int     mThumbnailReqCounter;
+    int     mCancelCounter;
+
+};
+
+#endif /* THUMBNAILMANAGER_QT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpquerymanager/stub/src/thumbnailmanager_qt.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,109 @@
+/*
+* 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: ThumbnailManager stub for testing MpSongData
+*
+*/
+#include <QSize>
+#include "stub/inc/thumbnailmanager_qt.h"
+#include "mptrace.h"
+
+int gInitCounter = 0;
+
+/*!
+ Returns gInitCounter.
+ gInitCounter counts the number of constructor/destructor calls.
+ */
+int ThumbnailManager::getInitCounter()
+{
+    TX_LOG_ARGS("ThumbnailManager::getInitCounter() STUB");
+    return gInitCounter;
+}
+
+/*!
+ Resets gInitCounter to zero.
+ */
+void ThumbnailManager::resetInitCounter()
+{
+    TX_LOG_ARGS("ThumbnailManager::resetInitCounter() STUB");
+    gInitCounter = 0;
+}
+
+ThumbnailManager::ThumbnailManager( QObject* parentPtr ) :
+QObject( parentPtr ),
+mGetThumbFails(false),
+mThumbnailReqCounter(0),
+mCancelCounter(0)
+{
+    TX_ENTRY_ARGS("Stub")    
+    gInitCounter++;
+}
+
+ThumbnailManager::~ThumbnailManager()
+{
+    TX_ENTRY_ARGS("Stub")    
+    gInitCounter--;
+}
+
+bool ThumbnailManager::setMode( ThumbnailMode mode )
+{
+    TX_ENTRY_ARGS("Stub")    
+    Q_UNUSED(mode);
+    return true;
+}
+
+bool ThumbnailManager::setQualityPreference( QualityPreference
+    qualityPreference )
+{
+    TX_ENTRY_ARGS("Stub")    
+    Q_UNUSED(qualityPreference);
+    return true;
+}
+
+bool ThumbnailManager::setThumbnailSize( ThumbnailSize thumbnailSize )
+{
+    TX_ENTRY_ARGS("Stub")    
+    Q_UNUSED(thumbnailSize);
+    return true;
+}
+
+int ThumbnailManager::getThumbnail( const QString& fileName, void *clientData,
+        int priority )
+{
+    TX_ENTRY_ARGS("Stub")    
+    Q_UNUSED(fileName);
+    Q_UNUSED(priority);
+
+    if (clientData) {
+        // Delete this to prevent memory leak
+        int *data = (int *)clientData;
+        delete data;
+
+        data = 0;
+    }
+
+    if ( mGetThumbFails ) {
+        return -1;
+    }
+
+    mThumbnailReqCounter++;
+    return mThumbnailReqCounter;
+}
+
+bool ThumbnailManager::cancelRequest( int id )
+{
+    TX_ENTRY_ARGS("Stub")    
+    Q_UNUSED(id);
+    mCancelCounter++;
+    return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpquerymanager/unittest_mpquerymanager.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,46 @@
+#
+# 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
+CONFIG += qtestlib \
+		 symbian_test \
+		hb
+QT += webkit \
+    network \
+    xml
+
+TARGET = 
+DEPENDPATH += . 
+INCLUDEPATH += ./stub/inc \
+	       ../../inc \
+	       ../../../../inc
+	       
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lqtbearer.dll
+
+# Input
+HEADERS += inc/unittest_mpquerymanager.h \
+		   ../../inc/mpquerymanager.h \
+           stub/inc/thumbnailmanager_qt.h
+	       
+
+SOURCES += src/unittest_mpquerymanager.cpp \
+	       ../../src/mpquerymanager.cpp \
+           stub/src/thumbnailmanager_qt.cpp	       
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsharedata/UT_mpsharedata.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,44 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"unittest_mpsharedata"},(0xE5d27be8),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+; [0x101F7961],0,0,0,{"S60ProductID"}
+; [0x102032BE],0,0,0,{"S60ProductID"}
+; [0x102752AE],0,0,0,{"S60ProductID"}
+; [0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+; (0x2001E61C), 4, 6, 3, {"Qt"}
+
+; Executable and default resource files
+"/epoc32/release/armv5/udeb/unittest_mpsharedata.exe"    - "!:\sys\bin\unittest_mpsharedata.exe"
+"/epoc32/data/z/resource/apps/unittest_mpsharedata.rsc"    - "!:\resource\apps\unittest_mpsharedata.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpsharedata_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpsharedata_reg.rsc"
+
+; Manual PKG post-rules from PRO files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsharedata/inc/unittest_mpsharedata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,75 @@
+/*
+* 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: Unit test for mpsongdata
+*
+*/
+
+#ifndef UNITTEST_MPSHAREDATA_H_
+#define UNITTEST_MPSHAREDATA_H_
+
+#include <QtTest/QtTest>
+
+class MpShareData;
+
+class TestMpShareData : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpShareData();
+    virtual ~TestMpShareData();
+
+signals:
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+    void testOwner();
+    void testSongData();
+    void testErrorMessage();
+    void testUserName();
+    void testPassword();
+    void testObjectTypeWithLink();
+    void testObjectTypeWithoutLink();
+    void testObjectContentWithLink();
+    void testObjectContentWithTitleAndArtist();
+    void testObjectContentWithTitleOnly();
+    void testObjectContentWithArtistOnly();
+    void testObjectContentWithoutMetaInfo();
+    void testSongTitle();
+//    void testSongAlbum();
+    void testSongArtist();
+    void testAlbumArt();
+    void testLanguage();
+//    void testSongComment();
+//    void testSongAlbumArt();
+//    void testSongYear();
+//    void testSongGenre();
+//    void testSongComposer();
+//    void testSongAlbumTrack();
+//    void testSongLink();
+    void testSongNoInfo();
+
+private:
+    MpShareData *mTest;
+
+};
+
+
+#endif /* UNITTEST_MPSHAREDATA_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsharedata/sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,21 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+@echo off
+del *.sisx
+makesis UT_mpsharedata.pkg
+signsis UT_mpsharedata.sis UT_mpsharedata.sisx %RNDCERTS_PATH%\Nokia_RnDCert_02.der %RNDCERTS_PATH%\Nokia_RnDCert_02.key
+del UT_mpsharedata.sis
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsharedata/src/unittest_mpsharedata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,346 @@
+/*
+* 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: Unit test for MpShareData
+*
+*/
+#include <QSignalSpy>
+#ifdef Q_OS_SYMBIAN
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbicon.h>
+#endif
+#include"unittest_mpsharedata.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpsharedata.h"
+#undef private
+#include "mpsongdata.h"
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+#ifdef Q_OS_SYMBIAN
+int main(int argc, char *argv[])
+{
+
+    HbApplication app(argc, argv);
+    HbMainWindow window;
+
+    TestMpShareData tv;
+
+if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpsharedata.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }    
+}
+#endif
+
+#ifdef Q_OS_WIN32
+QTEST_MAIN(TestMpShareData)
+#endif
+//Constructor
+TestMpShareData::TestMpShareData()
+    : mTest(0)
+{
+
+}
+
+//Destructor
+TestMpShareData::~TestMpShareData()
+{
+    if (mTest) delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpShareData::initTestCase()
+{
+    qDebug() << "unit test for mpsharedata begin.";
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpShareData::cleanupTestCase()
+{
+    qDebug() << "unit test for mpsharedata end.";
+    QCoreApplication::processEvents();
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpShareData::init()
+{
+    mTest = new MpShareData();
+    mTest->setUnknownTr("Unknown");
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpShareData::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+void TestMpShareData::testOwner()
+{
+    mTest->setOwner(this);
+    QCOMPARE(mTest->owner(), this);
+}
+
+void TestMpShareData::testSongData()
+{
+    MpSongData *song = new MpSongData();
+    mTest->setSongData(song);
+    QCOMPARE(mTest->songData(), song);
+    delete song;
+}
+
+void TestMpShareData::testErrorMessage()
+{
+    QString msg("Test error message.");
+    mTest->setErrorMessage(msg);
+    QCOMPARE(mTest->errorMessage(), msg);
+}
+
+void TestMpShareData::testUserName()
+{
+    QString name("testname");
+    mTest->setUsername(name);
+    QCOMPARE(mTest->username(), name);
+}
+
+void TestMpShareData::testPassword()
+{
+    QString password("testpassword");
+    mTest->setPassword(password);
+    QCOMPARE(mTest->password(), password);
+}
+
+void TestMpShareData::testObjectTypeWithLink()
+{
+    MpSongData *song = new MpSongData();
+    song->setLink("http://www.nokia.com");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->objectType(), QString("URI"));
+}
+
+void TestMpShareData::testObjectTypeWithoutLink()
+{
+    MpSongData *song = new MpSongData();
+    song->setLink("");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->objectType(), QString("NOTE-APPEND"));
+    delete song;
+}
+
+void TestMpShareData::testObjectContentWithLink()
+{
+    MpSongData *song = new MpSongData();
+    song->setLink("http://www.nokia.com");
+    song->setTitle("TestTitle");
+    song->setArtist("TestArtist");
+    song->setAlbum("TestAlbum");
+    song->setAlbumArtUri("http://www.nokia.com/notexist.png");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->objectContent(), QString("http://www.nokia.com"));
+    QCOMPARE(mTest->objectReservedLength(), QString("http://www.nokia.com").length());
+    delete song;
+}
+
+void TestMpShareData::testObjectContentWithTitleAndArtist()
+{
+    MpSongData *song = new MpSongData();
+    song->setTitle("TestTitle");
+    song->setArtist("TestArtist");
+    song->setAlbum("TestAlbum");
+    song->setAlbumArtUri("http://www.nokia.com/notexist.png");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->objectContent(), QString("&#9835; TestArtist: TestTitle http://music.ovi.com"));
+    QCOMPARE(mTest->objectReservedLength(), QString("&#9835; TestArtist: TestTitle http://music.ovi.com").length());
+    delete song;
+}
+
+
+void TestMpShareData::testObjectContentWithTitleOnly()
+{
+    MpSongData *song = new MpSongData();
+    song->setTitle("TestTitle");
+    song->setAlbum("TestAlbum");
+    song->setAlbumArtUri("http://www.nokia.com/notexist.png");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->objectContent(), QString("&#9835; Unknown: TestTitle http://music.ovi.com"));
+    QCOMPARE(mTest->objectReservedLength(), QString("&#9835; Unknown: TestTitle http://music.ovi.com").length());
+    delete song;
+}
+
+
+void TestMpShareData::testObjectContentWithArtistOnly()
+{
+    MpSongData *song = new MpSongData();
+    song->setArtist("TestArtist");
+    song->setAlbum("TestAlbum");
+    song->setAlbumArtUri("http://www.nokia.com/notexist.png");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->objectContent(), QString("&#9835; TestArtist: Unknown http://music.ovi.com"));
+    QCOMPARE(mTest->objectReservedLength(), QString("&#9835; TestArtist: Unknown http://music.ovi.com").length());
+    delete song;
+}
+
+
+void TestMpShareData::testObjectContentWithoutMetaInfo()
+{
+    MpSongData *song = new MpSongData();
+    mTest->setSongData(song);
+    QCOMPARE(mTest->objectContent(), QString("&#9835; Unknown: Unknown http://music.ovi.com"));
+    QCOMPARE(mTest->objectReservedLength(), QString("&#9835; Unknown: Unknown http://music.ovi.com").length());
+    delete song;
+}
+
+void TestMpShareData::testSongTitle()
+{
+    MpSongData *song = new MpSongData();
+    song->setTitle("TestTitle");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->title(), QString("TestTitle"));
+    delete song;
+}
+
+//void TestMpShareData::testSongAlbum()
+//{
+//    MpSongData *song = new MpSongData();
+//    song->setAlbum("TestAlbum");
+//    mTest->setSongData(song);
+//    QCOMPARE(mTest->album(), QString("TestAlbum"));
+//    delete song;
+//}
+
+void TestMpShareData::testSongArtist()
+{
+    MpSongData *song = new MpSongData();
+    song->setArtist("TestArtist");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->artist(), QString("TestArtist"));
+    delete song;
+}
+
+void TestMpShareData::testAlbumArt()
+{
+    MpSongData *song = new MpSongData();
+    mTest->setSongData(song);
+    QCOMPARE(mTest->albumArtBase64(), QString("e:\\album_art.png"));
+    delete song;
+}
+
+void TestMpShareData::testLanguage()
+{
+    MpSongData *song = new MpSongData();
+    mTest->setSongData(song);
+    mTest->setLanguage("fi");
+    QCOMPARE(mTest->language(), QString("fi"));
+    delete song;
+}
+
+/*
+void TestMpShareData::testSongComment()
+{
+    MpSongData *song = new MpSongData();
+    song->setComment("TestComment");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->comment(), QString("TestComment"));
+    delete song;
+}
+
+void TestMpShareData::testSongAlbumArt()
+{
+    MpSongData *song = new MpSongData();
+    song->setAlbumArtUri("TestAlbum");
+    mTest->setSongData(song);
+    QPixmap pic;
+    mTest->albumArt(pic);
+    delete song;
+}
+
+void TestMpShareData::testSongYear()
+{
+    MpSongData *song = new MpSongData();
+    song->setYear(1999);
+    mTest->setSongData(song);
+    QCOMPARE(mTest->year(), QString("1999"));
+    delete song;
+}
+
+void TestMpShareData::testSongGenre()
+{
+    MpSongData *song = new MpSongData();
+    song->setGenre("TestGenre");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->genre(), QString("TestGenre"));
+    delete song;
+}
+
+void TestMpShareData::testSongComposer()
+{
+    MpSongData *song = new MpSongData();
+    song->setComposer("TestComposer");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->composer(), QString("TestComposer"));
+    delete song;
+}
+
+void TestMpShareData::testSongAlbumTrack()
+{
+    MpSongData *song = new MpSongData();
+    song->setAlbumTrack("TestAlbumTrack");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->albumTrack(), QString("TestAlbumTrack"));
+    delete song;
+}
+
+void TestMpShareData::testSongLink()
+{
+    MpSongData *song = new MpSongData();
+    song->setLink("TestLink");
+    mTest->setSongData(song);
+    QCOMPARE(mTest->link(), QString("TestLink"));
+    delete song;
+}
+*/
+
+void TestMpShareData::testSongNoInfo()
+{
+    QCOMPARE(mTest->title(), QString("Unknown"));
+//    QCOMPARE(mTest->album(), QString(""));
+    QCOMPARE(mTest->artist(), QString("Unknown"));
+    QCOMPARE(mTest->albumArtBase64(), QString(""));
+    QCOMPARE(mTest->objectContent(), QString("&#9835; Unknown: Unknown http://music.ovi.com"));
+//    QCOMPARE(mTest->comment(), QString(""));
+//    QCOMPARE(mTest->year(), QString(""));
+//    QCOMPARE(mTest->genre(), QString(""));
+//    QCOMPARE(mTest->composer(), QString(""));
+//    QCOMPARE(mTest->albumTrack(), QString(""));
+//    QCOMPARE(mTest->link(), QString(""));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsharedata/stub/inc/mpsongdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,97 @@
+/*
+* 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 of Metadata of song
+*
+*/
+
+#ifndef MPSONGDATA_H
+#define MPSONGDATA_H
+
+#include <QObject>
+#include <QString>
+#include <QPixmap>
+
+
+//forward declartions
+class QIcon;
+
+//class declaration
+class MpSongData : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit MpSongData( QObject *parent=0 );
+    virtual ~MpSongData();
+    
+    bool setTitle( const QString &title );
+    bool setAlbum( const QString &album );
+    bool setArtist( const QString &artist );
+    bool setComment( const QString &comment );
+    void setAlbumArtUri( const QString &albumArtUri );
+    bool setYear( int date );
+    bool setGenre( const QString &genre );
+    bool setComposer( const QString &compoer );
+    bool setAlbumTrack( const QString &albumtrack );
+    void setLink( const QString &link );
+    bool setMusicURL( const QString &musicURL );
+
+    // inform details view when basic information is ready to accelerate UI update
+    void commitPlaybackInfo();
+    // inform details view when details information is ready
+    void commitSongDetailInfo();
+
+public slots:
+    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+    
+    int reservedLength() const { return mLink.length() + mTitle.length() + mArtist.length(); }
+
+    QString title() const;
+    QString album() const;
+    QString artist() const;
+    QString comment() const;
+    void albumArt( QPixmap& pixmap );
+    QString year() const;
+    QString genre() const;
+    QString composer() const;
+    QString albumTrack() const;
+    QString musicURL() const;
+    QString link() const;
+    QString albumArtBase64() const;
+
+signals:
+    void albumArtReady();
+    void playbackInfoChanged();
+	void songDetailInfoChanged();	
+
+private:
+    QString                  mTitle;
+    QString                  mAlbum;
+    QString                  mArtist;
+    QString                  mComment;
+    QString                  mComposer;
+    QString                  mGenre;
+    QString                  mYear;
+    QString                  mAlbumTrack;
+    QPixmap                  mAlbumArt;
+    int                      mReqId;
+    QString                  currentAAUri; 
+    QPixmap                  mDefaultAlbumArt;
+    QString                  mLink;
+    QString                  mMusicURL;
+    
+    Q_DISABLE_COPY(MpSongData)
+};
+
+#endif // MPSONGDATA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsharedata/stub/src/mpsongdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,399 @@
+/*
+* 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: Playback Data provider for playback view.
+*
+*/
+
+
+#include <QString>
+#include <QPixmap>
+
+#include "mpsongdata.h"
+#include "mptrace.h"
+
+
+const int KUndefined = -1;
+
+/*!
+    \class MpSongData
+    \brief Music Player song metadata.
+
+    Song data provide acces to current playing song metadata
+*/
+    
+/*!
+    \fn void albumArtReady()
+
+    This signal is albuma alrt is ready.
+ */
+
+/*!
+    \fn void playbackInfoChanged()
+
+    This signal is emitted when basic information is available
+ */
+    
+/*!
+    \fn void songDetailInfoChanged()
+
+    This signal is emitted when detail information is available
+ */
+    
+       
+
+/*!
+    Constructs a new MpSongData.
+ */
+MpSongData::MpSongData( QObject *parent )
+    : QObject( parent ),
+      mTitle( NULL ),
+      mAlbum( NULL ),
+      mArtist( NULL ),
+      mComposer( NULL),
+      mGenre( NULL ),
+      mYear( NULL ),
+      mAlbumTrack( NULL ),
+      mAlbumArt(),
+      mReqId( KUndefined )
+{
+    //TX_ENTRY
+    //TX_EXIT
+}
+
+/*!
+ Constructs a new MpSongData.
+ */
+MpSongData::~MpSongData()
+{
+    //TX_ENTRY
+    //TX_EXIT
+}
+
+/*!
+ Returns the song album art on \a pixmap.
+*/
+void MpSongData::albumArt( QPixmap& pixmap )
+{
+    //TX_ENTRY
+     if ( !mAlbumArt.isNull() ) {
+        pixmap = mAlbumArt;
+     }
+     else {
+         pixmap = QPixmap();
+     }
+    //TX_EXIT
+}
+
+
+/*!
+ Returns the song title.
+*/
+QString MpSongData::title() const
+{
+    //TX_LOG
+    return mTitle;
+}
+
+/*!
+ Returns the song album.
+*/
+QString MpSongData::album() const
+{
+    //TX_LOG
+    return mAlbum;
+}
+
+/*!
+ Returns the song artist.
+*/
+QString MpSongData::artist() const
+{
+    //TX_LOG
+    return mArtist;
+}
+
+/*!
+ Returns comment
+*/
+QString MpSongData::comment() const
+{
+    //TX_LOG
+    return mComment;
+}
+
+/*!
+ Returns the song composer.
+*/
+QString MpSongData::composer() const
+{
+    //TX_LOG
+    return mComposer;
+}
+
+
+/*!
+ Returns the song genre.
+*/
+QString MpSongData::genre() const
+{
+    //TX_LOG
+    return mGenre;
+}
+
+
+/*!
+ Returns the album track.
+*/
+QString MpSongData::albumTrack() const
+{
+    //TX_LOG
+    return mAlbumTrack;
+}
+
+/*!
+ Returns link
+*/
+QString MpSongData::musicURL() const
+{
+    //TX_LOG
+    return mMusicURL;
+}
+
+/*!
+ Returns link
+*/
+QString MpSongData::link() const
+{
+    //TX_LOG
+    return mLink;
+}
+
+/*!
+ Returns the release date.
+*/
+QString MpSongData::year() const
+{
+    //TX_LOG    
+    return mYear;
+}
+
+
+/*!
+ Sets the song \a title, returns true if the value is new.
+*/
+bool MpSongData::setTitle( const QString &title )
+{
+    //TX_ENTRY_ARGS( "title =" << title )
+    bool change = false;
+    if ( title != mTitle ) {
+        change = true;
+        mTitle = title;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a album, returns true if the value is new.
+*/
+bool MpSongData::setAlbum( const QString &album )
+{
+    //TX_ENTRY_ARGS( "album =" << album )
+    bool change = false;
+    if ( album != mAlbum ) {
+        change = true;
+        mAlbum = album;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a artist, returns true if the value is new.
+*/
+bool MpSongData::setArtist( const QString &artist )
+{
+    //TX_ENTRY_ARGS( "artist =" << artist )
+    bool change = false;
+    if ( artist != mArtist ) {
+        change = true;
+        mArtist = artist;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a comment, returns true if the value is new.
+*/
+bool MpSongData::setComment( const QString &comment)
+{
+    //TX_ENTRY_ARGS( "comment =" << comment )
+    bool change = false;
+    if ( comment != mComment ) {
+        change = true;
+        mComment = comment;
+    }
+    //TX_EXIT
+    return change;
+}
+
+
+/*!
+ Sets the song \a composer, returns true if the value is new.
+*/
+bool MpSongData::setComposer( const QString &composer )
+{
+    //TX_ENTRY_ARGS( "composer =" << composer )
+    bool change = false;
+    if ( composer != mComposer ) {
+        change = true;
+        mComposer = composer;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the song \a genre, returns true if the value is new.
+*/
+bool MpSongData::setGenre( const QString &genre )
+{
+    //TX_ENTRY_ARGS( "genre =" << genre )
+    bool change = false;
+    if ( genre != mGenre ) {
+        change = true;
+        mGenre = genre;
+    }
+    //TX_EXIT
+    return change;
+}
+
+
+/*!
+ Sets the song \a date, returns true if the value is new.
+*/
+bool MpSongData::setYear( int year )
+{
+    //TX_ENTRY_ARGS( "year =" << year )
+    bool change = false;
+    if ( QString::number(year) != mYear ) {
+        change = true;
+        if ( year >= 0 && year < 9999 ) {
+            mYear = QString::number(year);
+        }
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a album track, returns true if the value is new.
+*/
+bool MpSongData::setAlbumTrack( const QString &track )
+{
+    //TX_ENTRY_ARGS( "track =" << track )
+    bool change = false;
+    if ( track != mAlbumTrack ) {
+        change = true;
+        mAlbumTrack = track;
+    }
+    //TX_EXIT
+    return change;
+}
+
+/*!
+ Sets the \a link
+*/
+void MpSongData::setLink( const QString &link )
+{
+    //TX_ENTRY_ARGS( "Link =" << link )
+    mLink = link;
+    //TX_EXIT
+}
+
+/*!
+ Sets the \a Music URL
+*/
+bool MpSongData::setMusicURL( const QString &link )
+{
+    //TX_ENTRY_ARGS( "MusicURL =" << link )
+    mMusicURL = link;
+    return true;
+    //TX_EXIT
+}
+
+
+
+/*!
+ Sets the song \a albumArtUri.
+*/
+void MpSongData::setAlbumArtUri( const QString &albumArtUri)
+{
+    //TX_ENTRY
+    mAlbumArt = mDefaultAlbumArt;
+    emit albumArtReady();
+    //TX_EXIT
+}
+
+
+/*!
+ Slot to handle the album art thumb.
+*/
+void MpSongData::thumbnailReady(
+        const QPixmap& pixmap,
+        void *data,
+        int id,
+        int error  )
+{
+    //TX_ENTRY
+    Q_UNUSED( data );
+
+    //TX_EXIT
+}
+
+/*!
+ Emit signal when playback information changed, such as artist, track name
+*/
+void MpSongData::commitPlaybackInfo()
+{
+    //TX_ENTRY
+    emit playbackInfoChanged();
+    //TX_EXIT
+}
+
+/*!
+ Emit signal when song detail information changed
+*/
+void MpSongData::commitSongDetailInfo()
+{
+    //TX_ENTRY
+    emit songDetailInfoChanged();
+    //TX_EXIT
+}
+
+QString MpSongData::albumArtBase64() const
+{
+    // Converts the current album art pixmap to a base64 string, and return the string.
+//    TX_ENTRY
+//    QByteArray array;
+//    QBuffer buffer(&array);
+//    buffer.open(QIODevice::WriteOnly);
+//    mAlbumArt.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format
+//    buffer.close();
+//    QByteArray base64 = array.toBase64();
+//    TX_EXIT
+//    return base64.constData();
+    return QString("e:\\album_art.png");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsharedata/unittest_mpsharedata.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,36 @@
+#
+# 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
+CONFIG += qtestlib \
+          symbian_test \
+          hb
+TARGET = unittest_mpsharedata
+DEPENDPATH += .
+INCLUDEPATH += ./inc \
+    ./stub/inc \
+    ../../inc \
+    ../../../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+DEFINES += SHARE_FUNC_ENABLED
+
+# Input
+HEADERS += inc/unittest_mpsharedata.h \
+    ../../inc/mpsharedata.h \
+    stub/inc/mpsongdata.h
+SOURCES += src/unittest_mpsharedata.cpp \
+    ../../src/mpsharedata.cpp \
+    stub/src/mpsongdata.cpp
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/MON.dat has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/MON.sym	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,686 +0,0 @@
-CTC++ sym 5.0
-Tue Mar 16 12:58:02 2010
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_thumbnailmanager_qt.cpp
-3 1268393574
-0 0 50 0 ThumbnailManager::getStaticMetaObject
-0 90 0 0 ( )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\stub/inc/thumbnailmanager_qt.h
-0 13 50 1 staticMetaObject
-1 0 53 0 ThumbnailManager::metaObject
-0 90 0 0 ( )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\stub/inc/thumbnailmanager_qt.h
-0 25 55 1 QObject::d_ptr -> metaObject
-1 13 55 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 58 0 ThumbnailManager::qt_metacast
-0 90 0 0 ( const char * )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\stub/inc/thumbnailmanager_qt.h
-1 20 60 1 ! _clname
-2 13 60 2 0
-2 20 61 1 ! strcmp ( _clname , qt_meta_stringdata_ThumbnailManager )
-3 13 62 2 static_cast < void * > ( const_cast < ThumbnailManager * > ( this ) )
-4 13 63 1 QObject::qt_metacast ( _clname )
-3 0 66 0 ThumbnailManager::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 29 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\stub/inc/thumbnailmanager_qt.h
-3 20 69 1 _id < 0
-5 13 70 2 _id
-4 20 71 1 _c == QMetaObject::InvokeMetaMethod
-0 1 72 2 switch ( _id )
-6 14 73 2 0
-7 12 73 3
-8 15 74 2
-9 13 78 1 _id
-4 0 82 0 ThumbnailManager::thumbnailReady
-0 90 0 0 ( QPixmap , void * , int , int )
-0 91 118 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\stub/inc/thumbnailmanager_qt.h
-%87,5,10,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_mpsongdata.cpp
-3 1268393574
-0 0 72 0 MpSongData::getStaticMetaObject
-0 90 0 0 ( )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\../../inc/mpsongdata.h
-0 13 72 1 staticMetaObject
-1 0 75 0 MpSongData::metaObject
-0 90 0 0 ( )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\../../inc/mpsongdata.h
-0 25 77 1 QObject::d_ptr -> metaObject
-1 13 77 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 80 0 MpSongData::qt_metacast
-0 90 0 0 ( const char * )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\../../inc/mpsongdata.h
-1 20 82 1 ! _clname
-2 13 82 2 0
-2 20 83 1 ! strcmp ( _clname , qt_meta_stringdata_MpSongData )
-3 13 84 2 static_cast < void * > ( const_cast < MpSongData * > ( this ) )
-4 13 85 1 QObject::qt_metacast ( _clname )
-3 0 88 0 MpSongData::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 32 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\../../inc/mpsongdata.h
-3 20 91 1 _id < 0
-5 13 92 2 _id
-4 20 93 1 _c == QMetaObject::InvokeMetaMethod
-0 1 94 2 switch ( _id )
-6 14 95 2 0
-7 12 95 3
-8 14 96 2 1
-9 12 96 3
-10 14 97 2 2
-11 12 97 3
-12 14 98 2 3
-13 12 98 3
-14 14 99 2 4
-5 20 100 4 _a [ 0 ]
-15 12 100 3
-16 14 101 2 5
-6 20 102 4 _a [ 0 ]
-17 12 102 3
-18 14 103 2 6
-7 20 104 4 _a [ 0 ]
-19 12 104 3
-20 14 105 2 7
-8 20 106 4 _a [ 0 ]
-21 12 106 3
-22 14 107 2 8
-9 20 108 4 _a [ 0 ]
-23 12 108 3
-24 14 109 2 9
-25 12 109 3
-26 14 110 2 10
-10 20 111 4 _a [ 0 ]
-27 12 111 3
-28 14 112 2 11
-11 20 113 4 _a [ 0 ]
-29 12 113 3
-30 14 114 2 12
-12 20 115 4 _a [ 0 ]
-31 12 115 3
-32 14 116 2 13
-13 20 117 4 _a [ 0 ]
-33 12 117 3
-34 14 118 2 14
-14 20 119 4 _a [ 0 ]
-35 12 119 3
-36 15 120 2
-37 13 124 1 _id
-4 0 128 0 MpSongData::albumArtReady
-0 90 0 0 ( )
-0 91 71 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\../../inc/mpsongdata.h
-5 0 134 0 MpSongData::playbackInfoChanged
-0 90 0 0 ( )
-0 91 72 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\../../inc/mpsongdata.h
-6 0 140 0 MpSongData::songDetailInfoChanged
-0 90 0 0 ( )
-0 91 73 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\../../inc/mpsongdata.h
-%144,7,38,15,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpsongdata.cpp
-3 1268393574
-0 0 62 0 MpSongData::MpSongData
-0 90 0 0 ( QObject * parent = 0 )
-0 91 35 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-1 0 88 0 MpSongData::~MpSongData
-0 90 0 0 ( )
-0 91 36 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-0 20 91 1 mThumbnailManager
-2 0 100 0 MpSongData::albumArt
-0 90 0 0 ( QPixmap & pixmap )
-0 91 63 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-1 20 103 1 ! mAlbumArt . isNull ( )
-0 1 106 1 else
-3 0 116 0 MpSongData::title
-0 90 0 0 ( )
-0 91 59 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-0 13 119 1 mTitle
-4 0 125 0 MpSongData::album
-0 90 0 0 ( )
-0 91 60 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-1 13 128 1 mAlbum
-5 0 134 0 MpSongData::artist
-0 90 0 0 ( )
-0 91 61 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-2 13 137 1 mArtist
-6 0 143 0 MpSongData::comment
-0 90 0 0 ( )
-0 91 62 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-3 13 146 1 mComment
-7 0 152 0 MpSongData::composer
-0 90 0 0 ( )
-0 91 66 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-4 13 155 1 mComposer
-8 0 162 0 MpSongData::genre
-0 90 0 0 ( )
-0 91 65 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-5 13 165 1 mGenre
-9 0 172 0 MpSongData::albumTrack
-0 90 0 0 ( )
-0 91 67 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-6 13 175 1 mAlbumTrack
-10 0 181 0 MpSongData::link
-0 90 0 0 ( )
-0 91 68 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-7 13 184 1 mLink
-11 0 190 0 MpSongData::year
-0 90 0 0 ( )
-0 91 64 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-8 13 193 1 mYear
-12 0 200 0 MpSongData::setTitle
-0 90 0 0 ( const QString & title )
-0 91 38 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-2 20 204 1 title != mTitle
-9 13 209 1 change
-13 0 215 0 MpSongData::setAlbum
-0 90 0 0 ( const QString & album )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-3 20 219 1 album != mAlbum
-10 13 224 1 change
-14 0 230 0 MpSongData::setArtist
-0 90 0 0 ( const QString & artist )
-0 91 40 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-4 20 234 1 artist != mArtist
-11 13 239 1 change
-15 0 245 0 MpSongData::setComment
-0 90 0 0 ( const QString & comment )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-5 20 249 1 comment != mComment
-12 13 254 1 change
-16 0 261 0 MpSongData::setComposer
-0 90 0 0 ( const QString & compoer )
-0 91 45 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-6 20 265 1 composer != mComposer
-13 13 270 1 change
-17 0 276 0 MpSongData::setGenre
-0 90 0 0 ( const QString & genre )
-0 91 44 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-7 20 280 1 genre != mGenre
-14 13 285 1 change
-18 0 292 0 MpSongData::setYear
-0 90 0 0 ( int date )
-0 91 43 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-8 20 296 1 QString::number ( year ) != mYear
-9 20 298 2 year >= 0 && year < 9999
-0 1 300 2 else
-15 13 305 1 change
-19 0 311 0 MpSongData::setAlbumTrack
-0 90 0 0 ( const QString & albumtrack )
-0 91 46 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-10 20 315 1 track != mAlbumTrack
-16 13 320 1 change
-20 0 326 0 MpSongData::setLink
-0 90 0 0 ( const QString & link )
-0 91 47 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-21 0 336 0 MpSongData::setAlbumArtUri
-0 90 0 0 ( const QString & albumArtUri )
-0 91 42 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-11 20 339 1 ! albumArtUri . isEmpty ( )
-12 20 341 2 mReqId != KUndefined
-13 20 345 2 ok
-14 20 347 3 mReqId == KUndefined
-0 1 354 1 else
-22 0 366 0 MpSongData::thumbnailReady
-0 90 0 0 ( const QPixmap & pixmap , void * data , int id , int error )
-0 91 55 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-15 20 374 1 error == 0 && mReqId == id
-0 1 379 1 else
-23 0 391 0 MpSongData::commitPlaybackInfo
-0 90 0 0 ( )
-0 91 50 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-24 0 401 0 MpSongData::commitSongDetailInfo
-0 90 0 0 ( )
-0 91 52 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc/mpsongdata.h
-%407,25,17,16,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_unittest_mpsongdata.cpp
-3 1268393574
-0 0 106 0 TestMpSongData::getStaticMetaObject
-0 90 0 0 ( )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\inc/unittest_mpsongdata.h
-0 13 106 1 staticMetaObject
-1 0 109 0 TestMpSongData::metaObject
-0 90 0 0 ( )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\inc/unittest_mpsongdata.h
-0 25 111 1 QObject::d_ptr -> metaObject
-1 13 111 1 QObject::d_ptr -> metaObject ? QObject::d_ptr -> metaObject : & staticMetaObject
-2 0 114 0 TestMpSongData::qt_metacast
-0 90 0 0 ( const char * )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\inc/unittest_mpsongdata.h
-1 20 116 1 ! _clname
-2 13 116 2 0
-2 20 117 1 ! strcmp ( _clname , qt_meta_stringdata_TestMpSongData )
-3 13 118 2 static_cast < void * > ( const_cast < TestMpSongData * > ( this ) )
-4 13 119 1 QObject::qt_metacast ( _clname )
-3 0 122 0 TestMpSongData::qt_metacall
-0 90 0 0 ( QMetaObject::Call , int , void * * )
-0 91 27 1 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\inc/unittest_mpsongdata.h
-3 20 125 1 _id < 0
-5 13 126 2 _id
-4 20 127 1 _c == QMetaObject::InvokeMetaMethod
-0 1 128 2 switch ( _id )
-6 14 129 2 0
-7 12 129 3
-8 14 130 2 1
-9 12 130 3
-10 14 131 2 2
-11 12 131 3
-12 14 132 2 3
-13 12 132 3
-14 14 133 2 4
-15 12 133 3
-16 14 134 2 5
-17 12 134 3
-18 14 135 2 6
-19 12 135 3
-20 14 136 2 7
-21 12 136 3
-22 14 137 2 8
-23 12 137 3
-24 14 138 2 9
-25 12 138 3
-26 14 139 2 10
-27 12 139 3
-28 14 140 2 11
-29 12 140 3
-30 14 141 2 12
-31 12 141 3
-32 14 142 2 13
-33 12 142 3
-34 14 143 2 14
-35 12 143 3
-36 14 144 2 15
-37 12 144 3
-38 14 145 2 16
-39 12 145 3
-40 14 146 2 17
-41 12 146 3
-42 14 147 2 18
-43 12 147 3
-44 14 148 2 19
-45 12 148 3
-46 14 149 2 20
-47 12 149 3
-48 14 150 2 21
-49 12 150 3
-50 14 151 2 22
-51 12 151 3
-52 14 152 2 23
-53 12 152 3
-54 14 153 2 24
-55 12 153 3
-56 14 154 2 25
-57 12 154 3
-58 14 155 2 26
-59 12 155 3
-60 14 156 2 27
-61 12 156 3
-62 14 157 2 28
-63 12 157 3
-64 14 158 2 29
-65 12 158 3
-66 14 159 2 30
-67 12 159 3
-68 14 160 2 31
-69 12 160 3
-70 14 161 2 32
-71 12 161 3
-72 14 162 2 33
-73 12 162 3
-74 14 163 2 34
-75 12 163 3
-76 14 164 2 35
-77 12 164 3
-78 14 165 2 36
-79 12 165 3
-80 15 166 2
-81 13 170 1 _id
-4 0 174 0 TestMpSongData::thumbnailReady
-0 90 0 0 ( const QPixmap & pixmap , void * data , int id , int error )
-0 91 36 3 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\inc/unittest_mpsongdata.h
-%179,5,82,5,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
-3 1268393577
-0 0 26 0 ThumbnailManager::getInitCounter
-0 90 0 0 ( )
-0 91 103 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-0 13 28 1 gInitCounter
-1 0 34 0 ThumbnailManager::resetInitCounter
-0 90 0 0 ( )
-0 91 104 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-2 0 42 0 ThumbnailManager::ThumbnailManager
-0 90 0 0 ( QObject * parentPtr = 0 )
-0 91 107 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-3 0 54 0 ThumbnailManager::~ThumbnailManager
-0 90 0 0 ( )
-0 91 108 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-4 0 62 0 ThumbnailManager::setMode
-0 90 0 0 ( ThumbnailMode mode )
-0 91 109 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-1 13 65 1 true
-5 0 71 0 ThumbnailManager::setQualityPreference
-0 90 0 0 ( QualityPreference qualityPreference )
-0 91 110 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-2 13 75 1 true
-6 0 81 0 ThumbnailManager::setThumbnailSize
-0 90 0 0 ( ThumbnailSize thumbnailSize )
-0 91 111 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-3 13 84 1 true
-7 0 90 0 ThumbnailManager::getThumbnail
-0 90 0 0 ( const QString & fileName , void * clientData = 0 , int priority = tnmWrapperPriorityIdle )
-0 91 112 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-0 20 96 1 clientData
-1 20 104 1 mGetThumbFails
-4 13 105 2 - 1
-5 13 109 1 mThumbnailReqCounter
-8 0 115 0 ThumbnailManager::cancelRequest
-0 90 0 0 ( int id )
-0 91 114 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h
-6 13 119 1 true
-%120,9,7,2,0,0
-@Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
-3 1268395912
-0 0 34 0 main
-0 90 0 0 ( int argc , char * argv [ ] )
-0 91 34 0 Z:\musicplayer\mpviewplugins\mpdetailsviewplugin\tsrc\unittest_mpsongdata\src\unittest_mpsongdata.cpp
-0 13 48 1 res
-1 0 52 0 TestMpSongData::TestMpSongData
-0 90 0 0 ( )
-0 91 31 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-2 0 59 0 TestMpSongData::~TestMpSongData
-0 90 0 0 ( )
-0 91 32 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-3 0 67 0 TestMpSongData::initTestCase
-0 90 0 0 ( )
-0 91 39 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-4 0 75 0 TestMpSongData::cleanupTestCase
-0 90 0 0 ( )
-0 91 40 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-5 0 83 0 TestMpSongData::init
-0 90 0 0 ( )
-0 91 41 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-6 0 91 0 TestMpSongData::cleanup
-0 90 0 0 ( )
-0 91 42 1 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-7 0 100 0 TestMpSongData::testMemberCleanup
-0 90 0 0 ( )
-0 91 45 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 106 1 do
-0 20 106 2 ! QTest::qCompare ( ThumbnailManager::getInitCounter ( ) , 0 , "ThumbnailManager::getInitCounter()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 106 )
-1 13 106 3
-0 1 106 1 while ( 0 )
-8 0 112 0 TestMpSongData::testAlbumArtIsNull
-0 90 0 0 ( )
-0 91 46 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 116 1 do
-1 20 116 2 ! QTest::qVerify ( ( dummyAlbumArt . isNull ( ) == true ) , "dummyAlbumArt.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 116 )
-2 13 116 3
-0 1 116 1 while ( 0 )
-9 0 123 0 TestMpSongData::testAlbumArtNotNull
-0 90 0 0 ( )
-0 91 47 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-10 0 133 0 TestMpSongData::testTitleIsNull
-0 90 0 0 ( )
-0 91 48 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 135 1 do
-2 20 135 2 ! QTest::qVerify ( ( mTest -> mTitle . isNull ( ) == true ) , "mTest->mTitle.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 135 )
-3 13 135 3
-0 1 135 1 while ( 0 )
-11 0 141 0 TestMpSongData::testAlbumIsNull
-0 90 0 0 ( )
-0 91 49 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 143 1 do
-3 20 143 2 ! QTest::qVerify ( ( mTest -> mAlbum . isNull ( ) == true ) , "mTest->mAlbum.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 143 )
-4 13 143 3
-0 1 143 1 while ( 0 )
-12 0 149 0 TestMpSongData::testArtistIsNull
-0 90 0 0 ( )
-0 91 50 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 151 1 do
-4 20 151 2 ! QTest::qVerify ( ( mTest -> mArtist . isNull ( ) == true ) , "mTest->mArtist.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 151 )
-5 13 151 3
-0 1 151 1 while ( 0 )
-13 0 157 0 TestMpSongData::testCommentIsNull
-0 90 0 0 ( )
-0 91 51 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 159 1 do
-5 20 159 2 ! QTest::qVerify ( ( mTest -> mComment . isNull ( ) == true ) , "mTest->mComment.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 159 )
-6 13 159 3
-0 1 159 1 while ( 0 )
-14 0 165 0 TestMpSongData::testComposerIsNull
-0 90 0 0 ( )
-0 91 52 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 167 1 do
-6 20 167 2 ! QTest::qVerify ( ( mTest -> mComposer . isNull ( ) == true ) , "mTest->mComposer.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 167 )
-7 13 167 3
-0 1 167 1 while ( 0 )
-15 0 173 0 TestMpSongData::testGenreIsNull
-0 90 0 0 ( )
-0 91 53 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 175 1 do
-7 20 175 2 ! QTest::qVerify ( ( mTest -> mGenre . isNull ( ) == true ) , "mTest->mGenre.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 175 )
-8 13 175 3
-0 1 175 1 while ( 0 )
-16 0 182 0 TestMpSongData::testAlbumtrackIsNull
-0 90 0 0 ( )
-0 91 54 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 184 1 do
-8 20 184 2 ! QTest::qVerify ( ( mTest -> mAlbumTrack . isNull ( ) == true ) , "mTest->mAlbumTrack.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 184 )
-9 13 184 3
-0 1 184 1 while ( 0 )
-17 0 190 0 TestMpSongData::testLinkIsNull
-0 90 0 0 ( )
-0 91 55 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 192 1 do
-9 20 192 2 ! QTest::qVerify ( ( mTest -> mLink . isNull ( ) == true ) , "mTest->mLink.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 192 )
-10 13 192 3
-0 1 192 1 while ( 0 )
-18 0 198 0 TestMpSongData::testYearIsNull
-0 90 0 0 ( )
-0 91 56 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 200 1 do
-10 20 200 2 ! QTest::qVerify ( ( mTest -> mYear . isNull ( ) == true ) , "mTest->mYear.isNull() == true" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 200 )
-11 13 200 3
-0 1 200 1 while ( 0 )
-19 0 206 0 TestMpSongData::testSetTitleTrue
-0 90 0 0 ( )
-0 91 57 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 211 1 do
-11 20 211 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 211 )
-12 13 211 3
-0 1 211 1 while ( 0 )
-20 0 218 0 TestMpSongData::testSetTitleFalse
-0 90 0 0 ( )
-0 91 58 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 223 1 do
-12 20 223 2 ! QTest::qCompare ( result , false , "result" , "false" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 223 )
-13 13 223 3
-0 1 223 1 while ( 0 )
-21 0 229 0 TestMpSongData::testsetAlbumTrue
-0 90 0 0 ( )
-0 91 59 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 234 1 do
-13 20 234 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 234 )
-14 13 234 3
-0 1 234 1 while ( 0 )
-22 0 241 0 TestMpSongData::testsetAlbumFalse
-0 90 0 0 ( )
-0 91 60 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 246 1 do
-14 20 246 2 ! QTest::qCompare ( result , false , "result" , "false" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 246 )
-15 13 246 3
-0 1 246 1 while ( 0 )
-23 0 253 0 TestMpSongData::testsetArtistTrue
-0 90 0 0 ( )
-0 91 61 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 258 1 do
-15 20 258 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 258 )
-16 13 258 3
-0 1 258 1 while ( 0 )
-24 0 265 0 TestMpSongData::testsetArtistFalse
-0 90 0 0 ( )
-0 91 62 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 270 1 do
-16 20 270 2 ! QTest::qCompare ( result , false , "result" , "false" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 270 )
-17 13 270 3
-0 1 270 1 while ( 0 )
-25 0 276 0 TestMpSongData::testsetCommentTrue
-0 90 0 0 ( )
-0 91 63 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 281 1 do
-17 20 281 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 281 )
-18 13 281 3
-0 1 281 1 while ( 0 )
-26 0 288 0 TestMpSongData::testsetCommentFalse
-0 90 0 0 ( )
-0 91 64 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 293 1 do
-18 20 293 2 ! QTest::qCompare ( result , false , "result" , "false" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 293 )
-19 13 293 3
-0 1 293 1 while ( 0 )
-27 0 299 0 TestMpSongData::testsetComposerTrue
-0 90 0 0 ( )
-0 91 65 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 304 1 do
-19 20 304 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 304 )
-20 13 304 3
-0 1 304 1 while ( 0 )
-28 0 311 0 TestMpSongData::testsetComposerFalse
-0 90 0 0 ( )
-0 91 66 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 316 1 do
-20 20 316 2 ! QTest::qCompare ( result , false , "result" , "false" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 316 )
-21 13 316 3
-0 1 316 1 while ( 0 )
-29 0 322 0 TestMpSongData::testsetGenreTrue
-0 90 0 0 ( )
-0 91 67 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 327 1 do
-21 20 327 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 327 )
-22 13 327 3
-0 1 327 1 while ( 0 )
-30 0 334 0 TestMpSongData::testsetGenreFalse
-0 90 0 0 ( )
-0 91 68 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 339 1 do
-22 20 339 2 ! QTest::qCompare ( result , false , "result" , "false" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 339 )
-23 13 339 3
-0 1 339 1 while ( 0 )
-31 0 345 0 TestMpSongData::testsetYearTrue
-0 90 0 0 ( )
-0 91 69 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 350 1 do
-23 20 350 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 350 )
-24 13 350 3
-0 1 350 1 while ( 0 )
-32 0 357 0 TestMpSongData::testsetYearFalse
-0 90 0 0 ( )
-0 91 70 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-33 0 371 0 TestMpSongData::testsetAlbumTrackTrue
-0 90 0 0 ( )
-0 91 71 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 376 1 do
-24 20 376 2 ! QTest::qCompare ( result , true , "result" , "true" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 376 )
-25 13 376 3
-0 1 376 1 while ( 0 )
-34 0 383 0 TestMpSongData::testsetAlbumTrackFalse
-0 90 0 0 ( )
-0 91 72 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 388 1 do
-25 20 388 2 ! QTest::qCompare ( result , false , "result" , "false" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 388 )
-26 13 388 3
-0 1 388 1 while ( 0 )
-35 0 394 0 TestMpSongData::testsetAlbumArtUri
-0 90 0 0 ( )
-0 91 73 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 401 1 do
-26 20 401 2 ! QTest::qVerify ( ( spy . isValid ( ) ) , "spy.isValid()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 401 )
-27 13 401 3
-0 1 401 1 while ( 0 )
-0 1 402 1 do
-27 20 402 2 ! QTest::qCompare ( spy . count ( ) , 0 , "spy.count()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 402 )
-28 13 402 3
-0 1 402 1 while ( 0 )
-0 1 405 1 do
-28 20 405 2 ! QTest::qCompare ( spy . count ( ) , 0 , "spy.count()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 405 )
-29 13 405 3
-0 1 405 1 while ( 0 )
-0 1 409 1 do
-29 20 409 2 ! QTest::qCompare ( spy . count ( ) , 1 , "spy.count()" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 409 )
-30 13 409 3
-0 1 409 1 while ( 0 )
-0 1 410 1 do
-30 20 410 2 ! QTest::qCompare ( mTest -> mAlbumArt , mTest -> mDefaultAlbumArt , "mTest->mAlbumArt" , "mTest->mDefaultAlbumArt" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 410 )
-31 13 410 3
-0 1 410 1 while ( 0 )
-0 1 413 1 do
-31 20 413 2 ! QTest::qCompare ( spy . count ( ) , 2 , "spy.count()" , "2" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 413 )
-32 13 413 3
-0 1 413 1 while ( 0 )
-0 1 414 1 do
-32 20 414 2 ! QTest::qCompare ( mTest -> mAlbumArt , mTest -> mDefaultAlbumArt , "mTest->mAlbumArt" , "mTest->mDefaultAlbumArt" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 414 )
-33 13 414 3
-0 1 414 1 while ( 0 )
-36 0 421 0 TestMpSongData::testThumbnailReady
-0 90 0 0 ( )
-0 91 74 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 427 1 do
-33 20 427 2 ! QTest::qVerify ( ( spy . isValid ( ) ) , "spy.isValid()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 427 )
-34 13 427 3
-0 1 427 1 while ( 0 )
-0 1 428 1 do
-34 20 428 2 ! QTest::qCompare ( spy . count ( ) , 0 , "spy.count()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 428 )
-35 13 428 3
-0 1 428 1 while ( 0 )
-0 1 433 1 do
-35 20 433 2 ! QTest::qCompare ( spy . count ( ) , 1 , "spy.count()" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 433 )
-36 13 433 3
-0 1 433 1 while ( 0 )
-0 1 434 1 do
-36 20 434 2 ! QTest::qCompare ( mTest -> mAlbumArt , dummyAlbumArt , "mTest->mAlbumArt" , "dummyAlbumArt" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 434 )
-37 13 434 3
-0 1 434 1 while ( 0 )
-0 1 437 1 do
-37 20 437 2 ! QTest::qCompare ( spy . count ( ) , 2 , "spy.count()" , "2" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 437 )
-38 13 437 3
-0 1 437 1 while ( 0 )
-0 1 438 1 do
-38 20 438 2 ! QTest::qCompare ( mTest -> mAlbumArt , mTest -> mDefaultAlbumArt , "mTest->mAlbumArt" , "mTest->mDefaultAlbumArt" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 438 )
-39 13 438 3
-0 1 438 1 while ( 0 )
-37 0 446 0 TestMpSongData::testCommitPlaybackInfo
-0 90 0 0 ( )
-0 91 75 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 450 1 do
-39 20 450 2 ! QTest::qVerify ( ( spy . isValid ( ) ) , "spy.isValid()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 450 )
-40 13 450 3
-0 1 450 1 while ( 0 )
-0 1 451 1 do
-40 20 451 2 ! QTest::qCompare ( spy . count ( ) , 0 , "spy.count()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 451 )
-41 13 451 3
-0 1 451 1 while ( 0 )
-0 1 454 1 do
-41 20 454 2 ! QTest::qCompare ( spy . count ( ) , 1 , "spy.count()" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 454 )
-42 13 454 3
-0 1 454 1 while ( 0 )
-38 0 461 0 TestMpSongData::testCommitSongDetailInfo
-0 90 0 0 ( )
-0 91 76 2 Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h
-0 1 465 1 do
-42 20 465 2 ! QTest::qVerify ( ( spy . isValid ( ) ) , "spy.isValid()" , "" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 465 )
-43 13 465 3
-0 1 465 1 while ( 0 )
-0 1 466 1 do
-43 20 466 2 ! QTest::qCompare ( spy . count ( ) , 0 , "spy.count()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 466 )
-44 13 466 3
-0 1 466 1 while ( 0 )
-0 1 469 1 do
-44 20 469 2 ! QTest::qCompare ( spy . count ( ) , 1 , "spy.count()" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 469 )
-45 13 469 3
-0 1 469 1 while ( 0 )
-%471,39,46,45,0,0
-END OF SYMBOLFILE
-4 1 do
-45 20 464 2 ! QTest::qCompare ( spy . count ( ) , 0 , "spy.count()" , "0" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 464 )
-46 13 464 3
-0 1 464 1 while ( 0 )
-0 1 467 1 do
-46 20 467 2 ! QTest::qCompare ( spy . count ( ) , 1 , "spy.count()" , "1" , "Z:\\musicplayer\\mpviewplugins\\mpdetailsviewplugin\\tsrc\\unittest_mpsongdata\\src\\unittest_mpsongdata.cpp" , 467 )
-47 13 467 3
-0 1 467 1 while ( 0 )
-%469,39,48,47,0,0
-END OF SYMBOLFILE
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/UT_mpsongdata.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-; unittest_mpmpxpbframeworkwrapper_template.pkg generated by qmake at 2010-03-07T16:15:41
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"unittest_mpsongdata"},(0xE003e880),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-; Executable and default resource files
-"/epoc32/release/armv5/udeb/unittest_mpsongdata.exe"    - "!:\sys\bin\unittest_mpsongdata.exe"
-"/epoc32/data/z/private/10003a3f/import/apps/unittest_mpsongdata_reg.rsc"    - "!:\private\10003a3f\import\apps\unittest_mpsongdata_reg.rsc"
-
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/UT_mpsongdata.sisx has changed
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/ctcdata.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,652 +0,0 @@
-
-
-CTCRTS: Write coverage data to file 2010-03-12 13:39:14
-
-CTCDATA:<START:1j,1M,1,4,2,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,
-
-CTCDATA:1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l
-
-CTCDATA:,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1p,1q,1b,1X,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1q,1d,1r,1n,1t,1q,1b,1d,1r,k,1b,1o,1o,1S,w,1U,1l,1
-
-CTCDATA:t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r
-
-CTCDATA:,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,
-
-CTCDATA:1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,1,0,1,0,0,0,1,0,1,0,1j,1M,1,A,6,5,0
-
-CTCDATA:,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,
-
-CTCDATA:1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s
-
-CTCDATA:,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq3QT,1,1,1,1,1,4,4,1,1,1,0,1,1,1,1,4,4,1,1,1,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,1,1,1,1,1,1j,1M,1,J,q,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1
-
-CTCDATA:q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1
-
-CTCDATA:s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1l,1n,1b,1X,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,
-
-CTCDATA:1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U
-
-CTCDATA:,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,u,0,E,1,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,u,0,0,0,1,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,4,4,4,1,1,
-
-CTCDATA:1,1,1,1,0,D,0,0,0,1,D,u,0,0,D,0,18,1M,1,U,2,j,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1
-
-CTCDATA:k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d
-
-CTCDATA:,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,
-
-CTCDATA:1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1
-
-CTCDATA:G,k,1c,1Z,1s,1Nq3QO,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,4,4,4,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1a,1M,1,5,e,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S
-
-CTCDATA:,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1
-
-CTCDATA:f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QN,0,o,0,1,1,0,0,0,0,1,0,o,0
-
-CTCDATA:,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,1,0,0,0,0,1,o,0,0,1,0,1u,1M,1,4,1,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1
-
-CTCDATA:x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z
-
-CTCDATA:,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c
-
-CTCDATA:,1Z,1s,1Nq3QT,4,4,4,1,4,4,0,1,4,1c,1M,1,P,H,G,0,0,1S,w,l,1l,1t,1r,1h,1
-
-CTCDATA:b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1
-
-CTCDATA:c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1
-
-CTCDATA:m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,
-
-CTCDATA:1t,1a,l,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1
-
-CTCDATA:r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h
-
-CTCDATA:,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QT,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,1l,1M,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k
-
-CTCDATA:,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s
-
-CTCDATA:,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k
-
-CTCDATA:,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k
-
-CTCDATA:,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QU,0,0,8,4,0,8,8
-
-CTCDATA:,0,0,0,0,8,4,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,1g,1M,1,5,A,5,0,0,1S,w,l,
-
-CTCDATA:1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m
-
-CTCDATA:,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r
-
-CTCDATA:,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1
-
-CTCDATA:d,1v,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,
-
-CTCDATA:1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QR,0,G,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,1X,1M,1,7,c,F,0,
-
-CTCDATA:0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1
-
-CTCDATA:S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3QQ,0,G,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,G,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:1v,1S,1,D,q,p,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,
-
-CTCDATA:1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l,1t,1m,1h,
-
-CTCDATA:1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1
-
-CTCDATA:h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v
-
-CTCDATA:,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq35R,1,1,1,1,1,6,6,1,1,1,1,1,1,0,1,1,1,1,6,6,1,1,1,1,1,1,1,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1v,1S,1,4,S,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,
-
-CTCDATA:1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1l,1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,
-
-CTCDATA:1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s
-
-CTCDATA:,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,
-
-CTCDATA:1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,1E,0,K,0,0,0,0,0,1E,0,0,0,0,1,1,1,1
-
-CTCDATA:,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,0,K,0,0,0,0,K,1E,0,0,K,0,1E,1S,1,B,9,
-
-CTCDATA:3,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,
-
-CTCDATA:1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1
-
-CTCDATA:Z,1s,1Nq35O,6,6,1,4,5,5,1,0,0,0,0,6,6,1,4,5,5,0,0,0,0,0,1,1,1,1,3,3,1,
-
-CTCDATA:0,0,1,3,1,0,1,4,1l,1S,1,7,0,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d
-
-CTCDATA:,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k
-
-CTCDATA:,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:s,1t,1a,l,1r,1q,1b,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o
-
-CTCDATA:,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1
-
-CTCDATA:t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,
-
-CTCDATA:1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35R,8,8,
-
-CTCDATA:1,2,1,6,1,8,8,1,2,1,6,1,1g,1S,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,
-
-CTCDATA:1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,k,1b,1o,1o,1S,w
-
-CTCDATA:,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r
-
-CTCDATA:,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,2,0,0,1
-
-CTCDATA:,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1m,1S,1,5,E,5,0,0,1
-
-CTCDATA:S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l
-
-CTCDATA:,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1
-
-CTCDATA:u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1l,1n,1b,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,
-
-CTCDATA:1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1
-
-CTCDATA:s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h
-
-CTCDATA:,1s,1s,1d,1r,1s,1X,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1U,1F,1H,1G,k,1c,1Z,1s,1Nq35O,0,3,0,1,1,0,0,0,0,1,0,3,0,0,0,0,1,
-
-CTCDATA:1,0,0,0,0,0,1,0,0,0,0,1,3,0,0,1,0,2D,1b,1,T,V,h,0,0,1S,w,l,1l,1t,1r,1h
-
-CTCDATA:,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o
-
-CTCDATA:,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t
-
-CTCDATA:,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,
-
-CTCDATA:1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,
-
-CTCDATA:1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1
-
-CTCDATA:j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1
-
-CTCDATA:d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,
-
-CTCDATA:1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1
-
-CTCDATA:q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq366,Q,Q,Q,0,Q,Q,Q,
-
-CTCDATA:4,4,0,1,1,1,1,1,Y,Y,1,1,1,1,1,1,Q,R,1,1,0,R,0,0,0,0,0,0,0,0,0,0,0,1,1,
-
-CTCDATA:1,1,Y,Y,1,1,1,1,1,1,4,R,1,1,0,R,Q,Q,Q,0,Q,Q,Q,4,4,0,1,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,0,0,0,0,M,0,0,O,O,O,0,O,O,N,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,0,0,0,M,0,0,1,Q,P,P,P,Q,P,P,P,P,P,Q,2,2,2,0,2,2,3,1,1,0,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,Q,Q,Q,Q,Q,4,4,4,Q,1,2,2,2,1,2,2,2,2,2,1,2D,1b,1,4,U,
-
-CTCDATA:5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1
-
-CTCDATA:k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,
-
-CTCDATA:1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1l,1n
-
-CTCDATA:,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq363,0,1P,0,N,0,0,0,0,0,1P,0,0,0,0,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,0,N,0,0,0,0,N,1P,0,0,N,0,1P,1b,1,E,8,D,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1b,l
-
-CTCDATA:,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,
-
-CTCDATA:1Z,1o,1o,1d,1q,1X,1o,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,
-
-CTCDATA:1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1
-
-CTCDATA:k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d
-
-CTCDATA:,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,
-
-CTCDATA:1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq4iQ,Y,Y,X,X,Y,X,1,1,
-
-CTCDATA:1,R,2f,1,1,1,Y,Y,X,X,Y,X,1,1,1,Q,0,1,1,1,0,0,0,0,1,2f,0,0,X,1,O,O,O,P,
-
-CTCDATA:P,O,O,O,O,O,Q,0,Q,2,2,2,1,1,2,2,2,2,2,0,1z,1b,1,V,A,2,0,0,1S,w,l,1l,1t
-
-CTCDATA:,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l
-
-CTCDATA:,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1
-
-CTCDATA:b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,
-
-CTCDATA:l,1l,1o,1w,1o,1k,1Z,1x,1a,1Z,1b,1j,1t,1s,1h,1k,1h,1s,1x,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1
-
-CTCDATA:Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G
-
-CTCDATA:,k,1c,1Z,1s,1Nq366,X,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,Y,0,X,X,X,Y,X,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,X,0,1,0,0,0,0,0,0,Y,X,X,0,1,1x,1b,1,D,2,0,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z
-
-CTCDATA:,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l,1r,1q,1b,l,1l,
-
-CTCDATA:1o,1w,1o,1k,1Z,1x,1d,1q,1l,1Z,1m,1Z,1f,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,
-
-CTCDATA:1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1
-
-CTCDATA:U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q
-
-CTCDATA:,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,
-
-CTCDATA:1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s
-
-CTCDATA:,1Nq367,X,0,0,0,0,0,0,0,0,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1q,1b,
-
-CTCDATA:1,7,3,0,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1
-
-CTCDATA:v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,
-
-CTCDATA:1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l
-
-CTCDATA:,1r,1s,1t,1a,l,1r,1q,1b,l,1l,1o,1w,1r,1n,1t,1q,1b,1d,k,1b,1o,1o,1S,w,1
-
-CTCDATA:U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h
-
-CTCDATA:,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,
-
-CTCDATA:1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1
-
-CTCDATA:h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36A,X,0,0,0,0,1,0,X,0,0,0,0,1,0,0,0,0,1r,1b,1,P,H,B,0,0,1S
-
-CTCDATA:,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,
-
-CTCDATA:1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,
-
-CTCDATA:1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h
-
-CTCDATA:,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,l,1r,1s,1t,1a,l
-
-CTCDATA:,1r,1q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,
-
-CTCDATA:1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1
-
-CTCDATA:l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b
-
-CTCDATA:,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,
-
-CTCDATA:1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1N
-
-CTCDATA:q367,Y,X,0,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0,Q,0,P,Q,Y,X,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,Q,0,P,Q,R,R,R,R,R,5,5,1,R,Q,Q,Q,Q,Q,Q,Q,Q,0
-
-CTCDATA:,N,N,N,N,O,E,Q,N,N,0,0,3,3,3,3,2,C,0,3,3,0,1N,1b,1,4,1,0,0,0,1S,w,l,1l
-
-CTCDATA:,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1q,1
-
-CTCDATA:b,l,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,
-
-CTCDATA:1q,1Z,1o,1o,1d,1q,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,
-
-CTCDATA:1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1
-
-CTCDATA:r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r
-
-CTCDATA:,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,
-
-CTCDATA:1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z,1s,1Nq362,Y,X,1,1,Y,X,0,1,1,1
-
-CTCDATA:m,1b,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h
-
-CTCDATA:,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1
-
-CTCDATA:o,1w,1c,1d,1s,1Z,1h,1k,1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d
-
-CTCDATA:,1q,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,
-
-CTCDATA:1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1
-
-CTCDATA:r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r
-
-CTCDATA:,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1l,1o,1w,1c,1d,1s,1Z,1h,1k,
-
-CTCDATA:1r,1e,1q,1Z,1l,1d,1v,1n,1q,1j,1v,1q,1Z,1o,1o,1d,1q,1U,1F,1H,1G,k,1c,1Z
-
-CTCDATA:,1s,1Nq362,0,0,0,0,Q,P,Q,0,0,0,0,Q,P,Q,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1d,1J,1,d,k,j,0,0,1S,w,l,1l,1t,1r,1
-
-CTCDATA:h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1q,1b,l,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,
-
-CTCDATA:w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f
-
-CTCDATA:,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1
-
-CTCDATA:s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq3ia,1,1,1,1,1,X,Y,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,X,Y,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-CTCDATA:,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
-CTCDATA:,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1d,1J,1,5,1K,5,0,0,1S,w,l,1
-
-CTCDATA:l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,
-
-CTCDATA:1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,
-
-CTCDATA:1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,
-
-CTCDATA:1n,1b,1X,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b
-
-CTCDATA:,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1
-
-CTCDATA:o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t
-
-CTCDATA:,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,
-
-CTCDATA:1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,5s,0,1a,2,0,0,0,0,2,0,5
-
-CTCDATA:s,0,0,0,0,0,0,1,1,1,1,V,V,V,V,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-
-CTCDATA:1,1,1,1,1,1,1,1,1,0,1a,0,0,0,0,1a,5s,0,0,1a,0,15,1J,1,P,H,G,0,0,1S,w,l
-
-CTCDATA:,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1
-
-CTCDATA:m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,l,1r,1
-
-CTCDATA:q,1b,l,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b
-
-CTCDATA:,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,
-
-CTCDATA:1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1
-
-CTCDATA:t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,
-
-CTCDATA:1c,1Z,1s,1Nq36s,X,X,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,1,2,0,3,2,1,1,X,X,
-
-CTCDATA:2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,1,1,0,0,0,0,0,0,0,0,0,2,2,2,
-
-CTCDATA:2,2,2,1,2,X,0,1,1,1,1,1,1,1,1,1,2,1,2,1,1,0,2,1,1,1,1,1,1,0,0,1,1,1,0,
-
-CTCDATA:1,1,1i,1J,1,9,7,2,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,
-
-CTCDATA:1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d
-
-CTCDATA:,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o
-
-CTCDATA:,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1r,1s,1t,1a,l,1r,1q,1b,l,1s,1g,1t,1l,1a,1m,
-
-CTCDATA:1Z,1h,1k,1l,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,
-
-CTCDATA:1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1
-
-CTCDATA:o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U
-
-CTCDATA:,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,
-
-CTCDATA:k,1c,1Z,1s,1Nq36v,1,1,X,X,0,X,X,2,1,0,1,X,X,0,0,0,0,0,1,0,X,X,1,1,1,0,
-
-CTCDATA:1,2,1,1d,1J,1,5,A,5,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1
-
-CTCDATA:o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,
-
-CTCDATA:1d,1v,1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,
-
-CTCDATA:1o,1r,1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1s,1g,1t,1l,1a,1m,1Z,1h,1k,1l
-
-CTCDATA:,1Z,1m,1Z,1f,1d,1q,1X,1p,1s,k,1b,1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z
-
-CTCDATA:,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,
-
-CTCDATA:1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1
-
-CTCDATA:s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,
-
-CTCDATA:1Nq36s,0,15,0,2,2,0,0,0,0,2,0,15,0,0,0,0,2,2,0,2,0,0,0,0,2,15,0,0,2,0,
-
-CTCDATA:1U,1J,1,7,c,F,0,0,1S,w,l,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,l,1l,1o,1u,1
-
-CTCDATA:h,1d,1v,1o,1k,1t,1f,1h,1m,1r,l,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,
-
-CTCDATA:1o,1k,1t,1f,1h,1m,l,1s,1r,1q,1b,l,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,
-
-CTCDATA:1n,1m,1f,1c,1Z,1s,1Z,l,1l,1n,1b,1X,1l,1o,1r,1n,1m,1f,1c,1Z,1s,1Z,k,1b,
-
-CTCDATA:1o,1o,1S,w,1U,1l,1t,1r,1h,1b,1o,1k,1Z,1x,1d,1q,1U,1l,1o,1u,1h,1d,1v,1o
-
-CTCDATA:,1k,1t,1f,1h,1m,1r,1U,1l,1o,1c,1d,1s,1Z,1h,1k,1r,1u,1h,1d,1v,1o,1k,1t,
-
-CTCDATA:1f,1h,1m,1U,1s,1r,1q,1b,1U,1t,1m,1h,1s,1s,1d,1r,1s,1X,1l,1o,1r,1n,1m,1
-
-CTCDATA:f,1c,1Z,1s,1Z,1U,1F,1H,1G,k,1c,1Z,1s,1Nq36s,0,f,0,2,4,1,1,0,0,0,0,4,1,
-
-CTCDATA:1,0,f,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-CTCDATA:0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,f,0,0,2,0,0,0,0,0,0,0,0,0,0,0,>
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/ctcerr.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2213 +0,0 @@
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[specs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpsongdata.cpp
-
-
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5880.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3104.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3900.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-280.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-6040.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2120.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpsongdata{000a0000}[ea4c3199].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[33]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[36]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[38]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[39]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[40]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[43]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[44]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[45]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[48]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[49]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[50]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[51]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[52]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[56]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-1312.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_mpsongdata.cpp
-
-thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1816.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4940.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-484.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1476.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2560.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5168.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpsongdata{000a0000}[ea4c3199].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[33]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[36]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[38]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[39]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[40]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[43]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[44]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[45]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[48]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[49]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[50]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[51]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[52]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[56]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5000.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_unittest_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_unittest_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_unittest_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4336.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5612.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4488.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4768.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-868.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4480.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpsongdata{000a0000}[ea4c3199].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[33]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[36]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[38]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[39]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[40]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[43]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[44]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[45]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[48]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[49]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[50]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[51]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[52]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[56]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-5476.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_mpsongdata.cpp
-
-thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-2916.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5948.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-3772.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5504.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-1668.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-6084.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpsongdata{000a0000}[ea4c3199].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[33]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[36]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[38]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[39]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[40]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[43]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[44]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[45]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[48]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[49]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[50]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[51]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[52]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[56]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-2668.rsp
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/moc_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_mpsongdata.cpp
-
-thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5268.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5884.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5160.rsp
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4276.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-4196.rsp
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armcc.exe
-argv[1]: -O0
-argv[2]: -g
-argv[3]: --dwarf2
-argv[4]: --dllimport_runtime
-argv[5]: --exceptions
-argv[6]: --exceptions_unwind
-argv[7]: --diag_suppress
-argv[8]: 161,611,654,997,1152,1300,1464,1488,2523,6318,6331
-argv[9]: --diag_error
-argv[10]: 1267
-argv[11]: --cpu
-argv[12]: 5T
-argv[13]: --enum_is_int
-argv[14]: -Ono_known_library
-argv[15]: --fpmode
-argv[16]: ieee_no_fenv
-argv[17]: --memaccess
-argv[18]: -UL41
-argv[19]: --no_vfe
-argv[20]: --apcs
-argv[21]: /inter
-argv[22]: -c
-argv[23]: --thumb
-argv[24]: -D__MARM_THUMB__
-argv[25]: --fpu
-argv[26]: softvfp
-argv[27]: --visibility_inlines_hidden
-argv[28]: --cpp
-argv[29]: -D__MARM_INTERWORK__
-argv[30]: -D_DEBUG
-argv[31]: -D__SUPPORT_CPP_EXCEPTIONS__
-argv[32]: -D_UNICODE
-argv[33]: -D__SYMBIAN32__
-argv[34]: -D__ARMCC__
-argv[35]: -D__EPOC32__
-argv[36]: -D__MARM__
-argv[37]: -D__EABI__
-argv[38]: -D__PRODUCT_INCLUDE__="Z:/epoc32/include/feature_settings.hrh"
-argv[39]: -DUNICODE
-argv[40]: -DQT_KEYPAD_NAVIGATION
-argv[41]: -DQT_SOFTKEYS_ENABLED
-argv[42]: -DQT_USE_MATH_H_FLOATS
-argv[43]: -DHB_GESTURE_FW
-argv[44]: -DHB_EFFECTS
-argv[45]: -DHB_TEXT_MEASUREMENT_UTILITY
-argv[46]: -DQT_NO_DEBUG
-argv[47]: -DQT_SVG_LIB
-argv[48]: -DQT_GUI_LIB
-argv[49]: -DQT_NETWORK_LIB
-argv[50]: -DQT_CORE_LIB
-argv[51]: -D__MARM_ARMV5__
-argv[52]: -D__ARMCC_2__
-argv[53]: -D__ARMCC_2_2__
-argv[54]: -D__EXE__
-argv[55]: -D__SYMBIAN_STDCPP_SUPPORT__
-argv[56]: --preinclude
-argv[57]: Z:/epoc32/include/rvct/rvct.h
-argv[58]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[59]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[60]: -JZ:/epoc32/include/mw/QtCore
-argv[61]: -JZ:/epoc32/include/mw/QtNetwork
-argv[62]: -JZ:/epoc32/include/mw/QtGui
-argv[63]: -JZ:/epoc32/include/mw/QtSvg
-argv[64]: -JZ:/epoc32/include/mw
-argv[65]: -JZ:/epoc32/include/mw/QtTest
-argv[66]: -JZ:/sf/mw/qt/mkspecs/common/symbian
-argv[67]: -JZ:/epoc32/include
-argv[68]: -JZ:/epoc32/include/stdapis
-argv[69]: -JZ:/epoc32/include/stdapis/sys
-argv[70]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc
-argv[71]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/inc
-argv[72]: -JZ:/musicplayer/inc
-argv[73]: -JZ:/epoc32/include/platform/mw
-argv[74]: -JZ:/epoc32/include/platform
-argv[75]: -JZ:/epoc32/include/app
-argv[76]: -JZ:/epoc32/include/platform/app
-argv[77]: -JZ:/epoc32/include/platform/loc
-argv[78]: -JZ:/epoc32/include/platform/mw/loc
-argv[79]: -JZ:/epoc32/include/platform/app/loc
-argv[80]: -JZ:/epoc32/include/platform/loc/sc
-argv[81]: -JZ:/epoc32/include/platform/mw/loc/sc
-argv[82]: -JZ:/epoc32/include/platform/app/loc/sc
-argv[83]: -JZ:/epoc32/include/mw/hb/hbcore
-argv[84]: -JZ:/epoc32/include/mw/hb/hbwidgets
-argv[85]: -JZ:/epoc32/include/mw/hb/hbtools
-argv[86]: -JZ:/epoc32/include/mw/qtsvg
-argv[87]: -JZ:/epoc32/include/mw/qtgui
-argv[88]: -JZ:/epoc32/include/mw/qtnetwork
-argv[89]: -JZ:/epoc32/include/mw/qtcore
-argv[90]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata
-argv[91]: -JZ:/epoc32/include/stdapis/stlportv5
-argv[92]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc
-argv[93]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src
-argv[94]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/src
-argv[95]: -JZ:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src
-argv[96]: -JZ:/epoc32/include
-argv[97]: -JZ:/epoc32/include/stdapis
-argv[98]: --depend_format=unix
-argv[99]: --depend
-argv[100]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o.d
-argv[101]: -o
-argv[102]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/thumbnailmanager_qt.o
-argv[103]: Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armcc  --via ctc-armcc-5668.rsp
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-*** CTC++/ctcagent command status: 0
-
-
-*******************************************************************************
-
-argv[0]: C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\armlink.exe
-argv[1]: --diag_suppress
-argv[2]: 6331
-argv[3]: --bpabi
-argv[4]: --reloc
-argv[5]: --no_scanlib
-argv[6]: --datacompressor=off
-argv[7]: --debug
-argv[8]: --dll
-argv[9]: --split
-argv[10]: --rw-base
-argv[11]: 0x400000
-argv[12]: --symver_soname
-argv[13]: --soname=unittest_mpsongdata{000a0000}[ea4c3199].exe
-argv[14]: --entry=_E32Startup
-argv[15]: Z:/epoc32/release/armv5/udeb/eexe.lib(uc_exe_.o)
-argv[16]: -o
-argv[17]: Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.sym
-argv[18]: --symbols
-argv[19]: --list=Z:/epoc32/release/armv5/udeb/unittest_mpsongdata.exe.map
-argv[20]: --via
-argv[21]: Z:/epoc32/build/unittest_mpsongdata/c_5150b4549c6d2003/unittest_mpsongdata_exe/armv5/udeb/unittest_mpsongdata_udeb_objects.via
-argv[22]: Z:/epoc32/release/armv5/udeb/usrt2_2.lib
-argv[23]: Z:/epoc32/release/armv5/udeb/qtmain.lib
-argv[24]: Z:/epoc32/release/armv5/lib/mpxviewframeworkqt.dso
-argv[25]: Z:/epoc32/release/armv5/lib/HbCore.dso
-argv[26]: Z:/epoc32/release/armv5/lib/HbWidgets.dso
-argv[27]: Z:/epoc32/release/armv5/lib/HbTools.dso
-argv[28]: Z:/epoc32/release/armv5/lib/QtTest.dso
-argv[29]: Z:/epoc32/release/armv5/lib/QtSvg.dso
-argv[30]: Z:/epoc32/release/armv5/lib/QtGui.dso
-argv[31]: Z:/epoc32/release/armv5/lib/QtNetwork.dso
-argv[32]: Z:/epoc32/release/armv5/lib/QtCore.dso
-argv[33]: Z:/epoc32/release/armv5/lib/libstdcppv5.dso
-argv[34]: Z:/epoc32/release/armv5/lib/libc.dso
-argv[35]: Z:/epoc32/release/armv5/lib/libm.dso
-argv[36]: Z:/epoc32/release/armv5/lib/euser.dso
-argv[37]: Z:/epoc32/release/armv5/lib/libdl.dso
-argv[38]: Z:/epoc32/release/armv5/lib/cone.dso
-argv[39]: Z:/epoc32/release/armv5/lib/eikcore.dso
-argv[40]: Z:/epoc32/release/armv5/lib/mediaclientaudio.dso
-argv[41]: Z:/epoc32/release/armv5/lib/eikcoctl.dso
-argv[42]: Z:/epoc32/release/armv5/lib/eiksrv.dso
-argv[43]: Z:/epoc32/release/armv5/lib/apparc.dso
-argv[44]: Z:/epoc32/release/armv5/lib/avkon.dso
-argv[45]: Z:/epoc32/release/armv5/lib/efsrv.dso
-argv[46]: Z:/epoc32/release/armv5/lib/charconv.dso
-argv[47]: Z:/epoc32/release/armv5/lib/ws32.dso
-argv[48]: Z:/epoc32/release/armv5/lib/hal.dso
-argv[49]: Z:/epoc32/release/armv5/lib/gdi.dso
-argv[50]: Z:/epoc32/release/armv5/lib/apgrfx.dso
-argv[51]: Z:/epoc32/release/armv5/lib/stdnew.dso
-argv[52]: Z:/epoc32/release/armv5/lib/drtaeabi.dso
-argv[53]: Z:/epoc32/release/armv5/lib/dfpaeabi.dso
-argv[54]: Z:/epoc32/release/armv5/lib/dfprvct2_2.dso
-argv[55]: Z:/epoc32/release/armv5/lib/drtrvct2_2.dso
-argv[56]: C:/APPS/rvct22_686/lib/armlib/h_t__uf.l(switch8.o)
-
-*** CTC++/ctcagent command: set PATH=C:\APPS\sbs\win32\mingw\bin;C:\APPS\sbs\win32\cygwin\bin;C:\APPS\sbs\win32\bin;C:\APPS\rvct22_686\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\APPS\actpython\.;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\WiFi\bin;S:\ORANT\BIN;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\cltools;C:\APPS\codescanner;C:\APPS\ant\bin;C:\APPS\j2sdk_1.3.1_06\bin;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\Program Files\Nokia\FastTrace;C:\Apps\bin;Y:\sf\mw\qt\bin;C:\APPS\ctc;C:\APPS\sbs\bin;C:\APPS\7zip;C:\APPS\bc;\epoc32\gcc_mingw\bin;C:\APPS\symdec; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_armv5\armv5.ini @C:\DOCUME~1\cuzdan\LOCALS~1\Temp\ctc2\ctcopts.rsp armlink  --via ctc-armlink-464.rsp
-*** CTC++/ctcagent command status: 0
-
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +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: Unit test for mpsongdata
-*
-*/
-
-#ifndef UNITTEST_MPSONGDATA_H_
-#define UNITTEST_MPSONGDATA_H_
-
-#include <QtTest/QtTest>
-
-class MpSongData;
-
-class TestMpSongData : public QObject
-{
-    Q_OBJECT
-
-public:
-
-    TestMpSongData();
-    virtual ~TestMpSongData();
-
-signals:
-
-    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
-
-public slots:
-    void initTestCase();
-    void cleanupTestCase();
-    void init();
-    void cleanup();
-    
-private slots:
-    void testMemberCleanup();
-    void testAlbumArtIsNull();
-    void testAlbumArtNotNull();
-    void testTitleIsNull();
-    void testAlbumIsNull();
-    void testArtistIsNull();
-    void testCommentIsNull();
-    void testComposerIsNull();
-    void testGenreIsNull();
-    void testAlbumtrackIsNull();
-    void testLinkIsNull();
-    void testYearIsNull();
-    void testSetTitleTrue();
-    void testSetTitleFalse();
-    void testsetAlbumTrue();
-    void testsetAlbumFalse();
-    void testsetArtistTrue();
-    void testsetArtistFalse();
-    void testsetCommentTrue();
-    void testsetCommentFalse();
-    void testsetComposerTrue();
-    void testsetComposerFalse();
-    void testsetGenreTrue();
-    void testsetGenreFalse();
-    void testsetYearTrue();
-    void testsetYearFalse();
-    void testsetAlbumTrackTrue();
-    void testsetAlbumTrackFalse();
-    void testsetAlbumArtUri();
-    void testThumbnailReady();
-    void testCommitPlaybackInfo();
-    void testCommitSongDetailInfo();
-private:
-    MpSongData *mTest;
-    
-};
-
-
-#endif /* UNITTEST_MPSONGDATA_H_ */
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/profile.txt	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,938 +0,0 @@
-*****************************************************************************
-*           CTC++, Test Coverage Analyzer for C/C++, Version 6.5.5          *
-*                                                                           *
-*                         EXECUTION PROFILE LISTING                         *
-*                                                                           *
-*                    Copyright (c) 1993-2009 Testwell Oy                    *
-*****************************************************************************
-
-
-Symbol file(s) used   : MON.sym (Fri Mar 12 15:16:31 2010)
-Data file(s) used     : MON.dat (Fri Mar 12 15:56:49 2010)
-Listing produced at   : Fri Mar 12 15:59:17 2010
-Coverage view         : As instrumented
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_thumbnailmanager_qt.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    50 FUNCTION ThumbnailManager::getStaticMetaObject()
-         0            -    50 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION ThumbnailManager::getStaticMetaObject()
------------------------------------------------------------------------------
-
-        67          0      53 FUNCTION ThumbnailManager::metaObject()
-         0         67 -    55 ternary-?: QObject::d_ptr -> metaObject
-        67                 55 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION ThumbnailManager::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    58 FUNCTION ThumbnailManager::qt_metacast()
-         0          0 -    60 if (! _clname)
-         0            -    60   return 0
-         0          0 -    61 if (! strcmp ( _clname , qt_meta_stringdata_Th..
-         0            -    62   return static_cast < void * > ( const_cast <..
-         0            -    63 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION ThumbnailManager::qt_metacast()
------------------------------------------------------------------------------
-
-         2          0      66 FUNCTION ThumbnailManager::qt_metacall()
-         0          2 -    69 if (_id < 0)
-         0            -    70   return _id
-         2          0 -    71 if (_c == QMetaObject::InvokeMetaMethod)
-                           72   switch ( _id )
-         2                 73   case 0:
-         2                 73     break
-         0            -    74   default:
-         2                 78 return _id
-
-***TER  60 % (  6/ 10) of FUNCTION ThumbnailManager::qt_metacall()
------------------------------------------------------------------------------
-
-         2          2      82 FUNCTION ThumbnailManager::thumbnailReady()
-
-***TER 100 % (  1/  1) of FUNCTION ThumbnailManager::thumbnailReady()
------------------------------------------------------------------------------
-
-
-***TER  40 % ( 10/ 25) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_thumbnailmanager_qt.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -    72 FUNCTION MpSongData::getStaticMetaObject()
-         0            -    72 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::getStaticMetaObject()
------------------------------------------------------------------------------
-
-        41          0      75 FUNCTION MpSongData::metaObject()
-         0         41 -    77 ternary-?: QObject::d_ptr -> metaObject
-        41                 77 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION MpSongData::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -    80 FUNCTION MpSongData::qt_metacast()
-         0          0 -    82 if (! _clname)
-         0            -    82   return 0
-         0          0 -    83 if (! strcmp ( _clname , qt_meta_stringdata_Mp..
-         0            -    84   return static_cast < void * > ( const_cast <..
-         0            -    85 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION MpSongData::qt_metacast()
------------------------------------------------------------------------------
-
-         2          0      88 FUNCTION MpSongData::qt_metacall()
-         0          2 -    91 if (_id < 0)
-         0            -    92   return _id
-         2          0 -    93 if (_c == QMetaObject::InvokeMetaMethod)
-                           94   switch ( _id )
-         0            -    95   case 0:
-         0            -    95     break
-         0            -    96   case 1:
-         0            -    96     break
-         0            -    97   case 2:
-         0            -    97     break
-         2                 98   case 3:
-         2                 98     break
-         0            -    99   case 4:
-         0          0 -   100       if (_a [ 0 ])
-         0            -   100     break
-         0            -   101   case 5:
-         0          0 -   102       if (_a [ 0 ])
-         0            -   102     break
-         0            -   103   case 6:
-         0          0 -   104       if (_a [ 0 ])
-         0            -   104     break
-         0            -   105   case 7:
-         0          0 -   106       if (_a [ 0 ])
-         0            -   106     break
-         0            -   107   case 8:
-         0          0 -   108       if (_a [ 0 ])
-         0            -   108     break
-         0            -   109   case 9:
-         0            -   109     break
-         0            -   110   case 10:
-         0          0 -   111       if (_a [ 0 ])
-         0            -   111     break
-         0            -   112   case 11:
-         0          0 -   113       if (_a [ 0 ])
-         0            -   113     break
-         0            -   114   case 12:
-         0          0 -   115       if (_a [ 0 ])
-         0            -   115     break
-         0            -   116   case 13:
-         0          0 -   117       if (_a [ 0 ])
-         0            -   117     break
-         0            -   118   case 14:
-         0          0 -   119       if (_a [ 0 ])
-         0            -   119     break
-         0            -   120   default:
-         2                124 return _id
-
-***TER  10 % (  6/ 58) of FUNCTION MpSongData::qt_metacall()
------------------------------------------------------------------------------
-
-         4          4     128 FUNCTION MpSongData::albumArtReady()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::albumArtReady()
------------------------------------------------------------------------------
-
-         1          1     134 FUNCTION MpSongData::playbackInfoChanged()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::playbackInfoChanged()
------------------------------------------------------------------------------
-
-         1          1     140 FUNCTION MpSongData::songDetailInfoChanged()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::songDetailInfoChanged()
------------------------------------------------------------------------------
-
-
-***TER  16 % ( 12/ 75) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-        33         33      62 FUNCTION MpSongData::MpSongData()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::MpSongData()
------------------------------------------------------------------------------
-
-        33         33      88 FUNCTION MpSongData::~MpSongData()
-        33          0 -    91 if (mThumbnailManager)
-
-***TER  67 % (  2/  3) of FUNCTION MpSongData::~MpSongData()
------------------------------------------------------------------------------
-
-         2          2     100 FUNCTION MpSongData::albumArt()
-         0          2 -   103 if (! mAlbumArt . isNull ( ))
-                          106 else
-
-***TER  67 % (  2/  3) of FUNCTION MpSongData::albumArt()
------------------------------------------------------------------------------
-
-         0          0 -   116 FUNCTION MpSongData::title()
-         0            -   119 return mTitle
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::title()
------------------------------------------------------------------------------
-
-         0          0 -   125 FUNCTION MpSongData::album()
-         0            -   128 return mAlbum
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::album()
------------------------------------------------------------------------------
-
-         0          0 -   134 FUNCTION MpSongData::artist()
-         0            -   137 return mArtist
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::artist()
------------------------------------------------------------------------------
-
-         0          0 -   143 FUNCTION MpSongData::comment()
-         0            -   146 return mComment
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::comment()
------------------------------------------------------------------------------
-
-         0          0 -   152 FUNCTION MpSongData::composer()
-         0            -   155 return mComposer
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::composer()
------------------------------------------------------------------------------
-
-         0          0 -   162 FUNCTION MpSongData::genre()
-         0            -   165 return mGenre
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::genre()
------------------------------------------------------------------------------
-
-         0          0 -   172 FUNCTION MpSongData::albumTrack()
-         0            -   175 return mAlbumTrack
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::albumTrack()
------------------------------------------------------------------------------
-
-         0          0 -   181 FUNCTION MpSongData::link()
-         0            -   184 return mLink
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::link()
------------------------------------------------------------------------------
-
-         0          0 -   190 FUNCTION MpSongData::year()
-         0            -   193 return mYear
-
-***TER   0 % (  0/  2) of FUNCTION MpSongData::year()
------------------------------------------------------------------------------
-
-         2          0     200 FUNCTION MpSongData::setTitle()
-         1          1     204 if (title != mTitle)
-         2                209 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setTitle()
------------------------------------------------------------------------------
-
-         2          0     215 FUNCTION MpSongData::setAlbum()
-         1          1     219 if (album != mAlbum)
-         2                224 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setAlbum()
------------------------------------------------------------------------------
-
-         2          0     230 FUNCTION MpSongData::setArtist()
-         1          1     234 if (artist != mArtist)
-         2                239 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setArtist()
------------------------------------------------------------------------------
-
-         2          0     245 FUNCTION MpSongData::setComment()
-         1          1     249 if (comment != mComment)
-         2                254 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setComment()
------------------------------------------------------------------------------
-
-         2          0     261 FUNCTION MpSongData::setComposer()
-         1          1     265 if (composer != mComposer)
-         2                270 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setComposer()
------------------------------------------------------------------------------
-
-         2          0     276 FUNCTION MpSongData::setGenre()
-         1          1     280 if (genre != mGenre)
-         2                285 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setGenre()
------------------------------------------------------------------------------
-
-         1          0     292 FUNCTION MpSongData::setYear()
-         1          0 -   296 if (QString::number ( year ) != mYear)
-         1          0 -   298   if (year >= 0 && year < 9999)
-                          300   else
-         1                305 return change
-
-***TER  67 % (  4/  6) of FUNCTION MpSongData::setYear()
------------------------------------------------------------------------------
-
-         2          0     311 FUNCTION MpSongData::setAlbumTrack()
-         1          1     315 if (track != mAlbumTrack)
-         2                320 return change
-
-***TER 100 % (  4/  4) of FUNCTION MpSongData::setAlbumTrack()
------------------------------------------------------------------------------
-
-         0          0 -   326 FUNCTION MpSongData::setLink()
-
-***TER   0 % (  0/  1) of FUNCTION MpSongData::setLink()
------------------------------------------------------------------------------
-
-         3          3     336 FUNCTION MpSongData::setAlbumArtUri()
-         2          1     339 if (! albumArtUri . isEmpty ( ))
-         1          1     341   if (mReqId != KUndefined)
-         2          0 -   345   if (ok)
-         1          1     347     if (mReqId == KUndefined)
-                          354 else
-
-***TER  89 % (  8/  9) of FUNCTION MpSongData::setAlbumArtUri()
------------------------------------------------------------------------------
-
-         2          2     366 FUNCTION MpSongData::thumbnailReady()
-         1          1     374 if (error == 0 && mReqId == id)
-                          379 else
-
-***TER 100 % (  3/  3) of FUNCTION MpSongData::thumbnailReady()
------------------------------------------------------------------------------
-
-         1          1     391 FUNCTION MpSongData::commitPlaybackInfo()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::commitPlaybackInfo()
------------------------------------------------------------------------------
-
-         1          1     401 FUNCTION MpSongData::commitSongDetailInfo()
-
-***TER 100 % (  1/  1) of FUNCTION MpSongData::commitSongDetailInfo()
------------------------------------------------------------------------------
-
-
-***TER  68 % ( 50/ 74) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/src/mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_unittest_mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         0          0 -   106 FUNCTION TestMpSongData::getStaticMetaObject()
-         0            -   106 return staticMetaObject
-
-***TER   0 % (  0/  2) of FUNCTION TestMpSongData::getStaticMetaObject()
------------------------------------------------------------------------------
-
-       364          0     109 FUNCTION TestMpSongData::metaObject()
-         0        364 -   111 ternary-?: QObject::d_ptr -> metaObject
-       364                111 return QObject::d_ptr -> metaObject ? QObject:..
-
-***TER  75 % (  3/  4) of FUNCTION TestMpSongData::metaObject()
------------------------------------------------------------------------------
-
-         0          0 -   114 FUNCTION TestMpSongData::qt_metacast()
-         0          0 -   116 if (! _clname)
-         0            -   116   return 0
-         0          0 -   117 if (! strcmp ( _clname , qt_meta_stringdata_Te..
-         0            -   118   return static_cast < void * > ( const_cast <..
-         0            -   119 return QObject::qt_metacast ( _clname )
-
-***TER   0 % (  0/  8) of FUNCTION TestMpSongData::qt_metacast()
------------------------------------------------------------------------------
-
-        98          0     122 FUNCTION TestMpSongData::qt_metacall()
-         0         98 -   125 if (_id < 0)
-         0            -   126   return _id
-        98          0 -   127 if (_c == QMetaObject::InvokeMetaMethod)
-                          128   switch ( _id )
-         0            -   129   case 0:
-         0            -   129     break
-         1                130   case 1:
-         1                130     break
-         1                131   case 2:
-         1                131     break
-        32                132   case 3:
-        32                132     break
-        32                133   case 4:
-        32                133     break
-         1                134   case 5:
-         1                134     break
-         1                135   case 6:
-         1                135     break
-         1                136   case 7:
-         1                136     break
-         1                137   case 8:
-         1                137     break
-         1                138   case 9:
-         1                138     break
-         1                139   case 10:
-         1                139     break
-         1                140   case 11:
-         1                140     break
-         1                141   case 12:
-         1                141     break
-         1                142   case 13:
-         1                142     break
-         1                143   case 14:
-         1                143     break
-         1                144   case 15:
-         1                144     break
-         1                145   case 16:
-         1                145     break
-         1                146   case 17:
-         1                146     break
-         1                147   case 18:
-         1                147     break
-         1                148   case 19:
-         1                148     break
-         1                149   case 20:
-         1                149     break
-         1                150   case 21:
-         1                150     break
-         1                151   case 22:
-         1                151     break
-         1                152   case 23:
-         1                152     break
-         1                153   case 24:
-         1                153     break
-         1                154   case 25:
-         1                154     break
-         1                155   case 26:
-         1                155     break
-         1                156   case 27:
-         1                156     break
-         1                157   case 28:
-         1                157     break
-         1                158   case 29:
-         1                158     break
-         1                159   case 30:
-         1                159     break
-         1                160   case 31:
-         1                160     break
-         1                161   case 32:
-         1                161     break
-         1                162   case 33:
-         1                162     break
-         1                163   case 34:
-         1                163     break
-         1                164   case 35:
-         1                164     break
-         1                165   case 36:
-         1                165     break
-         0            -   166   default:
-        98                170 return _id
-
-***TER  93 % ( 76/ 82) of FUNCTION TestMpSongData::qt_metacall()
------------------------------------------------------------------------------
-
-         2          2     174 FUNCTION TestMpSongData::thumbnailReady()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::thumbnailReady()
------------------------------------------------------------------------------
-
-
-***TER  82 % ( 80/ 97) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/moc_unittest_mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         1          0      26 FUNCTION ThumbnailManager::getInitCounter()
-         1                 28 return gInitCounter
-
-***TER 100 % (  2/  2) of FUNCTION ThumbnailManager::getInitCounter()
------------------------------------------------------------------------------
-
-         1          1      34 FUNCTION ThumbnailManager::resetInitCounter()
-
-***TER 100 % (  1/  1) of FUNCTION ThumbnailManager::resetInitCounter()
------------------------------------------------------------------------------
-
-        33         33      42 FUNCTION ThumbnailManager::ThumbnailManager()
-
-***TER 100 % (  1/  1) of FUNCTION ThumbnailManager::ThumbnailManager()
------------------------------------------------------------------------------
-
-        33         33      54 FUNCTION ThumbnailManager::~ThumbnailManager()
-
-***TER 100 % (  1/  1) of FUNCTION ThumbnailManager::~ThumbnailManager()
------------------------------------------------------------------------------
-
-         0          0 -    62 FUNCTION ThumbnailManager::setMode()
-         0            -    65 return true
-
-***TER   0 % (  0/  2) of FUNCTION ThumbnailManager::setMode()
------------------------------------------------------------------------------
-
-        33          0      71 FUNCTION ThumbnailManager::setQualityPreference()
-        33                 75 return true
-
-***TER 100 % (  2/  2) of FUNCTION ThumbnailManager::setQualityPreference()
------------------------------------------------------------------------------
-
-        33          0      81 FUNCTION ThumbnailManager::setThumbnailSize()
-        33                 84 return true
-
-***TER 100 % (  2/  2) of FUNCTION ThumbnailManager::setThumbnailSize()
------------------------------------------------------------------------------
-
-         2          0      90 FUNCTION ThumbnailManager::getThumbnail()
-         0          2 -    96 if (clientData)
-         1          1     104 if (mGetThumbFails)
-         1                105   return - 1
-         1                109 return mThumbnailReqCounter
-
-***TER  86 % (  6/  7) of FUNCTION ThumbnailManager::getThumbnail()
------------------------------------------------------------------------------
-
-         1          0     115 FUNCTION ThumbnailManager::cancelRequest()
-         1                119 return true
-
-***TER 100 % (  2/  2) of FUNCTION ThumbnailManager::cancelRequest()
------------------------------------------------------------------------------
-
-
-***TER  85 % ( 17/ 20) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp
------------------------------------------------------------------------------
-
-
-
-MONITORED SOURCE FILE : Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
-INSTRUMENTATION MODE  : function-decision
-
-    START/       END/
-      TRUE      FALSE    LINE DESCRIPTION
-=============================================================================
-
-         1          0      34 FUNCTION main()
-         1                 48 return res
-
-***TER 100 % (  2/  2) of FUNCTION main()
------------------------------------------------------------------------------
-
-         1          1      52 FUNCTION TestMpSongData::TestMpSongData()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::TestMpSongData()
------------------------------------------------------------------------------
-
-         1          1      59 FUNCTION TestMpSongData::~TestMpSongData()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::~TestMpSongData()
------------------------------------------------------------------------------
-
-         1          1      67 FUNCTION TestMpSongData::initTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::initTestCase()
------------------------------------------------------------------------------
-
-         1          1      75 FUNCTION TestMpSongData::cleanupTestCase()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::cleanupTestCase()
------------------------------------------------------------------------------
-
-        33         33      83 FUNCTION TestMpSongData::init()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::init()
------------------------------------------------------------------------------
-
-        34         34      91 FUNCTION TestMpSongData::cleanup()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::cleanup()
------------------------------------------------------------------------------
-
-         1          1     100 FUNCTION TestMpSongData::testMemberCleanup()
-                          106 do
-         0          1 -   106   if (! QTest::qCompare ( ThumbnailManager::ge..
-         0            -   106     return
-                          106 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testMemberCleanup()
------------------------------------------------------------------------------
-
-         1          1     112 FUNCTION TestMpSongData::testAlbumArtIsNull()
-                          116 do
-         0          1 -   116   if (! QTest::qVerify ( ( dummyAlbumArt . isN..
-         0            -   116     return
-                          116 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testAlbumArtIsNull()
------------------------------------------------------------------------------
-
-         1          1     123 FUNCTION TestMpSongData::testAlbumArtNotNull()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::testAlbumArtNotNull()
------------------------------------------------------------------------------
-
-         1          1     133 FUNCTION TestMpSongData::testTitleIsNull()
-                          135 do
-         0          1 -   135   if (! QTest::qVerify ( ( mTest -> mTitle . i..
-         0            -   135     return
-                          135 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testTitleIsNull()
------------------------------------------------------------------------------
-
-         1          1     141 FUNCTION TestMpSongData::testAlbumIsNull()
-                          143 do
-         0          1 -   143   if (! QTest::qVerify ( ( mTest -> mAlbum . i..
-         0            -   143     return
-                          143 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testAlbumIsNull()
------------------------------------------------------------------------------
-
-         1          1     149 FUNCTION TestMpSongData::testArtistIsNull()
-                          151 do
-         0          1 -   151   if (! QTest::qVerify ( ( mTest -> mArtist . ..
-         0            -   151     return
-                          151 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testArtistIsNull()
------------------------------------------------------------------------------
-
-         1          1     157 FUNCTION TestMpSongData::testCommentIsNull()
-                          159 do
-         0          1 -   159   if (! QTest::qVerify ( ( mTest -> mComment ...
-         0            -   159     return
-                          159 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testCommentIsNull()
------------------------------------------------------------------------------
-
-         1          1     165 FUNCTION TestMpSongData::testComposerIsNull()
-                          167 do
-         0          1 -   167   if (! QTest::qVerify ( ( mTest -> mComposer ..
-         0            -   167     return
-                          167 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testComposerIsNull()
------------------------------------------------------------------------------
-
-         1          1     173 FUNCTION TestMpSongData::testGenreIsNull()
-                          175 do
-         0          1 -   175   if (! QTest::qVerify ( ( mTest -> mGenre . i..
-         0            -   175     return
-                          175 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testGenreIsNull()
------------------------------------------------------------------------------
-
-         1          1     182 FUNCTION TestMpSongData::testAlbumtrackIsNull()
-                          184 do
-         0          1 -   184   if (! QTest::qVerify ( ( mTest -> mAlbumTrac..
-         0            -   184     return
-                          184 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testAlbumtrackIsNull()
------------------------------------------------------------------------------
-
-         1          1     190 FUNCTION TestMpSongData::testLinkIsNull()
-                          192 do
-         0          1 -   192   if (! QTest::qVerify ( ( mTest -> mLink . is..
-         0            -   192     return
-                          192 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testLinkIsNull()
------------------------------------------------------------------------------
-
-         1          1     198 FUNCTION TestMpSongData::testYearIsNull()
-                          200 do
-         0          1 -   200   if (! QTest::qVerify ( ( mTest -> mYear . is..
-         0            -   200     return
-                          200 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testYearIsNull()
------------------------------------------------------------------------------
-
-         1          1     206 FUNCTION TestMpSongData::testSetTitleTrue()
-                          211 do
-         0          1 -   211   if (! QTest::qCompare ( result , true , "res..
-         0            -   211     return
-                          211 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testSetTitleTrue()
------------------------------------------------------------------------------
-
-         1          1     218 FUNCTION TestMpSongData::testSetTitleFalse()
-                          223 do
-         0          1 -   223   if (! QTest::qCompare ( result , false , "re..
-         0            -   223     return
-                          223 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testSetTitleFalse()
------------------------------------------------------------------------------
-
-         1          1     229 FUNCTION TestMpSongData::testsetAlbumTrue()
-                          234 do
-         0          1 -   234   if (! QTest::qCompare ( result , true , "res..
-         0            -   234     return
-                          234 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetAlbumTrue()
------------------------------------------------------------------------------
-
-         1          1     241 FUNCTION TestMpSongData::testsetAlbumFalse()
-                          246 do
-         0          1 -   246   if (! QTest::qCompare ( result , false , "re..
-         0            -   246     return
-                          246 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetAlbumFalse()
------------------------------------------------------------------------------
-
-         1          1     253 FUNCTION TestMpSongData::testsetArtistTrue()
-                          258 do
-         0          1 -   258   if (! QTest::qCompare ( result , true , "res..
-         0            -   258     return
-                          258 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetArtistTrue()
------------------------------------------------------------------------------
-
-         1          1     265 FUNCTION TestMpSongData::testsetArtistFalse()
-                          270 do
-         0          1 -   270   if (! QTest::qCompare ( result , false , "re..
-         0            -   270     return
-                          270 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetArtistFalse()
------------------------------------------------------------------------------
-
-         1          1     276 FUNCTION TestMpSongData::testsetCommentTrue()
-                          281 do
-         0          1 -   281   if (! QTest::qCompare ( result , true , "res..
-         0            -   281     return
-                          281 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetCommentTrue()
------------------------------------------------------------------------------
-
-         1          1     288 FUNCTION TestMpSongData::testsetCommentFalse()
-                          293 do
-         0          1 -   293   if (! QTest::qCompare ( result , false , "re..
-         0            -   293     return
-                          293 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetCommentFalse()
------------------------------------------------------------------------------
-
-         1          1     299 FUNCTION TestMpSongData::testsetComposerTrue()
-                          304 do
-         0          1 -   304   if (! QTest::qCompare ( result , true , "res..
-         0            -   304     return
-                          304 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetComposerTrue()
------------------------------------------------------------------------------
-
-         1          1     311 FUNCTION TestMpSongData::testsetComposerFalse()
-                          316 do
-         0          1 -   316   if (! QTest::qCompare ( result , false , "re..
-         0            -   316     return
-                          316 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetComposerFalse()
------------------------------------------------------------------------------
-
-         1          1     322 FUNCTION TestMpSongData::testsetGenreTrue()
-                          327 do
-         0          1 -   327   if (! QTest::qCompare ( result , true , "res..
-         0            -   327     return
-                          327 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetGenreTrue()
------------------------------------------------------------------------------
-
-         1          1     334 FUNCTION TestMpSongData::testsetGenreFalse()
-                          339 do
-         0          1 -   339   if (! QTest::qCompare ( result , false , "re..
-         0            -   339     return
-                          339 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetGenreFalse()
------------------------------------------------------------------------------
-
-         1          1     345 FUNCTION TestMpSongData::testsetYearTrue()
-                          350 do
-         0          1 -   350   if (! QTest::qCompare ( result , true , "res..
-         0            -   350     return
-                          350 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetYearTrue()
------------------------------------------------------------------------------
-
-         1          1     357 FUNCTION TestMpSongData::testsetYearFalse()
-
-***TER 100 % (  1/  1) of FUNCTION TestMpSongData::testsetYearFalse()
------------------------------------------------------------------------------
-
-         1          1     371 FUNCTION TestMpSongData::testsetAlbumTrackTrue()
-                          376 do
-         0          1 -   376   if (! QTest::qCompare ( result , true , "res..
-         0            -   376     return
-                          376 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetAlbumTrackTrue()
------------------------------------------------------------------------------
-
-         1          1     383 FUNCTION TestMpSongData::testsetAlbumTrackFalse()
-                          388 do
-         0          1 -   388   if (! QTest::qCompare ( result , false , "re..
-         0            -   388     return
-                          388 while ( 0 )
-
-***TER  50 % (  2/  4) of FUNCTION TestMpSongData::testsetAlbumTrackFalse()
------------------------------------------------------------------------------
-
-         1          1     394 FUNCTION TestMpSongData::testsetAlbumArtUri()
-                          401 do
-         0          1 -   401   if (! QTest::qVerify ( ( spy . isValid ( ) )..
-         0            -   401     return
-                          401 while ( 0 )
-                          402 do
-         0          1 -   402   if (! QTest::qCompare ( spy . count ( ) , 0 ..
-         0            -   402     return
-                          402 while ( 0 )
-                          405 do
-         0          1 -   405   if (! QTest::qCompare ( spy . count ( ) , 0 ..
-         0            -   405     return
-                          405 while ( 0 )
-                          409 do
-         0          1 -   409   if (! QTest::qCompare ( spy . count ( ) , 1 ..
-         0            -   409     return
-                          409 while ( 0 )
-                          410 do
-         0          1 -   410   if (! QTest::qCompare ( mTest -> mAlbumArt ,..
-         0            -   410     return
-                          410 while ( 0 )
-                          413 do
-         0          1 -   413   if (! QTest::qCompare ( spy . count ( ) , 2 ..
-         0            -   413     return
-                          413 while ( 0 )
-                          414 do
-         0          1 -   414   if (! QTest::qCompare ( mTest -> mAlbumArt ,..
-         0            -   414     return
-                          414 while ( 0 )
-
-***TER  36 % (  8/ 22) of FUNCTION TestMpSongData::testsetAlbumArtUri()
------------------------------------------------------------------------------
-
-         1          1     421 FUNCTION TestMpSongData::testThumbnailReady()
-                          427 do
-         0          1 -   427   if (! QTest::qVerify ( ( spy . isValid ( ) )..
-         0            -   427     return
-                          427 while ( 0 )
-                          428 do
-         0          1 -   428   if (! QTest::qCompare ( spy . count ( ) , 0 ..
-         0            -   428     return
-                          428 while ( 0 )
-                          433 do
-         0          1 -   433   if (! QTest::qCompare ( spy . count ( ) , 1 ..
-         0            -   433     return
-                          433 while ( 0 )
-                          434 do
-         0          1 -   434   if (! QTest::qCompare ( mTest -> mAlbumArt ,..
-         0            -   434     return
-                          434 while ( 0 )
-                          437 do
-         0          1 -   437   if (! QTest::qCompare ( spy . count ( ) , 2 ..
-         0            -   437     return
-                          437 while ( 0 )
-                          438 do
-         0          1 -   438   if (! QTest::qCompare ( mTest -> mAlbumArt ,..
-         0            -   438     return
-                          438 while ( 0 )
-
-***TER  37 % (  7/ 19) of FUNCTION TestMpSongData::testThumbnailReady()
------------------------------------------------------------------------------
-
-         1          1     446 FUNCTION TestMpSongData::testCommitPlaybackInfo()
-                          450 do
-         0          1 -   450   if (! QTest::qVerify ( ( spy . isValid ( ) )..
-         0            -   450     return
-                          450 while ( 0 )
-                          451 do
-         0          1 -   451   if (! QTest::qCompare ( spy . count ( ) , 0 ..
-         0            -   451     return
-                          451 while ( 0 )
-                          454 do
-         0          1 -   454   if (! QTest::qCompare ( spy . count ( ) , 1 ..
-         0            -   454     return
-                          454 while ( 0 )
-
-***TER  40 % (  4/ 10) of FUNCTION TestMpSongData::testCommitPlaybackInfo()
------------------------------------------------------------------------------
-
-         1          1     461 FUNCTION TestMpSongData::testCommitSongDetailInfo()
-                          465 do
-         0          1 -   465   if (! QTest::qVerify ( ( spy . isValid ( ) )..
-         0            -   465     return
-                          465 while ( 0 )
-                          466 do
-         0          1 -   466   if (! QTest::qCompare ( spy . count ( ) , 0 ..
-         0            -   466     return
-                          466 while ( 0 )
-                          469 do
-         0          1 -   469   if (! QTest::qCompare ( spy . count ( ) , 1 ..
-         0            -   469     return
-                          469 while ( 0 )
-
-***TER  40 % (  4/ 10) of FUNCTION TestMpSongData::testCommitSongDetailInfo()
------------------------------------------------------------------------------
-
-
-***TER  49 % ( 85/175) of SOURCE FILE Z:/musicplayer/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp
------------------------------------------------------------------------------
-
-
-
-
-
-SUMMARY
-=======
-
-Number of monitored source files  : 6
-Number of source lines            : 1408
-Number of measurement points      : 556
-TER                               : 55% (decision)
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/sis.bat	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-@rem
-@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-del *.sisx
-makesis UT_mpsongdata.pkg
-signsis UT_mpsongdata.sis UT_mpsongdata.sisx ..\RndCerts\Nokia_RnDCert_02.der ..\RndCerts\Nokia_RnDCert_02.key
-del     UT_mpsongdata.sis
\ No newline at end of file
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,471 +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: Unit test for mpsongdata
-*
-*/
-#include <QSignalSpy>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbicon.h>
-
-#include"unittest_mpsongdata.h"
-#include "stub/inc/thumbnailmanager_qt.h"
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpsongdata.h"
-#undef private
-
-
-/*!
- Make our test case a stand-alone executable that runs all the test functions.
- */
-int main(int argc, char *argv[])
-{
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
-    TestMpSongData tv;
-
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_testmpsongdata.txt";
-
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
-}
-
-//Constructor
-TestMpSongData::TestMpSongData()
-    : mTest(0)
-{
-
-}
-
-//Destructor
-TestMpSongData::~TestMpSongData()
-{
-    delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpSongData::initTestCase()
-{
-    
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpSongData::cleanupTestCase()
-{
-
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpSongData::init()
-{
-    mTest = new MpSongData();
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpSongData::cleanup()
-{
-    delete mTest;
-    mTest = 0;
-}
-
-/*!
- Tests correct cleanup of member variables.
- */
-void TestMpSongData::testMemberCleanup()
-{
-    cleanup();
-    ThumbnailManager::resetInitCounter();
-    init();
-    cleanup();
-    QCOMPARE(ThumbnailManager::getInitCounter(), 0);
-}
-
-/*!
- Tests that albumArt() returns NULL
- */
-void TestMpSongData::testAlbumArtIsNull()
-    {
-    QPixmap dummyAlbumArt;
-    mTest->albumArt(dummyAlbumArt);
-    QVERIFY(dummyAlbumArt.isNull() == true); // TODO: Hkn: What's the point of this ?
-    }
-
-/*!
- Tests that albumArt() returns correct QPixmap when not NULL.
- */
-
-void TestMpSongData::testAlbumArtNotNull()
-    {
-    QPixmap dummyAlbumArt;
-    mTest->mAlbumArt = QPixmap( ":/playbackviewicons/someAlbumArt.png" );
-    mTest->albumArt(dummyAlbumArt);
-    }
-
-/*!
- Tests that title() returns NULL
- */
-void TestMpSongData::testTitleIsNull()
-    {
-     QVERIFY(mTest->mTitle.isNull() == true);
-    }
-
-/*!
- Tests that album() returns NULL
- */
-void TestMpSongData::testAlbumIsNull()
-    {
-     QVERIFY(mTest->mAlbum.isNull() == true);
-    }
-
-/*!
- Tests that artist() returns NULL
- */
-void TestMpSongData::testArtistIsNull()
-    {
-     QVERIFY(mTest->mArtist.isNull() == true);
-    }
-
-/*!
- Tests that comment() returns NULL
- */
-void TestMpSongData::testCommentIsNull()
-    {
-     QVERIFY(mTest->mComment.isNull() == true);
-    }
-
-/*!
- Tests that composer() returns NULL
- */
-void TestMpSongData::testComposerIsNull()
-    {
-     QVERIFY(mTest->mComposer.isNull() == true);
-    }
-
-/*!
- Tests that genre() returns NULL
- */
-void TestMpSongData::testGenreIsNull()
-    {
-     QVERIFY(mTest->mGenre.isNull() == true);
-    }
-
-
-/*!
- Tests that albumTrack() returns NULL
- */
-void TestMpSongData::testAlbumtrackIsNull()
-    {
-     QVERIFY(mTest->mAlbumTrack.isNull() == true);
-    }
-
-/*!
- Tests that link() returns NULL
- */
-void TestMpSongData::testLinkIsNull()
-    {
-     QVERIFY(mTest->mLink.isNull() == true);
-    }
-
-/*!
- Tests that year() returns NULL
- */
-void TestMpSongData::testYearIsNull()
-    {
-     QVERIFY(mTest->mYear.isNull() == true);
-    }
-
-/*!
- Tests that setTitle() returns TRUE
- */
-void TestMpSongData::testSetTitleTrue()
-    {
-    bool result;
-    QString title("SomeTitle");
-    result=mTest->setTitle( title );
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setTitle() returns FALSE
- */
-void TestMpSongData::testSetTitleFalse()
-    {
-    bool result;
-    QString title(NULL);
-    result=mTest->setTitle( title );
-    QCOMPARE(result, false);
-    }
-
-/*!
- Tests that setAlbum() returns TRUE
- */
-void TestMpSongData::testsetAlbumTrue()
-    {
-    bool result;
-    QString album("Some");
-    result=mTest->setAlbum(album);
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setAlbum() returns FALSE
- */
-void TestMpSongData::testsetAlbumFalse()
-    {
-    bool result;
-    QString album(NULL);
-    result=mTest->setAlbum( album );
-    QCOMPARE(result, false);
-    }
-
-
-/*!
- Tests that setArtist() returns TRUE
- */
-void TestMpSongData::testsetArtistTrue()
-    {
-    bool result;
-    QString artist("SomeArtist");
-    result=mTest->setArtist( artist );
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setArtist() returns FALSE
- */
-void TestMpSongData::testsetArtistFalse()
-    {
-    bool result;
-    QString artist(NULL);
-    result=mTest->setArtist( artist );
-    QCOMPARE(result, false);
-    }
-
-/*!
- Tests that setComment() returns TRUE
- */
-void TestMpSongData::testsetCommentTrue()
-    {
-    bool result;
-    QString comment("SomeComment");
-    result=mTest->setComment(comment);
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setComment() returns FALSE
- */
-void TestMpSongData::testsetCommentFalse()
-    {
-    bool result;
-    QString comment(NULL);
-    result=mTest->setComment(comment);
-    QCOMPARE(result, false);
-    }
-
-/*!
- Tests that setComposer() returns TRUE
- */
-void TestMpSongData::testsetComposerTrue()
-    {
-    bool result;
-    QString composer("SomeComposer");
-    result=mTest->setComposer(composer);
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setComposer() returns FALSE
- */
-void TestMpSongData::testsetComposerFalse()
-    {
-    bool result;
-    QString composer(NULL);
-    result=mTest->setComposer( composer );
-    QCOMPARE(result, false);
-    }
-
-/*!
- Tests that setGenre() returns TRUE
- */
-void TestMpSongData::testsetGenreTrue()
-    {
-    bool result;
-    QString genre("SomeGenre");
-    result=mTest->setGenre(genre);
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setGenre() returns FALSE
- */
-void TestMpSongData::testsetGenreFalse()
-    {
-    bool result;
-    QString genre(NULL);
-    result=mTest->setGenre( genre );
-    QCOMPARE(result, false);
-    }
-
-/*!
- Tests that setYear() returns TRUE
- */
-void TestMpSongData::testsetYearTrue()
-    {
-    bool result;
-    int year = 2010;
-    result=mTest->setYear(year);
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setYear() returns FALSE
- */
-void TestMpSongData::testsetYearFalse()
-    {
-    /*    
-    TODO: Fix this
-    bool result;
-    int year(0);
-    result=mTest->setYear( year );
-    QCOMPARE(result, false);
-    */
-    }
-
-/*!
- Tests that setAlbumTrack() returns TRUE
- */
-void TestMpSongData::testsetAlbumTrackTrue()
-    {
-    bool result;
-    QString albumTrack("SomeAlbumTrack");
-    result=mTest->setAlbumTrack(albumTrack);
-    QCOMPARE(result, true);
-     
-    }
-
-/*!
- Tests that setAlbumTrack() returns FALSE
- */
-void TestMpSongData::testsetAlbumTrackFalse()
-    {
-    bool result;
-    QString albumTrack(NULL);
-    result=mTest->setAlbumTrack( albumTrack );
-    QCOMPARE(result, false);
-    }
-
-/*!
- Tests setAlbumArtUri() 
- */
-void TestMpSongData::testsetAlbumArtUri() 
-    {
-    const QString albumArtUri("AlbumArt");
-    const QString albumArtUriEmpty("");
-    
-    QSignalSpy spy( mTest, SIGNAL( albumArtReady() ) );
-    
-    QVERIFY( spy.isValid() );
-    QCOMPARE( spy.count(), 0 );
-    
-    mTest->setAlbumArtUri(albumArtUri);
-    QCOMPARE( spy.count(), 0 );
-    
-    mTest->mThumbnailManager->mGetThumbFails=true;
-    mTest->setAlbumArtUri(albumArtUri);
-    QCOMPARE( spy.count(), 1 );
-    QCOMPARE(mTest->mAlbumArt, mTest->mDefaultAlbumArt);
-    
-    mTest->setAlbumArtUri(albumArtUriEmpty);
-    QCOMPARE( spy.count(), 2 );
-    QCOMPARE(mTest->mAlbumArt, mTest->mDefaultAlbumArt);
-    
-    }
-
-/*!
- Tests thumbnailReady()() 
- */
-void TestMpSongData::testThumbnailReady()
-{
-   connect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
-           mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );    
-
-   QSignalSpy spy(mTest, SIGNAL(albumArtReady()));
-   QVERIFY( spy.isValid() );
-   QCOMPARE( spy.count(), 0 );
-   
-   QPixmap dummyAlbumArt(":/playbackviewicons/someAlbumArt.png" );
-   
-   emit thumbnailReady(dummyAlbumArt, 0, -1, 0);
-   QCOMPARE( spy.count(), 1 );
-   QCOMPARE( mTest->mAlbumArt, dummyAlbumArt );
-   
-   emit thumbnailReady(dummyAlbumArt, 0, -1 , 1);
-   QCOMPARE( spy.count(), 2 );
-   QCOMPARE( mTest->mAlbumArt, mTest->mDefaultAlbumArt );
-   
-}
-
-
-/*!
- Tests commitPlaybackInfo() 
- */
-void TestMpSongData::testCommitPlaybackInfo() 
-    {
-    QSignalSpy spy( mTest, SIGNAL( playbackInfoChanged() ) );
-    
-    QVERIFY( spy.isValid() );
-    QCOMPARE( spy.count(), 0 );
-    
-    mTest->commitPlaybackInfo();
-    QCOMPARE( spy.count(), 1 );
-    
-    }
-
-/*!
- Tests commitSongDetailInfo() 
- */
-void TestMpSongData::testCommitSongDetailInfo() 
-    {
-    QSignalSpy spy( mTest, SIGNAL( songDetailInfoChanged() ) );
-    
-    QVERIFY( spy.isValid() );
-    QCOMPARE( spy.count(), 0 );
-    
-    mTest->commitSongDetailInfo();
-    QCOMPARE( spy.count(), 1 );
-    
-    }
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +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: ThumbnailManager stub for testing MpSongData
-*
-*/
-
-#ifndef THUMBNAILMANAGER_QT_H_
-#define THUMBNAILMANAGER_QT_H_
-#include <qobject>
-#include <QPixmap.h>
-
-
-/** default priority value */
-const int tnmWrapperPriorityIdle = -100;
-
-class ThumbnailManager : public QObject
-    {
-    Q_OBJECT
-
-public:
-
-
-    /** Thumbnail size. */
-    enum ThumbnailSize
-    {
-        /**
-         * Small thumbnail
-         */
-        ThumbnailSmall = 0,
-        /**
-         * Medium thumbnail
-         */
-        ThumbnailMedium,
-        /**
-         * Large thumbnail
-         */
-        ThumbnailLarge
-    };
-
-    /** Mode of thumbnail creation. */
-    enum ThumbnailMode
-        {
-        /**
-         * Default mode. This means that:
-         * - Thumbnail must be as large as requested (unless the actual object is smaller).
-         * - Smaller thumbnails may be up scaled to desired resolution.
-         * - Aspect ratio is maintained and thumbnails are not cropped. The
-         *   resulting thumbnail may smaller in either width or height if
-         *   the aspect ratio of the object does not match the aspect ratio
-         *   of the requested size.
-         */
-        Default = 0,
-
-        /**
-         * Allow thumbnails which are smaller than requested are. Thumbnail
-         * bitmaps are never up scaled if this flag is set.
-         */
-        AllowAnySize = 1,
-
-        /**
-         * New thumbnail images are not created if this flag is set. Only
-         * existing thumbnails may be returned. If a requested thumbnail does
-         * not exist null pixmap will be returned.
-         */
-        DoNotCreate = 2,
-
-        /**
-         * Thumbnail images are cropped to match requested aspect ratio. If
-         * this mode is set, the size of the resulting thumbnail always
-         * matches the requested size.
-         */
-        CropToAspectRatio = 4
-    };
-
-    /**  Quality versus speed preference setting */
-    enum QualityPreference
-    {
-        /**
-         * Prefer thumbnails in the highest quality possible disregarding
-         * any negative impact on performance.
-         */
-        OptimizeForQuality,
-
-        /**
-         * Get thumbnails as fast as possible, even if
-         * it means lower quality.
-         */
-        OptimizeForPerformance
-    };
-
-    // Test utility functions
-    static int getInitCounter();
-    static void resetInitCounter();
-
-    // Stub functions
-    ThumbnailManager( QObject* parentPtr = NULL );
-    virtual ~ThumbnailManager();
-    bool setMode( ThumbnailMode mode );
-    bool setQualityPreference( QualityPreference qualityPreference );
-    bool setThumbnailSize( ThumbnailSize thumbnailSize );
-    int getThumbnail( const QString& fileName, void * clientData = NULL,
-            int priority = tnmWrapperPriorityIdle );
-    bool cancelRequest( int id );
-
-signals:
-
-    void thumbnailReady( QPixmap , void * , int , int );
-
-public:
-
-    bool    mGetThumbFails;
-    int     mThumbnailReqCounter;
-    int     mCancelCounter;
-
-};
-
-#endif /* THUMBNAILMANAGER_QT_H_ */
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +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: ThumbnailManager stub for testing MpSongData
-*
-*/
-#include <qsize.h>
-#include "stub/inc/thumbnailmanager_qt.h"
-
-int gInitCounter = 0;
-
-/*!
- Returns gInitCounter.
- gInitCounter counts the number of constructor/destructor calls.
- */
-int ThumbnailManager::getInitCounter()
-{
-    return gInitCounter;
-}
-
-/*!
- Resets gInitCounter to zero.
- */
-void ThumbnailManager::resetInitCounter()
-{
-    gInitCounter = 0;
-}
-
-/*!
- Stub function.
- */
-ThumbnailManager::ThumbnailManager( QObject* parentPtr ) :
-QObject( parentPtr ),
-mGetThumbFails(false),
-mThumbnailReqCounter(0),
-mCancelCounter(0)
-{
-    gInitCounter++;
-}
-
-/*!
- Stub function.
- */
-ThumbnailManager::~ThumbnailManager()
-{
-    gInitCounter--;
-}
-
-/*!
- Stub function.
- */
-bool ThumbnailManager::setMode( ThumbnailMode mode )
-{
-    Q_UNUSED(mode);
-    return true;
-}
-
-/*!
- Stub function.
- */
-bool ThumbnailManager::setQualityPreference( QualityPreference
-    qualityPreference )
-{
-    Q_UNUSED(qualityPreference);
-    return true;
-}
-
-/*!
- Stub function.
- */
-bool ThumbnailManager::setThumbnailSize( ThumbnailSize thumbnailSize )
-{
-    Q_UNUSED(thumbnailSize);
-    return true;
-}
-
-/*!
- Stub function.
- */
-int ThumbnailManager::getThumbnail( const QString& fileName, void *clientData,
-        int priority )
-{
-    Q_UNUSED(fileName);
-    Q_UNUSED(priority);
-
-    if (clientData) {
-        // Delete this to prevent memory leak
-        int *data = (int *)clientData;
-        delete data;
-
-        data = 0;
-    }
-
-    if ( mGetThumbFails ) {
-        return -1;
-    }
-
-    mThumbnailReqCounter++;
-    return mThumbnailReqCounter;
-}
-
-/*!
- Stub function.
- */
-bool ThumbnailManager::cancelRequest( int id )
-{
-    Q_UNUSED(id);
-    mCancelCounter++;
-    return true;
-}
--- a/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/unittest_mpsongdata.pro	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-######################################################################
-# Automatically generated by qmake (2.01a) Wed 24. Feb 13:13:29 2010
-######################################################################
-
-TEMPLATE = app
-CONFIG += qtestlib hb
-
-TARGET = 
-DEPENDPATH += . 
-INCLUDEPATH += ./stub/inc \
-    ../../inc \
-    ../../../../inc
-
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
-
-LIBS += -lmpxviewframeworkqt.dll
-
-# Input
-HEADERS += inc/unittest_mpsongdata.h \
-	   ../../inc/mpsongdata.h \
-	   stub/inc/thumbnailmanager_qt.h 
-	   
-SOURCES += src/unittest_mpsongdata.cpp \
-	   ../../src/mpsongdata.cpp \
-	   stub/src/thumbnailmanager_qt.cpp
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_resources/JsTestDriver-1.2.1.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_resources/JsTestDriver.conf	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,9 @@
+server: http://localhost:12121
+
+load:
+  - ../../resources/*.js
+  - test-src/oviapi.js
+  - test-src/publishplayer.js
+  - test-src/musictest.js
+
+exclude: 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_resources/readme.txt	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,9 @@
+This is the unit test for javascript in resource folder.
+
+The test could only run on windows, NOT on phone!
+
+To execute the test, first run this command in command window to start the server:
+java.exe -jar JsTestDriver-1.2.1.jar --port 12121  --browser "C:\Program Files\Mozilla Firefox\firefox.exe"
+
+Then run this command to run the tests:
+java.exe -jar JsTestDriver-1.2.1.jar --config jsTestDriver.conf --verbose --tests all --captureConsole
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_resources/test-src/MusicTest.js	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,49 @@
+MusicTest = TestCase('MusicTest');
+
+MusicTest.prototype.testMusicContext = function() {
+    var context = music.privateFunctions.getMusicContext();
+	assertTrue(context.object.data.miniview.indexOf("London Calling") != -1);
+	assertTrue(context.object.data.miniview.indexOf("The Clash") != -1);
+};
+
+MusicTest.prototype.testNoa = function() {
+    var context = music.privateFunctions.getNoa();
+    assertTrue(context.username.indexOf("lcoubert10") != -1);
+    assertTrue(context.password.indexOf("lcoubert01") != -1);
+};
+
+MusicTest.prototype.testInitPlayer = function() {
+//    document.createElement('div').setAttribute("id", "ovi.player.share.ui");
+    /*:DOC += <div id="ovi.player.share.ui"></div>*/
+    music.initPlayer();
+	var ui = document.getElementById("ovi.player.share.ui");
+    assertTrue(ui.innerHTML.indexOf('player') >= 0);
+};
+
+MusicTest.prototype.setUp = function() {
+    window.context = {
+        username: function(){
+            return "lcoubert10"
+        },
+        password: function(){
+            return "lcoubert01"
+        },
+        title: function(){
+            return "London Calling"
+        },
+        album: function(){
+            return "dummyuri"
+        },
+        artist: function(){
+            return "The Clash"
+        },
+        link: function(){
+            return "http://music.ovi.com/ru/ru/pc/Product/Queen/Bohemian-Rhapsody/8019069"
+        },
+        albumArtBase64: function(){return 0;}
+    }
+};
+
+MusicTest.prototype.tearDown = function() { };
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_resources/test-src/oviapi.js	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,408 @@
+// The following identifier turns the IE conditional pre-compilation on.
+/*@cc_on @*/
+
+/**
+ * @namespace Parent namespace for the api.ovi.com project.
+ */
+if (typeof ovi == 'undefined') {
+    ovi = {};
+};
+
+(function (ovi) {
+// ovi = function() {
+    var that = {};
+    
+    ovi.description = {
+            proxy_url: window.location.protocol + "//" + window.location.host + "/ovi-api",
+            sourceLocation: "/js",
+            urlSeperator: "/",
+            libFileExtension: ".js",
+            minified: false,
+            sign_method : "method-delegate-oauth",
+            env_path : "/alpha",
+            dispatch_path : "/api",
+            proxy_prefix : "", //useful during dev, so same consumer key can be reused for multiple instances of ovi-api
+            request_timeout : 30, // Network request timeout lapse (in seconds).
+            caller_id : "", //random id used for caller authentication
+            env_device : true // Do not change anything in this line, even the spacing. Else the project won't build properly for SPB.
+    };
+    // that.description = description;
+    
+    //Ignore console calls, in case it is not imported
+    ovi.console = {init:function(){},log:function(){},error:function(){},debug:function(){},info:function(){}}; 
+
+    //Ignore config calls, in case config.js is not imported
+    ovi.config = {setenv:function(){},setServiceEndPoint:function(){}}; 
+
+    var _loaded = {}; //Mapping from script source URL to status (0 - not loaded, 1 - loaded)
+    var _libMappings = {}; //Mapping from script source URL to libName 
+    var _pending_callbacks = []; //Used to delay callbacks, until all dependencies are loaded 
+
+    /**
+     * Method to initialize source URL using location of path from where oviapi.js was loaded
+     * 
+     */
+    var _initSourceURL = function() {
+        var scripts = document.getElementsByTagName('script');
+        if (!scripts) return; // TODO Throw an exception instead.
+        
+        var srcFilePattern = new RegExp("/js/ovi/(oviapi|oviapi-min|oviapi_(.+)|oviapi_(.+)-min).js$", "gi");
+        for(var index = 0; index < scripts.length; index++) {
+            
+            var ssrc = scripts.item(index).src;
+            if (typeof ssrc !== 'undefined') {
+                ssrc = ssrc.replace(/^\s*|\s*$/g,''); // To remove any white spaces.
+                
+                var startIndex = ssrc.search(srcFilePattern);
+                if (startIndex > 0) {
+                    
+                    // To determine whether the minified version of ovi libraries are used.
+                    if (ssrc.indexOf("min") > 0) {
+                        ovi.description.minified = true;
+                    }
+                    
+                    // If only relative src can be accessed, then use window.location ro create sourceURL                    
+                    if (ssrc.substr(0,6) !== 'http:/' && ssrc.substr(0,7) !== 'https:/') {
+                        var rootdir = window.location.pathname.split('/');
+                        if (rootdir.length > 1) 
+                            ovi.description.proxy_url = window.location.protocol + "//" + window.location.host + "/" + rootdir[1];
+                        break;
+                    } else {
+                        ovi.description.proxy_url = ssrc.substring(0, startIndex);
+                        break;
+                    }
+                }
+            }
+        }
+    };
+    _initSourceURL();
+     
+    /**
+     * Get an array of the loaded libs 
+     * @param {Integer} Optional param to specify the status of the loaded library.
+     * @return Array of libNames
+     */
+    var _getLoadedLibNames = function(status){
+      var loadedLibs = [];  
+      if (typeof status === 'undefined') status = -1; 
+      for (var item in _loaded){
+          if ((status === -1) || (_loaded[item] === status)){
+              loadedLibs.push(_libMappings[item]);
+          }
+      }
+      return loadedLibs;
+    };
+    
+    /**
+     * Get an object with loaded lib name as key and load status as value (1 - loaded, 0 - not loaded) 
+     * @param {Integer} Optional param to specify the status of the loaded library.
+     * @return Object with libNames as key and load status as value
+     */
+    var _getLoadedLibNamesAsObject = function(status){
+        var loadedLibs = {};  
+        if (typeof status === 'undefined') status = -1; 
+        for (var item in _loaded){
+            if ((status === -1) || (_loaded[item] === status)){
+                loadedLibs[_libMappings[item]] = _loaded[item];
+            }
+        }
+        return loadedLibs;
+    };
+    
+    /**
+     * Test if script was already loaded
+     * @param {String} scriptSrcURL source URL of script
+     * @return {Boolean} 
+     */
+    var _isExistingScript = function(scriptSrcURL){
+        for (var item in _loaded){
+            if (scriptSrcURL === item){
+                return true;
+            }
+        }
+        return false;
+    };
+    
+    /**
+     * Method to verify if a library object has already been loaded. In case of packaged/minified 
+     * version of ovi libraries all the libraries would reside in one single JS file.
+     * 
+     * @param {String} libraryName Name of the library object to check.
+     * @return {Boolean} Based on whether the check is true/false. 
+     */
+    var _isExistingLib = function(libraryName) {
+        for (var lib in ovi.libName) {
+            if (libraryName == lib) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    var _determineScriptSrc = function(libName, options){
+        var fileName = libName;
+        var scriptSrcURL = ovi.description.proxy_url;
+        
+        // This helps while using this on a widget.
+        if (options != undefined && options.sourceURL != undefined) {
+            scriptSrcURL = options.sourceURL;
+        }
+        
+        var fileExt = "";
+        // If not using slash path, then use ".js" file extension and replace dot with slash.
+        if(fileName.indexOf('/') == -1){
+            fileExt = ovi.description.libFileExtension;
+            fileName = fileName.replace(/\./g,'/');
+        }
+        
+        var rootDir = "";
+        //If ovi package, then use source location as root dir
+        if (fileName.substr(0,3) === "ovi")
+            rootDir = ovi.description.sourceLocation;
+        
+        scriptSrcURL = scriptSrcURL + rootDir + "/" + fileName 
+                            + ((ovi.description.minified) ? "-min" : "") 
+                            + fileExt;
+        return scriptSrcURL;
+    };
+    
+    var _loadScript = function(scriptSrcURL, srcLib, options){
+        
+        function _loadedcallback(){
+            
+            //console.log(new Date().getTime()+" Loaded script:"+scriptSrcURL+" "+_getLoadedLibNames(1));
+            //console.log("not loaded:"+_getLoadedLibNames(0));
+            
+            //Mark script as loaded
+            _loaded[scriptSrcURL] = 1;
+            
+            //If callback exists, then add to pending callbacks
+            if (options && options.callback != null)
+                _pending_callbacks.push(options.callback);
+            
+            //If 1 or more items are pending, then don't call callbacks
+            var done = true;
+            for (var item in _loaded){
+                if (_loaded[item] === 0){
+                    done = false;
+                    break;
+                }
+            }
+
+            //If all libs are loaded, then call callbacks for all includes, if any
+            if (done == true){
+                //console.log(new Date().getTime()+" DONE AT LAST\n");
+                //Call all pending callbacks
+                for (var index = 0; index < _pending_callbacks.length; index++){
+                    try{
+                        _pending_callbacks[index].call();
+                    }catch(err){
+                        //console.log("failed to exec callback");
+                    }
+                }
+                _pending_callbacks = []; //Reset pending callbacks list
+                ovi.onReady(_getLoadedLibNamesAsObject(1)); //call onReady
+            }
+        }
+        
+        // If the library is already loaded (throug packaged/minified source file) then skip the download process.
+        if (!_isExistingLib(srcLib)) {
+            var scriptTag = document.createElement('script');
+            scriptTag.type = 'text/javascript';
+            scriptTag.src = scriptSrcURL; 
+            
+            if(window.opera){
+                scriptTag.onload = function(){
+                    scriptTag.onload = null;
+                    _loadedcallback();
+                };
+            }
+            //From Nicholas C. Zakas (http://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/)
+            else if (scriptTag.readyState){  //IE
+                scriptTag.onreadystatechange = function(){
+                    if (scriptTag.readyState == "loaded" || scriptTag.readyState == "complete"){
+                        scriptTag.onreadystatechange = null;
+                        _loadedcallback();
+                    }
+                };
+            } else {  //Others
+                scriptTag.onload = function(){
+                     _loadedcallback();
+                };
+            }
+            
+            var documentHead = document.getElementsByTagName("head")[0];
+            var newScriptTag = documentHead.appendChild(scriptTag);
+            if (newScriptTag) return true;
+        } else {
+            _loadedcallback();
+            return true;
+        }
+        return false;
+    };
+    
+    /**
+     * ovi.include - Method to dynamically include JS libraries from "api.ovi.com".<br/><br/>
+     * The ovi.onReady(libs) function is triggered once the library and its
+     * dependencies are loaded. See documentation of ovi.onReady.
+     * 
+     * @param {String,Array}
+     *            libNames Names of one or more libraries to be included, specified as an 
+     *            array of strings or as a comma separated string.
+     *            Library name can be specified in dot notation or as a relative path. <span
+     *            style="color:blue">e.g., "ovi.api.people",
+     *            "ovi/api/people.1.0.js".</span> External libraries must start
+     *            with "lib" <span style="color:blue">e.g., "lib.jquery",
+     *            "lib/jquery.json.js".</span>
+     * @param {Object}
+     *            options Name/Value object to hold other optional parameters.
+     * @param {Function}
+     *            options.callback Function to be called after a library has
+     *            been loaded.
+     * 
+     * @example 
+     *          ovi.include("ovi.api.maps");
+     *          ovi.include("ovi.api.people",{callback:function(){callMeBack()}}); 
+     *          ovi.include("ovi.api.people, ovi.api.share", {callback:function(){callMeBack()}});
+     *          
+     * 
+     * 
+     * @function
+     * @methodOf ovi
+     */
+    ovi.include = function(libNames, options) {
+        var importStatus = true;
+        try {
+            if (libNames != undefined) {
+                if (typeof libNames === 'string')
+                    libNames = libNames.split(',');
+                
+                // Determine which scripts (and also libraries) need to be loaded
+                var toLoadScript = [];
+                for (var index = 0; index < libNames.length; index++){
+                    var libName = libNames[index].replace(/^\s*|\s*$/g,''); // Remove any white spaces.
+                    
+                    // Determine script source URL from libName
+                    var scriptSrcURL = _determineScriptSrc(libName, options);
+                    if (!_isExistingScript(scriptSrcURL)) {
+                        _loaded[scriptSrcURL] = 0;  //Mark script as pending
+                        _libMappings[scriptSrcURL] = libName;
+                        toLoadScript.push(scriptSrcURL);
+                        
+                    } else {
+                        if (options && options.callback) 
+                            toLoadScript.push(scriptSrcURL);
+                    }
+                    //console.log("o================o");
+               }
+
+               var lstatus;
+               //Load scripts that need to be loaded. Pass optional callback only for last script (since callback should be called only once).
+               for (var index = 0; index < toLoadScript.length; index ++){
+                   if (index == (toLoadScript.length-1)) // if last lib, then pass optional callback
+                       lstatus = _loadScript(toLoadScript[index], _libMappings[toLoadScript[index]], options);
+                   else
+                       lstatus = _loadScript(toLoadScript[index], _libMappings[toLoadScript[index]]);
+                   if (!lstatus) importStatus = false; 
+               }
+            }
+        } catch (exception) {
+            importStatus = false;
+        }
+        return importStatus;
+    };
+    // that.include = include;
+  
+    /**
+     * ovi.onReady - Callback function triggered after calling ovi.include,
+     * once the library and its dependencies are loaded. Developers can override the default
+     * implementation, with their own ovi.onReady function. If successive calls to ovi.include are made,
+     * ovi.onReady may be triggered only once.
+     * 
+     * @param {Object}
+     *            libs - library name as key and load status as value (0 - not
+     *            loaded, 1 - loaded). Developer must check if the libraries
+     *            they need are loaded before using them using the ovi.testIfLoaded function.
+     * 
+     * @function
+     * @methodOf ovi
+     */
+    ovi.onReady = function(libs) {
+        //default, do nothing
+        //console.log("onReady:");
+        //console.log(libs);
+    };
+    // that.onReady = onReady;
+    
+    /**
+     * ovi.testIfLoaded - Utility function to test if the specified lib names are marked as loaded in the specified loaded libs object. 
+     *                    Used to test the status of libs in ovi.onReady. 
+     * 
+     * @param {String,Array}
+     *            libNames Names of one or more libraries to be included, specified as an 
+     *            array of strings or as a comma separated string.
+     * 
+     * @param {Object}
+     *            loadedLibs A mapping of lib name string to load status (0 - not loaded, 1 - loaded)
+     * 
+     * @return {Boolean}
+     * 
+     * @function
+     * @methodOf ovi
+     */
+    ovi.testIfLoaded = function(libNames, loadedLibs){
+        var reqdlibs = libNames;
+        if (typeof libNames === 'string')
+            reqdlibs = libNames.split(',');
+        for (var index = 0; index < reqdlibs.length; index ++){
+            var libName = reqdlibs[index].replace(/\s/g,'');
+            if ((libName in loadedLibs) && (loadedLibs[libName] == 1))
+                continue;
+            else
+                return false;
+        }
+        return true;
+    };
+    // that.testIfLoaded = testIfLoaded;
+    
+    /**
+     * ovi.setCallerId - Sets caller id required to authenticate API caller with Ovi API backend.
+     * 
+     * @param {String} 
+     *          cid - Caller id string
+     *          
+     * @function
+     * @methodOf ovi                   
+     */
+    ovi.setCallerId = function(cid){
+        ovi.description.caller_id = cid;
+    };
+    
+    // return that;
+// }();
+})(ovi);
+    
+
+/**
+ * @property {Object} services Object that holds configurable parameters of all the libraries.
+ * @memberOf ovi
+ */
+ovi.services = {};
+ovi.services["import"] = ovi.description;
+
+/**
+ * @property {Object} libName Object that holds the identified name of all the OVI API libraries.
+ * @memberOf ovi
+ */
+ovi.libName = {};
+ovi.libName["ovi.oviapi"] = ovi;
+
+ovi.include('ovi.config');
+
+/*
+@@todo:
+
+- if one include inside of another fails to load, then failure is silent
+- file imports will fail silently if the path is wrong
+- Safari reinclude doesn't work (seems that DOM removeChild doesn't really remove the script)
+*/
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_resources/test-src/publishplayer.js	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,1312 @@
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+ovi.player.contextobject = ovi.player.contextobject ||
+{};
+
+ovi.player.contextobject.getInstance = function(config) {
+    var player = {};
+    player._create = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "CREATE_PENDING");
+        }
+        // TODO: add context object to player store
+        // TODO: store options.miniview to be returned with view as HTML
+        // TODO: store other properties of options to be returned with view as JSON
+        // TODO: return uri (unique id in this player's store) in callback
+    };
+    player._cancel = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "CANCEL_PENDING");
+        }
+        // TODO: cancel pending tasks
+        // TODO: cancel Player
+    };
+    player._delete = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "DELETE_PENDING");
+        }
+        // TODO: delete object defined in options.uri from store
+    };
+    player._edit = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "EDIT_PENDING");
+        }
+        // TODO: update object defined in options.uri
+    };
+    player._pick = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "PICK_PENDING");
+        }
+        // TODO: return list of all objects, or object defined in options.uri, fork with options.view
+    };
+    player._view = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "VIEW_PENDING");
+        }
+        // TODO: return object defined in options.uri, JSON if options.view == "none", HTML if "mini"
+    };
+    ovi.player._getInstance.call(player, config);
+};
+
+ovi.player.contextobject.Player = ovi.player.contextobject.getInstance;
+/*
+ * Basic namespaces & common Player functions
+ */
+
+
+
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+
+
+
+/**
+ * A function for creating a callback chain
+ * @param {Object} options
+ * @param {Object} handler
+ * @param {Object} context
+ * @return {Function}
+ */
+ovi.player._notImplemented = function(functionId) {
+    return function() {
+        var status = ovi.player._status;
+        handler.call(context, status["NOT_IMPLEMENTED"], null);
+        handler.call(context, status[functionId + "_FAILURE"], null); // TODO: return description, too?
+    };
+};
+
+
+
+/**
+ * A method for returning an instance of a singleton
+ * @param {Object} options A configuration object for the player
+ */
+ovi.player._getInstance = function(options) {
+    // TODO: store the configuration options
+    return (function() {
+        return (this.instance ||
+        (function() {
+            this.instance = {
+                // Public interface
+                cancel: (this._cancel || ovi.player._notImplemented("CANCEL")),
+                create: (this._create || ovi.player._notImplemented("CREATE")),
+                "delete": (this._delete || ovi.player._notImplemented("DELETE")), // delete is a keyword
+                edit: (this._edit || ovi.player._notImplemented("EDIT")),
+                pick: (this._pick || ovi.player._notImplemented("PICK")),
+                show: (this._view || ovi.player._notImplemented("VIEW")), // show is the same function as view, included in API for compatibility
+                sync: (this._sync || ovi.player._notImplemented("SYNC")),
+                view: (this._view || ovi.player._notImplemented("VIEW"))
+            };
+            return this.instance;
+        }()));
+    }());
+};
+
+
+
+ovi.player._status = {
+    USER_CANCEL: "USER_CANCEL",
+    
+    CANCEL_PENDING: "CANCEL_PENDING",
+    CANCEL_FAILURE: "CANCEL_FAILURE",
+    CANCEL_SUCCESS: "CANCEL_SUCCESS",
+    
+    CREATE_PENDING: "CREATE_PENDING",
+    CREATE_FAILURE: "CREATE_FAILURE",
+    CREATE_SUCCESS: "CREATE_SUCCESS",
+    
+    DELETE_PENDING: "DELETE_PENDING",
+    DELETE_FAILURE: "DELETE_FAILURE",
+    DELETE_SUCCESS: "DELETE_SUCCESS",
+    
+    EDIT_PENDING: "EDIT_PENDING",
+    EDIT_FAILURE: "EDIT_FAILURE",
+    EDIT_SUCCESS: "EDIT_SUCCESS",
+    
+    PICK_PENDING: "PICK_PENDING",
+    PICK_FAILURE: "PICK_FAILURE",
+    PICK_SUCCESS: "PICK_SUCCESS",
+    
+    SYNC_PENDING: "SYNC_PENDING",
+    SYNC_FAILURE: "SYNC_FAILURE",
+    SYNC_SUCCESS: "SYNC_SUCCESS",
+    SYNC_CONNECT_PENDING: "SYNC_CONNECT_PENDING",
+    SYNC_CONNECT_FAILED: "SYNC_CONNECT_FAILED",
+    SYNC_CONNECT_SUCCEEDED: "SYNC_CONNECT_SUCCEEDED",
+    SYNC_LOGIN_PENDING: "SYNC_LOGIN_PENDING",
+    SYNC_LOGIN_FAILED: "SYNC_LOGIN_FAILED",
+    SYNC_LOGIN_SUCCEEDED: "SYNC_LOGIN_SUCCEEDED",
+    SYNC_UPDATE_PENDING: "SYNC_UPDATE_PENDING",
+    SYNC_UPDATE_FAILED: "SYNC_UPDATE_FAILED",
+    SYNC_UPDATE_SUCCEEDED: "SYNC_UPDATE_SUCCEEDED",
+    
+    VIEW_PENDING: "VIEW_PENDING",
+    VIEW_FAILURE: "VIEW_FAILURE",
+    VIEW_SUCCESS: "VIEW_SUCCESS",
+    
+    NOT_IMPLEMENTED: "NOT_IMPLEMENTED"
+};
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+ovi.player.publish = ovi.player.publish ||
+{};
+
+ovi.player.publish.getInstance = function(config) {
+    var player = {};
+    player._create = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "CREATE_PENDING");
+        }
+        // TODO: create UI
+        // TODO: get the sub-players, sync them
+    };
+    player._cancel = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "CANCEL_PENDING");
+        }
+        // TODO: cancel sub-players
+        // TODO: cancel pending tasks
+        // TODO: cancel Player
+    };
+    ovi.player._getInstance.call(player, config);
+};
+
+ovi.player.publish.Player = ovi.player.publish.getInstance;
+window["ovi"] = (window["ovi"] || {});
+ovi.player = (ovi.player || {});
+ovi.player.snc = (ovi.player.snc || {});
+ovi.player.snc.engine = (ovi.player.snc.engine || {});
+
+
+(function(){
+
+    var engine = ovi.player.snc.engine;
+	
+	
+	engine.status = {
+		SUCCESS : "SUCCESS",
+		FAILED : "FAILED",
+	}
+	
+	
+	var _callback = function(status, data, callback, context) {
+        if (typeof callback == "function") {
+            callback.call(context, status, data);
+        }
+	}
+    
+    // External functions	
+    
+    /**
+     * Publish the given object to the social networks.
+     * @param {Object} object Published data
+     * @param {String} object.text Free text
+     * @param {String} object.context.artist Artist name
+     * @param {String} object.context.title Song title
+     * @param {Array} object.networks Array of social networks ids where to publish
+     * @param {Object} [callback] Called when publish is ready.
+     * @param {Object} [context]
+     */
+    engine.publish = function(data, callback, context){
+        
+        // Just concatenate some status text from received data
+        var status = data.text;
+        
+		// Add attached objects (temporarily just append to end of text)
+        // TODO : object.type == "URI" ... etc., add as attachment when supported by SNC 		
+        if (typeof data.object != "undefined") {
+	         // Get URL to song before publishing and to status text
+            var link = data.object.content;
+            if (link.length > 0) {
+                status += " - " + link;
+            }
+        }
+		 
+        // Update to services 		
+        ovi.activities.updateStatus(status, {networkId: data.networks }, function(response){
+            
+			if (response.status == "success") {
+                _callback(engine.status.SUCCESS, null, callback, context);
+			}
+			else {
+				// TODO : Implement finer error handling
+				_callback(engine.status.FAILED, { message : "Status update failed" }, callback, context);
+			}										
+        });
+    }
+
+	/**
+	 * 
+	 * @param {Object} data
+	 * @param {Object} callback
+	 * @param {Object} context
+	 */
+    engine.cancelPublish = function(data, callback, context){
+		_callback(engine.status.SUCCESS, null, callback, context);
+    }
+    
+	
+	/**
+	 * Reload social networks from SNC backend to the local store. Use getServices() to retrieve the 
+	 * list of loaded services.
+	 * @param {Object} options Object containing Noa account information. Can be user, password or already
+	 * autheticated session token to be used. { username : "", password : "" } or { token : "" }
+	 * @param {Object} callback
+	 * @param {Object} context
+	 */
+    engine.sync = function(options, callback, context) {
+
+        // TODO : Seperate init and login from sync (we need both for publish also...)
+
+        // Do service didscovery
+		
+        // 1. Init APIs
+        requests.initOviApi(function(response){
+        
+		    if(response.status != engine.status.SUCCESS) {
+				_callback(engine.status.FAILED, response.data, callback, context);
+				return;
+			}
+		
+            // 2. Login noa     
+            requests.noaLogin(options, function(response){
+
+	            if(response.status != engine.status.SUCCESS) {
+	                _callback(engine.status.FAILED, { message: response.message }, callback, context);
+					return;
+	            }
+            
+                // 3. Service discover
+                requests.discover(function(response){
+
+                    // Store to player store
+					store.clear();
+					store.append(response.networks);
+					store.commit(); 
+					
+					// Callback function
+					if (response.status == engine.status.SUCCESS) {
+                        _callback(engine.status.OK, { networks: response.networks }, callback, context);	
+					}
+					else {
+						_callback(engine.status.FAILED, { message: response.message }, callback, context);
+					}					
+                });
+            });            
+        });
+    }		
+	
+	/**
+	 * Get list of services (social networks). Data is loaded from local 
+	 * player store. To synchronize data social networks from SNC call sync().
+	 */
+	engine.getServices = function() {
+		// Get list of services from store
+		return store.getList();
+	}
+	
+	/**
+	 * Mark service as selected / unselected. Saves the selection to the persistent 
+	 * local storage to save data over sessions.
+	 * @param {Object} id
+	 * @param {Object} enable
+	 */
+	engine.selectService = function(id, enable) {
+		// Select / unselect service in player store
+		store.select(id, enable);		
+	}
+		
+	// Player store	
+    var STORE_KEY_SERVICES = "ovi.player.snc.services";
+    var STORE_KEY_SELECTED = "ovi.player.snc.services.selected";	
+	
+	/**
+	 * Player store implementation. Persists the social networks (services) and selections 
+	 * to the HTML5 local storage, which provides over sessions caching.
+	 */
+	var store = {
+
+		_services : {},
+		_selected : {},
+				
+        /**
+         * Add new server or services to the store.
+         * @param {Object} service
+         */
+		append : function(service) {
+			if (service.length) {
+	            for(var i=0; i < service.length; i++) {
+	                var s = service[i];
+	                this._services[s.id] = s;      
+	            }
+			} else {
+				this._services[service.id] = service;
+			}
+		},
+		
+		/**
+		 * Mark service selected or unselected in the store. Also commits changes in 
+		 * selections to the store.
+		 * @param {Object} id
+		 * @param {Object} enable
+		 */
+		select : function(id, enable) {
+			this._selected[id] = enable;
+			localStorage.setItem(STORE_KEY_SELECTED, JSON.stringify(this._selected));
+		},
+		
+		/**
+		 * Clear services.
+		 */
+	    clear : function() {
+	   	    this._services = {};
+	    },
+		
+		/**
+		 * Get list (array) of services in the store.
+		 */
+		getList : function() {
+			// Convert to array
+			var res = [];
+			for(var o in this._services) {				
+				var serv = this._services[o];
+				serv.selected = typeof this._selected[o] != "undefined" ? this._selected[o] : false;
+				res.push(serv);
+			}			
+			return res;
+		},
+		
+		/**
+		 * Commit services to the store.
+		 */
+		commit : function() {
+			localStorage.setItem(STORE_KEY_SERVICES, JSON.stringify(this._services));
+		},
+		
+		/**
+		 * Retrieve services and selections in the store.
+		 */
+		load : function() {
+			this._services = JSON.parse(localStorage.getItem(STORE_KEY_SERVICES));
+			this._selected = JSON.parse(localStorage.getItem(STORE_KEY_SELECTED));
+
+			if (this._services == null) this._services = {};
+			if (this._selected == null) this._selected = {};			
+		}
+	}
+		
+	
+    // SNC Request implementation
+    var requests = {
+    
+        /**
+         *
+         * @param {Object} callback
+         */
+        initOviApi: function(callback){
+            var myincludes = "ovi.auth.noa_login, ovi.api.snc, ovi.api.activities, ovi.net.xss";
+            ovi.onReady = function(libs){
+                if (ovi.testIfLoaded(myincludes, libs)) {
+                
+                    // Successful, set environment for NCIM              
+                    ovi.config.setenv("st-account", "delegate");
+                    
+                    // Allow cross-domain scripting
+                    function xssInitCallback(data){
+                        if (data.event === "InitializeOk") {
+                            callback( { status : engine.status.SUCCESS });
+                        }
+                    }
+                    
+                    ovi.net.XssInit({
+                        back_url: "http://spb.ci.wipsl.com/ovi-api/js/ovi/net/",
+                        callback: xssInitCallback
+                    });
+                    
+                }
+            }
+            
+            ovi.include(myincludes);
+        },
+        
+        /**
+         *
+         * @param {Object} callback
+         */
+        noaLogin: function(options, callback){
+			
+			var noa = {};			
+			if (typeof options.token != "undefined") {   // This propably is not supported yet..
+				noa = { token : options.token };
+			}
+			else {
+				noa = { username : options.username, password : options.password };
+			}
+			
+			// Login
+            ovi.noa.login(noa, function(state){
+				            
+                // Callback
+                if (state.status == "success") {
+                    callback( {
+						status: engine.status.SUCCESS
+                    } );
+                }
+                else {
+					callback( {
+						status: engine.status.FAILED,
+						message: "NOA login failed - " + state.statusCode + " - " + state.status
+					} );
+                }
+            });
+        },
+        
+        /**
+         *
+         * @param {Object} callback
+         */
+        discover: function(callback){
+        
+            // Discover service available
+            ovi.snc.discoverSocialNetworks(function(response){
+            
+                if (response.status != "success") {
+                    callback( {
+						status: engine.status.FAILED,
+						message : "Service discovery failed - " + response.statusCode + " - " + response.responseText 
+                    } );
+                    return;
+                }
+				
+                var netw = response.data.network;
+                
+                // And get activated
+                ovi.snc.getActivatedSocialNetworks(function(response){                    
+
+                    if (response.status != "success") {
+	                    callback( {
+	                        status: engine.status.FAILED,
+	                        message : "Service discovery failed - " + response.statusCode + " - " + response.responseText 
+	                    } );
+												
+                        return;
+                    }
+					else if (response.statusCode == 204) { // Not an error, no active networks
+                        callback( {
+                            status: engine.status.SUCCESS,
+                            networks : [] 
+                        } );
+						
+						return;
+					}
+                    
+					var active = response.data.network;
+                    
+                    // Now we have finally the service discovery ready, create final response										
+					// Remove all not-active networks from supported networks					
+                    var results = [];					
+					for(var i=0; i < netw.length; i++) {
+						var id = netw[i].id;
+						
+						for(var j=0; j < active.length; j++) {
+							if (active[j].id == id) {								
+								// We have a winner
+								results.push({ name : netw[i].name, id : netw[i].id, maxTextInput : netw[i].maxTextInput });
+								break;
+							}
+						}
+					}					
+                    
+                    callback( { 
+					   status: engine.status.SUCCESS, 
+					   networks : results 
+                    } );                    
+                });
+            });
+        }
+    }
+    
+	// Restore data from store
+    store.load();
+    
+})();
+// Create needed namespace ovi.player.share.ui
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+ovi.player.share = ovi.player.share ||
+{};
+ovi.player.share.ui = ovi.player.share.ui ||
+{};
+
+/**
+ * TODO
+ * 
+ * This API tries to imitate medos framework UI controls for future compability.
+ * @param {Object} params
+ * @param {Object} target
+ */
+ovi.player.share.ui.Button = function(params, target) {
+    
+	var CLICK_EVENT = "selected";
+	var that = this;
+
+    function createHtml() {
+	    var template = '<button class="ovi_Button ovi_unselectable ovi_clip">' +
+	       params.text + '</button>';
+	
+	    var node = document.createElement("div");  // Do we need this ??
+	    node.innerHTML = template;
+		return node;		
+	}
+
+    var _root = createHtml();
+	var _button = _root.firstChild;
+ 
+    target.appendChild(_root);
+	
+	// Interface functions
+	this.addEventHandler = function(event, callback) {
+		// selected = click (comes from medos...)		
+		if (event == CLICK_EVENT) {
+            _root.addEventListener("click", function(e) { callback.call(that, e); }, that);	
+		}		 
+	} 	
+		
+    this.setProperty = function(name, value) {
+		_button[name] = value;
+	}
+	
+    this.getProperty = function(name) {
+        return _button[name];
+    }	
+}
+// Create needed namespace ovi.player.share.ui
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+ovi.player.share = ovi.player.share ||
+{};
+ovi.player.share.ui = ovi.player.share.ui ||
+{};
+
+/**
+ * Checkbox UI control implementation. TODO
+ * 
+ * This API tries to imitate medos framework UI controls for future compability.
+ * @param {Object} params
+ * @param {Object} target
+ */
+ovi.player.share.ui.CheckBox = function(params, target) {
+    
+	var that = this;
+
+    function createHtml() {
+		      
+        var template = '<div class="ovi_CheckBox ovi_unselectable ovi_clip">' +
+		                  '<input type="checkbox"></input>' +
+		                  '<span data-bind-text="label">' + params.label + '</span>' +
+					   '</div>';
+		
+	    var node = document.createElement("div");  // Do we need this ??
+	    node.innerHTML = template;
+		return node;		
+	}
+
+    var _root = createHtml();
+	var _checkBox = _root.firstChild.firstChild;
+ 
+    target.appendChild(_root);	
+	
+    this.setProperty = function(name, value) {
+		
+		if (name == "selected") { // Use medos property name mappings
+            _checkBox["checked"] = value;	
+		} 
+		else {
+			_checkBox = value;
+		}        
+    }
+	
+	this.getProperty = function(name) {
+		if (name == "selected") {
+			return _checkBox["checked"];
+		}
+		return _checkBox[name];
+	}
+	
+	for(var v in params) {
+		this.setProperty(v, params[v]);
+	}
+}
+// Create needed namespace ovi.player.share.ui
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+
+
+/**
+ * Context object player poc implementation
+ */
+ovi.player.contextobject = ovi.player.contextobject ||
+{};
+
+
+ovi.player.contextobject.Player = function() {
+	
+	var targetNS = this;	
+	targetNS.create = function(params) {
+		targetNS.object = params;		
+	}
+}
+
+
+
+/**
+ * Publish player poc implementation 
+ */
+ovi.player.publish = ovi.player.publish ||
+{};
+
+// Extend the namespace
+ovi.player.publish.Player = function(params) {
+
+    // TODO : MAKE THIS SINGLETON SOMEHOW ??
+    var targetNS = this;    
+
+    // Utils
+    var _id = function(id) {
+        return document.getElementById(id);
+    };
+	
+    var _addClass = function(target, className) {
+        var classes = target.className;
+        if (!classes.match(new RegExp("\\b" + className + "\\b"))) {
+            if (classes != "" && classes.substr(-1) != " ") {
+                target.className += " ";
+            }
+            target.className += className;
+        }
+    };
+    var _removeClass = function(target, className) {
+        target.className = target.className.replace(new RegExp("\\b" + className + "\\b", "g"), "");
+        //TODO: clean extra spaces?
+    
+    };
+    var _toggleClass = function(target, className) {
+        if (target.className.indexOf(className) == -1) {
+            _addClass(target, className);
+            return true;
+        } else {
+            _removeClass(target, className);
+            return false;
+        }
+        
+    };
+    
+    
+    
+    /**
+     * "State engine"
+     */
+    var _state = {
+        visible: false,
+        services: {}
+    };
+    
+    
+    
+    /**
+     * HTML templates for ui
+     */
+    var _templates = {
+        // TODO: localization
+        "share.ui": '<div class="player">\
+			<div class="panel header">Publish</div>\
+			<div class="panel panel-message">\
+				<div class="info hidden" id="comment-limit"><span id="comment-length">0</span>/<span id="comment-maxlength">0</span></div>\
+				<div class="comment" id="comment-area">\
+					<div class="hint">Write message here</div>\
+					<textarea id="message"></textarea>\
+				</div>\
+				<hr/><div class="info" id="shared-object"></div><hr/>\
+			</div>\
+			<div class="panel networks-panel"><ul class="list checked" id="available-services"></ul></div>\
+			<div class="panel panel-buttons">\
+				<ul class="list button-bar">\
+					<li id="action-ok" class="disabled"><span>OK</span></li>\
+					<li id="action-cancel"><span>Cancel</span></li>\
+				</ul>\
+			</div>\
+		</div>'
+    };
+    
+    
+    
+    /**
+     * Generic callback invoker
+     *
+     * @param {Object} notification
+     * @param {Object} data
+     * @param {Object} callback
+     * @param {Object} context
+     */
+    var _callback = function(notification, data, callback, context) {
+        if (typeof callback == "function") {
+            callback.call(context, notification, data);
+        }
+    };
+    
+    
+    
+    /**
+     * status messages
+     */
+    var _status = {
+    
+        show: "SHOW",
+        show_ok: "SHOW_SUCCEEDED",
+        show_fail: "SHOW_FAILED",
+        
+        updateobject: "UPDATEOBJECT",
+        updateobject_ok: "UPDATEOBJECT_SUCCEEDED",
+        updateobject_fail: "UPDATEOBJECT_FAILED",
+        
+        updateservices: "UPDATESERVICES",
+        updateservices_ok: "UPDATESERVICES_SUCCEEDED",
+        updateservices_fail: "UPDATESERVICES_FAILED",
+		updateservices_nonetworks : "UPDATESERVICES_NONETWORKS"
+    
+    };
+    
+    
+    
+    /**
+     * Invokes the ui for the player
+     *
+     * @param {Object} [options]
+     * @param {Object} [options.target] the dom node or id where the ui should be inserted
+     * @param {Object} [options.template] the html for the ui
+     * @param {Object} [callback]
+     * @param {Object} [context]
+     */
+    var _show = function(options, callback, context) {
+    
+        var target = (options && options.target) || _id("ovi.player.share.ui"), template = (options && options.template) || _templates["share.ui"];
+
+        // Find target node if id was given
+        if (typeof target == "string") {
+            target = _id(_target);
+        }
+        if (target) {
+            if (template) {
+                if (_state.visible && target.innerHTML.indexOf('"player"') >= 0) {
+                    // _show was already called earlier, and player is shown
+                    _callback(_status.show, {
+                        message: "Player is already visible"
+                    }, callback, context);
+                } else {
+                    target.innerHTML = template;
+                    
+                    // add handler for textarea
+                    var message = _id("message");
+                    _id("message").onkeyup = _handleMessageChange;
+                    message.style.backgroundColor = "transparent";
+                    
+                    // add handlers for buttons
+                    _id("action-ok").onclick = _handleSubmit;
+                    _id("action-cancel").onclick = _handleSubmit;
+                    
+                    // Update state
+                    _state.visible = true;
+                    _callback(_status.show_ok, null, callback, context);
+                }
+            } else {
+                _callback(_status.show_fail, {
+                    message: "Template not found",
+                    data: {
+                        template: template
+                    }
+                }, callback, context);
+            }
+        } else {
+            _callback(_status.show_fail, {
+                message: "Target container not found",
+                data: {
+                    target: target
+                }
+            }, callback, context);
+        }
+		
+		onResize();   // Initial resize
+		
+		// If we would like to show the services stored in local storage, uncommenting the following would do 
+		// the job..
+		/*
+		var services = ovi.player.share.engine.getServices();
+		targetNS.updateServices(services);*/ 		
+    };
+    
+    /**
+     * Removes all the handlers from the ui and the ui
+     *
+     * @param {Object} options
+     * @param {Object} callback
+     * @param {Object} context
+     */
+    var _teardown = function(options, callback, context) {
+        //TODO: clear handlers
+        //TODO: destroy html
+        //TODO: update status
+    };
+
+    
+    var _updateServices = function(data, callback, context) {
+    
+        var target = _id("available-services");
+        
+        if (target) {
+            if (data.length) {
+                var listToCheck = [], i;
+                // TODO: add loading animation?
+                for (i = 0; i < data.length; i++) {
+                    var id = data[i].id, label = data[i].name;
+                    if (id && label) {
+                        id = "service-" + id;
+                        listToCheck.push(id);
+                        if (!_id(id)) {
+                            // We don't have the network in our list yet, create one
+                            var item = document.createElement("LI"), checkbox = document.createElement("SPAN");
+                            checkbox.setAttribute("class", "checkbox");
+                            checkbox.appendChild(document.createTextNode(label));
+                            item.appendChild(checkbox);
+                            item.setAttribute("id", id);
+                            item.onclick = _handleServiceListClick;
+                            target.appendChild(item);
+                            // store object to the state
+							if (data[i].selected) {
+                                data[i].checked = _toggleClass(item, "checked");
+							}							
+                            _state.services[id] = data[i];
+                        }
+                    } else {
+                        _callback(_status.updateservices, {
+                            message: "Service object formatted badly",
+                            data: data[i]
+                        }, callback, context);
+                    }
+                }
+                //make a searchable string
+                listToCheck = listToCheck.join();
+                //remove obsolete networks
+                for (i = 0; i < target.childNodes.length; i++) {
+                    var node = target.childNodes[i], id = node.getAttribute("id");
+                    if (listToCheck.indexOf(id) == -1) {
+                        node.onclick = null;
+                        target.removeChild(node);
+                    }
+                    // TODO: update _state?
+                }
+				_updateServiceLimits();
+                _callback(_status.updateservices_ok, null, callback, context);				
+            } else {
+                _callback(_status.updateservices_fail, {
+                    message: "Received data was not an array",
+                    data: data
+                }, callback, context);
+            }
+        } else {
+            _callback(_status.updateservices_fail, {
+                message: "Target container not found"
+            }, callback, context);
+        }
+    };
+    
+    /**
+     * Handler for message changes
+     * @param {Object} e
+     */
+    var _handleMessageChange = function(e) {
+        _id("comment-length").innerHTML = this.value.length;
+        _checkMessageLength();
+    }
+    
+    
+    
+    /**
+     * Handler for service selection
+     * @param {Object} e
+     */
+    var _handleServiceListClick = function(e) {
+        _state.services[this.id].checked = _toggleClass(this, "checked");
+		ovi.player.snc.engine.selectService(_state.services[this.id].id, _state.services[this.id].checked);
+        _updateServiceLimits();
+    };
+    
+    
+    
+    /**
+     * Check limits and if the OK button can be clicked
+     */
+    var _updateServiceLimits = function() {
+        var bigNumber = 9999999, maxTextInput = bigNumber, min = Math.min, services = _state.services, service;
+        for (sid in services) {
+            service = services[sid];
+            if (service.checked && service.maxTextInput && service.maxTextInput > 0) {
+                maxTextInput = min(maxTextInput, service.maxTextInput);
+            }
+        }
+		
+        if (maxTextInput < bigNumber) {
+            // Reduce the link and context reserved size from input (data that will be allocated 
+			// from maxTextInput for context)
+			var contextData = _state.contextPlayer.object.data;
+            maxTextInput -= contextData.object.reservedLength;
+			     			
+            _id("comment-maxlength").innerHTML = maxTextInput;
+            _removeClass(_id("comment-limit"), "hidden");
+            //TODO: alter size of elements to make space for the limit?
+        } else {
+            _id("comment-maxlength").innerHTML = maxTextInput;
+            _addClass(_id("comment-limit"), "hidden");
+        }
+        _checkMessageLength();
+    };
+    
+    
+    
+    var _checkMessageLength = function() {
+        var length = parseInt(_id("comment-length").innerHTML), maxLength = parseInt(_id("comment-maxlength").innerHTML), message = _id("message");
+        if (length == 0) {
+            message.style.backgroundColor = "transparent";
+        } else {
+            message.style.backgroundColor = "";
+        }
+        if ((maxLength > 0) && (length > maxLength)) {
+            _addClass(_id("comment-limit"), "error");
+            _addClass(message, "error");
+        } else {
+            _removeClass(_id("comment-limit"), "error");
+            _removeClass(message, "error");
+        }
+        _updateActions();
+    };
+    
+    
+    
+    var _updateActions = function() {
+        if (_canSubmit()) {
+            _removeClass(_id("action-ok"), "disabled");
+        } else {
+            _addClass(_id("action-ok"), "disabled");
+        }
+    };
+    var _canSubmit = function() {
+        var length = parseInt(_id("comment-length").innerHTML), maxLength = parseInt(_id("comment-maxlength").innerHTML), services = _state.services, service;
+        if ((maxLength > 0) && (length > maxLength)) {
+            return false;
+        }
+        for (sid in services) {
+            service = services[sid];
+            if (service.checked && service.maxTextInput && service.maxTextInput > 0) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    
+    var _handleSubmit = function(e) {
+        // don't accept clicks from elements with class "disabled"
+        if (/\bdisabled\b/.test(this.className)) {
+            return;
+        }
+        if (this.id == "action-ok") {
+            _addClass(this, "disabled");
+            _addClass(_id("action-cancel"), "disabled");
+            //TODO: disable testarea and service list?
+            
+            var services = _state.services, service, networks = [];
+            for (sid in services) {
+                service = services[sid];
+                if (service.checked) {
+                    networks.push(service.id);
+                }
+            }
+			
+			var contextData = _state.contextPlayer.object.data;
+			
+            var data = {
+                text: _id("message").value,				
+                object : contextData.object,
+                networks: networks
+            };
+			
+            ovi.player.snc.engine.publish(data, function(status, data) {
+				if (status == ovi.player.snc.engine.status.FAILED) {
+					alert(data.message);
+				}
+                _reset();
+            });
+            // TODO: call window.close here? teardown first? window.close in teardown?
+        } else {
+            ovi.player.snc.engine.cancelPublish(null, function(status, data) {
+                _reset();
+            });
+        }
+    };
+    
+    var _reset = function() {
+        _id("shared-object").innerHTML = "";
+        _id("message").value = "";
+		_handleMessageChange.call(_id("message"));
+        _removeClass(_id("action-cancel"), "disabled");
+		
+		// Request window to be closed
+		window.close();		
+    };
+    
+	var _sync = function(contextPlayer, handler, context) {    
+        // Sync context to UI
+        _state.contextPlayer = contextPlayer; // Store context object for publishing
+        _id("shared-object").innerHTML = _state.contextPlayer.object.data.miniview;          
+    }	
+	
+	
+	var _sncInit = function(credentials, handler, context) {
+        // Sync SNC stuff
+        ovi.player.snc.engine.sync(credentials.token, function(status, data) {
+            if (status == ovi.player.snc.engine.status.FAILED) {
+                _callback(_status.updateservices_fail, 
+				    { message: data.message }, 
+					handler, context);				    
+            }
+            else if (data.networks.length == 0) {
+                _callback(_status.updateservices_nonetworks, 
+				          { message: "No networks" }, 
+						  handler, context);
+            }
+            else {
+                var services = ovi.player.snc.engine.getServices();
+                _updateServices(services, handler, context); 
+            }               
+        } );           		
+	}
+		   
+
+
+    // Register onResize for landscape / portrait mode changes
+    window.addEventListener("resize", onResize, true);
+    
+    function onResize(e) {
+        
+        function isLandscape(){
+            return window.innerWidth > window.innerHeight;
+        }   
+		
+		function _setMode(mode) {
+            _changeMode(_id("comment-area"), mode);
+            
+            var services = _id("available-services").children;                      
+            for(var i=0; i < services.length; i++) {
+                _changeMode(services[i], mode);  
+            }           			
+		}
+		        
+        // Determine - landscape or portrait mode
+        if (isLandscape()) {		
+			_setMode("landscape");						
+        }
+        else {
+            _setMode("portrait");			
+        }       
+    }
+	
+	function _changeMode(id, mode) {
+		if (mode == "portrait") {
+            _removeClass(id, "landscape");
+			_addClass(id, "portrait");				
+		} else {
+            _removeClass(id, "portrait");
+			_addClass(id, "landscape");              			
+		}	   	
+	}
+	
+    /**
+     * Assign needed functions to the target namespace => defined public API.
+     */
+    targetNS.view = _show;
+    targetNS.teardown = _teardown;
+    targetNS.reset = _reset;    
+    
+    /**
+     * Synchronize context data from context object
+     */
+    targetNS.sync = _sync;
+    
+    /**
+     * Launch UI and initialize SNC
+     */
+    targetNS.create = function(options, handler, context) {
+        
+        // Show UI
+        _show(options, handler, context);
+        
+        // Start loading SNC networks
+        _sncInit(params.credentials, handler, context);
+    }			
+	
+	targetNS.status = _status;
+};
+// Create needed namespace ovi.player.share.ui
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+ovi.player.share = ovi.player.share ||
+{};
+ovi.player.share.ui = ovi.player.share.ui ||
+{};
+
+/**
+ * Label UI control implementation. TODO
+ * 
+ * This API tries to imitate medos framework UI controls for future compability.
+ * @param {Object} params
+ * @param {Object} target
+ */
+ovi.player.share.ui.Label = function(params, target) {
+    
+	var CLICK_EVENT = "selected";
+	var that = this;
+
+    function createHtml() {
+	    var template = '<span class="ovi_Label">' + params.text + '</span>';
+	
+	    var node = document.createElement("div");  // Do we need this ??
+	    node.innerHTML = template;
+		return node;		
+	}
+
+    var _root = createHtml();
+	var _label = _root.firstChild;
+ 
+    target.appendChild(_root);
+	
+    this.setProperty = function(name, value) {
+		_label[name] = value;
+	}
+	
+    this.getProperty = function(name) {
+        return _label[name];
+    }
+	
+    for(var v in params) {
+        this.setProperty(v, params[v]);
+    }
+}
+// Create needed namespace ovi.player.share.ui
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+ovi.player.share = ovi.player.share ||
+{};
+ovi.player.share.ui = ovi.player.share.ui ||
+{};
+
+/**
+ * Textarea UI control implementation. TODO
+ * 
+ * This API tries to imitate medos framework UI controls for future compability.
+ * @param {Object} params
+ * @param {Object} target
+ */
+ovi.player.share.ui.TextArea = function(params, target) {
+    
+	var CLICK_EVENT = "selected";
+	var that = this;
+
+    function createHtml() {
+	    var template = '<textarea class="ovi_TextInput ovi_Textarea" rows="2"></textarea>';
+	
+	    var node = document.createElement("div");  // Do we need this ??
+	    node.innerHTML = template;
+		return node;		
+	}
+
+    var _root = createHtml();
+	var _textarea = _root.firstChild;
+ 
+    target.appendChild(_root);
+	
+    this.setProperty = function(name, value) {
+		_textarea[name] = value;
+	}
+	
+	this.getProperty = function(name) {
+		return _textarea[name];
+	}
+	
+    for(var v in params) {
+        this.setProperty(v, params[v]);
+    }	
+}
+window["ovi"] = window["ovi"] ||
+{};
+ovi.player = ovi.player ||
+{};
+ovi.player.snc = ovi.player.snc ||
+{};
+
+ovi.player.snc.getInstance = function(config) {
+    var player = {};
+    player._cancel = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "CANCEL_PENDING");
+        }
+        // TODO: cancel Player
+    };
+    player._pick = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "PICK_PENDING");
+        }
+        // TODO: offer list of configured networks
+    };
+    player._view = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "VIEW_PENDING");
+        }
+        // TODO: offer miniviews for networks list
+    };
+    player._sync = function(options, handler, context) {
+        var callable = (typeof handler === "function");
+        if (callable) {
+            handler.call(context, "SYNC_PENDING");
+        }
+        // TODO: connect to the Ovi API and SNC
+    };
+    ovi.player._getInstance.call(player, config);
+};
+
+ovi.player.snc.Player = ovi.player.snc.getInstance;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/inc/mpalbumcoverwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* 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:  Album Cover Widget for Music Player Media Wall.
+*
+*/
+#ifndef MPALBUMCOVERWIDGET_H
+#define MPALBUMCOVERWIDGET_H
+
+#include <QPixmap>
+#include <QGesture>
+
+#include <hbwidget.h>
+#include <hbicon.h>
+
+class MpAlbumCoverWidget : public HbWidget
+
+{
+    Q_OBJECT
+
+public:
+
+    MpAlbumCoverWidget( QGraphicsItem *parent = 0 );
+    virtual ~MpAlbumCoverWidget();
+    void setIcon(const HbIcon &icon );
+    void setDefaultIcon( const HbIcon &icon );
+    void paint( QPainter *painter, const QStyleOptionGraphicsItem *option, 
+                QWidget *widget = 0 );
+    void gestureEvent(QGestureEvent *event);
+
+signals:
+
+    void clicked();
+    
+private:
+
+    void mousePressEvent( QGraphicsSceneMouseEvent *event );
+    void mouseReleaseEvent( QGraphicsSceneMouseEvent *event );
+    
+private:
+    
+    HbIcon    mIcon;
+    HbIcon    mDefaultIcon;
+    QPixmap   mPixmap;
+};
+
+
+#endif //MPALBUMCOVERWIDGET_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/inc/mpmediawalldocumentloader.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* 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: Music Player media wall view custom document loader.
+*
+*/
+
+#ifndef MPMEDIAWALLDOCUMENTLOADER_H
+#define MPMEDIAWALLDOCUMENTLOADER_H
+
+
+#include <hbdocumentloader.h>
+
+
+class MpMediaWallDocumentLoader : public HbDocumentLoader
+{
+public:
+    virtual QObject *createObject(const QString& type, const QString &name);
+};
+
+#endif  // MPMEDIAWALLDOCUMENTLOADER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/inc/mpmediawallview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,101 @@
+/*
+* 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: Music Player Media Wall view.
+*
+*/
+
+#ifndef MPMEDIAWALLVIEW_H
+#define MPMEDIAWALLVIEW_H
+
+#include "mpviewbase.h"
+#include "mpmpxcollectionviewdefs.h"
+
+class HbMainWindow;
+class MpEngine;
+class HgMediawall;
+class MpMpxCollectionData;
+class MpCollectionDataModel;
+class HbLabel;
+class MpMediaWallDocumentLoader;
+class HbAction;
+class HbIcon;
+class MpPlaybackData;
+class QParallelAnimationGroup;
+class QPropertyAnimation;
+class MpAlbumCoverWidget;
+class MpTrackListWidget;
+class QModelIndex;
+
+
+class MpMediaWallView : public MpViewBase
+{
+    Q_OBJECT
+
+public:
+    explicit MpMediaWallView();
+    virtual ~MpMediaWallView();
+    
+    void initializeView();
+    void activateView();
+    void deactivateView();
+
+signals:
+    void command( int aCommand );
+    
+public slots:
+    void contextOpened( TCollectionContext context );
+    void containerContentsChanged();
+    void libraryAboutToUpdate();
+    void libraryUpdated();
+    void sendToBackground();
+    void updatePlayPauseAction();
+    void hideTracksList();
+    void showTrackList();
+    void dismissListClosingAnimation();
+    void listItemActivated( const QModelIndex &index );
+    void fetchAlbumSongs(QModelIndex index);
+
+private:
+    void setUpMediaWallWidget();
+    void scrollToNowPlaying();
+    void setUpListAnimation();
+
+    
+private:
+    MpEngine                     *mEngine;                 // not own
+    MpMpxCollectionData          *mCollectionData;         // not own
+    MpCollectionDataModel        *mModel;                  // own - parented
+    HgMediawall                  *mMediaWallWidget;        // own - parented
+    HbLabel                      *mNoMusic;                // own - parented
+    MpMediaWallDocumentLoader    *mDocumentLoader;         // own
+    QGraphicsWidget              *mPlayPauseContainer;     // own - parented
+    HbIcon                       *mPlayIcon;               // own
+    HbIcon                       *mPauseIcon;              // own
+    HbAction                     *mPlayPauseAction;        // own - parented
+    bool                         mLibraryUpdating;
+    MpPlaybackData               *mPlaybackData;           // not own
+    bool                         mActivated;
+    bool                         mIconUpdateNedded;
+    QParallelAnimationGroup      *mListShowAnimationGroup; // own - parented
+    QPropertyAnimation           *mListShowListAnimation;  // own - parented
+    QPropertyAnimation           *mCoverShowListAnimation; // own - parented
+    bool                         mShowingSongsList;
+    MpAlbumCoverWidget           *mAlbumCover; 
+    MpTrackListWidget            *mTrackList;
+    
+    Q_DISABLE_COPY(MpMediaWallView)
+};
+
+
+#endif //MPMEDIAWALLVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/inc/mpmediawallviewplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,56 @@
+/*
+* 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: Plugin interface for Music Player media wall view.
+*
+*/
+
+#ifndef MPMEDIAWALLVIEWPLUGIN_H
+#define MPMEDIAWALLVIEWPLUGIN_H
+
+#include <QObject>
+#include <mpxviewpluginqt.h>
+
+//forward declartions
+class MpMediaWallView;
+
+//class declaration
+class MpMediaWallViewPlugin : public MpxViewPlugin
+{
+    Q_OBJECT
+
+public:
+    explicit MpMediaWallViewPlugin();
+    virtual ~MpMediaWallViewPlugin();
+
+    void createView();
+    void destroyView();
+    void activateView();
+    void deactivateView();
+    QGraphicsWidget *getView();
+    
+signals:
+    void command( int command );
+
+public slots:
+    void orientationChange( Qt::Orientation orientation );
+    void back();
+
+private:
+    enum State { NullView, Created, Initialized, Activated };
+    MpMediaWallView    *mView; //owned
+    State             mState;
+};
+
+#endif  // MPMEDIAWALLVIEWPLUGIN_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/inc/mpreflectioneffect.h	Thu Jul 22 16:32:33 2010 +0100
@@ -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:  reflection effect for Music Player Media Wall.
+*
+*/
+#ifndef MPREFLECTIONEFFECT_H
+#define MPREFLECTIONEFFECT_H
+
+#include <QGraphicsEffect>
+
+class MpReflectionEffect: public QGraphicsEffect
+{
+    Q_OBJECT
+
+public:
+    MpReflectionEffect(QObject *parent = 0);
+    ~MpReflectionEffect();
+
+    QRectF boundingRectFor(const QRectF &rect) const;
+
+protected:
+    void draw(QPainter *painter);
+
+private:
+    Q_DISABLE_COPY(MpReflectionEffect)
+};
+
+#endif // MPREFLECTIONEFFECT_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/inc/mptracklistwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,56 @@
+/*
+* 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:  Track List Widget for Music Player Media Wall.
+*
+*/
+#ifndef MPTRACKLISTWIDGET_H
+#define MPTRACKLISTWIDGET_H
+
+#include <QGesture>
+
+#include <hbwidget.h>
+
+class HbFrameItem;
+class HbListView;
+
+class MpTrackListWidget : public HbWidget
+{
+    Q_OBJECT
+  
+public:
+    
+    MpTrackListWidget( QGraphicsItem *parent = 0 );
+    virtual ~MpTrackListWidget();
+    HbListView *list(); 
+
+
+signals:
+
+    void closed();
+
+private:
+    void resizeEvent(QGraphicsSceneResizeEvent *event);
+    void mousePressEvent( QGraphicsSceneMouseEvent *event );
+    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+    void gestureEvent(QGestureEvent *event);
+    QSwipeGesture::SwipeDirection swipeAngleToDirection( int angle );
+    
+private:
+    HbListView      *mList;      // own - parented
+    HbFrameItem     *mFrameItem; // own - parented
+};
+
+#endif // MPTRACKLISTWIDGET_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/mpmediawallviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,58 @@
+#
+# 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 = lib
+CONFIG += hb qt ecomplugin
+HB += hbfeedback
+TARGET = mpmediawallviewplugin
+symbian: { 
+    TARGET.UID3 = 0x10207C94
+    TARGET.CAPABILITY = All -TCB
+    TARGET.EPOCALLOWDLLDATA = 1
+}
+
+SERVICE.INTERFACE_NAME = org.nokia.mmdt.MpxViewPlugin/1.0
+SERVICE.CONFIGURATION = "<i>EMPXViewPluginPriorityNormal</i>"
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+               inc \
+               ../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+INCLUDEPATH += $$MW_LAYER_PUBLIC_EXPORT_PATH(hgwidgets)
+     
+LIBS += -lestor \
+        -lmpxviewframeworkqt \
+        -lganeswidgets \
+        -lmpengine \
+        -lmpdata
+	
+# Input
+HEADERS += ../../inc/mpviewbase.h \
+           inc/mpmediawallviewplugin.h \
+           inc/mpmediawallview.h \
+           inc/mpmediawalldocumentloader.h \
+           inc/mpalbumcoverwidget.h \
+           inc/mptracklistwidget.h \
+           inc/mpreflectioneffect.h
+SOURCES += src/mpmediawallviewplugin.cpp \
+           src/mpmediawallview.cpp \
+           src/mpmediawalldocumentloader.cpp \
+           src/mpalbumcoverwidget.cpp \
+           src/mptracklistwidget.cpp \
+           src/mpreflectioneffect.cpp
+RESOURCES += resources/mpmediawallviewresources.qrc
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/resources/mediawall.docml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.9">
+
+    <widget name="container" type="HbWidget">
+        
+        <widget name="mediawalContainer" type="HbWidget"/>
+        
+        <!-- for some reason we cannot hide the hbtoolbutton, suing a container to be able to hide -->
+        <widget name="playPauseButtonContainer" type="HbWidget">
+            <widget name="playPauseButton" type="HbToolButton">
+                <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="FIXED" width="var(hb-param-touch-area-gene-primary-medium)"/>
+            </widget>
+        </widget>
+        
+        <widget name="navigationButton" type="HbToolButton">
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="FIXED" width="var(hb-param-touch-area-gene-primary-medium)"/>
+        </widget>
+        
+        <layout type="anchor" >
+            <anchoritem dst="playPauseButtonContainer" dstEdge="LEFT" spacing="0.0" src="" srcEdge="LEFT"/>
+            <anchoritem dst="playPauseButtonContainer" dstEdge="TOP" spacing="0.0" src="" srcEdge="TOP"/>
+            <anchoritem dst="navigationButton" dstEdge="RIGHT" spacing="0.0" src="" srcEdge="RIGHT"/>
+            <anchoritem dst="navigationButton" dstEdge="TOP" spacing="0.0" src="" srcEdge="TOP"/>
+            <anchoritem dst="mediawalContainer" dstEdge="LEFT" spacing="0.0" src="" srcEdge="LEFT"/>
+            <anchoritem dst="mediawalContainer" dstEdge="TOP" spacing="0.0" src="" srcEdge="TOP"/>
+            <anchoritem dst="mediawalContainer" dstEdge="RIGHT" spacing="0.0" src="" srcEdge="RIGHT"/>
+            <anchoritem dst="mediawalContainer" dstEdge="BOTTOM" spacing="0.0" src="" srcEdge="BOTTOM"/>
+        </layout>
+        
+    </widget>
+
+    <section name="empty">
+        <widget name="mediawalContainer">
+            <widget name="noMusic" type="HbLabel">
+                <string name="plainText" locid="txt_mus_info_no_music"/>
+                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                <fontspec name="fontSpec" role="Primary"/>
+            </widget>
+
+            <layout type="linear" orientation="Vertical" >
+                <contentsmargins bottom="var(hb-param-margin-view-bottom)" left="var(hb-param-margin-view-left)" right="var(hb-param-margin-view-right)" top="var(hb-param-margin-view-top)"/>
+                <stretchitem stretchfactor="1"/>
+                <linearitem itemname="noMusic" spacing="0.0"/>
+                <stretchitem stretchfactor="1"/>
+            </layout>
+        </widget>
+    </section>
+
+    <section name="mediaWall">
+        <widget name="mediawalContainer">
+            <!-- dont change the media wall widget name it is used on custom css-->
+            <widget name="MPmediaWallWidget" type="HgMediawall">
+                <sizepolicy horizontalPolicy="Ignored" verticalPolicy="Ignored"/>
+            </widget>
+            <layout type="linear" orientation="Vertical" >
+                <contentsmargins bottom="0" left="0" right="0" top="0"/>
+                <linearitem itemname="MPmediaWallWidget" spacing="0.0"/>
+            </layout>
+        </widget>
+    </section>
+    
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/resources/mpcustomlistitem.css	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,57 @@
+HbListViewItem[layoutName="mpmwtracklist"][icon-2]{
+    layout:mpmwtracklist-1;
+}
+
+HbListViewItem[layoutName="mpmwtracklist"][!icon-2]{
+    layout:mpmwtracklist-2;
+}
+
+HbListViewItem::text-1[layoutName="mpmwtracklist"]{
+  text-height: var(hb-param-text-height-secondary);
+  font-variant: secondary;
+  pref-width:-1;
+  text-align: Left;
+  size-policy-horizontal: ignored;
+  text-line-count-min:1;
+  text-line-count-max:1;
+  text-wrap-mode:no-wrap;
+}
+
+HbListViewItem::icon-2[layoutName="mpmwtracklist"]{
+  fixed-height: var(hb-param-graphic-size-secondary);
+  fixed-width: var(hb-param-graphic-size-secondary);
+}
+
+HbListViewItem::text-2[layoutName="mpmwtracklist"]{
+  minimum-height: 0.0un;
+  minimum-width: 0.0un;
+  fixed-height: 0.0un;
+  fixed-width: 0.0un;
+        text-line-count-min: 1;
+        text-line-count-max: 1;
+        text-wrap-mode: no-wrap;
+}
+
+HbListViewItem::text-3[layoutName="mpmwtracklist"]{
+  minimum-height: 0.0un;
+  minimum-width: 0.0un;
+  fixed-height: 0.0un;
+  fixed-width: 0.0un;
+        text-line-count-min: 1;
+        text-line-count-max: 1;
+        text-wrap-mode: no-wrap;
+}
+
+HbListViewItem::icon-1[layoutName="mpmwtracklist"]{
+  minimum-height: 0.0un;
+  minimum-width: 0.0un;
+  fixed-height: 0.0un;
+  fixed-width: 0.0un;
+}
+
+HbListViewItem::multiselection-toucharea[layoutName="mpmwtracklist"]{
+  minimum-height: 0.0un;
+  minimum-width: 0.0un;
+  fixed-height: 0.0un;
+  fixed-width: 0.0un;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/resources/mpcustomlistitem.hblistviewitem.widgetml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,57 @@
+<hbwidget version="0.1" type="HbListViewItem">
+ 
+  <!-- mpmwtracklist-1 -->
+    <!--
+        Required items: 
+            text-1
+            icon-2
+            
+        Items from left to right:
+            <- text-1 ->
+                                         
+        Other:
+            text-1: connected from TOP to item TOP and BOTTOM to item BOTTOM
+    -->
+    <layout name="mpmwtracklist-1" type="mesh">
+   
+        <meshitem src="text-1" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-middle-horizontal)"/>
+        <meshitem src="text-1" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-var(hb-param-margin-gene-middle-vertical)"/>
+        <meshitem src="text-1" srcEdge="RIGHT" dst="icon-2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" />
+        <meshitem src="text-1" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-middle-vertical)" />
+          
+        <meshitem src="icon-2" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-middle-horizontal)" />
+        <meshitem src="icon-2" srcEdge="CENTERV" dst="text-1" dstEdge="CENTERV" />
+          
+        <meshitem src="text-2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <meshitem src="text-3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <meshitem src="icon-1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    
+    </layout>
+
+  <!-- mpmwtracklist-2 -->
+    <!--
+        Required items: 
+            text-1
+            
+        Items from left to right:
+            <- text-1 -> icon-2 ->
+                                         
+        Other:
+            icon-2: center aligned with text-1 center    
+            text-1: connected from TOP to item TOP and BOTTOM to item BOTTOM
+    -->
+    <layout name="mpmwtracklist-2" type="mesh">
+        <meshitem src="text-1" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-middle-horizontal)"/>
+        <meshitem src="text-1" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-var(hb-param-margin-gene-middle-vertical)"/>
+        <meshitem src="text-1" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-middle-horizontal)" />
+        <meshitem src="text-1" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-middle-vertical)" />
+          
+        <meshitem src="text-2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <meshitem src="text-3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <meshitem src="icon-1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>       
+        <meshitem src="icon-2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>       
+    </layout>
+    
+    
+</hbwidget>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/resources/mpcustommediawall.css	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,68 @@
+HgMediawall#MPmediaWallWidget
+{
+  layout:mpmediawallview;
+  front-cover-elevation-factor:0.51;
+}
+
+HgMediawall#MPmediaWallWidget::content
+{
+  size-policy: ignored ignored;
+  left:0un;
+  right:0un;
+  top:0un;
+  bottom:0un;
+  zvalue: 0;
+}
+
+HgMediawall#MPmediaWallWidget::title
+{
+  text-height: var(hb-param-text-height-primary);
+  font-variant:primary;
+  text-align: center center;
+  text-line-count-min:1;
+  text-line-count-max:1;
+  text-wrap-mode:no-wrap;
+  left:-expr(var(hb-param-touch-area-gene-primary-medium)+var(hb-param-margin-gene-left));
+  right:expr(var(hb-param-touch-area-gene-primary-medium)+var(hb-param-margin-gene-right));
+  top:0un;
+  bottom:0un;
+  zvalue: 2;
+}
+
+HgMediawall#MPmediaWallWidget::description
+{
+  text-height: var(hb-param-text-height-secondary);
+  font-variant:secondary;
+  text-align: center center;
+  text-line-count-min:1;
+  text-line-count-max:1;
+  text-wrap-mode:no-wrap;
+  left:-expr(var(hb-param-touch-area-gene-primary-medium)+var(hb-param-margin-gene-left));
+  right:expr(var(hb-param-touch-area-gene-primary-medium)+var(hb-param-margin-gene-right));
+  top:0un;
+  bottom:0un;
+  zvalue: 2;
+}
+
+HgMediawall#MPmediaWallWidget::centeritem
+{
+  size-policy: fixed fixed;
+  fixed-height: 41un;
+  fixed-width: 41un;
+  left:0un;
+  right:0un;
+  top:0un;
+  bottom:0un;
+  zvalue: 2;
+}
+
+HgMediawall#MPmediaWallWidget::scrollbar-horizontal
+{
+  size-policy: preferred preferred;
+  left:0un;
+  right:0un;
+  top:0un;
+  bottom:0un;
+  zvalue: 2;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/resources/mpcustommediawall.hgmediawall.widgetml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,51 @@
+<hbwidget version="0.1" type="HgMediawall">
+
+  <!-- 
+
+    TOP content
+        ^
+        |
+      title
+        ^
+        | 
+    description
+        ^
+        |
+    centeritem
+       
+       
+scrollbar-horizontal
+        |
+        v
+  BOTTOM content
+
+
+  
+  -->
+  <layout name="mpmediawallview" type="mesh">
+    
+    <meshitem src="content" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    <meshitem src="content" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    <meshitem src="content" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="content" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+ 
+    <meshitem src="title" srcEdge="TOP" dst="content" dstEdge="TOP"/>
+    <meshitem src="title" srcEdge="LEFT" dst="content" dstEdge="LEFT"/>
+    <meshitem src="title" srcEdge="RIGHT" dst="content" dstEdge="RIGHT"/>
+    
+       
+    <meshitem src="description" srcEdge="TOP" dst="title" dstEdge="BOTTOM"/>
+    <meshitem src="description" srcEdge="LEFT" dst="content" dstEdge="LEFT"/>
+    <meshitem src="description" srcEdge="RIGHT" dst="content" dstEdge="RIGHT"/>
+    
+    
+    <meshitem src="centeritem" srcEdge="TOP" dst="description" dstEdge="BOTTOM"/>
+    <meshitem src="centeritem" srcEdge="CENTERH" dst="content" dstEdge="CENTERH"/>
+       
+    <meshitem src="scrollbar-horizontal" srcEdge="BOTTOM" dst="content" dstEdge="BOTTOM"/>
+    <meshitem src="scrollbar-horizontal" srcEdge="RIGHT" dst="content" dstEdge="RIGHT"/>
+    <meshitem src="scrollbar-horizontal" srcEdge="LEFT" dst="content" dstEdge="LEFT"/>
+   
+  </layout>
+
+</hbwidget>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/resources/mpmediawallviewresources.qrc	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,15 @@
+<RCC>
+    
+    <qresource prefix="/mediawallviewdocml" >
+        <file alias="mediawall.docml">mediawall.docml</file>
+    </qresource>
+    
+    <qresource prefix="/css">
+        <file alias="mpcustomlistitem.css">mpcustomlistitem.css</file>
+        <file alias="mpcustomlistitem.hblistviewitem.widgetml">mpcustomlistitem.hblistviewitem.widgetml</file>
+        
+        <file alias="mpcustommediawall.css">mpcustommediawall.css</file>
+        <file alias="mpcustommediawall.hgmediawall.widgetml">mpcustommediawall.hgmediawall.widgetml</file>
+    </qresource>
+   
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/rom/mpmediawallviewplugin.iby	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef MPMEDIAWALLVIEWPLUGIN_IBY
+#define MPMEDIAWALLVIEWPLUGIN_IBY
+
+#include <bldvariant.hrh>
+
+ECOM_PLUGIN( mpmediawallviewplugin.dll, mpmediawallviewplugin.rsc )
+
+#endif //MPMEDIAWALLVIEWPLUGIN_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/rom/rom.pri	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,21 @@
+#
+# 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: 
+#
+
+symbian {
+MP_IBY_DIR = $$section(PWD,":",1)
+
+BLD_INF_RULES.prj_exports += "$$MP_IBY_DIR/mpmediawallviewplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mpmediawallviewplugin.iby)"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/src/mpalbumcoverwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,136 @@
+/*
+* 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:  Album Cover Widget for Music Player Media Wall.
+*
+*/
+#include <QPainter>
+#include <QGraphicsSceneMouseEvent>
+
+
+#include "mpalbumcoverwidget.h"
+#include "mpreflectioneffect.h"
+
+/*!
+    \class MpAlbumCoverWidget
+    \brief Album Cover Widget.
+
+    This widget provides upscaled rendering of images and SVG rendering.
+    Also there is a reflection effect.
+*/
+
+/*!
+    \fn void clicked( )
+
+    This signal is emitted when the item is clicked.
+ */
+
+/*!
+    Constructs the album cover widget
+ */
+MpAlbumCoverWidget::MpAlbumCoverWidget( QGraphicsItem *parent ) : 
+    HbWidget( parent )
+{
+    setFlag( QGraphicsItem::ItemHasNoContents, false );
+    grabGesture(Qt::TapGesture);
+        
+    MpReflectionEffect *effect = new MpReflectionEffect(this);
+    setGraphicsEffect(effect);
+}
+
+/*!
+ Destructs the album cover widget.
+ */
+MpAlbumCoverWidget::~MpAlbumCoverWidget()
+{
+}
+
+/*!
+    Sets the \a icon as current album cover.
+ */
+void MpAlbumCoverWidget::setIcon( const HbIcon &icon )
+{
+    if (icon != mIcon) {
+        mIcon = icon;
+        mPixmap = QPixmap();
+    }
+}
+
+/*!
+    Sets the \a icon as default cover, to be used in case the album cover is null icon.
+ */
+void MpAlbumCoverWidget::setDefaultIcon( const HbIcon &icon )
+{
+    mDefaultIcon = icon;
+}
+
+/*!
+    \reimp
+ */
+void MpAlbumCoverWidget::paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget )
+{
+    Q_UNUSED( widget )
+    Q_UNUSED( option )
+    if ( !mIcon.isNull() ) {
+        if ( mPixmap.isNull() ) {
+            mPixmap = mIcon.qicon().pixmap( size().toSize() );
+        }
+        //We paint directly to stretch up/down if necesary.
+        painter->drawPixmap( rect(), mPixmap, QRectF() );
+    }
+    else {
+        //We use HbIcon paint to render vector graphics.
+        mDefaultIcon.setSize(size());
+        mDefaultIcon.paint(painter,rect());
+    }
+}
+
+/*!
+    \reimp
+ */
+void MpAlbumCoverWidget::mousePressEvent( QGraphicsSceneMouseEvent *event )
+{
+    if ( event->button() == Qt::LeftButton ) {
+        event->accept();
+    }
+    else {
+        event->ignore();
+    }
+}
+
+/*!
+    \reimp
+ */
+void MpAlbumCoverWidget::mouseReleaseEvent( QGraphicsSceneMouseEvent *event )
+{
+    if ( event->button() == Qt::LeftButton ) {
+        emit clicked();
+        event->accept();
+    }
+    else {
+        event->ignore();
+    }
+}
+
+/*!
+    \reimp
+ */
+void MpAlbumCoverWidget::gestureEvent(QGestureEvent *event)
+{
+    QGesture* gesture = event->gesture(Qt::TapGesture);
+    if (gesture) {
+         event->accept(Qt::TapGesture);
+    }    
+}
+
+//EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/src/mpmediawalldocumentloader.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* 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: Music Player media wall view custom document loader.
+*
+*/
+
+#include <hgmediawall.h>
+#include <hbtoolbutton.h>
+
+#include "mpmediawalldocumentloader.h"
+#include "mpcommondefs.h"
+#include "mptrace.h"
+
+
+/*!
+    \class MpMediaWallDocumentLoader
+    \brief Music Player media wall view custom document loader.
+
+    Media wall view document loader extends Orbit document loader to enable
+    loading of custom widgets.
+*/
+
+/*!
+ Creates and returns the object of the given \a type.
+
+ \reimp
+ */
+QObject *MpMediaWallDocumentLoader::createObject(const QString& type, const QString &name)
+{
+    TX_ENTRY_ARGS("type=" << type << ", name=" << name);
+
+    if ( type == HgMediawall::staticMetaObject.className() ) {
+        QObject *object = new HgMediawall();
+        object->setObjectName(name);
+        TX_EXIT
+        return object;
+    }
+    else if ( type == HbToolButton::staticMetaObject.className() ) {
+        QObject *object = new HbToolButton();
+        object->setObjectName(name);
+        TX_EXIT
+        return object;
+    }
+
+    TX_EXIT
+    return HbDocumentLoader::createObject(type, name);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/src/mpmediawallview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,520 @@
+/*
+* 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: Music Player Settings view.
+*
+*/
+
+#include <QParallelAnimationGroup>
+#include <QPropertyAnimation>
+
+#include <hbicon.h>
+#include <hbaction.h>
+#include <hbapplication.h>
+#include <hbscrollbar.h>
+#include <hblabel.h>
+#include <hbtoolbutton.h>
+#include <hblistview.h>
+#include <hbstyleloader.h>
+
+#include <hgmediawall.h>
+
+#include "mpmediawallview.h"
+#include "mpmediawalldocumentloader.h"
+#include "mpcommondefs.h"
+#include "mpmpxcollectiondata.h"
+#include "mpcollectiondatamodel.h"
+#include "mpenginefactory.h"
+#include "mpplaybackdata.h"
+#include "mpalbumcoverwidget.h"
+#include "mptracklistwidget.h"
+#include "mpcollectiontbonelistdatamodel.h"
+#include "mptrace.h"
+
+const char*MUSIC_MEDIAWALL_DOCML = ":/mediawallviewdocml/mediawall.docml";
+
+/*!
+    \class MpMediaWallView
+    \brief Music Player Settings view.
+
+    Music player media wall view displays music players albums on an full screen view
+*/
+
+/*!
+    \fn void command( int command )
+
+    This signal is emitted when the view issues a \a command to the
+    application such as request to switch to a different view.
+ */
+
+
+/*!
+ Constructs the media wall view.
+ */
+MpMediaWallView::MpMediaWallView()
+    : mEngine( 0 ),
+      mCollectionData( 0 ),
+      mModel( 0 ),
+      mMediaWallWidget( 0 ),
+      mNoMusic( 0 ),
+      mDocumentLoader( 0 ),
+      mPlayPauseContainer( 0 ),
+      mPlayIcon( 0 ),
+      mPauseIcon( 0 ),
+      mPlayPauseAction( 0 ),
+      mLibraryUpdating( false ),
+      mPlaybackData( 0 ),
+      mActivated( false ),
+      mIconUpdateNedded( false ),
+      mListShowAnimationGroup( 0 ),
+      mListShowListAnimation( 0 ),
+      mCoverShowListAnimation( 0 ),
+      mShowingSongsList( false ),
+      mAlbumCover( 0 ),
+      mTrackList( 0 )
+{
+    connect( MpEngineFactory::sharedEngine(), SIGNAL( libraryAboutToUpdate() ),
+                    this, SLOT( libraryAboutToUpdate() ) );
+    connect( MpEngineFactory::sharedEngine(), SIGNAL( libraryUpdated() ),
+                    this, SLOT( libraryUpdated() ) );
+    TX_LOG
+}
+    
+/*!
+ Destructs the media wall view.
+ */
+MpMediaWallView::~MpMediaWallView()
+{
+    TX_ENTRY
+    //delete not parented objects
+    delete mDocumentLoader;
+    delete mPlayIcon;
+    delete mPauseIcon;
+    TX_EXIT
+}
+
+/*!
+ Initializes the media wall view.
+ */
+void MpMediaWallView::initializeView()
+{
+    TX_ENTRY
+    setTitleBarVisible( false );
+    setStatusBarVisible( false );
+       
+    mDocumentLoader = new MpMediaWallDocumentLoader();  
+    bool ok = false;
+    mDocumentLoader->load( MUSIC_MEDIAWALL_DOCML, &ok );
+    if ( ok ) {
+        QGraphicsWidget *widget;
+        
+        //Setup fake softkey to hide the app
+        widget = mDocumentLoader->findWidget( QString( "navigationButton" ) );
+        HbAction  *action;
+        action = new HbAction( Hb::BackNaviAction, this );
+        connect( action, SIGNAL( triggered( bool ) ), this, SLOT( sendToBackground() ) );
+        qobject_cast<HbToolButton*>( widget )->setAction( action );
+        
+        //Setup the play/pause command button
+        widget = mDocumentLoader->findWidget( QString( "playPauseButton" ) );
+        mPauseIcon = new HbIcon( "qtg_mono_pause" );
+        mPlayIcon = new HbIcon( "qtg_mono_play" );
+        mPlayPauseAction = new HbAction( HbIcon() , QString(), this );  
+        mPlaybackData = MpEngineFactory::sharedEngine()->playbackData();
+        qobject_cast<HbToolButton*>( widget )->setAction( mPlayPauseAction );
+        //we need this widget to hide the play pause button, for some reason it does not want to hide.
+        mPlayPauseContainer = mDocumentLoader->findWidget( QString( "playPauseButtonContainer" ) );
+        updatePlayPauseAction();
+        connect( mPlaybackData, SIGNAL( playbackStateChanged() ),
+                 this, SLOT( updatePlayPauseAction() ) );
+        connect( mPlayPauseAction, SIGNAL( triggered( bool ) ),
+                 MpEngineFactory::sharedEngine(), SLOT( playPause() ) );
+
+        
+        //Get the main container and set as widget.
+        widget = mDocumentLoader->findWidget( QString( "container" ) );
+        setWidget( widget );
+        
+        mEngine = MpEngineFactory::createIsolatedEngine( MpEngine::MediaBrowsing );
+        mCollectionData = mEngine->collectionData();
+        mModel = new MpCollectionDataModel( mCollectionData, this );
+        
+        connect( mCollectionData, SIGNAL( contextChanged( TCollectionContext ) ), 
+                 this, SLOT( contextOpened( TCollectionContext ) ) );
+        connect( mEngine, SIGNAL( containerContentsChanged() ),
+                this, SLOT( containerContentsChanged() ) );
+        if ( !mLibraryUpdating ) {
+        mEngine->openCollection( ECollectionContextAlbumsMediaWall );
+        }
+    }
+    else {
+        TX_LOG_ARGS( "Error: invalid xml file." );
+        Q_ASSERT_X( ok, "MpCollectionView::initializeView", "invalid xml file" );
+    }
+    
+    mAlbumCover = new MpAlbumCoverWidget( this );
+    mAlbumCover->setDefaultIcon( HbIcon( "qtg_large_album_art" ) );
+    mAlbumCover->hide();
+    
+    mTrackList = new MpTrackListWidget( this );
+    mTrackList->list()->setModel( new MpCollectionTBoneListDataModel(mCollectionData, mPlaybackData, mTrackList ) );
+    mTrackList->hide();
+    
+    connect(mAlbumCover,SIGNAL(clicked()),this, SLOT(hideTracksList()));
+    connect(mTrackList->list(), SIGNAL(activated(QModelIndex)), this, SLOT(listItemActivated(QModelIndex)));
+    connect(mTrackList,SIGNAL(closed()),this, SLOT(hideTracksList()));
+
+    HbStyleLoader::registerFilePath(":/css/mpcustommediawall.css");
+    HbStyleLoader::registerFilePath(":/css/mpcustommediawall.hgmediawall.widgetml");  
+    
+    TX_EXIT
+}
+
+/*!
+ Activates the media wall view.
+ */
+void MpMediaWallView::activateView()
+{
+    TX_ENTRY
+    mActivated = true;
+    if ( mIconUpdateNedded ) {
+        updatePlayPauseAction();
+        mIconUpdateNedded = false;
+    }
+    scrollToNowPlaying();   
+    TX_EXIT
+}
+
+/*!
+ Deactivates the media wall view.
+ */
+void MpMediaWallView::deactivateView()
+{
+    TX_ENTRY
+    mActivated = false;
+    dismissListClosingAnimation();
+    TX_EXIT
+}
+
+/*!
+ Slot to be called when the context is opened.
+ */
+void MpMediaWallView::contextOpened( TCollectionContext context )
+{
+    if ( context != ECollectionContextAlbumsMediaWall ) {
+        //Force the context to Albums Media Wall, this to get the model and 
+        //data to provide the right funtionality to media wall.
+        mCollectionData->setContext( ECollectionContextAlbumsMediaWall );
+        return;
+    }
+    if ( mCollectionData->count() ) {
+        if (mNoMusic) {
+            delete mNoMusic;
+            mNoMusic = 0;
+        }
+        if ( mMediaWallWidget ) {
+            mModel->refreshModel();
+        } else {
+            bool ok = false;
+            mDocumentLoader->load( MUSIC_MEDIAWALL_DOCML, "mediaWall", &ok);
+            if ( ok ) {
+                QGraphicsWidget *widget;
+                widget = mDocumentLoader->findWidget(QString("MPmediaWallWidget"));
+                mMediaWallWidget = qobject_cast<HgMediawall*>(widget);
+                //set these items as children of the media wall so they show behind the scrollbar.
+                mTrackList->setParentItem(mMediaWallWidget);
+                mAlbumCover->setParentItem(mMediaWallWidget);
+                mModel->refreshModel();
+                setUpMediaWallWidget();
+            }
+            else {
+                TX_LOG_ARGS("Error: invalid xml file.");
+                Q_ASSERT_X(ok, "MpMediaWallView::contextOpened", "invalid xml file");
+
+            }          
+        }
+    }
+    else {
+        if ( mMediaWallWidget ) {
+            //Take ownership of these items to prevent delete from media wall widget.
+            mTrackList->setParentItem( this );
+            mAlbumCover->setParentItem( this );
+            delete mMediaWallWidget;
+            mMediaWallWidget = 0;
+            
+        }
+        if ( !mNoMusic ) {
+            bool ok = false;
+            mDocumentLoader->load( MUSIC_MEDIAWALL_DOCML, "empty", &ok);
+            if ( ok ) {
+                QGraphicsWidget *widget;
+                widget = mDocumentLoader->findWidget(QString("noMusic"));
+                mNoMusic = qobject_cast<HbLabel*>(widget);
+            }
+            else {
+                TX_LOG_ARGS("Error: invalid xml file.");
+                Q_ASSERT_X(ok, "MpMediaWallView::contextOpened", "invalid xml file");
+
+            }
+        }
+    }
+}
+
+/*!
+ Slot to be called when the container contents changed.
+ */
+void MpMediaWallView::containerContentsChanged() 
+{
+    if ( !mLibraryUpdating && mEngine ) {
+        mEngine->openCollection( ECollectionContextAlbumsMediaWall );
+    }
+}
+
+/*!
+ Slot to be called when the container contents changed.
+ */
+void MpMediaWallView::libraryAboutToUpdate()
+{
+    mLibraryUpdating = true;
+}
+
+/*!
+ Slot to be called when the container contents changed.
+ */
+void MpMediaWallView::libraryUpdated()
+{
+    mLibraryUpdating = false;
+    if ( mEngine ) {
+        mEngine->openCollection( ECollectionContextAlbumsMediaWall );
+    }
+}
+
+/*!
+ Slot to be called to send to background.
+ */
+void MpMediaWallView::sendToBackground()
+{
+    TX_ENTRY
+    emit command( MpCommon::SendToBackground );
+    TX_EXIT
+}
+
+/*!
+ Slot to update teh play pause action icon.
+ */
+void MpMediaWallView::updatePlayPauseAction()
+{
+    if ( !mActivated ) {
+        mIconUpdateNedded = true;
+        return;
+    }
+    TX_ENTRY
+    switch ( mPlaybackData->playbackState() ) {
+        case MpPlaybackData::Playing:
+            TX_LOG_ARGS( "MpPlaybackData::Playing" )
+            mPlayPauseAction->setIcon( *mPauseIcon );
+            mPlayPauseContainer->show();
+            break;
+        case MpPlaybackData::Paused:
+        case MpPlaybackData::Stopped:
+            TX_LOG_ARGS( "MpPlaybackData::Paused" )
+            mPlayPauseAction->setIcon( *mPlayIcon );
+            mPlayPauseContainer->show();
+            break;
+        case MpPlaybackData::NotPlaying:
+            mPlayPauseContainer->hide();       
+            break;
+        default:
+            break;
+    }
+    TX_EXIT
+}
+
+/*!
+ Slot called to start the album and list opening animation.
+ */
+void MpMediaWallView::showTrackList()
+{
+    if( mShowingSongsList ) {
+        return;
+    }
+    mShowingSongsList = true;
+    setUpListAnimation();
+    mListShowAnimationGroup->setDirection(QAbstractAnimation::Forward);
+    mListShowAnimationGroup->start();
+    mModel->setItemVisibility( mMediaWallWidget->currentIndex(), false );
+}
+
+/*!
+ Slot to be called to starts the album and list closing animation.
+ */
+void MpMediaWallView::hideTracksList()
+{
+    mListShowAnimationGroup->setDirection(QAbstractAnimation::Backward);
+    connect(mListShowAnimationGroup, SIGNAL(finished()), this, SLOT(dismissListClosingAnimation()));
+    mListShowAnimationGroup->start();
+}
+
+/*!
+ Slot to be called when list closing animation is done or when we want to cancel the animation.
+ */
+void MpMediaWallView::dismissListClosingAnimation()
+{
+    if ( !mShowingSongsList ) {
+        return;
+    }
+    mShowingSongsList = false;
+    mAlbumCover->hide();
+    mTrackList->hide();
+    mModel->setItemVisibility( mMediaWallWidget->currentIndex(), true );
+    mListShowAnimationGroup->stop();
+    disconnect(mListShowAnimationGroup, SIGNAL(finished()), this, SLOT(dismissListClosingAnimation()));
+}
+
+/*!
+ Slot to be called when a list item is selected by the user.
+ */
+void MpMediaWallView::listItemActivated( const QModelIndex &index )
+{
+    int albumIndex = mMediaWallWidget->currentIndex().row();
+    //We are playing on the shared engine, but we pass the collection data that
+    //points to albums on media wall, this is used to construct the playlist.
+    MpEngineFactory::sharedEngine()->playAlbumSongs( albumIndex, index.row(), mCollectionData );
+}
+
+/*!
+ Slot to be called to fetch the songs for an album.
+ */
+void MpMediaWallView::fetchAlbumSongs(QModelIndex index)
+{
+    if ( !mCollectionData->setCurrentAlbum( index.row() ) ) {
+        mEngine->findAlbumSongs( index.row() );
+    }
+}
+
+/*!
+ Loads the media wall widget.
+ */
+void MpMediaWallView::setUpMediaWallWidget()
+{
+    HbIcon defaultIcon( "qtg_large_album_art" );
+    defaultIcon.setSize(mMediaWallWidget->itemSize());
+    mMediaWallWidget->setDefaultImage( defaultIcon.pixmap().toImage() );
+    mMediaWallWidget->enableReflections( true );
+    mMediaWallWidget->setModel( mModel );
+    if ( mPlaybackData->playbackState() != MpPlaybackData::NotPlaying ) {
+        scrollToNowPlaying();
+    }
+    //The rest of the cases are attepting to balance the items on screen.
+    else if ( mModel->rowCount() >= 5 ) {
+        /* 5 and more
+        [0] [1] [X] [3] [4]...
+        */
+        QModelIndex index;
+        index = mModel->index( 2 );
+        mMediaWallWidget->scrollTo( index );
+    }
+    else if ( mModel->rowCount() >=3  ) {
+        /* 4 and 3
+        __ [0] [X] [2] [3]
+        __ [0] [X] [2] __
+        */
+        QModelIndex index;
+        index = mModel->index( 1 );
+        mMediaWallWidget->scrollTo( index );
+    }
+    else {
+        /* 2 and 1
+        __ __ [X] [1] __
+        __ __ [X] __ __
+        */
+        QModelIndex index;
+        index = mModel->index( 0 );
+        mMediaWallWidget->scrollTo( index );
+    }
+    mMediaWallWidget->setTitleFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+    mMediaWallWidget->setDescriptionFontSpec( HbFontSpec( HbFontSpec::Secondary ) );
+    mMediaWallWidget->setScrollBarPolicy( HgWidget::ScrollBarAlwaysOn ); //HgWidget::ScrollBarAutoHide
+    mMediaWallWidget->scrollBar()->setInteractive( true );
+    mMediaWallWidget->setIndexFeedbackPolicy( HgWidget::IndexFeedbackSingleCharacter );
+    connect(mMediaWallWidget, SIGNAL(animationAboutToEnd(QModelIndex)), SLOT(fetchAlbumSongs(QModelIndex)));
+    connect(mMediaWallWidget, SIGNAL(activated(QModelIndex)), SLOT(showTrackList()));
+    connect(mMediaWallWidget, SIGNAL(scrollingStarted()), SLOT(dismissListClosingAnimation()));
+}
+
+/*!
+ Scrolls the media wall to now playing position.
+ */
+void MpMediaWallView::scrollToNowPlaying()
+{
+    if ( mMediaWallWidget  && mPlaybackData->playbackState() != MpPlaybackData::NotPlaying ) {
+        int albumId = mPlaybackData->albumId();
+        QModelIndex index;
+        index = mModel->index( mCollectionData->itemIndex( albumId ) );
+        mMediaWallWidget->scrollTo( index );
+    }
+}
+
+/*!
+ Sets up the album and list animation.
+ */
+void MpMediaWallView::setUpListAnimation()
+{
+    if ( !mListShowAnimationGroup ) {
+        mListShowAnimationGroup = new QParallelAnimationGroup( this );
+        mCoverShowListAnimation = new QPropertyAnimation(mAlbumCover, "geometry", this );
+        mCoverShowListAnimation->setDuration( 400 );        
+        mCoverShowListAnimation->setEasingCurve(QEasingCurve::InOutCubic);
+        mListShowAnimationGroup->addAnimation(mCoverShowListAnimation);
+        mListShowListAnimation = new QPropertyAnimation( mTrackList, "geometry", this );
+        mListShowListAnimation->setDuration( 400 );
+        mListShowListAnimation->setEasingCurve(QEasingCurve::InOutCubic);
+        mListShowAnimationGroup->addAnimation(mListShowListAnimation);      
+    }
+    
+    //Get the current album cover geometry.
+    QPolygonF poly;
+    QModelIndex index = mMediaWallWidget->currentIndex();
+    if ( !mMediaWallWidget->getItemOutline( index, poly ) ) {
+        return;
+    }
+    QRectF itemRect = poly.boundingRect();
+    
+    //Get the album cover icon.
+    QVariant image = mModel->data(index, Qt::DecorationRole);
+    if ( image.canConvert<HbIcon>() ) {
+       mAlbumCover->setIcon(image.value<HbIcon>());
+    }
+    else {
+        mAlbumCover->setIcon(HbIcon());
+    }
+    
+    //Mapping form local media wall coords to window coors.
+    itemRect.moveTo( mMediaWallWidget->geometry().topLeft() + itemRect.topLeft());   
+    //Calculate start and end position of items for the animation.
+    QRectF endRect = itemRect;
+    endRect.moveTo( endRect.topLeft().x() - endRect.size().width() / 2.0, endRect.topLeft().y() );
+    mCoverShowListAnimation->setStartValue(itemRect);
+    mCoverShowListAnimation->setEndValue(endRect);
+    endRect.moveTo( endRect.topRight() );
+    mListShowListAnimation->setStartValue(itemRect);
+    mListShowListAnimation->setEndValue(endRect);
+    
+    //set initial condition and show to prevent flicker.
+    mAlbumCover->setPos(itemRect.topLeft());
+    mTrackList->setPos(itemRect.topLeft());
+    mTrackList->setGeometry(itemRect);
+    mAlbumCover->show();
+    mTrackList->show();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/src/mpmediawallviewplugin.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,156 @@
+/*
+* 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: Plugin interface for Music Player media wall view.
+*
+*/
+
+#include <xqplugin.h>
+
+#include "mpmediawallviewplugin.h"
+#include "mpmediawallview.h"
+#include "mptrace.h"
+
+/*!
+    \class MpMediaWallViewPlugin
+    \brief Plugin interface for Music Player media wall view.
+
+    media wall view plugin provides interface to the media wall view
+    beyond a plugin interface for application and view separation.
+*/
+
+/*!
+    \fn void command( int command )
+
+    This signal is emitted when the view issues a \a command to the
+    application such as request to switch to a different view.
+ */
+
+/*!
+ Constructs the media wall view plugin.
+ */
+MpMediaWallViewPlugin::MpMediaWallViewPlugin()
+    : mView(0),
+      mState(NullView)
+{
+    TX_LOG
+}
+
+/*!
+ Destructs the media wall view plugin.
+ */
+MpMediaWallViewPlugin::~MpMediaWallViewPlugin()
+{
+    TX_LOG
+}
+
+/*!
+ Creates the media wall view.
+ */
+void MpMediaWallViewPlugin::createView()
+{
+    TX_ENTRY
+    if ( mState == NullView ) {
+        mView = new MpMediaWallView();
+        connect( mView, SIGNAL(command(int)), this, SIGNAL(command(int)) );
+        mState = Created;
+    }
+    TX_EXIT
+}
+
+/*!
+ Destroys the media wall view.
+ */
+void MpMediaWallViewPlugin::destroyView()
+{
+    TX_ENTRY
+    if ( mState != NullView ) {
+        delete mView;
+        mView = 0;
+        mState = NullView;
+    }
+    TX_EXIT
+}
+
+/*!
+ Activates the media wall view. View initialization is done very first time.
+ */
+void MpMediaWallViewPlugin::activateView()
+{
+    TX_ENTRY_ARGS("mState=" << mState);
+    switch ( mState ) {
+    case Created:
+        mView->initializeView();
+        mView->activateView();
+        mState = Activated;
+        break;
+    case Initialized:
+        mView->activateView();
+        mState = Activated;
+        break;
+    default:
+        // Ignore
+        break;
+    }
+    TX_EXIT
+}
+
+/*!
+ Deactivates the media wall view.
+ */
+void MpMediaWallViewPlugin::deactivateView()
+{
+    TX_ENTRY
+    if ( mState == Activated ) {
+        mView->deactivateView();
+        mState = Initialized;
+    }
+    TX_EXIT
+}
+
+/*!
+ Returns pointer to QGraphicsWidget, which is the media wall view.
+ The returned pointer is 0, if it is not created first.
+
+ \sa createView()
+ */
+QGraphicsWidget* MpMediaWallViewPlugin::getView()
+{
+    TX_LOG
+    return mView;
+}
+
+/*!
+ Slot to be called when application orientation changes.
+
+ \reimp
+ */
+void MpMediaWallViewPlugin::orientationChange( Qt::Orientation orientation )
+{
+    TX_LOG
+    Q_UNUSED(orientation);
+}
+
+/*!
+ Slot to handle back command from softkey.
+
+ \reimp
+ */
+void MpMediaWallViewPlugin::back()
+{
+    //do nothing, softkey is handledinternally by the view.
+    TX_LOG
+}
+
+XQ_EXPORT_PLUGIN2( mpmediawallviewplugin, MpMediaWallViewPlugin );
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/src/mpreflectioneffect.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,98 @@
+/*
+* 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: Reflection effect for Music Player Media Wall.
+*
+*/
+
+#include <QPainter>
+#include <QGraphicsItem>
+#include <hbinstance.h>
+
+#include "mpreflectioneffect.h"
+
+
+/*!
+    \class MpReflectionEffect
+    \brief The MpReflectionEffect class provides a reflection effect.
+
+    Renders the source with a reflection.
+*/
+
+/*!
+    Constructs a new MpReflectionEffect instance.
+    The \a parent parameter is passed to QGraphicsEffect's constructor.
+*/
+MpReflectionEffect::MpReflectionEffect(QObject *parent)
+    : QGraphicsEffect( parent )
+{
+}
+
+/*!
+    Destroys the effect.
+*/
+MpReflectionEffect::~MpReflectionEffect()
+{
+}
+
+/*!
+    \reimp
+*/
+QRectF MpReflectionEffect::boundingRectFor(const QRectF &rect) const
+{
+    QRectF retRect = rect;
+    //this bounding rect is in device cordinates, correcting based on current transform.
+    if ( hbInstance->allMainWindows()[0]->orientation() == Qt::Horizontal ) {
+#ifdef __WINS__        
+        retRect.adjust(0,0,retRect.width(),0); //wincw with forced rotation is to the right.
+#else
+        retRect.adjust(-retRect.width(),0,0,0);//currently hardware rotations is to the left.
+#endif
+    } else {
+        retRect.adjust(0,0,0,retRect.height());
+    }
+    
+    return retRect;
+}
+
+/*!
+    \reimp
+*/
+void MpReflectionEffect::draw(QPainter *painter)
+{
+    //currently sourceBoundingRect returns somehing like boundingRectFor and 
+    //wrong rect for widgets with scroll area. As a workaround we can get the
+    //original bounding rect assuming that the widget using the effect is the 
+    //effect parent.
+    QGraphicsItem * sourceItem;
+    sourceItem = qobject_cast<QGraphicsItem *>( parent() );
+    QPixmap pixmap;
+    QPoint offset;
+    pixmap = sourcePixmap( Qt::LogicalCoordinates,&offset, QGraphicsEffect::NoPad );
+    painter->drawPixmap( offset, pixmap );
+    if ( sourceItem ) {
+        painter->save();
+        painter->scale( 1, -1 );
+        //for some reson tranlation does not work, translating cordinates by hand.
+        QPointF reflectionOffset( 0.0, - 2.0 * sourceItem->boundingRect().height() );
+        painter->drawPixmap( offset + reflectionOffset, pixmap );
+        QRectF reflectionRect;
+        reflectionRect.setTopLeft( reflectionOffset );
+        reflectionRect.setHeight ( sourceItem->boundingRect().height() );
+        reflectionRect.setWidth( pixmap.width() );
+        painter->fillRect( reflectionRect, QColor::fromRgbF( 0, 0, 0, 0.5f ) );
+        painter->restore();
+    }
+}
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/src/mptracklistwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,182 @@
+/*
+* 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: Track List Widget for Music Player Media Wall.
+*
+*/
+
+
+#include <QGraphicsSceneMouseEvent>
+
+#include <hbinstance.h>
+#include <hblistview.h>
+#include <hbframeitem.h>
+#include <hbmainwindow.h>
+#include <hbstyleloader.h>
+
+
+#include "mptracklistwidget.h"
+#include "mpreflectioneffect.h"
+
+const int swipeAngleTolerance = 30; // angle is from 0 to 360
+
+/*!
+    \class MpTrackListWidget
+    \brief Widget with a list of tracks for Media Wall.
+    
+    This widget provides a list with custom style and a background.
+
+*/
+
+/*!
+    \fn void closed()
+
+    This signal is emitted when the track list is closed by the user with a 
+    left swipe gesture.
+ */
+
+
+/*!
+   Creates the MpTrackListWidget. 
+ */
+MpTrackListWidget::MpTrackListWidget( QGraphicsItem *parent ) : HbWidget( parent ) 
+{
+    // Register the custorm css path for the list items.
+    HbStyleLoader::registerFilePath(":/css/mpcustomlistitem.css");
+    HbStyleLoader::registerFilePath(":/css/mpcustomlistitem.hblistviewitem.widgetml");    
+    mList = new HbListView( this );
+    // set layout name that matches the custom list item layout.
+    mList->setLayoutName("mpmwtracklist");
+    
+    //grab the gesture for close.
+    grabGesture(Qt::SwipeGesture);
+    
+    mFrameItem = new HbFrameItem( this );
+    mFrameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
+    mFrameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" );  
+    mFrameItem->setZValue(-1);
+    
+    MpReflectionEffect *effect = new MpReflectionEffect(this);
+    setGraphicsEffect(effect);
+}
+
+/*!
+ Destructs the track list widget.
+ */
+MpTrackListWidget::~MpTrackListWidget()
+{
+}
+
+/*!
+    Returns the HbListView instance.
+ */
+HbListView *MpTrackListWidget::list()
+{
+    return mList;
+} 
+
+/*!
+    \reimp
+ */
+void MpTrackListWidget::resizeEvent(QGraphicsSceneResizeEvent *event)
+{
+    mFrameItem->setGeometry( rect() );
+    qreal margin = 0.0;
+    style()->parameter(QString("var(hb-param-margin-gene-middle-vertical)"), margin);
+    mList->setGeometry( rect().adjusted( margin, margin, -margin, -margin ) );
+    HbWidget::resizeEvent( event );
+}
+
+/*!
+    \reimp
+ */
+void MpTrackListWidget::mousePressEvent( QGraphicsSceneMouseEvent *event )
+{
+    if ( event->button() == Qt::LeftButton ) {
+        event->accept();
+    }
+    else {
+        event->ignore();
+    }
+}
+
+/*!
+    \reimp
+ */
+void MpTrackListWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+    if ( event->button() == Qt::LeftButton ) {
+        event->accept();
+    }
+    else {
+        event->ignore();
+    }
+}
+
+/*!
+    \reimp
+ */
+void MpTrackListWidget::gestureEvent(QGestureEvent *event)
+{
+    QGesture* gesture = event->gesture(Qt::SwipeGesture);
+    if (gesture) {
+        QSwipeGesture* swipe = static_cast<QSwipeGesture *>(gesture);
+        if (swipe->state() == Qt::GestureFinished && 
+                swipeAngleToDirection (swipe->swipeAngle()) == QSwipeGesture::Left ) {
+            //Left gesture is the direction in wich the track list slides to close.
+            emit closed();
+            event->accept(Qt::SwipeGesture);
+        }
+    }    
+}
+
+/*!
+    Maps swipe \a angle to QSwipeGesture::SwipeDirection based on a tolerance 
+    parameter and orientation. This funtions helps to identify a swipe even 
+    if it is not sharp movement from 180 to 0 degrees on the righ swipe 
+    gesture for instance. Since gesture events are mesured on device 
+    cordinates this also helps to correct the gesture to local cordinates 
+    bases on device orientation, wich is done using QT transformations, 
+    meaning local cordinates and device cordinates are not always aligned.
+ */
+QSwipeGesture::SwipeDirection MpTrackListWidget::swipeAngleToDirection(
+        int angle )
+{
+    int delta = swipeAngleTolerance;
+    if ( hbInstance->allMainWindows()[0]->orientation() == Qt::Horizontal ) {
+    //correction for transformation on rotation.
+#ifdef __WINS__ //wincw with forced rotation is to the right.
+    angle += ( angle < 90 ) ? 270 : -90; 
+#else//currently hardware rotations is to the left.
+    angle += 90;
+    if ( angle > 360 ) {
+        angle -= 360;
+    }
+#endif    
+      
+    }
+    QSwipeGesture::SwipeDirection direction( QSwipeGesture::NoDirection );
+    if ( ( angle > 90 - delta) && ( angle < 90 + delta ) ) {
+        direction = QSwipeGesture::Up;
+    } else if ( ( angle > 270 - delta ) && (angle < 270 + delta ) ) {
+        direction = QSwipeGesture::Down;
+    } else if ( ( ( angle >= 0 ) && ( angle < delta ) ) 
+            || ( ( angle > 360 - delta ) && ( angle <= 360 ) ) ) {
+        direction = QSwipeGesture::Right;
+    } else if ( ( angle > 180 - delta ) && ( angle < 180 + delta ) ) {
+        direction = QSwipeGesture::Left;
+    }
+    return direction;    
+}
+
+//EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,20 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpmediawalldocumentloader
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/tsrc/unittest_mpmediawalldocumentloader/inc/unittest_mpmediawalldocumentloader.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* 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: Unit test for MpMediaWallDocumentLoader
+*
+*/
+
+#ifndef TESTMPMEDIAWALLDOCUMENTLOADER_H
+#define TESTMPMEDIAWALLDOCUMENTLOADER_H
+
+#include <QtTest/QtTest>
+
+class MpMediaWallDocumentLoader;
+
+class TestMpMediaWallDocumentLoader : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    TestMpMediaWallDocumentLoader();
+    virtual ~TestMpMediaWallDocumentLoader();
+
+signals:
+
+
+public slots:
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+
+private slots:
+    void testCreateHgMediawall();
+    void testCreateHbToolButton();
+    void testCreateQObject();
+
+private:
+
+    MpMediaWallDocumentLoader          *mTest;
+
+};
+
+#endif  // TESTMPMEDIAWALLDOCUMENTLOADER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/tsrc/unittest_mpmediawalldocumentloader/src/unittest_mpmediawalldocumentloader.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,140 @@
+/*
+* 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: Unit test for MpMediaWallDocumentLoader
+*
+*/
+
+#include <qnamespace.h>
+#include <hbtoolbutton.h>
+
+#include "stub/inc/hgmediawall.h"
+#include "unittest_mpmediawalldocumentloader.h"
+
+
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpmediawalldocumentloader.h"
+#undef private
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    TestMpMediaWallDocumentLoader tv;
+
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpmediawalldocumentloader.txt";
+
+        return QTest::qExec(&tv, 3, pass);
+    }
+}
+
+TestMpMediaWallDocumentLoader::TestMpMediaWallDocumentLoader()
+    : mTest(0)
+{
+}
+
+TestMpMediaWallDocumentLoader::~TestMpMediaWallDocumentLoader()
+{
+    delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpMediaWallDocumentLoader::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpMediaWallDocumentLoader::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpMediaWallDocumentLoader::init()
+{
+    mTest = new MpMediaWallDocumentLoader();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpMediaWallDocumentLoader::cleanup()
+{
+    delete mTest;
+    mTest = 0;
+}
+
+/*!
+ Tests the correct creation of HgMediawall.
+ */
+void TestMpMediaWallDocumentLoader::testCreateHgMediawall()
+{
+    cleanup();
+    init();
+    QObject *theObject;
+    theObject = mTest->createObject(QString("HgMediawall"),QString("myHgMediawall"));
+    QCOMPARE(theObject->metaObject()->className(),"HgMediawall");
+    QCOMPARE(theObject->objectName(),QString("myHgMediawall"));
+    QVERIFY(qobject_cast<HgMediawall*>(theObject));
+    delete theObject;
+
+}
+
+/*!
+ Tests the correct creation of HbToolButton.
+ */
+void TestMpMediaWallDocumentLoader::testCreateHbToolButton()
+{
+    cleanup();
+    init();
+    QObject *theObject;
+    theObject = mTest->createObject(QString("HbToolButton"),QString("myHbToolButton"));
+    QCOMPARE(theObject->metaObject()->className(),"HbToolButton");
+    QCOMPARE(theObject->objectName(),QString("myHbToolButton"));
+    QVERIFY(qobject_cast<HbToolButton*>(theObject));
+    delete theObject;
+
+}
+
+/*!
+ Tests the correct creation of QObject, this should be pased to the
+ base class and base class should return a named object.
+ */
+void TestMpMediaWallDocumentLoader::testCreateQObject()
+{
+    cleanup();
+    init();
+    QObject *theObject;
+    theObject = mTest->createObject(QString("QObject"),QString("myQObject"));
+    QCOMPARE(theObject->metaObject()->className(),"QObject");
+    QCOMPARE(theObject->objectName(),QString("myQObject"));
+    delete theObject;
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/tsrc/unittest_mpmediawalldocumentloader/stub/inc/hgmediawall.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* 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: HgMediawall stub for testing MpMediaWallDocumentLoader
+*
+*/
+
+#ifndef HGMEDIAWALL_H
+#define HGMEDIAWALL_H
+
+//includes
+#include <QObject>
+
+class HgMediawall : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit HgMediawall();
+    virtual ~HgMediawall();
+};
+
+#endif    // HGMEDIAWALL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/tsrc/unittest_mpmediawalldocumentloader/stub/src/hgmediawall.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* 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: HgMediawall stub for testing MpMediaWallDocumentLoader
+*
+*/
+
+#include "stub/inc/hgmediawall.h"
+
+
+/*!
+ Constructs the now playing widget stub
+ */
+HgMediawall::HgMediawall()
+{
+}
+
+/*!
+ Destructs the now playing widget stub.
+ */
+HgMediawall::~HgMediawall()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpmediawallviewplugin/tsrc/unittest_mpmediawalldocumentloader/unittest_mpmediawalldocumentloader.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,36 @@
+#
+# 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
+CONFIG += qtestlib hb
+CONFIG += symbian_test
+TARGET = unittest_mpmediawalldocumentloader
+TARGET.CAPABILITY = CAP_APPLICATION
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+    ../../../../inc
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+
+HEADERS += stub/inc/hgmediawall.h \
+           inc/unittest_mpmediawalldocumentloader.h \
+           ../../inc/mpmediawalldocumentloader.h
+
+SOURCES += stub/src/hgmediawall.cpp \
+           src/unittest_mpmediawalldocumentloader.cpp \
+           ../../src/mpmediawalldocumentloader.cpp
+
--- a/mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -23,7 +23,7 @@
 
 //forward declartions
 class HbRadioButtonList;
-class MpEqualizerWrapper;
+class MpEngine;
 
 //class declaration
 class MpEqualizerWidget : public HbDialog
@@ -41,17 +41,17 @@
     
 public slots:
     void presetSelected(int index);
-    void equalizerReady();
     void cancelSelected(bool checked);
     void okSelected(bool checked);
 
+private: // functions
+    QString getLocalizedString( QString name );
+    
 private:
     
-    MpEqualizerWrapper *mEqualizerWrapper;  //owned    
+    MpEngine           *mMpEngine;         // Own
     HbRadioButtonList  *mPresetsList;  //owned
-    
-    int  mOriginalPreset;
-    bool mEqualizerReady;
+    int                mOriginalPreset;
 
     Q_DISABLE_COPY(MpEqualizerWidget)
     
--- a/mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +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: Wrapper for equalizer utility
-*
-*/
-
-#ifndef MPEQUALIZERWRAPPER_H
-#define MPEQUALIZERWRAPPER_H
-
-// System includes
-#include <qobject>
-#include <QStringList>
-
-class MpEqualizerWrapperPrivate;
-
-/**
- *  Wrapper for equalizer utilities
- */
-class MpEqualizerWrapper : public QObject
-    {
-    Q_OBJECT
-    Q_PROPERTY(int activePreset READ activePreset)
-    Q_PROPERTY(QStringList presetNames READ presetNames)
-    
-public:
-
-    explicit MpEqualizerWrapper( QObject *parent = 0 );
-    virtual ~MpEqualizerWrapper();
-
-    void applyPreset( int preset );
-    void disableEqualizer();
-
-    int activePreset();
-
-    QStringList presetNames();
-
-signals:
-    void equalizerReady();
-
-private:
-
-    Q_DISABLE_COPY(MpEqualizerWrapper)
-    MpEqualizerWrapperPrivate *d_ptr;
-
-    friend class MpEqualizerWrapperPrivate;
-    };
-
-#endif // MPEQUALIZERWRAPPER_H
-
-//End of File
--- a/mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwrapper_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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: Wrapper for equalizer utility - private implementation.
-*
-*/
-
-#ifndef MPEQUALIZERWRAPPER_P_H
-#define MPEQUALIZERWRAPPER_P_H
-
-// System includes
-#include <e32base.h>
-#include <mdaaudiosampleplayer.h>
-
-// FORWARD DECLARATIONS
-class MMPXPlaybackUtility;
-class CAudioEqualizerUtility;
-
-class MpEqualizerWrapperPrivate : public CBase,
-                                          public MMdaAudioPlayerCallback
-    {
-public:
-
-    MpEqualizerWrapperPrivate( MpEqualizerWrapper *wrapper );
-    virtual ~MpEqualizerWrapperPrivate();
-
-    void init();
-    void applyPreset( int preset );
-	int activePreset();
-    void disableEqualizer();
-    QStringList presetNames();
-
-private:
-
-    void DoInitL();
-    void GetPresetId( TInt& aPresetId );
-    TInt GetEngineIndexL(const TInt preset) const; 
-    void HandlePresetActivation( TInt aActivatedPreset );
-    void MapcInitComplete(
-        TInt aError, const TTimeIntervalMicroSeconds& aDuration );
-    void MapcPlayComplete( TInt aError );
-    
-private: 
-
-    MpEqualizerWrapper *q_ptr;    
-    CMdaAudioPlayerUtility* iMdaPlayUtility;
-    MMPXPlaybackUtility* iMpxPlaybackUtility;    
-    CAudioEqualizerUtility* iEqualizerUtility;
-
-    TInt iCurrentPresetIndex;
-    };
-
-#endif // MPEQUALIZERWRAPPER_P_H
-
-//End of File
--- a/mpviewplugins/mpplaybackviewplugin/inc/mpplaybackview.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpplaybackview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -27,12 +27,14 @@
 class MpPlaybackData;
 class MpPlaybackWidget;
 class MpEqualizerWidget;
-class QTranslator;
 
 
 class MpPlaybackView : public MpViewBase
 {
     Q_OBJECT
+    Q_PROPERTY(QString PlaybackStatus READ playbackStatus)
+    Q_PROPERTY(bool Shuffle READ shuffleEnabled)
+    Q_PROPERTY(bool Repeat READ repeatEnabled)
 
 public:
 
@@ -43,6 +45,10 @@
     void activateView();
     void deactivateView();
 
+    QString playbackStatus();
+    bool shuffleEnabled();
+    bool repeatEnabled();
+    
 signals:
 
     void command( int aCommand );
@@ -64,11 +70,22 @@
 
     void handleSongSelected();
     void showEqualizerDialog();
+    void closeEqualizerDialog();
+    
+    void startRewindTimer();
+    void startForwardTimer();
+    void startSeekRewind();
+    void startSeekForward();
+    void endRewind();
+    void endForward();
+    
+    void connectButtons();
 
 private:
 
     void setupMenu();
     void setupToolbar();
+    void updatePlayPauseIcon();
 
 private:
 
@@ -78,7 +95,7 @@
     MpEqualizerWidget       *mEqualizerWidget;  // Own
 
     HbMainWindow            *mWindow;           // Not own
-    HbAction                *mNavigationBack;   // Own
+    HbAction                *mSoftKeyBack;      // Own
     bool                    mActivated;
 
     HbIcon                  *mPlayIcon;         // Own
@@ -89,12 +106,12 @@
     HbAction                *mPlayPauseAction;  // Not own
     HbAction                *mRepeatAction;     // Not own
     HbAction                *mShuffleAction;    // Not own
-    
-    QTranslator             *mMpTranslator;     // Own
-    QTranslator             *mCommonTranslator; // Own
+
+    QTimer                  *mTimer;
 
     bool                    mShuffle;
     bool                    mRepeat;
+    bool                    mSeeking;
 
     Q_DISABLE_COPY(MpPlaybackView)
 };
--- a/mpviewplugins/mpplaybackviewplugin/inc/mpplaybackviewplugin.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpplaybackviewplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef MPPLAYBACKVIEWPLUGIN_H
 #define MPPLAYBACKVIEWPLUGIN_H
 
-#include <qobject>
+#include <QObject>
 #include <mpxviewpluginqt.h>
 
 //forward declartions
--- a/mpviewplugins/mpplaybackviewplugin/inc/mpplaybackwidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpplaybackwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -38,10 +38,12 @@
 
     MpPlaybackWidget( MpPlaybackData *data, QGraphicsItem *parent=0 );
     virtual ~MpPlaybackWidget();
+    void repeatChanged( bool value );
 
 signals:
 
     void setPlaybackPosition( int value );
+    void signalPlaybackInfoChanged();
 
 public slots:
 
@@ -49,7 +51,7 @@
     void durationChanged();
     void positionChanged();
     void albumArtChanged();
-
+  
 private slots:
 
     void handleSliderPressed();
@@ -71,8 +73,8 @@
     HbLabel                 *mAlbumName;        // Not own
     HbLabel                 *mAlbumArt;         // Not own
     HbProgressSlider        *mProgressBar;      // Not own
-
-
+    HbLabel                 *mRealAudioIndicator;          // Not own
+    HbLabel                 *mRepeatIndicator;           // Not own
 
     bool                    mProgreesBarDragging;
     int                     mDuration;
--- a/mpviewplugins/mpplaybackviewplugin/mpplaybackviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/mpplaybackviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,55 +14,44 @@
 # Description: 
 #
 
-symbian:TARGET.UID3 = 0x10207C64
-
 TEMPLATE = lib
 CONFIG += hb qt ecomplugin
 TARGET = mpplaybackviewplugin
+symbian: { 
+    TARGET.UID3 = 0x10207C64
+    TARGET.CAPABILITY = All -TCB
+    TARGET.EPOCALLOWDLLDATA = 1
+}
 
 SERVICE.INTERFACE_NAME = org.nokia.mmdt.MpxViewPlugin/1.0
 SERVICE.CONFIGURATION = "<t>0x101FFCA0</t><p>0x101FFC06;0x101FFC3A;0xE419BEEE</p><i>EMPXViewPluginPriorityNormal</i><f>0x00000002</f>"
 
-TARGET.CAPABILITY = All -TCB
-
 DEPENDPATH += .
 INCLUDEPATH += . \
-     inc \
-     ../../inc
+               inc \
+               ../../inc
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
      
-LIBS += -lmpxplaybackutility.dll \
-        -lmpxcommon.dll \
-        -lestor.dll \
-		-lmpxviewframeworkqt.dll \
-		-laudioequalizerutility.dll \
-		-lmpsettingsmanager \
-		-lmpengine \
-		-lmpdata.dll
-	
-symbian:
-{
-TARGET.EPOCALLOWDLLDATA = 1
-    
-BLD_INF_RULES.prj_exports += \
-    "resources/nullsound.mp3 /epoc32/release/winscw/udeb/Z/nullsound.mp3" \
-    "resources/nullsound.mp3 /epoc32/data/Z/system/data/nullsound.mp3"
-}
+LIBS += -lmpxplaybackutility \
+        -lmpxcommon \
+        -lestor \
+        -lmpxviewframeworkqt \
+        -laudioequalizerutility \
+        -lmpsettingsmanager \
+        -lmpengine \
+        -lmpdata
 
-HEADERS = ../../inc/mpviewbase.h \
-	  inc/mpplaybackviewplugin.h \
-      inc/mpplaybackview.h \
-      inc/mpplaybackwidget.h \
-      inc/mpequalizerwrapper.h \
-      inc/mpequalizerwrapper_p.h \
-      inc/mpequalizerwidget.h
+# Input
+HEADERS += ../../inc/mpviewbase.h \
+           inc/mpplaybackviewplugin.h \
+           inc/mpplaybackview.h \
+           inc/mpplaybackwidget.h \
+           inc/mpequalizerwidget.h
 
 SOURCES += src/mpplaybackviewplugin.cpp \
-       src/mpplaybackview.cpp \
-       src/mpplaybackwidget.cpp \
-       src/mpequalizerwrapper.cpp \
-       src/mpequalizerwrapper_p.cpp \
-       src/mpequalizerwidget.cpp
+          src/mpplaybackview.cpp \
+          src/mpplaybackwidget.cpp \
+          src/mpequalizerwidget.cpp
        
 RESOURCES += resources/mpplaybackviewpluginresources.qrc
 
Binary file mpviewplugins/mpplaybackviewplugin/resources/nullsound.mp3 has changed
--- a/mpviewplugins/mpplaybackviewplugin/resources/playbackwidget.docml	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/resources/playbackwidget.docml	Thu Jul 22 16:32:33 2010 +0100
@@ -10,9 +10,33 @@
             <fontspec name="fontSpec" role="Secondary"/>            
         </widget>
         
-        <widget name="artistText" type="HbLabel">
-            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-            <fontspec name="fontSpec" role="Secondary"/>            
+        <widget name="artistRow" type="HbWidget">
+        	<widget name="realAudio" type="HbLabel">
+        		<sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+				<sizehint height="var(hb-param-graphic-size-primary-small)" type="FIXED" width="var(hb-param-graphic-size-primary-small)"/>
+            	<icon iconName="qtg_large_realplayer" name="icon"/>
+            </widget> 
+        	<widget name="artistText" type="HbLabel">
+        		<enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+            	<fontspec name="fontSpec" role="Secondary"/>
+            </widget>
+        	<widget name="repeatIcon" type="HbLabel">
+				<sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+				<sizehint height="var(hb-param-graphic-size-primary-small)" type="FIXED" width="var(hb-param-graphic-size-primary-small)"/>
+          		<icon iconName="qtg_small_repeat" name="icon"/>
+            </widget>
+        	
+        	<layout type="anchor">       
+	            <anchoritem dst="realAudio" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="" srcEdge="LEFT"/>
+	            <anchoritem dst="realAudio" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="" srcEdge="TOP"/>
+	            
+	            <anchoritem dst="artistText" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="realAudio" srcEdge="RIGHT"/>
+	            <anchoritem dst="artistText" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-middle-horizontal)" src="repeatIcon" srcEdge="LEFT"/>
+	            <anchoritem dst="artistText" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="" srcEdge="TOP"/>
+	            
+	            <anchoritem dst="repeatIcon" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-middle-horizontal)" src="" srcEdge="RIGHT"/>
+	            <anchoritem dst="repeatIcon" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="" srcEdge="TOP"/>
+      		 </layout>
         </widget>
         
         <widget name="songText" type="HbLabel">
@@ -44,7 +68,7 @@
     
     <layout type="linear" orientation="Vertical"  spacing="var(hb-param-margin-gene-middle-vertical)" widget="textContainer">
     	<contentsmargins bottom="var(hb-param-margin-gene-screen)" left="var(hb-param-margin-gene-screen)" right="var(hb-param-margin-gene-screen)" top="0.0un"/>
-    	<linearitem itemname="artistText"/>
+    	<linearitem itemname="artistRow"/>
         <linearitem itemname="songText"/>
         <linearitem itemname="albumText"/>
     	<linearitem itemname="progressBar"/>
--- a/mpviewplugins/mpplaybackviewplugin/rom/mpplaybackviewplugin.iby	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/rom/mpplaybackviewplugin.iby	Thu Jul 22 16:32:33 2010 +0100
@@ -22,6 +22,4 @@
 
 ECOM_PLUGIN( mpplaybackviewplugin.dll, mpplaybackviewplugin.rsc )
 
-data=ZSYSTEM\data\nullsound.mp3                nullsound.mp3
-
 #endif //MPPLAYBACKVIEWPLUGIN_IBY
--- a/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -20,14 +20,13 @@
 #include <hblabel.h>
 #include <hbaction.h>
 #include <hbradiobuttonlist.h>
+#include <EqualizerConstants.h>
 
 // User includes
 #include "mpequalizerwidget.h"
-#include "mpequalizerwrapper.h"
+#include "mpenginefactory.h"
 #include "mptrace.h"
 
-// CONSTANTS
-const int KEqualizerPresetNone = -1;
 
 /*!
     \class MpEqualizerWidget
@@ -38,10 +37,9 @@
  Constructs the Equalizer widget.
  */
 MpEqualizerWidget::MpEqualizerWidget() :
-    mEqualizerWrapper(0),
+    mMpEngine(0),
     mPresetsList(0),
-    mOriginalPreset(KEqualizerPresetNone),
-    mEqualizerReady(false)
+    mOriginalPreset(KEqualizerPresetNone)
 {
     TX_ENTRY
     
@@ -55,11 +53,7 @@
  */
 MpEqualizerWidget::~MpEqualizerWidget()
 {
-    TX_ENTRY
-    
-    delete mEqualizerWrapper;
-    
-    TX_EXIT
+	TX_LOG
 }
 
 /*!
@@ -69,12 +63,7 @@
 {
     TX_ENTRY
     
-    mEqualizerWrapper = new MpEqualizerWrapper( this );
-
-    connect( mEqualizerWrapper,
-            SIGNAL( equalizerReady() ),
-            this,
-            SLOT( equalizerReady() ) );
+    mMpEngine = MpEngineFactory::sharedEngine();
 
     TX_EXIT
 }
@@ -93,28 +82,37 @@
     setFrameType(HbPopup::Strong);
     setHeadingWidget(new HbLabel(hbTrId("txt_mus_title_select_preset")));
 
-
-    if ( mEqualizerReady ) {
-        mOriginalPreset = mEqualizerWrapper->activePreset();
-        QStringList listItems = mEqualizerWrapper->presetNames();
-        listItems.prepend(hbTrId("txt_mus_list_off"));
-
-        int presetSelected;
-        if (mOriginalPreset == KEqualizerPresetNone) {
-            presetSelected = 0;     //First list item corresponds to "OFF"
+    mOriginalPreset = mMpEngine->activePreset();
+    QStringList listItems;
+    QStringList presetNames = mMpEngine->presetNames();
+    for ( int i=0; i<presetNames.count(); i++ ) {
+        QString name = getLocalizedString( presetNames.at(i) );
+        if ( name.size() > 0 ) {
+            listItems.append( name );
         }
         else {
-            presetSelected = mOriginalPreset;
+            // Localized string not found, append original name.
+            TX_LOG_ARGS( "Localized string not found = " << name);
+            listItems.append( presetNames.at(i) );
         }
-
-        mPresetsList = new HbRadioButtonList(listItems, presetSelected, HbRadioButtonList::NoPreview, this);
-        setContentWidget( mPresetsList );  //mPresetsList now owned by HbDialog
+    }
+    listItems.prepend(hbTrId("txt_mus_list_off"));
+    TX_LOG_ARGS( "PresetNames=" << listItems);
+    int presetSelected;
+    if (mOriginalPreset == KEqualizerPresetNone) {
+        presetSelected = 0;     //First list item corresponds to "OFF"
+    }
+    else {
+        presetSelected = mOriginalPreset;
+    }
 
-        connect( mPresetsList, 
-               SIGNAL(itemSelected(int)), 
-               this, 
-               SLOT(presetSelected(int)));
-    }
+    mPresetsList = new HbRadioButtonList(listItems, presetSelected, HbRadioButtonList::NoPreview, this);
+    setContentWidget( mPresetsList );  //mPresetsList now owned by HbDialog
+
+    connect( mPresetsList, 
+           SIGNAL(itemSelected(int)), 
+           this, 
+           SLOT(presetSelected(int)));
     
     clearActions();
     action = new HbAction( hbTrId( "txt_common_button_ok" ) );
@@ -134,12 +132,12 @@
 {
     TX_ENTRY
     
-    if (mEqualizerWrapper) {
+    if (mMpEngine) {
         if (index == 0) {
-            mEqualizerWrapper->disableEqualizer();
+            mMpEngine->disableEqualizer();
         }
         else{
-            mEqualizerWrapper->applyPreset( index );
+            mMpEngine->applyPreset( index );
         }
     }
     
@@ -154,15 +152,15 @@
     TX_ENTRY
     Q_UNUSED(checked);
     
-    if (mEqualizerWrapper && mPresetsList) {
+    if (mMpEngine && mPresetsList) {
         // Return to the original Preset
-        if (mOriginalPreset != mEqualizerWrapper->activePreset()) {
+        if (mOriginalPreset != mMpEngine->activePreset()) {
             if (mOriginalPreset == KEqualizerPresetNone) {
-                mEqualizerWrapper->disableEqualizer();
+                mMpEngine->disableEqualizer();
                 mPresetsList->setSelected( 0 );     //First list item corresponds to "OFF"
             }
             else {
-                mEqualizerWrapper->applyPreset( mOriginalPreset );
+                mMpEngine->applyPreset( mOriginalPreset );
                 mPresetsList->setSelected( mOriginalPreset );
             }            
         }
@@ -180,23 +178,39 @@
     Q_UNUSED(checked);    
     
     //Update original preset
-    if (mEqualizerWrapper) {
-        mOriginalPreset = mEqualizerWrapper->activePreset();
+    if (mMpEngine) {
+        mOriginalPreset = mMpEngine->activePreset();
     }
     
     TX_EXIT
 }
 
 /*!
- Equalizer utility is ready
+  Return the localized string base on preset name.
  */
-void MpEqualizerWidget::equalizerReady()
+QString MpEqualizerWidget::getLocalizedString( QString name )
 {
-    TX_ENTRY
+    TX_ENTRY_ARGS( "Name = " << name );
+    QString localizedString;
+
+    if ( name == "Bass Booster" ) {
+        localizedString = hbTrId( "txt_mus_list_bass_booster" );
+    }
+    else if ( name == "Classic" ) {
+        localizedString = hbTrId( "txt_mus_list_classical" );
+    }
+    else if ( name == "Pop" ) {
+        localizedString = hbTrId( "txt_mus_list_pop" );
+    }
+    else if ( name == "Jazz" ) {
+        localizedString = hbTrId( "txt_mus_list_jazz" );
+    }
+    else if ( name == "Rock" ) {
+        localizedString = hbTrId( "txt_mus_list_rock" );
+    }
     
-    mEqualizerReady = true;
-    
-    TX_EXIT
+    TX_EXIT_ARGS( "Logical String = " << localizedString );
+    return localizedString;
 }
 
 //End of File
--- a/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +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: Wrapper for equalizer utility.
-*
-*/
-
-// System includes
-#include <qstringlist>
-#include <qdebug>
-
-// User includes
-#include "mpequalizerwrapper.h"
-#include "mpequalizerwrapper_p.h"
-#include "mptrace.h"
-
-/*!
-    \class MpEqualizerWrapper
-    \ingroup musicplayer
-    \brief Wrapper for equalizer utility.
-    \since 10.1
-    
-    Playback wrapper provides Qt style interface to the audio equalizer
-    utilities. Its implementation is hidden using private class data pattern.
-    
-    This class defines several APIs that are needed from \a MpPlaybackView
-    and other components in \a mpplaybackviewplugin.
-
-    \sa MpEqualizerWrapperPrivate
-*/
-
-/*!
-    \fn MpEqualizerWrapper::equalizerReady()
-
-    This signal will be emitted when Audio Eqalizer is initialized. This is
-    when all APIs, like \a applyPreset, are ready to be used.
-    
-    \sa MpEqualizerWrapperPrivate::MapcInitComplete
-*/
-
-/*!
-    Constructs a new MpEqualizerWrapper with \a parent and initializes
-    private imaplementation.
-
-*/
-MpEqualizerWrapper::MpEqualizerWrapper( QObject *parent )
-    : QObject(parent)
-{
-    TX_ENTRY
-
-    d_ptr = new MpEqualizerWrapperPrivate(this);
-    d_ptr->init();
-
-    TX_EXIT
-}
-
-/*!
-    Destructs the class and its private imaplementation.
-    
- */
-MpEqualizerWrapper::~MpEqualizerWrapper()
-{
-    TX_LOG
-
-    delete d_ptr;
-}
-
-/*!
-    Apply the preset by giving preset index. The index is starting with 0
-    which if the "Off". The command then relays to its private implementation.
-
- */
-void MpEqualizerWrapper::applyPreset( int preset )
-{
-    TX_ENTRY_ARGS( "Preset: " << preset );
-    
-	d_ptr->applyPreset(preset);
-
-    TX_EXIT
-}
-
-/*!
-    Disabling the eqaulizer. The command then relays to its private implementation.
-
- */
-void MpEqualizerWrapper::disableEqualizer()
-{
-    TX_ENTRY
-
-    d_ptr->disableEqualizer();
-
-    TX_EXIT
-}
-
-/*!
-    Returning currectly activated preset. The command then relays to its private 
-    implementation. -1 will be returned if the adaptation is not ready or
-    no available preset.
-
- */
-int MpEqualizerWrapper::activePreset()
-{
-    TX_LOG
-    return d_ptr->activePreset();
-}
-
-/*!
-    Returning the list of availale preset names. The command then relays to its 
-    private implementation. 
-
- */
- QStringList MpEqualizerWrapper::presetNames()
-{
-    TX_ENTRY_ARGS( "Names=" << d_ptr->presetNames());
-
-    return d_ptr->presetNames();
-}
-
- //End of File
--- a/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwrapper_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +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: Wrapper for equalizer utility - private implementation.
-*
-*/
-
-// System includes
-#include <qDebug>
-#include <QStringList>
-#include <audioequalizerutility.h>
-#include <EqualizerConstants.h>
-#include <mpxplaybackutility.h>
-
-// User includes
-#include "mpequalizerwrapper.h"
-#include "mpequalizerwrapper_p.h"
-#include "mpsettingsmanager.h"
-#include "mpcommondefs.h"
-#include "mptrace.h"
-
-// CONSTANTS
-_LIT( KMPXNullSoundPath, "\\nullsound.mp3" );
-const TInt KEqualizerID = 0x101FFC76;
-
-/*!
-    \class MpEqualizerWrapperPrivate
-    \ingroup musicplayer
-    \brief Wrapper for equalizer utility - private implementation.
-    
-    This is a private implementation of the audio eqalizer wrapper 
-    utilties interface.
-
-*/
-
-/*!
-    Constructs a new MpEqualizerWrapper with \a parent and initializes its
-    private imaplementation.
-*/
-MpEqualizerWrapperPrivate::MpEqualizerWrapperPrivate(
-    MpEqualizerWrapper *wrapper ): q_ptr( wrapper ),
-    iEqualizerUtility (NULL), iCurrentPresetIndex(KEqualizerPresetNone)
-{
-    TX_LOG
-}
-
-/*!
-    Destructs the class.    
- */
-MpEqualizerWrapperPrivate::~MpEqualizerWrapperPrivate()
-{
-    TX_ENTRY
-
-    delete iEqualizerUtility;
-    
-    if ( iMdaPlayUtility ) 
-    {
-        iMdaPlayUtility->Close();
-    }
-    delete iMdaPlayUtility;
-
-    if ( iMpxPlaybackUtility )
-    {
-        iMpxPlaybackUtility->Close();
-    }
-
-    TX_EXIT
-}
-
-/*!
-    Calls the DoInit to initialize Symbian based components.
-    
-    \sa DoInitL()
- */
-void MpEqualizerWrapperPrivate::init()
-{
-    TX_ENTRY
-
-    TRAPD(err, DoInitL());
-    if ( err != KErrNone )
-    {
-        TX_LOG_ARGS("MpEqualizerWrapperPrivate::init err = " << err);
-    }
-    
-    TX_EXIT
-}
-
-/*!
-    Apply the preset by giving preset index. The index is subtracted by 1 because
-    index 0 represent "Off" at UI level.
-
- */
-void MpEqualizerWrapperPrivate::applyPreset( int preset )
-{
-    TX_ENTRY_ARGS( "preset=" << preset );
-
-    if ( iEqualizerUtility )
-    {
-        TInt presetKey(KErrNotFound);
-        TRAPD(err, presetKey = GetEngineIndexL( preset - 1 ));
-        if ( err != KErrNone )
-        {
-            TX_LOG_ARGS("GetEngineIndexL Error  = " << err);
-            return;
-        }
-        TX_LOG_ARGS( "Preset key in engine =" << presetKey );
-        HandlePresetActivation( presetKey );
-        iCurrentPresetIndex = preset;
-    } 
-    else
-    {
-        TX_LOG_ARGS( "Equalizer not ready." );
-    }
-
-    TX_EXIT
-}
-
-/*!
-    Return current preset index (UI)
-
- */
-int MpEqualizerWrapperPrivate::activePreset()
-{
-    TX_LOG_ARGS("iCurrentPresetIndex = " << iCurrentPresetIndex );
-
-    return iCurrentPresetIndex;
-}
-
-/*!
-    Disabling equalizer by setting the preset to -1 and apply it to 
-    disable current preset.
-
- */
-void MpEqualizerWrapperPrivate::disableEqualizer()
-{
-    TX_ENTRY
-
-    TInt nullPreset( KErrNotFound );
-    iCurrentPresetIndex = KEqualizerPresetNone;
-    HandlePresetActivation( nullPreset );
-
-    TX_EXIT
-}
-
-/*!
-    Returning the list of availale preset names.  
-
-    \sa CAudioEqualizerUtility
- */
-QStringList MpEqualizerWrapperPrivate::presetNames()
-{
-    TX_ENTRY
-
-    QStringList presetList;
-
-    if ( iEqualizerUtility == NULL )
-    {
-        TX_LOG_ARGS( "Equalizer not ready." );
-        return presetList;
-    }
-
-    TArray<TEfAudioEqualizerUtilityPreset> presetArray = iEqualizerUtility->Presets();
-    for (TInt i=0; i<presetArray.Count(); i++)
-    {
-        TPresetName selectedItem = presetArray[i].iPresetName;
-        presetList << QString::fromUtf16( selectedItem.Ptr(), selectedItem.Length() );
-    }
-
-    TX_EXIT
-
-    return presetList;
-}
-
-/*!
- \internal
- */
-void MpEqualizerWrapperPrivate::DoInitL()
-{
-    TX_ENTRY
-
-    if (!iMpxPlaybackUtility)
-    {
-        iMpxPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( MpCommon::KMusicPlayerUid ) );
-    }
-
-    if (iMdaPlayUtility)
-    {
-        iMdaPlayUtility->Close();
-        delete iMdaPlayUtility;
-        iMdaPlayUtility = NULL;
-    }
-    
-    iMdaPlayUtility = ( CMdaAudioPlayerUtility* )User::LeaveIfNull(
-        CMdaAudioPlayerUtility::NewL(
-            *this,
-            EMdaPriorityMin,
-            EMdaPriorityPreferenceNone ));
-
-    TX_LOG_ARGS("Loading null sound");
-    TFileName nullSoundPath( KMPXNullSoundPath );
-    User::LeaveIfError( MPXUser::CompleteWithDllPath( nullSoundPath ) );
-    TX_LOG_ARGS("Loading null sound done!");
-    iMdaPlayUtility->OpenFileL( nullSoundPath );
-    
-    TX_EXIT
-}
-
-
-/*!
- \internal
- */
-void MpEqualizerWrapperPrivate::HandlePresetActivation( TInt aActivatedPreset )
-{
-    TX_ENTRY_ARGS( "aActivatedPreset=" << aActivatedPreset );
-
-    // Store in CenRep file
-    MpSettingsManager::setPreset( aActivatedPreset );
-    
-    // Notify playback framework of the change.
-    TRAPD(error,
-    {
-        iMpxPlaybackUtility->CommandL( EPbApplyEffect, KEqualizerID );
-    });
-    
-    if (error != KErrNone)
-    {
-        TX_ENTRY_ARGS( "Equalizer error:" << error );
-    }
-    
-    TX_EXIT
-}
-
-
-/*!
- \internal
- */
-void MpEqualizerWrapperPrivate::GetPresetId( TInt& aPresetId )
-{
-    TX_ENTRY
-
-    // Get preset id from cenrep
-    TInt presetId( MpSettingsManager::preset() );
-
-    TBool found( EFalse );
-    if ( iEqualizerUtility && presetId != KEqualizerPresetNone )
-    {
-        TArray<TEfAudioEqualizerUtilityPreset> presetArray = iEqualizerUtility->Presets();
-        for ( TInt i = 0; i < presetArray.Count() && found == EFalse; i++ ) {
-            TX_LOG_ARGS("presetArray[" << i << "].iPresetNameKey (" 
-                << presetArray[i].iPresetNameKey << ") vs presetId (" <<presetId << ")");
-            if ( presetArray[i].iPresetNameKey == static_cast<TUint32>( presetId ) ) {
-                found = ETrue;
-                iCurrentPresetIndex = aPresetId = i + 1;
-                break;
-            }
-        }
-    }
-
-    if ( found == EFalse )
-    {
-        iCurrentPresetIndex = aPresetId = KEqualizerPresetNone;
-    }
-
-    TX_EXIT
-}
-
-
-/*!
- \internal
- */
-TInt MpEqualizerWrapperPrivate::GetEngineIndexL( const TInt preset ) const
-{
-    TX_ENTRY_ARGS( "preset=" << preset );
-
-    TInt engineIndex = KErrNotFound;
-
-    TPresetName presetName = iEqualizerUtility->GetPresetL( preset );
-
-    TArray<TEfAudioEqualizerUtilityPreset> presets = iEqualizerUtility->Presets();
-    for (TInt count = 0; count < presets.Count(); count++) 
-    {
-        TPresetName selectedItem = presets[count].iPresetName;
-        TX_LOG_ARGS(" Comparing..." << presets[count].iPresetNameKey );
-        if ( selectedItem == presetName ) {
-            engineIndex = presets[count].iPresetNameKey;
-            TX_LOG_ARGS(" Comparing mached engineIndex = " << engineIndex );
-            break;
-            }
-    }
-
-    TX_EXIT
-
-    return engineIndex;
-}
-
-/*!
- \internal
- */
-void MpEqualizerWrapperPrivate::MapcInitComplete(
-    TInt aError,
-    const TTimeIntervalMicroSeconds& /* aDuration */ )
-{
-    TX_ENTRY_ARGS( "aError=" << aError );
-
-    if ( !aError ) 
-    {
-        TRAPD(err, iEqualizerUtility = CAudioEqualizerUtility::NewL( *iMdaPlayUtility ) );
-        if ( err == KErrNone ) {
-            TInt preset(KEqualizerPresetNone);
-            GetPresetId( preset );
-            emit q_ptr->equalizerReady();
-        }
-        else
-        {
-            TX_ENTRY_ARGS( "CAudioEquqlizerUtility error=" << err );
-        }
-    }
-    else
-    {
-        TX_ENTRY_ARGS( "MapcInitComplete error=" << aError );
-    }
-
-    TX_EXIT
-}
-
-/*!
- \internal
- */
-void MpEqualizerWrapperPrivate::MapcPlayComplete(
-    TInt /* aError */ )
-{
-    TX_LOG
-    // Do nothing
-}
-
-//End of File
--- a/mpviewplugins/mpplaybackviewplugin/src/mpplaybackview.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpplaybackview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,20 +15,19 @@
 *
 */
 
-#include <qpainter>
-#include <qtgui>
+#include <QPainter>
+#include <QtGui>
 
 #include <hbmenu.h>
 #include <hbinstance.h>
 #include <hbtoolbar.h>
+#include <hbtoolbutton.h>
 #include <hbaction.h>
 #include <hbicon.h>
-#include <QTranslator>
-#include <QLocale>
 
 #include "mpplaybackview.h"
 #include "mpplaybackwidget.h"
-#include "mpengine.h"
+#include "mpenginefactory.h"
 #include "mpplaybackdata.h"
 #include "mpsettingsmanager.h"
 #include "mpcommondefs.h"
@@ -60,15 +59,16 @@
     : mMpEngine( 0 ),
       mPlaybackData( 0 ),
       mPlaybackWidget( 0 ),
-      mEqualizerWidget( new MpEqualizerWidget() ),
-      mNavigationBack( 0 ),
+      mEqualizerWidget( 0 ),
+      mSoftKeyBack( 0 ),
       mActivated( false ),
       mPlayIcon( 0 ),
       mPauseIcon( 0 ),
       mShuffleOnIcon( 0 ),
       mShuffleOffIcon( 0 ),
-      mMpTranslator( 0 ),
-      mCommonTranslator( 0 )
+      mTimer(0),
+      mSeeking(false)
+
 {
     TX_LOG
 }
@@ -79,14 +79,12 @@
 MpPlaybackView::~MpPlaybackView()
 {
     TX_ENTRY
-    delete mNavigationBack;
+    delete mSoftKeyBack;
     delete mPlayIcon;
     delete mPauseIcon;
     delete mShuffleOnIcon;
     delete mShuffleOffIcon;
     delete mEqualizerWidget;
-    delete mMpTranslator;
-    delete mCommonTranslator;
     TX_EXIT
 }
 
@@ -98,49 +96,38 @@
 {
     TX_ENTRY
 
-    //Load musicplayer and common translators
-    QString lang = QLocale::system().name();
-    QString path = QString( "z:/resource/qt/translations/" );
-    bool translatorLoaded = false;
-
-    mMpTranslator = new QTranslator( this );
-    translatorLoaded = mMpTranslator->load( path + "musicplayer_" + lang );
-    TX_LOG_ARGS( "Loading translator ok=" << translatorLoaded );
-    if ( translatorLoaded ) {
-        qApp->installTranslator( mMpTranslator );
-    }
-
-    mCommonTranslator = new QTranslator( this );
-    translatorLoaded = mCommonTranslator->load( path + "common_" + lang );
-    TX_LOG_ARGS( "Loading common translator ok=" << translatorLoaded );
-    if ( translatorLoaded ) {
-        qApp->installTranslator( mCommonTranslator );
-    }
-
     mWindow = mainWindow();
 
-    mNavigationBack = new HbAction( Hb::BackNaviAction, this );
-    connect( mNavigationBack, SIGNAL( triggered() ), this, SLOT( back() ) );
+    mSoftKeyBack = new HbAction( Hb::BackNaviAction, this );
+    connect( mSoftKeyBack, SIGNAL( triggered() ), this, SLOT( back() ) );
 
-    mMpEngine = MpEngine::instance();
+    mMpEngine = MpEngineFactory::sharedEngine();
     mPlaybackData = mMpEngine->playbackData();
     connect( mPlaybackData, SIGNAL( playbackStateChanged() ),
              this, SLOT( playbackStateChanged() ) );
 
     mPlaybackWidget = new MpPlaybackWidget( mPlaybackData );
     connect( mPlaybackWidget, SIGNAL( setPlaybackPosition( int ) ), mMpEngine, SLOT( setPosition( int ) ) );
-
+    //repeat should not be displayed on fetcher or embedded.
+    mRepeat = mViewMode == MpCommon::DefaultView ? MpSettingsManager::repeat() : false;
+    mPlaybackWidget->repeatChanged( mRepeat );
     setWidget( mPlaybackWidget );
     setupMenu();
     setupToolbar();
-
-    mEqualizerWidget->prepareDialog();
-
-    // Observe changes in settings.
-    connect( MpSettingsManager::instance(), SIGNAL( shuffleChanged( bool ) ),
-             this, SLOT( shuffleChanged( bool ) ) );
-    connect( MpSettingsManager::instance(), SIGNAL( repeatChanged( bool ) ),
-             this, SLOT( repeatChanged( bool ) ) );
+    
+    //Connect FF and RW buttons when view (toolbar) is ready
+    connect ( mWindow, SIGNAL( viewReady() ), this, SLOT( connectButtons() ) );
+    
+    if ( mViewMode == MpCommon::DefaultView ) {
+        mEqualizerWidget = new MpEqualizerWidget();
+        mEqualizerWidget->prepareDialog();
+        // Observe changes in settings.
+        connect( MpSettingsManager::instance(), SIGNAL( shuffleChanged( bool ) ),
+                 this, SLOT( shuffleChanged( bool ) ) );
+        connect( MpSettingsManager::instance(), SIGNAL( repeatChanged( bool ) ),
+                 this, SLOT( repeatChanged( bool ) ) );
+        connect( mMpEngine, SIGNAL( libraryUpdated() ), this, SLOT( closeEqualizerDialog() ) );
+    }
 
     TX_EXIT
 }
@@ -152,7 +139,7 @@
 {
     TX_ENTRY
     mActivated = true;
-    setNavigationAction( mNavigationBack );
+    setNavigationAction( mSoftKeyBack );
     TX_EXIT
 }
 
@@ -162,18 +149,64 @@
 void MpPlaybackView::deactivateView()
 {
     TX_ENTRY
-    if ( mEqualizerWidget->isActive() ) {
-        mEqualizerWidget->close();
-    }
-
     menu()->close();
-
     setNavigationAction( 0 );
     mActivated = false;
     TX_EXIT
 }
 
 /*!
+ Gets the current status of the view in a form of string
+ */
+QString MpPlaybackView::playbackStatus()
+{
+    TX_ENTRY
+    QString currentStatus;
+    
+        switch ( mPlaybackData->playbackState() ) {
+            case MpPlaybackData::NotPlaying:
+                TX_LOG_ARGS( "playbackStatus: NotPlaying" )
+                currentStatus = "NotPlaying";
+                break;
+			case MpPlaybackData::Playing:
+                TX_LOG_ARGS( "playbackStatus: Playing" )
+                currentStatus = "Playing";
+                break;
+            case MpPlaybackData::Paused:
+                TX_LOG_ARGS( "playbackStatus: Paused" )
+                currentStatus ="Paused";
+                break;
+            case MpPlaybackData::Stopped:
+                TX_LOG_ARGS( "playbackStatus: Stopped" )
+                currentStatus = "Stopped";
+                break;
+            default:
+                break;
+        }
+    TX_EXIT
+    return currentStatus;
+    
+}
+
+/*!
+ Gets the current Shuffle setting value
+ */
+bool MpPlaybackView::shuffleEnabled()
+{
+    TX_ENTRY
+    return mShuffle;
+}
+
+/*!
+ Gets the current Repeat setting value
+ */
+bool MpPlaybackView::repeatEnabled()
+{
+    TX_ENTRY
+    return mRepeat;
+}
+
+/*!
  Slot to be called to activate settings view.
  */
 void MpPlaybackView::startSettingsView()
@@ -222,27 +255,9 @@
 void MpPlaybackView::playbackStateChanged()
 {
     TX_ENTRY
-    switch ( mPlaybackData->playbackState() ) {
-        case MpPlaybackData::Playing:
-            TX_LOG_ARGS( "MpPlaybackData::Playing" )
-            mPlayPauseAction->setIcon( *mPauseIcon );
-            break;
-        case MpPlaybackData::Paused:
-            TX_LOG_ARGS( "MpPlaybackData::Paused" )
-            mPlayPauseAction->setIcon( *mPlayIcon );
-            break;
-        case MpPlaybackData::Stopped:
-            TX_LOG_ARGS( "MpPlaybackData::Paused" )
-            if ( mViewMode == MpCommon::FetchView ) {
-                back();
-            }
-            else {
-                // Treat it like pause in default mode
-                mPlayPauseAction->setIcon( *mPlayIcon );
-            }
-            break;
-        default:
-            break;
+    updatePlayPauseIcon();
+    if ( MpPlaybackData::Stopped == mPlaybackData->playbackState() && mViewMode == MpCommon::FetchView ) {
+          back();
     }
     TX_EXIT
 }
@@ -291,6 +306,7 @@
 {
     mRepeat = repeat;
     mRepeatAction->setText( mRepeat ?  hbTrId( "txt_mus_opt_repeat_off" ) : hbTrId( "txt_mus_opt_repeat_on" ) );
+    mPlaybackWidget->repeatChanged( repeat );
 }
 
 /*!
@@ -329,9 +345,10 @@
 void MpPlaybackView::setupToolbar()
 {
     TX_ENTRY
-    HbToolBar *toolBar = this->toolBar();
-    toolBar->setOrientation( Qt::Horizontal );
-    QActionGroup *actionsGroup = new QActionGroup( toolBar );
+    HbToolBar *myToolBar = toolBar();
+    myToolBar->setObjectName("PlaybackToolbar");
+    myToolBar->setOrientation( Qt::Horizontal );
+    QActionGroup *actionsGroup = new QActionGroup( myToolBar );
 
     if ( mViewMode == MpCommon::DefaultView || mViewMode == MpCommon::EmbeddedView ) {
         mShuffleOnIcon = new HbIcon( "qtg_mono_shuffle" );
@@ -349,44 +366,38 @@
             mShuffleAction->setEnabled( false );
         }
         
-        toolBar->addAction( mShuffleAction );
+        myToolBar->addAction( mShuffleAction );
 
         HbAction *action = new HbAction( actionsGroup );
-        action->setIcon( HbIcon( "qtg_mono_previous" ) );
+        action->setIcon( HbIcon( "qtg_mono_seek_previous" ) );
         action->setCheckable( false );
-        connect( action, SIGNAL( triggered( bool ) ),
-                 mMpEngine, SLOT( skipBackward() ) );
-        toolBar->addAction( action );
-
+        action->setObjectName("previous");
+        myToolBar->addAction( action );
+        
         mPlayPauseAction = new HbAction( actionsGroup );
         mPlayIcon = new HbIcon( "qtg_mono_play" );
         mPauseIcon = new HbIcon( "qtg_mono_pause" );
-        mPlayPauseAction->setIcon( *mPlayIcon );
+        updatePlayPauseIcon();
         mPlayPauseAction->setCheckable( false );
         connect( mPlayPauseAction, SIGNAL( triggered( bool ) ),
                  mMpEngine, SLOT( playPause() ) );
-        toolBar->addAction( mPlayPauseAction );
+        myToolBar->addAction( mPlayPauseAction );
 
         action = new HbAction( actionsGroup );
-        action->setIcon( HbIcon( "qtg_mono_next" ) );
+        action->setIcon( HbIcon( "qtg_mono_seek_next" ) );
         action->setCheckable( false );
-        connect( action, SIGNAL( triggered( bool ) ),
-                 mMpEngine, SLOT( skipForward() ) );
-        toolBar->addAction( action );
+        action->setObjectName("next");
+        myToolBar->addAction( action );
 
         HbIcon icon( "qtg_mono_info" );
         action = new HbAction( actionsGroup );
         action->setIcon( icon );
         action->setCheckable( false );
-        //TODO: Remove once song details takes hostUid from engine
-        if ( mViewMode == MpCommon::DefaultView ) {
-            connect( action, SIGNAL( triggered( bool ) ),
-                     this, SLOT( flip() ) );
-        }
-        else {
-            action->setEnabled( false );
-        }
-        toolBar->addAction( action );
+
+        connect( action, SIGNAL( triggered( bool ) ),
+                 this, SLOT( flip() ) );
+
+        myToolBar->addAction( action );
     }
     else {
         // Fetch mode
@@ -395,16 +406,16 @@
         action->setCheckable( false );
         connect( action, SIGNAL( triggered( bool ) ),
                  this, SLOT( handleSongSelected() ) );
-        toolBar->addAction( action );
+        myToolBar->addAction( action );
 
         mPlayPauseAction = new HbAction( actionsGroup );
         mPlayIcon = new HbIcon( "qtg_mono_play" );
         mPauseIcon = new HbIcon( "qtg_mono_pause" );
-        mPlayPauseAction->setIcon( *mPlayIcon );
+        updatePlayPauseIcon();
         mPlayPauseAction->setCheckable( false );
         connect( mPlayPauseAction, SIGNAL( triggered( bool ) ),
                  mMpEngine, SLOT( playPause() ) );
-        toolBar->addAction( mPlayPauseAction );
+        myToolBar->addAction( mPlayPauseAction );
     }
     
     
@@ -412,6 +423,147 @@
 }
 
 /*!
+ Updates the play pause icon on the toolbar base on playback state.
+ */
+void MpPlaybackView::updatePlayPauseIcon()
+{
+    TX_ENTRY
+    switch ( mPlaybackData->playbackState() ) {
+        case MpPlaybackData::Playing:
+        case MpPlaybackData::NotPlaying:
+            TX_LOG_ARGS( "MpPlaybackData::Playing" )
+            mPlayPauseAction->setIcon( *mPauseIcon );
+            break;
+        case MpPlaybackData::Paused:
+        case MpPlaybackData::Stopped:
+            TX_LOG_ARGS( "MpPlaybackData::Paused" )
+            mPlayPauseAction->setIcon( *mPlayIcon );
+            break;
+
+        default:
+            break;
+    }
+    TX_EXIT
+}
+
+/*!
+ start rewind long press detection
+ */
+void MpPlaybackView::startRewindTimer()
+{
+    if(mTimer){
+        delete mTimer;
+        mTimer = 0;
+    }
+    mTimer = new QTimer(this);
+    mTimer->setSingleShot(true);
+    connect(mTimer, SIGNAL(timeout()), this, SLOT(startSeekRewind()));
+    mTimer->start(600);    
+}
+
+/*!
+ start fast forward long press detection
+ */
+void MpPlaybackView::startForwardTimer()
+{
+    if(mTimer){
+        delete mTimer;
+        mTimer = 0;
+    }
+    mTimer = new QTimer(this);
+    mTimer->setSingleShot(true);
+    connect(mTimer, SIGNAL(timeout()), this, SLOT(startSeekForward()));
+    mTimer->start(600);      
+}
+
+/*!
+ start backward seeking
+ */
+void MpPlaybackView::startSeekRewind()
+{
+    mMpEngine->startSeekBackward();
+    mSeeking = true;
+}
+
+/*!
+ start forward seeking
+ */
+void MpPlaybackView::startSeekForward()
+{
+    mMpEngine->startSeekForward();
+    mSeeking = true;
+}
+
+/*!
+ end backward seeking or skip backward
+ */
+void MpPlaybackView::endRewind()
+{
+    if(mTimer){
+        mTimer->stop();
+        delete mTimer;
+        mTimer = 0;
+    }
+    if( mSeeking ) {
+        mMpEngine->stopSeeking();
+    }
+    else {
+        mMpEngine->skipBackward();
+    }
+    mSeeking = false;
+}
+
+/*!
+ end forward seeking or skip forward
+ */
+void MpPlaybackView::endForward()
+{
+    if(mTimer){
+        mTimer->stop();
+        delete mTimer;
+        mTimer = 0;
+    }
+    if( mSeeking ) {
+        mMpEngine->stopSeeking();
+    }
+    else {
+        mMpEngine->skipForward();
+    }
+    mSeeking = false;
+}
+
+/*!
+ Slot to connect seek forward and backward toolbar buttons
+ */
+void MpPlaybackView::connectButtons()
+{
+    
+    HbToolBar *myToolBar = toolBar();
+    QGraphicsLayout *layout = myToolBar->layout();
+    if( layout ) {
+        int count = layout->count();
+        for ( int i = 0; i < count; i++ ) {
+            HbToolButton *button = dynamic_cast<HbToolButton *>( layout->itemAt(i) );
+            QString name = button->action()->objectName();
+            
+            if ( name == "previous" ) {
+                connect( button, SIGNAL( pressed() ),
+                         this, SLOT( startRewindTimer() ) );
+                connect( button, SIGNAL( released() ),
+                         this, SLOT( endRewind() ) );
+            }
+            if ( name == "next" ) {
+                connect( button, SIGNAL( pressed() ),
+                         this, SLOT( startForwardTimer() ) );
+                connect( button, SIGNAL( released() ),
+                         this, SLOT( endForward() ) );
+                disconnect ( mWindow, SIGNAL( viewReady() ), this, SLOT( connectButtons() ) );
+            }
+        }
+    }
+}
+
+/*!
  Slot to be called to activate equalizer dialog.
  */
 void MpPlaybackView::showEqualizerDialog()
@@ -425,3 +577,17 @@
 
     TX_EXIT
 }
+
+/*!
+ Slot to be called when library has been updated
+ */
+void MpPlaybackView::closeEqualizerDialog()
+{
+    TX_ENTRY
+    
+    if ( mEqualizerWidget ) {
+        mEqualizerWidget->close();
+    }
+    
+    TX_EXIT
+}
--- a/mpviewplugins/mpplaybackviewplugin/src/mpplaybackwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpplaybackwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -15,7 +15,7 @@
 *
 */
 
-#include <qtime>
+#include <QTime>
 
 #include <hbprogressslider.h>
 #include <hbinstance.h>
@@ -79,6 +79,12 @@
         mSongTitle = qobject_cast<HbLabel*>(tmpWidgetPtr);
         tmpWidgetPtr = mDocumentLoader->findWidget(QString("albumArt"));
         mAlbumArt = qobject_cast<HbLabel*>(tmpWidgetPtr);
+        tmpWidgetPtr = mDocumentLoader->findWidget(QString("realAudio"));
+        mRealAudioIndicator = qobject_cast<HbLabel*>(tmpWidgetPtr);
+        mRealAudioIndicator->hide();
+        tmpWidgetPtr = mDocumentLoader->findWidget(QString("repeatIcon"));
+        mRepeatIndicator = qobject_cast<HbLabel*>(tmpWidgetPtr);
+                
         tmpWidgetPtr = mDocumentLoader->findWidget(QString("progressBar"));
         mProgressBar = qobject_cast<HbProgressSlider*>(tmpWidgetPtr);
 
@@ -98,9 +104,14 @@
     connect( mPlaybackData, SIGNAL(durationChanged()), this, SLOT(durationChanged()) );
     connect( mPlaybackData, SIGNAL(positionChanged()), this, SLOT(positionChanged()) );
     connect( mPlaybackData, SIGNAL(albumArtReady()), this, SLOT(albumArtChanged()) );
-
-
-
+    
+    //Update to set initial conditions if playback has already started.
+    if ( mPlaybackData->playbackState() != MpPlaybackData::NotPlaying ) {
+        playbackInfoChanged();
+        durationChanged();
+        positionChanged();
+        albumArtChanged();
+    }
     TX_EXIT
 }
 
@@ -115,6 +126,14 @@
 }
 
 /*!
+ Handle Repeat changed.
+ */
+void MpPlaybackWidget::repeatChanged( bool value )
+{
+    mRepeatIndicator->setVisible( value );   
+}
+
+/*!
  Slot to handle playback info changed.
  */
 void MpPlaybackWidget::playbackInfoChanged( )
@@ -123,6 +142,8 @@
     mSongTitle->setPlainText( mPlaybackData->title() );
     mArtistName->setPlainText( mPlaybackData->artist() );
     mAlbumName->setPlainText( mPlaybackData->album() );
+    mRealAudioIndicator->setVisible( mPlaybackData->realAudio() );
+    emit signalPlaybackInfoChanged();
     TX_EXIT
 }
 
@@ -174,7 +195,6 @@
     TX_EXIT
 }
 
-
 /*!
  Slot to handle slider pressed.
  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/MATTI/feature_test_folder/QTMusicPlayer_BAT_playbackview.feature	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,114 @@
+Feature: As a test engineer I want to run BAT test cases for QT Music Player
+  
+  Scenario: Equalizer_Select a preset from list
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    When I Tap on Navi pane text area Music
+    When I select Equaliser from the Options menu
+    Then the Equaliser pop up is displayed
+    And Equaliser preset 1 is selected
+    When I select the Equaliser preset number 3 from the list
+    And I Tap on Navi pane text area Music
+    And I select Exit from the Options menu
+    Then the MusicPlayer application is not active
+    When the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    When I Tap on Navi pane text area Music
+    When I select Equaliser from the Options menu
+    Then the Equaliser preset 3 is selected
+    
+  Scenario: Repeat
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    And Repeat is set to ON
+    Then all songs are played and at the end it goes to the first one and stays in Playing
+    When I Tap on Navi pane text area Music
+    And I select Repeat off from the Options menu
+    And all songs are played and at the end it goes to the first one and stays in Paused
+    When the application is closed
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    And Repeat is set to OFF
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+  Scenario: Audio Effects view - Change settings and Exit
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    When I Tap on Navi pane text area Music
+    When I select Audio effects from the Options menu
+    Then the Audio effects pop up is displayed
+    And Audio effects settings are Balance 0 and Loudness Off
+    When I drag the slider to the Right 40 pixels
+    And I tap the Loudness toggle
+    Then Audio effects settings are Balance 25 and Loudness On
+    When the application is closed
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    When I Tap on Navi pane text area Music
+    When I select Audio effects from the Options menu
+    Then the Audio effects pop up is displayed
+    And Audio effects settings are Balance 25 and Loudness On
+    
+  Scenario: Playbackview options menu
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    When I Tap on Navi pane text area Music
+    Then the playback view options menu list is shown correctly
+    
+  Scenario: Now Playing View Q4- Activate shuffle- go back to Songs view and play another song - check shuffle is ON
+		Given the MusicPlayer application is active
+    And I select the song number 1 of the list
+    Then The song number 1 of the library is shown in playback view
+    When I set shuffle to ON
+    Then musicplayer plays the following songs after song 1 randomly
+    When I press the back button
+    And I select the song number 4 of the list
+    Then The song number 4 of the library is shown in playback view
+    And shuffle is set to ON
+    
+  Scenario: Now playing view H1- Shuffle OFF
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list 
+    Then The song number 1 of the library is shown in playback view
+    When I set shuffle to OFF
+    And I wait until the song change
+    Then The song number 2 of the library is shown in playback view
+    And I wait until the song change
+    Then The song number 3 of the library is shown in playback view
+    Then the application is closed
+    
+  Scenario: Playback view control bar to FW,RW,Play-pause.
+    Given the MusicPlayer application is active
+    And I select the song number 1 of the list 
+    Then The song number 1 of the library is shown in playback view
+    And the song in the playback view is Playing
+    When I press the button FW in the PlaybackToolbar
+    Then The song number 2 of the library is shown in playback view
+    And the song in the playback view is Playing
+    When I press the button RW in the PlaybackToolbar twice
+    Then The song number 1 of the library is shown in playback view
+    When I single press the button RW in the PlaybackToolbar and it is playing it starts from the beginning 
+    When I press the button Pause in the PlaybackToolbar
+    Then the song in the playback view is Paused
+    When I press the button FW in the PlaybackToolbar
+    Then The song number 2 of the library is shown in playback view
+    Then the song in the playback view is Paused
+    When I press the button RW in the PlaybackToolbar
+    Then The song number 1 of the library is shown in playback view
+    Then the song in the playback view is Paused
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/MATTI/feature_test_folder/step_definitions/MusicPlayerSteps.rb	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,282 @@
+def mda(width,height)
+a = Array.new(width)
+a.map! { Array.new(height) }
+return a
+end
+
+def create_mp_constants
+@Library = mda(4,3)
+@Library[0] = ["Amen and Boys", "Stop It!!","Self Made Maps"]
+@Library[1] = ["Emancipated Minor", "Ani Difranco","Red Letter Year"]
+@Library[2] = ["Slowly", "Fauna","Dreamless"]
+@Library[3] = ["Turkish March", "Daniel Bautista","Classics And Soundtracks"]
+
+@PlaybackToolBarOrder = {"Shuffle"=>0,"RW"=>1,"Pause"=>2,"Play"=>2,"FW"=>3,"Flip"=>4}
+
+@PlaybackViewOptionsMenu = {"Equaliser"=>0, "Audio effects"=>1, "Repeat off" =>2, "Exit" => 3}
+
+@EquiliserPresetsList = {"Off"=>0, "Bass booster"=>1, "Classical" =>2, "Jazz" => 3, "Pop"=>4 , "Rock"=> 5}
+
+@ShuffleOffIconConst = 'qtg_mono_shuffle_off'
+@ShuffleOnIconConst = 'qtg_mono_shuffle'
+@RWIconConst = 'qtg_mono_seek_previous'
+@PauseIconConst = 'qtg_mono_pause'
+@FWIconConst = 'qtg_mono_seek_next'
+@InfoIconConst = 'qtg_mono_info'
+@PlayIconConst  = 'qtg_mono_play'
+
+
+end
+
+require 'matti'
+require 'spec/expectations'
+require 'nokogiri'
+require 'date'
+
+Before do
+  create_mp_constants
+  @sut = MATTI.sut(:Id=>'sut_s60_qt')
+end
+
+After do
+  begin
+     @MPapp.close
+  rescue
+  end
+end
+
+Given("the MusicPlayer application is active") do 
+  @MPapp = @sut.run(:name => "musicplayer")
+end
+
+Then("the MusicPlayer application is not active") do 
+  verify_true(1, 'Music Player still running') {@sut.application.name != "musicplayer"}  #Verify that the app that is in the foreground is not music player, if it is that means musicplayer is still running.
+end
+
+When("I Tap on Navi pane text area Music") do 
+    @MPapp.HbTitleBar.HbTitlePane.HbFrameItem.tap
+    @MenuContainer = @MPapp.HbMenu.HbMenuContainer
+end
+
+When("I select the song number $element_num of the list") do |element_num|
+  @MPapp.HbListView(:name=>'allSongsList').HbListViewItem(:__index=>element_num.to_i-1).tap
+end
+
+Then("The song with the title $song_title and artist $song_artist and album $song_album is shown in playback view") do |song_title, song_artist, song_album|
+  verify(10, "The song title is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'songText').HbTextItem(:text => song_title)}
+  verify(10, "The song artist is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'artistText').HbTextItem( :text => song_artist)}
+  verify(10, "The song album is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'albumText').HbTextItem( :text => song_album)}
+end
+
+Then("The song number $num of the library is shown in playback view") do |num|
+  verify(10, "The song title is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'songText').HbTextItem(:text => @Library[num.to_i-1][0])}
+  verify(10, "The song artist is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'artistText').HbTextItem( :text => @Library[num.to_i-1][1])}
+  verify(10, "The song album is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'albumText').HbTextItem( :text => @Library[num.to_i-1][2])}
+end
+
+Then ("musicplayer plays the following songs after song $num randomly") do |num|
+  @MPapp.MpPlaybackWidget.wait_for_signal(600, "signalPlaybackInfoChanged()")
+  title=@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'songText').HbTextItem.attribute("Text")
+  artist=@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'artistText').HbTextItem.attribute("Text")
+  album=@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'albumText').HbTextItem.attribute("Text")
+  if title != @Library[num.to_i][0] or artist != @Library[num.to_i][1] or album != @Library[num.to_i][2]
+  else
+    @MPapp.MpPlaybackWidget.wait_for_signal(600, "signalPlaybackInfoChanged()")
+    verify_not(10, "The song title is being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'songText').HbTextItem(:text => @Library[num.to_i+1][0])}
+    verify_not(10, "The song artist is being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'artistText').HbTextItem( :text => @Library[num.to_i+1][1])}
+    verify_not(10, "The song album is being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'albumText').HbTextItem( :text => @Library[num.to_i+1][2])}
+  end
+end
+
+Then("the song in the playback view is $playback_status") do |playback_status|
+    verify(5, "The status of the playback view is not the spected"){@MPapp.MpPlaybackView(:PlaybackStatus => playback_status)}
+    lb_init = @MPapp.HbProgressSlider( :name => 'progressBar' ).HbTextItem(:__index => 0).attribute("Text")
+    sleep 5
+    lb_fin = @MPapp.HbProgressSlider( :name => 'progressBar' ).HbTextItem(:__index => 0).attribute("Text")
+    if playback_status == 'Playing'
+      verify_true(1,"Time label didn't change") {lb_init != lb_fin}
+    end
+    if playback_status == 'Paused'
+      verify_true(1,"Time label didn't change") {lb_init == lb_fin}
+    end
+end
+
+When ("I press the button $button in the PlaybackToolbar") do |button|
+  verify_true(5,"Icon is not correct"){@MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch(button)).HbIconItem.attribute("iconName") == getPlaybackToolbarIconName(button)}
+  @MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch(button)).tap
+end
+
+When ("I sleep $number $min_sec") do |number, min_sec|
+  time_to_wait = 0
+  if(min_sec == "seconds")
+    time_to_wait = number.to_i
+  end
+  if(min_sec == "minutes")
+    time_to_wait = number.to_i*60
+  end
+  puts time_to_wait.to_s
+  sleep time_to_wait
+end
+
+When ("I wait until the song change") do
+  @MPapp.MpPlaybackWidget.wait_for_signal(600, "signalPlaybackInfoChanged()")
+end
+
+def to_true_false(param)
+  if param == true or param == "ON"
+    return "true"
+  end
+  if param == false or param == "OFF"
+     return "false"
+  end
+end
+      
+When ("I set shuffle to $on_off") do |on_off|
+    if @MPapp.MpPlaybackView.attribute("Shuffle") != to_true_false(on_off)
+      @MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch("Shuffle")).tap
+    end
+    verify_true(2,"Shuffle is not the expected value"){@MPapp.MpPlaybackView.attribute("Shuffle") == to_true_false(on_off)}
+    if on_off == "ON"
+      verify_true(5,"Shuffle icon is not correct"){@MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch("Shuffle")).HbIconItem.attribute("iconName") == @ShuffleOnIconConst}
+    end
+    if on_off == "OFF"
+      verify_true(5,"Shuffle icon is not correct"){@MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch("Shuffle")).HbIconItem.attribute("iconName") == @ShuffleOffIconConst}
+    end
+    
+end
+
+When("shuffle is set to $on_off") do |on_off|
+  verify_true(3,"Shuffle is not the expected value"){@MPapp.MpPlaybackView.attribute("Shuffle") == to_true_false(on_off)}
+  if on_off == "ON"
+    verify_true(5,"Shuffle icon is not correct"){@MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch("Shuffle")).HbIconItem.attribute("iconName") == @ShuffleOnIconConst}
+  end
+  if on_off == "OFF"
+    verify_true(5,"Shuffle icon is not correct"){@MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch("Shuffle")).HbIconItem.attribute("iconName") == @ShuffleOffIconConst}
+  end
+end
+
+When ("I press the button $button in the PlaybackToolbar twice") do |button|
+  @MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch(button)).tap(2)
+end
+
+When("I press the back button") do
+  @MPapp.HbTitleBar.HbNavigationButton.tap
+end
+
+When ("I single press the button RW in the PlaybackToolbar and it is playing it starts from the beginning") do
+  lb_init = @MPapp.HbProgressSlider( :name => 'progressBar' ).HbTextItem(:__index => 0).attribute("Text")
+  @MPapp.HbToolBar( :name => 'PlaybackToolbar' ).HbToolButton(:__index => @PlaybackToolBarOrder.fetch("RW")).tap
+  lb_fin = @MPapp.HbProgressSlider( :name => 'progressBar' ).HbTextItem(:__index => 0).attribute("Text")
+  verify_true(1,"It didn't start from the beginning"){lb_init > lb_fin}
+end
+
+When("I select $item from the Options menu") do |item|
+  @MenuContainer.HbMenuItem(:__index=> @PlaybackViewOptionsMenu.fetch(item)).tap
+end
+
+Then ("the playback view options menu list is shown correctly") do
+  i = 0
+  while i <  @PlaybackViewOptionsMenu.length do
+      verify_true(2,"Menu item is incorrect"){@MenuContainer.HbMenuItem(:__index=> i).HbTextItem.attribute("Text") == @PlaybackViewOptionsMenu.index(i)} 
+      i = i +1
+  end
+  
+ # @PlaybackViewOptionsMenu.each{|key, value| verify_true(2,"Menu item is incorrect"){@MenuContainer.HbMenuItem(:__index=> value).HbTextItem.attribute("Text") == key}  }
+end
+
+Then ("the Equaliser pop up is displayed") do
+  verify(3, "Equiliser pop up is not displayed"){@MPapp.MpEqualizerWidget}
+  i = 0
+  while i < @EquiliserPresetsList.length  do
+    puts i.to_s
+    puts @MPapp.MpEqualizerWidget.HbRadioButtonList.HbListViewItem(:__index=> i).HbTextItem.attribute("Text")
+    puts @EquiliserPresetsList.index(i)
+    verify_true(2,"Menu item is incorrect"){@MPapp.MpEqualizerWidget.HbRadioButtonList.HbListViewItem(:__index=> i).HbTextItem.attribute("Text") == @EquiliserPresetsList.index(i)}
+    i = i+1
+  end
+end
+
+Then ("Equaliser preset $num is selected") do |num|
+  
+  verify_true(3, "Item is not selected"){@MPapp.MpEqualizerWidget.HbRadioButtonList.HbListViewItem(:__index=> num.to_i-1).HbIconItem.attribute("iconName") == "qtg_small_radio_selected"}
+end
+
+When ("I select the Equaliser preset number $num from the list") do |num|
+  @MPapp.MpEqualizerWidget.HbRadioButtonList.HbListViewItem(:__index=>num.to_i - 1).tap
+  @MPapp.MpEqualizerWidget.HbToolBar.HbTextItem( :text => 'OK' ).tap
+end
+
+Then ("the Audio effects pop up is displayed") do
+  verify(3, "Audio effects pop up is not displayed"){@MPapp.MpSettingsAudioEffectsWidget}
+  verify(3, "Balance slider is not present") {@MPapp.MpSettingsAudioEffectsWidget.HbSlider}
+  verify(3, "Loudness toggle is not present"){@MPapp.MpSettingsAudioEffectsWidget.HbToggleItem}
+end
+
+Then ("Audio effects settings are Balance $balance_value and Loudness $loudness_value") do |balance_value, loudness_value|
+  verify_true(3,"Balance value is not the expected"){@MPapp.MpSettingsAudioEffectsWidget.HbSlider.attribute("sliderPosition").to_i == balance_value.to_i}
+  verify_true(3,"Loudness value is not the expected"){@MPapp.MpSettingsAudioEffectsWidget.HbToggleItem.attribute("Text") == loudness_value}
+end
+
+When("I drag the slider to the $dir $num_pix pixels") do |dir, num_pix|
+  @MPapp.MpSettingsAudioEffectsWidget.HbSliderHandle.drag(to_direction(dir), num_pix, :Left)
+end
+
+When("the application is closed") do
+  @MPapp.close
+end
+
+When("I tap the Loudness toggle") do
+  @MPapp.MpSettingsAudioEffectsWidget.HbToggleItem.tap
+end
+
+When("Repeat is set to $on_off") do |on_off|
+  verify_true(3,"Repeat is not the expected value"){@MPapp.MpPlaybackView.attribute("Repeat") == to_true_false(on_off)}
+end
+
+Then ("all songs are played and at the end it goes to the first one and stays in $playback_status") do |playback_status|
+  i = 0
+  while i < @Library.length  do
+    verify(10, "The song title is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'songText').HbTextItem(:text => @Library[i][0])}
+    verify(10, "The song artist is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'artistText').HbTextItem( :text => @Library[i][1])}
+    verify(10, "The song album is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'albumText').HbTextItem( :text => @Library[i][2])}
+    
+    @MPapp.MpPlaybackWidget.wait_for_signal(720, "signalPlaybackInfoChanged()")
+    i = i+1
+  end
+  verify(10, "The song title is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'songText').HbTextItem(:text => @Library[0][0])}
+  verify(10, "The song artist is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'artistText').HbTextItem( :text => @Library[0][1])}
+  verify(10, "The song album is not being displayed") {@MPapp.HbLabel(:visibleOnScreen => 'true', :name => 'albumText').HbTextItem( :text => @Library[0][2])}
+  verify_true(5, "The status of the playback view is not the spected"){@MPapp.MpPlaybackView.attribute("PlaybackStatus") == playback_status or @MPapp.MpPlaybackView.attribute("PlaybackStatus") == "Stopped"}  
+end
+
+def to_direction(string)
+    case string
+      when "Right"
+        return :Right
+      when "Left"
+        return :Left
+      when "Up"
+        return :Up
+      when "Down"
+        return :Down
+    end
+end
+
+def getPlaybackToolbarIconName(button)
+    case button
+      when "RW"
+        return @RWIconConst
+        when "Pause"
+        return @PauseIconConst
+        when "FW"
+        return @FWIconConst
+        when "Info"
+        return @InfoIconConst
+        when "Play"
+        return @PlayIconConst
+      end
+      
+end
+  
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,21 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpequalizerwidget \
+          unittest_mpplaybackviewplugin
+
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/inc/unittest_mpequalizerwidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/inc/unittest_mpequalizerwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -1,5 +1,5 @@
-/**
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description: Unit test for mpnowplayingbackend
+* Description: Unit test for mpequalizerwidget
 *
 */
 
@@ -20,6 +20,7 @@
 
 #include <QtTest/QtTest>
 
+class QTranslator;
 class MpEqualizerWidget;
 
 class TestMpEqualizerWidget: public QObject
@@ -42,14 +43,15 @@
 private slots:
     void testInitialize();
     void testPrepareDialog();
-    void testEqualizerReady();
     void testPresetSelected();
     void testCancelSelected();
     void testOkSelected();
+    void testGetLocalizedString();
 
 private:
 
     MpEqualizerWidget *mTest;
+    QTranslator       *mMpTranslator; // Own
 
 };
 
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/src/unittest_mpequalizerwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/src/unittest_mpequalizerwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -1,5 +1,5 @@
-/**
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -17,11 +17,10 @@
 
 #include <QMetaType>
 #include <QtGui>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
 #include <hbradiobuttonlist.h>
+#include <QTranslator>
+#include <QLocale>
 
-#include "stub/inc/mpequalizerwrapper.h"
 #include "unittest_mpequalizerwidget.h"
 
 // Do this so we can access all member variables.
@@ -39,29 +38,32 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
+    QApplication app(argc, argv);
     TestMpEqualizerWidget tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpequalizerwidget.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpequalizerwidget.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpEqualizerWidget::TestMpEqualizerWidget()
-    : mTest(0)
+    : mTest(0),
+      mMpTranslator(0)
 {
 }
 
 TestMpEqualizerWidget::~TestMpEqualizerWidget()
 {
     delete mTest;
+    delete mMpTranslator;
 }
 
 /*!
@@ -69,7 +71,15 @@
  */
 void TestMpEqualizerWidget::initTestCase()
 {
-   
+    QString lang = QLocale::system().name();
+    QString path = QString("z:/resource/qt/translations/");
+    bool translatorLoaded = false;
+
+    mMpTranslator = new QTranslator(this);
+    translatorLoaded = mMpTranslator->load(path + "musicplayer_" + lang);
+    if ( translatorLoaded ) {
+        qApp->installTranslator(mMpTranslator);
+    }
 }   
 
 /*!
@@ -84,6 +94,7 @@
  */
 void TestMpEqualizerWidget::init()
 {
+    MpEngineFactory::createSharedEngine();
     mTest = new MpEqualizerWidget();
 }
 
@@ -94,6 +105,7 @@
 {
     delete mTest;
     mTest = 0;
+    MpEngineFactory::close();
 }
 
 /*!
@@ -101,7 +113,7 @@
  */
 void TestMpEqualizerWidget::testInitialize()
 {
-    QVERIFY(mTest->mEqualizerWrapper != 0 );    
+    QVERIFY(mTest->mMpEngine != 0 );    
 }
 
 /*!
@@ -109,7 +121,6 @@
  */
 void TestMpEqualizerWidget::testPrepareDialog()
 {
-    //With Equalizer not ready
     mTest->prepareDialog();
     QVERIFY(mTest->mOriginalPreset == -1 );    
     QVERIFY(mTest->timeout() == HbDialog::NoTimeout);
@@ -117,27 +128,16 @@
     QVERIFY(mTest->frameType() == HbPopup::Strong);
     QVERIFY(mTest->headingWidget() != 0);
     QVERIFY(mTest->actions().count() != 0);
-    QVERIFY(mTest->contentWidget() == 0);
-    
-    
-    //With Equalizer ready
-    cleanup();
-    init();
-    mTest->equalizerReady();
-    mTest->prepareDialog();
     QVERIFY(mTest->mPresetsList != 0);
     QCOMPARE(qobject_cast<HbRadioButtonList*>(mTest->contentWidget()), mTest->mPresetsList);
     QVERIFY(mTest->mPresetsList->selected() == 0);
-}
-
-/*!
- Tests equalizerReady.
- */
-void TestMpEqualizerWidget::testEqualizerReady()
-{
-    mTest->equalizerReady();
-    
-    QVERIFY(mTest->mEqualizerReady);
+    QCOMPARE(mTest->mPresetsList->items().at(0), hbTrId("txt_mus_list_off"));
+    QCOMPARE(mTest->mPresetsList->items().at(1), hbTrId("txt_mus_list_bass_booster"));
+    QCOMPARE(mTest->mPresetsList->items().at(2), hbTrId("txt_mus_list_classical"));
+    QCOMPARE(mTest->mPresetsList->items().at(3), hbTrId("txt_mus_list_jazz"));
+    QCOMPARE(mTest->mPresetsList->items().at(4), hbTrId("txt_mus_list_pop"));
+    QCOMPARE(mTest->mPresetsList->items().at(5), hbTrId("txt_mus_list_rock"));
+    QCOMPARE(mTest->mPresetsList->items().at(6), QString("New Preset"));
 }
 
 /*!
@@ -147,11 +147,11 @@
 {
     //Off preset must call DisableEqualizer
     mTest->presetSelected(0);
-    QVERIFY(mTest->mEqualizerWrapper->mDisableEquqlizerCount == 1);
+    QVERIFY(mTest->mMpEngine->mDisableEquqlizerCount == 1);
 
     //Any other preset must be applied
     mTest->presetSelected(3);
-    QVERIFY(mTest->mEqualizerWrapper->mApplyPresetCount == 1);
+    QVERIFY(mTest->mMpEngine->mApplyPresetCount == 1);
 }
 
 /*!
@@ -159,32 +159,31 @@
  */
 void TestMpEqualizerWidget::testCancelSelected()
 {
-    mTest->equalizerReady();
     mTest->prepareDialog();
     
     //Cancel, when Current preset selected != Original Preset
     
     //When Original Preset == -1 "Off"
-    mTest->mEqualizerWrapper->mActivePreset = 4;
+    mTest->mMpEngine->mActivePreset = 4;
     mTest->mOriginalPreset = -1;
     mTest->cancelSelected(true);
-    QVERIFY(mTest->mEqualizerWrapper->mDisableEquqlizerCount == 1);
-    QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);
+    QVERIFY(mTest->mMpEngine->mDisableEquqlizerCount == 1);
+    QCOMPARE(mTest->mMpEngine->mActivePreset, mTest->mOriginalPreset);
     
     //When Original Preset != -1 "Any other different than Off"
-    mTest->mEqualizerWrapper->mActivePreset = 4;
+    mTest->mMpEngine->mActivePreset = 4;
     mTest->mOriginalPreset = 2;
     mTest->cancelSelected(true);
-    QVERIFY(mTest->mEqualizerWrapper->mApplyPresetCount == 1);
-    QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);
+    QVERIFY(mTest->mMpEngine->mApplyPresetCount == 1);
+    QCOMPARE(mTest->mMpEngine->mActivePreset, mTest->mOriginalPreset);
         
     //Cancel, when Current preset selected == Original Preset
-    mTest->mEqualizerWrapper->mActivePreset = 3;
+    mTest->mMpEngine->mActivePreset = 3;
     mTest->mOriginalPreset = 3;
     mTest->cancelSelected(true);
-    QVERIFY(mTest->mEqualizerWrapper->mApplyPresetCount == 1);
-    QVERIFY(mTest->mEqualizerWrapper->mDisableEquqlizerCount == 1);
-    QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);
+    QVERIFY(mTest->mMpEngine->mApplyPresetCount == 1);
+    QVERIFY(mTest->mMpEngine->mDisableEquqlizerCount == 1);
+    QCOMPARE(mTest->mMpEngine->mActivePreset, mTest->mOriginalPreset);
 }
 
 /*!
@@ -192,12 +191,42 @@
  */
 void TestMpEqualizerWidget::testOkSelected()
 {
-    mTest->equalizerReady();
-    
-    mTest->mEqualizerWrapper->mActivePreset = 2;
+    mTest->mMpEngine->mActivePreset = 2;
     mTest->mOriginalPreset = -1;
     mTest->okSelected(true);
-    QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);   
+    QCOMPARE(mTest->mMpEngine->mActivePreset, mTest->mOriginalPreset);   
+}
+
+/*!
+ Tests getLogicalName.
+ */
+void TestMpEqualizerWidget::testGetLocalizedString()
+{
+    QString localizedString;
+    
+    // test Bass Booster
+    localizedString = mTest->getLocalizedString( QString("Bass Booster") );
+    QCOMPARE(localizedString, hbTrId("txt_mus_list_bass_booster"));
+
+    // test Classic
+    localizedString = mTest->getLocalizedString( QString("Classic") );
+    QCOMPARE(localizedString, hbTrId("txt_mus_list_classical"));
+
+    // test Jazz
+    localizedString = mTest->getLocalizedString( QString("Jazz") );
+    QCOMPARE(localizedString, hbTrId("txt_mus_list_jazz"));
+
+    // test Pop
+    localizedString = mTest->getLocalizedString( QString("Pop") );
+    QCOMPARE(localizedString, hbTrId("txt_mus_list_pop"));
+
+    // test Rock
+    localizedString = mTest->getLocalizedString( QString("Rock") );
+    QCOMPARE(localizedString, hbTrId("txt_mus_list_rock"));
+
+    // test new preset
+    localizedString = mTest->getLocalizedString( QString("New Preset") );
+    QVERIFY(localizedString.isEmpty());
 }
 
 // End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/inc/mpengine.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,75 @@
+/*
+* 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: Music Player engine.
+*
+*/
+
+#ifndef MPENGINE_H
+#define MPENGINE_H
+
+#include <QObject>
+#include <QStringList>
+//#include "mpmpxcollectionviewdefs.h"
+//#include "mpmpxcommondefs.h"
+//#include "mpcommondefs.h"
+
+//class MpMpxCollectionData;
+//class MpPlaybackData;
+//class MpSongData;
+//class XQSharableFile;
+class MpEngine : public QObject
+{
+    Q_OBJECT
+
+    friend class MpEngineFactory;
+
+public:
+    enum EngineMode{
+        StandAlone,
+        Fetch,
+        Embedded,
+        MediaBrowsing
+    };
+    
+private:
+    explicit MpEngine();
+
+public:
+
+    virtual ~MpEngine();
+
+    // Equalizer related
+    void applyPreset( int preset );
+    void disableEqualizer();
+    int activePreset();
+    QStringList presetNames();
+
+signals:
+
+    // Equalizer related
+    void errorOccured( int error );
+    void equalizerReady();
+
+private:
+
+    Q_DISABLE_COPY( MpEngine )
+
+public:
+    int mActivePreset;
+    int mApplyPresetCount;
+    int mDisableEquqlizerCount;
+
+};
+
+#endif // MPENGINE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/inc/mpenginefactory.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Music Player engine.
+*
+*/
+
+#ifndef MPENGINEFACTORY_H
+#define MPENGINEFACTORY_H
+
+#include <QObject>
+
+#include "mpengine.h"
+#include "mpcommondefs.h"
+
+
+class MpEngineFactory
+{
+private:
+    explicit MpEngineFactory();
+
+public:
+    virtual ~MpEngineFactory();
+    static MpEngineFactory * instance();
+    
+    static MpEngine *createSharedEngine( TUid uid = TUid::Uid( MpCommon::KMusicPlayerUid ), MpEngine::EngineMode mode = MpEngine::StandAlone );
+    static MpEngine *sharedEngine();
+    static void close();
+	
+private:       
+    MpEngine    *mSharedEngine;
+};
+
+#endif // MPENGINEFACTORY_H
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/inc/mpequalizerwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +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: Wrapper for equalizer utility
-*
-*/
-
-#ifndef MPEQUALIZERWRAPPER_H
-#define MPEQUALIZERWRAPPER_H
-
-// System includes
-#include <QStringList>
-
-
-/**
- *  Wrapper for equalizer utilities
- */
-class MpEqualizerWrapper : public QObject
-{
-    Q_OBJECT
-    
-public:
-
-    MpEqualizerWrapper(QObject *parent = 0);
-    virtual ~MpEqualizerWrapper();
-
-    void applyPreset( int preset );
-    void disableEqualizer();
-
-    int activePreset();
-
-    QStringList presetNames();
-
-signals:
-    void errorOccured( int error );
-    void equalizerReady();
-
-public:
-    int mActivePreset;
-    int mApplyPresetCount;
-    int mDisableEquqlizerCount;
-    
-private:
-    
-    };
-
-#endif // MPEQUALIZERWRAPPER_H
-
-//End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/src/mpengine.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Wrapper for mpx framework utilities.
+*
+*/
+
+#include "mpengine.h"
+
+#include "mptrace.h"
+
+
+MpEngine::MpEngine()
+    : mActivePreset(-1),
+      mApplyPresetCount(0),
+      mDisableEquqlizerCount(0)
+{
+    TX_LOG_ARGS("Stub")
+}
+
+/*!
+ Destructs music player engine.
+ */
+MpEngine::~MpEngine()
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+
+/*!
+    Apply the preset by giving preset index. The index is starting with 0
+    which if the "Off". The command then relays to its private implementation.
+ */
+void MpEngine::applyPreset( int preset )
+{
+    mApplyPresetCount++;
+    mActivePreset = preset;
+}
+
+/*!
+    Disabling the eqaulizer. The command then relays to its private implementation.
+ */
+void MpEngine::disableEqualizer()
+{
+    mDisableEquqlizerCount++;
+    mActivePreset = -1;
+}
+
+/*!
+    Returning currectly activated preset. The command then relays to its private 
+    implementation. -1 will be returned if the adaptation is not ready or
+    no available preset.
+ */
+int MpEngine::activePreset()
+{
+    return mActivePreset;
+}
+
+/*!
+    Returning the list of availale preset names. The command then relays to its 
+    private implementation. 
+ */
+QStringList MpEngine::presetNames()
+{
+    QStringList presets;
+    presets << "Bass Booster" << "Classic" << "Jazz" << "Pop" << "Rock" << "New Preset";
+    return presets;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/src/mpenginefactory.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,86 @@
+/*
+* 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: mp engine factory.
+*
+*/
+
+#include "mpengine.h"
+#include "mpenginefactory.h"
+#include "mptrace.h"
+
+/*!
+    \class MpEngineFactory
+    \brief Music Player engine factory.
+
+    MP Engine factory is responsible to create and mantain ownership of MP engines.
+*/
+
+/*!
+ Constructs music player engine factory.
+ */
+MpEngineFactory::MpEngineFactory()
+    : mSharedEngine( 0 )
+{
+    TX_ENTRY_ARGS("Stub")
+}
+
+/*!
+ Destructs music player engine factory.
+ */
+MpEngineFactory::~MpEngineFactory()
+{
+}
+
+/*!
+ Returns the singleton instance of music player engine factory.
+ */
+MpEngineFactory * MpEngineFactory::instance()
+{
+    static MpEngineFactory instance;
+    return &instance;
+}
+
+/*!
+ Returns an instance to an engine with \a hostUid, and \a mode, if the shared engine is 
+ already created parameters are ignored.
+ */
+MpEngine *MpEngineFactory::createSharedEngine( TUid hostUid , MpEngine::EngineMode mode )
+{
+    Q_UNUSED( hostUid );
+    Q_UNUSED( mode );
+    if ( !instance()->mSharedEngine ) {
+        instance()->mSharedEngine = new MpEngine();
+    }
+    return instance()->mSharedEngine;
+}
+
+/*!
+ Returns an instance to the current shared engine previously created with createEngine().
+ */
+MpEngine *MpEngineFactory::sharedEngine()
+{
+    return instance()->mSharedEngine;
+}
+
+/*!
+ Closes all engines created on this process.
+ */
+void MpEngineFactory::close()
+{
+    if ( instance()->mSharedEngine ) {
+        delete instance()->mSharedEngine;
+        instance()->mSharedEngine = 0;
+        
+    }
+}
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/src/mpequalizerwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +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: Wrapper for equalizer utility.
-*
-*/
-
-// System includes
-#include "mptrace.h"
-
-// User includes
-#include "stub/inc/mpequalizerwrapper.h"
-
-/*!
-    Constructs a new MpEqualizerWrapper with \a parent 
-*/
-MpEqualizerWrapper::MpEqualizerWrapper(QObject *parent)
-    : mActivePreset(-1),
-      mApplyPresetCount(0),
-      mDisableEquqlizerCount(0)
-{   
-    Q_UNUSED(parent);
-    TX_ENTRY
-    TX_LOG_ARGS( "Stub wrapper" );
-    TX_EXIT
-}
-
-/*!
-    Destructs the class and its private imaplementation.
-    
-    \sa MpEqualizerWrapperPrivate
- */
-MpEqualizerWrapper::~MpEqualizerWrapper()
-{
-    TX_ENTRY
-    TX_LOG_ARGS( "Stub wrapper" );
-    TX_EXIT
-}
-
-/*!
-    Apply the preset by giving preset index. The index is starting with 0
-    which if the "Off". The command then relays to its private implementation.
-
-    \sa MpEqualizerWrapperPrivate
- */
-void MpEqualizerWrapper::applyPreset( int preset )
-{
-    mApplyPresetCount++;
-    mActivePreset = preset;
-}
-
-/*!
-    Disabling the eqaulizer. The command then relays to its private implementation.
-
-    \sa MpEqualizerWrapperPrivate
- */
-void MpEqualizerWrapper::disableEqualizer()
-{
-    mDisableEquqlizerCount++;
-    mActivePreset = -1;
-}
-
-/*!
-    Returning currectly activated preset. The command then relays to its private 
-    implementation. -1 will be returned if the adaptation is not ready or
-    no available preset.
-
-    \sa MpEqualizerWrapperPrivate
- */
-int MpEqualizerWrapper::activePreset()
-{
-    return mActivePreset;
-}
-
-/*!
-    Returning the list of availale preset names. The command then relays to its 
-    private implementation. 
-
-    \sa MpEqualizerWrapperPrivate
- */
-QStringList MpEqualizerWrapper::presetNames()
-{
-    QStringList presets;
-    presets << "Bass Booster" << "Classic" << "Jazz" << "Pop" << "Rock" ;
-    return presets;
-}
-
- //End of File
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/unittest_mpequalizerwidget.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/unittest_mpequalizerwidget.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -1,19 +1,27 @@
+#
 # 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: Unit test for mpequalizerwidget
+#
+# Description: 
+#
+
 TEMPLATE = app
-CONFIG += qtestlib \
-    hb
-TARGET = 
+CONFIG += qtestlib hb
+CONFIG += symbian_test
+TARGET = unittest_mpequalizerwidget
+TARGET.CAPABILITY = CAP_APPLICATION
+
 DEPENDPATH += .
-INCLUDEPATH += . \
+INCLUDEPATH += ./stub/inc \
     ../../inc \
     ../../../../inc
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
@@ -22,10 +30,12 @@
 
 symbian: TARGET.EPOCALLOWDLLDATA = 1
 
-HEADERS += stub/inc/mpequalizerwrapper.h \
+HEADERS += stub/inc/mpengine.h \
+    stub/inc/mpenginefactory.h \
     inc/unittest_mpequalizerwidget.h \
     ../../inc/mpequalizerwidget.h
 
-SOURCES += stub/src/mpequalizerwrapper.cpp \
+SOURCES += stub/src/mpengine.cpp \
+    stub/src/mpenginefactory.cpp \
     src/unittest_mpequalizerwidget.cpp
 
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/inc/unittest_mpequalizerwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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: Unit test for mpequalizerwrapper
-*
-*/
-
-#ifndef TESTMPEQUALIZERWRAPPER_H
-#define TESTMPEQUALIZERWRAPPER_H
-
-#include <QtTest/QtTest>
-
-class MpEqualizerWrapper;
-class MpEqualizerWrapperPrivate;
-
-class TestMpEqualizerWrapper: public QObject
-{
-    Q_OBJECT
-
-public:
-    TestMpEqualizerWrapper();
-    virtual ~TestMpEqualizerWrapper();
-
-signals:
-
-public slots:
-    void initTestCase();
-    void cleanupTestCase();
-    void init();
-    void cleanup();
-
-private slots:
-    void testConstructor();
-    void testMapcInitComplete();
-    void testGetPresetId();
-    void testGetEngineIndexL();
-    void testApplyPreset();
-    void testActivePreset();
-    void testDisableEqualizer();
-    void testPresetNames();
-    
-private:
-
-    MpEqualizerWrapper        *mTest;
-    MpEqualizerWrapperPrivate *mTestPrivate;
-    
-    QObject           *qObject;
-
-};
-
-#endif  // TESTMPEQUALIZERWRAPPER_H
-
-
-
-
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/src/unittest_mpequalizerwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +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: Unit test for mpequalizerwrapper
-*
-*/
-
-#include <QSignalSpy>
-#include <QStringList>
-#include <QMetaType>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <centralrepository.h>
-
-#include "unittest_mpequalizerwrapper.h"
-#include "stub/inc/mpxuser.h"
-#include "stub/inc/mpxplaybackutility.h"
-#include "stub/inc/audioequalizerutility.h"
-#include "mpsettingsmanager.h"
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpequalizerwrapper.h"
-#include "mpequalizerwrapper_p.h"
-#undef private
-
-//This so we can test private functions
-#include "mpequalizerwrapper_p.cpp"
-
-//    Predifined values
-//sa stub/inc/audioequalizerutility.cpp for Predifined Values
-//PresetName    PresetEngineId  PresetId (Ui)
-//  Off              -1             -1
-//  Bass             0x0A           1
-//  Classical        0x0B           2
-//  Pop              0x0C           3
-//  Jazz             0x0D           4
-//  Rock             0x0E           5
-
-/*!
- Make our test case a stand-alone executable that runs all the test functions.
- */
-int main(int argc, char *argv[])
-{
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
-    TestMpEqualizerWrapper tv;
-
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpequalizerwrapper.txt";
-
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
-}
-
-TestMpEqualizerWrapper::TestMpEqualizerWrapper()
-{
-}
-
-TestMpEqualizerWrapper::~TestMpEqualizerWrapper()
-{
-    delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpEqualizerWrapper::initTestCase()
-{
-   
-}   
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpEqualizerWrapper::cleanupTestCase()
-{
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpEqualizerWrapper::init()
-{
-    mTest = new MpEqualizerWrapper();
-    mTestPrivate = mTest->d_ptr;
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpEqualizerWrapper::cleanup()
-{
-    delete mTest;
-    mTest = 0;
-}
-
-/*!
- Tests constructor and DoInit().
- */
-void TestMpEqualizerWrapper::testConstructor()
-{    
-    QVERIFY(mTestPrivate->iMpxPlaybackUtility != 0);
-    QVERIFY(mTestPrivate->iMdaPlayUtility != 0);
-}
-
-/*!
- Tests MapcInitComplete.
- */
-void TestMpEqualizerWrapper::testMapcInitComplete()
-{   
-    QSignalSpy spyEqualizerReady(mTest, SIGNAL(equalizerReady()));
-    
-    mTestPrivate->MapcInitComplete(KErrNone, 0);
-
-    QVERIFY(mTestPrivate->iEqualizerUtility != 0);
-    QCOMPARE(spyEqualizerReady.count(), 1);
-}
-
-/*!
- Tests getPresetId
- */
-void TestMpEqualizerWrapper::testGetPresetId()
-{       
-    TInt presetId(0);
-    mTestPrivate->MapcInitComplete(KErrNone, 0);
-    
-    //When a valid preset is currently set
-    MpSettingsManager::setPreset(0x0A);
-    QTest::qWait(250);
-    
-    mTestPrivate->GetPresetId(presetId);    
-    QCOMPARE(mTestPrivate->iCurrentPresetIndex, presetId);                   
-    QVERIFY(presetId == 1);
-    
-    //When there is no any preset set
-    MpSettingsManager::setPreset(KEqualizerPresetNone);
-    QTest::qWait(250);
-    
-    mTestPrivate->GetPresetId(presetId);    
-    QCOMPARE(mTestPrivate->iCurrentPresetIndex, presetId);                   
-    QVERIFY(presetId == KEqualizerPresetNone);
-}
-
-/*!
- Tests GetEngineIndexL.
- */
-void TestMpEqualizerWrapper::testGetEngineIndexL()
-{   
-    mTestPrivate->MapcInitComplete(KErrNone, 0);    
-    
-    QVERIFY(mTestPrivate->GetEngineIndexL(2) == 0x0C);    
-}
-
-/*!
- Tests activePreset.
- */
-void TestMpEqualizerWrapper::testActivePreset()
-{
-    MpSettingsManager::setPreset(0x0A);
-    mTestPrivate->MapcInitComplete(KErrNone, 0);
-    
-    QCOMPARE(mTest->activePreset(), mTestPrivate->iCurrentPresetIndex );
-}
-
-/*!
- Tests applyPreset and HandlePresetActivation.
- */
-void TestMpEqualizerWrapper::testApplyPreset()
-{   
-    int presetId(2);    
-    
-    mTestPrivate->MapcInitComplete(KErrNone, 0);    
-    mTest->applyPreset(presetId);
-    QTest::qWait(250);
-    
-    QVERIFY(mTestPrivate->iMpxPlaybackUtility->commandSent);        
-    QVERIFY(MpSettingsManager::preset() == 0x0B);
-    
-    QCOMPARE(mTestPrivate->iCurrentPresetIndex, presetId);
-}
-
-/*!
- Tests disableEqualizer and HandlePresetActivation.
- */
-void TestMpEqualizerWrapper::testDisableEqualizer()
-{   
-    MpSettingsManager::setPreset(0x0A); //Set any preset different than KEqualizerPresetNone
-    
-    mTestPrivate->MapcInitComplete(KErrNone, 0);    
-    mTest->disableEqualizer();
-    QTest::qWait(250);
-    
-    QVERIFY(mTestPrivate->iMpxPlaybackUtility->commandSent);        
-    QVERIFY(MpSettingsManager::preset() == KEqualizerPresetNone);
-    
-    QVERIFY(mTestPrivate->iCurrentPresetIndex == KEqualizerPresetNone);
-}
-
-/*!
- Tests presetNames
- */
-void TestMpEqualizerWrapper::testPresetNames()
-{   
-    
-    mTestPrivate->MapcInitComplete(KErrNone, 0);
-    
-    QStringList presetNames = mTest->presetNames();
-    
-    QVERIFY(presetNames.at(0) == "Bass");
-    QVERIFY(presetNames.at(1) == "Classical");
-    QVERIFY(presetNames.at(2) == "Pop");
-    QVERIFY(presetNames.at(3) == "Jazz");
-    QVERIFY(presetNames.at(4) == "Rock");    
-}
-
-// End of file
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/audioequalizerutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +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: CAudioEqualizerUtility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#ifndef CAUDIOEQUALIZERUTILITY_H
-#define CAUDIOEQUALIZERUTILITY_H
-
-//  INCLUDES
-#include <e32base.h>
-#include <e32svr.h>
-#include <AudioEqualizerBase.h>
-#include <centralrepository.h>
-#include <AudioEqualizerUtilityData.h>
-
-// FORWARD DECLARATIONS
-class CMdaAudioPlayerUtility;
-class CRepository;
-
-
-// CLASS DECLARATION
-
-/**
-*  This is the Equalizer Utility class for managing audio equalizer presets.
-*
-*  @lib AudioEqualizerUtility.lib
-*  @since 3.0
-*/
-
-class CAudioEqualizerUtility : public CBase
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Factory function for creating the audio equalizer utility object.
-        * @since 3.0
-        * @param aUtility A reference to a audio player utility
-        * @return pointer to CAudioEqualizerUtility object
-        */
-        static CAudioEqualizerUtility* NewL(CMdaAudioPlayerUtility& aUtility);
-
-         /**
-        * Destructor.
-        */
-        virtual ~CAudioEqualizerUtility();
-
-        /**
-        * Apply the Preset Index value
-        * @since 3.0
-        * @param aPreset Preset Value
-        */
-        void ApplyPresetL(TInt aPreset);
-
-        /**
-        * Disable the Equalizer
-        * @since 3.0
-        */
-        void DisableEqualizerL();
-
-        /**
-        * Retrieves a Preset with the given index from the Central Repository
-        * @since 3.0
-        * @param aPresetIndex Index of the Preset in the Array
-        */
-        const TDesC& GetPresetL(TInt aPresetIndex);
-
-        /**
-        * Get all the Presets defined in the Central Repository
-        * @since 3.0
-        * @return Array of all Presets.
-        */
-        TArray<TEfAudioEqualizerUtilityPreset> Presets();
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        CAudioEqualizerUtility();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        
-        /**
-        * Second Phase Costructor for CMdaAudioPlayerUtility
-        * @since 3.0
-        * @param aUtility CMdaAudioPlayerUtility Referece
-        */
-        void ConstructL(CMdaAudioPlayerUtility& aUtility);
-
-
-        /**
-        * Function of Updating the Preset Array for the User
-        * @since 3.0
-        * @param aUtility MCustomInterface Referece
-        */
-        void UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray);
-
-    private: // Data
-
-        // Array for Storing the Current State of the Repository
-        // which has been compacted after the transaction
-        // with the Central Repository
-        RArray<TEfAudioEqualizerUtilityPreset> iPresetArray;
-
-   };
-
-#endif      // CAUDIOEQUALIZERUTILITY_H
-// End of File
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/mpxplaybackutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ /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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#ifndef MMPXPLAYBACKUTILITY_H
-#define MMPXPLAYBACKUTILITY_H
-
-#include <mpxplaybackframeworkdefs.h>
-#include <mpxcommonframeworkdefs.h>
-//#include "stub/inc/mpxuser.h"
-
-//Forward declarations
-
-class MMPXPlaybackUtility
-{
-public:
-
-    // Stub functions
-    MMPXPlaybackUtility();
-    ~MMPXPlaybackUtility();
-    static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault);
-    void Close();
-    void CommandL(TMPXPlaybackCommand aCmd, TInt aData);
-    
-public:
-    TBool commandSent;
-
-
-};
-
-#endif      // MMPXPLAYBACKUTILITY_H
-
-// End of File
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/mpxuser.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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: mpxuser stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#ifndef MPXUSER_H
-#define MPXUSER_H
-
-#include <e32base.h>
-
-class MPXUser
-    {
-public: // stub functions
-    
-    MPXUser();
-    ~MPXUser();
-
-    static TInt CompleteWithDllPath(TDes& aFileName);
-
-    };
-#endif   // MPXUSER_H
-
-// End of File
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/audioequalizerutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Stub Utility to Access the Equalizer Effect
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include "stub/inc/audioequalizerutility.h"
-#include "mptrace.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-CAudioEqualizerUtility::CAudioEqualizerUtility()
-	{
-    }
-
-
-// Destructor
-CAudioEqualizerUtility::~CAudioEqualizerUtility()
-    {
-		iPresetArray.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CAudioEqualizerUtility::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAudioEqualizerUtility::ConstructL(CMdaAudioPlayerUtility& /*aUtility*/)
-    {
-		UpdatePresetArray(iPresetArray);
-	}
-
-// -----------------------------------------------------------------------------
-// CAudioEqualizerUtility::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioPlayerUtility& aUtility)
-    {
-		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
-		CleanupStack::PushL( self );
-		self->ConstructL(aUtility);
-		CleanupStack::Pop(self);
-		return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAudioEqualizerUtility::ApplyPresetL()
-// Applies the Preset to the Equalizer Object
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAudioEqualizerUtility::ApplyPresetL(
-    TInt /*aPresetIndex*/)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CAudioEqualizerUtility::GetPresetL()
-// Gets the Preset from the Central Repository
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TDesC& CAudioEqualizerUtility::GetPresetL(
-    TInt aPresetIndex)
-    {
-    TX_ENTRY
-
-		if(aPresetIndex > (iPresetArray.Count() - 1) || aPresetIndex < 0 )
-		{
-			User::Leave(KErrArgument);
-		}
-
-		return iPresetArray[aPresetIndex].iPresetName;
-
-    TX_EXIT
-    }
-
-// -----------------------------------------------------------------------------
-// CAudioEqualizerUtility::DisablePresetL()
-// Disable the Preset
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-
-void CAudioEqualizerUtility::DisableEqualizerL()
-{
-}
-
-// -----------------------------------------------------------------------------
-// CAudioEqualizerUtility::Presets()
-// Applies the Preset to the Equalizer Object
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TArray<TEfAudioEqualizerUtilityPreset> CAudioEqualizerUtility::Presets()
-    {
-		return iPresetArray.Array();
-    }
-
-// -----------------------------------------------------------------------------
-// CAudioEqualizerUtility::UpdatePresetArray(RArray<TDesC>& aPresetArray,const RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray)
-// Creates the Descriptor Array of Names of the predifined presets
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAudioEqualizerUtility::UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray)
-	{
-
-		aPresetArray.Reset();
-		
-		TEfAudioEqualizerUtilityPreset	tempPreset1;		
-		tempPreset1.iPresetDescriptionKey = 0x10;
-		tempPreset1.iPresetName = _L("Bass");
-		tempPreset1.iPresetNameKey = 0x0A;
-		aPresetArray.Append(tempPreset1);
-		
-        TEfAudioEqualizerUtilityPreset  tempPreset2;        
-        tempPreset2.iPresetDescriptionKey = 0x20;
-        tempPreset2.iPresetName = _L("Classical");
-        tempPreset2.iPresetNameKey = 0x0B;
-        aPresetArray.Append(tempPreset2);
-
-        TEfAudioEqualizerUtilityPreset  tempPreset3;        
-        tempPreset3.iPresetDescriptionKey = 0x30;
-        tempPreset3.iPresetName = _L("Pop");
-        tempPreset3.iPresetNameKey = 0x0C;
-        aPresetArray.Append(tempPreset3);
-        
-        TEfAudioEqualizerUtilityPreset  tempPreset4;        
-        tempPreset4.iPresetDescriptionKey = 0x40;
-        tempPreset4.iPresetName = _L("Jazz");
-        tempPreset4.iPresetNameKey = 0x0D;
-        aPresetArray.Append(tempPreset4);
-
-        TEfAudioEqualizerUtilityPreset  tempPreset5;        
-        tempPreset5.iPresetDescriptionKey = 0x50;
-        tempPreset5.iPresetName = _L("Rock");
-        tempPreset5.iPresetNameKey = 0x0E;
-        aPresetArray.Append(tempPreset5);
-	}
-
-//  End of File
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/mpxplaybackutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#include <Qt>
-
-#include <mpxplaybackcommanddefs.h>
-//#include <mpxplaybackframeworkdefs.h>
-
-#include "stub/inc/mpxuser.h"
-#include "stub/inc/mpxplaybackutility.h"
-
-
-/*!
- Stub constructor.
- */
-MMPXPlaybackUtility::MMPXPlaybackUtility() :
-    commandSent(EFalse)
-{
-
-}
-
-/*!
- Stub destructor.
- */
-MMPXPlaybackUtility::~MMPXPlaybackUtility()
-{
-
-}
-/*!
- Stub function.
- */
-MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& /*aModeId*/)
-{
-    static MMPXPlaybackUtility playbackUtilility;
-    return &playbackUtilility;
-}
-
-void MMPXPlaybackUtility::Close()
-{
-
-}
-
-void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand /*aCmd*/, TInt /*aData*/)
-{
-    commandSent = ETrue;
-}
-
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/mpxuser.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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: mpxuser stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#include "stub/inc/mpxuser.h"
-
-
-MPXUser::MPXUser()
-{
-    
-}
-
-MPXUser::~MPXUser()
-{
-    
-}
-
-TInt MPXUser::CompleteWithDllPath(TDes& /*aFileName*/)
-{
-    //Do nothing
-    
-    return KErrNone;
-}
-
-
-// End of File
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/unittest_mpequalizerwrapper.pro	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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: Unit test for mpequalizerwidget
-TEMPLATE = app
-CONFIG += qtestlib \
-    hb \
-TARGET = 
-TARGET.CAPABILITY = All -TCB
-DEPENDPATH += .
-INCLUDEPATH += . \
-    ../../inc \
-    ../../../../inc
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-
-LIBS += lestor.dll \
-    -lfbscli.dll \
-    -laudioequalizerutility.dll \
-    -lmpsettingsmanager
-    
-symbian: TARGET.EPOCALLOWDLLDATA = 1
-    
-HEADERS += stub/inc/mpxuser.h \
-    stub/inc/mpxplaybackutility.h \
-    stub/inc/audioequalizerutility.h \
-    inc/unittest_mpequalizerwrapper.h \
-    ../../inc/mpequalizerwrapper.h \
-    ../../inc/mpequalizerwrapper_p.h
-
-SOURCES += stub/src/mpxuser.cpp \
-    stub/src/mpxplaybackutility.cpp \
-    stub/src/audioequalizerutility.cpp \
-    src/unittest_mpequalizerwrapper.cpp \
-    ../../src/mpequalizerwrapper.cpp
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/inc/unittest_mpmpxpbframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /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: Unit test for mpmpxpbframeworkwrapper
-*
-*/
-
-#ifndef TESTMPMPXPBFRAMEWORKWRAPPER_H
-#define TESTMPMPXPBFRAMEWORKWRAPPER_H
-
-#include <QtTest/QtTest>
-
-class MpMpxPbFrameworkWrapper;
-class MpMpxPbFrameworkWrapperPrivate;
-class CMPXMedia;
-class MpPlaybackData;
-
-class TestMpMpxPbFrameworkWrapper : public QObject
-{
-    Q_OBJECT
-
-public:
-
-    TestMpMpxPbFrameworkWrapper();
-    virtual ~TestMpMpxPbFrameworkWrapper();
-    //test utility functions
-    void loadTestData(TInt aPos);
-
-public slots:
-
-    void initTestCase();
-    void cleanupTestCase();
-    void init();
-    void cleanup();
-
-private slots:
-
-    void testConstructor();
-    void testPlaybackData();
-    void testStop();
-    void testPlayPause();    
-    void testSkipForward();  
-    void testSkipBackward();  
-    void testSetPosition();
-    void testSetShuffle();
-    void testSetRepeat();
-    void testHandlePlaybackMessage();
-    void testHandleProperty();
-    void testHandleMedia();        
-    void testRetrieveSongDetails();
-    void testUpdateState();
-    void testForceStop();
-
-private:
-
-    MpMpxPbFrameworkWrapper           *mTest;
-    MpMpxPbFrameworkWrapperPrivate    *mTestPrivate;
-    CMPXMedia                         *iMediaTestData;
-
-};
-
-#endif  // TESTMPMPXPBFRAMEWORKWRAPPER_H
-
-
-
-
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/src/unittest_mpmpxpbframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,389 +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: Unit test for mpmpxpbframeworkwrapper
-*
-*/
-
-#include <QSignalSpy>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
-#include <mpxmedia.h>
-#include <mpxcollectionplaylist.h>
-
-
-
-#include "unittest_mpmpxpbframeworkwrapper.h"
-#include "stub/inc/mpplaybackdata.h"
-#include "stub/inc/mpxcollectionutility.h"
-#include "stub/inc/mpxplaybackutility.h"
-
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpmpxpbframeworkwrapper.h"
-#include "mpmpxpbframeworkwrapper_p.h"
-#undef private
-
-//This so we can test private functions
-#include "../../src/mpmpxpbframeworkwrapper.cpp"
-#include "../../src/mpmpxpbframeworkwrapper_p.cpp"
-//Test data
-struct TTestAttrs
-    {
-    const wchar_t* GeneralTitle;
-    const wchar_t* MusicArtist;
-    const TInt GeneralCount;
-    const wchar_t* MusicAlbumArtFileName;
-    const wchar_t* MusicAlbum;
-    const wchar_t* MusicUri;
-    };
-    
-const TTestAttrs KAllSongsTestData[] =
-    {
-     { L"Title 1", L"Artist 1", 1, L"e:\\data\\images\\art1.jpg", L"Album 1", L"Uri 1"}
-    ,{ L"Title 2", L"Artist 2", 1, L"e:\\data\\images\\art2.jpg", L"Album 2", L"Uri 2"}  
-    };
-
-/*!
- Make our test case a stand-alone executable that runs all the test functions.
- */
-int main(int argc, char *argv[])
-{
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
-    TestMpMpxPbFrameworkWrapper tv;
-
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpmpxpbframeworkwrapper.txt";
-
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
-}
-
-TestMpMpxPbFrameworkWrapper::TestMpMpxPbFrameworkWrapper()
-    : mTest(0),
-      iMediaTestData(0)
-{
-}
-
-TestMpMpxPbFrameworkWrapper::~TestMpMpxPbFrameworkWrapper()
-{
-    delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpMpxPbFrameworkWrapper::initTestCase()
-{
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpMpxPbFrameworkWrapper::cleanupTestCase()
-{
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpMpxPbFrameworkWrapper::init()
-{
-    
-    mTest = new MpMpxPbFrameworkWrapper();
-    mTestPrivate = mTest->d_ptr;
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpMpxPbFrameworkWrapper::cleanup()
-{
-    delete mTest;
-    mTest = 0;
-}
-
-/*!
- Tests constructor.
- */
-void TestMpMpxPbFrameworkWrapper::testConstructor()
-{
-    QVERIFY(mTestPrivate->iCollectionUtility != 0);
-    QVERIFY(mTestPrivate->iPlaybackUtility != 0);
-    QVERIFY(mTestPrivate->iPlaybackData != 0);
-}
-
-/*!
- Tests playbackData
- */
-void TestMpMpxPbFrameworkWrapper::testPlaybackData()
-{
-    MpPlaybackData *playbackdata;
-    playbackdata = mTest->playbackData();
-    QCOMPARE(mTestPrivate->iPlaybackData, playbackdata);
-}
-
-/*!
- Tests stop.
- */
-void TestMpMpxPbFrameworkWrapper::testStop()
-{
-    mTest->stop();
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStop);
-}
-
-/*!
- Tests playPause.
- */
-void TestMpMpxPbFrameworkWrapper::testPlayPause()
-{
-    mTest->playPause();
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdPlayPause);
-}
-
-/*!
- Tests skipForward.
- */
-void TestMpMpxPbFrameworkWrapper::testSkipForward()
-{
-    mTest->skipForward();
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdNext);
-}
-
-/*!
- Tests skipBackward
- */
-void TestMpMpxPbFrameworkWrapper::testSkipBackward()
-{
-    mTest->skipBackward();
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdPrevious);
-}
-
-/*!
- Tests setPosition
- */
-void TestMpMpxPbFrameworkWrapper::testSetPosition()
-{
-    mTest->setPosition(100);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 100);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
-    mTest->setPosition(50);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 50);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
-    mTest->setPosition(700);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 700);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);    
-}
-
-/*!
- Tests setShuffle
- */
-void TestMpMpxPbFrameworkWrapper::testSetShuffle()
-{
-    mTest->setShuffle(true);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, TBool(ETrue));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRandomMode);
-    mTest->setShuffle(false);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, TBool(EFalse));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRandomMode);
-}
-
-/*!
- Tests setRepeat
- */
-void TestMpMpxPbFrameworkWrapper::testSetRepeat()
-{
-    mTest->setRepeat(true);
-    QCOMPARE(TMPXPlaybackRepeatMode(mTestPrivate->iPlaybackUtility->iValue), EPbRepeatAll);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRepeatMode);
-    mTest->setRepeat(false);
-    QCOMPARE(TMPXPlaybackRepeatMode(mTestPrivate->iPlaybackUtility->iValue), EPbRepeatOff);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRepeatMode);
-}
-
-/*!
- Tests handleProperty
- */
-void TestMpMpxPbFrameworkWrapper::testHandlePlaybackMessage()
-{
-    RArray<TInt> supportedIds;
-    CleanupClosePushL( supportedIds );
-    supportedIds.AppendL( KMPXMessageContentIdGeneral );
-    CMPXMedia* testMessage = CMPXMedia::NewL(supportedIds.Array());
-    CleanupStack::PopAndDestroy(&supportedIds);
-    CleanupStack::PushL(testMessage);
-    testMessage->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral);
-    
-    //Update State
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EStateChanged);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
-    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
-    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
-    
-    //Initialize complete
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EInitializeComplete);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,1);
-    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandGeneralId),KMPXCommandIdPlaybackGeneral);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralType),TInt(EPbCmdPlay));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandGeneralDoSync),TBool(ETrue));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandPlaybackGeneralNoBuffer),TBool(ETrue));
-
-    //Property change
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EPropertyChanged);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EPbPropertyPosition);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,50);
-    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackData->mPosition, 50);
-    
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EPbPropertyDuration);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,100);
-    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackData->mDuration, 100);
-    
-    //Media change
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EMediaChanged);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
-    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
-    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iAttrs->Count(), 5);
-}
-
-/*!
- Tests handleProperty
- */
-void TestMpMpxPbFrameworkWrapper::testHandleProperty()
-{
-    for(TInt i = 0; i < 10; i++){
-        mTestPrivate->HandlePropertyL(EPbPropertyPosition, i, KErrNone);
-        mTestPrivate->HandlePropertyL(EPbPropertyDuration, i+1, KErrNone);
-        QCOMPARE(mTestPrivate->iPlaybackData->mPosition, i);
-        QCOMPARE(mTestPrivate->iPlaybackData->mDuration, i+1);       
-    }
-    mTestPrivate->iPlaybackData->mPosition = 100;
-    mTestPrivate->iPlaybackData->mDuration = 100;
-    mTestPrivate->HandlePropertyL(EPbPropertyPosition, 10, KErrNotFound);
-    mTestPrivate->HandlePropertyL(EPbPropertyDuration, 10, KErrNotFound);
-    
-    QCOMPARE(mTestPrivate->iPlaybackData->mPosition, 100);
-    QCOMPARE(mTestPrivate->iPlaybackData->mDuration, 100);
-}
-
-/*!
- Tests handleMedia
- */
-void TestMpMpxPbFrameworkWrapper::testHandleMedia()
-{
-    loadTestData(0);
-    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
-    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
-    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(EFalse));
-    
-    loadTestData(1);
-    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
-    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
-    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
-    const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].GeneralTitle));
-    QCOMPARE(mTestPrivate->iPlaybackData->title(), QString::fromUtf16( title.Ptr(), title.Length() ));
-    const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicArtist));
-    QCOMPARE(mTestPrivate->iPlaybackData->artist(), QString::fromUtf16( artist.Ptr(), artist.Length() ));
-    const TDesC& album = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicAlbum));
-    QCOMPARE(mTestPrivate->iPlaybackData->album(), QString::fromUtf16( album.Ptr(), album.Length() ));
-    const TDesC& albumArt = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicAlbumArtFileName));
-    QCOMPARE(mTestPrivate->iPlaybackData->currentAAUri, QString::fromUtf16( albumArt.Ptr(), albumArt.Length() ));
-    const TDesC& albumUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicUri));
-    QCOMPARE(mTestPrivate->iPlaybackData->currentUri, QString::fromUtf16( albumUri.Ptr(), albumUri.Length() ));
-}
-
-/*!
- Tests retrieveSong
- */
-void TestMpMpxPbFrameworkWrapper::testRetrieveSongDetails()
-{
-    mTestPrivate->RetrieveSongDetailsL();
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iAttrs->Count(), 5);
-}
-
-/*!
- Tests updateState
- */
-void TestMpMpxPbFrameworkWrapper::testUpdateState()
-{
-    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
-    mTestPrivate->UpdateStateL();
-    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
-    mTestPrivate->iPlaybackUtility->iState = EPbStatePaused;
-    mTestPrivate->UpdateStateL();
-    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Paused);
-    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
-    mTestPrivate->UpdateStateL();
-    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
-    mTestPrivate->iPlaybackUtility->iState = EPbStateStopped;
-    mTestPrivate->UpdateStateL();
-    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Stopped);   
-}
-
-/*!
- Tests forceStop
- */
-void TestMpMpxPbFrameworkWrapper::testForceStop()
-{
-    mTestPrivate->ForceStopL();
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandGeneralId),KMPXCommandIdPlaybackGeneral);
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralType),TInt(EPbCmdStop));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandGeneralDoSync),TBool(ETrue));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandPlaybackGeneralNoBuffer),TBool(ETrue));
-    QVERIFY(mTestPrivate->iPlaybackUtility->iObs == 0);
-}
-
-/*!
- Used to load test data
- */
-void TestMpMpxPbFrameworkWrapper::loadTestData(TInt aPos)
-{
-    if(iMediaTestData){
-        delete iMediaTestData;
-        iMediaTestData=0;
-    }
-    RArray<TInt> supportedIds;
-    CleanupClosePushL( supportedIds );
-    supportedIds.AppendL( KMPXMediaIdMusic );
-    supportedIds.AppendL( KMPXMediaIdGeneral );
-    CMPXMedia* entries = CMPXMedia::NewL(supportedIds.Array());
-    CleanupStack::PopAndDestroy(&supportedIds);
-    CleanupStack::PushL(entries);
-
-    entries->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].GeneralTitle)));
-    entries->SetTextValueL(KMPXMediaMusicArtist, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicArtist)));
-    entries->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[aPos].GeneralCount);
-    entries->SetTextValueL(KMPXMediaMusicAlbumArtFileName, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicAlbumArtFileName)));
-    entries->SetTextValueL(KMPXMediaMusicAlbum, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicAlbum)));
-    entries->SetTextValueL(KMPXMediaGeneralUri, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicUri)));
- 
-    iMediaTestData = CMPXMedia::NewL(*entries);
-    CleanupStack::PopAndDestroy(entries);
-}
-
-//end of file
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpplaybackdata.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +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: Playback Data stub for testing mpmpxpbframeworkwrapper
-*
-*/
-
-#ifndef MPPLAYBACKDATA_H
-#define MPPLAYBACKDATA_H
-
-#include <QObject>
-#include <QString>
-
-
-//class declaration
-class MpPlaybackData : public QObject
-{
-    Q_OBJECT
-
-public:
-    enum SimplifiedPlaybackState {
-        Playing,
-        Paused,
-        Stopped
-    };
-    
-    explicit MpPlaybackData();
-    virtual ~MpPlaybackData();
-
-    void setDuration( int duration);
-    void setPosition( int position);
-    bool setTitle( const QString& title);
-    bool setAlbum( const QString& album);
-    bool setArtist( const QString& artist);
-    void setAlbumArtUri( const QString& albumArtUri);
-    void setUri( const QString& aUri);
-    void setPlaybackState(const SimplifiedPlaybackState state );
-    int duration() const;
-    int position() const;
-    const QString& title() const;
-    const QString& album() const;
-    const QString& artist() const;
-    MpPlaybackData::SimplifiedPlaybackState playbackState();
-    void commitPlaybackInfo();
-    void handleMediaReady();
-
-
-public:
-    int                      mDuration;
-    int                      mPosition;
-    QString                  mTitle;
-    QString                  mAlbum;
-    QString                  mArtist;
-    SimplifiedPlaybackState  mPlaybackState;
-    QString                  currentAAUri; 
-    QString                  currentUri;
-    TBool                    mMediaReady;
-    
-    Q_DISABLE_COPY(MpPlaybackData)
-};
-
-#endif // MPPLAYBACKDATA_H
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpxcollectionutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: mpxcollectionutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#ifndef MMPXCOLLECTIONUTILITY_H
-#define MMPXCOLLECTIONUTILITY_H
-
-#include <mpxcollectionframeworkdefs.h>
-#include <mpxcommonframeworkdefs.h>
-#include <mpxcollectionobserver.h>
-#include <mpxattribute.h>
-#include <mpxsearchcriteria.h>
-#include <mpxattributespecs.h>
-
-#include <badesca.h>
-
-
-//Forward declarations
-class CMPXCollectionPath;
-
-class MMPXCollection
-{
-public:
-    
-    // Stub functions interface
-    virtual void CommandL(CMPXCommand& aCmd) = 0;
-   
-};
-
-class MMPXCollectionUtility : public MMPXCollection
-{
-public:
-
-    // Stub functions
-    static MMPXCollectionUtility* NewL( MMPXCollectionObserver* aObs = NULL,
-                                        const TUid& aModeId = KMcModeDefault);
-    MMPXCollectionUtility();
-    ~MMPXCollectionUtility();
-    MMPXCollection& Collection();
-    TUid CollectionIDL(const TArray<TUid>& aUids);
-    void Close();
-    
-    void CommandL(CMPXCommand& aCmd);
-    
-public:
- 
-    CMPXCommand *iCmd;
-};
-
-
-
-
-
-#endif      // MMPXCOLLECTIONUTILITY_H
-
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpxplaybackutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#ifndef MMPXPLAYBACKUTILITY_H
-#define MMPXPLAYBACKUTILITY_H
-
-#include <mpxplaybackframeworkdefs.h>
-#include <mpxcommonframeworkdefs.h>
-#include <badesca.h>
-#include <mpxattribute.h>
-#include <mpxattributespecs.h>
-
-//Forward declarations
-class CMPXCollectionPlaylist;
-class MMPXPlaybackObserver;  
-class MMPXPlaybackCallback;
-
-class MMPXSource
-{
-public:
-    //MMPXSource interface for playback utility stub
-    virtual CMPXCollectionPlaylist* PlaylistL()=0;
-    virtual void MediaL(const TArray<TMPXAttribute>& aAttrs,
-                    MMPXPlaybackCallback& aCallback)=0;
-
- 
-};
-
-class MMPXPlaybackUtility: public MMPXSource
-{
-public:
-
-    // Stub functions
-    MMPXPlaybackUtility();
-    ~MMPXPlaybackUtility();
-    static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault);
-    void AddObserverL(MMPXPlaybackObserver& aObs);
-    void RemoveObserverL(MMPXPlaybackObserver& aObs);
-    void Close();
-    void CommandL(TMPXPlaybackCommand aCmd,TInt aData=0);
-    void CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback=NULL);
-    MMPXSource* Source();
-     void SetL(TMPXPlaybackProperty aProperty, TInt aValue);
-    TMPXPlaybackState StateL() const;
-    // Stub function from MMPXSource
-    CMPXCollectionPlaylist* PlaylistL();
-    void MediaL(const TArray<TMPXAttribute>& aAttrs,
-                    MMPXPlaybackCallback& aCallback);
-    
-
-public:
-
-    TInt                    iValue;
-    TMPXPlaybackProperty    iProperty;
-    MMPXPlaybackObserver*   iObs;
-    TMPXPlaybackCommand     iCmd;
-    CMPXCommand*            iCMPXCmd;
-    TMPXPlaybackState       iState;
-    RArray<TMPXAttribute>*   iAttrs;
-};
-
-#endif      // MMPXPLAYBACKUTILITY_H
-
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpplaybackdata.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +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: Playback Data stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#include <qstring>
-
-#include "stub/inc/mpplaybackdata.h"
-#include "mptrace.h"
-
-
-/*!
- Stub function.
-*/
-MpPlaybackData::MpPlaybackData()
-    : mDuration( 0 ),
-      mPosition( 0 ),
-      mTitle(""),
-      mAlbum(""),
-      mArtist("Unknown"),
-      mMediaReady(EFalse),
-      mPlaybackState(MpPlaybackData::Stopped)
-{
-}
-
-/*!
- Stub function.
-*/
-MpPlaybackData::~MpPlaybackData()
-{
-}
-    
-/*!
- Stub function.
-*/
-int MpPlaybackData::duration() const
-{
-    TX_LOG
-    return mDuration;
-}
-
-/*!
- Stub function.
-*/
-int MpPlaybackData::position() const
-{
-    TX_LOG
-    return mPosition;
-}
-
-/*!
- Stub function.
-*/
-const QString& MpPlaybackData::title() const
-{
-    TX_LOG
-    return mTitle;
-}
-
-/*!
- Stub function.
-*/
-const QString& MpPlaybackData::album() const
-{
-    TX_LOG
-    return mAlbum;
-}
-
-/*!
- Stub function.
-*/
-const QString& MpPlaybackData::artist() const
-{
-    TX_LOG
-    return mArtist;
-}
-
-/*!
- Stub function.
-*/
-MpPlaybackData::SimplifiedPlaybackState MpPlaybackData::playbackState()
-{
-    TX_LOG_ARGS("mPlaybackState=" << mPlaybackState)
-    return mPlaybackState;
-}
-
-/*!
- Stub function.
-*/
-void MpPlaybackData::setDuration( int duration )
-{
-    TX_ENTRY_ARGS( "duration =" << duration )
-    mDuration = duration;
-    TX_EXIT
-}
-
-/*!
- Stub function.
-*/
-void MpPlaybackData::setPosition( int position )
-{
-    TX_ENTRY_ARGS( "position =" << position )
-    mPosition = position;
-    TX_EXIT
-}
-
-/*!
- Stub function.
-*/
-bool MpPlaybackData::setTitle( const QString& title )
-{
-    TX_ENTRY_ARGS( "title =" << title )
-    bool change = false;
-    if ( title != mTitle ) {
-        change = true;
-        mTitle = title;
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Stub function.
-*/
-bool MpPlaybackData::setAlbum( const QString& album )
-{
-    TX_ENTRY_ARGS( "album =" << album )
-    bool change = false;
-    if ( album != mAlbum ) {
-        change = true;
-        mAlbum = album;
-    }
-    TX_EXIT
-    return change;
-}
-
-/*!
- Stub function.
-*/
-bool MpPlaybackData::setArtist( const QString& artist )
-{
-    TX_ENTRY_ARGS( "artist =" << artist )
-    bool change = false;
-    if ( artist != mArtist ) {
-        change = true;
-        mArtist = artist;
-    }
-    TX_EXIT
-    return change;
-}
-
-
-/*!
- Stub function.
-*/
-void MpPlaybackData::setAlbumArtUri( const QString& albumArtUri)
-{
-    TX_ENTRY_ARGS( "albumArtUri =" << albumArtUri )
-    if ( !albumArtUri.isEmpty() ) {
-        if ( albumArtUri != currentAAUri ) {
-            currentAAUri = albumArtUri;
-        }
-    }
-    TX_EXIT
-}
-
-/*!
- Stub function.
-*/
-void MpPlaybackData::setUri( const QString& aUri)
-{
-    TX_ENTRY_ARGS( "aUri =" << aUri )
-    if ( !aUri.isEmpty() ) {
-        if ( aUri != currentUri ) {
-            currentUri = aUri;
-        }
-    }
-    TX_EXIT
-}
-
-/*!
- Stub function.
-*/
-void MpPlaybackData::setPlaybackState(const SimplifiedPlaybackState state )
-{
-    TX_ENTRY_ARGS( "state =" << state )
-    mPlaybackState = state;
-    TX_EXIT
-}
-
-/*!
- Stub function.
-*/
-void MpPlaybackData::commitPlaybackInfo()
-{
-    TX_ENTRY
-    mMediaReady = ETrue;
-    TX_EXIT
-}
-
-/*!
- Stub function.
-*/
-void MpPlaybackData::handleMediaReady()
-{
-    mMediaReady = ETrue;
-}
-
-//end of file
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpxcollectionutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: mpxcollectionutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-
-#include <mpxmedia.h>
-#include <mpxmessage.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxcollectionmessage.h>
-#include <mpxcollectionmessagedefs.h>
-#include <mpxmediageneraldefs.h>
-#include <mpxmediacollectiondetaildefs.h>
-#include <mpxcollectionplugin.hrh>
-#include <mpxcollectionpath.h>
-#include "mptrace.h"
-#include <e32debug.h>
-
-#include "stub/inc/mpxcollectionutility.h"
-const TInt KMPXAllSongsViewIndex = 0;
-const TInt KMPXPlaylistViewIndex = 1;
-
-/*!
- Stub function.
-*/
-MMPXCollectionUtility::MMPXCollectionUtility():iCmd(0)
-{   
-}
-
-/*!
- Stub function.
-*/
-MMPXCollectionUtility::~MMPXCollectionUtility()
-{    
-}
-
-/*!
- Stub function.
-*/
-MMPXCollectionUtility* MMPXCollectionUtility::NewL(MMPXCollectionObserver* aObs, const TUid& aModeId)
-{
-    Q_UNUSED(aObs);
-    Q_UNUSED(aModeId);
-    MMPXCollectionUtility* temp = new MMPXCollectionUtility();
-    return temp;
-}
-
-/*!
- Stub function.
-*/
-MMPXCollection& MMPXCollectionUtility::Collection()
-{ 
-    return *this;
-}
-
-/*!
- Stub function.
-*/
-void MMPXCollectionUtility::Close()
-{
-    delete this;
-}
-
-/*!
- Stub function.
-*/
-TUid MMPXCollectionUtility::CollectionIDL(const TArray<TUid>& aUids)
-{ 
-    Q_UNUSED(aUids);
-    TX_ENTRY
-    return TUid::Uid(EMPXCollectionPluginMusic);
-}
-
-/*!
- Stub function.
-*/
-void MMPXCollectionUtility::CommandL(CMPXCommand& aCmd)
-{
-    delete iCmd;
-    iCmd = 0;
-    iCmd = CMPXCommand::NewL(aCmd);
-}
-
-//end of file
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpxplaybackutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +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: mpxplaybackutility stub for testing mpmpxframeworkwrapper
-*
-*/
-
-#include <Qt>
-#include <mpxcollectionplaylist.h>
-#include <mptrace.h>
-
-#include "stub/inc/mpxplaybackutility.h"
-
-/*!
- Stub function.
-*/
-MMPXPlaybackUtility::MMPXPlaybackUtility():iProperty(EPbPropertyVolume),
-                                           iObs(0),
-                                           iValue(0),
-                                           iState(EPbStateNotInitialised),
-                                           iAttrs(0),
-                                           iCMPXCmd(0)
-{
-}
-
-/*!
- Stub function.
-*/
-MMPXPlaybackUtility::~MMPXPlaybackUtility()
-{
-}
-
-/*!
- Stub function.
- */
-MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& aModeId)
-{
-    Q_UNUSED(aModeId);
-    static MMPXPlaybackUtility playbackUtilility;
-    return &playbackUtilility;
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::AddObserverL(MMPXPlaybackObserver& aObs)
-{
-    iObs = &aObs;
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::RemoveObserverL(MMPXPlaybackObserver& aObs)
-{
-   if(iObs == &aObs){
-       iObs = 0;
-   }   
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::Close()
-{
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand aCmd,TInt aData)
-{
-    Q_UNUSED(aData);
-    iCmd = aCmd;   
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback)
-{
-    Q_UNUSED(aCallback);
-    if(iCMPXCmd){
-        delete iCMPXCmd;
-        iCMPXCmd = 0;
-    }
-    iCMPXCmd = CMPXCommand::NewL(aCmd);
-}
-
-/*!
- Stub function.
-*/
-MMPXSource* MMPXPlaybackUtility::Source()
-{
-    return this;
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::SetL(TMPXPlaybackProperty aProperty, TInt aValue)
-{
-    iProperty = aProperty;
-    iValue = aValue;
-}
-
-/*!
- Stub function.
-*/
-TMPXPlaybackState MMPXPlaybackUtility::StateL() const
-{
-    return iState;
-}
-
-/*!
- Stub function.
-*/
-CMPXCollectionPlaylist* MMPXPlaybackUtility::PlaylistL()
-{
-    CMPXCollectionPlaylist* temp = CMPXCollectionPlaylist::NewL();
-    return temp;
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::MediaL(const TArray<TMPXAttribute>& aAttrs,
-                    MMPXPlaybackCallback& aCallback)
-{
-    Q_UNUSED(aCallback);
-    RArray<TMPXAttribute> attrs;
-    CleanupClosePushL(attrs);
-    for(TInt i = 0; i < aAttrs.Count(); i++){
-        attrs.AppendL(aAttrs[i]);
-    }
-    iAttrs = new RArray<TMPXAttribute>(attrs);
-    CleanupStack::PopAndDestroy(&attrs);
-   
-}
-//end of file
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/unittest_mpmpxpbframeworkwrapper.pro	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +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: Unit test for mpmpxpbframeworkwrapper
-TEMPLATE = app
-CONFIG += qtestlib \
-    hb
-TARGET = 
-
-TARGET.CAPABILITY = All -TCB
-
-DEPENDPATH += .
-INCLUDEPATH += . \
-    ../../inc \
-    ../../../../inc
-
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-
-LIBS += -lestor.dll \
-    -lfbscli.dll \
-    -lmpxcommon.dll \
-    -lmpxcollectionutility.dll 
-
-HEADERS += inc/unittest_mpmpxpbframeworkwrapper.h \
-    ../../inc/mpmpxpbframeworkwrapper.h \
-    ../../inc/mpmpxpbframeworkwrapper_p.h \
-    stub/inc/mpplaybackdata.h \
-	stub/inc/mpxcollectionutility.h \
-	stub/inc/mpxplaybackutility.h 
-
-SOURCES += src/unittest_mpmpxpbframeworkwrapper.cpp \
-	stub/src/mpplaybackdata.cpp \
-	stub/src/mpxcollectionutility.cpp \
-	stub/src/mpxplaybackutility.cpp 
-
-RESOURCES += ../../resources/mpplaybackviewpluginresources.qrc
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/src/unittest_mpplaybackviewplugin.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/src/unittest_mpplaybackviewplugin.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,12 +17,10 @@
 
 #include <QSignalSpy>
 #include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
 
+#include "stub/inc/mpplaybackview.h"
+#include "stub/inc/xqplugin.h"
 #include "unittest_mpplaybackviewplugin.h"
-#include "stub/inc/mpplaybackview.h"
 
 
 // Do this so we can access all member variables.
@@ -30,23 +28,28 @@
 #include "mpplaybackviewplugin.h"
 #undef private
 
+//This so mpplaybackviewplugin.cpp can load qt stub items
+#include "../../src/mpplaybackviewplugin.cpp"
+
 /*!
  Make our test case a stand-alone executable that runs all the test functions.
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
+    QApplication app(argc, argv);
     TestMpPlaybackViewPlugin tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpplaybackviewplugin.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpplaybackviewplugin.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpPlaybackViewPlugin::TestMpPlaybackViewPlugin()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/stub/inc/xqplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* 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 for testing MpSettingsViewPlugin
+*
+*/
+
+#ifndef XQPLUGIN_H
+#define XQPLUGIN_H
+
+// convenience macro
+#define XQ_EXPORT_PLUGIN(PLUGIN, PLUGINCLASS)
+
+#define XQ_EXPORT_PLUGIN2(PLUGIN, PLUGINCLASS)
+
+#endif // XQ_PLUGIN_H
--- a/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/unittest_mpplaybackviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/unittest_mpplaybackviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -15,24 +15,24 @@
 #
 
 TEMPLATE = app
-CONFIG += qtestlib hb
-TARGET = 
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpplaybackviewplugin
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
     ../../inc \
     ../../../../inc
-
-
-    
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
 
 LIBS += -lmpxviewframeworkqt.dll
-				
-HEADERS += inc/unittest_mpplaybackviewplugin.h \        
-           ../../inc/mpplaybackviewplugin.h \
-           stub/inc/mpplaybackview.h
-               
+
+HEADERS += inc/unittest_mpplaybackviewplugin.h \
+           stub/inc/mpplaybackview.h \
+           stub/inc/xqplugin.h \
+           ../../inc/mpplaybackviewplugin.h
+
 SOURCES += src/unittest_mpplaybackviewplugin.cpp \
-		   ../../src/mpplaybackviewplugin.cpp \
            stub/src/mpplaybackview.cpp
+
--- a/mpviewplugins/mpsettingsviewplugin/inc/mpmpxasframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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:  Framework wraper for Audio Settings
-*
-*/
-/*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Framework wraper for Audio Settings
-*
-*/
-
-#ifndef MPMPXASFRAMEWORKWRAPPER_H
-#define MPMPXASFRAMEWORKWRAPPER_H
-
-#include <QObject>
-
-class MpMpxAsFrameworkWrapperPrivate;
-
-class MpMpxAsFrameworkWrapper : public QObject
-{
-    Q_OBJECT
-    friend class MpMpxAsFrameworkWrapperPrivate;
-
-public:
-    explicit MpMpxAsFrameworkWrapper();
-    virtual ~MpMpxAsFrameworkWrapper();
-    
-    int balance();
-    bool loudness();
-    
-public slots:
-    void setBalance( int balance );
-    void setLoudness( bool mode );
-    
-private:
-    MpMpxAsFrameworkWrapperPrivate *d_ptr; //owned
-   
-};
-
-#endif /*MPMPXASFRAMEWORKWRAPPER_H*/
--- a/mpviewplugins/mpsettingsviewplugin/inc/mpmpxasframeworkwrapper_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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: Framework wraper for Audio Settings - Private.
-*
-*/
-
-#ifndef MPMPXASFRAMEWORKWRAPPER_P_H
-#define MPMPXASFRAMEWORKWRAPPER_P_H
-
-#include <mpxaudioeffectproperties.h>
-
-class MMPXPlaybackUtility;
-class CMPXAudioEffectProperties;
-
-class MpMpxAsFrameworkWrapperPrivate 
-{
-public:
-    explicit MpMpxAsFrameworkWrapperPrivate(); 
-    virtual ~MpMpxAsFrameworkWrapperPrivate();
-    
-    
-public:
-    
-    void init();
-    void setBalance(int balance);
-    void setLoudness(bool mode);
-    int  balance();
-    bool loudness();
-            
-private:
-    
-    void doInitL();
-    void doSetBalanceL(int balance);
-    void doSetLoudnessL(bool mode);
-    int  balanceL();
-    bool loudnessL();
-             
-private:
-    MMPXPlaybackUtility           *iPlaybackUtility; // owned
-    CMPXAudioEffectProperties     *iAudioEffectProperties; // owned
-};
-
-#endif /*MPMPXASFRAMEWORKWRAPPER_P_H*/
--- a/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsaudioeffectswidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsaudioeffectswidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -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"
@@ -10,8 +10,8 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
-* 
-* Description: Music Player audio effect view.
+*
+* Description: Music Player Settings view - audio settings.
 *
 */
 
@@ -20,13 +20,13 @@
 
 
 // INCLUDES
-#include <qobject>
+#include <QObject>
 #include <hbwidget.h>
 #include <hbdataform.h>
 #include <hbdataformmodel.h>
 
 // CLASS DECLARATION
-class MpMpxAsFrameworkWrapper;
+class MpEngine;
 class HbSlider;
 
 /**
@@ -49,7 +49,7 @@
     
 private:
 
-    MpMpxAsFrameworkWrapper *mFrameworkWrapper;
+    MpEngine                *mMpEngine;         // Own
     HbDataFormModel         *mModel;
     };
 
--- a/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsview.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -46,7 +46,7 @@
         
 private:
     HbMainWindow                 *mWindow;             // not own
-    HbAction                     *mNavigationBack;     // own
+    HbAction                     *mSoftKeyBack;        // own
     MpSettingsAudioEffectsWidget *mAudioEffectsWidget; // not own
 
     Q_DISABLE_COPY(MpSettingsView)
--- a/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsviewplugin.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsviewplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef MPSETTINGSVIEWPLUGIN_H
 #define MPSETTINGSVIEWPLUGIN_H
 
-#include <qobject>
+#include <QObject>
 #include <mpxviewpluginqt.h>
 
 //forward declartions
--- a/mpviewplugins/mpsettingsviewplugin/mpsettingsviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/mpsettingsviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,45 +14,38 @@
 # Description: 
 #
 
-symbian:TARGET.UID3 = 0x10207C66
-
 TEMPLATE = lib
 CONFIG += hb qt ecomplugin
 TARGET = mpsettingsviewplugin
+symbian: { 
+    TARGET.UID3 = 0x10207C66
+    TARGET.CAPABILITY = All -TCB
+    TARGET.EPOCALLOWDLLDATA = 1
+}
 
 SERVICE.INTERFACE_NAME = org.nokia.mmdt.MpxViewPlugin/1.0
 SERVICE.CONFIGURATION = "<t>0x101FFCA2</t><i>EMPXViewPluginPriorityLowest</i>"
 
-TARGET.CAPABILITY = All -TCB
-
 DEPENDPATH += .
 INCLUDEPATH += . \
-     inc \
-     ../../inc \
-     ../../mpserviceplugins/inc
-     
+               inc \
+               ../../inc     
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
      
-LIBS += -lmpxplaybackutility.dll \
-        -lestor.dll \
-				-lmpxviewframeworkqt.dll
-	
-symbian:TARGET.EPOCALLOWDLLDATA = 1
+LIBS += -lmpxplaybackutility \
+        -lestor \
+	-lmpxviewframeworkqt \
+	-lmpengine
 
+# Input
 HEADERS += ../../inc/mpviewbase.h \
-      inc/mpsettingsviewplugin.h \
-      inc/mpsettingsview.h \
-      inc/mpsettingsaudioeffectswidget.h \
-      inc/mpmpxasframeworkwrapper.h \
-      inc/mpmpxasframeworkwrapper_p.h
-      
+           inc/mpsettingsviewplugin.h \
+           inc/mpsettingsview.h \
+           inc/mpsettingsaudioeffectswidget.h
 
 SOURCES += src/mpsettingsviewplugin.cpp \
-       src/mpsettingsview.cpp \
-       src/mpsettingsaudioeffectswidget.cpp \
-       src/mpmpxasframeworkwrapper.cpp \
-       src/mpmpxasframeworkwrapper_p.cpp
-       
+           src/mpsettingsview.cpp \
+           src/mpsettingsaudioeffectswidget.cpp 
        
 RESOURCES += resources/mpsettingsview.qrc
 
--- a/mpviewplugins/mpsettingsviewplugin/src/mpmpxasframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +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: Framework wraper for Audio Settings.
-*
-*/
-
-#include "mpmpxasframeworkwrapper.h"
-#include "mpmpxasframeworkwrapper_p.h"
-#include "mptrace.h"
-
-/*!
-    \class MpMpxAsFrameworkWrapper
-    \brief Wrapper for mpx framework utilities.
-
-    MPX framework wrapper provides Qt style interface to the MPX framework
-    utilities. Its implementation is hidden using private class data pattern.
-*/
-
-/*!
- Constructor.
- */
-MpMpxAsFrameworkWrapper::MpMpxAsFrameworkWrapper()
-    :d_ptr( new MpMpxAsFrameworkWrapperPrivate() )
-{
-    d_ptr->init();
-}
-
-/*!
- Destructor.
- */
-MpMpxAsFrameworkWrapper::~MpMpxAsFrameworkWrapper()
-{
-    TX_ENTRY
-    delete d_ptr;
-    TX_EXIT
-}
-
-
-/*!
- Returns the current persistent balance.
- */
-int MpMpxAsFrameworkWrapper::balance()
-{
-    TX_LOG
-    return d_ptr->balance();
-}
-
-/*!
- Returns the current persistent loudness.
- */
-bool MpMpxAsFrameworkWrapper::loudness()
-{
-    TX_LOG
-    return d_ptr->loudness();
-}
-
-/*!
- Slot to handle a change to the balance.
- */
-void MpMpxAsFrameworkWrapper::setBalance( int balance )
-{
-    TX_ENTRY
-    d_ptr->setBalance( balance );
-    TX_EXIT
-}
-
-/*!
- Slot to handle a change to the loudness.
- */
-void MpMpxAsFrameworkWrapper::setLoudness( bool mode )
-{
-    TX_ENTRY
-    d_ptr->setLoudness( mode );
-    TX_EXIT
-}
--- a/mpviewplugins/mpsettingsviewplugin/src/mpmpxasframeworkwrapper_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +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: Framework wraper for Audio Settings - Private.
-*
-*/
-
-#include <mpxplaybackutility.h>
-
-#include "mpmpxasframeworkwrapper_p.h"
-#include "mpxaudioeffectengine.h"
-#include "mpcommondefs.h"
-#include "mptrace.h"
-
-
-/*!
-    \class MpMpxAsFrameworkWrapperPrivate
-    \brief Wrapper for mpx framework utilities - private implementation.
-
-    This is a private implementation of the mpx framework wrapper utilties interface.
-*/
-
-/*!
- \internal
- */
-MpMpxAsFrameworkWrapperPrivate::MpMpxAsFrameworkWrapperPrivate()
-    :iPlaybackUtility( 0 ),
-     iAudioEffectProperties( new CMPXAudioEffectProperties() )
-{
-    
-}
-
-/*!
- \internal
- */
-MpMpxAsFrameworkWrapperPrivate::~MpMpxAsFrameworkWrapperPrivate()
-{
-    if( iPlaybackUtility )
-        {
-        iPlaybackUtility->Close();
-        }
-    delete iAudioEffectProperties;
-}
-
-/*!
- \internal
- */
-
-void MpMpxAsFrameworkWrapperPrivate::init()
-{
-    TRAPD( err, doInitL() );
-    if ( err != KErrNone ) 
-        {
-        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
-        }
-}
-
-/*!
- \internal
- */
-void MpMpxAsFrameworkWrapperPrivate::setBalance( int balance )
-{
-    TRAPD( err, doSetBalanceL( balance ) );
-    if ( err != KErrNone ) 
-        {
-        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
-        }
-}
-
-/*!
- \internal
- */
-void MpMpxAsFrameworkWrapperPrivate::setLoudness( bool mode )
-{
-    TRAPD( err, doSetLoudnessL( mode ) );
-    if ( err != KErrNone ) 
-        {
-        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
-        }
-}
-
-/*!
- \internal
- */
-int MpMpxAsFrameworkWrapperPrivate::balance()
-{
-    int ret = 0;
-    TRAPD( err, ret = balanceL() );
-    if ( err != KErrNone ) 
-        {
-        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
-        return 0;
-        }   
-    return ret;
-}
-
-/*!
- \internal
- */
-bool MpMpxAsFrameworkWrapperPrivate::loudness()
-{
-    bool ret = true;
-    TRAPD( err, ret = loudnessL() );
-    if ( err != KErrNone ) 
-        {
-        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
-        return false;
-        }   
-    return ret;
-}
-
-/*!
- \internal
- */
-void MpMpxAsFrameworkWrapperPrivate::doInitL()
-{
-    TRAPD( err, iAudioEffectProperties->LoadFromFileL() );
-    if( KErrNone != err )
-        {
-        iAudioEffectProperties->Reset();
-        User::Leave( err );
-        }
-}
-
-/*!
- \internal
- */
-void MpMpxAsFrameworkWrapperPrivate::doSetBalanceL( int balance )
-{
-    iAudioEffectProperties->SetBalance( balance );
-    iAudioEffectProperties->SaveToFileL();
-    if ( !iPlaybackUtility ) 
-        {
-        iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( MpCommon::KMusicPlayerUid ) ) ;
-        }
-   iPlaybackUtility ->SetL( EPbPropertyBalance, balance );
-   
-}
-
-/*!
- \internal
- */
-void MpMpxAsFrameworkWrapperPrivate::doSetLoudnessL( bool mode )
-{
-    if( loudnessL() != mode )  //do not set same value twice
-        {
-        iAudioEffectProperties->SetLoudness( mode );
-        iAudioEffectProperties->SaveToFileL();
-        if ( !iPlaybackUtility ) 
-            {
-            iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( MpCommon::KMusicPlayerUid ) ) ;
-            }
-        iPlaybackUtility->CommandL( EPbApplyEffect, KAudioEffectsID );
-        }
-}
-
-/*!
- \internal
- */
-int MpMpxAsFrameworkWrapperPrivate::balanceL()
-{
-    return iAudioEffectProperties->Balance();
-}
-
-/*!
- \internal
- */
-bool MpMpxAsFrameworkWrapperPrivate::loudnessL()
-{
-    return iAudioEffectProperties->Loudness();
-}
-
-
-
-
--- a/mpviewplugins/mpsettingsviewplugin/src/mpsettingsaudioeffectswidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/src/mpsettingsaudioeffectswidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -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"
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description: Music Player audio effect view.
+* Description: Music Player Settings view - audio settings.
 *
 */
 
@@ -22,7 +22,7 @@
 
 // User includes
 #include "mpsettingsaudioeffectswidget.h"
-#include "mpmpxasframeworkwrapper.h"
+#include "mpenginefactory.h"
 #include "mptrace.h"
 
 
@@ -42,7 +42,7 @@
 */
 MpSettingsAudioEffectsWidget::MpSettingsAudioEffectsWidget( QGraphicsItem *parent  )
     : HbWidget( parent ),
-      mFrameworkWrapper( 0 )
+      mMpEngine( 0 )
 {
     TX_LOG
 }
@@ -52,7 +52,6 @@
  */
 MpSettingsAudioEffectsWidget::~MpSettingsAudioEffectsWidget()
 {
-    delete mFrameworkWrapper;
     delete mModel;
     TX_LOG
 }
@@ -64,8 +63,8 @@
 {
     TX_ENTRY
 
-    mFrameworkWrapper = new MpMpxAsFrameworkWrapper();
-
+    mMpEngine = MpEngineFactory::sharedEngine();
+    
     //create data form
     HbDataForm *dataForm = new HbDataForm();
 
@@ -82,9 +81,9 @@
     slider->setContentWidgetData( QString( "singleStep" ),25 );
     slider->setContentWidgetData( QString( "toolTipVisible" ), false );
     slider->setContentWidgetData( QString( "tickPosition" ), Hb::SliderTicksRight );
-    slider->setContentWidgetData( QString( "sliderPosition" ),mFrameworkWrapper->balance() );
+    slider->setContentWidgetData( QString( "sliderPosition" ),mMpEngine->balance() );
     slider->setContentWidgetData( QString( "trackFilled" ), false );
-    if ( mFrameworkWrapper->loudness() == true ) {
+    if ( mMpEngine->loudness() == true ) {
         loudnessItem->setContentWidgetData( QString( "text" ), hbTrId( "txt_mus_setlabel_loudness_val_on" ) );
         loudnessItem->setContentWidgetData( QString( "additionalText" ), hbTrId( "txt_mus_setlabel_loudness_val_off" ) );
     }
@@ -102,7 +101,7 @@
     mylayout->addItem( dataForm  );
     setLayout( mylayout  );
     dataForm->addConnection( slider, SIGNAL( valueChanged( int  ) ),
-            mFrameworkWrapper, SLOT( setBalance( int  ) ) );
+            mMpEngine, SLOT( setBalance( int  ) ) );
     connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( filterSignals( QModelIndex, QModelIndex ) ) );
 
     TX_EXIT
@@ -115,10 +114,10 @@
     if ( itm->type() == HbDataFormModelItem::ToggleValueItem ) {
         if( itm->data( HbDataFormModelItem::LabelRole ).toString() == hbTrId( "txt_mus_setlabel_loudness" ) ) {
             if( itm->contentWidgetData( QString( "text" ) ).toString() == hbTrId( "txt_mus_setlabel_loudness_val_on" ) ) {
-                mFrameworkWrapper->setLoudness( true );
+                mMpEngine->setLoudness( true );
             }
             else if( itm->contentWidgetData( QString( "text" ) ).toString() == hbTrId( "txt_mus_setlabel_loudness_val_off" ) ) {
-                mFrameworkWrapper->setLoudness( false );
+                mMpEngine->setLoudness( false );
             }
             else {
                 TX_LOG_ARGS( "Error: should never get here." );
--- a/mpviewplugins/mpsettingsviewplugin/src/mpsettingsview.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/src/mpsettingsview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,10 +17,7 @@
 
 #include <hbmainwindow.h>
 #include <hbaction.h>
-#include <mpxaudioeffectproperties.h>
 #include <hbapplication.h>
-#include <QTranslator>
-#include <QLocale>
 
 #include "mpsettingsview.h"
 #include "mpsettingsaudioeffectswidget.h"
@@ -46,7 +43,7 @@
  */
 MpSettingsView::MpSettingsView()
     : mWindow(0),
-      mNavigationBack(0),
+      mSoftKeyBack(0),
       mAudioEffectsWidget(0)
 {
     TX_LOG
@@ -58,7 +55,7 @@
 MpSettingsView::~MpSettingsView()
 {
     TX_ENTRY
-    delete mNavigationBack;
+    delete mSoftKeyBack;
     TX_EXIT
 }
 
@@ -69,31 +66,18 @@
 {
     TX_ENTRY
 
-    //Load musicplayer translator
-    QTranslator translator;
-    QString lang = QLocale::system().name();
-    QString path = QString("z:/resource/qt/translations/");
-
-    bool translatorLoaded = false;
-    translatorLoaded = translator.load(path + "musicplayer_" + lang);
-    TX_LOG_ARGS("Loading musicplayer translator ok=" << translatorLoaded);
-    if ( translatorLoaded ) {
-        qApp->installTranslator( &translator );
-
-    }
-
     mWindow = mainWindow();
-    mNavigationBack = new HbAction(Hb::BackNaviAction, this);
+    mSoftKeyBack = new HbAction(Hb::BackNaviAction, this);
     mAudioEffectsWidget = new MpSettingsAudioEffectsWidget(this);
     mAudioEffectsWidget->initialize();
     setWidget( mAudioEffectsWidget );
 
-    connect( mNavigationBack,
+    connect( mSoftKeyBack,
                 SIGNAL(triggered()),
                 this,
                 SLOT(back()) );
 
-    connect( mNavigationBack,
+    connect( mSoftKeyBack,
                 SIGNAL(triggered()),
                 mAudioEffectsWidget,
                 SLOT(persistBalance()) );
@@ -106,7 +90,7 @@
 void MpSettingsView::activateView()
 {
     TX_ENTRY
-    setNavigationAction( mNavigationBack );
+    setNavigationAction( mSoftKeyBack );
     TX_EXIT
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,20 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpsettingsviewplugin
+
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/inc/unittest_mpmpxasframeworkwrapper.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +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: Unit test for mpmpxasframeworkwrapper
-*
-*/
-
-#ifndef TESTMPMPXASFRAMEWORKWRAPPER_H
-#define TESTMPMPXASFRAMEWORKWRAPPER_H
-
-#include <QtTest/QtTest>
-
-class MpMpxAsFrameworkWrapper;
-class MpMpxAsFrameworkWrapperPrivate;
-
-class TestMpMpxAsFrameworkWrapper : public QObject
-{
-    Q_OBJECT
-
-public:
-
-    TestMpMpxAsFrameworkWrapper();
-    virtual ~TestMpMpxAsFrameworkWrapper();
-
-signals:
-
-
-public slots:
-    void initTestCase();
-    void cleanupTestCase();
-    void init();
-    void cleanup();
-
-private slots:
-    void testConstructor();
-    void testBalance();
-    void testLoudness();
-    void testSetBalance();
-    void testSetLoudness();
-    
-    
-private:
-
-    MpMpxAsFrameworkWrapper          *mTest;
-    MpMpxAsFrameworkWrapperPrivate   *mTestPrivate;
-
-};
-
-#endif  // TESTMPMPXASFRAMEWORKWRAPPER_H
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/src/unittest_mpmpxasframeworkwrapper.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +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: Unit test for MpMpxAsFrameworkWrapper
-*
-*/
-
-#include <QSignalSpy>
-#include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
-
-#include "unittest_mpmpxasframeworkwrapper.h"
-#include "stub/inc/mpxaudioeffectproperties.h"
-#include "stub/inc/mpxplaybackutility.h"
-
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpmpxasframeworkwrapper.h"
-#include "mpmpxasframeworkwrapper_p.h"
-#undef private
-
-//This so we can test private functions
-#include "mpmpxasframeworkwrapper_p.cpp"
-
-/*!
- Make our test case a stand-alone executable that runs all the test functions.
- */
-int main(int argc, char *argv[])
-{
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-    TestMpMpxAsFrameworkWrapper tv;
-
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpmpxasframeworkwrapper.txt";
-
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
-}
-
-TestMpMpxAsFrameworkWrapper::TestMpMpxAsFrameworkWrapper()
-    : mTest(0)
-{
-}
-
-TestMpMpxAsFrameworkWrapper::~TestMpMpxAsFrameworkWrapper()
-{
-    delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpMpxAsFrameworkWrapper::initTestCase()
-{
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpMpxAsFrameworkWrapper::cleanupTestCase()
-{
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpMpxAsFrameworkWrapper::init()
-{
-    mTest = new MpMpxAsFrameworkWrapper();
-    mTestPrivate = mTest->d_ptr;
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpMpxAsFrameworkWrapper::cleanup()
-{
-    delete mTest;
-    mTest = 0;
-}
-
-/*!
- test Constructor
- */
-void TestMpMpxAsFrameworkWrapper::testConstructor()
-{
-    QVERIFY(mTestPrivate->iPlaybackUtility == 0);
-    QVERIFY(mTestPrivate->iAudioEffectProperties != 0);
-    QCOMPARE(mTestPrivate->iAudioEffectProperties->iLoadFromFile, TBool(ETrue));
-    mTestPrivate->iAudioEffectProperties->iLeave = ETrue;
-    mTestPrivate->iAudioEffectProperties->LoadFromFileL();
-    QCOMPARE(mTestPrivate->iAudioEffectProperties->iBalance, 0);
-    QCOMPARE(mTestPrivate->iAudioEffectProperties->iLoudness, TBool(EFalse));
-    
-}
-
-/*!
- test balance
- */
-void TestMpMpxAsFrameworkWrapper::testBalance()
-{
-    QCOMPARE( mTest->balance(), 0 );
-    mTest->setBalance( -100 );
-    QCOMPARE( mTest->balance(), -100 );
-    mTest->setBalance( 100 );
-    QCOMPARE( mTest->balance(), 100 );
-}
-
-/*!
- test loudness
- */
-void TestMpMpxAsFrameworkWrapper::testLoudness()
-{
-    QCOMPARE(mTest->loudness(), false);
-    mTest->setLoudness(true);
-    QCOMPARE(mTest->loudness(), true);
-}
-
-/*!
- test setBalance
- */
-void TestMpMpxAsFrameworkWrapper::testSetBalance()
-{
-    for(TInt i = -10; i < 10; i++){
-        mTest->setBalance(i);
-        QVERIFY(mTestPrivate->iPlaybackUtility != 0);
-        QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyBalance);
-        QCOMPARE(mTestPrivate->iPlaybackUtility->iBalance, i);   
-        QCOMPARE(mTestPrivate->iAudioEffectProperties->iBalance, i);
-        QCOMPARE(mTestPrivate->iAudioEffectProperties->iSaveToFile, TBool(ETrue));
-        mTestPrivate->iAudioEffectProperties->iLoadFromFile = EFalse;
-        
-    }   
-}
-
-/*!
- test setLoudness   
- */
-void TestMpMpxAsFrameworkWrapper::testSetLoudness()
-{   
-    mTest->setLoudness(true);
-    QVERIFY(mTestPrivate->iPlaybackUtility != 0);
-    QCOMPARE(mTestPrivate->iAudioEffectProperties->iLoudness, TBool(ETrue));
-    QCOMPARE(mTestPrivate->iAudioEffectProperties->iSaveToFile, TBool(ETrue));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCommand, EPbApplyEffect );
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iEffectId, 0x101FFC02 );
-    mTestPrivate->iAudioEffectProperties->iLoadFromFile = EFalse;
-    mTest->setLoudness(false);
-    QVERIFY(mTestPrivate->iPlaybackUtility != 0);
-    QCOMPARE(mTestPrivate->iAudioEffectProperties->iLoudness, TBool(EFalse));
-    QCOMPARE(mTestPrivate->iAudioEffectProperties->iSaveToFile, TBool(ETrue));
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iCommand, EPbApplyEffect );
-    QCOMPARE(mTestPrivate->iPlaybackUtility->iEffectId, 0x101FFC02 );
-    mTestPrivate->iAudioEffectProperties->iLoadFromFile = EFalse;
-}
-
-    
-// end of file
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/inc/mpxaudioeffectproperties.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  audio effect properties stub for testing mpmpxasframeworkwrapper 
-*
-*/
-
- 
-#ifndef CMPXAUDIOEFFECTPROPERTIES_H
-#define CMPXAUDIOEFFECTPROPERTIES_H
-
-
-#include <e32base.h>
-#include <s32strm.h>
-
-
-class CMPXAudioEffectProperties : public CBase
-    {
-public: 
-    explicit CMPXAudioEffectProperties();   
-    virtual ~CMPXAudioEffectProperties();
-
-public:
-    
-    // Stub functions
-    TInt Balance();
-    TBool Loudness();
-    void SetBalance(TInt aBalance);
-    void SetLoudness(TBool aLoudness);
-    void Reset();
-    void SaveToFileL();
-    void LoadFromFileL();
-
-public:
-    
-    TInt    iBalance;
-    TBool   iLoudness;
-    TBool   iLoadFromFile;
-    TBool   iSaveToFile;
-    TBool   iLeave;
-};
-
-#endif // CMPXAUDIOEFFECTPROPERTIES_H
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/inc/mpxplaybackutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +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: mpxplaybackutility stub for testing mpmpxasframeworkwrapper
-*
-*/
-
-
-#ifndef MMPXPLAYBACKUTILITY_H
-#define MMPXPLAYBACKUTILITY_H
-
-#include <mpxplaybackframeworkdefs.h>
-#include <mpxcommonframeworkdefs.h>
-#include <badesca.h>
-#include <mpxattribute.h>
-#include <mpxattributespecs.h>
-
-
-class MMPXPlaybackUtility
-{
-public:
-
-    // Stub functions
-    MMPXPlaybackUtility();
-    ~MMPXPlaybackUtility();
-    static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault);
-    void Close();
-    void SetL(TMPXPlaybackProperty aProperty, TInt aValue);
-    void CommandL(TMPXPlaybackCommand aCmd, TInt aData=0);
-
-public:
-    TInt                    iBalance;
-    TInt                    iEffectId;
-    TMPXPlaybackProperty    iProperty;
-    TMPXPlaybackCommand     iCommand;
-
-};
-
-#endif      // MMPXPLAYBACKUTILITY_H
-
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/src/mpxaudioeffectproperties.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  audio effect properties stub for testing mpmpxasframeworkwrapper
-*
-*/
-
-#include  <s32file.h>
-#include  <s32std.h>
-#include <f32file.h>
-#include <mpxlog.h>
-#include "stub/inc/mpxaudioeffectproperties.h"
-
-
-/*!
- Stub function.
-*/
-CMPXAudioEffectProperties::CMPXAudioEffectProperties():iBalance(0),
-                                                       iLoudness(EFalse),
-                                                       iLoadFromFile(EFalse),
-                                                       iSaveToFile(EFalse),
-                                                       iLeave(EFalse)
-                                                       
-{
-}
-
-/*!
- Stub function.
-*/
-CMPXAudioEffectProperties::~CMPXAudioEffectProperties()
-{
-}
-
-/*!
- Stub function.
-*/
-TInt CMPXAudioEffectProperties::Balance()
-{
-    return iBalance;
-}
-
-/*!
- Stub function.
-*/
-TBool CMPXAudioEffectProperties::Loudness()
-{
-    return iLoudness;
-}
-
-/*!
- Stub function.
-*/
-void CMPXAudioEffectProperties::SetBalance(TInt aBalance)
-{
-    iBalance = aBalance;
-}
-
-/*!
- Stub function.
-*/
-void CMPXAudioEffectProperties::SetLoudness(TBool aLoudness)
-{
-    iLoudness = aLoudness;
-}
-
-/*!
- Stub function.
-*/
-void CMPXAudioEffectProperties::Reset()
-{
-    MPX_DEBUG1("CMPXAudioEffectProperties::Reset");
-    iBalance = 0;
-    iLoudness = EFalse;
-    iLeave = EFalse;
-    iLoadFromFile = EFalse;
-}
-
-/*!
- Stub function.
-*/
-void CMPXAudioEffectProperties::SaveToFileL()
-{
-    MPX_DEBUG1("CMPXAudioEffectProperties::SaveToFileL <---");
-    iSaveToFile = ETrue;
-    MPX_DEBUG1("CMPXAudioEffectProperties::SaveToFileL --->");
-}
-
-/*!
- Stub function.
-*/
-void CMPXAudioEffectProperties::LoadFromFileL()
-{
-    MPX_DEBUG1("CMPXAudioEffectProperties::LoadFromFileL <---");
-    if(iLeave){
-        Reset();
-    }else{
-        iLoadFromFile = ETrue;
-    }
-    MPX_DEBUG1("CMPXAudioEffectProperties::LoadFromFileL --->");
-}
-
-//end of file
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/src/mpxplaybackutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +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: mpxplaybackutility stub for testing mpmpxasframeworkwrapper
-*
-*/
-
-#include <Qt>
-#include <mpxcollectionplaylist.h>
-#include <mptrace.h>
-
-#include "stub/inc/mpxplaybackutility.h"
-
-/*!
- Stub function.
-*/
-MMPXPlaybackUtility::MMPXPlaybackUtility():iBalance(0),
-                                            iProperty(EPbPropertyVolume)
-                                           
-{
-}
-
-/*!
- Stub function.
-*/
-MMPXPlaybackUtility::~MMPXPlaybackUtility()
-{
-}
-
-/*!
- Stub function.
- */
-MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& aModeId)
-{
-    Q_UNUSED(aModeId);
-    static MMPXPlaybackUtility playbackUtilility;
-    return &playbackUtilility;
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::Close()
-{
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::SetL(TMPXPlaybackProperty aProperty, TInt aValue)
-{
-    iProperty = aProperty;
-    iBalance = aValue;
-}
-
-/*!
- Stub function.
-*/
-void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand aCmd, TInt aData)
-{
-    iCommand = aCmd;
-    iEffectId = aData;
-}
-
-//end of file
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/unittest_mpmpxasframeworkwrapper.pro	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +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
-CONFIG += qtestlib hb
-TARGET = 
-
-DEPENDPATH += .
-INCLUDEPATH += . \
-    ../../inc \
-    ../../../../inc \
-    ../../../../mpserviceplugins/inc
-
-    
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
-
-LIBS += -lmpxviewframeworkqt.dll
-				
-HEADERS += inc/unittest_mpmpxasframeworkwrapper.h \        
-   		   ../../inc/mpmpxasframeworkwrapper.h \
-   		   ../../inc/mpmpxasframeworkwrapper_p.h \
-           stub/inc/mpxaudioeffectproperties.h \
-           stub/inc/mpxplaybackutility.h
-               
-SOURCES += src/unittest_mpmpxasframeworkwrapper.cpp \
-		   ../../src/mpmpxasframeworkwrapper.cpp \
-		   stub/src/mpxaudioeffectproperties.cpp \
-		   stub/src/mpxplaybackutility.cpp
-		   
-           
-           
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/src/unittest_mpsettingsviewplugin.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/src/unittest_mpsettingsviewplugin.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,12 +17,10 @@
 
 #include <QSignalSpy>
 #include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
 
+#include "stub/inc/mpsettingsview.h"
+#include "stub/inc/xqplugin.h"
 #include "unittest_mpsettingsviewplugin.h"
-#include "stub/inc/mpsettingsview.h"
 
 
 // Do this so we can access all member variables.
@@ -30,23 +28,28 @@
 #include "mpsettingsviewplugin.h"
 #undef private
 
+//This so we mpsettingsviewplugin.cpp can load qt stub items
+#include "../../src/mpsettingsviewplugin.cpp"
+
 /*!
  Make our test case a stand-alone executable that runs all the test functions.
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
+    QApplication app(argc, argv);
     TestMpSettingsViewPlugin tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpsettingsviewplugin.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpsettingsviewplugin.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpSettingsViewPlugin::TestMpSettingsViewPlugin()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/stub/inc/xqplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* 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 for testing MpSettingsViewPlugin
+*
+*/
+
+#ifndef XQPLUGIN_H
+#define XQPLUGIN_H
+
+// convenience macro
+#define XQ_EXPORT_PLUGIN(PLUGIN, PLUGINCLASS)
+
+#define XQ_EXPORT_PLUGIN2(PLUGIN, PLUGINCLASS)
+
+#endif // XQ_PLUGIN_H
--- a/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/unittest_mpsettingsviewplugin.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/unittest_mpsettingsviewplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -15,25 +15,25 @@
 #
 
 TEMPLATE = app
-CONFIG += qtestlib hb
-TARGET = 
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpsettingsviewplugin
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
     stub/inc \
     ../../inc \
     ../../../../inc
-
-
-    
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
 
 LIBS += -lmpxviewframeworkqt.dll
-				
-HEADERS += inc/unittest_mpsettingsviewplugin.h \        
-           ../../inc/mpsettingsviewplugin.h \
-           stub/inc/mpsettingsview.h
-               
-SOURCES += stub/src/mpsettingsview.cpp \
-           ../../src/mpsettingsviewplugin.cpp \
-           src/unittest_mpsettingsviewplugin.cpp
+
+HEADERS += inc/unittest_mpsettingsviewplugin.h \
+           stub/inc/mpsettingsview.h \
+           stub/inc/xqplugin.h \
+           ../../inc/mpsettingsviewplugin.h
+
+SOURCES += src/unittest_mpsettingsviewplugin.cpp \
+           stub/src/mpsettingsview.cpp
+
--- a/mpviewplugins/mpviewplugins.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/mpviewplugins/mpviewplugins.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -18,6 +18,7 @@
 SUBDIRS  = mpcollectionviewplugin \
            mpplaybackviewplugin \
            mpsettingsviewplugin \
-	   mpdetailsviewplugin
+           mpdetailsviewplugin \
+           mpmediawallviewplugin
 
 CONFIG += ordered
--- a/musicservices/bwins/musicservices.def	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-EXPORTS
-	?currentService@MusicServices@@QAE?AW4MusicService@1@XZ @ 1 NONAME ; enum MusicServices::MusicService MusicServices::currentService(void)
-	?trUtf8@MusicServices@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString MusicServices::trUtf8(char const *, char const *)
-	?qt_metacast@MusicServices@@UAEPAXPBD@Z @ 3 NONAME ; void * MusicServices::qt_metacast(char const *)
-	?trUtf8@MusicServices@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString MusicServices::trUtf8(char const *, char const *, int)
-	?qt_metacall@MusicServices@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5 NONAME ; int MusicServices::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?contextTitle@MusicServices@@QBE?AVQString@@XZ @ 6 NONAME ; class QString MusicServices::contextTitle(void) const
-	??0MusicServices@@QAE@XZ @ 7 NONAME ; MusicServices::MusicServices(void)
-	??_EMusicServices@@UAE@I@Z @ 8 NONAME ; MusicServices::~MusicServices(unsigned int)
-	?itemSelected@MusicServices@@QAEXVQString@@@Z @ 9 NONAME ; void MusicServices::itemSelected(class QString)
-	?playReady@MusicServices@@IAEXABVXQSharableFile@@@Z @ 10 NONAME ; void MusicServices::playReady(class XQSharableFile const &)
-	?tr@MusicServices@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString MusicServices::tr(char const *, char const *, int)
-	?tr@MusicServices@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString MusicServices::tr(char const *, char const *)
-	?getStaticMetaObject@MusicServices@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & MusicServices::getStaticMetaObject(void)
-	?serviceActive@MusicServices@@IAEXVTUid@@@Z @ 14 NONAME ; void MusicServices::serviceActive(class TUid)
-	?metaObject@MusicServices@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * MusicServices::metaObject(void) const
-	?setCurrentService@MusicServices@@QAEXW4MusicService@1@@Z @ 16 NONAME ; void MusicServices::setCurrentService(enum MusicServices::MusicService)
-	?staticMetaObject@MusicServices@@2UQMetaObject@@B @ 17 NONAME ; struct QMetaObject const MusicServices::staticMetaObject
-	??1MusicServices@@UAE@XZ @ 18 NONAME ; MusicServices::~MusicServices(void)
-	?playReady@MusicServices@@IAEXABVQString@@@Z @ 19 NONAME ; void MusicServices::playReady(class QString const &)
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicservices/bwins/musicservicesu.def	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,21 @@
+EXPORTS
+	?currentService@MusicServices@@QAE?AW4MusicService@1@XZ @ 1 NONAME ; enum MusicServices::MusicService MusicServices::currentService(void)
+	?trUtf8@MusicServices@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString MusicServices::trUtf8(char const *, char const *)
+	?qt_metacast@MusicServices@@UAEPAXPBD@Z @ 3 NONAME ; void * MusicServices::qt_metacast(char const *)
+	?trUtf8@MusicServices@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString MusicServices::trUtf8(char const *, char const *, int)
+	?qt_metacall@MusicServices@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5 NONAME ; int MusicServices::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?contextTitle@MusicServices@@QBE?AVQString@@XZ @ 6 NONAME ; class QString MusicServices::contextTitle(void) const
+	??0MusicServices@@QAE@XZ @ 7 NONAME ; MusicServices::MusicServices(void)
+	??_EMusicServices@@UAE@I@Z @ 8 NONAME ; MusicServices::~MusicServices(unsigned int)
+	?itemSelected@MusicServices@@QAEXVQString@@@Z @ 9 NONAME ; void MusicServices::itemSelected(class QString)
+	?playReady@MusicServices@@IAEXABVXQSharableFile@@@Z @ 10 NONAME ; void MusicServices::playReady(class XQSharableFile const &)
+	?tr@MusicServices@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString MusicServices::tr(char const *, char const *, int)
+	?tr@MusicServices@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString MusicServices::tr(char const *, char const *)
+	?getStaticMetaObject@MusicServices@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & MusicServices::getStaticMetaObject(void)
+	?serviceActive@MusicServices@@IAEXVTUid@@@Z @ 14 NONAME ; void MusicServices::serviceActive(class TUid)
+	?metaObject@MusicServices@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * MusicServices::metaObject(void) const
+	?setCurrentService@MusicServices@@QAEXW4MusicService@1@@Z @ 16 NONAME ; void MusicServices::setCurrentService(enum MusicServices::MusicService)
+	?staticMetaObject@MusicServices@@2UQMetaObject@@B @ 17 NONAME ; struct QMetaObject const MusicServices::staticMetaObject
+	??1MusicServices@@UAE@XZ @ 18 NONAME ; MusicServices::~MusicServices(void)
+	?playReady@MusicServices@@IAEXABVQString@@@Z @ 19 NONAME ; void MusicServices::playReady(class QString const &)
+
--- a/musicservices/eabi/musicservices.def	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-EXPORTS
-	_ZN13MusicServices11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
-	_ZN13MusicServices11qt_metacastEPKc @ 2 NONAME
-	_ZN13MusicServices12itemSelectedE7QString @ 3 NONAME
-	_ZN13MusicServices13serviceActiveE4TUid @ 4 NONAME
-	_ZN13MusicServices14currentServiceEv @ 5 NONAME
-	_ZN13MusicServices16staticMetaObjectE @ 6 NONAME DATA 16
-	_ZN13MusicServices17setCurrentServiceENS_12MusicServiceE @ 7 NONAME
-	_ZN13MusicServices19getStaticMetaObjectEv @ 8 NONAME
-	_ZN13MusicServices9playReadyERK14XQSharableFile @ 9 NONAME
-	_ZN13MusicServices9playReadyERK7QString @ 10 NONAME
-	_ZN13MusicServicesC1Ev @ 11 NONAME
-	_ZN13MusicServicesC2Ev @ 12 NONAME
-	_ZN13MusicServicesD0Ev @ 13 NONAME
-	_ZN13MusicServicesD1Ev @ 14 NONAME
-	_ZN13MusicServicesD2Ev @ 15 NONAME
-	_ZNK13MusicServices10metaObjectEv @ 16 NONAME
-	_ZNK13MusicServices12contextTitleEv @ 17 NONAME
-	_ZTI13MusicServices @ 18 NONAME
-	_ZTV13MusicServices @ 19 NONAME
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicservices/eabi/musicservicesu.def	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,21 @@
+EXPORTS
+	_ZN13MusicServices11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
+	_ZN13MusicServices11qt_metacastEPKc @ 2 NONAME
+	_ZN13MusicServices12itemSelectedE7QString @ 3 NONAME
+	_ZN13MusicServices13serviceActiveE4TUid @ 4 NONAME
+	_ZN13MusicServices14currentServiceEv @ 5 NONAME
+	_ZN13MusicServices16staticMetaObjectE @ 6 NONAME DATA 16
+	_ZN13MusicServices17setCurrentServiceENS_12MusicServiceE @ 7 NONAME
+	_ZN13MusicServices19getStaticMetaObjectEv @ 8 NONAME
+	_ZN13MusicServices9playReadyERK14XQSharableFile @ 9 NONAME
+	_ZN13MusicServices9playReadyERK7QString @ 10 NONAME
+	_ZN13MusicServicesC1Ev @ 11 NONAME
+	_ZN13MusicServicesC2Ev @ 12 NONAME
+	_ZN13MusicServicesD0Ev @ 13 NONAME
+	_ZN13MusicServicesD1Ev @ 14 NONAME
+	_ZN13MusicServicesD2Ev @ 15 NONAME
+	_ZNK13MusicServices10metaObjectEv @ 16 NONAME
+	_ZNK13MusicServices12contextTitleEv @ 17 NONAME
+	_ZTI13MusicServices @ 18 NONAME
+	_ZTV13MusicServices @ 19 NONAME
+
--- a/musicservices/musicservices.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/musicservices/musicservices.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,38 +14,32 @@
 # Description: Project file for Music Services.
 #
 
-symbian:TARGET.UID3 = 0x10207C69
-
 TEMPLATE = lib
 CONFIG += hb
 TARGET = musicservices
-
-TARGET.CAPABILITY = CAP_GENERAL_DLL
+symbian: { 
+    TARGET.UID3 = 0x10207C69
+    MMP_RULES += "DEFFILE musicservices.def"
+    defFilePath = .
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.EPOCALLOWDLLDATA = 1
+}
+DEFINES += BUILD_MUSICSERVICES_LIB
 
 INCLUDEPATH += . \
-    	inc \
-    	../inc
+               inc \
+    	       ../inc
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
 
 LIBS += -lxqservice \
         -lxqserviceutil
 
-symbian:TARGET.EPOCALLOWDLLDATA	= 1
-
+# Input
 HEADERS += inc/musicservices.h \
-		   inc/getmusicservice.h \
-		   inc/playmusicservice.h 
+           inc/getmusicservice.h \
+           inc/playmusicservice.h 
 
 SOURCES += src/musicservices.cpp \
-		   src/getmusicservice.cpp \
-		   src/playmusicservice.cpp
-    
-DEFINES += BUILD_MUSICSERVICES_LIB
+           src/getmusicservice.cpp \
+           src/playmusicservice.cpp
 
-myDefInclude = "NOSTRICTDEF" \
-"$${LITERAL_HASH}if defined(WINS)"\
-"DEFFILE  bwins/musicservices.def "\
-"$${LITERAL_HASH}else "\
-"DEFFILE  eabi/musicservices.def "\
-"$${LITERAL_HASH}endif"
-MMP_RULES += myDefInclude
--- a/musicservices/src/getmusicservice.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/musicservices/src/getmusicservice.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,7 +16,7 @@
 */
 
 #include <hbapplication.h>
-#include <qstringlist.h>
+#include <QStringList>
 
 #include "musicservices.h"
 #include "getmusicservice.h"
--- a/musicservices/src/musicservices.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/musicservices/src/musicservices.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,7 +16,7 @@
 */
 
 #include <hbapplication.h>
-#include <qstringlist.h>
+#include <QStringList>
 
 #include "musicservices.h"
 #include "getmusicservice.h"
--- a/musicservices/src/playmusicservice.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/musicservices/src/playmusicservice.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -16,7 +16,7 @@
 */
 
 #include <hbapplication.h>
-#include <qstringlist.h>
+#include <QStringList>
 
 #include "musicservices.h"
 #include "playmusicservice.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/inc/musicwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,199 @@
+/*
+* 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:  Music player home screen widget
+*
+*/
+
+#ifndef MUSICWIDGET_H
+#define MUSICWIDGET_H
+
+// System includes
+#include <QGraphicsLinearLayout>
+#include <QGraphicsGridLayout>
+#include <hbwidget.h>
+#include <xqappmgr.h>
+
+#include "mpplaybackdata.h"
+
+// Forward declarations
+class HbLabel;
+class HbPushButton;
+class HbIcon;
+class HbMarqueeItem;
+class MpEngine;
+//class MpPlaybackData;
+
+/**
+ * Media key identifier for push button events
+ */
+enum MediaKeyIdentifier{
+    EPrevious = 1,
+    EPlayPause,
+    ENext
+};
+
+/**
+ * Music Player launch source identifier
+ */    
+enum LaunchIdentifier{
+    ELaunchFromPlay,
+    ELaunchFromShortcut
+};
+
+class MusicWidget: public HbWidget
+{
+    Q_OBJECT
+    
+public:    
+    MusicWidget(QGraphicsItem *parent = 0, Qt::WindowFlags flags = 0);
+    ~MusicWidget();
+
+private:
+    
+    /**
+     * Setup graphics
+     */    
+    void setupUi();
+    
+    /**
+     * Get latest song data, player state and album art 
+     */      
+    void refreshData();
+    
+    /**
+     * Launch Music Player to view
+     */      
+    void launchMusicPlayer(int launchMode = ELaunchFromShortcut);
+    
+    /**
+     * Similar to public slots mediaButtonPressed and mediaButtonReleased, but this oen is called internally
+     * Draws the spesified button to disabled state
+     */
+    void mediaButtonDisabled( int aMediaKeyId );
+    
+    /**
+     * Similar to public slots mediaButtonPressed and mediaButtonReleased, but this oen is called internally
+     * Draws the spesified button to enabled state
+     */    
+    void mediaButtonEnabled( int aMediaKeyId );
+    
+    /**
+     * Disable/enable widget buttons according to Music Player state
+     */       
+    void toggleButtons();
+    
+public:
+    QRectF boundingRect() const;
+    QPainterPath shape() const;
+    
+public slots:
+
+    /**
+     * Widget slots
+     */    
+    void onInitialize();
+    void onShow();
+    void onHide();
+    void onUninitialize();
+    
+    /**
+     * MpEngine slots
+     */    
+    void libraryAboutToUpdate();
+    void libraryUpdated();
+    void usbBlocked( bool blocked );    
+
+    /**
+     * MpPlaybackData slots
+     */        
+    void albumArtReady();
+    void playbackStateChanged();
+    void playbackInfoChanged();    
+    
+    /**
+     * ?????
+     */            
+    bool eventFilter(QObject *target, QEvent *event);
+    
+    /**
+     * Button specific slots
+     */        
+    void mediaButtonPressed( int aMediaKeyId );
+    void mediaButtonReleased( int aMediaKeyId );
+    
+protected:
+    
+    /**
+     * Called from mediaButtonPressed and from mediaButtonReleased slots. 
+     * Calls defineMediaButton to redraw the media button
+     */
+    void mediaButtonEvent( MediaKeyIdentifier aMediaKeyId, QString aGraphicsId, QString aIconColor );
+
+    /**
+     * Creates the aTarget push button based on params aGraphicsId and aSuffix. 
+     * Used to change the look and feel of the button based to the aState
+     * param: aTarget is the push button to be changed, must not be Null
+     * param: aGraphicsId defines the button background graphics
+     * param: aSuffix filename suffix, see KPrevButPrefix for example from musicwidget.cpp
+     */
+    void defineMediaButton( HbPushButton& aTarget, QString aGraphicsId, QStringList aSuffix, QString aIconColor );
+
+private slots:
+
+    /**
+     * Slots to be called after button press
+     */    
+    void prevSong();
+    void playSong();
+    void nextSong();
+    void shortcutButton();
+    
+private:  
+    // mShortcutButtonLayout items
+    HbPushButton *mShortcutArea;
+
+    //mSongDataLayout items
+    HbWidget *mSongDataBG;
+    HbLabel *mInformationSongName;
+    HbMarqueeItem *mMarqueeText;
+    
+    // mControlButtonsLayout items
+    HbPushButton *mPreviousPushButton;
+    HbPushButton *mPlayPushButton;
+    HbPushButton *mNextPushButton;
+    
+    // MusicPlayer related state identifiers
+    bool mMusicPlayerNoSongData;
+    bool mMusicPlayerUpdating;
+    bool mMusicPlayerBlocked;
+    
+    // Album art for background
+    HbLabel *mAlbumArtLabel;
+    qreal mAlbumArtWidth;
+    qreal mAlbumArtHeight; 
+    
+    // Artist and song title identifiers 
+    QString mArtist;
+    QString mTitle;
+    
+    // Used to launch MusicPlayer
+    XQApplicationManager mApplicationManager;
+    
+    // MusicPlayer control and state updates
+    MpEngine* mMpEngine;
+    MpPlaybackData* mMpPlaybackData;
+
+};
+
+#endif // MUSICWIDGET_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/inc/musicwidgetplugin.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* 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:  Music player home screen widget
+*
+*/
+
+#ifndef MUSICWIDGETPLUGIN_H
+#define MUSICWIDGETPLUGIN_H
+
+#include <QObject>
+#include <qserviceplugininterface.h>
+
+QTM_USE_NAMESPACE
+class MusicWidgetPlugin : public QObject, public QServicePluginInterface
+{
+    Q_OBJECT
+    Q_INTERFACES(QtMobility::QServicePluginInterface)
+
+public:
+    QObject *createInstance(const QServiceInterfaceDescriptor &descriptor,
+                            QServiceContext *context,
+                            QAbstractSecuritySession *session);
+};
+
+#endif // MUSICWIDGETPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/musicwidgetplugin.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,60 @@
+#
+# 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:
+#
+# Music Player home screen widget
+#
+
+TEMPLATE = lib
+CONFIG += plugin mobility hb
+MOBILITY = serviceframework
+
+LIBS += -lhswidgetmodel
+LIBS += -lxqservice
+LIBS += -lxqserviceutil
+LIBS += -lmpengine
+LIBS += -lmpdata
+
+INCLUDEPATH += ./inc
+INCLUDEPATH += ../inc
+
+HEADERS += ./inc/*.h
+SOURCES += ./src/*.cpp
+
+
+RESOURCES = resource/musicwidgetui.qrc
+
+UID = 200286FA
+
+symbian:include(./rom/rom.pri)
+
+symbian: {
+
+    DESTDIR = $${PRIVATE}/private/20022F35/import/widgetregistry/$${UID}
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+    
+    TARGET.UID3 = 0x$${UID}
+    TARGET.EPOCALLOWDLLDATA=1
+    TARGET.CAPABILITY = ALL -TCB
+    #TRANSLATIONS    += musicwidgetplugin.ts
+        
+    plugins.path = $${DESTDIR}
+    plugins.sources = $${TARGET}.dll 
+    
+    widgetResources.path = $${DESTDIR}
+    widgetResources.sources += resource/$${TARGET}.xml
+    widgetResources.sources += resource/$${TARGET}.manifest
+    widgetResources.sources += resource/musicwidgeticon.png
+    
+    DEPLOYMENT += plugins \
+                  widgetResources
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/resource/music_widget.docml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.9">
+    <widget name="containerWidget" type="HbWidget">
+        <widget name="shortcut_icon_background" type="HbLabel">
+            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+            <enums name="aspectRatioMode" value="IgnoreAspectRatio"/>
+            <real name="z" value="3"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="12un" type="FIXED" width="12un"/>
+        </widget>
+        <widget name="shortcut_icon" type="HbPushButton">
+            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+            <!--  <icon iconName="qtg_large_music_player" name="icon" width="11un" height="11un"/>  -->
+            <enums name="aspectRatioMode" value="IgnoreAspectRatio"/>
+            <real name="z" value="4"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="11un" type="FIXED" width="11un"/>
+        </widget>
+        <widget name="widget_background_icon" type="HbLabel">
+            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+            <enums name="aspectRatioMode" value="IgnoreAspectRatio"/>
+            <real name="z" value="1"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="29un" type="FIXED" width="29un"/>
+        </widget>
+        <widget name="album_art_image" type="HbLabel">
+            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+            <enums name="aspectRatioMode" value="IgnoreAspectRatio"/>
+            <real name="z" value="2"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="27.5un" type="FIXED" width="27.5un"/>
+        </widget>
+        <widget name="text_bg" type="HbLabel">
+            <real name="z" value="4"/>
+            <sizehint height="4.5un" type="PREFERRED" width="27.5un"/>
+        </widget>
+        <widget name="scrolling_text" type="HbLabel">
+            <real name="z" value="5"/>
+            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+            <sizehint height="var(hb-param-text-height-tiny)" type="PREFERRED" width="26un"/>
+            <string name="textColor" value="var(qtg_fr_multimedia_trans)"/>
+            <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-secondary)"/>
+        </widget>
+        <widget name="button_group_container" type="HbWidget">
+            <widget name="btn_previous" type="HbPushButton">
+                <icon iconName="qtg_mono_previous" name="icon"/>            
+            		<sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <sizehint height="8un" type="PREFERRED" width="11un"/>                               
+                <string name="text"/>
+            </widget>        
+            <widget name="btn_play" type="HbPushButton">
+								<icon iconName="qtg_mono_play" name="icon"/>            
+            		<sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <sizehint height="8un" type="PREFERRED" width="11un"/>          
+                <string name="text"/>
+            </widget>
+            <widget name="btn_next" type="HbPushButton">
+                <icon iconName="qtg_mono_next" name="icon"/>            
+            		<sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <sizehint height="8un" type="PREFERRED" width="11un"/>            
+                <string name="text"/>
+            </widget>
+            <real name="z" value="5"/>
+            <sizehint height="8un" type="PREFERRED" width="33un"/>
+            <layout orientation="Horizontal" spacing="0un" type="linear">
+                <contentsmargins bottom="0un" left="0un" right="0un" top="0un"/>
+                <linearitem itemname="btn_previous" spacing="0un"/>
+                <linearitem itemname="btn_play" spacing="0un"/>
+                <linearitem itemname="btn_next" spacing="0un"/>
+            </layout>
+        </widget>
+        <real name="z" value="1"/>
+        <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+        <sizehint height="38.25un" type="PREFERRED" width="33un"/>
+        <layout type="anchor">
+            <anchoritem dst="shortcut_icon_background" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+            <anchoritem dst="shortcut_icon" dstEdge="RIGHT" spacing="-0.5un" src="" srcEdge="RIGHT"/>
+            <anchoritem dst="shortcut_icon" dstEdge="TOP" spacing="0.5un" src="" srcEdge="TOP"/>
+            <anchoritem dst="widget_background_icon" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
+            <anchoritem dst="widget_background_icon" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
+            <anchoritem dst="album_art_image" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-middle-horizontal)" src="widget_background_icon" srcEdge="RIGHT"/>
+            <anchoritem dst="album_art_image" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-vertical)" src="widget_background_icon" srcEdge="TOP"/>
+            <anchoritem dst="text_bg" dstEdge="RIGHT" spacing="0un" src="album_art_image" srcEdge="RIGHT"/>
+            <anchoritem dst="text_bg" dstEdge="BOTTOM" spacing="0un" src="album_art_image" srcEdge="BOTTOM"/>
+            <anchoritem dst="scrolling_text" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-middle-horizontal)" src="text_bg" srcEdge="RIGHT"/>
+            <anchoritem dst="scrolling_text" dstEdge="BOTTOM" spacing="-var(hb-param-margin-gene-middle-vertical)" src="text_bg" srcEdge="BOTTOM"/>
+            <anchoritem dst="button_group_container" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+            <anchoritem dst="button_group_container" dstEdge="TOP" spacing="0un" src="album_art_image" srcEdge="BOTTOM"/>
+        </layout>
+    </widget>
+    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+    </metadata>
+</hbdocument>
Binary file musicwidgetplugin/resource/musicwidgeticon.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/resource/musicwidgetplugin.manifest	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<widgetprovider>
+    <widget library="musicwidgetplugin"
+            uri="musicwidgetplugin"
+            title="Music Widget"
+            iconuri="musicwidgeticon.png"
+	    description="Music Player Homescreen Widget"/>
+</widgetprovider>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/resource/musicwidgetplugin.xml	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<service>
+    <name>musicwidgetplugin</name>
+    <filepath>musicwidgetplugin</filepath>
+    <description>Music Player Homescreen Widget</description>
+    <interface>
+        <name>com.nokia.symbian.IHomeScreenWidget</name>
+        <version>1.0</version>
+        <description>Music Player Homescreen Widget</description>
+        <capabilities></capabilities>
+        <customproperty key="iconuri">musicwidgeticon.png</customproperty>
+        <customproperty key="title">Music Widget</customproperty>
+    </interface>
+</service>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/resource/musicwidgetui.qrc	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,6 @@
+<RCC>
+    <qresource prefix="/gfx">
+        <file>music_widget.docml</file>
+        <file>musicwidgeticon.png</file>
+    </qresource>
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/rom/musicwidgetplugin.iby	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef MUSICWIDGETPLUGIN_IBY
+#define MUSICWIDGETPLUGIN_IBY
+
+file=ABI_DIR\BUILD_DIR\musicwidgetplugin.dll                                            SHARED_LIB_DIR\musicwidgetplugin.dll
+data=ZPRIVATE\20022f35\import\widgetregistry\200286FA\musicwidgetplugin.qtplugin        private\20022f35\import\widgetregistry\200286FA\musicwidgetplugin.qtplugin
+data=ZPRIVATE\20022f35\import\widgetregistry\200286FA\musicwidgetplugin.manifest        private\20022f35\import\widgetregistry\200286FA\musicwidgetplugin.manifest
+data=ZPRIVATE\20022f35\import\widgetregistry\200286FA\musicwidgetplugin.xml             private\20022f35\import\widgetregistry\200286FA\musicwidgetplugin.xml
+data=ZPRIVATE\20022f35\import\widgetregistry\200286FA\musicwidgeticon.png               private\20022f35\import\widgetregistry\200286FA\musicwidgeticon.png
+
+#endif // MUSICWIDGETPLUGIN_IBY
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/rom/rom.pri	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,40 @@
+#
+# 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: 
+#
+
+BLD_INF_RULES.prj_exports += \
+"$${LITERAL_HASH}include <platform_paths.hrh>"
+
+symbian {
+MP_IBY_DIR = $$section(PWD,":",1)
+
+#iby exports to core
+BLD_INF_RULES.prj_exports += "$$MP_IBY_DIR/musicwidgetplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(musicwidgetplugin.iby)"
+
+#iby exports to language
+#BLD_INF_RULES.prj_exports += "$$MP_IBY_DIR/musicwidgetplugin_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(musicwidgetplugin_resources.iby)"
+}
+
+
+BLD_INF_RULES.prj_extensions += \
+
+#$$LITERAL_HASH"ifdef MARM" \
+#" START EXTENSION app-services/buildstubsis" \
+#" OPTION SRCDIR rom" \
+#" OPTION SISNAME musicwidgetplugin_stub" \
+#" END" \
+#$$LITERAL_HASH"endif"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/src/musicwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,836 @@
+/*
+* 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:  Music player home screen widget
+*
+*/
+
+#include "musicwidget.h"
+
+#include <QtGui>
+#include <hbpushbutton.h>
+#include <hblabel.h>
+#include <hbicon.h>
+#include <hbmarqueeitem.h>
+#include <hbdocumentloader.h>
+#include <hbanchorlayout.h>
+#include <hbwidget.h>
+#include <hbframeitem.h>
+#include <hbframedrawer.h>
+#include <hbstyleloader.h>
+#include <hbcolorscheme.h>
+
+#include "mptrace.h"
+#include "mpenginefactory.h"
+
+// Constants
+/** Docml */
+const QString MUSIC_WIDGET_DOCML = ":/gfx/music_widget.docml";
+
+/** File name suffix lists for push buttons */
+const QStringList PREV_BUTTON_SUFFIXES = (QStringList() << "_l" << "_c" << "_cr");
+const QStringList PLAY_BUTTON_SUFFIXES = (QStringList() << "_cl" << "_c" << "_cr");
+const QStringList NEXT_BUTTON_SUFFIXES = (QStringList() << "_cl" << "_c" << "_r");
+
+/**  Prefixes for 3 piece button background graphics */
+const QLatin1String PUSH_BUTTON_NORMAL("qtg_fr_hsbutton_normal");
+const QLatin1String PUSH_BUTTON_PRESSED ("qtg_fr_hsbutton_pressed");
+const QLatin1String PUSH_BUTTON_DISABLED ("qtg_fr_hsbutton_disabled");
+
+/**  Push button icon colors for each of the states (Normal, Pressed and Disabled) */
+const QLatin1String ICON_COLOR_NORMAL ("qtc_button_normal");
+const QLatin1String ICON_COLOR_PRESSED ("qtc_button_pressed");
+const QLatin1String ICON_COLOR_DISABLED ("qtc_button_disabled");
+
+/**  Play and Pause icons */
+const QLatin1String ICON_PLAY ("qtg_mono_play");
+const QLatin1String ICON_PAUSE ("qtg_mono_pause");
+/**  Music Player shortcut icon */
+const QLatin1String ICON_LARGE_MUSIC_PLAYER ("qtg_large_music_player");
+/**  Music Player shortcut icon */
+const QLatin1String ICON_FIRST_TIME_USE ("qtg_large_music_empty");
+
+/**  HsWidget normal background */
+const QLatin1String WIDGET_BG_NORMAL ("qtg_fr_hswidget_normal");
+/**  Text background */
+const QLatin1String TEXT_BG_NORMAL ("qtg_fr_multimedia_trans");
+/**  Separator : character and space between artist and song name */
+const QLatin1String SEPARATOR_TEXT (": ");
+/**  Temporary unknown artist */
+const QLatin1String TEMPORARY_UNKWNOWN_TEXT ("Unknown");
+/**  Localized unknown artist */
+const QLatin1String UNKWNOWN_TEXT ("txt_mus_other_unknown_1");
+
+/**  Marquee width */
+const int MARQUEE_WIDTH = 170;
+/**  Infinite loop value for marquee */
+const int MARQUEE_LOOP_FOREVER = -1;
+
+/**  Now playing view with random play */
+const QLatin1String SERVICEREQ_FIRST_TIME_USE ("appto://10207C62?activityname=MusicNowPlayingView&launchtype=standalone&shuffle=yes");
+/**  Main view */
+const QLatin1String SERVICEREQ_MAIN_VIEW ("appto://10207C62?activityname=MusicMainView&launchtype=standalone");
+/**  Now playing view */
+const QLatin1String SERVICEREQ_NOW_PLAYING_VIEW ("appto://10207C62?activityname=MusicNowPlayingView&launchtype=standalone");
+
+/**  DOCML object name for main widget */
+const QLatin1String DOCML_CONTAINER_WIDGET ("containerWidget");
+/**  DOCML object name for widget background */
+const QLatin1String DOCML_BG_ICON ("widget_background_icon");
+/**  DOCML object name for album art image */
+const QLatin1String DOCML_ALBUM_ART ("album_art_image");
+/**  DOCML object name for shortcut icon background */
+const QLatin1String DOCML_SHORTCUT_ICON_BG ("shortcut_icon_background");
+/**  DOCML object name for shortcut icon */
+const QLatin1String DOCML_SHORTCUT_ICON ("shortcut_icon");
+/**  DOCML object name for scrolling text background */
+const QLatin1String DOCML_TEXT_BG ("text_bg");
+/**  DOCML object name for scrolling text */
+const QLatin1String DOCML_SCROLLING_TEXT ("scrolling_text");
+/**  DOCML object name for button group container */
+const QLatin1String DOCML_BUTTON_GROUP_CONTAINER ("button_group_container");
+/**  DOCML object name for prev button */
+const QLatin1String DOCML_PREV_BUTTON ("btn_previous");
+/**  DOCML object name for play button */
+const QLatin1String DOCML_PLAY_BUTTON ("btn_play");
+/**  DOCML object name for next button */
+const QLatin1String DOCML_NEXT_BUTTON ("btn_next");
+
+
+MusicWidget::MusicWidget(QGraphicsItem* parent, Qt::WindowFlags flags):
+    HbWidget(parent, flags),
+    mShortcutArea(0),
+    mSongDataBG(0),
+    mInformationSongName(0),
+    mMarqueeText(0),    
+    mPreviousPushButton(0),
+    mPlayPushButton(0),    
+    mNextPushButton(0),
+    mMusicPlayerNoSongData(1),
+    mMusicPlayerUpdating(0),
+    mMusicPlayerBlocked(0),
+    mAlbumArtLabel(0),
+    mAlbumArtWidth(0),
+    mAlbumArtHeight(0),
+    mArtist(0),
+    mTitle(0),    
+    mMpEngine(0),
+    mMpPlaybackData(0)
+{
+    TX_ENTRY
+    
+    // Setup UI
+    setupUi();
+    
+    // Connect to MP engine and playback data
+    mMpEngine = MpEngineFactory::createSharedEngine();
+    Q_ASSERT_X(mMpEngine, "music_widget", "no music player engine");
+    TX_LOG_ARGS("got mp engine")
+    
+    mMpPlaybackData = mMpEngine->playbackData();
+    Q_ASSERT_X(mMpPlaybackData, "music_widget", "no playback data");
+    TX_LOG_ARGS("got playback data")
+        
+    // Connect outgoing signals and slots
+    QObject::connect(mShortcutArea, SIGNAL(clicked()), this, SLOT(shortcutButton()));    
+    
+    // use signal mapper to indicate button identifiers to button event slots 
+    QSignalMapper* signalMapperPressed = new QSignalMapper( this ); 
+    signalMapperPressed->setMapping( mPreviousPushButton, EPrevious );
+    signalMapperPressed->setMapping( mPlayPushButton, EPlayPause);
+    signalMapperPressed->setMapping( mNextPushButton, ENext);
+
+    // need to use different signal mapper for pressed and released events, 
+    // both have same mappings but they are mapped to different slots
+    QSignalMapper* signalMapperReleased = new QSignalMapper( this );
+    signalMapperReleased->setMapping( mPreviousPushButton, EPrevious );
+    signalMapperReleased->setMapping( mPlayPushButton, EPlayPause);
+    signalMapperReleased->setMapping( mNextPushButton, ENext);
+        
+    // Connect button events to signal maps
+    QObject::connect(mPreviousPushButton, SIGNAL(pressed()), signalMapperPressed, SLOT (map()));
+    QObject::connect(mPreviousPushButton, SIGNAL(released()), signalMapperReleased, SLOT (map()));
+
+    QObject::connect(mPlayPushButton, SIGNAL(pressed()), signalMapperPressed, SLOT (map()));
+    QObject::connect(mPlayPushButton, SIGNAL(released()), signalMapperReleased, SLOT (map()));
+
+    QObject::connect(mNextPushButton, SIGNAL(pressed()), signalMapperPressed, SLOT (map()));
+    QObject::connect(mNextPushButton, SIGNAL(released()), signalMapperReleased, SLOT (map()));
+
+    // Connect mapper signals to self implemented slots
+    QObject::connect( signalMapperPressed, SIGNAL(mapped(int)), this, SLOT(mediaButtonPressed(int)));
+    QObject::connect( signalMapperReleased, SIGNAL(mapped(int)), this, SLOT(mediaButtonReleased(int)));
+
+    // Connect clicked events
+    QObject::connect(mPreviousPushButton, SIGNAL(clicked()), this, SLOT(prevSong()));
+    QObject::connect(mPlayPushButton, SIGNAL(clicked()), this, SLOT(playSong()));   
+    QObject::connect(mNextPushButton, SIGNAL(clicked()), this, SLOT(nextSong()));
+
+    // MpEngine
+    QObject::connect(mMpEngine, SIGNAL(libraryAboutToUpdate()), this, SLOT(libraryAboutToUpdate()));
+    QObject::connect(mMpEngine, SIGNAL(libraryUpdated()), this, SLOT(libraryUpdated()));
+    QObject::connect(mMpEngine, SIGNAL(usbBlocked(bool)), this, SLOT(usbBlocked(bool)));
+
+    //MpPlaybackData
+    QObject::connect(mMpPlaybackData, SIGNAL(albumArtReady()), this, SLOT(albumArtReady()));
+    QObject::connect(mMpPlaybackData, SIGNAL(playbackStateChanged()), this, SLOT(playbackStateChanged()));
+    QObject::connect(mMpPlaybackData, SIGNAL(playbackInfoChanged()), this, SLOT(playbackInfoChanged()));  
+    
+    // Initial data from Music Player get by onShow method call
+    TX_EXIT
+}
+
+/*!
+    Destructor
+*/
+MusicWidget::~MusicWidget()
+{
+}
+
+/*!
+ Creates UI.
+ */
+void MusicWidget::setupUi()
+{
+    TX_ENTRY
+    
+    // Use document loader to load the contents
+    HbDocumentLoader loader;
+    bool ok = false;
+    loader.load( MUSIC_WIDGET_DOCML, &ok);
+    Q_ASSERT_X(ok, "music_widget", "invalid title docml file");
+
+    TX_LOG_ARGS("loaded docml")
+    
+    QGraphicsLinearLayout* mainLayout = new QGraphicsLinearLayout(Qt::Vertical, this);
+    QGraphicsWidget* container = loader.findWidget(DOCML_CONTAINER_WIDGET);
+    mainLayout->addItem(container);
+    //Sets parent
+    setLayout( mainLayout );
+
+    // Load and set widget background
+    HbWidget *bgWidget = qobject_cast<HbWidget*> (loader.findWidget(DOCML_BG_ICON));
+    HbFrameItem *frameItem;
+    if (bgWidget)
+        {
+        HbFrameDrawer *drawer = new HbFrameDrawer(WIDGET_BG_NORMAL,
+            HbFrameDrawer::NinePieces);
+        frameItem = new HbFrameItem(drawer, bgWidget);
+        frameItem->setPreferredSize(bgWidget->preferredSize());
+        bgWidget->setZValue(1);
+        }
+
+    // Setup album art area
+    QGraphicsWidget *tmpWidgetPtr;
+    tmpWidgetPtr = loader.findWidget(DOCML_ALBUM_ART);
+    mAlbumArtLabel = qobject_cast<HbLabel*>(tmpWidgetPtr);
+    HbWidget *albumArtLayout = mAlbumArtLabel;
+    albumArtLayout->setZValue(2);
+    
+    // Store album art area size
+    mAlbumArtWidth = albumArtLayout->preferredWidth();
+    mAlbumArtHeight = albumArtLayout->preferredHeight();    
+        
+    // Load shortcut background
+    HbWidget *shortcutAreaLayout = qobject_cast<HbWidget*> (loader.findWidget(DOCML_SHORTCUT_ICON_BG));
+    HbFrameItem *shortcutFrameItem;
+    if (shortcutAreaLayout) {
+        HbFrameDrawer *drawer = new HbFrameDrawer(WIDGET_BG_NORMAL,
+            HbFrameDrawer::NinePieces);
+        shortcutFrameItem = new HbFrameItem(drawer, shortcutAreaLayout);
+        shortcutFrameItem->setPreferredSize(shortcutAreaLayout->preferredSize());
+        shortcutAreaLayout->setZValue(3);
+        }
+
+    // Load shortcut widget and set background 
+    mShortcutArea = qobject_cast<HbPushButton*> (loader.findWidget(DOCML_SHORTCUT_ICON));
+    if ( mShortcutArea )
+        {
+        // icon needs to be put as a background so that it fills the whole button area
+        HbFrameDrawer* drawer = new HbFrameDrawer(ICON_LARGE_MUSIC_PLAYER, HbFrameDrawer::OnePiece);
+        mShortcutArea->setFrameBackground( drawer );
+        }
+
+    // Set song data background
+    mSongDataBG = qobject_cast<HbWidget*> (loader.findWidget(DOCML_TEXT_BG));
+    HbFrameItem *scrollTextItem;
+    if (mSongDataBG) 
+        {
+        HbFrameDrawer *drawer = new HbFrameDrawer(TEXT_BG_NORMAL, 
+            HbFrameDrawer::NinePieces);
+        scrollTextItem = new HbFrameItem(drawer, mSongDataBG);
+        scrollTextItem->setPreferredSize(mSongDataBG->preferredSize());
+        mSongDataBG->setZValue(4);
+        mSongDataBG->hide(); // Hide initially...
+        }
+
+    // Set scrolling song data
+    mInformationSongName = qobject_cast<HbLabel*> (loader.findWidget(DOCML_SCROLLING_TEXT));
+    if ( mInformationSongName )
+        {
+        // Setting primitive marquee item values from .css doesn't work well, set in code...
+        mMarqueeText = new HbMarqueeItem(mInformationSongName);
+        HbFontSpec fs(HbFontSpec::Secondary);
+        mMarqueeText->setFontSpec(fs);        
+        mMarqueeText->setTextColor(mInformationSongName->textColor());
+        mMarqueeText->setMinimumWidth(MARQUEE_WIDTH);
+        mMarqueeText->setLoopCount(MARQUEE_LOOP_FOREVER);
+        }
+    
+    HbWidget *buttonGroupContainer = qobject_cast<HbWidget*> (loader.findWidget(
+            DOCML_BUTTON_GROUP_CONTAINER));
+    if (buttonGroupContainer)
+        {
+        // Define push buttons in  state at this point, check the player status later and update buttons if needed
+        mPreviousPushButton = qobject_cast<HbPushButton*> (loader.findWidget(DOCML_PREV_BUTTON));
+        defineMediaButton( *mPreviousPushButton, PUSH_BUTTON_NORMAL, PREV_BUTTON_SUFFIXES, ICON_COLOR_NORMAL );
+        
+        mPlayPushButton = qobject_cast<HbPushButton*> (loader.findWidget(DOCML_PLAY_BUTTON));
+        defineMediaButton( *mPlayPushButton, PUSH_BUTTON_NORMAL, PLAY_BUTTON_SUFFIXES, ICON_COLOR_NORMAL );
+    
+        mNextPushButton = qobject_cast<HbPushButton*> (loader.findWidget(DOCML_NEXT_BUTTON));
+        defineMediaButton( *mNextPushButton, PUSH_BUTTON_NORMAL, NEXT_BUTTON_SUFFIXES, ICON_COLOR_NORMAL );
+        }
+    
+    TX_EXIT
+}
+
+/*!
+    Makes the push button based on information aGraphicsId and aSuffix
+ */
+void MusicWidget::defineMediaButton( HbPushButton& aTarget, QString aGraphicsId, QStringList aSuffix, QString aIconColor )
+    {
+    TX_ENTRY
+    
+    TX_LOG_ARGS("graphics id: " << aGraphicsId)
+    TX_LOG_ARGS("icon color: " << aIconColor)
+    
+    HbFrameDrawer* drawer;
+
+    // First check if the drawer is already created for this push button
+    if ( !aTarget.frameBackground()){
+        // Nope, create one now
+        drawer = new HbFrameDrawer(aGraphicsId, HbFrameDrawer::ThreePiecesHorizontal);
+        aTarget.setFrameBackground( drawer );
+        TX_LOG_ARGS("created drawer for button bg")
+        }
+    else {
+        // Frame drawer already created, only need to update frame graphics
+        drawer = aTarget.frameBackground();
+        drawer->setFrameGraphicsName( aGraphicsId );
+        TX_LOG_ARGS("using existing drawer for button bg")
+        }
+
+    // Set file name suffix list, so that drawer can load correct 3-piece graphic files 
+    drawer->setFileNameSuffixList( aSuffix );
+
+    // Update also the icon color
+    QColor color = HbColorScheme::color(aIconColor);
+    aTarget.icon().setColor( color );
+
+    // Lastly, check if the buttton is disabled
+    if ( aIconColor == ICON_COLOR_DISABLED )
+        {
+        aTarget.setEnabled(false);
+        TX_LOG_ARGS("button disabled")
+        }
+    else
+        {
+        aTarget.setEnabled(true);
+        TX_LOG_ARGS("button enabled")
+        }
+    
+    TX_EXIT
+    }
+
+/*!
+
+ */
+void MusicWidget::mediaButtonEvent( MediaKeyIdentifier aMediaKeyId, QString aGraphicsId, QString aIconColor )
+    {
+    TX_ENTRY
+    
+    HbPushButton* target = NULL;
+    QStringList suffix;
+    
+    switch ( aMediaKeyId )
+        {
+        case EPrevious: {
+            TX_LOG_ARGS("previous")
+            target = mPreviousPushButton;
+            suffix = PREV_BUTTON_SUFFIXES;
+            break;
+            }
+        case EPlayPause: {
+            TX_LOG_ARGS("play/pause")
+            target = mPlayPushButton;
+            suffix = PLAY_BUTTON_SUFFIXES;
+            break;
+            }
+        case ENext: {
+            TX_LOG_ARGS("next")
+            target = mNextPushButton;
+            suffix = NEXT_BUTTON_SUFFIXES;
+            break;
+            }
+        default: {
+            // Do proper error handling.. should not be possible to get here ever tough
+            TX_LOG_ARGS("unknown button")
+            return;
+            }
+        }
+        
+    if ( target )
+    	{
+    	MusicWidget::defineMediaButton( *target, aGraphicsId, suffix, aIconColor );
+    	}
+    
+    TX_EXIT
+    }
+
+/*!
+   Emited from HbPushButton:pressed() signal, changes the button layout to 'Pressed'
+ */
+void MusicWidget::mediaButtonPressed( int aMediaKeyId )
+    {
+    TX_LOG_ARGS("media key: " << aMediaKeyId )
+    mediaButtonEvent( (MediaKeyIdentifier)aMediaKeyId, PUSH_BUTTON_PRESSED, ICON_COLOR_PRESSED );
+    }
+
+/*!
+   Emited from HbPushButton:released() signal, changes the button layout to 'Normal'
+ */
+void MusicWidget::mediaButtonReleased( int aMediaKeyId )
+    {
+    TX_LOG_ARGS("media key: " << aMediaKeyId )
+    mediaButtonEvent( (MediaKeyIdentifier)aMediaKeyId, PUSH_BUTTON_NORMAL, ICON_COLOR_NORMAL );
+    }
+
+/*!
+   Disables specified push button
+ */
+void MusicWidget::mediaButtonDisabled( int aMediaKeyId )
+    {
+    TX_LOG_ARGS("media key: " << aMediaKeyId )
+    mediaButtonEvent( (MediaKeyIdentifier)aMediaKeyId, PUSH_BUTTON_DISABLED, ICON_COLOR_DISABLED );
+    }
+
+/*!
+   Disables specified push button
+ */
+void MusicWidget::mediaButtonEnabled( int aMediaKeyId )
+    {
+    TX_LOG_ARGS("media key: " << aMediaKeyId )
+    mediaButtonEvent( (MediaKeyIdentifier)aMediaKeyId, PUSH_BUTTON_NORMAL, ICON_COLOR_NORMAL );
+    }
+
+/*!
+ Manually update music widget state.
+ */
+void MusicWidget::refreshData()
+{ 
+    TX_ENTRY
+    // Get current player state
+    playbackStateChanged();
+    
+    // Get current song data, updates button states
+    playbackInfoChanged();
+
+    // Get current album art
+    albumArtReady();
+    TX_EXIT
+}
+
+/*!
+ Launch music player...
+ */
+void MusicWidget::launchMusicPlayer(int launchMode)
+{  
+    TX_ENTRY
+    //TODO: Detect if MusicPlayer is running or not properly, handle case where player not available?!
+    //TODO: Get service status from XQSettingManager
+    //TODO: Service status from signal:
+    //TODO: void statusChanged(const XQAiwInterfaceDescriptor& implementation,  ServiceStatus currentStatus);
+     
+    QUrl url;
+    XQAiwRequest* req;
+    
+    if ( launchMode == ELaunchFromPlay )
+        {
+        TX_LOG_ARGS("launch from play")
+        // Launch to now playing view, random play to be started!
+        url.setUrl(SERVICEREQ_FIRST_TIME_USE);        
+        }
+    else if (mMusicPlayerNoSongData)
+        {
+        TX_LOG_ARGS("to main view")
+        // Launch to main view
+        url.setUrl(SERVICEREQ_MAIN_VIEW);    
+        }
+    else
+        {
+        TX_LOG_ARGS("to now playing view")
+        // Launch to now playing view
+        url.setUrl(SERVICEREQ_NOW_PLAYING_VIEW);
+        }   
+    
+    req = mApplicationManager.create(url);    
+    if (req == NULL)
+        {
+        // No handlers for the URI
+        TX_LOG_ARGS("no req created")
+        return;
+        }
+    
+    req->setBackground(false);
+    req->setSynchronous(false);
+    
+    // Set function parameters
+   QList<QVariant> args;
+   args << url.toString();
+   req->setArguments(args);
+
+   // Send the request
+   bool res = req->send();
+   if  (!res) 
+   {
+       // Request failed. 
+      int error = req->lastError();
+      // Handle error
+      TX_LOG_ARGS("req send error: " << error)
+   }
+
+   delete req;
+   
+   TX_EXIT
+}
+
+/*!
+    Return bounding rect
+*/
+QRectF MusicWidget::boundingRect() const
+{
+    return childrenBoundingRect();
+}
+
+/*!
+    Return shape
+*/
+QPainterPath MusicWidget::shape() const
+{   
+    QPainterPath path;
+    path.addRect(boundingRect());
+    return path;
+}
+
+/*!
+ Initializes the widget.
+ */
+void MusicWidget::onInitialize()
+{
+    TX_LOG
+}
+
+/*!
+ Shows the widget.
+ */
+void MusicWidget::onShow()
+{
+    TX_LOG
+    refreshData();
+}
+
+/*!
+ Hides the widget.
+ */
+void MusicWidget::onHide()
+{
+    TX_LOG
+}
+
+/*!
+ Uninitializes the widget.
+ */
+void MusicWidget::onUninitialize()
+{
+    TX_LOG
+}
+
+/*!
+ Slot for shortcut button clicked.
+ */
+void MusicWidget::shortcutButton()
+{
+    TX_LOG
+    launchMusicPlayer(ELaunchFromShortcut);
+}
+
+/*!
+ Slot for previous button clicked.
+ */
+void MusicWidget::prevSong()
+{ 
+    TX_LOG
+    mMpEngine->skipBackward();
+}
+
+/*!
+ Slot for play button clicked. Handles both Play and Pause!
+ */
+void MusicWidget::playSong()
+{
+    TX_ENTRY
+    if (mMusicPlayerNoSongData && mMpPlaybackData->playbackState() != MpPlaybackData::Playing )
+        {
+        //Signal music player to start playing all songs with random
+        launchMusicPlayer(ELaunchFromPlay);
+        }
+
+    mMpEngine->playPause();
+    TX_EXIT
+}
+/*!
+ Slot for next button clicked.
+ */
+void MusicWidget::nextSong()
+{
+    TX_LOG
+    mMpEngine->skipForward();
+}
+
+/*!
+
+ */
+bool MusicWidget::eventFilter(QObject *target, QEvent *event)
+ {
+    // pass the event on to the parent class
+    return HbWidget::eventFilter(target, event);    
+}
+
+/*!
+ MpEngine related
+ */
+void MusicWidget::libraryAboutToUpdate()
+{
+    TX_LOG
+    //Refresh Library start
+    mMusicPlayerUpdating = true;
+    
+    // Update button enabled/disabled state
+    toggleButtons();
+}
+
+/*!
+ MpEngine related
+ */
+void MusicWidget::libraryUpdated()
+{
+    TX_LOG
+    //Refresh Library done
+    mMusicPlayerUpdating = false;
+    
+    // Update button enabled/disabled state
+    toggleButtons();
+}
+
+/*!
+ MpEngine related
+ */
+void MusicWidget::usbBlocked( bool blocked )
+{
+    TX_LOG_ARGS("blocked: " << blocked)
+    //Blocked state
+    //Mass storage mode
+    //Media transfer mode
+    //Ovi Suite mode
+    //Insert memory card
+    
+    mMusicPlayerBlocked = blocked;
+    
+    // Update button enabled/disabled state
+    toggleButtons();
+}
+
+/*!
+ MpPlaybackData related
+ */
+void MusicWidget::albumArtReady()
+{   
+    TX_ENTRY
+    HbIcon icon;
+    
+    if ( mMusicPlayerNoSongData )
+        {
+        TX_LOG_ARGS("1st time album art")
+        icon = HbIcon(ICON_FIRST_TIME_USE);    
+        }
+    else
+        {
+        TX_LOG_ARGS("playback data album art")
+        mMpPlaybackData->albumArt( icon );
+        }
+    
+    // Resize here manually to avoid resizing when showing album art
+    icon.setHeight(mAlbumArtHeight);
+    icon.setWidth(mAlbumArtWidth);
+    mAlbumArtLabel->setIcon( icon );
+    
+    TX_EXIT
+}
+
+void MusicWidget::playbackStateChanged()
+{
+    TX_ENTRY
+    // Set play/pause icon and start/stop marquee.   
+    QString iconName;
+    
+    int state = mMpPlaybackData->playbackState();
+    
+    TX_LOG_ARGS("state: " << state)
+    
+    switch (state)
+        {
+        case MpPlaybackData::Playing:
+            {
+            TX_LOG_ARGS("pause icon, start marquee")
+            iconName.append(ICON_PAUSE);
+            mMarqueeText->startAnimation();
+            break;
+            }
+        case MpPlaybackData::Paused:
+        case MpPlaybackData::Stopped:
+        case MpPlaybackData::NotPlaying:       
+            {
+            TX_LOG_ARGS("play icon, stop marquee")
+            iconName.append(ICON_PLAY);
+            mMarqueeText->stopAnimation();
+            break;
+            }
+        }
+
+    HbIcon iconPlayPause(iconName);
+    mPlayPushButton->setIcon(iconPlayPause);
+    
+    TX_EXIT
+}
+
+/*!
+ MpPlaybackData related
+ */
+void MusicWidget::playbackInfoChanged()
+{ 
+    TX_ENTRY
+    // Initialize maqruee with something (space), to ensure
+    // text updates to display as well.
+    QString songData;
+    
+    mArtist = mMpPlaybackData->artist();
+    mTitle = mMpPlaybackData->title();
+    
+    if ( !mTitle.length() )
+        {
+        mArtist.clear();
+        mTitle.clear();
+        songData = " ";
+
+        //1st time launch
+        mMusicPlayerNoSongData = true;
+        
+        TX_LOG_ARGS("no song data")
+        }
+    else
+        {
+        if ( !mArtist.length() )
+            {
+            //Show localized "Unknown" if there is no artist name
+            
+            //TODO: Widget needs own localization?!?!
+            //mArtist.append( hbTrId(UNKWNOWN_TEXT) );
+
+            //TODO: Remove temporary unknown string when localization resolved.
+            mArtist.append( TEMPORARY_UNKWNOWN_TEXT );
+            }
+        
+        songData.append(mArtist);
+        songData.append(SEPARATOR_TEXT);
+        songData.append(mTitle);
+        
+        mMusicPlayerNoSongData = false;
+        
+        TX_LOG_ARGS("song data received")
+        }    
+    
+    mMarqueeText->setText(songData);
+    TX_LOG_ARGS("marquee text: " << songData)
+
+    // Show dark BG to songdata only if there is songdata...
+    if ( mMusicPlayerNoSongData && mSongDataBG->isVisible() )
+        {
+        TX_LOG_ARGS("hide marquee bg")
+        mSongDataBG->hide();
+        }
+    else if ( !mMusicPlayerNoSongData && !mSongDataBG->isVisible() )
+        {
+        TX_LOG_ARGS("show marquee bg")
+        mSongDataBG->show();  
+        }
+    
+    // Update button enabled/disabled state
+    toggleButtons();
+    
+    TX_EXIT
+}
+
+/*!
+ Toggle buttons to disabled/enabled as required.
+ */
+void MusicWidget::toggleButtons()
+{ 
+    TX_ENTRY
+    // All buttons disabled if updating
+    if ( mMusicPlayerUpdating )
+        {
+        TX_LOG_ARGS("updating")
+        mediaButtonDisabled( EPlayPause );
+        mediaButtonDisabled( EPrevious );
+        mediaButtonDisabled( ENext );
+        }
+    
+    // All buttons disabled if blocked
+    else if ( mMusicPlayerBlocked )
+        {
+        TX_LOG_ARGS("blocked")
+        mediaButtonDisabled( EPlayPause );
+        mediaButtonDisabled( EPrevious );
+        mediaButtonDisabled( ENext );
+        }    
+    
+    // Only play button enabled if there is no song data, 1st time use
+    else if ( mMusicPlayerNoSongData )
+        {
+        TX_LOG_ARGS("no song data")
+        mediaButtonEnabled( EPlayPause );
+        mediaButtonDisabled( EPrevious );
+        mediaButtonDisabled( ENext );
+        }
+    
+    // Enable all buttons if there is song data
+    else
+        {
+        TX_LOG_ARGS("enable all buttons")
+        mediaButtonEnabled( EPlayPause );      
+        mediaButtonEnabled( EPrevious );
+        mediaButtonEnabled( ENext );      
+        }
+    TX_EXIT
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicwidgetplugin/src/musicwidgetplugin.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:  Music player home screen widget
+*
+*/
+
+#include <qserviceinterfacedescriptor.h>
+#include <qabstractsecuritysession.h>
+#include <qservicecontext.h>
+
+#include "musicwidgetplugin.h"
+#include "musicwidget.h"
+
+QObject *MusicWidgetPlugin::createInstance(const QServiceInterfaceDescriptor &descriptor,
+                                             QServiceContext *context,
+                                             QAbstractSecuritySession *session)
+{
+    Q_UNUSED(context);
+    Q_UNUSED(session);
+
+    if (descriptor.interfaceName() == QLatin1String("com.nokia.symbian.IHomeScreenWidget"))
+        {
+        return new MusicWidget();
+        }
+    else
+        {
+        return 0;
+        }
+}
+
+Q_EXPORT_PLUGIN2(musicwidgetplugin, MusicWidgetPlugin)
--- a/qtmusicplayer.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/qtmusicplayer.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -27,6 +27,8 @@
     include(mpviewplugins/mpplaybackviewplugin/rom/rom.pri)
     include(mpviewplugins/mpsettingsviewplugin/rom/rom.pri)
     include(mpviewplugins/mpdetailsviewplugin/rom/rom.pri)
+    include(mpviewplugins/mpmediawallviewplugin/rom/rom.pri)
+    include(musicwidgetplugin/rom/rom.pri)
     include(mpserviceplugins/audioeffects/rom/rom.pri)
     include(mpserviceplugins/localaudio/rom/rom.pri)
     include(mpserviceplugins/mpxsqlitedbcommon/rom/rom.pri)
@@ -36,12 +38,13 @@
     include(mpserviceplugins/m3uplaylistplugin/rom/rom.pri)
     }
 
-SUBDIRS = utilities \
+SUBDIRS = mpdata \
+          mpengine \
+          utilities \
           musicservices \
           app \
-          mpdata \
-          mpengine \
-          mpviewplugins 
+          mpviewplugins \
+          musicwidgetplugin
 
 CONFIG += ordered
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sis/build-sisx-udeb.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,37 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+@echo off
+
+IF NOT EXIST Nokia_RnDCert_02.der (
+    echo Please copy key files to ROOT before build sis file.
+    goto end
+) ELSE (
+    IF NOT EXIST Nokia_RnDCert_02.key (
+        echo Please copy key files to ROOT before build sis file.
+        goto end
+    )
+)
+
+del musicplayer_udeb.sis musicplayer_udeb.sisx 
+@echo.
+makesis musicplayer_udeb.pkg
+@echo.
+signsis musicplayer_udeb.sis musicplayer_udeb.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+
+:end
+@echo.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sis/build-sisx-urel.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,37 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+@echo off
+
+IF NOT EXIST Nokia_RnDCert_02.der (
+    echo Please copy key files to ROOT before build sis file.
+    goto end
+) ELSE (
+    IF NOT EXIST Nokia_RnDCert_02.key (
+        echo Please copy key files to ROOT before build sis file.
+        goto end
+    )
+)
+
+del musicplayer_urel.sis musicplayer_urel.sisx
+@echo.
+makesis musicplayer_urel.pkg
+@echo.
+signsis musicplayer_urel.sis musicplayer_urel.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+
+:end
+@echo.
+
--- a/sis/build-sisx.bat	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-@rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-Echo please copy key files to ROOT before build sis file
-del musicplayer.sis mpxservicesplugins.sis musicplayer.six mpxservicesplugins.six
-makesis mpxservicesplugins.pkg
-signsis mpxservicesplugins.sis mpxservicesplugins.six rd.cer rd-key.pem
-makesis musicplayer.pkg
-signsis musicplayer.sis musicplayer.six rd.cer rd-key.pem
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sis/build-stub-sis.bat	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,19 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+del musicplayer_stub.sis
+makesis -s musicplayer_stub.pkg
+@echo.
--- a/sis/mpxservicesplugins.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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: 
-;
-;Header
-#{"MPXMusicPlayer"}, (0x101FFC62), 18, 0, 0, TYPE=SA, RU
-; dlls version uses 13.2
-
-
-; Localised vendor names
-%{"Nokia"}
-
-; Unique, global vendor name  
-:"Nokia"
-
-;Files to install
-"\epoc32\release\armv5\urel\mpxlocalaudioplayback.dll"      	-"!:\sys\bin\mpxlocalaudioplayback.dll"
-"\epoc32\release\armv5\urel\mpxsqlitedbcommon.dll"           	-"!:\sys\bin\mpxsqlitedbcommon.dll"
-"\epoc32\release\armv5\urel\mpxsqlitedbplugin.dll"          	-"!:\sys\bin\mpxsqlitedbplugin.dll"
-"\epoc32\release\armv5\urel\mpxsqlitepodcastdbplugin.dll"   	-"!:\sys\bin\mpxsqlitepodcastdbplugin.dll"
-"\epoc32\release\armv5\urel\mpxm3uplaylistparsers.dll"      	-"!:\sys\bin\mpxm3uplaylistparsers.dll"
-"\epoc32\release\armv5\urel\mpxm3uplaylistplugin.dll"       	-"!:\sys\bin\mpxm3uplaylistplugin.dll"
-
-"\epoc32\data\Z\resource\plugins\mpxlocalaudioplayback.rsc"	-"!:\resource\plugins\mpxlocalaudioplayback.rsc"
-"\epoc32\data\Z\resource\plugins\mpxsqlitedbplugin.rsc"		-"!:\resource\plugins\mpxsqlitedbplugin.rsc"
-"\epoc32\data\Z\resource\apps\mpxcollectiondbres.rsc" 		-"!:\resource\apps\mpxcollectiondbres.rsc"
-"\epoc32\data\Z\resource\plugins\mpxsqlitepodcastdbplugin.rsc"	-"!:\resource\plugins\mpxsqlitepodcastdbplugin.rsc"
-"\epoc32\data\Z\resource\plugins\mpxm3uplaylistplugin.rsc"	-"!:\resource\plugins\mpxm3uplaylistplugin.rsc"
--- a/sis/musicplayer.pkg	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description: 
-;
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"musicplayer"},(0x10207C62),1,0,0
-
-; Localised Vendor name
-%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"\epoc32\release\armv5\urel\musicplayer.exe"    - "!:\sys\bin\musicplayer.exe"
-"\epoc32\data\z\resource\apps\musicplayer.rsc"    - "!:\resource\apps\musicplayer.rsc"
-"\epoc32\data\z\private\10003a3f\import\apps\musicplayer_reg.rsc"    - "!:\private\10003a3f\import\apps\musicplayer_reg.rsc"
-"\epoc32\data\z\resource\apps\musicplayer.mif"    - "!:\resource\apps\musicplayer.mif"
-
-; DLLs
-"\epoc32\release\armv5\urel\mpnowplayingbanner.dll"    - "!:\sys\bin\mpnowplayingbanner.dll"
-"\epoc32\release\armv5\urel\mpsettingsmanager.dll"    - "!:\sys\bin\mpsettingsmanager.dll"
-
-;CenRep
-"\epoc32\data\Z\private\10202be9\10207C92.txt" - "!:\private\10202be9\10207C92.txt"
-
-; PLUGIN AND VIEW
-"\epoc32\release\armv5\urel\mpcollectionviewplugin.dll"    - "!:\sys\bin\mpcollectionviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\mpcollectionviewplugin.rsc" - "!:\resource\plugins\mpcollectionviewplugin.rsc"
-
-"\epoc32\release\armv5\urel\mpplaybackviewplugin.dll"    - "!:\sys\bin\mpplaybackviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\mpplaybackviewplugin.rsc" - "!:\resource\plugins\mpplaybackviewplugin.rsc"
-
-"\epoc32\release\armv5\urel\mpsettingsviewplugin.dll"    - "!:\sys\bin\mpsettingsviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\mpsettingsviewplugin.rsc" - "!:\resource\plugins\mpsettingsviewplugin.rsc"
-
-"\epoc32\release\armv5\urel\mpdetailsviewplugin.dll"    - "!:\sys\bin\mpdetailsviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\mpdetailsviewplugin.rsc" - "!:\resource\plugins\mpdetailsviewplugin.rsc"
-
-; data
-"\epoc32\data\Z\system\data\nullsound.mp3"          -"!:\nullsound.mp3"
-
-@"mpxservicesplugins.sis",(0x101FFC62)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sis/musicplayer_stub.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,80 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"musicplayer"}, (0x10207C62), 1,0,0, TYPE=SA
+
+; Localised Vendor name
+%{"Nokia, Qt Software"}
+
+; Unique Vendor name
+:"Nokia, Qt Software"
+
+; Executable and default resource files
+""-"z:\sys\bin\musicplayer.exe"
+""-"z:\resource\apps\musicplayer.r*"
+""-"z:\private\10003a3f\import\apps\musicplayer_reg.rsc"
+""-"z:\resource\apps\musicplayer.mif"
+""-"z:\resource\qt\translations\musicplayer*.qm"
+
+; DLLs
+""-"z:\sys\bin\mpnowplayingbanner.dll"
+""-"z:\sys\bin\mpsettingsmanager.dll"
+""-"z:\sys\bin\mpdata.dll"
+""-"z:\sys\bin\mpengine.dll"
+""-"z:\sys\bin\musicservices.dll"
+
+; CenRep
+""-"z:\private\10202be9\10207C92.txt"
+
+; PLUGIN AND VIEW
+""-"z:\sys\bin\mpcollectionviewplugin.dll"
+""-"z:\resource\plugins\mpcollectionviewplugin.r*"
+
+""-"z:\sys\bin\mpplaybackviewplugin.dll"
+""-"z:\resource\plugins\mpplaybackviewplugin.r*"
+
+""-"z:\sys\bin\mpsettingsviewplugin.dll"
+""-"z:\resource\plugins\mpsettingsviewplugin.r*"
+
+""-"z:\sys\bin\mpdetailsviewplugin.dll"
+""-"z:\resource\plugins\mpdetailsviewplugin.r*"
+
+""-"z:\sys\bin\mpmediawallviewplugin.dll"
+""-"z:\resource\plugins\mpmediawallviewplugin.r*"
+
+; DATA
+""-"z:\system\data\nullsound.mp3"
+
+;MP SERVICE PLUGINGS
+""-"z:\sys\bin\mpxaudioeffectengine.dll"
+""-"z:\sys\bin\mpxlocalaudioplayback.dll"
+""-"z:\sys\bin\mpxm3uplaylistparsers.dll"
+""-"z:\sys\bin\mpxm3uplaylistplugin.dll"
+""-"z:\sys\bin\mpxinmemoryplugin.dll"
+""-"z:\sys\bin\mpxsqlitedbcommon.dll"
+""-"z:\sys\bin\mpxsqlitedbhgplugin.dll"
+""-"z:\sys\bin\mpxsqlitepodcastdbplugin.dll"
+
+""-"z:\resource\plugins\mpxlocalaudioplayback.r*"
+""-"z:\resource\plugins\mpxm3uplaylistplugin.r*"
+""-"z:\resource\plugins\mpxinmemoryplugin.r*"
+""-"z:\resource\plugins\mpxsqlitedbhgplugin.r*"
+""-"z:\resource\apps\mpxcollectiondbhgres.r*"
+""-"z:\resource\plugins\mpxsqlitepodcastdbplugin.r*"
+""-"z:\resource\apps\pcres.r*"
Binary file sis/musicplayer_stub.sis has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sis/musicplayer_udeb.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,243 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+; Language
+&EN, FR, GE, SP, IT, SW, DA, NO, FI, AM, PO, TU, IC, RU, HU, DU, CS, SK, PL, SL, TC, HK, ZH, JA, TH, AR, TL, BG, CA, 
+HR, ET, FA, CF, EL, HE, IN, KO, LV, LT, MS, BP, RO, SR, LS, UK, UR, VI, BA, GL, 129, 157, 158, 159, 160, 161, 326, 327
+
+; SIS header: name, uid, version
+#{"musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer"
+  }, (0x10207C62), 1,0,0, TYPE=SA, RU
+
+; Localised Vendor name
+%{"Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software"
+  }
+
+; Unique Vendor name
+:"Nokia, Qt Software"
+
+; Dependencies
+[0x101F7961],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+[0x102032BE],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+[0x102752AE],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+[0x1028315F],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+
+; Executable and default resource files
+"\epoc32\release\armv5\udeb\musicplayer.exe"                       - "!:\sys\bin\musicplayer.exe"
+"\epoc32\data\z\private\10003a3f\import\apps\musicplayer_reg.rsc"  - "!:\private\10003a3f\import\apps\musicplayer_reg.rsc"
+"\epoc32\data\z\resource\apps\musicplayer.mif"                     - "!:\resource\apps\musicplayer.mif"
+
+; Localized files
+{
+"\epoc32\data\Z\resource\apps\musicplayer.r01"
+"\epoc32\data\Z\resource\apps\musicplayer.r02"
+"\epoc32\data\Z\resource\apps\musicplayer.r03"
+"\epoc32\data\Z\resource\apps\musicplayer.r04"
+"\epoc32\data\Z\resource\apps\musicplayer.r05"
+"\epoc32\data\Z\resource\apps\musicplayer.r06"
+"\epoc32\data\Z\resource\apps\musicplayer.r07"
+"\epoc32\data\Z\resource\apps\musicplayer.r08"
+"\epoc32\data\Z\resource\apps\musicplayer.r09"
+"\epoc32\data\Z\resource\apps\musicplayer.r10"
+"\epoc32\data\Z\resource\apps\musicplayer.r13"
+"\epoc32\data\Z\resource\apps\musicplayer.r14"
+"\epoc32\data\Z\resource\apps\musicplayer.r15"
+"\epoc32\data\Z\resource\apps\musicplayer.r16"
+"\epoc32\data\Z\resource\apps\musicplayer.r17"
+"\epoc32\data\Z\resource\apps\musicplayer.r18"
+"\epoc32\data\Z\resource\apps\musicplayer.r25"
+"\epoc32\data\Z\resource\apps\musicplayer.r26"
+"\epoc32\data\Z\resource\apps\musicplayer.r27"
+"\epoc32\data\Z\resource\apps\musicplayer.r28"
+"\epoc32\data\Z\resource\apps\musicplayer.r29"
+"\epoc32\data\Z\resource\apps\musicplayer.r30"
+"\epoc32\data\Z\resource\apps\musicplayer.r31"
+"\epoc32\data\Z\resource\apps\musicplayer.r32"
+"\epoc32\data\Z\resource\apps\musicplayer.r33"
+"\epoc32\data\Z\resource\apps\musicplayer.r37"
+"\epoc32\data\Z\resource\apps\musicplayer.r39"
+"\epoc32\data\Z\resource\apps\musicplayer.r42"
+"\epoc32\data\Z\resource\apps\musicplayer.r44"
+"\epoc32\data\Z\resource\apps\musicplayer.r45"
+"\epoc32\data\Z\resource\apps\musicplayer.r49"
+"\epoc32\data\Z\resource\apps\musicplayer.r50"
+"\epoc32\data\Z\resource\apps\musicplayer.r51"
+"\epoc32\data\Z\resource\apps\musicplayer.r54"
+"\epoc32\data\Z\resource\apps\musicplayer.r57"
+"\epoc32\data\Z\resource\apps\musicplayer.r59"
+"\epoc32\data\Z\resource\apps\musicplayer.r65"
+"\epoc32\data\Z\resource\apps\musicplayer.r67"
+"\epoc32\data\Z\resource\apps\musicplayer.r68"
+"\epoc32\data\Z\resource\apps\musicplayer.r70"
+"\epoc32\data\Z\resource\apps\musicplayer.r76"
+"\epoc32\data\Z\resource\apps\musicplayer.r78"
+"\epoc32\data\Z\resource\apps\musicplayer.r79"
+"\epoc32\data\Z\resource\apps\musicplayer.r83"
+"\epoc32\data\Z\resource\apps\musicplayer.r93"
+"\epoc32\data\Z\resource\apps\musicplayer.r94"
+"\epoc32\data\Z\resource\apps\musicplayer.r96"
+"\epoc32\data\Z\resource\apps\musicplayer.r102"
+"\epoc32\data\Z\resource\apps\musicplayer.r103"
+"\epoc32\data\Z\resource\apps\musicplayer.r129"
+"\epoc32\data\Z\resource\apps\musicplayer.r157"
+"\epoc32\data\Z\resource\apps\musicplayer.r158"
+"\epoc32\data\Z\resource\apps\musicplayer.r159"
+"\epoc32\data\Z\resource\apps\musicplayer.r160"
+"\epoc32\data\Z\resource\apps\musicplayer.r161"
+"\epoc32\data\Z\resource\apps\musicplayer.r326"
+"\epoc32\data\Z\resource\apps\musicplayer.r327"
+} - "!:\resource\apps\musicplayer.rsc"
+
+;If qm files needed add them here.
+;{} - "!:\resource\qt\translations\musicplayer.qm"
+
+; DLLs
+"\epoc32\release\armv5\udeb\mpnowplayingbanner.dll"   - "!:\sys\bin\mpnowplayingbanner.dll"
+"\epoc32\release\armv5\udeb\mpsettingsmanager.dll"    - "!:\sys\bin\mpsettingsmanager.dll"
+"\epoc32\release\armv5\udeb\mpdata.dll"               - "!:\sys\bin\mpdata.dll"
+"\epoc32\release\armv5\udeb\mpengine.dll"             - "!:\sys\bin\mpengine.dll"
+"\epoc32\release\armv5\udeb\musicservices.dll"        - "!:\sys\bin\musicservices.dll"
+
+; CenRep
+"\epoc32\data\Z\private\10202be9\10207C92.txt" - "!:\private\10202be9\10207C92.txt"
+
+; PLUGIN AND VIEW
+"\epoc32\release\armv5\udeb\mpcollectionviewplugin.dll"      - "!:\sys\bin\mpcollectionviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpcollectionviewplugin.rsc" - "!:\resource\plugins\mpcollectionviewplugin.rsc"
+
+"\epoc32\release\armv5\udeb\mpplaybackviewplugin.dll"      - "!:\sys\bin\mpplaybackviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpplaybackviewplugin.rsc" - "!:\resource\plugins\mpplaybackviewplugin.rsc"
+
+"\epoc32\release\armv5\udeb\mpsettingsviewplugin.dll"      - "!:\sys\bin\mpsettingsviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpsettingsviewplugin.rsc" - "!:\resource\plugins\mpsettingsviewplugin.rsc"
+
+"\epoc32\release\armv5\udeb\mpdetailsviewplugin.dll"      - "!:\sys\bin\mpdetailsviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpdetailsviewplugin.rsc" - "!:\resource\plugins\mpdetailsviewplugin.rsc"
+
+"\epoc32\release\armv5\udeb\mpmediawallviewplugin.dll"      - "!:\sys\bin\mpmediawallviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpmediawallviewplugin.rsc" - "!:\resource\plugins\mpmediawallviewplugin.rsc"
+
+; DATA
+"\epoc32\data\Z\system\data\nullsound.mp3" - "!:\system\data\nullsound.mp3"
+
+;MP SERVICE PLUGINGS
+"\epoc32\release\armv5\udeb\mpxaudioeffectengine.dll"        -"!:\sys\bin\mpxaudioeffectengine.dll"
+"\epoc32\release\armv5\udeb\mpxlocalaudioplayback.dll"       -"!:\sys\bin\mpxlocalaudioplayback.dll"
+"\epoc32\release\armv5\udeb\mpxm3uplaylistparsers.dll"       -"!:\sys\bin\mpxm3uplaylistparsers.dll"
+"\epoc32\release\armv5\udeb\mpxm3uplaylistplugin.dll"        -"!:\sys\bin\mpxm3uplaylistplugin.dll"
+"\epoc32\release\armv5\udeb\mpxinmemoryplugin.dll"           -"!:\sys\bin\mpxinmemoryplugin.dll"
+"\epoc32\release\armv5\udeb\mpxsqlitedbcommon.dll"           -"!:\sys\bin\mpxsqlitedbcommon.dll"
+"\epoc32\release\armv5\udeb\mpxsqlitedbhgplugin.dll"         -"!:\sys\bin\mpxsqlitedbhgplugin.dll"
+"\epoc32\release\armv5\udeb\mpxsqlitepodcastdbplugin.dll"    -"!:\sys\bin\mpxsqlitepodcastdbplugin.dll"
+
+"\epoc32\data\Z\resource\plugins\mpxlocalaudioplayback.rsc"       -"!:\resource\plugins\mpxlocalaudioplayback.rsc"
+"\epoc32\data\Z\resource\plugins\mpxm3uplaylistplugin.rsc"        -"!:\resource\plugins\mpxm3uplaylistplugin.rsc"
+"\epoc32\data\Z\resource\plugins\mpxinmemoryplugin.rsc"           -"!:\resource\plugins\mpxinmemoryplugin.rsc"
+"\epoc32\data\Z\resource\plugins\mpxsqlitedbhgplugin.rsc"         -"!:\resource\plugins\mpxsqlitedbhgplugin.rsc"
+"\epoc32\data\Z\resource\apps\mpxcollectiondbhgres.rsc"           -"!:\resource\apps\mpxcollectiondbhgres.rsc"
+"\epoc32\data\Z\resource\plugins\mpxsqlitepodcastdbplugin.rsc"    -"!:\resource\plugins\mpxsqlitepodcastdbplugin.rsc"
+"\epoc32\data\Z\resource\apps\pcres.rsc"                          -"!:\resource\apps\pcres.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sis/musicplayer_urel.pkg	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,244 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+; Language
+&EN, FR, GE, SP, IT, SW, DA, NO, FI, AM, PO, TU, IC, RU, HU, DU, CS, SK, PL, SL, TC, HK, ZH, JA, TH, AR, TL, BG, CA, 
+HR, ET, FA, CF, EL, HE, IN, KO, LV, LT, MS, BP, RO, SR, LS, UK, UR, VI, BA, GL, 129, 157, 158, 159, 160, 161, 326, 327
+
+; SIS header: name, uid, version
+#{"musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer", "musicplayer", "musicplayer", "musicplayer",
+  "musicplayer"
+  }, (0x10207C62), 1,0,0, TYPE=SA, RU
+
+; Localised Vendor name
+%{"Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", 
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software", "Nokia, Qt Software",
+  "Nokia, Qt Software"
+  }
+
+; Unique Vendor name
+:"Nokia, Qt Software"
+
+; Dependencies
+[0x101F7961],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+[0x102032BE],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+[0x102752AE],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+[0x1028315F],0,0,0,{
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID", "S60ProductID", "S60ProductID", "S60ProductID",
+  "S60ProductID"
+  }
+
+; Executable and default resource files
+"\epoc32\release\armv5\urel\musicplayer.exe"                       - "!:\sys\bin\musicplayer.exe"
+"\epoc32\data\z\private\10003a3f\import\apps\musicplayer_reg.rsc"  - "!:\private\10003a3f\import\apps\musicplayer_reg.rsc"
+"\epoc32\data\z\resource\apps\musicplayer.mif"                     - "!:\resource\apps\musicplayer.mif"
+
+; Localized files
+{
+"\epoc32\data\Z\resource\apps\musicplayer.r01"
+"\epoc32\data\Z\resource\apps\musicplayer.r02"
+"\epoc32\data\Z\resource\apps\musicplayer.r03"
+"\epoc32\data\Z\resource\apps\musicplayer.r04"
+"\epoc32\data\Z\resource\apps\musicplayer.r05"
+"\epoc32\data\Z\resource\apps\musicplayer.r06"
+"\epoc32\data\Z\resource\apps\musicplayer.r07"
+"\epoc32\data\Z\resource\apps\musicplayer.r08"
+"\epoc32\data\Z\resource\apps\musicplayer.r09"
+"\epoc32\data\Z\resource\apps\musicplayer.r10"
+"\epoc32\data\Z\resource\apps\musicplayer.r13"
+"\epoc32\data\Z\resource\apps\musicplayer.r14"
+"\epoc32\data\Z\resource\apps\musicplayer.r15"
+"\epoc32\data\Z\resource\apps\musicplayer.r16"
+"\epoc32\data\Z\resource\apps\musicplayer.r17"
+"\epoc32\data\Z\resource\apps\musicplayer.r18"
+"\epoc32\data\Z\resource\apps\musicplayer.r25"
+"\epoc32\data\Z\resource\apps\musicplayer.r26"
+"\epoc32\data\Z\resource\apps\musicplayer.r27"
+"\epoc32\data\Z\resource\apps\musicplayer.r28"
+"\epoc32\data\Z\resource\apps\musicplayer.r29"
+"\epoc32\data\Z\resource\apps\musicplayer.r30"
+"\epoc32\data\Z\resource\apps\musicplayer.r31"
+"\epoc32\data\Z\resource\apps\musicplayer.r32"
+"\epoc32\data\Z\resource\apps\musicplayer.r33"
+"\epoc32\data\Z\resource\apps\musicplayer.r37"
+"\epoc32\data\Z\resource\apps\musicplayer.r39"
+"\epoc32\data\Z\resource\apps\musicplayer.r42"
+"\epoc32\data\Z\resource\apps\musicplayer.r44"
+"\epoc32\data\Z\resource\apps\musicplayer.r45"
+"\epoc32\data\Z\resource\apps\musicplayer.r49"
+"\epoc32\data\Z\resource\apps\musicplayer.r50"
+"\epoc32\data\Z\resource\apps\musicplayer.r51"
+"\epoc32\data\Z\resource\apps\musicplayer.r54"
+"\epoc32\data\Z\resource\apps\musicplayer.r57"
+"\epoc32\data\Z\resource\apps\musicplayer.r59"
+"\epoc32\data\Z\resource\apps\musicplayer.r65"
+"\epoc32\data\Z\resource\apps\musicplayer.r67"
+"\epoc32\data\Z\resource\apps\musicplayer.r68"
+"\epoc32\data\Z\resource\apps\musicplayer.r70"
+"\epoc32\data\Z\resource\apps\musicplayer.r76"
+"\epoc32\data\Z\resource\apps\musicplayer.r78"
+"\epoc32\data\Z\resource\apps\musicplayer.r79"
+"\epoc32\data\Z\resource\apps\musicplayer.r83"
+"\epoc32\data\Z\resource\apps\musicplayer.r93"
+"\epoc32\data\Z\resource\apps\musicplayer.r94"
+"\epoc32\data\Z\resource\apps\musicplayer.r96"
+"\epoc32\data\Z\resource\apps\musicplayer.r102"
+"\epoc32\data\Z\resource\apps\musicplayer.r103"
+"\epoc32\data\Z\resource\apps\musicplayer.r129"
+"\epoc32\data\Z\resource\apps\musicplayer.r157"
+"\epoc32\data\Z\resource\apps\musicplayer.r158"
+"\epoc32\data\Z\resource\apps\musicplayer.r159"
+"\epoc32\data\Z\resource\apps\musicplayer.r160"
+"\epoc32\data\Z\resource\apps\musicplayer.r161"
+"\epoc32\data\Z\resource\apps\musicplayer.r326"
+"\epoc32\data\Z\resource\apps\musicplayer.r327"
+} - "!:\resource\apps\musicplayer.rsc"
+
+;If qm files needed add them here.
+;{} - "!:\resource\qt\translations\musicplayer.qm"
+
+; DLLs
+"\epoc32\release\armv5\urel\mpnowplayingbanner.dll"   - "!:\sys\bin\mpnowplayingbanner.dll"
+"\epoc32\release\armv5\urel\mpsettingsmanager.dll"    - "!:\sys\bin\mpsettingsmanager.dll"
+"\epoc32\release\armv5\urel\mpdata.dll"               - "!:\sys\bin\mpdata.dll"
+"\epoc32\release\armv5\urel\mpengine.dll"             - "!:\sys\bin\mpengine.dll"
+"\epoc32\release\armv5\urel\musicservices.dll"        - "!:\sys\bin\musicservices.dll"
+
+; CenRep
+"\epoc32\data\Z\private\10202be9\10207C92.txt" - "!:\private\10202be9\10207C92.txt"
+
+; PLUGIN AND VIEW
+"\epoc32\release\armv5\urel\mpcollectionviewplugin.dll"      - "!:\sys\bin\mpcollectionviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpcollectionviewplugin.rsc" - "!:\resource\plugins\mpcollectionviewplugin.rsc"
+
+"\epoc32\release\armv5\urel\mpplaybackviewplugin.dll"      - "!:\sys\bin\mpplaybackviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpplaybackviewplugin.rsc" - "!:\resource\plugins\mpplaybackviewplugin.rsc"
+
+"\epoc32\release\armv5\urel\mpsettingsviewplugin.dll"      - "!:\sys\bin\mpsettingsviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpsettingsviewplugin.rsc" - "!:\resource\plugins\mpsettingsviewplugin.rsc"
+
+"\epoc32\release\armv5\urel\mpdetailsviewplugin.dll"      - "!:\sys\bin\mpdetailsviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpdetailsviewplugin.rsc" - "!:\resource\plugins\mpdetailsviewplugin.rsc"
+
+"\epoc32\release\armv5\urel\mpmediawallviewplugin.dll"      - "!:\sys\bin\mpmediawallviewplugin.dll"
+"\epoc32\data\Z\resource\plugins\mpmediawallviewplugin.rsc" - "!:\resource\plugins\mpmediawallviewplugin.rsc"
+
+; DATA
+"\epoc32\data\Z\system\data\nullsound.mp3" - "!:\system\data\nullsound.mp3"
+
+;MP SERVICE PLUGINGS
+"\epoc32\release\armv5\urel\mpxaudioeffectengine.dll"        -"!:\sys\bin\mpxaudioeffectengine.dll"
+"\epoc32\release\armv5\urel\mpxlocalaudioplayback.dll"       -"!:\sys\bin\mpxlocalaudioplayback.dll"
+"\epoc32\release\armv5\urel\mpxm3uplaylistparsers.dll"       -"!:\sys\bin\mpxm3uplaylistparsers.dll"
+"\epoc32\release\armv5\urel\mpxm3uplaylistplugin.dll"        -"!:\sys\bin\mpxm3uplaylistplugin.dll"
+"\epoc32\release\armv5\urel\mpxinmemoryplugin.dll"           -"!:\sys\bin\mpxinmemoryplugin.dll"
+"\epoc32\release\armv5\urel\mpxsqlitedbcommon.dll"           -"!:\sys\bin\mpxsqlitedbcommon.dll"
+"\epoc32\release\armv5\urel\mpxsqlitedbhgplugin.dll"         -"!:\sys\bin\mpxsqlitedbhgplugin.dll"
+"\epoc32\release\armv5\urel\mpxsqlitepodcastdbplugin.dll"    -"!:\sys\bin\mpxsqlitepodcastdbplugin.dll"
+
+"\epoc32\data\Z\resource\plugins\mpxlocalaudioplayback.rsc"       -"!:\resource\plugins\mpxlocalaudioplayback.rsc"
+"\epoc32\data\Z\resource\plugins\mpxm3uplaylistplugin.rsc"        -"!:\resource\plugins\mpxm3uplaylistplugin.rsc"
+"\epoc32\data\Z\resource\plugins\mpxinmemoryplugin.rsc"           -"!:\resource\plugins\mpxinmemoryplugin.rsc"
+"\epoc32\data\Z\resource\plugins\mpxsqlitedbhgplugin.rsc"         -"!:\resource\plugins\mpxsqlitedbhgplugin.rsc"
+"\epoc32\data\Z\resource\apps\mpxcollectiondbhgres.rsc"           -"!:\resource\apps\mpxcollectiondbhgres.rsc"
+"\epoc32\data\Z\resource\plugins\mpxsqlitepodcastdbplugin.rsc"    -"!:\resource\plugins\mpxsqlitepodcastdbplugin.rsc"
+"\epoc32\data\Z\resource\apps\pcres.rsc"                          -"!:\resource\apps\pcres.rsc"
+
--- a/tsrc/mpfetchertestapp/inc/mpfetchertestappview.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/tsrc/mpfetchertestapp/inc/mpfetchertestappview.h	Thu Jul 22 16:32:33 2010 +0100
@@ -40,6 +40,13 @@
     void playSong();
     void viewSong();
     void viewSongCaged();
+    void launchHomeScreen();
+    void launchHomeScreenNowPlaying();
+    void launchHomeScreenNPShuffle();
+    void playNPVSong();
+    void endMP();
+    void killMP();
+    
     
     
 private:
--- a/tsrc/mpfetchertestapp/mpfetchertestapp.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/tsrc/mpfetchertestapp/mpfetchertestapp.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -26,7 +26,7 @@
 
 
 symbian {
-#    include(rom/rom.pri) # to include in image
+#   include(rom/rom.pri) # to include in image
     TARGET.UID2 = 0x100039CE 
     TARGET.UID3 = 0x10207C6A
     TARGET.EPOCSTACKSIZE = 0x14000
--- a/tsrc/mpfetchertestapp/src/mpfetchertestappview.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/tsrc/mpfetchertestapp/src/mpfetchertestappview.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -21,9 +21,14 @@
 #include <hbpushbutton.h>
 #include <hblineedit.h>
 #include <hblabel.h>
-#include <qdebug>
+#include <QDebug>
 #include "mpfetchertestappview.h"
 
+#include <apgcli.h>
+#include <apacmdln.h>
+#include <apgtask.h>
+#include <eikenv.h>
+
 
 MpFetcherTestAppView::MpFetcherTestAppView(QGraphicsItem *parent) :
     HbView(parent),
@@ -120,18 +125,68 @@
                 connect(button, SIGNAL(clicked()), SLOT(fetchSong()));
                 bottomLayout->addItem(button);
             }
+            
+            QGraphicsLinearLayout *playLayout = new QGraphicsLinearLayout(Qt::Horizontal);
             HbPushButton* playButton = new HbPushButton("Play song");
             if (playButton)
             {
                 connect(playButton, SIGNAL(clicked()), SLOT(viewSong()));
-                bottomLayout->addItem(playButton);
+                playLayout->addItem(playButton);
             }
             HbPushButton* viewButton = new HbPushButton("Play song caged");
             if (viewButton)
             {
                 connect(viewButton, SIGNAL(clicked()), SLOT(viewSongCaged()));
-                bottomLayout->addItem(viewButton);
+                playLayout->addItem(viewButton);
+            }
+            bottomLayout->addItem(playLayout);
+            
+            QGraphicsLinearLayout *hsLayout = new QGraphicsLinearLayout(Qt::Horizontal);
+            HbPushButton* homeScreenButton = new HbPushButton("HS Widget MainView");
+            if (homeScreenButton)
+            {
+                connect(homeScreenButton, SIGNAL(clicked()), SLOT(launchHomeScreen()));
+                hsLayout->addItem(homeScreenButton);
+            }
+                     
+            HbPushButton* homeScreenButtonNPV = new HbPushButton("HS Widget NowPlayingView");
+            if (homeScreenButtonNPV)
+            {
+                connect(homeScreenButtonNPV, SIGNAL(clicked()), SLOT(launchHomeScreenNowPlaying()));
+                hsLayout->addItem(homeScreenButtonNPV);
+            }
+            
+            HbPushButton* homeScreenButtonNPVS = new HbPushButton("HS Widget NPV Shuffle");
+            if (homeScreenButtonNPVS)
+            {
+                connect(homeScreenButtonNPVS, SIGNAL(clicked()), SLOT(launchHomeScreenNPShuffle()));
+                hsLayout->addItem(homeScreenButtonNPVS);
             }
+            bottomLayout->addItem(hsLayout);
+            
+            HbPushButton* NowPlayingButton = new HbPushButton("NPV File Activity");
+            if (NowPlayingButton)
+            {
+                connect(NowPlayingButton, SIGNAL(clicked()), SLOT(playNPVSong()));
+                bottomLayout->addItem(NowPlayingButton);
+            }
+            QGraphicsLinearLayout *goomLayout = new QGraphicsLinearLayout(Qt::Horizontal);
+            HbPushButton* endButton = new HbPushButton("End MP");
+            if (endButton)
+            {
+                connect(endButton, SIGNAL(clicked()), SLOT(endMP()));
+                goomLayout->addItem(endButton);
+            }
+                     
+            HbPushButton* killButton = new HbPushButton("Kill MP");
+            if (killButton)
+            {
+                connect(killButton, SIGNAL(clicked()), SLOT(killMP()));
+                goomLayout->addItem(killButton);
+            }
+            
+            bottomLayout->addItem(goomLayout);
+            
             layout->addItem(bottomLayout);
         }
 
@@ -326,3 +381,145 @@
 
 
 }
+
+void MpFetcherTestAppView::launchHomeScreen()
+{
+    QUrl url;
+    
+    url.setUrl("appto://10207C62?activityname=MusicMainView&launchtype=standalone");
+    if(mReq){
+        delete mReq;
+        mReq = 0;
+    }
+    mReq = mAppMgr.create(url);    
+    if (mReq == NULL)
+    {
+        // No handlers for the URI
+        return;
+    }
+    
+    mReq->setBackground(false);
+
+    // Send the request
+   bool res = mReq->send();
+   if  (!res) 
+   {
+       // Request failed. 
+      int error = mReq->lastError();
+
+      // Handle error
+   }
+ 
+}
+
+void MpFetcherTestAppView::launchHomeScreenNowPlaying()
+{
+    QUrl url;
+    
+    url.setUrl("appto://10207C62?activityname=MusicNowPlayingView&launchtype=standalone");
+    if(mReq){
+        delete mReq;
+        mReq = 0;
+    }
+    mReq = mAppMgr.create(url);    
+    if (mReq == NULL)
+    {
+        // No handlers for the URI
+        return;
+    }
+    
+    mReq->setBackground(false);
+
+    // Send the request
+   bool res = mReq->send();
+   if  (!res) 
+   {
+       // Request failed. 
+      int error = mReq->lastError();
+
+      // Handle error
+   }
+ 
+}
+
+void MpFetcherTestAppView::launchHomeScreenNPShuffle()
+{
+    QUrl url;
+
+    url.setUrl("appto://10207C62?activityname=MusicNowPlayingView&launchtype=standalone&shuffle=yes");
+    if(mReq){
+        delete mReq;
+        mReq = 0;
+    }
+    mReq = mAppMgr.create(url);    
+    if (mReq == NULL)
+    {
+        // No handlers for the URI
+        return;
+    }
+    
+    mReq->setBackground(false);
+
+    // Send the request
+   bool res = mReq->send();
+   if  (!res) 
+   {
+       // Request failed. 
+      int error = mReq->lastError();
+
+      // Handle error
+   }
+ 
+}
+
+void MpFetcherTestAppView::playNPVSong()
+{
+    QUrl url;
+
+    url.setUrl("appto://10207C62?activityname=MusicNowPlayingView&launchtype=standalone&uri=" + mResultEdit->text() );
+    if(mReq){
+        delete mReq;
+        mReq = 0;
+    }
+    mReq = mAppMgr.create(url);    
+    if (mReq == NULL)
+    {
+        // No handlers for the URI
+        return;
+    }
+    
+    mReq->setBackground(false);
+
+    // Send the request
+   bool res = mReq->send();
+   if  (!res) 
+   {
+       // Request failed. 
+      int error = mReq->lastError();
+
+      // Handle error
+   }
+ 
+}
+
+void MpFetcherTestAppView::endMP()
+{
+    TApaTaskList taskList(CEikonEnv::Static()->WsSession());
+    TApaTask task = taskList.FindApp(TUid::Uid(270564450));
+    if (task.Exists()) {
+        task.EndTask();
+    } else {
+        qCritical("Cannot bring to forward task %08x", 270564450);
+    }
+
+}
+void MpFetcherTestAppView::killMP()
+{
+    TApaTaskList taskList(CEikonEnv::Static()->WsSession());
+    TApaTask task = taskList.FindApp(TUid::Uid(270564450));
+    if (task.Exists()) {
+        task.KillTask();
+    } else {
+        qCritical("Cannot bring to forward task %08x", 270564450);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,28 @@
+#
+# 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 = subdirs
+
+SUBDIRS += ..\mpdata\tsrc
+SUBDIRS += ..\mpengine\tsrc
+SUBDIRS += ..\app\tsrc
+SUBDIRS += ..\mpviewplugins\mpcollectionviewplugin\tsrc
+SUBDIRS += ..\mpviewplugins\mpmediawallviewplugin\tsrc
+SUBDIRS += ..\mpviewplugins\mpplaybackviewplugin\tsrc
+SUBDIRS += ..\mpviewplugins\mpsettingsviewplugin\tsrc
+SUBDIRS += ..\utilities\mpnowplayingbanner\tsrc
+SUBDIRS += ..\utilities\mpsettingsmanager\tsrc
+
--- a/utilities/mpnowplayingbanner/bwins/mpnowplayingbanneru.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/bwins/mpnowplayingbanneru.def	Thu Jul 22 16:32:33 2010 +0100
@@ -1,21 +1,22 @@
 EXPORTS
 	?qt_metacall@MpNowPlayingWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1 NONAME ; int MpNowPlayingWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?trUtf8@MpNowPlayingWidget@@SA?AVQString@@PBD0H@Z @ 2 NONAME ; class QString MpNowPlayingWidget::trUtf8(char const *, char const *, int)
-	??0MpNowPlayingWidget@@QAE@JPAVQGraphicsItem@@@Z @ 3 NONAME ; MpNowPlayingWidget::MpNowPlayingWidget(long, class QGraphicsItem *)
-	?qt_metacast@MpNowPlayingWidget@@UAEPAXPBD@Z @ 4 NONAME ; void * MpNowPlayingWidget::qt_metacast(char const *)
-	?clicked@MpNowPlayingWidget@@IAEXXZ @ 5 NONAME ; void MpNowPlayingWidget::clicked(void)
-	?mousePressEvent@MpNowPlayingWidget@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 6 NONAME ; void MpNowPlayingWidget::mousePressEvent(class QGraphicsSceneMouseEvent *)
-	?metaObject@MpNowPlayingWidget@@UBEPBUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const * MpNowPlayingWidget::metaObject(void) const
-	?getStaticMetaObject@MpNowPlayingWidget@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & MpNowPlayingWidget::getStaticMetaObject(void)
-	?tr@MpNowPlayingWidget@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString MpNowPlayingWidget::tr(char const *, char const *)
+	??0MpNowPlayingWidget@@QAE@PAVQGraphicsItem@@@Z @ 3 NONAME ; MpNowPlayingWidget::MpNowPlayingWidget(class QGraphicsItem *)
+	?resizeEvent@MpNowPlayingWidget@@UAEXPAVQGraphicsSceneResizeEvent@@@Z @ 4 NONAME ; void MpNowPlayingWidget::resizeEvent(class QGraphicsSceneResizeEvent *)
+	?qt_metacast@MpNowPlayingWidget@@UAEPAXPBD@Z @ 5 NONAME ; void * MpNowPlayingWidget::qt_metacast(char const *)
+	?clicked@MpNowPlayingWidget@@IAEXXZ @ 6 NONAME ; void MpNowPlayingWidget::clicked(void)
+	?setEnabled@MpNowPlayingWidget@@QAEX_N@Z @ 7 NONAME ; void MpNowPlayingWidget::setEnabled(bool)
+	?mousePressEvent@MpNowPlayingWidget@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 8 NONAME ; void MpNowPlayingWidget::mousePressEvent(class QGraphicsSceneMouseEvent *)
+	?metaObject@MpNowPlayingWidget@@UBEPBUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const * MpNowPlayingWidget::metaObject(void) const
 	?tr@MpNowPlayingWidget@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString MpNowPlayingWidget::tr(char const *, char const *, int)
-	??1MpNowPlayingWidget@@UAE@XZ @ 11 NONAME ; MpNowPlayingWidget::~MpNowPlayingWidget(void)
-	?mouseReleaseEvent@MpNowPlayingWidget@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 12 NONAME ; void MpNowPlayingWidget::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
+	?tr@MpNowPlayingWidget@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString MpNowPlayingWidget::tr(char const *, char const *)
+	?getStaticMetaObject@MpNowPlayingWidget@@SAABUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const & MpNowPlayingWidget::getStaticMetaObject(void)
 	?trUtf8@MpNowPlayingWidget@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString MpNowPlayingWidget::trUtf8(char const *, char const *)
-	?playbackAttachmentChanged@MpNowPlayingWidget@@IAEX_N@Z @ 14 NONAME ; void MpNowPlayingWidget::playbackAttachmentChanged(bool)
-	??_EMpNowPlayingWidget@@UAE@I@Z @ 15 NONAME ; MpNowPlayingWidget::~MpNowPlayingWidget(unsigned int)
-	?staticMetaObject@MpNowPlayingWidget@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const MpNowPlayingWidget::staticMetaObject
-	?paint@MpNowPlayingWidget@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 17 NONAME ; void MpNowPlayingWidget::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
-	?setEnabled@MpNowPlayingWidget@@QAEX_N@Z @ 18 NONAME ; void MpNowPlayingWidget::setEnabled(bool)
-	?changeEvent@MpNowPlayingWidget@@EAEXPAVQEvent@@@Z @ 19 NONAME ; void MpNowPlayingWidget::changeEvent(class QEvent *)
+	??1MpNowPlayingWidget@@UAE@XZ @ 14 NONAME ; MpNowPlayingWidget::~MpNowPlayingWidget(void)
+	?mouseReleaseEvent@MpNowPlayingWidget@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 15 NONAME ; void MpNowPlayingWidget::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
+	?isBannerAttached@MpNowPlayingWidget@@QAE_NXZ @ 16 NONAME ; bool MpNowPlayingWidget::isBannerAttached(void)
+	?playbackAttachmentChanged@MpNowPlayingWidget@@IAEX_N@Z @ 17 NONAME ; void MpNowPlayingWidget::playbackAttachmentChanged(bool)
+	?staticMetaObject@MpNowPlayingWidget@@2UQMetaObject@@B @ 18 NONAME ; struct QMetaObject const MpNowPlayingWidget::staticMetaObject
+	??_EMpNowPlayingWidget@@UAE@I@Z @ 19 NONAME ; MpNowPlayingWidget::~MpNowPlayingWidget(unsigned int)
+	?mouseMoveEvent@MpNowPlayingWidget@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 20 NONAME ; void MpNowPlayingWidget::mouseMoveEvent(class QGraphicsSceneMouseEvent *)
 
--- a/utilities/mpnowplayingbanner/eabi/mpnowplayingbanneru.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/eabi/mpnowplayingbanneru.def	Thu Jul 22 16:32:33 2010 +0100
@@ -1,28 +1,29 @@
 EXPORTS
-	_ZN18MpNowPlayingWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
-	_ZN18MpNowPlayingWidget11qt_metacastEPKc @ 2 NONAME
-	_ZN18MpNowPlayingWidget15mousePressEventEP24QGraphicsSceneMouseEvent @ 3 NONAME
-	_ZN18MpNowPlayingWidget16staticMetaObjectE @ 4 NONAME DATA 16
-	_ZN18MpNowPlayingWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 5 NONAME
-	_ZN18MpNowPlayingWidget19getStaticMetaObjectEv @ 6 NONAME
-	_ZN18MpNowPlayingWidget25playbackAttachmentChangedEb @ 7 NONAME
-	_ZN18MpNowPlayingWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 8 NONAME
-	_ZN18MpNowPlayingWidget7clickedEv @ 9 NONAME
-	_ZN18MpNowPlayingWidgetC1ElP13QGraphicsItem @ 10 NONAME
-	_ZN18MpNowPlayingWidgetC2ElP13QGraphicsItem @ 11 NONAME
-	_ZN18MpNowPlayingWidgetD0Ev @ 12 NONAME
-	_ZN18MpNowPlayingWidgetD1Ev @ 13 NONAME
-	_ZN18MpNowPlayingWidgetD2Ev @ 14 NONAME
-	_ZNK18MpNowPlayingWidget10metaObjectEv @ 15 NONAME
-	_ZTI18MpNowPlayingWidget @ 16 NONAME
-	_ZTV18MpNowPlayingWidget @ 17 NONAME
-	_ZThn16_N18MpNowPlayingWidgetD0Ev @ 18 NONAME
-	_ZThn16_N18MpNowPlayingWidgetD1Ev @ 19 NONAME
-	_ZThn8_N18MpNowPlayingWidget15mousePressEventEP24QGraphicsSceneMouseEvent @ 20 NONAME
-	_ZThn8_N18MpNowPlayingWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 21 NONAME
-	_ZThn8_N18MpNowPlayingWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 22 NONAME
-	_ZThn8_N18MpNowPlayingWidgetD0Ev @ 23 NONAME
-	_ZThn8_N18MpNowPlayingWidgetD1Ev @ 24 NONAME
-	_ZN18MpNowPlayingWidget10setEnabledEb @ 25 NONAME
-	_ZN18MpNowPlayingWidget11changeEventEP6QEvent @ 26 NONAME
+	_ZN18MpNowPlayingWidget10setEnabledEb @ 1 NONAME
+	_ZN18MpNowPlayingWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
+	_ZN18MpNowPlayingWidget11qt_metacastEPKc @ 3 NONAME
+	_ZN18MpNowPlayingWidget11resizeEventEP25QGraphicsSceneResizeEvent @ 4 NONAME
+	_ZN18MpNowPlayingWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 5 NONAME
+	_ZN18MpNowPlayingWidget15mousePressEventEP24QGraphicsSceneMouseEvent @ 6 NONAME
+	_ZN18MpNowPlayingWidget16isBannerAttachedEv @ 7 NONAME
+	_ZN18MpNowPlayingWidget16staticMetaObjectE @ 8 NONAME DATA 16
+	_ZN18MpNowPlayingWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 9 NONAME
+	_ZN18MpNowPlayingWidget19getStaticMetaObjectEv @ 10 NONAME
+	_ZN18MpNowPlayingWidget25playbackAttachmentChangedEb @ 11 NONAME
+	_ZN18MpNowPlayingWidget7clickedEv @ 12 NONAME
+	_ZN18MpNowPlayingWidgetC1EP13QGraphicsItem @ 13 NONAME
+	_ZN18MpNowPlayingWidgetC2EP13QGraphicsItem @ 14 NONAME
+	_ZN18MpNowPlayingWidgetD0Ev @ 15 NONAME
+	_ZN18MpNowPlayingWidgetD1Ev @ 16 NONAME
+	_ZN18MpNowPlayingWidgetD2Ev @ 17 NONAME
+	_ZNK18MpNowPlayingWidget10metaObjectEv @ 18 NONAME
+	_ZTI18MpNowPlayingWidget @ 19 NONAME
+	_ZTV18MpNowPlayingWidget @ 20 NONAME
+	_ZThn16_N18MpNowPlayingWidgetD0Ev @ 21 NONAME
+	_ZThn16_N18MpNowPlayingWidgetD1Ev @ 22 NONAME
+	_ZThn8_N18MpNowPlayingWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 23 NONAME
+	_ZThn8_N18MpNowPlayingWidget15mousePressEventEP24QGraphicsSceneMouseEvent @ 24 NONAME
+	_ZThn8_N18MpNowPlayingWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 25 NONAME
+	_ZThn8_N18MpNowPlayingWidgetD0Ev @ 26 NONAME
+	_ZThn8_N18MpNowPlayingWidgetD1Ev @ 27 NONAME
 
--- a/utilities/mpnowplayingbanner/inc/mpnowplayingbackend.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +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: Music Player now playing widget backend.
-*
-*/
-
-#ifndef MPNOWPLAYINGBACKEND_H
-#define MPNOWPLAYINGBACKEND_H
-
-//includes
-#include <QObject>
-#include <QMetaType>
-
-//forward declartions
-class MpNowPlayingBackEndPrivate;
-
-enum SimplifiedPlayerState {
-    NotPlaying, //When there is no source
-    Playing,    //When it is playing
-    Paused      //When is not in Playing State
-};
-// Register so type can be used in signal and slot connection
-Q_DECLARE_METATYPE(SimplifiedPlayerState)
-
-//class declaration
-class MpNowPlayingBackEnd : public QObject
-{
-    Q_OBJECT
-    friend class MpNowPlayingBackEndPrivate;
-
-public:
-    explicit MpNowPlayingBackEnd( long int playerId = 0 );
-    virtual ~MpNowPlayingBackEnd();
-
-signals:
-    void stateUpdate( SimplifiedPlayerState state );
-    void titleChanged( const QString &text );
-    void artistChanged( const QString &text );
-
-public slots:
-    void update();
-    void playPause();
-
-private:
-    Q_DISABLE_COPY(MpNowPlayingBackEnd)
-    MpNowPlayingBackEndPrivate * const d_ptr;
-
-};
-
-#endif  // MPNOWPLAYINGBACKEND_H
--- a/utilities/mpnowplayingbanner/inc/mpnowplayingbackend_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Music Player now playing widget backend - Private.
-*
-*/
-
-#ifndef MPNOWPLAYINGBACKEND_P_H
-#define MPNOWPLAYINGBACKEND_P_H
-
-#include <mpxplaybackobserver.h>
-#include "mpnowplayingbackend.h"
-
-
-//forward declartions
-class MMPXPlaybackUtility;
-
-//class declaration
-class MpNowPlayingBackEndPrivate : public MMPXPlaybackObserver,
-                                   public MMPXPlaybackCallback
-{
-
-public:
-    explicit MpNowPlayingBackEndPrivate(long int playerId,
-        MpNowPlayingBackEnd *qq);
-    virtual ~MpNowPlayingBackEndPrivate();
-
-    void update();
-    void playPause();
-
-public: //from MMPXPlaybackObserver
-    void HandlePlaybackMessage( CMPXMessage* aMessage, TInt aError );
-
-public: //from MMPXPlaybackCallback
-    void HandlePropertyL( TMPXPlaybackProperty aProperty,
-                          TInt aValue,
-                          TInt aError);
-    void HandleSubPlayerNamesL( TUid aPlayer,
-                                const MDesCArray* aSubPlayers,
-                                TBool aComplete,
-                                TInt aError );
-    void HandleMediaL( const CMPXMedia& aProperties, TInt aError );
-
-private:
-    void RequestMediaL();
-    void UpdateStateL();
-    void DoPlayPauseL();
-    void DoHandlePlaybackMessageL( const CMPXMessage& message );
-
-private:
-    MpNowPlayingBackEnd     *q_ptr;             // not owned
-    SimplifiedPlayerState   mPreviousState;
-    MMPXPlaybackUtility     *mPlaybackUtility;  // owned
-};
-
-#endif  // MPNOWPLAYINGBACKEND_P_H
--- a/utilities/mpnowplayingbanner/inc/mpnowplayingwidget_p.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/inc/mpnowplayingwidget_p.h	Thu Jul 22 16:32:33 2010 +0100
@@ -23,12 +23,12 @@
 #include <hbwidget.h>
 
 #include "mpnowplayingwidget.h"
-#include "mpnowplayingbackend.h"
+#include "mpplaybackdata.h"
 
 //forward declartions
 class HbIconItem;
 class HbLabel;
-class MpNowPlayingBackEnd;
+class MpEngine;
 class QGraphicsSceneMouseEvent;
 class HbIcon;
 class HbDocumentLoader;
@@ -38,35 +38,44 @@
 {
     Q_OBJECT
 
+private: 
+    enum BannerPressedState {
+        BannerNone,                // No button initially pressed
+        BannerIcon,                // Icon pressed first
+        BannerLabels               // Labels pressed first
+    };
+    
 public:
-    explicit MpNowPlayingWidgetPrivate( long int playerId,
-                                        MpNowPlayingWidget *qq );
+    explicit MpNowPlayingWidgetPrivate( MpNowPlayingWidget *qq );
     virtual ~MpNowPlayingWidgetPrivate();
 
-    void setEnabled(bool enabled );
+    void setEnabled( bool enabled );
+    bool isBannerAttached();
     bool handleClickEvent( QGraphicsSceneMouseEvent *event );
-    void handleMousePressEvent(QGraphicsSceneMouseEvent *event, bool pressed);
-    void handleThemeChange();
+    void handleMousePressEvent( QGraphicsSceneMouseEvent *event, bool pressed );
+    void handleMouseMoveEvent( QGraphicsSceneMouseEvent *event );
 
 public slots:
 
-    void setState(SimplifiedPlayerState state);
-
+    void setState();
+    void updateBannerInfo();
+    
 private:
 
-    MpNowPlayingWidget      *q_ptr;
-    HbLabel                 *mPrimaryText;
-    HbLabel                 *mSecondaryText;
-    SimplifiedPlayerState   mState;
-    MpNowPlayingBackEnd     *mBackEnd;
+    MpNowPlayingWidget                      *q_ptr;
+    HbLabel                                 *mPrimaryText;
+    HbLabel                                 *mSecondaryText;
+    MpPlaybackData::SimplifiedState         mState;
+    MpPlaybackData                          *mPlaybackData;
+    MpEngine                                *mMpEngine;
 
-	HbIcon                  *mPlayIconNormal;
-    HbIcon                  *mPauseIconNormal;
-    HbIcon                  *mPlayIconPressed;
-    HbIcon                  *mPauseIconPressed;
-    HbLabel                 *mIcon;
+    HbIcon                                  *mPlayIcon;
+    HbIcon                                  *mPauseIcon;
+    HbLabel                                 *mIcon;
 
-    HbDocumentLoader        *mDocumentLoader;
+    HbDocumentLoader                        *mDocumentLoader;
+
+    BannerPressedState                      mCurrentPressedState;
 
 };
 
--- a/utilities/mpnowplayingbanner/mpnowplayingbanner.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/mpnowplayingbanner.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -14,42 +14,34 @@
 # Description: 
 #
 
-symbian:TARGET.UID3 = 0x10207C67
-    
 TEMPLATE = lib
 CONFIG += hb qt
+HB += hbfeedback
 TARGET = mpnowplayingbanner
-
-TARGET.CAPABILITY = All -TCB
+symbian: { 
+    TARGET.UID3 = 0x10207C67
+    MMP_RULES += "DEFFILE mpnowplayingbanner.def"
+    defFilePath = .
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.EPOCALLOWDLLDATA = 1
+}
+DEFINES += BUILD_MPNOWPLAYINGBANNER
 
 INCLUDEPATH += . \
 	 inc \
 	 ../../inc
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
      
-LIBS += -lmpxplaybackutility.dll \
-        -lmpxcommon.dll
+LIBS += -lmpengine \
+        -lmpdata \
+        -lmpxcommon
         
-symbian:TARGET.EPOCALLOWDLLDATA	= 1
-
-HEADERS = ../../inc/mpnowplayingwidget.h \
-    inc/mpnowplayingbackend.h \
-    inc/mpnowplayingwidget_p.h \
-    inc/mpnowplayingbackend_p.h
+# Input
+HEADERS += ../../inc/mpnowplayingwidget.h \
+           inc/mpnowplayingwidget_p.h 
 
 SOURCES += src/mpnowplayingwidget.cpp \
-    src/mpnowplayingwidget_p.cpp \
-    src/mpnowplayingbackend.cpp \
-    src/mpnowplayingbackend_p.cpp
-                
+           src/mpnowplayingwidget_p.cpp
+     
 RESOURCES += resources/mpnowplayingbanner.qrc
 
-DEFINES += BUILD_MPNOWPLAYINGBANNER
-
-myDefInclude = "NOSTRICTDEF" \
-"$${LITERAL_HASH}if defined(WINS)"\
-"DEFFILE  bwins/mpnowplayingbanneru.def "\
-"$${LITERAL_HASH}else "\
-"DEFFILE  eabi/mpnowplayingbanneru.def "\
-"$${LITERAL_HASH}endif"
-MMP_RULES += myDefInclude
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpnowplayingbanner/resources/banner_color.css	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,24 @@
+/* Colors for different now playing bannner label states for text */
+
+HbLabel#bannerLabel[state = "normal"]::text
+{
+    color:var(qtc_multimedia_trans);
+}
+
+HbLabel#bannerLabel[state = "pressed"]::text
+{
+    color:var(qtc_multimedia_trans_pressed);
+}
+
+
+/* Colors for different now playing bannner label states for mono icon */
+
+HbLabel#bannerLabel[state = "normal"]::icon
+{
+    color:var(qtc_multimedia_trans);
+}
+
+HbLabel#bannerLabel[state = "pressed"]::icon
+{
+    color:var(qtc_multimedia_trans_pressed);
+}
\ No newline at end of file
--- a/utilities/mpnowplayingbanner/resources/mpnowplayingbanner.qrc	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/resources/mpnowplayingbanner.qrc	Thu Jul 22 16:32:33 2010 +0100
@@ -1,5 +1,8 @@
 <RCC>
-    <qresource prefix="/xml" >   
-        <file alias="nowplaying.docml">nowplaying.docml</file>
+    <qresource prefix="/xml" >
+        <file alias="nowplaying.docml" >nowplaying.docml</file>
+    </qresource>
+    <qresource prefix="/css" >
+        <file alias="banner_color.css" >banner_color.css</file>
     </qresource>
 </RCC>
--- a/utilities/mpnowplayingbanner/src/mpnowplayingbackend.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +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: Music Player now playing widget backend.
-*
-*/
-
-#include "mpnowplayingbackend.h"
-#include "mpnowplayingbackend_p.h"
-#include "mptrace.h"
-
-/*!
-    \internal
-    \class MpNowPlayingBackEnd
-    \brief Wraps the playback utility and provides separation for QT and Symbian code.
-
-    This class wraps the playback utility on the MPX Framework to provide a simple 
-    interface and separation of QT and Symbian code.
-*/
-
-/*!
-    \internal
-    \fn MpNowPlayingBackEnd::stateUpdate( SimplifiedPlayerState state )
-
-    MpNowPlayingBackEndPrivate emits this signal when the simplified playback 
-    state changes.
-*/
-
-/*!
-    \internal
-    \fn MpNowPlayingBackEnd::titleChanged( const QString &text )
-
-    MpNowPlayingBackEndPrivate emits this signal when there is a new song
-    playing and the title becomes available.
-*/
-
-/*!
-    \internal
-    \fn MpNowPlayingBackEnd::artistChanged( const QString &text )
-
-    MpNowPlayingBackEndPrivate emits this signal when there is a new song
-    playing and the artist name becomes available.
-*/
-
-/*!
-    \internal
-    \enum SimplifiedPlayerState
-
-    This enum defines a set of simplified playback states.
- */
-
-/*!
- \internal
- Constructs the now playing back end.
- */
-MpNowPlayingBackEnd::MpNowPlayingBackEnd( long int playerId )
-    :d_ptr( new MpNowPlayingBackEndPrivate( playerId, this ) )
-{
-    TX_ENTRY_ARGS( "Player ID =" << playerId )
-    TX_EXIT
-}
-
-/*!
- \internal
- Destructs the now playing back end.
- */
-MpNowPlayingBackEnd::~MpNowPlayingBackEnd()
-{
-    TX_ENTRY
-    delete d_ptr;
-    TX_EXIT
-}
-
-/*!
- \internal
- Updates the widget with the latest playback information.
- */
-void MpNowPlayingBackEnd::update()
-{
-    TX_ENTRY
-    d_ptr->update();
-    TX_EXIT
-}
-
-    
-/*!
- \internal
- Sends a play/pause command.
- */
-void MpNowPlayingBackEnd::playPause()
-{
-    TX_ENTRY
-     d_ptr->playPause();
-    TX_EXIT
-}
--- a/utilities/mpnowplayingbanner/src/mpnowplayingbackend_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +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: Music Player now playing widget backend - Private.
-*
-*/
-
-#include <mpxplaybackutility.h>
-#include <mpxplaybackframeworkdefs.h>
-#include <mpxmediageneraldefs.h>
-#include <mpxmediamusicdefs.h>
-#include <mpxcommandgeneraldefs.h>
-#include <mpxplaybackmessage.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxplaybackmessagedefs.h>
-
-#include <QString>
-
-#include "mpnowplayingbackend_p.h"
-#include "mptrace.h"
-
-/*!
-    \internal
-    \class MpNowPlayingBackEndPrivate
-    \brief Wraps the playback utility and provides separation for QT and Symbian code.
-
-    This class wraps the playback utility on the MPX Framework to provide a simple
-    interface and separation of QT and Symbian code.
-*/
-
-
-/*!
- \internal
- Constructs the now playing back end private.
- */
-MpNowPlayingBackEndPrivate::MpNowPlayingBackEndPrivate( long int playerId, MpNowPlayingBackEnd *qq )
-	: q_ptr( qq ),
-      mPreviousState( NotPlaying ),
-      mPlaybackUtility(0)
-{
-    TX_ENTRY_ARGS( "Player ID =" << playerId << " Q pointer=" << ( void * )qq )
-    if ( !playerId ) {
-        playerId = KPbModeDefault.iUid;
-    }
-    TRAPD( errCode,
-        mPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( playerId ) );    
-        mPlaybackUtility->AddObserverL( *this );
-    );
-
-    if( KErrNone != errCode && mPlaybackUtility ) {
-        mPlaybackUtility->Close();
-        mPlaybackUtility = 0;
-    }
-    TX_EXIT
-}
-
-/*!
- \internal
- Destructs the now playing back end private.
- */
-MpNowPlayingBackEndPrivate::~MpNowPlayingBackEndPrivate()
-{
-    TX_ENTRY
-    if ( mPlaybackUtility ) {
-        TRAP_IGNORE( mPlaybackUtility->RemoveObserverL( *this ) );
-        mPlaybackUtility->Close();
-    }
-    TX_EXIT
-}
-
-/*!
- \internal
- Updates the widget with the latest playback information.
- */
-void MpNowPlayingBackEndPrivate::update()
-{
-    TX_ENTRY
-    TRAPD( errCode, UpdateStateL() );
-    if ( KErrNone == errCode ) {
-        TRAP_IGNORE( RequestMediaL() );
-    }
-    TX_EXIT
-}
-
-/*!
- \internal
-  Sends a play/pause command.
- */
-void MpNowPlayingBackEndPrivate::playPause()
-{
-    TX_ENTRY
-    TRAPD(err, DoPlayPauseL());
-    if ( err != KErrNone ) {
-        TX_LOG_ARGS("Error: " << err << "; should never get here.");
-    }
-    TX_EXIT
-}
-
-/*!
- \internal
- Callback function from MMPXPlaybackObserver.
- \sa DoHandlePlaybackMessageL()
- */
-void MpNowPlayingBackEndPrivate::HandlePlaybackMessage(
-    CMPXMessage* aMessage,
-    TInt aError )
-{
-    TX_ENTRY
-    if ( aError == KErrNone && aMessage ) {
-        TRAP_IGNORE( DoHandlePlaybackMessageL( *aMessage ) );
-    }
-    TX_EXIT
-}
-
-/*!
- \internal
- Callback function from MMPXPlaybackObserver.
- */
-void MpNowPlayingBackEndPrivate::HandlePropertyL( TMPXPlaybackProperty aProperty,
-    TInt aValue, TInt aError)
-{
-    // Nothing to do.
-    Q_UNUSED(aProperty);
-    Q_UNUSED(aValue);
-    Q_UNUSED(aError);
-}
-
-/*!
- \internal
- Callback function from MMPXPlaybackObserver.
- */
-void MpNowPlayingBackEndPrivate::HandleSubPlayerNamesL( TUid aPlayer,
-    const MDesCArray* aSubPlayers, TBool aComplete, TInt aError )
-{
-    // Nothing to do.
-    Q_UNUSED(aPlayer);
-    Q_UNUSED(aSubPlayers);
-    Q_UNUSED(aComplete);
-    Q_UNUSED(aError);
-}
-
-/*!
- \internal
- Callback function from MMPXPlaybackCallback.
- */
-void MpNowPlayingBackEndPrivate::HandleMediaL(
-        const CMPXMedia& aMedia,
-        TInt aError )
-{
-    TX_ENTRY
-    if( KErrNone != aError || mPreviousState == NotPlaying ) {
-        TX_EXIT
-        return;
-    }
-
-    if( aMedia.IsSupported( KMPXMediaGeneralTitle ) ) {
-        emit q_ptr->titleChanged(
-            QString::fromUtf16( aMedia.ValueText( KMPXMediaGeneralTitle ).Ptr(),
-                                aMedia.ValueText( KMPXMediaGeneralTitle ).Length() ) );
-    }
-    else if (aMedia.IsSupported( KMPXMediaGeneralUri )) {
-        TParsePtrC filePath( aMedia.ValueText( KMPXMediaGeneralUri ) );
-        emit q_ptr->titleChanged(
-            QString::fromUtf16( filePath.Name().Ptr(),
-                                filePath.Name().Length() ) );
-    }
-    else {
-        emit q_ptr->titleChanged( QString() );
-    }
-
-    if( aMedia.IsSupported( KMPXMediaMusicArtist ) ) {
-        emit q_ptr->artistChanged(
-            QString::fromUtf16( aMedia.ValueText( KMPXMediaMusicArtist ).Ptr(),
-                                aMedia.ValueText( KMPXMediaMusicArtist ).Length() ) );
-    }
-    else {
-        emit q_ptr->artistChanged( QString() );
-    }
-    TX_EXIT
-}
-
-/*!
- \internal
- Leaving function to request Media.
- \sa HandleMediaL()
- */
-void MpNowPlayingBackEndPrivate::RequestMediaL()
-{
-    TX_ENTRY
-    MMPXSource* mediaSrc = mPlaybackUtility->Source();
-    User::LeaveIfNull( mediaSrc );
-    RArray<TMPXAttribute> requestedAttr;
-    CleanupClosePushL( requestedAttr );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralTitle ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicArtist ) );
-    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralUri ) );
-    mediaSrc->MediaL( requestedAttr.Array(), *this );
-    CleanupStack::PopAndDestroy( &requestedAttr );
-    TX_EXIT
-}
-
-/*!
- \internal
- Leaving function to update the playback state.
- */
-void MpNowPlayingBackEndPrivate::UpdateStateL()
-{
-    TX_ENTRY
-    if ( !mPlaybackUtility->Source() ) {
-        TX_LOG_ARGS( "NotPlaying" )
-        mPreviousState = NotPlaying;
-        emit q_ptr->stateUpdate( NotPlaying );
-
-    }
-    else {
-        TMPXPlaybackState state = mPlaybackUtility->StateL();
-        switch ( state ) {
-            case EPbStatePlaying:
-                if ( mPreviousState != Playing ) {
-                    TX_LOG_ARGS( "Playing" )
-                    emit q_ptr->stateUpdate( Playing );
-                }
-                mPreviousState = Playing;
-                break;
-            case EPbStatePaused:
-            case EPbStateStopped: //reinterpreting stop as a pause
-                TX_LOG_ARGS("EPbStatePaused or PbStateStopped")
-                if (mPreviousState != Paused){
-                    TX_LOG_ARGS( "Paused" )
-                    emit q_ptr->stateUpdate( Paused );
-                }
-                mPreviousState = Paused;
-                break;
-            default:
-                //Ignore other states.
-                break;
-        }
-    }
-    TX_EXIT
-}
-
-/*!
- \internal
- Leaving function to send play/pause command.
- */
-void MpNowPlayingBackEndPrivate::DoPlayPauseL()
-{
-    mPlaybackUtility->CommandL( EPbCmdPlayPause );
-}
-
-/*!
- \internal
- Leaving function to handle the playback /a message.
- \sa HandlePlaybackMessageL()
- */
-void MpNowPlayingBackEndPrivate::DoHandlePlaybackMessageL(
-    const CMPXMessage& message )
-{
-    TX_ENTRY
-    TMPXMessageId id( message.ValueTObjectL<TMPXMessageId>( KMPXMessageGeneralId ) );
-    if ( KMPXMessageGeneral == id ) {
-        switch ( message.ValueTObjectL<TInt>( KMPXMessageGeneralEvent ) ) {
-            case TMPXPlaybackMessage::EStateChanged:
-                TX_LOG_ARGS( "EStateChanged" )
-                UpdateStateL();
-                break;
-            case TMPXPlaybackMessage::EMediaChanged:
-                TX_LOG_ARGS( "EMediaChanged or fall through from EPlaylistUpdated" )
-                RequestMediaL();
-                break;
-            case TMPXPlaybackMessage::EPlaylistUpdated:
-                TX_LOG_ARGS( "EPlaylistUpdated" )
-            case TMPXPlaybackMessage::EActivePlayerChanged:
-                TX_LOG_ARGS( "EActivePlayerChanged or fall through from EPlaylistUpdated" )
-                UpdateStateL();
-                RequestMediaL();
-                break;
-            default:
-                TX_LOG_ARGS( "unhandled case:" << message.ValueTObjectL<TInt>( KMPXMessageGeneralEvent ) << "see TMPXPlaybackMessage" )
-                break;
-        }
-    }
-    TX_EXIT
-}
--- a/utilities/mpnowplayingbanner/src/mpnowplayingwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/src/mpnowplayingwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -20,6 +20,8 @@
 
 #include <hbicon.h>
 #include <hbevent.h>
+#include <hbframeitem.h>
+#include <hbinstantfeedback.h>
 
 #include "mpnowplayingwidget.h"
 #include "mpnowplayingwidget_p.h"
@@ -54,12 +56,17 @@
 /*!
  Constructs the now playing widget.
  */
-MpNowPlayingWidget::MpNowPlayingWidget(long int playerId, QGraphicsItem *parent )
+MpNowPlayingWidget::MpNowPlayingWidget( QGraphicsItem *parent )
     : HbWidget(parent),
-    d_ptr ( new MpNowPlayingWidgetPrivate( playerId, this ) )
+    d_ptr ( new MpNowPlayingWidgetPrivate( this ) ),
+    mFrameItem(0)
 {
-    TX_ENTRY_ARGS( "Player ID =" << playerId << " Parent=" << (void *)parent )
+    TX_ENTRY_ARGS( " Parent=" << (void *)parent )
     TX_EXIT
+    mFrameItem = new HbFrameItem( this );
+    mFrameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
+    mFrameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" );
+    mFrameItem->setZValue(-1);
 }
 
 /*!
@@ -78,27 +85,38 @@
  */
 void MpNowPlayingWidget::setEnabled( bool enabled )
 {
+    TX_ENTRY
     d_ptr->setEnabled(enabled);
-}
-
-/*!
-    \reimp
- */
-void MpNowPlayingWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
-{
-    TX_ENTRY
-    HbWidget::paint(painter, option, widget);
-    QColor color(105,105,105,255);
-    painter->fillRect(rect(), color);
     TX_EXIT
 }
 
 /*!
     \reimp
  */
+void MpNowPlayingWidget::resizeEvent(QGraphicsSceneResizeEvent *event)
+{
+    TX_ENTRY
+    mFrameItem->setGeometry( rect() );
+    HbWidget::resizeEvent( event );
+    TX_EXIT
+}
+
+/*!
+ Returns if banner is attached or not
+ */
+bool MpNowPlayingWidget::isBannerAttached()
+{
+    TX_ENTRY
+    return d_ptr->isBannerAttached();
+}
+/*!
+    \reimp
+ */
 void MpNowPlayingWidget::mousePressEvent( QGraphicsSceneMouseEvent *event )
 {
     TX_ENTRY
+    HbInstantFeedback::play( HbFeedback::Basic );
+
     if ( event->button() == Qt::LeftButton ) {
         d_ptr->handleMousePressEvent( event, true );
         update();
@@ -119,7 +137,7 @@
     if ( event->button() == Qt::LeftButton ) {
         d_ptr->handleMousePressEvent( event, false );
         update();
-        if ( !d_ptr->handleClickEvent( event ) && rect().contains( event->pos() ) ) {
+        if ( !d_ptr->handleClickEvent( event ) ) {
             emit clicked();
         }
         event->accept();
@@ -133,11 +151,13 @@
 /*!
     \reimp
  */
-void MpNowPlayingWidget::changeEvent(QEvent *event)
+void MpNowPlayingWidget::mouseMoveEvent( QGraphicsSceneMouseEvent *event )
 {
-    if (event->type() == HbEvent::ThemeChanged) {
-            d_ptr->handleThemeChange();
-    }
-    HbWidgetBase::changeEvent(event);
+    TX_ENTRY
+    d_ptr->handleMouseMoveEvent( event );
+    update();
+    event->ignore();
+    TX_EXIT
 }
 
+
--- a/utilities/mpnowplayingbanner/src/mpnowplayingwidget_p.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/src/mpnowplayingwidget_p.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -23,14 +23,15 @@
 #include <hbiconitem.h>
 #include <hbdocumentloader.h>
 #include <hbinstance.h>
-#include <hbcolorscheme.h>
+#include <hbstyleloader.h>
 
+#include "mpenginefactory.h"
 #include "mpnowplayingwidget_p.h"
 #include "mpnowplayingwidget.h"
-#include "mpnowplayingbackend.h"
 #include "mptrace.h"
 
 const char *NOW_PLAYING_XML = ":/xml/nowplaying.docml";
+const char *NOW_PLAYING_CSS = ":/css/banner_color.css";
 
 /*!
     \internal
@@ -46,32 +47,25 @@
  \internal
  Constructs the now playing widget private.
  */
-MpNowPlayingWidgetPrivate::MpNowPlayingWidgetPrivate(long int playerId, MpNowPlayingWidget *qq )
+MpNowPlayingWidgetPrivate::MpNowPlayingWidgetPrivate( MpNowPlayingWidget *qq )
     : q_ptr( qq ),
       mPrimaryText(0),
       mSecondaryText(0),
-      mState( NotPlaying ),
+      mState( MpPlaybackData::NotPlaying ),
+      mPlaybackData(0),
+      mMpEngine(0),
       mIcon(0),
-      mDocumentLoader(0)
+      mDocumentLoader(0),
+      mCurrentPressedState( BannerNone )
 {
-    TX_ENTRY_ARGS( "Player ID =" << playerId << " Q pointer=" << ( void * )qq )
+    TX_ENTRY_ARGS( " Q pointer=" << ( void * )qq )
     QGraphicsWidget *widget;
     bool widgetsOk = false;
-
-    //TODO final color resources should be qtc_multimedia_trans_normal when available
-    QColor normalColor( HbColorScheme::color("foreground") );
-    //TODO final color resources should be qtc_multimedia_trans_pressed when available
-    QColor pressedColor( HbColorScheme::color("popupbackground") );
+    
+    HbStyleLoader::registerFilePath(NOW_PLAYING_CSS);  
     
-    mPlayIconNormal = new HbIcon( QString("qtg_mono_play"));
-    mPlayIconNormal->setColor( normalColor );
-    mPauseIconNormal = new HbIcon( QString("qtg_mono_pause"));
-    mPauseIconNormal->setColor( normalColor );
-    
-    mPlayIconPressed = new HbIcon( QString("qtg_mono_play"));
-    mPlayIconPressed->setColor( pressedColor );
-    mPauseIconPressed = new HbIcon( QString("qtg_mono_pause"));
-    mPauseIconPressed->setColor( pressedColor );
+    mPlayIcon = new HbIcon( QString( "qtg_mono_play" ) );
+    mPauseIcon = new HbIcon( QString( "qtg_mono_pause" ) );
 
     mDocumentLoader = new HbDocumentLoader();
     if (mDocumentLoader) {
@@ -87,18 +81,21 @@
 
         widget = mDocumentLoader->findWidget(QString("primaryText"));
         mPrimaryText = qobject_cast<HbLabel*>(widget);
-        //TODO final color resource should be qtc_multimedia_trans_normal when available
-        mPrimaryText->setTextColor( normalColor );
-       
+        mPrimaryText->setObjectName( "bannerLabel" );
+        mPrimaryText->setProperty( "state", "normal" );
+        
 
         widget = mDocumentLoader->findWidget(QString("secondaryText"));
         mSecondaryText = qobject_cast<HbLabel*>(widget);
-        //TODO final color resource should be qtc_multimedia_trans_normal when available
-        mSecondaryText->setTextColor( normalColor );
+        mSecondaryText->setObjectName( "bannerLabel" );
+        mSecondaryText->setProperty( "state", "normal" );
+        
         
         widget = mDocumentLoader->findWidget(QString("playPause"));
         mIcon = qobject_cast<HbLabel*>(widget);
-
+        mIcon->setObjectName( "bannerLabel" );
+        mIcon->setProperty( "state", "normal" );
+        
         HbStackedLayout *mylayout;
         mylayout = new HbStackedLayout(q_ptr);
         mylayout->addItem( container );
@@ -110,7 +107,8 @@
         Q_ASSERT_X(widgetsOk, "MpNowPlayingWidgetPrivate", "invalid xml file");
     }
 
-    mBackEnd = new MpNowPlayingBackEnd( playerId );
+    mMpEngine = MpEngineFactory::sharedEngine();
+    mPlaybackData = mMpEngine->playbackData();
     setEnabled(true);
     TX_EXIT
 }
@@ -123,11 +121,8 @@
 MpNowPlayingWidgetPrivate::~MpNowPlayingWidgetPrivate()
 {
     TX_ENTRY
-    delete mBackEnd;
-    delete mPlayIconNormal;
-    delete mPauseIconNormal;
-    delete mPlayIconPressed;
-    delete mPauseIconPressed;
+    delete mPlayIcon;
+    delete mPauseIcon;
     delete mDocumentLoader;
     TX_EXIT
 }
@@ -139,41 +134,62 @@
 void MpNowPlayingWidgetPrivate::setEnabled( bool enabled )
 {
     if ( enabled ) {
-        connect( mBackEnd, SIGNAL(stateUpdate(SimplifiedPlayerState)),
-                 this, SLOT(setState(SimplifiedPlayerState)) );
+        connect( mPlaybackData, SIGNAL( playbackStateChanged() ),
+                 this, SLOT( setState() ) );
 
-        connect( mBackEnd, SIGNAL(titleChanged(QString)),
-                 mPrimaryText, SLOT(setPlainText(QString)) );
+        connect( mPlaybackData, SIGNAL( playbackInfoChanged() ),
+                 this, SLOT( updateBannerInfo() ) );
 
-        connect( mBackEnd, SIGNAL(artistChanged(QString)),
-                 mSecondaryText, SLOT(setPlainText(QString)) );
-        mBackEnd->update();
+    setState();
+    updateBannerInfo();
     }
     else {
-        disconnect( mBackEnd, SIGNAL(stateUpdate(SimplifiedPlayerState)),
-                    this, SLOT(setState(SimplifiedPlayerState)) );
+        disconnect( mPlaybackData, SIGNAL( playbackStateChanged() ),
+                 this, SLOT( setState() ) );
+    
+        disconnect( mPlaybackData, SIGNAL( playbackInfoChanged() ),
+                 this, SLOT( updateBannerInfo() ) );
+    }
+}
 
-        disconnect( mBackEnd, SIGNAL(titleChanged(QString)),
-                    mPrimaryText, SLOT(setPlainText(QString)) );
-
-        disconnect( mBackEnd, SIGNAL(artistChanged(QString)),
-                    mSecondaryText, SLOT(setPlainText(QString)) );
-    }
+/*!
+ Return if banner is attached based on current playback state
+ */
+bool MpNowPlayingWidgetPrivate::isBannerAttached()
+{
+    return mState == MpPlaybackData::NotPlaying ? false : true;
 }
 
 /*!
  \internal
  Offers click \a event to the widget privated side, if event is consumed it returns true.
  */
+
 bool MpNowPlayingWidgetPrivate::handleClickEvent(QGraphicsSceneMouseEvent *event)
 {
-    if ( mIcon->windowFrameGeometry().contains( event->pos() ) ) {
-        mBackEnd->playPause();
-        return true;
+    bool ret = true;
+    if ( mCurrentPressedState != BannerNone ) {
+        //Widget was previosly pressed, handle the event.
+        QRectF geometry = q_ptr->rect();
+        qreal delta = mIcon->windowFrameGeometry().top() - geometry.top();
+        QRectF iconTouchRect( mIcon->windowFrameGeometry() );
+        iconTouchRect.adjust( -delta, -delta, delta, delta );
+        if ( iconTouchRect.contains( event->pos() ) ) {
+            if ( mCurrentPressedState == BannerIcon ) {
+                    // click on play/pause
+                mMpEngine->playPause();
+            }
+        }
+        else if ( mCurrentPressedState == BannerLabels && geometry.contains( event->pos() )){
+            // click somewhere else on the widget.
+            ret = false;
+        }
+        /*else {
+        // click outside the widget.
+        }*/
+        mCurrentPressedState = BannerNone;
     }
-    else {
-       return false;
-   }
+    return ret;
 }
 
 /*!
@@ -182,58 +198,63 @@
  */
 void MpNowPlayingWidgetPrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event, bool pressed)
 {   
-    //TODO final color resources should be qtc_multimedia_trans_pressed when available
-    QColor pressedColor( HbColorScheme::color("popupbackground") );
-    //TODO final color resources should be qtc_multimedia_trans_normal when available
-    QColor normalColor( HbColorScheme::color("foreground") );
+
+    QRectF geometry = q_ptr->rect();
+    qreal delta = mIcon->windowFrameGeometry().top() - geometry.top();
+    QRectF iconTouchRect( mIcon->windowFrameGeometry() );
+    iconTouchRect.adjust( -delta, -delta, delta, delta );
     
-    if( mIcon->windowFrameGeometry().contains( event->pos() ) && pressed) {            
-        if ( mState == Playing ) {
-            mIcon->setIcon( *mPauseIconPressed );
+    if( iconTouchRect.contains( event->pos() ) &&  pressed ) {  
+        if( mCurrentPressedState == BannerNone ) {
+            mCurrentPressedState = BannerIcon;
         }
-        else {             
-            mIcon->setIcon( *mPlayIconPressed );
-        }
+        mIcon->setProperty( "state", "pressed" );
     }
-    else if( q_ptr->rect().contains( event->pos() ) && pressed ){
-        mPrimaryText->setTextColor( pressedColor );
-        mSecondaryText->setTextColor( pressedColor );
+    else if( geometry.contains( event->pos() ) && pressed ){
+        if( mCurrentPressedState == BannerNone ) {
+            mCurrentPressedState = BannerLabels;
+        }
+        mPrimaryText->setProperty( "state", "pressed" );
+        mSecondaryText->setProperty( "state", "pressed" );
     }
     else { 
-        mPrimaryText->setTextColor( normalColor );
-        mSecondaryText->setTextColor( normalColor );
-        if( mState == Playing){        
-            mIcon->setIcon( *mPauseIconNormal );
-        }
-        else{
-            mIcon->setIcon( *mPlayIconNormal );
-        }
+        mIcon->setProperty( "state", "normal" );
+        mPrimaryText->setProperty( "state", "normal" );
+        mSecondaryText->setProperty( "state", "normal" );
     }
 }
 
 /*!
  \internal
- Handles theme change
+ Changes text and icon color when moved
  */
-void MpNowPlayingWidgetPrivate::handleThemeChange()
-{
-    //TODO final color resources should be qtc_multimedia_trans_pressed when available
-    QColor pressedColor( HbColorScheme::color("popupbackground") );
-    //TODO final color resources should be qtc_multimedia_trans_normal when available
-    QColor normalColor( HbColorScheme::color("foreground") );
+void MpNowPlayingWidgetPrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{   
+
+    QRectF geometry = q_ptr->rect();
+    qreal delta = mIcon->windowFrameGeometry().top() - geometry.top();
+    QRectF iconTouchRect( mIcon->windowFrameGeometry() );
+    iconTouchRect.adjust( -delta, -delta, delta, delta );
     
-    mPrimaryText->setTextColor( normalColor );
-    mSecondaryText->setTextColor( normalColor );
-    mPauseIconNormal->setColor( normalColor );
-    mPlayIconNormal->setColor( normalColor );
-    mPauseIconPressed->setColor( pressedColor );
-    mPlayIconPressed->setColor( pressedColor );
-    
-    if( mState == Playing){               
-        mIcon->setIcon( *mPauseIconNormal );
+    if( iconTouchRect.contains( event->pos() ) ) {  
+        if( mCurrentPressedState == BannerIcon ) {
+            mIcon->setProperty( "state", "pressed" );
+        }
+        else {
+            mIcon->setProperty( "state", "normal" );
+        }
+        mPrimaryText->setProperty( "state", "normal" );
+        mSecondaryText->setProperty( "state", "normal" );
     }
-    else{        
-        mIcon->setIcon( *mPlayIconNormal );
+    else if( geometry.contains( event->pos() ) &&  mCurrentPressedState == BannerLabels ){
+        mPrimaryText->setProperty( "state", "pressed" );
+        mSecondaryText->setProperty( "state", "pressed" );
+        mIcon->setProperty( "state", "normal" );
+    }
+    else { 
+        mIcon->setProperty( "state", "normal" );
+        mPrimaryText->setProperty( "state", "normal" );
+        mSecondaryText->setProperty( "state", "normal" );
     }
 }
 
@@ -241,22 +262,27 @@
  \internal
  Sets the simplified playback \a state.
  */
-void MpNowPlayingWidgetPrivate::setState( SimplifiedPlayerState state )
+void MpNowPlayingWidgetPrivate::setState( )
 {
+    MpPlaybackData::SimplifiedState state = mPlaybackData->playbackState();
     TX_ENTRY_ARGS( "State = " << state )
+            
     switch ( state ) {
-        case NotPlaying:
-            if ( mState != NotPlaying )
+        case MpPlaybackData::NotPlaying:
+            if ( mState != MpPlaybackData::NotPlaying )
                 emit q_ptr->playbackAttachmentChanged( false );
             break;
-        case Playing:
-            mIcon->setIcon(*mPauseIconNormal);
-            if (mState == NotPlaying)
+        case MpPlaybackData::Playing:
+            mIcon->setIcon( *mPauseIcon );
+            mIcon->setProperty( "state", mIcon->property("state").toString() );
+            if ( mState == MpPlaybackData::NotPlaying )
                 emit q_ptr->playbackAttachmentChanged( true );
             break;
-        case Paused:
-            mIcon->setIcon(*mPlayIconNormal);
-            if (mState == NotPlaying)
+        case MpPlaybackData::Paused:
+        case MpPlaybackData::Stopped:    
+            mIcon->setIcon( *mPlayIcon );
+            mIcon->setProperty( "state", mIcon->property("state").toString() );
+            if ( mState == MpPlaybackData::NotPlaying )
                 emit q_ptr->playbackAttachmentChanged( true );
             break;
         default:
@@ -266,4 +292,16 @@
     TX_EXIT
 }
 
+/*!
+ \internal
+ Sets the \a title 
+ */
+void MpNowPlayingWidgetPrivate::updateBannerInfo()
+{
+    mPrimaryText->setPlainText( mPlaybackData->title() );
+    mPrimaryText->setProperty( "state", mPrimaryText->property("state").toString() );
+    
+    mSecondaryText->setPlainText( mPlaybackData->artist() );
+    mSecondaryText->setProperty( "state", mSecondaryText->property("state").toString() );
+}
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpnowplayingbanner/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,20 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpnowplayingwidget
+
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/inc/unittest_mpnowplayingbackend.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +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: Unit test for mpnowplayingbackend
-*
-*/
-
-#ifndef TESTNOWPLAYINGBACKEND_H
-#define TESTNOWPLAYINGBACKEND_H
-
-#include <QtTest/QtTest>
-
-class MpNowPlayingBackEnd;
-class MpNowPlayingBackEndPrivate;
-
-class TestMpNowPlayingBackEnd : public QObject
-{
-    Q_OBJECT
-
-public:
-
-    TestMpNowPlayingBackEnd();
-    virtual ~TestMpNowPlayingBackEnd();
-
-signals:
-    void update();
-    void playPause();
-
-public slots:
-    void initTestCase();
-    void cleanupTestCase();
-    void init();
-    void cleanup();
-
-private slots:
-    void testConstructor();
-    void testInitUtilCreateFail();
-    void testInitAddObserverFail();
-    void testDestructor();
-    void testDestructorRemoveObserverFail();
-    void testUpdateSuccess();
-    void testUpdateNoSource();
-    void testUpdateStateFail();
-    void testUpdateMediaFail();
-    void testPlayPause();
-    void testPlayPauseFail();
-    void testHandlePlaybackMessageStateChanged();
-    void testHandlePlaybackMessageStateChangedFail();
-    void testHandlePlaybackMessagePlaylistUpdated();
-    void testHandlePlaybackMessageMediaChanged();
-    void testHandlePlaybackMessagePlayerChanged();
-    void testHandlePlaybackMessagePropertyChanged();
-    void testHandleMediaLTitle();
-    void testHandleMediaLTitleUri();
-    void testHandleMediaLUri();
-    void testHandleMediaLArtist();
-
-private:
-
-    MpNowPlayingBackEnd         *mTest;
-    MpNowPlayingBackEndPrivate  *mTestPrivate;
-
-};
-
-#endif  // TESTNOWPLAYINGBACKEND_H
-
-
-
-
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/src/unittest_mpnowplayingbackend.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,459 +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: Unit test for mpnowplayingbackend
-*
-*/
-
-#include <QSignalSpy>
-#include <QMetaType>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
-#include "unittest_mpnowplayingbackend.h"
-#include "mpcommondefs.h"
-#include "stub/inc/mpxplaybackutility.h"
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpnowplayingbackend.h"
-#include "mpnowplayingbackend_p.h"
-#undef private
-
-/*!
- Make our test case a stand-alone executable that runs all the test functions.
- */
-int main(int argc, char *argv[])
-{
-    HbApplication app(argc, argv);
-    HbMainWindow window;
-
-    TestMpNowPlayingBackEnd tv;
-
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpnowplayingbackend.txt";
-
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
-}
-
-TestMpNowPlayingBackEnd::TestMpNowPlayingBackEnd()
-    : mTest(0)
-{
-}
-
-TestMpNowPlayingBackEnd::~TestMpNowPlayingBackEnd()
-{
-    delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpNowPlayingBackEnd::initTestCase()
-{
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpNowPlayingBackEnd::cleanupTestCase()
-{
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpNowPlayingBackEnd::init()
-{
-    mTest = new MpNowPlayingBackEnd(MpCommon::KMusicPlayerUid);
-    mTestPrivate = mTest->d_ptr;
-
-    MMPXSource::setMediaLeave(false);
-    MMPXPlaybackUtility::setUtilityLeave(false);
-    MMPXPlaybackUtility::setAddObserverLeave(false);
-    MMPXPlaybackUtility::setRemoveObserverLeave(false);
-    MMPXPlaybackUtility::setCommandLeave(false);
-    MMPXPlaybackUtility::setStateLeave(false);
-    MMPXPlaybackUtility::setSource(true);
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpNowPlayingBackEnd::cleanup()
-{
-    delete mTest;
-    mTest = 0;
-}
-
-/*!
- Tests constructor. Good case.
- */
-void TestMpNowPlayingBackEnd::testConstructor()
-{
-    QVERIFY(mTestPrivate->mPlaybackUtility != 0);
-    QCOMPARE(mTestPrivate->mPreviousState, NotPlaying);
-}
-
-/*!
- Tests constructor.
- - MMPXPlaybackUtility::UtilityL leaves.
- */
-void TestMpNowPlayingBackEnd::testInitUtilCreateFail()
-{
-    // AK - There is no way for the client to tell if constructor fails.
-    // This should be split into constructor and initialize.
-    cleanup();
-    MMPXPlaybackUtility::setUtilityLeave(true);
-    init();
-    QVERIFY(mTestPrivate->mPlaybackUtility == 0);
-}
-
-/*!
- Tests constructor.
- - MMPXPlaybackUtility::AddObserverL leaves.
- */
-void TestMpNowPlayingBackEnd::testInitAddObserverFail()
-{
-    cleanup();
-    MMPXPlaybackUtility::resetCloseCounter();
-    MMPXPlaybackUtility::setAddObserverLeave(true);
-    init();
-    QVERIFY(mTestPrivate->mPlaybackUtility == 0);
-    QCOMPARE(MMPXPlaybackUtility::getCloseCounter(), 1);
-}
-
-/*!
- Tests destructor. Good case.
- */
-void TestMpNowPlayingBackEnd::testDestructor()
-{
-    MMPXPlaybackUtility::resetCloseCounter();
-    MMPXPlaybackUtility::resetRemoveObserverCounter();
-
-    QVERIFY(mTestPrivate->mPlaybackUtility->iObserver != 0);
-
-    cleanup();
-    QCOMPARE(MMPXPlaybackUtility::getRemoveObserverCounter(), 1);
-    QCOMPARE(MMPXPlaybackUtility::getCloseCounter(), 1);
-}
-
-/*!
- Tests destructor.
- - MMPXPlaybackUtility::RemoveObserverL leaves.
- */
-void TestMpNowPlayingBackEnd::testDestructorRemoveObserverFail()
-{
-    MMPXPlaybackUtility::resetCloseCounter();
-    MMPXPlaybackUtility::resetRemoveObserverCounter();
-    MMPXPlaybackUtility::setRemoveObserverLeave(true);
-
-    QVERIFY(mTestPrivate->mPlaybackUtility->iObserver != 0);
-
-    cleanup();
-    QCOMPARE(MMPXPlaybackUtility::getRemoveObserverCounter(), 0);
-    QCOMPARE(MMPXPlaybackUtility::getCloseCounter(), 1);
-}
-
-/*!
- Tests update() slot. Good case.
- */
-void TestMpNowPlayingBackEnd::testUpdateSuccess()
-{
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    connect(this, SIGNAL(update()), mTest, SLOT(update()));
-    MMPXSource::resetMediaCounter();
-
-
-    MMPXPlaybackUtility::setState(EPbStatePlaying);
-    // This should trigger stateUpdate(Playing) signal
-    emit update();
-    // Same state; This shouldn't trigger stateUpdate() signal
-    emit update();
-
-    MMPXPlaybackUtility::setState(EPbStatePaused);
-    // This should trigger stateUpdate(Paused) signal
-    emit update();
-    // Same state; This shouldn't trigger stateUpdate() signal
-    emit update();
-    
-    MMPXPlaybackUtility::setState(EPbStateStopped);
-    //Stop is reinterpreted as Pause.
-    // Same state; This shouldn't trigger stateUpdate() signal
-    emit update();
-
-
-    QCOMPARE(spy.count(), 2);
-    SimplifiedPlayerState state = qvariant_cast<SimplifiedPlayerState>(spy.at(0).at(0));
-    QCOMPARE(state, Playing);
-    state = qvariant_cast<SimplifiedPlayerState>(spy.at(1).at(0));
-    QCOMPARE(state, Paused);
-
-
-    QCOMPARE(MMPXSource::getMediaCounter(), 5);
-
-    disconnect(this, SIGNAL(update()), mTest, SLOT(update()));
-}
-
-/*!
- Tests update() slot.
- - MMPXPlaybackUtility::Source returns NULL.
- */
-void TestMpNowPlayingBackEnd::testUpdateNoSource()
-{
-    MMPXPlaybackUtility::setSource(false);
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    connect(this, SIGNAL(update()), mTest, SLOT(update()));
-    MMPXSource::resetMediaCounter();
-
-    MMPXPlaybackUtility::setState(EPbStateStopped);
-    emit update();
-
-    QCOMPARE(spy.count(), 1);
-    SimplifiedPlayerState state = qvariant_cast<SimplifiedPlayerState>(spy.at(0).at(0));
-    QCOMPARE(state, NotPlaying);
-
-    QCOMPARE(MMPXSource::getMediaCounter(), 0);
-    disconnect(this, SIGNAL(update()), mTest, SLOT(update()));
-}
-
-/*!
- Tests update() slot.
- - MMPXPlaybackUtility::StateL leaves.
- */
-void TestMpNowPlayingBackEnd::testUpdateStateFail()
-{
-    MMPXPlaybackUtility::setStateLeave(true);
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    connect(this, SIGNAL(update()), mTest, SLOT(update()));
-    MMPXSource::resetMediaCounter();
-
-    MMPXPlaybackUtility::setState(EPbStatePaused);
-    emit update();
-
-    QCOMPARE(spy.count(), 0);
-    QCOMPARE(MMPXSource::getMediaCounter(), 0);
-    disconnect(this, SIGNAL(update()), mTest, SLOT(update()));
-}
-
-/*!
- Tests update() slot.
- - MMPXSource::MediaL leaves.
- */
-void TestMpNowPlayingBackEnd::testUpdateMediaFail()
-{
-    MMPXSource::setMediaLeave(true);
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    connect(this, SIGNAL(update()), mTest, SLOT(update()));
-    MMPXSource::resetMediaCounter();
-
-    MMPXPlaybackUtility::setState(EPbStatePaused);
-    emit update();
-
-    QCOMPARE(spy.count(), 1);
-    QCOMPARE(MMPXSource::getMediaCounter(), 0);
-    disconnect(this, SIGNAL(update()), mTest, SLOT(update()));
-}
-
-/*!
- Tests playPause() slot. Good case.
- */
-void TestMpNowPlayingBackEnd::testPlayPause()
-{
-    MMPXPlaybackUtility::setState(EPbStatePlaying);
-    connect(this, SIGNAL(playPause()), mTest, SLOT(playPause()));
-
-    emit playPause();
-    QCOMPARE(MMPXPlaybackUtility::getState(), EPbStatePaused);
-
-    emit playPause();
-    QCOMPARE(MMPXPlaybackUtility::getState(), EPbStatePlaying);
-
-    disconnect(this, SIGNAL(playPause()), mTest, SLOT(playPause()));
-}
-
-/*!
- Tests playPause() slot.
- - MMPXPlaybackUtility::CommandL leaves.
- */
-void TestMpNowPlayingBackEnd::testPlayPauseFail()
-{
-    MMPXPlaybackUtility::setCommandLeave(true);
-    MMPXPlaybackUtility::setState(EPbStatePlaying);
-    connect(this, SIGNAL(playPause()), mTest, SLOT(playPause()));
-    emit playPause();
-    // Just need to make sure nothing crashes.
-    QCOMPARE(MMPXPlaybackUtility::getState(), EPbStatePlaying);
-    disconnect(this, SIGNAL(playPause()), mTest, SLOT(playPause()));
-}
-
-/*!
- Tests HandlePlaybackMessage callback with StateChanged event. Good case.
- */
-void TestMpNowPlayingBackEnd::testHandlePlaybackMessageStateChanged()
-{
-    MMPXPlaybackUtility::setState(EPbStatePlaying);
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    mTestPrivate->mPlaybackUtility->sendHandlePlaybackMessage(TMPXPlaybackMessage::EStateChanged);
-
-    QCOMPARE(spy.count(), 1);
-    SimplifiedPlayerState state = qvariant_cast<SimplifiedPlayerState>(spy.at(0).at(0));
-    QCOMPARE(state, Playing);
-}
-
-/*!
- Tests HandlePlaybackMessage callback with StateChanged event.
- - MMPXPlaybackUtility::StateL leaves.
- */
-void TestMpNowPlayingBackEnd::testHandlePlaybackMessageStateChangedFail()
-{
-    MMPXPlaybackUtility::setStateLeave(true);
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    mTestPrivate->mPlaybackUtility->sendHandlePlaybackMessage(TMPXPlaybackMessage::EStateChanged);
-
-    QCOMPARE(spy.count(), 0);
-}
-
-/*!
- Tests HandlePlaybackMessage callback with PlaylistUpdated event. Good case.
- */
-void TestMpNowPlayingBackEnd::testHandlePlaybackMessagePlaylistUpdated()
-{
-    MMPXSource::resetMediaCounter();
-    mTestPrivate->mPlaybackUtility->sendHandlePlaybackMessage(TMPXPlaybackMessage::EPlaylistUpdated);
-    QCOMPARE(MMPXSource::getMediaCounter(), 1);
-}
-
-/*!
- Tests HandlePlaybackMessage callback with MediaChanged event. Good case.
- */
-void TestMpNowPlayingBackEnd::testHandlePlaybackMessageMediaChanged()
-{
-    MMPXSource::resetMediaCounter();
-    mTestPrivate->mPlaybackUtility->sendHandlePlaybackMessage(TMPXPlaybackMessage::EMediaChanged);
-    QCOMPARE(MMPXSource::getMediaCounter(), 1);
-}
-
-/*!
- Tests HandlePlaybackMessage callback with PlayerChanged event. Good case.
- */
-void TestMpNowPlayingBackEnd::testHandlePlaybackMessagePlayerChanged()
-{
-    MMPXPlaybackUtility::setState(EPbStatePlaying);
-    MMPXSource::resetMediaCounter();
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    mTestPrivate->mPlaybackUtility->sendHandlePlaybackMessage(TMPXPlaybackMessage::EActivePlayerChanged);
-
-    QCOMPARE(spy.count(), 1);
-    SimplifiedPlayerState state = qvariant_cast<SimplifiedPlayerState>(spy.at(0).at(0));
-    QCOMPARE(state, Playing);
-    QCOMPARE(MMPXSource::getMediaCounter(), 1);
-}
-
-/*!
- Tests HandlePlaybackMessage callback with PropertyChanged event. Good case.
- Tests receiving events that it doesn't care about.
- */
-void TestMpNowPlayingBackEnd::testHandlePlaybackMessagePropertyChanged()
-{
-    MMPXPlaybackUtility::setState(EPbStatePlaying);
-    MMPXSource::resetMediaCounter();
-    qRegisterMetaType<SimplifiedPlayerState>();
-    QSignalSpy spy(mTest, SIGNAL(stateUpdate(SimplifiedPlayerState)));
-    mTestPrivate->mPlaybackUtility->sendHandlePlaybackMessage(TMPXPlaybackMessage::EPropertyChanged);
-
-    QCOMPARE(spy.count(), 0);
-    QCOMPARE(MMPXSource::getMediaCounter(), 0);
-}
-
-/*!
- Tests HandleMediaL callback with new title. Good case.
- */
-void TestMpNowPlayingBackEnd::testHandleMediaLTitle()
-{
-    QSignalSpy spyTitle(mTest, SIGNAL(titleChanged(QString)));
-    QSignalSpy spyArtist(mTest, SIGNAL(artistChanged(QString)));
-    mTestPrivate->mPreviousState = Playing;
-    mTestPrivate->mPlaybackUtility->Source()->setObserver(mTestPrivate);
-    mTestPrivate->mPlaybackUtility->Source()->sendHandleMediaL(true, false, false);
-
-    QCOMPARE(spyTitle.count(), 1);
-    QCOMPARE(spyTitle.at(0).at(0).toString(), QString("Title"));
-    QCOMPARE(spyArtist.count(), 1);
-    QCOMPARE(spyArtist.at(0).at(0).toString(), QString());
-}
-
-/*!
- Tests HandleMediaL callback with new title and uri. Good case.
- When both title and uri exist, only title is used.
- */
-void TestMpNowPlayingBackEnd::testHandleMediaLTitleUri()
-{
-    QSignalSpy spyTitle(mTest, SIGNAL(titleChanged(QString)));
-    QSignalSpy spyArtist(mTest, SIGNAL(artistChanged(QString)));
-    mTestPrivate->mPreviousState = Playing;
-    mTestPrivate->mPlaybackUtility->Source()->setObserver(mTestPrivate);
-    mTestPrivate->mPlaybackUtility->Source()->sendHandleMediaL(true, true, false);
-
-    QCOMPARE(spyTitle.count(), 1);
-    QCOMPARE(spyTitle.at(0).at(0).toString(), QString("Title"));
-    QCOMPARE(spyArtist.count(), 1);
-    QCOMPARE(spyArtist.at(0).at(0).toString(), QString());
-}
-
-/*!
- Tests HandleMediaL callback with new uri. Good case.
- */
-void TestMpNowPlayingBackEnd::testHandleMediaLUri()
-{
-    QSignalSpy spyTitle(mTest, SIGNAL(titleChanged(QString)));
-    QSignalSpy spyArtist(mTest, SIGNAL(artistChanged(QString)));
-    mTestPrivate->mPreviousState = Playing;
-    mTestPrivate->mPlaybackUtility->Source()->setObserver(mTestPrivate);
-    mTestPrivate->mPlaybackUtility->Source()->sendHandleMediaL(false, true, false);
-
-    QCOMPARE(spyTitle.count(), 1);
-    QCOMPARE(spyTitle.at(0).at(0).toString(), QString("Uri"));
-    QCOMPARE(spyArtist.count(), 1);
-    QCOMPARE(spyArtist.at(0).at(0).toString(), QString());
-}
-
-/*!
- Tests HandleMediaL callback with new artist. Good case.
- */
-void TestMpNowPlayingBackEnd::testHandleMediaLArtist()
-{
-    QSignalSpy spyTitle(mTest, SIGNAL(titleChanged(QString)));
-    QSignalSpy spyArtist(mTest, SIGNAL(artistChanged(QString)));
-    mTestPrivate->mPreviousState = Playing;
-    mTestPrivate->mPlaybackUtility->Source()->setObserver(mTestPrivate);
-    mTestPrivate->mPlaybackUtility->Source()->sendHandleMediaL(false, false, true);
-
-    QCOMPARE(spyTitle.count(), 1);
-    QCOMPARE(spyTitle.at(0).at(0).toString(), QString());
-    QCOMPARE(spyArtist.count(), 1);
-    QCOMPARE(spyArtist.at(0).at(0).toString(), QString("Artist"));
-}
-
-// End of file
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/stub/inc/mpxplaybackutility.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +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: mpxplaybackutility stub for testing MpNowPlayingBackEnd
-*
-*/
-
-
-#ifndef MMPXPLAYBACKUTILITY_H
-#define MMPXPLAYBACKUTILITY_H
-
-#include <mpxplaybackframeworkdefs.h>
-#include <mpxcommonframeworkdefs.h>
-#include <mpxplaybackmessage.h>
-#include <badesca.h>
-#include <mpxattribute.h>
-#include <mpxcommand.h>
-#include <mpxattributespecs.h>
-
-class MMPXPlaybackObserver;
-class MMPXPlaybackCallback;
-
-class MMPXSource
-    {
-public:
-
-    // Test utility functions
-    MMPXSource();
-    virtual ~MMPXSource();
-    static void setMediaLeave(bool leave);
-    static int getMediaCounter();
-    static void resetMediaCounter();
-    void sendHandleMediaL(bool title, bool uri, bool artist);
-    void setObserver(MMPXPlaybackCallback* obs);
-
-    // Stub functions
-    void MediaL(const TArray<TMPXAttribute>& aAttrs, MMPXPlaybackCallback& aCallback);
-
-public:
-
-    MMPXPlaybackCallback*   iObserver;
-
-    };
-
-class MMPXPlaybackUtility
-    {
-public:
-
-    // Test utility functions
-    MMPXPlaybackUtility();
-    virtual ~MMPXPlaybackUtility();
-    static void setUtilityLeave(bool leave);
-    static void setAddObserverLeave(bool leave);
-    static void setRemoveObserverLeave(bool leave);
-    static void setCommandLeave(bool leave);
-    static void setStateLeave(bool leave);
-    static int getCloseCounter();
-    static void resetCloseCounter();
-    static int getRemoveObserverCounter();
-    static void resetRemoveObserverCounter();
-    static void setSource(bool exist);
-    static void setState(TMPXPlaybackState state);
-    static TMPXPlaybackState getState();
-    void sendHandlePlaybackMessage(TMPXPlaybackMessage::TEvent event);
-
-    // Stub functions
-    static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault);
-    void AddObserverL(MMPXPlaybackObserver& aObs);
-    void RemoveObserverL(MMPXPlaybackObserver& aObs);
-    void Close();
-    void CommandL(TMPXPlaybackCommand aCmd, TInt aData=0);
-    TMPXPlaybackState StateL() const;
-    MMPXSource* Source();
-
-public:
-
-    MMPXPlaybackObserver*   iObserver;
-    MMPXSource              iSource;    // concrete source object
-
-    };
-
-#endif      // MMPXPLAYBACKUTILITY_H
-
-// End of File
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/stub/src/mpxplaybackutility.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +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: mpxplaybackutility stub for testing MpNowPlayingBackEnd
-*
-*/
-
-#include <Qt>
-#include <mpxplaybackobserver.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxmediageneraldefs.h>
-#include <mpxmediamusicdefs.h>
-
-#include "stub/inc/mpxplaybackutility.h"
-
-bool gLeaveMediaL = false;
-int gMediaCounter = 0;
-
-bool gLeaveUtilityL = false;
-bool gLeaveAddObserverL = false;
-bool gLeaveRemoveObserverL = false;
-bool gLeaveCommandL = false;
-bool gLeaveStateL = false;
-int gUtilCloseCounter = 0;
-int gRemoveObserverCounter = 0;
-bool gSourceExists = true;
-TMPXPlaybackState gPlaybackState = EPbStateStopped;
-
-// Constants
-_LIT( KTitle, "Title" );
-_LIT( KUri, "Uri" );
-_LIT( KArtist, "Artist" );
-
-/*!
- Stub constructor.
- */
-MMPXSource::MMPXSource()
-{
-}
-
-/*!
- Stub destructor.
- */
-MMPXSource::~MMPXSource()
-{
-}
-
-/*!
- Sets gLeaveMediaL.
- If true MMPXSource::MediaL leaves.
- */
-void MMPXSource::setMediaLeave(bool leave)
-{
-    gLeaveMediaL = leave;
-}
-
-/*!
- Returns gMediaCounter.
- gMediaCounter counts the number of MMPXSource::MediaL calls.
- */
-int MMPXSource::getMediaCounter()
-{
-    return gMediaCounter;
-}
-
-/*!
- Resets gMediaCounter to zero.
- */
-void MMPXSource::resetMediaCounter()
-{
-    gMediaCounter = 0;
-}
-
-/*!
- Causes callback to observer.
- \sa MMPXSource::MediaL
- */
-void MMPXSource::sendHandleMediaL(bool title, bool uri, bool artist)
-{
-    CMPXMedia* media = CMPXMedia::NewL();
-    CleanupStack::PushL(media);
-    if ( title ) {
-        media->SetTextValueL(KMPXMediaGeneralTitle, KTitle);
-    }
-    if ( uri ) {
-        media->SetTextValueL(KMPXMediaGeneralUri, KUri);
-    }
-    if ( artist ) {
-        media->SetTextValueL(KMPXMediaMusicArtist, KArtist);
-    }
-    iObserver->HandleMediaL(*media, KErrNone);
-    CleanupStack::PopAndDestroy( media );
-}
-
-/*!
- Sets the observer
- \sa MMPXSource::sendHandleMediaL.
- */
-void MMPXSource::setObserver(MMPXPlaybackCallback* obs)
-{
-    iObserver = obs;
-}
-
-/*!
- Stub function.
- */
-void MMPXSource::MediaL(const TArray<TMPXAttribute>& aAttrs, MMPXPlaybackCallback& aCallback)
-{
-    Q_UNUSED(aAttrs);
-    if (gLeaveMediaL) {
-        User::Leave(KErrGeneral);
-    }
-    iObserver = &aCallback;
-    gMediaCounter++;
-}
-
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-
-
-/*!
- Stub constructor.
- */
-MMPXPlaybackUtility::MMPXPlaybackUtility()
-{
-}
-
-/*!
- Stub destructor.
- */
-MMPXPlaybackUtility::~MMPXPlaybackUtility()
-{
-}
-
-/*!
- Sets gLeaveUtilityL.
- If true MMPXPlaybackUtility::UtilityL leaves.
- */
-void MMPXPlaybackUtility::setUtilityLeave(bool leave)
-{
-    gLeaveUtilityL = leave;
-}
-
-/*!
- Sets gLeaveAddObserverL.
- If true MMPXPlaybackUtility::AddObserverL leaves.
- */
-void MMPXPlaybackUtility::setAddObserverLeave(bool leave)
-{
-    gLeaveAddObserverL = leave;
-}
-
-/*!
- Sets gLeaveRemoveObserverL.
- If true MMPXPlaybackUtility::RemoveObserverL leaves.
- */
-void MMPXPlaybackUtility::setRemoveObserverLeave(bool leave)
-{
-    gLeaveRemoveObserverL = leave;
-}
-
-/*!
- Sets gLeaveCommandL.
- If true MMPXPlaybackUtility::CommandL leaves.
- */
-void MMPXPlaybackUtility::setCommandLeave(bool leave)
-{
-    gLeaveCommandL = leave;
-}
-
-/*!
- Sets gLeaveStateL.
- If true MMPXPlaybackUtility::StateL leaves.
- */
-void MMPXPlaybackUtility::setStateLeave(bool leave)
-{
-    gLeaveStateL = leave;
-}
-
-/*!
- Returns gUtilCloseCounter.
- gUtilCloseCounter counts the number of MMPXPlaybackUtility::Close calls.
- */
-int MMPXPlaybackUtility::getCloseCounter()
-{
-    return gUtilCloseCounter;
-}
-
-/*!
- Resets gUtilCloseCounter to zero.
- */
-void MMPXPlaybackUtility::resetCloseCounter()
-{
-    gUtilCloseCounter = 0;
-}
-
-/*!
- Returns gRemoveObserverCounter.
- gRemoveObserverCounter counts the number of MMPXPlaybackUtility::RemoveObserverL calls.
- */
-int MMPXPlaybackUtility::getRemoveObserverCounter()
-{
-    return gRemoveObserverCounter;
-}
-
-/*!
- Resets gRemoveObserverCounter to zero.
- */
-void MMPXPlaybackUtility::resetRemoveObserverCounter()
-{
-    gRemoveObserverCounter = 0;
-}
-
-/*!
- Sets gSourceExists.
- If true MMPXPlaybackUtility::Source returns valid pointer.
- */
-void MMPXPlaybackUtility::setSource(bool exist)
-{
-    gSourceExists = exist;
-}
-
-/*!
- Sets gPlaybackState.
- \sa MMPXPlaybackUtility::getState()
- \sa MMPXPlaybackUtility::StateL()
- */
-void MMPXPlaybackUtility::setState(TMPXPlaybackState state)
-{
-    gPlaybackState = state;
-}
-
-/*!
- Gets gPlaybackState.
- \sa MMPXPlaybackUtility::setState()
- */
-TMPXPlaybackState MMPXPlaybackUtility::getState()
-{
-    return gPlaybackState;
-}
-
-/*!
- Causes callback to observer.
- */
-void MMPXPlaybackUtility::sendHandlePlaybackMessage(TMPXPlaybackMessage::TEvent event)
-{
-    CMPXMessage* msg = CMPXMessage::NewL();
-    CleanupStack::PushL(msg);
-    TMPXMessageId id=static_cast<TMPXMessageId>(KMPXMessageGeneral);
-    msg->SetTObjectValueL<TMPXMessageId>(KMPXMessageGeneralId, id);
-    msg->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent, event);
-    iObserver->HandlePlaybackMessage(msg, KErrNone);
-    CleanupStack::PopAndDestroy( msg );
-}
-
-/*!
- Stub function.
- */
-MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& aModeId)
-{
-    Q_UNUSED(aModeId);
-    if (gLeaveUtilityL) {
-        User::Leave(KErrGeneral);
-    }
-    static MMPXPlaybackUtility playbackUtilility;
-    return &playbackUtilility;
-}
-
-/*!
- Stub function.
- */
-void MMPXPlaybackUtility::AddObserverL(MMPXPlaybackObserver& aObs)
-{
-    if (gLeaveAddObserverL) {
-        User::Leave(KErrGeneral);
-    }
-    iObserver = &aObs;
-}
-
-/*!
- Stub function.
- */
-void MMPXPlaybackUtility::RemoveObserverL(MMPXPlaybackObserver& aObs)
-{
-    Q_UNUSED(aObs);
-    if (gLeaveRemoveObserverL) {
-        User::Leave(KErrGeneral);
-    }
-    gRemoveObserverCounter++;
-}
-
-/*!
- Stub function.
- */
-void MMPXPlaybackUtility::Close()
-{
-    gUtilCloseCounter++;
-}
-
-/*!
- Stub function.
- */
-void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand aCmd, TInt aData)
-{
-    Q_UNUSED(aCmd);
-    Q_UNUSED(aData);
-    if (gLeaveCommandL) {
-        User::Leave(KErrGeneral);
-    }
-    if ( gPlaybackState == EPbStatePlaying ) {
-        gPlaybackState = EPbStatePaused;
-    }
-    else {
-        gPlaybackState = EPbStatePlaying;
-    }
-}
-
-/*!
- Stub function.
- */
-TMPXPlaybackState MMPXPlaybackUtility::StateL() const
-{
-    if (gLeaveStateL) {
-        User::Leave(KErrGeneral);
-    }
-    return gPlaybackState;
-}
-
-/*!
- Stub function.
- */
-MMPXSource* MMPXPlaybackUtility::Source()
-{
-    if ( gSourceExists ) {
-        return &iSource;
-    }
-    else {
-        return 0;
-    }
-}
-
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingbackend/unittest_mpnowplayingbackend.pro	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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
-CONFIG += qtestlib hb
-TARGET = 
-
-DEPENDPATH += .
-INCLUDEPATH += . \
-    stub/inc \
-    ../../inc \
-    ../../../../inc
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
-
-LIBS += -lestor.dll \
-        -lfbscli.dll \
-        -lmpxcommon.dll
-
-HEADERS += inc/unittest_mpnowplayingbackend.h \
-           stub/inc/mpxplaybackutility.h \
-           ../../inc/mpnowplayingbackend.h \
-           ../../inc/mpnowplayingbackend_p.h \
-               
-SOURCES += src/unittest_mpnowplayingbackend.cpp \
-           stub/src/mpxplaybackutility.cpp \
-           ../../src/mpnowplayingbackend.cpp \
-           ../../src/mpnowplayingbackend_p.cpp
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/inc/unittest_mpnowplayingwidget.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/inc/unittest_mpnowplayingwidget.h	Thu Jul 22 16:32:33 2010 +0100
@@ -20,7 +20,7 @@
 
 #include <QtTest/QtTest>
 
-#include "stub/inc/mpnowplayingbackend.h"
+#include "stub/inc/mpplaybackdata.h"
 
 class MpNowPlayingWidget;
 class MpNowPlayingWidgetPrivate;
@@ -35,7 +35,7 @@
     virtual ~TestMpNowPlayingWidget();
 
 signals:
-    void setState(SimplifiedPlayerState state);
+    void setState(MpPlaybackData::SimplifiedState state);
 
 public slots:
     void initTestCase();
@@ -46,10 +46,9 @@
 private slots:
     void testConstructor();
     void testSetState();
-    void testTitleChange();
-    void testArtistChange();
+    void testBannerInfoChange();
     void testSetEnabled();
-    void testThemeChange();
+    void testIsBannerAttached();
 
 private:
 
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/src/unittest_mpnowplayingwidget.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/src/unittest_mpnowplayingwidget.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -18,15 +18,11 @@
 #include <qnamespace.h>
 #include <QSignalSpy>
 #include <QMetaType>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
 #include <hblabel.h>
 #include <hbevent.h>
 
 #include "unittest_mpnowplayingwidget.h"
-#include "stub/inc/mpnowplayingbackend.h"
-#include "stub/inc/hbcolorscheme.h"
+#include "stub/inc/mpplaybackdata.h"
 #include "mpcommondefs.h"
 
 // Do this so we can access all member variables.
@@ -40,19 +36,21 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
+    QApplication app(argc, argv);
 
     TestMpNowPlayingWidget tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpnowplayingwidget.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpnowplayingwidget.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpNowPlayingWidget::TestMpNowPlayingWidget()
@@ -84,7 +82,7 @@
  */
 void TestMpNowPlayingWidget::init()
 {
-    mTest = new MpNowPlayingWidget(MpCommon::KMusicPlayerUid);
+    mTest = new MpNowPlayingWidget();
     mTestPrivate = mTest->d_ptr;
 }
 
@@ -103,19 +101,17 @@
 void TestMpNowPlayingWidget::testConstructor()
 {
     cleanup();
-    MpNowPlayingBackEnd::resetUpdateCounter();
+    MpPlaybackData::resetUpdateCounter();
     init();
     QVERIFY(mTestPrivate->mPrimaryText != 0);
     QVERIFY(mTestPrivate->mSecondaryText != 0);
-    QVERIFY(mTestPrivate->mBackEnd != 0);
-    QVERIFY(mTestPrivate->mPlayIconNormal != 0);
-    QVERIFY(mTestPrivate->mPauseIconNormal != 0);
-    QVERIFY(mTestPrivate->mPlayIconPressed != 0);
-    QVERIFY(mTestPrivate->mPauseIconPressed != 0);
+    QVERIFY(mTestPrivate->mPlaybackData != 0);
+    QVERIFY(mTestPrivate->mPlayIcon != 0);
+    QVERIFY(mTestPrivate->mPauseIcon != 0);
     QVERIFY(mTestPrivate->mIcon != 0);
     QVERIFY(mTestPrivate->mDocumentLoader != 0);
-    QCOMPARE(mTestPrivate->mState, NotPlaying);
-    QCOMPARE(MpNowPlayingBackEnd::getUpdateCounter(), 1);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::NotPlaying);
+    QCOMPARE(MpPlaybackData::getUpdateCounter(), 1);
 }
 
 /*!
@@ -125,63 +121,63 @@
 {
     QSignalSpy spy(mTest, SIGNAL(playbackAttachmentChanged(bool)));
 
-    mTestPrivate->mState = NotPlaying;
-    mTestPrivate->mBackEnd->triggerStateUpdate(NotPlaying);
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::NotPlaying);
     QCOMPARE(spy.count(), 0);
-    QCOMPARE(mTestPrivate->mState, NotPlaying);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::NotPlaying);
 
-    mTestPrivate->mState = Playing;
-    mTestPrivate->mBackEnd->triggerStateUpdate(NotPlaying);
+    mTestPrivate->mState = MpPlaybackData::Playing;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::NotPlaying);
     QCOMPARE(spy.count(), 1);
     QCOMPARE(spy.at(0).at(0).toBool(), false);
-    QCOMPARE(mTestPrivate->mState, NotPlaying);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::NotPlaying);
 
     spy.clear();
-    mTestPrivate->mState = Paused;
-    mTestPrivate->mBackEnd->triggerStateUpdate(NotPlaying);
+    mTestPrivate->mState = MpPlaybackData::Paused;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::NotPlaying);
     QCOMPARE(spy.count(), 1);
     QCOMPARE(spy.at(0).at(0).toBool(), false);
-    QCOMPARE(mTestPrivate->mState, NotPlaying);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::NotPlaying);
 
     spy.clear();
-    mTestPrivate->mState = NotPlaying;
-    mTestPrivate->mBackEnd->triggerStateUpdate(Playing);
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::Playing);
     QCOMPARE(spy.count(), 1);
     QCOMPARE(spy.at(0).at(0).toBool(), true);
-    QCOMPARE(mTestPrivate->mState, Playing);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::Playing);
 
     spy.clear();
-    mTestPrivate->mState = NotPlaying;
-    mTestPrivate->mBackEnd->triggerStateUpdate(Paused);
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::Paused);
     QCOMPARE(spy.count(), 1);
     QCOMPARE(spy.at(0).at(0).toBool(), true);
-    QCOMPARE(mTestPrivate->mState, Paused);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::Paused);
 
     spy.clear();
-    mTestPrivate->mState = Playing;
-    mTestPrivate->mBackEnd->triggerStateUpdate(Paused);
-    mTestPrivate->mState = Paused;
-    mTestPrivate->mBackEnd->triggerStateUpdate(Playing);
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::Stopped);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(spy.at(0).at(0).toBool(), true);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::Stopped);
+    
+    spy.clear();
+    mTestPrivate->mState = MpPlaybackData::Playing;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::Paused);
+    mTestPrivate->mState = MpPlaybackData::Paused;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::Playing);
     QCOMPARE(spy.count(), 0);
 }
 
 /*!
- Tests title change from the backend.
+ Tests title and artist change
  */
-void TestMpNowPlayingWidget::testTitleChange()
+void TestMpNowPlayingWidget::testBannerInfoChange()
 {
-    mTestPrivate->mBackEnd->triggerTitleChanged(QString("Title"));
+    mTestPrivate->mPlaybackData->triggerLabelsChanged(QString("Title"), QString("Artist"));
     QCOMPARE(mTestPrivate->mPrimaryText->plainText(), QString("Title"));
+    QCOMPARE(mTestPrivate->mSecondaryText->plainText(), QString("Artist"));
 }
 
-/*!
- Tests artist change from the backend.
- */
-void TestMpNowPlayingWidget::testArtistChange()
-{
-    mTestPrivate->mBackEnd->triggerArtistChanged(QString("Artist"));
-    QCOMPARE(mTestPrivate->mSecondaryText->plainText(), QString("Artist"));
-}
 
 /*!
  Tests disabling/enabling the widget.
@@ -192,70 +188,51 @@
     QSignalSpy spy(mTest, SIGNAL(playbackAttachmentChanged(bool)));
     mTestPrivate->mPrimaryText->setPlainText("Primary");
     mTestPrivate->mSecondaryText->setPlainText("Secondary");
-    mTestPrivate->mState = NotPlaying;
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
 
     // Disable the widget; Nothing should update.
     mTest->setEnabled(false);
-    mTestPrivate->mBackEnd->triggerStateUpdate(Playing);
-    QCOMPARE(mTestPrivate->mState, NotPlaying);
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::Playing);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::NotPlaying);
     QCOMPARE(spy.count(), 0);
 
-    mTestPrivate->mBackEnd->triggerTitleChanged(QString("Title"));
+    mTestPrivate->mPlaybackData->triggerLabelsChanged(QString("Title"), QString("Artist"));
     QCOMPARE(mTestPrivate->mPrimaryText->plainText(), QString("Primary"));
-
-    mTestPrivate->mBackEnd->triggerArtistChanged(QString("Artist"));
     QCOMPARE(mTestPrivate->mSecondaryText->plainText(), QString("Secondary"));
 
     // Enable the widget. It should start updating again.
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::NotPlaying);
     mTest->setEnabled(true);
-    mTestPrivate->mState = Playing;
-    mTestPrivate->mBackEnd->triggerStateUpdate(NotPlaying);
+    mTestPrivate->mState = MpPlaybackData::Playing;
+    mTestPrivate->mPlaybackData->triggerStateUpdate(MpPlaybackData::NotPlaying);
     QCOMPARE(spy.count(), 1);
     QCOMPARE(spy.at(0).at(0).toBool(), false);
-    QCOMPARE(mTestPrivate->mState, NotPlaying);
+    QCOMPARE(mTestPrivate->mState, MpPlaybackData::NotPlaying);
 
-    mTestPrivate->mBackEnd->triggerTitleChanged(QString("Title"));
+    mTestPrivate->mPlaybackData->triggerLabelsChanged(QString("Title"), QString("Artist"));
     QCOMPARE(mTestPrivate->mPrimaryText->plainText(), QString("Title"));
-
-    mTestPrivate->mBackEnd->triggerArtistChanged(QString("Artist"));
     QCOMPARE(mTestPrivate->mSecondaryText->plainText(), QString("Artist"));
 }
 
 /*!
- Tests ThemeChange.
+ Tests the return value based on the current playbackState
  */
-void TestMpNowPlayingWidget::testThemeChange()
+void TestMpNowPlayingWidget::testIsBannerAttached()
 {
-    
-    HbEvent event(HbEvent::ThemeChanged);
-    HbColorTheme::global()->setCurrentTheme(1);
-    //TODO final color resources should be qtc_multimedia_trans_normal when available
-    QColor normalColor( HbColorScheme::color("foreground") );
-    //TODO final color resources should be qtc_multimedia_trans_pressed when available
-    QColor pressedColor( HbColorScheme::color("popupbackground") );
-    
-    mTest->changeEvent(&event);
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
+    QCOMPARE(mTestPrivate->isBannerAttached(), false);
+    mTestPrivate->mState = MpPlaybackData::Playing;
+    QCOMPARE(mTestPrivate->isBannerAttached(), true);
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
+    QCOMPARE(mTestPrivate->isBannerAttached(), false);
+    mTestPrivate->mState = MpPlaybackData::Paused;
+    QCOMPARE(mTestPrivate->isBannerAttached(), true);
+    mTestPrivate->mState = MpPlaybackData::NotPlaying;
+    QCOMPARE(mTestPrivate->isBannerAttached(), false);
+    mTestPrivate->mState = MpPlaybackData::Stopped;
+    QCOMPARE(mTestPrivate->isBannerAttached(), true);
     
-    QCOMPARE(mTestPrivate->mPrimaryText->textColor(),normalColor);
-    QCOMPARE(mTestPrivate->mSecondaryText->textColor(),normalColor);
-    QCOMPARE(mTestPrivate->mPlayIconNormal->color(),normalColor);
-    QCOMPARE(mTestPrivate->mPauseIconNormal->color(),normalColor);
-    QCOMPARE(mTestPrivate->mPlayIconPressed->color(),pressedColor);
-    QCOMPARE(mTestPrivate->mPauseIconPressed->color(),pressedColor);
-    
-    HbColorTheme::global()->setCurrentTheme(0);
-    
-    mTest->changeEvent(&event);
-    
-    normalColor = HbColorScheme::color("foreground");
-    pressedColor = HbColorScheme::color("popupbackground");
-    
-    QCOMPARE(mTestPrivate->mPrimaryText->textColor(),normalColor);
-    QCOMPARE(mTestPrivate->mSecondaryText->textColor(),normalColor);
-    QCOMPARE(mTestPrivate->mPlayIconNormal->color(),normalColor);
-    QCOMPARE(mTestPrivate->mPauseIconNormal->color(),normalColor);
-    QCOMPARE(mTestPrivate->mPlayIconPressed->color(),pressedColor);
-    QCOMPARE(mTestPrivate->mPauseIconPressed->color(),pressedColor);
 }
 
+
 // End of file
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/inc/hbcolorscheme.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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: HbColorScheme stub for testing MpNowPlayingWidget
-*
-*/
-
-#ifndef HBCOLORSCHEME_H
-#define HBCOLORSCHEME_H
-
-#include <hbglobal.h>
-#include <QColor>
-
-
-class QGraphicsWidget;
-class QString;
-
-
-class HbColorTheme
-{
-    
-public:
-    // Stub functions
-    ~HbColorTheme();
-
-    static HbColorTheme *global ();
-    
-    QColor color(const QString &colorRole);
-    void setCurrentTheme(int theme);
-    
-private:
-    HbColorTheme ();
-    int mTheme;
-  
-};
-
-class HbColorScheme
-{   
-public:
-    // Stub functions
-    static QColor color( const QString &colorRole );
-    
-};
-
-#endif // HBCOLORSCHEME_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/inc/mpenginefactory.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* 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: MpEngineFactory stub for testing MpNowPlayingWidget
+*
+*/
+
+#ifndef MPENGINEFACTORY_H
+#define MPENGINEFACTORY_H
+
+#include <hbglobal.h>
+
+
+class MpPlaybackData;
+
+class MpEngine
+{   
+public:
+    // Stub functions
+    MpEngine();
+    MpPlaybackData *playbackData();
+    
+public:
+    void playPause();
+    
+private:
+    MpPlaybackData      *mPlaybackData;
+    
+};
+
+class MpEngineFactory
+{
+    
+public:
+    // Stub functions
+private:
+    explicit MpEngineFactory();
+
+public:
+    virtual ~MpEngineFactory();
+    static MpEngineFactory * instance();    
+    static MpEngine *sharedEngine();
+    
+private:
+    Q_DISABLE_COPY( MpEngineFactory )
+    
+    MpEngine             *mSharedEngine;
+  
+};
+
+
+#endif // MPENGINEFACTORY_H
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/inc/mpnowplayingbackend.h	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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: mpnowplayingbackend stub for testing MpNowPlayingWidget
-*
-*/
-
-#ifndef MPNOWPLAYINGBACKEND_H
-#define MPNOWPLAYINGBACKEND_H
-
-//includes
-#include <QObject>
-#include <QMetaType>
-
-enum SimplifiedPlayerState {
-    NotPlaying, //When there is no source
-    Playing,    //When it is playing
-    Paused      //When is not in Playing State
-};
-
-// Register so type can be used in signal and slot connection
-Q_DECLARE_METATYPE(SimplifiedPlayerState)
-
-
-class MpNowPlayingBackEnd : public QObject
-{
-    Q_OBJECT
-
-public:
-
-    // Test utility functions
-    static int getUpdateCounter();
-    static void resetUpdateCounter();
-    static int getPlayPauseCounter();
-    static void resetPlayPauseCounter();
-    void triggerStateUpdate(SimplifiedPlayerState state);
-    void triggerTitleChanged(const QString &text);
-    void triggerArtistChanged(const QString &text);
-
-    // Stub functions
-    explicit MpNowPlayingBackEnd(long int playerId=0);
-    virtual ~MpNowPlayingBackEnd();
-
-signals:
-    void stateUpdate(SimplifiedPlayerState state);
-    void titleChanged(const QString &text);
-    void artistChanged(const QString &text);
-
-public slots:
-    void update();
-    void playPause();
-
-};
-
-#endif  // MPNOWPLAYINGBACKEND_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/inc/mpplaybackdata.h	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: mpplaybackdata stub for testing MpNowPlayingWidget
+*
+*/
+
+#ifndef MPPLAYBACKDATA_H
+#define MPPLAYBACKDATA_H
+
+//includes
+#include <QObject>
+#include <QMetaType>
+
+
+class MpPlaybackData : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    enum SimplifiedState {
+        NotPlaying,
+        Playing,
+        Paused,
+        Stopped
+    };
+    // Test utility functions
+    static int getUpdateCounter();
+    static void resetUpdateCounter();
+    void triggerStateUpdate(SimplifiedState state);
+    void triggerLabelsChanged(const QString &title, const QString &artist);
+
+    // Stub functions
+    explicit MpPlaybackData();
+    virtual ~MpPlaybackData();
+
+signals:
+    void playbackStateChanged();
+    void playbackInfoChanged();
+
+public:
+    const QString& title() const;
+    const QString& artist() const;
+    MpPlaybackData::SimplifiedState playbackState() const;
+
+private:
+    QString                  mArtist;
+    QString                  mTitle;
+    SimplifiedState          mPlaybackState;
+
+};
+
+#endif  // MPPLAYBACKDATA_H
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/src/hbcolorscheme.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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: HbColorScheme stub for testing MpNowPlayingWidget
-*
-*/
-
-
-#include "stub/inc/hbcolorscheme.h"
-
-/*!
- *  Stub function
- */
-HbColorTheme *HbColorTheme::global ()
-{
-    static HbColorTheme instance;
-    return &instance;
-}
-
-/*!
- *  Stub function
- */
-QColor HbColorTheme::color( const QString &colorRole )
-{
-    if ( mTheme == 1 ) {
-        if ( colorRole == QString("foreground") ) {
-            return QColor(255,0,255);
-        }
-        else{
-            return QColor(0,255,0);
-        }
-    }
-    else {
-        if ( colorRole == QString("foreground") ) {
-            return QColor(255,255,0);
-        }
-        else{
-            return QColor(0,255,255);
-        }
-    }
-}
-
-/*!
- *  Stub function
- */
-void HbColorTheme::setCurrentTheme ( int theme )
-{
-    mTheme = theme;
-    
-}
-
-/*!
- *  Stub function
- */
-HbColorTheme::HbColorTheme (): mTheme(0)
-{
-    
-}
-/*!
- *  Stub function
- */
-HbColorTheme::~HbColorTheme ()
-{
-  
-}
-
-/*!
- *  Stub function
- */
-QColor HbColorScheme::color( const QString &colorRole )
-{
-    QColor normalColor(255,255,255);
-    return HbColorTheme::global()->color(colorRole);
-}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/src/mpenginefactory.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MpEngineFactory stub for testing MpNowPlayingWidget
+*
+*/
+
+
+#include "stub/inc/mpenginefactory.h"
+#include "stub/inc/mpplaybackdata.h"
+
+/*!
+ *  Stub function
+ */
+MpEngine::MpEngine() : mPlaybackData(0)
+{
+}
+
+/*!
+ *  Stub function
+ */
+MpPlaybackData *MpEngine::playbackData()
+{
+    mPlaybackData = new MpPlaybackData();
+    return mPlaybackData;
+}
+
+/*!
+ *  Stub function
+ */
+void MpEngine::playPause()
+{
+}
+
+/*!
+ *  Stub function
+ */
+MpEngineFactory::MpEngineFactory()
+    : mSharedEngine( 0 )
+{
+}
+
+/*!
+ *  Stub function
+ */
+MpEngineFactory::~MpEngineFactory()
+{
+}
+
+/*!
+ *  Stub function
+ */
+MpEngineFactory * MpEngineFactory::instance()
+{
+    static MpEngineFactory instance;
+    return &instance;
+}
+
+/*!
+ *  Stub function
+ */
+MpEngine *MpEngineFactory::sharedEngine()
+{
+    if ( !instance()->mSharedEngine ) {
+        instance()->mSharedEngine = new MpEngine();
+    }
+    return instance()->mSharedEngine;
+}
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/src/mpnowplayingbackend.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +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: mpxplaybackutility stub for testing MpNowPlayingBackEnd
-*
-*/
-
-#include "stub/inc/mpnowplayingbackend.h"
-
-
-int gUpdateCounter = 0;
-int gPlayPauseCounter = 0;
-
-
-/*!
- Returns gUpdateCounter.
- gUpdateCounter counts the number of MpNowPlayingBackEnd::update calls.
- */
-int MpNowPlayingBackEnd::getUpdateCounter()
-{
-    return gUpdateCounter;
-}
-
-/*!
- Resets gUpdateCounter to zero.
- */
-void MpNowPlayingBackEnd::resetUpdateCounter()
-{
-    gUpdateCounter = 0;
-}
-
-/*!
- Returns gPlayPauseCounter.
- gPlayPauseCounter counts the number of MpNowPlayingBackEnd::playPause calls.
- */
-int MpNowPlayingBackEnd::getPlayPauseCounter()
-{
-    return gPlayPauseCounter;
-}
-
-/*!
- Resets gPlayPauseCounter to zero.
- */
-void MpNowPlayingBackEnd::resetPlayPauseCounter()
-{
-    gPlayPauseCounter = 0;
-}
-
-/*!
- Causes signal stateUpdate to be emitted.
- */
-void MpNowPlayingBackEnd::triggerStateUpdate(SimplifiedPlayerState state)
-{
-    emit stateUpdate(state);
-}
-
-/*!
- Causes signal titleChanged to be emitted.
- */
-void MpNowPlayingBackEnd::triggerTitleChanged(const QString &text)
-{
-    emit titleChanged(text);
-}
-
-/*!
- Causes signal artistChanged to be emitted.
- */
-void MpNowPlayingBackEnd::triggerArtistChanged(const QString &text)
-{
-    emit artistChanged(text);
-}
-
-/*!
- Stub function.
- */
-MpNowPlayingBackEnd::MpNowPlayingBackEnd( long int playerId )
-{
-    Q_UNUSED(playerId);
-}
-
-/*!
- Stub function.
- */
-MpNowPlayingBackEnd::~MpNowPlayingBackEnd()
-{
-}
-
-/*!
- Stub function.
- */
-void MpNowPlayingBackEnd::update()
-{
-    gUpdateCounter++;
-}
-
-/*!
- Stub function.
- */
-void MpNowPlayingBackEnd::playPause()
-{
-    gPlayPauseCounter++;
-}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/src/mpplaybackdata.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,100 @@
+/*
+* 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: MpPlaybackData stub for testing mpnowplayingwidget
+*
+*/
+
+#include "stub/inc/mpplaybackdata.h"
+
+
+int gUpdateCounter = 0;
+
+
+/*!
+ Returns gUpdateCounter.
+ gUpdateCounter counts the number of MpNowPlayingBackEnd::update calls.
+ */
+int MpPlaybackData::getUpdateCounter()
+{
+    return gUpdateCounter;
+}
+
+/*!
+ Resets gUpdateCounter to zero.
+ */
+void MpPlaybackData::resetUpdateCounter()
+{
+    gUpdateCounter = 0;
+}
+
+/*!
+ Causes signal stateUpdate to be emitted.
+ */
+void MpPlaybackData::triggerStateUpdate(SimplifiedState state)
+{
+    mPlaybackState = state;
+    emit playbackStateChanged();
+    
+}
+
+/*!
+ Causes signal titleChanged to be emitted.
+ */
+void MpPlaybackData::triggerLabelsChanged(const QString &title, const QString &artist )
+{
+    mArtist = artist;
+    mTitle = title;
+    emit playbackInfoChanged();;
+}
+
+/*!
+ Stub function.
+ */
+MpPlaybackData::MpPlaybackData()
+    : mPlaybackState(NotPlaying)
+{
+    gUpdateCounter++;
+}
+
+/*!
+ Stub function.
+ */
+MpPlaybackData::~MpPlaybackData()
+{
+}
+
+/*!
+ Stub function.
+ */
+const QString& MpPlaybackData::title() const
+{
+    return mTitle;
+}
+
+/*!
+ Stub function.
+ */
+const QString& MpPlaybackData::artist() const
+{
+    return mArtist;
+}
+
+/*!
+ Stub function.
+ */
+MpPlaybackData::SimplifiedState MpPlaybackData::playbackState() const
+{
+    return mPlaybackState;
+}
+
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/unittest_mpnowplayingwidget.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/unittest_mpnowplayingwidget.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -16,7 +16,10 @@
 
 TEMPLATE = app
 CONFIG += qtestlib hb
-TARGET = 
+HB += hbfeedback
+CONFIG += symbian_test
+TARGET = unittest_mpnowplayingwidget
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \
@@ -30,17 +33,18 @@
 
 # Input
 HEADERS += inc/unittest_mpnowplayingwidget.h \
-           stub/inc/mpnowplayingbackend.h \
-           stub/inc/hbcolorscheme.h \
+           stub/inc/mpplaybackdata.h \
+           stub/inc/mpenginefactory.h \
            ../../../../inc/mpnowplayingwidget.h \
            ../../inc/mpnowplayingwidget_p.h
                
 SOURCES += src/unittest_mpnowplayingwidget.cpp \
-           stub/src/mpnowplayingbackend.cpp \
-           stub/src/hbcolorscheme.cpp \
+           stub/src/mpplaybackdata.cpp \
+           stub/src/mpenginefactory.cpp \
            ../../src/mpnowplayingwidget.cpp \
            ../../src/mpnowplayingwidget_p.cpp
 
 RESOURCES += ../../resources/mpnowplayingbanner.qrc
 
 DEFINES += BUILD_MPNOWPLAYINGBANNER
+
--- a/utilities/mpsettingsmanager/bwins/mpsettingsmanageru.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/bwins/mpsettingsmanageru.def	Thu Jul 22 16:32:33 2010 +0100
@@ -23,4 +23,13 @@
 	?presetChanged@MpSettingsManager@@IAEXH@Z @ 22 NONAME ; void MpSettingsManager::presetChanged(int)
 	?setPreset@MpSettingsManager@@SAXH@Z @ 23 NONAME ; void MpSettingsManager::setPreset(int)
 	?preset@MpSettingsManager@@SAHXZ @ 24 NONAME ; int MpSettingsManager::preset(void)
+	?setInspireMe@MpSettingsManager@@SAX_N@Z @ 25 NONAME ; void MpSettingsManager::setInspireMe(bool)
+	?inspireMe@MpSettingsManager@@SA_NXZ @ 26 NONAME ; bool MpSettingsManager::inspireMe(void)
+	?InspireMeChanged@MpSettingsManager@@IAEX_N@Z @ 27 NONAME ; void MpSettingsManager::InspireMeChanged(bool)
+	?setSongDetailsGb@MpSettingsManager@@SAX_N@Z @ 28 NONAME ; void MpSettingsManager::setSongDetailsGb(bool)
+	?SongDetailsGbChanged@MpSettingsManager@@IAEX_N@Z @ 29 NONAME ; void MpSettingsManager::SongDetailsGbChanged(bool)
+	?songDetailsGb@MpSettingsManager@@SA_NXZ @ 30 NONAME ; bool MpSettingsManager::songDetailsGb(void)
+	?mtpInfoUrl@MpSettingsManager@@SA?AVQString@@XZ @ 31 NONAME ; class QString MpSettingsManager::mtpInfoUrl(void)
+	?showMtpInfo@MpSettingsManager@@SA_NXZ @ 32 NONAME ; bool MpSettingsManager::showMtpInfo(void)
+	?stopShowingMtpInfo@MpSettingsManager@@SAXXZ @ 33 NONAME ; void MpSettingsManager::stopShowingMtpInfo(void)
 
Binary file utilities/mpsettingsmanager/conf/musicplayer.confml has changed
Binary file utilities/mpsettingsmanager/conf/musicplayer_10207C92.crml has changed
--- a/utilities/mpsettingsmanager/eabi/mpsettingsmanageru.def	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/eabi/mpsettingsmanageru.def	Thu Jul 22 16:32:33 2010 +0100
@@ -23,4 +23,13 @@
 	_ZN17MpSettingsManager13presetChangedEi @ 22 NONAME
 	_ZN17MpSettingsManager6presetEv @ 23 NONAME
 	_ZN17MpSettingsManager9setPresetEi @ 24 NONAME
+	_ZN17MpSettingsManager12setInspireMeEb @ 25 NONAME
+	_ZN17MpSettingsManager16InspireMeChangedEb @ 26 NONAME
+	_ZN17MpSettingsManager9inspireMeEv @ 27 NONAME
+	_ZN17MpSettingsManager13songDetailsGbEv @ 28 NONAME
+	_ZN17MpSettingsManager16setSongDetailsGbEb @ 29 NONAME
+	_ZN17MpSettingsManager20SongDetailsGbChangedEb @ 30 NONAME
+	_ZN17MpSettingsManager10mtpInfoUrlEv @ 31 NONAME
+	_ZN17MpSettingsManager11showMtpInfoEv @ 32 NONAME
+	_ZN17MpSettingsManager18stopShowingMtpInfoEv @ 33 NONAME
 
--- a/utilities/mpsettingsmanager/inc/mpsettingsmanagerdefs.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/inc/mpsettingsmanagerdefs.h	Thu Jul 22 16:32:33 2010 +0100
@@ -26,5 +26,9 @@
     const qint32 KMPCenRepSettingPresetIdKey         = {0x00000004};
     const qint32 KMPCenRepSettingRamdiskEnabled      = {0x00000005};
     const qint32 KMPCenRepSettingRamdiskMaxDiskSpace = {0x00000006};
+    const qint32 KMPCenRepSettingInspireMeKey        = {0x00000007};
+    const qint32 KMPCenRepSettingSongDetailsGBKey    = {0x00000008};
+    const qint32 KMusicPlayerShowMtpInfoKey          = {0x00000009};
+    const qint32 KMusicPlayerMtpInfoUrlKey           = {0x0000000A};
 
 #endif	// MPSETTINGSMANAGERDEFS_H
--- a/utilities/mpsettingsmanager/mpsettingsmanager.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/mpsettingsmanager.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -19,34 +19,28 @@
 TEMPLATE = lib
 CONFIG += hb qt
 TARGET = mpsettingsmanager
-
-TARGET.CAPABILITY = All -TCB
+symbian: { 
+    TARGET.UID3 = 0x10207C68
+    MMP_RULES += "DEFFILE mpsettingsmanager.def"
+    defFilePath = .
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.EPOCALLOWDLLDATA = 1
+    BLD_INF_RULES.prj_exports += \
+        "$${LITERAL_HASH}include <platform_paths.hrh>" \
+        "conf/musicplayer.confml                   APP_LAYER_CONFML(musicplayer.confml)" \
+        "conf/musicplayer_10207C92.crml        APP_LAYER_CRML(musicplayer_10207C92.crml)"
+}
+DEFINES += BUILD_MPSETTINGSMANAGER
 
 INCLUDEPATH += . \
                inc \
                ../../inc
-               
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
 
-LIBS+= -lxqsettingsmanager
-
-symbian:TARGET.EPOCALLOWDLLDATA	= 1
-
-HEADERS = ../../inc/mpsettingsmanager.h 
-    
-SOURCES += src/mpsettingsmanager.cpp
-DEFINES += BUILD_MPSETTINGSMANAGER
-
+LIBS += -lxqsettingsmanager.dll
 
-myDefInclude = "NOSTRICTDEF" \
-"$${LITERAL_HASH}if defined(WINS)"\
-"DEFFILE  bwins/mpsettingsmanageru.def "\
-"$${LITERAL_HASH}else "\
-"DEFFILE  eabi/mpsettingsmanageru.def "\
-"$${LITERAL_HASH}endif"
-MMP_RULES += myDefInclude
+# Input
+HEADERS += ../../inc/mpsettingsmanager.h 
 
-BLD_INF_RULES.prj_exports += \
-     "$${LITERAL_HASH}include <platform_paths.hrh>" \
-     "conf/musicplayer.confml                   APP_LAYER_CONFML(musicplayer.confml)" \
-     "conf/musicplayer_10207C92.crml        APP_LAYER_CRML(musicplayer_10207C92.crml)"
+SOURCES += src/mpsettingsmanager.cpp
+
--- a/utilities/mpsettingsmanager/src/mpsettingsmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/src/mpsettingsmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -82,6 +82,28 @@
     mPreset = mSettingsManager->readItemValue(presetProfileKey).toInt();
     mSettingsManager->startMonitoring(presetProfileKey);
 
+    XQSettingsKey InspireMeKey(XQSettingsKey::TargetCentralRepository,
+             KMPCenRepSettingsFeature,
+             KMPCenRepSettingInspireMeKey);
+    mInspireMe = mSettingsManager->readItemValue(InspireMeKey).toInt();
+    mSettingsManager->startMonitoring(InspireMeKey);
+    
+    XQSettingsKey SongDetailsGbKey(XQSettingsKey::TargetCentralRepository,
+             KMPCenRepSettingsFeature,
+             KMPCenRepSettingSongDetailsGBKey);
+    mSongDetailsGb = mSettingsManager->readItemValue(SongDetailsGbKey).toInt();
+    mSettingsManager->startMonitoring(SongDetailsGbKey);
+
+    XQSettingsKey showMtpInfo(XQSettingsKey::TargetCentralRepository,
+            KMPCenRepSettingsFeature,
+            KMusicPlayerShowMtpInfoKey);
+    mShowMtpInfo = mSettingsManager->readItemValue(showMtpInfo).toInt();
+    mSettingsManager->startMonitoring(showMtpInfo);
+
+    XQSettingsKey mtpInfoUrl(XQSettingsKey::TargetCentralRepository,
+            KMPCenRepSettingsFeature,
+            KMusicPlayerMtpInfoUrlKey);
+    mMtpInfoUrl = mSettingsManager->readItemValue(mtpInfoUrl, XQSettingsManager::TypeString).toString();
     TX_EXIT
 }
 
@@ -134,6 +156,38 @@
     return instance()->mPreset;
 }
 
+/*!
+ Returns the inspireMe setting.
+ */
+bool MpSettingsManager::inspireMe()
+{
+    return instance()->mInspireMe;
+}
+
+/*!
+ Returns the SongDetails group Box setting.
+ */
+bool MpSettingsManager::songDetailsGb()
+{
+    return instance()->mSongDetailsGb;
+}
+
+/*!
+ Returns wheter mtp info should be showed.
+ */
+bool MpSettingsManager::showMtpInfo()
+{
+    return instance()->mShowMtpInfo;
+}
+
+/*!
+ Returns mtp info url.
+ */
+QString MpSettingsManager::mtpInfoUrl()
+{
+    return instance()->mMtpInfoUrl;
+}
+
 
 /*!
  Slot to be called when a setting is changed.
@@ -158,6 +212,20 @@
             TX_LOG_ARGS("Preset changed to "<< mPreset);
             emit presetChanged( mPreset );
             break;
+        case KMPCenRepSettingInspireMeKey:
+            mInspireMe = value.toInt();
+            TX_LOG_ARGS("Inspire Me changed to "<< mInspireMe);
+            emit InspireMeChanged( mInspireMe );
+            break;
+        case KMPCenRepSettingSongDetailsGBKey:
+            mSongDetailsGb = value.toInt();
+            TX_LOG_ARGS("SongDetailsGB changed to "<< mSongDetailsGb);
+            emit SongDetailsGbChanged( mSongDetailsGb );
+            break;
+        case KMusicPlayerShowMtpInfoKey:
+            mShowMtpInfo = value.toInt();
+            TX_LOG_ARGS("Show MTP info changed to "<< mShowMtpInfo);
+            break;
         default :
             TX_LOG_ARGS(" unhandled cenrep key: " << key.key() << 
                     "; should never get here.");
@@ -210,4 +278,46 @@
     TX_EXIT
 }
 
+/*!
+ Slot to be called to request an update on the \a InspireMe setting.
+ */
+void MpSettingsManager::setInspireMe(bool inspireme)
+{
+    TX_STATIC_ENTRY_ARGS("Inspire Me=" << inspireme);
+    XQSettingsKey inspireMeProfileKey(XQSettingsKey::TargetCentralRepository, 
+            KMPCenRepSettingsFeature, 
+            KMPCenRepSettingInspireMeKey);
+    instance()->mSettingsManager->writeItemValue(
+            inspireMeProfileKey, 
+            inspireme ? 1 : 0);
+    TX_EXIT
+}
 
+/*!
+ Slot to be called to request an update on the \a SongDetails Group Box setting.
+ */
+void MpSettingsManager::setSongDetailsGb(bool songdetails)
+{
+    TX_STATIC_ENTRY_ARGS("SongDetailsGb=" << songdetails);
+    XQSettingsKey songDetailsGbProfileKey(XQSettingsKey::TargetCentralRepository, 
+            KMPCenRepSettingsFeature, 
+            KMPCenRepSettingSongDetailsGBKey);
+    instance()->mSettingsManager->writeItemValue(
+            songDetailsGbProfileKey, 
+            songdetails ? 1 : 0);
+    TX_EXIT
+}
+
+/*!
+ Slot to be called to stop showing mtp info.
+ */
+void MpSettingsManager::stopShowingMtpInfo()
+{
+    TX_STATIC_ENTRY_ARGS("preset=" << preset);
+    XQSettingsKey showMtpInfo(XQSettingsKey::TargetCentralRepository,
+            KMPCenRepSettingsFeature,
+            KMusicPlayerShowMtpInfoKey);
+    instance()->mSettingsManager->writeItemValue(showMtpInfo, 0);
+    TX_EXIT
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpsettingsmanager/tsrc/tsrc.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -0,0 +1,20 @@
+#
+# 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 = subdirs
+
+SUBDIRS = unittest_mpsettingsmanager
+
--- a/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/inc/unittest_mpsettingsmanager.h	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/inc/unittest_mpsettingsmanager.h	Thu Jul 22 16:32:33 2010 +0100
@@ -41,13 +41,20 @@
 private slots:
     void testConstructor(); //don't change the order, this should be the first test.
     void testInstanceConstruction();
+    void testFirstStartupGet();
     void testShuffleGetAndSet();
     void testRepeatGetAndSet();
     void testPresetGetAndSet();
+    void testInspireMeGetAndSet();
+    void testSongDetailsGbGetAndSet();
+    void testShowMtpInfoGetAndStop();
+    void testMtpInfoUrlGet();
     void testValueChangedShuffleCase();
     void testValueChangedRepeatCase();
     void testValueChangedPresetCase();
-
+    void testValueChangedInspireMe();
+    void testValueChangedSongDetailsGb();
+    void testValueChangedShowMtpInfo();
 
 };
 
--- a/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/src/unittest_mpsettingsmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/src/unittest_mpsettingsmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -17,9 +17,6 @@
 
 #include <QSignalSpy>
 #include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
 #include "mpsettingsmanagerdefs.h"
 
 
@@ -42,18 +39,19 @@
  */
 int main(int argc, char *argv[])
 {
-    HbApplication app(argc, argv);
-    HbMainWindow window;
     TestMpSettingsManager tv;
 
-    char *pass[3];
-    pass[0] = argv[0];
-    pass[1] = "-o";
-    pass[2] = "c:\\data\\unittest_mpsettingsmanager.txt";
+    if ( argc > 1 ) {
+        return QTest::qExec( &tv, argc, argv);
+    }
+    else {
+        char *pass[3];
+        pass[0] = argv[0];
+        pass[1] = "-o";
+        pass[2] = "c:\\data\\unittest_mpsettingsmanager.txt";
 
-    int res = QTest::qExec(&tv, 3, pass);
-
-    return res;
+        return QTest::qExec(&tv, 3, pass);
+    }
 }
 
 TestMpSettingsManager::TestMpSettingsManager()
@@ -104,15 +102,40 @@
     test = new MpSettingsManager();
     QVERIFY(test);
     QVERIFY(test->mSettingsManager);
-    
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingFirstStartupKey),1);
+    QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingFirstStartupKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingFirstStartupKey),0);
+    QCOMPARE(test->mFirstStartup, true);
+
     QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingShuffleKey),1);
     QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingShuffleKey), 1);
     QCOMPARE(test->mShuffle, true);
-    
+
     QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingRepeatKey),1);
     QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingRepeatKey),1);
     QCOMPARE(test->mRepeat, true);
-    
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingPresetIdKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingPresetIdKey),1);
+    QCOMPARE(test->mPreset, 1);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingInspireMeKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingInspireMeKey),1);
+    QCOMPARE(test->mInspireMe, true);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingSongDetailsGBKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingSongDetailsGBKey),1);
+    QCOMPARE(test->mSongDetailsGb, true);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMusicPlayerShowMtpInfoKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMusicPlayerShowMtpInfoKey),1);
+    QCOMPARE(test->mShowMtpInfo, true);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMusicPlayerMtpInfoUrlKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMusicPlayerMtpInfoUrlKey),0);
+    QCOMPARE(test->mMtpInfoUrl, QString("testText"));
+
     delete test;
     test = 0;
 }
@@ -126,19 +149,56 @@
     test = MpSettingsManager::instance();
     QVERIFY(test);
     QVERIFY(test->mSettingsManager);
-    
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingFirstStartupKey),1);
+    QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingFirstStartupKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingFirstStartupKey),0);
+    QCOMPARE(test->mFirstStartup, true);
+
     QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingShuffleKey),1);
     QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingShuffleKey), 1);
     QCOMPARE(test->mShuffle, true);
-    
+
     QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingRepeatKey),1);
     QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingRepeatKey),1);
     QCOMPARE(test->mRepeat, true);
-    
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingPresetIdKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingPresetIdKey),1);
+    QCOMPARE(test->mPreset, 1);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingInspireMeKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingInspireMeKey),1);
+    QCOMPARE(test->mInspireMe, true);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingSongDetailsGBKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingSongDetailsGBKey),1);
+    QCOMPARE(test->mSongDetailsGb, true);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMusicPlayerShowMtpInfoKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMusicPlayerShowMtpInfoKey),1);
+    QCOMPARE(test->mShowMtpInfo, true);
+
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMusicPlayerMtpInfoUrlKey),1);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMusicPlayerMtpInfoUrlKey),0);
+    QCOMPARE(test->mMtpInfoUrl, QString("testText"));
+
     QCOMPARE(test, MpSettingsManager::instance()); // test that instance returns the singleton
 }
 
 /*!
+testFirstStartupGet
+ */
+void TestMpSettingsManager::testFirstStartupGet()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+
+    QCOMPARE(test->firstStartup(), true);
+
+}
+
+/*!
 testShuffleGetAndSet
  */
 void TestMpSettingsManager::testShuffleGetAndSet()
@@ -150,13 +210,13 @@
     test->mShuffle = true;
     MpSettingsManager::setShuffle(false);
     QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingShuffleKey),QVariant(false));
-    QCOMPARE(test->mShuffle, true); //should not chaqnge until stored in cenrep
+    QCOMPARE(MpSettingsManager::shuffle(), true); //should not chaqnge until stored in cenrep
 
   
     test->mShuffle = false;
     test->setShuffle(true);
     QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingShuffleKey),QVariant(true));
-    QCOMPARE(test->mShuffle, false);//should not chaqnge until stored in cenrep
+    QCOMPARE(MpSettingsManager::shuffle(), false);//should not chaqnge until stored in cenrep
 
     //make sure there are not unecesary request to cenrep.
     QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingShuffleKey),2);
@@ -176,13 +236,13 @@
     test->mRepeat = true;
     MpSettingsManager::setRepeat(false);
     QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingRepeatKey),QVariant(false));
-    QCOMPARE(test->mRepeat, true); //should not chaqnge until stored in cenrep
+    QCOMPARE(MpSettingsManager::repeat(), true); //should not chaqnge until stored in cenrep
 
   
     test->mRepeat = false;
     test->setRepeat(true);
     QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingRepeatKey),QVariant(true));
-    QCOMPARE(test->mRepeat, false);//should not chaqnge until stored in cenrep
+    QCOMPARE(MpSettingsManager::repeat(), false);//should not chaqnge until stored in cenrep
 
     //make sure there are not unecesary request to cenrep.
     QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingRepeatKey),2);
@@ -202,13 +262,13 @@
     test->mPreset = 1;
     MpSettingsManager::setPreset(0);
     QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingPresetIdKey),QVariant(0));
-    QCOMPARE(test->mPreset, 1); //should not chaqnge until stored in cenrep
+    QCOMPARE(MpSettingsManager::preset(), 1); //should not chaqnge until stored in cenrep
 
   
     test->mPreset = 0;
     test->setPreset(1);
     QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingPresetIdKey),QVariant(1));
-    QCOMPARE(test->mPreset, 0);//should not chaqnge until stored in cenrep
+    QCOMPARE(MpSettingsManager::preset(), 0);//should not chaqnge until stored in cenrep
 
     //make sure there are not unecesary request to cenrep.
     QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingPresetIdKey),2);
@@ -217,6 +277,100 @@
 }
 
 /*!
+testInspireMeGetAndSet
+ */
+void TestMpSettingsManager::testInspireMeGetAndSet()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+    test->mSettingsManager->clear();
+    
+    test->mInspireMe = true;
+    MpSettingsManager::setInspireMe(false);
+    QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingInspireMeKey),QVariant(false));
+    QCOMPARE(MpSettingsManager::inspireMe(), true); //should not chaqnge until stored in cenrep
+
+
+    test->mInspireMe = false;
+    test->setInspireMe(true);
+    QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingInspireMeKey),QVariant(true));
+    QCOMPARE(MpSettingsManager::inspireMe(), false);//should not chaqnge until stored in cenrep
+
+    //make sure there are not unecesary request to cenrep.
+    QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingInspireMeKey), 2);
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingInspireMeKey), 0);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingInspireMeKey), 0);
+}
+
+/*!
+testSongDetailsGbGetAndSet
+ */
+void TestMpSettingsManager::testSongDetailsGbGetAndSet()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+    test->mSettingsManager->clear();
+    
+    test->mSongDetailsGb = true;
+    MpSettingsManager::setSongDetailsGb(false);
+    QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingSongDetailsGBKey),QVariant(false));
+    QCOMPARE(MpSettingsManager::songDetailsGb(), true); //should not chaqnge until stored in cenrep
+
+
+    test->mSongDetailsGb = false;
+    test->setSongDetailsGb(true);
+    QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingSongDetailsGBKey),QVariant(true));
+    QCOMPARE(MpSettingsManager::songDetailsGb(), false);//should not chaqnge until stored in cenrep
+
+    //make sure there are not unecesary request to cenrep.
+    QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingSongDetailsGBKey), 2);
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingSongDetailsGBKey), 0);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingSongDetailsGBKey), 0);
+}
+
+/*!
+testShowMtpInfoGetAndStop
+ */
+void TestMpSettingsManager::testShowMtpInfoGetAndStop()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+    test->mSettingsManager->clear();
+    
+    test->mShowMtpInfo = true;
+    MpSettingsManager::stopShowingMtpInfo();
+    QCOMPARE(test->mSettingsManager->writeRequestValue(KMusicPlayerShowMtpInfoKey),QVariant(false));
+    QCOMPARE(MpSettingsManager::showMtpInfo(), true); //should not chaqnge until stored in cenrep
+
+  
+    test->mShowMtpInfo = false;
+    QCOMPARE(MpSettingsManager::showMtpInfo(), false);
+
+    //make sure there are not unecesary request to cenrep.
+    QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMusicPlayerShowMtpInfoKey), 1);
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMusicPlayerShowMtpInfoKey), 0);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMusicPlayerShowMtpInfoKey), 0);
+}
+
+/*!
+testMtpInfoUrlGet
+ */
+void TestMpSettingsManager::testMtpInfoUrlGet()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+    test->mSettingsManager->clear();
+    
+    test->mMtpInfoUrl = QString("http:\\nokia.com");
+    QCOMPARE(MpSettingsManager::mtpInfoUrl(), QString("http:\\nokia.com"));
+
+    //make sure there are not unecesary request to cenrep.
+    QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMusicPlayerMtpInfoUrlKey), 0);
+    QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMusicPlayerMtpInfoUrlKey), 0);
+    QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMusicPlayerMtpInfoUrlKey), 0);
+}
+
+/*!
  testValueChangedShuffleCase.
  */ 
 void TestMpSettingsManager::testValueChangedShuffleCase()
@@ -288,5 +442,70 @@
 
 }
 
+/*!
+ testValueChangedInspireMe.
+ */ 
+void TestMpSettingsManager::testValueChangedInspireMe()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+      
+    XQSettingsKey InspireMeKey(XQSettingsKey::TargetCentralRepository, 
+            KMPCenRepSettingsFeature, 
+            KMPCenRepSettingInspireMeKey);
+    test->mInspireMe = true;
+    test->valueChanged(InspireMeKey, QVariant(0));
+    QCOMPARE(test->mInspireMe, false);
+
+    test->mInspireMe = false;
+    QSignalSpy spy( test, SIGNAL(InspireMeChanged(bool) ) );
+    test->mSettingsManager->emitValueChanged(InspireMeKey, QVariant(1));
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(spy.at(0).at(0), QVariant(true) );
+    QCOMPARE(test->mInspireMe, true);
+}
+
+/*!
+ testValueChangedSongDetailsGb.
+ */ 
+void TestMpSettingsManager::testValueChangedSongDetailsGb()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+      
+    XQSettingsKey SongDetailsGbKey(XQSettingsKey::TargetCentralRepository, 
+            KMPCenRepSettingsFeature, 
+            KMPCenRepSettingSongDetailsGBKey);
+    test->mSongDetailsGb = true;
+    test->valueChanged(SongDetailsGbKey, QVariant(0));
+    QCOMPARE(test->mSongDetailsGb, false);
+
+    test->mSongDetailsGb = false;
+    QSignalSpy spy( test, SIGNAL(SongDetailsGbChanged(bool) ) );
+    test->mSettingsManager->emitValueChanged(SongDetailsGbKey, QVariant(1));
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(spy.at(0).at(0), QVariant(true) );
+    QCOMPARE(test->mSongDetailsGb, true);
+}
+
+/*!
+ testValueChangedShowMtpInfo.
+ */ 
+void TestMpSettingsManager::testValueChangedShowMtpInfo()
+{
+    MpSettingsManager *test;
+    test = MpSettingsManager::instance();
+      
+    XQSettingsKey showMtpInfo(XQSettingsKey::TargetCentralRepository, 
+            KMPCenRepSettingsFeature, 
+            KMusicPlayerShowMtpInfoKey);
+    test->mShowMtpInfo = true;
+    test->valueChanged(showMtpInfo, QVariant(0));
+    QCOMPARE(test->mShowMtpInfo, false);
+
+    test->mShowMtpInfo = false;
+    test->mSettingsManager->emitValueChanged(showMtpInfo, QVariant(1));
+    QCOMPARE(test->mShowMtpInfo, true);
+}
 // End of file
 
--- a/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/stub/src/xqsettingsmanager.cpp	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/stub/src/xqsettingsmanager.cpp	Thu Jul 22 16:32:33 2010 +0100
@@ -38,15 +38,24 @@
 */
 QVariant XQSettingsManager::readItemValue(const XQSettingsKey& key, XQSettingsManager::Type type)
 {
-    Q_UNUSED(type);
+
     if ( mReadCount.contains( key.key() ) ) {
         mReadCount.insert(key.key(),  mReadCount.take ( key.key() ) + 1 ); 
     }
     else {
         mReadCount.insert(key.key(), 1); 
     }
-    // 1 seems compatible for int and bool keys, change it if new key types are added.
-    return QVariant(1);
+    
+    QVariant result;
+    switch ( type ) {
+        case TypeString :
+            result = QString("testText") ;
+            break;
+        default:
+            result = int(1);
+            break;
+    }
+    return result;
 }
 
 /*!
--- a/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/unittest_mpsettingsmanager.pro	Fri Jun 11 16:24:02 2010 +0100
+++ b/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/unittest_mpsettingsmanager.pro	Thu Jul 22 16:32:33 2010 +0100
@@ -15,8 +15,10 @@
 #
 
 TEMPLATE = app
-CONFIG += qtestlib hb
-TARGET = 
+CONFIG += qtestlib
+CONFIG += symbian_test
+TARGET = unittest_mpsettingsmanager
+TARGET.CAPABILITY = CAP_APPLICATION
 
 DEPENDPATH += .
 INCLUDEPATH += . \