summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_display.c
AgeCommit message (Collapse)Author
2010-05-12fix the last of the reds, and make RDS tags actually work (and add them to ↵Jonathan Gordon
the hardcoded radio skin) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25966 a1c6a512-1295-4272-9138-f99709370657
2010-05-12fix red and yellow (most of it anyway)Jonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25965 a1c6a512-1295-4272-9138-f99709370657
2010-05-12FS#10853 - Skin support in the radio screen! Check CustomWPS for the new tagsJonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25964 a1c6a512-1295-4272-9138-f99709370657
2010-05-09slightly rework peakmeter handling to make it cleaner and be able to be used ↵Jonathan Gordon
in conditionals git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25913 a1c6a512-1295-4272-9138-f99709370657
2010-05-07Minor const police raid.Steve Bavin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25879 a1c6a512-1295-4272-9138-f99709370657
2010-05-06Move c/h files implementing/defining standard library stuff into a new libc ↵Thomas Martitz
directory, also standard'ify some parts of the code base (almost entirely #include fixes). This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06If dircache and database "load to ram" is enabled then get the id3 info from ↵Jonathan Gordon
the database in the WPS playlist viewer for non buffered tracks git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25841 a1c6a512-1295-4272-9138-f99709370657
2010-05-05fix player red.Jonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25827 a1c6a512-1295-4272-9138-f99709370657
2010-05-05Make it possible to move the UI viewport using conditional viewports.Jonathan Gordon
%Vi|<label>|<Usual %Vi params>| <- specify the possible viewports to use %VI<label> <- make the UI viewport use the %Vi definition with the <label> label. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25826 a1c6a512-1295-4272-9138-f99709370657
2010-04-25Make battery level (%bl) work with the bmp bars drawer like %pb and %pvJonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25710 a1c6a512-1295-4272-9138-f99709370657
2010-04-192 quick fixes Jonathan Gordon
1) fix %pv| where the | is for a conditional break and not for long form %pv 2) only draw bmp-bars if they are enabled (by a conditional or always on.) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25677 a1c6a512-1295-4272-9138-f99709370657
2010-04-18Move audio_peek_track declaration from skin_display.c to audio.hBertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25670 a1c6a512-1295-4272-9138-f99709370657
2010-04-17drop the playlist viewer stack usage by reading straiught off the buffer ↵Jonathan Gordon
instead of copying it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25661 a1c6a512-1295-4272-9138-f99709370657
2010-04-17use strlcat() instead of snprintf in the playlist viewer, and fix it so it ↵Jonathan Gordon
will show the whole playlist if it would fit in the viewport (instead of missing the last item) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25660 a1c6a512-1295-4272-9138-f99709370657
2010-04-11shuld fix red and yellowJonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25585 a1c6a512-1295-4272-9138-f99709370657
2010-04-11Rework how progressbars are managed so you can have as many bars in a ↵Jonathan Gordon
viewport as you want (!). Change %pv (volume) to be able to be drawn in the same style as %pb (using a line or a bmp). %pv - no change, %pv|bmp|x|y|width|height| exactly like %pb DO NOT use %?pv|....| because it will draw when you dont want it to! git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25584 a1c6a512-1295-4272-9138-f99709370657
2010-03-23revert r25271 which caused more problems than it tried to fixJonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25296 a1c6a512-1295-4272-9138-f99709370657
2010-03-21there is a difference between viewports which shouldnt be cleared (the ↵Jonathan Gordon
default viewport in the sbs) and viewports which should never be shown (%Vi viewport). so do this properly git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25271 a1c6a512-1295-4272-9138-f99709370657
2010-03-07Pass width instead of x+width to ab_draw_markers()/cue_draw_markers() and ↵Teruaki Kawashima
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-06skin: don't calculate id3->elapsed+state->ff_rewind_count each time. remove ↵Teruaki Kawashima
trailing spaces. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25045 a1c6a512-1295-4272-9138-f99709370657
2010-03-06cleanup statusbar+base skin relationship...Jonathan Gordon
* 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-03Fix FS#11058 - conditionl viewports cause sublines to go a bit crazyJonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24997 a1c6a512-1295-4272-9138-f99709370657
2010-03-02fix %pb when the height isnt given and it is in a viewport with a user font ↵Jonathan Gordon
(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-02-20WPS: Use helper local variable instead of its value (no functional change)Tomer Shalev
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24789 a1c6a512-1295-4272-9138-f99709370657
2010-02-18fix yellowJonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24741 a1c6a512-1295-4272-9138-f99709370657
2010-02-18basic alignment support (%a|l|c|r|L|R) in the playlist viewer. no sublines ↵Jonathan Gordon
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-08revert r24478 and make the backdrop behaviour the same as it used to be (so ↵Jonathan Gordon
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-03fix a bug where the backdrop from the sbs is displayed on scrolling lines in ↵Jonathan Gordon
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-01make sure skins always draw with their backdrop, otherwise the backdrop only ↵Jonathan Gordon
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-01-29skin rework (FS#10922) notable changes:Jonathan Gordon
- 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-15Get rid of those horrible macros to protect against NULL reference when ↵Jonathan Gordon
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-13Fix red and yellow. HWCODEC cant see the metadata for more than the next ↵Jonathan Gordon
track so only show the filename there git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24221 a1c6a512-1295-4272-9138-f99709370657
2010-01-13FS#10898 - Add a playlist viewer to the WPS. ↵Jonathan Gordon
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-07RTL language enhancements by Tomers Shalev and I.Jonathan Gordon
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-03Fix further tabsAndree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24156 a1c6a512-1295-4272-9138-f99709370657
2009-12-21Fix FS#10215 - peakmeter updates breaks scrolling lines in conditionally ↵Jonathan Gordon
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-09FS#10824 - viewport/statusbar API rework.Jonathan Gordon
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-11-16Fix some drawing problems when displaying the WPS initially with sbs ↵Thomas Martitz
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-04Fix viewport "UI area" to work based on what was agreed on last week in the ↵Jonathan Gordon
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-01Move find_viewport() and find_image() to skin_parser.c where the reset of ↵Thomas Martitz
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-01Fix red - statusbar_position() is a macro.Thomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23462 a1c6a512-1295-4272-9138-f99709370657
2009-11-01Cleanup includes a bit.Thomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23459 a1c6a512-1295-4272-9138-f99709370657
2009-10-20Fix a few potential redraw problems with the custom statusbar and wps ↵Thomas Martitz
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-19Initial custom statusbar commit.Thomas Martitz
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-16Fix Player, checkwps and database toolsThomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23215 a1c6a512-1295-4272-9138-f99709370657
2009-10-16Revert r23212, I committed it accidentally.Thomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23214 a1c6a512-1295-4272-9138-f99709370657
2009-10-16initial custom statusbar commitThomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23212 a1c6a512-1295-4272-9138-f99709370657
2009-10-16Rework albumart buffering internally to allow for mutliple albumart sizes.Thomas Martitz
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-16Make the skin engine behave sane if the skin's id3 pointer is NULL (the one ↵Thomas Martitz
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-14Remove wps_reset(), and rename skin_data_init to skin_data_reset() and ↵Thomas Martitz
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