summaryrefslogtreecommitdiff
path: root/apps/gui (follow)
Commit message (Collapse)AuthorAge
* Fix misleading indentation as pointed out by the new gcc warningFrank Gevaerts2016-08-12
| | | | Change-Id: Ia9c0b09ffb57dccbc7d13fce3b3a8a7d46b84857
* Fix reset runtimeMihail Zenkov2016-04-04
| | | | Change-Id: Ic1ba0c7c7883aae43100c67235dbc2db83056fe7
* Fix scrolling left button inadvertently cancels listtreeSebastian Leonhardt2015-11-10
| | | | | | | | | | | | | | Depending on the actual keymap, canceling a listtree with the "scroll left" button may not be intended, especially if the list is entered from a completely different focus (think of leaving a plugin with "long left") Note: initializing "scrolling_left" with true without anything actually scrolling sounds odd to me... maybe this variable should be renamed? "pgleft_allow_cancel" comes to my mind (with opposite boolean states) Change-Id: I58a747fc90e91ae96e75932febb462f1f1a1b4ca
* AB repeat: fix bug that prevents to jump to beginning of trackSebastian Leonhardt2015-10-25
| | | | Change-Id: Ia323a2b16eaaf7d9afa888b71fd8b20fd9e2e62c
* iPod Classic: reads HDD S.M.A.R.T. dataCástor Muñoz2015-10-07
| | | | | | | | Adds ata_read_smart() function to storage ATA driver, current SMART data can be displayed and optionally written to hard disk using System->Debug menu. Change-Id: Ie8817bb311d5d956df2f0fbfaf554e2d53e89a93
* Clarify usb_powered() and fix some code.Amaury Pouly2015-01-08
| | | | | | | | | | Either by mistake or because its meaning changed, usb_powered() doesn't mean what the name suggest, so clarify its meaning by renaming it to usb_powered_only. So use of usb_powered() are replaced by usb_inserted() when it makes more sense. Change-Id: I112887e2d8560e84587bee5f55c826dde8c806d8 Reviewed-on: http://gerrit.rockbox.org/1097 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
* Fix broken buflib_handle check in backdrop settings loaderThomas Jarosch2014-12-20
| | | | | | | | | | | | The logic was messed up and always evaluated to true if buflib_handle is non-zero. Thanks to JdGordon for verifying the change. cppcheck reported: [rockbox/apps/gui/skin_engine/skin_backdrops.c:262]: (warning) Comparison of a boolean expression with an integer other than 0 or 1. Change-Id: Ib52a73e0a6a2017a631e2dec19b638a2974dab83
* Correct some file permissions.Szymon Dziok2014-09-08
| | | | Change-Id: I4a092a19d6a9c66dfeb2777c9655aa4b19d11e16
* Fix up some more redMichael Sevakis2014-08-05
| | | | | | | find_first_set_bit() becomes a small inline on ARMv5+ and checkwps now gets made with -std=gnu99 (it eats all the GCCOPTS) like the rest of things. Change-Id: Ie6039b17fec057a3dcb0f453d8fd5efac984df89
* add supports for x,y value in percentage to several tags.Chiwen Chang2014-07-21
| | | | | | | | | including BAR_PARAMS, %xl, %dr, %T,%St, %xl and %Cl Change-Id: I0811ebfff5f83085481dcbf08f97b7223f677bfe Reviewed-on: http://gerrit.rockbox.org/900 Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
* skin_engine: kill scrolling if the buffer movesJonathan Gordon2014-06-29
| | | | | | | | | | | | I have a suspicion that if there is any scrolling skin lines when the buflib buffer moves it will cause the lcd code to crash. This *hopefully* explains the random skin related crashed which have been reported. Change-Id: I04ee58292e1cea7c77ef9737b0641192f4f7e4ba Reviewed-on: http://gerrit.rockbox.org/877 Reviewed-by: Thomas Martitz <kugel@rockbox.org>
* lcd-24bit: Introduce a 24-bit mid-level LCD driverThomas Martitz2014-06-21
| | | | | | | | | | | | | | | | | With LCD driver all calculation will be performed on RGB888 and the hardware/OS can display from our 24bit framebuffer. It is not yet as performance optimized as the existing drivers but should be good enough.The vast number of small changes is due to the fact that fb_data can be a struct type now, while most of the code expected a scalar type. lcd-as-memframe ASM code does not work with 24bit currently so the with 24bit it enforces the generic C code. All plugins are ported over. Except for rockpaint. It uses so much memory that it wouldnt fit into the 512k plugin buffer anymore (patches welcome). Change-Id: Ibb1964545028ce0d8ff9833ccc3ab66be3ee0754
* fix indenting, editor went nutsJonathan Gordon2014-06-02
| | | | Change-Id: Ibe363e5c75260f50c6c6c6fc58a2758a7902ffc3
* skin_engine: Don't double free buflib handles shared by skin imagesJonathan Gordon2014-06-02
| | | | Change-Id: I4158fb7dae664a746141f458c08bdcb84e148041
* Also make sure progressbars don't tihnk their images are loadedJonathan Gordon2014-05-18
| | | | Change-Id: I83bb8e246e4858396ca0b5d0d90fbd2d08a88c1e
* fix skin buffer crashes, img's are not loaded initialyJonathan Gordon2014-05-18
| | | | Change-Id: I32b5d5e446f5ae9340be2bd47841b06a5dbabeec
* don't load the same bmp image more than once in a skinJonathan Gordon2014-05-14
| | | | Change-Id: Ie38146a80bb356f40810f017c262b81edac69688
* skin_engine: Make %Vs affect the whole line.Thomas Martitz2014-04-18
| | | | | | | | | | Previously %Vs styles only took effect upon the first character of text, i.e. on the right if the line is %arXXX. Now the style is applied for the whole line width. Fixes FS#12973. Change-Id: I95f2cc76a90bfc0779e5a667d5bfa54c33896c89
* Fix build reds caused by typos.Thomas Martitz2014-03-18
| | | | Change-Id: I71cdca3b6e73e29d487e0c6d02a69a31dcf3e6bf
* usb screen: Stop scrolling the entire display.Thomas Martitz2014-03-18
| | | | | | | | | | | It's not easy for the originating screen to perform cleanup in case of USB because the usb screen is invoked indirectly via default_event_handler(). To avoid stale scrolling lines perform the cleanup in the usb screen itself. Side effect should be no worse than scrolling lines to restart in SBSes that show during USB. Change-Id: I9aa491b3d4b649c0b3be70048ebcb9d817c0356c
* quickscreen: return true on USB connection.Thomas Martitz2014-03-18
| | | | | | | This is consistent with other screens (pitch, id3) on the WPS and in other places. Change-Id: Iafae52507867ff9815a60cf44faaf09a29c55091
* events: Rework event subsystem (add_event, send_event) to be more versatile.Thomas Martitz2014-03-14
| | | | | | | | | | | | | | | | | | add_event_ex is added that takes an extra user_data pointer. This pointer is passed to the callback (add_event and add_event_ex have slightly different callbacks types). All callbacks also get the event id passed. Events added with add_event_ex must be removed with remove_event_ex because the user_data pointer must match in addition to the callback pointer. On the other add_event is simplified to omit the oneshort parameter which was almost always false (still there with add_event_ex). As a side effect the ata_idle_notify callbacks are changed as well, they do not take a data parameter anymore which was always NULL anyway. This commit also adds some documentation to events.h Change-Id: I13e29a0f88ef908f175b376d83550f9e0231f772
* ab_repeat: Move GUI bits to the skin engine. This allows ab_repeat to be ↵Thomas Martitz2014-03-10
| | | | | | compiled headless. Change-Id: I4fa3b8ef7139313891ca70df11f7f17c5df38cb7
* Implement time-based resume and playback start.Michael Sevakis2014-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | This complements offset-based resume and playback start funcionality. The implementation is global on both HWCODEC and SWCODEC. Basically, if either the specified elapsed or offset are non-zero, it indicates a mid-track resume. To resume by time only, set elapsed to nonzero and offset to zero. To resume by offset only, set offset to nonzero and elapsed to zero. Which one the codec uses and which has priority is up to the codec; however, using an elapsed time covers more cases: * Codecs not able to use an offset such as VGM or other atomic formats * Starting playback at a nonzero elapsed time from a source that contains no offset, such as a cuesheet The change re-versions pretty much everything from tagcache to nvram. Change-Id: Ic7aebb24e99a03ae99585c5e236eba960d163f38 Reviewed-on: http://gerrit.rockbox.org/516 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested: Michael Sevakis <jethead71@rockbox.org>
* Fix greyscale and mono builds.Thomas Martitz2014-03-03
| | | | Change-Id: I511376eb42d1109dbe10d4fc5aa849b21d9f7582
* Touchscreen: Show a line separator in lists.Thomas Martitz2014-03-03
| | | | | | | | | | | | This patch adds a configurable line separator between list items, very similar to lists in Android. Additionally, below the list item there is a thicker line. It can be disabled in the settings. Its color can be configured as well. Remote and monochrome displays are explicitly unsupported. If there is desire this can be changed but it doesn't seem useful to me. Change-Id: I005313b0d8f5ecd15864bf20e66ea4e3390d8b7d
* Fix regression introduced by eec89a9.Thomas Martitz2014-03-03
| | | | | | The icon pixel position must be calculated before y is modified. Change-Id: I16947dd8862683530dd7c5f00cfa7cf8d9636e61
* Fix FS#12951: The icons could be a pixel to far down.Thomas Martitz2014-03-03
| | | | | | | | | | | | Since eec89a9 icons have been centered using same calculation as for fonts. In edge cases this is visually different from before and didn't align well to the font's baseline. Revert to the old calculation just for centering icons to fix. A proper aligorithm would take the baseline into account but this has worked sufficiently well for us (fix this if needed) Change-Id: I86593529b16cd28ae4552641e216e73795f2450c
* Fix red on monochrome.Thomas Martitz2014-01-22
| | | | Change-Id: Ice40c81d0d07f7ec2014697e4de446dcb956afe8
* skin_engine/backdrops: Have to reload default backdrops from setting when it ↵Thomas Martitz2014-01-22
| | | | | | | | | | | | | | changed. When skins use the default backdrop (via %X(-) or no %X at all) and the setting changes it needs to be reloaded, otherwise when changing themes the new theme could show the backdrop from the previous theme. The same needs to be done when re-selecting the same theme after USB because the backdrop file was potentially overwritten. Fixes FS#12892 and FS#12942. Change-Id: Ic2d20740cc385fa99667ce8a71507dbda2efceaf
* Fix Player warning.Thomas Martitz2014-01-16
| | | | Change-Id: I43989c92935710b36b68891a637db2e2cafb0401
* usb screen: Crop logo to the UI viewport dimensions.Thomas Martitz2014-01-16
| | | | | | | If the UI viewport is too small only the most top/left parts of the logo will be displayed. This goes one step further than bac85f2. Change-Id: I832b0e787e57e3b102a9c097cf1cccd7d4ad92d9
* usb screen: Push the usb screen onto the activity stack. This enables %cs ↵Thomas Martitz2014-01-16
| | | | | | tag support for it. Change-Id: Icecb72007aa3aba501c702e1aa65c801fcbc3857
* usb: Do not disable themes in the USB screen.Thomas Martitz2014-01-15
| | | | | | | Fonts can now be assumed (by the code) to be available during USB. Make use of this fact in the USB screen and don't disable the skins. Change-Id: I525359aae16660604e8fe89addc0bdf97a3fafc1
* skins: Update SBS when changing activities.Thomas Martitz2014-01-15
| | | | | | | | | | When changing activities (those that are indicated via %cs skin tag), the sbs needs to be updated, so that the UI viewport can be applied before that activity draws its UI. Fixes FS#12804. I hope this commit doesn't have bad side effects. Change-Id: If45654e356749f5f27991430dbd1da6f23e6f802
* Always check, if the USB logo for remotes overrides their physical size.Szymon Dziok2014-01-13
| | | | | | | | This fixes displaying of the main USB screen on m:robe 100. A remote for this particular target has no native remote USB logo and it uses a larger one. However it's a good idea to perform this check always IMHO. Change-Id: I56ceb2316c551269be011b60271d8da11cb8b073
* Implement volume limiter featurePurlingNayuki2014-01-13
| | | | | | | | | | | | | | Add a "volume limit" parameter to the configuration file. The maximum value of volume setting in sound menu will be limited to the same as volume limit. Also each time when setvol() is excuted, Rockbox will check if the global_settings.volume value larger than global_settings.volume_limit. If larger, take the value of volume_limit instead. The volume_limit argument shares the same maximum and minimum values with volume argument, while taking the maximum volume as its default value. Change-Id: I8ca9bc6ea6e617b48fc346aae5f2a0a1d259ae36 Reviewed-on: http://gerrit.rockbox.org/697 Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
* skin_engine: Stricter checking for x, y, width, height for bar tags.Thomas Martitz2014-01-12
| | | | | | | Every theme that doesn't parse anymore now has broken values. I hope it's not too many of them. Change-Id: I6f52e55dc9197d0919f854240723a88f99c0b7da
* put_line(): Add another check against possible buffer overflow (see 193911a).Thomas Martitz2014-01-12
| | | | Change-Id: Idc6637cc42afe612375dab3acac8495278f68f0a
* put_line(): Fix buffer overflow.Thomas Martitz2014-01-12
| | | | | | | | At the end of the format string it wrote a last byte (or inline string) past the end of the lcd boundaries, potentially overwriting unrelated memory. It now makes sure it won't exceed the viewport's width. Change-Id: Id4cfce918e8b070b7fc3c7d33f389f7a171963ff
* skin_engine: New param "noborder" for the bar tags.Thomas Martitz2014-01-12
| | | | | | | | | | By specifying this param the bar will not have a border/box. Instead the inner part that fills up is maximized on the bar area. Note that this only affects bars using foreground and background colors, not those constructed with images. Change-Id: Ib8dd49ecbaf9e16b96de840f5f365871b73d4fa4
* put_line(): Do not lock up if the scroll engine runs out of lines.Thomas Martitz2014-01-12
| | | | | | | | | | | Allocate MAX_LINES+1 because at the time get_line_desc() is called the scroll engine did not yet determine that it ran out of lines (because puts_scroll_func() wasn't called yet. Therefore we can run out of lines before setting the used field. By allocating one item more we can survive that point and set used to false if the scroll engine runs out of lines. Change-Id: I7a9af1bce256c6e07d254f096bd5865fa7cf2cee
* touchscreen/skin_engine: The touchregion handler didn't handle that vertical ↵Thomas Martitz2014-01-12
| | | | | | bars are bottom-up by default Change-Id: I4e7fc451c7ba318acb110c587bff4306c393e09f
* Fix remote warnings and charcell reds, and remove minor left-over tuff.Thomas Martitz2014-01-12
| | | | Change-Id: I10987ea9fcad94d502afd4ae4a80ab9022c75d2e
* put_line/scrolling: Make the scroll engine inform custom scrollers about ↵Thomas Martitz2014-01-12
| | | | | | | | | | | | | | | | | | | | | start/stop of scrolling. With the new lcd_putsxy_scroll_func() code can register custom scroll functions (put_line() makes use of that). In order for the custom scroller to be able to properly manage its userdata pointer (set via struct scrollinfo::userdata) the scroll engine must inform the scroller about start and stop of scrolling. To inform about start the lcd_scroll_* functions now return true when the line will scroll. To inform about stop the scroll engine calls into the scroller one last time, with the text set to NULL. put_line() can use this to release the userdata registered per scrolling line so that it can be recycled. This fixes that some scrolling lines became glitchy after some time because the userdata was recycled too early. Change-Id: Iff0a6ce2a4f9ae2bada1b8e62f4f5950224942a9
* icons: When loading mono icons keep them in mono format.Thomas Martitz2014-01-11
| | | | | | This enables monochrome icons them to work with the invert line selector. Change-Id: Ic3e9219e93b4879166a10180e6067446a84a62bf
* skin engine: Fix FS#12884.Thomas Martitz2014-01-10
| | | | | | | | | The %Vf and %Vb tags change the colors for the rest of the viewport. This requires the rest of the vp to be redrawn when they change due to a conditional. The previous code did this redraw in all cases (conditional or not) which led to visible blinking. Change-Id: Ie59dfc6fe8ed76485a2a2bd7caf1315f1944c227
* skin_engine: Pass string to put_line() via $t because they can be very large.Thomas Martitz2014-01-09
| | | | Change-Id: I02d6bf492bb42e173a7b436427e3cc3560d80183
* put_line(): Limit and truncate inline strings to MAX_PATH+32.Thomas Martitz2014-01-09
| | | | | | | | | | | Because inline strings have to be copied (to escape '$') the local buffer can be exhaused. The code didn't check for this. The buffer is increased to handle filenames plus some extra chars but truncates to avoid overflow. If you have longer strings please pass them via $t tag, in which case put_line() imposes no additional length-limitation. Change-Id: I0ca20adbe72f6d44cb442f34d665c16b12cbbaeb
* put_line: Be more careful with changing fg and bg colors.Thomas Martitz2014-01-09
| | | | | | | | put_line() needs to change fore- and background colors if required by the line style. This should really only be done if required, and be undone as to not compromise subsequent lines. This fixes %Vf and %Vb skin tags. Change-Id: I85e5a0d1d64aa9eb76a891d9ce1de1320274a69a