Beispiel #1
0
/**
 * Ambient Light Sensor filter for display brightness
 *
 * @param data The un-processed brightness setting (1-5) stored in a pointer
 * @return The processed brightness value (percentage) stored in a pointer
 */
static gpointer display_brightness_filter(gpointer data)
{
	int setting = GPOINTER_TO_INT(data);

	if( setting < 1 )   setting =   1; else
	if( setting > 100 ) setting = 100;

	int brightness = setting;

	int max_prof = lut_display.profiles - 1;

	if( max_prof < 0 )
		goto EXIT;

	if( !use_als_flag )
		goto EXIT;

	if( als_lux_latest < 0 )
		goto EXIT;

	als_profile_t prof = mce_xlat_int(1,100, 0,max_prof, setting);

	brightness = als_filter_run(&lut_display, prof, als_lux_latest);

EXIT:
	mce_log(LL_DEBUG, "in=%d -> out=%d", setting, brightness);
	return GINT_TO_POINTER(brightness);
}
Beispiel #2
0
/**
 * Ambient Light Sensor filter for keyboard backlight brightness
 *
 * @param data The un-processed brightness setting (1-5) stored in a pointer
 * @return The processed brightness value
 */
static gpointer key_backlight_filter(gpointer data)
{
	int value = GPOINTER_TO_INT(data);
	int scale = 100;

	if( als_lux_latest < 0 )
		goto EXIT;

	scale = als_filter_run(&lut_key, ALS_PROFILE_NORMAL, als_lux_latest);

EXIT:
	return GINT_TO_POINTER(value * scale / 100);
}
Beispiel #3
0
/**
 * Ambient Light Sensor filter for LED brightness
 *
 * @param data The un-processed brightness setting (1-5) stored in a pointer
 * @return The processed brightness value
 */
static gpointer led_brightness_filter(gpointer data)
{
	int value = GPOINTER_TO_INT(data);
	int scale = 40;

	if( lut_led.profiles < 1 )
		goto EXIT;

	if( als_lux_latest < 0 )
		goto EXIT;

	scale = als_filter_run(&lut_led, 0, als_lux_latest);

EXIT:
	return GINT_TO_POINTER(value * scale / 100);
}
Beispiel #4
0
/** Ambient Light Sensor filter for LPM brightness
 *
 * @param data The un-processed brightness setting (1-100) stored in a pointer
 * @return The processed brightness value
 */
static gpointer lpm_brightness_filter(gpointer data)
{
	int value = GPOINTER_TO_INT(data);

	if( lut_lpm.profiles < 1 )
		goto EXIT;

	if( als_lux_latest < 0 )
		goto EXIT;

	/* Note: Input value is ignored and output is
	 *       determined only by the als config */
	value = als_filter_run(&lut_lpm, 0, als_lux_latest);

EXIT:
	return GINT_TO_POINTER(value);
}
Beispiel #5
0
/**
 * Ambient Light Sensor filter for display brightness
 *
 * @param data The un-processed brightness setting (1-5) stored in a pointer
 * @return The processed brightness value (percentage) stored in a pointer
 */
static gpointer display_brightness_filter(gpointer data)
{
	int setting = GPOINTER_TO_INT(data);

	if( setting < 1 ) setting = 1; else
	if( setting > 5 ) setting = 5;

	int brightness = setting * 20;

	if( !use_als_flag )
		goto EXIT;

	if( als_lux_latest < 0 )
		goto EXIT;

	als_profile_t prof = setting - 1;
	brightness = als_filter_run(&lut_display, prof, als_lux_latest);

EXIT:
	mce_log(LL_DEBUG, "in=%d -> out=%d", setting, brightness);
	return GINT_TO_POINTER(brightness);
}