static OMX_ERRORTYPE httpr_mp3port_GetConfig (const void *ap_obj, OMX_HANDLETYPE ap_hdl, OMX_INDEXTYPE a_index, OMX_PTR ap_struct) { const httpr_mp3port_t *p_obj = ap_obj; OMX_ERRORTYPE rc = OMX_ErrorNone; TIZ_TRACE (ap_hdl, "[%s]...", tiz_idx_to_str (a_index)); assert (NULL != p_obj); if (OMX_TizoniaIndexConfigIcecastMetadata == a_index) { OMX_TIZONIA_ICECASTMETADATATYPE *p_metadata = (OMX_TIZONIA_ICECASTMETADATATYPE *)ap_struct; p_metadata->nVersion.nVersion = OMX_VERSION; if (NULL != p_obj->p_stream_title_) { OMX_U32 metadata_buf_size = p_metadata->nSize - sizeof(OMX_U32) - sizeof(OMX_VERSIONTYPE) - sizeof(OMX_U32); OMX_U32 stream_title_len = strnlen ( p_obj->p_stream_title_, OMX_TIZONIA_MAX_SHOUTCAST_METADATA_SIZE); assert (stream_title_len < OMX_TIZONIA_MAX_SHOUTCAST_METADATA_SIZE); if (metadata_buf_size < (stream_title_len + 1) && metadata_buf_size < OMX_TIZONIA_MAX_SHOUTCAST_METADATA_SIZE) { rc = OMX_ErrorBadParameter; } else { strncpy ((char *)p_metadata->cStreamTitle, p_obj->p_stream_title_, stream_title_len); p_metadata->cStreamTitle[stream_title_len] = '\000'; } } else { p_metadata->cStreamTitle[0] = '\000'; } } else { /* Delegate to the base port */ rc = super_GetConfig (typeOf (ap_obj, "httprmp3port"), ap_obj, ap_hdl, a_index, ap_struct); } return rc; }
static OMX_ERRORTYPE demuxer_cfgport_GetConfig (const void * ap_obj, OMX_HANDLETYPE ap_hdl, OMX_INDEXTYPE a_index, OMX_PTR ap_struct) { tiz_demuxercfgport_t * p_obj = (tiz_demuxercfgport_t *) ap_obj; OMX_ERRORTYPE rc = OMX_ErrorNone; TIZ_TRACE (ap_hdl, "GetConfig [%s]...", tiz_idx_to_str (a_index)); assert (p_obj); switch (a_index) { case OMX_IndexConfigTimePosition: case OMX_IndexConfigTimeSeekMode: { /* Only the processor knows about current position or seek mode. So lets get the processor to fill this info for us. */ void * p_prc = tiz_get_prc (ap_hdl); assert (p_prc); if (OMX_ErrorNone != (rc = tiz_api_GetConfig (p_prc, ap_hdl, a_index, ap_struct))) { TIZ_ERROR (ap_hdl, "[%s] : Error retrieving [%s] " "from the processor", tiz_err_to_str (rc), tiz_idx_to_str (a_index)); } } break; default: { /* Delegate to the base port */ rc = super_GetConfig (typeOf (ap_obj, "tizdemuxercfgport"), ap_obj, ap_hdl, a_index, ap_struct); } }; return rc; }
static OMX_ERRORTYPE ivrport_GetConfig (const void * ap_obj, OMX_HANDLETYPE ap_hdl, OMX_INDEXTYPE a_index, OMX_PTR ap_struct) { const tiz_ivrport_t * p_obj = ap_obj; TIZ_TRACE (handleOf (ap_obj), "PORT [%d] GetConfig [%s]", tiz_port_index (ap_obj), tiz_idx_to_str (a_index)); assert (ap_obj); switch (a_index) { case OMX_IndexConfigCommonRotate: { OMX_CONFIG_ROTATIONTYPE * p_crotate = (OMX_CONFIG_ROTATIONTYPE *) ap_struct; *p_crotate = p_obj->crotate_; } break; case OMX_IndexConfigCommonMirror: { OMX_CONFIG_MIRRORTYPE * p_cmirror = (OMX_CONFIG_MIRRORTYPE *) ap_struct; *p_cmirror = p_obj->cmirror_; } break; case OMX_IndexConfigCommonScale: { OMX_CONFIG_SCALEFACTORTYPE * p_cscale = (OMX_CONFIG_SCALEFACTORTYPE *) ap_struct; *p_cscale = p_obj->cscale_; } break; case OMX_IndexConfigCommonInputCrop: { OMX_CONFIG_RECTTYPE * p_cincrop = (OMX_CONFIG_RECTTYPE *) ap_struct; *p_cincrop = p_obj->cincrop_; } break; case OMX_IndexConfigTimeRenderingDelay: { OMX_TIME_CONFIG_RENDERINGDELAYTYPE * p_crendelay = (OMX_TIME_CONFIG_RENDERINGDELAYTYPE *) ap_struct; *p_crendelay = p_obj->crendelay_; } break; default: { /* Try the parent's indexes */ return super_GetConfig (typeOf (ap_obj, "tizivrport"), ap_obj, ap_hdl, a_index, ap_struct); } }; return OMX_ErrorNone; }