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) {