--- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h Fri Sep 17 08:33:15 2010 +0300
+++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h Mon Oct 04 00:51:56 2010 +0300
@@ -54,6 +54,7 @@
class CMarkerPositionTimer;
class CPositionUpdateTimer;
+class CPrefetchLevelUpdateTimer;
NONSHARABLE_CLASS(CMMFBackendEngine) : public CBase,
public MVideoPlayerUtilityObserver,
public MVideoLoadingObserver,
@@ -139,6 +140,20 @@
XAresult SetPlaybackRate(XAint16 rate);
XAresult GetPlaybackRateCapabilities(XAboolean* forward, XAboolean* backward);
+ //PrefetchStatus
+ XAresult RegisterPrefetchCallback(xaPrefetchCallback);
+ XAresult SetPrefetchLevelUpdatePeriod(XApermille);
+ XAresult SetPrefetchCallbackEventsMask(XAuint32 eventflags);
+
+ XAresult GetPrefetchStatus(XAuint32* status);
+ XAresult GetPrefetchFillLevel(XApermille* level);
+
+ XAresult RegisterStreamInfoCallback(xaStreamEventChangeCallback);
+
+ XAresult SetSourceRect(const XARectangle* rect);
+ XAresult SetDestinationRect(const XARectangle* rect);
+ XAresult SetRotation(XAmillidegree rotation);
+ XAresult SetScaleOptions(XAuint32 options);
public:
@@ -184,6 +199,10 @@
void DoPostEvent(XAuint32 event);
TInt InitializeURIForMMFUtil(char *uri);
+ //StreamInfo
+ void SetStreamInfo();
+ void SendStreamInfoEvent(TInt);
+
private:
CVideoPlayerUtility2* iVideoPlayer;
CBase* iBaseVideoPlayer;
@@ -245,6 +264,19 @@
XAmillisecond iMarkerPosition;
/* Property set by client */
XAmillisecond iPositionUpdatePeriod;
+
+ //PrefetchStatus Interface variables
+ TBool bPrefetchCallbackRegistered;
+ TBool bStatusChangeMask;
+ CPrefetchLevelUpdateTimer* iPrefetchLevelUpdateTimer;
+ XAmillisecond iPrefetchLevelUpdatePeriod;
+ XAuint32 iPrefetchStatus;
+
+ //StreamInfo
+ TInt iNumStreams;
+ TBool iAudioOnly;
+ TBool iStreamInfoEventSubscribed;
+
/* Property set by client (for file without file:///) */
HBufC* iUri; /* owns */
TPtr iUriPtr;
@@ -319,6 +351,20 @@
extern XAresult mmf_playbackrateitf_get_playbackratecaps(void * context,
XAboolean* forward, XAboolean* backward);
+extern XAresult mmf_prefetchstatusitf_register_callback(void * context, xaPrefetchCallback callback);
+extern XAresult mmf_prefetchstatusitf_set_callback_events_mask(void * context, XAuint32 cbMask);
+extern XAresult mmf_prefetchstatusitf_set_fill_level_update_period( void * context, XAmillisecond mSec);
+
+extern XAresult mmf_prefetchstatusitf_get_status(void *context, XAuint32* status);
+extern XAresult mmf_prefetchstatusitf_get_fill_level(void *context,XApermille* fillLevel);
+
+extern XAresult mmf_streaminfoitf_register_callback(void * context, xaStreamEventChangeCallback callback);
+
+extern XAresult mmf_videoppitf_set_sourcerectangle(void * context, const XARectangle* rect);
+extern XAresult mmf_videoppitf_set_destinationrectangle(void * context, const XARectangle* rect);
+extern XAresult mmf_videoppitf_set_rotation(void * context, XAmillidegree rotation);
+extern XAresult mmf_videoppitf_set_scalingoptions(void * context, XAuint32 options);
+
#endif /* __cplusplus */
#endif /* CMMFBackendEngine_H */