From dbe080ec9f05cd216f4217c81409a37d3f4db969 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Wed, 2 Apr 2008 18:51:38 +0300 Subject: Change VOCTRL_[GET|SET]_EQUALIZER argument passing These were the only voctrl types with more than one argument. The second argument was passed using variable arguments. Change them to use a single argument (address of a struct containing both old arguments). This makes forwarding the arguments to other functions easier and allows simplifying code. --- libvo/mga_common.c | 25 +++++++---------- libvo/video_out.h | 8 ++++++ libvo/vo_aa.c | 31 +++++++-------------- libvo/vo_cvidix.c | 18 ------------- libvo/vo_dfbmga.c | 20 +++----------- libvo/vo_directfb2.c | 20 +++----------- libvo/vo_directx.c | 18 +++---------- libvo/vo_dxr3.c | 38 ++++++++++---------------- libvo/vo_fbdev.c | 21 +-------------- libvo/vo_gl.c | 76 +++++++++++++++++++++++----------------------------- libvo/vo_gl2.c | 18 +++---------- libvo/vo_svga.c | 27 +------------------ libvo/vo_vesa.c | 27 +------------------ libvo/vo_winvidix.c | 22 --------------- libvo/vo_x11.c | 20 +++----------- libvo/vo_xv.c | 22 +++------------ libvo/vo_xvidix.c | 24 ----------------- libvo/vo_xvmc.c | 20 +++----------- libvo/vosub_vidix.c | 47 +++++++++++++------------------- 19 files changed, 126 insertions(+), 376 deletions(-) (limited to 'libvo') diff --git a/libvo/mga_common.c b/libvo/mga_common.c index b150b18012..1677104c9e 100644 --- a/libvo/mga_common.c +++ b/libvo/mga_common.c @@ -240,11 +240,12 @@ static int control(uint32_t request, void *data, ...) return draw_image(data); case VOCTRL_SET_EQUALIZER: { - va_list ap; short value; uint32_t luma,prev; + struct voctrl_set_equalizer_args *args = data; - if ( strcmp( data,"brightness" ) && strcmp( data,"contrast" ) ) return VO_FALSE; + if (strcmp(args->name, "brightness") && strcmp(args->name, "contrast")) + return VO_FALSE; if (ioctl(f,MGA_VID_GET_LUMA,&prev)) { perror("Error in mga_vid_config ioctl()"); @@ -254,15 +255,13 @@ static int control(uint32_t request, void *data, ...) // printf("GET: 0x%4X 0x%4X \n",(prev>>16),(prev&0xffff)); - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); + value = args->value; // printf("value: %d -> ",value); value=((value+100)*255)/200-128; // maps -100=>-128 and +100=>127 // printf("%d \n",value); - if(!strcmp(data,"contrast")) + if (!strcmp(args->name, "contrast")) luma = (prev&0xFFFF0000)|(value&0xFFFF); else luma = (prev&0xFFFF)|(value<<16); @@ -278,12 +277,12 @@ static int control(uint32_t request, void *data, ...) case VOCTRL_GET_EQUALIZER: { - va_list ap; - int * value; short val; uint32_t luma; + struct voctrl_get_equalizer_args *args = data; - if ( strcmp( data,"brightness" ) && strcmp( data,"contrast" ) ) return VO_FALSE; + if (strcmp(args->name, "brightness") && strcmp(args->name, "contrast")) + return VO_FALSE; if (ioctl(f,MGA_VID_GET_LUMA,&luma)) { perror("Error in mga_vid_config ioctl()"); @@ -291,16 +290,12 @@ static int control(uint32_t request, void *data, ...) return VO_FALSE; } - if ( !strcmp( data,"contrast" ) ) + if (!strcmp(args->name, "contrast")) val=(luma & 0xFFFF); else val=(luma >> 16); - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - - *value = (val*200)/255; + *args->valueptr = (val*200)/255; return VO_TRUE; } diff --git a/libvo/video_out.h b/libvo/video_out.h index 48799c484d..ae9a1c3e03 100644 --- a/libvo/video_out.h +++ b/libvo/video_out.h @@ -47,7 +47,15 @@ #define VOCTRL_SET_PANSCAN 16 /* equalizer controls */ #define VOCTRL_SET_EQUALIZER 17 +struct voctrl_set_equalizer_args { + const char *name; + int value; +}; #define VOCTRL_GET_EQUALIZER 18 +struct voctrl_get_equalizer_args { + const char *name; + int *valueptr; +}; //#define VOCTRL_GUI_NOWINDOW 19 /* Frame duplication */ #define VOCTRL_DUPLICATE_FRAME 20 diff --git a/libvo/vo_aa.c b/libvo/vo_aa.c index 77c545bbb6..8ba01d6569 100644 --- a/libvo/vo_aa.c +++ b/libvo/vo_aa.c @@ -724,31 +724,20 @@ static int control(uint32_t request, void *data, ...) case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); case VOCTRL_SET_EQUALIZER: { - va_list ap; - int val; - - va_start(ap, data); - val = va_arg(ap, int); - va_end(ap); - - if(strcmp((char*)data,"contrast") == 0) - p->contrast = ( val + 100 ) * 64 / 100; - else if(strcmp((char*)data,"brightness") == 0) - p->bright = ( val + 100) * 128 / 100; + struct voctrl_set_equalizer_args *args = data; + if (strcmp(args->name, "contrast") == 0) + p->contrast = (args->value + 100) * 64 / 100; + else if (strcmp(args->name, "brightness") == 0) + p->bright = (args->value + 100) * 128 / 100; return VO_TRUE; } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int* val; - - va_start(ap, data); - val = va_arg(ap, int*); - va_end(ap); + struct voctrl_get_equalizer_args *args = data; - if(strcmp((char*)data,"contrast") == 0) - *val = (p->contrast - 64) * 100 / 64; - else if(strcmp((char*)data,"brightness") == 0) - *val = (p->bright - 128) * 100 / 128; + if (strcmp(args->name, "contrast") == 0) + *args->valueptr = (p->contrast - 64) * 100 / 64; + else if (strcmp(args->name, "brightness") == 0) + *args->valueptr = (p->bright - 128) * 100 / 128; return VO_TRUE; } diff --git a/libvo/vo_cvidix.c b/libvo/vo_cvidix.c index 7dd74ee07b..9b6c593fb3 100644 --- a/libvo/vo_cvidix.c +++ b/libvo/vo_cvidix.c @@ -165,24 +165,6 @@ static int control(uint32_t request, void *data, ...){ else vo_fs=1; setup_vidix(); return VO_TRUE; - case VOCTRL_SET_EQUALIZER: - { - va_list ap; - int value; - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - return vidix_control(request, data, value); - } - case VOCTRL_GET_EQUALIZER: - { - va_list ap; - int *value; - va_start(ap, data); - value = va_arg(ap, int *); - va_end(ap); - return vidix_control(request, data, value); - } } return vidix_control(request, data); } diff --git a/libvo/vo_dfbmga.c b/libvo/vo_dfbmga.c index ee381d020e..ee3bf7489b 100644 --- a/libvo/vo_dfbmga.c +++ b/libvo/vo_dfbmga.c @@ -1399,25 +1399,13 @@ control( uint32_t request, void *data, ... ) case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; - - va_start( ap, data ); - value = va_arg( ap, int ); - va_end( ap ); - - return set_equalizer( data, value ); + struct voctrl_set_equalizer_args *args = data; + return set_equalizer(args->name, args->value); } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; - - va_start( ap, data ); - value = va_arg( ap, int* ); - va_end( ap ); - - return get_equalizer( data, value ); + struct voctrl_get_equalizer_args *args = data; + return get_equalizer(args->name, args->valueptr); } } diff --git a/libvo/vo_directfb2.c b/libvo/vo_directfb2.c index a211cad37c..a9bc40cdc5 100644 --- a/libvo/vo_directfb2.c +++ b/libvo/vo_directfb2.c @@ -1422,25 +1422,13 @@ static int control(uint32_t request, void *data, ...) return put_image(data); case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - - return(directfb_set_video_eq(data, value)); + struct voctrl_set_equalizer_args *args = data; + return directfb_set_video_eq(args->name, args->value); } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - - return(directfb_get_video_eq(data, value)); + struct voctrl_get_equalizer_args *args = data; + return directfb_get_video_eq(args->name, args->valueptr); } }; return VO_NOTIMPL; diff --git a/libvo/vo_directx.c b/libvo/vo_directx.c index 356304ce6e..a110c48468 100644 --- a/libvo/vo_directx.c +++ b/libvo/vo_directx.c @@ -1564,22 +1564,12 @@ static int control(uint32_t request, void *data, ...) return VO_TRUE; } case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - return color_ctrl_set(data, value); + struct voctrl_set_equalizer_args *args = data; + return color_ctrl_set(args->name, args->value); } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - return color_ctrl_get(data, value); + struct voctrl_get_equalizer_args *args = data; + return color_ctrl_get(args->name, args->valueptr); } case VOCTRL_UPDATE_SCREENINFO: if (vidmode) { diff --git a/libvo/vo_dxr3.c b/libvo/vo_dxr3.c index 288a7a7e20..a48c7becbf 100644 --- a/libvo/vo_dxr3.c +++ b/libvo/vo_dxr3.c @@ -240,22 +240,17 @@ static int control(uint32_t request, void *data, ...) } case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; em8300_bcs_t bcs; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); + struct voctrl_set_equalizer_args *args = data; if (ioctl(fd_control, EM8300_IOCTL_GETBCS, &bcs) < 0) return VO_FALSE; - if (!strcasecmp(data, "brightness")) - bcs.brightness = (value+100)*5; - else if (!strcasecmp(data, "contrast")) - bcs.contrast = (value+100)*5; - else if (!strcasecmp(data, "saturation")) - bcs.saturation = (value+100)*5; + if (!strcasecmp(args->name, "brightness")) + bcs.brightness = (args->value+100)*5; + else if (!strcasecmp(args->name, "contrast")) + bcs.contrast = (args->value+100)*5; + else if (!strcasecmp(args->name, "saturation")) + bcs.saturation = (args->value+100)*5; else return VO_FALSE; if (ioctl(fd_control, EM8300_IOCTL_SETBCS, &bcs) < 0) @@ -264,23 +259,18 @@ static int control(uint32_t request, void *data, ...) } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; em8300_bcs_t bcs; + struct voctrl_get_equalizer_args *args = data; - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - if (ioctl(fd_control, EM8300_IOCTL_GETBCS, &bcs) < 0) return VO_FALSE; - if (!strcasecmp(data, "brightness")) - *value = (bcs.brightness/5)-100; - else if (!strcasecmp(data, "contrast")) - *value = (bcs.contrast/5)-100; - else if (!strcasecmp(data, "saturation")) - *value = (bcs.saturation/5)-100; + if (!strcasecmp(args->name, "brightness")) + *args->valueptr = (bcs.brightness/5)-100; + else if (!strcasecmp(args->name, "contrast")) + *args->valueptr = (bcs.contrast/5)-100; + else if (!strcasecmp(args->name, "saturation")) + *args->valueptr = (bcs.saturation/5)-100; else return VO_FALSE; return VO_TRUE; diff --git a/libvo/vo_fbdev.c b/libvo/vo_fbdev.c index 82e6344e41..12f48fdeea 100644 --- a/libvo/vo_fbdev.c +++ b/libvo/vo_fbdev.c @@ -1176,27 +1176,8 @@ static int control(uint32_t request, void *data, ...) if (vidix_name) { switch (request) { case VOCTRL_SET_EQUALIZER: - { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - - return vidix_control(request, data, value); - } case VOCTRL_GET_EQUALIZER: - { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - - return vidix_control(request, data, value); - } + return vidix_control(request, data); } } #endif diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c index 500bb0d8bb..36fbff4186 100644 --- a/libvo/vo_gl.c +++ b/libvo/vo_gl.c @@ -941,35 +941,31 @@ static int control(uint32_t request, void *data, ...) return VO_TRUE; case VOCTRL_GET_EQUALIZER: if (image_format == IMGFMT_YV12) { - va_list va; - int *value; - va_start(va, data); - value = va_arg(va, int *); - va_end(va); - if (strcasecmp(data, "brightness") == 0) { - *value = eq_bri; + struct voctrl_get_equalizer_args *args = data; + if (strcasecmp(args->name, "brightness") == 0) { + *args->valueptr = eq_bri; if (use_yuv == YUV_CONVERSION_COMBINERS) break; // not supported - } else if (strcasecmp(data, "contrast") == 0) { - *value = eq_cont; + } else if (strcasecmp(args->name, "contrast") == 0) { + *args->valueptr = eq_cont; if (use_yuv == YUV_CONVERSION_COMBINERS) break; // not supported - } else if (strcasecmp(data, "saturation") == 0) { - *value = eq_sat; - } else if (strcasecmp(data, "hue") == 0) { - *value = eq_hue; - } else if (strcasecmp(data, "gamma") == 0) { - *value = eq_rgamma; + } else if (strcasecmp(args->name, "saturation") == 0) { + *args->valueptr = eq_sat; + } else if (strcasecmp(args->name, "hue") == 0) { + *args->valueptr = eq_hue; + } else if (strcasecmp(args->name, "gamma") == 0) { + *args->valueptr = eq_rgamma; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported - } else if (strcasecmp(data, "red_gamma") == 0) { - *value = eq_rgamma; + } else if (strcasecmp(args->name, "red_gamma") == 0) { + *args->valueptr = eq_rgamma; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported - } else if (strcasecmp(data, "green_gamma") == 0) { - *value = eq_ggamma; + } else if (strcasecmp(args->name, "green_gamma") == 0) { + *args->valueptr = eq_ggamma; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported - } else if (strcasecmp(data, "blue_gamma") == 0) { - *value = eq_bgamma; + } else if (strcasecmp(args->name, "blue_gamma") == 0) { + *args->valueptr = eq_bgamma; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported } @@ -978,35 +974,31 @@ static int control(uint32_t request, void *data, ...) break; case VOCTRL_SET_EQUALIZER: if (image_format == IMGFMT_YV12) { - va_list va; - int value; - va_start(va, data); - value = va_arg(va, int); - va_end(va); - if (strcasecmp(data, "brightness") == 0) { - eq_bri = value; + struct voctrl_set_equalizer_args *args = data; + if (strcasecmp(args->name, "brightness") == 0) { + eq_bri = args->value; if (use_yuv == YUV_CONVERSION_COMBINERS) break; // not supported - } else if (strcasecmp(data, "contrast") == 0) { - eq_cont = value; + } else if (strcasecmp(args->name, "contrast") == 0) { + eq_cont = args->value; if (use_yuv == YUV_CONVERSION_COMBINERS) break; // not supported - } else if (strcasecmp(data, "saturation") == 0) { - eq_sat = value; - } else if (strcasecmp(data, "hue") == 0) { - eq_hue = value; - } else if (strcasecmp(data, "gamma") == 0) { - eq_rgamma = eq_ggamma = eq_bgamma = value; + } else if (strcasecmp(args->name, "saturation") == 0) { + eq_sat = args->value; + } else if (strcasecmp(args->name, "hue") == 0) { + eq_hue = args->value; + } else if (strcasecmp(args->name, "gamma") == 0) { + eq_rgamma = eq_ggamma = eq_bgamma = args->value; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported - } else if (strcasecmp(data, "red_gamma") == 0) { - eq_rgamma = value; + } else if (strcasecmp(args->name, "red_gamma") == 0) { + eq_rgamma = args->value; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported - } else if (strcasecmp(data, "green_gamma") == 0) { - eq_ggamma = value; + } else if (strcasecmp(args->name, "green_gamma") == 0) { + eq_ggamma = args->value; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported - } else if (strcasecmp(data, "blue_gamma") == 0) { - eq_bgamma = value; + } else if (strcasecmp(args->name, "blue_gamma") == 0) { + eq_bgamma = args->value; if (use_yuv == YUV_CONVERSION_COMBINERS || use_yuv == YUV_CONVERSION_FRAGMENT) break; // not supported } diff --git a/libvo/vo_gl2.c b/libvo/vo_gl2.c index aa198cd102..d83c5a3363 100644 --- a/libvo/vo_gl2.c +++ b/libvo/vo_gl2.c @@ -898,23 +898,13 @@ static int control(uint32_t request, void *data, ...) #ifndef GL_WIN32 case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - return vo_x11_set_equalizer(data, value); + struct voctrl_set_equalizer_args *args = data; + return vo_x11_set_equalizer(args->name, args->value); } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int *); - va_end(ap); - return vo_x11_get_equalizer(data, value); + struct voctrl_get_equalizer_args *args = data; + return vo_x11_get_equalizer(args->name, args->valueptr); } #endif case VOCTRL_UPDATE_SCREENINFO: diff --git a/libvo/vo_svga.c b/libvo/vo_svga.c index e68dbf313e..9d38c8d4cd 100644 --- a/libvo/vo_svga.c +++ b/libvo/vo_svga.c @@ -362,33 +362,8 @@ static int control(uint32_t request, void *data, ...) } #ifdef CONFIG_VIDIX - if (vidix_name[0]) { - switch (request) { - case VOCTRL_SET_EQUALIZER: - { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - - return vidix_control(request, data, value); - } - case VOCTRL_GET_EQUALIZER: - { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - - return vidix_control(request, data, value); - } - } + if (vidix_name[0]) return vidix_control(request, data); - } #endif return VO_NOTIMPL; diff --git a/libvo/vo_vesa.c b/libvo/vo_vesa.c index 0eaa47b07b..f5eb0e11c0 100644 --- a/libvo/vo_vesa.c +++ b/libvo/vo_vesa.c @@ -1098,33 +1098,8 @@ static int control(uint32_t request, void *data, ...) } #ifdef CONFIG_VIDIX - if (vidix_name) { - switch (request) { - case VOCTRL_SET_EQUALIZER: - { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - - return vidix_control(request, data, (int *)value); - } - case VOCTRL_GET_EQUALIZER: - { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - - return vidix_control(request, data, value); - } - } + if (vidix_name) return vidix_control(request, data); - } #endif return VO_NOTIMPL; diff --git a/libvo/vo_winvidix.c b/libvo/vo_winvidix.c index e47169678a..97ff41dd36 100644 --- a/libvo/vo_winvidix.c +++ b/libvo/vo_winvidix.c @@ -337,28 +337,6 @@ static int control(uint32_t request, void *data, ...){ break; case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); - case VOCTRL_SET_EQUALIZER: - { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - - return vidix_control(request, data, (int *)value); - } - case VOCTRL_GET_EQUALIZER: - { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - - return vidix_control(request, data, value); - } } return vidix_control(request, data); // return VO_NOTIMPL; diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c index ca79dab24f..2b56ee48b6 100644 --- a/libvo/vo_x11.c +++ b/libvo/vo_x11.c @@ -764,25 +764,13 @@ static int control(uint32_t request, void *data, ...) return get_image(data); case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - - va_end(ap); - return vo_x11_set_equalizer(data, value); + struct voctrl_set_equalizer_args *args = data; + return vo_x11_set_equalizer(args->name, args->value); } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int *); - - va_end(ap); - return vo_x11_get_equalizer(data, value); + struct voctrl_get_equalizer_args *args = data; + return vo_x11_get_equalizer(args->name, args->valueptr); } case VOCTRL_ONTOP: vo_x11_ontop(); diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c index 2a3898889c..36d4d67940 100644 --- a/libvo/vo_xv.c +++ b/libvo/vo_xv.c @@ -886,27 +886,13 @@ static int control(uint32_t request, void *data, ...) return VO_TRUE; case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - - va_end(ap); - - return (vo_xv_set_eq(xv_port, data, value)); + struct voctrl_set_equalizer_args *args = data; + return vo_xv_set_eq(xv_port, args->name, args->value); } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int *); - - va_end(ap); - - return (vo_xv_get_eq(xv_port, data, value)); + struct voctrl_get_equalizer_args *args = data; + return vo_xv_get_eq(xv_port, args->name, args->valueptr); } case VOCTRL_ONTOP: vo_x11_ontop(); diff --git a/libvo/vo_xvidix.c b/libvo/vo_xvidix.c index 7a455dd695..fdd82d8b5c 100644 --- a/libvo/vo_xvidix.c +++ b/libvo/vo_xvidix.c @@ -494,30 +494,6 @@ static int control(uint32_t request, void *data, ...) set_window(0); } return VO_TRUE; - case VOCTRL_SET_EQUALIZER: - { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - - va_end(ap); - - return vidix_control(request, data, value); - } - case VOCTRL_GET_EQUALIZER: - { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int *); - - va_end(ap); - - return vidix_control(request, data, value); - } case VOCTRL_UPDATE_SCREENINFO: aspect_save_screenres(vo_screenwidth, vo_screenheight); return VO_TRUE; diff --git a/libvo/vo_xvmc.c b/libvo/vo_xvmc.c index e04fbd1332..efa4e5dd0d 100644 --- a/libvo/vo_xvmc.c +++ b/libvo/vo_xvmc.c @@ -1397,26 +1397,14 @@ static int control(uint32_t request, void *data, ... ) return VO_TRUE; case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; - - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - - return(vo_xv_set_eq(xv_port, data, value)); + struct voctrl_set_equalizer_args *args = data; + return vo_xv_set_eq(xv_port, args->name, args->value); } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; - - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); - - return(vo_xv_get_eq(xv_port, data, value)); + struct voctrl_get_equalizer_args *args = data; + return vo_xv_get_eq(xv_port, args->name, args->valueptr); } case VOCTRL_UPDATE_SCREENINFO: update_xinerama_info(); diff --git a/libvo/vosub_vidix.c b/libvo/vosub_vidix.c index 0357fe3c44..83a7fcc2be 100644 --- a/libvo/vosub_vidix.c +++ b/libvo/vosub_vidix.c @@ -553,36 +553,31 @@ uint32_t vidix_control(uint32_t request, void *data, ...) return VO_TRUE; case VOCTRL_SET_EQUALIZER: { - va_list ap; - int value; vidix_video_eq_t info; if(!video_on) return VO_FALSE; - va_start(ap, data); - value = va_arg(ap, int); - va_end(ap); - -// printf("vidix seteq %s -> %d \n",data,value); + + struct voctrl_set_equalizer_args *args = data; /* vidix eq ranges are -1000..1000 */ - if (!strcasecmp(data, "brightness")) + if (!strcasecmp(args->name, "brightness")) { - info.brightness = value*10; + info.brightness = args->value*10; info.cap = VEQ_CAP_BRIGHTNESS; } - else if (!strcasecmp(data, "contrast")) + else if (!strcasecmp(args->name, "contrast")) { - info.contrast = value*10; + info.contrast = args->value*10; info.cap = VEQ_CAP_CONTRAST; } - else if (!strcasecmp(data, "saturation")) + else if (!strcasecmp(args->name, "saturation")) { - info.saturation = value*10; + info.saturation = args->value*10; info.cap = VEQ_CAP_SATURATION; } - else if (!strcasecmp(data, "hue")) + else if (!strcasecmp(args->name, "hue")) { - info.hue = value*10; + info.hue = args->value*10; info.cap = VEQ_CAP_HUE; } @@ -592,38 +587,34 @@ uint32_t vidix_control(uint32_t request, void *data, ...) } case VOCTRL_GET_EQUALIZER: { - va_list ap; - int *value; vidix_video_eq_t info; if(!video_on) return VO_FALSE; if (vdlPlaybackGetEq(vidix_handler, &info) != 0) return VO_FALSE; - va_start(ap, data); - value = va_arg(ap, int*); - va_end(ap); + struct voctrl_get_equalizer_args *args = data; /* vidix eq ranges are -1000..1000 */ - if (!strcasecmp(data, "brightness")) + if (!strcasecmp(args->name, "brightness")) { if (info.cap & VEQ_CAP_BRIGHTNESS) - *value = info.brightness/10; + *args->valueptr = info.brightness/10; } - else if (!strcasecmp(data, "contrast")) + else if (!strcasecmp(args->name, "contrast")) { if (info.cap & VEQ_CAP_CONTRAST) - *value = info.contrast/10; + *args->valueptr = info.contrast/10; } - else if (!strcasecmp(data, "saturation")) + else if (!strcasecmp(args->name, "saturation")) { if (info.cap & VEQ_CAP_SATURATION) - *value = info.saturation/10; + *args->valueptr = info.saturation/10; } - else if (!strcasecmp(data, "hue")) + else if (!strcasecmp(args->name, "hue")) { if (info.cap & VEQ_CAP_HUE) - *value = info.hue/10; + *args->valueptr = info.hue/10; } return VO_TRUE; -- cgit v1.2.3