+ case INPUT_GET_POSITION:
+ pf = (double*)va_arg( args, double * );
+ *pf = var_GetFloat( p_input, "position" );
+ return VLC_SUCCESS;
+
+ case INPUT_SET_POSITION:
+ f = (double)va_arg( args, double );
+ return var_SetFloat( p_input, "position", f );
+
+ case INPUT_GET_LENGTH:
+ pi_64 = (int64_t*)va_arg( args, int64_t * );
+ *pi_64 = var_GetTime( p_input, "length" );
+ return VLC_SUCCESS;
+
+ case INPUT_GET_TIME:
+ pi_64 = (int64_t*)va_arg( args, int64_t * );
+ *pi_64 = var_GetTime( p_input, "time" );
+ return VLC_SUCCESS;
+
+ case INPUT_SET_TIME:
+ i_64 = (int64_t)va_arg( args, int64_t );
+ return var_SetTime( p_input, "time", i_64 );
+
+ case INPUT_GET_RATE:
+ pi_int = (int*)va_arg( args, int * );
+ *pi_int = INPUT_RATE_DEFAULT / var_GetFloat( p_input, "rate" );
+ return VLC_SUCCESS;
+
+ case INPUT_SET_RATE:
+ i_int = (int)va_arg( args, int );
+ return var_SetFloat( p_input, "rate",
+ (float)INPUT_RATE_DEFAULT / (float)i_int );
+
+ case INPUT_GET_STATE:
+ pi_int = (int*)va_arg( args, int * );
+ *pi_int = var_GetInteger( p_input, "state" );
+ return VLC_SUCCESS;
+
+ case INPUT_SET_STATE:
+ i_int = (int)va_arg( args, int );
+ return var_SetInteger( p_input, "state", i_int );
+
+ case INPUT_GET_AUDIO_DELAY:
+ pi_64 = (int64_t*)va_arg( args, int64_t * );
+ *pi_64 = var_GetTime( p_input, "audio-delay" );
+ return VLC_SUCCESS;
+
+ case INPUT_GET_SPU_DELAY:
+ pi_64 = (int64_t*)va_arg( args, int64_t * );
+ *pi_64 = var_GetTime( p_input, "spu-delay" );
+ return VLC_SUCCESS;
+
+ case INPUT_SET_AUDIO_DELAY:
+ i_64 = (int64_t)va_arg( args, int64_t );
+ return var_SetTime( p_input, "audio-delay", i_64 );
+
+ case INPUT_SET_SPU_DELAY:
+ i_64 = (int64_t)va_arg( args, int64_t );
+ return var_SetTime( p_input, "spu-delay", i_64 );
+
+ case INPUT_ADD_INFO: