Internally, buffering tries to load the entire album art file into the
audio buffer, which will fail if the file is larger than the buffer.
Playback.c interprets a file failing to buffer to mean that the buffer
is full, so it waits for more space and tries again. This results in a
deadlock since the file will never fit.
Change bufopen to return a new error condition when an image file will
not fit on the buffer because it is too large: ERR_BITMAP_TOO_LARGE.
Note that we arbitrarily set "too large" to be within 64KB of the
entire buffer size or larger, this could be adjusted if needed.
Change audio_load_albumart to pass through error messages from bufopen.
In playback.c, check to see why audio_load_albumart fails. If it fails
because the file is too large to buffer, simply ignore the file. If it
fails because the file would fit but the buffer is full, try again
later.
Change-Id: I66799ae26f124b495e1522fce7285332f4cf986f
Without this, if a device is left plugged in and idle, unplugging it will
trigger an immediate shutdown.
Change-Id: I65caaa0c1473562ec5d0bb776b01d4d222d69965
Basically no longer treat SCROLL_FWD/BACK as "button" events, instead
relying on the scrollwheel hooks to handle things properly.
Change-Id: I9bf18595ab3ca68e912f6dfb1f2eac2544578e73
Since we now have svg support enabled (and used) for all platforms we
can simply use the svg one, and bring it in line with the rest of the
icon.
Change-Id: If99f1be0205de1a87eb727c33400811620d9876d
The default UI style has some issues with HiDPI support. Use the Qt
built-in Fusion instead. This looks somewhat different to the native
Windows UI, but works better on HiDPI displays.
Change-Id: I25f1b038047a11da7492dfbfa1425874f070ab0b
Since we embed a manifest file on Windows we also need to indicate HiDPI
support in it. Otherwise it will only work partially.
Change-Id: Ie330950a476047982a8f63ec764e5cd352411294
It's using espeak-ng's default 'zle/ru' voice, which have to do until
someone suggests better settings or engine.
Change-Id: I7b105c6a5d9f73131c6e649e81635138f350f48e
While using Rockbox for a while on my 1st-gen iPod mini I noticed that
the first entry of a list sometimes displays a wrong character at the
18th column. For example, the ':' character would display as 'z', the
'-' character as 'm', 0x00 would display '@' and so on. Oddly enough
this only occurred when the scrollbar was enabled.
I figured that the call to `display->set_viewport(list_text_vp);` in the
for loop inside `list_draw(...)` causes this. Digging deeper I noticed
that in the `lcd-bitmap-common.c` driver the `current_viewport` was
pointing to the start of the line's text. From what I can tell the
cause of this was that the viewport was set to a struct with a shorter
scope than the entire function.
The actual fix for this is quite straightforward -- once the scrollbar
has been drawn the viewport is now changed back to the default one.
Change-Id: Id6a7bd8f74864641ea1670fedea9d12d764e78c0
It ended up inside the 'langs/voicestrings.zip' with an absolute path
when it should of landed in langs/ directly.
Change-Id: I308b551e627d63142ec8871ccfb72b6036eff3d2
The themes info data uses utf-8 encoding, while QSettings defaults to
ASCII and uses escape sequences, resulting in non-ASCII characters being
garbled. Use the correct encoding.
Change-Id: Ibee58b51926f6d7c3885dead0b42579e21bfb1db
We can't use a ternary expression within the tr() function. While this
initially might work as expected it completely breaks translating the
actual string -- we need to use separate strings here, and replacing a
single word in a sentence will also not work for translations.
Change-Id: I556ff2a3bd0dc476b312a59c47d4e0dcd3b743e1
Replace the Rockbox logo with an svg version. Since the file size (i.e.
the page size in the svg) that isn't intended for use as icon we need to
enable scaling, and since scaling the label content doesn't keep the
aspect ratio we need to explicitly set the desired values.
Notably improves representation on HiDPI monitors. Now only the player
icons are still raster images.
Change-Id: I03216391a4b0ac982b16f5bec2b48c073369a3f6
This adds a resync.sh script that handles most of the resyncing process:
copying new sources, regenerating help, and staging for commit. I also took
this opportunity to make the process more efficient and consistent by only
selecting the types of files that we care about and ignoring any
autogenerated temporary files that may be in the upstream tree.
Change-Id: Ib0803462684b8ae3b40eec3742944e5bdb28508e
This updates the upstream sources to include a modified get_cursor_location
patch that I anticipate Simon will merge shortly. Also, I've streamlined
the resync process to only copy the exact files we need to reduce clutter.
Change-Id: I6a5ac60821fce346c500b101c363ae0c63c2ee95
When multiple players are connected, and at least one of them has a USB
ID that is shared between multiple targets the resulting list would be
off. Fix that by avoiding to modify a list while iterating over it,
that's usually not a good idea.
Change-Id: I0c1fc5e1a3264f269de2d71c3a7f2b82877636ba
- Move Rockbox voice language names handling to PlayerBuildInfo, and
handle it similarly to the rest of the device specific values. Rework
internal handling to simplify things.
- Enable language list from build server for installing prerendered
voice files other than english.
- Extend unit tests.
Change-Id: I1a1a717fa4409fa965dabc86f52d52a4fc516315
- Fix changed dependencies and provide real stubs.
- Update to use QTest global data for test table, so individual test
vector entries show up as individual tests. That way a single
comparison failing doesn't make all appear as failed and provide
better indication what went wrong.
Change-Id: I69681c3acd5ceceb4c8ceb1feb341e90a65dd603
Handling the data for players from rbutil.ini and the build-info data
from the server is closely related. Splitting things up into different
classes only creates tightly coupling, which is unnecessary, and the
need to differentiate between them in the application.
Merge both classes into a single one and rework handling so the
application doesn't have to deal with two separate classes anymore.
Furthermore, change URL templates to use new values from build-info
instead of hard coding them.
Change-Id: Ica550973ce23d1559110782add52bc214eba552d
The target selection string used for configure is the same as the
internally used player string, minus the (optional) variant suffix.
Don't duplicate things, simply strip the suffix.
Change-Id: Ic34bd5f933fab0d837adce0d0ae9c403868d720d
Fixes installing those builds, since they relied on the broken
buildserver_modelname. Also simplifies internal handling.
Change-Id: I5b67b7d65ee2299e01ea4e009e47f93c3343911a
This isn't needed anymore, and the only player it was actually used for
were the 8MB modded Archos ones, for which the usage was broken.
Change-Id: I2aa235113be2e6ae88973711bd8ee4734cbc266a