Author: fmueller
Date: Tue Jul 20 08:13:35 2010
New Revision: 8969
URL: http://svn.slimdevices.com/jive?rev=8969&view=rev
Log:
Bug: 16365
Description: Ambient light sensor: Reduce reading value to 500ms (was 100ms)
Modified:
7.6/trunk/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
Modified:
7.6/trunk/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua?rev=8969&r1=8968&r2=8969&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
Tue Jul 20 08:13:35 2010
@@ -108,9 +108,10 @@
-- Automatic brightness timer rate
local BRIGHTNESS_REFRESH_RATE = 100
-- was 500
+local BRIGHTNESS_READ_RATE_DIVIDER = 5
-- This gives 2 times a seconds
-- Lux Value Smoothing
-local MAX_SMOOTHING_VALUES = math.floor( 4000 / BRIGHTNESS_REFRESH_RATE)
-- was 8
+local MAX_SMOOTHING_VALUES = math.floor( 4000 / (BRIGHTNESS_REFRESH_RATE *
BRIGHTNESS_READ_RATE_DIVIDER)) -- was 8
local luxSmooth = {}
-- Maximum number of brightness levels up/down per run of the timer
@@ -121,6 +122,7 @@
local brightCur = -1
local brightTarget = -1
local brightMin = MIN_BRIGHTNESS_LEVEL_INIT
+local brightReadRateDivider = 1
function init(self)
@@ -316,6 +318,7 @@
brightCur = MAX_BRIGHTNESS_LEVEL
brightTarget = MAX_BRIGHTNESS_LEVEL
brightMin = settings.brightnessMinimal
+ brightReadRateDivider = 1
self.brightPrev = self:getBrightness()
if self.brightPrev and self.brightPrev == 0 then
@@ -405,16 +408,26 @@
end
+-- This function is called every 100 ms to make the
+-- brightness ramping up / down smoothly
function doAutomaticBrightnessTimer(self)
- local ambient = sysReadNumber(self, "ambient")
-
- -- Use the table to smooth out ambient value spikes
- table.insert(luxSmooth, ambient)
- if( MAX_SMOOTHING_VALUES < #luxSmooth ) then
- table.remove(luxSmooth, 1)
- end
-
- ambient = self:getSmoothedLux(luxSmooth)
+ -- But only read ambient light sensor value
+ -- every 500 ms to reduce load
+ if brightReadRateDivider > 1 then
+ brightReadRateDivider = brightReadRateDivider - 1
+ else
+ brightReadRateDivider = BRIGHTNESS_READ_RATE_DIVIDER
+
+ local luxvalue = sysReadNumber(self, "ambient")
+
+ -- Use the table to smooth out ambient value spikes
+ table.insert(luxSmooth, luxvalue)
+ if( MAX_SMOOTHING_VALUES < #luxSmooth ) then
+ table.remove(luxSmooth, 1)
+ end
+ end
+
+ local ambient = self:getSmoothedLux(luxSmooth)
--[[
log:info("Ambient: " .. tostring(ambient))
@@ -989,7 +1002,7 @@
if value > brightTarget then
self:setBrightness( value)
else
- self:setBrightness( brightTarget)
+ self:setBrightness( math.floor( brightTarget))
end
-- done is true for 'go' and 'play' but we do not want
to leave
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins