Commit graph

90 commits

Author SHA1 Message Date
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
Jonathan Gordon
f76b2f2046 Initial recording screen skin support (usable in .sbs skins only for now)
new skin tokens:
%Rp - does the target have recording?
%Rf - samplerate
%Re - encoder
%Rb - bitrate
%Rm - mono/stereo

Please put all bugs from these (which very probably dont work 100%) into FS#10755. And someone who knows how the recoding capabilities work please look this over... ideally the same value should be returned for the middle three tags no matter what the capabilities of the target are.
CustomWPS on the wiki for more details


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23491 a1c6a512-1295-4272-9138-f99709370657
2009-11-03 07:58:10 +00:00
Rob Purchase
24c1c75364 Add touchscreen WPS actions for volume up/down (using a button rather than the slider).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23488 a1c6a512-1295-4272-9138-f99709370657
2009-11-02 21:56:48 +00:00
Thomas Martitz
e28bfd1349 Rework how feature skin tags work (%cc currently) when used conditionally (i.e. to detect a feature).
If the feature is known to be unavailable at compile time or runtime detected, then let parsing skip over the true case. That enables parsing skins that properly put tags not available on a target within these tags. In the past the true case was parsed even if never could be true, which led to unexpected parsing failures.
Parsing %cc<%St|time format|[..]|> is now possible on target where that setting doesn't exist (the %St parser wold fail).
More of these tags are to be added, for example to indicate fm radio or recording capabilities.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23479 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 23:35:14 +00:00
Rafaël Carré
6cdb80d7df Revert r23474 "new skin token: %cx - 24 hour time format enabled in the setting.. e.g %?cx<24 hour|12 hour>"
Committed accidentally with a svn/git desynch

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23475 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 22:51:26 +00:00
Rafaël Carré
9cd15dad9d new skin token: %cx - 24 hour time format enabled in the setting.. e.g %?cx<24 hour|12 hour>
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23474 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 22:48:46 +00:00
Jonathan Gordon
e702e5dbf8 revert that last checkin... something better is coming
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23473 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 21:45:01 +00:00
Jonathan Gordon
cb8527d073 new skin token: %cx - 24 hour time format enabled in the setting.. e.g %?cx<24 hour|12 hour>
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23472 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 21:35:35 +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
6db726c147 Remove a wps function call from skin engine, hopefully the last one.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23461 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 13:36:52 +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
Jonathan Gordon
235d1ae795 Fix FS#10745 - %mv not working in sbs...
This fix is as good as we can do, but not perfect. Because the sbs is only updated when a button is pressed it will stay in the "volume changing" state probalby longer than expected.. which isnt terrible, but useful to remember.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23455 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 02:36:51 +00:00
Jonathan Gordon
0aa035d73e * code police on a macro which has no reason for being
* add the TOKEN_RTC_PRESENT value to the skin debugger listing
* Allow the width and height of a viewport to be negative values (so width -50 means extend to 50pixels inside from the right edge)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23393 a1c6a512-1295-4272-9138-f99709370657
2009-10-29 03:27:13 +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
6225f388b8 Reorder members for more efficient alignment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23254 a1c6a512-1295-4272-9138-f99709370657
2009-10-19 00:26:46 +00:00
Thomas Martitz
c26949c54b r23208 broke conditional use of metadata and filename tags. Return NULL instead of "n/a" to make it work again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23253 a1c6a512-1295-4272-9138-f99709370657
2009-10-18 23:58:42 +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
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
71411ee83a Change %mp tag to use current_playmode(). It has upto 9 values now, including recording and radio states.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23206 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 19:14:28 +00:00
Thomas Martitz
0070f60441 Fix %Sp expansion in wps
The value returned from sound_get_pitch() was shown assuming that 100%
corresponds to 1000 by skin_tokens.c::get_token_value().  The value
actually is 100*PITCH_SPEED_PRECISION.

Steal the way the callchain from gui_syncpitchscreen_run() to
pitchscreen_draw() in apps/gui/pitchscreen.c formats the value and use it
here for consistency.

Flyspray: FS#10673
Author: Junio C Hamano

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23199 a1c6a512-1295-4272-9138-f99709370657
2009-10-15 22:22:07 +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
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
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
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
Alexander Levin
4ce1604ca3 Show the name of the setting in the WPS debug output
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22781 a1c6a512-1295-4272-9138-f99709370657
2009-09-22 09:44:40 +00:00
Jonathan Gordon
6622c605b9 add the %St setting to the debug output for checkwps/parser.... needs mroe work to make it more useful
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22780 a1c6a512-1295-4272-9138-f99709370657
2009-09-22 05:31:28 +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
6d16d1cf3d FS#10602 - show the viewport label instead of an int in the debug output
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22727 a1c6a512-1295-4272-9138-f99709370657
2009-09-18 05:22:22 +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
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
Frank Gevaerts
65fff8bdd8 Increase skin buffer on charcell displays so it's actually big enough to load a wps file
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22681 a1c6a512-1295-4272-9138-f99709370657
2009-09-11 18:02:52 +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
Jonathan Gordon
8761d9e240 Hopefully make the wps debug info more understandable... display tokens the same way they are displayed... i.e viewports->lines->sublines->tokens
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22672 a1c6a512-1295-4272-9138-f99709370657
2009-09-11 06:03:24 +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
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