# HG changeset patch # User reimar # Date 1200155441 0 # Node ID b13f792efe7bc9d17c5ee4ee3827f3a5bd7b9d37 # Parent d576b679747b2b12afa7b995fa758989365a353d Use a transform_color function to reduce code duplication diff -r d576b679747b -r b13f792efe7b libvo/x11_common.c --- a/libvo/x11_common.c Sat Jan 12 16:05:04 2008 +0000 +++ b/libvo/x11_common.c Sat Jan 12 16:30:41 2008 +0000 @@ -1959,6 +1959,17 @@ static int vo_brightness = 0; static int vo_contrast = 0; +static int transform_color(float val, + float brightness, float contrast, float gamma) { + float s = pow(val, gamma); + s = (s - 0.5) * contrast + 0.5; + s += brightness; + if (s < 0) + s = 0; + if (s > 1) + s = 1; + return (unsigned short) (s * 65535); +} uint32_t vo_x11_set_equalizer(char *name, int value) { @@ -2001,34 +2012,9 @@ /* now recalculate the colormap using the newly set value */ for (k = 0; k < cm_size; k++) { - float s; - - s = pow(rf * k, gamma); - s = (s - 0.5) * contrast + 0.5; - s += brightness; - if (s < 0) - s = 0; - if (s > 1) - s = 1; - cols[k].red = (unsigned short) (s * 65535); - - s = pow(gf * k, gamma); - s = (s - 0.5) * contrast + 0.5; - s += brightness; - if (s < 0) - s = 0; - if (s > 1) - s = 1; - cols[k].green = (unsigned short) (s * 65535); - - s = pow(bf * k, gamma); - s = (s - 0.5) * contrast + 0.5; - s += brightness; - if (s < 0) - s = 0; - if (s > 1) - s = 1; - cols[k].blue = (unsigned short) (s * 65535); + cols[k].red = transform_color(rf * k, brightness, contrast, gamma); + cols[k].green = transform_color(gf * k, brightness, contrast, gamma); + cols[k].blue = transform_color(bf * k, brightness, contrast, gamma); } XStoreColors(mDisplay, cmap, cols, cm_size);