Commit graph

102 commits

Author SHA1 Message Date
Teruaki Kawashima
f50885534e Pass width instead of x+width to ab_draw_markers()/cue_draw_markers() and don't recalculate the width in these functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25053 a1c6a512-1295-4272-9138-f99709370657
2010-03-07 12:51:23 +00:00
Teruaki Kawashima
1fbdd91333 skin: don't calculate id3->elapsed+state->ff_rewind_count each time. remove trailing spaces.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25045 a1c6a512-1295-4272-9138-f99709370657
2010-03-06 14:14:44 +00:00
Jonathan Gordon
a9b5f4d810 cleanup statusbar+base skin relationship...
* remove the "custom" option from the statusbar setting. if a sbs file is set then statusbar setting is ignored, no other user visible change there.
* new tag, %wi  - use to draw the inbuilt statusbar in the current viewport


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25038 a1c6a512-1295-4272-9138-f99709370657
2010-03-06 00:29:46 +00:00
Jonathan Gordon
e89f0dc8a6 Fix FS#11058 - conditionl viewports cause sublines to go a bit crazy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24997 a1c6a512-1295-4272-9138-f99709370657
2010-03-03 02:10:26 +00:00
Jonathan Gordon
04e0d6c12c fix %pb when the height isnt given and it is in a viewport with a user font (so the height is calculated on the font height at display time)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24991 a1c6a512-1295-4272-9138-f99709370657
2010-03-02 08:47:45 +00:00
Tomer Shalev
516d1264f8 WPS: Use helper local variable instead of its value (no functional change)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24789 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 13:26:50 +00:00
Jonathan Gordon
7dfd594cca fix yellow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24741 a1c6a512-1295-4272-9138-f99709370657
2010-02-18 02:37:58 +00:00
Jonathan Gordon
3cb735ef39 basic alignment support (%a|l|c|r|L|R) in the playlist viewer. no sublines so the whole line will either be left, right or centered.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24740 a1c6a512-1295-4272-9138-f99709370657
2010-02-18 01:52:13 +00:00
Jonathan Gordon
7e6f124d4e revert r24478 and make the backdrop behaviour the same as it used to be (so when in the wps the sbs' backdrop will be fully disabled). Also changes the API back to having to manually set the current backdrop.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24565 a1c6a512-1295-4272-9138-f99709370657
2010-02-08 09:38:03 +00:00
Jonathan Gordon
0a16a99a69 fix a bug where the backdrop from the sbs is displayed on scrolling lines in the wps when the %wd tag is not used.
I'm not crazy about this commit and maybe a better solution would be to outright disable the sbs backdrop when in any skinned screen. This then means backdrops go back to needing special handling (i.e they arnt "free")



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24478 a1c6a512-1295-4272-9138-f99709370657
2010-02-03 07:03:48 +00:00
Jonathan Gordon
bb86299b81 make sure skins always draw with their backdrop, otherwise the backdrop only changes on a full redraw which usually ends up being in the wrong order
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24435 a1c6a512-1295-4272-9138-f99709370657
2010-02-01 04:47:19 +00:00
Jonathan Gordon
eee5423fe1 skin rework (FS#10922) notable changes:
- simplify the setting/skin relationship. settings are used as the fallback if it's not specified in the skin
- backdrop buffers are now in the skin buffer (which has also increased slightly to accomodate 1 backdrop for each skin and 2 full colour screens for bmps (up for 1.5))
- if no %X is specified in a skin then the backdrop setting will be used. use %Xd to explicitly disable a skin from displaying a backdrop
- the base skin can now specify a backdrop.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24366 a1c6a512-1295-4272-9138-f99709370657
2010-01-29 07:52:13 +00:00
Jonathan Gordon
fea4689e91 Get rid of those horrible macros to protect against NULL reference when looking up the id3 info for tokens.
Change the way the wps playlist viewer gets the token values. All %i tokens are now supported (and a few others, experiment :) )


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24233 a1c6a512-1295-4272-9138-f99709370657
2010-01-15 07:20:56 +00:00
Jonathan Gordon
d668900848 Fix red and yellow. HWCODEC cant see the metadata for more than the next track so only show the filename there
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24221 a1c6a512-1295-4272-9138-f99709370657
2010-01-13 06:24:21 +00:00
Jonathan Gordon
dc0ba917fa FS#10898 - Add a playlist viewer to the WPS. http://www.rockbox.org/wiki/CustomWPS#Playlist_viewer for an exaplanation how to use it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24220 a1c6a512-1295-4272-9138-f99709370657
2010-01-13 06:02:38 +00:00
Jonathan Gordon
91e6b06be9 RTL language enhancements by Tomers Shalev and I.
3 new tokens:
%ax - the next token should follow the language direction (what that means is defined by the individual tokens)
%aL - align left on LTR language (same as %al), right on RTL languages
%aR - align right on LTR language (same as %ar), left on RTL languages

This commit adds %ax support to the %V and %Cl tokens. 


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24193 a1c6a512-1295-4272-9138-f99709370657
2010-01-07 07:34:15 +00:00
Andree Buschmann
05778b501d Fix further tabs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24156 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 10:50:34 +00:00
Jonathan Gordon
ae08a21b42 Fix FS#10215 - peakmeter updates breaks scrolling lines in conditionally enalbed viewports... fix is to not disable conditional viewports during these updates which are *only* touching the pm token anyway
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24090 a1c6a512-1295-4272-9138-f99709370657
2009-12-21 06:35:31 +00:00
Jonathan Gordon
b2eb44ce0e FS#10824 - viewport/statusbar API rework.
Hopefully the only user visible changes are:
- fm and recording screens go by the statusbar setting (sbs or inbuilt)
- plugins go back to using the theme as they should for menus and lists
- splash screens might get cut a bit... entirely theme and splash dependant.. if there is a problematic one we can look at it later.
- hopefully nothing more than very minor screen flickerings... let me know exactly where they are so they can be fixed

New GUI screen rules:
* Screens assume that the theme (sbs+ui viewport+ maybe background image) are always enabled. They may be disabled on a per display basis, but MUST be re-enabled on exit
* Screens must not be coded in a way that requires a statusbar of any type.. the inbuilt bar will be removed shortly.
ALWAYS RESPECT THE USERS SETTINGS unless the screen requires the full display to fit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23904 a1c6a512-1295-4272-9138-f99709370657
2009-12-09 07:25:46 +00:00
Thomas Martitz
bdf2961ba3 Fix some drawing problems when displaying the WPS initially with sbs enabled. Move initial display of the wps to wps.c too. Should fix bug 3 of FS#10771.
Also change GUI_EVENT_REFRESH event handling so that the passed drawing function is always called, not only when sbs or custom ui vp are used.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23644 a1c6a512-1295-4272-9138-f99709370657
2009-11-16 01:38:30 +00:00
Jonathan Gordon
a7d784b1d5 Fix viewport "UI area" to work based on what was agreed on last week in the mailing lists and IRC:
* viewport_set_defaults() will always set the viewport to the intersection of the user setting and any sbs set user viewport
* viewport_set_fullscreen() will always set the viewport to the full display, take care to disable the statusbars if you use this!

This patch is from FS#10709 and contains code which will be removed once the current inbuilt statusbar is finally removed. This *may* break themes which dont use the %we or %wd token.. follow up commit to fix this coming...


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23507 a1c6a512-1295-4272-9138-f99709370657
2009-11-04 05:10:53 +00:00
Thomas Martitz
3216d32a05 Move find_viewport() and find_image() to skin_parser.c where the reset of the linked-list handling sits. That enables removing duplicated code from checkwps. Also remove a few stubs in favor having the restart playback mechanism on albumart change #ifdef __PCTOOL__
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23465 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 15:48:31 +00:00
Thomas Martitz
4f0e3ecda9 Fix red - statusbar_position() is a macro.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23462 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 13:36:57 +00:00
Thomas Martitz
dd33bdfe0d Cleanup includes a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23459 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 13:08:57 +00:00
Thomas Martitz
804e3aadae Fix a few potential redraw problems with the custom statusbar and wps fighting for the same full redraw variable.
Instead, introduce a new skin struct holding data which is meant for all screens for a single skin (struct wps_state is currently used by both at the same time). Also clean up (classic) statusbar handling for skins using this new struct.
Also, implement deactivating updating of the custom statusbar when the LCD is deactivated, saving a bit battery life on some targets.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23304 a1c6a512-1295-4272-9138-f99709370657
2009-10-20 23:12:20 +00:00
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
d7757eb75c Fix Player, checkwps and database tools
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23215 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 20:34:54 +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
a72ffe7bb5 Make the skin engine behave sane if the skin's id3 pointer is NULL (the one in struct wps_state), so that skins don't need audio to be played before being displayed (needed for upcoming custom statusbar).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23208 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 19:14:37 +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
Jonathan Gordon
a927db22c4 fix a redraw bug when a static token (like %C) is the only token on a sub/line.. hopefully no bad sideeffects...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23140 a1c6a512-1295-4272-9138-f99709370657
2009-10-12 20:22:50 +00:00
Jonathan Gordon
436776ebb8 redraw the AA much less frequently to save bettery life and also let skins draw over the AA...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22932 a1c6a512-1295-4272-9138-f99709370657
2009-10-05 01:01:07 +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
7b6265edf5 Fix a bug where the conditional use of %C (i.e. %?C) caused the album art to draw (noticed in FS#10596).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22721 a1c6a512-1295-4272-9138-f99709370657
2009-09-17 21:01:32 +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
Jonathan Gordon
d2645566f7 fix the first subline not displaying properly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22668 a1c6a512-1295-4272-9138-f99709370657
2009-09-09 15:42:20 +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
Karl Kurbjun
25123570c7 Fix STRIDE macro for multiscreen and add stride support for picture lib.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22615 a1c6a512-1295-4272-9138-f99709370657
2009-09-04 00:46:24 +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
2111c105c0 fix player's red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22603 a1c6a512-1295-4272-9138-f99709370657
2009-09-02 03:02:00 +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
Karl Kurbjun
7bb7c5f0cc Add stride defines to support vertical strides
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22546 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 19:31:29 +00:00
Thomas Martitz
3598eb02d7 Do some #ifdef'ing to make the Player happy.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22520 a1c6a512-1295-4272-9138-f99709370657
2009-08-27 17:55:05 +00:00
Thomas Martitz
af967d77d3 Fix skin engine calling wps code to draw the statusbars (add a pointer to viewportmanager-suitable statusbar values, which are the same for all screens), and re-arrange statusbar related code slightly. No functional change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22514 a1c6a512-1295-4272-9138-f99709370657
2009-08-26 00:06:27 +00:00
Jonathan Gordon
2492e258fa conditional viewports are allowed to share labels.. so make sure they are all toggled with %xd<label>
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22417 a1c6a512-1295-4272-9138-f99709370657
2009-08-19 01:52:52 +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
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
Jonathan Gordon
3790897189 more wps->skin moving/renaming
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22180 a1c6a512-1295-4272-9138-f99709370657
2009-08-06 04:33:35 +00:00
Renamed from apps/gui/skin_engine/wps_display.c (Browse further)