--- a/mpengine/src/mpengine.cpp Fri Jul 23 17:31:12 2010 -0500
+++ b/mpengine/src/mpengine.cpp Fri Aug 06 16:51:36 2010 -0500
@@ -24,7 +24,6 @@
#include "mpmpxplaybackframeworkwrapper.h"
#include "mpaudioeffectsframeworkwrapper.h"
#include "mpequalizerframeworkwrapper.h"
-#include "mpmediakeyhandler.h"
#include "mptrace.h"
#include "mpsettingsmanager.h"
#include "mpsongscanner.h"
@@ -177,12 +176,25 @@
*/
/*!
+-------------------------------------------------------------------------------
+ Playback related signals
+-------------------------------------------------------------------------------
+*/
+
+/*!
+ \fn void volumePropertyChanged( MpCommon::MpVolumeProperty, int value );
+
+ This signal is emitted when framework receives a volume related property notification,
+ such as EPbPropertyVolume, EPbPropertyMaxVolume, EPbPropertyMute.
+ */
+
+
+/*!
Constructs music player engine.
*/
MpEngine::MpEngine()
: mMpxHarvesterWrapper(0),
mSongScanner(0),
- mMediaKeyHandler(0),
mMpxCollectionWrapper(0),
mMpxPlaybackWrapper(0),
mAudioEffectsWrapper(0),
@@ -190,7 +202,8 @@
mCurrentPresetIndex(KEqualizerPresetNone),
mSongData(0),
mUsbBlockingState(USB_NotConnected),
- mPreviousUsbState(USB_NotConnected)
+ mPreviousUsbState(USB_NotConnected),
+ mHandleMediaCommands(true)
{
TX_LOG
}
@@ -201,7 +214,6 @@
MpEngine::~MpEngine()
{
TX_ENTRY
- delete mMediaKeyHandler;
delete mMpxPlaybackWrapper;
delete mMpxHarvesterWrapper;
delete mMpxCollectionWrapper;
@@ -219,7 +231,6 @@
{
TX_ENTRY_ARGS("hostUid=" << hostUid.iUid << ", mode=" << mode);
mHostUid = hostUid;
- mMediaKeyHandler = new MpMediaKeyHandler();
if ( StandAlone == mode ) {
mSongData = new MpSongData();
@@ -276,8 +287,10 @@
// Playback Wrapper
mMpxPlaybackWrapper = new MpMpxPlaybackFrameworkWrapper( mHostUid, mSongData );
- connect( this, SIGNAL( libraryAboutToUpdate() ),
+ connect( this, SIGNAL( libraryUpdated() ),
mMpxPlaybackWrapper, SLOT( closeCurrentPlayback() ) );
+ connect( mMpxPlaybackWrapper, SIGNAL( volumePropertyChanged( MpCommon::MpVolumeProperty, int ) ),
+ this, SIGNAL( volumePropertyChanged( MpCommon::MpVolumeProperty, int ) ) );
// AudioEffects wrapper
mAudioEffectsWrapper = new MpAudioEffectsFrameworkWrapper();
@@ -311,8 +324,11 @@
// Playback Wrapper
mMpxPlaybackWrapper = new MpMpxPlaybackFrameworkWrapper( mHostUid, 0 );
- connect( this, SIGNAL( libraryAboutToUpdate() ),
+ connect( this, SIGNAL( libraryUpdated() ),
mMpxPlaybackWrapper, SLOT( closeCurrentPlayback() ) );
+ connect( mMpxPlaybackWrapper, SIGNAL( volumePropertyChanged( MpCommon::MpVolumeProperty, int ) ),
+ this, SIGNAL( volumePropertyChanged( MpCommon::MpVolumeProperty, int ) ) );
+
}
else if ( MediaBrowsing == mode ) {
// Collection Wrapper
@@ -328,6 +344,9 @@
mSongData = new MpSongData();
// Playback Wrapper
mMpxPlaybackWrapper = new MpMpxPlaybackFrameworkWrapper( mHostUid, mSongData );
+ connect( mMpxPlaybackWrapper, SIGNAL( volumePropertyChanged( MpCommon::MpVolumeProperty, int ) ),
+ this, SIGNAL( volumePropertyChanged( MpCommon::MpVolumeProperty, int ) ) );
+
}
TX_EXIT
}
@@ -398,7 +417,7 @@
*/
void MpEngine::handleScanStarted() {
TX_ENTRY
- mMediaKeyHandler->setEnabled(false);
+ mHandleMediaCommands = false;
TX_EXIT
}
@@ -409,7 +428,7 @@
TX_ENTRY
Q_UNUSED( count );
Q_UNUSED( error );
- mMediaKeyHandler->setEnabled(true);
+ mHandleMediaCommands = true;
emit libraryUpdated();
TX_EXIT
}
@@ -422,10 +441,10 @@
TX_ENTRY_ARGS("event=" << event);
switch ( event ) {
case DiskFormatStarted:
- mMediaKeyHandler->setEnabled(false);
+ mHandleMediaCommands = false;
break;
case DiskFormatEnded:
- mMediaKeyHandler->setEnabled(true);
+ mHandleMediaCommands = true;
break;
case DiskRemoved:
if ( mUsbBlockingState != USB_Synchronizing ) {
@@ -479,7 +498,7 @@
void MpEngine::handleUsbMassStorageStartEvent()
{
TX_ENTRY
- mMediaKeyHandler->setEnabled(false);
+ mHandleMediaCommands = false;
changeUsbBlockingState( USB_Synchronizing );
emit usbBlocked(true);
@@ -494,7 +513,7 @@
void MpEngine::handleUsbMassStorageEndEvent()
{
TX_ENTRY
- mMediaKeyHandler->setEnabled(true);
+ mHandleMediaCommands = true;
changeUsbBlockingState( USB_NotConnected );
emit usbBlocked(false);
@@ -510,7 +529,7 @@
void MpEngine::handleUsbMtpStartEvent()
{
TX_ENTRY
- mMediaKeyHandler->setEnabled(false);
+ mHandleMediaCommands = false;
changeUsbBlockingState( USB_Synchronizing );
emit usbBlocked(true);
@@ -529,7 +548,7 @@
void MpEngine::handleUsbMtpEndEvent()
{
TX_ENTRY
- mMediaKeyHandler->setEnabled(true);
+ mHandleMediaCommands = true;
changeUsbBlockingState( USB_NotConnected );
emit usbBlocked(false);
@@ -749,7 +768,7 @@
void MpEngine::handleDeleteStarted( TCollectionContext context, int count )
{
TX_ENTRY
- mMediaKeyHandler->setEnabled( false );
+ mHandleMediaCommands = false;
emit deleteStarted( context, count );
TX_EXIT
}
@@ -760,7 +779,7 @@
void MpEngine::handleDeleteEnded( bool success )
{
TX_ENTRY
- mMediaKeyHandler->setEnabled(true);
+ mHandleMediaCommands = true;
emit songsDeleted( success );
TX_EXIT
}
@@ -808,12 +827,36 @@
{
mMpxPlaybackWrapper->play( file );
}
+
+/*!
+ Slot to handle a play command
+ */
+
+void MpEngine::play()
+{
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->play();
+ }
+}
+
+/*!
+ Slot to handle a pause command.
+ */
+void MpEngine::pause()
+{
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->pause();
+ }
+}
+
/*!
Slot to handle a play pause.
*/
void MpEngine::playPause()
{
- mMpxPlaybackWrapper->playPause();
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->playPause();
+ }
}
/*!
@@ -821,7 +864,9 @@
*/
void MpEngine::stop()
{
- mMpxPlaybackWrapper->stop();
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->stop();
+ }
}
/*!
@@ -829,7 +874,9 @@
*/
void MpEngine::skipForward()
{
- mMpxPlaybackWrapper->skipForward();
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->skipForward();
+ }
}
/*!
@@ -837,7 +884,9 @@
*/
void MpEngine::startSeekForward()
{
- mMpxPlaybackWrapper->startSeekForward();
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->startSeekForward();
+ }
}
/*!
@@ -845,7 +894,9 @@
*/
void MpEngine::stopSeeking()
{
- mMpxPlaybackWrapper->stopSeeking();
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->stopSeeking();
+ }
}
/*!
@@ -853,7 +904,9 @@
*/
void MpEngine::skipBackward()
{
- mMpxPlaybackWrapper->skipBackward();
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->skipBackward();
+ }
}
/*!
@@ -861,7 +914,9 @@
*/
void MpEngine::startSeekBackward()
{
- mMpxPlaybackWrapper->startSeekBackward();
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->startSeekBackward();
+ }
}
/*!
Slot to handle a request to change \a position.
@@ -888,6 +943,83 @@
}
/*!
+ Slot to handle a request to get the volume level Max.
+ Response will be asynchronously sent through volumePropertyChanged() signal.
+ */
+void MpEngine::getMaxVolume( )
+{
+ mMpxPlaybackWrapper->getMaxVolume();
+}
+
+/*!
+ Slot to handle a request to get the current volume level.
+ Response will be asynchronously sent through volumePropertyChanged() signal.
+ */
+void MpEngine::getVolume( )
+{
+ mMpxPlaybackWrapper->getVolume();
+}
+
+/*!
+ Slot to handle a request to increase volume.
+ */
+void MpEngine::increaseVolume()
+{
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->increaseVolume();
+ }
+}
+
+/*!
+ Slot to handle a request to decrease volume.
+ */
+void MpEngine::decreaseVolume()
+{
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->decreaseVolume();
+ }
+}
+
+/*!
+ Slot to handle a request to set the volume level.
+ */
+void MpEngine::setVolume( int value )
+{
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->setVolume( value );
+ }
+}
+
+/*!
+ Slot to handle a request to get the current mute state.
+ Response will be asynchronously sent through volumePropertyChanged() signal.
+ */
+void MpEngine::getMuteState( )
+{
+ mMpxPlaybackWrapper->getMuteState();
+}
+
+/*!
+ Slot to handle a request to mute.
+ */
+void MpEngine::mute()
+{
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->mute();
+ }
+}
+
+/*!
+ Slot to handle a request to unmute.
+ */
+void MpEngine::unmute()
+{
+ if ( mHandleMediaCommands ) {
+ mMpxPlaybackWrapper->unmute();
+ }
+}
+
+/*!
Returns pointer to MpSongData, which is the song data for Details View.
*/
MpSongData *MpEngine::songData()