mirror of
https://github.com/mpv-player/mpv
synced 2024-09-09 01:16:56 +02:00
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.
This commit is contained in:
parent
530df550e4
commit
dbe080ec9f
@ -103,13 +103,15 @@ static int control(struct vf_instance_s* vf, int request, void* data)
|
||||
{
|
||||
vf_equalizer_t *eq=data;
|
||||
if(!vo_config_count) return CONTROL_FALSE; // vo not configured?
|
||||
return((video_out->control(VOCTRL_SET_EQUALIZER, eq->item, eq->value) == VO_TRUE) ? CONTROL_TRUE : CONTROL_FALSE);
|
||||
struct voctrl_set_equalizer_args param = {eq->item, eq->value};
|
||||
return video_out->control(VOCTRL_SET_EQUALIZER, ¶m) == VO_TRUE;
|
||||
}
|
||||
case VFCTRL_GET_EQUALIZER:
|
||||
{
|
||||
vf_equalizer_t *eq=data;
|
||||
if(!vo_config_count) return CONTROL_FALSE; // vo not configured?
|
||||
return((video_out->control(VOCTRL_GET_EQUALIZER, eq->item, &eq->value) == VO_TRUE) ? CONTROL_TRUE : CONTROL_FALSE);
|
||||
struct voctrl_get_equalizer_args param = {eq->item, &eq->value};
|
||||
return video_out->control(VOCTRL_GET_EQUALIZER, ¶m) == VO_TRUE;
|
||||
}
|
||||
#ifdef USE_ASS
|
||||
case VFCTRL_INIT_EOSD:
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
struct voctrl_get_equalizer_args *args = data;
|
||||
|
||||
va_start(ap, data);
|
||||
val = va_arg(ap, int*);
|
||||
va_end(ap);
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
||||
va_start(ap, data);
|
||||
value = va_arg(ap, int*);
|
||||
va_end(ap);
|
||||
struct voctrl_get_equalizer_args *args = data;
|
||||
|
||||
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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user