touchscreen/skin_engine: The touchregion handler didn't handle that vertical bars are bottom-up by default

Change-Id: I4e7fc451c7ba318acb110c587bff4306c393e09f
put_line(): Do not lock up if the scroll engine runs out of lines.

Allocate MAX_LINES+1 because at the time get_line_desc() is called
the scroll engine did not yet determine that it ran out of lines
(because puts_scroll_func() wasn't called yet. Therefore we can
run out of lines before setting the used field. By allocating
one item more we can survive that point and set used to false
if the scroll engine runs out of lines.

Change-Id: I7a9af1bce256c6e07d254f096bd5865fa7cf2cee
skin_engine: New param "noborder" for the bar tags.

By specifying this param the bar will not have a border/box. Instead
the inner part that fills up is maximized on the bar area.

Note that this only affects bars using foreground and background colors,
not those constructed with images.

Change-Id: Ib8dd49ecbaf9e16b96de840f5f365871b73d4fa4
put_line(): Fix buffer overflow.

At the end of the format string it wrote a last byte (or inline string) past
the end of the lcd boundaries, potentially overwriting unrelated memory. It
now makes sure it won't exceed the viewport's width.

Change-Id: Id4cfce918e8b070b7fc3c7d33f389f7a171963ff
put_line(): Add another check against possible buffer overflow (see 193911a).

Change-Id: Idc6637cc42afe612375dab3acac8495278f68f0a
scroll_engine: Fix FS#12894: Text scrolling stops working after a few seconds/minutes

Since commit 706b920 a timeout of TIMEOUT_BLOCK (-1) will cause
queue_event_w_tmo() block indefinitely (previously it behaved as
TIMEOUT_NOBLOCK).  scroll_process_message() can be called with negative
timeouts, with luck also -1.

To fix this convert all negative timeouts to TIMEOUT_NOBLOCK explicitely.

Change-Id: I1fc20d93acbba50d713c8364f635365930b38cbf
fuze+: Fix pitchscreen keymap.

Like on other targets, left/right should change by 2% only temporarily.
In timestretch mode fast speed change was not available.

Fixes FS#12900.

Change-Id: I8819c2ae7266bc09565b5ef13055985acf483f98
skin_engine: Stricter checking for x, y, width, height for bar tags.

Every theme that doesn't parse anymore now has broken values. I hope it's not
too many of them.

Change-Id: I6f52e55dc9197d0919f854240723a88f99c0b7da
manual: Update bar tags for new noborder parameter and default value for y.

Change-Id: I4587ed5f073bd66d4efdf925b7beeca9a8b14a07
Improve wording.

Change-Id: I2e59fe8eb2d71968586fb035250978c90a619f76
Implement volume limiter feature

Add a "volume limit" parameter to the configuration file. The maximum
value of volume setting in sound menu will be limited to the same as
volume limit. Also each time when setvol() is excuted, Rockbox will
check if the global_settings.volume value larger than
global_settings.volume_limit. If larger, take the value of volume_limit
instead. The volume_limit argument shares the same maximum and minimum values
with volume argument, while taking the maximum volume as its default value.

Change-Id: I8ca9bc6ea6e617b48fc346aae5f2a0a1d259ae36
Reviewed-on: http://gerrit.rockbox.org/697
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
Don't try to set default_val in volume_limit_is_changed().

We don't use the default_val anywhere, so there's no need to try
to use it in a buggy and null pointer dereferencing way here.

Change-Id: Ie60dbab7647056e2bf457cb5dcc5b60012ea1651
Fix text position in the cabbie (case without AA) and remove unnecessary scrolling.

Change-Id: I3f065446dc1bb937d1af3d6d1bbdac02d26cae5c
Always check, if the USB logo for remotes overrides their physical size.

This fixes displaying of the main USB screen on m:robe 100. A remote for
this particular target has no native remote USB logo and it uses a larger
one. However it's a good idea to perform this check always IMHO.

Change-Id: I56ceb2316c551269be011b60271d8da11cb8b073
Make the m:robe 100 stable again.

Change-Id: If170b0b5f7035b02d59418c201d006805546e724
HDD1630: a proper way to enable and disable backlight.

Change-Id: Ic08a8a3ec4bcd6320ba07cb9bda1c95257ef14c9
HDD1630: implement lcd_enable (display on/off).

Change-Id: I8b72a9c333d8a9dbcb62c366a9af298f1dd9b2f7
HDD1630: enable headphones detection.

Change-Id: I329b12a8e90b4721b644ac326dfe75e52ce6c2b8
FMS: Load/update the skin at last, when fully initialzed, so that it can display the right content from the beginning.

Change-Id: I15a708d34912c0749f2497baabf90d26deaaf5df
wpsbuild: Call gcc without having to create a temp file.

Change-Id: I7adc48209fd3050243770137df2022c617c68dc8
Reviewed-on: http://gerrit.rockbox.org/721
Reviewed-by: Thomas Martitz <kugel@rockbox.org>