--- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp Wed Jun 23 18:47:10 2010 +0300
+++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp Tue Jul 06 14:50:35 2010 +0300
@@ -23,6 +23,7 @@
#include "markerpositiontimer.h"
#include "positionupdatetimer.h"
#include "profileutilmacro.h"
+#include <mmf/common/mmfvideoenums.h>
extern "C"
{
@@ -1617,6 +1618,68 @@
return retVal;
}
+XAresult CMMFBackendEngine::SetPlaybackRate(XAint16 rate)
+ {
+ XAresult retVal(XA_RESULT_INTERNAL_ERROR);
+
+ switch (iMediaPlayerState)
+ {
+ case XA_PLAYSTATE_STOPPED:
+ case XA_PLAYSTATE_PAUSED:
+ case XA_PLAYSTATE_PLAYING:
+ if (iAPIBeingUsed == EAudioPlayerUtility)
+ {
+ retVal = XA_RESULT_FEATURE_UNSUPPORTED;
+ }
+ else
+ {
+ TRAPD(err, iVideoPlayer->SetPlayVelocityL(rate));
+ if(!err)
+ {
+ retVal = XA_RESULT_SUCCESS;
+ }
+ }
+ break;
+ case XA_PLAYSTATE_PLAYERUNINITIALIZED:
+ default:
+ break;
+ }
+ return retVal;
+ }
+
+XAresult CMMFBackendEngine::GetPlaybackRateCapabilities(XAboolean* forward,
+ XAboolean* backward)
+ {
+ XAresult retVal(XA_RESULT_PARAMETER_INVALID);
+
+ switch (iMediaPlayerState)
+ {
+ case XA_PLAYSTATE_STOPPED:
+ case XA_PLAYSTATE_PAUSED:
+ case XA_PLAYSTATE_PLAYING:
+ if (iAPIBeingUsed == EAudioPlayerUtility)
+ {
+ retVal = XA_RESULT_FEATURE_UNSUPPORTED;
+ }
+ else
+ {
+ TVideoPlayRateCapabilities capability;
+ TRAPD(err, iVideoPlayer->GetPlayRateCapabilitiesL(capability));
+ if(!err)
+ {
+ *forward = capability.iPlayForward;
+ *backward = capability.iPlayBackward;
+ retVal = XA_RESULT_SUCCESS;
+ }
+ }
+ break;
+ case XA_PLAYSTATE_PLAYERUNINITIALIZED:
+ default:
+ break;
+ }
+ return retVal;
+ }
+
extern "C"
{
@@ -1854,4 +1917,14 @@
{
return ((CMMFBackendEngine *) (context))->GetVolume(volume);
}
+
+ XAresult mmf_playbackrateitf_set_playbackrate(void * context, XAint16 rate)
+ {
+ return ((CMMFBackendEngine *) (context))->SetPlaybackRate(rate);
+ }
+
+ XAresult mmf_playbackrateitf_get_playbackratecaps(void * context, XAboolean* forward, XAboolean* backward)
+ {
+ return ((CMMFBackendEngine *) (context))->GetPlaybackRateCapabilities(forward,backward);
+ }
}