khronosfws/openmax_al/src/mediaplayer/xaplayitf.c
changeset 55 e267340986c9
parent 42 1fa3fb47b1e3
equal deleted inserted replaced
52:4ce423f34688 55:e267340986c9
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 #include <stdio.h>
    18 #include <stdio.h>
    19 #include <stdlib.h>
    19 #include <stdlib.h>
    20 #include <assert.h>
       
    21 
       
    22 #include "xaplayitf.h"
    20 #include "xaplayitf.h"
    23 
       
    24 #include "xaplayitfadaptationmmf.h"
    21 #include "xaplayitfadaptationmmf.h"
    25 #include "xathreadsafety.h"
    22 #include "xathreadsafety.h"
    26 #include <string.h>
    23 #include <string.h>
    27 
    24 
    28 void* vfHandle;
    25 void* vfHandle;
    53  **/
    50  **/
    54 XAresult XAPlayItfImpl_SetPlayState(XAPlayItf self, XAuint32 state)
    51 XAresult XAPlayItfImpl_SetPlayState(XAPlayItf self, XAuint32 state)
    55     {
    52     {
    56     XAresult ret = XA_RESULT_SUCCESS;
    53     XAresult ret = XA_RESULT_SUCCESS;
    57     XAPlayItfImpl* impl = GetImpl(self);
    54     XAPlayItfImpl* impl = GetImpl(self);
    58     DEBUG_API_A1("->XAPlayItfImpl_SetPlayState %s",PLAYSTATENAME(state));
    55     DEBUG_API_A1_STR("->XAPlayItfImpl_SetPlayState %s",PLAYSTATENAME(state));
    59 
    56 
    60     if (!impl || state < XA_PLAYSTATE_STOPPED || state > XA_PLAYSTATE_PLAYING)
    57     if (!impl || state < XA_PLAYSTATE_STOPPED || state > XA_PLAYSTATE_PLAYING)
    61         {
    58         {
    62         /* invalid parameter */
    59         /* invalid parameter */
    63         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
    60         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   105                 pState);
   102                 pState);
   106         }
   103         }
   107 
   104 
   108     XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer );
   105     XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer );
   109 
   106 
   110     DEBUG_API_A1("<-XAPlayItfImpl_GetPlayState: %s",PLAYSTATENAME(impl->playbackState));
   107     //DEBUG_API_A1_STR("<-XAPlayItfImpl_GetPlayState: %s",PLAYSTATENAME(pState));
   111     return ret;
   108     return ret;
   112     }
   109     }
   113 
   110 
   114 /**
   111 /**
   115  * XAresult XAPlayItfImpl_GetDuration(XAPlayItf self, XAmillisecond *pMsec)
   112  * XAresult XAPlayItfImpl_GetDuration(XAPlayItf self, XAmillisecond *pMsec)
   494                 = XAPlayItfImpl_SetPositionUpdatePeriod;
   491                 = XAPlayItfImpl_SetPositionUpdatePeriod;
   495 
   492 
   496         /* init variables */
   493         /* init variables */
   497         self->callback = NULL;
   494         self->callback = NULL;
   498         self->cbcontext = NULL;
   495         self->cbcontext = NULL;
   499         self->playbackState = XA_PLAYSTATE_STOPPED;
       
   500         self->eventFlags = 0;
   496         self->eventFlags = 0;
   501         self->markerPosition = NO_POSITION;
   497         self->markerPosition = NO_POSITION;
   502         self->positionUpdatePeriod = PLAYITF_DEFAULT_UPDATE_PERIOD;
   498         self->positionUpdatePeriod = PLAYITF_DEFAULT_UPDATE_PERIOD;
   503         self->lastPosition = START_POSITION;
   499         self->lastPosition = START_POSITION;
   504         /*self->adapCtx = impl->curAdaptCtx;*/
   500         /*self->adapCtx = impl->curAdaptCtx;*/
   521  * Description: Free all resources reserved at XAPlayItfImpl_Create
   517  * Description: Free all resources reserved at XAPlayItfImpl_Create
   522  */
   518  */
   523 void XAPlayItfImpl_Free(XAPlayItfImpl* self)
   519 void XAPlayItfImpl_Free(XAPlayItfImpl* self)
   524     {
   520     {
   525     DEBUG_API("->XAPlayItfImpl_Free");
   521     DEBUG_API("->XAPlayItfImpl_Free");
   526     assert(self==self->self);
       
   527     /*    XAAdaptationBase_RemoveEventHandler( self->adapCtx, &XAPlayItfImpl_AdaptCb );*/
   522     /*    XAAdaptationBase_RemoveEventHandler( self->adapCtx, &XAPlayItfImpl_AdaptCb );*/
   528     XAAdaptationBase_RemoveEventHandler(self->pObjImpl->curAdaptCtx,
   523     XAAdaptationBase_RemoveEventHandler(self->pObjImpl->curAdaptCtx,
   529             &XAPlayItfImpl_AdaptCb);
   524             &XAPlayItfImpl_AdaptCb);
   530     free(self);
   525     free(self);
   531     DEBUG_API("<-XAPlayItfImpl_Free");
   526     DEBUG_API("<-XAPlayItfImpl_Free");
   537 void XAPlayItfImpl_AdaptCb(void *pHandlerCtx, XAAdaptEvent *event)
   532 void XAPlayItfImpl_AdaptCb(void *pHandlerCtx, XAAdaptEvent *event)
   538     {
   533     {
   539     XAPlayItfImpl* impl = (XAPlayItfImpl*) pHandlerCtx;
   534     XAPlayItfImpl* impl = (XAPlayItfImpl*) pHandlerCtx;
   540 
   535 
   541     DEBUG_API("->XAPlayItfImpl_AdaptCb");
   536     DEBUG_API("->XAPlayItfImpl_AdaptCb");
   542     XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   537     //XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   543     if (!impl)
   538     if (!impl)
   544         {
   539         {
   545         DEBUG_ERR("XAPlayItfImpl_AdaptCb, invalid context pointer!");
   540         DEBUG_ERR("XAPlayItfImpl_AdaptCb, invalid context pointer!");
   546         DEBUG_API("<-XAPlayItfImpl_AdaptCb");
   541         DEBUG_API("<-XAPlayItfImpl_AdaptCb");
   547         XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   542         //XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   548         return;
   543         return;
   549         }
   544         }
   550     assert(event);
   545 
   551 
   546     if (impl->pObjImpl->curAdaptCtx->fwtype == FWMgrFWMMF)
   552     if (impl->pObjImpl->curAdaptCtx->fwtype == FWMgrFWMMF)
   547         {
   553         {
   548         if(impl->callback)
   554         impl->callback(impl->cbPtrToSelf, impl->cbcontext, event->eventid);
   549             {
       
   550             impl->callback(impl->cbPtrToSelf, impl->cbcontext, event->eventid);
       
   551             }
   555         DEBUG_API("<-XAPlayItfImpl_AdaptCb");
   552         DEBUG_API("<-XAPlayItfImpl_AdaptCb");
   556         XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   553         //XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   557         return;
   554         return;
   558         }
   555         }
   559 
   556 
   560     DEBUG_API("<-XAPlayItfImpl_AdaptCb");
   557     DEBUG_API("<-XAPlayItfImpl_AdaptCb");
   561     XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   558     //XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaPlayer );
   562     }
   559     }
   563 
   560