FS#4802 - WPS Extensions & Fixes.
NOTE: Patch against today's CVS. All changes can be demoed easily by applying the patch and
using the attached WPS (use _gl.tter_ext' theme) - or just download my all-inclusive
precompiled H120/140 firmware: http://rockbox.gl.tter.org/wps_ext_h120.zip.
- Designers can now use arbitrary battery & volume segment bitmaps. The code counts the maximum number of enums a WPS uses in those conditionals, and works off that (fully backwards compatible with existing WPS'). Counting mechanism is generic and can easily be applied to future tags (no other current tags are suitable).
- optional Progress Bar y coordinate for bitmap displays - decouples progress bars from lines and allows arbitrary height positioning (fully backwards compatible).
usage: %pb|height|leftpos|rightpos|[y coord|]
- new tags:
%fk - file frequency in kHz (saves space & is easier to scan).
%gi - inverted text ('g' = 'graphics effects')
- Experimental: implemented WPS backdrops on iRiver H1x0's. Seems to work fine, except text and images currently block out the background. Already useful, will most likely extend.
(note, backdrop is not cleared when a new WPS is loaded, this is an existing bug that this patch http://www.rockbox.org/bugs/task/4739 aims to address - not yet included in my patch).
- adjusted volume level conditional so that the first and last enum are only hit on exactly the first and last volume value - this is desirable and required to display 'mute/max' type bitmaps correctly.
- battery conditional now works correctly, eg. when using 5 bitmaps (off + 4 segments), each segment now correctly identifies 25% of battery usage / charging.
(previously this was completely wrong, eg. the 1st segment disappeared at 80%, and all segments were already extinguished at 19%, which is not only nuts but will vary wildly across battery capacities!)
Also the first ('all empty') enum/bitmap is now triggered when the 'danger level' is reached, which is calculated from the estimated remaining battery time (currently set at 15mins). This is far more accurate and should work consistently across all devices / OEM or replacement batteries.
To demo the battery changes more easily, uncomment '#define DEBUG_BATTERY_ENUMS' in 'gwps_common.c' - this will simulate fast battery charging / draining, based on whether the charger is connected or not - note the danger level is simulated by <10%. (my precompiled H120/140 firmware already has this enabled).
- bitmap-only sublines fixed (sublines were disabled when only bitmaps ocurred in them, so only the first bitmap was ever shown).
Everything seems to work well.
Saturday, 13 January 2007, 02:31 GMT
Reason for closing: Rejected
Additional comments about closing: The author refused to give his real name and the patches are now out of date.