diff options
Diffstat (limited to 'libmpcodecs/vf_vo.c')
-rw-r--r-- | libmpcodecs/vf_vo.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/libmpcodecs/vf_vo.c b/libmpcodecs/vf_vo.c index d5311375e6..9189010f6e 100644 --- a/libmpcodecs/vf_vo.c +++ b/libmpcodecs/vf_vo.c @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <stdarg.h> #include "../config.h" #include "../mp_msg.h" @@ -46,13 +47,37 @@ static int config(struct vf_instance_s* vf, return 1; } -static int control(struct vf_instance_s* vf, - int request, void* data){ +static int control(struct vf_instance_s* vf, int request, void* data, ...) +{ switch(request){ +#ifdef USE_OSD case VFCTRL_DRAW_OSD: if(!vo_config_count) return CONTROL_FALSE; // vo not configured? video_out->draw_osd(); return CONTROL_TRUE; +#endif + case VFCTRL_SET_EQUALIZER: + { + va_list ap; + int value; + + if(!vo_config_count) return CONTROL_FALSE; // vo not configured? + va_start(ap, data); + value = va_arg(ap, int); + va_end(ap); + return((video_out->control(VOCTRL_SET_EQUALIZER, data, (int *)value) == VO_TRUE) ? CONTROL_TRUE : CONTROL_FALSE); + } + case VFCTRL_GET_EQUALIZER: + { + va_list ap; + int value; + + if(!vo_config_count) return CONTROL_FALSE; // vo not configured? + va_start(ap, data); + value = va_arg(ap, int); + va_end(ap); + return((video_out->control(VOCTRL_GET_EQUALIZER, data, (int *)value) == VO_TRUE) ? CONTROL_TRUE : CONTROL_FALSE); + } } // return video_out->control(request,data); return CONTROL_UNKNOWN; |