--- a/app/app.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/app/app.pro Fri Apr 16 14:56:30 2010 +0300
@@ -45,32 +45,19 @@
# Input
LIBS += -lecom.dll \
- -lmpxplaybackutility.dll \
- -lmpxcollectionutility.dll \
- -lmpxcommon.dll \
-lestor.dll \
-lfbscli.dll \
-lxqplugins.dll \
-lmpxviewframeworkqt.dll \
- -lhbcore.dll \
- -lhbwidgets.dll \
- -lhbtools.dll \
- -lremconcoreapi.dll \
- -lremconinterfacebase.dll \
-lxqserviceutil \
- -lmusicfetcher
+ -lmusicfetcher \
+ -lmpengine
SOURCES += src/main.cpp \
- src/mpmainwindow.cpp \
- src/mpmediakeyhandler.cpp \
- src/mpmediakeyhandler_p.cpp \
- src/mpmediakeyremconresponse.cpp
+ src/mpmainwindow.cpp
-HEADERS = inc/mpmainwindow.h \
- inc/mpmediakeyhandler.h \
- inc/mpmediakeyhandler_p.h\
- inc/mpmediakeyremconresponse.h
+HEADERS = inc/mpmainwindow.h
MMP_RULES+=EXPORTUNFROZEN
@@ -80,4 +67,6 @@
DEPLOYMENT += addImages
}
-RESOURCES += resources/musiplayerapp.qrc
\ No newline at end of file
+RESOURCES += resources/musiplayerapp.qrc
+
+TRANSLATIONS = musicplayer.ts
\ No newline at end of file
--- a/app/inc/mpmainwindow.h Fri Mar 19 09:28:13 2010 +0200
+++ b/app/inc/mpmainwindow.h Fri Apr 16 14:56:30 2010 +0300
@@ -25,7 +25,6 @@
// Forward declarations
class MpxViewPlugin;
-class MpMediaKeyHandler;
class MusicFetcher;
// Class declaration
@@ -38,7 +37,9 @@
enum ViewType {
CollectionView = 1,
- PlaybackView };
+ PlaybackView,
+ SettingsView,
+ DetailsView };
MpMainWindow();
~MpMainWindow();
@@ -48,6 +49,8 @@
public slots:
void handleCommand( int commandCode );
+ void handleLibraryUpdated();
+ void handleExitApplication();
private:
void activateView(ViewType);
@@ -55,10 +58,11 @@
void disconnectView();
private:
- MpMediaKeyHandler *mMediaKeyHandler; // Own
MpxViewPlugin *mCollectionViewPlugin; // Not own
MpxViewPlugin *mPlaybackViewPlugin; // Not own
+ MpxViewPlugin *mSettingsViewPlugin; // Not own
+ MpxViewPlugin *mDetailsViewPlugin; // Not own
MpxViewPlugin *mCurrentViewPlugin; // Not own
MpxViewPlugin *mPreviousViewPlugin; // Not own
MusicFetcher *mMusicFetcher; // Own
--- a/app/inc/mpmediakeyhandler.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +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 media key handler.
-*
-*/
-
-#ifndef MPMEDIAKEYHANDLER_H
-#define MPMEDIAKEYHANDLER_H
-
-#include <qobject>
-
-class MpMediaKeyHandlerPrivate;
-
-class MpMediaKeyHandler : public QObject
-{
- Q_OBJECT
-
- friend class MpMediaKeyHandlerPrivate;
-
-public:
-
- explicit MpMediaKeyHandler( QObject *parent = 0 );
- virtual ~MpMediaKeyHandler();
-
-signals:
-
- void volumeChanged( int volume );
- void errorOccured( int error );
-
-private:
-
- Q_DISABLE_COPY(MpMediaKeyHandler)
- MpMediaKeyHandlerPrivate *d_ptr;
-
-};
-
-#endif // MPMEDIAKEYHANDLER_H
--- a/app/inc/mpmediakeyhandler_p.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +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 media key handler - private implementation.
-*
-*/
-
-#ifndef MPMEDIAKEYHANDLER_P_H
-#define MPMEDIAKEYHANDLER_P_H
-
-
-#include <remconcoreapitargetobserver.h>
-#include <mpxplaybackobserver.h>
-#include <mpxplaybackframeworkdefs.h>
-
-class CRemConInterfaceSelector;
-class MMPXPlaybackUtility;
-class MpMediaKeyHandler;
-class MpMediaKeyRemConResponse;
-
-class MpMediaKeyHandlerPrivate : public MRemConCoreApiTargetObserver,
- public MMPXPlaybackCallback
-{
-public:
-
- MpMediaKeyHandlerPrivate( MpMediaKeyHandler *wrapper );
- virtual ~MpMediaKeyHandlerPrivate();
-
- void init();
-
-// From MRemConCoreApiTargetObserver
-
- /**
- * From MRemConCoreApiTargetObserver
- * A command has been received.
- *
- * @param aOperationId The operation ID of the command.
- * @param aButtonAct The button action associated with the command.
- */
- void MrccatoCommand(
- TRemConCoreApiOperationId aOperationId,
- TRemConCoreApiButtonAction aButtonAct );
-
- /**
- * From MRemConCoreApiTargetObserver
- * A 'play' command has been received.
- *
- * @param aSpeed The playback speed.
- * @param aButtonAct The button action associated with the command.
- */
- void MrccatoPlay(
- TRemConCoreApiPlaybackSpeed aSpeed,
- TRemConCoreApiButtonAction aButtonAct );
-
- /**
- * From MRemConCoreApiTargetObserver
- * A 'tune function' command has been received.
- *
- * @param aTwoPart Determine which channel to be used.
- * @param aMajorChannel The major channel number.
- * @param aMinorChannel The minor channel number.
- * @param aButtonAct The button action associated with the command.
- */
- void MrccatoTuneFunction(
- TBool aTwoPart,
- TUint aMajorChannel,
- TUint aMinorChannel,
- TRemConCoreApiButtonAction aButtonAct );
-
- /**
- * From MRemConCoreApiTargetObserver
- * A 'select disk function' has been received.
- *
- * @param aDisk The disk.
- * @param aButtonAct The button action associated with the command.
- */
- void MrccatoSelectDiskFunction(
- TUint aDisk,
- TRemConCoreApiButtonAction aButtonAct );
-
- /**
- * From MRemConCoreApiTargetObserver
- * A 'select AV input function' has been received.
- *
- * @param aAvInputSignalNumber The AV input.
- * @param aButtonAct The button action associated with the command.
- */
- void MrccatoSelectAvInputFunction(
- TUint8 aAvInputSignalNumber,
- TRemConCoreApiButtonAction aButtonAct );
-
- /**
- * From MRemConCoreApiTargetObserver
- * A 'select audio input function' has been received.
- *
- * @param aAudioInputSignalNumber The audio input.
- * @param aButtonAct The button action associated with the command.
- */
- void MrccatoSelectAudioInputFunction(
- TUint8 aAudioInputSignalNumber,
- TRemConCoreApiButtonAction aButtonAct );
-
-// from base class MMPXPlaybackCallback
-
- /**
- * From MMPXPlaybackCallback
- * Handle playback property
- *
- * @param aProperty the property
- * @param aValue the value of the property
- * @param aError error code
- */
- void HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError );
-
- /**
- * From MMPXPlaybackCallback
- * Method is called continously until aComplete=ETrue, signifying that
- * it is done and there will be no more callbacks
- * Only new items are passed each time
- *
- * @param aPlayer UID of the subplayer
- * @param aSubPlayers a list of sub players
- * @param aComplete ETrue no more sub players. EFalse more subplayer
- * expected
- * @param aError error code
- */
- void HandleSubPlayerNamesL(
- TUid aPlayer,
- const MDesCArray* aSubPlayers,
- TBool aComplete,
- TInt aError );
-
- /**
- * From MMPXPlaybackCallback
- * Handle media properties
- *
- * @param aMedia media
- * @param aError error code
- */
- void HandleMediaL( const CMPXMedia& aMedia, TInt aError );
-
-private:
-
- void DoInitL();
- void SendCommand( TMPXPlaybackCommand aCommandId );
- void DoSendCommandL( TMPXPlaybackCommand aCommandId );
-
- /**
- * Callback for timer
- *
- * @param aPtr Pointer pass to this callback function.
- * @return Zero if callback function doesn't need to be called again.
- * Otherwise, non-zero.
- */
- static TInt TimerCallback( TAny* aPtr );
-
- /**
- * Handle repeat event
- */
- void HandleRepeatEvent();
-
-private:
-
- MpMediaKeyHandler *q_ptr;
-
- CRemConInterfaceSelector *iInterfaceSelector; // owned
- MpMediaKeyRemConResponse *iResponseHandler; // owned
- CPeriodic *iTimer; // owned
-
- MMPXPlaybackUtility *iPlaybackUtility;
-
- TBool iIncreaseVol;
-
-};
-
-#endif // MPMEDIAKEYHANDLER_P_H
--- a/app/inc/mpmediakeyremconresponse.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +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 media key handler.
-* Helper class for sending response back to Remote Controller Framework.
-*
-*/
-
-#ifndef MPMEDIAKEYREMCONKEYRESPONSE_H
-#define MPMEDIAKEYREMCONKEYRESPONSE_H
-
-#include <remconcoreapitarget.h>
-
-
-NONSHARABLE_CLASS( MpMediaKeyRemConResponse ) : public CActive
-{
-public:
-
- /**
- * Two-phased constructor.
- *
- * @since 3.0
- * @param aRemConCoreApiTarget RemCon core target object.
- * @return Pointer to newly created object.
- */
- static MpMediaKeyRemConResponse* NewL( CRemConCoreApiTarget& aRemConCoreApiTarget );
-
- /**
- * Destructor.
- */
- virtual ~MpMediaKeyRemConResponse();
-
- /**
- * Send the any key response back to Remcon server
- *
- * @since 3.0
- * @param aOperationId RemCon operation Id.
- */
- void CompleteAnyKey( TRemConCoreApiOperationId aOperationId );
-
-private:
-
- /**
- * C++ default constructor.
- */
- MpMediaKeyRemConResponse( CRemConCoreApiTarget& aRemConCoreApiTarget );
-
-// from base class CActive
-
- /**
- * From CActive
- * Handles an active object's request completion event.
- */
- void RunL();
-
- /**
- * From CActive
- * Implements cancellation of an outstanding request.
- */
- void DoCancel();
-
-private: // Data
-
- // Response array.
- RArray<TRemConCoreApiOperationId> iResponseArray; // Own
- CRemConCoreApiTarget& iRemConCoreApiTarget; // Not own
-};
-
-#endif // MPMEDIAKEYREMCONKEYRESPONSE_H
-
-// End of File
--- a/app/rom/musicplayer_resources.iby Fri Mar 19 09:28:13 2010 +0200
+++ b/app/rom/musicplayer_resources.iby Fri Apr 16 14:56:30 2010 +0300
@@ -21,6 +21,6 @@
#include <data_caging_paths_for_iby.hrh>
data = DATAZ_\APP_RESOURCE_DIR\musicplayer.rsc APP_RESOURCE_DIR\musicplayer.rsc
-//data = DATAZ_\QT_TRANSLATIONS_DIR\musicplayer.qm QT_TRANSLATIONS_DIR\musicplayer.qm
+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/mpmainwindow.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/app/src/mpmainwindow.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -22,18 +22,20 @@
#include <xqpluginloader.h>
#include <xqplugininfo.h>
#include <xqserviceutil.h>
+#include <QTranslator>
+#include <QLocale>
#include "mpmainwindow.h"
-#include "mpmediakeyhandler.h"
#include "mpcommondefs.h"
#include "mpviewbase.h"
#include "musicfetcher.h"
+#include "mpengine.h"
#include "mptrace.h"
/*!
\class MpMainWindow
\brief The MpMainWindow class provides Main Window functionalities.
-
+
MpMainWindow handles activation of views
*/
@@ -44,9 +46,10 @@
MpMainWindow::MpMainWindow()
: MpxViewFramework(),
- mMediaKeyHandler(0),
mCollectionViewPlugin(0),
mPlaybackViewPlugin(0),
+ mSettingsViewPlugin(0),
+ mDetailsViewPlugin(0),
mCurrentViewPlugin(0),
mPreviousViewPlugin(0),
mMusicFetcher(0)
@@ -60,7 +63,6 @@
MpMainWindow::~MpMainWindow()
{
TX_ENTRY
- delete mMediaKeyHandler;
delete mMusicFetcher;
if (mCollectionViewPlugin) {
@@ -71,6 +73,14 @@
mPlaybackViewPlugin->destroyView();
delete mPlaybackViewPlugin;
}
+ if (mSettingsViewPlugin) {
+ mSettingsViewPlugin->destroyView();
+ delete mSettingsViewPlugin;
+ }
+ if (mDetailsViewPlugin) {
+ mDetailsViewPlugin->destroyView();
+ delete mDetailsViewPlugin;
+ }
TX_EXIT
}
@@ -83,6 +93,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 );
+ }
+
#ifdef _DEBUG
QList<XQPluginInfo> impls;
XQPluginLoader::listImplementations("org.nokia.mmdt.MpxViewPlugin/1.0", impls);
@@ -97,8 +119,7 @@
// Set the Collection View and Playback View to fetcher mode
mMusicFetcher = new MusicFetcher();
}
-
- setViewSwitchingEnabled(false);
+
XQPluginLoader collectionLoader(MpCommon::KCollectionViewUid);
XQPluginLoader playbackLoader(MpCommon::KPlaybackViewUid);
@@ -119,7 +140,7 @@
TX_LOG_ARGS("connection error: " << err);
}
else {
- collectionView->setTitle("Music");
+ collectionView->setTitle(hbTrId("txt_mus_title_music"));
}
// Collection view is the default view.
activateView(MpMainWindow::CollectionView);
@@ -142,11 +163,14 @@
TX_LOG_ARGS("connection error: " << err);
}
else {
- playbackView->setTitle("Music");
+ playbackView->setTitle(hbTrId("txt_mus_title_music"));
}
}
- mMediaKeyHandler = new MpMediaKeyHandler();
+ MpEngine *engine = MpEngine::instance();
+ connect( engine, SIGNAL( libraryRefreshed() ), this, SLOT( handleLibraryUpdated() ) );
+ connect( engine, SIGNAL( exitApplication() ), this, SLOT( handleExitApplication() ) );
+
TX_EXIT
}
@@ -165,7 +189,7 @@
void MpMainWindow::handleCommand( int commandCode )
{
TX_ENTRY_ARGS("commandCode=" << commandCode );
-
+
switch ( commandCode ) {
case MpCommon::Exit:
if ( mCurrentViewPlugin ) {
@@ -179,6 +203,12 @@
case MpCommon::ActivatePlaybackView:
activateView(PlaybackView);
break;
+ case MpCommon::ActivateSettingsView:
+ activateView(SettingsView);
+ break;
+ case MpCommon::ActivateDetailsView:
+ activateView(DetailsView);
+ break;
}
TX_EXIT
}
@@ -191,7 +221,7 @@
TX_ENTRY_ARGS("viewType=" << viewType );
if ( mCurrentViewPlugin ) {
-
+
disconnectView();
mCurrentViewPlugin->deactivateView();
mPreviousViewPlugin = mCurrentViewPlugin;
@@ -204,6 +234,30 @@
else if ( viewType == MpMainWindow::PlaybackView && mPlaybackViewPlugin ) {
mCurrentViewPlugin = mPlaybackViewPlugin;
}
+ else if ( viewType == MpMainWindow::SettingsView ) {
+ if ( mSettingsViewPlugin ) {
+ mCurrentViewPlugin = mSettingsViewPlugin;
+ }
+ else {
+ XQPluginLoader settingsLoader( MpCommon::KSettingsViewUid );
+ QObject* settingsInstance = settingsLoader.instance();
+ mSettingsViewPlugin = qobject_cast<MpxViewPlugin*>( settingsInstance )->viewPlugin();
+ mSettingsViewPlugin->createView();
+ mCurrentViewPlugin = mSettingsViewPlugin;
+ }
+ }
+ else if ( viewType == MpMainWindow::DetailsView ) {
+ if ( mDetailsViewPlugin ) {
+ mCurrentViewPlugin = mDetailsViewPlugin;
+ }
+ else {
+ XQPluginLoader detailsLoader( MpCommon::KDetailsViewUid );
+ QObject* detailsInstance = detailsLoader.instance();
+ mDetailsViewPlugin = qobject_cast<MpxViewPlugin*>( detailsInstance )->viewPlugin();
+ mDetailsViewPlugin->createView();
+ mCurrentViewPlugin = mDetailsViewPlugin;
+ }
+ }
if ( mCurrentViewPlugin ) {
addView( mCurrentViewPlugin->getView() );
@@ -257,3 +311,38 @@
TX_EXIT
}
+/*!
+ Slot to be called when Library has changed.
+ */
+void MpMainWindow::handleLibraryUpdated()
+{
+ TX_ENTRY
+
+ // If library changed while playing back, always return to AllSongs collection view.
+ if ( mPlaybackViewPlugin &&
+ mCurrentViewPlugin == mPlaybackViewPlugin &&
+ mCollectionViewPlugin ) {
+
+ activateView( CollectionView );
+ MpViewBase* collectionView = reinterpret_cast<MpViewBase*>(mCollectionViewPlugin->getView());
+ collectionView->setDefaultView();
+ }
+
+ TX_EXIT
+}
+
+/*!
+ Slot to be called when application must exit.
+ */
+void MpMainWindow::handleExitApplication()
+{
+ TX_ENTRY
+
+ if ( mCurrentViewPlugin ) {
+ disconnectView();
+ }
+ qApp->quit();
+
+ TX_EXIT
+}
+
--- a/app/src/mpmediakeyhandler.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /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: Music Player media key handler.
-*
-*/
-
-#include "mpmediakeyhandler.h"
-#include "mpmediakeyhandler_p.h"
-#include "mptrace.h"
-
-// ---------------------------------------------------------------------------
-// MpMediaKeyHandler()
-// ---------------------------------------------------------------------------
-//
-MpMediaKeyHandler::MpMediaKeyHandler( QObject *parent )
- : QObject(parent)
-{
- TX_ENTRY
- d_ptr = new MpMediaKeyHandlerPrivate(this);
- d_ptr->init();
- TX_EXIT
-}
-
-// ---------------------------------------------------------------------------
-// ~MpMediaKeyHandler()
-// ---------------------------------------------------------------------------
-//
-MpMediaKeyHandler::~MpMediaKeyHandler()
-{
- TX_ENTRY
- delete d_ptr;
- TX_EXIT
-}
-
--- a/app/src/mpmediakeyhandler_p.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,438 +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 media key handler - private implementation.
-*
-*/
-
-#include "mpmediakeyhandler_p.h"
-#include "mpmediakeyhandler.h"
-#include "mpmediakeyremconresponse.h"
-#include "mpcommondefs.h"
-
-//symbian header files
-#include <remconcoreapitarget.h>
-#include <remconinterfaceselector.h>
-
-//mpx header files
-#include <mpxplaybackutility.h>
-#include <mpxplaybackcommanddefs.h>
-#include <mpxplaybackmessagedefs.h>
-#include <mpxlog.h>
-
-const TInt KFirstTimerExpiryInterval( 1 ); // Expire immediately
-const TInt KTimerExpiryInterval( 1000000/6 );
-
-// ---------------------------------------------------------------------------
-// MpMediaKeyHandlerPrivate()
-// ---------------------------------------------------------------------------
-//
-MpMediaKeyHandlerPrivate::MpMediaKeyHandlerPrivate( MpMediaKeyHandler *wrapper )
- : q_ptr( wrapper ),
- iInterfaceSelector(NULL),
- iResponseHandler(NULL),
- iTimer(NULL),
- iPlaybackUtility(NULL)
-{
-}
-
-// ---------------------------------------------------------------------------
-// ~MpMediaKeyHandlerPrivate()
-// ---------------------------------------------------------------------------
-//
-MpMediaKeyHandlerPrivate::~MpMediaKeyHandlerPrivate()
-{
- if ( iPlaybackUtility ) {
- //TRAP_IGNORE( iPlaybackUtility->RemoveObserverL( *this ) );
- iPlaybackUtility->Close();
- }
-
- delete iResponseHandler;
- delete iInterfaceSelector;
-
- if ( iTimer ) {
- iTimer->Cancel();
- delete iTimer;
- }
-
-}
-
-// ---------------------------------------------------------------------------
-// init
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::init()
-{
- TRAPD(err, DoInitL());
- if ( err != KErrNone ) {
- emit q_ptr->errorOccured(err);
- }
-
-}
-
-// ---------------------------------------------------------------------------
-// From MRemConCoreApiTargetObserver
-// A command has been received.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::MrccatoCommand(
- TRemConCoreApiOperationId aOperationId,
- TRemConCoreApiButtonAction aButtonAct )
-{
- MPX_DEBUG3( "MpMediaKeyHandlerPrivate::MrccatoCommand(aOperationId=%d, aButtonAct=%d)",
- aOperationId, aButtonAct );
-
- switch ( aOperationId ) {
- case ERemConCoreApiPausePlayFunction:
- if ( aButtonAct == ERemConCoreApiButtonClick ) {
- SendCommand( EPbCmdPlayPause );
- }
- break;
- case ERemConCoreApiPlay:
- if ( aButtonAct == ERemConCoreApiButtonClick
- || aButtonAct == ERemConCoreApiButtonPress ) {
- SendCommand( EPbCmdPlay );
- }
- break;
- case ERemConCoreApiStop:
- if ( aButtonAct == ERemConCoreApiButtonClick
- || aButtonAct == ERemConCoreApiButtonPress ) {
- SendCommand( EPbCmdStop );
- }
- break;
- case ERemConCoreApiPause:
- if ( aButtonAct == ERemConCoreApiButtonClick
- || aButtonAct == ERemConCoreApiButtonPress ) {
- SendCommand( EPbCmdPause );
- }
- break;
- case ERemConCoreApiRewind:
- switch ( aButtonAct ) {
- case ERemConCoreApiButtonPress:
- SendCommand( EPbCmdStartSeekBackward );
- break;
- case ERemConCoreApiButtonRelease:
- SendCommand( EPbCmdStopSeeking );
- break;
- default:
- break;
- }
- break;
- case ERemConCoreApiFastForward:
- switch ( aButtonAct ) {
- case ERemConCoreApiButtonPress:
- SendCommand( EPbCmdStartSeekForward );
- break;
- case ERemConCoreApiButtonRelease:
- SendCommand( EPbCmdStopSeeking );
- break;
- default:
- break;
- }
- break;
- case ERemConCoreApiBackward:
- if ( aButtonAct == ERemConCoreApiButtonClick ) {
- SendCommand( EPbCmdPrevious );
- }
- break;
- case ERemConCoreApiForward:
- if ( aButtonAct == ERemConCoreApiButtonClick ) {
- SendCommand( EPbCmdNext );
- }
- break;
- case ERemConCoreApiVolumeUp:
- iTimer->Cancel();
- iIncreaseVol = ETrue;
- switch ( aButtonAct ) {
- case ERemConCoreApiButtonPress:
- //Start Timer
- iTimer->Start(
- KFirstTimerExpiryInterval,
- KTimerExpiryInterval,
- TCallBack( TimerCallback, this ) );
- break;
- case ERemConCoreApiButtonClick:
- SendCommand( EPbCmdIncreaseVolume );
- break;
- case ERemConCoreApiButtonRelease:
- default:
- break;
- }
- break;
- case ERemConCoreApiVolumeDown:
- iTimer->Cancel();
- iIncreaseVol = EFalse;
- switch ( aButtonAct ) {
- case ERemConCoreApiButtonPress:
- //Start Timer
- iTimer->Start(
- KFirstTimerExpiryInterval,
- KTimerExpiryInterval,
- TCallBack( TimerCallback, this ) );
- break;
- case ERemConCoreApiButtonClick:
- SendCommand( EPbCmdDecreaseVolume );
- break;
- case ERemConCoreApiButtonRelease:
- default:
- break;
- }
- break;
- default:
- break;
- }
- iResponseHandler->CompleteAnyKey( aOperationId );
-
-}
-
-// ---------------------------------------------------------------------------
-// From MRemConCoreApiTargetObserver
-// A 'play' command has been received.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::MrccatoPlay(
- TRemConCoreApiPlaybackSpeed aSpeed,
- TRemConCoreApiButtonAction aButtonAct )
-{
- MPX_DEBUG2( "MpMediaKeyHandlerPrivate::MrccatoPlay(aButtonAct=%d)", aButtonAct );
- Q_UNUSED(aSpeed);
-
- if ( ( aButtonAct == ERemConCoreApiButtonClick ) ||
- ( aButtonAct == ERemConCoreApiButtonPress ) )
- {
- SendCommand( EPbCmdPlay );
- }
- iResponseHandler->CompleteAnyKey( ERemConCoreApiPlay );
-
-}
-
-// ---------------------------------------------------------------------------
-// From MRemConCoreApiTargetObserver
-// A 'tune function' command has been received.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::MrccatoTuneFunction(
- TBool aTwoPart,
- TUint aMajorChannel,
- TUint aMinorChannel,
- TRemConCoreApiButtonAction aButtonAct )
-{
- Q_UNUSED(aTwoPart);
- Q_UNUSED(aMajorChannel);
- Q_UNUSED(aMinorChannel);
- Q_UNUSED(aButtonAct);
-
- iResponseHandler->CompleteAnyKey( ERemConCoreApiTuneFunction );
-
-}
-
-// ---------------------------------------------------------------------------
-// From MRemConCoreApiTargetObserver
-// A 'select disk function' has been received.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::MrccatoSelectDiskFunction(
- TUint aDisk,
- TRemConCoreApiButtonAction aButtonAct )
-{
- Q_UNUSED(aDisk);
- Q_UNUSED(aButtonAct);
-
- iResponseHandler->CompleteAnyKey( ERemConCoreApiSelectDiskFunction );
-
-}
-
-// ---------------------------------------------------------------------------
-// From MRemConCoreApiTargetObserver
-// A 'select AV input function' has been received.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::MrccatoSelectAvInputFunction(
- TUint8 aAvInputSignalNumber,
- TRemConCoreApiButtonAction aButtonAct )
-{
- Q_UNUSED(aAvInputSignalNumber);
- Q_UNUSED(aButtonAct);
-
- iResponseHandler->CompleteAnyKey( ERemConCoreApiSelectAvInputFunction );
-
-}
-
-// ---------------------------------------------------------------------------
-// From MRemConCoreApiTargetObserver
-// A 'select audio input function' has been received.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::MrccatoSelectAudioInputFunction(
- TUint8 aAudioInputSignalNumber,
- TRemConCoreApiButtonAction aButtonAct )
-{
- Q_UNUSED(aAudioInputSignalNumber);
- Q_UNUSED(aButtonAct);
-
- iResponseHandler->CompleteAnyKey( ERemConCoreApiSelectAudioInputFunction );
-
-}
-
-// ---------------------------------------------------------------------------
-// From MMPXPlaybackCallback
-// Handle playback property.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::HandlePropertyL(
- TMPXPlaybackProperty aProperty,
- TInt aValue,
- TInt aError )
-{
- MPX_FUNC( "MpMediaKeyHandlerPrivate::DoHandlePropertyL" );
- MPX_DEBUG4( "MpMediaKeyHandlerPrivate::HandlePropertyL - Property(%d); Value(%d); Error(%d)", aProperty, aValue, aError );
-
- if ( KErrNone == aError ) {
- switch ( aProperty ) {
- case EPbPropertyVolume:
- q_ptr->emit volumeChanged(aValue);
- break;
- case EPbPropertyPosition:
- case EPbPropertyMaxVolume:
- case EPbPropertyMute:
- default:
- break;
- }
- }
-
-}
-
-// ---------------------------------------------------------------------------
-// From MMPXPlaybackCallback
-// HandleSubPlayerNamesL
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::HandleSubPlayerNamesL(
- TUid aPlayer,
- const MDesCArray* aSubPlayers,
- TBool aComplete,
- TInt aError )
-{
- MPX_FUNC( "MpMediaKeyHandlerPrivate::HandleSubPlayerNamesL" );
- Q_UNUSED(aPlayer);
- Q_UNUSED(aSubPlayers);
- Q_UNUSED(aComplete);
- Q_UNUSED(aError);
-
-}
-
-// ---------------------------------------------------------------------------
-// From MMPXPlaybackCallback
-// Handle media properties.
-// Notes: The client is responsible for delete the object of aMedia.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::HandleMediaL(
- const CMPXMedia& aMedia,
- TInt aError )
-{
- MPX_FUNC( "MpMediaKeyHandlerPrivate::DoHandleMediaL" );
- Q_UNUSED(aMedia);
- Q_UNUSED(aError);
-
-}
-
-// ---------------------------------------------------------------------------
-// DoInitL()
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::DoInitL()
-{
- // Register to remote control framework
- iInterfaceSelector = CRemConInterfaceSelector::NewL();
- CRemConCoreApiTarget *coreTarget = CRemConCoreApiTarget::NewL( *iInterfaceSelector, *this );
- CleanupStack::PushL( coreTarget );
- iInterfaceSelector->OpenTargetL();
- iResponseHandler = MpMediaKeyRemConResponse::NewL( *coreTarget );
- CleanupStack::Pop(coreTarget);
-
- // Timer for implementing repeat
- iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-
- // Get the playback utility instance from engine.
- iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid(MpCommon::KMusicPlayerUid) );
- //iPlaybackUtility->AddObserverL( *this );
-
-}
-
-// ---------------------------------------------------------------------------
-// Send command to playback utility.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::SendCommand( TMPXPlaybackCommand aCommandId )
-{
- MPX_FUNC( "MpMediaKeyHandlerPrivate::SendCommand" );
- TRAP_IGNORE( DoSendCommandL( aCommandId ) );
-
-}
-
-// ---------------------------------------------------------------------------
-// Send command to playback utility.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::DoSendCommandL( TMPXPlaybackCommand aCommandId )
-{
- MPX_FUNC( "MpMediaKeyHandlerPrivate::DoFilterAndSendCommandL" );
-
- TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
-
- switch ( aCommandId ) {
- case EPbCmdIncreaseVolume:
- if ( EPbStatePlaying == playerState ) {
- iPlaybackUtility->CommandL( EPbCmdIncreaseVolume );
- }
- break;
- case EPbCmdDecreaseVolume:
- if ( EPbStatePlaying == playerState ) {
- iPlaybackUtility->CommandL( EPbCmdDecreaseVolume );
- }
- break;
- default:
- break;
- }
-
-}
-
-// ---------------------------------------------------------------------------
-// Callback for timer
-// ---------------------------------------------------------------------------
-//
-TInt MpMediaKeyHandlerPrivate::TimerCallback( TAny* aPtr )
-{
-
- static_cast<MpMediaKeyHandlerPrivate*>( aPtr )->HandleRepeatEvent();
-
-
- return KErrNone;
-}
-
-// ---------------------------------------------------------------------------
-// Handle repeat event
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyHandlerPrivate::HandleRepeatEvent()
-{
-
- if ( iIncreaseVol ) {
- SendCommand( EPbCmdIncreaseVolume );
- }
- else {
- SendCommand( EPbCmdDecreaseVolume );
- }
-
-}
--- a/app/src/mpmediakeyremconresponse.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /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: Music Player media key handler.
-* Helper class for sending response back to Remote Controller Framework.
-*
-*/
-
-// INCLUDE FILES
-#include "mpmediakeyremconresponse.h"
-#include "mpxlog.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ---------------------------------------------------------------------------
-//
-MpMediaKeyRemConResponse::MpMediaKeyRemConResponse(
- CRemConCoreApiTarget& aRemConCoreApiTarget )
- : CActive( CActive::EPriorityStandard ),
- iRemConCoreApiTarget( aRemConCoreApiTarget )
- {
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-MpMediaKeyRemConResponse* MpMediaKeyRemConResponse::NewL(
- CRemConCoreApiTarget& aRemConCoreApiTarget )
- {
- MpMediaKeyRemConResponse* self =
- new (ELeave) MpMediaKeyRemConResponse( aRemConCoreApiTarget );
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-MpMediaKeyRemConResponse::~MpMediaKeyRemConResponse()
- {
- Cancel();
- iResponseArray.Close();
- }
-
-// ---------------------------------------------------------------------------
-// Send the any key response back to Remcon server
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyRemConResponse::CompleteAnyKey(
- TRemConCoreApiOperationId aOperationId )
- {
- if ( !IsActive() )
- {
- switch ( aOperationId )
- {
- case ERemConCoreApiVolumeUp:
- {
- iRemConCoreApiTarget.VolumeUpResponse( iStatus, KErrNone );
- SetActive();
- break;
- }
- case ERemConCoreApiVolumeDown:
- {
- iRemConCoreApiTarget.VolumeDownResponse( iStatus, KErrNone );
- SetActive();
- break;
- }
- default:
- {
- TInt error = KErrNone;
- iRemConCoreApiTarget.SendResponse(
- iStatus, aOperationId, error );
- SetActive();
- break;
- }
- }
- }
- // already active. Append to array and complete later.
- else
- {
- iResponseArray.Append( aOperationId );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Implements cancellation of an outstanding request.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyRemConResponse::DoCancel()
- {
- }
-
-// ---------------------------------------------------------------------------
-// Handles an active object's request completion event.
-// ---------------------------------------------------------------------------
-//
-void MpMediaKeyRemConResponse::RunL()
- {
- MPX_DEBUG2( "MpMediaKeyRemConResponse.RunL() -- iStatus=%d", iStatus.Int() );
-
- // if any existing -> Send response
- if ( iResponseArray.Count() )
- {
- CompleteAnyKey( iResponseArray[0] );
- // Remove already completed key
- iResponseArray.Remove( 0 );
- iResponseArray.Compress();
- }
- }
-
-// End of File
--- a/app/tsrc/unittest_app.pro Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +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 = subdirs
-SUBDIRS = unittest_mpmediakeyhandler \
- unittest_mpcodescanner \
-
-CONFIG += ordered
--- a/app/tsrc/unittest_mpmediakeyhandler/inc/unittest_mpmediakeyhandler.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +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 mpmediakeyhandler
-*
-*/
-
-#ifndef TESTMPMEDIAKEYHANDLER_H
-#define TESTMPMEDIAKEYHANDLER_H
-
-#include <QtTest/QtTest>
-
-class MpMediaKeyHandler;
-class MpMediaKeyHandlerPrivate;
-
-class TestMpMediaKeyHandler : public QObject
-{
- Q_OBJECT
-
-public:
-
- TestMpMediaKeyHandler();
- virtual ~TestMpMediaKeyHandler();
-
-// from QtTest
-public slots:
-
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-// internal
-private slots:
-
- void testConstructor();
- void testDestructor();
- void testConstructorFail();
- void testDestructorFail();
- void testCommandVolumeUpKey();
- void testCommandVolumeDownKey();
- void testCommandPlayKey();
- void testCommandPauseKey();
- void testCommandPlayPauseKey();
- void testCommandStopKey();
- void testCommandFastForwardKeyPress();
- void testCommandFastForwardKeyRelease();
- void testCommandRewindKeyPress();
- void testCommandRewindKeyRelease();
- void testCommandForwardKey();
- void testCommandBackwardKey();
-
- void testPlay();
- void testAudioInputFunction();
- void testSelectAvInputFunction();
- void testSelectDiskFunction();
- void testTuneFunction();
-
-private:
-
- MpMediaKeyHandler *mTest;
- MpMediaKeyHandlerPrivate *mTestPrivate;
-
-};
-
-#endif // TESTMPMEDIAKEYHANDLER_H
-
-
-
-
--- a/app/tsrc/unittest_mpmediakeyhandler/src/unittest_mpmediakeyhandler.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,396 +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 mpmediakeyhandler
-*
-*/
-
-#include <QSignalSpy>
-#include <QMetaType>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <e32debug.h>
-
-#include "unittest_mpmediakeyhandler.h"
-#include "mpcommondefs.h"
-#include "stub/inc/mpxplaybackutility.h"
-#include "stub/inc/remconcoreapitarget.h"
-#include "stub/inc/remconinterfaceselector.h"
-
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpmediakeyhandler.h"
-#include "mpmediakeyhandler_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;
-
- TestMpMediaKeyHandler tv;
-
- char *pass[3];
- pass[0] = argv[0];
- pass[1] = "-o";
- pass[2] = "c:\\data\\unittest_mpmediakeyhandler.txt";
-
- int res = QTest::qExec(&tv, 3, pass);
-
- return res;
-}
-
-TestMpMediaKeyHandler::TestMpMediaKeyHandler()
- : mTest(0)
-{
-}
-
-TestMpMediaKeyHandler::~TestMpMediaKeyHandler()
-{
- delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpMediaKeyHandler::initTestCase()
-{
- RDebug::Print(_L("initTestCase()"));
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpMediaKeyHandler::cleanupTestCase()
-{
- RDebug::Print(_L("cleanupTestCase()"));
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpMediaKeyHandler::init()
-{
- RDebug::Print(_L(">>init()"));
- mTest = new MpMediaKeyHandler();
- mTestPrivate = mTest->d_ptr;
- RDebug::Print(_L("<<init()"));
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpMediaKeyHandler::cleanup()
-{
- if (mTest)
- {
- delete mTest;
- mTest = 0;
- mTestPrivate = 0;
- }
-}
-
-void TestMpMediaKeyHandler::testConstructor()
-{
- RDebug::Print(_L(">>testConstructor()"));
-
- QVERIFY(mTest != 0);
- QVERIFY(mTestPrivate != 0);
- QVERIFY(mTestPrivate->iInterfaceSelector != 0);
- QVERIFY(mTestPrivate->iResponseHandler != 0);
- QVERIFY(mTestPrivate->iPlaybackUtility != 0);
-
- RDebug::Print(_L("<<testConstructor()"));
-}
-
-void TestMpMediaKeyHandler::testDestructor()
-{
- RDebug::Print(_L(">>testDestructor()"));
-
- // it is been observed that CRemConCoreApiTarget is not being deleted by anyone
- // the creator claim it does not own it, while others never claim the ownership neither
- cleanup();
- QVERIFY(mTest == 0);
- QCOMPARE(MMPXPlaybackUtility::getCount(), 0);
- QCOMPARE(CRemConCoreApiTarget::getCount(), 0);
- QCOMPARE(CRemConInterfaceSelector::getCount(), 0);
-
- RDebug::Print(_L("<<testDestructor()"));
-}
-
-void TestMpMediaKeyHandler::testConstructorFail()
-{
- RDebug::Print(_L(">>testConstructorFail()"));
-
- // errorOccured signal cannot be connected until mediakeyhandler is created,
- // and error during construction cannot be feedback.
- // solution should be to seperate construction/init
- cleanup();
- CRemConInterfaceSelector::setNewLLeave();
- init();
- QSignalSpy spy1(mTest, SIGNAL(errorOccured(int)));
- QVERIFY(mTest != 0);
- //QCOMPARE(spy1.count(), 1); // failed if comment in
-
- cleanup();
- CRemConInterfaceSelector::setOpenTargetLLeave();
- init();
- QSignalSpy spy2(mTest, SIGNAL(errorOccured(int)));
- QVERIFY(mTest != 0);
- //QCOMPARE(spy2.count(), 1); // failed if comment in
-
- cleanup();
- CRemConCoreApiTarget::setNewLLeave();
- init();
- QSignalSpy spy3(mTest, SIGNAL(errorOccured(int)));
- QVERIFY(mTest != 0);
- //QCOMPARE(spy3.count(), 1); // failed if comment in
-
- cleanup();
- MMPXPlaybackUtility::setNewLLeave();
- init();
- QSignalSpy spy4(mTest, SIGNAL(errorOccured(int)));
- QVERIFY(mTest != 0);
- //QCOMPARE(spy4.count(), 1); // failed if comment in
-
- cleanup();
- MMPXPlaybackUtility::setAddObserverLLeave();
- init();
- QSignalSpy spy5(mTest, SIGNAL(errorOccured(int)));
- QVERIFY(mTest != 0);
- //QCOMPARE(spy5.count(), 1); // failed if comment in
-
- RDebug::Print(_L("<<testConstructorFail()"));
-}
-
-void TestMpMediaKeyHandler::testDestructorFail()
-{
- RDebug::Print(_L(">>testDestructorFail()"));
-
- MMPXPlaybackUtility::setRemoveObserverLLeave();
- cleanup();
- QVERIFY(mTest == 0);
- QCOMPARE(MMPXPlaybackUtility::getCount(), 0);
- QCOMPARE(CRemConCoreApiTarget::getCount(), 0);
- QCOMPARE(CRemConInterfaceSelector::getCount(), 0);
-
- RDebug::Print(_L("<<testDestructorFail()"));
-}
-
-void TestMpMediaKeyHandler::testCommandVolumeUpKey()
-{
- RDebug::Print(_L(">>testCommandVolumeUpKey()"));
-
- // volumeChanged signal would not emit until mediakeyhandler is not added as an observer to MMPXPlaybackUtility
- QSignalSpy spy(mTest, SIGNAL(volumeChanged(int)));
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- MMPXPlaybackUtility::setPlaying();
- mTestPrivate->MrccatoCommand(ERemConCoreApiVolumeUp, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
- QCOMPARE(spy.count(), 1);
-
- // impossible to stub out the CPeriodic class which is part of the Press/Release handling
- // hence, those logic could not be tested
-
- RDebug::Print(_L("<<testCommandVolumeUpKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandVolumeDownKey()
-{
- RDebug::Print(_L(">>testCommandVolumeDownKey()"));
-
- // volumeChanged signal would not emit until mediakeyhandler is not added as an observer to MMPXPlaybackUtility
- QSignalSpy spy(mTest, SIGNAL(volumeChanged(int)));
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- MMPXPlaybackUtility::setPlaying();
- mTestPrivate->MrccatoCommand(ERemConCoreApiVolumeDown, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
- QCOMPARE(spy.count(), 1);
-
- // impossible to stub out the CPeriodic class which is part of the Press/Release handling
- // hence, those logic could not be tested
-
- RDebug::Print(_L("<<testCommandVolumeDownKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandPlayKey()
-{
- RDebug::Print(_L(">>testCommandPlayKey()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiPlay, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandPlayKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandPauseKey()
-{
- RDebug::Print(_L(">>testCommandPauseKey()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiPause, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandPauseKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandPlayPauseKey()
-{
- RDebug::Print(_L(">>testCommandPlayPauseKey()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiPausePlayFunction, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandPlayPauseKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandStopKey()
-{
- RDebug::Print(_L(">>testCommandStopKey()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiStop, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandStopKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandFastForwardKeyPress()
-{
- RDebug::Print(_L(">>testCommandFastForwardKeyPress()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiFastForward, ERemConCoreApiButtonPress);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandFastForwardKeyPress()"));
-}
-
-void TestMpMediaKeyHandler::testCommandFastForwardKeyRelease()
-{
- RDebug::Print(_L(">>testCommandFastForwardKeyRelease()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiFastForward, ERemConCoreApiButtonRelease);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandFastForwardKeyRelease()"));
-}
-
-void TestMpMediaKeyHandler::testCommandRewindKeyPress()
-{
- RDebug::Print(_L(">>testCommandRewindKey()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiRewind, ERemConCoreApiButtonPress);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandRewindKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandRewindKeyRelease()
-{
- RDebug::Print(_L(">>testCommandRewindKeyRelease()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiRewind, ERemConCoreApiButtonRelease);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandRewindKeyRelease()"));
-}
-
-void TestMpMediaKeyHandler::testCommandForwardKey()
-{
- RDebug::Print(_L(">>testCommandForwardKey()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiForward, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandForwardKey()"));
-}
-
-void TestMpMediaKeyHandler::testCommandBackwardKey()
-{
- RDebug::Print(_L(">>testCommandBackwardKey()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoCommand(ERemConCoreApiBackward, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testCommandBackwardKey()"));
-}
-
-void TestMpMediaKeyHandler::testPlay()
-{
- RDebug::Print(_L(">>testPlay()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoPlay(ERemConCoreApiPlaybackSpeedX1, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testPlay()"));
-}
-
-void TestMpMediaKeyHandler::testAudioInputFunction()
-{
- RDebug::Print(_L(">>testAudioInputFunction()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoSelectAudioInputFunction(0, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testAudioInputFunction()"));
-}
-
-void TestMpMediaKeyHandler::testSelectAvInputFunction()
-{
- RDebug::Print(_L(">>testSelectAvInputFunction()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoSelectAvInputFunction(0, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testSelectAvInputFunction()"));
-}
-
-void TestMpMediaKeyHandler::testSelectDiskFunction()
-{
- RDebug::Print(_L(">>testSelectDiskFunction()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoSelectDiskFunction(0, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testSelectDiskFunction()"));
-}
-
-void TestMpMediaKeyHandler::testTuneFunction()
-{
- RDebug::Print(_L(">>testTuneFunction()"));
-
- int oldCount = CRemConCoreApiTarget::getSendResponseCount();
- mTestPrivate->MrccatoTuneFunction(ETrue, 0, 1, ERemConCoreApiButtonClick);
- QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
-
- RDebug::Print(_L("<<testTuneFunction()"));
-}
-
-// End of file
--- a/app/tsrc/unittest_mpmediakeyhandler/stub/inc/mpxplaybackutility.h Fri Mar 19 09:28:13 2010 +0200
+++ /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: mpxplaybackutility stub for testing mpmediakeyhandler
-*
-*/
-
-
-#ifndef MMPXPLAYBACKUTILITY_H
-#define MMPXPLAYBACKUTILITY_H
-
-
-#include <mpxplaybackframeworkdefs.h> // KPbModeDefault, TMPXPlaybackCommand
-#include <e32base.h> // CBase
-
-
-class MpMediaKeyHandlerPrivate;
-
-class MMPXPlaybackUtility : public CActive
- {
-
-public:
-
- static int getCount();
- static void setNewLLeave();
- static void NewLLeaveIfDesiredL();
- static void setAddObserverLLeave();
- static void AddObserverLLeaveIfDesiredL();
- static void setRemoveObserverLLeave();
- static void RemoveObserverLLeaveIfDesiredL();
- static void setCommandLLeave();
- static void CommandLLeaveIfDesiredL();
- static void setStateLLeave();
- static void StateLLeaveIfDesiredL();
- static void setPlaying();
-
-public:
-
- static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault);
- virtual ~MMPXPlaybackUtility();
-
- void Close();
- void AddObserverL(MpMediaKeyHandlerPrivate& aObs);
- void RemoveObserverL(MpMediaKeyHandlerPrivate& aObs);
- void CommandL(TMPXPlaybackCommand aCmd, TInt aData = 0);
-
- TMPXPlaybackState StateL() const;
-
-protected:
-
- // from CActive
- virtual void DoCancel();
- virtual void RunL();
-
-private:
-
- MMPXPlaybackUtility();
-
-private:
-
- MpMediaKeyHandlerPrivate* iObserver;
- TInt iVolume;
- TBool iVolumeUp;
-
- };
-
-#endif // MMPXPLAYBACKUTILITY_H
-
-// End of File
--- a/app/tsrc/unittest_mpmediakeyhandler/stub/inc/remconcoreapitarget.h Fri Mar 19 09:28:13 2010 +0200
+++ /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: remconcoreapitarget stub for testing mpmediakeyhandler
-*
-*/
-
-
-#ifndef REMCONCOREAPITARGET_H
-#define REMCONCOREAPITARGET_H
-
-
-#include <remconcoreapi.h> // TRemConCoreApiOperationId
-
-
-class CRemConInterfaceSelector;
-class MRemConCoreApiTargetObserver;
-
-class CRemConCoreApiTarget : public CActive
- {
-
-public:
-
- static int getCount();
- static void setNewLLeave();
- static void NewLLeaveIfDesiredL();
- static int getSendResponseCount();
-
-public:
-
- static CRemConCoreApiTarget* NewL(CRemConInterfaceSelector& aInterfaceSelector, MRemConCoreApiTargetObserver& aObserver);
- virtual ~CRemConCoreApiTarget();
-
- void VolumeUpResponse(TRequestStatus& aStatus, TInt aError);
- void VolumeDownResponse(TRequestStatus& aStatus, TInt aError);
- void SendResponse(TRequestStatus& aStatus, TRemConCoreApiOperationId aOperationId, TInt aError);
-
-protected:
-
- // from CActive
- virtual void DoCancel();
- virtual void RunL();
-
-private:
-
- CRemConCoreApiTarget();
-
-private:
-
- TRequestStatus* iClientStatus;
-
- };
-
-#endif // REMCONCOREAPITARGET_H
-
-// End of File
--- a/app/tsrc/unittest_mpmediakeyhandler/stub/inc/remconinterfaceselector.h Fri Mar 19 09:28:13 2010 +0200
+++ /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: remconinterfaceselector stub for testing mpmediakeyhandler
-*
-*/
-
-
-#ifndef REMCONINTERFACESELECTOR_H
-#define REMCONINTERFACESELECTOR_H
-
-
-#include <e32base.h>
-
-
-class CRemConInterfaceSelector : public CBase
- {
-
-public:
-
- static int getCount();
- static void setNewLLeave();
- static void NewLLeaveIfDesiredL();
- static void setOpenTargetLLeave();
- static void OpenTargetLLeaveIfDesiredL();
-
-public:
-
- static CRemConInterfaceSelector* NewL();
- virtual ~CRemConInterfaceSelector();
-
- void OpenTargetL();
-
-private:
-
- CRemConInterfaceSelector();
-
- };
-
-#endif // REMCONINTERFACESELECTOR_H
-
-// End of File
--- a/app/tsrc/unittest_mpmediakeyhandler/stub/src/mpxplaybackutility.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +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: mpxplaybackutility stub for testing MpNowPlayingBackEnd
-*
-*/
-
-
-#include <mpxplaybackcommanddefs.h>
-#include <e32debug.h>
-
-#include "stub/inc/mpxplaybackutility.h"
-#include "mpmediakeyhandler_p.h"
-
-
-int gMMPXPlaybackUtilityCount = 0;
-bool gMMPXPlaybackUtilityNewLLeave = false;
-bool gMMPXPlaybackUtilityAddObserverLLeave = false;
-bool gMMPXPlaybackUtilityRemoveObserverLLeave = false;
-bool gMMPXPlaybackUtilityCommandLLeave = false;
-bool gMMPXPlaybackUtilityStateLLeave = false;
-TMPXPlaybackState gMMPXPlaybackUtilityState = EPbStateNotInitialised;
-
-
-//static functions start
-
-int MMPXPlaybackUtility::getCount()
-{
- return gMMPXPlaybackUtilityCount;
-}
-
-void MMPXPlaybackUtility::setNewLLeave()
-{
- gMMPXPlaybackUtilityNewLLeave = true;
-}
-
-void MMPXPlaybackUtility::NewLLeaveIfDesiredL()
-{
- if (gMMPXPlaybackUtilityNewLLeave)
- {
- RDebug::Print(_L("MMPXPlaybackUtility::NewLLeaveIfDesiredL Leave"));
- gMMPXPlaybackUtilityNewLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXPlaybackUtility::setAddObserverLLeave()
-{
- gMMPXPlaybackUtilityAddObserverLLeave = true;
-}
-
-void MMPXPlaybackUtility::AddObserverLLeaveIfDesiredL()
-{
- if (gMMPXPlaybackUtilityAddObserverLLeave)
- {
- RDebug::Print(_L("MMPXPlaybackUtility::AddObserverLLeaveIfDesiredL Leave"));
- gMMPXPlaybackUtilityAddObserverLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXPlaybackUtility::setRemoveObserverLLeave()
-{
- gMMPXPlaybackUtilityRemoveObserverLLeave = true;
-}
-
-void MMPXPlaybackUtility::RemoveObserverLLeaveIfDesiredL()
-{
- if (gMMPXPlaybackUtilityRemoveObserverLLeave)
- {
- RDebug::Print(_L("MMPXPlaybackUtility::RemoveObserverLLeaveIfDesiredL Leave"));
- gMMPXPlaybackUtilityRemoveObserverLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXPlaybackUtility::setCommandLLeave()
-{
- gMMPXPlaybackUtilityCommandLLeave = true;
-}
-
-void MMPXPlaybackUtility::CommandLLeaveIfDesiredL()
-{
- if (gMMPXPlaybackUtilityCommandLLeave)
- {
- RDebug::Print(_L("MMPXPlaybackUtility::CommandLLeaveIfDesiredL Leave"));
- gMMPXPlaybackUtilityCommandLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXPlaybackUtility::setStateLLeave()
-{
- gMMPXPlaybackUtilityStateLLeave = true;
-}
-
-void MMPXPlaybackUtility::StateLLeaveIfDesiredL()
-{
- if (gMMPXPlaybackUtilityStateLLeave)
- {
- RDebug::Print(_L("MMPXPlaybackUtility::StateLLeaveIfDesiredL Leave"));
- gMMPXPlaybackUtilityStateLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXPlaybackUtility::setPlaying()
-{
- gMMPXPlaybackUtilityState = EPbStatePlaying;
-}
-
-//static functions end
-
-MMPXPlaybackUtility::MMPXPlaybackUtility()
- : CActive(EPriorityStandard),
- iObserver(NULL),
- iVolume(5),
- iVolumeUp(ETrue)
-{
- gMMPXPlaybackUtilityState = EPbStateNotInitialised;
-}
-
-MMPXPlaybackUtility::~MMPXPlaybackUtility()
-{
-}
-
-MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& /*aModeId*/)
-{
- RDebug::Print(_L("stub MMPXPlaybackUtility::UtilityL"));
- MMPXPlaybackUtility::NewLLeaveIfDesiredL();
- gMMPXPlaybackUtilityCount++;
- static MMPXPlaybackUtility playbackUtilility;
- return &playbackUtilility;
-}
-
-void MMPXPlaybackUtility::Close()
-{
- iObserver = NULL;
- gMMPXPlaybackUtilityCount--;
-}
-
-void MMPXPlaybackUtility::AddObserverL(MpMediaKeyHandlerPrivate& aObs)
-{
- MMPXPlaybackUtility::AddObserverLLeaveIfDesiredL();
- iObserver = &aObs;
-}
-
-void MMPXPlaybackUtility::RemoveObserverL(MpMediaKeyHandlerPrivate& /*aObs*/)
-{
- MMPXPlaybackUtility::RemoveObserverLLeaveIfDesiredL();
- iObserver = NULL;
-}
-
-void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand aCmd, TInt /*aData*/)
-{
- RDebug::Print(_L(">>MMPXPlaybackUtility::CommandL"));
-
- MMPXPlaybackUtility::CommandLLeaveIfDesiredL();
-
- if (IsActive())
- User::Leave(KErrNotReady);
- else
- {
- if ((aCmd == EPbCmdIncreaseVolume) || (aCmd == EPbCmdDecreaseVolume))
- {
- if (aCmd == EPbCmdIncreaseVolume)
- iVolumeUp = ETrue;
- else
- iVolumeUp = EFalse;
-
- // stub should not be async
- /*TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- SetActive();*/
-
- RunL();
- }
- }
-
- RDebug::Print(_L("<<MMPXPlaybackUtility::CommandL"));
-}
-
-TMPXPlaybackState MMPXPlaybackUtility::StateL() const
-{
- MMPXPlaybackUtility::StateLLeaveIfDesiredL();
- return gMMPXPlaybackUtilityState;
-}
-
-void MMPXPlaybackUtility::DoCancel()
-{
-}
-
-void MMPXPlaybackUtility::RunL()
-{
- RDebug::Print(_L(">>MMPXPlaybackUtility::RunL"));
-
- TInt err = KErrNone;
-
- if (iVolumeUp)
- {
- if (iVolume < 10)
- iVolume++;
- else
- err = KErrArgument;
- }
- else
- {
- if (iVolume > 0)
- iVolume--;
- else
- err = KErrArgument;
- }
-
- if (iObserver)
- iObserver->HandlePropertyL(EPbPropertyVolume, iVolume, err);
-
- RDebug::Print(_L("<<MMPXPlaybackUtility::RunL"));
-}
-
-//end of file
--- a/app/tsrc/unittest_mpmediakeyhandler/stub/src/remconcoreapitarget.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +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: remconcoreapitarget stub for testing MpNowPlayingBackEnd
-*
-*/
-
-
-#include <e32debug.h>
-
-#include "stub/inc/remconcoreapitarget.h"
-
-
-int gCRemConCoreApiTargetCount = 0;
-bool gCRemConCoreApiTargetNewLLeave = false;
-int gCRemConCoreApiTargetSendResponseCount = 0;
-
-
-//static functions start
-
-int CRemConCoreApiTarget::getCount()
-{
- return gCRemConCoreApiTargetCount;
-}
-
-void CRemConCoreApiTarget::setNewLLeave()
-{
- gCRemConCoreApiTargetNewLLeave = true;
-}
-
-void CRemConCoreApiTarget::NewLLeaveIfDesiredL()
-{
- if (gCRemConCoreApiTargetNewLLeave)
- {
- RDebug::Print(_L("CRemConCoreApiTarget::NewLLeaveIfDesiredL Leave"));
- gCRemConCoreApiTargetNewLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-int CRemConCoreApiTarget::getSendResponseCount()
-{
- return gCRemConCoreApiTargetSendResponseCount;
-}
-
-//static functions end
-
-
-CRemConCoreApiTarget::CRemConCoreApiTarget()
- : CActive(EPriorityStandard),
- iClientStatus(NULL)
-{
- gCRemConCoreApiTargetCount++;
-}
-
-CRemConCoreApiTarget::~CRemConCoreApiTarget()
-{
- gCRemConCoreApiTargetCount--;
- gCRemConCoreApiTargetSendResponseCount = 0;
-}
-
-CRemConCoreApiTarget* CRemConCoreApiTarget::NewL(CRemConInterfaceSelector& /*aInterfaceSelector*/, MRemConCoreApiTargetObserver& /*aObserver*/)
-{
- RDebug::Print(_L("stub CRemConCoreApiTarget::NewL"));
- CRemConCoreApiTarget::NewLLeaveIfDesiredL();
- CRemConCoreApiTarget* self = new(ELeave) CRemConCoreApiTarget();
- return self;
-}
-
-
-void CRemConCoreApiTarget::VolumeUpResponse(TRequestStatus& aStatus, TInt /*aError*/)
-{
- RDebug::Print(_L(">>CRemConCoreApiTarget::VolumeUpResponse"));
-
- iClientStatus = &aStatus;
- gCRemConCoreApiTargetSendResponseCount++;
-
- // stub should not be async
- /*TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- SetActive();*/
-
- RunL();
-
- RDebug::Print(_L("<<CRemConCoreApiTarget::VolumeUpResponse"));
-}
-
-void CRemConCoreApiTarget::VolumeDownResponse(TRequestStatus& aStatus, TInt /*aError*/)
-{
- RDebug::Print(_L(">>CRemConCoreApiTarget::VolumeDownResponse"));
-
- iClientStatus = &aStatus;
- gCRemConCoreApiTargetSendResponseCount++;
-
- // stub should not be async
- /*TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- SetActive();*/
-
- RunL();
-
- RDebug::Print(_L("<<CRemConCoreApiTarget::VolumeDownResponse"));
-}
-
-void CRemConCoreApiTarget::SendResponse(TRequestStatus& aStatus, TRemConCoreApiOperationId /*aOperationId*/, TInt /*aError*/)
-{
- RDebug::Print(_L(">>CRemConCoreApiTarget::SendResponse"));
-
- iClientStatus = &aStatus;
- gCRemConCoreApiTargetSendResponseCount++;
-
- // stub should not be async
- /*TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- SetActive();*/
-
- RunL();
-
- RDebug::Print(_L("<<CRemConCoreApiTarget::SendResponse"));
-}
-
-void CRemConCoreApiTarget::DoCancel()
-{
-}
-
-void CRemConCoreApiTarget::RunL()
-{
- RDebug::Print(_L(">>CRemConCoreApiTarget::RunL"));
- User::RequestComplete(iClientStatus, KErrNone);
- RDebug::Print(_L("<<CRemConCoreApiTarget::RunL"));
-}
-
-//end of file
--- a/app/tsrc/unittest_mpmediakeyhandler/stub/src/remconinterfaceselector.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +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: remconinterfaceselector stub for testing MpNowPlayingBackEnd
-*
-*/
-
-
-#include <e32debug.h>
-
-#include "stub/inc/remconinterfaceselector.h"
-
-
-int gCRemConInterfaceSelectorCount = 0;
-bool gCRemConInterfaceSelectorNewLLeave = false;
-bool gCRemConInterfaceSelectorOpenTargetLLeave = false;
-
-
-//static functions start
-
-int CRemConInterfaceSelector::getCount()
-{
- return gCRemConInterfaceSelectorCount;
-}
-
-void CRemConInterfaceSelector::setNewLLeave()
-{
- gCRemConInterfaceSelectorNewLLeave = true;
-}
-
-void CRemConInterfaceSelector::NewLLeaveIfDesiredL()
-{
- if (gCRemConInterfaceSelectorNewLLeave)
- {
- RDebug::Print(_L("CRemConInterfaceSelector::NewLLeaveIfDesiredL Leave"));
- gCRemConInterfaceSelectorNewLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void CRemConInterfaceSelector::setOpenTargetLLeave()
-{
- gCRemConInterfaceSelectorOpenTargetLLeave = true;
-}
-
-void CRemConInterfaceSelector::OpenTargetLLeaveIfDesiredL()
-{
- if (gCRemConInterfaceSelectorOpenTargetLLeave)
- {
- RDebug::Print(_L("CRemConInterfaceSelector::NewLLeaveIfDesiredL Leave"));
- gCRemConInterfaceSelectorOpenTargetLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-//static functions end
-
-CRemConInterfaceSelector::CRemConInterfaceSelector()
-{
- gCRemConInterfaceSelectorCount++;
-}
-
-CRemConInterfaceSelector::~CRemConInterfaceSelector()
-{
- gCRemConInterfaceSelectorCount--;
-}
-
-CRemConInterfaceSelector* CRemConInterfaceSelector::NewL()
-{
- RDebug::Print(_L("stub CRemConInterfaceSelector::NewL"));
- CRemConInterfaceSelector::NewLLeaveIfDesiredL();
- CRemConInterfaceSelector* self = new(ELeave) CRemConInterfaceSelector();
- return self;
-}
-
-void CRemConInterfaceSelector::OpenTargetL()
-{
- CRemConInterfaceSelector::OpenTargetLLeaveIfDesiredL();
-}
-
-//end of file
--- a/app/tsrc/unittest_mpmediakeyhandler/unittest_mpmediakeyhandler.pro Fri Mar 19 09:28:13 2010 +0200
+++ /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:
-#
-
-TEMPLATE = app
-CONFIG += qtestlib hb
-TARGET =
-
-DEPENDPATH += . \
- inc \
- src
-
-INCLUDEPATH += . \
- stub/inc \
- ../../../inc \
-
-symbian:
-{
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-}
-
-LIBS += -lestor.dll \
- -lfbscli.dll \
- -lmpxcommon.dll \
- -lremconcoreapi.dll \
-
-# Input
-HEADERS += inc/unittest_mpmediakeyhandler.h \
- ../../inc/mpmediakeyhandler.h \
- ../../inc/mpmediakeyhandler_p.h \
- ../../inc/mpmediakeyremconresponse.h \
- stub/inc/mpxplaybackutility.h \
- stub/inc/remconcoreapitarget.h \
- stub/inc/remconinterfaceselector.h \
-
-SOURCES += src/unittest_mpmediakeyhandler.cpp \
- ../../src/mpmediakeyhandler.cpp \
- ../../src/mpmediakeyhandler_p.cpp \
- ../../src/mpmediakeyremconresponse.cpp \
- stub/src/mpxplaybackutility.cpp \
- stub/src/remconcoreapitarget.cpp \
- stub/src/remconinterfaceselector.cpp \
--- a/app/tsrc/unittest_mpsongscanner/inc/unittest_mpsongscanner.h Fri Mar 19 09:28:13 2010 +0200
+++ /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: Unit test for mpmediakeyhandler
-*
-*/
-
-#ifndef TESTMPSONGSCANNER_H
-#define TESTMPSONGSCANNER_H
-
-#include <QtTest/QtTest>
-
-class MpSongScanner;
-class MpSongScannerPrivate;
-
-class TestMpSongScanner : public QObject
-{
- Q_OBJECT
-
-public:
-
- TestMpSongScanner();
- virtual ~TestMpSongScanner();
-
-// from QtTest
-public slots:
-
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-// internal
-private slots:
-
- void testConstructor();
- void testDestructor();
- void testConstructorFail();
- void testIsScanning();
- void testScan();
- void testCancelScan();
- void testScanFail();
- void testCancelScanFail();
- void testHandleOpenLMedia();
- void testHandleOpenLPlaylist();
- void testHandleCollectionMessageRefresh();
- void testHandleCollectionMessageDiskInserted();
- void testHandleCollectionMessageItemChanged();
- void testHandleCollectionMediaL();
-
-private:
-
- MpSongScanner *mTest;
- MpSongScannerPrivate *mTestPrivate;
-
-};
-
-#endif // TESTMPSONGSCANNER_H
-
-
-
-
--- a/app/tsrc/unittest_mpsongscanner/src/unittest_mpsongscanner.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,347 +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 mpmediakeyhandler
-*
-*/
-
-#include <QSignalSpy>
-#include <QMetaType>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
-#include <e32debug.h>
-
-#include "unittest_mpsongscanner.h"
-#include "mpcommondefs.h"
-#include "stub/inc/mpxharvesterutility.h"
-#include "stub/inc/mpxcollectionutility.h"
-
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpsongscanner.h"
-#include "mpsongscanner_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;
-
- TestMpSongScanner tv;
-
- char *pass[3];
- pass[0] = argv[0];
- pass[1] = "-o";
- pass[2] = "c:\\data\\unittest_mpsongscanner.txt";
-
- int res = QTest::qExec(&tv, 3, pass);
-
- return res;
-}
-
-TestMpSongScanner::TestMpSongScanner()
- : mTest(0)
-{
-}
-
-TestMpSongScanner::~TestMpSongScanner()
-{
- delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpSongScanner::initTestCase()
-{
- RDebug::Print(_L("initTestCase()"));
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpSongScanner::cleanupTestCase()
-{
- RDebug::Print(_L("cleanupTestCase()"));
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpSongScanner::init()
-{
- RDebug::Print(_L(">>init()"));
- mTest = new MpSongScanner();
- mTestPrivate = mTest->d_ptr;
- RDebug::Print(_L("<<init()"));
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpSongScanner::cleanup()
-{
- if (mTest)
- {
- delete mTest;
- mTest = 0;
- mTestPrivate = 0;
- }
-}
-
-void TestMpSongScanner::testConstructor()
-{
- RDebug::Print(_L(">>testConstructor()"));
-
- QVERIFY(mTest != 0);
- QVERIFY(mTestPrivate != 0);
- QVERIFY(mTestPrivate->iCollectionUtility != 0);
- QVERIFY(mTestPrivate->iHarvesterUtility != 0);
-
- RDebug::Print(_L("<<testConstructor()"));
-}
-
-void TestMpSongScanner::testDestructor()
-{
- RDebug::Print(_L(">>testDestructor()"));
-
- cleanup();
- QVERIFY(mTest == 0);
- QCOMPARE(MMPXCollectionUtility::getCount(), 0);
- QCOMPARE(MMPXHarvesterUtility::getCount(), 0);
-
- RDebug::Print(_L("<<testDestructor()"));
-}
-
-void TestMpSongScanner::testConstructorFail()
-{
- RDebug::Print(_L(">>testConstructorFail()"));
-
- cleanup();
- MMPXCollectionUtility::setNewLLeave();
- init();
- QVERIFY(mTest != 0);
-
- cleanup();
- CMPXHarvesterFactory::setNewLLeave();
- init();
- QVERIFY(mTest != 0);
-
- cleanup();
- MMPXHarvesterUtility::setCheckForSystemEventsLLeave();
- init();
- QVERIFY(mTest != 0);
-
- cleanup();
- MMPXCollectionUtility::setCollectionIDLLeave();
- init();
- QVERIFY(mTest != 0);
-
- cleanup();
- MMPXCollection::setOpenLLeave();
- init();
- QVERIFY(mTest != 0);
-
- cleanup();
- MMPXCollection::setMediaLLeave();
- init();
- QVERIFY(mTest != 0);
-
- RDebug::Print(_L("<<testConstructorFail()"));
-}
-
-void TestMpSongScanner::testIsScanning()
-{
- RDebug::Print(_L(">>testIsScanning()"));
-
- QVERIFY(mTest->isScanning() == false);
-
- RDebug::Print(_L("<<testIsScanning()"));
-}
-
-void TestMpSongScanner::testScan()
-{
- RDebug::Print(_L(">>testScan()"));
-
- mTest->scan();
- QCOMPARE(mTest->isScanning(), true);
-
- RDebug::Print(_L("<<testScan()"));
-}
-
-void TestMpSongScanner::testCancelScan()
-{
- RDebug::Print(_L(">>testCancelScan()"));
-
- mTest->scan();
- mTest->cancelScan();
- QCOMPARE(mTest->isScanning(), false);
-
- RDebug::Print(_L("<<testCancelScan()"));
-}
-
-void TestMpSongScanner::testScanFail()
-{
- RDebug::Print(_L(">>testScanFail()"));
-
- MMPXHarvesterUtility::setScanLLeave();
- mTest->scan();
- QVERIFY(mTest->isScanning() == true);
-
- RDebug::Print(_L("<<testScanFail()"));
-}
-
-void TestMpSongScanner::testCancelScanFail()
-{
- RDebug::Print(_L(">>testCancelScanFail()"));
-
- MMPXHarvesterUtility::setCancelScanLLeave();
- mTest->scan();
- mTest->cancelScan();
- QCOMPARE(mTest->isScanning(), false);
-
- cleanup();
- init();
- mTest->scan();
- MMPXHarvesterUtility::setCancelScanLLeave();
- CMPXHarvesterFactory::setNewLLeave();
- mTest->cancelScan();
- QCOMPARE(mTest->isScanning(), false);
- QVERIFY(mTestPrivate->iHarvesterUtility == 0);
-
- cleanup();
- init();
- mTest->scan();
- MMPXHarvesterUtility::setCancelScanLLeave();
- MMPXHarvesterUtility::setCheckForSystemEventsLLeave();
- mTest->cancelScan();
- QCOMPARE(mTest->isScanning(), false);
- QVERIFY(mTestPrivate->iHarvesterUtility != 0);
-
- RDebug::Print(_L("<<testCancelScanFail()"));
-}
-
-void TestMpSongScanner::testHandleOpenLMedia()
-{
- RDebug::Print(_L(">>testHandleOpenLMedia()"));
-
- CMPXMedia* mpxMedia = NULL;
- mTestPrivate->HandleOpenL(*mpxMedia, 0, ETrue, KErrNone);
-
- // no implementation on HandleOpenL now, check something that should be obvious (isScanning)
- QCOMPARE(mTest->isScanning(), false);
-
- RDebug::Print(_L("<<testHandleOpenLMedia()"));
-}
-
-void TestMpSongScanner::testHandleOpenLPlaylist()
-{
- RDebug::Print(_L(">>testHandleOpenLPlaylist()"));
-
- CMPXCollectionPlaylist* mpxPlaylist = NULL;
- mTestPrivate->HandleOpenL(*mpxPlaylist, KErrNone);
-
- // no implementation on HandleOpenL now, check something that should be obvious (isScanning)
- QCOMPARE(mTest->isScanning(), false);
-
- RDebug::Print(_L("<<testHandleOpenLPlaylist()"));
-}
-
-void TestMpSongScanner::testHandleCollectionMessageRefresh()
-{
- RDebug::Print(_L(">>testHandleCollectionMessageRefresh()"));
-
- QSignalSpy spy1(mTest, SIGNAL(scanStarted()));
- QSignalSpy spy2(mTest, SIGNAL(scanEnded()));
- TInt err = KErrNone;
-
- mTest->scan();
- err = mTestPrivate->iCollectionUtility->SendRefreshStartMessage();
-
- QCOMPARE(err, KErrNone);
- QCOMPARE(spy1.count(), 1);
-
- err = mTestPrivate->iCollectionUtility->SendRefreshEndMessage();
-
- QCOMPARE(err, KErrNone);
- QCOMPARE(spy2.count(), 1);
- QCOMPARE(mTest->isScanning(), false);
-
- RDebug::Print(_L("<<testHandleCollectionMessageRefresh()"));
-}
-
-void TestMpSongScanner::testHandleCollectionMessageDiskInserted()
-{
- RDebug::Print(_L(">>testHandleCollectionMessageDiskInserted()"));
-
- QSignalSpy spy(mTest, SIGNAL(scanEnded()));
- TInt err = KErrNone;
-
- mTest->scan();
- err = mTestPrivate->iCollectionUtility->SendDiskInsertedMessage();
-
- QCOMPARE(err, KErrNone);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(mTest->isScanning(), false);
-
- RDebug::Print(_L("<<testHandleCollectionMessageDiskInserted()"));
-}
-
-void TestMpSongScanner::testHandleCollectionMessageItemChanged()
-{
- RDebug::Print(_L(">>testHandleCollectionMessageItemChanged()"));
-
- TInt err = KErrNone;
-
- // must send a Refresh start first or itemadded check would not be valid
- mTest->scan();
- err = mTestPrivate->iCollectionUtility->SendRefreshStartMessage();
-
- QCOMPARE(err, KErrNone);
-
- err = mTestPrivate->iCollectionUtility->SendItemChangedMessage();
-
- QCOMPARE(err, KErrNone);
- QCOMPARE(mTestPrivate->iNumItemsAdded, 1);
-
- RDebug::Print(_L("<<testHandleCollectionMessageItemChanged()"));
-}
-
-void TestMpSongScanner::testHandleCollectionMediaL()
-{
- RDebug::Print(_L(">>testHandleCollectionMediaL()"));
-
- QSignalSpy spy(mTest, SIGNAL(scanEnded()));
- TInt err = KErrNone;
-
- err = mTestPrivate->iCollectionUtility->SendDbCreatedMedia();
-
- QCOMPARE(err, KErrNone);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(mTest->isScanning(), false);
-
- err = mTestPrivate->iCollectionUtility->SendNotDbCreatedMedia();
-
- QCOMPARE(err, KErrNone);
- QCOMPARE(mTest->isScanning(), true);
-
- RDebug::Print(_L("<<testHandleCollectionMediaL()"));
-}
-
-// End of file
--- a/app/tsrc/unittest_mpsongscanner/stub/inc/mpxcollectionutility.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +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: mmpxcollectionutility stub for testing mpsongscanner
-*
-*/
-
-
-#ifndef MMPXCOLLECTIONUTILITY_H
-#define MMPXCOLLECTIONUTILITY_H
-
-
-#include <mpxcommonframeworkdefs.h> // TMPXOpenMode
-#include <mpxattribute.h> // TMPXAttribute
-#include <e32base.h> // CBase
-
-
-class MpSongScannerPrivate;
-class CMPXCollectionPath;
-class CMPXAttributeSpecs;
-class CMPXFilter;
-
-
-class MMPXCollection : public CBase
- {
-
-public:
-
- static void setOpenLLeave();
- static void OpenLLeaveIfDesiredL();
- static void setMediaLLeave();
- static void MediaLLeaveIfDesiredL();
-
-public:
-
- MMPXCollection();
- virtual ~MMPXCollection();
-
- void OpenL(TMPXOpenMode aMode = EMPXOpenDefault);
- void MediaL(const CMPXCollectionPath& aPath, const TArray<TMPXAttribute>& aAttrs, CMPXAttributeSpecs* aSpecs=NULL, CMPXFilter* aFilter=NULL);
-
- };
-
-class MMPXCollectionUtility : public CBase
- {
-
-public:
-
- static int getCount();
- static void setNewLLeave();
- static void NewLLeaveIfDesiredL();
- static void setCollectionIDLLeave();
- static void CollectionIDLLeaveIfDesiredL();
-
-public:
-
- static MMPXCollectionUtility* NewL(MpSongScannerPrivate* aObs);
- virtual ~MMPXCollectionUtility();
-
- void Close();
- TUid CollectionIDL(const TArray<TUid>& aUids);
- MMPXCollection& Collection();
-
-// test function
-public:
-
- TInt SendRefreshStartMessage();
- TInt SendRefreshEndMessage();
- TInt SendDiskInsertedMessage();
- TInt SendItemChangedMessage();
-
- TInt SendDbCreatedMedia();
- TInt SendNotDbCreatedMedia();
-
-private:
-
- MMPXCollectionUtility();
-
-// workaround so that iObserver can be set everytime on NewL
-public:
-
- MpSongScannerPrivate* iObserver;
-
-private:
-
- MMPXCollection iCollection;
-
- };
-
-#endif // MMPXCOLLECTIONUTILITY_H
-
-// End of File
--- a/app/tsrc/unittest_mpsongscanner/stub/inc/mpxharvesterutility.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +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: mpxharvesterutility stub for testing mpsongscanner
-*
-*/
-
-
-#ifndef MMPXHARVESTERUTILITY_H
-#define MMPXHARVESTERUTILITY_H
-
-
-#include <e32base.h> // CBase
-
-
-class MMPXHarvesterUtility : public CBase
- {
-
-public:
-
- static int getCount();
- static void setCheckForSystemEventsLLeave();
- static void CheckForSystemEventsLLeaveIfDesired();
- static void setScanLLeave();
- static void ScanLLeaveIfDesired();
- static void setCancelScanLLeave();
- static void CancelScanLLeaveIfDesired();
-
-public:
-
- MMPXHarvesterUtility();
- virtual ~MMPXHarvesterUtility();
-
- void Close();
- void CheckForSystemEventsL();
- void ScanL();
- void CancelScanL();
-
- };
-
-
-class CMPXHarvesterFactory : public CBase
- {
-
-public:
-
- static void setNewLLeave();
- static void NewLLeaveIfDesiredL();
-
-public:
-
- static MMPXHarvesterUtility* NewL();
-
- };
-
-#endif // MMPXHARVESTERUTILITY_H
-
-// End of File
--- a/app/tsrc/unittest_mpsongscanner/stub/src/mpxcollectionutility.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,364 +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 MpNowPlayingBackEnd
-*
-*/
-
-
-#include <mpxmedia.h>
-#include <mpxmessage.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxcollectionmessage.h>
-#include <mpxcollectionmessagedefs.h>
-#include <mpxmediageneraldefs.h>
-#include <mpxmediacollectiondetaildefs.h>
-
-#include <e32debug.h>
-
-#include "stub/inc/mpxcollectionutility.h"
-#include "mpsongscanner_p.h"
-
-
-int gMMPXCollectionCount = 0;
-int gMMPXCollectionUtilityCount = 0;
-bool gMMPXCollectionNewLLeave = false;
-bool gMMPXCollectionOpenLLeave = false;
-bool gMMPXCollectionMediaLLeave = false;
-bool gMMPXCollectionUtilityNewLLeave = false;
-bool gMMPXCollectionUtilityCollectionIDLLeave = false;
-
-
-//static functions start
-
-void MMPXCollection::setOpenLLeave()
-{
- gMMPXCollectionOpenLLeave = true;
-}
-
-void MMPXCollection::OpenLLeaveIfDesiredL()
-{
- if (gMMPXCollectionOpenLLeave)
- {
- RDebug::Print(_L("MMPXCollection::OpenLLeaveIfDesiredL Leave"));
- gMMPXCollectionOpenLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXCollection::setMediaLLeave()
-{
- gMMPXCollectionMediaLLeave = true;
-}
-
-void MMPXCollection::MediaLLeaveIfDesiredL()
-{
- if (gMMPXCollectionMediaLLeave)
- {
- RDebug::Print(_L("MMPXCollection::MediaLLeaveIfDesiredL Leave"));
- gMMPXCollectionMediaLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-int MMPXCollectionUtility::getCount()
-{
- return gMMPXCollectionUtilityCount;
-}
-
-void MMPXCollectionUtility::setNewLLeave()
-{
- gMMPXCollectionUtilityNewLLeave = true;
-}
-
-void MMPXCollectionUtility::NewLLeaveIfDesiredL()
-{
- if (gMMPXCollectionUtilityNewLLeave)
- {
- RDebug::Print(_L("MMPXCollectionUtility::NewLLeaveIfDesiredL Leave"));
- gMMPXCollectionUtilityNewLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXCollectionUtility::setCollectionIDLLeave()
-{
- gMMPXCollectionUtilityCollectionIDLLeave = true;
-}
-
-void MMPXCollectionUtility::CollectionIDLLeaveIfDesiredL()
-{
- if (gMMPXCollectionUtilityCollectionIDLLeave)
- {
- RDebug::Print(_L("MMPXCollectionUtility::CollectionIDLLeaveIfDesiredL Leave"));
- gMMPXCollectionUtilityCollectionIDLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-//static functions end
-
-MMPXCollection::MMPXCollection()
-{
- RDebug::Print(_L("stub MMPXCollection::MMPXCollection"));
-}
-
-MMPXCollection::~MMPXCollection()
-{
-}
-
-void MMPXCollection::OpenL(TMPXOpenMode /*aMode*/)
-{
- MMPXCollection::OpenLLeaveIfDesiredL();
-}
-
-void MMPXCollection::MediaL(const CMPXCollectionPath& /*aPath*/, const TArray<TMPXAttribute>& /*aAttrs*/, CMPXAttributeSpecs* /*aSpecs*/, CMPXFilter* /*aFilter*/)
-{
- MMPXCollection::MediaLLeaveIfDesiredL();
-}
-
-MMPXCollectionUtility::MMPXCollectionUtility()
-{
-}
-
-MMPXCollectionUtility::~MMPXCollectionUtility()
-{
-}
-
-MMPXCollectionUtility* MMPXCollectionUtility::NewL(MpSongScannerPrivate* aObs)
-{
- RDebug::Print(_L("stub MMPXCollectionUtility::NewL"));
- MMPXCollectionUtility::NewLLeaveIfDesiredL();
- gMMPXCollectionUtilityCount++;
- static MMPXCollectionUtility collectionUtilility;
- collectionUtilility.iObserver = aObs;
- return &collectionUtilility;
-}
-
-void MMPXCollectionUtility::Close()
-{
- iObserver = NULL;
- gMMPXCollectionUtilityCount--;
-}
-
-TUid MMPXCollectionUtility::CollectionIDL(const TArray<TUid>& /*aUids*/)
-{
- RDebug::Print(_L("MMPXCollectionUtility::CancelScanL"));
- MMPXCollectionUtility::CollectionIDLLeaveIfDesiredL();
- return TUid::Uid(0);
-}
-
-MMPXCollection& MMPXCollectionUtility::Collection()
-{
- RDebug::Print(_L("MMPXCollectionUtility::CancelScanL"));
- return iCollection;
-}
-
-TInt MMPXCollectionUtility::SendRefreshStartMessage()
-{
- RDebug::Print(_L(">>MMPXCollectionUtility::SendRefreshStartMessage"));
-
- CMPXMessage* mpxMessage = NULL;
- TInt err = KErrNone;
-
- TRAP(err,
- {
- mpxMessage = CMPXMessage::NewL();
- CleanupStack::PushL(mpxMessage);
- TMPXMessageId id = static_cast<TMPXMessageId>(KMPXMessageGeneral);
- mpxMessage->SetTObjectValueL<TMPXMessageId>(KMPXMessageGeneralId, id);
- mpxMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent, TMPXCollectionMessage::EBroadcastEvent);
- mpxMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType, EMcMsgRefreshStart);
- CleanupStack::Pop(mpxMessage);
- });
-
-
- if (err != KErrNone)
- {
- RDebug::Print(_L("err = %d"), err);
- CleanupStack::PopAndDestroy(mpxMessage);
- return err;
- }
-
- if (iObserver)
- iObserver->HandleCollectionMessage(mpxMessage, err);
-
- delete mpxMessage;
-
- RDebug::Print(_L("<<MMPXCollectionUtility::SendRefreshStartMessage"));
- return KErrNone;
-}
-
-TInt MMPXCollectionUtility::SendRefreshEndMessage()
-{
- RDebug::Print(_L(">>MMPXCollectionUtility::SendRefreshEndMessage"));
-
- CMPXMessage* mpxMessage = NULL;
- TInt err = KErrNone;
-
- TRAP(err,
- {
- mpxMessage = CMPXMessage::NewL();
- CleanupStack::PushL(mpxMessage);
- TMPXMessageId id = static_cast<TMPXMessageId>(KMPXMessageGeneral);
- mpxMessage->SetTObjectValueL<TMPXMessageId>(KMPXMessageGeneralId, id);
- mpxMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent, TMPXCollectionMessage::EBroadcastEvent);
- mpxMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType, EMcMsgRefreshEnd);
- CleanupStack::Pop(mpxMessage);
- });
-
- if (err != KErrNone)
- {
- RDebug::Print(_L("err = %d"), err);
- CleanupStack::PopAndDestroy(mpxMessage);
- return err;
- }
-
- if (iObserver)
- iObserver->HandleCollectionMessage(mpxMessage, err);
-
- delete mpxMessage;
-
- RDebug::Print(_L("<<MMPXCollectionUtility::SendRefreshEndMessage"));
- return KErrNone;
-}
-
-TInt MMPXCollectionUtility::SendDiskInsertedMessage()
-{
- RDebug::Print(_L(">>MMPXCollectionUtility::SendDiskInsertedMessage"));
-
- CMPXMessage* mpxMessage = NULL;
- TInt err = KErrNone;
-
- TRAP(err,
- {
- mpxMessage = CMPXMessage::NewL();
- CleanupStack::PushL(mpxMessage);
- TMPXMessageId id = static_cast<TMPXMessageId>(KMPXMessageGeneral);
- mpxMessage->SetTObjectValueL<TMPXMessageId>(KMPXMessageGeneralId, id);
- mpxMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent, TMPXCollectionMessage::EBroadcastEvent);
- mpxMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType, EMcMsgDiskInserted);
- CleanupStack::Pop(mpxMessage);
- });
-
- if (err != KErrNone)
- {
- RDebug::Print(_L("err = %d"), err);
- CleanupStack::PopAndDestroy(mpxMessage);
- return err;
- }
-
- if (iObserver)
- iObserver->HandleCollectionMessage(mpxMessage, err);
-
- delete mpxMessage;
-
- RDebug::Print(_L("<<MMPXCollectionUtility::SendDiskInsertedMessage"));
- return KErrNone;
-}
-
-TInt MMPXCollectionUtility::SendItemChangedMessage()
-{
- RDebug::Print(_L(">>MMPXCollectionUtility::SendItemChangedMessage"));
-
- CMPXMessage* mpxMessage = NULL;
- TInt err = KErrNone;
-
- TRAP(err,
- {
- mpxMessage = CMPXMessage::NewL();
- CleanupStack::PushL(mpxMessage);
- TMPXMessageId id = static_cast<TMPXMessageId>(KMPXMessageIdItemChanged);
- mpxMessage->SetTObjectValueL<TMPXMessageId>(KMPXMessageGeneralId, id);
- mpxMessage->SetTObjectValueL<TMPXChangeEventType>(KMPXMessageChangeEventType, EMPXItemInserted);
- mpxMessage->SetTObjectValueL<TMPXGeneralCategory>(KMPXMessageMediaGeneralCategory, EMPXSong);
- CleanupStack::Pop(mpxMessage);
- });
-
- if (err != KErrNone)
- {
- RDebug::Print(_L("err = %d"), err);
- CleanupStack::PopAndDestroy(mpxMessage);
- return err;
- }
-
- if (iObserver)
- iObserver->HandleCollectionMessage(mpxMessage, err);
-
- delete mpxMessage;
-
- RDebug::Print(_L("<<MMPXCollectionUtility::SendItemChangedMessage"));
- return KErrNone;
-}
-
-TInt MMPXCollectionUtility::SendDbCreatedMedia()
-{
- RDebug::Print(_L(">>MMPXCollectionUtility::SendDbCreatedMedia"));
-
- CMPXMedia *mpxMedia = NULL;
- TInt err = KErrNone;
-
- TRAP(err,
- {
- mpxMedia = CMPXMedia::NewL();
- CleanupStack::PushL(mpxMedia);
- mpxMedia->SetTObjectValueL<TBool>(KMPXMediaColDetailDBCreated, ETrue);
- CleanupStack::Pop(mpxMedia);
- });
-
- if (err != KErrNone)
- {
- RDebug::Print(_L("err = %d"), err);
- CleanupStack::PopAndDestroy(mpxMedia);
- return err;
- }
-
- if (iObserver)
- TRAP(err, iObserver->HandleCollectionMediaL(*mpxMedia, err));
-
- delete mpxMedia;
- RDebug::Print(_L("<<MMPXCollectionUtility::SendDbCreatedMedia"));
- return err;
-}
-
-TInt MMPXCollectionUtility::SendNotDbCreatedMedia()
-{
- RDebug::Print(_L(">>MMPXCollectionUtility::SendNotDbCreatedMedia"));
-
- CMPXMedia *mpxMedia = NULL;
- TInt err = KErrNone;
-
- TRAP(err,
- {
- mpxMedia = CMPXMedia::NewL();
- CleanupStack::PushL(mpxMedia);
- mpxMedia->SetTObjectValueL<TBool>(KMPXMediaColDetailDBCreated, EFalse);
- CleanupStack::Pop(mpxMedia);
- });
-
- if (err != KErrNone)
- {
- RDebug::Print(_L("err = %d"), err);
- CleanupStack::PopAndDestroy(mpxMedia);
- return err;
- }
-
- if (iObserver)
- TRAP(err, iObserver->HandleCollectionMediaL(*mpxMedia, err));
-
- delete mpxMedia;
- RDebug::Print(_L("<<MMPXCollectionUtility::SendNotDbCreatedMedia"));
- return err;
-}
-
-//end of file
--- a/app/tsrc/unittest_mpsongscanner/stub/src/mpxharvesterutility.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +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: mpxharvesterutility stub for testing MpNowPlayingBackEnd
-*
-*/
-
-
-#include <e32debug.h>
-
-#include "stub/inc/mpxharvesterutility.h"
-
-
-bool gCMPXHarvesterFactoryNewLLeave = false;
-int gMMPXHarvesterUtilityCount = 0;
-bool gMMPXHarvesterUtilityCheckForSystemEventsLLeave = false;
-bool gMMPXHarvesterUtilityScanLLeave = false;
-bool gMMPXHarvesterUtilityCancelScanLLeave = false;
-
-
-//static functions start
-
-void CMPXHarvesterFactory::setNewLLeave()
-{
- gCMPXHarvesterFactoryNewLLeave = true;
-}
-
-void CMPXHarvesterFactory::NewLLeaveIfDesiredL()
-{
- if (gCMPXHarvesterFactoryNewLLeave)
- {
- RDebug::Print(_L("CMPXHarvesterFactory::NewLLeaveIfDesiredL Leave"));
- gCMPXHarvesterFactoryNewLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-int MMPXHarvesterUtility::getCount()
-{
- return gMMPXHarvesterUtilityCount;
-}
-
-void MMPXHarvesterUtility::setCheckForSystemEventsLLeave()
-{
- gMMPXHarvesterUtilityCheckForSystemEventsLLeave = true;
-}
-
-void MMPXHarvesterUtility::CheckForSystemEventsLLeaveIfDesired()
-{
- if (gMMPXHarvesterUtilityCheckForSystemEventsLLeave)
- {
- RDebug::Print(_L("MMPXHarvesterUtility::CheckForSystemEventsLLeaveIfDesired Leave"));
- gMMPXHarvesterUtilityCheckForSystemEventsLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXHarvesterUtility::setScanLLeave()
-{
- gMMPXHarvesterUtilityScanLLeave = true;
-}
-
-void MMPXHarvesterUtility::ScanLLeaveIfDesired()
-{
- if (gMMPXHarvesterUtilityScanLLeave)
- {
- RDebug::Print(_L("MMPXHarvesterUtility::ScanLLeaveIfDesired Leave"));
- gMMPXHarvesterUtilityScanLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-void MMPXHarvesterUtility::setCancelScanLLeave()
-{
- gMMPXHarvesterUtilityCancelScanLLeave = true;
-}
-
-void MMPXHarvesterUtility::CancelScanLLeaveIfDesired()
-{
- if (gMMPXHarvesterUtilityCancelScanLLeave)
- {
- RDebug::Print(_L("MMPXHarvesterUtility::CancelScanLLeaveIfDesired Leave"));
- gMMPXHarvesterUtilityCancelScanLLeave = false;
- User::Leave(KErrGeneral);
- }
-}
-
-//static functions end
-
-MMPXHarvesterUtility* CMPXHarvesterFactory::NewL()
- {
- RDebug::Print(_L("stub CMPXHarvesterFactory::NewL"));
-
- CMPXHarvesterFactory::NewLLeaveIfDesiredL();
- gMMPXHarvesterUtilityCount++;
- static MMPXHarvesterUtility harvesterUtility;
- return &harvesterUtility;
- }
-
-MMPXHarvesterUtility::MMPXHarvesterUtility()
-{
-}
-
-MMPXHarvesterUtility::~MMPXHarvesterUtility()
-{
-}
-
-void MMPXHarvesterUtility::Close()
-{
- gMMPXHarvesterUtilityCount--;
-}
-
-void MMPXHarvesterUtility::CheckForSystemEventsL()
-{
- RDebug::Print(_L("MMPXHarvesterUtility::CheckForSystemEventsL"));
- MMPXHarvesterUtility::setCheckForSystemEventsLLeave();
-}
-
-void MMPXHarvesterUtility::ScanL()
-{
- RDebug::Print(_L("MMPXHarvesterUtility::ScanL"));
- MMPXHarvesterUtility::ScanLLeaveIfDesired();
-}
-
-void MMPXHarvesterUtility::CancelScanL()
-{
- RDebug::Print(_L("MMPXHarvesterUtility::CancelScanL"));
- MMPXHarvesterUtility::CancelScanLLeaveIfDesired();
-}
-
-//end of file
--- a/app/tsrc/unittest_mpsongscanner/unittest_mpsongscanner.pro Fri Mar 19 09:28:13 2010 +0200
+++ /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:
-#
-
-TEMPLATE = app
-CONFIG += qtestlib hb
-TARGET =
-
-DEPENDPATH += . \
- inc \
- src
-
-INCLUDEPATH += . \
- stub/inc \
- ../../../inc \
-
-symbian:
-{
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-}
-
-LIBS += -lestor.dll \
- -lfbscli.dll \
- -lmpxcommon.dll \
-
-# Input
-HEADERS += inc/unittest_mpsongscanner.h \
- ../../inc/mpsongscanner.h \
- ../../inc/mpsongscanner_p.h \
- stub/inc/mpxharvesterutility.h \
- stub/inc/mpxcollectionutility.h \
-
-SOURCES += src/unittest_mpsongscanner.cpp \
- ../../src/mpsongscanner.cpp \
- ../../src/mpsongscanner_p.cpp \
- stub/src/mpxharvesterutility.cpp \
- stub/src/mpxcollectionutility.cpp \
--- a/inc/mpcommondefs.h Fri Mar 19 09:28:13 2010 +0200
+++ b/inc/mpcommondefs.h Fri Apr 16 14:56:30 2010 +0300
@@ -26,6 +26,8 @@
const long int KMusicPlayerUid = {0x10207C62};
const long int KCollectionViewUid = {0x10207C63};
const long int KPlaybackViewUid = {0x10207C64};
+ const long int KSettingsViewUid = {0x10207C66};
+ const long int KDetailsViewUid = {0x2002D0AA};
/*!
Command code sent from the views to the application main window
@@ -34,7 +36,9 @@
enum MpCommandCode {
Exit,
ActivateCollectionView,
- ActivatePlaybackView
+ ActivatePlaybackView,
+ ActivateSettingsView,
+ ActivateDetailsView
};
/*!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/mpengine.h Fri Apr 16 14:56:30 2010 +0300
@@ -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 engine.
+*
+*/
+
+#ifndef MPENGINE_H
+#define MPENGINE_H
+
+#include <QObject>
+#include "mpmpxcommondefs.h"
+
+class QStringList;
+class QTranslator;
+class HbNotificationDialog;
+class MpMpxFrameworkWrapper;
+class MpSongScanner;
+class MpMediaKeyHandler;
+
+#if defined(BUILD_MPENGINE_LIB)
+#define MPENGINE_EXPORT Q_DECL_EXPORT
+#else
+#define MPENGINE_EXPORT Q_DECL_IMPORT
+#endif
+
+
+class MPENGINE_EXPORT MpEngine : public QObject
+{
+ Q_OBJECT
+
+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();
+ static MpEngine *instance();
+
+ void refreshLibrary();
+ bool verifyUsbBlocking( bool showMessage = false );
+
+signals:
+
+ void libraryAboutToRefresh();
+ void libraryRefreshed();
+ void usbBlocked( bool blocked );
+ void exitApplication();
+
+public slots:
+
+ void handleScanStarted();
+ void handleScanEnded( int count, int error );
+ void handleDiskEvent( MpxDiskEvents event );
+ void handleUsbEvent( MpxUsbEvents event );
+
+private:
+
+ void handleUsbMassStorageStartEvent();
+ void handleUsbMassStorageEndEvent();
+ void handleUsbMtpStartEvent();
+ void handleUsbMtpEndEvent();
+ void handleUsbMtpNotActive();
+
+ void changeUsbBlockingState( UsbBlockingState state );
+
+private:
+
+ Q_DISABLE_COPY( MpEngine )
+
+ MpMpxFrameworkWrapper *mMpxWrapper; // Own
+ MpSongScanner *mSongScanner; // Own
+ MpMediaKeyHandler *mMediaKeyHandler; // Own
+
+ HbNotificationDialog *mUsbBlockingNote; // Own
+ QTranslator *mMpTranslator; // Own
+
+ UsbBlockingState mUsbBlockingState;
+ UsbBlockingState mPreviousUsbState;
+
+};
+
+#endif // MPENGINE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/mpmpxcommondefs.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player MPX common definitions.
+*
+*/
+
+#ifndef MPMPXCOMMONDEFS_H
+#define MPMPXCOMMONDEFS_H
+
+#include <QMetaType>
+
+// Disk events from MPX Framework.
+enum MpxDiskEvents {
+ DiskFormatStarted,
+ DiskFormatEnded,
+ DiskRemoved,
+ DiskInserted
+};
+// Register so type can be used in signal and slot connection
+Q_DECLARE_METATYPE(MpxDiskEvents)
+
+// USB events from MPX Framework.
+enum MpxUsbEvents {
+ UsbMassStorageStarted,
+ UsbMassStorageEnded,
+ UsbMtpStarted,
+ UsbMtpEnded,
+ UsbMtpNotActive
+};
+// Register so type can be used in signal and slot connection
+Q_DECLARE_METATYPE(MpxUsbEvents)
+
+#endif // MPMPXCOMMONDEFS_H
+
--- a/inc/mpnowplayingwidget.h Fri Mar 19 09:28:13 2010 +0200
+++ b/inc/mpnowplayingwidget.h Fri Apr 16 14:56:30 2010 +0300
@@ -51,6 +51,7 @@
private:
void mousePressEvent( QGraphicsSceneMouseEvent *event );
void mouseReleaseEvent( QGraphicsSceneMouseEvent *event );
+ void changeEvent(QEvent *event);
private:
Q_DISABLE_COPY(MpNowPlayingWidget)
--- a/inc/mpsettingsmanager.h Fri Mar 19 09:28:13 2010 +0200
+++ b/inc/mpsettingsmanager.h Fri Apr 16 14:56:30 2010 +0300
@@ -43,15 +43,18 @@
static bool firstStartup();
static bool shuffle();
static bool repeat();
+ static int preset();
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);
signals:
void shuffleChanged(bool shuffle);
void repeatChanged(bool repeat);
+ void presetChanged(int preset);
private:
Q_DISABLE_COPY(MpSettingsManager)
@@ -59,6 +62,7 @@
bool mFirstStartup;
bool mShuffle;
bool mRepeat;
+ int mPreset;
};
#endif // MPSETTINGSMANAGER_H
--- a/inc/mpviewbase.h Fri Mar 19 09:28:13 2010 +0200
+++ b/inc/mpviewbase.h Fri Apr 16 14:56:30 2010 +0300
@@ -30,6 +30,7 @@
void setViewMode(MpCommon::MpViewMode viewMode) { mViewMode = viewMode; }
MpCommon::MpViewMode viewMode() { return mViewMode; }
+ virtual void setDefaultView() { }
signals:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/bwins/mpengineu.def Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,31 @@
+EXPORTS
+ ?metaObject@MpEngine@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * MpEngine::metaObject(void) const
+ ?refreshLibrary@MpEngine@@QAEXXZ @ 2 NONAME ; void MpEngine::refreshLibrary(void)
+ ?exitApplication@MpEngine@@IAEXXZ @ 3 NONAME ; void MpEngine::exitApplication(void)
+ ?trUtf8@MpEngine@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString MpEngine::trUtf8(char const *, char const *, int)
+ ?handleUsbEvent@MpEngine@@QAEXW4MpxUsbEvents@@@Z @ 5 NONAME ; void MpEngine::handleUsbEvent(enum MpxUsbEvents)
+ ?handleUsbMassStorageStartEvent@MpEngine@@AAEXXZ @ 6 NONAME ; void MpEngine::handleUsbMassStorageStartEvent(void)
+ ?tr@MpEngine@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString MpEngine::tr(char const *, char const *)
+ ?getStaticMetaObject@MpEngine@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & MpEngine::getStaticMetaObject(void)
+ ?qt_metacast@MpEngine@@UAEPAXPBD@Z @ 9 NONAME ; void * MpEngine::qt_metacast(char const *)
+ ?handleDiskEvent@MpEngine@@QAEXW4MpxDiskEvents@@@Z @ 10 NONAME ; void MpEngine::handleDiskEvent(enum MpxDiskEvents)
+ ?verifyUsbBlocking@MpEngine@@QAE_N_N@Z @ 11 NONAME ; bool MpEngine::verifyUsbBlocking(bool)
+ ?handleUsbMassStorageEndEvent@MpEngine@@AAEXXZ @ 12 NONAME ; void MpEngine::handleUsbMassStorageEndEvent(void)
+ ?usbBlocked@MpEngine@@IAEX_N@Z @ 13 NONAME ; void MpEngine::usbBlocked(bool)
+ ?libraryRefreshed@MpEngine@@IAEXXZ @ 14 NONAME ; void MpEngine::libraryRefreshed(void)
+ ??0MpEngine@@AAE@XZ @ 15 NONAME ; MpEngine::MpEngine(void)
+ ?tr@MpEngine@@SA?AVQString@@PBD0H@Z @ 16 NONAME ; class QString MpEngine::tr(char const *, char const *, int)
+ ?handleUsbMtpEndEvent@MpEngine@@AAEXXZ @ 17 NONAME ; void MpEngine::handleUsbMtpEndEvent(void)
+ ?trUtf8@MpEngine@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString MpEngine::trUtf8(char const *, char const *)
+ ?libraryAboutToRefresh@MpEngine@@IAEXXZ @ 19 NONAME ; void MpEngine::libraryAboutToRefresh(void)
+ ?staticMetaObject@MpEngine@@2UQMetaObject@@B @ 20 NONAME ; struct QMetaObject const MpEngine::staticMetaObject
+ ?handleScanEnded@MpEngine@@QAEXHH@Z @ 21 NONAME ; void MpEngine::handleScanEnded(int, int)
+ ??_EMpEngine@@UAE@I@Z @ 22 NONAME ; MpEngine::~MpEngine(unsigned int)
+ ??1MpEngine@@UAE@XZ @ 23 NONAME ; MpEngine::~MpEngine(void)
+ ?handleUsbMtpStartEvent@MpEngine@@AAEXXZ @ 24 NONAME ; void MpEngine::handleUsbMtpStartEvent(void)
+ ?changeUsbBlockingState@MpEngine@@AAEXW4UsbBlockingState@1@@Z @ 25 NONAME ; void MpEngine::changeUsbBlockingState(enum MpEngine::UsbBlockingState)
+ ?instance@MpEngine@@SAPAV1@XZ @ 26 NONAME ; class MpEngine * MpEngine::instance(void)
+ ?qt_metacall@MpEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int MpEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?handleScanStarted@MpEngine@@QAEXXZ @ 28 NONAME ; void MpEngine::handleScanStarted(void)
+ ?handleUsbMtpNotActive@MpEngine@@AAEXXZ @ 29 NONAME ; void MpEngine::handleUsbMtpNotActive(void)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/eabi/mpengineu.def Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,31 @@
+EXPORTS
+ _ZN8MpEngine10usbBlockedEb @ 1 NONAME
+ _ZN8MpEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
+ _ZN8MpEngine11qt_metacastEPKc @ 3 NONAME
+ _ZN8MpEngine14handleUsbEventE12MpxUsbEvents @ 4 NONAME
+ _ZN8MpEngine14refreshLibraryEv @ 5 NONAME
+ _ZN8MpEngine15exitApplicationEv @ 6 NONAME
+ _ZN8MpEngine15handleDiskEventE13MpxDiskEvents @ 7 NONAME
+ _ZN8MpEngine15handleScanEndedEii @ 8 NONAME
+ _ZN8MpEngine16libraryRefreshedEv @ 9 NONAME
+ _ZN8MpEngine16staticMetaObjectE @ 10 NONAME DATA 16
+ _ZN8MpEngine17handleScanStartedEv @ 11 NONAME
+ _ZN8MpEngine17verifyUsbBlockingEb @ 12 NONAME
+ _ZN8MpEngine19getStaticMetaObjectEv @ 13 NONAME
+ _ZN8MpEngine20handleUsbMtpEndEventEv @ 14 NONAME
+ _ZN8MpEngine21libraryAboutToRefreshEv @ 15 NONAME
+ _ZN8MpEngine22changeUsbBlockingStateENS_16UsbBlockingStateE @ 16 NONAME
+ _ZN8MpEngine22handleUsbMtpStartEventEv @ 17 NONAME
+ _ZN8MpEngine28handleUsbMassStorageEndEventEv @ 18 NONAME
+ _ZN8MpEngine30handleUsbMassStorageStartEventEv @ 19 NONAME
+ _ZN8MpEngine8instanceEv @ 20 NONAME
+ _ZN8MpEngineC1Ev @ 21 NONAME
+ _ZN8MpEngineC2Ev @ 22 NONAME
+ _ZN8MpEngineD0Ev @ 23 NONAME
+ _ZN8MpEngineD1Ev @ 24 NONAME
+ _ZN8MpEngineD2Ev @ 25 NONAME
+ _ZNK8MpEngine10metaObjectEv @ 26 NONAME
+ _ZTI8MpEngine @ 27 NONAME
+ _ZTV8MpEngine @ 28 NONAME
+ _ZN8MpEngine21handleUsbMtpNotActiveEv @ 29 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpmediakeyhandler.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player media key handler.
+*
+*/
+
+#ifndef MPMEDIAKEYHANDLER_H
+#define MPMEDIAKEYHANDLER_H
+
+#include <qobject>
+
+class MpMediaKeyHandlerPrivate;
+
+class MpMediaKeyHandler : public QObject
+{
+ Q_OBJECT
+
+ friend class MpMediaKeyHandlerPrivate;
+
+public:
+
+ explicit MpMediaKeyHandler( QObject *parent = 0 );
+ virtual ~MpMediaKeyHandler();
+
+ void setEnabled( bool enable );
+
+signals:
+
+ void volumeChanged( int volume );
+ void errorOccured( int error );
+
+public slots:
+
+
+
+private:
+
+ Q_DISABLE_COPY(MpMediaKeyHandler)
+ MpMediaKeyHandlerPrivate *d_ptr;
+
+};
+
+#endif // MPMEDIAKEYHANDLER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpmediakeyhandler_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 key handler - private implementation.
+*
+*/
+
+#ifndef MPMEDIAKEYHANDLER_P_H
+#define MPMEDIAKEYHANDLER_P_H
+
+
+#include <remconcoreapitargetobserver.h>
+#include <mpxplaybackobserver.h>
+#include <mpxplaybackframeworkdefs.h>
+
+class CRemConInterfaceSelector;
+class MMPXPlaybackUtility;
+class MpMediaKeyHandler;
+class MpMediaKeyRemConResponse;
+
+class MpMediaKeyHandlerPrivate : public MRemConCoreApiTargetObserver,
+ public MMPXPlaybackCallback
+{
+public:
+
+ MpMediaKeyHandlerPrivate( MpMediaKeyHandler *wrapper );
+ virtual ~MpMediaKeyHandlerPrivate();
+
+ void init();
+ void setEnabled( bool enable );
+
+// From MRemConCoreApiTargetObserver
+
+ /**
+ * From MRemConCoreApiTargetObserver
+ * A command has been received.
+ *
+ * @param aOperationId The operation ID of the command.
+ * @param aButtonAct The button action associated with the command.
+ */
+ void MrccatoCommand(
+ TRemConCoreApiOperationId aOperationId,
+ TRemConCoreApiButtonAction aButtonAct );
+
+ /**
+ * From MRemConCoreApiTargetObserver
+ * A 'play' command has been received.
+ *
+ * @param aSpeed The playback speed.
+ * @param aButtonAct The button action associated with the command.
+ */
+ void MrccatoPlay(
+ TRemConCoreApiPlaybackSpeed aSpeed,
+ TRemConCoreApiButtonAction aButtonAct );
+
+ /**
+ * From MRemConCoreApiTargetObserver
+ * A 'tune function' command has been received.
+ *
+ * @param aTwoPart Determine which channel to be used.
+ * @param aMajorChannel The major channel number.
+ * @param aMinorChannel The minor channel number.
+ * @param aButtonAct The button action associated with the command.
+ */
+ void MrccatoTuneFunction(
+ TBool aTwoPart,
+ TUint aMajorChannel,
+ TUint aMinorChannel,
+ TRemConCoreApiButtonAction aButtonAct );
+
+ /**
+ * From MRemConCoreApiTargetObserver
+ * A 'select disk function' has been received.
+ *
+ * @param aDisk The disk.
+ * @param aButtonAct The button action associated with the command.
+ */
+ void MrccatoSelectDiskFunction(
+ TUint aDisk,
+ TRemConCoreApiButtonAction aButtonAct );
+
+ /**
+ * From MRemConCoreApiTargetObserver
+ * A 'select AV input function' has been received.
+ *
+ * @param aAvInputSignalNumber The AV input.
+ * @param aButtonAct The button action associated with the command.
+ */
+ void MrccatoSelectAvInputFunction(
+ TUint8 aAvInputSignalNumber,
+ TRemConCoreApiButtonAction aButtonAct );
+
+ /**
+ * From MRemConCoreApiTargetObserver
+ * A 'select audio input function' has been received.
+ *
+ * @param aAudioInputSignalNumber The audio input.
+ * @param aButtonAct The button action associated with the command.
+ */
+ void MrccatoSelectAudioInputFunction(
+ TUint8 aAudioInputSignalNumber,
+ TRemConCoreApiButtonAction aButtonAct );
+
+// from base class MMPXPlaybackCallback
+
+ /**
+ * From MMPXPlaybackCallback
+ * Handle playback property
+ *
+ * @param aProperty the property
+ * @param aValue the value of the property
+ * @param aError error code
+ */
+ void HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError );
+
+ /**
+ * From MMPXPlaybackCallback
+ * Method is called continously until aComplete=ETrue, signifying that
+ * it is done and there will be no more callbacks
+ * Only new items are passed each time
+ *
+ * @param aPlayer UID of the subplayer
+ * @param aSubPlayers a list of sub players
+ * @param aComplete ETrue no more sub players. EFalse more subplayer
+ * expected
+ * @param aError error code
+ */
+ void HandleSubPlayerNamesL(
+ TUid aPlayer,
+ const MDesCArray* aSubPlayers,
+ TBool aComplete,
+ TInt aError );
+
+ /**
+ * From MMPXPlaybackCallback
+ * Handle media properties
+ *
+ * @param aMedia media
+ * @param aError error code
+ */
+ void HandleMediaL( const CMPXMedia& aMedia, TInt aError );
+
+private:
+
+ void DoInitL();
+ void SendCommand( TMPXPlaybackCommand aCommandId );
+ void DoSendCommandL( TMPXPlaybackCommand aCommandId );
+
+ /**
+ * Callback for timer
+ *
+ * @param aPtr Pointer pass to this callback function.
+ * @return Zero if callback function doesn't need to be called again.
+ * Otherwise, non-zero.
+ */
+ static TInt TimerCallback( TAny* aPtr );
+
+ /**
+ * Handle repeat event
+ */
+ void HandleRepeatEvent();
+
+private:
+
+ MpMediaKeyHandler *q_ptr;
+
+ CRemConInterfaceSelector *iInterfaceSelector; // owned
+ MpMediaKeyRemConResponse *iResponseHandler; // owned
+ CPeriodic *iTimer; // owned
+
+ MMPXPlaybackUtility *iPlaybackUtility;
+
+ TBool iIncreaseVol;
+ TBool iEnabled;
+
+};
+
+#endif // MPMEDIAKEYHANDLER_P_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpmediakeyremconresponse.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player media key handler.
+* Helper class for sending response back to Remote Controller Framework.
+*
+*/
+
+#ifndef MPMEDIAKEYREMCONKEYRESPONSE_H
+#define MPMEDIAKEYREMCONKEYRESPONSE_H
+
+#include <remconcoreapitarget.h>
+
+
+NONSHARABLE_CLASS( MpMediaKeyRemConResponse ) : public CActive
+{
+public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @since 3.0
+ * @param aRemConCoreApiTarget RemCon core target object.
+ * @return Pointer to newly created object.
+ */
+ static MpMediaKeyRemConResponse* NewL( CRemConCoreApiTarget& aRemConCoreApiTarget );
+
+ /**
+ * Destructor.
+ */
+ virtual ~MpMediaKeyRemConResponse();
+
+ /**
+ * Send the any key response back to Remcon server
+ *
+ * @since 3.0
+ * @param aOperationId RemCon operation Id.
+ */
+ void CompleteAnyKey( TRemConCoreApiOperationId aOperationId );
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ MpMediaKeyRemConResponse( CRemConCoreApiTarget& aRemConCoreApiTarget );
+
+// from base class CActive
+
+ /**
+ * From CActive
+ * Handles an active object's request completion event.
+ */
+ void RunL();
+
+ /**
+ * From CActive
+ * Implements cancellation of an outstanding request.
+ */
+ void DoCancel();
+
+private: // Data
+
+ // Response array.
+ RArray<TRemConCoreApiOperationId> iResponseArray; // Own
+ CRemConCoreApiTarget& iRemConCoreApiTarget; // Not own
+};
+
+#endif // MPMEDIAKEYREMCONKEYRESPONSE_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpmpxframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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.
+*
+*/
+
+#ifndef MPMPXFRAMEWORKWRAPPER_H
+#define MPMPXFRAMEWORKWRAPPER_H
+
+#include <QObject>
+#include "mpmpxcommondefs.h"
+
+class MpMpxFrameworkWrapperPrivate;
+class MpSongScannerHelper;
+class HbNotificationDialog;
+class QStringList;
+class QTranslator;
+
+class MpMpxFrameworkWrapper : public QObject
+{
+ Q_OBJECT
+
+ friend class MpMpxFrameworkWrapperPrivate;
+
+public:
+
+ explicit MpMpxFrameworkWrapper( QObject *parent=0 );
+ virtual ~MpMpxFrameworkWrapper();
+
+ void scan();
+ void cancelScan();
+
+signals:
+
+ void scanStarted();
+ void scanEnded( int count, int error );
+ void scanCountChanged( int count );
+
+ void diskEvent( MpxDiskEvents event );
+ void usbEvent( MpxUsbEvents event );
+
+private:
+
+ Q_DISABLE_COPY( MpMpxFrameworkWrapper )
+ MpMpxFrameworkWrapperPrivate *d_ptr;
+
+};
+
+#endif // MPMPXFRAMEWORKWRAPPER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpmpxframeworkwrapper_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Wrapper for mpx framework utilities - private implementation.
+*
+*/
+
+#ifndef MPMPXFRAMEWORKWRAPPER_P_H
+#define MPMPXFRAMEWORKWRAPPER_P_H
+
+#include <e32base.h>
+#include <mpxcollectionobserver.h>
+#include <mpxcollectionuihelperobserver.h>
+
+class MMPXCollectionUtility;
+class MMPXHarvesterUtility;
+class MpMpxFrameworkWrapper;
+class QStringList;
+
+
+class MpMpxFrameworkWrapperPrivate : public MMPXCollectionObserver
+{
+public:
+
+ explicit MpMpxFrameworkWrapperPrivate( MpMpxFrameworkWrapper *wrapper );
+ virtual ~MpMpxFrameworkWrapperPrivate();
+
+ void init();
+ void scan();
+ void cancelScan();
+
+private:
+
+ void HandleOpenL( const CMPXMedia& aEntries,
+ TInt aIndex,TBool aComplete,TInt aError );
+ void HandleOpenL( const CMPXCollectionPlaylist& aPlaylist,TInt aError );
+ void HandleCollectionMediaL( const CMPXMedia& aMedia, TInt aError );
+ void HandleCollectionMessage( CMPXMessage* aMsg, TInt aErr );
+
+ void DoInitL();
+ void DoScanL();
+ void DoCancelScanL();
+ void DoHandleCollectionMessageL( const CMPXMessage& aMsg );
+ TBool BroadcastEventFilter( TInt aMsg );
+
+private:
+
+ MpMpxFrameworkWrapper *q_ptr;
+
+ MMPXCollectionUtility *iCollectionUtility;
+ MMPXHarvesterUtility *iHarvesterUtility;
+ TInt iNumItemsAdded;
+ TBool iScanning;
+ TInt iPreviousBroadCastMsg;
+
+};
+
+#endif // MPMPXFRAMEWORKWRAPPER_P_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/inc/mpsongscanner.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player song scanner.
+*
+*/
+
+
+#ifndef MPSONGSCANNER_H
+#define MPSONGSCANNER_H
+
+class MpMpxFrameworkWrapper;
+class HbProgressDialog;
+
+#include <QObject>
+#include "mpmpxcommondefs.h"
+
+class MpSongScanner : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ explicit MpSongScanner( MpMpxFrameworkWrapper *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:
+
+ MpMpxFrameworkWrapper *mMpxWrapper; // Not own
+ HbProgressDialog *mScanProgressNote; // Own
+ TBool mScanning;
+
+};
+
+#endif // MPSONGSCANNER_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/mpengine.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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: Project file for Music Player Engine.
+#
+
+symbian:TARGET.UID3 = 0x10207C93
+
+TEMPLATE = lib
+CONFIG += hb
+TARGET = mpengine
+
+TARGET.CAPABILITY = CAP_GENERAL_DLL
+
+INCLUDEPATH += . \
+ inc \
+ ../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lxqservice \
+ -lmpxplaybackutility.dll \
+ -lmpxcollectionutility.dll \
+ -lmpxharvesterutility.dll \
+ -lmpxcommon.dll \
+ -lremconcoreapi.dll \
+ -lremconinterfacebase.dll
+
+symbian:TARGET.EPOCALLOWDLLDATA = 1
+
+HEADERS += ../inc/mpengine.h \
+ inc/mpmpxframeworkwrapper.h \
+ inc/mpmpxframeworkwrapper_p.h \
+ inc/mpsongscanner.h \
+ inc/mpmediakeyhandler.h \
+ inc/mpmediakeyhandler_p.h\
+ inc/mpmediakeyremconresponse.h
+
+SOURCES += src/mpengine.cpp \
+ src/mpmpxframeworkwrapper.cpp \
+ src/mpmpxframeworkwrapper_p.cpp \
+ src/mpsongscanner.cpp \
+ src/mpmediakeyhandler.cpp \
+ src/mpmediakeyhandler_p.cpp \
+ src/mpmediakeyremconresponse.cpp
+
+DEFINES += BUILD_MPENGINE_LIB
+
+myDefInclude = "NOSTRICTDEF" \
+"$${LITERAL_HASH}if defined(WINS)"\
+"DEFFILE bwins/mpengineu.def "\
+"$${LITERAL_HASH}else "\
+"DEFFILE eabi/mpengineu.def "\
+"$${LITERAL_HASH}endif"
+MMP_RULES += myDefInclude
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/rom/mpengine.iby Fri Apr 16 14:56:30 2010 +0300
@@ -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 __MPENGINE_IBY__
+#define __MPENGINE_IBY__
+
+#include <bldvariant.hrh>
+
+file=ABI_DIR\BUILD_DIR\mpengine.dll SHARED_LIB_DIR\mpengine.dll
+
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/rom/rom.pri Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpengine.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mpengine.iby)"
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpengine.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,408 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 <QTranslator>
+#include <QLocale>
+#include <hbmessagebox.h>
+#include <hbnotificationdialog.h>
+#include <hbinstance.h>
+
+#include "mpengine.h"
+#include "mpmpxframeworkwrapper.h"
+#include "mpsongscanner.h"
+#include "mpmediakeyhandler.h"
+#include "mptrace.h"
+
+/*!
+ \class MpEngine
+ \brief Engine for musicplayer - mpx framework utilities.
+
+ MP Engine provides Qt style interface to the MPX framework
+ utilities. Its implementation is hidden using private class data pattern.
+*/
+
+/*!
+ \fn void scanStarted()
+
+ This signal is emitted when scan operation is started.
+
+ */
+
+/*!
+ \fn void scanEnded()
+
+ This signal is emitted when scan operation ends.
+
+ */
+
+/*!
+ \fn void scanCountChanged( int count )
+
+ This signal is emitted when scan count is updated.
+
+ */
+
+/*!
+ \fn void libraryRefreshed()
+
+ This signal is emitted when MpSongScannerHelper ends scanning,
+ or USB-MTP Synchronization finishes.
+
+ */
+
+/*!
+ \fn void formatStarted()
+
+ This signal is emitted when EMcMsgFormatStart is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ \fn void formatEnded()
+
+ This signal is emitted when EMcMsgFormatEnd is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ \fn void diskRemoved()
+
+ This signal is emitted when EMcMsgDiskRemoved is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ \fn void diskInserted()
+
+ This signal is emitted when EMcMsgDiskInserted is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ \fn void usbMassStorageStarted()
+
+ This signal is emitted when EMcMsgUSBMassStorageStart is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ \fn void usbMassStorageEnded()
+
+ This signal is emitted when EMcMsgUSBMassStorageEnd is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ \fn void usbMtpStarted()
+
+ This signal is emitted when EMcMsgUSBMtpStart is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ \fn void usbMtpEnded()
+
+ This signal is emitted when EMcMsgUSBMtpEnd is received from MPXCollectionUtility.
+
+ */
+
+/*!
+ Constructs music player engine.
+ */
+MpEngine::MpEngine()
+ : mMpxWrapper(0),
+ mSongScanner(0),
+ mMediaKeyHandler(0),
+ mUsbBlockingNote(0),
+ mMpTranslator(0),
+ mUsbBlockingState(USB_NotConnected),
+ mPreviousUsbState(USB_NotConnected)
+{
+ TX_ENTRY
+
+ mMpxWrapper = new MpMpxFrameworkWrapper();
+ connect( mMpxWrapper, SIGNAL( scanStarted() ), this, SLOT( handleScanStarted() ) );
+ connect( mMpxWrapper, SIGNAL( scanEnded(int, int) ), this, SLOT( handleScanEnded(int, int) ) );
+ connect( mMpxWrapper, SIGNAL( diskEvent(MpxDiskEvents) ), this, SLOT( handleDiskEvent(MpxDiskEvents) ) );
+ connect( mMpxWrapper, SIGNAL( usbEvent(MpxUsbEvents) ), this, SLOT( handleUsbEvent(MpxUsbEvents) ) );
+
+ mSongScanner = new MpSongScanner( mMpxWrapper );
+ mMediaKeyHandler = new MpMediaKeyHandler();
+
+ //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 );
+ }
+
+ TX_EXIT
+}
+
+/*!
+ Destructs music player engine.
+ */
+MpEngine::~MpEngine()
+{
+ TX_ENTRY
+ delete mMpTranslator;
+ delete mSongScanner;
+ delete mMediaKeyHandler;
+ delete mUsbBlockingNote;
+ TX_EXIT
+}
+
+/*!
+ Returns the singleton instance of music player engine.
+ */
+MpEngine * MpEngine::instance()
+{
+ static MpEngine instance;
+ return &instance;
+}
+
+/*!
+ Refresh library by starting the scan.
+ If scanning is already ongoing, this request is ignored.
+ */
+void MpEngine::refreshLibrary()
+{
+ TX_ENTRY
+ emit libraryAboutToRefresh();
+ mSongScanner->scan();
+ TX_EXIT
+}
+
+/*!
+ \
+ 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 )
+{
+ TX_ENTRY
+ bool result( false );
+ if ( mUsbBlockingState == USB_Connected ) {
+ result = true;
+ if ( showMessage ) {
+ HbMessageBox dialog ( HbMessageBox::MessageTypeInformation );
+ dialog.setText( QString( tr( "USB connection in progress. Cannot proceed with operation" ) ) );
+ dialog.setModal( true );
+ dialog.exec();
+ }
+ }
+ TX_EXIT
+ return result;
+}
+
+/*!
+ Slot to be called when song scanning starts.
+ */
+void MpEngine::handleScanStarted() {
+ TX_ENTRY
+ mMediaKeyHandler->setEnabled(false);
+ TX_EXIT
+}
+
+/*!
+ Slot to be called when song scanning ends.
+ */
+void MpEngine::handleScanEnded( int count, int error ) {
+ TX_ENTRY
+ Q_UNUSED( count );
+ Q_UNUSED( error );
+ mMediaKeyHandler->setEnabled(true);
+ emit libraryRefreshed();
+ TX_EXIT
+}
+
+/*!
+ Slot to be called when disk event is received from MPX framework.
+ */
+void MpEngine::handleDiskEvent( MpxDiskEvents event )
+{
+ TX_ENTRY_ARGS("event=" << event);
+ switch ( event ) {
+ case DiskFormatStarted:
+ mMediaKeyHandler->setEnabled(false);
+ break;
+ case DiskFormatEnded:
+ mMediaKeyHandler->setEnabled(true);
+ break;
+ case DiskRemoved:
+ if ( mUsbBlockingState == USB_NotConnected ) {
+ emit exitApplication();
+ }
+ break;
+ case DiskInserted:
+ if ( mUsbBlockingState == USB_NotConnected ) {
+ refreshLibrary();
+ }
+ break;
+ default:
+ break;
+ }
+ TX_EXIT
+}
+
+/*!
+ Slot to be called when USB event is received from MPX framework.
+ */
+void MpEngine::handleUsbEvent( MpxUsbEvents event )
+{
+ TX_ENTRY_ARGS("event=" << event);
+ switch ( event ) {
+ case UsbMassStorageStarted:
+ handleUsbMassStorageStartEvent();
+ break;
+ case UsbMassStorageEnded:
+ handleUsbMassStorageEndEvent();
+ break;
+ case UsbMtpStarted:
+ handleUsbMtpStartEvent();
+ break;
+ case UsbMtpEnded:
+ handleUsbMtpEndEvent();
+ break;
+ case UsbMtpNotActive:
+ handleUsbMtpNotActive();
+ default:
+ break;
+ }
+ TX_EXIT
+}
+
+/*!
+ To be called when EMcMsgUSBMassStorageStart event is received.
+ */
+void MpEngine::handleUsbMassStorageStartEvent()
+{
+ TX_ENTRY
+ mMediaKeyHandler->setEnabled(false);
+
+ changeUsbBlockingState( USB_Synchronizing );
+ emit usbBlocked(true);
+
+ if ( !mUsbBlockingNote ) {
+ mUsbBlockingNote = new HbNotificationDialog();
+ mUsbBlockingNote->setText( QString( tr( "USB connection in progress" ) ) );
+ mUsbBlockingNote->setModal( true );
+ mUsbBlockingNote->setTimeout( HbPopup::NoTimeout );
+ }
+ mUsbBlockingNote->show();
+ TX_EXIT
+}
+
+/*!
+ To be called when EMcMsgUSBMassStorageEnd event is received.
+ */
+void MpEngine::handleUsbMassStorageEndEvent()
+{
+ TX_ENTRY
+ mMediaKeyHandler->setEnabled(true);
+
+ changeUsbBlockingState( USB_NotConnected );
+ emit usbBlocked(false);
+
+ if ( mUsbBlockingNote ) {
+ delete mUsbBlockingNote;
+ mUsbBlockingNote = 0;
+ }
+ HbMessageBox promptRefresh( HbMessageBox::MessageTypeQuestion );
+ promptRefresh.setText( QString( tr( "List may need refreshing due to recent USB synchronisation. Refresh now?" ) ) );
+ promptRefresh.setTimeout( HbPopup::NoTimeout );
+ promptRefresh.setModal( true );
+ HbAction *action = promptRefresh.exec();
+ if ( action == promptRefresh.primaryAction() ) {
+ refreshLibrary();
+ }
+ TX_EXIT
+}
+
+/*!
+ To be called when EMcMsgUSBMTPStart event is received.
+ */
+void MpEngine::handleUsbMtpStartEvent()
+{
+ TX_ENTRY
+ mMediaKeyHandler->setEnabled(false);
+
+ changeUsbBlockingState( USB_Synchronizing );
+ emit usbBlocked(true);
+
+ if ( !mUsbBlockingNote ) {
+ mUsbBlockingNote = new HbNotificationDialog();
+ mUsbBlockingNote->setText( QString( tr( "USB connection in progress" ) ) );
+ mUsbBlockingNote->setModal( true );
+ mUsbBlockingNote->setTimeout( HbPopup::NoTimeout );
+ }
+ mUsbBlockingNote->show();
+ TX_EXIT
+}
+
+/*!
+ To be called when EMcMsgUSBMTPEnd event is received.
+ */
+void MpEngine::handleUsbMtpEndEvent()
+{
+ TX_ENTRY
+ mMediaKeyHandler->setEnabled(true);
+
+ changeUsbBlockingState( USB_NotConnected );
+ emit usbBlocked(false);
+
+ if ( mUsbBlockingNote ) {
+ delete mUsbBlockingNote;
+ mUsbBlockingNote = 0;
+ }
+ if ( mPreviousUsbState == USB_Synchronizing ) {
+ emit libraryRefreshed();
+ }
+ TX_EXIT
+}
+
+/*!
+ To be called when EMcMsgUSBMTPNotActive event is received.
+ */
+void MpEngine::handleUsbMtpNotActive()
+{
+ TX_ENTRY
+
+ changeUsbBlockingState( USB_Connected );
+ emit usbBlocked(true);
+
+ TX_EXIT
+}
+
+/*!
+ Internal
+ Update the new and previous usb blocking state
+ */
+void MpEngine::changeUsbBlockingState( UsbBlockingState state )
+{
+ TX_ENTRY
+
+ mPreviousUsbState = mUsbBlockingState;
+ mUsbBlockingState = state;
+
+ TX_EXIT
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpmediakeyhandler.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player media key handler.
+*
+*/
+
+#include "mpmediakeyhandler.h"
+#include "mpmediakeyhandler_p.h"
+#include "mpengine.h"
+#include "mptrace.h"
+
+// ---------------------------------------------------------------------------
+// MpMediaKeyHandler()
+// ---------------------------------------------------------------------------
+//
+MpMediaKeyHandler::MpMediaKeyHandler( QObject *parent )
+ : QObject(parent)
+{
+ TX_ENTRY
+ d_ptr = new MpMediaKeyHandlerPrivate(this);
+ d_ptr->init();
+ TX_EXIT
+}
+
+// ---------------------------------------------------------------------------
+// ~MpMediaKeyHandler()
+// ---------------------------------------------------------------------------
+//
+MpMediaKeyHandler::~MpMediaKeyHandler()
+{
+ TX_ENTRY
+ delete d_ptr;
+ TX_EXIT
+}
+
+// ---------------------------------------------------------------------------
+// setEnabled()
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandler::setEnabled( bool enable )
+{
+ d_ptr->setEnabled( enable );
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpmediakeyhandler_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,453 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 key handler - private implementation.
+*
+*/
+
+#include "mpmediakeyhandler_p.h"
+#include "mpmediakeyhandler.h"
+#include "mpmediakeyremconresponse.h"
+#include "mpcommondefs.h"
+
+//symbian header files
+#include <remconcoreapitarget.h>
+#include <remconinterfaceselector.h>
+
+//mpx header files
+#include <mpxplaybackutility.h>
+#include <mpxplaybackcommanddefs.h>
+#include <mpxplaybackmessagedefs.h>
+#include <mpxlog.h>
+
+const TInt KFirstTimerExpiryInterval( 1 ); // Expire immediately
+const TInt KTimerExpiryInterval( 1000000/6 );
+
+// ---------------------------------------------------------------------------
+// MpMediaKeyHandlerPrivate()
+// ---------------------------------------------------------------------------
+//
+MpMediaKeyHandlerPrivate::MpMediaKeyHandlerPrivate( MpMediaKeyHandler *wrapper )
+ : q_ptr( wrapper ),
+ iInterfaceSelector(NULL),
+ iResponseHandler(NULL),
+ iTimer(NULL),
+ iPlaybackUtility(NULL),
+ iEnabled(ETrue)
+{
+}
+
+// ---------------------------------------------------------------------------
+// ~MpMediaKeyHandlerPrivate()
+// ---------------------------------------------------------------------------
+//
+MpMediaKeyHandlerPrivate::~MpMediaKeyHandlerPrivate()
+{
+ if ( iPlaybackUtility ) {
+ //TRAP_IGNORE( iPlaybackUtility->RemoveObserverL( *this ) );
+ iPlaybackUtility->Close();
+ }
+
+ delete iResponseHandler;
+ delete iInterfaceSelector;
+
+ if ( iTimer ) {
+ iTimer->Cancel();
+ delete iTimer;
+ }
+
+}
+
+// ---------------------------------------------------------------------------
+// init
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::init()
+{
+ TRAPD(err, DoInitL());
+ if ( err != KErrNone ) {
+ emit q_ptr->errorOccured(err);
+ }
+
+}
+
+// ---------------------------------------------------------------------------
+// setEnabled
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::setEnabled( bool enable )
+{
+ iEnabled = enable;
+}
+
+// ---------------------------------------------------------------------------
+// From MRemConCoreApiTargetObserver
+// A command has been received.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::MrccatoCommand(
+ TRemConCoreApiOperationId aOperationId,
+ TRemConCoreApiButtonAction aButtonAct )
+{
+ MPX_DEBUG3( "MpMediaKeyHandlerPrivate::MrccatoCommand(aOperationId=%d, aButtonAct=%d)",
+ aOperationId, aButtonAct );
+
+ switch ( aOperationId ) {
+ case ERemConCoreApiPausePlayFunction:
+ if ( aButtonAct == ERemConCoreApiButtonClick ) {
+ SendCommand( EPbCmdPlayPause );
+ }
+ break;
+ case ERemConCoreApiPlay:
+ if ( aButtonAct == ERemConCoreApiButtonClick
+ || aButtonAct == ERemConCoreApiButtonPress ) {
+ SendCommand( EPbCmdPlay );
+ }
+ break;
+ case ERemConCoreApiStop:
+ if ( aButtonAct == ERemConCoreApiButtonClick
+ || aButtonAct == ERemConCoreApiButtonPress ) {
+ SendCommand( EPbCmdStop );
+ }
+ break;
+ case ERemConCoreApiPause:
+ if ( aButtonAct == ERemConCoreApiButtonClick
+ || aButtonAct == ERemConCoreApiButtonPress ) {
+ SendCommand( EPbCmdPause );
+ }
+ break;
+ case ERemConCoreApiRewind:
+ switch ( aButtonAct ) {
+ case ERemConCoreApiButtonPress:
+ SendCommand( EPbCmdStartSeekBackward );
+ break;
+ case ERemConCoreApiButtonRelease:
+ SendCommand( EPbCmdStopSeeking );
+ break;
+ default:
+ break;
+ }
+ break;
+ case ERemConCoreApiFastForward:
+ switch ( aButtonAct ) {
+ case ERemConCoreApiButtonPress:
+ SendCommand( EPbCmdStartSeekForward );
+ break;
+ case ERemConCoreApiButtonRelease:
+ SendCommand( EPbCmdStopSeeking );
+ break;
+ default:
+ break;
+ }
+ break;
+ case ERemConCoreApiBackward:
+ if ( aButtonAct == ERemConCoreApiButtonClick ) {
+ SendCommand( EPbCmdPrevious );
+ }
+ break;
+ case ERemConCoreApiForward:
+ if ( aButtonAct == ERemConCoreApiButtonClick ) {
+ SendCommand( EPbCmdNext );
+ }
+ break;
+ case ERemConCoreApiVolumeUp:
+ iTimer->Cancel();
+ iIncreaseVol = ETrue;
+ switch ( aButtonAct ) {
+ case ERemConCoreApiButtonPress:
+ //Start Timer
+ iTimer->Start(
+ KFirstTimerExpiryInterval,
+ KTimerExpiryInterval,
+ TCallBack( TimerCallback, this ) );
+ break;
+ case ERemConCoreApiButtonClick:
+ SendCommand( EPbCmdIncreaseVolume );
+ break;
+ case ERemConCoreApiButtonRelease:
+ default:
+ break;
+ }
+ break;
+ case ERemConCoreApiVolumeDown:
+ iTimer->Cancel();
+ iIncreaseVol = EFalse;
+ switch ( aButtonAct ) {
+ case ERemConCoreApiButtonPress:
+ //Start Timer
+ iTimer->Start(
+ KFirstTimerExpiryInterval,
+ KTimerExpiryInterval,
+ TCallBack( TimerCallback, this ) );
+ break;
+ case ERemConCoreApiButtonClick:
+ SendCommand( EPbCmdDecreaseVolume );
+ break;
+ case ERemConCoreApiButtonRelease:
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ iResponseHandler->CompleteAnyKey( aOperationId );
+
+}
+
+// ---------------------------------------------------------------------------
+// From MRemConCoreApiTargetObserver
+// A 'play' command has been received.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::MrccatoPlay(
+ TRemConCoreApiPlaybackSpeed aSpeed,
+ TRemConCoreApiButtonAction aButtonAct )
+{
+ MPX_DEBUG2( "MpMediaKeyHandlerPrivate::MrccatoPlay(aButtonAct=%d)", aButtonAct );
+ Q_UNUSED(aSpeed);
+
+ if ( ( aButtonAct == ERemConCoreApiButtonClick ) ||
+ ( aButtonAct == ERemConCoreApiButtonPress ) )
+ {
+ SendCommand( EPbCmdPlay );
+ }
+ iResponseHandler->CompleteAnyKey( ERemConCoreApiPlay );
+
+}
+
+// ---------------------------------------------------------------------------
+// From MRemConCoreApiTargetObserver
+// A 'tune function' command has been received.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::MrccatoTuneFunction(
+ TBool aTwoPart,
+ TUint aMajorChannel,
+ TUint aMinorChannel,
+ TRemConCoreApiButtonAction aButtonAct )
+{
+ Q_UNUSED(aTwoPart);
+ Q_UNUSED(aMajorChannel);
+ Q_UNUSED(aMinorChannel);
+ Q_UNUSED(aButtonAct);
+
+ iResponseHandler->CompleteAnyKey( ERemConCoreApiTuneFunction );
+
+}
+
+// ---------------------------------------------------------------------------
+// From MRemConCoreApiTargetObserver
+// A 'select disk function' has been received.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::MrccatoSelectDiskFunction(
+ TUint aDisk,
+ TRemConCoreApiButtonAction aButtonAct )
+{
+ Q_UNUSED(aDisk);
+ Q_UNUSED(aButtonAct);
+
+ iResponseHandler->CompleteAnyKey( ERemConCoreApiSelectDiskFunction );
+
+}
+
+// ---------------------------------------------------------------------------
+// From MRemConCoreApiTargetObserver
+// A 'select AV input function' has been received.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::MrccatoSelectAvInputFunction(
+ TUint8 aAvInputSignalNumber,
+ TRemConCoreApiButtonAction aButtonAct )
+{
+ Q_UNUSED(aAvInputSignalNumber);
+ Q_UNUSED(aButtonAct);
+
+ iResponseHandler->CompleteAnyKey( ERemConCoreApiSelectAvInputFunction );
+
+}
+
+// ---------------------------------------------------------------------------
+// From MRemConCoreApiTargetObserver
+// A 'select audio input function' has been received.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::MrccatoSelectAudioInputFunction(
+ TUint8 aAudioInputSignalNumber,
+ TRemConCoreApiButtonAction aButtonAct )
+{
+ Q_UNUSED(aAudioInputSignalNumber);
+ Q_UNUSED(aButtonAct);
+
+ iResponseHandler->CompleteAnyKey( ERemConCoreApiSelectAudioInputFunction );
+
+}
+
+// ---------------------------------------------------------------------------
+// From MMPXPlaybackCallback
+// Handle playback property.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::HandlePropertyL(
+ TMPXPlaybackProperty aProperty,
+ TInt aValue,
+ TInt aError )
+{
+ MPX_FUNC( "MpMediaKeyHandlerPrivate::DoHandlePropertyL" );
+ MPX_DEBUG4( "MpMediaKeyHandlerPrivate::HandlePropertyL - Property(%d); Value(%d); Error(%d)", aProperty, aValue, aError );
+
+ if ( KErrNone == aError ) {
+ switch ( aProperty ) {
+ case EPbPropertyVolume:
+ q_ptr->emit volumeChanged(aValue);
+ break;
+ case EPbPropertyPosition:
+ case EPbPropertyMaxVolume:
+ case EPbPropertyMute:
+ default:
+ break;
+ }
+ }
+
+}
+
+// ---------------------------------------------------------------------------
+// From MMPXPlaybackCallback
+// HandleSubPlayerNamesL
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::HandleSubPlayerNamesL(
+ TUid aPlayer,
+ const MDesCArray* aSubPlayers,
+ TBool aComplete,
+ TInt aError )
+{
+ MPX_FUNC( "MpMediaKeyHandlerPrivate::HandleSubPlayerNamesL" );
+ Q_UNUSED(aPlayer);
+ Q_UNUSED(aSubPlayers);
+ Q_UNUSED(aComplete);
+ Q_UNUSED(aError);
+
+}
+
+// ---------------------------------------------------------------------------
+// From MMPXPlaybackCallback
+// Handle media properties.
+// Notes: The client is responsible for delete the object of aMedia.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::HandleMediaL(
+ const CMPXMedia& aMedia,
+ TInt aError )
+{
+ MPX_FUNC( "MpMediaKeyHandlerPrivate::DoHandleMediaL" );
+ Q_UNUSED(aMedia);
+ Q_UNUSED(aError);
+
+}
+
+// ---------------------------------------------------------------------------
+// DoInitL()
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::DoInitL()
+{
+ // Register to remote control framework
+ iInterfaceSelector = CRemConInterfaceSelector::NewL();
+ CRemConCoreApiTarget *coreTarget = CRemConCoreApiTarget::NewL( *iInterfaceSelector, *this );
+ CleanupStack::PushL( coreTarget );
+ iInterfaceSelector->OpenTargetL();
+ iResponseHandler = MpMediaKeyRemConResponse::NewL( *coreTarget );
+ CleanupStack::Pop(coreTarget);
+
+ // Timer for implementing repeat
+ iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+
+ // Get the playback utility instance from engine.
+ iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid(MpCommon::KMusicPlayerUid) );
+ //iPlaybackUtility->AddObserverL( *this );
+
+ iEnabled = ETrue;
+}
+
+// ---------------------------------------------------------------------------
+// Send command to playback utility.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::SendCommand( TMPXPlaybackCommand aCommandId )
+{
+ MPX_FUNC( "MpMediaKeyHandlerPrivate::SendCommand" );
+ TRAP_IGNORE( DoSendCommandL( aCommandId ) );
+
+}
+
+// ---------------------------------------------------------------------------
+// Send command to playback utility.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::DoSendCommandL( TMPXPlaybackCommand aCommandId )
+{
+ MPX_FUNC( "MpMediaKeyHandlerPrivate::DoFilterAndSendCommandL" );
+
+ if ( iEnabled )
+ {
+ TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
+
+ switch ( aCommandId ) {
+ case EPbCmdIncreaseVolume:
+ if ( EPbStatePlaying == playerState ) {
+ iPlaybackUtility->CommandL( EPbCmdIncreaseVolume );
+ }
+ break;
+ case EPbCmdDecreaseVolume:
+ if ( EPbStatePlaying == playerState ) {
+ iPlaybackUtility->CommandL( EPbCmdDecreaseVolume );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+}
+
+// ---------------------------------------------------------------------------
+// Callback for timer
+// ---------------------------------------------------------------------------
+//
+TInt MpMediaKeyHandlerPrivate::TimerCallback( TAny* aPtr )
+{
+
+ static_cast<MpMediaKeyHandlerPrivate*>( aPtr )->HandleRepeatEvent();
+
+
+ return KErrNone;
+}
+
+// ---------------------------------------------------------------------------
+// Handle repeat event
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyHandlerPrivate::HandleRepeatEvent()
+{
+
+ if ( iIncreaseVol ) {
+ SendCommand( EPbCmdIncreaseVolume );
+ }
+ else {
+ SendCommand( EPbCmdDecreaseVolume );
+ }
+
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpmediakeyremconresponse.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player media key handler.
+* Helper class for sending response back to Remote Controller Framework.
+*
+*/
+
+// INCLUDE FILES
+#include "mpmediakeyremconresponse.h"
+#include "mpxlog.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------------------------
+//
+MpMediaKeyRemConResponse::MpMediaKeyRemConResponse(
+ CRemConCoreApiTarget& aRemConCoreApiTarget )
+ : CActive( CActive::EPriorityStandard ),
+ iRemConCoreApiTarget( aRemConCoreApiTarget )
+ {
+ CActiveScheduler::Add( this );
+ }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+MpMediaKeyRemConResponse* MpMediaKeyRemConResponse::NewL(
+ CRemConCoreApiTarget& aRemConCoreApiTarget )
+ {
+ MpMediaKeyRemConResponse* self =
+ new (ELeave) MpMediaKeyRemConResponse( aRemConCoreApiTarget );
+
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+MpMediaKeyRemConResponse::~MpMediaKeyRemConResponse()
+ {
+ Cancel();
+ iResponseArray.Close();
+ }
+
+// ---------------------------------------------------------------------------
+// Send the any key response back to Remcon server
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyRemConResponse::CompleteAnyKey(
+ TRemConCoreApiOperationId aOperationId )
+ {
+ if ( !IsActive() )
+ {
+ switch ( aOperationId )
+ {
+ case ERemConCoreApiVolumeUp:
+ {
+ iRemConCoreApiTarget.VolumeUpResponse( iStatus, KErrNone );
+ SetActive();
+ break;
+ }
+ case ERemConCoreApiVolumeDown:
+ {
+ iRemConCoreApiTarget.VolumeDownResponse( iStatus, KErrNone );
+ SetActive();
+ break;
+ }
+ default:
+ {
+ TInt error = KErrNone;
+ iRemConCoreApiTarget.SendResponse(
+ iStatus, aOperationId, error );
+ SetActive();
+ break;
+ }
+ }
+ }
+ // already active. Append to array and complete later.
+ else
+ {
+ iResponseArray.Append( aOperationId );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Implements cancellation of an outstanding request.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyRemConResponse::DoCancel()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Handles an active object's request completion event.
+// ---------------------------------------------------------------------------
+//
+void MpMediaKeyRemConResponse::RunL()
+ {
+ MPX_DEBUG2( "MpMediaKeyRemConResponse.RunL() -- iStatus=%d", iStatus.Int() );
+
+ // if any existing -> Send response
+ if ( iResponseArray.Count() )
+ {
+ CompleteAnyKey( iResponseArray[0] );
+ // Remove already completed key
+ iResponseArray.Remove( 0 );
+ iResponseArray.Compress();
+ }
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpmpxframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: Wrapper for mpx framework utilities.
+*
+*/
+
+#include "mpmpxframeworkwrapper.h"
+#include "mpmpxframeworkwrapper_p.h"
+
+/*!
+ \class MpMpxFrameworkWrapper
+ \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.
+*/
+
+/*!
+ \fn void scanStarted()
+
+ This signal is emitted when scan operation is started.
+
+ */
+
+/*!
+ \fn void scanEnded( int count, int error )
+
+ This signal is emitted when scan operation ends. It indicates the number
+ of songs added and whether there was an error.
+
+ */
+
+/*!
+ \fn void scanCountChanged( int count )
+
+ This signal is emitted when scan count is updated.
+
+ */
+
+/*!
+ \fn void diskEvent( MpxDiskEvent event )
+
+ This signal is emitted when a disk event is received from MPX framework.
+
+ */
+
+ /*!
+ \fn void usbEvent( MpxUsbEvent event )
+
+ This signal is emitted when an USB event is received from MPX framework.
+
+ */
+
+/*!
+ Constructs the utility wrapper.
+ */
+MpMpxFrameworkWrapper::MpMpxFrameworkWrapper( QObject *parent )
+ : QObject( parent )
+{
+ d_ptr = new MpMpxFrameworkWrapperPrivate( this );
+ d_ptr->init();
+}
+
+/*!
+ Destructs the utility wrapper.
+ */
+MpMpxFrameworkWrapper::~MpMpxFrameworkWrapper()
+{
+ delete d_ptr;
+}
+
+/*!
+ Initiates song scanning.
+ */
+void MpMpxFrameworkWrapper::scan()
+{
+ d_ptr->scan();
+}
+
+/*!
+ Cancels ongoing song scanning.
+ */
+void MpMpxFrameworkWrapper::cancelScan()
+{
+ d_ptr->cancelScan();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpmpxframeworkwrapper_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,297 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 - private implementation.
+*
+*/
+
+#include <QStringList>
+
+#include <s32strm.h>
+#include <s32mem.h>
+#include <apgcli.h>
+#include <apacmdln.h>
+
+#include <mpxcollectionutility.h>
+#include <mpxharvesterutility.h>
+#include <mpxcollectionmessage.h>
+#include <mpxmessagecontainerdefs.h>
+#include <mpxmessagegeneraldefs.h>
+#include <mpxcollectionmessagedefs.h>
+#include <mpxlog.h>
+
+#include "mpmpxframeworkwrapper.h"
+#include "mpmpxframeworkwrapper_p.h"
+#include "mptrace.h"
+
+/*!
+ \class MpMpxFrameworkWrapperPrivate
+ \brief Wrapper for mpx framework utilities - private implementation.
+
+ This is a private implementation of the mpx framework wrapper utilties interface.
+*/
+
+const int NoPreviousBroadCastMsg = -1;
+
+/*!
+ \internal
+ */
+MpMpxFrameworkWrapperPrivate::MpMpxFrameworkWrapperPrivate( MpMpxFrameworkWrapper *wrapper )
+ : q_ptr(wrapper),
+ iCollectionUtility(0),
+ iHarvesterUtility(0),
+ iNumItemsAdded(0),
+ iScanning( EFalse ),
+ iPreviousBroadCastMsg( NoPreviousBroadCastMsg )
+{
+ TX_LOG
+}
+
+/*!
+ \internal
+ */
+MpMpxFrameworkWrapperPrivate::~MpMpxFrameworkWrapperPrivate()
+{
+ TX_ENTRY
+ if ( iCollectionUtility ) {
+ iCollectionUtility->Collection().CancelRequest();
+ iCollectionUtility->Close();
+ }
+
+ if ( iHarvesterUtility ) {
+ iHarvesterUtility->Close();
+ }
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::init()
+{
+ TRAPD( err, DoInitL() );
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+ }
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::scan()
+{
+ TRAPD( err, DoScanL() );
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+ }
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::cancelScan()
+{
+ TRAPD( err, DoCancelScanL() );
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+ }
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::HandleOpenL(
+ const CMPXMedia& aEntries,
+ TInt aIndex,
+ TBool aComplete,
+ TInt aError )
+{
+ Q_UNUSED( aIndex );
+ Q_UNUSED( aComplete );
+ Q_UNUSED( aError );
+ Q_UNUSED( aEntries );
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::HandleOpenL(
+ const CMPXCollectionPlaylist& aPlaylist,
+ TInt aError )
+{
+ Q_UNUSED( aPlaylist );
+ Q_UNUSED( aError );
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::HandleCollectionMediaL(
+ const CMPXMedia& aMedia,
+ TInt aError )
+{
+ Q_UNUSED( aMedia );
+ Q_UNUSED( aError );
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::HandleCollectionMessage(
+ CMPXMessage* aMsg,
+ TInt aErr )
+{
+ TX_ENTRY_ARGS( "aErr=" << aErr );
+ if ( aErr == KErrNone && aMsg ) {
+ TRAP_IGNORE( DoHandleCollectionMessageL(*aMsg) );
+ }
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoInitL()
+{
+ TX_ENTRY
+ iCollectionUtility = MMPXCollectionUtility::NewL( this, KMcModeDefault );
+
+ iHarvesterUtility = CMPXHarvesterFactory::NewL();
+ iHarvesterUtility->CheckForSystemEventsL();
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoScanL()
+{
+ TX_ENTRY
+ iNumItemsAdded = 0;
+ iHarvesterUtility->ScanL();
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoCancelScanL()
+{
+ TX_ENTRY
+ // If harvester crashes, restart it.
+ TRAPD( err, iHarvesterUtility->CancelScanL() );
+ if ( err != KErrNone ) {
+ iHarvesterUtility->Close();
+ iHarvesterUtility = NULL;
+ iHarvesterUtility = CMPXHarvesterFactory::NewL();
+ iHarvesterUtility->CheckForSystemEventsL();
+ }
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoHandleCollectionMessageL(
+ const CMPXMessage& aMsg )
+{
+ TX_ENTRY
+ TMPXMessageId id( aMsg.ValueTObjectL<TMPXMessageId>( KMPXMessageGeneralId ) );
+ if ( KMPXMessageGeneral == id ) {
+ TInt event( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralEvent ) );
+ TInt type( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralType ) );
+ TInt data( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralData ) );
+ TX_LOG_ARGS( "event=" << event << ", type=" << type << ", data=" << data );
+
+ if ( event == TMPXCollectionMessage::EBroadcastEvent &&
+ BroadcastEventFilter( type ) ) {
+ switch ( type ) {
+ case EMcMsgFormatStart:
+ emit q_ptr->diskEvent(DiskFormatStarted);
+ break;
+ case EMcMsgFormatEnd:
+ emit q_ptr->diskEvent(DiskFormatEnded);
+ break;
+ case EMcMsgDiskRemoved:
+ emit q_ptr->diskEvent(DiskRemoved);
+ break;
+ case EMcMsgDiskInserted:
+ emit q_ptr->diskEvent(DiskInserted);
+ break;
+ case EMcMsgUSBMassStorageStart:
+ emit q_ptr->usbEvent(UsbMassStorageStarted);
+ break;
+ case EMcMsgUSBMassStorageEnd:
+ emit q_ptr->usbEvent(UsbMassStorageEnded);
+ break;
+ case EMcMsgUSBMTPStart:
+ emit q_ptr->usbEvent(UsbMtpStarted);
+ break;
+ case EMcMsgUSBMTPEnd:
+ emit q_ptr->usbEvent(UsbMtpEnded);
+ break;
+ case EMcMsgUSBMTPNotActive:
+ emit q_ptr->usbEvent(UsbMtpNotActive);
+ break;
+ case EMcMsgRefreshStart:
+ iScanning = ETrue;
+ emit q_ptr->scanStarted();
+ break;
+ case EMcMsgRefreshEnd:
+ iScanning = EFalse;
+ emit q_ptr->scanEnded( iNumItemsAdded, data );
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ else if( KMPXMessageIdItemChanged == id && iScanning ) {
+ if ( aMsg.IsSupported( KMPXMessageArrayContents ) ) {
+ // Loop through messages for arrays
+ const CMPXMessageArray* messageArray =
+ aMsg.Value<CMPXMessageArray>( KMPXMessageArrayContents );
+ User::LeaveIfNull( const_cast<CMPXMessageArray*>( messageArray ) );
+
+ for ( TInt i=0; i<messageArray->Count(); ++i ) {
+ HandleCollectionMessage( messageArray->AtL( i ), KErrNone );
+ }
+ emit q_ptr->scanCountChanged( iNumItemsAdded );
+ }
+ else {
+ // Single item
+ TMPXChangeEventType changeType( aMsg.ValueTObjectL<TMPXChangeEventType>( KMPXMessageChangeEventType ) );
+ TMPXGeneralCategory cat( aMsg.ValueTObjectL<TMPXGeneralCategory>( KMPXMessageMediaGeneralCategory ) );
+ if( changeType == EMPXItemInserted &&
+ ( cat == EMPXSong || cat == EMPXPlaylist || cat == EMPXPodcast ) ) {
+ iNumItemsAdded++;
+ }
+ }
+ }
+ TX_EXIT
+}
+
+/*!
+ \internal
+ Returns false if same event has been received more than once
+ */
+TBool MpMpxFrameworkWrapperPrivate::BroadcastEventFilter( TInt aMsg )
+{
+ if ( aMsg != iPreviousBroadCastMsg ) {
+ iPreviousBroadCastMsg = aMsg;
+ return true;
+ }
+
+ return false;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/src/mpsongscanner.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,195 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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.
+*
+*/
+
+#include <hbprogressdialog.h>
+#include <hbnotificationdialog.h>
+#include <hblabel.h>
+#include <hbfontspec.h>
+
+#include "mpsongscanner.h"
+#include "mpmpxframeworkwrapper.h"
+#include "mptrace.h"
+
+/*!
+ \class MpSongScanner
+ \brief Music Player song scanner.
+
+ Song scanner interfaces with MPX Harvesting Framework to harvest
+ music files in the device.
+*/
+
+/*!
+ \fn void scanEnd()
+
+ This signal is emitted when scanning is ended.
+
+ \sa scan()
+*/
+
+/*!
+ Constructs the song scanner.
+ */
+MpSongScanner::MpSongScanner( MpMpxFrameworkWrapper *wrapper, QObject *parent )
+ : QObject( parent ),
+ mMpxWrapper(wrapper),
+ mScanProgressNote(0),
+ mScanning(false)
+{
+ 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)) );
+ TX_EXIT
+}
+
+/*!
+ Destructs the song scanner.
+ */
+MpSongScanner::~MpSongScanner()
+{
+ TX_LOG
+}
+
+/*!
+ Initiates song scanning.
+ */
+void MpSongScanner::scan()
+{
+ if ( !mScanning ) {
+ mScanning = true;
+ mMpxWrapper->scan();
+ }
+}
+
+/*!
+ Returns true if scanning is ongoing.
+ */
+bool MpSongScanner::isScanning()
+{
+ return mScanning;
+}
+
+/*!
+ Cancels ongoing song scanning, if any.
+
+ \sa scan()
+ */
+void MpSongScanner::cancelScan()
+{
+ if ( mScanning ) {
+ mScanning = false;
+ mMpxWrapper->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->setTextAlignment( Qt::AlignCenter );
+ mScanProgressNote->setText( QString("") );
+ mScanProgressNote->setAttribute( Qt::WA_DeleteOnClose );
+ mScanProgressNote->show();
+}
+
+/*!
+ Slot called upon notification from MPX Harvesting FW indicating end of
+ scanning process.
+ */
+void MpSongScanner::handleScanEnded( int numItemsAdded, int error )
+{
+ 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" ) );
+ }
+ else if ( mScanning ) {
+ if ( mScanProgressNote ) {
+ mScanProgressNote->cancel();
+ }
+ finishedDialog->setIcon( HbIcon( QString("qtg_large_ok") ) );
+ finishedDialog->setTitle( hbTrId( "txt_mus_dpophead_refresh_complete" ) );
+ }
+ else {
+ finishedDialog->setIcon( HbIcon( QString("qtg_small_fail") ) );
+ finishedDialog->setTitle( hbTrId( "txt_mus_dpophead_refresh_cancelled" ) );
+ }
+ 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 );
+ }
+}
+
+/*!
+ Slot to be called when disk event is received from MPX framework.
+ */
+void MpSongScanner::handleDiskEvent( MpxDiskEvents event )
+{
+ Q_UNUSED( event );
+ if ( mScanning ) {
+ if ( mScanProgressNote ) {
+ mScanProgressNote->cancel();
+ }
+ 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/unittest_mpmediakeyhandler/inc/unittest_mpmediakeyhandler.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Unit test for mpmediakeyhandler
+*
+*/
+
+#ifndef TESTMPMEDIAKEYHANDLER_H
+#define TESTMPMEDIAKEYHANDLER_H
+
+#include <QtTest/QtTest>
+
+class MpMediaKeyHandler;
+class MpMediaKeyHandlerPrivate;
+
+class TestMpMediaKeyHandler : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ TestMpMediaKeyHandler();
+ virtual ~TestMpMediaKeyHandler();
+
+// from QtTest
+public slots:
+
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+// internal
+private slots:
+
+ void testConstructor();
+ void testDestructor();
+ void testConstructorFail();
+ void testDestructorFail();
+ void testCommandVolumeUpKey();
+ void testCommandVolumeDownKey();
+ void testCommandPlayKey();
+ void testCommandPauseKey();
+ void testCommandPlayPauseKey();
+ void testCommandStopKey();
+ void testCommandFastForwardKeyPress();
+ void testCommandFastForwardKeyRelease();
+ void testCommandRewindKeyPress();
+ void testCommandRewindKeyRelease();
+ void testCommandForwardKey();
+ void testCommandBackwardKey();
+
+ void testPlay();
+ void testAudioInputFunction();
+ void testSelectAvInputFunction();
+ void testSelectDiskFunction();
+ void testTuneFunction();
+
+private:
+
+ MpMediaKeyHandler *mTest;
+ MpMediaKeyHandlerPrivate *mTestPrivate;
+
+};
+
+#endif // TESTMPMEDIAKEYHANDLER_H
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/src/unittest_mpmediakeyhandler.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,396 @@
+/**
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 mpmediakeyhandler
+*
+*/
+
+#include <QSignalSpy>
+#include <QMetaType>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <e32debug.h>
+
+#include "unittest_mpmediakeyhandler.h"
+#include "mpcommondefs.h"
+#include "stub/inc/mpxplaybackutility.h"
+#include "stub/inc/remconcoreapitarget.h"
+#include "stub/inc/remconinterfaceselector.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpmediakeyhandler.h"
+#include "mpmediakeyhandler_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;
+
+ TestMpMediaKeyHandler tv;
+
+ char *pass[3];
+ pass[0] = argv[0];
+ pass[1] = "-o";
+ pass[2] = "c:\\data\\unittest_mpmediakeyhandler.txt";
+
+ int res = QTest::qExec(&tv, 3, pass);
+
+ return res;
+}
+
+TestMpMediaKeyHandler::TestMpMediaKeyHandler()
+ : mTest(0)
+{
+}
+
+TestMpMediaKeyHandler::~TestMpMediaKeyHandler()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpMediaKeyHandler::initTestCase()
+{
+ RDebug::Print(_L("initTestCase()"));
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpMediaKeyHandler::cleanupTestCase()
+{
+ RDebug::Print(_L("cleanupTestCase()"));
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpMediaKeyHandler::init()
+{
+ RDebug::Print(_L(">>init()"));
+ mTest = new MpMediaKeyHandler();
+ mTestPrivate = mTest->d_ptr;
+ RDebug::Print(_L("<<init()"));
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpMediaKeyHandler::cleanup()
+{
+ if (mTest)
+ {
+ delete mTest;
+ mTest = 0;
+ mTestPrivate = 0;
+ }
+}
+
+void TestMpMediaKeyHandler::testConstructor()
+{
+ RDebug::Print(_L(">>testConstructor()"));
+
+ QVERIFY(mTest != 0);
+ QVERIFY(mTestPrivate != 0);
+ QVERIFY(mTestPrivate->iInterfaceSelector != 0);
+ QVERIFY(mTestPrivate->iResponseHandler != 0);
+ QVERIFY(mTestPrivate->iPlaybackUtility != 0);
+
+ RDebug::Print(_L("<<testConstructor()"));
+}
+
+void TestMpMediaKeyHandler::testDestructor()
+{
+ RDebug::Print(_L(">>testDestructor()"));
+
+ // it is been observed that CRemConCoreApiTarget is not being deleted by anyone
+ // the creator claim it does not own it, while others never claim the ownership neither
+ cleanup();
+ QVERIFY(mTest == 0);
+ QCOMPARE(MMPXPlaybackUtility::getCount(), 0);
+ QCOMPARE(CRemConCoreApiTarget::getCount(), 0);
+ QCOMPARE(CRemConInterfaceSelector::getCount(), 0);
+
+ RDebug::Print(_L("<<testDestructor()"));
+}
+
+void TestMpMediaKeyHandler::testConstructorFail()
+{
+ RDebug::Print(_L(">>testConstructorFail()"));
+
+ // errorOccured signal cannot be connected until mediakeyhandler is created,
+ // and error during construction cannot be feedback.
+ // solution should be to seperate construction/init
+ cleanup();
+ CRemConInterfaceSelector::setNewLLeave();
+ init();
+ QSignalSpy spy1(mTest, SIGNAL(errorOccured(int)));
+ QVERIFY(mTest != 0);
+ //QCOMPARE(spy1.count(), 1); // failed if comment in
+
+ cleanup();
+ CRemConInterfaceSelector::setOpenTargetLLeave();
+ init();
+ QSignalSpy spy2(mTest, SIGNAL(errorOccured(int)));
+ QVERIFY(mTest != 0);
+ //QCOMPARE(spy2.count(), 1); // failed if comment in
+
+ cleanup();
+ CRemConCoreApiTarget::setNewLLeave();
+ init();
+ QSignalSpy spy3(mTest, SIGNAL(errorOccured(int)));
+ QVERIFY(mTest != 0);
+ //QCOMPARE(spy3.count(), 1); // failed if comment in
+
+ cleanup();
+ MMPXPlaybackUtility::setNewLLeave();
+ init();
+ QSignalSpy spy4(mTest, SIGNAL(errorOccured(int)));
+ QVERIFY(mTest != 0);
+ //QCOMPARE(spy4.count(), 1); // failed if comment in
+
+ cleanup();
+ MMPXPlaybackUtility::setAddObserverLLeave();
+ init();
+ QSignalSpy spy5(mTest, SIGNAL(errorOccured(int)));
+ QVERIFY(mTest != 0);
+ //QCOMPARE(spy5.count(), 1); // failed if comment in
+
+ RDebug::Print(_L("<<testConstructorFail()"));
+}
+
+void TestMpMediaKeyHandler::testDestructorFail()
+{
+ RDebug::Print(_L(">>testDestructorFail()"));
+
+ MMPXPlaybackUtility::setRemoveObserverLLeave();
+ cleanup();
+ QVERIFY(mTest == 0);
+ QCOMPARE(MMPXPlaybackUtility::getCount(), 0);
+ QCOMPARE(CRemConCoreApiTarget::getCount(), 0);
+ QCOMPARE(CRemConInterfaceSelector::getCount(), 0);
+
+ RDebug::Print(_L("<<testDestructorFail()"));
+}
+
+void TestMpMediaKeyHandler::testCommandVolumeUpKey()
+{
+ RDebug::Print(_L(">>testCommandVolumeUpKey()"));
+
+ // volumeChanged signal would not emit until mediakeyhandler is not added as an observer to MMPXPlaybackUtility
+ QSignalSpy spy(mTest, SIGNAL(volumeChanged(int)));
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ MMPXPlaybackUtility::setPlaying();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiVolumeUp, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+ QCOMPARE(spy.count(), 1);
+
+ // impossible to stub out the CPeriodic class which is part of the Press/Release handling
+ // hence, those logic could not be tested
+
+ RDebug::Print(_L("<<testCommandVolumeUpKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandVolumeDownKey()
+{
+ RDebug::Print(_L(">>testCommandVolumeDownKey()"));
+
+ // volumeChanged signal would not emit until mediakeyhandler is not added as an observer to MMPXPlaybackUtility
+ QSignalSpy spy(mTest, SIGNAL(volumeChanged(int)));
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ MMPXPlaybackUtility::setPlaying();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiVolumeDown, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+ QCOMPARE(spy.count(), 1);
+
+ // impossible to stub out the CPeriodic class which is part of the Press/Release handling
+ // hence, those logic could not be tested
+
+ RDebug::Print(_L("<<testCommandVolumeDownKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandPlayKey()
+{
+ RDebug::Print(_L(">>testCommandPlayKey()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiPlay, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandPlayKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandPauseKey()
+{
+ RDebug::Print(_L(">>testCommandPauseKey()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiPause, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandPauseKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandPlayPauseKey()
+{
+ RDebug::Print(_L(">>testCommandPlayPauseKey()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiPausePlayFunction, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandPlayPauseKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandStopKey()
+{
+ RDebug::Print(_L(">>testCommandStopKey()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiStop, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandStopKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandFastForwardKeyPress()
+{
+ RDebug::Print(_L(">>testCommandFastForwardKeyPress()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiFastForward, ERemConCoreApiButtonPress);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandFastForwardKeyPress()"));
+}
+
+void TestMpMediaKeyHandler::testCommandFastForwardKeyRelease()
+{
+ RDebug::Print(_L(">>testCommandFastForwardKeyRelease()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiFastForward, ERemConCoreApiButtonRelease);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandFastForwardKeyRelease()"));
+}
+
+void TestMpMediaKeyHandler::testCommandRewindKeyPress()
+{
+ RDebug::Print(_L(">>testCommandRewindKey()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiRewind, ERemConCoreApiButtonPress);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandRewindKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandRewindKeyRelease()
+{
+ RDebug::Print(_L(">>testCommandRewindKeyRelease()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiRewind, ERemConCoreApiButtonRelease);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandRewindKeyRelease()"));
+}
+
+void TestMpMediaKeyHandler::testCommandForwardKey()
+{
+ RDebug::Print(_L(">>testCommandForwardKey()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiForward, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandForwardKey()"));
+}
+
+void TestMpMediaKeyHandler::testCommandBackwardKey()
+{
+ RDebug::Print(_L(">>testCommandBackwardKey()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoCommand(ERemConCoreApiBackward, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testCommandBackwardKey()"));
+}
+
+void TestMpMediaKeyHandler::testPlay()
+{
+ RDebug::Print(_L(">>testPlay()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoPlay(ERemConCoreApiPlaybackSpeedX1, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testPlay()"));
+}
+
+void TestMpMediaKeyHandler::testAudioInputFunction()
+{
+ RDebug::Print(_L(">>testAudioInputFunction()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoSelectAudioInputFunction(0, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testAudioInputFunction()"));
+}
+
+void TestMpMediaKeyHandler::testSelectAvInputFunction()
+{
+ RDebug::Print(_L(">>testSelectAvInputFunction()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoSelectAvInputFunction(0, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testSelectAvInputFunction()"));
+}
+
+void TestMpMediaKeyHandler::testSelectDiskFunction()
+{
+ RDebug::Print(_L(">>testSelectDiskFunction()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoSelectDiskFunction(0, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testSelectDiskFunction()"));
+}
+
+void TestMpMediaKeyHandler::testTuneFunction()
+{
+ RDebug::Print(_L(">>testTuneFunction()"));
+
+ int oldCount = CRemConCoreApiTarget::getSendResponseCount();
+ mTestPrivate->MrccatoTuneFunction(ETrue, 0, 1, ERemConCoreApiButtonClick);
+ QCOMPARE(CRemConCoreApiTarget::getSendResponseCount(), oldCount+1);
+
+ RDebug::Print(_L("<<testTuneFunction()"));
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/stub/inc/mpxplaybackutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 mpmediakeyhandler
+*
+*/
+
+
+#ifndef MMPXPLAYBACKUTILITY_H
+#define MMPXPLAYBACKUTILITY_H
+
+
+#include <mpxplaybackframeworkdefs.h> // KPbModeDefault, TMPXPlaybackCommand
+#include <e32base.h> // CBase
+
+
+class MpMediaKeyHandlerPrivate;
+
+class MMPXPlaybackUtility : public CActive
+ {
+
+public:
+
+ static int getCount();
+ static void setNewLLeave();
+ static void NewLLeaveIfDesiredL();
+ static void setAddObserverLLeave();
+ static void AddObserverLLeaveIfDesiredL();
+ static void setRemoveObserverLLeave();
+ static void RemoveObserverLLeaveIfDesiredL();
+ static void setCommandLLeave();
+ static void CommandLLeaveIfDesiredL();
+ static void setStateLLeave();
+ static void StateLLeaveIfDesiredL();
+ static void setPlaying();
+
+public:
+
+ static MMPXPlaybackUtility* UtilityL(const TUid& aModeId = KPbModeDefault);
+ virtual ~MMPXPlaybackUtility();
+
+ void Close();
+ void AddObserverL(MpMediaKeyHandlerPrivate& aObs);
+ void RemoveObserverL(MpMediaKeyHandlerPrivate& aObs);
+ void CommandL(TMPXPlaybackCommand aCmd, TInt aData = 0);
+
+ TMPXPlaybackState StateL() const;
+
+protected:
+
+ // from CActive
+ virtual void DoCancel();
+ virtual void RunL();
+
+private:
+
+ MMPXPlaybackUtility();
+
+private:
+
+ MpMediaKeyHandlerPrivate* iObserver;
+ TInt iVolume;
+ TBool iVolumeUp;
+
+ };
+
+#endif // MMPXPLAYBACKUTILITY_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/stub/inc/remconcoreapitarget.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: remconcoreapitarget stub for testing mpmediakeyhandler
+*
+*/
+
+
+#ifndef REMCONCOREAPITARGET_H
+#define REMCONCOREAPITARGET_H
+
+
+#include <remconcoreapi.h> // TRemConCoreApiOperationId
+
+
+class CRemConInterfaceSelector;
+class MRemConCoreApiTargetObserver;
+
+class CRemConCoreApiTarget : public CActive
+ {
+
+public:
+
+ static int getCount();
+ static void setNewLLeave();
+ static void NewLLeaveIfDesiredL();
+ static int getSendResponseCount();
+
+public:
+
+ static CRemConCoreApiTarget* NewL(CRemConInterfaceSelector& aInterfaceSelector, MRemConCoreApiTargetObserver& aObserver);
+ virtual ~CRemConCoreApiTarget();
+
+ void VolumeUpResponse(TRequestStatus& aStatus, TInt aError);
+ void VolumeDownResponse(TRequestStatus& aStatus, TInt aError);
+ void SendResponse(TRequestStatus& aStatus, TRemConCoreApiOperationId aOperationId, TInt aError);
+
+protected:
+
+ // from CActive
+ virtual void DoCancel();
+ virtual void RunL();
+
+private:
+
+ CRemConCoreApiTarget();
+
+private:
+
+ TRequestStatus* iClientStatus;
+
+ };
+
+#endif // REMCONCOREAPITARGET_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/stub/inc/remconinterfaceselector.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: remconinterfaceselector stub for testing mpmediakeyhandler
+*
+*/
+
+
+#ifndef REMCONINTERFACESELECTOR_H
+#define REMCONINTERFACESELECTOR_H
+
+
+#include <e32base.h>
+
+
+class CRemConInterfaceSelector : public CBase
+ {
+
+public:
+
+ static int getCount();
+ static void setNewLLeave();
+ static void NewLLeaveIfDesiredL();
+ static void setOpenTargetLLeave();
+ static void OpenTargetLLeaveIfDesiredL();
+
+public:
+
+ static CRemConInterfaceSelector* NewL();
+ virtual ~CRemConInterfaceSelector();
+
+ void OpenTargetL();
+
+private:
+
+ CRemConInterfaceSelector();
+
+ };
+
+#endif // REMCONINTERFACESELECTOR_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/stub/src/mpxplaybackutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,230 @@
+/*
+* 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: mpxplaybackutility stub for testing MpNowPlayingBackEnd
+*
+*/
+
+
+#include <mpxplaybackcommanddefs.h>
+#include <e32debug.h>
+
+#include "stub/inc/mpxplaybackutility.h"
+#include "mpmediakeyhandler_p.h"
+
+
+int gMMPXPlaybackUtilityCount = 0;
+bool gMMPXPlaybackUtilityNewLLeave = false;
+bool gMMPXPlaybackUtilityAddObserverLLeave = false;
+bool gMMPXPlaybackUtilityRemoveObserverLLeave = false;
+bool gMMPXPlaybackUtilityCommandLLeave = false;
+bool gMMPXPlaybackUtilityStateLLeave = false;
+TMPXPlaybackState gMMPXPlaybackUtilityState = EPbStateNotInitialised;
+
+
+//static functions start
+
+int MMPXPlaybackUtility::getCount()
+{
+ return gMMPXPlaybackUtilityCount;
+}
+
+void MMPXPlaybackUtility::setNewLLeave()
+{
+ gMMPXPlaybackUtilityNewLLeave = true;
+}
+
+void MMPXPlaybackUtility::NewLLeaveIfDesiredL()
+{
+ if (gMMPXPlaybackUtilityNewLLeave)
+ {
+ RDebug::Print(_L("MMPXPlaybackUtility::NewLLeaveIfDesiredL Leave"));
+ gMMPXPlaybackUtilityNewLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+void MMPXPlaybackUtility::setAddObserverLLeave()
+{
+ gMMPXPlaybackUtilityAddObserverLLeave = true;
+}
+
+void MMPXPlaybackUtility::AddObserverLLeaveIfDesiredL()
+{
+ if (gMMPXPlaybackUtilityAddObserverLLeave)
+ {
+ RDebug::Print(_L("MMPXPlaybackUtility::AddObserverLLeaveIfDesiredL Leave"));
+ gMMPXPlaybackUtilityAddObserverLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+void MMPXPlaybackUtility::setRemoveObserverLLeave()
+{
+ gMMPXPlaybackUtilityRemoveObserverLLeave = true;
+}
+
+void MMPXPlaybackUtility::RemoveObserverLLeaveIfDesiredL()
+{
+ if (gMMPXPlaybackUtilityRemoveObserverLLeave)
+ {
+ RDebug::Print(_L("MMPXPlaybackUtility::RemoveObserverLLeaveIfDesiredL Leave"));
+ gMMPXPlaybackUtilityRemoveObserverLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+void MMPXPlaybackUtility::setCommandLLeave()
+{
+ gMMPXPlaybackUtilityCommandLLeave = true;
+}
+
+void MMPXPlaybackUtility::CommandLLeaveIfDesiredL()
+{
+ if (gMMPXPlaybackUtilityCommandLLeave)
+ {
+ RDebug::Print(_L("MMPXPlaybackUtility::CommandLLeaveIfDesiredL Leave"));
+ gMMPXPlaybackUtilityCommandLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+void MMPXPlaybackUtility::setStateLLeave()
+{
+ gMMPXPlaybackUtilityStateLLeave = true;
+}
+
+void MMPXPlaybackUtility::StateLLeaveIfDesiredL()
+{
+ if (gMMPXPlaybackUtilityStateLLeave)
+ {
+ RDebug::Print(_L("MMPXPlaybackUtility::StateLLeaveIfDesiredL Leave"));
+ gMMPXPlaybackUtilityStateLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+void MMPXPlaybackUtility::setPlaying()
+{
+ gMMPXPlaybackUtilityState = EPbStatePlaying;
+}
+
+//static functions end
+
+MMPXPlaybackUtility::MMPXPlaybackUtility()
+ : CActive(EPriorityStandard),
+ iObserver(NULL),
+ iVolume(5),
+ iVolumeUp(ETrue)
+{
+ gMMPXPlaybackUtilityState = EPbStateNotInitialised;
+}
+
+MMPXPlaybackUtility::~MMPXPlaybackUtility()
+{
+}
+
+MMPXPlaybackUtility* MMPXPlaybackUtility::UtilityL(const TUid& /*aModeId*/)
+{
+ RDebug::Print(_L("stub MMPXPlaybackUtility::UtilityL"));
+ MMPXPlaybackUtility::NewLLeaveIfDesiredL();
+ gMMPXPlaybackUtilityCount++;
+ static MMPXPlaybackUtility playbackUtilility;
+ return &playbackUtilility;
+}
+
+void MMPXPlaybackUtility::Close()
+{
+ iObserver = NULL;
+ gMMPXPlaybackUtilityCount--;
+}
+
+void MMPXPlaybackUtility::AddObserverL(MpMediaKeyHandlerPrivate& aObs)
+{
+ MMPXPlaybackUtility::AddObserverLLeaveIfDesiredL();
+ iObserver = &aObs;
+}
+
+void MMPXPlaybackUtility::RemoveObserverL(MpMediaKeyHandlerPrivate& /*aObs*/)
+{
+ MMPXPlaybackUtility::RemoveObserverLLeaveIfDesiredL();
+ iObserver = NULL;
+}
+
+void MMPXPlaybackUtility::CommandL(TMPXPlaybackCommand aCmd, TInt /*aData*/)
+{
+ RDebug::Print(_L(">>MMPXPlaybackUtility::CommandL"));
+
+ MMPXPlaybackUtility::CommandLLeaveIfDesiredL();
+
+ if (IsActive())
+ User::Leave(KErrNotReady);
+ else
+ {
+ if ((aCmd == EPbCmdIncreaseVolume) || (aCmd == EPbCmdDecreaseVolume))
+ {
+ if (aCmd == EPbCmdIncreaseVolume)
+ iVolumeUp = ETrue;
+ else
+ iVolumeUp = EFalse;
+
+ // stub should not be async
+ /*TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, KErrNone);
+ SetActive();*/
+
+ RunL();
+ }
+ }
+
+ RDebug::Print(_L("<<MMPXPlaybackUtility::CommandL"));
+}
+
+TMPXPlaybackState MMPXPlaybackUtility::StateL() const
+{
+ MMPXPlaybackUtility::StateLLeaveIfDesiredL();
+ return gMMPXPlaybackUtilityState;
+}
+
+void MMPXPlaybackUtility::DoCancel()
+{
+}
+
+void MMPXPlaybackUtility::RunL()
+{
+ RDebug::Print(_L(">>MMPXPlaybackUtility::RunL"));
+
+ TInt err = KErrNone;
+
+ if (iVolumeUp)
+ {
+ if (iVolume < 10)
+ iVolume++;
+ else
+ err = KErrArgument;
+ }
+ else
+ {
+ if (iVolume > 0)
+ iVolume--;
+ else
+ err = KErrArgument;
+ }
+
+ if (iObserver)
+ iObserver->HandlePropertyL(EPbPropertyVolume, iVolume, err);
+
+ RDebug::Print(_L("<<MMPXPlaybackUtility::RunL"));
+}
+
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/stub/src/remconcoreapitarget.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,143 @@
+/*
+* 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: remconcoreapitarget stub for testing MpNowPlayingBackEnd
+*
+*/
+
+
+#include <e32debug.h>
+
+#include "stub/inc/remconcoreapitarget.h"
+
+
+int gCRemConCoreApiTargetCount = 0;
+bool gCRemConCoreApiTargetNewLLeave = false;
+int gCRemConCoreApiTargetSendResponseCount = 0;
+
+
+//static functions start
+
+int CRemConCoreApiTarget::getCount()
+{
+ return gCRemConCoreApiTargetCount;
+}
+
+void CRemConCoreApiTarget::setNewLLeave()
+{
+ gCRemConCoreApiTargetNewLLeave = true;
+}
+
+void CRemConCoreApiTarget::NewLLeaveIfDesiredL()
+{
+ if (gCRemConCoreApiTargetNewLLeave)
+ {
+ RDebug::Print(_L("CRemConCoreApiTarget::NewLLeaveIfDesiredL Leave"));
+ gCRemConCoreApiTargetNewLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+int CRemConCoreApiTarget::getSendResponseCount()
+{
+ return gCRemConCoreApiTargetSendResponseCount;
+}
+
+//static functions end
+
+
+CRemConCoreApiTarget::CRemConCoreApiTarget()
+ : CActive(EPriorityStandard),
+ iClientStatus(NULL)
+{
+ gCRemConCoreApiTargetCount++;
+}
+
+CRemConCoreApiTarget::~CRemConCoreApiTarget()
+{
+ gCRemConCoreApiTargetCount--;
+ gCRemConCoreApiTargetSendResponseCount = 0;
+}
+
+CRemConCoreApiTarget* CRemConCoreApiTarget::NewL(CRemConInterfaceSelector& /*aInterfaceSelector*/, MRemConCoreApiTargetObserver& /*aObserver*/)
+{
+ RDebug::Print(_L("stub CRemConCoreApiTarget::NewL"));
+ CRemConCoreApiTarget::NewLLeaveIfDesiredL();
+ CRemConCoreApiTarget* self = new(ELeave) CRemConCoreApiTarget();
+ return self;
+}
+
+
+void CRemConCoreApiTarget::VolumeUpResponse(TRequestStatus& aStatus, TInt /*aError*/)
+{
+ RDebug::Print(_L(">>CRemConCoreApiTarget::VolumeUpResponse"));
+
+ iClientStatus = &aStatus;
+ gCRemConCoreApiTargetSendResponseCount++;
+
+ // stub should not be async
+ /*TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, KErrNone);
+ SetActive();*/
+
+ RunL();
+
+ RDebug::Print(_L("<<CRemConCoreApiTarget::VolumeUpResponse"));
+}
+
+void CRemConCoreApiTarget::VolumeDownResponse(TRequestStatus& aStatus, TInt /*aError*/)
+{
+ RDebug::Print(_L(">>CRemConCoreApiTarget::VolumeDownResponse"));
+
+ iClientStatus = &aStatus;
+ gCRemConCoreApiTargetSendResponseCount++;
+
+ // stub should not be async
+ /*TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, KErrNone);
+ SetActive();*/
+
+ RunL();
+
+ RDebug::Print(_L("<<CRemConCoreApiTarget::VolumeDownResponse"));
+}
+
+void CRemConCoreApiTarget::SendResponse(TRequestStatus& aStatus, TRemConCoreApiOperationId /*aOperationId*/, TInt /*aError*/)
+{
+ RDebug::Print(_L(">>CRemConCoreApiTarget::SendResponse"));
+
+ iClientStatus = &aStatus;
+ gCRemConCoreApiTargetSendResponseCount++;
+
+ // stub should not be async
+ /*TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, KErrNone);
+ SetActive();*/
+
+ RunL();
+
+ RDebug::Print(_L("<<CRemConCoreApiTarget::SendResponse"));
+}
+
+void CRemConCoreApiTarget::DoCancel()
+{
+}
+
+void CRemConCoreApiTarget::RunL()
+{
+ RDebug::Print(_L(">>CRemConCoreApiTarget::RunL"));
+ User::RequestComplete(iClientStatus, KErrNone);
+ RDebug::Print(_L("<<CRemConCoreApiTarget::RunL"));
+}
+
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/stub/src/remconinterfaceselector.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,91 @@
+/*
+* 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: remconinterfaceselector stub for testing MpNowPlayingBackEnd
+*
+*/
+
+
+#include <e32debug.h>
+
+#include "stub/inc/remconinterfaceselector.h"
+
+
+int gCRemConInterfaceSelectorCount = 0;
+bool gCRemConInterfaceSelectorNewLLeave = false;
+bool gCRemConInterfaceSelectorOpenTargetLLeave = false;
+
+
+//static functions start
+
+int CRemConInterfaceSelector::getCount()
+{
+ return gCRemConInterfaceSelectorCount;
+}
+
+void CRemConInterfaceSelector::setNewLLeave()
+{
+ gCRemConInterfaceSelectorNewLLeave = true;
+}
+
+void CRemConInterfaceSelector::NewLLeaveIfDesiredL()
+{
+ if (gCRemConInterfaceSelectorNewLLeave)
+ {
+ RDebug::Print(_L("CRemConInterfaceSelector::NewLLeaveIfDesiredL Leave"));
+ gCRemConInterfaceSelectorNewLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+void CRemConInterfaceSelector::setOpenTargetLLeave()
+{
+ gCRemConInterfaceSelectorOpenTargetLLeave = true;
+}
+
+void CRemConInterfaceSelector::OpenTargetLLeaveIfDesiredL()
+{
+ if (gCRemConInterfaceSelectorOpenTargetLLeave)
+ {
+ RDebug::Print(_L("CRemConInterfaceSelector::NewLLeaveIfDesiredL Leave"));
+ gCRemConInterfaceSelectorOpenTargetLLeave = false;
+ User::Leave(KErrGeneral);
+ }
+}
+
+//static functions end
+
+CRemConInterfaceSelector::CRemConInterfaceSelector()
+{
+ gCRemConInterfaceSelectorCount++;
+}
+
+CRemConInterfaceSelector::~CRemConInterfaceSelector()
+{
+ gCRemConInterfaceSelectorCount--;
+}
+
+CRemConInterfaceSelector* CRemConInterfaceSelector::NewL()
+{
+ RDebug::Print(_L("stub CRemConInterfaceSelector::NewL"));
+ CRemConInterfaceSelector::NewLLeaveIfDesiredL();
+ CRemConInterfaceSelector* self = new(ELeave) CRemConInterfaceSelector();
+ return self;
+}
+
+void CRemConInterfaceSelector::OpenTargetL()
+{
+ CRemConInterfaceSelector::OpenTargetLLeaveIfDesiredL();
+}
+
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpmediakeyhandler/unittest_mpmediakeyhandler.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+TEMPLATE = app
+CONFIG += qtestlib hb
+TARGET =
+
+DEPENDPATH += . \
+ inc \
+ src
+
+INCLUDEPATH += . \
+ stub/inc \
+ ../../../inc \
+
+symbian:
+{
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+}
+
+LIBS += -lestor.dll \
+ -lfbscli.dll \
+ -lmpxcommon.dll \
+ -lremconcoreapi.dll \
+
+# Input
+HEADERS += inc/unittest_mpmediakeyhandler.h \
+ ../../inc/mpmediakeyhandler.h \
+ ../../inc/mpmediakeyhandler_p.h \
+ ../../inc/mpmediakeyremconresponse.h \
+ stub/inc/mpxplaybackutility.h \
+ stub/inc/remconcoreapitarget.h \
+ stub/inc/remconinterfaceselector.h \
+
+SOURCES += src/unittest_mpmediakeyhandler.cpp \
+ ../../src/mpmediakeyhandler.cpp \
+ ../../src/mpmediakeyhandler_p.cpp \
+ ../../src/mpmediakeyremconresponse.cpp \
+ stub/src/mpxplaybackutility.cpp \
+ stub/src/remconcoreapitarget.cpp \
+ stub/src/remconinterfaceselector.cpp \
--- a/mpserviceplugins/audioeffects/src/mpxaudioeffectengine.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpserviceplugins/audioeffects/src/mpxaudioeffectengine.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -36,9 +36,9 @@
#include "mpxaudioeffectengine.h"
-// Music setting
-const TUid KCRUidMPXMPSettings = {0x101FFCDC};
-const TUint32 KMPXMPEqPresetId = 0x00000001;
+const TUid KMPCenRepSettingsFeature = {0x10207C92};
+const TUint32 KMPCenRepSettingPresetIdKey = 0x00000004;
+
// ================= MEMBER FUNCTIONS =======================
@@ -328,8 +328,8 @@
TInt presetId( KEqualizerPresetNone );
TRAP_IGNORE(
{
- CRepository* repository = CRepository::NewL( KCRUidMPXMPSettings );
- repository->Get( KMPXMPEqPresetId, presetId );
+ CRepository* repository = CRepository::NewL( KMPCenRepSettingsFeature );
+ repository->Get( KMPCenRepSettingPresetIdKey, presetId );
delete repository;
repository = NULL;
} );
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/data/101FFCD9.RSS Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Resource file
+*
+*/
+
+
+#include <ecom/registryinfo.rh>
+#include <mpxcollectionplugin.hrh>
+
+/**
+ * The opaque_data syntax is made up of three parts:
+ * a list of Uids for resolving the view plugin, feature flags, priority.
+ *
+ * <p>uid1;uid2;uid3</p>
+ * uid*: Supported plugin types.
+ * E.g. if podcast plugin may support music plugin as well, KMPXColPluginMusic
+ *
+ * <t>uid</t>
+ * uid: plugin type uid.
+ * E.g. for music plugin will be: 0x101FFCDA
+ *
+ * <f>flags</f> [optional]
+ * flags: sum of the required feature flags, not used now
+ *
+ * <i>priority</i> [optional]
+ * priority: a value of type TMPXCollectionPluginPriorities. This value determines
+ * the returning order when several plugins can support the same set of Uids.
+ * Default value of this field is EMPXCollectionPluginPriorityNormal.
+ */
+
+RESOURCE REGISTRY_INFO theInfo
+ {
+ dll_uid = 0x101FFCD9;
+
+ interfaces =
+ {
+ INTERFACE_INFO
+ {
+ interface_uid = KMPXCollectionPluginInterfaceUid;
+ implementations =
+ {
+ /*
+ * Normal In memory plugin, can be used for any collection
+ * To resolve this plugin, Resolve with UID: EMPXCollectionPluginTemporary
+ */
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x101FFCD8;
+ version_no = 1;
+ display_name = "";
+ default_data = "";
+ opaque_data = "<t>"EMPXCollectionPluginHidden"</t>"
+ "<p>"EMPXCollectionPluginTemporary"</p>"
+ "<i>"EMPXPluginPriorityNormal"</i>"
+ "<f>"EMPXPluginFlagPreLoad"</f>";
+ },
+ /*
+ * Normal In memory plugin, can be used for any collection
+ * To resolve this plugin, Resolve with UID: EMPXCollectionPluginTemporary AND
+ * EMPXCollectionPluginMusic
+ */
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x10282960;
+ version_no = 1;
+ display_name = "";
+ default_data = "";
+ opaque_data = "<t>"EMPXCollectionPluginHidden"</t>"
+ "<p>"EMPXCollectionPluginTemporary"</p>"
+ "<p>"EMPXCollectionPluginMusic"</p>"
+ "<i>"EMPXPluginPriorityNormal"</i>"
+ "<f>"EMPXPluginFlagPreLoad"</f>";
+ }
+ };
+ }
+ };
+ }
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/group/bld.inf Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* 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: Build information file for project mpxinmemoryplugin.
+*
+*/
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+mpxinmemoryplugin.mmp
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/group/mpxinmemoryplugin.mmp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* 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: Collection file db plugin project specification
+*
+*/
+
+
+
+#include <bldvariant.hrh>
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET mpxinmemoryplugin.dll
+TARGETTYPE PLUGIN
+UID 0x10009D8D 0x101FFCD9
+
+VENDORID VID_DEFAULT
+CAPABILITY CAP_ECOM_PLUGIN
+
+VERSION 15.0
+
+SOURCEPATH ../src
+SOURCE mpxinmemoryplugin.cpp
+SOURCE mpxmusicmemoryplugin.cpp
+SOURCE mpxinmemorypluginproxy.cpp
+
+SOURCEPATH ../data
+START RESOURCE 101FFCD9.RSS
+TARGET mpxinmemoryplugin.rsc
+END
+
+USERINCLUDE ../inc
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE /epoc32/include/ecom
+
+LIBRARY apgrfx.lib
+LIBRARY euser.lib
+LIBRARY ecom.lib
+LIBRARY efsrv.lib
+LIBRARY estor.lib
+LIBRARY bafl.lib
+LIBRARY mpxcommon.lib
+LIBRARY mpxmetadataextractor.lib
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/inc/mpxinmemoryplugin.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,203 @@
+/*
+* 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: Simple plugin to cache media objects
+*
+*/
+
+
+
+#ifndef CMPXINMEMORYPLUGIN_H
+#define CMPXINMEMORYPLUGIN_H
+
+// INCLUDES
+#include <e32cmn.h>
+#include <mpxcollectionplugin.h>
+#include <mpxcollectionmessagedefs.h>
+
+// FORWARD DECLARATIONS
+class CMPXMedia;
+class CMPXMediaArray;
+class CMPXDrmMediaUtility;
+
+// CONSTANTS
+
+// CLASS DECLARATION
+
+/**
+* CMPXInMemoryPlugin class
+*
+* Plug-in basically provides temporary in memory browsing
+* @lib mpxinmemoryplugin.lib
+*/
+NONSHARABLE_CLASS(CMPXInMemoryPlugin) : public CMPXCollectionPlugin
+ {
+public: // Constructors and destructor
+
+
+ /**
+ * Two-phased constructor
+ *
+ * @param aInitParams, initialization parameter
+ * @return object of constructed
+ */
+ static CMPXInMemoryPlugin* NewL();
+
+ /**
+ * Destructor
+ */
+ virtual ~CMPXInMemoryPlugin();
+
+protected: // Functions from base classes
+ /**
+ * from CMPXCollectionPlugin
+ */
+
+ /**
+ * From CMPXCollectionPlugin
+ * Navigates to the given path
+ * @param aPath: a path
+ * @param aAttrs, attributes requested
+ * @param aFilter, filter to apply or NULL if none
+ */
+ void OpenL(const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& aAttrs,
+ CMPXFilter* aFilter);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Get the extended properties of the current file (async)
+ * @param aPath: a path
+ * @param aAttrs: array of attributes requested
+ * @param aCaps platsec capabilities of client requesting media; plug-in should also
+ * verify its process capabilities
+ * @aParam aSpecs, specifications for attributes
+ */
+ void MediaL(const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& aAttrs,
+ const TArray<TCapability>& aCaps,
+ CMPXAttributeSpecs* aSpecs);
+
+ /**
+ * Cancel outstanding request
+ */
+ void CancelRequest();
+
+ /**
+ * Executes a command on the selected collection
+ *
+ * @param aCmd a command
+ */
+ void CommandL(TMPXCollectionCommand aCmd, TInt aArg);
+
+ /**
+ * From CMPXCollectionPlugin
+ */
+ void CommandL(CMPXCommand& aCmd);
+
+ /**
+ * Adds item(s) to the collection
+ *
+ * @param aNewProperties, Properties of the item
+ */
+ void AddL(const CMPXMedia& aNewMedia);
+
+ /**
+ * Remove a collection path
+ * @param aPath, path to remove
+ *
+ */
+ void RemoveL(const CMPXCollectionPath& aPath );
+
+ /**
+ * Remove an item or items from the collection
+ *
+ * @param aProperties, Properties of the item. It may cantain URI only
+ * or meta data, all of items matched properties
+ * will be removed.
+ */
+ void RemoveL(const CMPXMedia& aMedia);
+
+ /**
+ * Sets/updates the media for the item
+ * specified in the path
+ *
+ * @param aMedia, new value
+ */
+ void SetL(const CMPXMedia& aMedia);
+
+ /**
+ * Find a list of items matched
+ *
+ * @param aMedia, properties to be searched
+ * @param aAttrs, attributes to return from find
+ */
+ void FindAllL(const CMPXMedia& aMedia, const TArray<TMPXAttribute>& aAttrs);
+
+ /**
+ * Find a list of items matched (sync)
+ *
+ * @param aMedia, properties to be searched
+ * @param aAttrs, attributes to return
+ * @return results of the search
+ */
+ CMPXMedia* FindAllSyncL(const CMPXMedia& aMedia,
+ const TArray<TMPXAttribute>& aAttrs);
+
+ /**
+ * Get the list of supported capabilities
+ *
+ * @return TCollectionCapability, bitmask of supported capabilities
+ */
+ TCollectionCapability GetCapabilities();
+
+protected: // New Functions
+
+ /**
+ * Send change events back to the observer
+ * @param aId, embedded context that was changed
+ * @param aChange, change type
+ */
+ void HandleChangeL(const TMPXItemId& aId, TMPXChangeEventType aChange );
+
+ /**
+ * Internal function to Add a Media
+ * @param aMedia media to add
+ */
+ void DoAddL( const CMPXMedia& aMedia );
+
+ /**
+ * Internal function to Set a Media
+ * @param aMedia media to set
+ */
+ void DoSetL( const CMPXMedia& aMedia );
+
+protected:
+ /**
+ * Constructor
+ */
+ CMPXInMemoryPlugin();
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL();
+
+protected:
+ CMPXDrmMediaUtility* iDrmMediaUtility;
+ RPointerArray<CMPXMedia> iTemporaryData;
+ RArray<TInt> iEmbeddedContext;
+ };
+
+#endif // CMPXINMEMORYPLUGIN_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/inc/mpxmusicmemoryplugin.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,106 @@
+/*
+* 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: Music derivative of the in-memory plugin
+*
+*/
+
+
+#ifndef CMPXMUSICMEMORYPLUGIN_H
+#define CMPXMUSICMEMORYPLUGIN_H
+
+#include <apgcli.h>
+#include "mpxinmemoryplugin.h"
+
+// FORWARD DECLARATIONS
+class CMPXMetadataExtractor;
+
+/**
+ * Music Specific memory plugin
+ *
+ * @lib mpx
+ * @since S60 ?S60_version *** for example, S60 v3.0
+ */
+NONSHARABLE_CLASS( CMPXMusicMemoryPlugin ) : public CMPXInMemoryPlugin
+ {
+public:
+
+ /**
+ * Two-phased constructor
+ *
+ * @param aInitParams, initialization parameter
+ * @return object of constructed
+ */
+ static CMPXMusicMemoryPlugin* NewL();
+
+ /**
+ * destructor
+ */
+ virtual ~CMPXMusicMemoryPlugin();
+
+private:
+
+ /**
+ * From CMPXCollectionPlugin
+ * Get the extended properties of the current file (async)
+ * @param aPath: a path
+ * @param aAttrs: array of attributes requested
+ * @param aCaps platsec capabilities of client requesting media; plug-in should also
+ * verify its process capabilities
+ * @aParam aSpecs, specifications for attributes
+ */
+ void MediaL(const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& aAttrs,
+ const TArray<TCapability>& aCaps,
+ CMPXAttributeSpecs* aSpecs);
+
+ /**
+ * Extract metadata for a given media object
+ * metadata will be extracted if a URI exists
+ * @param aUri, uri for the item
+ * @param attrs, attributes requested
+ * @return new CMPXMedia object or NULL if bad
+ */
+ CMPXMedia* ExtractMetadataL( const TDesC& aUri,
+ const TArray<TMPXAttribute>& aAttrs );
+
+
+ /**
+ * Set all the attributes in CMPXMedia corresponding to KMPXMediaIdDrm
+ * @param aMedia, media to update
+ * @param aDrmAttributes, bitwise or of the flags we want
+ * @param aDrmMedia, aMedia with drm attributes
+ */
+ void DoSetMediaDrmL(CMPXMedia& aMedia,
+ const TArray<TMPXAttribute>& aAttrs,
+ const TDesC& aLocation );
+private:
+
+ /**
+ * Constructor
+ */
+ CMPXMusicMemoryPlugin();
+
+ /**
+ * 2nd phased constructor
+ */
+ void ConstructL();
+
+private: // data
+ CMPXMetadataExtractor* iMetadataExtractor; // Metadata extractor
+ RFs iFs; // File Session
+ RApaLsSession iAppArc; // App arc, dummy
+ RArray<TMPXAttribute> iAttributes; // List of attributes to fetch
+ };
+
+#endif // CMPXMUSICMEMORYPLUGIN_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/rom/mpxinmemplugin.iby Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* 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: Image description file for project mpxinmemplugin
+*
+*/
+
+
+
+#ifndef MPXINMEMORYDBPLUGIN_IBY
+#define MPXINMEMORYDBPLUGIN_IBY
+
+#include <data_caging_paths_for_iby.hrh>
+
+ECOM_PLUGIN( mpxinmemoryplugin.dll, 101FFCD9.rsc )
+
+#endif // MPXINMEMORYDBPLUGIN_IBY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/rom/rom.pri Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpxinmemplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mpxinmemplugin.iby)"
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/src/mpxinmemoryplugin.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,632 @@
+/*
+* 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: Simple plugin to cache media objects
+*
+*/
+
+
+// INCLUDE FILES
+#include <e32cmn.h>
+#include <mpxcollectionpath.h>
+#include <mpxcollectionpluginobserver.h>
+#include <mpxcmn.h>
+#include <mpxmediageneraldefs.h>
+#include <mpxmediacontainerdefs.h>
+#include <mpxmediamusicdefs.h>
+#include <mpxmediaaudiodefs.h>
+#include <mpxmessagegeneraldefs.h>
+#include <mpxcollectionmessagedefs.h>
+#include <mpxmediacollectiondetaildefs.h>
+#include <mpxcollectioncommanddefs.h>
+#include <mpxcommandgeneraldefs.h>
+#include <mpxmedia.h>
+#include <mpxmediaarray.h>
+#include <mpxdrmmediautility.h>
+#include <mpxmediadrmdefs.h>
+#include <mpxlog.h>
+
+#include "mpxinmemoryplugin.h"
+
+// CONSTANTS
+const TInt KIMPluginUid = 0x101FFCD8;
+
+// ============================ MEMBER FUNCTIONS ==============================
+// ----------------------------------------------------------------------------
+// Two-phased constructor.
+// ----------------------------------------------------------------------------
+//
+CMPXInMemoryPlugin* CMPXInMemoryPlugin::NewL()
+ {
+ CMPXInMemoryPlugin* p = new (ELeave) CMPXInMemoryPlugin();
+ CleanupStack::PushL(p);
+ p->ConstructL();
+ CleanupStack::Pop(p);
+ return p;
+ }
+
+// ----------------------------------------------------------------------------
+// Destructor
+// ----------------------------------------------------------------------------
+//
+CMPXInMemoryPlugin::~CMPXInMemoryPlugin()
+ {
+ delete iDrmMediaUtility;
+
+ // Cleanup Arrays
+ iTemporaryData.ResetAndDestroy();
+ iTemporaryData.Close();
+ iEmbeddedContext.Reset();
+ iEmbeddedContext.Close();
+ }
+
+// ----------------------------------------------------------------------------
+// Constructor
+// ----------------------------------------------------------------------------
+//
+CMPXInMemoryPlugin::CMPXInMemoryPlugin()
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave.
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::ConstructL()
+ {
+ iDrmMediaUtility = CMPXDrmMediaUtility::NewL();
+ }
+
+// ----------------------------------------------------------------------------
+// Navigates to the given path
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::OpenL(
+ const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& /*aAttrs*/,
+ CMPXFilter* /*aFilter*/)
+ {
+ // Media object to return
+ RArray<TInt> supportedIds;
+ CleanupClosePushL(supportedIds);
+ supportedIds.AppendL(KMPXMediaIdContainer);
+ supportedIds.AppendL(KMPXMediaIdGeneral);
+ CMPXMedia* entries=CMPXMedia::NewL(supportedIds.Array());
+ CleanupStack::PushL(entries);
+
+ // Media array for items
+ CMPXMediaArray* array=CMPXMediaArray::NewL();
+ CleanupStack::PushL(array);
+
+ // Based on Path, what is the embedded client context id?
+ TInt depth = aPath.Levels();
+ TBool oneSong = EFalse;
+ TInt err = KErrNone;
+ switch( depth )
+ {
+ case 1: // should not have anything
+ {
+ User::Leave( KErrArgument );
+ break;
+ }
+ case 2: // an item or a playlist
+ {
+ TInt context = aPath.Id(1);
+ TInt contextIndex = iEmbeddedContext.Find( context );
+ if( contextIndex >= KErrNone )
+ {
+ CMPXMedia& media = *iTemporaryData[contextIndex];
+
+ TMPXGeneralCategory cat = *media.Value<TMPXGeneralCategory>( KMPXMediaGeneralCategory );
+ if( cat == EMPXPlaylist )
+ {
+ const CMPXMediaArray* plarray = media.Value<CMPXMediaArray>( KMPXMediaArrayContents );
+ for( TInt i=0; i<plarray->Count(); ++i )
+ {
+ CMPXMedia* item = (*plarray)[i];
+ CMPXMedia* copy = CMPXMedia::NewL(*item);
+
+ // item id is the index in the array
+ copy->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, i );
+ array->AppendL( copy ); // ownership x-fer
+ }
+
+
+ // Insert dummy media objects if the "specified" count is > actual
+ // number of media objects
+ TInt count(0);
+ if( media.IsSupported(KMPXMediaArrayCount) )
+ {
+ count = *media.Value<TInt>(KMPXMediaArrayCount);
+ }
+ if( count > 0 && count > plarray->Count() )
+ {
+ for( TInt i=plarray->Count(); i<count; ++i )
+ {
+ // Insert dummies
+ CMPXMedia* copy = CMPXMedia::NewL();
+ copy->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, i );
+ copy->SetTObjectValueL( KMPXMediaGeneralType,
+ EMPXItem );
+ copy->SetTObjectValueL( KMPXMediaGeneralCategory,
+ EMPXSong );
+ array->AppendL( copy ); // ownership x-fer
+ }
+ }
+
+ // Set the title for the playlist
+ //
+ if( media.IsSupported( KMPXMediaGeneralTitle ) )
+ {
+ const TDesC& title = media.ValueText( KMPXMediaGeneralTitle );
+ entries->SetTextValueL( KMPXMediaGeneralTitle,
+ title );
+ }
+ }
+ else // assume it is an item then
+ {
+ // Set one song to true
+ oneSong = ETrue;
+ }
+ }
+ else
+ {
+ err = KErrNotFound;
+ }
+ break;
+ }
+ case 3: // item in a playlist
+ {
+ oneSong = ETrue;
+ break;
+ }
+ default:
+ break;
+ }
+
+ // Set array if not one song
+ if( !oneSong )
+ {
+ entries->SetCObjectValueL(KMPXMediaArrayContents,array);
+ entries->SetTObjectValueL(KMPXMediaArrayCount,
+ array->Count());
+ entries->SetTObjectValueL( KMPXMediaGeneralType,
+ EMPXGroup );
+ entries->SetTObjectValueL( KMPXMediaGeneralCategory,
+ EMPXPlaylist );
+ }
+ else
+ {
+ entries->SetTObjectValueL( KMPXMediaGeneralType,
+ EMPXItem );
+ entries->SetTObjectValueL( KMPXMediaGeneralCategory,
+ EMPXSong );
+ }
+
+ if(oneSong)
+ {
+ iObs->HandleOpen(const_cast<CMPXCollectionPath*>(&aPath), err );
+ }
+ else
+ {
+ entries->SetCObjectValueL( KMPXMediaGeneralContainerPath,
+ const_cast<CMPXCollectionPath*>(&aPath) );
+ iObs->HandleOpen(entries, err );
+ }
+ CleanupStack::PopAndDestroy(array);
+ CleanupStack::PopAndDestroy(entries);
+ CleanupStack::PopAndDestroy(&supportedIds);
+ }
+
+// ----------------------------------------------------------------------------
+// Extended properties of the current file (async)
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::MediaL (
+ const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& aAttrs,
+ const TArray<TCapability>& /*aCaps*/,
+ CMPXAttributeSpecs* /*aSpecs*/)
+ {
+ RArray<TInt> supportedIds;
+ CleanupClosePushL(supportedIds);
+ supportedIds.AppendL(KMPXMediaIdGeneral);
+ CMPXMedia* entries=CMPXMedia::NewL(supportedIds.Array());
+ CleanupStack::PopAndDestroy(&supportedIds);
+ CleanupStack::PushL(entries);
+
+ // Based on Path, what is the embedded client context id?
+ //
+ TInt err = KErrNone;
+ TInt depth = aPath.Levels();
+ switch( depth )
+ {
+ case 2: // Playlist / Song level
+ case 3: // Song in a playlist level, fall through
+ {
+ TInt context = aPath.Id(1);
+ TInt contextIndex = iEmbeddedContext.Find( context );
+ if( contextIndex >= KErrNone )
+ {
+ CMPXMedia& media = *iTemporaryData[contextIndex];
+
+ TMPXGeneralCategory cat;
+ cat = *media.Value<TMPXGeneralCategory>( KMPXMediaGeneralCategory );
+
+ // Playlist media
+ //
+ if( cat == EMPXPlaylist && depth == 2)
+ {
+ // Get
+ const TDesC& title = media.ValueText( KMPXMediaGeneralTitle );
+ const TDesC& uri = media.ValueText( KMPXMediaGeneralUri );
+ // Set
+ entries->SetTextValueL( KMPXMediaGeneralTitle,
+ title );
+ entries->SetTextValueL( KMPXMediaGeneralUri,
+ uri );
+ entries->SetTObjectValueL<TUid>(KMPXMediaGeneralCollectionId,
+ TUid::Uid(KIMPluginUid) );
+ }
+ // Item in a playlist media
+ //
+ else if( cat == EMPXPlaylist && depth == 3 )
+ {
+ const CMPXMediaArray* plarray = media.Value<CMPXMediaArray>(
+ KMPXMediaArrayContents );
+ TInt selection = aPath.Id( 2 );
+ TInt count = plarray->Count();
+ if( selection < count )
+ {
+ *entries = *(*plarray)[selection];
+
+ entries->SetTObjectValueL<TUid>(KMPXMediaGeneralCollectionId,
+ TUid::Uid(KIMPluginUid) );
+ }
+ else
+ {
+ // Bounds check
+ err = KErrArgument;
+ }
+ }
+ // Otherwise, assume it is a song
+ //
+ else // cat == song/image/video/etc
+ {
+ *entries = media;
+
+ entries->SetTObjectValueL<TUid>(KMPXMediaGeneralCollectionId,
+ TUid::Uid(KIMPluginUid) );
+ }
+ }
+ break;
+ }
+ default:
+ {
+ // Return Nothing because a MediaL at this depth contains nothing
+ break;
+ }
+ }
+ //
+ for (TInt i=aAttrs.Count();--i>=0;)
+ {
+ if (aAttrs[i]==KMPXMediaGeneralPath)
+ {
+ entries->SetCObjectValueL(KMPXMediaGeneralPath,
+ const_cast<CMPXCollectionPath*>(&aPath));
+ break;
+ }
+ }
+
+ // Full metadata is not available from this plugin
+ entries->SetTObjectValueL( KMPXMediaColDetailMediaNotAvailable,
+ ETrue );
+ //
+ iObs->HandleMedia(entries, err );
+ CleanupStack::PopAndDestroy(entries);
+ }
+
+// ----------------------------------------------------------------------------
+// Cancel outstanding request
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::CancelRequest()
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// Executes a command on the selected collection
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::CommandL(TMPXCollectionCommand /*aCmd*/, TInt /*aArg*/)
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// Executes a command on the selected collection
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::CommandL(CMPXCommand& aCmd)
+ {
+ if (!aCmd.IsSupported(TMPXAttribute(KMPXCommandContentIdGeneral, EMPXCommandGeneralId)))
+ {
+ User::Leave(KErrArgument);
+ }
+
+ TMPXCommandId commandId =
+ *aCmd.Value<TMPXCommandId>(
+ TMPXAttribute(KMPXCommandContentIdGeneral, EMPXCommandGeneralId));
+
+ TBool syncOp(EFalse);
+ if( aCmd.IsSupported(KMPXCommandGeneralDoSync) )
+ {
+ syncOp = *aCmd.Value<TBool>(KMPXCommandGeneralDoSync);
+ }
+
+ // Handle each operation
+ //
+ switch( commandId )
+ {
+ case KMPXCommandIdCollectionAdd:
+ {
+ DoAddL( *aCmd.Value<CMPXMedia>(KMPXCommandColAddMedia) );
+ break;
+ }
+ case KMPXCommandIdCollectionSet:
+ {
+ DoSetL( *aCmd.Value<CMPXMedia>(KMPXCommandColSetMedia) );
+ break;
+ }
+ default:
+ {
+ User::Leave(KErrNotSupported);
+ }
+ }
+
+ // Complete Async operations
+ //
+ if( !syncOp )
+ {
+ iObs->HandleCommandComplete( NULL, KErrNone );
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// Adds item(s) to the collection
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::AddL(
+ const CMPXMedia& aNewMedia)
+ {
+ DoAddL( aNewMedia );
+ }
+
+// ----------------------------------------------------------------------------
+// Remove by collection path
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::RemoveL(const CMPXCollectionPath& aPath )
+ {
+ (void) aPath;
+ }
+
+// ----------------------------------------------------------------------------
+// Remove an item or items under a group from the collection
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::RemoveL(const CMPXMedia& aMedia)
+ {
+ (void)aMedia;
+ }
+
+// ----------------------------------------------------------------------------
+// Sets/updates the media for the item
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::SetL(
+ const CMPXMedia& aMedia)
+ {
+ DoSetL( aMedia );
+ }
+
+// ----------------------------------------------------------------------------
+// Find based on media properties
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::FindAllL(const CMPXMedia& aMedia,
+ const TArray<TMPXAttribute>& aAttrs )
+ {
+ (void)aMedia;
+ (void)aAttrs;
+ }
+
+// ----------------------------------------------------------------------------
+// Find based on media properties
+// ----------------------------------------------------------------------------
+//
+CMPXMedia* CMPXInMemoryPlugin::FindAllSyncL(const CMPXMedia& aMedia,
+ const TArray<TMPXAttribute>& aAttrs )
+ {
+ (void)aMedia;
+ (void)aAttrs;
+ User::Leave(KErrNotSupported);
+ return NULL;
+ }
+
+// ----------------------------------------------------------------------------
+// Find the capabilities of this plugin
+// ----------------------------------------------------------------------------
+//
+TCollectionCapability CMPXInMemoryPlugin::GetCapabilities()
+ {
+ return 0; // nothing special supported
+ }
+
+// ----------------------------------------------------------------------------------------------------------
+// Handle change
+// ----------------------------------------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::HandleChangeL(const TMPXItemId& aId, TMPXChangeEventType aChange )
+ {
+ // Construct the message
+ //
+ CMPXMessage* message = CMPXMedia::NewL();
+ CleanupStack::PushL( message );
+
+ // Set attributes
+ //
+ message->SetTObjectValueL<TMPXMessageId>(KMPXMessageGeneralId, KMPXMessageIdItemChanged);
+
+ message->SetTObjectValueL<TUid>(KMPXMessageCollectionId, TUid::Uid(KIMPluginUid));
+
+ message->SetTObjectValueL<TMPXChangeEventType>(KMPXMessageChangeEventType, aChange);
+
+ message->SetTObjectValueL<TMPXItemId>(KMPXMessageMediaGeneralId, aId);
+
+ // Callback to observer and destroy
+ //
+ iObs->HandleMessage( *message );
+ CleanupStack::PopAndDestroy( message );
+ }
+
+// ----------------------------------------------------------------------------
+// Adds item(s) to the collection
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::DoAddL(
+ const CMPXMedia& aNewMedia)
+ {
+ TInt context = *aNewMedia.Value<TInt>( TMPXAttribute(KMPXMediaIdGeneral,
+ EMPXMediaGeneralId ) );
+
+ // Only 1 set of data per embedded context
+ TInt index = iEmbeddedContext.Find( context );
+ if( index != KErrNotFound )
+ {
+ iEmbeddedContext.Remove( index );
+ iTemporaryData.Remove( index );
+ iEmbeddedContext.Compress();
+ iTemporaryData.Compress();
+ }
+ // Push onto list
+ iEmbeddedContext.Append( context );
+
+ CMPXMedia* copy = CMPXMedia::NewL();
+ *copy = aNewMedia;
+ iTemporaryData.AppendL( copy ); // ownership transferred.
+ }
+
+// ----------------------------------------------------------------------------
+// Sets/updates the media for the item
+// ----------------------------------------------------------------------------
+//
+void CMPXInMemoryPlugin::DoSetL(
+ const CMPXMedia& aMedia)
+ {
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL <---");
+ if( !aMedia.IsSupported(KMPXMediaGeneralId) )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ TInt context = *aMedia.Value<TMPXItemId>(KMPXMediaGeneralId);
+ TInt index = iEmbeddedContext.Find( context );
+
+ MPX_DEBUG2("CMPXInMemoryPlugin::DoSetL index %i", index);
+ if( index != KErrNotFound )
+ {
+ TMPXAttribute att( KMPXMediaArrayContents );
+
+ // Make sure it has a media array
+ //
+ if( aMedia.IsSupported( att ) )
+ {
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 1");
+
+ // Grab the 2 media arrays
+ //
+ CMPXMediaArray* currentMedia =
+ const_cast<CMPXMediaArray*>(iTemporaryData[index]->Value<CMPXMediaArray>(att));
+ const CMPXMediaArray* newMedia = aMedia.Value<CMPXMediaArray>(att);
+
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 2");
+ // Copy all entries from newMedia into currentMedia
+ //
+ TInt newCount = newMedia->Count();
+ for( TInt i=0; i<newCount; ++i )
+ {
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 3");
+ CMPXMedia* copy = CMPXMedia::NewL(*(*newMedia)[i]);
+ CleanupStack::PushL( copy );
+
+ // If the item contains an item ID, we use it as an index to insert
+ // into the array, otherwise, append item to the end
+ //
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 4");
+ if( copy->IsSupported(KMPXMediaGeneralId) )
+ {
+ TInt index = *copy->Value<TMPXItemId>(KMPXMediaGeneralId);
+ MPX_DEBUG2("CMPXInMemoryPlugin::DoSetL index count %i", index);
+ // index is 0th based, like an array
+ //
+ TInt currentCount = currentMedia->Count();
+ if( index > currentCount )
+ {
+ // Fill in blanks then append the item we want
+ //
+ for( TInt j=currentCount; j<index; ++j )
+ {
+ CMPXMedia* blank = CMPXMedia::NewL();
+ CleanupStack::PushL( blank );
+ currentMedia->AppendL( blank ); // ownership xfer
+ CleanupStack::Pop( blank );
+ }
+ currentMedia->AppendL( copy ); // ownership xfer
+ }
+ else
+ {
+ // Replace item at index with this new version
+ //
+ currentMedia->Remove(index);
+ currentMedia->Insert( copy, index ); // ownership xfer
+ }
+ }
+ else
+ {
+ currentMedia->AppendL( copy ); // ownership xfer
+ }
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 5");
+ CleanupStack::Pop(copy);
+ }
+
+ // Set the new array into the media
+ //
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 6");
+ iTemporaryData[index]->SetCObjectValueL(att, currentMedia );
+
+ // Tell collection client context that something was added
+ //
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 7");
+ HandleChangeL( context, EMPXItemInserted );
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL 8");
+ }
+ }
+ else
+ {
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL KErrArgument");
+ User::Leave( KErrArgument );
+ }
+ MPX_DEBUG1("CMPXInMemoryPlugin::DoSetL --->");
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/src/mpxinmemorypluginproxy.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* 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: Standard proxy of the ECOM plugin
+*
+*/
+
+
+#include <implementationproxy.h>
+#include "mpxinmemoryplugin.h"
+#include "mpxmusicmemoryplugin.h"
+
+#if (!defined IMPLEMENTATION_PROXY_ENTRY)
+typedef TAny* TProxyNewLPtr;
+#define IMPLEMENTATION_PROXY_ENTRY(aUid,aFuncPtr)
+ {{aUid},(TProxyNewLPtr)(aFuncPtr)}
+#endif
+
+// ----------------------------------------------------------------------------
+// The list of implementations
+// ----------------------------------------------------------------------------
+//
+const TImplementationProxy ImplementationTable[] =
+ { IMPLEMENTATION_PROXY_ENTRY(0x101FFCD8, CMPXInMemoryPlugin::NewL),
+ IMPLEMENTATION_PROXY_ENTRY(0x10282960, CMPXMusicMemoryPlugin::NewL) };
+
+// ----------------------------------------------------------------------------
+// The proxy of implementations
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+ TInt& aTableCount)
+ {
+ aTableCount=sizeof(ImplementationTable)/sizeof(TImplementationProxy);
+ return ImplementationTable;
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpserviceplugins/mpxinmemoryplugin/src/mpxmusicmemoryplugin.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,432 @@
+/*
+* 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: Music specific memory plugin
+*
+*/
+
+
+#include <e32base.h>
+#include <f32file.h>
+#include <badesca.h>
+#include <apgcli.h>
+#include <mpxcollectiontype.h>
+#include <mpxcollectionpath.h>
+#include <mpxmediageneraldefs.h>
+#include <mpxmediamusicdefs.h>
+#include <mpxmediaaudiodefs.h>
+#include <mpxmediacontainerdefs.h>
+#include <mpxmediadrmdefs.h>
+#include <mpxmediaarray.h>
+#include <mpxcollectionpluginobserver.h>
+#include <mpxdrmmediautility.h>
+
+#include <mpxmetadataextractor.h>
+#include "mpxmusicmemoryplugin.h"
+
+// CONSTANTS
+const TInt KIMMusicPluginUid = 0x10282960;
+const TMPXAttributeData KMPXMediaFetched = {KIMMusicPluginUid, 0x01}; // TInt
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Default Constructor
+// ---------------------------------------------------------------------------
+//
+CMPXMusicMemoryPlugin::CMPXMusicMemoryPlugin()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// 2nd phased constructor
+// ---------------------------------------------------------------------------
+//
+void CMPXMusicMemoryPlugin::ConstructL()
+ {
+ User::LeaveIfError( iFs.Connect() );
+ User::LeaveIfError( iAppArc.Connect() );
+ RPointerArray<CMPXCollectionType> dummy;
+ CleanupClosePushL( dummy );
+ iMetadataExtractor = CMPXMetadataExtractor::NewL( iFs, iAppArc, dummy );
+ dummy.ResetAndDestroy();
+ CleanupStack::PopAndDestroy( &dummy );
+
+ iAttributes.AppendL(KMPXMediaDrmAll);
+
+ // Base class construction
+ CMPXInMemoryPlugin::ConstructL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor
+// ---------------------------------------------------------------------------
+//
+CMPXMusicMemoryPlugin* CMPXMusicMemoryPlugin::NewL()
+ {
+ CMPXMusicMemoryPlugin* self = new(ELeave) CMPXMusicMemoryPlugin();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Virtual destructor
+// ---------------------------------------------------------------------------
+//
+CMPXMusicMemoryPlugin::~CMPXMusicMemoryPlugin()
+ {
+ iFs.Close();
+ iAppArc.Close();
+ delete iMetadataExtractor;
+ iAttributes.Close();
+ }
+
+
+// ----------------------------------------------------------------------------
+// Extended properties of the current file (async)
+// ----------------------------------------------------------------------------
+//
+void CMPXMusicMemoryPlugin::MediaL (
+ const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& aAttrs,
+ const TArray<TCapability>& /*aCaps*/,
+ CMPXAttributeSpecs* /*aSpecs*/)
+ {
+ RArray<TInt> supportedIds;
+ CleanupClosePushL(supportedIds);
+ supportedIds.AppendL(KMPXMediaIdGeneral);
+ CMPXMedia* entries=CMPXMedia::NewL(supportedIds.Array());
+ CleanupStack::PopAndDestroy(&supportedIds);
+ CleanupStack::PushL(entries);
+
+ // Based on Path, what is the embedded client context id?
+ //
+ TInt err = KErrNone;
+ TInt depth = aPath.Levels();
+ switch( depth )
+ {
+ case 2: // Playlist / Song level
+ case 3: // Song in a playlist level, fall through
+ {
+ TInt context = aPath.Id(1);
+ TInt contextIndex = iEmbeddedContext.Find( context );
+ if( contextIndex >= KErrNone )
+ {
+ CMPXMedia& media = *iTemporaryData[contextIndex];
+
+ TMPXGeneralCategory cat;
+ cat = *media.Value<TMPXGeneralCategory>(KMPXMediaGeneralCategory);
+
+ // Playlist media
+ //
+ if( cat == EMPXPlaylist && depth == 2)
+ {
+ // Get
+ const TDesC& title = media.ValueText( KMPXMediaGeneralTitle );
+ const TDesC& uri = media.ValueText( KMPXMediaGeneralUri );
+ // Set
+ entries->SetTextValueL( KMPXMediaGeneralTitle, title );
+ entries->SetTextValueL( KMPXMediaGeneralUri, uri );
+ entries->SetTObjectValueL<TUid>(KMPXMediaGeneralCollectionId,
+ TUid::Uid(KIMMusicPluginUid) );
+ }
+ // Item in a playlist media
+ //
+ else if( cat == EMPXPlaylist && depth == 3 )
+ {
+ const CMPXMediaArray* plarray = media.Value<CMPXMediaArray>(KMPXMediaArrayContents);
+ TInt selection = aPath.Id(2);
+ TInt count = plarray->Count();
+ if( selection < count )
+ {
+ if( (*plarray)[selection]->IsSupported(KMPXMediaFetched) )
+ {
+ *entries = *(*plarray)[selection];
+ }
+ else // not fetched yet
+ {
+ // Extract the data
+ const TDesC& uri = (*plarray)[selection]->ValueText( KMPXMediaGeneralUri );
+ CMPXMedia* metadata = ExtractMetadataL( uri, iAttributes.Array() );
+ CleanupStack::PushL( metadata );
+
+ // Return to client
+ *entries = *metadata;
+
+ // Save the data
+ *(*plarray)[selection] = *metadata;
+ (*plarray)[selection]->SetTObjectValueL(KMPXMediaFetched, ETrue);
+
+ CleanupStack::PopAndDestroy( metadata );
+ }
+ entries->SetTObjectValueL<TUid>( KMPXMediaGeneralCollectionId,
+ TUid::Uid(KIMMusicPluginUid) );
+ }
+ else
+ {
+ // Bounds check
+ err = KErrArgument;
+ }
+ }
+ // Otherwise, assume it is a song
+ //
+ else // cat == song/image/video/etc
+ {
+ if( media.IsSupported(KMPXMediaFetched) )
+ {
+ *entries = media;
+ }
+ else
+ {
+ const TDesC& uri = media.ValueText( KMPXMediaGeneralUri );
+ CMPXMedia* metadata = ExtractMetadataL( uri, iAttributes.Array() );
+ CleanupStack::PushL( metadata );
+ // Return to client
+ *entries = *metadata;
+
+ //Save the data
+ media = *metadata;
+ media.SetTObjectValueL(KMPXMediaFetched, ETrue);
+
+ CleanupStack::PopAndDestroy( metadata );
+ }
+ entries->SetTObjectValueL<TUid>( KMPXMediaGeneralCollectionId,
+ TUid::Uid(KIMMusicPluginUid) );
+ }
+ }
+ break;
+ }
+ default:
+ {
+ // Return Nothing because a MediaL at this depth contains nothing
+ break;
+ }
+ }
+ // Copy Path
+ TMPXAttribute pathAttr(KMPXMediaGeneralPath);
+ for (TInt i=aAttrs.Count();--i>=0;)
+ {
+ if (aAttrs[i]==pathAttr)
+ {
+ entries->SetCObjectValueL(pathAttr,
+ const_cast<CMPXCollectionPath*>(&aPath));
+ break;
+ }
+ }
+ // Callback to collection client context
+ iObs->HandleMedia( entries, err );
+ CleanupStack::PopAndDestroy(entries);
+ }
+
+// ----------------------------------------------------------------------------------------------------------
+// Set all the attributes in CMPXMedia corresponding to KMPXMediaIdDrm
+// ----------------------------------------------------------------------------------------------------------
+//
+CMPXMedia* CMPXMusicMemoryPlugin::ExtractMetadataL( const TDesC& aUri,
+ const TArray<TMPXAttribute>& aAttrs )
+ {
+ CMPXMedia* media( NULL );
+ iMetadataExtractor->CreateMediaL( aUri, media, ETrue );
+
+ // Also set drm
+ if( media )
+ {
+ CleanupStack::PushL( media );
+ DoSetMediaDrmL( *media, aAttrs, aUri );
+ CleanupStack::Pop( media );
+ }
+ return media; // ownership transferred
+ }
+
+// ----------------------------------------------------------------------------------------------------------
+// Set all the attributes in CMPXMedia corresponding to KMPXMediaIdDrm
+// ----------------------------------------------------------------------------------------------------------
+//
+void CMPXMusicMemoryPlugin::DoSetMediaDrmL(CMPXMedia& aMedia,
+ const TArray<TMPXAttribute>& aAttrs,
+ const TDesC& aLocation )
+ {
+ // Gather all DRM attributes
+ TUint aDrmAttributes(0);
+ for( TInt i=0; i<aAttrs.Count(); ++i )
+ {
+ if( aAttrs[i].ContentId() == KMPXMediaIdDrm )
+ {
+ aDrmAttributes |= aAttrs[i].AttributeId();
+ }
+ }
+
+ iDrmMediaUtility->InitL(aLocation);
+ const CMPXMedia* drmMedia( iDrmMediaUtility->GetMediaL( aDrmAttributes ));
+
+ // Only get attributes if it's a DRM file
+ if ( drmMedia )
+ {
+ if ( aDrmAttributes & KMPXMediaDrmType.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmType );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt val( *drmMedia->Value<TInt>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmRightsStatus.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmRightsStatus );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt val( *drmMedia->Value<TInt>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmRightsType.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmRightsType );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt val( *drmMedia->Value<TInt>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmCount.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmCount );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt val( *drmMedia->Value<TInt>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmProtected.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmProtected );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TBool val( *drmMedia->Value<TBool>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmSendingAllowed.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmSendingAllowed );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TBool val( *drmMedia->Value<TBool>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmCanSetAutomated.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmCanSetAutomated );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TBool val( *drmMedia->Value<TBool>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmHasInfoUrl.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmHasInfoUrl );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TBool val( *drmMedia->Value<TBool>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmHasPreviewUrl.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmHasPreviewUrl );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TBool val( *drmMedia->Value<TBool>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmAboutToExpire.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmAboutToExpire );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TBool val( *drmMedia->Value<TBool>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmStartTime.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmStartTime );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt64 val( *drmMedia->Value<TInt64>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmEndTime.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmEndTime );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt64 val( *drmMedia->Value<TInt64>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmIntervalStartTime.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmIntervalStartTime );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt64 val( *drmMedia->Value<TInt64>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmAccumulatedTime.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm,
+ EMPXMediaDrmAccumulatedTime );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TInt64 val( *drmMedia->Value<TInt64>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ if ( aDrmAttributes & KMPXMediaDrmInterval.iAttributeId )
+ {
+ TMPXAttribute mpxAtt( KMPXMediaIdDrm, EMPXMediaDrmInterval );
+ if ( drmMedia->IsSupported( mpxAtt ))
+ {
+ TTimeIntervalSeconds val(
+ *drmMedia->Value<TTimeIntervalSeconds>( mpxAtt ));
+ aMedia.SetTObjectValueL( mpxAtt, val );
+ }
+ }
+ }
+ iDrmMediaUtility->Close();
+ }
+// END OF FILE
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionalbumartmanager.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionalbumartmanager.h Fri Apr 16 14:56:30 2010 +0300
@@ -20,13 +20,11 @@
#define MPCOLLECTIONALBUMARTMANAGER_H
#include <QObject>
-#include <QHash>
-#include <QMap>
-#include <QQueue>
-#include <QPair>
-#include <QBitmap>
-#include <hbicon.h>
+#include <QCache>
+#include <QIcon>
+#include <QList>
+class MpMpxCollectionData;
class ThumbnailManager;
class MpCollectionAlbumArtManager : public QObject
@@ -35,31 +33,34 @@
public:
- explicit MpCollectionAlbumArtManager( QObject *parent=0 );
+ explicit MpCollectionAlbumArtManager( MpMpxCollectionData *data, QObject *parent=0 );
virtual ~MpCollectionAlbumArtManager();
- HbIcon albumArt( const QString &albumArtUri, int index );
- bool cacheAlbumArt( const QStringList albumArtList );
+ const QIcon* albumArt( int index );
+ void cacheFirstScreen();
void cancel();
signals:
void albumArtReady( int index );
- void albumCacheReady();
public slots:
- void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+ void thumbnailReady( QPixmap pixmap, void *data, int id, int error );
private:
+ MpMpxCollectionData *mCollectionData;
ThumbnailManager *mThumbnailManager;
- QHash<QString, HbIcon> mImageCache;
- QMap<int, QString> mTnmReqMap;
+ QCache<int, QIcon> mImageCache;
bool mCachingInProgress;
- QQueue< QPair<QString, int> > mRequestQueue;
- int mRequestCount;
+ QIcon *mDefaultIcon;
+
+ QList<int> mRequestQueue;
+ bool mPendingRequest;
+ int mRequestId;
+
};
#endif // MPCOLLECTIONALBUMARTMANAGER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontaineralbums.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player collection container definition - Artists.
+*
+*/
+
+#ifndef MPCOLLECTIONCONTAINERALBUMS_H
+#define MPCOLLECTIONCONTAINERALBUMS_H
+
+#include "mpcollectionlistcontainer.h"
+
+class HbGroupBox;
+
+class MpCollectionContainerAlbums : public MpCollectionListContainer
+{
+ Q_OBJECT
+
+public:
+
+ explicit MpCollectionContainerAlbums( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
+ virtual ~MpCollectionContainerAlbums();
+
+public slots:
+
+ void itemActivated( const QModelIndex &index );
+
+private:
+
+ void setupContainer();
+
+private:
+
+ HbGroupBox *mInfoBar; // Own
+
+ QString mArtist;
+ QString mAlbum;
+
+};
+
+#endif // MPCOLLECTIONCONTAINERALBUMS_H
+
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerallsongs.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerallsongs.h Fri Apr 16 14:56:30 2010 +0300
@@ -20,7 +20,7 @@
#include "mpcollectionlistcontainer.h"
-class MpCollectionInfoBar;
+class HbGroupBox;
class MpCollectionContainerAllSongs : public MpCollectionListContainer
{
@@ -37,7 +37,7 @@
private:
- MpCollectionInfoBar *mInfoBar;
+ HbGroupBox *mInfoBar; // Own
};
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerartists.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +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 - Artists.
-*
-*/
-
-#ifndef MPCOLLECTIONCONTAINERARTISTS_H
-#define MPCOLLECTIONCONTAINERARTISTS_H
-
-#include "mpcollectionlistcontainer.h"
-
-class MpCollectionInfoBar;
-
-class MpCollectionContainerArtists : public MpCollectionListContainer
-{
- Q_OBJECT
-
-public:
-
- explicit MpCollectionContainerArtists( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
- virtual ~MpCollectionContainerArtists();
-
-public slots:
-
- void itemActivated( const QModelIndex &index );
-
-private:
-
- void setupContainer();
-
-private:
-
- MpCollectionInfoBar *mInfoBar;
- bool mListInitialized;
-
- QString mArtist;
- QString mAlbum;
-
-};
-
-#endif // MPCOLLECTIONCONTAINERARTISTS_H
-
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerplaylists.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioncontainerplaylists.h Fri Apr 16 14:56:30 2010 +0300
@@ -20,7 +20,7 @@
#include "mpcollectionlistcontainer.h"
-class MpCollectionInfoBar;
+class HbGroupBox;
class MpCollectionContainerPlaylists : public MpCollectionListContainer
{
@@ -37,8 +37,7 @@
private:
- MpCollectionInfoBar *mInfoBar;
- bool mListInitialized;
+ HbGroupBox *mInfoBar; // Own
};
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectiondatamodel.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectiondatamodel.h Fri Apr 16 14:56:30 2010 +0300
@@ -35,21 +35,28 @@
int rowCount(const QModelIndex &parent=QModelIndex()) const;
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const;
-
- void refreshModel();
+ Qt::DropActions supportedDropActions() const;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ QStringList mimeTypes() const;
+ QMimeData *mimeData(const QModelIndexList &indexes) const;
+ bool dropMimeData(const QMimeData *data, Qt::DropAction action,
+ int row, int column, const QModelIndex &parent);
+
MpMpxCollectionData *collectionData();
+
+signals:
+ void orderChanged( int containerId, int itemId, int itemOrdinal, int newOrdinal );
public slots:
void updateAlbumArt( int index );
- void albumCacheReady();
+ void refreshModel();
private:
MpMpxCollectionData *mCollectionData;
MpCollectionAlbumArtManager *mAlbumArtManager; // Own
int mRowCount;
- bool mCachingInProgress;
};
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectioninfobar.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +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 information bar.
-*
-*/
-
-#ifndef MPCOLLECTIONINFOBAR_H
-#define MPCOLLECTIONINFOBAR_H
-
-
-#include <hbwidget.h>
-
-class HbLabel;
-class HbDocumentLoader;
-
-class MpCollectionInfoBar : public HbWidget
-{
- Q_OBJECT
-
-public:
-
- explicit MpCollectionInfoBar( QGraphicsItem *parent=0 );
- virtual ~MpCollectionInfoBar();
-
- void setText( const QString &textLeft );
- void setText( const QString &textLeft, const QString &textRight );
- void paint( QPainter *painter, const QStyleOptionGraphicsItem *option,
- QWidget *widget=0 );
-
-public slots:
-
- void orientationChange( Qt::Orientation orientation );
-
-private:
-
- HbDocumentLoader *mDocumentLoader; // Own
- HbWidget *mContainer; // Own
- HbLabel *mTextLeft;
- HbLabel *mTextRight;
- bool mSingleText;
- Qt::Orientations mOrientation;
-
-};
-
-#endif // MPCOLLECTIONINFOBAR_H
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionlistcontainer.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionlistcontainer.h Fri Apr 16 14:56:30 2010 +0300
@@ -22,13 +22,14 @@
#include <QObject>
#include <hbwidget.h>
-#include <hbeffect.h>
#include "mpcollectioncontainer.h"
#include "mpmpxcollectionviewdefs.h"
class HbListView;
class HbAbstractViewItem;
+class HbLabel;
+class HbIndexFeedback;
class MpCollectionListContainer : public MpCollectionContainer
{
@@ -46,20 +47,19 @@
virtual void itemActivated( const QModelIndex &index );
virtual void onLongPressed(HbAbstractViewItem *listViewItem, const QPointF &coords);
- void itemChosenFxComplete1( const HbEffect::EffectStatus &status );
- void itemChosenFxComplete2( const HbEffect::EffectStatus &status );
protected:
explicit MpCollectionListContainer( HbDocumentLoader *loader, QGraphicsItem *parent=0 );
virtual void initializeList();
+ void setupEmptyListContainer();
protected:
HbListView *mList;
- QModelIndex mChosenIndex;
- bool mEffectOnGoing;
+ HbLabel *mNoMusic;
+ HbIndexFeedback *mIndexFeedback;
};
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionsongscanner.h Fri Mar 19 09:28:13 2010 +0200
+++ /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: Music Player collection song scanner.
-*
-*/
-
-
-#ifndef MPCOLLECTIONSONGSCANNER_H
-#define MPCOLLECTIONSONGSCANNER_H
-
-class MpMpxFrameworkWrapper;
-class HbProgressNote;
-
-#include <QObject>
-
-class MpCollectionSongScanner : public QObject
-{
- Q_OBJECT
-
-public:
-
- explicit MpCollectionSongScanner( MpMpxFrameworkWrapper *wrapper, QObject *parent=0 );
- virtual ~MpCollectionSongScanner();
-
- void scan();
- bool isScanning();
-
-signals:
-
- void scanEnded();
-
-public slots:
-
- void cancelScan();
- void handleScanStarted();
- void handleScanEnded();
- void handleScanCountChanged(int count);
-
-private:
-
- MpMpxFrameworkWrapper *mMpxWrapper; // NotOwn
- TBool mScanning;
- HbProgressNote *mScanProgressNote; // Own
-
-};
-
-#endif // MPCOLLECTIONSONGSCANNER_H
-
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionview.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpcollectionview.h Fri Apr 16 14:56:30 2010 +0300
@@ -35,11 +35,13 @@
class MpCollectionContainerFactory;
class MpCollectionContainer;
class MpCollectionDataModel;
+class MpEngine;
class MpMpxFrameworkWrapper;
class MpMpxCollectionData;
class MpNowPlayingWidget;
class MpSnapshotWidget;
-class MpCollectionSongScanner;
+class QTranslator;
+class HbPopup;
class MpCollectionView : public MpViewBase
{
@@ -53,6 +55,7 @@
void initializeView();
void activateView();
void deactivateView();
+ void setDefaultView();
void orientationChange( Qt::Orientation orientation );
@@ -78,9 +81,6 @@
void startPlaybackView();
void attachNowPlayingBanner( bool active );
- void nowPlayingBannerActivated();
- void nowPlayingBannerChosenFxComplete1( const HbEffect::EffectStatus &status );
- void nowPlayingBannerChosenFxComplete2( const HbEffect::EffectStatus &status );
void containerTransitionComplete( const HbEffect::EffectStatus &status );
void shufflePlayAll();
@@ -93,9 +93,17 @@
void songsDeleted( bool success );
void playlistsRenamed( bool success );
- void handleScanningComplete();
+ void prepareToAddToPlaylist();
+ void handleIsolatedCollectionOpened( MpMpxCollectionData* collectionData );
+ void addToCurrentPlaylist( MpMpxCollectionData* collectionData );
+ void createNewPlaylist( MpMpxCollectionData* collectionData );
+ void arrangeSongs();
+ void openContextMenu( int index, const QPointF &coords );
+ void outstandingPopupClosing();
- void openContextMenu( int index, const QPointF &coords );
+ void handleUsbBlocked( bool blocked );
+ void handleLibraryAboutToUpdate();
+ void handleLibraryUpdated();
private:
@@ -106,26 +114,28 @@
void setPlaylistToolBar();
HbAction *createToolBarAction( QActionGroup *actionsGroup,
- const QString& iconOn,
- const QString& iconOff,
- const QString& toolTip );
+ const QString& icon );
void updateMenu();
void updateToolBar();
void setSoftkey();
- void clearSoftkey();
void setBannerVisibility( bool visible );
int generateShuffleIndex();
- void launchAddToPlaylistDialog( QList<int> selection );
+ void launchAddToPlaylistDialog( QList<int> &selection );
void startContainerTransition( TCollectionContext contextFrom, TCollectionContext contextTo );
- void requestDelete(QList<int> selection);
+ void requestDelete( QList<int> &selection );
+ QModelIndexList getModelIndexes( const QString &label, QAbstractItemModel* model, bool &ok );
+ QString getText(const QString &label,const QString &text, bool &ok);
+ void setOutstandingPopup(HbPopup *popup);
+ bool queryNewPlaylistName(QString &newPlaylistName , const QStringList &playlists );
private:
TCollectionContext mCollectionContext;
MpMpxFrameworkWrapper *mMpxWrapper; // Own
+ MpEngine *mMpEngine; // Not own
MpMpxCollectionData *mCollectionData; // Not own
MpCollectionContainerFactory *mContainerFactory; // Own
@@ -135,7 +145,6 @@
bool mActivated;
MpNowPlayingWidget *mNowPlayingBanner; // Own
bool mBannerAttached;
- bool mEffectOnGoing;
HbMainWindow *mWindow; // Not own
HbAction *mSoftKeyQuit; // Not own
@@ -148,8 +157,14 @@
HbToolBar *mPlaylistToolBar;
MpSnapshotWidget *mSnapshot;
- MpCollectionSongScanner *mSongScanner; // Own
- bool mScanning;
+
+ QTranslator *mMpTranslator; // Own
+ QTranslator *mCommonTranslator; // Own
+
+ bool mActivationWaiting;
+ HbPopup *mOutstandingPopup; // Not own
+
+ bool mUsbBlocked;
};
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpmpxcollectiondata.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpmpxcollectiondata.h Fri Apr 16 14:56:30 2010 +0300
@@ -58,6 +58,11 @@
bool isAutoPlaylist();
bool isAutoPlaylist( int index );
int itemCount( int index );
+ int containerId();
+ int itemId(int index);
+ void removeItem(int index);
+ bool testCachedItem( int itemId );
+ void insertCachedItem(int index);
void setMpxMedia( const CMPXMedia& entries );
const CMPXMedia& containerMedia();
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpmpxcollectiondata_p.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpmpxcollectiondata_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -43,6 +43,11 @@
bool isAutoPlaylist();
bool isAutoPlaylist( int index );
int itemCount( int index );
+ int containerId();
+ int itemId(int index);
+ void removeItem(int index);
+ bool testCachedItem( int itemId );
+ void insertCachedItem(int index);
void setMpxMedia( const CMPXMedia& entries );
const CMPXMedia& containerMedia();
@@ -53,6 +58,11 @@
bool DoIsAutoPlaylistL();
bool DoIsAutoPlaylistL( int index );
int DoGetItemCountL( int index );
+ int DoGetContainerIdL();
+ int DoGetItemIdL( int index );
+ void DoRemoveItemL( int index );
+ bool DoTestCachedItemL( int itemId );
+
void SetCollectionContextL();
void DoSetMpxMediaL( const CMPXMedia& entries );
@@ -64,6 +74,8 @@
CMPXMediaArray *iMediaArray; // Not owned
TCollectionContext iContext;
+
+ CMPXMedia *iCachedRemovedItem; //Owned
};
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpmpxcollectionviewdefs.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpmpxcollectionviewdefs.h Fri Apr 16 14:56:30 2010 +0300
@@ -25,7 +25,7 @@
enum TCollectionContext {
ECollectionContextUnknown = 0,
ECollectionContextAllSongs,
- ECollectionContextArtistAlbums,
+ ECollectionContextAlbums,
ECollectionContextAlbumSongs,
ECollectionContextPlaylists,
ECollectionContextPlaylistSongs,
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpmpxframeworkwrapper.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpmpxframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -36,41 +36,45 @@
public:
- explicit MpMpxFrameworkWrapper(
+ explicit MpMpxFrameworkWrapper(
MpCommon::MpViewMode viewMode=MpCommon::DefaultView, QObject *parent=0 );
virtual ~MpMpxFrameworkWrapper();
void openCollection( TCollectionContext context );
void openCollectionItem( int index );
- void reopenCollection();
void back();
void findPlaylists( QStringList &playlists );
- void createPlaylist( QString playlistName, QList<int> selection );
- void saveToPlaylist( int playlistIndex, QList<int> selection );
- void renamePlaylist( QString newName, int index );
- void renamePlaylist( QString newName );
- void deleteSongs( QList<int> selection );
+ 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 setShuffle( bool active );
- void scan();
- void cancelScan();
+
void previewItem( int index );
-
+ void openIsolatedCollection( TCollectionContext context );
+ void releaseIsolatedCollection();
+
MpMpxCollectionData *collectionData();
-
+
signals:
void collectionPlaylistOpened();
void playlistSaved( bool success );
void songsDeleted( bool success );
void playlistsRenamed( bool success );
+
+ void isolatedCollectionOpened( MpMpxCollectionData* collectionData );
- void scanStarted();
- void scanEnded();
- void scanCountChanged( int count );
+public slots:
+
+ void reopenCollection();
+ void reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal );
private:
- Q_DISABLE_COPY(MpMpxFrameworkWrapper)
+ Q_DISABLE_COPY( MpMpxFrameworkWrapper )
MpMpxFrameworkWrapperPrivate *d_ptr;
};
--- a/mpviewplugins/mpcollectionviewplugin/inc/mpmpxframeworkwrapper_p.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpmpxframeworkwrapper_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -22,6 +22,7 @@
#include <mpxcollectionobserver.h>
#include <mpxcollectionuihelperobserver.h>
+#include "mpmpxisolatedcollectionhelper.h" //MMpMpxIsolatedCollectionHelperObserver
#include "mpmpxcollectionviewdefs.h"
#include "mpcommondefs.h"
@@ -36,7 +37,8 @@
class MpMpxFrameworkWrapperPrivate : public MMPXCollectionObserver,
- public MMPXCHelperObserver
+ public MMPXCHelperObserver,
+ public MMpMpxIsolatedCollectionHelperObserver
{
public:
@@ -49,28 +51,31 @@
void reopenCollection();
void back();
void findPlaylists( QStringList &playlists );
- void createPlaylist( QString playlistName, QList<int> selection );
- void saveToPlaylist( int playlistIndex, QList<int> selection );
- void deleteSongs( QList<int> selection );
- void renamePlaylist( QString newName, int index);
- void renamePlaylist( QString newName);
+ void createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData *collectionData );
+ void saveToPlaylist( int playlistIndex, QList<int> &selection );
+ void saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData );
+ void deleteSongs( QList<int> &selection );
+ void renamePlaylist( QString &newName, int index );
+ void renamePlaylist( QString &newName );
void setShuffle( bool active );
- void scan();
- void cancelScan();
void previewItem( int index );
+ void openIsolatedCollection( TCollectionContext context );
+ void releaseIsolatedCollection();
+ void reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal );
MpMpxCollectionData *collectionData();
+private:
+
+
void HandleOpenL( const CMPXMedia& aEntries,
TInt aIndex,TBool aComplete,TInt aError );
void HandleOpenL( const CMPXCollectionPlaylist& aPlaylist,TInt aError );
void HandleCollectionMessage( CMPXMessage* aMsg, TInt aErr );
void HandleCollectionMediaL( const CMPXMedia& aMedia, TInt aError );
-
void HandleOperationCompleteL( TCHelperOperation aOperation, TInt aErr, void* aArgument );
-
-private:
-
+ void HandleIsolatedOpenL( const CMPXMedia& aEntries, TInt aError );
+
void DoInitL();
void DoOpenCollectionL( TCollectionContext aContext );
void DoOpenCollectionItemL( TInt aIndex );
@@ -78,38 +83,38 @@
void DoReopenCollectionL();
void DoBackL();
void DoFindPlaylistsL( QStringList &playlists );
- void DoCreatePlaylistL( QString playlistName, QList<int> selection );
- void DoSaveToPlaylistL( int playlistIndex, QList<int> selection );
- void DoDeleteSongsL( QList<int> selection );
- void DoRenamePlaylistL( QString newName, int index );
- void DoRenamePlaylistL( QString newname );
- void DoRenamePlaylistL( TMPXItemId id, QString newName );
+ void DoSaveToPlaylistL( TMPXItemId playlistId, QList<int> &selection, MpMpxCollectionData *collectionData );
+ void DoCreatePlaylistL( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData );
+ void DoSaveToPlaylistL( int playlistIndex, QList<int> &selection );
+
+ void DoDeleteSongsL( 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 DoScanL();
- void DoCancelScanL();
void DoPreviewItemL( int index );
+ void DoOpenIsolatedCollectionL( TCollectionContext context );
+ void DoReorderPlaylistL( int playlistId, int songId, int originalOrdinal, int newOrdinal );
void DoHandleCollectionMessageL( const CMPXMessage& aMsg );
- void PreparePlaylistMediaL( CMPXMedia& aMedia, QList<int> selection );
+ void PreparePlaylistMediaL( CMPXMedia& aMedia, QList<int> &selection, MpMpxCollectionData *collectionData );
private:
- MpMpxFrameworkWrapper *q_ptr;
-
- MMPXCollectionUtility *iCollectionUtility;
- MMPXCollectionUiHelper *iCollectionUiHelper;
- CMPXCollectionOpenUtility *iIncrementalOpenUtil;
- MMPXPlaybackUtility *iPlaybackUtility;
- MMPXHarvesterUtility *iHarvesterUtility;
+ MpMpxFrameworkWrapper *q_ptr;
- MpMpxCollectionData *iCollectionData; // Owned
- TBool iFirstIncrementalOpen;
-
- CMPXMedia *iUserPlaylists; // Owned
-
- TInt iNumItemsAdded;
-
- MpCommon::MpViewMode iViewMode;
+ MMPXCollectionUtility *iCollectionUtility;
+ MMPXCollectionUiHelper *iCollectionUiHelper;
+ CMPXCollectionOpenUtility *iIncrementalOpenUtil;
+ CMpMpxIsolatedCollectionHelper *iIsolatedCollectionHelper;
+ MMPXPlaybackUtility *iPlaybackUtility;
+ MpMpxCollectionData *iCollectionData; // Owned
+ MpMpxCollectionData *iIsolatedCollectionData; // Owned
+ TBool iFirstIncrementalOpen;
+ CMPXMedia *iUserPlaylists; // Owned
+ TInt iNumItemsAdded;
+ MpCommon::MpViewMode iViewMode;
};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/inc/mpmpxisolatedcollectionhelper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: isolated collection helper.
+*
+*/
+
+#ifndef CMPMPXISOLATEDCOLLECTIONHELPER_H
+#define CMPMPXISOLATEDCOLLECTIONHELPER_H
+
+#include <mpxcollectionobserver.h>
+
+class CMPXCollectionOpenUtility;
+class CMPXCollectionPath;
+
+/*!
+ \class MpMpxIsolatedCollectionHelperObserver
+ \brief Observer interface for class CMpMpxIsolatedCollectionHelper
+
+ This is a helper class to open an insolated collection.
+*/
+class MMpMpxIsolatedCollectionHelperObserver
+{
+public:
+
+ virtual void HandleIsolatedOpenL( const CMPXMedia& aEntries,
+ TInt aError ) = 0;
+};
+
+class CMpMpxIsolatedCollectionHelper : public CBase,
+ public MMPXCollectionObserver
+{
+public:
+
+ static CMpMpxIsolatedCollectionHelper* NewL( MMpMpxIsolatedCollectionHelperObserver* aObserver );
+ static CMpMpxIsolatedCollectionHelper* NewLC( MMpMpxIsolatedCollectionHelperObserver* aObserver );
+ virtual ~CMpMpxIsolatedCollectionHelper();
+ void OpenCollectionL( CMPXCollectionPath& aPath );
+
+private:
+ CMpMpxIsolatedCollectionHelper( MMpMpxIsolatedCollectionHelperObserver* aObserver );
+ void ConstructL();
+ void HandleOpenL( const CMPXMedia& aEntries,
+ TInt aIndex,TBool aComplete,TInt aError );
+ void HandleOpenL( const CMPXCollectionPlaylist& aPlaylist,TInt aError );
+ void HandleCollectionMessage( CMPXMessage* aMsg, TInt aErr );
+ void HandleCollectionMediaL( const CMPXMedia& aMedia, TInt aError );
+
+private:
+ MMpMpxIsolatedCollectionHelperObserver* iObserver;
+ CMPXCollectionOpenUtility* iIncrementalOpenUtil; //owned
+ TBool iFirstIncrementalOpen;
+
+};
+
+#endif // CMPMPXISOLATEDCOLLECTIONHELPER_H
+
+//EOF
--- a/mpviewplugins/mpcollectionviewplugin/mpcollectionviewplugin.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/mpcollectionviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -40,10 +40,8 @@
-lmpxviewframeworkqt.dll \
-lmpxcollectionhelper.dll \
-lmpnowplayingbanner.dll \
- -lhbcore \
- -lhbwidgets \
- -lhbtools \
- -lmpsettingsmanager
+ -lmpsettingsmanager \
+ -lmpengine
symbian:TARGET.EPOCALLOWDLLDATA = 1
@@ -55,13 +53,12 @@
src/mpcollectioncontainer.cpp \
src/mpcollectionlistcontainer.cpp \
src/mpcollectioncontainerallsongs.cpp \
- src/mpcollectioncontainerartists.cpp \
+ src/mpcollectioncontaineralbums.cpp \
src/mpcollectioncontainerplaylists.cpp \
src/mpcollectioncontainergenres.cpp \
src/mpcollectiondatamodel.cpp \
src/mpcollectionalbumartmanager.cpp \
- src/mpcollectioninfobar.cpp \
- src/mpcollectionsongscanner.cpp \
+ src/mpmpxisolatedcollectionhelper.cpp \
src/mpmpxframeworkwrapper.cpp \
src/mpmpxframeworkwrapper_p.cpp \
src/mpmpxcollectiondata.cpp \
@@ -76,15 +73,14 @@
inc/mpcollectioncontainer.h \
inc/mpcollectionlistcontainer.h \
inc/mpcollectioncontainerallsongs.h \
- inc/mpcollectioncontainerartists.h \
+ inc/mpcollectioncontaineralbums.h \
inc/mpcollectioncontainerplaylists.h \
inc/mpcollectioncontainergenres.h \
inc/mpcollectiondatamodel.h \
inc/mpcollectionalbumartmanager.h \
- inc/mpcollectioninfobar.h \
- inc/mpcollectionsongscanner.h \
inc/mpmpxcollectionviewdefs.h \
inc/mpmpxframeworkwrapper.h \
+ inc/mpmpxisolatedcollectionhelper.h \
inc/mpmpxframeworkwrapper_p.h \
inc/mpmpxcollectiondata.h \
inc/mpmpxcollectiondata_p.h \
--- a/mpviewplugins/mpcollectionviewplugin/resources/all_songs.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="34.934082" y1="10.2143555" x2="14.5689669" y2="39.2987518">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M24.7519531,7.0058594C14.9477539,7.0058594,7,14.953125,7,24.7578125
- c0,9.8027344,7.9477539,17.75,17.7519531,17.75s17.7519531-7.9472656,17.7519531-17.75
- C42.5039062,14.953125,34.5561523,7.0058594,24.7519531,7.0058594z M24.7519531,38.8457031
- c-7.7802734,0-14.0883789-6.3085938-14.0883789-14.0878906c0-7.78125,6.3081055-14.0898438,14.0883789-14.0898438
- c7.7797852,0,14.0878906,6.3085938,14.0878906,14.0898438C38.8398438,32.5371094,32.5317383,38.8457031,24.7519531,38.8457031z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="30.7680664" y1="15.4790039" x2="18.7067165" y2="32.7043953">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M32.6728516,21.4609375l0.0019531-4.6474609
- c-1.7460938-1.1748047-4.9008789-1.9462891-8.1796875-1.9814453v11.7636719
- C23.6293945,26.25,22.609375,26.1171875,21.546875,26.3017578c-2.5429688,0.4482422-4.3041992,2.4599609-3.9541016,4.4931641
- c0.3588867,2.0273438,2.7094727,3.3183594,5.2514648,2.8671875c2.3671875-0.4140625,4.034668-2.1894531,3.9667969-4.0751953
- v-9.9755859C29.3076172,19.9179688,31.5717773,20.640625,32.6728516,21.4609375z"/>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/all_songs_on.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="34.934082" y1="10.2143555" x2="14.5689669" y2="39.2987518">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M24.7519531,7.0058594C14.9477539,7.0058594,7,14.953125,7,24.7578125
- c0,9.8027344,7.9477539,17.75,17.7519531,17.75s17.7519531-7.9472656,17.7519531-17.75
- C42.5039062,14.953125,34.5561523,7.0058594,24.7519531,7.0058594z M24.7519531,38.8457031
- c-7.7802734,0-14.0883789-6.3085938-14.0883789-14.0878906c0-7.78125,6.3081055-14.0898438,14.0883789-14.0898438
- c7.7797852,0,14.0878906,6.3085938,14.0878906,14.0898438C38.8398438,32.5371094,32.5317383,38.8457031,24.7519531,38.8457031z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="30.7680664" y1="15.4790039" x2="18.7067165" y2="32.7043953">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M32.6728516,21.4609375l0.0019531-4.6474609
- c-1.7460938-1.1748047-4.9008789-1.9462891-8.1796875-1.9814453v11.7636719
- C23.6293945,26.25,22.609375,26.1171875,21.546875,26.3017578c-2.5429688,0.4482422-4.3041992,2.4599609-3.9541016,4.4931641
- c0.3588867,2.0273438,2.7094727,3.3183594,5.2514648,2.8671875c2.3671875-0.4140625,4.034668-2.1894531,3.9667969-4.0751953
- v-9.9755859C29.3076172,19.9179688,31.5717773,20.640625,32.6728516,21.4609375z"/>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/artists.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="32.7128906" y1="18.1611328" x2="14.38379" y2="44.3377991">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M26.0581055,36.7416992c-0.5-4.171875,0.453125-7.8925781,0.9082031-9.0253906
- c0.453125-1.1367188,0.1347656-2.4960938,3.6738281,1.1777344c3.5371094,3.6757812,4.4902344,3.7207031,5.9873047,4.6738281
- c1.4970703,0.9511719,4.9443359,3.8554688,5.4892578,4.4003906c0.5439453,0.5429688,1.9960938,1.1328125,2.9941406,1.1777344
- c0.9980469,0.046875,0.8164062-0.453125,0.8164062-0.453125s-0.7265625-0.9082031-0.4082031-1.9960938
- c0.3164062-1.0878906-1.3164062-1.0429688-1.3164062-1.0429688c-2.5390625-0.2265625-3.7636719-2.0410156-3.7636719-2.0410156
- c-2.0878906-3.5390625-6.8056641-7.53125-6.8515625-7.6699219c-0.0439453-0.1367188-2.765625-1.7207031-3.8095703-3.9902344
- c-1.0439453-2.2675781-3.1298828-4.4902344-3.1298828-4.4902344c-1.1347656-1.4960938-3.9921875-0.6347656-3.9921875-0.6347656
- s-1.9960938,0.2714844-1.2705078-0.8164062c0.7255859-1.0898438,0.1367188-1.1796875-0.25-1.7695312
- c-0.3876953-0.5898438-0.1123047-1.2714844-0.1123047-1.2714844c0.6347656-2.3574219-1.5878906-3.8554688-2.4951172-4.7167969
- s-2.9951172-0.953125-3.6748047-0.3632812s-0.9521484,0.6816406-0.9521484,0.6816406
- c-1.8154297,0.1816406-3.5849609,2.8125-3.9931641,2.8574219c-0.4072266,0.0449219-0.4072266,0.3632812-0.2265625,0.3164062
- c0.1816406-0.0449219,0.2265625,0.4101562,0.3632812,0.5c0.1367188,0.0917969,0.4541016,0.453125,0.4541016,0.8164062
- s-0.0908203,0.953125,0.4082031,1.2246094s0,1.1796875,0,1.1796875s0.0908203,0.9980469-0.3642578,0.953125
- c-0.453125-0.0449219-0.8144531,0.8164062-0.8144531,1.1328125c0,0.3183594-0.3183594,0.4101562-0.4101562,0.2285156
- c-0.0898438-0.1816406-0.6796875-0.7714844-0.8154297-0.4082031c-0.1367188,0.3632812-1.3613281,1.2695312-1.9501953,1.6328125
- c-0.5898438,0.3632812-0.453125,0.9082031-0.453125,0.9082031l-3.5390625,2.1757812l0.6347656,1.1347656l2.359375-1.5429688
- c-0.1826172,0.5449219,0.4082031,1.0429688,0.6796875,0.9082031c0.2724609-0.1367188,0.953125-0.2265625,0.8164062,0.7246094
- c-0.1367188,0.953125,1.3154297,8.8476562,2.2695312,11.25c0.9521484,2.4042969,2.8574219,1.0898438,3.7636719,0.1816406
- c0.9072266-0.90625,0.8173828-0.0898438,0.8173828-0.0898438c-0.8173828,4.8535156,0,9.3442383,0,9.3442383
- S19.9858398,37.8198242,26.0581055,36.7416992z M17.121582,21.6811523c0,0-2.8583984,2.7675781-2.8134766,3.1757812
- c0.046875,0.4082031,0.1914062,0.9960938-0.4023438,2.0410156c-0.5957031,1.0449219-1.8652344,3.0214844-1.9101562,3.7578125
- c-0.0449219,0.734375-1.3613281-3.7578125-2.0410156-5.4804688c-0.6806641-1.7246094-0.3183594-3.5292969-0.2265625-3.8066406
- c0.0898438-0.2773438,0.2597656-1.921875,0.6796875-1.9550781c0,0,1.859375-0.0449219,1.9042969-0.8613281
- c0.0458984-0.8183594,0.2734375-1.0449219,0.5-0.453125c0.2265625,0.5878906,0.6347656,1.4960938,1.4960938,1.5859375
- c0.8613281,0.0917969,2.1777344-0.9980469,2.8134766,0C17.7563477,20.6831055,17.121582,21.6811523,17.121582,21.6811523z"/>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/artists_on.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="32.7128906" y1="18.1611328" x2="14.38379" y2="44.3377991">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M26.0581055,36.7416992c-0.5-4.171875,0.453125-7.8925781,0.9082031-9.0253906
- c0.453125-1.1367188,0.1347656-2.4960938,3.6738281,1.1777344c3.5371094,3.6757812,4.4902344,3.7207031,5.9873047,4.6738281
- c1.4970703,0.9511719,4.9443359,3.8554688,5.4892578,4.4003906c0.5439453,0.5429688,1.9960938,1.1328125,2.9941406,1.1777344
- c0.9980469,0.046875,0.8164062-0.453125,0.8164062-0.453125s-0.7265625-0.9082031-0.4082031-1.9960938
- c0.3164062-1.0878906-1.3164062-1.0429688-1.3164062-1.0429688c-2.5390625-0.2265625-3.7636719-2.0410156-3.7636719-2.0410156
- c-2.0878906-3.5390625-6.8056641-7.53125-6.8515625-7.6699219c-0.0439453-0.1367188-2.765625-1.7207031-3.8095703-3.9902344
- c-1.0439453-2.2675781-3.1298828-4.4902344-3.1298828-4.4902344c-1.1347656-1.4960938-3.9921875-0.6347656-3.9921875-0.6347656
- s-1.9960938,0.2714844-1.2705078-0.8164062c0.7255859-1.0898438,0.1367188-1.1796875-0.25-1.7695312
- c-0.3876953-0.5898438-0.1123047-1.2714844-0.1123047-1.2714844c0.6347656-2.3574219-1.5878906-3.8554688-2.4951172-4.7167969
- s-2.9951172-0.953125-3.6748047-0.3632812s-0.9521484,0.6816406-0.9521484,0.6816406
- c-1.8154297,0.1816406-3.5849609,2.8125-3.9931641,2.8574219c-0.4072266,0.0449219-0.4072266,0.3632812-0.2265625,0.3164062
- c0.1816406-0.0449219,0.2265625,0.4101562,0.3632812,0.5c0.1367188,0.0917969,0.4541016,0.453125,0.4541016,0.8164062
- s-0.0908203,0.953125,0.4082031,1.2246094s0,1.1796875,0,1.1796875s0.0908203,0.9980469-0.3642578,0.953125
- c-0.453125-0.0449219-0.8144531,0.8164062-0.8144531,1.1328125c0,0.3183594-0.3183594,0.4101562-0.4101562,0.2285156
- c-0.0898438-0.1816406-0.6796875-0.7714844-0.8154297-0.4082031c-0.1367188,0.3632812-1.3613281,1.2695312-1.9501953,1.6328125
- c-0.5898438,0.3632812-0.453125,0.9082031-0.453125,0.9082031l-3.5390625,2.1757812l0.6347656,1.1347656l2.359375-1.5429688
- c-0.1826172,0.5449219,0.4082031,1.0429688,0.6796875,0.9082031c0.2724609-0.1367188,0.953125-0.2265625,0.8164062,0.7246094
- c-0.1367188,0.953125,1.3154297,8.8476562,2.2695312,11.25c0.9521484,2.4042969,2.8574219,1.0898438,3.7636719,0.1816406
- c0.9072266-0.90625,0.8173828-0.0898438,0.8173828-0.0898438c-0.8173828,4.8535156,0,9.3442383,0,9.3442383
- S19.9858398,37.8198242,26.0581055,36.7416992z M17.121582,21.6811523c0,0-2.8583984,2.7675781-2.8134766,3.1757812
- c0.046875,0.4082031,0.1914062,0.9960938-0.4023438,2.0410156c-0.5957031,1.0449219-1.8652344,3.0214844-1.9101562,3.7578125
- c-0.0449219,0.734375-1.3613281-3.7578125-2.0410156-5.4804688c-0.6806641-1.7246094-0.3183594-3.5292969-0.2265625-3.8066406
- c0.0898438-0.2773438,0.2597656-1.921875,0.6796875-1.9550781c0,0,1.859375-0.0449219,1.9042969-0.8613281
- c0.0458984-0.8183594,0.2734375-1.0449219,0.5-0.453125c0.2265625,0.5878906,0.6347656,1.4960938,1.4960938,1.5859375
- c0.8613281,0.0917969,2.1777344-0.9980469,2.8134766,0C17.7563477,20.6831055,17.121582,21.6811523,17.121582,21.6811523z"/>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/mpcollectionviewresources.qrc Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/resources/mpcollectionviewresources.qrc Fri Apr 16 14:56:30 2010 +0300
@@ -2,21 +2,9 @@
<qresource prefix="/docml" >
<file alias="musiccollection.docml">musiccollection.docml</file>
- <file alias="musiccollection_infobar.docml">musiccollection_infobar.docml</file>
</qresource>
- <qresource prefix="/icons" >
- <file alias="all_songs.svg">all_songs.svg</file>
- <file alias="artists.svg">artists.svg</file>
- <file alias="playlists.svg">playlists.svg</file>
- <file alias="search.svg">search.svg</file>
- <file alias="ovi.svg">ovi.svg</file>
- <file alias="all_songs_on.svg">all_songs_on.svg</file>
- <file alias="artists_on.svg">artists_on.svg</file>
- <file alias="playlists_on.svg">playlists_on.svg</file>
- <file alias="search_on.svg">search_on.svg</file>
- <file alias="ovi_on.svg">ovi_on.svg</file>
-
+ <qresource prefix="/icons" >
<file alias="default_album.png">default_album.png</file>
</qresource>
--- a/mpviewplugins/mpcollectionviewplugin/resources/ovi.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="14.8422852" y1="36.230957" x2="22.840332" y2="36.230957">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <circle fill="url(#SVGID_1_)" cx="18.8413086" cy="36.2304688" r="3.9990234"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="29.5063477" y1="36.230957" x2="37.5043945" y2="36.230957">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <circle fill="url(#SVGID_2_)" cx="33.5053711" cy="36.2304688" r="3.9990234"/>
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="4.4902344" y1="21.28125" x2="44.3554688" y2="21.28125">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M43.144043,14.7685547l-0.5097656-0.2617188
- c-0.9345703-0.4804688-1.9521484-0.3662109-2.2714844,0.2548828l-6.140625,11.9472656H18.4135742l-5.5234375-15.4257812H6.605957
- c0,0-2.0947266,0.1914062-2.0947266,2.2851562c0,0-0.3808594,1.8095703,2.0947266,1.8095703h3.046875l5.3320312,15.9013672
- h20.5195312c0,0,1.3554688-0.0771484,1.8808594-1.1845703c0.0253906-0.0351562,0.0556641-0.0664062,0.0761719-0.1054688
- l6.796875-13.2246094C44.5786133,16.1435547,44.0795898,15.25,43.144043,14.7685547z"/>
- <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="31.1323242" y1="11.5473633" x2="21.6741943" y2="25.0549717">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <polygon fill="url(#SVGID_4_)" points="17.0756836,16.0097656 19.8413086,23.7714844 33.5053711,23.7714844
- 37.5043945,16.0097656 "/>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/ovi_on.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,396 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
-
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-165.065918" y1="10.2138672" x2="-185.4311066" y2="39.2983627">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M-175.2480469,7.0058594C-185.0522461,7.0058594-193,14.953125-193,24.7578125
- c0,9.8027344,7.9477539,17.75,17.7519531,17.75s17.7519531-7.9472656,17.7519531-17.75
- C-157.4960938,14.953125-165.4438477,7.0058594-175.2480469,7.0058594z M-175.2480469,38.8457031
- c-7.7802734,0-14.0883789-6.3085938-14.0883789-14.0878906c0-7.78125,6.3081055-14.0898438,14.0883789-14.0898438
- c7.7797852,0,14.0878906,6.3085938,14.0878906,14.0898438C-161.1601562,32.5371094-167.4682617,38.8457031-175.2480469,38.8457031
- z"/>
-
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-169.230957" y1="15.4790039" x2="-181.2923126" y2="32.7043953">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M-167.3271484,21.4609375l0.0019531-4.6474609
- c-1.7460938-1.1748047-4.9008789-1.9462891-8.1796875-1.9814453v11.7636719
- c-0.8657227-0.3457031-1.8857422-0.4785156-2.9482422-0.2939453c-2.5429688,0.4482422-4.3041992,2.4599609-3.9541016,4.4931641
- c0.3588867,2.0273438,2.7094727,3.3183594,5.2514648,2.8671875c2.3671875-0.4140625,4.034668-2.1894531,3.9667969-4.0751953
- v-9.9755859C-170.6923828,19.9179688-168.4282227,20.640625-167.3271484,21.4609375z"/>
- </g>
- <g>
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-62.40625" y1="6.6694336" x2="-72.756813" y2="21.4515686">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M-56.0864258,11.1708984h-22.9853516c-0.1933594,0-0.3486328,0.1542969-0.3486328,0.3457031
- v5.0878906c0,0.1914062,0.1552734,0.3476562,0.3486328,0.3476562h22.9853516c0.1904297,0,0.3466797-0.15625,0.3466797-0.3476562
- v-5.0878906C-55.7397461,11.3251953-55.8959961,11.1708984-56.0864258,11.1708984z"/>
-
- <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-68.9145508" y1="18.2080078" x2="-79.2658157" y2="32.9911423">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_4_)" d="M-62.5961914,22.7080078H-85.581543c-0.1923828,0-0.3476562,0.15625-0.3476562,0.3476562v5.0878906
- c0,0.1933594,0.1552734,0.3476562,0.3476562,0.3476562h22.9853516c0.1904297,0,0.3466797-0.1542969,0.3466797-0.3476562
- v-5.0878906C-62.2495117,22.8642578-62.4057617,22.7080078-62.5961914,22.7080078z"/>
-
- <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-63.5732422" y1="28.8540039" x2="-73.9236679" y2="43.6359367">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_5_)" d="M-57.2553711,33.3544922h-22.984375c-0.1933594,0-0.3486328,0.15625-0.3486328,0.3457031v5.0898438
- c0,0.1914062,0.1552734,0.3457031,0.3486328,0.3457031h22.984375c0.1904297,0,0.3476562-0.1542969,0.3476562-0.3457031v-5.0898438
- C-56.9077148,33.5107422-57.0649414,33.3544922-57.2553711,33.3544922z"/>
- <g>
-
- <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-82.0732422" y1="10.6352539" x2="-88.1915741" y2="19.3731422">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_6_)" d="M-82.3100586,19.6669922h-5.4619141v-1.2011719h1.6679688v-7.3359375l-1.8320312,0.390625
- v-1.203125l2.8710938-0.9238281h1.2177734v9.0722656h1.5371094V19.6669922z"/>
- </g>
- <g>
-
- <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-87.9726562" y1="21.6542969" x2="-94.3171463" y2="30.7151661">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_7_)" d="M-87.8422852,30.7509766h-6.4248047v-0.8945312
- c0-0.734375,0.1816406-1.4472656,0.5458984-2.1367188c0.3652344-0.6914062,1.0644531-1.4667969,2.0996094-2.3261719
- c0.546875-0.4609375,0.921875-0.8417969,1.1230469-1.1386719c0.203125-0.2988281,0.3046875-0.6367188,0.3046875-1.0097656
- c0-0.96875-0.5234375-1.4550781-1.5712891-1.4550781c-0.5839844,0-1.3027344,0.1542969-2.1542969,0.4648438v-1.3867188
- c0.9345703-0.2792969,1.8447266-0.4179688,2.7285156-0.4179688c1.0849609,0,1.90625,0.2285156,2.4667969,0.6855469
- c0.5605469,0.4589844,0.8417969,1.1367188,0.8417969,2.0292969c0,0.4257812-0.0693359,0.8203125-0.2089844,1.1757812
- s-0.3447266,0.6894531-0.6142578,1c-0.2714844,0.3125-0.6738281,0.6894531-1.2060547,1.1386719
- c-0.5898438,0.4921875-1.0175781,0.8769531-1.2861328,1.15625c-0.2695312,0.2832031-0.4794922,0.5664062-0.6318359,0.8554688
- c-0.1533203,0.2890625-0.2431641,0.5898438-0.2705078,0.9003906h4.2578125V30.7509766z"/>
- </g>
- <g>
- <linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-84.03125" y1="32.6533203" x2="-90.2001343" y2="41.4634056">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_8_)" d="M-89.4047852,33.3994141v-1.3554688c0.8710938-0.2226562,1.6865234-0.3359375,2.4482422-0.3359375
- c2.2001953,0,3.3007812,0.84375,3.3007812,2.53125c0,1.1933594-0.6132812,1.9824219-1.8447266,2.3652344
- c0.6416016,0.1171875,1.1386719,0.3847656,1.4892578,0.8085938c0.3505859,0.4199219,0.5263672,0.9472656,0.5263672,1.5761719
- c0,1.0488281-0.3076172,1.8320312-0.9228516,2.3520508c-0.6142578,0.5175781-1.5664062,0.7792969-2.8554688,0.7792969
- c-0.8388672,0-1.6572266-0.1074219-2.4560547-0.3203125v-1.355957c0.9589844,0.2246094,1.6679688,0.3359375,2.1328125,0.3359375
- c0.6074219,0,1.0576172-0.1425781,1.3505859-0.421875c0.2949219-0.28125,0.4423828-0.7226562,0.4423828-1.328125
- c0-0.6601562-0.2060547-1.1210938-0.6171875-1.3789062c-0.4091797-0.2578125-1.2128906-0.3847656-2.4042969-0.3847656v-1.2929688
- c1.1201172,0,1.8828125-0.1152344,2.2861328-0.3457031c0.4023438-0.2304688,0.6044922-0.6445312,0.6044922-1.2460938
- c0-0.8886719-0.4990234-1.3320312-1.4970703-1.3320312C-87.8764648,33.0498047-88.5385742,33.1650391-89.4047852,33.3994141z"/>
- </g>
- </g>
-
- <linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-116.2871094" y1="18.1611328" x2="-134.6162109" y2="44.3377991">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_9_)" d="M-122.9418945,36.7416992c-0.5-4.171875,0.453125-7.8925781,0.9082031-9.0253906
- c0.453125-1.1367188,0.1347656-2.4960938,3.6738281,1.1777344c3.5371094,3.6757812,4.4902344,3.7207031,5.9873047,4.6738281
- c1.4970703,0.9511719,4.9443359,3.8554688,5.4892578,4.4003906c0.5439453,0.5429688,1.9960938,1.1328125,2.9941406,1.1777344
- c0.9980469,0.046875,0.8164062-0.453125,0.8164062-0.453125s-0.7265625-0.9082031-0.4082031-1.9960938
- c0.3164062-1.0878906-1.3164062-1.0429688-1.3164062-1.0429688c-2.5390625-0.2265625-3.7636719-2.0410156-3.7636719-2.0410156
- c-2.0878906-3.5390625-6.8056641-7.53125-6.8515625-7.6699219c-0.0439453-0.1367188-2.765625-1.7207031-3.8095703-3.9902344
- c-1.0439453-2.2675781-3.1298828-4.4902344-3.1298828-4.4902344c-1.1347656-1.4960938-3.9921875-0.6347656-3.9921875-0.6347656
- s-1.9960938,0.2714844-1.2705078-0.8164062c0.7255859-1.0898438,0.1367188-1.1796875-0.25-1.7695312
- c-0.3876953-0.5898438-0.1123047-1.2714844-0.1123047-1.2714844c0.6347656-2.3574219-1.5878906-3.8554688-2.4951172-4.7167969
- s-2.9951172-0.953125-3.6748047-0.3632812s-0.9521484,0.6816406-0.9521484,0.6816406
- c-1.8154297,0.1816406-3.5849609,2.8125-3.9931641,2.8574219c-0.4072266,0.0449219-0.4072266,0.3632812-0.2265625,0.3164062
- c0.1816406-0.0449219,0.2265625,0.4101562,0.3632812,0.5c0.1367188,0.0917969,0.4541016,0.453125,0.4541016,0.8164062
- s-0.0908203,0.953125,0.4082031,1.2246094s0,1.1796875,0,1.1796875s0.0908203,0.9980469-0.3642578,0.953125
- c-0.453125-0.0449219-0.8144531,0.8164062-0.8144531,1.1328125c0,0.3183594-0.3183594,0.4101562-0.4101562,0.2285156
- c-0.0898438-0.1816406-0.6796875-0.7714844-0.8154297-0.4082031c-0.1367188,0.3632812-1.3613281,1.2695312-1.9501953,1.6328125
- c-0.5898438,0.3632812-0.453125,0.9082031-0.453125,0.9082031l-3.5390625,2.1757812l0.6347656,1.1347656l2.359375-1.5429688
- c-0.1826172,0.5449219,0.4082031,1.0429688,0.6796875,0.9082031c0.2724609-0.1367188,0.953125-0.2265625,0.8164062,0.7246094
- c-0.1367188,0.953125,1.3154297,8.8476562,2.2695312,11.25c0.9521484,2.4042969,2.8574219,1.0898438,3.7636719,0.1816406
- c0.9072266-0.90625,0.8173828-0.0898438,0.8173828-0.0898438c-0.8173828,4.8535156,0,9.3442383,0,9.3442383
- S-129.0141602,37.8198242-122.9418945,36.7416992z M-131.878418,21.6811523c0,0-2.8583984,2.7675781-2.8134766,3.1757812
- c0.046875,0.4082031,0.1914062,0.9960938-0.4023438,2.0410156c-0.5957031,1.0449219-1.8652344,3.0214844-1.9101562,3.7578125
- c-0.0449219,0.734375-1.3613281-3.7578125-2.0410156-5.4804688c-0.6806641-1.7246094-0.3183594-3.5292969-0.2265625-3.8066406
- c0.0898438-0.2773438,0.2597656-1.921875,0.6796875-1.9550781c0,0,1.859375-0.0449219,1.9042969-0.8613281
- c0.0458984-0.8183594,0.2734375-1.0449219,0.5-0.453125c0.2265625,0.5878906,0.6347656,1.4960938,1.4960938,1.5859375
- c0.8613281,0.0917969,2.1777344-0.9980469,2.8134766,0C-131.2436523,20.6831055-131.878418,21.6811523-131.878418,21.6811523z"/>
- <g>
-
- <linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-22.5996094" y1="16.8032227" x2="-31.2312622" y2="29.1305008">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_10_)" d="M-23.9985352,29.4658203l-0.5322266-1.9902344
- c-0.5371094,0.7421875-1.1386719,1.2910156-1.8056641,1.6464844c-0.6660156,0.3554688-1.4814453,0.5332031-2.4443359,0.5332031
- c-1.3652344,0-2.4257812-0.3613281-3.1787109-1.0839844c-0.7539062-0.7226562-1.1308594-1.734375-1.1308594-3.0371094
- c0-1.578125,0.5488281-2.7246094,1.6455078-3.4394531c1.0966797-0.7128906,3.0625-1.078125,5.8964844-1.09375v-0.8652344
- c0-0.6386719-0.0751953-1.1191406-0.2246094-1.4433594c-0.1513672-0.3242188-0.4072266-0.5898438-0.7705078-0.7988281
- s-0.9082031-0.3144531-1.6337891-0.3144531c-0.9472656,0-2.1660156,0.2285156-3.6582031,0.6855469v-2.2832031
- c1.7441406-0.4179688,3.3300781-0.6289062,4.7597656-0.6289062c1.7832031,0,3.1337891,0.390625,4.0488281,1.1738281
- c0.9150391,0.7792969,1.3730469,1.9335938,1.3730469,3.4550781v9.484375H-23.9985352z M-26.1879883,22.9423828
- c-1.1767578,0-1.9794922,0.234375-2.4091797,0.7050781c-0.4306641,0.46875-0.6455078,1.0742188-0.6455078,1.8164062
- c0,1.3105469,0.5322266,1.9648438,1.5986328,1.9648438c0.6787109,0,1.1972656-0.2207031,1.5566406-0.6621094
- s0.5390625-1.0859375,0.5390625-1.9296875v-1.8945312H-26.1879883z"/>
-
- <linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-13.6391602" y1="15.0205078" x2="-29.8131485" y2="38.1193542">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_11_)" d="M-6.496582,37.9423828l-8.0986328-8.1015625
- c3.0068359-5.3691406,2.2431641-12.2871094-2.3251953-16.8535156c-5.5029297-5.5039062-14.4296875-5.5039062-19.9345703,0
- c-5.5048828,5.5058594-5.5048828,14.4335938,0,19.9375c4.9902344,4.9902344,12.7822266,5.4394531,18.2978516,1.3847656
- l7.8476562,7.8500977c0.6621094,0.6601562,1.7382812,0.6601562,2.4023438-0.0039062l1.8105469-1.809082
- C-5.8344727,39.6845703-5.8305664,38.6064453-6.496582,37.9423828z M-34.9155273,30.9873047
- c-4.4355469-4.4375-4.4355469-11.6269531-0.0009766-16.0585938c4.4326172-4.4375,11.6220703-4.4375,16.0576172,0
- c4.4326172,4.4335938,4.4326172,11.6230469,0,16.0566406C-23.293457,35.4189453-30.480957,35.4189453-34.9155273,30.9873047z"/>
- </g>
- <g>
- <linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="14.8422852" y1="36.230957" x2="22.840332" y2="36.230957">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <circle fill="url(#SVGID_12_)" cx="18.8413086" cy="36.2304688" r="3.9990234"/>
- <linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="29.5063477" y1="36.230957" x2="37.5043945" y2="36.230957">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <circle fill="url(#SVGID_13_)" cx="33.5053711" cy="36.2304688" r="3.9990234"/>
- <linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="4.4902344" y1="21.28125" x2="44.3554688" y2="21.28125">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_14_)" d="M43.144043,14.7685547l-0.5097656-0.2617188
- c-0.9345703-0.4804688-1.9521484-0.3662109-2.2714844,0.2548828l-6.140625,11.9472656H18.4135742l-5.5234375-15.4257812H6.605957
- c0,0-2.0947266,0.1914062-2.0947266,2.2851562c0,0-0.3808594,1.8095703,2.0947266,1.8095703h3.046875l5.3320312,15.9013672
- h20.5195312c0,0,1.3554688-0.0771484,1.8808594-1.1845703c0.0253906-0.0351562,0.0556641-0.0664062,0.0761719-0.1054688
- l6.796875-13.2246094C44.5786133,16.1435547,44.0795898,15.25,43.144043,14.7685547z"/>
- <linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="31.1323242" y1="11.5473633" x2="21.6741943" y2="25.0549717">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <polygon fill="url(#SVGID_15_)" points="17.0756836,16.0097656 19.8413086,23.7714844 33.5053711,23.7714844
- 37.5043945,16.0097656 "/>
- </g>
- <g>
-
- <linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="-165.065918" y1="10.2138672" x2="-185.4311066" y2="39.2983627">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_16_)" d="M-175.2480469,7.0058594C-185.0522461,7.0058594-193,14.953125-193,24.7578125
- c0,9.8027344,7.9477539,17.75,17.7519531,17.75s17.7519531-7.9472656,17.7519531-17.75
- C-157.4960938,14.953125-165.4438477,7.0058594-175.2480469,7.0058594z M-175.2480469,38.8457031
- c-7.7802734,0-14.0883789-6.3085938-14.0883789-14.0878906c0-7.78125,6.3081055-14.0898438,14.0883789-14.0898438
- c7.7797852,0,14.0878906,6.3085938,14.0878906,14.0898438C-161.1601562,32.5371094-167.4682617,38.8457031-175.2480469,38.8457031
- z"/>
-
- <linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-169.230957" y1="15.4790039" x2="-181.2923126" y2="32.7043953">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_17_)" d="M-167.3271484,21.4609375l0.0019531-4.6474609
- c-1.7460938-1.1748047-4.9008789-1.9462891-8.1796875-1.9814453v11.7636719
- c-0.8657227-0.3457031-1.8857422-0.4785156-2.9482422-0.2939453c-2.5429688,0.4482422-4.3041992,2.4599609-3.9541016,4.4931641
- c0.3588867,2.0273438,2.7094727,3.3183594,5.2514648,2.8671875c2.3671875-0.4140625,4.034668-2.1894531,3.9667969-4.0751953
- v-9.9755859C-170.6923828,19.9179688-168.4282227,20.640625-167.3271484,21.4609375z"/>
- </g>
- <g>
- <linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-62.40625" y1="6.6694336" x2="-72.756813" y2="21.4515686">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_18_)" d="M-56.0864258,11.1708984h-22.9853516c-0.1933594,0-0.3486328,0.1542969-0.3486328,0.3457031
- v5.0878906c0,0.1914062,0.1552734,0.3476562,0.3486328,0.3476562h22.9853516c0.1904297,0,0.3466797-0.15625,0.3466797-0.3476562
- v-5.0878906C-55.7397461,11.3251953-55.8959961,11.1708984-56.0864258,11.1708984z"/>
-
- <linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="-68.9145508" y1="18.2080078" x2="-79.2658157" y2="32.9911423">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_19_)" d="M-62.5961914,22.7080078H-85.581543c-0.1923828,0-0.3476562,0.15625-0.3476562,0.3476562
- v5.0878906c0,0.1933594,0.1552734,0.3476562,0.3476562,0.3476562h22.9853516c0.1904297,0,0.3466797-0.1542969,0.3466797-0.3476562
- v-5.0878906C-62.2495117,22.8642578-62.4057617,22.7080078-62.5961914,22.7080078z"/>
-
- <linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="-63.5732422" y1="28.8540039" x2="-73.9236679" y2="43.6359367">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_20_)" d="M-57.2553711,33.3544922h-22.984375c-0.1933594,0-0.3486328,0.15625-0.3486328,0.3457031
- v5.0898438c0,0.1914062,0.1552734,0.3457031,0.3486328,0.3457031h22.984375c0.1904297,0,0.3476562-0.1542969,0.3476562-0.3457031
- v-5.0898438C-56.9077148,33.5107422-57.0649414,33.3544922-57.2553711,33.3544922z"/>
- <g>
-
- <linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="-82.0732422" y1="10.6352539" x2="-88.1915741" y2="19.3731422">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_21_)" d="M-82.3100586,19.6669922h-5.4619141v-1.2011719h1.6679688v-7.3359375l-1.8320312,0.390625
- v-1.203125l2.8710938-0.9238281h1.2177734v9.0722656h1.5371094V19.6669922z"/>
- </g>
- <g>
-
- <linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="-87.9726562" y1="21.6542969" x2="-94.3171463" y2="30.7151661">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_22_)" d="M-87.8422852,30.7509766h-6.4248047v-0.8945312
- c0-0.734375,0.1816406-1.4472656,0.5458984-2.1367188c0.3652344-0.6914062,1.0644531-1.4667969,2.0996094-2.3261719
- c0.546875-0.4609375,0.921875-0.8417969,1.1230469-1.1386719c0.203125-0.2988281,0.3046875-0.6367188,0.3046875-1.0097656
- c0-0.96875-0.5234375-1.4550781-1.5712891-1.4550781c-0.5839844,0-1.3027344,0.1542969-2.1542969,0.4648438v-1.3867188
- c0.9345703-0.2792969,1.8447266-0.4179688,2.7285156-0.4179688c1.0849609,0,1.90625,0.2285156,2.4667969,0.6855469
- c0.5605469,0.4589844,0.8417969,1.1367188,0.8417969,2.0292969c0,0.4257812-0.0693359,0.8203125-0.2089844,1.1757812
- s-0.3447266,0.6894531-0.6142578,1c-0.2714844,0.3125-0.6738281,0.6894531-1.2060547,1.1386719
- c-0.5898438,0.4921875-1.0175781,0.8769531-1.2861328,1.15625c-0.2695312,0.2832031-0.4794922,0.5664062-0.6318359,0.8554688
- c-0.1533203,0.2890625-0.2431641,0.5898438-0.2705078,0.9003906h4.2578125V30.7509766z"/>
- </g>
- <g>
-
- <linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="-84.03125" y1="32.6533203" x2="-90.2001343" y2="41.4634056">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_23_)" d="M-89.4047852,33.3994141v-1.3554688
- c0.8710938-0.2226562,1.6865234-0.3359375,2.4482422-0.3359375c2.2001953,0,3.3007812,0.84375,3.3007812,2.53125
- c0,1.1933594-0.6132812,1.9824219-1.8447266,2.3652344c0.6416016,0.1171875,1.1386719,0.3847656,1.4892578,0.8085938
- c0.3505859,0.4199219,0.5263672,0.9472656,0.5263672,1.5761719c0,1.0488281-0.3076172,1.8320312-0.9228516,2.3520508
- c-0.6142578,0.5175781-1.5664062,0.7792969-2.8554688,0.7792969c-0.8388672,0-1.6572266-0.1074219-2.4560547-0.3203125v-1.355957
- c0.9589844,0.2246094,1.6679688,0.3359375,2.1328125,0.3359375c0.6074219,0,1.0576172-0.1425781,1.3505859-0.421875
- c0.2949219-0.28125,0.4423828-0.7226562,0.4423828-1.328125c0-0.6601562-0.2060547-1.1210938-0.6171875-1.3789062
- c-0.4091797-0.2578125-1.2128906-0.3847656-2.4042969-0.3847656v-1.2929688c1.1201172,0,1.8828125-0.1152344,2.2861328-0.3457031
- c0.4023438-0.2304688,0.6044922-0.6445312,0.6044922-1.2460938c0-0.8886719-0.4990234-1.3320312-1.4970703-1.3320312
- C-87.8764648,33.0498047-88.5385742,33.1650391-89.4047852,33.3994141z"/>
- </g>
- </g>
-
- <linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="-116.2871094" y1="18.1611328" x2="-134.6162109" y2="44.3377991">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_24_)" d="M-122.9418945,36.7416992c-0.5-4.171875,0.453125-7.8925781,0.9082031-9.0253906
- c0.453125-1.1367188,0.1347656-2.4960938,3.6738281,1.1777344c3.5371094,3.6757812,4.4902344,3.7207031,5.9873047,4.6738281
- c1.4970703,0.9511719,4.9443359,3.8554688,5.4892578,4.4003906c0.5439453,0.5429688,1.9960938,1.1328125,2.9941406,1.1777344
- c0.9980469,0.046875,0.8164062-0.453125,0.8164062-0.453125s-0.7265625-0.9082031-0.4082031-1.9960938
- c0.3164062-1.0878906-1.3164062-1.0429688-1.3164062-1.0429688c-2.5390625-0.2265625-3.7636719-2.0410156-3.7636719-2.0410156
- c-2.0878906-3.5390625-6.8056641-7.53125-6.8515625-7.6699219c-0.0439453-0.1367188-2.765625-1.7207031-3.8095703-3.9902344
- c-1.0439453-2.2675781-3.1298828-4.4902344-3.1298828-4.4902344c-1.1347656-1.4960938-3.9921875-0.6347656-3.9921875-0.6347656
- s-1.9960938,0.2714844-1.2705078-0.8164062c0.7255859-1.0898438,0.1367188-1.1796875-0.25-1.7695312
- c-0.3876953-0.5898438-0.1123047-1.2714844-0.1123047-1.2714844c0.6347656-2.3574219-1.5878906-3.8554688-2.4951172-4.7167969
- s-2.9951172-0.953125-3.6748047-0.3632812s-0.9521484,0.6816406-0.9521484,0.6816406
- c-1.8154297,0.1816406-3.5849609,2.8125-3.9931641,2.8574219c-0.4072266,0.0449219-0.4072266,0.3632812-0.2265625,0.3164062
- c0.1816406-0.0449219,0.2265625,0.4101562,0.3632812,0.5c0.1367188,0.0917969,0.4541016,0.453125,0.4541016,0.8164062
- s-0.0908203,0.953125,0.4082031,1.2246094s0,1.1796875,0,1.1796875s0.0908203,0.9980469-0.3642578,0.953125
- c-0.453125-0.0449219-0.8144531,0.8164062-0.8144531,1.1328125c0,0.3183594-0.3183594,0.4101562-0.4101562,0.2285156
- c-0.0898438-0.1816406-0.6796875-0.7714844-0.8154297-0.4082031c-0.1367188,0.3632812-1.3613281,1.2695312-1.9501953,1.6328125
- c-0.5898438,0.3632812-0.453125,0.9082031-0.453125,0.9082031l-3.5390625,2.1757812l0.6347656,1.1347656l2.359375-1.5429688
- c-0.1826172,0.5449219,0.4082031,1.0429688,0.6796875,0.9082031c0.2724609-0.1367188,0.953125-0.2265625,0.8164062,0.7246094
- c-0.1367188,0.953125,1.3154297,8.8476562,2.2695312,11.25c0.9521484,2.4042969,2.8574219,1.0898438,3.7636719,0.1816406
- c0.9072266-0.90625,0.8173828-0.0898438,0.8173828-0.0898438c-0.8173828,4.8535156,0,9.3442383,0,9.3442383
- S-129.0141602,37.8198242-122.9418945,36.7416992z M-131.878418,21.6811523c0,0-2.8583984,2.7675781-2.8134766,3.1757812
- c0.046875,0.4082031,0.1914062,0.9960938-0.4023438,2.0410156c-0.5957031,1.0449219-1.8652344,3.0214844-1.9101562,3.7578125
- c-0.0449219,0.734375-1.3613281-3.7578125-2.0410156-5.4804688c-0.6806641-1.7246094-0.3183594-3.5292969-0.2265625-3.8066406
- c0.0898438-0.2773438,0.2597656-1.921875,0.6796875-1.9550781c0,0,1.859375-0.0449219,1.9042969-0.8613281
- c0.0458984-0.8183594,0.2734375-1.0449219,0.5-0.453125c0.2265625,0.5878906,0.6347656,1.4960938,1.4960938,1.5859375
- c0.8613281,0.0917969,2.1777344-0.9980469,2.8134766,0C-131.2436523,20.6831055-131.878418,21.6811523-131.878418,21.6811523z"/>
- <g>
-
- <linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="-22.5996094" y1="16.8032227" x2="-31.2312622" y2="29.1305008">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_25_)" d="M-23.9985352,29.4658203l-0.5322266-1.9902344
- c-0.5371094,0.7421875-1.1386719,1.2910156-1.8056641,1.6464844c-0.6660156,0.3554688-1.4814453,0.5332031-2.4443359,0.5332031
- c-1.3652344,0-2.4257812-0.3613281-3.1787109-1.0839844c-0.7539062-0.7226562-1.1308594-1.734375-1.1308594-3.0371094
- c0-1.578125,0.5488281-2.7246094,1.6455078-3.4394531c1.0966797-0.7128906,3.0625-1.078125,5.8964844-1.09375v-0.8652344
- c0-0.6386719-0.0751953-1.1191406-0.2246094-1.4433594c-0.1513672-0.3242188-0.4072266-0.5898438-0.7705078-0.7988281
- s-0.9082031-0.3144531-1.6337891-0.3144531c-0.9472656,0-2.1660156,0.2285156-3.6582031,0.6855469v-2.2832031
- c1.7441406-0.4179688,3.3300781-0.6289062,4.7597656-0.6289062c1.7832031,0,3.1337891,0.390625,4.0488281,1.1738281
- c0.9150391,0.7792969,1.3730469,1.9335938,1.3730469,3.4550781v9.484375H-23.9985352z M-26.1879883,22.9423828
- c-1.1767578,0-1.9794922,0.234375-2.4091797,0.7050781c-0.4306641,0.46875-0.6455078,1.0742188-0.6455078,1.8164062
- c0,1.3105469,0.5322266,1.9648438,1.5986328,1.9648438c0.6787109,0,1.1972656-0.2207031,1.5566406-0.6621094
- s0.5390625-1.0859375,0.5390625-1.9296875v-1.8945312H-26.1879883z"/>
-
- <linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="-13.6391602" y1="15.0205078" x2="-29.8131485" y2="38.1193542">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_26_)" d="M-6.496582,37.9423828l-8.0986328-8.1015625
- c3.0068359-5.3691406,2.2431641-12.2871094-2.3251953-16.8535156c-5.5029297-5.5039062-14.4296875-5.5039062-19.9345703,0
- c-5.5048828,5.5058594-5.5048828,14.4335938,0,19.9375c4.9902344,4.9902344,12.7822266,5.4394531,18.2978516,1.3847656
- l7.8476562,7.8500977c0.6621094,0.6601562,1.7382812,0.6601562,2.4023438-0.0039062l1.8105469-1.809082
- C-5.8344727,39.6845703-5.8305664,38.6064453-6.496582,37.9423828z M-34.9155273,30.9873047
- c-4.4355469-4.4375-4.4355469-11.6269531-0.0009766-16.0585938c4.4326172-4.4375,11.6220703-4.4375,16.0576172,0
- c4.4326172,4.4335938,4.4326172,11.6230469,0,16.0566406C-23.293457,35.4189453-30.480957,35.4189453-34.9155273,30.9873047z"/>
- </g>
- <g>
- <linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="14.8422852" y1="36.230957" x2="22.840332" y2="36.230957">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <circle fill="url(#SVGID_27_)" cx="18.8413086" cy="36.2304688" r="3.9990234"/>
- <linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="29.5063477" y1="36.230957" x2="37.5043945" y2="36.230957">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <circle fill="url(#SVGID_28_)" cx="33.5053711" cy="36.2304688" r="3.9990234"/>
- <linearGradient id="SVGID_29_" gradientUnits="userSpaceOnUse" x1="4.4902344" y1="21.28125" x2="44.3554688" y2="21.28125">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_29_)" d="M43.144043,14.7685547l-0.5097656-0.2617188
- c-0.9345703-0.4804688-1.9521484-0.3662109-2.2714844,0.2548828l-6.140625,11.9472656H18.4135742l-5.5234375-15.4257812H6.605957
- c0,0-2.0947266,0.1914062-2.0947266,2.2851562c0,0-0.3808594,1.8095703,2.0947266,1.8095703h3.046875l5.3320312,15.9013672
- h20.5195312c0,0,1.3554688-0.0771484,1.8808594-1.1845703c0.0253906-0.0351562,0.0556641-0.0664062,0.0761719-0.1054688
- l6.796875-13.2246094C44.5786133,16.1435547,44.0795898,15.25,43.144043,14.7685547z"/>
- <linearGradient id="SVGID_30_" gradientUnits="userSpaceOnUse" x1="31.1323242" y1="11.5473633" x2="21.6741943" y2="25.0549717">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <polygon fill="url(#SVGID_30_)" points="17.0756836,16.0097656 19.8413086,23.7714844 33.5053711,23.7714844
- 37.5043945,16.0097656 "/>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/playlists.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="36.5932617" y1="6.6694336" x2="26.2429085" y2="21.4512672">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M42.9135742,11.1708984H19.9282227c-0.1933594,0-0.3486328,0.1542969-0.3486328,0.3457031
- v5.0878906c0,0.1914062,0.1552734,0.3476562,0.3486328,0.3476562h22.9853516c0.1904297,0,0.3466797-0.15625,0.3466797-0.3476562
- v-5.0878906C43.2602539,11.3251953,43.1040039,11.1708984,42.9135742,11.1708984z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="30.0854492" y1="18.2075195" x2="19.7342567" y2="32.9905548">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M36.4038086,22.7080078H13.418457c-0.1923828,0-0.3476562,0.15625-0.3476562,0.3476562v5.0878906
- c0,0.1933594,0.1552734,0.3476562,0.3476562,0.3476562h22.9853516c0.1904297,0,0.3466797-0.1542969,0.3466797-0.3476562
- v-5.0878906C36.7504883,22.8642578,36.5942383,22.7080078,36.4038086,22.7080078z"/>
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="35.4272461" y1="28.8544922" x2="25.0768242" y2="43.636425">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M41.7446289,33.3544922h-22.984375c-0.1933594,0-0.3486328,0.15625-0.3486328,0.3457031v5.0898438
- c0,0.1914062,0.1552734,0.3457031,0.3486328,0.3457031h22.984375c0.1904297,0,0.3476562-0.1542969,0.3476562-0.3457031v-5.0898438
- C42.0922852,33.5107422,41.9350586,33.3544922,41.7446289,33.3544922z"/>
- <g>
- <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="16.9272461" y1="10.6357422" x2="10.8089104" y2="19.3736305">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_4_)" d="M16.6899414,19.6669922h-5.4619141v-1.2011719h1.6679688v-7.3359375l-1.8320312,0.390625
- v-1.203125l2.8710938-0.9238281h1.2177734v9.0722656h1.5371094V19.6669922z"/>
- </g>
- <g>
- <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="11.027832" y1="21.6547852" x2="4.6830626" y2="30.7160549">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_5_)" d="M11.1577148,30.7509766H4.7329102v-0.8945312c0-0.734375,0.1816406-1.4472656,0.5458984-2.1367188
- c0.3652344-0.6914062,1.0644531-1.4667969,2.0996094-2.3261719c0.546875-0.4609375,0.921875-0.8417969,1.1230469-1.1386719
- c0.203125-0.2988281,0.3046875-0.6367188,0.3046875-1.0097656c0-0.96875-0.5234375-1.4550781-1.5712891-1.4550781
- c-0.5839844,0-1.3027344,0.1542969-2.1542969,0.4648438v-1.3867188c0.9345703-0.2792969,1.8447266-0.4179688,2.7285156-0.4179688
- c1.0849609,0,1.90625,0.2285156,2.4667969,0.6855469c0.5605469,0.4589844,0.8417969,1.1367188,0.8417969,2.0292969
- c0,0.4257812-0.0693359,0.8203125-0.2089844,1.1757812s-0.3447266,0.6894531-0.6142578,1
- c-0.2714844,0.3125-0.6738281,0.6894531-1.2060547,1.1386719c-0.5898438,0.4921875-1.0175781,0.8769531-1.2861328,1.15625
- c-0.2695312,0.2832031-0.4794922,0.5664062-0.6318359,0.8554688c-0.1533203,0.2890625-0.2431641,0.5898438-0.2705078,0.9003906
- h4.2578125V30.7509766z"/>
- </g>
- <g>
- <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="14.9682617" y1="32.6533203" x2="8.7995138" y2="41.4632034">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_6_)" d="M9.5952148,33.3994141v-1.3554688c0.8710938-0.2226562,1.6865234-0.3359375,2.4482422-0.3359375
- c2.2001953,0,3.3007812,0.84375,3.3007812,2.53125c0,1.1933594-0.6132812,1.9824219-1.8447266,2.3652344
- c0.6416016,0.1171875,1.1386719,0.3847656,1.4892578,0.8085938c0.3505859,0.4199219,0.5263672,0.9472656,0.5263672,1.5761719
- c0,1.0488281-0.3076172,1.8320312-0.9228516,2.3520508c-0.6142578,0.5175781-1.5664062,0.7792969-2.8554688,0.7792969
- c-0.8388672,0-1.6572266-0.1074219-2.4560547-0.3203125v-1.355957c0.9589844,0.2246094,1.6679688,0.3359375,2.1328125,0.3359375
- c0.6074219,0,1.0576172-0.1425781,1.3505859-0.421875c0.2949219-0.28125,0.4423828-0.7226562,0.4423828-1.328125
- c0-0.6601562-0.2060547-1.1210938-0.6171875-1.3789062c-0.4091797-0.2578125-1.2128906-0.3847656-2.4042969-0.3847656v-1.2929688
- c1.1201172,0,1.8828125-0.1152344,2.2861328-0.3457031c0.4023438-0.2304688,0.6044922-0.6445312,0.6044922-1.2460938
- c0-0.8886719-0.4990234-1.3320312-1.4970703-1.3320312C11.1235352,33.0498047,10.4614258,33.1650391,9.5952148,33.3994141z"/>
- </g>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/playlists_on.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="36.5932617" y1="6.6694336" x2="26.2429085" y2="21.4512672">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M42.9135742,11.1708984H19.9282227c-0.1933594,0-0.3486328,0.1542969-0.3486328,0.3457031
- v5.0878906c0,0.1914062,0.1552734,0.3476562,0.3486328,0.3476562h22.9853516c0.1904297,0,0.3466797-0.15625,0.3466797-0.3476562
- v-5.0878906C43.2602539,11.3251953,43.1040039,11.1708984,42.9135742,11.1708984z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="30.0854492" y1="18.2075195" x2="19.7342567" y2="32.9905548">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M36.4038086,22.7080078H13.418457c-0.1923828,0-0.3476562,0.15625-0.3476562,0.3476562v5.0878906
- c0,0.1933594,0.1552734,0.3476562,0.3476562,0.3476562h22.9853516c0.1904297,0,0.3466797-0.1542969,0.3466797-0.3476562
- v-5.0878906C36.7504883,22.8642578,36.5942383,22.7080078,36.4038086,22.7080078z"/>
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="35.4272461" y1="28.8544922" x2="25.0768242" y2="43.636425">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M41.7446289,33.3544922h-22.984375c-0.1933594,0-0.3486328,0.15625-0.3486328,0.3457031v5.0898438
- c0,0.1914062,0.1552734,0.3457031,0.3486328,0.3457031h22.984375c0.1904297,0,0.3476562-0.1542969,0.3476562-0.3457031v-5.0898438
- C42.0922852,33.5107422,41.9350586,33.3544922,41.7446289,33.3544922z"/>
- <g>
- <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="16.9272461" y1="10.6357422" x2="10.8089104" y2="19.3736305">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_4_)" d="M16.6899414,19.6669922h-5.4619141v-1.2011719h1.6679688v-7.3359375l-1.8320312,0.390625
- v-1.203125l2.8710938-0.9238281h1.2177734v9.0722656h1.5371094V19.6669922z"/>
- </g>
- <g>
- <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="11.027832" y1="21.6547852" x2="4.6830626" y2="30.7160549">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_5_)" d="M11.1577148,30.7509766H4.7329102v-0.8945312c0-0.734375,0.1816406-1.4472656,0.5458984-2.1367188
- c0.3652344-0.6914062,1.0644531-1.4667969,2.0996094-2.3261719c0.546875-0.4609375,0.921875-0.8417969,1.1230469-1.1386719
- c0.203125-0.2988281,0.3046875-0.6367188,0.3046875-1.0097656c0-0.96875-0.5234375-1.4550781-1.5712891-1.4550781
- c-0.5839844,0-1.3027344,0.1542969-2.1542969,0.4648438v-1.3867188c0.9345703-0.2792969,1.8447266-0.4179688,2.7285156-0.4179688
- c1.0849609,0,1.90625,0.2285156,2.4667969,0.6855469c0.5605469,0.4589844,0.8417969,1.1367188,0.8417969,2.0292969
- c0,0.4257812-0.0693359,0.8203125-0.2089844,1.1757812s-0.3447266,0.6894531-0.6142578,1
- c-0.2714844,0.3125-0.6738281,0.6894531-1.2060547,1.1386719c-0.5898438,0.4921875-1.0175781,0.8769531-1.2861328,1.15625
- c-0.2695312,0.2832031-0.4794922,0.5664062-0.6318359,0.8554688c-0.1533203,0.2890625-0.2431641,0.5898438-0.2705078,0.9003906
- h4.2578125V30.7509766z"/>
- </g>
- <g>
- <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="14.9682617" y1="32.6533203" x2="8.7995138" y2="41.4632034">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_6_)" d="M9.5952148,33.3994141v-1.3554688c0.8710938-0.2226562,1.6865234-0.3359375,2.4482422-0.3359375
- c2.2001953,0,3.3007812,0.84375,3.3007812,2.53125c0,1.1933594-0.6132812,1.9824219-1.8447266,2.3652344
- c0.6416016,0.1171875,1.1386719,0.3847656,1.4892578,0.8085938c0.3505859,0.4199219,0.5263672,0.9472656,0.5263672,1.5761719
- c0,1.0488281-0.3076172,1.8320312-0.9228516,2.3520508c-0.6142578,0.5175781-1.5664062,0.7792969-2.8554688,0.7792969
- c-0.8388672,0-1.6572266-0.1074219-2.4560547-0.3203125v-1.355957c0.9589844,0.2246094,1.6679688,0.3359375,2.1328125,0.3359375
- c0.6074219,0,1.0576172-0.1425781,1.3505859-0.421875c0.2949219-0.28125,0.4423828-0.7226562,0.4423828-1.328125
- c0-0.6601562-0.2060547-1.1210938-0.6171875-1.3789062c-0.4091797-0.2578125-1.2128906-0.3847656-2.4042969-0.3847656v-1.2929688
- c1.1201172,0,1.8828125-0.1152344,2.2861328-0.3457031c0.4023438-0.2304688,0.6044922-0.6445312,0.6044922-1.2460938
- c0-0.8886719-0.4990234-1.3320312-1.4970703-1.3320312C11.1235352,33.0498047,10.4614258,33.1650391,9.5952148,33.3994141z"/>
- </g>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/search.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.4008789" y1="16.8041992" x2="16.7693653" y2="29.1312771">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M24.0014648,29.4658203l-0.5322266-1.9902344
- c-0.5371094,0.7421875-1.1386719,1.2910156-1.8056641,1.6464844c-0.6660156,0.3554688-1.4814453,0.5332031-2.4443359,0.5332031
- c-1.3652344,0-2.4257812-0.3613281-3.1787109-1.0839844c-0.7539062-0.7226562-1.1308594-1.734375-1.1308594-3.0371094
- c0-1.578125,0.5488281-2.7246094,1.6455078-3.4394531c1.0966797-0.7128906,3.0625-1.078125,5.8964844-1.09375v-0.8652344
- c0-0.6386719-0.0751953-1.1191406-0.2246094-1.4433594c-0.1513672-0.3242188-0.4072266-0.5898438-0.7705078-0.7988281
- s-0.9082031-0.3144531-1.6337891-0.3144531c-0.9472656,0-2.1660156,0.2285156-3.6582031,0.6855469v-2.2832031
- c1.7441406-0.4179688,3.3300781-0.6289062,4.7597656-0.6289062c1.7832031,0,3.1337891,0.390625,4.0488281,1.1738281
- c0.9150391,0.7792969,1.3730469,1.9335938,1.3730469,3.4550781v9.484375H24.0014648z M21.8120117,22.9423828
- c-1.1767578,0-1.9794922,0.234375-2.4091797,0.7050781c-0.4306641,0.46875-0.6455078,1.0742188-0.6455078,1.8164062
- c0,1.3105469,0.5322266,1.9648438,1.5986328,1.9648438c0.6787109,0,1.1972656-0.2207031,1.5566406-0.6621094
- s0.5390625-1.0859375,0.5390625-1.9296875v-1.8945312H21.8120117z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="34.3623047" y1="15.0214844" x2="18.1885262" y2="38.1200333">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M41.503418,37.9423828l-8.0986328-8.1015625
- c3.0068359-5.3691406,2.2431641-12.2871094-2.3251953-16.8535156c-5.5029297-5.5039062-14.4296875-5.5039062-19.9345703,0
- c-5.5048828,5.5058594-5.5048828,14.4335938,0,19.9375c4.9902344,4.9902344,12.7822266,5.4394531,18.2978516,1.3847656
- l7.8476562,7.8500977c0.6621094,0.6601562,1.7382812,0.6601562,2.4023438-0.0039062l1.8105469-1.809082
- C42.1655273,39.6845703,42.1694336,38.6064453,41.503418,37.9423828z M13.0844727,30.9873047
- c-4.4355469-4.4375-4.4355469-11.6269531-0.0009766-16.0585938c4.4326172-4.4375,11.6220703-4.4375,16.0576172,0
- c4.4326172,4.4335938,4.4326172,11.6230469,0,16.0566406C24.706543,35.4189453,17.519043,35.4189453,13.0844727,30.9873047z"/>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
--- a/mpviewplugins/mpcollectionviewplugin/resources/search_on.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
- height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.4008789" y1="16.8041992" x2="16.7693653" y2="29.1312771">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M24.0014648,29.4658203l-0.5322266-1.9902344
- c-0.5371094,0.7421875-1.1386719,1.2910156-1.8056641,1.6464844c-0.6660156,0.3554688-1.4814453,0.5332031-2.4443359,0.5332031
- c-1.3652344,0-2.4257812-0.3613281-3.1787109-1.0839844c-0.7539062-0.7226562-1.1308594-1.734375-1.1308594-3.0371094
- c0-1.578125,0.5488281-2.7246094,1.6455078-3.4394531c1.0966797-0.7128906,3.0625-1.078125,5.8964844-1.09375v-0.8652344
- c0-0.6386719-0.0751953-1.1191406-0.2246094-1.4433594c-0.1513672-0.3242188-0.4072266-0.5898438-0.7705078-0.7988281
- s-0.9082031-0.3144531-1.6337891-0.3144531c-0.9472656,0-2.1660156,0.2285156-3.6582031,0.6855469v-2.2832031
- c1.7441406-0.4179688,3.3300781-0.6289062,4.7597656-0.6289062c1.7832031,0,3.1337891,0.390625,4.0488281,1.1738281
- c0.9150391,0.7792969,1.3730469,1.9335938,1.3730469,3.4550781v9.484375H24.0014648z M21.8120117,22.9423828
- c-1.1767578,0-1.9794922,0.234375-2.4091797,0.7050781c-0.4306641,0.46875-0.6455078,1.0742188-0.6455078,1.8164062
- c0,1.3105469,0.5322266,1.9648438,1.5986328,1.9648438c0.6787109,0,1.1972656-0.2207031,1.5566406-0.6621094
- s0.5390625-1.0859375,0.5390625-1.9296875v-1.8945312H21.8120117z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="34.3623047" y1="15.0214844" x2="18.1885262" y2="38.1200333">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M41.503418,37.9423828l-8.0986328-8.1015625
- c3.0068359-5.3691406,2.2431641-12.2871094-2.3251953-16.8535156c-5.5029297-5.5039062-14.4296875-5.5039062-19.9345703,0
- c-5.5048828,5.5058594-5.5048828,14.4335938,0,19.9375c4.9902344,4.9902344,12.7822266,5.4394531,18.2978516,1.3847656
- l7.8476562,7.8500977c0.6621094,0.6601562,1.7382812,0.6601562,2.4023438-0.0039062l1.8105469-1.809082
- C42.1655273,39.6845703,42.1694336,38.6064453,41.503418,37.9423828z M13.0844727,30.9873047
- c-4.4355469-4.4375-4.4355469-11.6269531-0.0009766-16.0585938c4.4326172-4.4375,11.6220703-4.4375,16.0576172,0
- c4.4326172,4.4335938,4.4326172,11.6230469,0,16.0566406C24.706543,35.4189453,17.519043,35.4189453,13.0844727,30.9873047z"/>
- </g>
-</g>
-<g id="Layer_4">
-</g>
-<g id="Layer_2">
-</g>
-</svg>
Binary file mpviewplugins/mpcollectionviewplugin/resources/teardrop_mask.png has changed
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectionalbumartmanager.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectionalbumartmanager.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -21,9 +21,11 @@
#include <thumbnailmanager_qt.h>
#include "mpcollectionalbumartmanager.h"
+#include "mpmpxcollectiondata.h"
#include "mptrace.h"
-const int KMaxThumbnailReq = 5;
+const int KInitCacheSize = 10;
+const int KMaxCacheSize = 50;
/*!
\class MpCollectionAlbumArtManager
@@ -53,19 +55,25 @@
/*!
Constructs the album art manager.
*/
-MpCollectionAlbumArtManager::MpCollectionAlbumArtManager( QObject *parent )
+MpCollectionAlbumArtManager::MpCollectionAlbumArtManager( MpMpxCollectionData *data, QObject *parent )
: QObject(parent),
+ mCollectionData(data),
+ mThumbnailManager(0),
mCachingInProgress(false),
- mRequestCount(0)
+ mDefaultIcon(0),
+ mPendingRequest(false)
{
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);
+ mDefaultIcon = new QIcon(":/icons/default_album.png");
TX_EXIT
}
@@ -76,89 +84,66 @@
{
TX_ENTRY
cancel();
- mImageCache.clear();
+ delete mThumbnailManager;
+ delete mDefaultIcon;
TX_EXIT
}
/*!
- Returns the album art for the given \a albumArtUri. If the album art is not
+ Returns the album art for the given \a index. If the album art is not
available in its cache, an asynchronous request is made to the thumbnail manager
- and a null icon is returned.
+ and default icon is returned.
\sa signal albumArtReady
*/
-HbIcon MpCollectionAlbumArtManager::albumArt( const QString& albumArtUri, int index )
+const QIcon* MpCollectionAlbumArtManager::albumArt( int index )
{
- TX_ENTRY_ARGS("albumArtUri=" << albumArtUri << ", index=" << index);
- HbIcon icon;
- if ( mImageCache.contains(albumArtUri) ) {
- icon = mImageCache.value(albumArtUri);
- TX_EXIT_ARGS("true - album art returned");
- }
- else {
- if ( mRequestCount < KMaxThumbnailReq ) {
- // Using negative index as priority will ensure that thumbnail requests
- // are processed in the order they were requested.
- int *clientData = new int(index);
- int reqId = mThumbnailManager->getThumbnail( albumArtUri, clientData, -index );
- if ( reqId != -1 ) {
- mTnmReqMap.insert( reqId, albumArtUri );
- mRequestCount++;
- TX_EXIT_ARGS("false - album art requested");
+ TX_ENTRY_ARGS("index=" << index);
+ QIcon *icon = mImageCache[index];
+ if ( !icon ) {
+ icon = mDefaultIcon;
+ if ( !mRequestQueue.contains(index) ) {
+ // Icon was not found in cache. If the item has AlbumArtUri, request it
+ // through ThumbnailManager interface.
+ QString albumArtUri = mCollectionData->itemData(index, MpMpxCollectionData::AlbumArtUri);
+ if ( !albumArtUri.isEmpty() ) {
+ if ( !mPendingRequest ) {
+ void *clientData = reinterpret_cast<void *>(index);
+ mRequestId = mThumbnailManager->getThumbnail( albumArtUri, clientData );
+ if ( mRequestId != -1 ) {
+ mPendingRequest = true;
+ TX_EXIT_ARGS("false - album art requested");
+ }
+ else {
+ TX_EXIT_ARGS("Err: thumbnail manager returned (-1) for getThumbnail request!");
+ }
+ }
+ else {
+ mRequestQueue.append( index );
+ TX_EXIT_ARGS("false - request queued");
+ }
}
- else {
- TX_EXIT_ARGS("Err: thumbnail manager returned (-1) for getThumbnail request!");
- }
- }
- else {
- mRequestQueue.enqueue( qMakePair(albumArtUri, index) );
- TX_EXIT_ARGS("false - request queued");
}
}
return icon;
}
/*!
- Request to cache the album art for the items specified in \a albumArtList.
- Returns 'true' if caching is started. If all items already exist in cache,
- 'false' is returned.
-
- \sa signal albumCacheReady
+ 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.
*/
-bool MpCollectionAlbumArtManager::cacheAlbumArt( const QStringList albumArtList )
+void MpCollectionAlbumArtManager::cacheFirstScreen()
{
TX_ENTRY
- int allAvailable = true;
- if ( !albumArtList.empty() ) {
- QString albumArtUri;
- int reqId;
- QStringListIterator iter(albumArtList);
- while ( iter.hasNext() ) {
- albumArtUri = iter.next();
- if ( !mImageCache.contains(albumArtUri) ) {
- reqId = mThumbnailManager->getThumbnail( albumArtUri );
- if ( reqId != -1 ) {
- mTnmReqMap.insert( reqId, albumArtUri );
- mRequestCount++;
- allAvailable = false;
- }
- else {
- TX_EXIT_ARGS("Err: thumbnail manager returned (-1) for getThumbnail request!");
- }
- TX_LOG_ARGS(albumArtUri);
- }
- }
+ int count = mCollectionData->count();
+ int initCount = ( count > KInitCacheSize ) ? KInitCacheSize : count;
+ for ( int i = 0; i < initCount; i++ ) {
+ albumArt(i);
}
-
- if ( allAvailable ) {
- TX_EXIT_ARGS("Caching is done!");
- return false;
+ if ( mPendingRequest ) {
+ mCachingInProgress = true;
}
- else {
- TX_EXIT_ARGS("Caching is in progress!");
- mCachingInProgress = true;
- return true;
- }
+ TX_EXIT
}
/*!
@@ -169,83 +154,55 @@
void MpCollectionAlbumArtManager::cancel()
{
TX_ENTRY
- if ( !mTnmReqMap.empty() ) {
- QMapIterator<int, QString> iter(mTnmReqMap);
- while ( iter.hasNext() ) {
- iter.next();
- bool result = mThumbnailManager->cancelRequest(iter.key());
- }
+ if ( mPendingRequest ) {
+ mThumbnailManager->cancelRequest(mRequestId);
}
- mTnmReqMap.clear();
+ mImageCache.clear();
mRequestQueue.clear();
- mRequestCount = 0;
+ mPendingRequest = false;
mCachingInProgress = false;
TX_EXIT
}
-
/*!
Slot to be called when thumbnail bitmap generation or loading is complete.
*/
-void MpCollectionAlbumArtManager::thumbnailReady( const QPixmap& pixmap, void *data, int id, int error )
+void MpCollectionAlbumArtManager::thumbnailReady( QPixmap pixmap, void *data, int id, int error )
{
- TX_ENTRY_ARGS("id=" << id << ", error=" << error);
-
- // Find the index
- if ( mTnmReqMap.contains(id) ) {
- // Remove the request whether it completed successfully or with error.
- QString albumArtUri = mTnmReqMap[id];
- mTnmReqMap.remove( id );
- mRequestCount--;
+ 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);
+ if ( !mCachingInProgress ) {
+ emit albumArtReady(index);
+ }
+ }
+ else {
+ TX_EXIT_ARGS("Err: thumbnail manager returned error for getThumbnail request!");
+ }
- if ( mCachingInProgress ) {
- if ( error == 0 ) {
- QIcon qicon(pixmap);
- HbIcon icon(qicon);
- mImageCache.insert(albumArtUri, icon);
- }
- else {
- TX_EXIT_ARGS("Err: thumbnail manager returned (-1) for getThumbnail request!");
- }
- if ( mTnmReqMap.empty() ) {
- TX_LOG_ARGS("Album art cache ready!");
- mCachingInProgress = false;
- emit albumCacheReady();
- return;
- }
- }
- else {
- if ( error == 0 ) {
- int *clientData = (int *)data;
- int index = *clientData;
- delete clientData;
-
- QIcon qicon(pixmap);
- HbIcon icon(qicon);
- mImageCache.insert(albumArtUri, icon);
- TX_LOG_ARGS("Album art ready for index=" << index);
- emit albumArtReady(index);
- }
- else {
- TX_EXIT_ARGS("Err: thumbnail manager returned (-1) for getThumbnail request!");
+ if ( mCachingInProgress ) {
+ if ( index >= (KInitCacheSize - 1) || !mRequestQueue.count() ) {
+ mCachingInProgress = false;
+ for ( int i = 0; i <= KInitCacheSize; ++i ) {
+ if ( mImageCache.contains(i) ) {
+ emit albumArtReady(i);
+ }
}
}
}
- // Check to see if any request is pending in the queue
- while ( !mRequestQueue.isEmpty()
- && (mRequestCount < KMaxThumbnailReq) ) {
- QPair<QString, int> req = mRequestQueue.dequeue();
- QString albumArtUri = req.first;
- int index = req.second;
-
- // Using negative index as priority will ensure that thumbnail requests
- // are processed in the order they were requested.
- int *clientData = new int(index);
- int reqId = mThumbnailManager->getThumbnail( albumArtUri, clientData, -index );
- if ( reqId != -1 ) {
- mTnmReqMap.insert( reqId, albumArtUri );
- mRequestCount++;
+ mPendingRequest = false;
+ if ( mRequestQueue.count() ) {
+ int index = mRequestQueue.takeFirst();
+ QString albumArtUri = mCollectionData->itemData(index, MpMpxCollectionData::AlbumArtUri);
+ void *clientData = reinterpret_cast<void *>(index);
+ mRequestId = mThumbnailManager->getThumbnail( albumArtUri, clientData );
+ if ( mRequestId != -1 ) {
+ mPendingRequest = true;
+ TX_EXIT_ARGS("next album art requested");
}
else {
TX_EXIT_ARGS("Err: thumbnail manager returned (-1) for getThumbnail request!");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontaineralbums.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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 collection container definition - Albums.
+*
+*/
+
+#include <QtCore>
+
+#include <hbdocumentloader.h>
+#include <hblistview.h>
+#include <hbgroupbox.h>
+#include <hbindexfeedback.h>
+
+#include "mpcollectioncontaineralbums.h"
+#include "mpmpxcollectiondata.h"
+#include "mptrace.h"
+
+/*!
+ \class MpCollectionContainerAlbums
+ \brief Music Player collection container definition - Albums.
+
+ 'Albums' collection container implements the interface specified
+ by MpCollectionContainer. It provides a layout and widgets for the
+ 'Albums' view.
+
+ This container handles the following contexts:
+ \li ECollectionContextAlbums
+ \li ECollectionContextAlbumSongs
+
+ \sa MpCollectionContainer
+*/
+
+/*!
+ Constructs the collection container.
+ */
+MpCollectionContainerAlbums::MpCollectionContainerAlbums( HbDocumentLoader *loader, QGraphicsItem *parent )
+ : MpCollectionListContainer(loader, parent),
+ mInfoBar(0)
+{
+ TX_LOG
+}
+
+/*!
+ Destructs the collection container.
+ */
+MpCollectionContainerAlbums::~MpCollectionContainerAlbums()
+{
+ TX_ENTRY
+ delete mInfoBar;
+ delete mList;
+ 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);
+
+ mAlbum = mCollectionData->itemData(row, MpMpxCollectionData::Title);
+ if ( mAlbum.isEmpty() ) {
+ mAlbum = hbTrId("txt_mus_dblist_val_unknown3");
+ }
+
+ mArtist = mCollectionData->itemData(row, MpMpxCollectionData::Artist);
+ if ( mArtist.isEmpty() ) {
+ mArtist = hbTrId("txt_mus_subtitle_unknown");
+ }
+
+ MpCollectionListContainer::itemActivated(index);
+ TX_EXIT
+}
+
+/*!
+ Sets up the container by organizing widgets according to its layout.
+
+ \reimp
+ */
+void MpCollectionContainerAlbums::setupContainer()
+{
+ TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext);
+ if ( mCollectionData->count() ) {
+ bool ok = false;
+ QGraphicsWidget *widget;
+ if ( mCollectionContext == ECollectionContextAlbums ) {
+ mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "albums", &ok);
+ if ( !ok ) {
+ TX_LOG_ARGS("Error: invalid xml file.");
+ Q_ASSERT_X(ok, "MpCollectionContainerAlbums::setupContainer", "invalid xml file");
+ }
+ if ( !mList ) {
+ widget = mDocumentLoader->findWidget(QString("albumsList"));
+ mList = qobject_cast<HbListView*>(widget);
+ mIndexFeedback->setItemView(mList);
+ initializeList();
+ }
+ if ( mInfoBar ) {
+ 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");
+ }
+
+ widget = mDocumentLoader->findWidget(QString("albumSongsDetail"));
+ 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 ( mInfoBar ) {
+ // When last song in an album is deleted and album list is reloaded
+ delete mInfoBar;
+ mInfoBar = 0;
+ }
+ // Call empty list from base class
+ setupEmptyListContainer();
+ }
+ TX_EXIT
+}
+
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerallsongs.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerallsongs.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -19,11 +19,11 @@
#include <hbdocumentloader.h>
#include <hblistview.h>
-#include <hblabel.h>
+#include <hbgroupbox.h>
+#include <hbindexfeedback.h>
#include "mpcollectioncontainerallsongs.h"
#include "mpmpxcollectiondata.h"
-#include "mpcollectioninfobar.h"
#include "mptrace.h"
/*!
@@ -66,31 +66,36 @@
void MpCollectionContainerAllSongs::setupContainer()
{
TX_ENTRY
- bool ok = false;
- mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "allSongs", &ok);
- if ( !ok ) {
- TX_LOG_ARGS("Error: invalid xml file.");
- Q_ASSERT_X(ok, "MpCollectionContainerAllSongs::setupContainer", "invalid xml file");
- }
+ if ( mCollectionData->count() ) {
+ bool ok = false;
+ mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "allSongs", &ok);
+ if ( !ok ) {
+ TX_LOG_ARGS("Error: invalid xml file.");
+ Q_ASSERT_X(ok, "MpCollectionContainerAllSongs::setupContainer", "invalid xml file");
+ }
+ QGraphicsWidget *widget;
+ widget = mDocumentLoader->findWidget(QString("allSongsDetail"));
+ mInfoBar = qobject_cast<HbGroupBox*>(widget);
- QString details;
- if ( mViewMode == MpCommon::FetchView ) {
- details = "Select a song";
+ widget = mDocumentLoader->findWidget(QString("allSongsList"));
+ mList = qobject_cast<HbListView*>(widget);
+ mIndexFeedback->setItemView(mList);
+ initializeList();
+
+ QString details;
+ if ( mViewMode == MpCommon::FetchView ) {
+ details = "Select a song";
+ }
+ else {
+ int count = mCollectionData->count();
+ details = hbTrId("txt_mus_subhead_ln_songs", count);
+ }
+ mInfoBar->setHeading(details);
}
else {
- int count = mCollectionData->count();
- details.setNum(count);
- details.append(" songs");
+ // Call empty list from base class
+ setupEmptyListContainer();
}
-
- QGraphicsWidget *widget;
- widget = mDocumentLoader->findWidget(QString("allSongsDetail"));
- mInfoBar = qobject_cast<MpCollectionInfoBar*>(widget);
- mInfoBar->setText(details);
-
- widget = mDocumentLoader->findWidget(QString("allSongsList"));
- mList = qobject_cast<HbListView*>(widget);
- initializeList();
TX_EXIT
}
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerartists.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +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 - Artists.
-*
-*/
-
-#include <QtCore>
-
-#include <hbdocumentloader.h>
-#include <hblistview.h>
-
-#include "mpcollectioncontainerartists.h"
-#include "mpmpxcollectiondata.h"
-#include "mpcollectioninfobar.h"
-#include "mptrace.h"
-
-/*!
- \class MpCollectionContainerArtists
- \brief Music Player collection container definition - Artists.
-
- 'Artists' collection container implements the interface specified
- by MpCollectionContainer. It provides a layout and widgets for the
- 'Artists' view.
-
- This container handles the following contexts:
- \li ECollectionContextArtistAlbums
- \li ECollectionContextAlbumSongs
-
- \sa MpCollectionContainer
-*/
-
-/*!
- Constructs the collection container.
- */
-MpCollectionContainerArtists::MpCollectionContainerArtists( HbDocumentLoader *loader, QGraphicsItem *parent )
- : MpCollectionListContainer(loader, parent),
- mInfoBar(0),
- mListInitialized(false)
-{
- TX_LOG
-}
-
-/*!
- Destructs the collection container.
- */
-MpCollectionContainerArtists::~MpCollectionContainerArtists()
-{
- TX_ENTRY
- delete mInfoBar;
- delete mList;
- TX_EXIT
-}
-
-/*!
- Slot to be called when an item is selected by the user.
- */
-void MpCollectionContainerArtists::itemActivated( const QModelIndex &index )
-{
- int row = index.row();
- TX_ENTRY_ARGS("index=" << row);
-
- mAlbum = mCollectionData->itemData(row, MpMpxCollectionData::Title);
- if ( mAlbum.isEmpty() ) {
- mAlbum = QString( tr("Unknown") );
- }
-
- mArtist = mCollectionData->itemData(row, MpMpxCollectionData::Artist);
- if ( mArtist.isEmpty() ) {
- mArtist = QString( tr("Unknown") );
- }
-
- MpCollectionListContainer::itemActivated(index);
- TX_EXIT
-}
-
-/*!
- Sets up the container by organizing widgets according to its layout.
-
- \reimp
- */
-void MpCollectionContainerArtists::setupContainer()
-{
- TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext);
-
- if ( !mList ) {
- bool ok = false;
- mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "artist", &ok);
-
- if ( !ok ) {
- TX_LOG_ARGS("Error: invalid xml file.");
- Q_ASSERT_X(ok, "MpCollectionContainerArtists::setupContainer", "invalid xml file");
- }
-
- QGraphicsWidget *widget;
- widget = mDocumentLoader->findWidget(QString("artistDetail"));
- mInfoBar = qobject_cast<MpCollectionInfoBar*>(widget);
-
- widget = mDocumentLoader->findWidget(QString("artistList"));
- mList = qobject_cast<HbListView*>(widget);
- initializeList();
- }
-
- QString details;
- int count = 0;
- switch ( mCollectionContext ) {
- case ECollectionContextArtistAlbums:
- count = mCollectionData->count();
- details.setNum(count);
- details.append( tr(" album(s)") );
- mInfoBar->setText(details);
- break;
- case ECollectionContextAlbumSongs:
- if ( mViewMode == MpCommon::FetchView ) {
- details = "Select a song";
- }
- else {
- details = mArtist;
- details.append(" : ");
- details.append(mAlbum);
- }
- mInfoBar->setText(details);
- break;
- default:
- TX_LOG_ARGS("Error: Wrong context; should never get here.");
- break;
- }
- TX_EXIT
-}
-
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerfactory.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerfactory.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -21,7 +21,7 @@
#include "mpcollectionview.h"
#include "mpcollectioncontainer.h"
#include "mpcollectioncontainerallsongs.h"
-#include "mpcollectioncontainerartists.h"
+#include "mpcollectioncontaineralbums.h"
#include "mpcollectioncontainerplaylists.h"
#include "mpcollectioncontainergenres.h"
#include "mptrace.h"
@@ -75,10 +75,10 @@
connect( mCurrentContainer, SIGNAL(itemActivated(int)), mView, SLOT(openIndex(int)) );
connect( mCurrentContainer, SIGNAL(itemLongPressed(int, QPointF)), mView, SLOT(openContextMenu(int, QPointF)) );
break;
- case ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
if ( mCurrentContext != ECollectionContextAlbumSongs ) {
deleteCurrentContainer();
- mCurrentContainer = new MpCollectionContainerArtists(mDocumentLoader);
+ 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)) );
@@ -123,9 +123,9 @@
case ECollectionContextAllSongs:
delete static_cast<MpCollectionContainerAllSongs *>(mCurrentContainer);
break;
- case ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
case ECollectionContextAlbumSongs:
- delete static_cast<MpCollectionContainerArtists *>(mCurrentContainer);
+ delete static_cast<MpCollectionContainerAlbums *>(mCurrentContainer);
break;
case ECollectionContextPlaylists:
case ECollectionContextPlaylistSongs:
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainergenres.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainergenres.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -20,6 +20,7 @@
#include <hbdocumentloader.h>
#include <hblistview.h>
+#include <hbindexfeedback.h>
#include "mpcollectioncontainergenres.h"
#include "mptrace.h"
@@ -78,6 +79,7 @@
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 Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerplaylists.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -19,10 +19,11 @@
#include <hbdocumentloader.h>
#include <hblistview.h>
+#include <hbgroupbox.h>
+#include <hblabel.h>
#include "mpcollectioncontainerplaylists.h"
#include "mpmpxcollectiondata.h"
-#include "mpcollectioninfobar.h"
#include "mptrace.h"
@@ -47,8 +48,7 @@
*/
MpCollectionContainerPlaylists::MpCollectionContainerPlaylists( HbDocumentLoader *loader, QGraphicsItem *parent )
: MpCollectionListContainer(loader, parent),
- mInfoBar(0),
- mListInitialized(false)
+ mInfoBar(0)
{
TX_LOG
}
@@ -72,53 +72,56 @@
void MpCollectionContainerPlaylists::setupContainer()
{
TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext);
-
- if ( !mList ) {
+ if ( mCollectionData->count() ) {
bool ok = false;
- mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "playlist", &ok);
-
- if ( !ok ) {
- TX_LOG_ARGS("Error: invalid xml file.");
- Q_ASSERT_X(ok, "MpCollectionContainerPlaylists::setupContainer", "invalid xml file");
+ QGraphicsWidget *widget;
+ if ( mCollectionContext == ECollectionContextPlaylists ) {
+ mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "playlists", &ok);
+ if ( !ok ) {
+ TX_LOG_ARGS("Error: invalid xml file.");
+ Q_ASSERT_X(ok, "MpCollectionContainerPlaylists::setupContainer", "invalid xml file");
+ }
+ if ( !mList ) {
+ widget = mDocumentLoader->findWidget(QString("playlistsList"));
+ mList = qobject_cast<HbListView*>(widget);
+ initializeList();
+ }
+ if ( mInfoBar ) {
+ delete mInfoBar;
+ mInfoBar = 0;
+ }
}
-
- QGraphicsWidget *widget;
- widget = mDocumentLoader->findWidget(QString("playlistDetail"));
- mInfoBar = qobject_cast<MpCollectionInfoBar*>(widget);
-
- widget = mDocumentLoader->findWidget(QString("playlistList"));
- mList = qobject_cast<HbListView*>(widget);
- initializeList();
- }
+ else if ( mCollectionContext == ECollectionContextPlaylistSongs ) {
+ mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "playlistSongs", &ok);
+ if ( !ok ) {
+ TX_LOG_ARGS("Error: invalid xml file.");
+ Q_ASSERT_X(ok, "MpCollectionContainerPlaylists::setupContainer", "invalid xml file");
+ }
- int count = mCollectionData->count();
- QString details;
- QString detailsCount;
- QString playlist;
- switch ( mCollectionContext ) {
- case ECollectionContextPlaylists:
- details.setNum(count);
- details.append( tr(" playlist(s)") );
- mInfoBar->setText(details);
- break;
- case ECollectionContextPlaylistSongs:
- if ( mViewMode == MpCommon::FetchView ) {
- details = "Select a song";
+ widget = mDocumentLoader->findWidget(QString("playlistSongsDetail"));
+ mInfoBar = qobject_cast<HbGroupBox*>(widget);
+
+ QString details;
+ if ( mViewMode == MpCommon::FetchView ) {
+ details = "Select a song";
+ }
+ else {
+ details = mCollectionData->collectionTitle();
+ }
+ mInfoBar->setHeading(details);
}
- else {
- details = QString( tr("Playlist: ") );
- playlist = mCollectionData->collectionTitle();
- if ( playlist.isEmpty() ) {
- playlist = QString( tr("Unknown") );
- }
- details.append(playlist);
- detailsCount.setNum(count);
+ if ( mNoMusic ) {
+ delete mNoMusic;
+ mNoMusic = 0;
}
- mInfoBar->setText(details, detailsCount);
- break;
- default:
- TX_LOG_ARGS("Error: Wrong context; should never get here.");
- break;
+ }
+ else {
+ if ( mInfoBar ) {
+ delete mInfoBar;
+ mInfoBar = 0;
+ }
+ // Call empty list from base class
+ setupEmptyListContainer();
}
TX_EXIT
}
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectiondatamodel.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectiondatamodel.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -15,18 +15,17 @@
*
*/
-#include <QBrush>
-#include <QColor>
-
+#include <QIcon>
+#include <QList>
+#include <qmimedata.h>
#include <hbicon.h>
+#include <hbnamespace.h>
#include "mpcollectiondatamodel.h"
#include "mpcollectionalbumartmanager.h"
#include "mpmpxcollectiondata.h"
#include "mptrace.h"
-const int KInitCacheSize = 11;
-
/*!
\class MpCollectionDataModel
\brief Music Player collection data model.
@@ -46,18 +45,24 @@
*/
/*!
+ \fn void orderChanged( int containerId, int itemId, int itemOrdinal, int newOrdinal )
+
+ This signal is emitted when a reorder operations is propagated to the
+ model, indicates that the item with \a containerId , \a itemId is to
+ be moved from \a itemOrdinal to \a newOrdinal.
+ */
+
+/*!
Constructs the collection data model.
*/
MpCollectionDataModel::MpCollectionDataModel( MpMpxCollectionData *data, QObject *parent )
: QAbstractListModel(parent),
mCollectionData(data),
- mRowCount(0),
- mCachingInProgress(false)
+ mRowCount(0)
{
TX_ENTRY
- mAlbumArtManager = new MpCollectionAlbumArtManager();
+ mAlbumArtManager = new MpCollectionAlbumArtManager(mCollectionData);
connect( mAlbumArtManager, SIGNAL(albumArtReady(int)), this, SLOT(updateAlbumArt(int)) );
- connect( mAlbumArtManager, SIGNAL(albumCacheReady()), this, SLOT(albumCacheReady()) );
TX_EXIT
}
@@ -84,12 +89,7 @@
{
TX_LOG
Q_UNUSED(parent);
- if ( mCachingInProgress ) {
- return 0;
- }
- else {
- return mRowCount;
- }
+ return mRowCount;
}
/*!
@@ -117,94 +117,144 @@
display << primaryText;
}
else {
- display << QString( tr("Unknown") );
+ 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 ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
case ECollectionContextPlaylistSongs:
secondaryText = mCollectionData->itemData(row, MpMpxCollectionData::Artist);
if ( !secondaryText.isEmpty() ) {
display << secondaryText;
}
else {
- display << QString( tr("Unknown") );
+ display << hbTrId("txt_mus_other_unknown3");
}
break;
- case ECollectionContextPlaylists:
- secondaryText = mCollectionData->itemData(row, MpMpxCollectionData::Count);
- if ( !secondaryText.isEmpty() ) {
- display << secondaryText;
- }
+ default:
break;
}
returnValue = display;
}
else if ( role == Qt::DecorationRole ) {
switch ( context ) {
- case ECollectionContextArtistAlbums:
- bool defaultArt = true;
- QString albumArtUri = mCollectionData->itemData(row, MpMpxCollectionData::AlbumArtUri);
- if ( !albumArtUri.isEmpty() ) {
- HbIcon icon = mAlbumArtManager->albumArt(albumArtUri, row);
- if ( !icon.isNull() ) {
- returnValue = icon;
- defaultArt = false;
- }
- }
- if ( defaultArt ) {
- // No album art, use default album art
- HbIcon icon(QString(":/icons/default_album.png"));
- returnValue = icon;
- }
+ case ECollectionContextAlbums:
+ const QIcon *icon = mAlbumArtManager->albumArt(row);
+ QVariant iconVariant(QVariant::Icon, icon);
+ returnValue = iconVariant;
break;
}
}
+ else if ( role == Hb::IndexFeedbackRole ) {
+ QString feedbackIndex;
+ feedbackIndex = mCollectionData->itemData(row, MpMpxCollectionData::Title);
+ returnValue = feedbackIndex;
+ }
TX_EXIT
return returnValue;
}
/*!
- Must be called when data has changed and model needs to be refreshed
- to reflect the new data.
+ \reimp
*/
-void MpCollectionDataModel::refreshModel()
+Qt::DropActions MpCollectionDataModel::supportedDropActions() const
+{
+ return Qt::MoveAction;
+}
+
+/*!
+ \reimp
+*/
+bool MpCollectionDataModel::removeRows(int row, int count, const QModelIndex &parent )
{
- TX_ENTRY
- // Cancel all outstanding album art request first, then reset the model.
- mAlbumArtManager->cancel();
- mRowCount = mCollectionData->count();
+ if ( count > 1 ) {
+ return false;
+ }
+ beginRemoveRows ( parent, row, row);
+ //This call internally caches the item, to be inserted if it it drag and drop.
+ mCollectionData->removeItem(row);
+ mRowCount--;
+ endRemoveRows();
+ return true;
+}
+
+/*!
+ \reimp
+*/
+QStringList MpCollectionDataModel::mimeTypes() const
+{
+ QStringList types;
+ types << QLatin1String("application/x-mpcollectiondatamodelrowandids");
+ return types;
+}
- TCollectionContext context = mCollectionData->context();
- if ( context == ECollectionContextArtistAlbums ) {
- // 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.
- if ( mRowCount > 0 ) {
- int initCount = ( mRowCount > KInitCacheSize ) ? KInitCacheSize : mRowCount;
- QStringList albumArtList;
- QString albumArtUri;
- for ( int i = 0; i < initCount; i++ ) {
- albumArtUri = mCollectionData->itemData(i, MpMpxCollectionData::AlbumArtUri);
- if ( !albumArtUri.isEmpty() ) {
- albumArtList << albumArtUri;
- }
- }
- mCachingInProgress = mAlbumArtManager->cacheAlbumArt(albumArtList);
- if ( !mCachingInProgress ) {
- reset();
- }
- }
- else {
- reset();
- }
+/*!
+ \reimp
+*/
+QMimeData *MpCollectionDataModel::mimeData(const QModelIndexList &indexes) const
+{
+ if (indexes.count() <= 0)
+ return 0;
+ QStringList types = mimeTypes();
+ if (types.isEmpty())
+ return 0;
+ QMimeData *data = new QMimeData();
+ QString format = types.at(0);
+ QByteArray encoded;
+ QDataStream stream(&encoded, QIODevice::WriteOnly);
+ stream << indexes.at(0).row();
+ stream << mCollectionData->containerId();
+ stream << mCollectionData->itemId( indexes.at(0).row() );
+
+ data->setData(format, encoded);
+ return data;
+}
+
+/*!
+ \reimp
+*/
+bool MpCollectionDataModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
+ int row, int column, const QModelIndex &parent)
+{
+ Q_UNUSED(column);
+ // check if the action is supported
+ if (!data || action != Qt::MoveAction ) {
+ return false;
}
- else {
- reset();
+ // check if the format is supported
+ QStringList types = mimeTypes();
+ if (types.isEmpty()) {
+ return false;
+ }
+ QString format = types.at(0);
+ if (!data->hasFormat(format)) {
+ return false;
}
- TX_EXIT
+ // decode and insert
+ QByteArray encoded = data->data(format);
+ QDataStream stream(&encoded, QIODevice::ReadOnly);
+ int rowFrom = -1;
+ int mpxContainerId = -1;
+ int mpxItemId = -1;
+ if (!stream.atEnd()) {
+ stream >> rowFrom;
+ stream >> mpxContainerId;
+ stream >> mpxItemId;
+ }
+ if ( rowFrom == -1 || mpxContainerId == -1 || mpxItemId == -1 ||
+ !mCollectionData->testCachedItem( mpxItemId )) {
+ return false;
+ }
+
+ beginInsertRows( parent, row, row );
+ emit orderChanged( mpxContainerId, mpxItemId, rowFrom, row );
+ mCollectionData->insertCachedItem( row );
+ mRowCount++;
+ endInsertRows();
+ return true;
}
/*!
@@ -221,7 +271,7 @@
void MpCollectionDataModel::updateAlbumArt( int index )
{
TX_ENTRY_ARGS("index=" << index);
- if ( index > 0 && index < mRowCount ) {
+ if ( index >= 0 && index < mRowCount ) {
QModelIndex modelIndex = QAbstractItemModel::createIndex(index, 0);
emit dataChanged(modelIndex, modelIndex);
}
@@ -229,14 +279,23 @@
}
/*!
- Slot to be called when album art cache is ready.
+ Slot to be called when data has changed and model needs to be refreshed
+ to reflect the new data.
*/
-void MpCollectionDataModel::albumCacheReady()
+void MpCollectionDataModel::refreshModel()
{
TX_ENTRY
- if ( mCachingInProgress ) {
- mCachingInProgress = false;
- reset();
+ // Cancel all outstanding album art request first, then reset the model.
+ mAlbumArtManager->cancel();
+ mRowCount = mCollectionData->count();
+
+ TCollectionContext context = mCollectionData->context();
+ if ( context == ECollectionContextAlbums ) {
+ // 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();
}
+ reset();
TX_EXIT
}
+
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectiondocumentloader.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectiondocumentloader.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -18,7 +18,6 @@
// INCLUDE FILES
#include "mpcollectiondocumentloader.h"
#include "mpnowplayingwidget.h"
-#include "mpcollectioninfobar.h"
#include "mpcommondefs.h"
#include "mptrace.h"
@@ -46,12 +45,6 @@
TX_EXIT
return object;
}
- else if (type == MpCollectionInfoBar::staticMetaObject.className()) {
- QObject *object = new MpCollectionInfoBar();
- object->setObjectName(name);
- TX_EXIT
- return object;
- }
TX_EXIT
return HbDocumentLoader::createObject(type, name);
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioninfobar.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +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 information bar.
-*
-*/
-
-#include <QPainter>
-#include <QColor>
-
-#include <hbstackedlayout.h>
-#include <hblabel.h>
-#include <hbdocumentloader.h>
-#include <hbinstance.h>
-#include <hbmainwindow.h>
-
-#include "mpcollectioninfobar.h"
-#include "mptrace.h"
-
-
-const char*MUSIC_COLLECTION_INFOBAR_DOCML = ":/docml/musiccollection_infobar.docml";
-
-
-/*!
- \class MpCollectionInfoBar
- \brief Music Player collection container information bar.
-
- Collection Info Bar is a custom widget,similar to HbWidget that provides
- up to two text labels, one aligned to left and the other to the right.
-*/
-
-/*!
- Constructs the information bar widget.
- */
-MpCollectionInfoBar::MpCollectionInfoBar( QGraphicsItem *parent )
- : HbWidget(parent),
- mContainer(0),
- mTextLeft(0),
- mTextRight(0)
-{
- TX_ENTRY
- mDocumentLoader = new HbDocumentLoader();
- bool ok = false;
- mDocumentLoader->load( MUSIC_COLLECTION_INFOBAR_DOCML, &ok );
- if ( ok ) {
- QGraphicsWidget *widget;
- widget = mDocumentLoader->findWidget(QString("infoBarContainer"));
- mContainer = qobject_cast<HbWidget*>(widget);
-
- widget = mDocumentLoader->findWidget(QString("leftText"));
- mTextLeft = qobject_cast<HbLabel*>(widget);
-
- widget = mDocumentLoader->findWidget(QString("rightText"));
- mTextRight = qobject_cast<HbLabel*>(widget);
- }
- else {
- TX_LOG_ARGS("Error: invalid xml file.");
- Q_ASSERT_X(ok, "MpCollectionInfoBar", "invalid xml file");
- }
-
- HbStackedLayout *layout = new HbStackedLayout(this);
- layout->addItem(mContainer);
-
- HbMainWindow *mainWindow = hbInstance->allMainWindows()[0];
- mOrientation = mainWindow->orientation();
- connect( mainWindow, SIGNAL( orientationChanged(Qt::Orientation) ),
- this, SLOT( orientationChange(Qt::Orientation) ) );
- TX_EXIT
-}
-
-/*!
- Destructs the widget.
- */
-MpCollectionInfoBar::~MpCollectionInfoBar()
-{
- TX_ENTRY
- delete mContainer;
- delete mDocumentLoader;
- TX_EXIT
-}
-
-/*!
- Sets the left label text to \a textLeft.
- */
-void MpCollectionInfoBar::setText(const QString &textLeft)
-{
- TX_ENTRY_ARGS("textLeft=" << textLeft);
-
- mTextLeft->setPlainText(textLeft);
- mTextRight->setPlainText(QString::null);
-
- bool ok1 = false;
- bool ok2 = false;
- mDocumentLoader->load(MUSIC_COLLECTION_INFOBAR_DOCML, "single", &ok1);
- if ( mOrientation == Qt::Vertical ) {
- mDocumentLoader->load(MUSIC_COLLECTION_INFOBAR_DOCML, "single singlePortrait", &ok2);
- }
- else {
- mDocumentLoader->load(MUSIC_COLLECTION_INFOBAR_DOCML, "single singleLandscape", &ok2);
- }
- if ( !ok1 || !ok2 ) {
- TX_LOG_ARGS("Error: invalid xml file.");
- Q_ASSERT_X((ok1 || ok2), "MpCollectionInfoBar::setText 1", "invalid xml file");
- }
- mSingleText = true;
- TX_EXIT
-}
-
-/*!
- Sets the left label text to \a textLeft and the right label text to \a textRight.
- */
-void MpCollectionInfoBar::setText(const QString &textLeft, const QString &textRight)
-{
- TX_ENTRY_ARGS("textLeft=" << textLeft << ", textRight=" << textRight);
-
- mTextLeft->setPlainText(textLeft);
- mTextRight->setPlainText(textRight);
-
- bool ok1 = false;
- bool ok2 = false;
- mDocumentLoader->load(MUSIC_COLLECTION_INFOBAR_DOCML, "double", &ok1);
- if ( mOrientation == Qt::Vertical ) {
- mDocumentLoader->load(MUSIC_COLLECTION_INFOBAR_DOCML, "double doublePortrait", &ok2);
- }
- else {
- mDocumentLoader->load(MUSIC_COLLECTION_INFOBAR_DOCML, "double doubleLandscape", &ok2);
- }
- if ( !ok1 || !ok2 ) {
- TX_LOG_ARGS("Error: invalid xml file.");
- Q_ASSERT_X((ok1 || ok2), "MpCollectionInfoBar::setText 2", "invalid xml file");
- }
- mSingleText = false;
- TX_EXIT
-}
-
-/*!
- \reimp
- */
-void MpCollectionInfoBar::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
-}
-
-/*!
- Slot to be called when orientation is changed.
- Loads the correct layout based on the \a orientation.
- */
-void MpCollectionInfoBar::orientationChange( Qt::Orientation orientation )
-{
- TX_ENTRY
- mOrientation = orientation;
- if ( mSingleText ) {
- setText( mTextLeft->plainText() );
- }
- else {
- setText( mTextLeft->plainText(), mTextRight->plainText() );
- }
- TX_EXIT
-}
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectionlistcontainer.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectionlistcontainer.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -23,6 +23,9 @@
#include <hbabstractviewitem.h>
#include <hblistviewitem.h>
#include <hbscrollbar.h>
+#include <hbdocumentloader.h>
+#include <hblabel.h>
+#include <hbindexfeedback.h>
#include "mpcollectionlistcontainer.h"
#include "mpcollectiondatamodel.h"
@@ -45,9 +48,12 @@
MpCollectionListContainer::MpCollectionListContainer( HbDocumentLoader *loader, QGraphicsItem *parent )
: MpCollectionContainer(loader, parent),
mList(0),
- mEffectOnGoing(false)
+ mNoMusic(0),
+ mIndexFeedback( new HbIndexFeedback())
{
- TX_LOG
+ TX_ENTRY
+ mIndexFeedback->setIndexFeedbackPolicy(HbIndexFeedback::IndexFeedbackSingleCharacter);
+ TX_EXIT
}
/*!
@@ -55,7 +61,10 @@
*/
MpCollectionListContainer::~MpCollectionListContainer()
{
- TX_LOG
+ TX_ENTRY
+ delete mNoMusic;
+ delete mIndexFeedback;
+ TX_EXIT
}
/*!
@@ -64,12 +73,7 @@
*/
void MpCollectionListContainer::initialize()
{
- TX_ENTRY
- HbEffect::add(QString("viewItem"), QString(":/effects/select.fxml"),
- QString("chosen") );
- HbEffect::add(QString("viewItem"), QString(":/effects/select_end.fxml"),
- QString("chosenEnd") );
- TX_EXIT
+ TX_LOG
}
/*!
@@ -79,8 +83,9 @@
{
TX_ENTRY
MpCollectionContainer::setDataModel(dataModel);
- mList->setModel(0);
- mList->setModel(dataModel);
+ if ( mList ) {
+ mList->setModel(dataModel);
+ }
TX_EXIT
}
@@ -91,13 +96,7 @@
void MpCollectionListContainer::itemActivated( const QModelIndex &index )
{
TX_ENTRY_ARGS("index=" << index.row());
- if ( !mEffectOnGoing ) {
- HbAbstractViewItem *listViewItem = mList->itemByIndex(index);
- mEffectOnGoing = true;
- mChosenIndex = index;
- HbEffect::start(listViewItem, QString("viewItem"), QString("chosen"),
- this, "itemChosenFxComplete1");
- }
+ emit MpCollectionContainer::itemActivated( index.row() );
TX_EXIT
}
@@ -112,34 +111,11 @@
}
/*!
- Slot for item selected effects part 1.
- */
-void MpCollectionListContainer::itemChosenFxComplete1(
- const HbEffect::EffectStatus &status )
-{
- Q_UNUSED(status);
- HbAbstractViewItem *listViewItem = mList->itemByIndex(mChosenIndex);
- HbEffect::start(listViewItem, QString("viewItem"), QString("chosenEnd"),
- this, "itemChosenFxComplete2");
-}
-
-/*!
- Slot for item selected effects part 2. The end.
- */
-void MpCollectionListContainer::itemChosenFxComplete2(
- const HbEffect::EffectStatus &status )
-{
- Q_UNUSED(status);
- mEffectOnGoing = false;
- emit MpCollectionContainer::itemActivated( mChosenIndex.row() );
-}
-
-
-/*!
\internal
*/
- void MpCollectionListContainer::initializeList()
- {
+void MpCollectionListContainer::initializeList()
+{
+ TX_ENTRY
mList->setItemRecycling(true);
mList->setScrollingStyle( HbListView::PanOrFlick );
mList->setClampingStyle( HbListView::BounceBackClamping );
@@ -154,5 +130,25 @@
mList->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded);
mList->listItemPrototype()->setGraphicsSize(HbListViewItem::Thumbnail);
+ TX_EXIT
}
+/*!
+ \internal
+ */
+void MpCollectionListContainer::setupEmptyListContainer()
+{
+ TX_ENTRY
+ bool ok = false;
+ mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "emptyList", &ok);
+ if ( !ok ) {
+ TX_LOG_ARGS("Error: invalid xml file.");
+ Q_ASSERT_X(ok, "MpCollectionListContainer::setupContainer", "invalid xml file");
+ }
+
+ QGraphicsWidget *widget;
+ widget = mDocumentLoader->findWidget(QString("noMusic"));
+ mNoMusic = qobject_cast<HbLabel*>(widget);
+ TX_EXIT
+}
+
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectionsongscanner.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +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 song scanner.
-*
-*/
-
-#include <hbprogressnote.h>
-
-#include "mpcollectionsongscanner.h"
-#include "mpmpxframeworkwrapper.h"
-#include "mptrace.h"
-
-/*!
- \class MpCollectionSongScanner
- \brief Music Player collection song scanner.
-
- Song scanner interfaces with MPX Harvesting Framework to harvest
- music files in the device.
-*/
-
-/*!
- \fn void scanEnd()
-
- This signal is emitted when scanning is ended.
-
- \sa scan()
-*/
-
-/*!
- Constructs the collection song scanner.
- */
-MpCollectionSongScanner::MpCollectionSongScanner( MpMpxFrameworkWrapper *wrapper, QObject *parent )
- : QObject(parent),
- mMpxWrapper(wrapper),
- mScanning(false),
- mScanProgressNote(0)
-{
- TX_ENTRY
- connect( mMpxWrapper, SIGNAL(scanStarted()), this, SLOT(handleScanStarted()) );
- connect( mMpxWrapper, SIGNAL(scanEnded()), this, SLOT(handleScanEnded()) );
- connect( mMpxWrapper, SIGNAL(scanCountChanged(int)), this, SLOT(handleScanCountChanged(int)) );
- TX_EXIT
-}
-
-/*!
- Destructs the collection song scanner.
- */
-MpCollectionSongScanner::~MpCollectionSongScanner()
-{
- TX_ENTRY
- if ( mScanProgressNote ) {
- delete mScanProgressNote;
- }
- TX_EXIT
-}
-
-/*!
- Initiates song scanning.
- */
-void MpCollectionSongScanner::scan()
-{
- mScanning = true;
- mMpxWrapper->scan();
-}
-
-/*!
- Returns true if scanning is ongoing.
- */
-bool MpCollectionSongScanner::isScanning()
-{
- return mScanning;
-}
-
-/*!
- Cancels ongoing song scanning, if any.
-
- \sa scan()
- */
-void MpCollectionSongScanner::cancelScan()
-{
- if ( mScanning ) {
- mScanning = false;
- mMpxWrapper->cancelScan();
- }
-}
-
-/*!
- Slot called upon notification from MPX Harvesting FW indicating start of
- scanning process.
- */
-void MpCollectionSongScanner::handleScanStarted()
-{
- if ( !mScanProgressNote ) {
- mScanProgressNote = new HbProgressNote(HbProgressNote::WaitNote);
- connect(mScanProgressNote, SIGNAL(cancelled()), this, SLOT(cancelScan()));
- }
- mScanProgressNote->setText( QString("Scanning...") );
- mScanProgressNote->show();
-}
-
-/*!
- Slot called upon notification from MPX Harvesting FW indicating end of
- scanning process.
- */
-void MpCollectionSongScanner::handleScanEnded()
-{
- if ( mScanning ) {
- mScanning = false;
- mScanProgressNote->cancel();
- }
- emit scanEnded();
-}
-
-/*!
- Slot called upon notification from MPX Harvesting FW indicating the number of
- songs scanned so far.
- */
-void MpCollectionSongScanner::handleScanCountChanged(int count)
-{
- QString added;
- added.setNum(count);
- added.append(" file(s) added.");
- mScanProgressNote->setText(added);
-}
-
--- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectionview.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectionview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -29,13 +29,17 @@
#include <hblistdialog.h>
#include <hbinputdialog.h>
#include <hblabel.h>
+#include <QTranslator>
+#include <QLocale>
+#include <hblistview.h>
+#include <hbscrollbar.h>
#include "mpcollectionview.h"
#include "mpcollectiondocumentloader.h"
#include "mpcollectioncontainerfactory.h"
#include "mpcollectioncontainer.h"
#include "mpcollectiondatamodel.h"
-#include "mpcollectionsongscanner.h"
+#include "mpengine.h"
#include "mpmpxframeworkwrapper.h"
#include "mpmpxcollectiondata.h"
#include "mpnowplayingwidget.h"
@@ -57,8 +61,6 @@
const int KPlaylistToolBarRemove = 1;
const int KplaylistToolBarReorder = 2;
-
-
/*!
\class MpCollectionView
\brief Music Player collection view.
@@ -80,22 +82,25 @@
Constructs the collection view.
*/
MpCollectionView::MpCollectionView()
- : mCollectionContext(ECollectionContextUnknown),
- mMpxWrapper(0),
- mContainerFactory(0),
- mCollectionContainer(0),
- mCollectionDataModel(0),
- mActivated(false),
- mNowPlayingBanner(0),
- mBannerAttached(false),
- mEffectOnGoing(false),
- mDocumentLoader(0),
- mMainContainer(0),
- mMainToolBar(0),
- mPlaylistToolBar(0),
- mSnapshot(0),
- mSongScanner(0),
- mScanning(false)
+ : mCollectionContext( ECollectionContextUnknown ),
+ mMpxWrapper( 0 ),
+ mMpEngine( 0 ),
+ mContainerFactory( 0 ),
+ mCollectionContainer( 0 ),
+ mCollectionDataModel( 0 ),
+ mActivated( false ),
+ mNowPlayingBanner( 0 ),
+ mBannerAttached( false ),
+ mDocumentLoader( 0 ),
+ mMainContainer( 0 ),
+ mMainToolBar( 0 ),
+ mPlaylistToolBar( 0 ),
+ mSnapshot( 0 ),
+ mMpTranslator( 0 ),
+ mCommonTranslator( 0 ),
+ mActivationWaiting( false ),
+ mOutstandingPopup( 0 ),
+ mUsbBlocked( false )
{
TX_LOG
}
@@ -106,7 +111,6 @@
MpCollectionView::~MpCollectionView()
{
TX_ENTRY
- delete mSongScanner;
delete mSnapshot;
delete mSoftKeyQuit;
delete mSoftKeyBack;
@@ -115,18 +119,20 @@
if ( mMainToolBar != toolBar && mPlaylistToolBar != toolBar ) {
delete toolBar;
}
- if ( mMainToolBar) {
+ if ( mMainToolBar ) {
mMainToolBar->deleteLater();
}
if ( mPlaylistToolBar ) {
mPlaylistToolBar->deleteLater();
}
-
+
delete mCollectionDataModel;
delete mCollectionContainer;
delete mContainerFactory;
delete mMpxWrapper;
delete mDocumentLoader;
+ delete mMpTranslator;
+ delete mCommonTranslator;
TX_EXIT
}
@@ -137,22 +143,63 @@
{
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
- mSoftKeyQuit = new HbAction(Hb::QuitAction, this);
- connect( mSoftKeyQuit, SIGNAL(triggered()), this, SLOT(back()) );
+ mSoftKeyQuit = new HbAction( Hb::QuitAction, this );
+ connect( mSoftKeyQuit, SIGNAL( triggered() ), this, SLOT( back() ) );
- mSoftKeyBack = new HbAction(Hb::BackAction, this);
- connect( mSoftKeyBack, SIGNAL(triggered()), this, SLOT(back()) );
+ mSoftKeyBack = new HbAction( Hb::BackAction, this );
+ connect( mSoftKeyBack, SIGNAL( triggered() ), this, SLOT( back() ) );
- mMpxWrapper = new MpMpxFrameworkWrapper(mViewMode);
- connect( mMpxWrapper, SIGNAL(collectionPlaylistOpened()), this, SLOT(startPlaybackView()) );
- connect( mMpxWrapper, SIGNAL(playlistSaved(bool)), this, SLOT(playlistSaved(bool)), Qt::QueuedConnection );
- connect( mMpxWrapper, SIGNAL(songsDeleted(bool)), this, SLOT(songsDeleted(bool)), Qt::QueuedConnection );
- connect( mMpxWrapper, SIGNAL(playlistsRenamed(bool)), this, SLOT(playlistsRenamed(bool)), Qt::QueuedConnection );
+ mMpxWrapper = new MpMpxFrameworkWrapper( mViewMode );
+ connect( mMpxWrapper,
+ SIGNAL( collectionPlaylistOpened() ),
+ this,
+ SLOT( startPlaybackView() ),
+ Qt::QueuedConnection );
+ connect( mMpxWrapper,
+ SIGNAL( playlistSaved( bool ) ),
+ this,
+ SLOT( playlistSaved( bool ) ),
+ Qt::QueuedConnection );
+ connect( mMpxWrapper,
+ SIGNAL( songsDeleted( bool ) ),
+ this,
+ SLOT( songsDeleted( bool ) ),
+ Qt::QueuedConnection );
+ connect( mMpxWrapper,
+ SIGNAL( playlistsRenamed( bool ) ),
+ this,
+ SLOT( playlistsRenamed( bool ) ),
+ Qt::QueuedConnection );
+ connect( mMpxWrapper,
+ SIGNAL( isolatedCollectionOpened( MpMpxCollectionData* ) ),
+ this,
+ SLOT( handleIsolatedCollectionOpened( MpMpxCollectionData* ) ),
+ Qt::QueuedConnection );
+
mCollectionData = mMpxWrapper->collectionData();
- connect( mCollectionData, SIGNAL(contextChanged(TCollectionContext)), this, SLOT(setContext(TCollectionContext)) );
+ connect( mCollectionData, SIGNAL( contextChanged( TCollectionContext ) ), this, SLOT( setContext( TCollectionContext ) ) );
mCollectionDataModel = new MpCollectionDataModel( mCollectionData );
mDocumentLoader = new MpCollectionDocumentLoader();
@@ -161,62 +208,67 @@
if ( ok ) {
QGraphicsWidget *widget;
- widget = mDocumentLoader->findWidget(QString("nowPlaying"));
- mNowPlayingBanner = qobject_cast<MpNowPlayingWidget*>(widget);
+ widget = mDocumentLoader->findWidget( QString( "nowPlaying" ) );
+ mNowPlayingBanner = qobject_cast<MpNowPlayingWidget*>( widget );
if ( mViewMode == MpCommon::FetchView ) {
// Banner is not needed since playback is stopped when returning
// from playback preview. Disable the banner from updating.
- mNowPlayingBanner->setEnabled(false);
+ mNowPlayingBanner->setEnabled( false );
}
else {
- connect( mNowPlayingBanner, SIGNAL(clicked()), this, SLOT(nowPlayingBannerActivated()) );
- connect( mNowPlayingBanner, SIGNAL(playbackAttachmentChanged(bool)), this, SLOT(attachNowPlayingBanner(bool)) );
- HbEffect::add( QString("banner"), EFFECT_SELECT, QString("chosen") );
- HbEffect::add( QString("banner"), EFFECT_SELECT_END, QString("chosenEnd") );
+ connect( mNowPlayingBanner, SIGNAL( clicked() ), this, SLOT( startPlaybackView() ) );
+ connect( mNowPlayingBanner, SIGNAL( playbackAttachmentChanged( bool ) ), this, SLOT( attachNowPlayingBanner( bool ) ) );
}
- widget = mDocumentLoader->findWidget(QString("mainContainer"));
- mMainContainer = qobject_cast<HbWidget*>(widget);
+ widget = mDocumentLoader->findWidget( QString( "mainContainer" ) );
+ mMainContainer = qobject_cast<HbWidget*>( widget );
- setWidget(mMainContainer);
+ 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_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_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( QString( "container" ),
+ QString( ":/effects/slide_out_to_top.fxml" ),
+ QString( "slide_out_to_top" ) );
- 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_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_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") );
+ 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.");
- Q_ASSERT_X(ok, "MpCollectionView::initializeView", "invalid xml file");
+ TX_LOG_ARGS( "Error: invalid xml file." );
+ Q_ASSERT_X( ok, "MpCollectionView::initializeView", "invalid xml file" );
}
- mContainerFactory = new MpCollectionContainerFactory(this, mDocumentLoader);
+ mContainerFactory = new MpCollectionContainerFactory( this, mDocumentLoader );
+
+ mMpEngine = MpEngine::instance();
+ connect( mMpEngine, SIGNAL( usbBlocked(bool) ),
+ this, SLOT( handleUsbBlocked(bool) ) );
+ connect( mMpEngine, SIGNAL( libraryAboutToRefresh() ),
+ this, SLOT( handleLibraryAboutToUpdate() ) );
+ connect( mMpEngine, SIGNAL( libraryRefreshed() ),
+ this, SLOT( handleLibraryUpdated() ) );
+ mUsbBlocked = mMpEngine->verifyUsbBlocking();
if ( MpSettingsManager::firstStartup() ) {
- mSongScanner = new MpCollectionSongScanner(mMpxWrapper);
- connect(mSongScanner, SIGNAL(scanEnded()), this, SLOT(handleScanningComplete()));
- mScanning = true;
- mSongScanner->scan();
+ mActivationWaiting = true;
+ mMpEngine->refreshLibrary();
}
TX_EXIT
@@ -227,11 +279,11 @@
*/
void MpCollectionView::activateView()
{
- if ( mScanning ) {
+ if ( mActivationWaiting ) {
return;
}
mActivated = true;
- TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext);
+ TX_ENTRY_ARGS( "mCollectionContext=" << mCollectionContext );
if ( mCollectionContext == ECollectionContextUnknown ) {
// Open 'All Songs' by default
mMpxWrapper->openCollection( ECollectionContextAllSongs );
@@ -249,8 +301,32 @@
void MpCollectionView::deactivateView()
{
TX_ENTRY
- clearSoftkey();
mActivated = false;
+
+ if ( mOutstandingPopup ) {
+ mOutstandingPopup->close();
+ }
+ menu()->close();
+
+ setNavigationAction( 0 );
+ TX_EXIT
+}
+
+/*!
+ Sets the default collection - AllSongs
+ */
+void MpCollectionView::setDefaultView()
+{
+ TX_ENTRY
+ if ( mCollectionContext != ECollectionContextAllSongs ) {
+ // Open 'All Songs' by default
+ mMpxWrapper->openCollection( ECollectionContextAllSongs );
+ }
+
+ if ( mBannerAttached ) {
+ setBannerVisibility( false );
+ }
+
TX_EXIT
}
@@ -260,15 +336,15 @@
void MpCollectionView::orientationChange( Qt::Orientation orientation )
{
if ( mCollectionContainer ) {
- mCollectionContainer->orientationChange(orientation);
+ mCollectionContainer->orientationChange( orientation );
}
if ( mBannerAttached ) {
if ( orientation == Qt::Vertical ) {
- setBannerVisibility(true);
+ setBannerVisibility( true );
}
else {
- setBannerVisibility(false);
+ setBannerVisibility( false );
}
}
}
@@ -279,19 +355,18 @@
*/
void MpCollectionView::setContext( TCollectionContext context )
{
- TX_ENTRY_ARGS("context=" << context);
- if (mActivated) {
- startContainerTransition(mCollectionContext, context);
+ TX_ENTRY_ARGS( "context=" << context );
+ if ( mActivated ) {
+ startContainerTransition( mCollectionContext, context );
}
mCollectionContext = context;
- mCollectionContainer = mContainerFactory->createContainer(context);
- mCollectionContainer->setViewMode(mViewMode);
+ mCollectionContainer = mContainerFactory->createContainer( context );
+ mCollectionContainer->setViewMode( mViewMode );
mCollectionDataModel->refreshModel();
- mCollectionContainer->setDataModel(mCollectionDataModel);
+ mCollectionContainer->setDataModel( mCollectionDataModel );
// Reset softkey and the menu
- if (mActivated) {
- clearSoftkey();
+ if ( mActivated ) {
setSoftkey();
}
updateToolBar();
@@ -305,7 +380,9 @@
void MpCollectionView::openSongs()
{
TX_ENTRY
- mMpxWrapper->openCollection( ECollectionContextAllSongs );
+ if ( mCollectionContext != ECollectionContextAllSongs ) {
+ mMpxWrapper->openCollection( ECollectionContextAllSongs );
+ }
TX_EXIT
}
@@ -315,7 +392,9 @@
void MpCollectionView::openArtists()
{
TX_ENTRY
- mMpxWrapper->openCollection( ECollectionContextArtistAlbums );
+ if ( mCollectionContext != ECollectionContextAlbums ) {
+ mMpxWrapper->openCollection( ECollectionContextAlbums );
+ }
TX_EXIT
}
@@ -325,7 +404,9 @@
void MpCollectionView::openPlaylists()
{
TX_ENTRY
- mMpxWrapper->openCollection( ECollectionContextPlaylists );
+ if ( mCollectionContext != ECollectionContextPlaylists) {
+ mMpxWrapper->openCollection( ECollectionContextPlaylists );
+ }
TX_EXIT
}
@@ -335,7 +416,9 @@
void MpCollectionView::openGenres()
{
TX_ENTRY
- mMpxWrapper->openCollection( ECollectionContextGenres );
+ if ( mCollectionContext != ECollectionContextGenres ) {
+ mMpxWrapper->openCollection( ECollectionContextGenres );
+ }
TX_EXIT
}
@@ -345,7 +428,7 @@
void MpCollectionView::find()
{
// Todo
- HbMessageBox messageBox("Not ready!", HbMessageBox::MessageTypeInformation);
+ HbMessageBox messageBox( "Not ready!", HbMessageBox::MessageTypeInformation );
messageBox.exec();
updateToolBar();
}
@@ -356,7 +439,7 @@
void MpCollectionView::openMusicStore()
{
// Todo
- HbMessageBox messageBox("Not ready!", HbMessageBox::MessageTypeInformation);
+ HbMessageBox messageBox( "Not ready!", HbMessageBox::MessageTypeInformation );
messageBox.exec();
updateToolBar();
}
@@ -366,7 +449,7 @@
*/
void MpCollectionView::openIndex( int index )
{
- TX_ENTRY_ARGS("index=" << index);
+ TX_ENTRY_ARGS( "index=" << index );
bool doOpen = true;
if ( mViewMode == MpCommon::FetchView ) {
QString songUri;
@@ -376,8 +459,8 @@
case ECollectionContextPlaylistSongs:
case ECollectionContextGenreSongs:
doOpen = false;
- songUri = mCollectionData->itemData(index, MpMpxCollectionData::Uri);
- emit songSelected(songUri);
+ songUri = mCollectionData->itemData( index, MpMpxCollectionData::Uri );
+ emit songSelected( songUri );
break;
default:
break;
@@ -394,11 +477,11 @@
*/
void MpCollectionView::back()
{
- TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext);
- bool doExit(false);
+ TX_ENTRY_ARGS( "mCollectionContext=" << mCollectionContext );
+ bool doExit( false );
switch ( mCollectionContext ) {
case ECollectionContextAllSongs:
- case ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
case ECollectionContextPlaylists:
case ECollectionContextGenres:
// Exit from these levels.
@@ -415,10 +498,10 @@
}
if ( doExit ) {
- if ( mViewMode == MpCommon::FetchView ) {
+ if ( mViewMode == MpCommon::FetchView ) {
// Send an empty string to indicate that user has cancelled
// the fetch operation
- emit songSelected("");
+ emit songSelected( "" );
}
else {
emit command( MpCommon::Exit );
@@ -461,42 +544,12 @@
}
/*!
- Slot to be called when 'Now Playing Banner' is clicked by the user.
- */
-void MpCollectionView::nowPlayingBannerActivated()
-{
- if ( !mEffectOnGoing ) {
- HbEffect::start(mNowPlayingBanner, QString("banner"), QString("chosen"), this, "nowPlayingBannerChosenFxComplete1");
- mEffectOnGoing = true;
- }
-}
-
-/*!
- Slot for 'Now Playing Banner' effects part 1.
- */
-void MpCollectionView::nowPlayingBannerChosenFxComplete1( const HbEffect::EffectStatus &status )
-{
- Q_UNUSED(status);
- HbEffect::start(mNowPlayingBanner, QString("banner"), QString("chosenEnd"), this, "nowPlayingBannerChosenFxComplete2");
-}
-
-/*!
- Slot for 'Now Playing Banner' effects part 2. The end.
- */
-void MpCollectionView::nowPlayingBannerChosenFxComplete2( const HbEffect::EffectStatus &status )
-{
- Q_UNUSED(status);
- mEffectOnGoing = false;
- startPlaybackView();
-}
-
-/*!
Slot for container transition end.
*/
void MpCollectionView::containerTransitionComplete( const HbEffect::EffectStatus &status )
{
- Q_UNUSED(status);
- qobject_cast<QGraphicsView *>(mWindow)->scene()->removeItem(mSnapshot);
+ Q_UNUSED( status );
+ qobject_cast<QGraphicsView *>( mWindow )->scene()->removeItem( mSnapshot );
delete mSnapshot;
mSnapshot = 0;
}
@@ -506,10 +559,10 @@
*/
void MpCollectionView::shufflePlayAll()
{
- mMpxWrapper->setShuffle(true);
- MpSettingsManager::setShuffle(true);
+ mMpxWrapper->setShuffle( true );
+ MpSettingsManager::setShuffle( true );
int index = generateShuffleIndex();
- openIndex(index);
+ openIndex( index );
}
@@ -518,12 +571,9 @@
*/
void MpCollectionView::refreshLibrary()
{
- if ( !mSongScanner ) {
- mSongScanner = new MpCollectionSongScanner(mMpxWrapper);
- connect(mSongScanner, SIGNAL(scanEnded()), this, SLOT(handleScanningComplete()));
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ mMpEngine->refreshLibrary();
}
- mScanning = true;
- mSongScanner->scan();
}
/*!
@@ -531,20 +581,21 @@
*/
void MpCollectionView::addToPlaylist()
{
- QModelIndexList SelectedModelIndexes;
- bool ok;
- SelectedModelIndexes = HbListDialog::getModelIndexes(QString(tr("Select songs:")),
- mCollectionDataModel,
- &ok,
- HbAbstractItemView::MultiSelection);
-
- if (ok && SelectedModelIndexes.count()) {
- QList<int> selection;
- for ( int i = 0; i < SelectedModelIndexes.size(); ++i ) {
- selection.append( SelectedModelIndexes.at(i).row() );
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ QModelIndexList SelectedModelIndexes;
+ bool ok;
+ SelectedModelIndexes = getModelIndexes( hbTrId( "txt_mus_title_select_songs" ),
+ mCollectionDataModel,
+ ok);
+
+ if ( ok && SelectedModelIndexes.count() ) {
+ QList<int> selection;
+ for ( int i = 0; i < SelectedModelIndexes.size(); ++i ) {
+ selection.append( SelectedModelIndexes.at( i ).row() );
+ }
+ launchAddToPlaylistDialog( selection );
}
- launchAddToPlaylistDialog(selection);
- }
+ }
}
/*!
@@ -554,18 +605,17 @@
{
QModelIndexList SelectedModelIndexes;
bool ok;
- SelectedModelIndexes = HbListDialog::getModelIndexes(QString(tr("Select songs:")),
+ SelectedModelIndexes = getModelIndexes( hbTrId( "txt_mus_title_select_songs" ),
mCollectionDataModel,
- &ok,
- HbAbstractItemView::MultiSelection);
-
- if (ok && SelectedModelIndexes.count()) {
+ ok);
+
+ if ( ok && SelectedModelIndexes.count() ) {
QList<int> selection;
for ( int i = 0; i < SelectedModelIndexes.size(); ++i ) {
- selection.append( SelectedModelIndexes.at(i).row() );
+ selection.append( SelectedModelIndexes.at( i ).row() );
}
- requestDelete(selection);
- updateMenu();
+ requestDelete( selection );
+ updateMenu();
}
}
@@ -574,13 +624,16 @@
*/
void MpCollectionView::renameCurrentPlaylistContainer()
{
- QString currentName;
- currentName = mCollectionData->collectionTitle();
- bool ok = false;
- QString newName;
- newName = HbInputDialog::getText(QString(tr("Enter name:")), currentName, &ok);
- if ( ok && ( currentName != newName ) )
- mMpxWrapper->renamePlaylist( newName );
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ QString currentName;
+ currentName = mCollectionData->collectionTitle();
+ bool ok = false;
+ QString newName;
+ newName = getText( hbTrId( "txt_mus_dialog_enter_name" ), currentName, ok );
+ if ( ok && ( currentName != newName ) && !mMpEngine->verifyUsbBlocking( true ) ) {
+ mMpxWrapper->renamePlaylist( newName );
+ }
+ }
}
@@ -589,8 +642,10 @@
*/
void MpCollectionView::playlistSaved( bool success )
{
- if (success && mCollectionContext == ECollectionContextPlaylists) {
- mMpxWrapper->reopenCollection();
+ if ( success &&
+ ( ECollectionContextPlaylists == mCollectionContext ||
+ ECollectionContextPlaylistSongs == mCollectionContext ) ) {
+ mMpxWrapper->reopenCollection();
}
}
@@ -599,7 +654,8 @@
*/
void MpCollectionView::songsDeleted( bool success )
{
- if ( success ) {
+ // Update list if delete succeded or if delete interrupted by an USB MTP Event
+ if ( success || mMpEngine->verifyUsbBlocking( true ) ) {
mMpxWrapper->reopenCollection();
}
}
@@ -614,19 +670,138 @@
}
/*!
- Slot to be called when scan completes.
+ Slot to be called to get ready for add to playlist using an isolated collection.
*/
-void MpCollectionView::handleScanningComplete()
+void MpCollectionView::prepareToAddToPlaylist()
+{
+ TX_ENTRY
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ //We dismiss dialogs here since after open is complete we are triggering a dialog.
+ setOutstandingPopup( 0 );
+ mMpxWrapper->openIsolatedCollection( ECollectionContextAllSongs );
+ }
+ TX_EXIT
+}
+
+/*!
+ Slot to be called when isolated collection is oppened.
+ */
+void MpCollectionView::handleIsolatedCollectionOpened( MpMpxCollectionData* collectionData )
{
TX_ENTRY
- mScanning = false;
- if ( mActivated ) {
- mMpxWrapper->reopenCollection();
+ if ( mActivated && !mOutstandingPopup ) {
+
+ if (ECollectionContextPlaylistSongs == mCollectionContext) {
+ addToCurrentPlaylist( collectionData );
+ }
+ else if (ECollectionContextPlaylists == mCollectionContext) {
+ createNewPlaylist( collectionData );
+ }
+ }
+ //Playlist is saved asynchronosly by the default collection, it is OK to release now.
+ mMpxWrapper->releaseIsolatedCollection();
+ TX_EXIT
+}
+
+
+/*!
+ Slot to be called to add items to current playlist.
+ */
+void MpCollectionView::addToCurrentPlaylist( MpMpxCollectionData* collectionData )
+{
+ MpCollectionDataModel *collectionDataModel;
+ collectionDataModel = new MpCollectionDataModel( collectionData );
+ collectionDataModel->refreshModel();
+ QModelIndexList SelectedModelIndexes;
+ bool ok;
+ SelectedModelIndexes = getModelIndexes( hbTrId( "txt_mus_title_select_songs" ),
+ collectionDataModel,
+ ok);
+
+ if ( ok && SelectedModelIndexes.count() ) {
+ QList<int> selection;
+ for ( int i = 0; i < SelectedModelIndexes.size(); ++i ) {
+ selection.append( SelectedModelIndexes.at( i ).row() );
+ }
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ mMpxWrapper->saveToCurrentPlaylist( selection, collectionData );
+ }
}
- else {
- activateView();
+ delete collectionDataModel;
+}
+
+/*!
+ Slot to be called to add items to new playlist.
+ */
+void MpCollectionView::createNewPlaylist( MpMpxCollectionData* collectionData )
+{
+ MpCollectionDataModel *collectionDataModel;
+ collectionDataModel = new MpCollectionDataModel( collectionData );
+ collectionDataModel->refreshModel();
+
+ QString newPlaylistName;
+ bool ok;
+ QStringList playlists;
+ mMpxWrapper->findPlaylists( playlists );
+ ok = queryNewPlaylistName(newPlaylistName , playlists);
+ if ( ok ) {
+ QModelIndexList SelectedModelIndexes;
+ SelectedModelIndexes = getModelIndexes( hbTrId( "txt_mus_title_select_songs" ),
+ collectionDataModel,
+ ok);
+ QList<int> selection;
+ if ( ok && SelectedModelIndexes.count() ) {
+ for ( int i = 0; i < SelectedModelIndexes.size(); ++i ) {
+ selection.append( SelectedModelIndexes.at( i ).row() );
+ }
+ }
+ //Creating Playlist even when there is no selection.
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ mMpxWrapper->createPlaylist( newPlaylistName, selection, collectionData );
+ }
}
- TX_EXIT
+ delete collectionDataModel;
+}
+
+/*!
+ Slot to be called to arrange songs in a playlist.
+ */
+void MpCollectionView::arrangeSongs( )
+{
+ HbListView *listView = new HbListView();
+ listView->setItemRecycling(true);
+ listView->setScrollingStyle( HbListView::PanOrFlick );
+ listView->setClampingStyle( HbListView::BounceBackClamping );
+ HbScrollBar *scrollbar = listView->verticalScrollBar();
+ scrollbar->show();
+ scrollbar->setInteractive(true);
+ listView->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded);
+ MpCollectionDataModel *model;
+ //Ownership of the model is passed to the listView as a child object.
+ model = new MpCollectionDataModel( mCollectionData, listView );
+ model->refreshModel();
+ connect( model,
+ SIGNAL( orderChanged( int, int, int, int ) ),
+ mMpxWrapper,
+ SLOT( reorderPlaylist( int, int, int, int ) ) );
+ listView->setModel( model );
+ listView->setArrangeMode( true );
+ HbDialog *popup = new HbDialog();
+ popup->setAttribute( Qt::WA_DeleteOnClose );
+ popup->setDismissPolicy( HbPopup::NoDismiss );
+ popup->setTimeout( HbPopup::NoTimeout );
+
+ HbLabel *label = new HbLabel( hbTrId( "txt_mus_title_arrange" ) );
+ popup->setHeadingWidget( label );
+ popup->setContentWidget( listView );
+ popup->setPrimaryAction( new HbAction( hbTrId( "txt_common_button_ok" ), popup ) );
+ popup->setModal( true );
+ connect( popup, SIGNAL( aboutToClose() ), this, SLOT( outstandingPopupClosing() ) );
+ //Reopen the collection so the ordinals get fixed on the view list, if we
+ //delete items the index will not match to the item on the collection.
+ connect( popup, SIGNAL( aboutToClose() ), mMpxWrapper, SLOT( reopenCollection() ) );
+ setOutstandingPopup(popup);
+ popup->show();
}
/*!
@@ -634,13 +809,13 @@
*/
void MpCollectionView::openContextMenu( int index, const QPointF &coords )
{
- TX_ENTRY_ARGS("index=" << index);
+ TX_ENTRY_ARGS( "index=" << index );
switch ( mViewMode ) {
case MpCommon::DefaultView:
- openDefaultViewContextMenu(index, coords);
+ openDefaultViewContextMenu( index, coords );
break;
case MpCommon::FetchView:
- openFetchViewContextMenu(index, coords);
+ openFetchViewContextMenu( index, coords );
break;
default:
break;
@@ -649,42 +824,112 @@
}
/*!
+ Slot to be called when a dialog is about to close.
+ */
+void MpCollectionView::outstandingPopupClosing()
+{
+ HbPopup *popup = qobject_cast<HbPopup *>( sender() );
+ if ( popup ) {
+ Q_ASSERT( popup != mOutstandingPopup );
+ mOutstandingPopup = 0;
+ }
+}
+
+/*!
+ Slot to be called when USB blocking status changes.
+ */
+void MpCollectionView::handleUsbBlocked( bool blocked )
+{
+ TX_ENTRY_ARGS( "blocked=" << blocked );
+ mUsbBlocked = blocked;
+
+ // Hide/Show usb blocked options
+ updateMenu();
+ if ( mCollectionContext == ECollectionContextPlaylistSongs ) {
+ updateToolBar();
+ }
+ TX_EXIT
+}
+
+/*!
+ Slot to be called when library is going to be updated.
+ */
+void MpCollectionView::handleLibraryAboutToUpdate()
+{
+ TX_ENTRY
+
+ if ( mActivated ) {
+ if ( mOutstandingPopup ) {
+ mOutstandingPopup->close();
+ }
+ menu()->close();
+ }
+ TX_EXIT
+}
+
+/*!
+ Slot to be called when refreshing completes or library has been updated.
+ */
+void MpCollectionView::handleLibraryUpdated()
+{
+ TX_ENTRY
+ if ( mActivationWaiting ) {
+ mActivationWaiting = false;
+ activateView();
+ }
+ else {
+ //Update cache, even if collection is in background.
+ //Library refreshing could be triggered at any point due USB connect./disconnect.
+ mMpxWrapper->reopenCollection();
+ }
+ TX_EXIT
+}
+
+/*!
Default view context menu.
*/
-void MpCollectionView::openDefaultViewContextMenu(int index, const QPointF &coords)
+void MpCollectionView::openDefaultViewContextMenu( int index, const QPointF &coords )
{
HbMenu *contextMenu = 0;
HbAction *action;
- switch (mCollectionContext) {
+ switch ( mCollectionContext ) {
case ECollectionContextAllSongs:
case ECollectionContextAlbumSongs:
contextMenu = new HbMenu();
- action = contextMenu->addAction(QString(tr("Add to playlist")));
- action->setObjectName("add");
- action = contextMenu->addAction(QString(tr("Delete")));
- action->setObjectName("delete");
+ if ( !mUsbBlocked ) {
+ action = contextMenu->addAction( hbTrId( "txt_mus_menu_add_to_playlist" ) );
+ action->setObjectName( "add" );
+ action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
+ action->setObjectName( "delete" );
+ }
break;
- case ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
contextMenu = new HbMenu();
- action = contextMenu->addAction(QString(tr("Add to playlist")));
- action->setObjectName("add");
- action = contextMenu->addAction(QString(tr("Delete")));
- action->setObjectName("delete");
+ if ( !mUsbBlocked ) {
+ action = contextMenu->addAction( hbTrId( "txt_mus_menu_add_to_playlist" ) );
+ action->setObjectName( "add" );
+ action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
+ action->setObjectName( "delete" );
+ }
break;
case ECollectionContextPlaylists:
- if ( !mCollectionData->isAutoPlaylist(index) ) {
+ if ( !mCollectionData->isAutoPlaylist( index ) ) {
contextMenu = new HbMenu();
- action = contextMenu->addAction(QString(tr("Delete")));
- action->setObjectName("delete");
- action = contextMenu->addAction(QString(tr("Rename")));
- action->setObjectName("rename playlist");
+ if ( !mUsbBlocked ) {
+ action = contextMenu->addAction( hbTrId( "txt_common_menu_delete" ) );
+ action->setObjectName("delete");
+ action = contextMenu->addAction( hbTrId( "txt_common_menu_rename_item" ) );
+ action->setObjectName( "rename playlist" );
+ }
}
break;
case ECollectionContextPlaylistSongs:
if ( !mCollectionData->isAutoPlaylist() ) {
contextMenu = new HbMenu();
- action = contextMenu->addAction(QString(tr("Remove")));
- action->setObjectName("delete");
+ if ( !mUsbBlocked ) {
+ action = contextMenu->addAction( hbTrId( "txt_common_menu_remove" ) );
+ action->setObjectName( "delete" );
+ }
}
break;
default:
@@ -692,23 +937,25 @@
}
if ( contextMenu ) {
- HbAction *selectedAction = contextMenu->exec(coords);
- if ( selectedAction ) {
+ setOutstandingPopup( contextMenu );
+ HbAction *selectedAction = mActivated ? contextMenu->exec( coords ) : 0;
+ setOutstandingPopup( 0 );
+ if ( selectedAction && !mMpEngine->verifyUsbBlocking( true ) ) {
QString objectName = selectedAction->objectName();
QList<int> selection;
- selection.append(index);
+ selection.append( index );
if ( objectName == "add" ) {
- launchAddToPlaylistDialog(selection);
+ launchAddToPlaylistDialog( selection );
}
else if ( objectName == "delete" ) {
- requestDelete(selection);
+ requestDelete( selection );
}
else if ( objectName == "rename playlist" ) {
QString currentName;
- currentName = mCollectionData->itemData(index, MpMpxCollectionData::Title);
+ currentName = mCollectionData->itemData( index, MpMpxCollectionData::Title );
bool ok = false;
QString newName;
- newName = HbInputDialog::getText(QString(tr("Enter name:")), currentName, &ok);
+ newName = getText( hbTrId("txt_mus_dialog_enter_name" ), currentName, ok );
if ( ok && ( currentName != newName ) ) {
mMpxWrapper->renamePlaylist( newName, index );
}
@@ -724,7 +971,7 @@
*/
void MpCollectionView::openFetchViewContextMenu( int index, const QPointF &coords )
{
- TX_ENTRY_ARGS("index=" << index);
+ TX_ENTRY_ARGS( "index=" << index );
HbMenu *contextMenu = 0;
switch ( mCollectionContext ) {
@@ -733,17 +980,19 @@
case ECollectionContextPlaylistSongs:
case ECollectionContextGenreSongs:
contextMenu = new HbMenu();
- contextMenu->addAction(QString(tr("Play")));
+ contextMenu->addAction( hbTrId("txt_common_menu_play_music") );
break;
default:
break;
}
- if ( contextMenu) {
- if ( contextMenu->exec(coords) ) {
+ if ( contextMenu ) {
+ setOutstandingPopup( contextMenu );
+ if ( mActivated ? contextMenu->exec( coords ) : 0 ) {
// Start the playback process. View will switch to playbackview.
mMpxWrapper->previewItem( index );
}
+ setOutstandingPopup( 0 );
}
contextMenu->deleteLater();
TX_EXIT
@@ -751,7 +1000,7 @@
/*!
\internal
- Sets the main (default) toolbar for the view.
+ Sets the main ( default ) toolbar for the view.
*/
void MpCollectionView::setMainToolBar()
{
@@ -759,75 +1008,60 @@
if ( !mMainToolBar ) {
//Create the toolbar.
mMainToolBar = new HbToolBar();
- mMainToolBar->setOrientation(Qt::Horizontal);
+ mMainToolBar->setOrientation( Qt::Horizontal );
QActionGroup *actionsGroup = new QActionGroup( mMainToolBar );
HbAction *action;
-
+
// All Songs
- action = createToolBarAction(actionsGroup,
- ":/icons/all_songs_on",
- ":/icons/all_songs",
- tr("All"));
- connect( action, SIGNAL(triggered(bool)), this, SLOT(openSongs()) );
- mMainToolBar->addAction(action);
-
- // Artists
- action = createToolBarAction(actionsGroup,
- ":/icons/artists_on",
- ":/icons/artists",
- tr("Artists"));
- connect( action, SIGNAL(triggered(bool)), this, SLOT(openArtists()) );
- mMainToolBar->addAction(action);
-
+ action = createToolBarAction( actionsGroup, "qtg_mono_songs_all" );
+ connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openSongs() ) );
+ mMainToolBar->addAction( action );
+
+ // Albums
+ action = createToolBarAction( actionsGroup, "qtg_mono_artists_albums" );
+ connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openArtists() ) );
+ mMainToolBar->addAction( action );
+
// Playlists
- action = createToolBarAction(actionsGroup,
- ":/icons/playlists_on",
- ":/icons/playlists",
- tr("Playlists"));
- connect( action, SIGNAL(triggered(bool)), this, SLOT(openPlaylists()) );
- mMainToolBar->addAction(action);
-
+ action = createToolBarAction( actionsGroup, "qtg_mono_playlist" );
+ connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openPlaylists() ) );
+ mMainToolBar->addAction( action );
+
// Genres
- action = createToolBarAction(actionsGroup,
- ":/icons/search_on",
- ":/icons/search",
- tr("Search"));
- connect( action, SIGNAL(triggered(bool)), this, SLOT(find()) );
- mMainToolBar->addAction(action);
-
+ 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,
- ":/icons/ovi_on",
- ":/icons/ovi",
- tr("Ovi"));
- connect( action, SIGNAL(triggered(bool)), this, SLOT(openMusicStore()) );
- mMainToolBar->addAction(action);
+ action = createToolBarAction(actionsGroup, "qtg_mono_ovistore" );
+ connect( action, SIGNAL( triggered( bool ) ), this, SLOT( openMusicStore() ) );
+ mMainToolBar->addAction( action );
}
}
HbAction* action = 0;
switch ( mCollectionContext ) {
case ECollectionContextAllSongs:
- action = qobject_cast<HbAction*>(mMainToolBar->actions()[KMainToolBarAll]);
+ action = qobject_cast<HbAction*>( mMainToolBar->actions()[KMainToolBarAll] );
break;
- case ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
case ECollectionContextAlbumSongs:
- action = qobject_cast<HbAction*>(mMainToolBar->actions()[KMainToolBarArtists]);
+ action = qobject_cast<HbAction*>( mMainToolBar->actions()[KMainToolBarArtists] );
break;
case ECollectionContextPlaylists:
case ECollectionContextPlaylistSongs:
- action = qobject_cast<HbAction*>(mMainToolBar->actions()[KMainToolBarPlaylists]);
+ action = qobject_cast<HbAction*>( mMainToolBar->actions()[KMainToolBarPlaylists] );
break;
}
if ( action ) {
- action->setChecked(true);
+ action->setChecked( true );
}
if ( toolBar() != mMainToolBar ) {
HbToolBar *tmpToolBar = takeToolBar();
if ( tmpToolBar && tmpToolBar->actions().empty() ) {
tmpToolBar->deleteLater();
}
- setToolBar(mMainToolBar);
+ setToolBar( mMainToolBar );
}
TX_EXIT
}
@@ -842,36 +1076,50 @@
TX_ENTRY
if ( !mPlaylistToolBar ) {
mPlaylistToolBar = new HbToolBar();
- mPlaylistToolBar->setOrientation(Qt::Horizontal);
- HbAction *action;
-
- action = new HbAction( tr("Add") );
- connect( action, SIGNAL(triggered(bool)), this, SLOT(notimplemented()) );
- mPlaylistToolBar->addAction(action);
-
- action = new HbAction( tr("Remove") );
- connect( action, SIGNAL(triggered(bool)), this, SLOT(deleteSongs()));
- mPlaylistToolBar->addAction(action);
-
- action = new HbAction( tr("Reorder") );
- connect( action, SIGNAL(triggered(bool)), this, SLOT(notimplemented()) );
- mPlaylistToolBar->addAction(action);
+ mPlaylistToolBar->setOrientation( Qt::Horizontal );
+ HbAction *action;
+ HbIcon *icon;
+
+ action = new HbAction( this );
+ icon = new HbIcon( "qtg_mono_plus" );
+ action->setIcon( *icon );
+ connect( action, SIGNAL( triggered( bool ) ), this, SLOT( prepareToAddToPlaylist() ) );
+ mPlaylistToolBar->addAction( action );
+
+ action = new HbAction( this );
+ icon = new HbIcon( "qtg_mono_minus" );
+ action->setIcon( *icon);
+ connect( action, SIGNAL( triggered( bool ) ), this, SLOT( deleteSongs() ) );
+ mPlaylistToolBar->addAction( action );
+
+ action = new HbAction( this );
+ icon = new HbIcon( "qtg_mono_organize" );
+ action->setIcon( *icon );
+ connect( action, SIGNAL( triggered( bool ) ), this, SLOT( arrangeSongs() ) );
+ mPlaylistToolBar->addAction( action );
}
-
- int items = mCollectionData->count();
-
- //no use for remove if there are no items.
- mPlaylistToolBar->actions()[KPlaylistToolBarRemove]->setEnabled(items > 0);
-
- //no use for reorder if there is no more than 1 item.
- mPlaylistToolBar->actions()[KplaylistToolBarReorder]->setEnabled(items > 1);
-
+
+ if ( !mUsbBlocked ) {
+ int items = mCollectionData->count();
+
+ mPlaylistToolBar->setEnabled( true );
+
+ //no use for remove if there are no items.
+ mPlaylistToolBar->actions()[KPlaylistToolBarRemove]->setEnabled( items > 0 );
+
+ //no use for reorder if there is no more than 1 item.
+ mPlaylistToolBar->actions()[KplaylistToolBarReorder]->setEnabled( items > 1 );
+ }
+ else {
+ mPlaylistToolBar->setEnabled( false );
+ }
+
if ( toolBar() != mPlaylistToolBar ) {
HbToolBar *tmpToolBar = takeToolBar();
- if (tmpToolBar && tmpToolBar->actions().empty ()) {
+ if ( tmpToolBar && tmpToolBar->actions().empty () ) {
tmpToolBar->deleteLater();
}
- setToolBar(mPlaylistToolBar);
+ setToolBar( mPlaylistToolBar );
}
TX_EXIT
}
@@ -882,18 +1130,13 @@
*/
HbAction *MpCollectionView::createToolBarAction(
QActionGroup *actionsGroup,
- const QString& iconOn,
- const QString& iconOff,
- const QString& toolTip )
+ const QString& icon )
{
- HbIcon actionIcon(iconOff);
- // button pressed icon
- actionIcon.setIconName(iconOn, QIcon::Normal, QIcon::On );
+ HbIcon actionIcon( icon );
- HbAction *action = new HbAction(actionsGroup);
- action->setToolTip(toolTip);
- action->setIcon(actionIcon);
- action->setCheckable(true);
+ HbAction *action = new HbAction( actionsGroup );
+ action->setIcon( actionIcon );
+ action->setCheckable( true );
return action;
}
@@ -907,48 +1150,52 @@
HbMenu* myMenu = new HbMenu();
if ( mViewMode == MpCommon::DefaultView ) {
bool items = mCollectionData->count() != 0;
- if ( mBannerAttached ) {
- connect( myMenu->addAction(tr("Go to Now Playing")), SIGNAL(triggered()), this, SLOT(startPlaybackView()) );
- }
- switch (mCollectionContext) {
+ switch ( mCollectionContext ) {
case ECollectionContextAllSongs:
- if (items) {
- connect( myMenu->addAction(tr("Shuffle play all")), SIGNAL(triggered()), this, SLOT(shufflePlayAll()) );
+ if (items ) {
+ connect( myMenu->addAction( hbTrId( "txt_mus_dblist_shuffle" ) ), SIGNAL( triggered() ), this, SLOT( shufflePlayAll() ) );
}
- connect( myMenu->addAction(tr("Refresh library")), SIGNAL(triggered()), this, SLOT(refreshLibrary()) );
- if (items) {
- connect( myMenu->addAction(tr("Add to playlist")), SIGNAL(triggered()), this, SLOT(addToPlaylist()), Qt::QueuedConnection );
+ if ( !mUsbBlocked ) {
+ if (items ) {
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) ), SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
+ }
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) ), SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );
}
- connect( myMenu->addAction(tr("Exit")), SIGNAL(triggered()), this, SLOT(exit()) );
+ connect( myMenu->addAction(hbTrId("txt_common_opt_exit")), SIGNAL(triggered()), this, SLOT(exit()) );
break;
- case ECollectionContextArtistAlbums:
- //connect( myMenu->addAction(tr("Add to playlist")), SIGNAL(triggered()), this, SLOT(addToPlaylist()), Qt::QueuedConnection );
+ case ECollectionContextAlbums:
+ //connect( myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) ), SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
// Todo: View as coverflow
+ if ( !mUsbBlocked ) {
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) ), SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );
+ }
break;
case ECollectionContextAlbumSongs:
- if (items) {
- connect( myMenu->addAction(tr("Add to playlist")), SIGNAL(triggered()), this, SLOT(addToPlaylist()), Qt::QueuedConnection );
+ if ( items && !mUsbBlocked ) {
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_add_to_playlist" ) ), SIGNAL( triggered() ), this, SLOT( addToPlaylist() ) );
}
break;
case ECollectionContextPlaylists:
- // Todo: Create new playlist
+ if ( !mUsbBlocked ) {
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_new_playlist" ) ), SIGNAL( triggered() ), this, SLOT( prepareToAddToPlaylist() ) );
+ }
break;
case ECollectionContextPlaylistSongs:
- if ( !mCollectionData->isAutoPlaylist() ) {
- connect( myMenu->addAction(tr("Rename playlist")), SIGNAL(triggered()), this, SLOT(renameCurrentPlaylistContainer()), Qt::QueuedConnection );
+ if ( !mCollectionData->isAutoPlaylist() && !mUsbBlocked ) {
+ connect( myMenu->addAction( hbTrId( "txt_common_menu_rename_item" ) ), SIGNAL( triggered() ), this, SLOT( renameCurrentPlaylistContainer() ) );
}
break;
default:
break;
}
}
- else if (mViewMode == MpCommon::FetchView ) {
- if ( mCollectionContext == ECollectionContextAllSongs ) {
- connect( myMenu->addAction(tr("Refresh library")), SIGNAL(triggered()), this, SLOT(refreshLibrary()) );
+ else if ( mViewMode == MpCommon::FetchView ) {
+ if ( mCollectionContext == ECollectionContextAllSongs && !mUsbBlocked ) {
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_refresh_library" ) ), SIGNAL( triggered() ), this, SLOT( refreshLibrary() ) );
}
}
- setMenu(myMenu);
+ setMenu( myMenu );
TX_EXIT
}
@@ -960,21 +1207,21 @@
{
TX_ENTRY
- switch (mCollectionContext) {
+ switch ( mCollectionContext ) {
case ECollectionContextPlaylistSongs:
if ( !mCollectionData->isAutoPlaylist() ) {
setPlaylistToolBar();
}
- else if (!toolBar()->actions().empty()) {
+ else if ( !toolBar()->actions().empty() ) {
takeToolBar();
- setToolBar(new HbToolBar);
- }
+ setToolBar( new HbToolBar );
+ }
break;
case ECollectionContextAlbumSongs:
case ECollectionContextGenreSongs:
- if (!toolBar()->actions().empty()) {
+ if ( !toolBar()->actions().empty() ) {
takeToolBar();
- setToolBar(new HbToolBar);
+ setToolBar( new HbToolBar );
}
break;
default:
@@ -993,18 +1240,18 @@
if ( mViewMode == MpCommon::FetchView ) {
// 'Back' is used in all views in fetch mode because we must
// appear as an embedded application.
- mWindow->addSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyBack);
+ setNavigationAction( mSoftKeyBack );
}
else {
switch ( mCollectionContext ) {
case ECollectionContextAllSongs:
- case ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
case ECollectionContextPlaylists:
case ECollectionContextGenres:
- mWindow->addSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyQuit);
+ setNavigationAction( mSoftKeyQuit );
break;
default:
- mWindow->addSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyBack);
+ setNavigationAction( mSoftKeyBack );
break;
}
}
@@ -1012,33 +1259,23 @@
/*!
\internal
- Clears the softkey set by this view. Restore to previous.
- */
-void MpCollectionView::clearSoftkey()
-{
- mWindow->removeSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyBack);
- mWindow->removeSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyQuit);
-}
-
-/*!
- \internal
Sets the Now Playing Banner visibility based on \a visible.
*/
void MpCollectionView::setBannerVisibility( bool visible )
{
bool ok = false;
- if ( visible && (hbInstance->allMainWindows()[0]->orientation() == Qt::Vertical)) {
- mDocumentLoader->load(MUSIC_COLLECTION_DOCML, "showBanner", &ok);
+ if ( visible && ( hbInstance->allMainWindows()[0]->orientation() == Qt::Vertical ) ) {
+ mDocumentLoader->load( MUSIC_COLLECTION_DOCML, "showBanner", &ok );
mNowPlayingBanner->show();
}
else {
- mDocumentLoader->load(MUSIC_COLLECTION_DOCML, "hideBanner", &ok);
+ mDocumentLoader->load( MUSIC_COLLECTION_DOCML, "hideBanner", &ok );
mNowPlayingBanner->hide();
}
if ( !ok ) {
- TX_LOG_ARGS("Error: invalid xml file.");
- Q_ASSERT_X(ok, "MpCollectionView::setBannerVisibility", "invalid xml file");
+ TX_LOG_ARGS( "Error: invalid xml file." );
+ Q_ASSERT_X( ok, "MpCollectionView::setBannerVisibility", "invalid xml file" );
}
}
@@ -1052,10 +1289,10 @@
int high = mCollectionData->count();
time_t seconds;
- time(&seconds);
- srand((unsigned int) seconds);
+ time( &seconds );
+ srand( ( unsigned int ) seconds );
- int index = rand() % (high - low + 1) + low;
+ int index = rand() % ( high - low + 1 ) + low;
return index;
}
@@ -1063,111 +1300,111 @@
\internal
Launches the 'Add to playlist' dialog.
*/
-void MpCollectionView::launchAddToPlaylistDialog( QList<int> selection )
+void MpCollectionView::launchAddToPlaylistDialog( QList<int> &selection )
{
+ if (!mActivated) {
+ return;
+ }
QString newPlaylistName;
- int playlistIndex;
- bool canceled = false;
+ QStringList playlists;
+ mMpxWrapper->findPlaylists( playlists );
+ HbListDialog dialog;
+ dialog.setStringItems( playlists );
+ dialog.setSelectionMode( HbAbstractItemView::SingleSelection );
+ dialog.setHeadingWidget(new HbLabel( hbTrId( "txt_mus_title_select_playlist" ) ) );
+ dialog.setPrimaryAction(new HbAction( hbTrId( "txt_mus_button_new" ) ) );
+ dialog.setSecondaryAction(new HbAction( hbTrId( "txt_common_button_cancel" ) ) );
forever {
- QStringList list;
- mMpxWrapper->findPlaylists(list);
- if ( list.count()) {
- HbListDialog dialog;
- dialog.setStringItems(list);
- dialog.setSelectionMode(HbAbstractItemView::SingleSelection);
- dialog.setHeadingWidget(new HbLabel(QString(tr("Choose a playlist:"))));
- dialog.setPrimaryAction(new HbAction(QString(tr("New"))));
- dialog.setSecondaryAction(new HbAction(QString(tr("Cancel"))));
- HbAction *selectedAction = dialog.exec();
- if ( selectedAction == dialog.secondaryAction() ) {
- // Cancel
+ if ( playlists.count() ) {
+ //There are saved playlists, query for a saved playlist or new.
+ setOutstandingPopup( &dialog );
+ HbAction *selectedAction = mActivated ? dialog.exec() : 0;
+ setOutstandingPopup( 0 );
+ if ( selectedAction == dialog.primaryAction() ) {
+ //User selected pimaryAction "new", fall trough to new playlyst query.
+ }
+ else if ( dialog.selectedItems().count() ) {//this only works for SingleSelection
+ // User selected existing playlist, add songs and exit the loop.
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ mMpxWrapper->saveToPlaylist( dialog.selectedItems().at( 0 ), selection );
+ }
break;
}
- else if ( selectedAction != dialog.primaryAction()) {
- // User selected existing playlist
- playlistIndex = dialog.selectedItems().at(0);
- mMpxWrapper->saveToPlaylist(playlistIndex, selection);
+ else {
+ //Cancel was pressed or dialog was closed or never executed, exit the loop.
break;
}
}
- else if (canceled) {
+ //querying for a new playlist name.
+ if ( queryNewPlaylistName(newPlaylistName , playlists) ) {
+ // user selected a new playlist, save and exit the loop.
+ if ( !mMpEngine->verifyUsbBlocking( true ) ) {
+ mMpxWrapper->createPlaylist( newPlaylistName, selection );
+ }
break;
}
-
- // New - create a suggested name for the playlist
- QString suggestedPlaylistName(tr("Playlist"));
- int i = 0;
- for (;
- list.contains( QString( suggestedPlaylistName + "(" + QString::number(i) + ")" ) ) ;
- i++ ) {};
- suggestedPlaylistName += QString("(" + QString::number( i ) + ")");
- // Loop until the user cancels or enters a valid name
- forever {
- QString suggestedText;
- bool ok = false;
- suggestedText = HbInputDialog::getText(QString(tr("Enter a name for the new playlist:")), suggestedPlaylistName, &ok);
- if ( !ok ) {
- canceled = true;
- break;
- }
- if ( !list.contains(suggestedText) ) {
- newPlaylistName = suggestedText;
- mMpxWrapper->createPlaylist(newPlaylistName, selection);
- return;
- }
+ else if (!playlists.count()) {
+ // user decided to not provide a new name and there are no saved playlists, exit the loop
+ break;
}
- }
+ // user decided to not provide a new name and there are saved playlists, back to the top.
+ } //forever
}
/*!
\internal
starts a transition of the main container with a decoy snapshot.
*/
-void MpCollectionView::startContainerTransition(TCollectionContext contextFrom, TCollectionContext contextTo)
+void MpCollectionView::startContainerTransition( TCollectionContext contextFrom, TCollectionContext contextTo )
{
- if (!mSnapshot)
- mSnapshot = new MpSnapshotWidget();
- mSnapshot->capture(mWindow, mMainContainer );
- mWindow->scene()->addItem(mSnapshot);
+ if (contextFrom == contextTo) {
+ return;
+ }
+
+ if ( !mSnapshot ) {
+ mSnapshot = new MpSnapshotWidget();
+ }
+ mSnapshot->capture( mWindow, mMainContainer );
+ mWindow->scene()->addItem( mSnapshot );
- if ( ( contextFrom == ECollectionContextArtistAlbums && contextTo == ECollectionContextAlbumSongs ) ||
+ if ( ( contextFrom == ECollectionContextAlbums && contextTo == ECollectionContextAlbumSongs ) ||
( contextFrom == ECollectionContextPlaylists && contextTo == ECollectionContextPlaylistSongs ) ||
- ( contextFrom == ECollectionContextGenres && contextTo == ECollectionContextGenreSongs ) ){
- HbEffect::start(mSnapshot,
- QString("container"),
- QString("slide_out_to_left"));
+ ( contextFrom == ECollectionContextGenres && contextTo == ECollectionContextGenreSongs ) ) {
+ HbEffect::start( mSnapshot,
+ QString( "container" ),
+ QString( "slide_out_to_left" ) );
- HbEffect::start(mMainContainer,
- QString("container"),
- QString("slide_in_to_left_and_fade_in"),
+ HbEffect::start( mMainContainer,
+ QString( "container" ),
+ QString( "slide_in_to_left_and_fade_in" ),
this,
- "containerTransitionComplete");
+ "containerTransitionComplete" );
}
- else if(( contextFrom == ECollectionContextAlbumSongs && contextTo == ECollectionContextArtistAlbums) ||
- ( contextFrom == ECollectionContextPlaylistSongs && contextTo == ECollectionContextPlaylists) ||
- ( contextFrom == ECollectionContextGenreSongs && contextTo == ECollectionContextGenres)) {
- HbEffect::start(mSnapshot,
- QString("container"),
- QString("slide_out_to_right"));
+ else if( ( contextFrom == ECollectionContextAlbumSongs && contextTo == ECollectionContextAlbums ) ||
+ ( contextFrom == ECollectionContextPlaylistSongs && contextTo == ECollectionContextPlaylists ) ||
+ ( contextFrom == ECollectionContextGenreSongs && contextTo == ECollectionContextGenres ) ) {
+ HbEffect::start( mSnapshot,
+ QString( "container" ),
+ QString( "slide_out_to_right" ) );
- HbEffect::start(mMainContainer,
- QString("container"),
- QString("slide_in_to_right_and_fade_in"),
+ HbEffect::start( mMainContainer,
+ QString( "container" ),
+ QString( "slide_in_to_right_and_fade_in" ),
this,
- "containerTransitionComplete");
+ "containerTransitionComplete" );
}
else {
- HbEffect::start(mSnapshot,
- QString("container"),
- QString("slide_out_to_top"));
+ HbEffect::start( mSnapshot,
+ QString( "container" ),
+ QString( "slide_out_to_top" ) );
- HbEffect::start(mMainContainer,
- QString("container"),
- QString("slide_in_to_top_and_fade_in"),
+ HbEffect::start( mMainContainer,
+ QString( "container" ),
+ QString( "slide_in_to_top_and_fade_in" ),
this,
- "containerTransitionComplete");
+ "containerTransitionComplete" );
}
}
@@ -1176,43 +1413,50 @@
\internal
request a delete operation always it has been confirmed.
*/
-void MpCollectionView::requestDelete(QList<int> selection)
-{
- bool confirmation(false);
+void MpCollectionView::requestDelete( QList<int> &selection )
+{
+ bool confirmation( false );
// Todo: Use HbMessageBox::question when time-out removed from it
- HbMessageBox dialog(HbMessageBox::MessageTypeQuestion);
+ HbMessageBox dialog( HbMessageBox::MessageTypeQuestion );
+
QString message;
- HbAction *action;
-
- switch (mCollectionContext) {
+ HbAction *action = 0;
+
+ switch ( mCollectionContext ) {
case ECollectionContextAllSongs:
case ECollectionContextAlbumSongs:
- message = QString(tr("Delete song?"));
- dialog.setText(message);
- dialog.setTimeout(HbPopup::NoTimeout);
- action = dialog.exec();
- if (action == dialog.primaryAction()) {
+ message = hbTrId( "txt_mus_delete_song" );
+ dialog.setText( message );
+ dialog.setTimeout( HbPopup::NoTimeout );
+ setOutstandingPopup( &dialog );
+ action = mActivated ? dialog.exec() : 0;
+ setOutstandingPopup( 0 );
+ if ( action && action == dialog.primaryAction() ) {
confirmation = true;
}
break;
- case ECollectionContextArtistAlbums:
- message = QString(tr("Delete album?"));
- dialog.setText(message);
- dialog.setTimeout(HbPopup::NoTimeout);
- action = dialog.exec();
- if (action == dialog.primaryAction()) {
+ case ECollectionContextAlbums:
+ message = hbTrId( "txt_mus_delete_album" );
+ dialog.setText( message );
+ dialog.setTimeout( HbPopup::NoTimeout );
+ setOutstandingPopup( &dialog );
+ action = mActivated ? dialog.exec() : 0;
+ setOutstandingPopup( 0 );
+ if ( action && action == dialog.primaryAction() ) {
confirmation = true;
}
break;
case ECollectionContextPlaylists:
- message = QString(tr("Delete playlist?"));
- dialog.setText(message);
- dialog.setTimeout(HbPopup::NoTimeout);
- action = dialog.exec();
- if (action == dialog.primaryAction()) {
+ message = hbTrId( "txt_mus_delete_playlist" );
+ dialog.setText( message );
+ dialog.setTimeout( HbPopup::NoTimeout );
+ setOutstandingPopup( &dialog );
+ action = mActivated ? dialog.exec() : 0;
+ setOutstandingPopup( 0 );
+ if ( action && action == dialog.primaryAction() ) {
confirmation = true;
}
- break;
+ break;
case ECollectionContextPlaylistSongs:
case ECollectionContextGenres:
case ECollectionContextGenreSongs:
@@ -1221,11 +1465,114 @@
case ECollectionContextUnknown:
default:
// We shouldn't be here
- TX_LOG_ARGS("Invalid Collection Context:" << mCollectionContext);
+ TX_LOG_ARGS( "Invalid Collection Context:" << mCollectionContext );
break;
}
- if ( confirmation ) {
- mMpxWrapper->deleteSongs(selection);
- }
+ if ( confirmation && !mMpEngine->verifyUsbBlocking( true ) ) {
+ mMpxWrapper->deleteSongs( selection );
+ }
+}
+
+/*!
+ \internal
+ Returns a list of itmes selected.
+ */
+QModelIndexList MpCollectionView::getModelIndexes( const QString &label, QAbstractItemModel* model, bool &ok )
+{
+ QModelIndexList result;
+
+ if ( !mActivated ) {
+ ok = false;
+ return result;
+ }
+
+ HbListDialog *dlg = new HbListDialog();
+ dlg->setHeadingWidget( new HbLabel( label ) );
+ dlg->setSelectionMode( HbAbstractItemView::MultiSelection );
+ dlg->setModel( model );
+ setOutstandingPopup( dlg );
+ HbAction* action = mActivated ? dlg->exec() : 0;
+ setOutstandingPopup( 0 );
+ if( action == dlg->primaryAction() ){ //OK was pressed
+ ok = true;
+ result = dlg->selectedModelIndexes();
+ }
+ else{ //Cancel was pressed or dialog was closed or never executed.
+ ok = false;
+ }
+ dlg->setModel( 0 );
+ delete dlg;
+ return result;
}
+
+/*!
+ \internal
+ Returns a string from user input.
+ */
+QString MpCollectionView::getText( const QString &label,const QString &text,
+ bool &ok )
+{
+
+ QString result;
+
+ if ( !mActivated ) {
+ ok = false;
+ return result;
+ }
+
+ HbInputDialog *dlg = new HbInputDialog();
+ dlg->setPromptText( label );
+ dlg->setInputMode( HbInputDialog::TextInput );
+ dlg->setValue( text );
+ setOutstandingPopup( dlg );
+ HbAction* action = mActivated ? dlg->exec() : 0;
+ setOutstandingPopup( 0 );
+ if( action == dlg->primaryAction() ) { //OK was pressed
+ ok = true;
+ result = dlg->value().toString();
+ } else { //Cancel was pressed or dialog was closed or never executed.
+ ok = false;
+ }
+ delete dlg;
+ return result;
+}
+
+/*!
+ \internal
+ sets \a popup as the current outstanding popup and cancels any otstanding popup.
+ */
+void MpCollectionView::setOutstandingPopup( HbPopup *popup )
+{
+ if ( mOutstandingPopup ) {
+ mOutstandingPopup->close();
+ }
+ mOutstandingPopup = popup;
+}
+
+/*!
+ \internal
+ sets \a newPlaylistName with imput name from the user, uses \a playlists to
+ generate a suggested playlist name, retrns true if the user confirmed the query.
+ */
+bool MpCollectionView::queryNewPlaylistName(QString &newPlaylistName , const QStringList &playlists )
+{
+ bool ret= false;
+ if (!mActivated) {
+ return ret;
+ }
+ int i = 0;
+ for ( ;
+ playlists.contains( hbTrId( "txt_mus_dialog_enter_name_entry_playlist_l1" ).arg( i ) ) ;
+ i++ ) {};
+ QString suggestedPlaylistName = hbTrId( "txt_mus_dialog_enter_name_entry_playlist_l1" ).arg( i );
+ QString suggestedText;
+ bool ok = false;
+ suggestedText = getText( hbTrId("txt_mus_dialog_enter_name" ), suggestedPlaylistName, ok);
+ if ( ok ) {
+ newPlaylistName = suggestedText;
+ ret = true;
+ }
+ return ret;
+}
+
--- a/mpviewplugins/mpcollectionviewplugin/src/mpmpxcollectiondata.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpmpxcollectiondata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -114,7 +114,52 @@
{
return d_ptr->itemCount(index);
}
-
+
+/*!
+ Returns the current container id.
+ */
+int MpMpxCollectionData::containerId()
+{
+ return d_ptr->containerId();
+}
+
+/*!
+ Returns id of the item specified by \a index
+ */
+int MpMpxCollectionData::itemId(int index)
+{
+ return d_ptr->itemId(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)
+{
+ d_ptr->removeItem(index);
+}
+
+/*!
+ Test wether the cached item matches \a itemId.
+ \sa removeItem() insertCachedItem()
+ */
+bool MpMpxCollectionData::testCachedItem( int itemId )
+{
+ return d_ptr->testCachedItem( itemId );
+}
+
+/*!
+ Inserts the cached item in the location specified by \a index
+ \sa removeItem() testCachedItem()
+ */
+void MpMpxCollectionData::insertCachedItem(int index)
+{
+ return d_ptr->insertCachedItem( index );
+}
+
/*!
Sets the media \a entries from the MPX framework.
Internal usage only from MpMpxFrameworkWrapper.
--- a/mpviewplugins/mpcollectionviewplugin/src/mpmpxcollectiondata_p.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpmpxcollectiondata_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -44,7 +44,8 @@
: q_ptr( wrapper ),
iContainerMedia(0),
iMediaArray(0),
- iContext( ECollectionContextUnknown )
+ iContext( ECollectionContextUnknown ),
+ iCachedRemovedItem ( 0 )
{
TX_LOG
}
@@ -56,6 +57,7 @@
{
TX_ENTRY
delete iContainerMedia;
+ delete iCachedRemovedItem;
TX_EXIT
}
@@ -177,6 +179,83 @@
/*!
\internal
*/
+int MpMpxCollectionDataPrivate::containerId()
+{
+ int id = -1;
+ TRAPD( err, id = DoGetContainerIdL() );
+ if ( err == KErrNone ) {
+ TX_LOG_ARGS("id=" << id);
+ }
+ else {
+ TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ }
+ TX_EXIT
+ return id;
+}
+
+/*!
+ \internal
+ */
+int MpMpxCollectionDataPrivate::itemId(int index)
+{
+ TX_ENTRY_ARGS("index=" << index);
+ int id = -1;
+ TRAPD(err, id = DoGetItemIdL(index));
+ if ( err == KErrNone ) {
+ TX_LOG_ARGS("id=" << id);
+ }
+ else {
+ TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ }
+ TX_EXIT
+ return id;
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::removeItem(int index)
+{
+ TX_ENTRY_ARGS("index=" << index);
+ TRAPD(err, DoRemoveItemL(index));
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ }
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+bool MpMpxCollectionDataPrivate::testCachedItem( int itemId )
+{
+ TX_ENTRY_ARGS( "itemId=" << itemId);
+ bool match = false;
+ TRAPD( err, match = DoTestCachedItemL( itemId ) );
+ if ( err == KErrNone ) {
+ TX_LOG_ARGS("match=" << match);
+ }
+ else {
+ TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ }
+ TX_EXIT
+ return match;
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::insertCachedItem(int index)
+{
+ TX_ENTRY_ARGS("index=" << index);
+ iMediaArray->Insert( iCachedRemovedItem, index );
+ iCachedRemovedItem = 0; //ownership tranferred above.
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
void MpMpxCollectionDataPrivate::setMpxMedia( const CMPXMedia& entries )
{
TX_ENTRY
@@ -303,6 +382,52 @@
/*!
\internal
*/
+int MpMpxCollectionDataPrivate::DoGetContainerIdL()
+{
+ if ( !iContainerMedia->IsSupported( KMPXMediaGeneralId ) ) {
+ User::Leave(KErrNotFound);
+ }
+ return iContainerMedia->ValueTObjectL<TInt>( KMPXMediaGeneralId );
+}
+
+/*!
+ \internal
+ */
+int MpMpxCollectionDataPrivate::DoGetItemIdL( int index )
+{
+ CMPXMedia* currentMedia( iMediaArray->AtL( index ) );
+ if ( !currentMedia->IsSupported( KMPXMediaGeneralId ) ) {
+ User::Leave(KErrNotFound);
+ }
+ return currentMedia->ValueTObjectL<TInt>( KMPXMediaGeneralId );
+}
+
+/*!
+ \internal
+ */
+void MpMpxCollectionDataPrivate::DoRemoveItemL( int index )
+{
+ delete iCachedRemovedItem;
+ iCachedRemovedItem = 0;
+ iCachedRemovedItem = CMPXMedia::NewL( *iMediaArray->AtL( index ) );
+ iMediaArray->Remove( index );
+}
+
+/*!
+ \internal
+ */
+bool MpMpxCollectionDataPrivate::DoTestCachedItemL( int itemId )
+{
+ if ( !iCachedRemovedItem && !iCachedRemovedItem->IsSupported( KMPXMediaGeneralId ) ) {
+ User::Leave(KErrNotFound);
+ }
+ return ( itemId == iCachedRemovedItem->ValueTObjectL<TInt>( KMPXMediaGeneralId ) );
+}
+
+
+/*!
+ \internal
+ */
void MpMpxCollectionDataPrivate::SetCollectionContextL()
{
TX_ENTRY
@@ -324,7 +449,7 @@
iContext = ECollectionContextAllSongs;
break;
case EMPXAlbum:
- iContext = ECollectionContextArtistAlbums;
+ iContext = ECollectionContextAlbums;
break;
case EMPXPlaylist:
iContext = ECollectionContextPlaylists;
--- a/mpviewplugins/mpcollectionviewplugin/src/mpmpxframeworkwrapper.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpmpxframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -27,21 +27,54 @@
*/
/*!
- \fn void playlistOpened()
+ \fn void collectionPlaylistOpened()
+
+ This signal is emitted when A new collection playlist is opened and
+ playback is initialized.
+
+ */
- This signal is emitted when
+/*!
+ \fn void playlistSaved( bool success )
- \sa openCollectionItem()
+ This signal is emitted when playlist save operation is completed, it
+ indicates the operation \a success .
+
*/
/*!
+ \fn void songsDeleted( bool success )
+
+ This signal is emitted when song delete operation is completed, it
+ indicates the operation \a success .
+
+ */
+
+/*!
+ \fn void playlistsRenamed( bool success )
+
+ This signal is emitted when playlist rename operation is completed, it
+ indicates the operation \a success .
+
+ */
+
+/*!
+ \fn void isolatedCollectionOpened( MpMpxCollectionData* collectionData )
+
+ This signal is emitted when an isolated collection is opened on \a context
+
+ */
+
+
+
+/*!
Constructs the utility wrapper.
*/
MpMpxFrameworkWrapper::MpMpxFrameworkWrapper( MpCommon::MpViewMode viewMode, QObject *parent )
- : QObject(parent)
+ : QObject( parent )
{
- d_ptr = new MpMpxFrameworkWrapperPrivate(this);
- d_ptr->init(viewMode);
+ d_ptr = new MpMpxFrameworkWrapperPrivate( this );
+ d_ptr->init( viewMode );
}
/*!
@@ -59,7 +92,7 @@
*/
void MpMpxFrameworkWrapper::openCollection( TCollectionContext context )
{
- d_ptr->openCollection(context);
+ d_ptr->openCollection( context );
}
/*!
@@ -69,17 +102,7 @@
*/
void MpMpxFrameworkWrapper::openCollectionItem( int index )
{
- d_ptr->openCollectionItem(index);
-}
-
-/*!
- Opens the collection in its current state.
-
- \sa collectionOpened()
- */
-void MpMpxFrameworkWrapper::reopenCollection()
-{
- d_ptr->reopenCollection();
+ d_ptr->openCollectionItem( index );
}
/*!
@@ -98,47 +121,55 @@
*/
void MpMpxFrameworkWrapper::findPlaylists( QStringList &playlists )
{
- d_ptr->findPlaylists(playlists);
+ d_ptr->findPlaylists( playlists );
}
/*!
- Creates a new playlist with name \a playlistName and adds \a selection.
+ Creates a new playlist with name \a playlistName and adds \a selection and optionally uses \a collectionData.
*/
-void MpMpxFrameworkWrapper::createPlaylist( QString playlistName, QList<int> selection )
+void MpMpxFrameworkWrapper::createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData )
{
- d_ptr->createPlaylist(playlistName, selection);
+ d_ptr->createPlaylist( playlistName, selection, collectionData );
}
/*!
Adds \a selection to the playlist specified in \a playlistIndex.
*/
-void MpMpxFrameworkWrapper::saveToPlaylist( int playlistIndex, QList<int> selection )
+void MpMpxFrameworkWrapper::saveToPlaylist( int playlistIndex, QList<int> &selection )
{
- d_ptr->saveToPlaylist(playlistIndex, selection);
+ d_ptr->saveToPlaylist( playlistIndex, selection );
}
/*!
Rename a playlist by \a index with \a name.
*/
-void MpMpxFrameworkWrapper::renamePlaylist( QString newName, int index )
+void MpMpxFrameworkWrapper::renamePlaylist( QString &newName, int index )
{
- d_ptr->renamePlaylist(newName, index);
+ d_ptr->renamePlaylist( newName, index );
+}
+
+/*!
+ Adds \a selection to the current playlist from the specified \a collectionData.
+ */
+void MpMpxFrameworkWrapper::saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData )
+{
+ d_ptr->saveToCurrentPlaylist( selection, collectionData );
}
/*!
Rename a playlist with \a name.
*/
-void MpMpxFrameworkWrapper::renamePlaylist( QString newName )
+void MpMpxFrameworkWrapper::renamePlaylist( QString &newName )
{
- d_ptr->renamePlaylist(newName);
+ d_ptr->renamePlaylist( newName );
}
/*!
Deletes \a selection from the collection.
*/
-void MpMpxFrameworkWrapper::deleteSongs( QList<int> selection )
+void MpMpxFrameworkWrapper::deleteSongs( QList<int> &selection )
{
- d_ptr->deleteSongs(selection);
+ d_ptr->deleteSongs( selection );
}
/*!
@@ -146,7 +177,33 @@
*/
void MpMpxFrameworkWrapper::setShuffle( bool active )
{
- d_ptr->setShuffle(active);
+ d_ptr->setShuffle( active );
+}
+
+/*!
+ Initiate a playback preview for the selected item.
+ */
+void MpMpxFrameworkWrapper::previewItem( int index )
+{
+ d_ptr->previewItem( index );
+}
+
+
+/*!
+ Opens the an isolated collection with \a context.
+ \sa isolatedCollectionOpened()
+ */
+void MpMpxFrameworkWrapper::openIsolatedCollection( TCollectionContext context )
+{
+ d_ptr->openIsolatedCollection( context );
+}
+
+/*!
+ Releases the resources used for the isolated collection.
+ */
+void MpMpxFrameworkWrapper::releaseIsolatedCollection()
+{
+ d_ptr->releaseIsolatedCollection();
}
/*!
@@ -158,25 +215,23 @@
}
/*!
- Initiates collection scanning.
+ Slot to be called to reopen the collection in its current state.
+
+ \sa collectionOpened()
*/
-void MpMpxFrameworkWrapper::scan()
+void MpMpxFrameworkWrapper::reopenCollection()
{
- d_ptr->scan();
+ d_ptr->reopenCollection();
}
/*!
- Cancels ongoing collection scanning.
+ Slot to be called to request a reorder operation , indicates that
+ the item with \a playlistId , \a songId is to be moved from
+ \a originalOrdinal to \a newOrdinal.
*/
-void MpMpxFrameworkWrapper::cancelScan()
+void MpMpxFrameworkWrapper::reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal )
{
- d_ptr->cancelScan();
+ d_ptr->reorderPlaylist( playlistId, songId, originalOrdinal, newOrdinal );
}
-/*!
- Initiate a playback preview for the selected item.
- */
-void MpMpxFrameworkWrapper::previewItem( int index )
-{
- d_ptr->previewItem(index);
-}
+
--- a/mpviewplugins/mpcollectionviewplugin/src/mpmpxframeworkwrapper_p.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpmpxframeworkwrapper_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -69,15 +69,16 @@
\internal
*/
MpMpxFrameworkWrapperPrivate::MpMpxFrameworkWrapperPrivate( MpMpxFrameworkWrapper *wrapper )
- : q_ptr(wrapper),
- iCollectionUtility(0),
- iCollectionUiHelper(0),
- iIncrementalOpenUtil(0),
- iPlaybackUtility(0),
- iHarvesterUtility(0),
- iCollectionData(0),
- iFirstIncrementalOpen(EFalse),
- iUserPlaylists(0)
+ : q_ptr( wrapper ),
+ iCollectionUtility( 0 ),
+ iCollectionUiHelper( 0 ),
+ iIncrementalOpenUtil( 0 ),
+ iIsolatedCollectionHelper( 0 ),
+ iPlaybackUtility( 0 ),
+ iCollectionData( 0 ),
+ iIsolatedCollectionData( 0 ),
+ iFirstIncrementalOpen( EFalse ),
+ iUserPlaylists( 0 )
{
TX_LOG
}
@@ -89,6 +90,7 @@
{
TX_ENTRY
delete iCollectionData;
+ delete iIsolatedCollectionData;
if ( iCollectionUtility ) {
iCollectionUtility->Collection().CancelRequest();
@@ -99,15 +101,12 @@
iCollectionUiHelper->Close();
}
- if ( iPlaybackUtility ) {
+ if ( iPlaybackUtility ) {
iPlaybackUtility->Close();
}
- if ( iHarvesterUtility ) {
- iHarvesterUtility->Close();
- }
-
delete iIncrementalOpenUtil;
+ delete iIsolatedCollectionHelper;
delete iUserPlaylists;
TX_EXIT
@@ -120,9 +119,9 @@
{
iViewMode = viewMode;
- TRAPD(err, DoInitL());
+ TRAPD( err, DoInitL() );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
@@ -131,9 +130,9 @@
*/
void MpMpxFrameworkWrapperPrivate::openCollection( TCollectionContext context )
{
- TRAPD(err, DoOpenCollectionL(context));
+ TRAPD( err, DoOpenCollectionL( context ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
@@ -142,9 +141,9 @@
*/
void MpMpxFrameworkWrapperPrivate::openCollectionItem( int index )
{
- TRAPD(err, DoOpenCollectionItemL(index));
+ TRAPD( err, DoOpenCollectionItemL( index ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
@@ -153,9 +152,9 @@
*/
void MpMpxFrameworkWrapperPrivate::reopenCollection()
{
- TRAPD(err, DoReopenCollectionL());
+ TRAPD( err, DoReopenCollectionL() );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
@@ -164,9 +163,9 @@
*/
void MpMpxFrameworkWrapperPrivate::back()
{
- TRAPD(err, DoBackL());
+ TRAPD( err, DoBackL() );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
/*!
@@ -174,64 +173,75 @@
*/
void MpMpxFrameworkWrapperPrivate::findPlaylists( QStringList &playlists )
{
- TRAPD(err, DoFindPlaylistsL(playlists));
+ TRAPD( err, DoFindPlaylistsL( playlists ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::createPlaylist( QString playlistName, QList<int> selection )
+void MpMpxFrameworkWrapperPrivate::createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData )
{
- TRAPD(err, DoCreatePlaylistL(playlistName, selection));
+ TRAPD( err, DoCreatePlaylistL( playlistName, selection, collectionData ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+ }
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::saveToPlaylist( int playlistIndex, QList<int> &selection )
+{
+ TRAPD( err, DoSaveToPlaylistL( playlistIndex, selection ) );
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::saveToPlaylist( int playlistIndex, QList<int> selection )
+void MpMpxFrameworkWrapperPrivate::saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData )
{
- TRAPD(err, DoSaveToPlaylistL(playlistIndex, selection));
+ TRAPD( err, DoSaveToCurrentPlaylistL( selection, collectionData ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+ }
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::deleteSongs( QList<int> &selection )
+{
+ TRAPD( err, DoDeleteSongsL( selection ) );
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::deleteSongs( QList<int> selection )
-{
- TRAPD(err, DoDeleteSongsL(selection));
+void MpMpxFrameworkWrapperPrivate::renamePlaylist( QString &newName, int index )
+{
+ TRAPD( err, DoRenamePlaylistL( newName, index ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::renamePlaylist( QString newName, int index )
+void MpMpxFrameworkWrapperPrivate::renamePlaylist( QString &newName )
{
- TRAPD(err, DoRenamePlaylistL(newName, index));
+ TRAPD( err, DoRenamePlaylistL( newName ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
- }
-}
-
-/*!
- \internal
- */
-void MpMpxFrameworkWrapperPrivate::renamePlaylist( QString newName )
-{
- TRAPD(err, DoRenamePlaylistL(newName));
- if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
/*!
@@ -239,31 +249,9 @@
*/
void MpMpxFrameworkWrapperPrivate::setShuffle( bool active )
{
- TRAPD(err, DoSetShuffleL(active));
- if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
- }
-}
-
-/*!
- \internal
- */
-void MpMpxFrameworkWrapperPrivate::scan()
-{
- TRAPD(err, DoScanL());
+ TRAPD( err, DoSetShuffleL( active ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
- }
-}
-
-/*!
- \internal
- */
-void MpMpxFrameworkWrapperPrivate::cancelScan()
-{
- TRAPD(err, DoCancelScanL());
- if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
@@ -272,9 +260,42 @@
*/
void MpMpxFrameworkWrapperPrivate::previewItem( int index )
{
- TRAPD(err, DoPreviewItemL(index));
+ TRAPD( err, DoPreviewItemL( index ) );
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+ }
+}
+
+/*!
+ \internal
+ */
+ void MpMpxFrameworkWrapperPrivate::openIsolatedCollection( TCollectionContext context )
+{
+ TRAPD( err, DoOpenIsolatedCollectionL( context ) );
if ( err != KErrNone ) {
- TX_LOG_ARGS("Error: " << err << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
+ }
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::releaseIsolatedCollection()
+{
+ delete iIsolatedCollectionHelper;
+ iIsolatedCollectionHelper = 0;
+ delete iIsolatedCollectionData;
+ iIsolatedCollectionData = 0;
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal )
+{
+ TRAPD( err, DoReorderPlaylistL( playlistId, songId, originalOrdinal, newOrdinal ) );
+ if ( err != KErrNone ) {
+ TX_LOG_ARGS( "Error: " << err << "; should never get here." );
}
}
@@ -289,23 +310,23 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::HandleOpenL(
+void MpMpxFrameworkWrapperPrivate::HandleOpenL(
const CMPXMedia& aEntries,
TInt aIndex,
TBool aComplete,
TInt aError )
{
- Q_UNUSED(aIndex);
- TX_UNUSED(aComplete);
- TX_ENTRY_ARGS("aError=" << aError << "aComplete=" << aComplete);
+ Q_UNUSED( aIndex );
+ TX_UNUSED( aComplete );
+ TX_ENTRY_ARGS( "aError=" << aError << "aComplete=" << aComplete );
if ( aError == KErrNone ) {
if ( iFirstIncrementalOpen ) {
- iCollectionData->setMpxMedia(aEntries);
+ iCollectionData->setMpxMedia( aEntries );
iFirstIncrementalOpen = EFalse;
}
}
else {
- TX_LOG_ARGS("Error: " << aError << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
}
TX_EXIT
}
@@ -313,25 +334,25 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::HandleOpenL(
+void MpMpxFrameworkWrapperPrivate::HandleOpenL(
const CMPXCollectionPlaylist& aPlaylist,
TInt aError )
{
- TX_ENTRY_ARGS("aError=" << aError);
+ TX_ENTRY_ARGS( "aError=" << aError );
if ( aError == KErrNone ) {
if ( !iPlaybackUtility ) {
- iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid(MpCommon::KMusicPlayerUid) );
+ iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( MpCommon::KMusicPlayerUid ) );
if ( iViewMode == MpCommon::DefaultView ) {
iPlaybackUtility->SetL( EPbPropertyRandomMode, MpSettingsManager::shuffle() ? ETrue : EFalse );
- iPlaybackUtility->SetL( EPbPropertyRepeatMode, MpSettingsManager::repeat() ? EPbRepeatAll : EPbRepeatOff);
+ iPlaybackUtility->SetL( EPbPropertyRepeatMode, MpSettingsManager::repeat() ? EPbRepeatAll : EPbRepeatOff );
}
}
iPlaybackUtility->InitL( aPlaylist, ETrue );
emit q_ptr->collectionPlaylistOpened();
}
else {
- TX_LOG_ARGS("Error: " << aError << "; should never get here.");
+ TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
}
TX_EXIT
}
@@ -339,11 +360,11 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::HandleCollectionMessage(
+void MpMpxFrameworkWrapperPrivate::HandleCollectionMessage(
CMPXMessage* aMsg,
TInt aErr )
{
- TX_ENTRY_ARGS("aErr=" << aErr);
+ TX_ENTRY_ARGS( "aErr=" << aErr );
if ( aErr == KErrNone && aMsg )
{
TRAP_IGNORE( DoHandleCollectionMessageL( *aMsg ) );
@@ -354,48 +375,33 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::HandleCollectionMediaL(
+void MpMpxFrameworkWrapperPrivate::HandleCollectionMediaL(
const CMPXMedia& aMedia,
TInt aError )
{
- Q_UNUSED(aMedia);
- Q_UNUSED(aError);
+ Q_UNUSED( aMedia );
+ Q_UNUSED( aError );
}
/*!
\internal
Handles the completion of any collection helper event.
*/
-void MpMpxFrameworkWrapperPrivate::HandleOperationCompleteL(
+void MpMpxFrameworkWrapperPrivate::HandleOperationCompleteL(
TCHelperOperation aOperation,
TInt aErr,
void* aArgument )
{
- TX_ENTRY_ARGS("aErr=" << aErr);
+ TX_ENTRY_ARGS( "aErr=" << aErr );
switch( aOperation ) {
case EDeleteOp:
- if ( KErrNone == aErr ) {
- emit q_ptr->songsDeleted(true);
- }
- else {
- emit q_ptr->songsDeleted(false);
- }
+ emit q_ptr->songsDeleted( KErrNone == aErr );
break;
case EAddOp:
- if ( KErrNone == aErr ) {
- emit q_ptr->playlistSaved(true);
- }
- else {
- emit q_ptr->playlistSaved(false);
- }
+ emit q_ptr->playlistSaved( KErrNone == aErr );
break;
case ERenameOp:
- if ( KErrNone == aErr ) {
- emit q_ptr->playlistsRenamed(true);
- }
- else {
- emit q_ptr->playlistsRenamed(false);
- }
+ emit q_ptr->playlistsRenamed( KErrNone == aErr );
break;
default:
break;
@@ -409,6 +415,27 @@
/*!
\internal
*/
+void MpMpxFrameworkWrapperPrivate::HandleIsolatedOpenL( const CMPXMedia& aEntries, TInt aError )
+{
+ TX_ENTRY_ARGS( "aError=" << aError );
+ if ( aError == KErrNone ) {
+ if ( iIsolatedCollectionData ) {
+ delete iIsolatedCollectionData;
+ iIsolatedCollectionData = 0;
+ }
+ iIsolatedCollectionData = new MpMpxCollectionData();
+ iIsolatedCollectionData->setMpxMedia( aEntries );
+ emit q_ptr->isolatedCollectionOpened( iIsolatedCollectionData );
+ }
+ else {
+ TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
+ }
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
void MpMpxFrameworkWrapperPrivate::DoInitL()
{
TX_ENTRY
@@ -416,9 +443,6 @@
iCollectionUiHelper = CMPXCollectionHelperFactory:: NewCollectionUiHelperL();
iIncrementalOpenUtil = CMPXCollectionOpenUtility::NewL( this );
- iHarvesterUtility = CMPXHarvesterFactory::NewL();
- iHarvesterUtility->CheckForSystemEventsL();
-
iCollectionData = new MpMpxCollectionData();
TX_EXIT
}
@@ -426,10 +450,10 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoOpenCollectionL(
+void MpMpxFrameworkWrapperPrivate::DoOpenCollectionL(
TCollectionContext aContext )
{
- TX_ENTRY_ARGS("aContext=" << aContext);
+ TX_ENTRY_ARGS( "aContext=" << aContext );
switch ( aContext ) {
case ECollectionContextAllSongs:
@@ -440,7 +464,7 @@
CleanupStack::PopAndDestroy( cpath );
break;
}
- case ECollectionContextArtistAlbums:
+ case ECollectionContextAlbums:
{
CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
CleanupStack::PushL( cpath );
@@ -468,7 +492,7 @@
break;
}
default:
- TX_LOG_ARGS("Error: Unexpected context; should never get here.");
+ TX_LOG_ARGS( "Error: Unexpected context; should never get here." );
break;
}
TX_EXIT
@@ -479,7 +503,7 @@
*/
void MpMpxFrameworkWrapperPrivate::DoOpenCollectionItemL( TInt aIndex )
{
- TX_ENTRY_ARGS("aIndex=" << aIndex);
+ TX_ENTRY_ARGS( "aIndex=" << aIndex );
iCollectionUtility->Collection().OpenL( aIndex );
TX_EXIT
}
@@ -515,7 +539,7 @@
CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
CleanupStack::PushL( cpath );
cpath->Back();
- iCollectionUtility->Collection().OpenL(*cpath);
+ iCollectionUtility->Collection().OpenL( *cpath );
CleanupStack::PopAndDestroy( cpath );
TX_EXIT
}
@@ -546,15 +570,15 @@
CMPXMedia* criteria = CMPXMedia::NewL();
CleanupStack::PushL( criteria );
- criteria->SetTObjectValueL<TMPXGeneralType>(
+ criteria->SetTObjectValueL<TMPXGeneralType>(
KMPXMediaGeneralType, EMPXGroup );
- criteria->SetTObjectValueL<TMPXGeneralCategory>(
+ criteria->SetTObjectValueL<TMPXGeneralCategory>(
KMPXMediaGeneralCategory, EMPXPlaylist );
// Look up collection UID and set to criteria
RArray<TUid> ary;
CleanupClosePushL( ary );
- ary.AppendL( TUid::Uid(EMPXCollectionPluginMusic) );
+ ary.AppendL( TUid::Uid( EMPXCollectionPluginMusic ) );
TUid musicCollection = iCollectionUtility->CollectionIDL( ary.Array() );
CleanupStack::PopAndDestroy( &ary );
@@ -567,10 +591,10 @@
if ( iUserPlaylists ) {
const CMPXMediaArray* mediaArray =
iUserPlaylists->Value<CMPXMediaArray>( KMPXMediaArrayContents );
- User::LeaveIfNull(const_cast<CMPXMediaArray*>(mediaArray));
+ User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ) );
TInt count = mediaArray->Count();
for ( TInt i = 0; i < count; i++ ) {
- CMPXMedia* media( mediaArray->AtL(i) );
+ CMPXMedia* media( mediaArray->AtL( i ) );
const TDesC& titleText = media->ValueText( KMPXMediaGeneralTitle );
if ( titleText.Compare( KNullDesC ) != 0 ) {
playlists += QString::fromUtf16( titleText.Ptr(), titleText.Length() );
@@ -583,104 +607,139 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoCreatePlaylistL( QString playlistName, QList<int> selection )
+void MpMpxFrameworkWrapperPrivate::DoCreatePlaylistL( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData )
{
- TX_ENTRY_ARGS("playlistName=" << playlistName);
+ TX_ENTRY_ARGS( "playlistName=" << playlistName );
CMPXMedia* tracks = CMPXMedia::NewL();
CleanupStack::PushL( tracks );
- TPtrC ptr(reinterpret_cast<const TText*>(playlistName.constData()));
+ TPtrC ptr( reinterpret_cast<const TText*>( playlistName.constData() ) );
tracks->SetTextValueL( KMPXMediaGeneralTitle, ptr );
tracks->SetTextValueL( KMPXMediaGeneralUri, KPlaylistPath );
- PreparePlaylistMediaL(*tracks, selection);
+ //if collection data is not provided we use the browsing collection.
+ PreparePlaylistMediaL( *tracks, selection, collectionData ? collectionData : iCollectionData );
iCollectionUiHelper->IncAddL( *tracks, this, KMPXChunkSize );
CleanupStack::PopAndDestroy( tracks );
+ TX_EXIT
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoSaveToPlaylistL( int playlistIndex, QList<int> selection )
+void MpMpxFrameworkWrapperPrivate::DoSaveToPlaylistL( TMPXItemId playlistId, QList<int> &selection, MpMpxCollectionData *collectionData )
{
- TX_ENTRY_ARGS("playlistIndex=" << playlistIndex);
+ TX_ENTRY_ARGS( "playlistId=" << int( playlistId ) );
+
CMPXMedia* tracks = CMPXMedia::NewL();
CleanupStack::PushL( tracks );
- const CMPXMediaArray* mediaArray =
- iUserPlaylists->Value<CMPXMediaArray>( KMPXMediaArrayContents );
- User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ));
- CMPXMedia* media( mediaArray->AtL(playlistIndex) );
- TMPXItemId playlistId = media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
-
RArray<TUid> ary;
CleanupClosePushL( ary );
- ary.AppendL( TUid::Uid(EMPXCollectionPluginMusic) );
+ ary.AppendL( TUid::Uid( EMPXCollectionPluginMusic ) );
TUid musicCollection = iCollectionUtility->CollectionIDL( ary.Array() );
CleanupStack::PopAndDestroy( &ary );
tracks->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, playlistId );
tracks->SetTObjectValueL<TUid>( KMPXMediaGeneralCollectionId, musicCollection );
- PreparePlaylistMediaL(*tracks, selection);
+ PreparePlaylistMediaL( *tracks, selection, collectionData );
iCollectionUiHelper->IncAddL( *tracks, this, KMPXChunkSize );
CleanupStack::PopAndDestroy( tracks );
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoSaveToPlaylistL( int playlistIndex, QList<int> &selection )
+{
+ TX_ENTRY_ARGS( "playlistIndex=" << playlistIndex );
+
+ const CMPXMediaArray* mediaArray = iUserPlaylists->Value<CMPXMediaArray>( KMPXMediaArrayContents );
+ User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ) );
+ CMPXMedia* media( mediaArray->AtL( playlistIndex ) );
+ TMPXItemId playlistId = media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
+ DoSaveToPlaylistL( playlistId, selection, iCollectionData );
+ TX_EXIT
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoDeleteSongsL( QList<int> selection )
+void MpMpxFrameworkWrapperPrivate::DoSaveToCurrentPlaylistL( QList<int> &selection, MpMpxCollectionData *collectionData )
+{
+ TX_ENTRY
+
+ const CMPXMedia& container = iCollectionData->containerMedia();
+ if ( container.ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType) != EMPXItem &&
+ container.ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory) != EMPXPlaylist) {
+ User::Leave( KErrArgument );
+ }
+ TMPXItemId playlistId( container.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
+ DoSaveToPlaylistL( playlistId, selection, collectionData );
+ TX_EXIT
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoDeleteSongsL( QList<int> &selection )
{
int count = selection.count();
- TX_ENTRY_ARGS("selection count=" << count);
+ TX_ENTRY_ARGS( "selection count=" << count );
CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
CleanupStack::PushL( path );
for ( TInt i = 0; i < count; i++ ) {
- path->SelectL( selection.at(i) );
+ path->SelectL( selection.at( i ) );
}
iCollectionUiHelper->DeleteL( *path, this );
CleanupStack::PopAndDestroy( path );
+ TX_EXIT
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoRenamePlaylistL( QString newName, int index)
+void MpMpxFrameworkWrapperPrivate::DoRenamePlaylistL( QString &newName, int index )
{
+ TX_ENTRY
CMPXMediaArray *mediaArray;
const CMPXMedia& container = iCollectionData->containerMedia();
- mediaArray = const_cast<CMPXMediaArray*>(container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
+ mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
CMPXMedia* currentPlaylistMedia( mediaArray->AtL( index ) );
TMPXItemId id( currentPlaylistMedia->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
DoRenamePlaylistL( id, newName );
+ TX_EXIT
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoRenamePlaylistL( QString newName )
+void MpMpxFrameworkWrapperPrivate::DoRenamePlaylistL( QString &newName )
{
+ TX_ENTRY
const CMPXMedia& container = iCollectionData->containerMedia();
TMPXItemId id( container.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
DoRenamePlaylistL( id, newName );
+ TX_EXIT
}
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoRenamePlaylistL( TMPXItemId id, QString newName )
+void MpMpxFrameworkWrapperPrivate::DoRenamePlaylistL( TMPXItemId id, QString &newName )
{
CMPXMedia* media = CMPXMedia::NewL();
CleanupStack::PushL( media );
- media->SetTObjectValueL<TMPXGeneralType>(
+ media->SetTObjectValueL<TMPXGeneralType>(
KMPXMediaGeneralType, EMPXItem );
- media->SetTObjectValueL<TMPXGeneralCategory>(
+ media->SetTObjectValueL<TMPXGeneralCategory>(
KMPXMediaGeneralCategory, EMPXPlaylist );
media->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, id );
- TPtrC ptr(reinterpret_cast<const TText*>(newName.constData()));
+ TPtrC ptr( reinterpret_cast<const TText*>( newName.constData() ) );
media->SetTextValueL( KMPXMediaGeneralTitle, ptr );
iCollectionUiHelper->RenameL( *media, this );
CleanupStack::PopAndDestroy( media );
@@ -692,7 +751,6 @@
void MpMpxFrameworkWrapperPrivate::DoSetShuffleL( bool active )
{
TX_ENTRY
-
if ( iPlaybackUtility ) {
iPlaybackUtility->SetL( EPbPropertyRandomMode, active );
}
@@ -702,55 +760,27 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoScanL()
-{
- TX_ENTRY
- iNumItemsAdded = 0;
- iHarvesterUtility->ScanL();
- TX_EXIT
-}
-
-/*!
- \internal
- */
-void MpMpxFrameworkWrapperPrivate::DoCancelScanL()
-{
- TX_ENTRY
- // If harvester crashes, restart it.
- TRAPD( err, iHarvesterUtility->CancelScanL() );
- if ( err != KErrNone ) {
- iHarvesterUtility->Close();
- iHarvesterUtility = NULL;
- iHarvesterUtility = CMPXHarvesterFactory::NewL();
- iHarvesterUtility->CheckForSystemEventsL();
- }
- TX_EXIT
-}
-
-/*!
- \internal
- */
void MpMpxFrameworkWrapperPrivate::DoPreviewItemL( int index )
{
TX_ENTRY
if ( !iPlaybackUtility ) {
- iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid(MpCommon::KMusicPlayerUid) );
+ iPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( MpCommon::KMusicPlayerUid ) );
}
// Get the current path
CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
CleanupStack::PushL( cpath );
- MPX_DEBUG_PATH(*cpath);
+ MPX_DEBUG_PATH( *cpath );
cpath->Back();
CMPXMediaArray *mediaArray;
const CMPXMedia& container = iCollectionData->containerMedia();
- mediaArray = const_cast<CMPXMediaArray*>(container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
+ 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
+ cpath->AppendL( id ); // Top level items of songs
+ cpath->Set( 0 ); // Select 1st song
CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
CleanupStack::PushL( playList );
@@ -767,7 +797,33 @@
/*!
\internal
*/
-void MpMpxFrameworkWrapperPrivate::DoHandleCollectionMessageL(
+void MpMpxFrameworkWrapperPrivate::DoOpenIsolatedCollectionL( TCollectionContext context )
+{
+
+ if ( ECollectionContextAllSongs == context ) {
+ CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
+ CleanupStack::PushL( cpath );
+ if ( !iIsolatedCollectionHelper ) {
+ iIsolatedCollectionHelper = CMpMpxIsolatedCollectionHelper::NewL( this );
+ }
+ iIsolatedCollectionHelper->OpenCollectionL( *cpath );
+ CleanupStack::PopAndDestroy( cpath );
+ }
+}
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoReorderPlaylistL( int playlistId, int songId, int originalOrdinal, int newOrdinal )
+{
+ iCollectionUiHelper->ReorderPlaylistL( playlistId, songId, originalOrdinal, newOrdinal, this );
+}
+
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::DoHandleCollectionMessageL(
const CMPXMessage& aMsg )
{
TX_ENTRY
@@ -776,7 +832,7 @@
TInt event( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralEvent ) );
TInt type( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralType ) );
TInt data( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralData ) );
- TX_LOG_ARGS("event=" << event << ", type=" << type << ", data=" << data);
+ TX_LOG_ARGS( "event=" << event << ", type=" << type << ", data=" << data );
if ( event == TMPXCollectionMessage::EPathChanged &&
type == EMcPathChangedByOpen &&
@@ -791,56 +847,25 @@
// This will result in HandleOpenL with CMPXCollectionPlaylist
iCollectionUtility->Collection().OpenL();
}
-
- if ( event == TMPXCollectionMessage::EBroadcastEvent ) {
- switch (type) {
- case EMcMsgRefreshStart:
- emit q_ptr->scanStarted();
- break;
- case EMcMsgRefreshEnd:
- case EMcMsgDiskInserted:
- emit q_ptr->scanEnded();
- break;
- default:
- break;
- }
- }
- }
- else if( KMPXMessageIdItemChanged == id ) {
- if ( aMsg.IsSupported(KMPXMessageArrayContents) ) {
- // Loop through messages for arrays
- const CMPXMessageArray* messageArray =
- aMsg.Value<CMPXMessageArray>(KMPXMessageArrayContents);
- User::LeaveIfNull(const_cast<CMPXMessageArray*>(messageArray));
-
- for ( TInt i=0; i<messageArray->Count(); ++i ) {
- HandleCollectionMessage( messageArray->AtL( i ), KErrNone );
- }
- emit q_ptr->scanCountChanged(iNumItemsAdded);
- }
- else {
- // Single item
- TMPXChangeEventType changeType( aMsg.ValueTObjectL<TMPXChangeEventType>( KMPXMessageChangeEventType ) );
- TMPXGeneralCategory cat(aMsg.ValueTObjectL<TMPXGeneralCategory>(KMPXMessageMediaGeneralCategory));
- if( changeType == EMPXItemInserted &&
- (cat == EMPXSong || cat == EMPXPlaylist || cat == EMPXPodcast) ) {
- iNumItemsAdded++;
- }
- }
}
TX_EXIT
}
-void MpMpxFrameworkWrapperPrivate::PreparePlaylistMediaL(
- CMPXMedia& aMedia,
- QList<int> selection )
+
+/*!
+ \internal
+ */
+void MpMpxFrameworkWrapperPrivate::PreparePlaylistMediaL(
+ CMPXMedia& aMedia,
+ QList<int> &selection,
+ MpMpxCollectionData *collectionData )
{
int count = selection.count();
- TX_ENTRY_ARGS("selection count=" << count);
+ TX_ENTRY_ARGS( "selection count=" << count );
- const CMPXMedia& container = iCollectionData->containerMedia();
+ const CMPXMedia& container = collectionData->containerMedia();
const CMPXMediaArray* containerArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
- User::LeaveIfNull( const_cast<CMPXMediaArray*>( containerArray ));
+ User::LeaveIfNull( const_cast<CMPXMediaArray*>( containerArray ) );
CMPXMediaArray* tracksArray( CMPXMediaArray::NewL() );
CleanupStack::PushL( tracksArray );
@@ -849,12 +874,12 @@
TMPXItemId collectionId( path->Id( 0 ) );
CleanupStack::PopAndDestroy( path );
- if ( iCollectionData->context() == ECollectionContextArtistAlbums ) {
+ if ( collectionData->context() == ECollectionContextAlbums ) {
for ( TInt i = 0; i < count; i++ ) {
CMPXMedia* results;
CMPXMedia* album( containerArray->AtL( selection[i] ) );
// Fetch the songs for the selected album
- TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+ TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
CMPXMedia* findCriteria = CMPXMedia::NewL();
CleanupStack::PushL( findCriteria );
findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
@@ -866,26 +891,26 @@
EMPXMediaGeneralTitle |
EMPXMediaGeneralId ) );
attrs.Append( KMPXMediaMusicAlbumTrack );
- results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array());
+ results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() );
CleanupStack::PopAndDestroy( &attrs );
CleanupStack::PopAndDestroy( findCriteria );
CleanupStack::PushL( results );
const CMPXMediaArray* resultsArray = results->Value<CMPXMediaArray>( KMPXMediaArrayContents );
User::LeaveIfNull( resultsArray );
- for (int j = 0 ; j < resultsArray->Count();j++) {
- CMPXMedia* media( resultsArray->AtL(j) );
+ for ( int j = 0 ; j < resultsArray->Count();j++ ) {
+ CMPXMedia* media( resultsArray->AtL( j ) );
CMPXMedia* entry = CMPXMedia::NewL();
CleanupStack::PushL( entry );
entry->SetTextValueL( KMPXMediaGeneralTitle,
media->ValueText( KMPXMediaGeneralTitle ) );
- entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem);
+ entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
entry->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
entry->SetTObjectValueL( KMPXMediaGeneralId,
media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
entry->SetTObjectValueL( KMPXMediaGeneralCollectionId, collectionId );
+ CleanupStack::Pop( entry );
tracksArray->AppendL( entry );
- CleanupStack::Pop( entry );
}
CleanupStack::PopAndDestroy( results );
}
@@ -893,18 +918,18 @@
}
else {
for ( TInt i = 0; i < count; i++ ) {
- CMPXMedia* media( containerArray->AtL(selection.at(i)) );
+ CMPXMedia* media( containerArray->AtL( selection.at( i ) ) );
CMPXMedia* entry = CMPXMedia::NewL();
CleanupStack::PushL( entry );
entry->SetTextValueL( KMPXMediaGeneralTitle,
media->ValueText( KMPXMediaGeneralTitle ) );
- entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem);
+ entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
entry->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
entry->SetTObjectValueL( KMPXMediaGeneralId,
media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
entry->SetTObjectValueL( KMPXMediaGeneralCollectionId, collectionId );
+ CleanupStack::Pop( entry );
tracksArray->AppendL( entry );
- CleanupStack::Pop( entry );
}
}
aMedia.SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXItem );
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/src/mpmpxisolatedcollectionhelper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: isolated collection helper.
+*
+*/
+
+
+#include <mpxcollectionhelperfactory.h>
+#include <mpxcollectionuihelper.h>
+#include <mpxcollectionopenutility.h>
+
+#include "mpmpxisolatedcollectionhelper.h"
+#include "mpxlog.h"
+
+
+
+const TInt KIncrementalDelayNone = 0;
+const TInt KIncrementalDelayHalfSecond = 1000000;
+const TInt KIncrementalFetchBlockSize = 20;
+const TInt KIncrementalNullOffset = 0;
+
+
+/*!
+ \class CMpMpxIsolatedCollectionHelper
+ \brief Helper class to open an isolated collection.
+
+ This is a helper class to open an insolated collection.
+*/
+
+/*!
+ \internal
+ Two-phased constructor.
+ */
+CMpMpxIsolatedCollectionHelper* CMpMpxIsolatedCollectionHelper::NewL(
+ MMpMpxIsolatedCollectionHelperObserver* aObserver )
+ {
+ CMpMpxIsolatedCollectionHelper* self = NewLC( aObserver );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+/*!
+ \internal
+ Two-phased constructor.
+ */
+CMpMpxIsolatedCollectionHelper* CMpMpxIsolatedCollectionHelper::NewLC(
+ MMpMpxIsolatedCollectionHelperObserver* aObserver )
+ {
+ CMpMpxIsolatedCollectionHelper* self =
+ new ( ELeave ) CMpMpxIsolatedCollectionHelper( aObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+/*!
+ \internal
+ Destructor
+ */
+CMpMpxIsolatedCollectionHelper::~CMpMpxIsolatedCollectionHelper()
+ {
+ delete iIncrementalOpenUtil;
+ }
+
+
+/*!
+ \internal
+ Opens an isolated collection with the /a path.
+ */
+void CMpMpxIsolatedCollectionHelper::OpenCollectionL( CMPXCollectionPath& aPath )
+ {
+ //Using incremental open to open the collection.
+
+ // Cancel any reads
+ iIncrementalOpenUtil->Stop();
+
+ // Start the read
+ iFirstIncrementalOpen = ETrue;
+ RArray<TMPXAttribute> attrs;
+ CleanupClosePushL( attrs );
+ TArray<TMPXAttribute> ary = attrs.Array();
+ iIncrementalOpenUtil->SetDelay( KIncrementalDelayNone );
+ iIncrementalOpenUtil->StartL( aPath, ary, KIncrementalFetchBlockSize,
+ KIncrementalNullOffset, CMPXCollectionOpenUtility::EFetchNormal );
+ iIncrementalOpenUtil->SetDelay( KIncrementalDelayHalfSecond );
+ CleanupStack::PopAndDestroy( &attrs );
+ }
+
+/*!
+ \internal
+ c++ Contructor
+ */
+CMpMpxIsolatedCollectionHelper::CMpMpxIsolatedCollectionHelper( MMpMpxIsolatedCollectionHelperObserver* aObserver )
+ : iObserver( aObserver ),
+ iIncrementalOpenUtil( 0 ),
+ iFirstIncrementalOpen( EFalse )
+ {
+ }
+
+/*!
+ \internal
+ Leaving constructor
+ */
+void CMpMpxIsolatedCollectionHelper::ConstructL()
+ {
+ iIncrementalOpenUtil = CMPXCollectionOpenUtility::NewL( this, KMcModeIsolated );
+
+ }
+
+
+/*!
+ \internal
+ reimp
+ */
+void CMpMpxIsolatedCollectionHelper::HandleOpenL(
+ const CMPXMedia& aEntries,
+ TInt /*aIndex*/,
+ TBool /*aComplete*/,
+ TInt aError )
+ {
+ if ( iFirstIncrementalOpen )
+ {
+ iObserver->HandleIsolatedOpenL( aEntries, aError );
+ iFirstIncrementalOpen = EFalse;
+ }
+ }
+
+/*!
+ \internal
+ reimp
+ */
+void CMpMpxIsolatedCollectionHelper::HandleOpenL(
+ const CMPXCollectionPlaylist& /*aPlaylist*/,
+ TInt /*aError*/ )
+ {
+ }
+
+/*!
+ \internal
+ reimp
+ */
+void CMpMpxIsolatedCollectionHelper::HandleCollectionMessage(
+ CMPXMessage* /*aMsg*/,
+ TInt /*aErr*/ )
+ {
+ }
+
+/*!
+ \internal
+ reimp
+ */
+void CMpMpxIsolatedCollectionHelper::HandleCollectionMediaL(
+ const CMPXMedia& /*aMedia*/,
+ TInt /*aError*/ )
+ {
+ }
+
+//EOF
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/inc/unittest_mpcollectionalbumartmanager.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/inc/unittest_mpcollectionalbumartmanager.h Fri Apr 16 14:56:30 2010 +0300
@@ -19,9 +19,10 @@
#define TESTMPCOLLECTIONALBUMARTMANAGER_H
#include <QtTest/QtTest>
+#include <QIcon>
class MpCollectionAlbumArtManager;
-class HbIcon;
+class MpMpxCollectionData;
class TestMpCollectionAlbumArtManager : public QObject
{
@@ -34,7 +35,7 @@
signals:
- void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+ void thumbnailReady( QPixmap pixmap, void *data, int id, int error );
public slots:
@@ -49,24 +50,22 @@
void testAlbumArtNoCache();
void testAlbumArtNoCacheQueue();
void testAlbumArtCache();
+ void testAlbumArtNoUri();
void testAlbumArtFail();
- void testCacheAlbumArtEmpty();
- void testCacheAlbumArt();
- void testCacheAlbumArtCached();
- void testCacheAlbumArtAllCached();
- void testCacheAlbumArtFail();
+ void testCacheFirstScreenEmpty();
+ void testCacheFirstScreen();
+ void testCacheFirstScreenAllCached();
void testCancel();
void testThumbnailReadyCache();
void testThumbnailReadyCacheError();
void testThumbnailReadyAlbumArt();
void testThumbnailReadyAlbumArtError();
- void testThumbnailReadyAlbumArtQueue();
- void testThumbnailReadyAlbumArtQueueError();
private:
MpCollectionAlbumArtManager *mTest;
- HbIcon *mIcon;
+ MpMpxCollectionData *mStubData;
+ QIcon mIcon;
};
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/src/unittest_mpcollectionalbumartmanager.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/src/unittest_mpcollectionalbumartmanager.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -22,19 +22,13 @@
#include "unittest_mpcollectionalbumartmanager.h"
#include "stub/inc/thumbnailmanager_qt.h"
+#include "stub/inc/mpmpxcollectiondata.h"
// Do this so we can access all member variables.
#define private public
#include "mpcollectionalbumartmanager.h"
#undef private
-// Max request defined in mpcollectionalbumartmanager.cpp
-const int KMaxThumbnailReq = 5;
-
-const char* ALBUM_URI_1 = "album1.mp3";
-const char* ALBUM_URI_2 = "album2.mp3";
-const char* ALBUM_URI_3 = "album3.mp3";
-
/*!
Make our test case a stand-alone executable that runs all the test functions.
*/
@@ -56,13 +50,15 @@
}
TestMpCollectionAlbumArtManager::TestMpCollectionAlbumArtManager()
- : mTest(0)
+ : mTest(0),
+ mStubData(0)
{
}
TestMpCollectionAlbumArtManager::~TestMpCollectionAlbumArtManager()
{
delete mTest;
+ delete mStubData;
}
/*!
@@ -70,8 +66,10 @@
*/
void TestMpCollectionAlbumArtManager::initTestCase()
{
+ mStubData = new MpMpxCollectionData();
+
// Create an icon (any icon will do) to help with testing.
- mIcon = new HbIcon( QString(":/icons/default_album.png"));
+ mIcon = QIcon(":/icons/default_album.png");
}
/*!
@@ -79,7 +77,6 @@
*/
void TestMpCollectionAlbumArtManager::cleanupTestCase()
{
- delete mIcon;
}
/*!
@@ -87,7 +84,9 @@
*/
void TestMpCollectionAlbumArtManager::init()
{
- mTest = new MpCollectionAlbumArtManager();
+ mTest = new MpCollectionAlbumArtManager(mStubData);
+ mStubData->mCount = 100;
+ mStubData->mItemDataReturn = true;
}
/*!
@@ -117,34 +116,31 @@
*/
void TestMpCollectionAlbumArtManager::testAlbumArtNoCache()
{
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, 1);
+ const QIcon* icon = mTest->albumArt(1);
// Verify that:
- // - It didn't return an icon
+ // - It returned default icon
// - A request has been made to thumbnail manager
- QVERIFY(icon.isNull() == true);
- QCOMPARE(mTest->mRequestCount, 1);
- QCOMPARE(mTest->mTnmReqMap.count(), 1);
+ QVERIFY(icon->isNull() == false);
+ QCOMPARE(mTest->mPendingRequest, true);
QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1);
}
/*!
Tests albumArt() request when art is not in local cache.
- Request more than max to test request queue.
+ Request more than 1 to test request queue.
*/
void TestMpCollectionAlbumArtManager::testAlbumArtNoCacheQueue()
{
- int max = KMaxThumbnailReq + 1;
- for ( int i = 0; i < max; i++) {
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, i);
- QVERIFY(icon.isNull() == true);
+ for ( int i = 0; i < 3; i++) {
+ const QIcon* icon = mTest->albumArt(i);
+ QVERIFY(icon->isNull() == false);
}
// Verify that:
// - Max number of requests were sent to thumbnail manager
// - A request has been queued
- QCOMPARE(mTest->mRequestCount, KMaxThumbnailReq);
- QCOMPARE(mTest->mTnmReqMap.count(), KMaxThumbnailReq);
- QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, KMaxThumbnailReq);
- QCOMPARE(mTest->mRequestQueue.count(), 1);
+ QCOMPARE(mTest->mPendingRequest, true);
+ QCOMPARE(mTest->mRequestQueue.count(), 2);
+ QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1);
}
/*!
@@ -152,164 +148,140 @@
*/
void TestMpCollectionAlbumArtManager::testAlbumArtCache()
{
- mTest->mImageCache.insert(ALBUM_URI_1, *mIcon);
+ mTest->mImageCache.insert(0, new QIcon(mIcon));
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, 1);
+ const QIcon* icon = mTest->albumArt(0);
// Verify that:
// - A valid icon has been returned
// - No request has been sent to thumbnail manager
- QVERIFY(icon.isNull() == false);
- QVERIFY(icon == *mIcon);
- QCOMPARE(mTest->mRequestCount, 0);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ QVERIFY(icon->isNull() == false);
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 0);
}
/*!
+ Tests albumArt() request when item doesn't have AlbumArtUri.
+ */
+void TestMpCollectionAlbumArtManager::testAlbumArtNoUri()
+{
+ mTest->mCollectionData->mItemDataReturn = false;
+ const QIcon* icon = mTest->albumArt(0);
+ // Verify that:
+ // - It returned default icon
+ // - There is no request pending from thumbnail manager
+ QVERIFY(icon->isNull() == false);
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
+}
+
+/*!
Tests albumArt() request when thumbnail request fails.
*/
void TestMpCollectionAlbumArtManager::testAlbumArtFail()
{
mTest->mThumbnailManager->mGetThumbFails = true;
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, 1);
+ const QIcon* icon = mTest->albumArt(0);
// Verify that:
- // - It didn't return an icon
+ // - It returned default icon
// - There is no request pending from thumbnail manager
- QVERIFY(icon.isNull() == true);
- QCOMPARE(mTest->mRequestCount, 0);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ QVERIFY(icon->isNull() == false);
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
}
/*!
- Tests cacheAlbumArt() request with empty list.
+ Tests cacheFirstScreen() request with empty list.
*/
-void TestMpCollectionAlbumArtManager::testCacheAlbumArtEmpty()
+void TestMpCollectionAlbumArtManager::testCacheFirstScreenEmpty()
{
- bool cachingStarted = mTest->cacheAlbumArt(QStringList());
- QCOMPARE(cachingStarted, false);
+ mTest->mCollectionData->mCount = 0;
+ mTest->cacheFirstScreen();
+ QCOMPARE(mTest->mPendingRequest, false);
QCOMPARE(mTest->mCachingInProgress, false);
QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 0);
}
/*!
- Tests cacheAlbumArt() request with 3 URIs.
+ Tests cacheFirstScreen() request with 1 item in the list.
*/
-void TestMpCollectionAlbumArtManager::testCacheAlbumArt()
+void TestMpCollectionAlbumArtManager::testCacheFirstScreen()
{
- QStringList list;
- list << ALBUM_URI_1 << ALBUM_URI_2 << ALBUM_URI_3;
- bool cachingStarted = mTest->cacheAlbumArt(list);
- QCOMPARE(cachingStarted, true);
+ mTest->mCollectionData->mCount = 1;
+ mTest->cacheFirstScreen();
QCOMPARE(mTest->mCachingInProgress, true);
- QCOMPARE(mTest->mTnmReqMap.count(), 3);
- QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 3);
-}
-
-/*!
- Tests cacheAlbumArt() request with one item already in local cache.
- */
-void TestMpCollectionAlbumArtManager::testCacheAlbumArtCached()
-{
- mTest->mImageCache.insert(ALBUM_URI_1, *mIcon);
- QStringList list;
- list << ALBUM_URI_1 << ALBUM_URI_2 << ALBUM_URI_3;
- bool cachingStarted = mTest->cacheAlbumArt(list);
- QCOMPARE(cachingStarted, true);
- QCOMPARE(mTest->mCachingInProgress, true);
- QCOMPARE(mTest->mTnmReqMap.count(), 2);
- QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 2);
+ QCOMPARE(mTest->mPendingRequest, true);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
+ QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1);
}
/*!
- Tests cacheAlbumArt() request with all items already in local cache.
+ Tests cacheFirstScreen() request with all items already in local cache.
*/
-void TestMpCollectionAlbumArtManager::testCacheAlbumArtAllCached()
+void TestMpCollectionAlbumArtManager::testCacheFirstScreenAllCached()
{
- mTest->mImageCache.insert(ALBUM_URI_1, *mIcon);
- mTest->mImageCache.insert(ALBUM_URI_2, *mIcon);
- mTest->mImageCache.insert(ALBUM_URI_3, *mIcon);
- QStringList list;
- list << ALBUM_URI_1 << ALBUM_URI_2 << ALBUM_URI_3;
- bool cachingStarted = mTest->cacheAlbumArt(list);
- QCOMPARE(cachingStarted, false);
- QCOMPARE(mTest->mCachingInProgress, false);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ mTest->mCollectionData->mCount = 3;
+ mTest->mImageCache.insert(0, new QIcon(mIcon));
+ mTest->mImageCache.insert(1, new QIcon(mIcon));
+ mTest->mImageCache.insert(2, new QIcon(mIcon));
+ mTest->cacheFirstScreen();
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 0);
}
/*!
- Tests cacheAlbumArt() request when thumbnail request fails.
- */
-void TestMpCollectionAlbumArtManager::testCacheAlbumArtFail()
-{
- mTest->mThumbnailManager->mGetThumbFails = true;
- QStringList list;
- list << ALBUM_URI_1 << ALBUM_URI_2 << ALBUM_URI_3;
- bool cachingStarted = mTest->cacheAlbumArt(list);
- QCOMPARE(cachingStarted, false);
- QCOMPARE(mTest->mCachingInProgress, false);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
-}
-
-/*!
Tests cancel() request.
*/
void TestMpCollectionAlbumArtManager::testCancel()
{
- // First send enough requests to trigger max number of request to
- // thumbnail manager and also queue the extra request.
- int max = KMaxThumbnailReq + 1;
- for ( int i = 0; i < max; i++) {
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, i);
- QVERIFY(icon.isNull() == true);
+ // First send enough requests to trigger requests to be queued.
+ for ( int i = 0; i < 3; i++) {
+ const QIcon* icon = mTest->albumArt(i);
+ QVERIFY(icon->isNull() == false);
}
- QCOMPARE(mTest->mRequestCount, KMaxThumbnailReq);
- QCOMPARE(mTest->mTnmReqMap.count(), KMaxThumbnailReq);
- QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, KMaxThumbnailReq);
- QCOMPARE(mTest->mRequestQueue.count(), 1);
+ QCOMPARE(mTest->mPendingRequest, true);
+ QCOMPARE(mTest->mRequestQueue.count(), 2);
+ QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1);
// Verify that:
// - All requests to thumbnail manager are cancelled
// - Queue is emptied
mTest->cancel();
- QCOMPARE(mTest->mRequestCount, 0);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ QCOMPARE(mTest->mPendingRequest, false);
QCOMPARE(mTest->mRequestQueue.count(), 0);
- QCOMPARE(mTest->mThumbnailManager->mCancelCounter, KMaxThumbnailReq);
+ QCOMPARE(mTest->mThumbnailManager->mCancelCounter, 1);
}
/*!
Tests thumbnailReady() slot.
- Tests completion of cacheAlbumArt() request.
+ Tests completion of cacheFirstScreen() request.
*/
void TestMpCollectionAlbumArtManager::testThumbnailReadyCache()
{
connect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
- QSignalSpy spy(mTest, SIGNAL(albumCacheReady()));
+ QSignalSpy spy(mTest, SIGNAL(albumArtReady(int)));
// First send cacheAlbumArt() request with 3 items.
- QStringList list;
- list << ALBUM_URI_1 << ALBUM_URI_2 << ALBUM_URI_3;
- bool cachingStarted = mTest->cacheAlbumArt(list);
- QCOMPARE(cachingStarted, true);
+ mTest->mCollectionData->mCount = 3;
+ mTest->cacheFirstScreen();
QCOMPARE(mTest->mCachingInProgress, true);
- QCOMPARE(mTest->mTnmReqMap.count(), 3);
-
- QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 3);
+ QCOMPARE(mTest->mPendingRequest, true);
+ QCOMPARE(mTest->mRequestQueue.count(), 2);
// Emit thumbnailReady() signal for each request. Then verify that:
- // - Test object emitted signal albumCacheReady()
+ // - Test object emitted signal albumArtReady() for 3 items
// - 3 items are present in local cache
- QMapIterator<int, QString> iter(mTest->mTnmReqMap);
- while ( iter.hasNext() ) {
- iter.next();
- int reqId = iter.key();
- emit thumbnailReady(mIcon->pixmap(), 0, reqId, 0);
+ for ( int i = 0; i < 3; i++ ) {
+ void *clientData = reinterpret_cast<void *>(i);
+ emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, 0);
}
- QCOMPARE(spy.count(), 1);
+
+ QCOMPARE(spy.count(), 3);
QCOMPARE(mTest->mCachingInProgress, false);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
QCOMPARE(mTest->mImageCache.count(), 3);
disconnect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
@@ -317,36 +289,32 @@
/*!
Tests thumbnailReady() slot.
- Tests completion of cacheAlbumArt() request with error code returned.
+ Tests completion of cacheFirstScreen() request with error code returned.
*/
void TestMpCollectionAlbumArtManager::testThumbnailReadyCacheError()
{
connect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
- QSignalSpy spy(mTest, SIGNAL(albumCacheReady()));
+ QSignalSpy spy(mTest, SIGNAL(albumArtReady(int)));
// First send cacheAlbumArt() request with 3 items.
- QStringList list;
- list << ALBUM_URI_1 << ALBUM_URI_2 << ALBUM_URI_3;
- bool cachingStarted = mTest->cacheAlbumArt(list);
- QCOMPARE(cachingStarted, true);
+ mTest->mCollectionData->mCount = 3;
+ mTest->cacheFirstScreen();
QCOMPARE(mTest->mCachingInProgress, true);
- QCOMPARE(mTest->mTnmReqMap.count(), 3);
- QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 3);
+ QCOMPARE(mTest->mPendingRequest, true);
+ QCOMPARE(mTest->mRequestQueue.count(), 2);
// Emit thumbnailReady() signal for each request with error. Then verify that:
- // - Test object emitted signal albumCacheReady()
+ // - Test object doesn't emit signal albumArtReady()
// - 0 item is present in local cache
- QMapIterator<int, QString> iter(mTest->mTnmReqMap);
- while ( iter.hasNext() ) {
- iter.next();
- int reqId = iter.key();
- emit thumbnailReady(mIcon->pixmap(), 0, reqId, -1);
+ for ( int i = 0; i < 3; i++ ) {
+ void *clientData = reinterpret_cast<void *>(i);
+ emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, -1);
}
- QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.count(), 0);
QCOMPARE(mTest->mCachingInProgress, false);
- QCOMPARE(mTest->mRequestCount, 0);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
QCOMPARE(mTest->mImageCache.count(), 0);
disconnect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
@@ -363,28 +331,23 @@
QSignalSpy spy(mTest, SIGNAL(albumArtReady(int)));
// First send 3 albumArt() requests.
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, 1);
- QVERIFY(icon.isNull() == true);
- icon = mTest->albumArt(ALBUM_URI_2, 2);
- QVERIFY(icon.isNull() == true);
- icon = mTest->albumArt(ALBUM_URI_3, 3);
- QVERIFY(icon.isNull() == true);
- QCOMPARE(mTest->mRequestCount, 3);
- QCOMPARE(mTest->mTnmReqMap.count(), 3);
+ for ( int i = 0; i < 3; i++) {
+ const QIcon* icon = mTest->albumArt(i);
+ QVERIFY(icon->isNull() == false);
+ }
+ QCOMPARE(mTest->mPendingRequest, true);
+ QCOMPARE(mTest->mRequestQueue.count(), 2);
// Emit thumbnailReady() signal for each request. Then verify that:
// - Test object emitted signal albumArtReady() 3 times
// - 3 items are present in local cache
- QMapIterator<int, QString> iter(mTest->mTnmReqMap);
- while ( iter.hasNext() ) {
- iter.next();
- int reqId = iter.key();
- int *clientData = new int(reqId);
- emit thumbnailReady(mIcon->pixmap(), clientData, reqId, 0);
+ for ( int i = 0; i < 3; i++ ) {
+ void *clientData = reinterpret_cast<void *>(i);
+ emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, 0);
}
QCOMPARE(spy.count(), 3);
- QCOMPARE(mTest->mRequestCount, 0);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
QCOMPARE(mTest->mImageCache.count(), 3);
disconnect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
@@ -402,107 +365,26 @@
QSignalSpy spy(mTest, SIGNAL(albumArtReady(int)));
// First send 3 albumArt() requests.
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, 1);
- QVERIFY(icon.isNull() == true);
- icon = mTest->albumArt(ALBUM_URI_2, 2);
- QVERIFY(icon.isNull() == true);
- icon = mTest->albumArt(ALBUM_URI_3, 3);
- QVERIFY(icon.isNull() == true);
- QCOMPARE(mTest->mRequestCount, 3);
- QCOMPARE(mTest->mTnmReqMap.count(), 3);
+ for ( int i = 0; i < 3; i++) {
+ const QIcon* icon = mTest->albumArt(i);
+ QVERIFY(icon->isNull() == false);
+ }
+ QCOMPARE(mTest->mPendingRequest, true);
+ QCOMPARE(mTest->mRequestQueue.count(), 2);
// Emit thumbnailReady() signal for each request with error. Then verify that:
// - Test object doesn't emitted signal albumArtReady()
// - 0 items are present in local cache
- QMapIterator<int, QString> iter(mTest->mTnmReqMap);
- while ( iter.hasNext() ) {
- iter.next();
- int reqId = iter.key();
- int *clientData = new int(reqId);
- emit thumbnailReady(mIcon->pixmap(), clientData, reqId, -1);
+ for ( int i = 0; i < 3; i++ ) {
+ void *clientData = reinterpret_cast<void *>(i);
+ emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, -1);
}
QCOMPARE(spy.count(), 0);
- QCOMPARE(mTest->mRequestCount, 0);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
+ QCOMPARE(mTest->mPendingRequest, false);
+ QCOMPARE(mTest->mRequestQueue.count(), 0);
QCOMPARE(mTest->mImageCache.count(), 0);
disconnect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
}
-/*!
- Tests thumbnailReady() slot.
- Tests completion of albumArt() request with pending request in queue.
- */
-void TestMpCollectionAlbumArtManager::testThumbnailReadyAlbumArtQueue()
-{
- connect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
- mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
- QSignalSpy spy(mTest, SIGNAL(albumArtReady(int)));
-
- // First send enough requests to trigger max number of request to
- // thumbnail manager and also queue the extra request.
- int max = KMaxThumbnailReq + 1;
- for ( int i = 0; i < max; i++) {
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, i);
- QVERIFY(icon.isNull() == true);
- }
- QCOMPARE(mTest->mRequestCount, KMaxThumbnailReq);
-
- // Emit thumbnailReady() signal for each request. Then verify that:
- // - Test object emitted signal albumArtReady() 5 times
- // - The extra request in queue is sent to thumbnail manager
- QMapIterator<int, QString> iter(mTest->mTnmReqMap);
- while ( iter.hasNext() ) {
- iter.next();
- int reqId = iter.key();
- int *clientData = new int(reqId);
- emit thumbnailReady(mIcon->pixmap(), clientData, reqId, 0);
- }
- QCOMPARE(spy.count(), KMaxThumbnailReq);
- QCOMPARE(mTest->mRequestCount, 1);
- QCOMPARE(mTest->mTnmReqMap.count(), 1);
- QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, max);
- disconnect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
- mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
-}
-
-/*!
- Tests thumbnailReady() slot.
- Tests completion of albumArt() request with pending request in queue.
- Queue item's request for thumbnail fails.
- */
-void TestMpCollectionAlbumArtManager::testThumbnailReadyAlbumArtQueueError()
-{
- connect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
- mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
- QSignalSpy spy(mTest, SIGNAL(albumArtReady(int)));
-
- // First send enough requests to trigger max number of request to
- // thumbnail manager and also queue the extra request.
- int max = KMaxThumbnailReq + 1;
- for ( int i = 0; i < max; i++) {
- HbIcon icon = mTest->albumArt(ALBUM_URI_1, i);
- QVERIFY(icon.isNull() == true);
- }
- QCOMPARE(mTest->mRequestCount, KMaxThumbnailReq);
-
- mTest->mThumbnailManager->mGetThumbFails = true;
- // Emit thumbnailReady() signal for each request. Then verify that:
- // - The extra request in queue is removed
- // - There is no request pending from thumbnail manager
- QMapIterator<int, QString> iter(mTest->mTnmReqMap);
- while ( iter.hasNext() ) {
- iter.next();
- int reqId = iter.key();
- int *clientData = new int(reqId);
- emit thumbnailReady(mIcon->pixmap(), clientData, reqId, 0);
- }
- QCOMPARE(spy.count(), KMaxThumbnailReq);
- QCOMPARE(mTest->mRequestCount, 0);
- QCOMPARE(mTest->mTnmReqMap.count(), 0);
- QCOMPARE(mTest->mRequestQueue.isEmpty(), true);
- disconnect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
- mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) );
-}
-
// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/stub/inc/mpmpxcollectiondata.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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,
+ Artist,
+ Count,
+ AlbumArtUri
+ };
+
+ // Stub functions
+ explicit MpMpxCollectionData( QObject *parent=0 );
+ virtual ~MpMpxCollectionData();
+
+ TCollectionContext context() const;
+ int count() const;
+ QString itemData( int index, MpMpxCollectionData::DataType type ) const;
+
+signals:
+
+ void contextChanged( TCollectionContext context );
+
+public:
+
+ TCollectionContext mContext;
+ int mCount;
+ bool mItemDataReturn;
+
+};
+
+#endif // MPMPXCOLLECTIONDATA_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/stub/src/mpmpxcollectiondata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: MpMpxCollectionData stub for testing MpCollectionDataModel
+*
+*/
+
+#include "mptrace.h"
+#include "stub/inc/mpmpxcollectiondata.h"
+
+/*!
+ Stub function.
+ */
+MpMpxCollectionData::MpMpxCollectionData( QObject *parent )
+ : QObject(parent),
+ mContext(ECollectionContextUnknown),
+ mCount(0),
+ mItemDataReturn(true)
+{
+}
+
+/*!
+ Stub function.
+ */
+MpMpxCollectionData::~MpMpxCollectionData()
+{
+}
+
+/*!
+ Stub function.
+ */
+TCollectionContext MpMpxCollectionData::context() const
+{
+ return mContext;
+}
+
+/*!
+ Stub function.
+ */
+int MpMpxCollectionData::count() const
+{
+ return mCount;
+}
+
+/*!
+ Stub function.
+ */
+QString MpMpxCollectionData::itemData( int index, MpMpxCollectionData::DataType type ) const
+{
+ if ( index < 0 || index > mCount ) {
+ TX_LOG_ARGS("index=" << index);
+ qFatal("MpMpxCollectionData::itemData called with index out of range");
+ }
+ QString data;
+ if ( !mItemDataReturn && (type != MpMpxCollectionData::Count) ) {
+ return data;
+ }
+ switch ( type ) {
+ case MpMpxCollectionData::Title:
+ data = QString("Title");
+ break;
+ case MpMpxCollectionData::Artist:
+ data = QString("Artist");
+ break;
+ case MpMpxCollectionData::Count:
+ data = QString("Count");
+ break;
+ case MpMpxCollectionData::AlbumArtUri:
+ data = QString("AlbumArtUri");
+ break;
+ default:
+ qFatal("MpMpxCollectionData::itemData called with unknown type");
+ break;
+ }
+ return data;
+}
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/stub/src/thumbnailmanager_qt.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/stub/src/thumbnailmanager_qt.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -93,14 +93,7 @@
{
Q_UNUSED(fileName);
Q_UNUSED(priority);
-
- if (clientData) {
- // Delete this to prevent memory leak
- int *data = (int *)clientData;
- delete data;
-
- data = 0;
- }
+ Q_UNUSED(clientData);
if ( mGetThumbFails ) {
return -1;
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/unittest_mpcollectionalbumartmanager.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectionalbumartmanager/unittest_mpcollectionalbumartmanager.pro Fri Apr 16 14:56:30 2010 +0300
@@ -31,10 +31,12 @@
HEADERS += inc/unittest_mpcollectionalbumartmanager.h \
stub/inc/thumbnailmanager_qt.h \
+ stub/inc/mpmpxcollectiondata.h \
../../inc/mpcollectionalbumartmanager.h \
SOURCES += src/unittest_mpcollectionalbumartmanager.cpp \
stub/src/thumbnailmanager_qt.cpp \
+ stub/src/mpmpxcollectiondata.cpp \
../../src/mpcollectionalbumartmanager.cpp
RESOURCES += ../../resources/mpcollectionviewresources.qrc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/inc/unittest_mpcollectioncontainers.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 mpcollectioncontainers
+*
+*/
+
+#ifndef TESTMPCOLLECTIONCONTAINERS_H
+#define TESTMPCOLLECTIONCONTAINERS_H
+
+#include <QtTest/QtTest>
+
+//Forward declarations
+class MpCollectionContainer;
+class MpCollectionContainerFactory;
+class MpCollectionDocumentLoader;
+class MpCollectionView;
+class MpMpxCollectionData;
+class MpCollectionDataModel;
+
+class TestMpCollectionContainers : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ TestMpCollectionContainers();
+ virtual ~TestMpCollectionContainers();
+
+signals:
+
+
+public slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+
+ void testConstructors();
+ void testSetupContainers();
+ void testItemActivated();
+ void testOnLongPressed();
+
+private:
+
+ MpCollectionContainer *mTest;
+ MpCollectionView *mView;
+ MpCollectionDataModel *mCollectionDataModel;
+ MpMpxCollectionData *mCollectionData;
+
+};
+
+#endif // TESTMPCOLLECTIONCONTAINERS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/src/unittest_mpcollectioncontainers.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,344 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 mpcollectioncontainers
+*
+*/
+
+#include <qnamespace.h>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbInstance.h>
+#include <hbListView.h>
+#include <hbListViewItem.h>
+#include "mpcollectiondocumentloader.h"
+#include "stub/inc/mpcollectionview.h"
+#include "stub/inc/mpmpxcollectiondata.h"
+#include "stub/inc/mpcollectiondatamodel.h"
+
+#include "unittest_mpcollectioncontainers.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#define protected public
+#include "mpcollectioncontainerfactory.h"
+#include "mpcollectioncontainer.h"
+#include "mpcollectionlistcontainer.h"
+#include "mpcollectioncontainerallsongs.h"
+#include "mpcollectioncontaineralbums.h"
+#include "mpcollectioncontainerplaylists.h"
+#include "mpcollectioncontainergenres.h"
+#undef private
+#undef protected
+/*!
+ 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;
+ TestMpCollectionContainers tv;
+
+ 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;
+}
+
+TestMpCollectionContainers::TestMpCollectionContainers()
+ : mTest(0),
+ mCollectionDataModel(0),
+ mCollectionData(0)
+{
+}
+
+TestMpCollectionContainers::~TestMpCollectionContainers()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpCollectionContainers::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpCollectionContainers::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpCollectionContainers::init()
+{
+ mView = new MpCollectionView();
+ mView->initializeView();
+ mCollectionData = new MpMpxCollectionData();
+ mCollectionDataModel = new MpCollectionDataModel(mCollectionData);
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpCollectionContainers::cleanup()
+{
+ delete mCollectionDataModel;
+ delete mCollectionData;
+ delete mView;
+}
+
+/*!
+ Test constructors
+ */
+void TestMpCollectionContainers::testConstructors()
+{
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
+}
+
+/*!
+ Test setupContainer via setDataModel
+ */
+void TestMpCollectionContainers::testSetupContainers()
+{
+ mCollectionData->mCount = 1;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+ 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);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
+
+ mTest = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ 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);
+ 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);
+ 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);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
+
+ mCollectionData->mContext = ECollectionContextPlaylistSongs;
+ 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);
+ 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);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
+
+ mTest = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ 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);
+ 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);
+ QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic != 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);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
+
+ mCollectionData->mContext = ECollectionContextPlaylistSongs;
+ mTest->setDataModel(mCollectionDataModel);
+
+ QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
+ QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
+ QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic != 0);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
+}
+
+/*!
+ Test itemActivated
+ */
+void TestMpCollectionContainers::testItemActivated()
+{
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+
+ 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;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ QSignalSpy spy2(mTest, SIGNAL(itemActivated( int )));
+ static_cast<MpCollectionContainerAlbums*>(mTest)->itemActivated(QModelIndex());
+ QCOMPARE(spy2.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), -1);
+
+ mTest = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+ QSignalSpy spy3(mTest, SIGNAL(itemActivated( int )));
+ static_cast<MpCollectionContainerPlaylists*>(mTest)->itemActivated(QModelIndex());
+ QCOMPARE(spy3.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy3.at(0).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 = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ QSignalSpy spy2(mTest, SIGNAL(itemLongPressed( int, QPointF )));
+ static_cast<MpCollectionContainerAlbums*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
+ QCOMPARE(spy2.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), -1);
+
+ mTest = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+ QSignalSpy spy3(mTest, SIGNAL(itemLongPressed( int, QPointF )));
+ static_cast<MpCollectionContainerPlaylists*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
+ QCOMPARE(spy3.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy3.at(0).at(0)), -1);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpcollectiondatamodel.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player collection abstract data model stub for testing mpcollectioncontainers
+*
+*/
+
+#ifndef MPCOLLECTIONDATAMODEL_H
+#define MPCOLLECTIONDATAMODEL_H
+
+#include <QAbstractListModel>
+
+class MpMpxCollectionData;
+class MpCollectionAlbumArtManager;
+
+
+class MpCollectionDataModel : public QAbstractListModel
+{
+ Q_OBJECT
+
+public:
+
+ explicit MpCollectionDataModel( MpMpxCollectionData *data, QObject *parent=0 );
+ virtual ~MpCollectionDataModel();
+
+ int rowCount(const QModelIndex &parent=QModelIndex()) const;
+ QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const;
+
+ void refreshModel();
+ MpMpxCollectionData *collectionData();
+
+
+public:
+
+ MpMpxCollectionData *mCollectionData;
+ int mRowCount;
+ bool mCachingInProgress;
+
+};
+
+#endif // MPCOLLECTIONDATAMODEL_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpcollectionview.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player collection view stub for testing mpcollectioncontainers
+*
+*/
+
+#ifndef MPCOLLECTIONVIEW_H
+#define MPCOLLECTIONVIEW_H
+
+#include <QObject>
+
+#include <hbview.h>
+#include <hbeffect.h>
+
+#include "mpmpxcollectionviewdefs.h"
+#include "mpviewbase.h"
+#include <QGraphicsWidget>
+
+class QActionGroup;
+class HbMainWindow;
+class HbAction;
+class HbMenu;
+class HbToolBar;
+class MpCollectionDocumentLoader;
+class MpCollectionContainerFactory;
+class MpCollectionContainer;
+class MpCollectionDataModel;
+class MpMpxFrameworkWrapper;
+class MpMpxCollectionData;
+class MpNowPlayingWidget;
+class MpSnapshotWidget;
+class MpCollectionSongScanner;
+
+class MpCollectionView : public QGraphicsWidget
+{
+ Q_OBJECT
+
+public:
+
+ MpCollectionView();
+ virtual ~MpCollectionView();
+
+ void initializeView();
+
+
+public slots:
+
+ void openIndex( int index );
+ void openContextMenu( int index, const QPointF &coords );
+
+public:
+
+ TCollectionContext mCollectionContext;
+
+ MpMpxFrameworkWrapper *mMpxWrapper; // Own
+ MpMpxCollectionData *mCollectionData; // Not own
+
+ MpCollectionContainerFactory *mContainerFactory; // Own
+ MpCollectionContainer *mCollectionContainer; // Not own
+ MpCollectionDataModel *mCollectionDataModel; // Own
+
+ bool mActivated;
+ MpNowPlayingWidget *mNowPlayingBanner; // Own
+ bool mBannerAttached;
+ bool mEffectOnGoing;
+
+ HbMainWindow *mWindow; // Not own
+ HbAction *mSoftKeyQuit; // Not own
+ HbAction *mSoftKeyBack; // Not own
+
+ MpCollectionDocumentLoader *mDocumentLoader; // Own
+ HbWidget *mMainContainer; // Own
+
+ HbToolBar *mMainToolBar;
+ HbToolBar *mPlaylistToolBar;
+
+ MpSnapshotWidget *mSnapshot;
+ MpCollectionSongScanner *mSongScanner; // Own
+ bool mScanning;
+
+};
+
+#endif // MPCOLLECTIONVIEW_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/inc/mpmpxcollectiondata.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MpMpxCollectionData stub for testing mpcollectioncontainers
+*
+*/
+
+#ifndef MPMPXCOLLECTIONDATA_H
+#define MPMPXCOLLECTIONDATA_H
+
+#include "mpmpxcollectionviewdefs.h"
+
+class CMPXMedia;
+
+
+class MpMpxCollectionData
+{
+
+public:
+
+ enum DataType {
+ Title,
+ Uri,
+ Duration,
+ Count,
+ Artist,
+ Album,
+ Genre,
+ Rating,
+ AlbumArtUri
+ };
+
+ // Stub functions
+ MpMpxCollectionData();
+ ~MpMpxCollectionData();
+
+ TCollectionContext context();
+ QString itemData( int index, MpMpxCollectionData::DataType type ) const;
+
+ void setMpxMedia( const CMPXMedia& entries );
+ const CMPXMedia& containerMedia();
+ int count() const;
+ QString collectionTitle() const;
+
+public:
+ CMPXMedia *mContainerMedia;
+ TBool mMediaSet;
+ TCollectionContext mContext;
+ int mCount;
+};
+
+#endif // MPMPXCOLLECTIONDATA_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpcollectiondatamodel.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 data model stub for testing mpcollectioncontainers.
+*
+*/
+
+
+#include "stub/inc/mpcollectiondatamodel.h"
+#include "stub/inc/mpmpxcollectiondata.h"
+#include "mptrace.h"
+
+
+/*!
+ Stub function
+ */
+MpCollectionDataModel::MpCollectionDataModel( MpMpxCollectionData *data, QObject *parent )
+ : QAbstractListModel(parent),
+ mCollectionData(data)
+{
+ TX_ENTRY
+ TX_EXIT
+}
+
+/*!
+ Stub function
+ */
+MpCollectionDataModel::~MpCollectionDataModel()
+{
+ TX_ENTRY
+ TX_EXIT
+}
+
+/*!
+ Stub function
+ */
+int MpCollectionDataModel::rowCount( const QModelIndex &parent ) const
+{
+ TX_LOG
+ Q_UNUSED(parent);
+ if ( mCachingInProgress ) {
+ return 0;
+ }
+ else {
+ return mRowCount;
+ }
+}
+
+/*!
+ Stub function
+ */
+QVariant MpCollectionDataModel::data(const QModelIndex &index, int role) const
+{
+ TX_ENTRY
+ Q_UNUSED(index);
+ Q_UNUSED(role);
+ QVariant returnValue = QVariant();
+ return returnValue;
+ TX_EXIT
+}
+
+/*!
+ Stub function
+ */
+void MpCollectionDataModel::refreshModel()
+{
+ TX_ENTRY
+ TX_EXIT
+}
+
+/*!
+ Stub function
+ */
+MpMpxCollectionData *MpCollectionDataModel::collectionData()
+{
+ return mCollectionData;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpcollectionview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 view stub for testing mpcollectioncontainers
+*
+*/
+
+// INCLUDE FILES
+
+#include <cstdlib>
+#include <qtcore>
+
+#include "stub/inc/mpcollectionview.h"
+#include "mpcollectiondocumentloader.h"
+#include "mpcollectioncontainerfactory.h"
+
+#include "mptrace.h"
+
+
+
+const char*MUSIC_COLLECTION_DOCML = ":/docml/musiccollection.docml";
+
+
+/*!
+ Stub function
+ */
+MpCollectionView::MpCollectionView()
+ : mContainerFactory(0),
+ mDocumentLoader(0)
+{
+ TX_LOG
+}
+
+/*!
+ Stub function
+ */
+MpCollectionView::~MpCollectionView()
+{
+ TX_ENTRY
+ delete mContainerFactory;
+ delete mDocumentLoader;
+ TX_EXIT
+}
+
+/*!
+ Stub function
+ */
+void MpCollectionView::initializeView()
+{
+ TX_ENTRY
+
+ mDocumentLoader = new MpCollectionDocumentLoader();
+ bool ok = false;
+ mDocumentLoader->load( MUSIC_COLLECTION_DOCML, &ok );
+ mContainerFactory = new MpCollectionContainerFactory(this, mDocumentLoader);
+
+ TX_EXIT
+}
+
+/*!
+ Stub function
+ */
+void MpCollectionView::openIndex( int index )
+{
+ Q_UNUSED(index);
+}
+
+/*!
+ Stub function
+ */
+void MpCollectionView::openContextMenu( int index, const QPointF &coords )
+{
+ Q_UNUSED(index);
+ Q_UNUSED(coords);
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/stub/src/mpmpxcollectiondata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: MpMpxCollectionData stub for testing mpcollectioncontainers
+*
+*/
+
+#include "mptrace.h"
+#include "stub/inc/mpmpxcollectiondata.h"
+#include <mpxmedia.h>
+
+
+/*!
+ Stub function.
+ */
+MpMpxCollectionData::MpMpxCollectionData()
+ :mContainerMedia(0),
+ mMediaSet(EFalse),
+ mContext (ECollectionContextUnknown)
+{
+}
+
+/*!
+ Stub function.
+*/
+MpMpxCollectionData::~MpMpxCollectionData()
+{
+}
+
+/*!
+ Stub function.
+*/
+TCollectionContext MpMpxCollectionData::context()
+{
+ return mContext;
+}
+
+/*!
+ Stub function.
+*/
+QString MpMpxCollectionData::itemData( int index, MpMpxCollectionData::DataType type ) const
+{
+ Q_UNUSED(index);
+ if ( type == MpMpxCollectionData::Uri ) {
+ return QString("Uri");
+ }
+ else {
+ return QString();
+ }
+}
+/*!
+ Stub function.
+*/
+void MpMpxCollectionData::setMpxMedia( const CMPXMedia& entries )
+{
+ delete mContainerMedia;
+ mContainerMedia = 0;
+ mContainerMedia = CMPXMedia::NewL(entries);
+ mMediaSet = ETrue;
+}
+
+/*!
+ Stub function.
+*/
+const CMPXMedia& MpMpxCollectionData::containerMedia()
+{
+ return *mContainerMedia;
+}
+
+/*!
+ Stub function.
+ */
+int MpMpxCollectionData::count() const
+{
+ return mCount;
+}
+
+/*!
+ Stub function.
+ */
+QString MpMpxCollectionData::collectionTitle() const
+{
+ QString title("Title");
+ return title;
+}
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/unittest_mpcollectioncontainers.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+TEMPLATE = app
+CONFIG += qtestlib hb
+TARGET =
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+ stub/inc \
+ ../../../../inc
+
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lestor.dll \
+ -lmpnowplayingbanner.dll
+
+
+HEADERS += inc/unittest_mpcollectioncontainers.h \
+ ../../inc/mpcollectioncontainerfactory.h \
+ ../../inc/mpcollectioncontainer.h \
+ ../../inc/mpcollectionlistcontainer.h \
+ ../../inc/mpcollectioncontainerallsongs.h \
+ ../../inc/mpcollectioncontaineralbums.h \
+ ../../inc/mpcollectioncontainerplaylists.h \
+ ../../inc/mpcollectioncontainergenres.h \
+ ../../inc/mpcollectiondocumentloader.h \
+ stub/inc/mpcollectiondatamodel.h \
+ stub/inc/mpmpxcollectiondata.h \
+ stub/inc/mpcollectionview.h
+
+SOURCES += src/unittest_mpcollectioncontainers.cpp \
+ ../../src/mpcollectioncontainerfactory.cpp \
+ ../../src/mpcollectioncontainer.cpp \
+ ../../src/mpcollectionlistcontainer.cpp \
+ ../../src/mpcollectioncontainerallsongs.cpp \
+ ../../src/mpcollectioncontaineralbums.cpp \
+ ../../src/mpcollectioncontainerplaylists.cpp \
+ ../../src/mpcollectioncontainergenres.cpp \
+ ../../src/mpcollectiondocumentloader.cpp \
+ stub/src/mpcollectiondatamodel.cpp \
+ stub/src/mpmpxcollectiondata.cpp \
+ stub/src/mpcollectionview.cpp
+
+RESOURCES += ../../resources/mpcollectionviewresources.qrc
\ No newline at end of file
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/inc/unittest_mpcollectiondatamodel.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/inc/unittest_mpcollectiondatamodel.h Fri Apr 16 14:56:30 2010 +0300
@@ -20,6 +20,7 @@
#include <QtTest/QtTest>
+class QTranslator;
class MpCollectionDataModel;
class MpMpxCollectionData;
class TestHelper;
@@ -48,15 +49,13 @@
private slots:
void testMemberCleanup();
+ void testRefreshModel();
void testRefreshModelZeroCount();
- void testRefreshModelLargeData();
- void testRefreshModelSmallData();
- void testRefreshModelNoAlbumArtUri();
void testCollectionData();
void testDataAllSongs();
void testDataAllSongsNoData();
- void testDataArtistAlbums();
- void testDataArtistAlbumsNoData();
+ void testDataAlbums();
+ void testDataAlbumsNoData();
void testDataAlbumSongs();
void testDataAlbumSongsNoData();
void testDataPlaylists();
@@ -65,13 +64,13 @@
void testDataPlaylistSongsNoData();
void testDataAnyOtherRole();
void testUpdateAlbumArt();
- void testAlbumCacheReady();
private:
MpCollectionDataModel *mTest;
TestHelper *mHelper;
MpMpxCollectionData *mStubData;
+ QTranslator *mMpTranslator; // Own
};
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/src/unittest_mpcollectiondatamodel.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/src/unittest_mpcollectiondatamodel.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -18,6 +18,9 @@
#include <QAbstractItemModel>
#include <QSignalSpy>
#include <QMetaType>
+#include <QTranslator>
+#include <QLocale>
+
#include <hbapplication.h>
#include <hbmainwindow.h>
#include <hbicon.h>
@@ -58,7 +61,8 @@
TestMpCollectionDataModel::TestMpCollectionDataModel()
: mTest(0),
mHelper(0),
- mStubData(0)
+ mStubData(0),
+ mMpTranslator(0)
{
}
@@ -67,6 +71,7 @@
delete mTest;
delete mHelper;
delete mStubData;
+ delete mMpTranslator;
}
/*!
@@ -74,6 +79,16 @@
*/
void TestMpCollectionDataModel::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();
}
@@ -123,6 +138,21 @@
}
/*!
+ Tests refreshModel() request.
+ */
+void TestMpCollectionDataModel::testRefreshModel()
+{
+ mTest->mCollectionData->mCount = 100;
+ mTest->mCollectionData->mContext = ECollectionContextAlbums;
+ mTest->refreshModel();
+ // Verify that:
+ // - It sets correct row count
+ QCOMPARE(mTest->mRowCount, 100);
+ QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 1);
+ // Stub QAbstractListModel to verify call to reset()
+}
+
+/*!
Tests refreshModel() request with empty data model.
*/
void TestMpCollectionDataModel::testRefreshModelZeroCount()
@@ -131,72 +161,7 @@
mTest->refreshModel();
// Verify that:
// - It sets correct row count
- // - It doesn't attempt to cache initial set of album art
QCOMPARE(mTest->mRowCount, 0);
- QCOMPARE(MpMpxCollectionData::getItemDataCounter(), 0);
- QCOMPARE(mTest->mCachingInProgress, false);
- QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 0);
- // AK - Stub QAbstractListModel to verify call to reset()
-}
-
-/*!
- Tests refreshModel() request with large data size.
- */
-void TestMpCollectionDataModel::testRefreshModelLargeData()
-{
- mTest->mCollectionData->mCount = 100;
- mTest->mCollectionData->mContext = ECollectionContextArtistAlbums;
- mTest->refreshModel();
- // Verify that:
- // - It sets correct row count
- // - It caches the initial cache size
- QCOMPARE(mTest->mRowCount, 100);
- QCOMPARE(MpMpxCollectionData::getItemDataCounter(), KInitCacheSize);
- QCOMPARE(mTest->mCachingInProgress, true);
- QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 1);
-
- // Verify that:
- // - rowCount returns 0 when caching is in progress
- QCOMPARE(mTest->rowCount(QModelIndex()), 0);
-}
-
-/*!
- Tests refreshModel() request with small data size.
- */
-void TestMpCollectionDataModel::testRefreshModelSmallData()
-{
- mTest->mCollectionData->mCount = 3;
- mTest->mCollectionData->mContext = ECollectionContextArtistAlbums;
- mTest->refreshModel();
- // Verify that:
- // - It sets correct row count
- // - It caches all data
- QCOMPARE(mTest->mRowCount, 3);
- QCOMPARE(MpMpxCollectionData::getItemDataCounter(), 3);
- QCOMPARE(mTest->mCachingInProgress, true);
- QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 1);
-}
-
-/*!
- Tests refreshModel() request with data that has no album art.
- */
-void TestMpCollectionDataModel::testRefreshModelNoAlbumArtUri()
-{
- mTest->mCollectionData->mCount = 100;
- mTest->mCollectionData->mItemDataReturn = false;
- mTest->mCollectionData->mContext = ECollectionContextArtistAlbums;
- mTest->refreshModel();
- // Verify that:
- // - It sets correct row count
- // - Caching is not in progress
- QCOMPARE(mTest->mRowCount, 100);
- QCOMPARE(MpMpxCollectionData::getItemDataCounter(), KInitCacheSize);
- QCOMPARE(mTest->mCachingInProgress, false);
- QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 1);
-
- // Verify that:
- // - rowCount returns actual data size when caching is not in progress
- QCOMPARE(mTest->rowCount(QModelIndex()), 100);
}
/*!
@@ -248,8 +213,8 @@
QCOMPARE(data.canConvert(QVariant::StringList), true);
QStringList dataList = data.toStringList();
QCOMPARE(dataList.count(), 2);
- QCOMPARE(dataList.at(0), QString("Unknown"));
- QCOMPARE(dataList.at(1), QString("Unknown"));
+ 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);
@@ -257,13 +222,13 @@
}
/*!
- Tests data() request for ArtistAlbums context.
+ Tests data() request for Albums context.
*/
-void TestMpCollectionDataModel::testDataArtistAlbums()
+void TestMpCollectionDataModel::testDataAlbums()
{
mTest->mCollectionData->mCount = 100;
mTest->mRowCount = 100;
- mTest->mCollectionData->mContext = ECollectionContextArtistAlbums;
+ mTest->mCollectionData->mContext = ECollectionContextAlbums;
QModelIndex modelIndex = mHelper->indexFor(1);
@@ -273,24 +238,21 @@
QStringList dataList = data.toStringList();
QCOMPARE(dataList.count(), 2);
QCOMPARE(dataList.at(0), QString("Title"));
- // AK - Second data will eventually change to "Album"
QCOMPARE(dataList.at(1), QString("Artist"));
// Qt::DecorationRole
data = mTest->data(modelIndex, Qt::DecorationRole);
- QCOMPARE(data.userType(), QMetaType::type("HbIcon"));
- HbIcon icon = data.value<HbIcon>();
- QCOMPARE(icon.iconName(), QString(":/icons/artists"));
+ QCOMPARE(data.userType(), QMetaType::type("QIcon"));
}
/*!
- Tests data() request for ArtistAlbums context with no data available.
+ Tests data() request for Albums context with no data available.
*/
-void TestMpCollectionDataModel::testDataArtistAlbumsNoData()
+void TestMpCollectionDataModel::testDataAlbumsNoData()
{
mTest->mCollectionData->mCount = 100;
mTest->mRowCount = 100;
- mTest->mCollectionData->mContext = ECollectionContextArtistAlbums;
+ mTest->mCollectionData->mContext = ECollectionContextAlbums;
mTest->mCollectionData->mItemDataReturn = false;
QModelIndex modelIndex = mHelper->indexFor(1);
@@ -300,14 +262,12 @@
QCOMPARE(data.canConvert(QVariant::StringList), true);
QStringList dataList = data.toStringList();
QCOMPARE(dataList.count(), 2);
- QCOMPARE(dataList.at(0), QString("Unknown"));
- QCOMPARE(dataList.at(1), QString("Unknown"));
+ 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("HbIcon"));
- HbIcon icon = data.value<HbIcon>();
- QCOMPARE(icon.iconName(), QString(":/icons/default_album.png"));
+ QCOMPARE(data.userType(), QMetaType::type("QIcon"));
}
/*!
@@ -350,7 +310,7 @@
QCOMPARE(data.canConvert(QVariant::StringList), true);
QStringList dataList = data.toStringList();
QCOMPARE(dataList.count(), 1);
- QCOMPARE(dataList.at(0), QString("Unknown"));
+ QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
}
/*!
@@ -368,9 +328,8 @@
QVariant data = mTest->data(modelIndex, Qt::DisplayRole);
QCOMPARE(data.canConvert(QVariant::StringList), true);
QStringList dataList = data.toStringList();
- QCOMPARE(dataList.count(), 2);
+ QCOMPARE(dataList.count(), 1);
QCOMPARE(dataList.at(0), QString("Title"));
- QCOMPARE(dataList.at(1), QString("Count"));
// Qt::DecorationRole
data = mTest->data(modelIndex, Qt::DecorationRole);
@@ -393,9 +352,8 @@
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("Unknown"));
- QCOMPARE(dataList.at(1), QString("Count"));
+ QCOMPARE(dataList.count(), 1);
+ QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4"));
}
/*!
@@ -439,8 +397,8 @@
QCOMPARE(data.canConvert(QVariant::StringList), true);
QStringList dataList = data.toStringList();
QCOMPARE(dataList.count(), 2);
- QCOMPARE(dataList.at(0), QString("Unknown"));
- QCOMPARE(dataList.at(1), QString("Unknown"));
+ 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);
@@ -482,20 +440,4 @@
mTest->mAlbumArtManager, SIGNAL(albumArtReady(int)) );
}
-/*!
- Tests albumCacheReady() slot.
- */
-void TestMpCollectionDataModel::testAlbumCacheReady()
-{
- connect( this, SIGNAL(albumCacheReady()),
- mTest->mAlbumArtManager, SIGNAL(albumCacheReady()) );
- mTest->mCachingInProgress = true;
-
- emit albumCacheReady();
- QCOMPARE(mTest->mCachingInProgress, false);
-
- disconnect( this, SIGNAL(albumCacheReady()),
- mTest->mAlbumArtManager, SIGNAL(albumCacheReady()) );
-}
-
// End of file
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/stub/inc/mpcollectionalbumartmanager.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/stub/inc/mpcollectionalbumartmanager.h Fri Apr 16 14:56:30 2010 +0300
@@ -20,8 +20,9 @@
#define MPCOLLECTIONALBUMARTMANAGER_H
#include <QObject>
+#include <QIcon>
-class HbIcon;
+class MpMpxCollectionData;
class MpCollectionAlbumArtManager : public QObject
{
@@ -34,22 +35,20 @@
static void resetInitCounter();
// Stub functions
- explicit MpCollectionAlbumArtManager( QObject *parent=0 );
+ explicit MpCollectionAlbumArtManager( MpMpxCollectionData *data, QObject *parent=0 );
virtual ~MpCollectionAlbumArtManager();
- HbIcon albumArt( const QString &albumArtUri, int index );
- bool cacheAlbumArt( const QStringList albumArtList );
+
+ const QIcon* albumArt( int index );
+ void cacheFirstScreen();
void cancel();
signals:
void albumArtReady( int index );
- void albumCacheReady();
public:
- HbIcon *mIcon;
- bool mAlbumArtReturn;
- bool mCacheAlbumArtReturn;
+ QIcon *mIcon;
int mAlbumArtCount;
int mCacheAlbumArtCount;
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/stub/src/mpcollectionalbumartmanager.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondatamodel/stub/src/mpcollectionalbumartmanager.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -18,7 +18,6 @@
*
*/
-#include <hbicon.h>
#include "stub/inc/mpcollectionalbumartmanager.h"
int gAlbumInitCounter = 0;
@@ -43,16 +42,15 @@
/*!
Stub function.
*/
-MpCollectionAlbumArtManager::MpCollectionAlbumArtManager( QObject *parent )
+MpCollectionAlbumArtManager::MpCollectionAlbumArtManager( MpMpxCollectionData *data, QObject *parent )
: QObject(parent),
mIcon(0),
- mAlbumArtReturn(true),
- mCacheAlbumArtReturn(true),
mAlbumArtCount(0),
mCacheAlbumArtCount(0)
{
+ Q_UNUSED(data);
gAlbumInitCounter++;
- mIcon = new HbIcon(QString(":/icons/artists"));
+ mIcon = new QIcon(":/icons/default_album.png");
}
/*!
@@ -67,28 +65,19 @@
/*!
Stub function.
*/
-HbIcon MpCollectionAlbumArtManager::albumArt( const QString& albumArtUri, int index )
+const QIcon* MpCollectionAlbumArtManager::albumArt( int index )
{
- Q_UNUSED(albumArtUri);
Q_UNUSED(index);
mAlbumArtCount++;
- HbIcon icon;
- if ( mAlbumArtReturn ) {
- return *mIcon;
- }
- return icon;
+ return mIcon;
}
/*!
Stub function.
*/
-bool MpCollectionAlbumArtManager::cacheAlbumArt( const QStringList albumArtList )
+void MpCollectionAlbumArtManager::cacheFirstScreen()
{
mCacheAlbumArtCount++;
- if ( albumArtList.empty() ) {
- return false;
- }
- return mCacheAlbumArtReturn;
}
/*!
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/inc/unittest_mpcollectiondocumentloader.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/inc/unittest_mpcollectiondocumentloader.h Fri Apr 16 14:56:30 2010 +0300
@@ -42,9 +42,8 @@
private slots:
void testCreateMpNowPlayingWidget();
- void testCreateMpCollectionInfoBar();
void testCreateQObject();
-
+
private:
MpCollectionDocumentLoader *mTest;
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/src/unittest_mpcollectiondocumentloader.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/src/unittest_mpcollectiondocumentloader.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -22,7 +22,6 @@
#include "unittest_mpcollectiondocumentloader.h"
#include "mpnowplayingwidget.h"
-#include "mpcollectioninfobar.h"
// Do this so we can access all member variables.
#define private public
@@ -102,26 +101,11 @@
QCOMPARE(theObject->objectName(),QString("myMpNowPlayingWidget"));
QVERIFY(qobject_cast<MpNowPlayingWidget*>(theObject));
delete theObject;
-
+
}
/*!
- Tests the correct creation of MpCollectionInfoBar.
- */
-void TestMpCollectionDocumentLoader::testCreateMpCollectionInfoBar()
-{
- cleanup();
- init();
- QObject *theObject;
- theObject = mTest->createObject(QString("MpCollectionInfoBar"),QString("myMpCollectionInfoBar"));
- QCOMPARE(theObject->metaObject()->className(),"MpCollectionInfoBar");
- QCOMPARE(theObject->objectName(),QString("myMpCollectionInfoBar"));
- QVERIFY(qobject_cast<MpCollectionInfoBar*>(theObject));
- delete theObject;
-}
-
-/*!
- Tests the correct creation of QObject, this should be pased to the
+ Tests the correct creation of QObject, this should be pased to the
base clas and base clas should return a named object.
*/
void TestMpCollectionDocumentLoader::testCreateQObject()
@@ -134,5 +118,5 @@
QCOMPARE(theObject->objectName(),QString("myQObject"));
delete theObject;
}
-
+
// End of file
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/inc/mpcollectioninfobar.h Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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: MpCollectionInfoBar stub for testing MpCollectionDocumentLoader
-*
-*/
-
-#ifndef MPCOLLECTIONINFOBAR_H
-#define MPCOLLECTIONINFOBAR_H
-
-#include <QObject>
-
-class MpCollectionInfoBar : public QObject
-{
- Q_OBJECT
-
-public:
-
- explicit MpCollectionInfoBar();
- virtual ~MpCollectionInfoBar();
-};
-
-#endif // MPCOLLECTIONINFOBAR_H
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/stub/src/mpcollectioninfobar.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +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: MpCollectionInfoBar stub for testing MpCollectionDocumentLoader
-*
-*/
-
-#include "mpcollectioninfobar.h"
-
-/*!
- Constructs the information bar widget stub.
- */
-MpCollectionInfoBar::MpCollectionInfoBar()
-{
-}
-
-/*!
- Destructs the widget stub.
- */
-MpCollectionInfoBar::~MpCollectionInfoBar()
-{
-}
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/unittest_mpcollectiondocumentloader.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectiondocumentloader/unittest_mpcollectiondocumentloader.pro Fri Apr 16 14:56:30 2010 +0300
@@ -28,10 +28,8 @@
HEADERS += inc/unittest_mpcollectiondocumentloader.h \
../../inc/mpcollectiondocumentloader.h \
- stub/inc/mpnowplayingwidget.h \
- stub/inc/mpcollectioninfobar.h
+ stub/inc/mpnowplayingwidget.h
SOURCES += src/unittest_mpcollectiondocumentloader.cpp \
../../src/mpcollectiondocumentloader.cpp \
- stub/src/mpnowplayingwidget.cpp \
- stub/src/mpcollectioninfobar.cpp
+ stub/src/mpnowplayingwidget.cpp
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioninfobar/inc/unittest_mpcollectioninfobar.h Fri Mar 19 09:28:13 2010 +0200
+++ /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: Unit test for MpCollectionInfoBar
-*
-*/
-
-#ifndef TESTMPCOLLECTIONINFOBAR_H
-#define TESTMPCOLLECTIONINFOBAR_H
-
-#include <QtTest/QtTest>
-
-class MpCollectionInfoBar;
-
-class TestMpCollectionInfoBar : public QObject
-{
- Q_OBJECT
-
-public:
-
- TestMpCollectionInfoBar();
- virtual ~TestMpCollectionInfoBar();
-
-signals:
- void orientationChange(Qt::Orientation orientation);
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
- void testConstructor();
- void testSetText();
- void testOrientationChange();
-
-private:
-
- MpCollectionInfoBar *mTest;
-
-};
-
-#endif // TESTMPCOLLECTIONINFOBAR_H
-
-
-
-
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioninfobar/src/unittest_mpcollectioninfobar.cpp Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +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 MpCollectionInfoBar
-*
-*/
-
-#include <qnamespace.h>
-#include <QSignalSpy>
-#include <QMetaType>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
-#include <hblabel.h>
-
-#include "unittest_mpcollectioninfobar.h"
-#include "mpcommondefs.h"
-
-// Do this so we can access all member variables.
-#define private public
-#include "mpcollectioninfobar.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;
-
- TestMpCollectionInfoBar tv;
-
- char *pass[3];
- pass[0] = argv[0];
- pass[1] = "-o";
- pass[2] = "c:\\data\\unittest_mpcollectioninfobar.txt";
-
- int res = QTest::qExec(&tv, 3, pass);
-
- return res;
-}
-
-TestMpCollectionInfoBar::TestMpCollectionInfoBar()
- : mTest(0)
-{
-}
-
-TestMpCollectionInfoBar::~TestMpCollectionInfoBar()
-{
- delete mTest;
-}
-
-/*!
- Called before the first testfunction is executed.
- */
-void TestMpCollectionInfoBar::initTestCase()
-{
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestMpCollectionInfoBar::cleanupTestCase()
-{
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestMpCollectionInfoBar::init()
-{
- mTest = new MpCollectionInfoBar();
-}
-
-/*!
- Called after every testfunction.
- */
-void TestMpCollectionInfoBar::cleanup()
-{
- delete mTest;
- mTest = 0;
-}
-
-/*!
- Tests constructor.
- */
-void TestMpCollectionInfoBar::testConstructor()
-{
- QVERIFY(mTest->mContainer != 0);
- QVERIFY(mTest->mDocumentLoader != 0);
- QVERIFY(mTest->mTextLeft != 0);
- QVERIFY(mTest->mTextRight != 0);
-
- cleanup();
- QGraphicsRectItem rectItem;
- mTest = new MpCollectionInfoBar(&rectItem);
- QVERIFY(mTest->parentItem() == &rectItem);
- mTest->setParentItem(0);
-}
-
-///*!
-// Tests changing the text with one or two labels
-// */
-void TestMpCollectionInfoBar::testSetText()
-{
- mTest->setText(QString("Left text"));
- QCOMPARE(mTest->mSingleText, true);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text"));
- mTest->setText(QString("Left text 2"),QString("Right text 2"));
- QCOMPARE(mTest->mSingleText, false);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text 2"));
- QCOMPARE(mTest->mTextRight->plainText(),QString("Right text 2"));
- mTest->setText(QString("Left text"));
- QCOMPARE(mTest->mSingleText, true);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text"));
-}
-
-///*!
-// Tests orientation changes.
-// */
-void TestMpCollectionInfoBar::testOrientationChange()
-{
- connect(this, SIGNAL( orientationChange(Qt::Orientation) ),
- mTest, SLOT( orientationChange(Qt::Orientation) ) );
- mTest->setText(QString("Left text"));
- QCOMPARE(mTest->mSingleText, true);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text"));
- emit orientationChange(Qt::Horizontal);
- QCOMPARE(mTest->mSingleText, true);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text"));
- QCOMPARE(mTest->mOrientation,Qt::Horizontal);
-
- emit orientationChange(Qt::Vertical);
- QCOMPARE(mTest->mSingleText, true);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text"));
- QCOMPARE(mTest->mOrientation,Qt::Vertical);
-
- mTest->setText(QString("Left text 2"),QString("Right text 2"));
- emit orientationChange(Qt::Horizontal);
- QCOMPARE(mTest->mSingleText, false);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text 2"));
- QCOMPARE(mTest->mTextRight->plainText(),QString("Right text 2"));
- QCOMPARE(mTest->mOrientation,Qt::Horizontal);
-
- emit orientationChange(Qt::Vertical);
- QCOMPARE(mTest->mSingleText, false);
- QCOMPARE(mTest->mTextLeft->plainText(),QString("Left text 2"));
- QCOMPARE(mTest->mTextRight->plainText(),QString("Right text 2"));
- QCOMPARE(mTest->mOrientation,Qt::Vertical);
-}
-
-// End of file
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioninfobar/unittest_mpcollectioninfobar.pro Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +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 mpcollectioninfobar
-TEMPLATE = app
-CONFIG += qtestlib \
- hb
-TARGET =
-DEPENDPATH += .
-INCLUDEPATH += . \
- ../../inc \
- ../../../../inc
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-LIBS += -lestor.dll \
- -lfbscli.dll
-
-HEADERS += inc/unittest_mpcollectioninfobar.h \
- ../../inc/mpcollectioninfobar.h
-SOURCES += src/unittest_mpcollectioninfobar.cpp \
- ../../src/mpcollectioninfobar.cpp
-RESOURCES += ../../resources/mpcollectionviewresources.qrc
-
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -492,8 +492,8 @@
entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
mTestPrivate->iContainerMedia = entries;
mTestPrivate->SetCollectionContextL();
- QCOMPARE(mTestPrivate->iContext,ECollectionContextArtistAlbums);
-
+ QCOMPARE(mTestPrivate->iContext,ECollectionContextAlbums);
+
// All songs in one or multiple albums
entries->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
entries->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAlbum);
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/inc/unittest_mpmpxframeworkwrapper.h Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/inc/unittest_mpmpxframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -47,24 +47,29 @@
private slots:
void testConstructor();
+ void testReleaseIsolatedCollection();
void testCollectionData();
void testHandleOpenEntries();
void testHandleOpenPlaylist();
- void testHandleOperationComplete();
+ void testHandleOperationComplete();
+ void testHandleIsolatedOpen();
void testOpenCollection();
void testDoIncrementalOpen();
void testReopenCollection();
void testOpenCollectionItem();
void testGoBack();
void testFindPlaylists();
- void testCreatePlaylist();
+ void testCreatePlaylist();
+ void testCreatePlaylistWithProvidedCollectionData();
void testSaveToPlaylist();
+ void testSaveToCurrentPlaylist();
void testRenamePlaylist();
void testDeleteSongs();
void testSetShuffle();
void testScan();
void testCancelScan();
void testPreviewItem();
+ void testOpenIsolatedCollection();
void testHandleCollectionMessage();
void testPreparePlaylistMediaSongsContext();
void testPreparePlaylistMediaArtistAlbumsContext();
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/src/unittest_mpmpxframeworkwrapper.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/src/unittest_mpmpxframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -29,6 +29,7 @@
#include "stub/inc/mpxcollectionutility.h"
#include "stub/inc/mpxplaybackutility.h"
#include "stub/inc/mpxharvesterutility.h"
+#include "stub/inc/mpmpxisolatedcollectionhelper.h"
#include "mpsettingsmanager.h"
// Do this so we can access all member variables.
@@ -143,6 +144,18 @@
/*!
Tests collectionData
*/
+void TestMpMpxFrameworkWrapper::testReleaseIsolatedCollection()
+{
+ mTestPrivate->iIsolatedCollectionHelper = CMpMpxIsolatedCollectionHelper::NewL( mTestPrivate );
+ mTestPrivate->iIsolatedCollectionData = new MpMpxCollectionData();
+ mTest->releaseIsolatedCollection();
+ QVERIFY(mTestPrivate->iIsolatedCollectionHelper == 0);
+ QVERIFY(mTestPrivate->iIsolatedCollectionData == 0);
+}
+
+/*!
+ Tests collectionData
+ */
void TestMpMpxFrameworkWrapper::testCollectionData()
{
loadTestData();
@@ -276,6 +289,31 @@
}
/*!
+ Tests HandleIsolatedOpen.
+ */
+void TestMpMpxFrameworkWrapper::testHandleIsolatedOpen()
+{
+ loadTestData();
+ QSignalSpy spy(mTest, SIGNAL(isolatedCollectionOpened(MpMpxCollectionData*)));
+
+ mTestPrivate->iIsolatedCollectionData = 0;
+ mTestPrivate->HandleIsolatedOpenL( *iMediaTestData, KErrNone ) ;
+ QCOMPARE(mTestPrivate->iIsolatedCollectionData->mMediaSet, TBool(ETrue));
+ delete mTestPrivate->iIsolatedCollectionData;
+
+ mTestPrivate->iIsolatedCollectionData = new MpMpxCollectionData();
+ mTestPrivate->HandleIsolatedOpenL( *iMediaTestData, KErrNone ) ;
+ QCOMPARE(mTestPrivate->iIsolatedCollectionData->mMediaSet, TBool(ETrue));
+ delete mTestPrivate->iIsolatedCollectionData;
+
+ mTestPrivate->iIsolatedCollectionData = new MpMpxCollectionData();
+ mTestPrivate->HandleIsolatedOpenL( *iMediaTestData, KErrNotFound ) ;
+ QCOMPARE(mTestPrivate->iIsolatedCollectionData->mMediaSet, TBool(EFalse));
+
+ QCOMPARE(spy.count(), 2);
+}
+
+/*!
Tests openCollection for different contexts.
*/
void TestMpMpxFrameworkWrapper::testOpenCollection()
@@ -287,7 +325,7 @@
QCOMPARE(mTestPrivate->iCollectionUtility->iOpenCount, 1);
cleanup();
init();
- mTest->openCollection(ECollectionContextArtistAlbums);
+ mTest->openCollection(ECollectionContextAlbums);
QCOMPARE(mTestPrivate->iCollectionUtility->iOpen,TBool(ETrue));
QCOMPARE(mTestPrivate->iCollectionUtility->iCountPath, 1);
QCOMPARE(mTestPrivate->iCollectionUtility->iOpenCount, 1);
@@ -406,6 +444,44 @@
}
/*!
+ Tests createPlaylist with a provided collection data.
+ */
+void TestMpMpxFrameworkWrapper::testCreatePlaylistWithProvidedCollectionData()
+{
+ QList<int> selection;
+ selection.append(1);
+ selection.append(3);
+ selection.append(5);
+ QString playListName("playlistname");
+ loadTestData();
+
+ //test with a collection data different that the browsing collection.
+ MpMpxCollectionData *collectionData;
+ collectionData = new MpMpxCollectionData();
+ collectionData->setMpxMedia(*iMediaTestData);
+ mTest->createPlaylist(playListName,selection, collectionData);
+ delete collectionData;
+ QCOMPARE(mTestPrivate->iCollectionUiHelper->iIncAdd, TBool(ETrue));
+ CMPXMedia* testTracks = mTestPrivate->iCollectionUiHelper->iMedia;
+ QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType),EMPXItem);
+ QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory),EMPXPlaylist);
+ const TDesC& playlistTitle = TPtrC(reinterpret_cast<const TText*>(playListName.constData()));
+ const TDesC& playlistPath = TPtrC(KPlaylistPath);
+ QCOMPARE(testTracks->ValueText(KMPXMediaGeneralTitle),playlistTitle);
+ QCOMPARE(testTracks->ValueText(KMPXMediaGeneralUri), playlistPath);
+ TInt count = testTracks->ValueTObjectL<TInt>(KMPXMediaArrayCount);
+ QCOMPARE(count, selection.count());
+ CMPXMediaArray* testArray = testTracks->Value<CMPXMediaArray>( KMPXMediaArrayContents );
+ for( TInt i = 0; i < count; i++ ){
+ CMPXMedia* track( testArray->AtL(i) );
+ const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[(2*i)+1].GeneralTitle));
+ QCOMPARE(track->ValueText( KMPXMediaGeneralTitle ), title);
+ QCOMPARE(track->ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType),EMPXItem);
+ QCOMPARE(track->ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory),EMPXSong);
+ }
+}
+
+/*!
Tests saveToPlaylist.
*/
void TestMpMpxFrameworkWrapper::testSaveToPlaylist()
@@ -442,25 +518,69 @@
}
/*!
+ Tests SaveToCurrentPlaylist.
+ */
+void TestMpMpxFrameworkWrapper::testSaveToCurrentPlaylist()
+{
+ QList<int> selection;
+ selection.append(1);
+ selection.append(3);
+ selection.append(5);
+ loadTestData();
+
+ MpMpxCollectionData *testCollectionData = new MpMpxCollectionData();
+ testCollectionData->setMpxMedia(*iMediaTestData);
+
+ //Reusing the same data, just setting some parameters to make it look like playlist tracks.
+ iMediaTestData->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId,TMPXItemId(1234));
+ iMediaTestData->SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
+ iMediaTestData->SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXPlaylist);
+ mTestPrivate->iCollectionData->setMpxMedia(*iMediaTestData);
+ mTest->saveToCurrentPlaylist( selection, testCollectionData );
+
+ QCOMPARE(mTestPrivate->iCollectionUiHelper->iIncAdd, TBool(ETrue));
+ CMPXMedia* testTracks = mTestPrivate->iCollectionUiHelper->iMedia;
+ QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType),EMPXItem);
+ QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory),EMPXPlaylist);
+ QCOMPARE(testTracks->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId),TMPXItemId(1234));
+
+ QCOMPARE(testTracks->ValueTObjectL<TUid>( KMPXMediaGeneralCollectionId),TUid::Uid(EMPXCollectionPluginMusic));
+ TInt count = testTracks->ValueTObjectL<TInt>(KMPXMediaArrayCount);
+ QCOMPARE(count, selection.count());
+ CMPXMediaArray* testArray = testTracks->Value<CMPXMediaArray>( KMPXMediaArrayContents );
+ for( TInt i = 0; i < count; i++ ){
+ CMPXMedia* track( testArray->AtL(i) );
+ const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[(2*i)+1].GeneralTitle));
+ QCOMPARE(track->ValueText( KMPXMediaGeneralTitle ), title);
+ QCOMPARE(track->ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType),EMPXItem);
+ QCOMPARE(track->ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory),EMPXSong);
+ }
+
+}
+
+/*!
Tests renamePlaylist.
*/
void TestMpMpxFrameworkWrapper::testRenamePlaylist()
{
+
loadPlaylists();
mTestPrivate->iCollectionData->setMpxMedia(*iPlaylistsTestData);
- mTest->renamePlaylist(QString("New Playlist Name"),3);
+ QString newPlaylistName("New Playlist Name");
+ mTest->renamePlaylist(newPlaylistName,3);
QCOMPARE(mTestPrivate->iCollectionUiHelper->iValidRename, TBool(ETrue));
CMPXMediaArray *mediaArray;
mediaArray = const_cast<CMPXMediaArray*>(iPlaylistsTestData->Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
CMPXMedia* currentPlaylistMedia( mediaArray->AtL( 3 ) );
QCOMPARE(mTestPrivate->iCollectionUiHelper->iPlaylistId, currentPlaylistMedia->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ));
- QCOMPARE(mTestPrivate->iCollectionUiHelper->iRenameTitle, QString("New Playlist Name"));
+ QCOMPARE(mTestPrivate->iCollectionUiHelper->iRenameTitle, newPlaylistName);
loadTestData();
mTestPrivate->iCollectionData->setMpxMedia(*iMediaTestData);
- mTest->renamePlaylist(QString("New Playlist Name 2"));
+ QString newPlaylistName2("New Playlist Name 2");
+ mTest->renamePlaylist(newPlaylistName2);
QCOMPARE(mTestPrivate->iCollectionUiHelper->iValidRename, TBool(ETrue));
- QCOMPARE(mTestPrivate->iCollectionUiHelper->iRenameTitle, QString("New Playlist Name 2"));
+ QCOMPARE(mTestPrivate->iCollectionUiHelper->iRenameTitle, newPlaylistName2);
QCOMPARE(mTestPrivate->iCollectionUiHelper->iPlaylistId, TMPXItemId(1));
}
@@ -528,10 +648,12 @@
}
/*!
- Tests scan
+ Tests PreviewItem
*/
void TestMpMpxFrameworkWrapper::testPreviewItem()
{
+ loadTestData();
+ mTestPrivate->iCollectionData->setMpxMedia(*iMediaTestData);
QSignalSpy spy(mTest, SIGNAL(collectionPlaylistOpened()));
mTest->previewItem(1);
@@ -542,6 +664,29 @@
}
/*!
+ Tests OpenIsolatedCollection
+ */
+void TestMpMpxFrameworkWrapper::testOpenIsolatedCollection()
+{
+
+ QVERIFY(mTestPrivate->iIsolatedCollectionHelper == 0);
+ mTest->openIsolatedCollection( ECollectionContextAllSongs );
+ QVERIFY(mTestPrivate->iIsolatedCollectionHelper != 0);
+ QCOMPARE(dynamic_cast<MMpMpxIsolatedCollectionHelperObserver*>(mTestPrivate),mTestPrivate->iIsolatedCollectionHelper->iObserver);
+ QCOMPARE(mTestPrivate->iIsolatedCollectionHelper->iOpen,TBool(ETrue));
+ QCOMPARE(mTestPrivate->iIsolatedCollectionHelper->iCountPath, 6);
+ QCOMPARE(mTestPrivate->iIsolatedCollectionHelper->iOpenCount, 1);
+
+ delete mTestPrivate->iIsolatedCollectionHelper;
+ mTestPrivate->iIsolatedCollectionHelper = 0;
+ mTest->openIsolatedCollection( ECollectionContextUnknown );
+ QVERIFY(mTestPrivate->iIsolatedCollectionHelper == 0);
+
+}
+
+
+
+/*!
Tests handleCollectionMessage. Part of private implementation.
*/
void TestMpMpxFrameworkWrapper::testHandleCollectionMessage()
@@ -677,7 +822,7 @@
CMPXMedia* testTracks = CMPXMedia::NewL();
CleanupStack::PushL( testTracks );
- mTestPrivate->PreparePlaylistMediaL(*testTracks,selection);
+ mTestPrivate->PreparePlaylistMediaL(*testTracks,selection,mTestPrivate->iCollectionData);
QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType),EMPXItem);
QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory),EMPXPlaylist);
TInt count = testTracks->ValueTObjectL<TInt>(KMPXMediaArrayCount);
@@ -797,12 +942,12 @@
mTestPrivate->iCollectionUtility->iAlbumSongs = albumsTracksTestData;
mTestPrivate->iCollectionData->setMpxMedia(*albumsTestData);
- mTestPrivate->iCollectionData->mContext = ECollectionContextArtistAlbums;
+ mTestPrivate->iCollectionData->mContext = ECollectionContextAlbums;
CMPXMedia* testTracks = CMPXMedia::NewL();
CleanupStack::PushL( testTracks );
- mTestPrivate->PreparePlaylistMediaL(*testTracks,selection);
+ mTestPrivate->PreparePlaylistMediaL(*testTracks,selection,mTestPrivate->iCollectionData);
QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType),EMPXItem);
QCOMPARE(testTracks->ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory),EMPXPlaylist);
TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/stub/inc/mpmpxisolatedcollectionhelper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: isolated collection helper stub for testing mpmpxframeworkwrapper.
+*
+*/
+
+#ifndef CMPMPXISOLATEDCOLLECTIONHELPER_H
+#define CMPMPXISOLATEDCOLLECTIONHELPER_H
+
+#include <e32base.h>
+class CMPXCollectionPath;
+class CMPXMedia;
+
+class MMpMpxIsolatedCollectionHelperObserver
+{
+public:
+
+ virtual void HandleIsolatedOpenL( const CMPXMedia& aEntries,
+ TInt aError ) = 0;
+};
+
+class CMpMpxIsolatedCollectionHelper : public CBase
+{
+public:
+
+ static CMpMpxIsolatedCollectionHelper* NewL( MMpMpxIsolatedCollectionHelperObserver* aObserver );
+ static CMpMpxIsolatedCollectionHelper* NewLC( MMpMpxIsolatedCollectionHelperObserver* aObserver );
+ virtual ~CMpMpxIsolatedCollectionHelper();
+ void OpenCollectionL( CMPXCollectionPath& aPath );
+
+private:
+ CMpMpxIsolatedCollectionHelper( MMpMpxIsolatedCollectionHelperObserver* aObserver );
+
+public:
+ MMpMpxIsolatedCollectionHelperObserver* iObserver;
+ TBool iOpen;
+ TInt iOpenCount;
+ TInt iCountPath;
+
+};
+
+#endif // CMPMPXISOLATEDCOLLECTIONHELPER_H
+
+//EOF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/stub/src/mpmpxisolatedcollectionhelper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: isolated collection helper stub for testing mpmpxframeworkwrapper.
+*
+*/
+
+
+#include <mpxcollectionpath.h>
+
+#include "stub/inc/mpmpxisolatedcollectionhelper.h"
+
+
+
+
+/*!
+ \internal
+ */
+CMpMpxIsolatedCollectionHelper* CMpMpxIsolatedCollectionHelper::NewL(
+ MMpMpxIsolatedCollectionHelperObserver* aObserver )
+ {
+ CMpMpxIsolatedCollectionHelper* self = NewLC( aObserver );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+/*!
+ \internal
+ */
+CMpMpxIsolatedCollectionHelper* CMpMpxIsolatedCollectionHelper::NewLC(
+ MMpMpxIsolatedCollectionHelperObserver* aObserver )
+ {
+ CMpMpxIsolatedCollectionHelper* self =
+ new ( ELeave ) CMpMpxIsolatedCollectionHelper( aObserver );
+ CleanupStack::PushL( self );
+ return self;
+ }
+
+/*!
+ \internal
+ */
+CMpMpxIsolatedCollectionHelper::~CMpMpxIsolatedCollectionHelper()
+ {
+ }
+
+
+/*!
+ \internal
+ */
+void CMpMpxIsolatedCollectionHelper::OpenCollectionL( CMPXCollectionPath& aPath )
+ {
+ iCountPath = aPath.Count();
+ iOpen = ETrue;
+ iOpenCount++;
+ }
+
+/*!
+ \internal
+ */
+CMpMpxIsolatedCollectionHelper::CMpMpxIsolatedCollectionHelper( MMpMpxIsolatedCollectionHelperObserver* aObserver )
+ : iObserver( aObserver ),
+ iOpen(EFalse),
+ iOpenCount(0),
+ iCountPath(0)
+ {
+ }
+
+
+//EOF
--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/unittest_mpmpxframeworkwrapper.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxframeworkwrapper/unittest_mpmpxframeworkwrapper.pro Fri Apr 16 14:56:30 2010 +0300
@@ -32,21 +32,23 @@
../../inc/mpmpxframeworkwrapper.h \
../../inc/mpmpxframeworkwrapper_p.h \
stub/inc/mpmpxcollectiondata.h \
- stub/inc/mpxcollectionopenutility.h \
- stub/inc/mpxcollectionuihelper.h \
- stub/inc/mpxcollectionutility.h \
- stub/inc/mpxcollectionhelperfactory.h \
- stub/inc/mpxharvesterutility.h \
- stub/inc/mpxplaybackutility.h
+ stub/inc/mpxcollectionopenutility.h \
+ stub/inc/mpxcollectionuihelper.h \
+ stub/inc/mpxcollectionutility.h \
+ stub/inc/mpxcollectionhelperfactory.h \
+ stub/inc/mpxharvesterutility.h \
+ stub/inc/mpxplaybackutility.h \
+ stub/inc/mpmpxisolatedcollectionhelper.h
SOURCES += src/unittest_mpmpxframeworkwrapper.cpp \
../../src/mpmpxframeworkwrapper.cpp \
- stub/src/mpmpxcollectiondata.cpp \
- stub/src/mpxcollectionopenutility.cpp \
- stub/src/mpxcollectionuihelper.cpp \
- stub/src/mpxcollectionutility.cpp \
- stub/src/mpxcollectionhelperfactory.cpp \
- stub/src/mpxharvesterutility.cpp \
- stub/src/mpxplaybackutility.cpp
+ stub/src/mpmpxcollectiondata.cpp \
+ stub/src/mpxcollectionopenutility.cpp \
+ stub/src/mpxcollectionuihelper.cpp \
+ stub/src/mpxcollectionutility.cpp \
+ stub/src/mpxcollectionhelperfactory.cpp \
+ stub/src/mpxharvesterutility.cpp \
+ stub/src/mpxplaybackutility.cpp \
+ stub/src/mpmpxisolatedcollectionhelper.cpp
RESOURCES += ../../resources/mpcollectionviewresources.qrc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxisolatedcollectionhelper/inc/unittest_mpmpxisolatedcollectionhelper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Unit test for CMpMpxIsolatedCollectionHelper
+*
+*/
+
+#ifndef TESTMPMPXISOLATEDCOLLECTIONHELPER_H
+#define TESTMPMPXISOLATEDCOLLECTIONHELPER_H
+
+#include <QtTest/QtTest>
+
+/* in our unit test usually this goes on the CPP file, but in this case we need it here to get
+ the observer interface, and also the mpxcollectionopenutility stub before the tested class so
+ we get the stub instead of the normal mpxcollectionopenutility.*/
+#include "stub/inc/mpxcollectionopenutility.h"
+// Do this so we can access all member variables.
+#define private public
+#include "mpmpxisolatedcollectionhelper.h"
+#undef private
+
+class CMpMpxIsolatedCollectionHelper;
+class CMPXMedia;
+
+class TestCMpMpxIsolatedCollectionHelper : public QObject,
+ MMpMpxIsolatedCollectionHelperObserver
+{
+ Q_OBJECT
+
+public:
+
+ TestCMpMpxIsolatedCollectionHelper();
+ virtual ~TestCMpMpxIsolatedCollectionHelper();
+
+private:
+
+ void HandleIsolatedOpenL( const CMPXMedia& aEntries, TInt aError );
+
+public slots:
+
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+
+ void testConstructor();
+ void testOpenCollection();
+ void testHandleOpen();
+
+private:
+
+ CMpMpxIsolatedCollectionHelper *mTest;
+ const CMPXMedia *iEntriesFromoOpenCallback; //not own
+ TInt iErrorFromoOpenCallback;
+ TInt iOpenCallbackCounter;
+
+};
+
+#endif // TESTMPMPXISOLATEDCOLLECTIONHELPER_H
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxisolatedcollectionhelper/src/unittest_mpmpxisolatedcollectionhelper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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 CMpMpxIsolatedCollectionHelper
+*
+*/
+
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+
+#include <mpxmedia.h>
+#include <mpxcollectionplaylist.h>
+#include <mpxcollectionpath.h>
+
+#include "unittest_mpmpxisolatedcollectionhelper.h"
+
+
+//This so we can test private functions
+#include "../../src/mpmpxisolatedcollectionhelper.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;
+
+ TestCMpMpxIsolatedCollectionHelper tv;
+
+ 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;
+}
+
+TestCMpMpxIsolatedCollectionHelper::TestCMpMpxIsolatedCollectionHelper()
+ : mTest( 0 ),
+ iEntriesFromoOpenCallback ( 0 ),
+ iErrorFromoOpenCallback( KErrNone ),
+ iOpenCallbackCounter( 0 )
+{
+}
+
+TestCMpMpxIsolatedCollectionHelper::~TestCMpMpxIsolatedCollectionHelper()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestCMpMpxIsolatedCollectionHelper::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestCMpMpxIsolatedCollectionHelper::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestCMpMpxIsolatedCollectionHelper::init()
+{
+ mTest = CMpMpxIsolatedCollectionHelper::NewL( this );
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestCMpMpxIsolatedCollectionHelper::cleanup()
+{
+ delete mTest;
+ mTest = 0;
+}
+
+/*!
+ Tests constructor.
+*/
+void TestCMpMpxIsolatedCollectionHelper::testConstructor()
+{
+ QVERIFY(mTest->iIncrementalOpenUtil != 0);
+ QCOMPARE(mTest->iIncrementalOpenUtil->iMode , KMcModeIsolated);
+ QCOMPARE(mTest->iObserver , dynamic_cast<MMpMpxIsolatedCollectionHelperObserver*>(this));
+}
+
+/*!
+ Tests OpenCollection.
+ */
+void TestCMpMpxIsolatedCollectionHelper::testOpenCollection()
+{
+ CMPXCollectionPath* path = CMPXCollectionPath::NewL();
+ mTest->OpenCollectionL(*path);
+ QCOMPARE(mTest->iIncrementalOpenUtil->iDelay, KIncrementalDelayHalfSecond);
+ QCOMPARE(mTest->iIncrementalOpenUtil->iStop,TBool(ETrue));
+ QCOMPARE(mTest->iIncrementalOpenUtil->iStart,TBool(ETrue));
+ QCOMPARE(mTest->iFirstIncrementalOpen,TBool(ETrue));
+ QCOMPARE(mTest->iIncrementalOpenUtil->iDirection,CMPXCollectionOpenUtility::EFetchNormal);
+ QCOMPARE(mTest->iIncrementalOpenUtil->iChunkSize, KIncrementalFetchBlockSize);
+ QCOMPARE((int)mTest->iIncrementalOpenUtil->iPath, (int)path);
+ delete path;
+}
+
+/*!
+ Tests HandleOpen.
+ */
+void TestCMpMpxIsolatedCollectionHelper::testHandleOpen()
+{
+ iEntriesFromoOpenCallback = 0;
+ iErrorFromoOpenCallback = KErrArgument;
+ iOpenCallbackCounter = 0;
+ CMPXMedia *media = CMPXMedia::NewL();
+ mTest->iFirstIncrementalOpen = ETrue;
+ mTest->HandleOpenL(*media, 0, false, KErrNone);
+ QCOMPARE((int)iEntriesFromoOpenCallback,(int)media);
+ QCOMPARE(iErrorFromoOpenCallback,KErrNone);
+ QCOMPARE(iOpenCallbackCounter,1);
+}
+
+/*!
+ Used to keep track of the callback from teh isolated collection helper.
+ */
+void TestCMpMpxIsolatedCollectionHelper::HandleIsolatedOpenL( const CMPXMedia& aEntries, TInt aError )
+{
+ iEntriesFromoOpenCallback = &aEntries;
+ iErrorFromoOpenCallback = aError;
+ iOpenCallbackCounter++;
+}
+
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxisolatedcollectionhelper/stub/inc/mpxcollectionopenutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: mpxcollectionopenutility stub for testing CMpMpxIsolatedCollectionHelper
+*
+*/
+
+
+#ifndef C_CMPXCOLLECTIONOPENUTILITY_H
+#define C_CMPXCOLLECTIONOPENUTILITY_H
+
+#include <mpxcollectionobserver.h>
+#include <mpxcollectionframeworkdefs.h>
+#include <mpxcollectionopenlresultdef.h>
+
+class CMPXCollectionPath;
+
+class CMPXCollectionOpenUtility
+{
+public:
+
+ // Stub functions
+ enum TDirection
+ {
+ EFetchNormal,
+ EFetchUp,
+ EFetchDown
+ };
+ static CMPXCollectionOpenUtility* NewL( MMPXCollectionObserver* aObs, TUid aMode = KMcModeDefault );
+ CMPXCollectionOpenUtility();
+ ~CMPXCollectionOpenUtility();
+ void StartL( const CMPXCollectionPath& aPath,
+ TArray<TMPXAttribute> aAttrs,
+ TInt aChunkSize,
+ TInt aOffset = 0,
+ TDirection aDirection = EFetchNormal,
+ TMPXAttribute aKeyAttribute = KMPXMediaNullAttribute );
+ void Stop();
+ void SetDelay( TInt aDelay );
+public:
+ TInt iDelay;
+ TInt iChunkSize;
+ TBool iStop;
+ TBool iStart;
+ TDirection iDirection;
+ const CMPXCollectionPath *iPath; //not own
+ TUid iMode;
+ };
+
+#endif // C_CMPXCOLLECTIONOPENUTILITY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxisolatedcollectionhelper/stub/src/mpxcollectionopenutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* 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: mpxcollectionopenutility stub for testing CMpMpxIsolatedCollectionHelper
+*
+*/
+
+
+
+#include <e32debug.h>
+#include <Qt>
+
+#include "stub/inc/mpxcollectionopenutility.h"
+
+
+/*!
+ Stub function.
+*/
+CMPXCollectionOpenUtility::CMPXCollectionOpenUtility():iDelay(0),
+ iStart(EFalse),
+ iStop(EFalse),
+ iChunkSize(0),
+ iDirection(EFetchDown),
+ iMode(TUid::Null())
+{
+
+}
+
+/*!
+ Stub function.
+*/
+CMPXCollectionOpenUtility* CMPXCollectionOpenUtility::NewL(MMPXCollectionObserver* aObs, TUid aMode)
+{
+ Q_UNUSED(aObs);
+ CMPXCollectionOpenUtility* collectionOpenUtility = new CMPXCollectionOpenUtility();
+ collectionOpenUtility->iMode = aMode;
+ return collectionOpenUtility;
+}
+
+/*!
+ Stub function.
+*/
+CMPXCollectionOpenUtility::~CMPXCollectionOpenUtility()
+{
+
+}
+
+/*!
+ Stub function.
+*/
+void CMPXCollectionOpenUtility::Stop()
+{
+ iStop=ETrue;
+}
+
+/*!
+ Stub function.
+*/
+void CMPXCollectionOpenUtility::SetDelay( TInt aDelay )
+{
+ iDelay = aDelay;
+}
+
+/*!
+ Stub function.
+*/
+void CMPXCollectionOpenUtility::StartL( const CMPXCollectionPath& aPath,
+ TArray<TMPXAttribute> aAttrs,
+ TInt aChunkSize,
+ TInt aOffset,
+ TDirection aDirection,
+ TMPXAttribute aKeyAttribute)
+{
+ Q_UNUSED(aAttrs);
+ Q_UNUSED(aOffset);
+ Q_UNUSED(aKeyAttribute);
+ iPath = &aPath;
+ iStart = ETrue;
+ iChunkSize = aChunkSize;
+ iDirection = aDirection;
+}
+
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpmpxisolatedcollectionhelper/unittest_mpmpxisolatedcollectionhelper.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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: Unit test for CMpMpxIsolatedCollectionHelper
+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_mpmpxisolatedcollectionhelper.h \
+ ../../inc/mpmpxisolatedcollectionhelper.h \
+ stub/inc/mpxcollectionopenutility.h
+
+SOURCES += src/unittest_mpmpxisolatedcollectionhelper.cpp \
+ stub/src/mpxcollectionopenutility.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 details view.
+*
+*/
+
+#ifndef MPDETAILSVIEW_H
+#define MPDETAILSVIEW_H
+
+#include <hbview.h>
+#include <qpixmap>
+#include <qpointer.h>
+#include <QNetworkReply>
+#include <QDomDocument>
+#include <QMap>
+
+class QGraphicsWebView;
+class QNetworkAccessManager;
+
+class HbMainWindow;
+class HbAction;
+class HbLabel;
+class HbWidget;
+class HbGroupBox;
+class HbPushButton;
+class HbDocumentLoader;
+class HbListWidget;
+class HbDialog;
+class ThumbnailManager;
+class QTranslator;
+class QGraphicsLinearLayout;
+
+class MpSongData;
+class MpMpxDetailsFrameworkWrapper;
+
+//class declaration
+class MpDetailsView : public HbView
+{
+ Q_OBJECT
+
+public:
+
+ MpDetailsView();
+ virtual ~MpDetailsView();
+
+ void initializeView();
+ void activateView();
+ void deactivateView();
+
+signals:
+ void command( int aCommand );
+
+public slots:
+ void back();
+ void albumArtChanged();
+
+private slots:
+ void share();
+ void webViewLoaded( bool ok );
+ void playbackInfoChanged();
+ 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();
+
+private:
+ void setupMenu();
+ void loadSharePlayer();
+
+ 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();
+
+ void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
+ void RenderInspireMeGroupBox();
+ void recommendationAlbumArtReady();
+
+private:
+ MpSongData *mSongData;
+ MpMpxDetailsFrameworkWrapper *mFrameworkWrapper;
+
+ bool mActivated;
+ HbMainWindow *mWindow;
+ HbAction *mSoftKeyBack;
+
+ HbWidget *mContainer;
+ HbLabel *mSongText; //owned
+ HbLabel *mAlbumText; //owned
+ HbLabel *mArtistText; //owned
+ HbLabel *mAlbumArt; //owned
+ HbGroupBox *mSongDetailsGroupBox; //owned
+ 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;
+
+ 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
+
+ Q_DISABLE_COPY(MpDetailsView)
+};
+
+
+#endif //MPDETAILSVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsviewplugin.h Fri Apr 16 14:56:30 2010 +0300
@@ -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 details view.
+*
+*/
+
+#ifndef MPDETAILSVIEWPLUGIN_H
+#define MPDETAILSVIEWPLUGIN_H
+
+#include <qobject>
+#include <mpxviewpluginqt.h>
+
+//forward declartions
+class MpDetailsView;
+
+//class declaration
+class MpDetailsViewPlugin : public MpxViewPlugin
+{
+ Q_OBJECT
+
+public:
+ explicit MpDetailsViewPlugin();
+ virtual ~MpDetailsViewPlugin();
+
+ 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 };
+ MpDetailsView *mView; //owned
+ State mState;
+};
+
+#endif // MPPLAYBACKVIEWPLUGIN_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 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_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpmpxdetailsframeworkwrapper_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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/mpsongdata.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/mpdetailsviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+symbian:TARGET.UID3 = 0x2002D0AA
+
+TEMPLATE = lib
+CONFIG += hb qt ecomplugin
+QT += webkit \
+ network \
+ xml
+TARGET = mpdetailsviewplugin
+
+SERVICE.INTERFACE_NAME = org.nokia.mmdt.MpxViewPlugin/1.0
+SERVICE.CONFIGURATION = ""
+
+TARGET.CAPABILITY = All -TCB
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+ inc \
+ ../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lmpxviewframeworkqt.dll \
+ -lmpxplaybackutility.dll \
+ -lmpxcommon.dll \
+ -lthumbnailmanagerqt.dll
+
+symbian:TARGET.EPOCALLOWDLLDATA = 1
+
+# Input
+SOURCES += src/mpdetailsviewplugin.cpp \
+ src/mpdetailsview.cpp \
+ src/mpmpxdetailsframeworkwrapper.cpp \
+ src/mpmpxdetailsframeworkwrapper_p.cpp \
+ src/mpsongdata.cpp
+
+HEADERS = inc/mpdetailsviewplugin.h \
+ inc/mpdetailsview.h \
+ inc/mpmpxdetailsframeworkwrapper.h \
+ inc/mpmpxdetailsframeworkwrapper_p.h \
+ inc/mpsongdata.h
+
+RESOURCES += resources/mpdetailsviewresources.qrc
Binary file mpviewplugins/mpdetailsviewplugin/resources/defaultalbumart.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/resources/mpdetailsviewresources.qrc Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,9 @@
+<RCC>
+ <qresource prefix="/detailsviewdocml" >
+ <file alias="detailsview.docml">detailsview.docml</file>
+ </qresource>
+
+ <qresource prefix="/detailsviewicons" >
+ <file alias="defaultalbumart.png">defaultalbumart.png</file>
+ </qresource>
+</RCC>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/rom/mpdetailsviewplugin.iby Fri Apr 16 14:56:30 2010 +0300
@@ -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 MPDETAILSVIEWPLUGIN_IBY
+#define MPDETAILSVIEWPLUGIN_IBY
+
+#include <bldvariant.hrh>
+
+ECOM_PLUGIN( mpdetailsviewplugin.dll, mpdetailsviewplugin.rsc )
+
+#endif //MPDETAILSVIEWPLUGIN_IBY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/rom/rom.pri Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpdetailsviewplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mpdetailsviewplugin.iby)"
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,787 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 details view.
+*
+*/
+#include <qgraphicswebview>
+#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 <thumbnailmanager_qt.h>
+#include <thumbnaildata.h>
+#include <thumbnailobjectsource.h>
+
+#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 "mpdetailsview.h"
+#include "mpcommondefs.h"
+#include "mpmpxdetailsframeworkwrapper.h"
+#include "mpsongdata.h"
+#include "mptrace.h"
+
+const int KUndefined = -1;
+const int KRecommendationNum = 2;
+
+/*!
+ Constructor
+ */
+MpDetailsView::MpDetailsView()
+ : mSongData( 0 ),
+ mFrameworkWrapper( 0 ),
+ mActivated( false ),
+ mWindow( 0 ),
+ mSoftKeyBack( 0 ),
+ mSongText( NULL ),
+ mAlbumText( NULL ),
+ mArtistText( NULL ),
+ mAlbumArt( NULL ),
+ mDocumentLoader( NULL ),
+ mDownloadedAlbumArts( 0 ),
+ mAlbumArtsReadyCount( 0 ),
+ mMpTranslator( 0 ),
+ mCommonTranslator( 0 )
+{
+ 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);
+
+ widget = mDocumentLoader->findWidget( QString("artistText") );
+ mArtistText = qobject_cast<HbLabel *>(widget);
+
+ widget = mDocumentLoader->findWidget( QString("albumText") );
+ mAlbumText = qobject_cast<HbLabel *>(widget);
+
+ 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
+}
+
+/*!
+ Destructs the details view.
+ */
+MpDetailsView::~MpDetailsView()
+{
+ TX_ENTRY
+ if ( mFrameworkWrapper ) {
+ delete mFrameworkWrapper;
+ }
+ if ( mSoftKeyBack ) {
+ delete mSoftKeyBack;
+ }
+ if ( mDocumentLoader ) {
+ delete mDocumentLoader;
+ }
+ if ( mManager ) {
+ mManager->deleteLater();
+ }
+ if ( mDownloadManager ) {
+ mDownloadManager->deleteLater();
+ }
+ if( mThumbnailManager ) {
+ delete mThumbnailManager;
+ }
+ delete mMpTranslator;
+ delete mCommonTranslator;
+ 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;
+
+ 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();
+ mSoftKeyBack = new HbAction( Hb::BackAction, 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 );
+
+ 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" );
+
+ setTitle( tr("Music") );
+ // TODO: might need later
+ setupMenu();
+
+ connect( mSoftKeyBack, 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 ) ) );
+ TX_EXIT
+}
+
+/*!
+ Activates the details view.
+ */
+void MpDetailsView::activateView()
+{
+ TX_ENTRY
+ setNavigationAction( mSoftKeyBack );
+ mFrameworkWrapper->retrieveSong();
+
+ mActivated = true;
+ TX_EXIT
+}
+
+/*!
+ Deactivates the details view.
+ */
+void MpDetailsView::deactivateView()
+{
+ TX_ENTRY
+ setNavigationAction( 0 );
+ mActivated = false;
+ TX_EXIT
+}
+
+/*!
+ Setup the menu.
+ */
+void MpDetailsView::setupMenu()
+{
+ TX_ENTRY
+
+ TX_EXIT
+}
+
+/*!
+ Slot to handle back command from softkey.
+
+ \reimp
+ */
+void MpDetailsView::back()
+{
+ 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 );
+ TX_EXIT
+}
+
+/*!
+ Make a key & value pair string for querying
+ */
+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()
+{
+ 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();
+ }
+ TX_EXIT
+}
+
+/*!
+ Render inspireme groupbox after album arts downloaded
+ */
+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 );
+ }
+
+ // 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 );
+
+ TX_EXIT
+}
+
+void MpDetailsView::recommendationAlbumArtReady()
+{
+ TX_ENTRY_ARGS( "mAlbumArtsReadyCount = " << mAlbumArtsReadyCount )
+ mAlbumArtsReadyCount++;
+ if ( mAlbumArtsReadyCount == KRecommendationNum ) {
+ RenderInspireMeGroupBox();
+ }
+ TX_EXIT
+}
+
+
+/*!
+ Slot to handle basic song information
+ */
+void MpDetailsView::playbackInfoChanged()
+{
+ 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();
+ TX_EXIT
+}
+
+/*!
+ Slot to handle detail song information
+ */
+void MpDetailsView::songDetailInfoChanged()
+{
+ 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 );
+
+ 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 );
+
+ item = new HbListWidgetItem();
+ item->setText( tr( "Comment" ) );
+ item->setSecondaryText( mSongData->comment() );
+ mDetailList->addItem( item );
+ TX_EXIT
+}
+
+/*!
+ Slot to handle details groupbox toggling
+ */
+void MpDetailsView::toggleDetailsGroupBox(bool /*state*/)
+{
+ TX_ENTRY
+ if ( !mInspireMeGroupBox->isCollapsed() ) {
+ mSongDetailsGroupBox->setCollapsed( true );
+ }
+ TX_EXIT
+}
+
+/*!
+ Slot to handle inspire me groupbox toggling
+ */
+void MpDetailsView::toggleInspireMeGroupBox(bool /*state*/)
+{
+ TX_ENTRY
+ if ( !mSongDetailsGroupBox->isCollapsed() ) {
+ mInspireMeGroupBox->setCollapsed( true );
+ }
+ 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 )
+{
+ 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" );
+ }
+ TX_EXIT
+}
+
+/*!
+ Slot to call when there is network error
+ */
+void MpDetailsView::retrieveInformationNetworkError( QNetworkReply::NetworkError /*error*/ )
+{
+ // 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_EXIT
+}
+
+/*!
+ Slot to call when downloading finished
+ */
+void MpDetailsView::DownloadFinished( QNetworkReply* reply )
+{
+ TX_ENTRY_ARGS( "mDownloadedAlbumArts = " << mDownloadedAlbumArts );
+ if ( reply->error() == QNetworkReply::NoError )
+ {
+ 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 ) );
+ }
+ }
+ }
+ else
+ {
+ TX_LOG_ARGS( "Downloading album art failed!" );
+ }
+
+ mDownloadedAlbumArts++;
+ TX_EXIT
+}
+
+/*!
+ Slot to handle the recommendation album art
+*/
+void MpDetailsView::thumbnailReady(
+ const QPixmap& pixmap,
+ void *data,
+ int /*id*/,
+ int error )
+{
+ 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();
+ }
+
+ 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
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpdetailsviewplugin.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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 details view.
+*
+*/
+
+#include <xqplugin.h>
+
+#include "mpdetailsviewplugin.h"
+#include "mpdetailsview.h"
+#include "mptrace.h"
+
+/*!
+ \class MpDetailsViewPlugin
+ \brief Plugin interface for Music Player details view.
+
+ Details view plugin provides interface to the details 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 details view plugin.
+ */
+MpDetailsViewPlugin::MpDetailsViewPlugin()
+ : mView(0),
+ mState(NullView)
+{
+ TX_LOG
+}
+
+/*!
+ Destructs the details view plugin.
+ */
+MpDetailsViewPlugin::~MpDetailsViewPlugin()
+{
+ TX_LOG
+}
+
+/*!
+ Creates the details view.
+ */
+void MpDetailsViewPlugin::createView()
+{
+ TX_ENTRY
+ if ( mState == NullView ) {
+ mView = new MpDetailsView();
+ connect( mView, SIGNAL( command( int ) ), this, SIGNAL( command( int ) ) );
+ mState = Created;
+ }
+ TX_EXIT
+}
+
+/*!
+ Destroys the details view.
+ */
+void MpDetailsViewPlugin::destroyView()
+{
+ TX_ENTRY
+ if ( mState != NullView ) {
+ delete mView;
+ mView = NULL;
+ mState = NullView;
+ }
+ TX_EXIT
+}
+
+/*!
+ Activates the details view. View initialization is done very first time.
+ */
+void MpDetailsViewPlugin::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 details view.
+ */
+void MpDetailsViewPlugin::deactivateView()
+{
+ TX_ENTRY
+ if ( mState == Activated ) {
+ mView->deactivateView();
+ mState = Initialized;
+ }
+ TX_EXIT
+}
+
+/*!
+ Returns pointer to QGraphicsWidget, which is the details view.
+ The returned pointer is 0, if it is not created first.
+
+ \sa createView()
+ */
+QGraphicsWidget* MpDetailsViewPlugin::getView()
+{
+ TX_LOG
+ return mView;
+}
+
+/*!
+ Slot to be called when application orientation changes.
+
+ \reimp
+ */
+void MpDetailsViewPlugin::orientationChange( Qt::Orientation orientation )
+{
+ TX_LOG
+ Q_UNUSED( orientation );
+}
+
+/*!
+ Slot to handle back command from softkey.
+
+ \reimp
+ */
+void MpDetailsViewPlugin::back()
+{
+ //do nothing, softkey is handledinternally by the view.
+ TX_LOG
+}
+
+XQ_EXPORT_PLUGIN2( mpdetailsviewplugin, MpDetailsViewPlugin );
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/src/mpmpxdetailsframeworkwrapper_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,283 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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/mpsongdata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,407 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
+ 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
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/UT_ALL_mpdetailsviewplugin.pkg Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,30 @@
+; 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
+#{"UT_ALL_mpdetailsviewplugin"},(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"
+
+"/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"
+
+"/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"
+
+"/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"
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/UT_ALL_mpdetailsviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+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
+
+test.depends = first
+test.CONFIG += recursive
+autotest.depends = first
+autotest.CONFIG += recursive
+QMAKE_EXTRA_TARGETS += test autotest
+
+
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/sis.bat Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+@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_ALL_mpdetailsviewplugin.pkg
+signsis UT_ALL_mpdetailsviewplugin.sis UT_ALL_mpdetailsviewplugin.sisx .\RndCerts\Nokia_RnDCert_02.der .\RndCerts\Nokia_RnDCert_02.key
+del UT_ALL_mpdetailsviewplugin.sis
\ No newline at end of file
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/MON.dat has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/MON.sym Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,718 @@
+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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/UT_detailsview.pkg Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+; 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_mpdetailsview"},(0xE003e880),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+; Executable and default resource files
+"/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"
+
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/UT_detailsview.sisx has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/ctcdata.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,652 @@
+
+
+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,>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/ctcerr.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,5167 @@
+
+*******************************************************************************
+
+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
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/inc/unittest_mpdetailsview.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Unit Test for mpdetailsview.
+*
+*/
+
+#ifndef UNITTEST_MPDETAILSVIEW_H_
+#define UNITTEST_MPDETAILSVIEW_H_
+
+#include <QtTest/QtTest>
+#include <hbview.h>
+#include <QNetworkReply>
+
+//Forward Declaration
+class MpDetailsView;
+
+
+
+class TestMpDetailsView : public HbView
+{
+ Q_OBJECT
+
+public:
+
+ TestMpDetailsView();
+ virtual ~TestMpDetailsView();
+
+
+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();
+ void init();
+ void cleanup();
+
+private slots:
+ //Test Cases
+ void testactivateView();
+ void testdeactivateView();
+ void testbackSlot();
+
+private:
+ MpDetailsView *mTest;
+
+};
+
+#endif /* UNITTEST_MPDETAILSVIEW_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/profile.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,1094 @@
+*****************************************************************************
+* 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)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/sis.bat Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+@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_detailsview.pkg
+signsis UT_detailsview.sis UT_detailsview.sisx ..\RndCerts\Nokia_RnDCert_02.der ..\RndCerts\Nokia_RnDCert_02.key
+del UT_detailsview.sis
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/src/unittest_mpdetailsview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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.
+*
+*/
+#include <QSignalSpy>
+#include <qgraphicswebview>
+#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 <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_mpdetailsview.h"
+#include "stub/inc/mpsongdata.h"
+#include "stub/inc/thumbnailmanager_qt.h"
+#include "stub/inc/mpmpxdetailsframeworkwrapper.h"
+#include "mpcommondefs.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpdetailsview.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;
+
+ TestMpDetailsView tv;
+
+ char *pass[3];
+ pass[0] = argv[0];
+ pass[1] = "-o";
+ pass[2] = "c:\\data\\unittest_testmpdetailsview.txt";
+
+ int res = QTest::qExec(&tv, 3, pass);
+
+ return res;
+}
+
+//Constructor
+TestMpDetailsView::TestMpDetailsView()
+ : mTest(0)
+{
+
+}
+
+//Destructor
+TestMpDetailsView::~TestMpDetailsView()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpDetailsView::initTestCase()
+{
+
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpDetailsView::cleanupTestCase()
+{
+
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpDetailsView::init()
+{
+ mTest = new MpDetailsView();
+ mTest->initializeView();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpDetailsView::cleanup()
+{
+ delete mTest;
+ mTest = 0;
+}
+
+void TestMpDetailsView::testactivateView()
+ {
+ mTest->activateView();
+ QVERIFY(mTest->mActivated==true);
+ }
+
+void TestMpDetailsView::testdeactivateView()
+ {
+ /* TODO: Fix
+ mTest->deactivateView();
+ QVERIFY(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);
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/mpmpxdetailsframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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/mpsongdata.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/inc/thumbnailmanager_qt.h Fri Apr 16 14:56:30 2010 +0300
@@ -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.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_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/mpmpxdetailsframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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/mpsongdata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,405 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 "stub/inc/thumbnailmanager_qt.h"
+#include <thumbnaildata.h>
+#include <thumbnailobjectsource.h>
+
+#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 ),
+ mComposer( NULL),
+ mGenre( NULL ),
+ mYear( NULL ),
+ mAlbumTrack( NULL ),
+ 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);
+ }
+ }
+ //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
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/stub/src/thumbnailmanager_qt.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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.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;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsview/unittest_mpdetailsview.pro Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,36 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Tue 9. Mar 14:34:59 2010
+######################################################################
+
+TEMPLATE = app
+CONFIG += qtestlib hb
+
+QT += webkit \
+ network \
+ xml
+
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += ./stub/inc \
+ ../../inc \
+ ../../../../inc \
+
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lmpxviewframeworkqt.dll
+
+# Input
+HEADERS += inc/unittest_mpdetailsview.h \
+ ../../inc/mpdetailsview.h \
+ stub/inc/mpmpxdetailsframeworkwrapper.h \
+ stub/inc/mpsongdata.h \
+ stub/inc/thumbnailmanager_qt.h
+
+SOURCES += src/unittest_mpdetailsview.cpp \
+ ../../src/mpdetailsview.cpp \
+ stub/src/mpmpxdetailsframeworkwrapper.cpp \
+ stub/src/mpsongdata.cpp \
+ stub/src/thumbnailmanager_qt.cpp
+
+RESOURCES += ../../resources/mpdetailsviewresources.qrc
\ No newline at end of file
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/MON.dat has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/MON.sym Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,444 @@
+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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/UT_mpdetailsviewplugin.pkg Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+; 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_mpdetailsviewplugin"},(0xE003e880),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+; Executable and default resource files
+"/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"
+
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/UT_mpdetailsviewplugin.sisx has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/ctcdata.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,652 @@
+
+
+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,>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/ctcerr.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,1513 @@
+
+*******************************************************************************
+
+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
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/inc/unittest_mpdetailsviewplugin.h Fri Apr 16 14:56:30 2010 +0300
@@ -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 MpDetailsViewPlugin
+*
+*/
+
+#ifndef TESTMPDETAILSVIEWPLUGIN_H
+#define TESTMPDETAILSVIEWPLUGIN_H
+
+#include <QtTest/QtTest>
+
+class MpDetailsViewPlugin;
+
+class TestMpDetailsViewPlugin : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ TestMpDetailsViewPlugin();
+ virtual ~TestMpDetailsViewPlugin();
+
+private slots: // not treated as testfunctions, executed by the testing framework
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void testConstructor();
+ void testCreateView();
+ void testdestroyView();
+ void testActivateView();
+ void testDeactivateView();
+ void testGetView();
+private:
+
+ MpDetailsViewPlugin *mTest;
+
+};
+
+#endif // TESTMPDETAILSVIEWPLUGIN_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/profile.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,616 @@
+*****************************************************************************
+* 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)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/sis.bat Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+@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_mpdetailsviewplugin.pkg
+signsis UT_mpdetailsviewplugin.sis UT_mpdetailsviewplugin.sisx ..\RndCerts\Nokia_RnDCert_02.der ..\RndCerts\Nokia_RnDCert_02.key
+del UT_mpdetailsviewplugin.sis
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/src/unittest_mpdetailsviewplugin.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,257 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 MpDetailsViewPlugin
+*
+*/
+
+#include <QSignalSpy>
+#include <qnamespace.h>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbInstance.h>
+
+#include "unittest_mpdetailsviewplugin.h"
+#include "stub/inc/mpdetailsview.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpdetailsviewplugin.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;
+ 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 );
+
+ return res;
+}
+
+TestMpDetailsViewPlugin::TestMpDetailsViewPlugin()
+ : mTest( 0 )
+{
+}
+
+TestMpDetailsViewPlugin::~TestMpDetailsViewPlugin()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpDetailsViewPlugin::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpDetailsViewPlugin::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpDetailsViewPlugin::init()
+{
+ mTest = new MpDetailsViewPlugin();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpDetailsViewPlugin::cleanup()
+{
+ delete mTest;
+ mTest = 0;
+}
+
+/*!
+ testConstructor
+ */
+void TestMpDetailsViewPlugin::testConstructor()
+{
+ QVERIFY( !mTest->mView );
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::NullView );
+}
+
+/*!
+ testCreateView
+ */
+void TestMpDetailsViewPlugin::testCreateView()
+{
+ mTest->createView();
+ QVERIFY( mTest->mView );
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::Created );
+ QSignalSpy spy( mTest, SIGNAL( command( int ) ) );
+ mTest->mView->emitCommand( 123 );
+ QCOMPARE( spy.count(), 1 );
+ QCOMPARE( spy.at( 0 ).at( 0 ), QVariant( 123 ) );
+
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+
+/*!
+ testdestroyView
+ */
+void TestMpDetailsViewPlugin::testdestroyView()
+{
+ mTest->mView = new MpDetailsView();
+ mTest->mState = MpDetailsViewPlugin::Created;
+ mTest->destroyView();
+ QVERIFY( !mTest->mView );
+
+ mTest->mView = new MpDetailsView();
+ mTest->mState = MpDetailsViewPlugin::Initialized;
+ mTest->destroyView();
+ QVERIFY( !mTest->mView );
+
+ mTest->mView = new MpDetailsView();
+ mTest->mState = MpDetailsViewPlugin::Activated;
+ mTest->destroyView();
+ QVERIFY( !mTest->mView );
+
+ mTest->mView = new MpDetailsView();
+ mTest->mState = MpDetailsViewPlugin::NullView;
+ mTest->destroyView();
+ QVERIFY( mTest->mView );
+
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+/*!
+ testActivateView
+ */
+void TestMpDetailsViewPlugin::testActivateView()
+{
+ mTest->mState = MpDetailsViewPlugin::NullView;
+ mTest->activateView(); // we should be able to call activate without a view and not crash.
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::NullView );
+
+ mTest->mView = new MpDetailsView();
+ mTest->mState = MpDetailsViewPlugin::NullView;
+ mTest->activateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::NullView );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpDetailsViewPlugin::Activated;
+ mTest->activateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::Activated );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpDetailsViewPlugin::Created;
+ mTest->activateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::Activated );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 1 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 1 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpDetailsViewPlugin::Initialized;
+ mTest->activateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::Activated );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 1 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+/*!
+ testDeactivateView
+ */
+void TestMpDetailsViewPlugin::testDeactivateView()
+{
+ mTest->mState = MpDetailsViewPlugin::NullView;
+ mTest->deactivateView(); // we should be able to call deactivate without a view and not crash.
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::NullView );
+
+ mTest->mView = new MpDetailsView();
+ mTest->mState = MpDetailsViewPlugin::NullView;
+ mTest->deactivateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::NullView );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpDetailsViewPlugin::Created;
+ mTest->deactivateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::Created );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpDetailsViewPlugin::Initialized;
+ mTest->deactivateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::Initialized );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 0 );
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpDetailsViewPlugin::Activated;
+ mTest->deactivateView();
+ QCOMPARE( mTest->mState, MpDetailsViewPlugin::Initialized );
+ QCOMPARE( mTest->mView->mInitializeViewCount, 0 );
+ QCOMPARE( mTest->mView->mActivateViewCount, 0 );
+ QCOMPARE( mTest->mView->mDeactivateViewCount, 1 );
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+void TestMpDetailsViewPlugin::testGetView()
+{
+ MpDetailsView* tmpView;
+ mTest->mView = new MpDetailsView();
+ tmpView = mTest->mView;
+ QCOMPARE( int( tmpView ),int( mTest->getView() ) );
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/inc/mpdetailsview.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MpDetailsView stub for testing MpDetailsViewPlugin
+*
+*/
+
+#ifndef MPDETAILSVIEW_H
+#define MPDETAILSVIEW_H
+
+//includes
+#include <QGraphicsWidget>
+
+class MpDetailsView : public QGraphicsWidget
+{
+ Q_OBJECT
+
+public:
+ explicit MpDetailsView();
+ virtual ~MpDetailsView();
+
+ void initializeView();
+ void activateView();
+ void deactivateView();
+
+ void emitCommand(int cmd);
+ void resetCounters();
+
+signals:
+ void command(int cmd);
+
+public:
+ int mInitializeViewCount;
+ int mActivateViewCount;
+ int mDeactivateViewCount;
+
+};
+
+#endif // MPDETAILSVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/stub/src/mpdetailsview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: MpDetailsView stub for testing MpDetailsViewplugin
+*
+*/
+
+#include "stub/inc/mpdetailsview.h"
+
+
+/*!
+ Constructs the MpDetailsView stub
+ */
+MpDetailsView::MpDetailsView()
+ :mInitializeViewCount( 0 ),
+ mActivateViewCount( 0 ),
+ mDeactivateViewCount( 0 )
+{
+}
+
+/*!
+ Destructs the MpDetailsView stub
+ */
+MpDetailsView::~MpDetailsView()
+{
+}
+
+/*!
+ Initializes the MpDetailsView stub
+ */
+void MpDetailsView::initializeView()
+{
+ mInitializeViewCount++;
+}
+
+/*!
+ Activates the MpDetailsView stub
+ */
+void MpDetailsView::activateView()
+{
+ mActivateViewCount++;
+}
+
+/*!
+ Deactivates the MpDetailsView stub
+ */
+void MpDetailsView::deactivateView()
+{
+ mDeactivateViewCount++;
+}
+
+/*!
+ Reset counters
+ */
+void MpDetailsView::resetCounters()
+{
+ mInitializeViewCount = 0;
+ mActivateViewCount = 0;
+ mDeactivateViewCount = 0;
+}
+
+/*!
+ emits the signal command
+ */
+void MpDetailsView::emitCommand( int cmd )
+{
+ emit command( cmd );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpdetailsviewplugin/unittest_mpdetailsviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies 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 += -lmpxviewframeworkqt.dll \
+ -lxqplugins
+
+HEADERS += inc/unittest_mpdetailsviewplugin.h \
+ ../../inc/mpdetailsviewplugin.h \
+ stub/inc/mpdetailsview.h
+
+SOURCES += src/unittest_mpdetailsviewplugin.cpp \
+ ../../src/mpdetailsviewplugin.cpp \
+ stub/src/mpdetailsview.cpp
+
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/MON.dat has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/MON.sym Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,774 @@
+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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/UT_mpmpxpbframeworkwrapper.pkg Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+; 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/ctcdata.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,1044 @@
+
+
+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,>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/ctcerr.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,5529 @@
+
+*******************************************************************************
+
+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
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/logger.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/inc/unittest_mpmpxdetailsframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/profile.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,1168 @@
+*****************************************************************************
+* 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)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/sis.bat Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+@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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,608 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpsongdata.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplaybackutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxplayermanager.h Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/inc/mpxsource.h Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpsongdata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,384 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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")
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplaybackutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxplayermanager.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/stub/src/mpxsource.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/unittest_mpmpxpbframeworkwrapper.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
+
Binary file mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/MON.dat has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/MON.sym Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,686 @@
+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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/UT_mpsongdata.pkg Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+; 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/ctcdata.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,652 @@
+
+
+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,>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/ctcerr.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,2213 @@
+
+*******************************************************************************
+
+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
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/inc/unittest_mpsongdata.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 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_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/profile.txt Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,938 @@
+*****************************************************************************
+* 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)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/sis.bat Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,20 @@
+@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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,471 @@
+/*
+* 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 );
+
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/inc/thumbnailmanager_qt.h Fri Apr 16 14:56:30 2010 +0300
@@ -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.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_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/stub/src/thumbnailmanager_qt.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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.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;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpsongdata/unittest_mpsongdata.pro Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,25 @@
+######################################################################
+# 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwidget.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Equalizer dialog widget.
+*
+*/
+
+#ifndef MPEQUALIZERWIDGET_H
+#define MPEQUALIZERWIDGET_H
+
+//includes
+#include <hbdialog.h>
+
+//forward declartions
+class HbRadioButtonList;
+class MpEqualizerWrapper;
+
+//class declaration
+class MpEqualizerWidget : public HbDialog
+{
+
+ Q_OBJECT
+
+public:
+ explicit MpEqualizerWidget();
+ virtual ~MpEqualizerWidget();
+
+public:
+ void initialize();
+ void prepareDialog();
+
+public slots:
+ void presetSelected(int index);
+ void equalizerReady();
+ void cancelSelected(bool checked);
+ void okSelected(bool checked);
+
+private:
+
+ MpEqualizerWrapper *mEqualizerWrapper; //owned
+ HbRadioButtonList *mPresetsList; //owned
+
+ int mOriginalPreset;
+ bool mEqualizerReady;
+
+ Q_DISABLE_COPY(MpEqualizerWidget)
+
+};
+
+#endif //MPEQUALIZERWIDGET_H
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpequalizerwrapper_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpplaybackviewplugin/inc/mpplaybackview.h Fri Apr 16 14:56:30 2010 +0300
@@ -26,6 +26,8 @@
class MpMpxPbFrameworkWrapper;
class MpPlaybackData;
class MpPlaybackWidget;
+class MpEqualizerWidget;
+class QTranslator;
class MpPlaybackView : public MpViewBase
@@ -47,18 +49,21 @@
public slots:
- void startCollectionView();
+ void startSettingsView();
void back();
void exit();
void playbackStateChanged();
-
+
+ void flip();
+
void toggleShuffle();
- void shuffleChanged(bool shuffle);
+ void shuffleChanged( bool shuffle );
void toggleRepeat();
- void repeatChanged(bool repeat);
+ void repeatChanged( bool repeat );
void handleSongSelected();
+ void showEqualizerDialog();
private:
@@ -70,6 +75,7 @@
MpMpxPbFrameworkWrapper *mFrameworkWrapper; // Own
MpPlaybackData *mPlaybackData; // Not own
MpPlaybackWidget *mPlaybackWidget; // Not own
+ MpEqualizerWidget *mEqualizerWidget; // Own
HbMainWindow *mWindow; // Not own
HbAction *mSoftKeyBack; // Own
@@ -83,6 +89,9 @@
HbAction *mPlayPauseAction; // Not own
HbAction *mRepeatAction; // Not own
HbAction *mShuffleAction; // Not own
+
+ QTranslator *mMpTranslator; // Own
+ QTranslator *mCommonTranslator; // Own
bool mShuffle;
bool mRepeat;
--- a/mpviewplugins/mpplaybackviewplugin/mpplaybackviewplugin.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpplaybackviewplugin/mpplaybackviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -37,12 +37,17 @@
-lmpxcollectionutility.dll \
-lestor.dll \
-lmpxviewframeworkqt.dll \
- -lhbcore \
- -lhbwidgets \
- -lhbtools \
+ -laudioequalizerutility.dll \
-lmpsettingsmanager
-symbian:TARGET.EPOCALLOWDLLDATA = 1
+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"
+}
HEADERS = ../../inc/mpviewbase.h \
inc/mpplaybackviewplugin.h \
@@ -50,14 +55,20 @@
inc/mpmpxpbframeworkwrapper.h \
inc/mpmpxpbframeworkwrapper_p.h \
inc/mpplaybackdata.h \
- inc/mpplaybackwidget.h
+ inc/mpplaybackwidget.h \
+ inc/mpequalizerwrapper.h \
+ inc/mpequalizerwrapper_p.h \
+ inc/mpequalizerwidget.h
SOURCES += src/mpplaybackviewplugin.cpp \
src/mpplaybackview.cpp \
src/mpplaybackdata.cpp \
src/mpplaybackwidget.cpp \
src/mpmpxpbframeworkwrapper.cpp \
- src/mpmpxpbframeworkwrapper_p.cpp
+ src/mpmpxpbframeworkwrapper_p.cpp \
+ src/mpequalizerwrapper.cpp \
+ src/mpequalizerwrapper_p.cpp \
+ src/mpequalizerwidget.cpp
RESOURCES += resources/mpplaybackviewpluginresources.qrc
--- a/mpviewplugins/mpplaybackviewplugin/resources/info.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
-</g>
-<g id="Layer_2">
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="9.8100586" y1="25.4345703" x2="25.8537941" y2="9.3908329">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M17.8320312,6.0688477c-6.2646484,0-11.34375,5.078125-11.34375,11.3447266
- c0,6.2661133,5.0791016,11.3442383,11.34375,11.3442383c6.265625,0,11.3447266-5.078125,11.3447266-11.3442383
- C29.1767578,11.1469727,24.0976562,6.0688477,17.8320312,6.0688477z M19.8300781,25.8691406h-3.4628906V15.5717773h-1.1894531
- v-1.9707031h4.6523438V25.8691406z M19.4707031,11.9047852c-0.34375,0.28125-0.8007812,0.4238281-1.3710938,0.4238281
- c-0.5634766,0-1.0166016-0.1425781-1.3613281-0.4238281s-0.5175781-0.6699219-0.5175781-1.1630859
- c0-0.4863281,0.1699219-0.8720703,0.5068359-1.1582031c0.3378906-0.2851562,0.7939453-0.4267578,1.3720703-0.4267578
- c0.5498047,0,1.0019531,0.1445312,1.3564453,0.4326172c0.3535156,0.2880859,0.5322266,0.6728516,0.5322266,1.1523438
- C19.9882812,11.2348633,19.8164062,11.6235352,19.4707031,11.9047852z"/>
-</g>
-</svg>
--- a/mpviewplugins/mpplaybackviewplugin/resources/mpplaybackviewpluginresources.qrc Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpplaybackviewplugin/resources/mpplaybackviewpluginresources.qrc Fri Apr 16 14:56:30 2010 +0300
@@ -1,15 +1,7 @@
<RCC>
<qresource prefix="/playbackviewicons" >
- <file alias="defaultalbumart.png">defaultalbumart.png</file>
- <file alias="info.svg">info.svg</file>
- <file alias="next.svg">next.svg</file>
- <file alias="pause.svg">pause.svg</file>
- <file alias="play.svg">play.svg</file>
- <file alias="prev.svg">prev.svg</file>
- <file alias="shuffle_on.svg">shuffle_on.svg</file>
- <file alias="shuffle_off.svg">shuffle_off.svg</file>
- <file alias="select.png" >select.png</file>
+ <file alias="defaultalbumart.png">defaultalbumart.png</file>
</qresource>
<qresource prefix="/playbackviewdocml" >
--- a/mpviewplugins/mpplaybackviewplugin/resources/next.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
-</g>
-<g id="Layer_2">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="17.9580078" y1="24.4814453" x2="32.0948372" y2="10.3446169">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M20.8525391,8.0249023c0-0.7685547,0.6240234-1.390625,1.3925781-1.390625h5.5625
- c0.7675781,0,1.3916016,0.6220703,1.3916016,1.390625v18.7758789c0,0.7695312-0.6240234,1.390625-1.3916016,1.390625h-5.5625
- c-0.7685547,0-1.3925781-0.6210938-1.3925781-1.390625V8.0249023z"/>
- <g>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.7060547" y1="22.9667969" x2="14.8120146" y2="11.860836">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M6.4824219,9.7250977c0-1.1000977,0.7460938-1.4970703,1.6582031-0.8818359l11.0537109,7.4521484
- c0.9121094,0.6152344,0.9121094,1.6210938,0,2.2358398L8.140625,25.9833984
- c-0.9121094,0.6152344-1.6582031,0.2177734-1.6582031-0.8818359V9.7250977z"/>
- </g>
- </g>
-</g>
-</svg>
Binary file mpviewplugins/mpplaybackviewplugin/resources/nullsound.mp3 has changed
--- a/mpviewplugins/mpplaybackviewplugin/resources/pause.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
-</g>
-<g id="Layer_2">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5.0239258" y1="24.3642578" x2="18.9261436" y2="10.462039">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M14.7099609,6.8129883H9.2382812c-0.7539062,0-1.3671875,0.6123047-1.3671875,1.3671875v18.4663086
- c0,0.7539062,0.6132812,1.3671875,1.3671875,1.3671875h5.4716797c0.7548828,0,1.3681641-0.6132812,1.3681641-1.3671875V8.1801758
- C16.078125,7.425293,15.4648438,6.8129883,14.7099609,6.8129883z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="16.4360352" y1="24.3642578" x2="30.3382092" y2="10.4620829">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M26.1220703,6.8129883h-5.4707031c-0.7548828,0-1.3681641,0.6123047-1.3681641,1.3671875
- v18.4663086c0,0.7539062,0.6132812,1.3671875,1.3681641,1.3671875h5.4707031c0.7548828,0,1.3681641-0.6132812,1.3681641-1.3671875
- V8.1801758C27.4902344,7.425293,26.8769531,6.8129883,26.1220703,6.8129883z"/>
- </g>
-</g>
-</svg>
--- a/mpviewplugins/mpplaybackviewplugin/resources/play.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
-</g>
-<g id="Layer_2">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="7.6206055" y1="23.7324219" x2="20.2574692" y2="11.0955582">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M10.8642578,8.4926758c0-1.1000977,0.7460938-1.4970703,1.6582031-0.8818359l12.8828125,8.6845703
- c0.9121094,0.6152344,0.9121094,1.6210938,0,2.2358398l-12.8828125,8.6845703
- c-0.9121094,0.6152344-1.6582031,0.2177734-1.6582031-0.8818359V8.4926758z"/>
- </g>
-</g>
-</svg>
--- a/mpviewplugins/mpplaybackviewplugin/resources/prev.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
-</g>
-<g id="Layer_2">
- <g>
-
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-307.9033203" y1="-17.6152344" x2="-293.7667542" y2="-31.7518024" gradientTransform="matrix(-1 0 0 -1 -290.4023438 -7.2705078)">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M14.6044922,26.8007812c0,0.7695312-0.6220703,1.390625-1.390625,1.390625H7.6503906
- c-0.7675781,0-1.390625-0.6210938-1.390625-1.390625V8.0249023c0-0.7675781,0.6230469-1.390625,1.390625-1.390625h5.5634766
- c0.7685547,0,1.390625,0.6230469,1.390625,1.390625V26.8007812z"/>
- <g>
-
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-322.15625" y1="-19.1289062" x2="-311.0487061" y2="-30.2364368" gradientTransform="matrix(-1 0 0 -1 -290.4023438 -7.2705078)">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M28.9775391,25.1015625c0,1.0996094-0.7460938,1.4970703-1.6582031,0.8818359L16.2626953,18.53125
- c-0.9121094-0.6147461-0.9121094-1.6206055,0-2.2353516l11.0566406-7.453125
- C28.2314453,8.2280273,28.9775391,8.625,28.9775391,9.7250977V25.1015625z"/>
- </g>
- </g>
-</g>
-</svg>
Binary file mpviewplugins/mpplaybackviewplugin/resources/select.png has changed
--- a/mpviewplugins/mpplaybackviewplugin/resources/shuffle_off.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
-</g>
-<g id="Layer_2">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.0361328" y1="30.09375" x2="28.5427303" y2="4.5871511">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M0.0478516,27.1054688h8.4970703c0,0,2.6523438,0.5097656,5.3583984-3.3339844
- c2.7060547-3.8417969,7.2431641-9.2602539,7.2431641-9.2602539s0.875-1.4541016,2.8134766-1.5078125
- c1.4736328-0.0419922,4.2304688-0.0556641,4.2304688-0.0556641v3.3007812l5.953125-6.0605469l-5.953125-5.7636719
- l-0.0546875,3.5986328h-4.8154297c0,0-2.9775391-0.4863281-8.3349609,6.6035156L10.0068359,20.6875
- c0,0-0.7041016,1.0839844-2.4902344,1.0839844h-7.46875V27.1054688z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.3720703" y1="15.2382812" x2="10.4428988" y2="7.1674523">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M14.9267578,12.3374023c-0.3769531-0.5146484-0.7382812-1.0185547-1.0732422-1.4970703
- c-2.7060547-3.8847656-5.3574219-3.3671875-5.3574219-3.3671875H0v5.3925781h7.4677734
- c1.7871094,0,2.4892578,1.09375,2.4892578,1.09375l1.7167969,2.1132812
- C12.7724609,14.8237305,13.6679688,13.4477539,14.9267578,12.3374023z"/>
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="21.5712891" y1="27.2451172" x2="29.2561741" y2="19.5602322">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.533742" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M28.1416016,18.4458008v3.3393555c0,0-2.7587891-0.0136719-4.2294922-0.0566406
- c-1.9394531-0.0546875-2.8144531-1.5234375-2.8144531-1.5234375s-0.4082031-0.4941406-1.0517578-1.2890625
- c-0.9921875,1.2421875-1.90625,2.609375-3.0625,3.6855469c4.0644531,4.5292969,6.2880859,4.1621094,6.2880859,4.1621094h4.8154297
- l0.0546875,3.6386719l5.9550781-5.8261719L28.1416016,18.4458008z"/>
- </g>
-</g>
-</svg>
--- a/mpviewplugins/mpplaybackviewplugin/resources/shuffle_on.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
-</g>
-<g id="Layer_2">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.0361328" y1="30.09375" x2="28.5427303" y2="4.5871511">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M0.0478516,27.1054688h8.4970703c0,0,2.6523438,0.5097656,5.3583984-3.3339844
- c2.7060547-3.8417969,7.2431641-9.2602539,7.2431641-9.2602539s0.875-1.4541016,2.8134766-1.5078125
- c1.4736328-0.0419922,4.2304688-0.0556641,4.2304688-0.0556641v3.3007812l5.953125-6.0605469l-5.953125-5.7636719
- l-0.0546875,3.5986328h-4.8154297c0,0-2.9775391-0.4863281-8.3349609,6.6035156L10.0068359,20.6875
- c0,0-0.7041016,1.0839844-2.4902344,1.0839844h-7.46875V27.1054688z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.3720703" y1="15.2382812" x2="10.4428988" y2="7.1674523">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M14.9267578,12.3374023c-0.3769531-0.5146484-0.7382812-1.0185547-1.0732422-1.4970703
- c-2.7060547-3.8847656-5.3574219-3.3671875-5.3574219-3.3671875H0v5.3925781h7.4677734
- c1.7871094,0,2.4892578,1.09375,2.4892578,1.09375l1.7167969,2.1132812
- C12.7724609,14.8237305,13.6679688,13.4477539,14.9267578,12.3374023z"/>
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="21.5712891" y1="27.2451172" x2="29.2561741" y2="19.5602322">
- <stop offset="0" style="stop-color:#7EE7FD"/>
- <stop offset="0.533742" style="stop-color:#119EE0"/>
- <stop offset="1" style="stop-color:#7EE7FD"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M28.1416016,18.4458008v3.3393555c0,0-2.7587891-0.0136719-4.2294922-0.0566406
- c-1.9394531-0.0546875-2.8144531-1.5234375-2.8144531-1.5234375s-0.4082031-0.4941406-1.0517578-1.2890625
- c-0.9921875,1.2421875-1.90625,2.609375-3.0625,3.6855469c4.0644531,4.5292969,6.2880859,4.1621094,6.2880859,4.1621094h4.8154297
- l0.0546875,3.6386719l5.9550781-5.8261719L28.1416016,18.4458008z"/>
- </g>
-</g>
-</svg>
--- a/mpviewplugins/mpplaybackviewplugin/rom/mpplaybackviewplugin.iby Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpplaybackviewplugin/rom/mpplaybackviewplugin.iby Fri Apr 16 14:56:30 2010 +0300
@@ -22,4 +22,6 @@
ECOM_PLUGIN( mpplaybackviewplugin.dll, mpplaybackviewplugin.rsc )
+data=ZSYSTEM\data\nullsound.mp3 nullsound.mp3
+
#endif //MPPLAYBACKVIEWPLUGIN_IBY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwidget.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,203 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Equalizer widget for Music Player playback view.
+*
+*/
+
+// System includes
+#include <QStringList>
+#include <hblabel.h>
+#include <hbaction.h>
+#include <hbradiobuttonlist.h>
+
+// User includes
+#include "mpequalizerwidget.h"
+#include "mpequalizerwrapper.h"
+#include "mptrace.h"
+
+// CONSTANTS
+const int KEqualizerPresetNone = -1;
+
+/*!
+ \class MpEqualizerWidget
+ \brief Provide radio button list to select a predefined eq. preset
+*/
+
+/*!
+ Constructs the Equalizer widget.
+ */
+MpEqualizerWidget::MpEqualizerWidget() :
+ mEqualizerWrapper(0),
+ mPresetsList(0),
+ mOriginalPreset(KEqualizerPresetNone),
+ mEqualizerReady(false)
+{
+ TX_ENTRY
+
+ initialize();
+
+ TX_EXIT
+}
+
+/*!
+ Destructs the widget.
+ */
+MpEqualizerWidget::~MpEqualizerWidget()
+{
+ TX_ENTRY
+
+ delete mEqualizerWrapper;
+
+ TX_EXIT
+}
+
+/*!
+ Initialize dialog by loading the EqualizerUtility.
+ */
+void MpEqualizerWidget::initialize()
+{
+ TX_ENTRY
+
+ mEqualizerWrapper = new MpEqualizerWrapper( this );
+
+ connect( mEqualizerWrapper,
+ SIGNAL( equalizerReady() ),
+ this,
+ SLOT( equalizerReady() ) );
+
+ TX_EXIT
+}
+
+/*!
+ Prepare dialog by loading the presets list.
+ */
+void MpEqualizerWidget::prepareDialog()
+{
+ TX_ENTRY
+
+ setTimeout(NoTimeout);
+ setDismissPolicy(HbDialog::NoDismiss);
+ setFrameType(HbPopup::Strong);
+ setHeadingWidget(new HbLabel(hbTrId("txt_mus_title_select_preset")));
+ setPrimaryAction(new HbAction(hbTrId("txt_common_button_ok")));
+ setSecondaryAction(new HbAction(hbTrId("txt_common_button_cancel")));
+
+ 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"
+ }
+ else {
+ presetSelected = mOriginalPreset;
+ }
+
+ mPresetsList = new HbRadioButtonList(listItems, presetSelected, HbRadioButtonList::NoPreview, this);
+ setContentWidget( mPresetsList ); //mPresetsList now owned by HbDialog
+
+ connect( mPresetsList,
+ SIGNAL(itemSelected(int)),
+ this,
+ SLOT(presetSelected(int)));
+ }
+
+ connect( secondaryAction(),
+ SIGNAL( triggered(bool) ),
+ this,
+ SLOT( cancelSelected(bool) ) );
+
+ connect( primaryAction(),
+ SIGNAL( triggered(bool) ),
+ this,
+ SLOT( okSelected(bool) ) );
+
+ TX_EXIT
+}
+
+/*!
+ Slot to handle when a preset has been selected.
+ */
+void MpEqualizerWidget::presetSelected(int index)
+{
+ TX_ENTRY
+
+ if (mEqualizerWrapper) {
+ if (index == 0) {
+ mEqualizerWrapper->disableEqualizer();
+ }
+ else{
+ mEqualizerWrapper->applyPreset( index );
+ }
+ }
+
+ TX_EXIT
+}
+
+/*!
+ Slot to handle when Cancel is selected
+ */
+void MpEqualizerWidget::cancelSelected(bool checked)
+{
+ TX_ENTRY
+ Q_UNUSED(checked);
+
+ if (mEqualizerWrapper && mPresetsList) {
+ // Return to the original Preset
+ if (mOriginalPreset != mEqualizerWrapper->activePreset()) {
+ if (mOriginalPreset == KEqualizerPresetNone) {
+ mEqualizerWrapper->disableEqualizer();
+ mPresetsList->setSelected( 0 ); //First list item corresponds to "OFF"
+ }
+ else {
+ mEqualizerWrapper->applyPreset( mOriginalPreset );
+ mPresetsList->setSelected( mOriginalPreset );
+ }
+ }
+ }
+
+ TX_EXIT
+}
+
+/*!
+ Slot to handle when Ok is selected
+ */
+void MpEqualizerWidget::okSelected(bool checked)
+{
+ TX_ENTRY
+ Q_UNUSED(checked);
+
+ //Update original preset
+ if (mEqualizerWrapper) {
+ mOriginalPreset = mEqualizerWrapper->activePreset();
+ }
+
+ TX_EXIT
+}
+
+/*!
+ Equalizer utility is ready
+ */
+void MpEqualizerWidget::equalizerReady()
+{
+ TX_ENTRY
+
+ mEqualizerReady = true;
+
+ TX_EXIT
+}
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwrapper_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,346 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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/mpplaybackdata.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpplaybackdata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -77,7 +77,8 @@
mReqId(KUndefined),
mDuration(0),
mPosition(0),
- mAlbumArt()
+ mAlbumArt(),
+ mPlaybackState(Stopped)
{
TX_ENTRY
mThumbnailManager = new ThumbnailManager(this);
--- a/mpviewplugins/mpplaybackviewplugin/src/mpplaybackview.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpplaybackviewplugin/src/mpplaybackview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -23,6 +23,8 @@
#include <hbtoolbar.h>
#include <hbaction.h>
#include <hbicon.h>
+#include <QTranslator>
+#include <QLocale>
#include "mpplaybackview.h"
#include "mpplaybackwidget.h"
@@ -31,6 +33,7 @@
#include "mpsettingsmanager.h"
#include "mpcommondefs.h"
#include "mptrace.h"
+#include "mpequalizerwidget.h"
/*!
@@ -54,15 +57,18 @@
Constructs the playback view.
*/
MpPlaybackView::MpPlaybackView()
- : mFrameworkWrapper(0),
- mPlaybackData(0),
- mPlaybackWidget(0),
- mSoftKeyBack(0),
- mActivated(false),
- mPlayIcon(0),
- mPauseIcon(0),
- mShuffleOnIcon(0),
- mShuffleOffIcon(0)
+ : mFrameworkWrapper( 0 ),
+ mPlaybackData( 0 ),
+ mPlaybackWidget( 0 ),
+ mEqualizerWidget( new MpEqualizerWidget() ),
+ mSoftKeyBack( 0 ),
+ mActivated( false ),
+ mPlayIcon( 0 ),
+ mPauseIcon( 0 ),
+ mShuffleOnIcon( 0 ),
+ mShuffleOffIcon( 0 ),
+ mMpTranslator( 0 ),
+ mCommonTranslator( 0 )
{
TX_LOG
}
@@ -79,6 +85,9 @@
delete mPauseIcon;
delete mShuffleOnIcon;
delete mShuffleOffIcon;
+ delete mEqualizerWidget;
+ delete mMpTranslator;
+ delete mCommonTranslator;
TX_EXIT
}
@@ -90,28 +99,49 @@
{
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();
- mSoftKeyBack = new HbAction(Hb::BackAction, this);
- connect( mSoftKeyBack, SIGNAL(triggered()), this, SLOT(back()) );
+ mSoftKeyBack = new HbAction( Hb::BackAction, this );
+ connect( mSoftKeyBack, SIGNAL( triggered() ), this, SLOT( back() ) );
mFrameworkWrapper = new MpMpxPbFrameworkWrapper();
mPlaybackData = mFrameworkWrapper->playbackData();
- connect( mPlaybackData, SIGNAL(playbackStateChanged()),
- this, SLOT(playbackStateChanged()) );
+ connect( mPlaybackData, SIGNAL( playbackStateChanged() ),
+ this, SLOT( playbackStateChanged() ) );
- mPlaybackWidget = new MpPlaybackWidget(mPlaybackData);
- connect( mPlaybackWidget, SIGNAL(setPlaybackPosition(int)), mFrameworkWrapper, SLOT( setPosition(int) ) );
+ mPlaybackWidget = new MpPlaybackWidget( mPlaybackData );
+ connect( mPlaybackWidget, SIGNAL( setPlaybackPosition( int ) ), mFrameworkWrapper, SLOT( setPosition( int ) ) );
- setWidget(mPlaybackWidget);
+ 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( MpSettingsManager::instance(), SIGNAL( shuffleChanged( bool ) ),
+ this, SLOT( shuffleChanged( bool ) ) );
+ connect( MpSettingsManager::instance(), SIGNAL( repeatChanged( bool ) ),
+ this, SLOT( repeatChanged( bool ) ) );
TX_EXIT
}
@@ -123,7 +153,7 @@
{
TX_ENTRY
mActivated = true;
- mWindow->addSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyBack);
+ setNavigationAction( mSoftKeyBack );
TX_EXIT
}
@@ -133,18 +163,24 @@
void MpPlaybackView::deactivateView()
{
TX_ENTRY
- mWindow->removeSoftKeyAction(Hb::SecondarySoftKey, mSoftKeyBack);
+ if ( mEqualizerWidget->isActive() ) {
+ mEqualizerWidget->close();
+ }
+
+ menu()->close();
+
+ setNavigationAction( 0 );
mActivated = false;
TX_EXIT
}
/*!
- Slot to be called to activate collection view.
+ Slot to be called to activate settings view.
*/
-void MpPlaybackView::startCollectionView()
+void MpPlaybackView::startSettingsView()
{
TX_LOG
- emit command( MpCommon::ActivateCollectionView );
+ emit command( MpCommon::ActivateSettingsView );
}
/*!
@@ -174,20 +210,20 @@
/*!
Slot to handle playback state changed.
*/
-void MpPlaybackView::playbackStateChanged( )
+void MpPlaybackView::playbackStateChanged()
{
TX_ENTRY
switch ( mPlaybackData->playbackState() ) {
case MpPlaybackData::Playing:
- TX_LOG_ARGS("MpPlaybackData::Playing")
+ TX_LOG_ARGS( "MpPlaybackData::Playing" )
mPlayPauseAction->setIcon( *mPauseIcon );
break;
case MpPlaybackData::Paused:
- TX_LOG_ARGS("MpPlaybackData::Paused")
+ TX_LOG_ARGS( "MpPlaybackData::Paused" )
mPlayPauseAction->setIcon( *mPlayIcon );
break;
case MpPlaybackData::Stopped:
- TX_LOG_ARGS("MpPlaybackData::Paused")
+ TX_LOG_ARGS( "MpPlaybackData::Paused" )
if ( mViewMode == MpCommon::FetchView ) {
back();
}
@@ -203,12 +239,22 @@
}
/*!
+ Slot to handle flip action.
+ */
+void MpPlaybackView::flip()
+{
+ TX_ENTRY
+ emit command( MpCommon::ActivateDetailsView );
+ TX_EXIT
+}
+
+/*!
Slot to handle shuffle toggle.
*/
void MpPlaybackView::toggleShuffle()
{
mFrameworkWrapper->setShuffle( !mShuffle );
- MpSettingsManager::setShuffle(!mShuffle);
+ MpSettingsManager::setShuffle( !mShuffle );
}
/*!
@@ -217,7 +263,7 @@
void MpPlaybackView::shuffleChanged( bool shuffle )
{
mShuffle = shuffle;
- mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon);
+ mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon );
}
/*!
@@ -225,17 +271,17 @@
*/
void MpPlaybackView::toggleRepeat()
{
- mFrameworkWrapper->setRepeat(!mRepeat);
- MpSettingsManager::setRepeat(!mRepeat);
+ mFrameworkWrapper->setRepeat( !mRepeat );
+ MpSettingsManager::setRepeat( !mRepeat );
}
/*!
Slot to handle /a repeat setting change.
*/
-void MpPlaybackView::repeatChanged(bool repeat)
+void MpPlaybackView::repeatChanged( bool repeat )
{
mRepeat = repeat;
- mRepeatAction->setText( mRepeat ? tr("Repeat off") : tr("Repeat on"));
+ mRepeatAction->setText( mRepeat ? hbTrId( "txt_mus_opt_repeat_off" ) : hbTrId( "txt_mus_opt_repeat_on" ) );
}
/*!
@@ -258,11 +304,12 @@
if ( mViewMode == MpCommon::DefaultView ) {
mRepeat = MpSettingsManager::repeat();
HbMenu* myMenu = new HbMenu();
- connect( myMenu->addAction(tr("Go to music library")), SIGNAL(triggered()), this, SLOT(startCollectionView()) );
- mRepeatAction = myMenu->addAction( mRepeat ? tr("Repeat off") : tr("Repeat on"));
- connect( mRepeatAction , SIGNAL(triggered()), this, SLOT(toggleRepeat()) );
- connect( myMenu->addAction(tr("Exit")), SIGNAL(triggered()), this, SLOT(exit()) );
- setMenu(myMenu);
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_equalizer" ) ), SIGNAL( triggered() ), this, SLOT( showEqualizerDialog() ) );
+ connect( myMenu->addAction( hbTrId( "txt_mus_opt_audio_effects" ) ), SIGNAL( triggered() ), this, SLOT( startSettingsView() ) );
+ mRepeatAction = myMenu->addAction( mRepeat ? hbTrId( "txt_mus_opt_repeat_off" ) : hbTrId( "txt_mus_opt_repeat_on" ) );
+ connect( mRepeatAction , SIGNAL( triggered() ), this, SLOT( toggleRepeat() ) );
+ connect( myMenu->addAction( hbTrId( "txt_common_opt_exit" ) ), SIGNAL( triggered() ), this, SLOT( exit() ) );
+ setMenu( myMenu );
}
TX_EXIT
}
@@ -274,72 +321,86 @@
{
TX_ENTRY
HbToolBar *toolBar = this->toolBar();
- toolBar->setOrientation(Qt::Horizontal);
+ toolBar->setOrientation( Qt::Horizontal );
QActionGroup *actionsGroup = new QActionGroup( toolBar );
if ( mViewMode == MpCommon::DefaultView ) {
- mShuffleOnIcon = new HbIcon(":/playbackviewicons/shuffle_on.svg");
- mShuffleOffIcon = new HbIcon( ":/playbackviewicons/shuffle_off.svg");
- mShuffleAction = new HbAction(actionsGroup);
+ mShuffleOnIcon = new HbIcon( "qtg_mono_shuffle" );
+ mShuffleOffIcon = new HbIcon( "qtg_mono_shuffle_off" );
+ mShuffleAction = new HbAction( actionsGroup );
mShuffle = MpSettingsManager::shuffle();
- mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon);
+ mShuffleAction->setIcon( mShuffle ? *mShuffleOnIcon : *mShuffleOffIcon );
mShuffleAction->setCheckable( false );
- connect( mShuffleAction, SIGNAL(triggered(bool)),
- this, SLOT(toggleShuffle()) );
+ connect( mShuffleAction, SIGNAL( triggered( bool ) ),
+ this, SLOT( toggleShuffle() ) );
toolBar->addAction( mShuffleAction );
- HbAction *action = new HbAction(actionsGroup);
- action->setIcon( HbIcon( ":/playbackviewicons/prev.svg") );
+ HbAction *action = new HbAction( actionsGroup );
+ action->setIcon( HbIcon( "qtg_mono_previous" ) );
action->setCheckable( false );
- connect( action, SIGNAL(triggered(bool)),
- mFrameworkWrapper, SLOT(skipBackward()) );
+ connect( action, SIGNAL( triggered( bool ) ),
+ mFrameworkWrapper, SLOT( skipBackward() ) );
toolBar->addAction( action );
- mPlayPauseAction = new HbAction(actionsGroup);
- mPlayIcon = new HbIcon(":/playbackviewicons/play.svg");
- mPauseIcon = new HbIcon( ":/playbackviewicons/pause.svg" );
+ mPlayPauseAction = new HbAction( actionsGroup );
+ mPlayIcon = new HbIcon( "qtg_mono_play" );
+ mPauseIcon = new HbIcon( "qtg_mono_pause" );
mPlayPauseAction->setIcon( *mPlayIcon );
mPlayPauseAction->setCheckable( false );
- connect( mPlayPauseAction, SIGNAL(triggered(bool)),
- mFrameworkWrapper, SLOT(playPause()) );
+ connect( mPlayPauseAction, SIGNAL( triggered( bool ) ),
+ mFrameworkWrapper, SLOT( playPause() ) );
toolBar->addAction( mPlayPauseAction );
- action = new HbAction(actionsGroup);
- action->setIcon( HbIcon(":/playbackviewicons/next.svg") );
+ action = new HbAction( actionsGroup );
+ action->setIcon( HbIcon( "qtg_mono_next" ) );
action->setCheckable( false );
- connect( action, SIGNAL(triggered(bool)),
- mFrameworkWrapper, SLOT(skipForward()) );
+ connect( action, SIGNAL( triggered( bool ) ),
+ mFrameworkWrapper, SLOT( skipForward() ) );
toolBar->addAction( action );
- HbIcon icon( ":/playbackviewicons/info.svg" );
- action = new HbAction(actionsGroup);
+ HbIcon icon( "qtg_mono_info" );
+ action = new HbAction( actionsGroup );
action->setIcon( icon );
action->setCheckable( false );
- /*
- connect( action, SIGNAL(triggered(bool)),
- this, SLOT( flip()) );
- */
+
+ connect( action, SIGNAL( triggered( bool ) ),
+ this, SLOT( flip() ) );
+
toolBar->addAction( action );
}
else {
// Fetch mode
- HbAction *action = new HbAction(actionsGroup);
- action->setIcon( HbIcon(":/playbackviewicons/select.png") );
+ HbAction *action = new HbAction( actionsGroup );
+ action->setIcon( HbIcon( "qtg_mono_tick" ) );
action->setCheckable( false );
- connect( action, SIGNAL(triggered(bool)),
- this, SLOT(handleSongSelected()) );
+ connect( action, SIGNAL( triggered( bool ) ),
+ this, SLOT( handleSongSelected() ) );
toolBar->addAction( action );
-
- mPlayPauseAction = new HbAction(actionsGroup);
- mPlayIcon = new HbIcon(":/playbackviewicons/play.svg");
- mPauseIcon = new HbIcon( ":/playbackviewicons/pause.svg" );
+
+ mPlayPauseAction = new HbAction( actionsGroup );
+ mPlayIcon = new HbIcon( "qtg_mono_play" );
+ mPauseIcon = new HbIcon( "qtg_mono_pause" );
mPlayPauseAction->setIcon( *mPlayIcon );
mPlayPauseAction->setCheckable( false );
- connect( mPlayPauseAction, SIGNAL(triggered(bool)),
- mFrameworkWrapper, SLOT(playPause()) );
+ connect( mPlayPauseAction, SIGNAL( triggered( bool ) ),
+ mFrameworkWrapper, SLOT( playPause() ) );
toolBar->addAction( mPlayPauseAction );
}
TX_EXIT
}
+/*!
+ Slot to be called to activate equalizer dialog.
+ */
+void MpPlaybackView::showEqualizerDialog()
+{
+ TX_ENTRY
+
+ if( mEqualizerWidget )
+ {
+ mEqualizerWidget->exec();
+ }
+
+ TX_EXIT
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/inc/unittest_mpequalizerwidget.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,60 @@
+/**
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 TESTMPEQUALIZERWIDGET_H
+#define TESTMPEQUALIZERWIDGET_H
+
+#include <QtTest/QtTest>
+
+class MpEqualizerWidget;
+
+class TestMpEqualizerWidget: public QObject
+{
+ Q_OBJECT
+
+public:
+
+ TestMpEqualizerWidget();
+ virtual ~TestMpEqualizerWidget();
+
+signals:
+
+public slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void testInitialize();
+ void testPrepareDialog();
+ void testEqualizerReady();
+ void testPresetSelected();
+ void testCancelSelected();
+ void testOkSelected();
+
+private:
+
+ MpEqualizerWidget *mTest;
+
+};
+
+#endif // TESTMPEQUALIZERWIDGET_H
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/src/unittest_mpequalizerwidget.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,204 @@
+/**
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
+*
+*/
+
+#include <QMetaType>
+#include <QtGui>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbradiobuttonlist.h>
+
+#include "stub/inc/mpequalizerwrapper.h"
+#include "unittest_mpequalizerwidget.h"
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpequalizerwidget.h"
+#undef private
+
+//This so we can test private functions
+#include "../../src/mpequalizerwidget.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;
+
+ TestMpEqualizerWidget tv;
+
+ 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;
+}
+
+TestMpEqualizerWidget::TestMpEqualizerWidget()
+ : mTest(0)
+{
+}
+
+TestMpEqualizerWidget::~TestMpEqualizerWidget()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpEqualizerWidget::initTestCase()
+{
+
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpEqualizerWidget::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpEqualizerWidget::init()
+{
+ mTest = new MpEqualizerWidget();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpEqualizerWidget::cleanup()
+{
+ delete mTest;
+ mTest = 0;
+}
+
+/*!
+ Tests constructor.
+ */
+void TestMpEqualizerWidget::testInitialize()
+{
+ QVERIFY(mTest->mEqualizerWrapper != 0 );
+}
+
+/*!
+ Tests testPrepare.
+ */
+void TestMpEqualizerWidget::testPrepareDialog()
+{
+ //With Equalizer not ready
+ mTest->prepareDialog();
+ QVERIFY(mTest->mOriginalPreset == -1 );
+ QVERIFY(mTest->timeout() == HbDialog::NoTimeout);
+ QVERIFY(mTest->dismissPolicy() == HbDialog::NoDismiss);
+ QVERIFY(mTest->frameType() == HbPopup::Strong);
+ QVERIFY(mTest->headingWidget() != 0);
+ QVERIFY(mTest->primaryAction() != 0);
+ QVERIFY(mTest->secondaryAction() != 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);
+}
+
+/*!
+ Tests presetSelected.
+ */
+void TestMpEqualizerWidget::testPresetSelected()
+{
+ //Off preset must call DisableEqualizer
+ mTest->presetSelected(0);
+ QVERIFY(mTest->mEqualizerWrapper->mDisableEquqlizerCount == 1);
+
+ //Any other preset must be applied
+ mTest->presetSelected(3);
+ QVERIFY(mTest->mEqualizerWrapper->mApplyPresetCount == 1);
+}
+
+/*!
+ Tests cancelSelected.
+ */
+void TestMpEqualizerWidget::testCancelSelected()
+{
+ mTest->equalizerReady();
+ mTest->prepareDialog();
+
+ //Cancel, when Current preset selected != Original Preset
+
+ //When Original Preset == -1 "Off"
+ mTest->mEqualizerWrapper->mActivePreset = 4;
+ mTest->mOriginalPreset = -1;
+ mTest->cancelSelected(true);
+ QVERIFY(mTest->mEqualizerWrapper->mDisableEquqlizerCount == 1);
+ QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);
+
+ //When Original Preset != -1 "Any other different than Off"
+ mTest->mEqualizerWrapper->mActivePreset = 4;
+ mTest->mOriginalPreset = 2;
+ mTest->cancelSelected(true);
+ QVERIFY(mTest->mEqualizerWrapper->mApplyPresetCount == 1);
+ QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);
+
+ //Cancel, when Current preset selected == Original Preset
+ mTest->mEqualizerWrapper->mActivePreset = 3;
+ mTest->mOriginalPreset = 3;
+ mTest->cancelSelected(true);
+ QVERIFY(mTest->mEqualizerWrapper->mApplyPresetCount == 1);
+ QVERIFY(mTest->mEqualizerWrapper->mDisableEquqlizerCount == 1);
+ QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);
+}
+
+/*!
+ Tests okSelected.
+ */
+void TestMpEqualizerWidget::testOkSelected()
+{
+ mTest->equalizerReady();
+
+ mTest->mEqualizerWrapper->mActivePreset = 2;
+ mTest->mOriginalPreset = -1;
+ mTest->okSelected(true);
+ QCOMPARE(mTest->mEqualizerWrapper->mActivePreset, mTest->mOriginalPreset);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/stub/inc/mpequalizerwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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/mpequalizerwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwidget/unittest_mpequalizerwidget.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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: Unit test for mpequalizerwidget
+TEMPLATE = app
+CONFIG += qtestlib \
+ hb
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += . \
+ ../../inc \
+ ../../../../inc
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+LIBS += lestor.dll \
+ -lfbscli.dll \
+
+symbian: TARGET.EPOCALLOWDLLDATA = 1
+
+HEADERS += stub/inc/mpequalizerwrapper.h \
+ inc/unittest_mpequalizerwidget.h \
+ ../../inc/mpequalizerwidget.h
+
+SOURCES += stub/src/mpequalizerwrapper.cpp \
+ src/unittest_mpequalizerwidget.cpp
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/inc/unittest_mpequalizerwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,65 @@
+/**
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/src/unittest_mpequalizerwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,231 @@
+/**
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/audioequalizerutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/mpxplaybackutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/inc/mpxuser.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/audioequalizerutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,159 @@
+/*
+* 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/mpxplaybackutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/stub/src/mpxuser.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpequalizerwrapper/unittest_mpequalizerwrapper.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/inc/unittest_mpmpxpbframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/src/unittest_mpmpxpbframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,389 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpplaybackdata.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpxcollectionutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,69 @@
+/*
+* 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
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/inc/mpxplaybackutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpplaybackdata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,222 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpxcollectionutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,96 @@
+/*
+* 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/stub/src/mpxplaybackutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpmpxpbframeworkwrapper/unittest_mpmpxpbframeworkwrapper.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackdata/inc/unittest_mpplaybackdata.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Unit test for MpPlaybackData
+*
+*/
+
+#ifndef TESTMPMPPLAYBACKDATA_H
+#define TESTMPMPPLAYBACKDATA_H
+
+#include <QtTest/QtTest>
+
+class MpPlaybackData;
+
+class TestMpPlaybackData : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ TestMpPlaybackData();
+ virtual ~TestMpPlaybackData();
+
+signals:
+
+
+public slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void testConstructor();
+ void testSetDuration();
+ void testSetPosition();
+ void testSetTitle();
+ void testSetArtist();
+ void testSetAlbum();
+ void testSetUri();
+ void testSetAlbumArtUri();
+ void testThumbnailReady();
+ void testSetPlaybackState();
+ void testCommitPlaybackInfo();
+
+// void testDeactivateView();
+// void testGetView();
+private:
+
+ MpPlaybackData *mTest;
+
+};
+
+#endif // TESTMPMPPLAYBACKDATA_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackdata/src/unittest_mpplaybackdata.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,340 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 MpPlaybackData
+*
+*/
+
+#include <QSignalSpy>
+#include <qnamespace.h>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbInstance.h>
+
+#include "unittest_mpplaybackdata.h"
+#include "stub/inc/thumbnailmanager_qt.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpplaybackdata.h"
+#undef private
+
+const int KUndefined = -1;
+
+/*!
+ 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;
+ TestMpPlaybackData tv;
+
+ char *pass[3];
+ pass[0] = argv[0];
+ pass[1] = "-o";
+ pass[2] = "c:\\data\\unittest_mpplaybackdata.txt";
+
+ int res = QTest::qExec(&tv, 3, pass);
+
+ return res;
+}
+
+TestMpPlaybackData::TestMpPlaybackData()
+ : mTest(0)
+{
+}
+
+TestMpPlaybackData::~TestMpPlaybackData()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpPlaybackData::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpPlaybackData::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpPlaybackData::init()
+{
+ mTest = new MpPlaybackData();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpPlaybackData::cleanup()
+{
+ delete mTest;
+ mTest = 0;
+}
+
+/*!
+ testConstructor
+ */
+void TestMpPlaybackData::testConstructor()
+{
+ QVERIFY(mTest->mThumbnailManager != 0);
+ QCOMPARE(mTest->mThumbnailManager->getInitCounter(), 1);
+ QVERIFY(mTest->mDuration == 0);
+ QVERIFY(mTest->mPosition == 0);
+ QVERIFY(!mTest->mDefaultAlbumArt);
+
+}
+
+/*!
+ test setDuration and duration
+ */
+void TestMpPlaybackData::testSetDuration()
+{
+ QSignalSpy spy(mTest, SIGNAL(durationChanged()));
+ for(int i= 0; i < 10; i++){
+ mTest->setDuration(i);
+ QCOMPARE(mTest->mDuration, i);
+ QCOMPARE(mTest->duration(),i);
+ QCOMPARE(spy.count(),i+1);
+ }
+}
+
+/*!
+ test setPosition and position
+ */
+void TestMpPlaybackData::testSetPosition()
+{
+ QSignalSpy spy(mTest, SIGNAL(positionChanged()));
+ for(int i= 0; i < 10; i++){
+ mTest->setPosition(i);
+ QCOMPARE(mTest->mPosition, i);
+ QCOMPARE(mTest->position(),i);
+ QCOMPARE(spy.count(),i+1);
+ }
+}
+
+/*!
+ test setTitle and title
+ */
+void TestMpPlaybackData::testSetTitle()
+{
+ bool changed;
+
+ changed = mTest->setTitle(QString("Title 1"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mTitle, QString("Title 1"));
+ QCOMPARE(mTest->title(), QString("Title 1"));
+ changed = mTest->setTitle(QString("Title 1"));
+ QCOMPARE(changed, false);
+ QCOMPARE(mTest->title(), QString("Title 1"));
+ changed = mTest->setTitle(QString("Title 1"));
+ changed = mTest->setTitle(QString("Title 2"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mTitle, QString("Title 2"));
+ QCOMPARE(mTest->title(), QString("Title 2"));
+
+}
+
+/*!
+ test setArtist and artist
+ */
+void TestMpPlaybackData::testSetArtist()
+{
+ bool changed;
+
+ changed = mTest->setArtist(QString("Artist 1"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mArtist, QString("Artist 1"));
+ QCOMPARE(mTest->artist(), QString("Artist 1"));
+ changed = mTest->setArtist(QString("Artist 1"));
+ QCOMPARE(changed, false);
+ QCOMPARE(mTest->mArtist, QString("Artist 1"));
+ QCOMPARE(mTest->artist(), QString("Artist 1"));
+ changed = mTest->setArtist(QString("Artist 2"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mArtist, QString("Artist 2"));
+ QCOMPARE(mTest->artist(), QString("Artist 2"));
+
+}
+
+/*!
+ test setAlbum and album
+ */
+void TestMpPlaybackData::testSetAlbum()
+{
+ bool changed;
+
+ changed = mTest->setAlbum(QString("Album 1"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mAlbum, QString("Album 1"));
+ QCOMPARE(mTest->album(), QString("Album 1"));
+ changed = mTest->setAlbum(QString("Album 1"));
+ QCOMPARE(changed, false);
+ QCOMPARE(mTest->mAlbum, QString("Album 1"));
+ QCOMPARE(mTest->album(), QString("Album 1"));
+ changed = mTest->setAlbum(QString("Album 2"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mAlbum, QString("Album 2"));
+ QCOMPARE(mTest->album(), QString("Album 2"));
+
+}
+
+/*!
+ test setUri and uri
+ */
+void TestMpPlaybackData::testSetUri()
+{
+ bool changed;
+
+ changed = mTest->setUri(QString("Uri 1"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mUri, QString("Uri 1"));
+ QCOMPARE(mTest->uri(), QString("Uri 1"));
+ changed = mTest->setUri(QString("Uri 1"));
+ QCOMPARE(changed, false);
+ QCOMPARE(mTest->mUri, QString("Uri 1"));
+ QCOMPARE(mTest->uri(), QString("Uri 1"));
+ changed = mTest->setUri(QString("Uri 2"));
+ QCOMPARE(changed, true);
+ QCOMPARE(mTest->mUri, QString("Uri 2"));
+ QCOMPARE(mTest->uri(), QString("Uri 2"));
+
+}
+
+/*!
+ test setAlbumArtUri
+ */
+void TestMpPlaybackData::testSetAlbumArtUri()
+{
+ QSignalSpy spy(mTest, SIGNAL(albumArtReady()));
+ //Empty string
+ mTest->setAlbumArtUri(QString(""));
+ QCOMPARE(mTest->mAlbumArt, mTest->mDefaultAlbumArt);
+ QCOMPARE(spy.count(),1);
+ spy.clear();
+
+ //Request failed
+ mTest->mThumbnailManager->mGetThumbFails = true;
+ mTest->setAlbumArtUri(QString("AlbumArt"));
+ QCOMPARE(mTest->mAlbumArt, mTest->mDefaultAlbumArt);
+ QCOMPARE(spy.count(),1);
+ spy.clear();
+
+ //Succesful requests
+ mTest->mThumbnailManager->mGetThumbFails = false;
+ for(int i = 1; i < 10; i++){
+ mTest->setAlbumArtUri(QString("AlbumArt"));
+ QCOMPARE(mTest->mReqId, i);
+ QCOMPARE(spy.count(),0);
+ mTest->mReqId = KUndefined;
+ }
+
+ //Pending request
+ mTest->mReqId = 1;
+ for(int i = 1; i < 10; i++){
+ mTest->setAlbumArtUri(QString("AlbumArt"));
+ QCOMPARE(spy.count(),0);
+ QCOMPARE(mTest->mThumbnailManager->mCancelCounter, i);
+ }
+}
+
+/*!
+ test ThumbnailReady and albumArt
+ */
+void TestMpPlaybackData::testThumbnailReady()
+{
+ void* temp;
+ temp=0;
+ QSignalSpy spy(mTest, SIGNAL(albumArtReady()));
+ QPixmap albumArt(100,100);
+ QPixmap albumArt2;
+
+ //Error
+ mTest->thumbnailReady(albumArt,temp,KUndefined,KUndefined);
+ QCOMPARE(mTest->mAlbumArt, mTest->mDefaultAlbumArt);
+ QCOMPARE(mTest->mReqId, KUndefined);
+ QCOMPARE(spy.count(),1);
+ spy.clear();
+
+ //Wrong id
+ mTest->mReqId = 1;
+ mTest->thumbnailReady(albumArt,temp,KUndefined,0);
+ QCOMPARE(mTest->mAlbumArt, mTest->mDefaultAlbumArt);
+ QCOMPARE(mTest->mReqId, KUndefined);
+ QCOMPARE(spy.count(),1);
+ spy.clear();
+
+ //Update album art
+ mTest->mReqId = 1;
+ mTest->thumbnailReady(albumArt,temp,1,0);
+ QCOMPARE(mTest->mReqId, KUndefined);
+ QCOMPARE(spy.count(),1);
+ mTest->albumArt(albumArt2);
+ QCOMPARE(albumArt,albumArt2);
+}
+
+/*!
+ test setPlaybackState and playbackState
+ */
+void TestMpPlaybackData::testSetPlaybackState()
+{
+ QSignalSpy spy(mTest, SIGNAL(playbackStateChanged()));
+
+ mTest->mPlaybackState = MpPlaybackData::Paused;
+
+ mTest->setPlaybackState(MpPlaybackData::Playing);
+ QCOMPARE(mTest->playbackState(),MpPlaybackData::Playing);
+ QCOMPARE(spy.count(),1);
+ spy.clear();
+
+ mTest->setPlaybackState(MpPlaybackData::Stopped);
+ QCOMPARE(mTest->playbackState(),MpPlaybackData::Stopped);
+ QCOMPARE(spy.count(),1);
+ spy.clear();
+
+ mTest->setPlaybackState(MpPlaybackData::Paused);
+ QCOMPARE(mTest->playbackState(),MpPlaybackData::Paused);
+ QCOMPARE(spy.count(),1);
+ spy.clear();
+
+ mTest->setPlaybackState(MpPlaybackData::Paused);
+ QCOMPARE(mTest->playbackState(),MpPlaybackData::Paused);
+ QCOMPARE(spy.count(),0);
+
+}
+
+
+/*!
+ test commitPlaybackInfo
+ */
+void TestMpPlaybackData::testCommitPlaybackInfo()
+{
+ QSignalSpy spy(mTest, SIGNAL(playbackInfoChanged()));
+
+ for(int i = 1; i < 10; i++){
+ mTest->commitPlaybackInfo();
+ QCOMPARE(spy.count(),i);
+ }
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackdata/stub/inc/thumbnailmanager_qt.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 MpPlaybackData
+*
+*/
+
+#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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackdata/stub/src/thumbnailmanager_qt.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 MpPlaybackData
+*
+*/
+
+#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;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackdata/unittest_mpplaybackdata.pro Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies 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 \
+
+HEADERS += inc/unittest_mpplaybackdata.h \
+ stub/inc/thumbnailmanager_qt.h \
+ ../../inc/mpplaybackdata.h
+
+
+SOURCES += src/unittest_mpplaybackdata.cpp \
+ ../../src/mpplaybackdata.cpp \
+ stub/src/thumbnailmanager_qt.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/inc/unittest_mpplaybackviewplugin.h Fri Apr 16 14:56:30 2010 +0300
@@ -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 MpPlaybackViewPlugin
+*
+*/
+
+#ifndef TESTMPPLAYBACKVIEWPLUGIN_H
+#define TESTMPPLAYBACKVIEWPLUGIN_H
+
+#include <QtTest/QtTest>
+
+class MpPlaybackViewPlugin;
+
+class TestMpPlaybackViewPlugin : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ TestMpPlaybackViewPlugin();
+ virtual ~TestMpPlaybackViewPlugin();
+
+signals:
+
+
+public slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void testConstructor();
+ void testCreateView();
+ void testdestroyView();
+ void testActivateView();
+ void testDeactivateView();
+ void testGetView();
+private:
+
+ MpPlaybackViewPlugin *mTest;
+
+};
+
+#endif // TESTMPPLAYBACKVIEWPLUGIN_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/src/unittest_mpplaybackviewplugin.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,247 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 MpPlaybackViewPlugin
+*
+*/
+
+#include <QSignalSpy>
+#include <qnamespace.h>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbInstance.h>
+
+#include "unittest_mpplaybackviewplugin.h"
+#include "stub/inc/mpplaybackview.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpplaybackviewplugin.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;
+ TestMpPlaybackViewPlugin tv;
+
+ 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;
+}
+
+TestMpPlaybackViewPlugin::TestMpPlaybackViewPlugin()
+ : mTest(0)
+{
+}
+
+TestMpPlaybackViewPlugin::~TestMpPlaybackViewPlugin()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpPlaybackViewPlugin::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpPlaybackViewPlugin::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpPlaybackViewPlugin::init()
+{
+ mTest = new MpPlaybackViewPlugin();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpPlaybackViewPlugin::cleanup()
+{
+ delete mTest;
+ mTest = 0;
+}
+
+/*!
+ testConstructor
+ */
+void TestMpPlaybackViewPlugin::testConstructor()
+{
+ QVERIFY(!mTest->mView);
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::NullView);
+}
+
+/*!
+ testCreateView
+ */
+void TestMpPlaybackViewPlugin::testCreateView()
+{
+ mTest->createView();
+ QVERIFY(mTest->mView);
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::Created);
+ QSignalSpy spy( mTest, SIGNAL(command(int)) );
+ mTest->mView->emitCommand(123);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0), QVariant(123));
+
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+
+/*!
+ testdestroyView
+ */
+void TestMpPlaybackViewPlugin::testdestroyView()
+{
+ mTest->mView = new MpPlaybackView();
+ mTest->mState = MpPlaybackViewPlugin::Created;
+ mTest->destroyView();
+ QVERIFY(!mTest->mView);
+ mTest->mView = new MpPlaybackView();
+ mTest->mState = MpPlaybackViewPlugin::NullView;
+ mTest->destroyView();
+ QVERIFY(mTest->mView);
+
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+/*!
+ testActivateView
+ */
+void TestMpPlaybackViewPlugin::testActivateView()
+{
+ mTest->mState = MpPlaybackViewPlugin::NullView;
+ mTest->activateView(); // we should be able to call activate without a view and not crash.
+
+
+ mTest->mView = new MpPlaybackView();
+ mTest->mState = MpPlaybackViewPlugin::NullView;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::NullView);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpPlaybackViewPlugin::Activated;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::Activated);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpPlaybackViewPlugin::Created;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::Activated);
+ QCOMPARE(mTest->mView->mInitializeViewCount,1);
+ QCOMPARE(mTest->mView->mActivateViewCount,1);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpPlaybackViewPlugin::Initialized;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::Activated);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,1);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+/*!
+ testDeactivateView
+ */
+void TestMpPlaybackViewPlugin::testDeactivateView()
+{
+ mTest->mState = MpPlaybackViewPlugin::NullView;
+ mTest->deactivateView(); // we should be able to call deactivate without a view and not crash.
+
+ mTest->mView = new MpPlaybackView();
+ mTest->mState = MpPlaybackViewPlugin::NullView;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::NullView);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpPlaybackViewPlugin::Activated;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::Initialized);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,1);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpPlaybackViewPlugin::Created;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::Created);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpPlaybackViewPlugin::Initialized;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpPlaybackViewPlugin::Initialized);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+void TestMpPlaybackViewPlugin::testGetView()
+{
+ MpPlaybackView* tmpView;
+ mTest->mView = new MpPlaybackView();
+ tmpView = mTest->mView;
+ mTest->getView();
+ QCOMPARE(int(tmpView),int(mTest->getView()));
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/stub/inc/mpplaybackview.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MpPlaybackView stub for testing MpPlaybackViewPlugin
+*
+*/
+
+#ifndef MPPLAYBACKVIEW_H
+#define MPPLAYBACKVIEW_H
+
+//includes
+#include <QGraphicsWidget>
+
+class MpPlaybackView : public QGraphicsWidget
+{
+ Q_OBJECT
+
+public:
+ explicit MpPlaybackView();
+ virtual ~MpPlaybackView();
+
+ void initializeView();
+ void activateView();
+ void deactivateView();
+
+ void emitCommand(int cmd);
+ void resetCounters();
+
+signals:
+ void command(int cmd);
+
+public:
+ int mInitializeViewCount;
+ int mActivateViewCount;
+ int mDeactivateViewCount;
+
+};
+
+#endif // MPPLAYBACKVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/stub/src/mpplaybackview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: MpPlaybackView stub for testing MpPlaybackViewplugin
+*
+*/
+
+#include "stub/inc/mpplaybackview.h"
+
+
+/*!
+ Constructs the MpPlaybackView stub
+ */
+MpPlaybackView::MpPlaybackView()
+ :mInitializeViewCount(0),
+ mActivateViewCount(0),
+ mDeactivateViewCount (0)
+{
+}
+
+/*!
+ Destructs the MpPlaybackView stub
+ */
+MpPlaybackView::~MpPlaybackView()
+{
+}
+
+/*!
+ Initializes the MpPlaybackView stub
+ */
+void MpPlaybackView::initializeView()
+{
+ mInitializeViewCount++;
+}
+
+/*!
+ Activates the MpPlaybackView stub
+ */
+void MpPlaybackView::activateView()
+{
+ mActivateViewCount++;
+}
+
+/*!
+ Deactivates the MpPlaybackView stub
+ */
+void MpPlaybackView::deactivateView()
+{
+ mDeactivateViewCount++;
+}
+
+void MpPlaybackView::resetCounters()
+{
+ mInitializeViewCount = 0;
+ mActivateViewCount = 0;
+ mDeactivateViewCount = 0;
+}
+
+/*!
+ emits the signal command
+ */
+void MpPlaybackView::emitCommand(int cmd)
+{
+ emit command(cmd);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackviewplugin/unittest_mpplaybackviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+TEMPLATE = app
+CONFIG += qtestlib hb
+TARGET =
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+ ../../inc \
+ ../../../../inc
+
+
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lmpxviewframeworkqt.dll
+
+HEADERS += inc/unittest_mpplaybackviewplugin.h \
+ ../../inc/mpplaybackviewplugin.h \
+ stub/inc/mpplaybackview.h
+
+SOURCES += src/unittest_mpplaybackviewplugin.cpp \
+ ../../src/mpplaybackviewplugin.cpp \
+ stub/src/mpplaybackview.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpmpxasframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpmpxasframeworkwrapper_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsaudioeffectswidget.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player audio effect view.
+*
+*/
+
+#ifndef MPSETTINGSAUDIOEFFECTSWIDGET_H
+#define MPSETTINGSAUDIOEFFECTSWIDGET_H
+
+
+// INCLUDES
+#include <qobject>
+#include <hbwidget.h>
+#include <hbdataform.h>
+#include <hbdataformmodel.h>
+
+// CLASS DECLARATION
+class MpMpxAsFrameworkWrapper;
+class HbSlider;
+
+/**
+ * Audio Effects widget definition.
+ *
+ */
+class MpSettingsAudioEffectsWidget : public HbWidget
+ {
+ Q_OBJECT
+
+public:
+ explicit MpSettingsAudioEffectsWidget( QGraphicsItem *parent=0 );
+ virtual ~MpSettingsAudioEffectsWidget();
+
+ void initialize();
+
+public slots:
+
+ void filterSignals( QModelIndex startIn, QModelIndex endIn );
+
+private:
+
+ MpMpxAsFrameworkWrapper *mFrameworkWrapper;
+ HbDataFormModel *mModel;
+ };
+
+#endif // MPSETTINGSAUDIOEFFECTSWIDGET_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsview.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: Music Player Settings view.
+*
+*/
+
+#ifndef MPSETTINGSVIEW_H
+#define MPSETTINGSVIEW_H
+
+#include <hbview.h>
+
+
+class HbAction;
+class HbMainWindow;
+class MpSettingsAudioEffectsWidget;
+
+//class declaration
+class MpSettingsView : public HbView
+{
+ Q_OBJECT
+
+public:
+ explicit MpSettingsView();
+ virtual ~MpSettingsView();
+
+ void initializeView();
+ void activateView();
+ void deactivateView();
+
+signals:
+ void command( int aCommand );
+
+public slots:
+ void back();
+
+private:
+ HbMainWindow *mWindow; // not own
+ HbAction *mSoftKeyBack; // own
+ MpSettingsAudioEffectsWidget *mAudioEffectsWidget; // not own
+
+ Q_DISABLE_COPY(MpSettingsView)
+};
+
+
+#endif //MPSETTINGSVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/inc/mpsettingsviewplugin.h Fri Apr 16 14:56:30 2010 +0300
@@ -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 playback view.
+*
+*/
+
+#ifndef MPSETTINGSVIEWPLUGIN_H
+#define MPSETTINGSVIEWPLUGIN_H
+
+#include <qobject>
+#include <mpxviewpluginqt.h>
+
+//forward declartions
+class MpSettingsView;
+
+//class declaration
+class MpSettingsViewPlugin : public MpxViewPlugin
+{
+ Q_OBJECT
+
+public:
+ explicit MpSettingsViewPlugin();
+ virtual ~MpSettingsViewPlugin();
+
+ 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 };
+ MpSettingsView *mView; //owned
+ State mState;
+};
+
+#endif // MPSETTINGSVIEWPLUGIN_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/mpsettingsviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+symbian:TARGET.UID3 = 0x10207C66
+
+TEMPLATE = lib
+CONFIG += hb qt ecomplugin
+TARGET = mpsettingsviewplugin
+
+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
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+LIBS += -lmpxplaybackutility.dll \
+ -lestor.dll \
+ -lmpxviewframeworkqt.dll
+
+symbian:TARGET.EPOCALLOWDLLDATA = 1
+
+HEADERS += inc/mpsettingsviewplugin.h \
+ inc/mpsettingsview.h \
+ inc/mpsettingsaudioeffectswidget.h \
+ inc/mpmpxasframeworkwrapper.h \
+ inc/mpmpxasframeworkwrapper_p.h
+
+
+SOURCES += src/mpsettingsviewplugin.cpp \
+ src/mpsettingsview.cpp \
+ src/mpsettingsaudioeffectswidget.cpp \
+ src/mpmpxasframeworkwrapper.cpp \
+ src/mpmpxasframeworkwrapper_p.cpp
+
+
+RESOURCES += resources/mpsettingsview.qrc
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/resources/mpsettingsview.qrc Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,8 @@
+<RCC>
+
+
+ <qresource prefix="/settingsviewdocml" >
+ <file alias="settingsview.docml">settingsview.docml</file>
+ </qresource>
+
+</RCC>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/rom/mpsettingsviewplugin.iby Fri Apr 16 14:56:30 2010 +0300
@@ -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 MPSETTINGSVIEWPLUGIN_IBY
+#define MPSETTINGSVIEWPLUGIN_IBY
+
+#include <bldvariant.hrh>
+
+ECOM_PLUGIN( mpsettingsviewplugin.dll, mpsettingsviewplugin.rsc )
+
+#endif //MPPLAYBACKVIEWPLUGIN_IBY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/rom/rom.pri Fri Apr 16 14:56:30 2010 +0300
@@ -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/mpsettingsviewplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mpsettingsviewplugin.iby)"
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/src/mpmpxasframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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 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
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/src/mpmpxasframeworkwrapper_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,185 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary( -ies ).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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();
+}
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/src/mpsettingsaudioeffectswidget.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,129 @@
+/*
+* Copyright ( c ) 2009 Nokia Corporation and/or its subsidiary( -ies ).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 audio effect view.
+*
+*/
+
+// System includes
+#include <hbslider.h>
+#include <hbstackedlayout.h>
+#include <hbdataformmodel.h>
+
+// User includes
+#include "mpsettingsaudioeffectswidget.h"
+#include "mpmpxasframeworkwrapper.h"
+#include "mptrace.h"
+
+
+
+/*!
+ \class MpSettingsAudioEffectsWidget
+ \brief This class to set up UI widgets for audio effect settings view.
+
+ Audio Effects widgets allow user to configure settings for Dolby,
+ Balance and Loudness.
+
+*/
+
+
+/*!
+ Constructs a new MpSettingsAudioEffectsWidget with \a parent.
+*/
+MpSettingsAudioEffectsWidget::MpSettingsAudioEffectsWidget( QGraphicsItem *parent )
+ : HbWidget( parent ),
+ mFrameworkWrapper( 0 )
+{
+ TX_LOG
+}
+
+/*!
+ Destructs the widget.
+ */
+MpSettingsAudioEffectsWidget::~MpSettingsAudioEffectsWidget()
+{
+ delete mFrameworkWrapper;
+ delete mModel;
+ TX_LOG
+}
+
+/*!
+ Initialize the widget.
+*/
+void MpSettingsAudioEffectsWidget::initialize()
+{
+ TX_ENTRY
+
+ mFrameworkWrapper = new MpMpxAsFrameworkWrapper();
+
+ //create data form
+ HbDataForm *dataForm = new HbDataForm();
+
+ //create a model class
+ mModel = new HbDataFormModel();
+ HbDataFormModelItem * slider;
+ HbDataFormModelItem *loudnessItem;
+ slider = mModel->appendDataFormItem( HbDataFormModelItem::SliderItem, hbTrId( "txt_mus_setlabel_balance" ), mModel->invisibleRootItem() );
+ loudnessItem = mModel->appendDataFormItem( HbDataFormModelItem::ToggleValueItem, hbTrId( "txt_mus_setlabel_loudness" ), mModel->invisibleRootItem() );
+ slider->setContentWidgetData( QString( "minimum" ),-100 );
+ slider->setContentWidgetData( QString( "maximum" ),100 );
+ slider->setContentWidgetData( QString( "majorTickInterval" ),100 );
+ slider->setContentWidgetData( QString( "minorTickInterval" ),25 );
+ slider->setContentWidgetData( QString( "singleStep" ),25 );
+ slider->setContentWidgetData( QString( "toolTipVisible" ), false );
+ slider->setContentWidgetData( QString( "tickPosition" ), Hb::SliderTicksRight );
+ slider->setContentWidgetData( QString( "sliderPosition" ),mFrameworkWrapper->balance() );
+ if ( mFrameworkWrapper->loudness() == true ) {
+ loudnessItem->setContentWidgetData( QString( "text" ), hbTrId( "txt_mus_setlabel_loudness_val_on" ) );
+ loudnessItem->setContentWidgetData( QString( "additionalText" ), hbTrId( "txt_mus_setlabel_loudness_val_off" ) );
+ }
+ else {
+ loudnessItem->setContentWidgetData( QString( "text" ), hbTrId( "txt_mus_setlabel_loudness_val_off" ) );
+ loudnessItem->setContentWidgetData( QString( "additionalText" ), hbTrId( "txt_mus_setlabel_loudness_val_on" ) );
+ }
+
+ dataForm->setModel( mModel );
+ dataForm->setParentItem( this );
+ HbStackedLayout *mylayout;
+ mylayout = new HbStackedLayout( this );
+ mylayout->setContentsMargins( 0.0, 0.0, 0.0, 0.0 );
+ mylayout->setMinimumSize( 0.0, 0.0 );
+ mylayout->addItem( dataForm );
+ setLayout( mylayout );
+ dataForm->addConnection( slider, SIGNAL( valueChanged( int ) ),
+ mFrameworkWrapper, SLOT( setBalance( int ) ) );
+ connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( filterSignals( QModelIndex, QModelIndex ) ) );
+
+ TX_EXIT
+}
+
+void MpSettingsAudioEffectsWidget::filterSignals( QModelIndex startIn, QModelIndex endIn )
+{
+ Q_UNUSED( endIn );
+ HbDataFormModelItem *itm = mModel->itemFromIndex( startIn );
+ 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 );
+ }
+ else if( itm->contentWidgetData( QString( "text" ) ).toString() == hbTrId( "txt_mus_setlabel_loudness_val_off" ) ) {
+ mFrameworkWrapper->setLoudness( false );
+ }
+ else {
+ TX_LOG_ARGS( "Error: should never get here." );
+ }
+ }
+ }
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/src/mpsettingsview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 <hbmainwindow.h>
+#include <hbaction.h>
+#include <mpxaudioeffectproperties.h>
+#include <hbapplication.h>
+#include <QTranslator>
+#include <QLocale>
+
+#include "mpsettingsview.h"
+#include "mpsettingsaudioeffectswidget.h"
+#include "mpcommondefs.h"
+#include "mptrace.h"
+
+/*!
+ \class MpSettingsView
+ \brief Music Player Settings view.
+
+ Music player audio settings and audio effects are grouped under this 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 settings view.
+ */
+MpSettingsView::MpSettingsView()
+ : mWindow(0),
+ mSoftKeyBack(0),
+ mAudioEffectsWidget(0)
+{
+ TX_LOG
+}
+
+/*!
+ Destructs the settings view.
+ */
+MpSettingsView::~MpSettingsView()
+{
+ TX_ENTRY
+ delete mSoftKeyBack;
+ TX_EXIT
+}
+
+/*!
+ Initializes the settings view.
+ */
+void MpSettingsView::initializeView()
+{
+ 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();
+ setTitle(hbTrId("txt_mus_title_music"));
+ mSoftKeyBack = new HbAction(Hb::BackAction, this);
+ mAudioEffectsWidget = new MpSettingsAudioEffectsWidget(this);
+ mAudioEffectsWidget->initialize();
+ setWidget( mAudioEffectsWidget );
+
+ connect( mSoftKeyBack,
+ SIGNAL(triggered()),
+ this,
+ SLOT(back()) );
+
+ connect( mSoftKeyBack,
+ SIGNAL(triggered()),
+ mAudioEffectsWidget,
+ SLOT(persistBalance()) );
+ TX_EXIT
+}
+
+/*!
+ Activates the settings view.
+ */
+void MpSettingsView::activateView()
+{
+ TX_ENTRY
+ setNavigationAction( mSoftKeyBack );
+ TX_EXIT
+}
+
+/*!
+ Deactivates the settings view.
+ */
+void MpSettingsView::deactivateView()
+{
+ TX_ENTRY
+ setNavigationAction( 0 );
+ TX_EXIT
+}
+
+/*!
+ Slot to handle back command from softkey.
+ */
+void MpSettingsView::back()
+{
+ TX_ENTRY
+ emit command( MpCommon::ActivatePlaybackView );
+ TX_EXIT
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/src/mpsettingsviewplugin.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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 settings view.
+*
+*/
+
+#include <xqplugin.h>
+
+#include "mpsettingsviewplugin.h"
+#include "mpsettingsview.h"
+#include "mptrace.h"
+
+/*!
+ \class MpSettingsViewPlugin
+ \brief Plugin interface for Music Player settings view.
+
+ settings view plugin provides interface to the settings 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 settings view plugin.
+ */
+MpSettingsViewPlugin::MpSettingsViewPlugin()
+ : mView(0),
+ mState(NullView)
+{
+ TX_LOG
+}
+
+/*!
+ Destructs the settings view plugin.
+ */
+MpSettingsViewPlugin::~MpSettingsViewPlugin()
+{
+ TX_LOG
+}
+
+/*!
+ Creates the settings view.
+ */
+void MpSettingsViewPlugin::createView()
+{
+ TX_ENTRY
+ if ( mState == NullView ) {
+ mView = new MpSettingsView();
+ connect( mView, SIGNAL(command(int)), this, SIGNAL(command(int)) );
+ mState = Created;
+ }
+ TX_EXIT
+}
+
+/*!
+ Destroys the settings view.
+ */
+void MpSettingsViewPlugin::destroyView()
+{
+ TX_ENTRY
+ if ( mState != NullView ) {
+ delete mView;
+ mView = 0;
+ mState = NullView;
+ }
+ TX_EXIT
+}
+
+/*!
+ Activates the settings view. View initialization is done very first time.
+ */
+void MpSettingsViewPlugin::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 settings view.
+ */
+void MpSettingsViewPlugin::deactivateView()
+{
+ TX_ENTRY
+ if ( mState == Activated ) {
+ mView->deactivateView();
+ mState = Initialized;
+ }
+ TX_EXIT
+}
+
+/*!
+ Returns pointer to QGraphicsWidget, which is the settings view.
+ The returned pointer is 0, if it is not created first.
+
+ \sa createView()
+ */
+QGraphicsWidget* MpSettingsViewPlugin::getView()
+{
+ TX_LOG
+ return mView;
+}
+
+/*!
+ Slot to be called when application orientation changes.
+
+ \reimp
+ */
+void MpSettingsViewPlugin::orientationChange( Qt::Orientation orientation )
+{
+ TX_LOG
+ Q_UNUSED(orientation);
+}
+
+/*!
+ Slot to handle back command from softkey.
+
+ \reimp
+ */
+void MpSettingsViewPlugin::back()
+{
+ //do nothing, softkey is handledinternally by the view.
+ TX_LOG
+}
+
+XQ_EXPORT_PLUGIN2( mpsettingsviewplugin, MpSettingsViewPlugin );
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/inc/unittest_mpmpxasframeworkwrapper.h Fri Apr 16 14:56:30 2010 +0300
@@ -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 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 testSetBalance();
+ void testPersistBalance();
+
+private:
+
+ MpMpxAsFrameworkWrapper *mTest;
+ MpMpxAsFrameworkWrapperPrivate *mTestPrivate;
+
+};
+
+#endif // TESTMPMPXASFRAMEWORKWRAPPER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/src/unittest_mpmpxasframeworkwrapper.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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);
+}
+
+/*!
+ test balance
+ */
+void TestMpMpxAsFrameworkWrapper::testBalance()
+{
+ for(TInt i = -10; i < 10; i++){
+ mTest->persistBalance(i);
+ QCOMPARE(mTestPrivate->iAudioEffectProperties->iBalance, i);
+ QCOMPARE(mTestPrivate->iAudioEffectProperties->iSaveToFile, TBool(ETrue));
+ mTestPrivate->iAudioEffectProperties->iSaveToFile = EFalse;
+ QCOMPARE(mTest->balance(), i);
+ QCOMPARE(mTestPrivate->iAudioEffectProperties->iLoadFromFile, TBool(ETrue));
+ mTestPrivate->iAudioEffectProperties->iLoadFromFile = EFalse;
+ }
+ mTestPrivate->iAudioEffectProperties->iLeave = ETrue;
+ QCOMPARE(mTest->balance(),0);
+}
+
+
+/*!
+ 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);
+ }
+}
+
+/*!
+ test persistBalance
+ */
+void TestMpMpxAsFrameworkWrapper::testPersistBalance()
+{
+ for(TInt i = -10; i < 10; i++){
+ mTest->persistBalance(i);
+ QCOMPARE(mTestPrivate->iAudioEffectProperties->iBalance, i);
+ QCOMPARE(mTestPrivate->iAudioEffectProperties->iSaveToFile, TBool(ETrue));
+ mTestPrivate->iAudioEffectProperties->iSaveToFile = EFalse;
+ }
+}
+
+
+// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/inc/mpxaudioeffectproperties.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* 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();
+ void SetBalance(TInt aBalance);
+ void Reset();
+ void SaveToFileL();
+ void LoadFromFileL();
+
+public:
+
+ TInt iBalance;
+ TBool iLoadFromFile;
+ TBool iSaveToFile;
+ TBool iLeave;
+};
+
+#endif // CMPXAUDIOEFFECTPROPERTIES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/inc/mpxplaybackutility.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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);
+
+public:
+ TInt iBalance;
+ TMPXPlaybackProperty iProperty;
+
+};
+
+#endif // MMPXPLAYBACKUTILITY_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/src/mpxaudioeffectproperties.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,91 @@
+/*
+* 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),
+ iLoadFromFile(EFalse),
+ iSaveToFile(EFalse),
+ iLeave(EFalse)
+{
+}
+
+/*!
+ Stub function.
+*/
+CMPXAudioEffectProperties::~CMPXAudioEffectProperties()
+{
+}
+
+/*!
+ Stub function.
+*/
+TInt CMPXAudioEffectProperties::Balance()
+{
+ return iBalance;
+}
+
+/*!
+ Stub function.
+*/
+void CMPXAudioEffectProperties::SetBalance(TInt aBalance)
+{
+ iBalance = aBalance;
+}
+
+/*!
+ Stub function.
+*/
+void CMPXAudioEffectProperties::Reset()
+{
+ MPX_DEBUG1("CMPXAudioEffectProperties::Reset");
+ iBalance = 0;
+}
+
+/*!
+ 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){
+ User::Leave(KErrNotFound);
+ }else{
+ iLoadFromFile = ETrue;
+ }
+ MPX_DEBUG1("CMPXAudioEffectProperties::LoadFromFileL --->");
+}
+
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/stub/src/mpxplaybackutility.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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():iProperty(EPbPropertyVolume),
+ iBalance(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::Close()
+{
+}
+
+/*!
+ Stub function.
+*/
+void MMPXPlaybackUtility::SetL(TMPXPlaybackProperty aProperty, TInt aValue)
+{
+ iProperty = aProperty;
+ iBalance = aValue;
+}
+
+//end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpmpxasframeworkwrapper/unittest_mpmpxasframeworkwrapper.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+TEMPLATE = app
+CONFIG += qtestlib hb
+TARGET =
+
+DEPENDPATH += .
+INCLUDEPATH += . \
+ ../../inc \
+ ../../../../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
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/inc/unittest_mpsettingsviewplugin.h Fri Apr 16 14:56:30 2010 +0300
@@ -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 MpSettingsViewPlugin
+*
+*/
+
+#ifndef TESTMPMPSETTINGSVIEWPLUGIN_H
+#define TESTMPMPSETTINGSVIEWPLUGIN_H
+
+#include <QtTest/QtTest>
+
+class MpSettingsViewPlugin;
+
+class TestMpSettingsViewPlugin : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ TestMpSettingsViewPlugin();
+ virtual ~TestMpSettingsViewPlugin();
+
+signals:
+
+
+public slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void testConstructor();
+ void testCreateView();
+ void testdestroyView();
+ void testActivateView();
+ void testDeactivateView();
+ void testGetView();
+private:
+
+ MpSettingsViewPlugin *mTest;
+
+};
+
+#endif // TESTMPMPSETTINGSVIEWPLUGIN_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/src/unittest_mpsettingsviewplugin.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,247 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 MpSettingsViewPlugin
+*
+*/
+
+#include <QSignalSpy>
+#include <qnamespace.h>
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbInstance.h>
+
+#include "unittest_mpsettingsviewplugin.h"
+#include "stub/inc/mpsettingsview.h"
+
+
+// Do this so we can access all member variables.
+#define private public
+#include "mpsettingsviewplugin.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;
+ TestMpSettingsViewPlugin tv;
+
+ 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;
+}
+
+TestMpSettingsViewPlugin::TestMpSettingsViewPlugin()
+ : mTest(0)
+{
+}
+
+TestMpSettingsViewPlugin::~TestMpSettingsViewPlugin()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpSettingsViewPlugin::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpSettingsViewPlugin::cleanupTestCase()
+{
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpSettingsViewPlugin::init()
+{
+ mTest = new MpSettingsViewPlugin();
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpSettingsViewPlugin::cleanup()
+{
+ delete mTest;
+ mTest = 0;
+}
+
+/*!
+ testConstructor
+ */
+void TestMpSettingsViewPlugin::testConstructor()
+{
+ QVERIFY(!mTest->mView);
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::NullView);
+}
+
+/*!
+ testCreateView
+ */
+void TestMpSettingsViewPlugin::testCreateView()
+{
+ mTest->createView();
+ QVERIFY(mTest->mView);
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::Created);
+ QSignalSpy spy( mTest, SIGNAL(command(int)) );
+ mTest->mView->emitCommand(123);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0), QVariant(123));
+
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+
+/*!
+ testdestroyView
+ */
+void TestMpSettingsViewPlugin::testdestroyView()
+{
+ mTest->mView = new MpSettingsView();
+ mTest->mState = MpSettingsViewPlugin::Created;
+ mTest->destroyView();
+ QVERIFY(!mTest->mView);
+ mTest->mView = new MpSettingsView();
+ mTest->mState = MpSettingsViewPlugin::NullView;
+ mTest->destroyView();
+ QVERIFY(mTest->mView);
+
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+/*!
+ testActivateView
+ */
+void TestMpSettingsViewPlugin::testActivateView()
+{
+ mTest->mState = MpSettingsViewPlugin::NullView;
+ mTest->activateView(); // we should be able to call activate without a view and not crash.
+
+
+ mTest->mView = new MpSettingsView();
+ mTest->mState = MpSettingsViewPlugin::NullView;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::NullView);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpSettingsViewPlugin::Activated;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::Activated);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpSettingsViewPlugin::Created;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::Activated);
+ QCOMPARE(mTest->mView->mInitializeViewCount,1);
+ QCOMPARE(mTest->mView->mActivateViewCount,1);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpSettingsViewPlugin::Initialized;
+ mTest->activateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::Activated);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,1);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+/*!
+ testDeactivateView
+ */
+void TestMpSettingsViewPlugin::testDeactivateView()
+{
+ mTest->mState = MpSettingsViewPlugin::NullView;
+ mTest->deactivateView(); // we should be able to call deactivate without a view and not crash.
+
+ mTest->mView = new MpSettingsView();
+ mTest->mState = MpSettingsViewPlugin::NullView;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::NullView);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpSettingsViewPlugin::Activated;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::Initialized);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,1);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpSettingsViewPlugin::Created;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::Created);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ mTest->mView->resetCounters();
+ mTest->mState = MpSettingsViewPlugin::Initialized;
+ mTest->deactivateView();
+ QCOMPARE(mTest->mState, MpSettingsViewPlugin::Initialized);
+ QCOMPARE(mTest->mView->mInitializeViewCount,0);
+ QCOMPARE(mTest->mView->mActivateViewCount,0);
+ QCOMPARE(mTest->mView->mDeactivateViewCount,0);
+
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+void TestMpSettingsViewPlugin::testGetView()
+{
+ MpSettingsView* tmpView;
+ mTest->mView = new MpSettingsView();
+ tmpView = mTest->mView;
+ mTest->getView();
+ QCOMPARE(int(tmpView),int(mTest->getView()));
+ delete mTest->mView;
+ //mTest->mView = 0; intentionally not = 0 to prevent unecesary double delete.
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/stub/inc/mpsettingsview.h Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MpNowPlayingWidget stub for testing MpCollectionDocumentLoader
+*
+*/
+
+#ifndef MPSETTINGSVIEW_H
+#define MPSETTINGSVIEW_H
+
+//includes
+#include <QGraphicsWidget>
+
+class MpSettingsView : public QGraphicsWidget
+{
+ Q_OBJECT
+
+public:
+ explicit MpSettingsView();
+ virtual ~MpSettingsView();
+
+ void initializeView();
+ void activateView();
+ void deactivateView();
+
+ void emitCommand(int cmd);
+ void resetCounters();
+
+signals:
+ void command(int cmd);
+
+public:
+ int mInitializeViewCount;
+ int mActivateViewCount;
+ int mDeactivateViewCount;
+
+};
+
+#endif // MPSETTINGSVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/stub/src/mpsettingsview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -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: MpSettingsView stub for testing MpSettingsViewplugin
+*
+*/
+
+#include "stub/inc/mpsettingsview.h"
+
+
+/*!
+ Constructs the MpSettingsView stub
+ */
+MpSettingsView::MpSettingsView()
+ :mInitializeViewCount(0),
+ mActivateViewCount(0),
+ mDeactivateViewCount (0)
+{
+}
+
+/*!
+ Destructs the MpSettingsView stub
+ */
+MpSettingsView::~MpSettingsView()
+{
+}
+
+/*!
+ Initializes the MpSettingsView stub
+ */
+void MpSettingsView::initializeView()
+{
+ mInitializeViewCount++;
+}
+
+/*!
+ Activates the MpSettingsView stub
+ */
+void MpSettingsView::activateView()
+{
+ mActivateViewCount++;
+}
+
+/*!
+ Deactivates the MpSettingsView stub
+ */
+void MpSettingsView::deactivateView()
+{
+ mDeactivateViewCount++;
+}
+
+void MpSettingsView::resetCounters()
+{
+ mInitializeViewCount = 0;
+ mActivateViewCount = 0;
+ mDeactivateViewCount = 0;
+}
+
+/*!
+ emits the signal command
+ */
+void MpSettingsView::emitCommand(int cmd)
+{
+ emit command(cmd);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpviewplugins/mpsettingsviewplugin/tsrc/unittest_mpsettingsviewplugin/unittest_mpsettingsviewplugin.pro Fri Apr 16 14:56:30 2010 +0300
@@ -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:
+#
+
+TEMPLATE = app
+CONFIG += qtestlib hb
+TARGET =
+
+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
--- a/mpviewplugins/mpviewplugins.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/mpviewplugins/mpviewplugins.pro Fri Apr 16 14:56:30 2010 +0300
@@ -16,6 +16,8 @@
TEMPLATE = subdirs
SUBDIRS = mpcollectionviewplugin \
- mpplaybackviewplugin
+ mpplaybackviewplugin \
+ mpsettingsviewplugin \
+ mpdetailsviewplugin
CONFIG += ordered
--- a/package_definition.xml Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
- <package id="musicplayer" name="Music Player Apps" levels="plugins support hs app">
- <collection id="musicvisualization" name="Music Visualization" level="plugins">
- <component id="musicvisualizationplugin" filter="s60" name="Music Visualization Plugin" class="plugin">
- <unit bldFile="musicvisualization/musicvisualizationplugin/group"/>
- </component>
- <component id="mpxvisualizationplugins" filter="s60" name="MPX Visualization Plugins" class="plugin">
- <unit bldFile="musicvisualization/mpxvisualizationplugins/group"/>
- </component>
- </collection>
- <collection id="mpxmusicplayer" name="MPX Music Player" level="app">
- <component id="mpxmusicplayer_help" filter="s60" name="Help">
- <unit bldFile="mpxmusicplayer/help/group"/>
- </component>
- <component id="mpxmusicplayer_commonui" filter="s60" name="MPX Common UI">
- <unit bldFile="mpxmusicplayer/commonui/group"/>
- </component>
- <component id="activeidle" filter="s60" name="MPX Active Idle">
- <unit bldFile="mpxmusicplayer/activeidle/group"/>
- </component>
- <component id="metadatahandler" filter="s60" name="MPX Metadata Handler">
- <unit bldFile="mpxmusicplayer/metadatahandler/group"/>
- </component>
- <component id="mediakeyhandler" filter="s60" name="MPX Media Key Handler">
- <unit bldFile="mpxmusicplayer/mediakeyhandler/group"/>
- </component>
- <component id="mpxmusicplayer_app" filter="s60" name="MPX Application">
- <unit bldFile="mpxmusicplayer/app/group"/>
- </component>
- <component id="mpxmusicplayer_build" filter="s60" name="MPX Music Player Build">
- <!-- can the exports be distributed to the above components? -->
- <unit bldFile="mpxmusicplayer/group"/>
- </component>
- </collection>
- <collection id="musichomescreen" name="Music Home Screen" level="hs">
- <component id="mpxcollectionpublisher" filter="s60" name="MPX Collection Publisher" introduced="^2">
- <unit bldFile="musichomescreen/mpxcollectionpublisher/group"/>
- </component>
- <component id="musiccontentpublisher" filter="s60" name="Music Content Publisher" introduced="^2">
- <unit bldFile="musichomescreen/musiccontentpublisher/group"/>
- </component>
- <component id="mcpmusicplayer" filter="s60" name="Music Player MCP Plugin" class="plugin" introduced="^2">
- <unit bldFile="musichomescreen/mcpmusicplayer/group"/>
- </component>
- <component id="musicplayeractionhandlerplugin" filter="s60" name="Music Player Action Handler Plugin" class="plugin" introduced="^2">
- <unit bldFile="musichomescreen/musicplayeractionhandlerplugin/group"/>
- </component>
- <component id="data" filter="s60" name="MPX Data" introduced="^2">
- <!-- does this make sense to be a component? should it just be #include from musichomescreen/group? -->
- <unit bldFile="musichomescreen/data/themes/default/group"/>
- </component>
- <component id="musichomescreen_build" filter="s60" name="Music Homescreen Build" introduced="^2">
- <unit bldFile="musichomescreen/group"/>
- </component>
- </collection>
- <collection id="mpxplugins" name="MPX Plugins" level="plugins">
- <component id="serviceplugins" filter="s60" name="MPX Service Plugins" class="plugin">
- <unit bldFile="mpxplugins/serviceplugins/group"/>
- </component>
- <component id="viewplugins" filter="s60" name="MPX View Plugins" class="plugin">
- <unit bldFile="mpxplugins/viewplugins/group"/>
- </component>
- <component id="mpxplugins_build" filter="s60" name="MPX Plugins Build">
- <!-- can the exports be distributed to the above components? -->
- <unit bldFile="mpxplugins/group"/>
- </component>
- </collection>
- <collection id="musicplayer_info" name="Music Player Apps Info" level="app">
- <component id="musicplayer_plat" filter="s60" name="Music Player Apps Platform Interfaces" class="api">
- <unit bldFile="musicplayer_plat/group"/>
- <!-- can only have one unit. Need to #include the rest from the above -->
- <unit bldFile="musicplayer_plat/mpx_music_player_app_api/tsrc/group"/>
- <unit bldFile="musicplayer_plat/mpx_music_player_commonui_api/tsrc/group"/>
- <unit bldFile="musicplayer_plat/mpx_music_player_media_key_handler_api/tsrc/group"/>
- <unit bldFile="musicplayer_plat/mpx_music_store_api/tsrc/group"/>
- <unit bldFile="musicplayer_plat/music_visualization_plugin_api/tsrc/group"/>
- </component>
- <component id="musicplayer_test" filter="s60" purpose="development" name="Music Player Apps Test">
- <!-- should this be uncommented? -->
- <!-- <unit bldFile="tsrc/group"/> -->
- </component>
- </collection>
- </package>
-</SystemDefinition>
--- a/qtmusicplayer.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/qtmusicplayer.pro Fri Apr 16 14:56:30 2010 +0300
@@ -19,22 +19,27 @@
symbian {
include(app/rom/rom.pri)
include(musicfetcher/rom/rom.pri)
+ include(mpengine/rom/rom.pri)
include(utilities/mpsettingsmanager/rom/rom.pri)
include(utilities/mpnowplayingbanner/rom/rom.pri)
include(mpviewplugins/mpcollectionviewplugin/rom/rom.pri)
include(mpviewplugins/mpplaybackviewplugin/rom/rom.pri)
+ include(mpviewplugins/mpsettingsviewplugin/rom/rom.pri)
+ include(mpviewplugins/mpdetailsviewplugin/rom/rom.pri)
include(mpserviceplugins/audioeffects/rom/rom.pri)
include(mpserviceplugins/localaudio/rom/rom.pri)
include(mpserviceplugins/mpxsqlitedbcommon/rom/rom.pri)
include(mpserviceplugins/mpxsqlitedbplugin/rom/rom.pri)
include(mpserviceplugins/mpxsqlitepodcastdbplugin/rom/rom.pri)
+ include(mpserviceplugins/mpxinmemoryplugin/rom/rom.pri)
include(mpserviceplugins/m3uplaylistplugin/rom/rom.pri)
-}
+ }
SUBDIRS = utilities \
- musicfetcher \
- app \
- mpviewplugins
+ musicfetcher \
+ app \
+ mpengine \
+ mpviewplugins
CONFIG += ordered
@@ -43,6 +48,7 @@
"./mpserviceplugins/mpxsqlitedbcommon/group/mpxsqlitedbcommon.mmp" \
"./mpserviceplugins/mpxsqlitedbplugin/group/mpxsqlitedbplugin.mmp" \
"./mpserviceplugins/mpxsqlitepodcastdbplugin/group/mpxsqlitepodcastdbplugin.mmp" \
+"./mpserviceplugins/mpxinmemoryplugin/group/mpxinmemoryplugin.mmp" \
"./mpserviceplugins/m3uplaylistplugin/group/mpxm3uplaylistparsers.mmp" \
"./mpserviceplugins/m3uplaylistplugin/group/mpxm3uplaylistplugin.mmp"
--- a/sis/musicplayer.pkg Fri Mar 19 09:28:13 2010 +0200
+++ b/sis/musicplayer.pkg Fri Apr 16 14:56:30 2010 +0300
@@ -51,4 +51,13 @@
"\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
--- a/tsrc/mpfetchertestapp/src/mpfetchertestappview.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/tsrc/mpfetchertestapp/src/mpfetchertestappview.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -44,7 +44,7 @@
void MpFetcherTestAppView::handleOk(const QVariant &result)
{
qDebug() << "MpFetcherTestAppView::handleOk";
-
+
if (!result.canConvert<QString>())
{
mErrorEdit->setText("Corrupt result");
@@ -54,7 +54,7 @@
mResultEdit->setText(result.value<QString>());
qDebug() << "MpFetcherTestAppView::handleOk" << ": result=" << result.value<QString>();
}
-
+
}
void MpFetcherTestAppView::handleError(int errorCode, const QString& errorMessage)
@@ -67,7 +67,7 @@
void MpFetcherTestAppView::createLayout()
{
qDebug() << "MpFetcherTestAppView::createLayout";
-
+
QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical);
if (layout)
@@ -77,7 +77,7 @@
if (topLayout)
{
topLayout->addStretch(5);
-
+
mResultEdit = new HbLineEdit;
HbLabel* label = new HbLabel("Result:");
if (mResultEdit && label)
@@ -86,7 +86,7 @@
mResultEdit->setMaxRows(5);
topLayout->addItem(mResultEdit);
}
-
+
mErrorCodeEdit = new HbLineEdit;
label = new HbLabel("Error code:");
if (mErrorCodeEdit && label)
@@ -94,7 +94,7 @@
topLayout->addItem(label);
topLayout->addItem(mErrorCodeEdit);
}
-
+
mErrorEdit = new HbLineEdit;
label = new HbLabel("Error description:");
if (mErrorEdit && label)
@@ -103,7 +103,7 @@
mErrorEdit->setMaxRows(5);
topLayout->addItem(mErrorEdit);
}
-
+
layout->addItem(topLayout);
layout->setStretchFactor(topLayout, 5);
}
@@ -129,17 +129,17 @@
void MpFetcherTestAppView::fetchSong()
{
qDebug() << "MpFetcherTestAppView::fetchSong START";
-
+
mResultEdit->setText("");
mErrorEdit->setText("");
mErrorCodeEdit->setText("");
-
+
if (!mReq)
{
mReq = mAppMgr.create("com.nokia.services.media.Music", "fetch(QString)", true);
-
+
qDebug() << "MpFetcherTestAppView::fetchSong: mReq=" << mReq;
-
+
if (!mReq)
{
mErrorEdit->setText("Failed to create REQ");
@@ -151,7 +151,7 @@
connect(mReq, SIGNAL(requestError(int,const QString&)), SLOT(handleError(int,const QString&)));
}
}
-
+
// Set arguments for request (application title)
QList<QVariant> args;
args << QVariant(QString("<app_name>"));
@@ -163,6 +163,6 @@
mErrorEdit->setText("Failed to send REQ");
qDebug() << "MpFetcherTestAppView::fetchSong: XQAiwRequest::send returned false";
}
-
+
qDebug() << "MpFetcherTestAppView::fetchSong END";
}
--- a/utilities/mpnowplayingbanner/bwins/mpnowplayingbanneru.def Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/bwins/mpnowplayingbanneru.def Fri Apr 16 14:56:30 2010 +0300
@@ -17,4 +17,5 @@
?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 *)
--- a/utilities/mpnowplayingbanner/eabi/mpnowplayingbanneru.def Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/eabi/mpnowplayingbanneru.def Fri Apr 16 14:56:30 2010 +0300
@@ -24,4 +24,5 @@
_ZThn8_N18MpNowPlayingWidgetD0Ev @ 23 NONAME
_ZThn8_N18MpNowPlayingWidgetD1Ev @ 24 NONAME
_ZN18MpNowPlayingWidget10setEnabledEb @ 25 NONAME
+ _ZN18MpNowPlayingWidget11changeEventEP6QEvent @ 26 NONAME
--- a/utilities/mpnowplayingbanner/inc/mpnowplayingwidget_p.h Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/inc/mpnowplayingwidget_p.h Fri Apr 16 14:56:30 2010 +0300
@@ -45,6 +45,8 @@
void setEnabled(bool enabled );
bool handleClickEvent( QGraphicsSceneMouseEvent *event );
+ void handleMousePressEvent(QGraphicsSceneMouseEvent *event, bool pressed);
+ void handleThemeChange();
public slots:
@@ -58,8 +60,10 @@
SimplifiedPlayerState mState;
MpNowPlayingBackEnd *mBackEnd;
- HbIcon *mPlayIcon;
- HbIcon *mPauseIcon;
+ HbIcon *mPlayIconNormal;
+ HbIcon *mPauseIconNormal;
+ HbIcon *mPlayIconPressed;
+ HbIcon *mPauseIconPressed;
HbLabel *mIcon;
HbDocumentLoader *mDocumentLoader;
--- a/utilities/mpnowplayingbanner/mpnowplayingbanner.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/mpnowplayingbanner.pro Fri Apr 16 14:56:30 2010 +0300
@@ -28,10 +28,7 @@
INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
LIBS += -lmpxplaybackutility.dll \
- -lmpxcommon.dll \
- -lhbcore \
- -lhbwidgets \
- -lhbtools
+ -lmpxcommon.dll
symbian:TARGET.EPOCALLOWDLLDATA = 1
--- a/utilities/mpnowplayingbanner/resources/mpnowplayingbanner.qrc Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/resources/mpnowplayingbanner.qrc Fri Apr 16 14:56:30 2010 +0300
@@ -2,8 +2,4 @@
<qresource prefix="/xml" >
<file alias="nowplaying.docml">nowplaying.docml</file>
</qresource>
- <qresource prefix="/icons" >
- <file alias="play.svg">play.svg</file>
- <file alias="pause.svg">pause.svg</file>
- </qresource>
</RCC>
--- a/utilities/mpnowplayingbanner/resources/pause.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="286.0996" y1="-178.7515" x2="432.2307" y2="-324.8826">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.5337" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M478.781-229.968c3.618-4.143,2.485-9.402-2.518-11.688l-65.002-29.698
- c-5.003-2.285-9.096,0.344-9.096,5.844v27.139c0,5.5-4.391,10.987-9.756,12.195l-44.821,10.084
- c-5.365,1.208-9.756-2.305-9.756-7.805v-72.109c0-5.5,4.441-9.274,9.869-8.387l75.262,12.303c5.428,0.887,9.869-2.887,9.869-8.387
- v-19.135c0-5.5-4.446-10.695-9.88-11.545l-113.24-17.712c-5.434-0.85-9.88,2.955-9.88,8.455v171.891
- c0,5.5,4.315,8.723,9.589,7.163l83.155-24.601c5.273-1.561,9.589,1.663,9.589,7.163v26.557c0,5.5,2.96,6.609,6.578,2.467
- L478.781-229.968z"/>
- </g>
-</g>
-<g id="Layer_2">
- <g>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="7.5273" y1="23.9521" x2="19.5779" y2="11.9016">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.5337" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M15.922,8.738H11.18c-0.654,0-1.186,0.531-1.186,1.185v16.006c0,0.654,0.531,1.186,1.186,1.186
- h4.742c0.655,0,1.187-0.531,1.187-1.186V9.923C17.108,9.269,16.577,8.738,15.922,8.738z"/>
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="16.4189" y1="23.9521" x2="28.4692" y2="11.9019">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.5337" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M24.814,8.738h-4.742c-0.654,0-1.186,0.531-1.186,1.185v16.006c0,0.654,0.531,1.186,1.186,1.186
- h4.742c0.654,0,1.186-0.531,1.186-1.186V9.923C26,9.269,25.469,8.738,24.814,8.738z"/>
- </g>
-</g>
-</svg>
--- a/utilities/mpnowplayingbanner/resources/play.svg Fri Mar 19 09:28:13 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px"
- height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
-<g id="Layer_1">
- <g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="286.0996" y1="-178.7515" x2="432.2307" y2="-324.8826">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.5337" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M478.781-229.968c3.618-4.143,2.485-9.402-2.518-11.688l-65.002-29.698
- c-5.003-2.285-9.096,0.344-9.096,5.844v27.139c0,5.5-4.391,10.987-9.756,12.195l-44.821,10.084
- c-5.365,1.208-9.756-2.305-9.756-7.805v-72.109c0-5.5,4.441-9.274,9.869-8.387l75.262,12.303c5.428,0.887,9.869-2.887,9.869-8.387
- v-19.135c0-5.5-4.446-10.695-9.88-11.545l-113.24-17.712c-5.434-0.85-9.88,2.955-9.88,8.455v171.891
- c0,5.5,4.315,8.723,9.589,7.163l83.155-24.601c5.273-1.561,9.589,1.663,9.589,7.163v26.557c0,5.5,2.96,6.609,6.578,2.467
- L478.781-229.968z"/>
- </g>
-</g>
-<g id="Layer_2">
- <g>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="8.7358" y1="23.3418" x2="19.5661" y2="12.5116">
- <stop offset="0" style="stop-color:#FFFFFF"/>
- <stop offset="0.5337" style="stop-color:#C4C4C4"/>
- <stop offset="1" style="stop-color:#FFFFFF"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M11.428,10.46c0-1.1,0.746-1.497,1.658-0.882l10.725,7.229c0.912,0.615,0.912,1.621,0,2.236
- l-10.725,7.229c-0.912,0.615-1.658,0.218-1.658-0.882V10.46z"/>
- </g>
-</g>
-</svg>
--- a/utilities/mpnowplayingbanner/src/mpnowplayingwidget.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/src/mpnowplayingwidget.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -19,6 +19,7 @@
#include <QGraphicsSceneMouseEvent>
#include <hbicon.h>
+#include <hbevent.h>
#include "mpnowplayingwidget.h"
#include "mpnowplayingwidget_p.h"
@@ -99,6 +100,8 @@
{
TX_ENTRY
if ( event->button() == Qt::LeftButton ) {
+ d_ptr->handleMousePressEvent( event, true );
+ update();
event->accept();
}
else {
@@ -114,6 +117,8 @@
{
TX_ENTRY
if ( event->button() == Qt::LeftButton ) {
+ d_ptr->handleMousePressEvent( event, false );
+ update();
if ( !d_ptr->handleClickEvent( event ) && rect().contains( event->pos() ) ) {
emit clicked();
}
@@ -125,3 +130,14 @@
TX_EXIT
}
+/*!
+ \reimp
+ */
+void MpNowPlayingWidget::changeEvent(QEvent *event)
+{
+ if (event->type() == HbEvent::ThemeChanged) {
+ d_ptr->handleThemeChange();
+ }
+ HbWidgetBase::changeEvent(event);
+}
+
--- a/utilities/mpnowplayingbanner/src/mpnowplayingwidget_p.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/src/mpnowplayingwidget_p.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -23,6 +23,7 @@
#include <hbiconitem.h>
#include <hbdocumentloader.h>
#include <hbinstance.h>
+#include <hbcolorscheme.h>
#include "mpnowplayingwidget_p.h"
#include "mpnowplayingwidget.h"
@@ -57,9 +58,20 @@
QGraphicsWidget *widget;
bool widgetsOk = false;
-
- mPlayIcon = new HbIcon( QString(":/icons/play.png"));
- mPauseIcon = new HbIcon( QString(":/icons/pause.png"));
+ //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") );
+
+ 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 );
mDocumentLoader = new HbDocumentLoader();
if (mDocumentLoader) {
@@ -75,10 +87,15 @@
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 );
+
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 );
+
widget = mDocumentLoader->findWidget(QString("playPause"));
mIcon = qobject_cast<HbLabel*>(widget);
@@ -107,8 +124,10 @@
{
TX_ENTRY
delete mBackEnd;
- delete mPlayIcon;
- delete mPauseIcon;
+ delete mPlayIconNormal;
+ delete mPauseIconNormal;
+ delete mPlayIconPressed;
+ delete mPauseIconPressed;
delete mDocumentLoader;
TX_EXIT
}
@@ -157,6 +176,66 @@
}
}
+/*!
+ \internal
+ Changes text and icon color when \a pressed
+ */
+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") );
+
+ if( mIcon->windowFrameGeometry().contains( event->pos() ) && pressed) {
+ if ( mState == Playing ) {
+ mIcon->setIcon( *mPauseIconPressed );
+ }
+ else {
+ mIcon->setIcon( *mPlayIconPressed );
+ }
+ }
+ else if( q_ptr->rect().contains( event->pos() ) && pressed ){
+ mPrimaryText->setTextColor( pressedColor );
+ mSecondaryText->setTextColor( pressedColor );
+ }
+ else {
+ mPrimaryText->setTextColor( normalColor );
+ mSecondaryText->setTextColor( normalColor );
+ if( mState == Playing){
+ mIcon->setIcon( *mPauseIconNormal );
+ }
+ else{
+ mIcon->setIcon( *mPlayIconNormal );
+ }
+ }
+}
+
+/*!
+ \internal
+ Handles theme change
+ */
+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") );
+
+ mPrimaryText->setTextColor( normalColor );
+ mSecondaryText->setTextColor( normalColor );
+ mPauseIconNormal->setColor( normalColor );
+ mPlayIconNormal->setColor( normalColor );
+ mPauseIconPressed->setColor( pressedColor );
+ mPlayIconPressed->setColor( pressedColor );
+
+ if( mState == Playing){
+ mIcon->setIcon( *mPauseIconNormal );
+ }
+ else{
+ mIcon->setIcon( *mPlayIconNormal );
+ }
+}
/*!
\internal
@@ -171,12 +250,12 @@
emit q_ptr->playbackAttachmentChanged( false );
break;
case Playing:
- mIcon->setIcon(*mPauseIcon);
+ mIcon->setIcon(*mPauseIconNormal);
if (mState == NotPlaying)
emit q_ptr->playbackAttachmentChanged( true );
break;
case Paused:
- mIcon->setIcon(*mPlayIcon);
+ mIcon->setIcon(*mPlayIconNormal);
if (mState == NotPlaying)
emit q_ptr->playbackAttachmentChanged( true );
break;
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/inc/unittest_mpnowplayingwidget.h Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/inc/unittest_mpnowplayingwidget.h Fri Apr 16 14:56:30 2010 +0300
@@ -49,6 +49,7 @@
void testTitleChange();
void testArtistChange();
void testSetEnabled();
+ void testThemeChange();
private:
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/src/unittest_mpnowplayingwidget.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/src/unittest_mpnowplayingwidget.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -22,9 +22,11 @@
#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 "mpcommondefs.h"
// Do this so we can access all member variables.
@@ -106,8 +108,10 @@
QVERIFY(mTestPrivate->mPrimaryText != 0);
QVERIFY(mTestPrivate->mSecondaryText != 0);
QVERIFY(mTestPrivate->mBackEnd != 0);
- QVERIFY(mTestPrivate->mPlayIcon != 0);
- QVERIFY(mTestPrivate->mPauseIcon != 0);
+ QVERIFY(mTestPrivate->mPlayIconNormal != 0);
+ QVERIFY(mTestPrivate->mPauseIconNormal != 0);
+ QVERIFY(mTestPrivate->mPlayIconPressed != 0);
+ QVERIFY(mTestPrivate->mPauseIconPressed != 0);
QVERIFY(mTestPrivate->mIcon != 0);
QVERIFY(mTestPrivate->mDocumentLoader != 0);
QCOMPARE(mTestPrivate->mState, NotPlaying);
@@ -217,4 +221,41 @@
QCOMPARE(mTestPrivate->mSecondaryText->plainText(), QString("Artist"));
}
+/*!
+ Tests ThemeChange.
+ */
+void TestMpNowPlayingWidget::testThemeChange()
+{
+
+ 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);
+
+ 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/stub/inc/hbcolorscheme.h Fri Apr 16 14:56:30 2010 +0300
@@ -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: 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/src/hbcolorscheme.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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);
+}
+
--- a/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/unittest_mpnowplayingwidget.pro Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpnowplayingbanner/tsrc/unittest_mpnowplayingwidget/unittest_mpnowplayingwidget.pro Fri Apr 16 14:56:30 2010 +0300
@@ -31,11 +31,13 @@
# Input
HEADERS += inc/unittest_mpnowplayingwidget.h \
stub/inc/mpnowplayingbackend.h \
+ stub/inc/hbcolorscheme.h \
../../../../inc/mpnowplayingwidget.h \
../../inc/mpnowplayingwidget_p.h
SOURCES += src/unittest_mpnowplayingwidget.cpp \
stub/src/mpnowplayingbackend.cpp \
+ stub/src/hbcolorscheme.cpp \
../../src/mpnowplayingwidget.cpp \
../../src/mpnowplayingwidget_p.cpp
--- a/utilities/mpsettingsmanager/bwins/mpsettingsmanageru.def Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpsettingsmanager/bwins/mpsettingsmanageru.def Fri Apr 16 14:56:30 2010 +0300
@@ -20,4 +20,7 @@
?instance@MpSettingsManager@@SAPAV1@XZ @ 19 NONAME ; class MpSettingsManager * MpSettingsManager::instance(void)
?shuffle@MpSettingsManager@@SA_NXZ @ 20 NONAME ; bool MpSettingsManager::shuffle(void)
?firstStartup@MpSettingsManager@@SA_NXZ @ 21 NONAME ; bool MpSettingsManager::firstStartup(void)
+ ?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)
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 Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpsettingsmanager/eabi/mpsettingsmanageru.def Fri Apr 16 14:56:30 2010 +0300
@@ -20,4 +20,7 @@
_ZTI17MpSettingsManager @ 19 NONAME
_ZTV17MpSettingsManager @ 20 NONAME
_ZN17MpSettingsManager12firstStartupEv @ 21 NONAME
+ _ZN17MpSettingsManager13presetChangedEi @ 22 NONAME
+ _ZN17MpSettingsManager6presetEv @ 23 NONAME
+ _ZN17MpSettingsManager9setPresetEi @ 24 NONAME
--- a/utilities/mpsettingsmanager/inc/mpsettingsmanagerdefs.h Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpsettingsmanager/inc/mpsettingsmanagerdefs.h Fri Apr 16 14:56:30 2010 +0300
@@ -23,5 +23,6 @@
const qint32 KMPCenRepSettingShuffleKey = {0x00000001};
const qint32 KMPCenRepSettingRepeatKey = {0x00000002};
const qint32 KMPCenRepSettingFirstStartupKey = {0x00000003};
+ const qint32 KMPCenRepSettingPresetIdKey = {0x00000004};
#endif // MPSETTINGSMANAGERDEFS_H
--- a/utilities/mpsettingsmanager/src/mpsettingsmanager.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpsettingsmanager/src/mpsettingsmanager.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -76,6 +76,12 @@
mRepeat = mSettingsManager->readItemValue(repeatProfileKey).toInt();
mSettingsManager->startMonitoring(repeatProfileKey);
+ XQSettingsKey presetProfileKey(XQSettingsKey::TargetCentralRepository,
+ KMPCenRepSettingsFeature,
+ KMPCenRepSettingPresetIdKey);
+ mPreset = mSettingsManager->readItemValue(presetProfileKey).toInt();
+ mSettingsManager->startMonitoring(presetProfileKey);
+
TX_EXIT
}
@@ -120,6 +126,14 @@
return instance()->mRepeat;
}
+/*!
+ Returns the preset setting.
+ */
+int MpSettingsManager::preset()
+{
+ return instance()->mPreset;
+}
+
/*!
Slot to be called when a setting is changed.
@@ -139,6 +153,11 @@
TX_LOG_ARGS("Repeat changed to "<< mRepeat);
emit repeatChanged( mRepeat );
break;
+ case KMPCenRepSettingPresetIdKey:
+ mPreset = value.toInt();
+ TX_LOG_ARGS("Preset changed to "<< mPreset);
+ emit presetChanged( mPreset );
+ break;
default :
TX_LOG_ARGS(" unhandled cenrep key: " << key.key() <<
"; should never get here.");
@@ -177,3 +196,18 @@
TX_EXIT
}
+/*!
+ Slot to be called to request an update on the \a preset setting.
+ */
+void MpSettingsManager::setPreset(int preset)
+{
+ TX_STATIC_ENTRY_ARGS("preset=" << preset);
+ XQSettingsKey presetProfileKey(XQSettingsKey::TargetCentralRepository,
+ KMPCenRepSettingsFeature,
+ KMPCenRepSettingPresetIdKey);
+ instance()->mSettingsManager->writeItemValue(
+ presetProfileKey, preset);
+ TX_EXIT
+}
+
+
--- a/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/inc/unittest_mpsettingsmanager.h Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/inc/unittest_mpsettingsmanager.h Fri Apr 16 14:56:30 2010 +0300
@@ -42,9 +42,11 @@
void testConstructor(); //don't change the order, this should be the first test.
void testInstanceConstruction();
void testShuffleGetAndSet();
- void testRepeatGetAndSet();
+ void testRepeatGetAndSet();
+ void testPresetGetAndSet();
void testValueChangedShuffleCase();
void testValueChangedRepeatCase();
+ void testValueChangedPresetCase();
};
--- a/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/src/unittest_mpsettingsmanager.cpp Fri Mar 19 09:28:13 2010 +0200
+++ b/utilities/mpsettingsmanager/tsrc/unittest_mpsettingsmanager/src/unittest_mpsettingsmanager.cpp Fri Apr 16 14:56:30 2010 +0300
@@ -150,13 +150,13 @@
test->mShuffle = true;
MpSettingsManager::setShuffle(false);
QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingShuffleKey),QVariant(false));
- QCOMPARE(test->mShuffle, true); //should not chaqnge until sotred in cenrep
+ QCOMPARE(test->mShuffle, 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 sotred in cenrep
+ QCOMPARE(test->mShuffle, 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 +176,13 @@
test->mRepeat = true;
MpSettingsManager::setRepeat(false);
QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingRepeatKey),QVariant(false));
- QCOMPARE(test->mRepeat, true); //should not chaqnge until sotred in cenrep
+ QCOMPARE(test->mRepeat, 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 sotred in cenrep
+ QCOMPARE(test->mRepeat, false);//should not chaqnge until stored in cenrep
//make sure there are not unecesary request to cenrep.
QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingRepeatKey),2);
@@ -191,6 +191,32 @@
}
/*!
+testPresetGetAndSet
+ */
+void TestMpSettingsManager::testPresetGetAndSet()
+{
+ MpSettingsManager *test;
+ test = MpSettingsManager::instance();
+ test->mSettingsManager->clear();
+
+ test->mPreset = 1;
+ MpSettingsManager::setPreset(0);
+ QCOMPARE(test->mSettingsManager->writeRequestValue(KMPCenRepSettingPresetIdKey),QVariant(0));
+ QCOMPARE(test->mPreset, 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
+
+ //make sure there are not unecesary request to cenrep.
+ QCOMPARE(test->mSettingsManager->writeItemValueRequestCount(KMPCenRepSettingPresetIdKey),2);
+ QCOMPARE(test->mSettingsManager->readItemValueRequestCount(KMPCenRepSettingPresetIdKey),0);
+ QCOMPARE(test->mSettingsManager->startMonitoringRequestCount(KMPCenRepSettingPresetIdKey), 0);
+}
+
+/*!
testValueChangedShuffleCase.
*/
void TestMpSettingsManager::testValueChangedShuffleCase()
@@ -238,5 +264,29 @@
}
+/*!
+ testValueChangedPresetCase.
+ */
+void TestMpSettingsManager::testValueChangedPresetCase()
+{
+ MpSettingsManager *test;
+ test = MpSettingsManager::instance();
+
+ XQSettingsKey presetProfileKey(XQSettingsKey::TargetCentralRepository,
+ KMPCenRepSettingsFeature,
+ KMPCenRepSettingPresetIdKey);
+ test->mPreset = 1;
+ test->valueChanged(presetProfileKey, QVariant(0));
+ QCOMPARE(test->mPreset, 0);
+
+ test->mPreset = 0;
+ QSignalSpy spy( test, SIGNAL(presetChanged(int) ) );
+ test->mSettingsManager->emitValueChanged(presetProfileKey, QVariant(1));
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0), QVariant(1) );
+ QCOMPARE(test->mPreset, 1);
+
+}
+
// End of file