--- 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 ©right );
+ 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 ©right )
+{
+ 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", ©right);
+ 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 ©right );
+ 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 ©right )
+{
+ 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 ¤tName );
void openRenamePlaylistItemDialog( const QString ¤tName );
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 = "♫";
+
+
+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 ©right );
+ 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 ©right )
+{
+ 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("♫ TestArtist: TestTitle http://music.ovi.com"));
+ QCOMPARE(mTest->objectReservedLength(), QString("♫ 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("♫ Unknown: TestTitle http://music.ovi.com"));
+ QCOMPARE(mTest->objectReservedLength(), QString("♫ 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("♫ TestArtist: Unknown http://music.ovi.com"));
+ QCOMPARE(mTest->objectReservedLength(), QString("♫ TestArtist: Unknown http://music.ovi.com").length());
+ delete song;
+}
+
+
+void TestMpShareData::testObjectContentWithoutMetaInfo()
+{
+ MpSongData *song = new MpSongData();
+ mTest->setSongData(song);
+ QCOMPARE(mTest->objectContent(), QString("♫ Unknown: Unknown http://music.ovi.com"));
+ QCOMPARE(mTest->objectReservedLength(), QString("♫ 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("♫ 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 += . \