Mercurial > mplayer.hg
diff command.c @ 29806:a5e7590ffdbd
Separate teletext from tv support.
Path by Francesco Lavra, francescolavra interfree it
author | cehoyos |
---|---|
date | Sat, 07 Nov 2009 12:31:05 +0000 |
parents | d287e2785570 |
children | e255f9571156 |
line wrap: on
line diff
--- a/command.c Sat Nov 07 11:15:26 2009 +0000 +++ b/command.c Sat Nov 07 12:31:05 2009 +0000 @@ -1889,8 +1889,7 @@ SET is GET+1 STEP is GET+2 */ - tvi_handle_t *tvh = mpctx->demuxer->priv; - if (mpctx->demuxer->type != DEMUXER_TYPE_TV || !tvh) + if (!mpctx->demuxer->teletext) return M_PROPERTY_UNAVAILABLE; if(!base_ioctl) return M_PROPERTY_ERROR; @@ -1899,31 +1898,30 @@ case M_PROPERTY_GET: if (!arg) return M_PROPERTY_ERROR; - result=tvh->functions->control(tvh->priv, base_ioctl, arg); + result=teletext_control(mpctx->demuxer->teletext, base_ioctl, arg); break; case M_PROPERTY_SET: if (!arg) return M_PROPERTY_ERROR; M_PROPERTY_CLAMP(prop, *(int *) arg); - result=tvh->functions->control(tvh->priv, base_ioctl+1, arg); + result=teletext_control(mpctx->demuxer->teletext, base_ioctl+1, arg); break; case M_PROPERTY_STEP_UP: case M_PROPERTY_STEP_DOWN: - result=tvh->functions->control(tvh->priv, base_ioctl, &val); + result=teletext_control(mpctx->demuxer->teletext, base_ioctl, &val); val += (arg ? *(int *) arg : 1) * (action == M_PROPERTY_STEP_DOWN ? -1 : 1); - result=tvh->functions->control(tvh->priv, base_ioctl+1, &val); + result=teletext_control(mpctx->demuxer->teletext, base_ioctl+1, &val); break; default: return M_PROPERTY_NOT_IMPLEMENTED; } - return result == TVI_CONTROL_TRUE ? M_PROPERTY_OK : M_PROPERTY_ERROR; + return result == VBI_CONTROL_TRUE ? M_PROPERTY_OK : M_PROPERTY_ERROR; } static int mp_property_teletext_mode(m_option_t * prop, int action, void *arg, MPContext * mpctx) { - tvi_handle_t *tvh = mpctx->demuxer->priv; int result; int val; @@ -1932,7 +1930,8 @@ if(result!=M_PROPERTY_OK) return result; - if(tvh->functions->control(tvh->priv, prop->priv, &val)==TVI_CONTROL_TRUE && val) + if(teletext_control(mpctx->demuxer->teletext, + (int)prop->priv, &val)==VBI_CONTROL_TRUE && val) mp_input_set_section("teletext"); else mp_input_set_section("tv"); @@ -1942,17 +1941,17 @@ static int mp_property_teletext_page(m_option_t * prop, int action, void *arg, MPContext * mpctx) { - tvi_handle_t *tvh = mpctx->demuxer->priv; int result; int val; - if (mpctx->demuxer->type != DEMUXER_TYPE_TV || !tvh) + if (!mpctx->demuxer->teletext) return M_PROPERTY_UNAVAILABLE; switch(action){ case M_PROPERTY_STEP_UP: case M_PROPERTY_STEP_DOWN: //This should be handled separately val = (arg ? *(int *) arg : 1) * (action == M_PROPERTY_STEP_DOWN ? -1 : 1); - result=tvh->functions->control(tvh->priv, TV_VBI_CONTROL_STEP_PAGE, &val); + result=teletext_control(mpctx->demuxer->teletext, + TV_VBI_CONTROL_STEP_PAGE, &val); break; default: result=mp_property_teletext_common(prop,action,arg,mpctx); @@ -2870,23 +2869,23 @@ if (mpctx->file_format == DEMUXER_TYPE_TV) tv_step_chanlist((tvi_handle_t *) (mpctx->demuxer->priv)); break; +#endif /* CONFIG_TV */ #ifdef CONFIG_TV_TELETEXT case MP_CMD_TV_TELETEXT_ADD_DEC: { - tvi_handle_t* tvh=(tvi_handle_t *)(mpctx->demuxer->priv); - if (mpctx->file_format == DEMUXER_TYPE_TV) - tvh->functions->control(tvh->priv,TV_VBI_CONTROL_ADD_DEC,&(cmd->args[0].v.s)); + if (mpctx->demuxer->teletext) + teletext_control(mpctx->demuxer->teletext,TV_VBI_CONTROL_ADD_DEC, + &(cmd->args[0].v.s)); break; } case MP_CMD_TV_TELETEXT_GO_LINK: { - tvi_handle_t* tvh=(tvi_handle_t *)(mpctx->demuxer->priv); - if (mpctx->file_format == DEMUXER_TYPE_TV) - tvh->functions->control(tvh->priv,TV_VBI_CONTROL_GO_LINK,&(cmd->args[0].v.i)); + if (mpctx->demuxer->teletext) + teletext_control(mpctx->demuxer->teletext,TV_VBI_CONTROL_GO_LINK, + &(cmd->args[0].v.i)); break; } #endif /* CONFIG_TV_TELETEXT */ -#endif /* CONFIG_TV */ case MP_CMD_SUB_LOAD: if (sh_video) {