Commit graph

38 commits

Author SHA1 Message Date
Thomas Martitz
1016ee4e80 Initial custom statusbar commit.
The custom statusbar can be used as a WPS for the main UI, using .(r)sbs files. It's using the skin engine and knows all tags the WPS also knows.
The default folder for .sbs is the wps folder to reuse images used in the WPS.
As it can be shown in the WPS also, it's useful to move shared parts to the custom statusbar in order to save skin buffer space.
There are a few restrictions/TODOs:
*) Peak meter doesn't redraw nicely(not frequent enough), as very frequent updates would slow the UI down as hell (some targets fight with it in the WPS already: FS#10686)
*) No touchregion support as the statusbar doesn't have any action handling (it won't fail to parse though).
*) Drawing stuff into the default VP is forbidden (loading images in it is not). You *need* to use viewports for the displaying stuff (parsing fails if no viewport is used).
*) Themes that don't use a custom ui viewport can be fixed up using the new %Vi tag to avoid nasty redraw effectts (you must not draw into it as well, it's used to fix up the ui viewport). %Vi describes the viewport that the lists can use without getting in the way of the statusbar.

Otherwise, it behaves like the classic statusbar, it can be configured in the theme settings, and can be turned off in the wps using %wd.

Note to translaters: When translating LANG_STATUSBAR_CUSTOM, please consider using the same translation as for LANG_CHANNEL_CUSTOM if it's compatible. They could be combined later then.

Flyspray: FS#10566
Author: myself

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23258 a1c6a512-1295-4272-9138-f99709370657
2009-10-19 15:28:15 +00:00
Thomas Martitz
94f7651341 Revert r23212, I committed it accidentally.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23214 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 20:34:04 +00:00
Thomas Martitz
8d032ae136 initial custom statusbar commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23212 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 20:30:09 +00:00
Thomas Martitz
e9c10189e9 Rework albumart buffering internally to allow for mutliple albumart sizes.
Playback now has a few albumart slots. Anything (most importantly: skins)  can obtain such a slot.
The slot has fields for the size which is passed to bufopen then to image_load to buffer the albumart with the proper size.
Currently there's 1 slot. We can increase it for remotes if we want. Custom statusbar will increase it.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23209 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 19:14:41 +00:00
Thomas Martitz
9072a4558c Add %cs tag.
It can be used conditionally and indicates the current screen (wps, rec, radio screens or lists).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23207 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 19:14:33 +00:00
Thomas Martitz
0f0d9064c5 Remove wps_reset(), and rename skin_data_init to skin_data_reset() and extend it to zero most of the wps_data members.
As these are called when parsing a skin it doesn't need to be called by the wps or settings, so make it local to skin_parser.c.
Reorder the members of struct wps_data for more effecient alignment.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23171 a1c6a512-1295-4272-9138-f99709370657
2009-10-14 15:49:11 +00:00
Tomer Shalev
d5b076b64a RTL: Cosmetic changes, no functional change - Rename constants
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23117 a1c6a512-1295-4272-9138-f99709370657
2009-10-11 20:15:22 +00:00
Thomas Martitz
80003bc4a4 Fix a few problems with RTL, statusbar and custom ui viewport.
*text in statusbar jumped around
*custom ui vp wasn't refreshed properly on language changing.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23053 a1c6a512-1295-4272-9138-f99709370657
2009-10-09 18:39:34 +00:00
Jonathan Gordon
f06c98fec8 Fix FS#10617 (fix spotted by Teruaki Kawashima), something about the %C not working if %?C is the first tokens in the skin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22944 a1c6a512-1295-4272-9138-f99709370657
2009-10-05 10:26:06 +00:00
Jonathan Gordon
340f32356a new skin tag: %Sx|<english>| will display the current languages translation of the "<english>" string.
the <english> is the Source: bit in the .lang files. (must be exactly as it is there...)

checkwps cannot verify that the string is correct so make sure to use the sim to verify the string is acurate.

Also "fix" checkwps so %St|<setting>| can be accepted for the theme site


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22837 a1c6a512-1295-4272-9138-f99709370657
2009-09-26 00:58:32 +00:00
Thomas Martitz
ba8fbb0b9b Rename struct skin_albumart members to be consistent with similar members of other structs. the albumart_ prefix is redundant.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22836 a1c6a512-1295-4272-9138-f99709370657
2009-09-25 18:36:28 +00:00
Thomas Martitz
d045f59989 Redo 22825 but this time with caring about alignment.
Change coordinate members in struct skin_albumart to ints. That alone gives a tiny binsize decrease.
Change the struct layout (some reordering) to enable more efficient alignment which reclaims 4 of the 8 bytes. Since there's usually only 1 aa struct this should be a net gain.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22835 a1c6a512-1295-4272-9138-f99709370657
2009-09-25 18:36:18 +00:00
Karl Kurbjun
4eee66a4cf r22826 is causing data aborts when the wps is loaded in the parse_list function - suspected reason is an improperly aligned pointer depending on how the buffer gets setup when translating a "d".
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22827 a1c6a512-1295-4272-9138-f99709370657
2009-09-25 04:23:35 +00:00
Thomas Martitz
89041f6b4a Remove some some code in favor of a single parse_list() call.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22826 a1c6a512-1295-4272-9138-f99709370657
2009-09-25 01:43:31 +00:00
Jonathan Gordon
05fd9ee182 Actually fix AA display... previous commit was borked
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22728 a1c6a512-1295-4272-9138-f99709370657
2009-09-18 05:45:15 +00:00
Jonathan Gordon
aafeaad65f fix FS#10599 and do r22721 a slightly better way. the %C tag is internally converted to a different token for display and conditional check.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22726 a1c6a512-1295-4272-9138-f99709370657
2009-09-18 05:15:18 +00:00
Thomas Martitz
541dd6fda5 Remove some trailing whitespaces in in the skin engine files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22694 a1c6a512-1295-4272-9138-f99709370657
2009-09-13 12:24:14 +00:00
Thomas Martitz
894c809108 Fix/band aid the freeze when %V is the first thing (i.e. in line 1) in a .wps (see FS#10596).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22693 a1c6a512-1295-4272-9138-f99709370657
2009-09-13 12:15:08 +00:00
Teruaki Kawashima
246e38e937 Initialize token before using.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22678 a1c6a512-1295-4272-9138-f99709370657
2009-09-11 14:33:32 +00:00
Thomas Martitz
1f10f99dc0 Fix/commit FS#10595. A (sub)line could be part of the previous viewport due to a off-by-one bug in the indexing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22662 a1c6a512-1295-4272-9138-f99709370657
2009-09-08 16:34:51 +00:00
Jonathan Gordon
8bf50ecf48 add a bit more debug info for skins... show the subimage id in the display image token's debug line
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22647 a1c6a512-1295-4272-9138-f99709370657
2009-09-07 07:51:58 +00:00
Jonathan Gordon
fe2f042670 rework AA load/display handling in the skins to get them working in viewports again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22646 a1c6a512-1295-4272-9138-f99709370657
2009-09-07 02:36:56 +00:00
Jonathan Gordon
ef7018a7ff fix red :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22643 a1c6a512-1295-4272-9138-f99709370657
2009-09-06 16:54:43 +00:00
Jonathan Gordon
9f4f5dbc26 Make the e200 compile the vled for the sim... other targets are probably doing the same thing so find out which.. commit will be immediatly followed to fixd red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22642 a1c6a512-1295-4272-9138-f99709370657
2009-09-06 16:54:04 +00:00
Jonathan Gordon
d466cb9beb minor line handling fixes, be smarter (well dumber actually) about increasing the size of the tokens array, that loop isnt the only place the data->num_tokens variable gets increased... also add one last WPS_NO_TOKEN token to the end to make sure we dont accidently overrun into the next skin on the last line of a skin.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22618 a1c6a512-1295-4272-9138-f99709370657
2009-09-04 06:17:38 +00:00
Jonathan Gordon
8f76e7ff8f rename wps_[sub]line to skin_[sub]line
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22606 a1c6a512-1295-4272-9138-f99709370657
2009-09-02 06:23:01 +00:00
Jonathan Gordon
8cb74438bc Almost the last of the skin ram wastage fixing... This one moved the line/subline handling into the alloced buffer and links them more sensibly with their viewports.
now it works something like this: a skin is a list of viewports, each viewport has a list of lines, each line is a list of sublines, each subline has an *index* of its first and last tokens... 


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22602 a1c6a512-1295-4272-9138-f99709370657
2009-09-02 02:55:33 +00:00
Maurus Cuelenaere
876db6c2fc Fix/hack checkwps + add Onda VX747/VX777 targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22451 a1c6a512-1295-4272-9138-f99709370657
2009-08-21 18:15:20 +00:00
Thomas Martitz
e510de1b35 Move handling of "rockbox_default.[r]wps" into wps.c, out of the skin engine (which should be as generic as possible).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22438 a1c6a512-1295-4272-9138-f99709370657
2009-08-20 14:29:03 +00:00
Jonathan Gordon
c552d08573 get the skin debug output working again, add a line to say how much of the buffer is being used to aid themers... let me know if this gets close to full on any targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22420 a1c6a512-1295-4272-9138-f99709370657
2009-08-19 05:07:12 +00:00
Jonathan Gordon
98756fe492 move the statically allocated tokens array into the skin buffer. this is done with a little bit of magic with the buffer... explanation in the comments but breifly, tokens + images are stored at the front of the buffer, everything else (constant sizes) are stored at the back, the 2 ends meet when the buffer is full.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22418 a1c6a512-1295-4272-9138-f99709370657
2009-08-19 04:19:08 +00:00
Jonathan Gordon
dab7e16176 store the image label instead of a number so debug output is actually useful when %xd is used witout a coresponding %xl
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22404 a1c6a512-1295-4272-9138-f99709370657
2009-08-18 07:17:51 +00:00
Jonathan Gordon
36ca4967e0 move viewports into the skin buffer, no more viewport limit on the skin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22403 a1c6a512-1295-4272-9138-f99709370657
2009-08-18 05:30:59 +00:00
Maurus Cuelenaere
8d013f5557 Skin engine: add "pitch" action to touch regions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22375 a1c6a512-1295-4272-9138-f99709370657
2009-08-17 12:46:21 +00:00
Jonathan Gordon
91aa512754 fix the %xd<id> tag parser to complain if you try to display an image it hasnt loaded yet
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22373 a1c6a512-1295-4272-9138-f99709370657
2009-08-17 07:16:57 +00:00
Jonathan Gordon
271643c585 remove the limit of touch regions in touchscreen skins
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22361 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 21:22:57 +00:00
Jonathan Gordon
c20801b712 fix player
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22351 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 18:32:25 +00:00
Jonathan Gordon
18a8e529b5 more wps->skin engine work..
start redoing memory management in the skins to use a single larger buffer instead of lots of arrays for things like images and progressbars.
This commit removes the limit on the amount of progressbars allowed on the screen, still 1 per viewport, but unlimited otherwise(!)
Also a larger buffer for remote targets, same size for non-remote targets but very easy to make it bigger (technically removed the 52(?) image limit in skins, except still limited to 1 char identifiers)
Unlimited "string" tokens now (limit was 1024 which was rediculously wasteful)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22350 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 18:23:00 +00:00
Renamed from apps/gui/skin_engine/wps_parser.c (Browse further)