This is a follow-up to the first post and an updated description of the touch display plugin.
As of plugin version 1.2.0 the following features are available on the plugin’s configuration page:
The options allow setting the timeout in seconds until the screen saver (DPMS state “off”) gets invoked. A value of 0 disables the screen saver.
Further more it is possible to block the screen saver as long as Volumio is in playing state.
For the Raspberry Foundation 7" touch screen the screen brightness can be set. If the current screen brightness should be above 14 and then set to a value below 15 a modal shows up to warn for a very dark screen. The modal offers to test the new (low) value by applying it for 5 seconds before the previous brightness gets restored. After that the user can decide if the new or the previous setting should be kept.
It is possible to define two different brightness values (“Brightness 1” and “Brightness 2”) and to specify the time of day at which each brightness value should be set (e.g. a higher brightness value in the daytime starting at 6:00 and a lower brightness at the night-time starting at 21:00). The time of day values need to follow the 24-hour clock system and the time format hh:mm. If both time of day settings should be identical, the screen brightness will not be changed but only “Brightness 1” will be applied. Regarding the time data be aware that the plugin uses the system time. The system time might deviate from the local time and can only be changed from the command line currently.
The plugin is also prepared for automatic brightness regulation. The option to use automatic brightness regulation will only show up on the plugin’s configuration page if a file named /etc/als exists.
Obviously automatic brightness requires additional hardware in the shape of an ambient light sensor. This is typically an LDR with a voltage divider connected to an ADC like the TI ADS1115. For example if the LDR would be connected to input AIN0 of an ADS1115 measuring single-ended signals in continuous conversion mode the current converted LDR value would appear e.g. in /sys/devices/platform/soc/*04000.i2c/i2c-1/1-0048/in4_input. This file would need to be symlinked to /etc/als as the plugin awaits the current value of an ambient light sensor in /etc/als. For the example above the command to create the symlink would be sudo ln -s /sys/devices/platform/soc/fe804000.i2c/i2c-1/1-0048/in4_input /etc/als
.
When automatic brightness gets enabled for the first time the light sensor obligatorily has to be “calibrated” according to minimum and maximum screen brightness. The calibration process consists of measuring the ambient light in a first setting (e.g. darkness or twilight) where the lowest screen brightness should be reached and a second setting (e.g. “normal” daylight or bright sunshine) where the highest screen brightness should be reached. Through a dedicated button the calibration process can be repeated anytime if needed. The range of possible screen brightness values can be adjusted through the minimum and maximum screen brightness settings.
Further more when using automatic brightness it is possible to define a third “reference” point to form a brightness curve between minimum and maximum screen brightness reaching a “reference” screen brightness at a certain ambient brightness. This can be useful if the progression of screen brightness in accordance to ambience brightness needs to be slowed down or accelerated.
The display can be rotated in steps of 90°. On applying a changed display orientation setting a modal shows up to inform about a reboot is required. The user has the option to initiate the reboot or proceed (and reboot later).
For the Raspberry Foundation 7" touch screen the touch function is rotated accordingly to the display. In principle this works for other touch screens, too. Depending on the screen additional user action might be necessary if ex-factory the X- and/or Y-axis should be inverted and/or the touch function should not be aligned to the display. As there are a lot of different screens in the market with a lot of different ex-factory settings, the plugin does not take care for these partially weird deviations from a screen with display and touch equally rotated and aligned.
The plugin can control the amount of memory used by the GPU. This setting was introduced, because rotating the display by 90° or 270° on a screen with higher resolution requires more GPU memory than 32MB which is the default setting of Volumio. E.g. for a screen with a resolution of 1920x1080 pixels a GPU memory of 36MB has to be set or the screen will stay black.
Self explanatory. By default the mouse pointer is hidden.