diff -r 453dfc402455 -r 0aa8cc770c8a mtpdataproviders/mtpplaybackcontroldp/mtpplaybackmpximplementation/src/cmtpplaybackresumehelper.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mtpdataproviders/mtpplaybackcontroldp/mtpplaybackmpximplementation/src/cmtpplaybackresumehelper.cpp Tue Aug 31 16:03:15 2010 +0300 @@ -0,0 +1,402 @@ +// 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: +// + +/** + @file + @internalComponent +*/ + +#include "cmtpplaybackresumehelper.h" +#include "cmtpplaybackcommand.h" +#include "cmtpplaybackcontrolimpl.h" + +// Constants +__FLOG_STMT(_LIT8(KComponent,"PlaybackResumeHelper");) + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::NewL +// --------------------------------------------------------------------------- +// +CMTPPlaybackResumeHelper* CMTPPlaybackResumeHelper::NewL( + CMTPPlaybackControlImpl& aControlImpl ) + { + CMTPPlaybackResumeHelper* self = new ( ELeave ) + CMTPPlaybackResumeHelper( aControlImpl ); + return self; + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::~CMTPPlaybackResumeHelper +// --------------------------------------------------------------------------- +// +CMTPPlaybackResumeHelper::~CMTPPlaybackResumeHelper() + { + __FLOG(_L8("+CMTPPlaybackResumeHelper::~CMTPPlaybackResumeHelper")); + __FLOG(_L8("-CMTPPlaybackResumeHelper::~CMTPPlaybackResumeHelper")); + __FLOG_CLOSE; + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::UpdatePrepareCmdArrayL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::UpdatePrepareCmdArray( TMTPPlaybackCommand aMTPPPBCmd, + RResumeCmdArray& aMTPPBMPXCmd ) + { + __FLOG(_L8("+CMTPPlaybackResumeHelper::UpdatePrepareCmdArrayL")); + + aMTPPBMPXCmd.Reset(); + iIfParepareArray = ETrue; + + switch ( aMTPPPBCmd ) + { + case EPlaybackCmdSetPosition: + { + HandlePlaybackCmdSetPosition( aMTPPBMPXCmd ); + } + break; + default: + break; + } + + __FLOG(_L8("-CMTPPlaybackResumeHelper::UpdatePrepareCmdArrayL")); + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::UpdateResumeCmdArrayL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::UpdateResumeCmdArray( TMTPPlaybackCommand aMTPPPBCmd, + RResumeCmdArray& aMTPPBMPXCmd) + { + __FLOG(_L8("+CMTPPlaybackResumeHelper::MapMTPPBCommandToMPXCommandL")); + + aMTPPBMPXCmd.Reset(); + iIfParepareArray = EFalse; + + switch ( aMTPPPBCmd ) + { + case EPlaybackCmdInitObject: + { + HandlePlaybackCmdInitObject( aMTPPBMPXCmd ); + } + break; + case EPlaybackCmdInitIndex: + { + HandlePlaybackCmdInitIndex( aMTPPBMPXCmd ); + } + break; + case EPlaybackCmdPlay: + { + HandlePlaybackCmdPlay( aMTPPBMPXCmd ); + } + break; + case EPlaybackCmdPause: + { + HandlePlaybackCmdPause( aMTPPBMPXCmd ); + } + break; + case EPlaybackCmdSkip: + { + HandlePlaybackCmdSkip( aMTPPBMPXCmd ); + } + break; + case EPlaybackCmdSeekForward: + { + HandlePlaybackCmdSeekForward( aMTPPBMPXCmd ); + } + break; + case EPlaybackCmdSeekBackward: + { + HandlePlaybackCmdSeekBackward( aMTPPBMPXCmd ); + } + break; + case EPlaybackCmdSetPosition: + { + HandlePlaybackCmdSetPosition( aMTPPBMPXCmd ); + } + break; + default: + break; + } + + __FLOG(_L8("-CMTPPlaybackResumeHelper::MapPlaybackControlCommandL")); + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::CMTPPlaybackResumeHelper +// --------------------------------------------------------------------------- +// +CMTPPlaybackResumeHelper::CMTPPlaybackResumeHelper( + CMTPPlaybackControlImpl& aControlImpl ) + : iMTPPlaybackControl( aControlImpl ) + { + __FLOG_OPEN(KMTPSubsystem, KComponent); + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdInitObjectL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdInitObject( RResumeCmdArray& aMTPPBMPXCmdArray ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePlaying: + { + TMPXComandElement command = { EPbCmdPlay, EPbStatePlaying }; + aMTPPBMPXCmdArray.Append( command ); + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdInitObjectL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdInitIndex( RResumeCmdArray& aMTPPBMPXCmdArray ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePlaying: + { + TMPXComandElement command = { EPbCmdPlay, EPbStatePlaying }; + aMTPPBMPXCmdArray.Append( command ); + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdPlayL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdPlay(RResumeCmdArray& aMTPPBMPXCmdArray ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePaused: + case EPbStateStopped: + case EPbStateInitialised: + { + TMPXComandElement command = { EPbCmdPlay, EPbStatePlaying }; + aMTPPBMPXCmdArray.Append( command ); + } + break; + case EPbStateSeekingBackward: + case EPbStateSeekingForward: + { + if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePlaying ) + { + TMPXComandElement tmp = { EPbCmdStopSeeking, EPbStatePlaying }; + aMTPPBMPXCmdArray.Append( tmp ); + } + else if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePaused ) + { + TMPXComandElement command = { EPbCmdStopSeeking, EPbStatePaused }; + aMTPPBMPXCmdArray.Append( command ); + TMPXComandElement command1 = { EPbCmdPlay, EPbStatePlaying }; + aMTPPBMPXCmdArray.Append( command1 ); + } + } + break; + default: + break; + } + } + + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdPauseL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdPause( RResumeCmdArray& aMTPPBMPXCmdArray ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePlaying: + { + TMPXComandElement command = { EPbCmdPlayPause, EPbStatePaused }; + aMTPPBMPXCmdArray.Append( command ); + } + break; + case EPbStateSeekingBackward: + case EPbStateSeekingForward: + { + if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePaused ) + { + TMPXComandElement command = { EPbCmdStopSeeking, EPbStatePaused }; + aMTPPBMPXCmdArray.Append( command ); + } + else if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePlaying ) + { + TMPXComandElement command = { EPbCmdStopSeeking, EPbStatePlaying }; + aMTPPBMPXCmdArray.Append( command ); + TMPXComandElement command1 = { EPbCmdPlayPause, EPbStatePaused }; + aMTPPBMPXCmdArray.Append( command1 ); + } + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdSeekForwardL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdSeekForward( RResumeCmdArray& aMTPPBMPXCmd ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePlaying: + case EPbStatePaused: + { + TMPXComandElement command = { EPbCmdStartSeekForward, EPbStateSeekingForward }; + aMTPPBMPXCmd.Append( command ); + } + break; + case EPbStateInitialised: + { + TMPXComandElement command = { EPbCmdPlay, EPbStatePlaying }; + aMTPPBMPXCmd.Append( command ); + TMPXComandElement command1 = { EPbCmdStartSeekForward, EPbStateSeekingForward }; + aMTPPBMPXCmd.Append( command1 ); + } + break; + case EPbStateSeekingBackward: + { + if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePaused ) + { + TMPXComandElement command = { EPbCmdStopSeeking, EPbStatePaused }; + aMTPPBMPXCmd.Append( command ); + TMPXComandElement command1 = { EPbCmdStartSeekForward, EPbStateSeekingForward }; + aMTPPBMPXCmd.Append( command1 ); + } + else if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePlaying ) + { + TMPXComandElement command = { EPbCmdStopSeeking, EPbStatePlaying }; + aMTPPBMPXCmd.Append( command ); + TMPXComandElement command1 = { EPbCmdStartSeekForward, EPbStateSeekingForward }; + aMTPPBMPXCmd.Append( command1 ); + } + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdSeekBackwardL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdSeekBackward( RResumeCmdArray& aMTPPBMPXCmd ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePlaying: + case EPbStatePaused: + { + TMPXComandElement command = { EPbCmdStartSeekBackward, EPbStateSeekingBackward }; + aMTPPBMPXCmd.Append( command ); + } + break; + case EPbStateSeekingForward: + { + if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePaused ) + { + TMPXComandElement command = { EPbCmdStopSeeking, EPbStatePaused }; + aMTPPBMPXCmd.Append( command ); + TMPXComandElement command1 = { EPbCmdStartSeekBackward, EPbStateSeekingBackward }; + aMTPPBMPXCmd.Append( command1 ); + } + else if ( MTPPlaybackControlImpl().PreviousState() == EPbStatePlaying ) + { + TMPXComandElement command = { EPbCmdStopSeeking, EPbStatePlaying }; + aMTPPBMPXCmd.Append( command ); + TMPXComandElement command1 = { EPbCmdStartSeekBackward, EPbStateSeekingBackward }; + aMTPPBMPXCmd.Append( command1 ); + } + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdSkipL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdSkip( RResumeCmdArray& aMTPPBMPXCmd ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePlaying: + { + TMPXComandElement command = { EPbCmdPlay, EPbStatePlaying }; + aMTPPBMPXCmd.Append( command ); + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::HandlePlaybackCmdSetPositionL +// --------------------------------------------------------------------------- +// +void CMTPPlaybackResumeHelper::HandlePlaybackCmdSetPosition( RResumeCmdArray& aMTPPBMPXCmd ) + { + switch ( MTPPlaybackControlImpl().CurrentState() ) + { + case EPbStatePlaying: + { + if ( iIfParepareArray ) + { + TMPXComandElement command = { EPbCmdPause, EPbStatePaused }; + aMTPPBMPXCmd.Append( command ); + } + else + { + TMPXComandElement command = { EPbCmdPlay, EPbStatePlaying }; + aMTPPBMPXCmd.Append( command ); + } + } + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CMTPPlaybackResumeHelper::CMTPPlaybackControlImpl +// --------------------------------------------------------------------------- +// +CMTPPlaybackControlImpl& CMTPPlaybackResumeHelper::MTPPlaybackControlImpl() + { + return iMTPPlaybackControl; + } +