--- a/mpengine/src/mpengine.cpp Fri Sep 17 08:28:52 2010 +0300
+++ b/mpengine/src/mpengine.cpp Mon Oct 04 00:14:19 2010 +0300
@@ -29,6 +29,7 @@
#include "mpsongscanner.h"
#include "mpsongdata.h"
#include "mpapplicationmonitor.h"
+#include "mpplaybackdata.h"
/*!
\class MpEngine
@@ -222,7 +223,14 @@
MpEngine::~MpEngine()
{
TX_ENTRY
- delete mMpxPlaybackWrapper;
+ if ( mMpxPlaybackWrapper ) {
+ // Don't send stop cmd if mode=HomeScreen, because we don't want to stop playback when the music widget is deleted.
+ if ( mEngineMode != HomeScreen ) {
+ mMpxPlaybackWrapper->forceStop();
+ }
+ delete mMpxPlaybackWrapper;
+ }
+
delete mMpxHarvesterWrapper;
delete mMpxCollectionWrapper;
delete mAudioEffectsWrapper;
@@ -264,7 +272,7 @@
// Collection Wrapper
mMpxCollectionWrapper = new MpMpxCollectionFrameworkWrapper( clientSecureId, mSongData );
connect( mMpxCollectionWrapper, SIGNAL( collectionPlaylistOpened() ),
- this, SIGNAL( collectionPlaylistOpened() ),
+ this, SLOT( handleCollectionPlaylistOpened() ),
Qt::QueuedConnection );
connect( mMpxCollectionWrapper, SIGNAL( aboutToAddSongs(int) ),
this, SIGNAL( aboutToAddSongs(int) ) );
@@ -327,7 +335,7 @@
// Collection Wrapper
mMpxCollectionWrapper = new MpMpxCollectionFrameworkWrapper( clientSecureId, 0 );
connect( mMpxCollectionWrapper, SIGNAL( collectionPlaylistOpened() ),
- this, SIGNAL( collectionPlaylistOpened() ),
+ this, SLOT( handleCollectionPlaylistOpened() ),
Qt::QueuedConnection );
// Disabling these since fetch mode plays only one song at a time.
mMpxCollectionWrapper->setRepeatFeatureEnabled( false );
@@ -347,7 +355,7 @@
// Collection Wrapper
mMpxCollectionWrapper = new MpMpxCollectionFrameworkWrapper( clientSecureId, 0 );
connect( mMpxCollectionWrapper, SIGNAL( collectionPlaylistOpened() ),
- this, SIGNAL( collectionPlaylistOpened() ),
+ this, SLOT( handleCollectionPlaylistOpened() ),
Qt::QueuedConnection );
connect( mMpxCollectionWrapper, SIGNAL( containerContentsChanged() ),
this, SIGNAL( containerContentsChanged() ),
@@ -1256,3 +1264,15 @@
TX_EXIT
}
+/*!
+ Slot to handle the open of a collecion playlist.
+ */
+void MpEngine::handleCollectionPlaylistOpened()
+{
+ TX_ENTRY
+
+ playbackData()->handleCollectionPlaylistOpened();
+ emit collectionPlaylistOpened();
+
+ TX_EXIT
+}