khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h
changeset 53 eabc8c503852
parent 43 9894ed580e4a
equal deleted inserted replaced
48:a493a607b5bf 53:eabc8c503852
    52 
    52 
    53 #define MAX_EXTENSION_SIZE 10
    53 #define MAX_EXTENSION_SIZE 10
    54 
    54 
    55 class CMarkerPositionTimer;
    55 class CMarkerPositionTimer;
    56 class CPositionUpdateTimer;
    56 class CPositionUpdateTimer;
       
    57 class CPrefetchLevelUpdateTimer;
    57 NONSHARABLE_CLASS(CMMFBackendEngine) : public CBase,
    58 NONSHARABLE_CLASS(CMMFBackendEngine) : public CBase,
    58         public MVideoPlayerUtilityObserver,
    59         public MVideoPlayerUtilityObserver,
    59         public MVideoLoadingObserver,
    60         public MVideoLoadingObserver,
    60         public MMdaAudioPlayerCallback,
    61         public MMdaAudioPlayerCallback,
    61         public MMdaObjectStateChangeObserver
    62         public MMdaObjectStateChangeObserver
   137     XAresult GetVolume(XAuint32* volume);
   138     XAresult GetVolume(XAuint32* volume);
   138     XAresult GetMaxVolume(XAuint32* maxvolume);
   139     XAresult GetMaxVolume(XAuint32* maxvolume);
   139 
   140 
   140     XAresult SetPlaybackRate(XAint16 rate);
   141     XAresult SetPlaybackRate(XAint16 rate);
   141     XAresult GetPlaybackRateCapabilities(XAboolean* forward, XAboolean* backward);
   142     XAresult GetPlaybackRateCapabilities(XAboolean* forward, XAboolean* backward);
       
   143 	//PrefetchStatus
       
   144 	XAresult RegisterPrefetchCallback(xaPrefetchCallback);
       
   145 	XAresult SetPrefetchLevelUpdatePeriod(XApermille);
       
   146 	XAresult SetPrefetchCallbackEventsMask(XAuint32 eventflags);
       
   147 	
       
   148 	XAresult GetPrefetchStatus(XAuint32* status);
       
   149 	XAresult GetPrefetchFillLevel(XApermille* level);
       
   150 
       
   151 	XAresult RegisterStreamInfoCallback(xaStreamEventChangeCallback);
       
   152 
       
   153     XAresult SetSourceRect(const XARectangle* rect);
       
   154     XAresult SetDestinationRect(const XARectangle* rect);
       
   155     XAresult SetRotation(XAmillidegree rotation);
       
   156     XAresult SetScaleOptions(XAuint32 options);
   142 
   157 
   143 public:
   158 public:
   144 
   159 
   145     // MMdaObjectStateChangeObserver
   160     // MMdaObjectStateChangeObserver
   146     void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState,
   161     void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState,
   181     void InitPlayerTimersL();
   196     void InitPlayerTimersL();
   182     TInt DetermineAPIToUse(char *uri, TFuncInUse aFunc);
   197     TInt DetermineAPIToUse(char *uri, TFuncInUse aFunc);
   183     XAresult DoHandlePlayItfAttributesChanged();
   198     XAresult DoHandlePlayItfAttributesChanged();
   184     void DoPostEvent(XAuint32 event);
   199     void DoPostEvent(XAuint32 event);
   185     TInt InitializeURIForMMFUtil(char *uri);
   200     TInt InitializeURIForMMFUtil(char *uri);
       
   201 
       
   202 	//StreamInfo
       
   203 	void SetStreamInfo();
       
   204 	void SendStreamInfoEvent(TInt);	
   186 
   205 
   187 private:
   206 private:
   188     CVideoPlayerUtility2* iVideoPlayer;
   207     CVideoPlayerUtility2* iVideoPlayer;
   189     CBase* iBaseVideoPlayer;
   208     CBase* iBaseVideoPlayer;
   190     CMdaAudioPlayerUtility* iAudioPlayer;
   209     CMdaAudioPlayerUtility* iAudioPlayer;
   243     xaPlayCallback iPlayItfCBFunction;
   262     xaPlayCallback iPlayItfCBFunction;
   244     /* Property set by client */
   263     /* Property set by client */
   245     XAmillisecond iMarkerPosition;
   264     XAmillisecond iMarkerPosition;
   246     /* Property set by client */
   265     /* Property set by client */
   247     XAmillisecond iPositionUpdatePeriod;
   266     XAmillisecond iPositionUpdatePeriod;
       
   267 
       
   268 	//PrefetchStatus Interface variables
       
   269 	TBool bPrefetchCallbackRegistered;
       
   270 	TBool bStatusChangeMask;
       
   271     CPrefetchLevelUpdateTimer* iPrefetchLevelUpdateTimer;
       
   272     XAmillisecond iPrefetchLevelUpdatePeriod;
       
   273 	XAuint32 iPrefetchStatus;
       
   274 
       
   275 	//StreamInfo
       
   276 	TInt iNumStreams;
       
   277 	TBool iAudioOnly; 
       
   278 	TBool iStreamInfoEventSubscribed;
       
   279 
   248     /* Property set by client (for file without file:///) */
   280     /* Property set by client (for file without file:///) */
   249     HBufC* iUri; /* owns */
   281     HBufC* iUri; /* owns */
   250     TPtr iUriPtr;
   282     TPtr iUriPtr;
   251     TUriType iUriType;
   283     TUriType iUriType;
   252     /* Property set by client */
   284     /* Property set by client */
   317 extern XAresult mmf_volumeitf_get_maxvolume(void * context, XAuint32* volume);
   349 extern XAresult mmf_volumeitf_get_maxvolume(void * context, XAuint32* volume);
   318 extern XAresult mmf_playbackrateitf_set_playbackrate(void * context, XAint16 rate);
   350 extern XAresult mmf_playbackrateitf_set_playbackrate(void * context, XAint16 rate);
   319 extern XAresult mmf_playbackrateitf_get_playbackratecaps(void * context,
   351 extern XAresult mmf_playbackrateitf_get_playbackratecaps(void * context,
   320                                 XAboolean* forward, XAboolean* backward);
   352                                 XAboolean* forward, XAboolean* backward);
   321 
   353 
       
   354 extern XAresult mmf_prefetchstatusitf_register_callback(void * context, xaPrefetchCallback callback);
       
   355 extern XAresult mmf_prefetchstatusitf_set_callback_events_mask(void * context,	XAuint32 cbMask);
       
   356 extern XAresult mmf_prefetchstatusitf_set_fill_level_update_period( void * context, XAmillisecond mSec);
       
   357 
       
   358 extern XAresult mmf_prefetchstatusitf_get_status(void *context, XAuint32* status);
       
   359 extern XAresult mmf_prefetchstatusitf_get_fill_level(void *context,XApermille* fillLevel);
       
   360 
       
   361 extern XAresult mmf_streaminfoitf_register_callback(void * context, xaStreamEventChangeCallback callback);
       
   362 
       
   363 extern XAresult mmf_videoppitf_set_sourcerectangle(void * context, const XARectangle* rect);
       
   364 extern XAresult mmf_videoppitf_set_destinationrectangle(void * context, const XARectangle* rect);
       
   365 extern XAresult mmf_videoppitf_set_rotation(void * context, XAmillidegree rotation);
       
   366 extern XAresult mmf_videoppitf_set_scalingoptions(void * context, XAuint32 options);
       
   367 
   322 #endif /* __cplusplus */
   368 #endif /* __cplusplus */
   323 
   369 
   324 #endif /* CMMFBackendEngine_H */
   370 #endif /* CMMFBackendEngine_H */