static OMX_ERRORTYPE pause_state_mark (const void *ap_obj, OMX_HANDLETYPE ap_hdl, OMX_COMMANDTYPE a_cmd, OMX_U32 a_param1, OMX_PTR ap_cmd_data) { void *p_krn = tiz_get_krn (ap_hdl); /* Notify the kernel servant */ /* No need to notify the processor servant */ return tiz_api_SendCommand (p_krn, ap_hdl, a_cmd, a_param1, ap_cmd_data); }
static OMX_ERRORTYPE waitforresources_state_set (const void *ap_obj, OMX_HANDLETYPE ap_hdl, OMX_COMMANDTYPE a_cmd, OMX_U32 a_param1, OMX_PTR ap_cmd_data) { const tiz_waitforresources_t *p_obj = ap_obj; tiz_fsm_state_id_t new_state = EStateMax; OMX_ERRORTYPE omx_error = OMX_ErrorNone; assert (p_obj); assert (a_cmd == OMX_CommandStateSet); TIZ_TRACE (ap_hdl, "Requested transition to state [%s]...", tiz_fsm_state_to_str (a_param1)); /* Only allowed transitions is OMX_StateLoaded. */ switch (a_param1) { case OMX_StateLoaded: { new_state = (tiz_fsm_state_id_t)OMX_StateLoaded; break; } case OMX_StateWaitForResources: { return OMX_ErrorSameState; } default: { TIZ_ERROR (ap_hdl, "[OMX_ErrorIncorrectStateTransition] : ..."); return OMX_ErrorIncorrectStateTransition; } }; /* TODO: make state transition effective here? */ (void) new_state; /* if (OMX_ErrorNone != */ /* (omx_error = tiz_fsm_set_state */ /* (tiz_get_fsm (ap_hdl), new_state))) */ /* { */ /* return omx_error; */ /* } */ { void *p_prc = tiz_get_prc (ap_hdl); void *p_krn = tiz_get_krn (ap_hdl); /* First notify the kernel servant */ if (OMX_ErrorNone != (omx_error = tiz_api_SendCommand (p_krn, ap_hdl, a_cmd, a_param1, ap_cmd_data))) { return omx_error; } /* Now notify the processor servant */ if (OMX_ErrorNone != (omx_error = tiz_api_SendCommand (p_prc, ap_hdl, a_cmd, a_param1, ap_cmd_data))) { return omx_error; } } return omx_error; }