Properly handle .init section in rom build and accomodate
the change in crt0.S introduced in b31c856
Change-Id: Icbf26a87162165da149232de264dc3671ca8ae96
In b31c856 startup code section was renamed but boot.lds
linker scripts were not updated accordingly.
Change-Id: I9c9893ec2e199ac2555007a1d23e109ca0daea28
2d9c0bab added a codepage but didn't increase the number of choices
for the setting, so UTF8 dropped off the list.
Change-Id: I154032bddaabcb783212370a12b2e5cdea305302
The old method simply polled the lastbtn variable in button.c. This approach
does not clear the button event queue which overflows as a result (panic
in the simulator). Use proper APIs to fix that and adopt the
method from the old read_scroll_wheel() function, which reads buttons until
the button queue is empty, for all targets.
Change-Id: Ibf198f6e597e7f51ab4ebcfcae4ebebbe8d7845c
This reclaims ~6kB of ram.
Change-Id: Iafdc661b1cf4445669c08c79205043792b8d14c3
Reviewed-on: http://gerrit.rockbox.org/718
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
According to http://http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991, since
mingw-gcc 4.7.1 -mms-bitfields is on by default, and this option breaks the
packet attribute since around 4.2.0.
We haven't set this option so I'm assuming we don't need it. Therefore a
workaround in configure can make things work again, because we rely on
the packet attribute in quite a few places.
Change-Id: I8367c16594cecfdde97c548e04607deaa92e21de
This should catch the case of buffer misuse which results
in corrupted cookie of next allocation. The check is performed
on move_block() so it may be a bit late.
There is buflib_check_valid() provided which checks the
integrity of all cookies for given context.
On DEBUG build with --sdl-thread this check is carried out
for core_ctx on every context switch to catch problems earlier.
Change-Id: I999d4576084592394e3dbd3bdf0f32935ff5f601
Reviewed-on: http://gerrit.rockbox.org/711
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
iap-core.h defines LOGF_ENABLE unconditionally but hexstring()
helper function was not compiled if logf support was not
selected in configure. The regular builds worked by accident
because logf() lines where discarded by preprocessor.
Change-Id: Id76af478e7c760d81168ebf9bf3eb973a679987c
If the UI viewport is too small only the most top/left parts of the logo will
be displayed. This goes one step further than bac85f2.
Change-Id: I832b0e787e57e3b102a9c097cf1cccd7d4ad92d9
Fonts can now be assumed (by the code) to be available during USB. Make
use of this fact in the USB screen and don't disable the skins.
Change-Id: I525359aae16660604e8fe89addc0bdf97a3fafc1
The font engine can now perform cache lookups even if the font file is
closed, if the font was disabled with the new font_disable_all() function.
It is highly probable that the lookup succeeds but in the cache-miss case
a blank, full-width glyph will be returned.
Change-Id: I3c97e747d2a0ba30c7b495c6118c9f029d265b56
Even though you can insert leading zeros that makes ascii sort work for
numbers, sometimes the leading zeros don't suffice. In order to always
sort numerically strnatcasecmp() is needed.
With the default tagnavi.config this affects albums with discnum > 9
or tracnums > 99. This FS#12888.
Change-Id: Ie265c86eaf6dd07b6beda9e5eef25eb81eef8fd4
The only true difference in this platform is the amount of iram
between MCF5249 and MCF5250. Instead of duplicating the file
simply use one with proper ifdefs.
Change-Id: Ifd56ebd2666813633502e3b5d83669424659c039
Reviewed-on: http://gerrit.rockbox.org/713
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
When changing activities (those that are indicated via %cs skin tag), the sbs
needs to be updated, so that the UI viewport can be applied before that
activity draws its UI.
Fixes FS#12804. I hope this commit doesn't have bad side effects.
Change-Id: If45654e356749f5f27991430dbd1da6f23e6f802
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
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
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>
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
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
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
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
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