summaryrefslogtreecommitdiff
path: root/apps (follow)
Commit message (Collapse)AuthorAge
...
* Fix checkwps.Thomas Martitz2014-01-15
| | | | Change-Id: Ic10df965d55939b4d5ff5105f83a08a097877910
* 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
* radio: Fix crash with radioart after skipping some stationsThomas Martitz2014-01-15
| | | | Change-Id: I5dbf60598f9b0b7d56272b6736726c1e6bc2295c
* FMS: Load/update the skin at last, when fully initialzed, so that it can ↵Thomas Martitz2014-01-14
| | | | | | display the right content from the beginning. Change-Id: I15a708d34912c0749f2497baabf90d26deaaf5df
* 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
* Don't try to set default_val in volume_limit_is_changed().Frank Gevaerts2014-01-13
| | | | | | | We don't use the default_val anywhere, so there's no need to try to use it in a buggy and null pointer dereferencing way here. Change-Id: Ie60dbab7647056e2bf457cb5dcc5b60012ea1651
* 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
* fuze+: Fix pitchscreen keymap.Thomas Martitz2014-01-12
| | | | | | | | | Like on other targets, left/right should change by 2% only temporarily. In timestretch mode fast speed change was not available. Fixes FS#12900. Change-Id: I8819c2ae7266bc09565b5ef13055985acf483f98
* 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
* cuesheet: Fix another possible buffer overflow with long filenames.Thomas Martitz2014-01-11
| | | | Change-Id: I9d8fa8fcb0a872f688664c53881fde93f2de9436
* cuesheet: Fix possible buffer overflow with long filenames.Thomas Martitz2014-01-11
| | | | Change-Id: I49fe6da35057895d3c5a08a8723afe41eef7afe8
* cuesheet: Search for /path/to/music.mp3.cue as well if all fails.Konstantin Kudakov2014-01-11
| | | | Change-Id: If58ea7c7b94de54f6d9b014f069807bb88c6a147
* 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
* bmp loader: Fix loading of monochrome/greyscale BMPs with newer headers.Thomas Martitz2014-01-11
| | | | | | | | | The code expected the color table at offset 54 (14+size of BITMAPINFOHEADER), which was after the BITMAPINFOHEADER header. However, newer BITMAPINFOHEADER versions exist which have more fields before the color table. Fix this by explicitely seeking to the color table. Change-Id: If1dfc77e7485e5a9e0bc0e7f577152da9358bd71
* playlist_viewer: Reset icon callback after leaving the playlist viewer settings.Thomas Martitz2014-01-11
| | | | | | | This fixes that the playlist viewer still shows the icons after changing the playlist viewer specific show_icons value until re-opened. Change-Id: I42f287bcf02b27f0255dc157560c2e6575307eb6
* playlist_viewer: Resurrect playlist viewer settings submenu in the playlist ↵Thomas Martitz2014-01-11
| | | | | | | | | | | viewer context menu. This was lost in 97a4c1ef (svn r30177) for unkown reason but the manual still mentions this item, so I assume it was an accident. It doesn't hurt anyway. Fixes FS#12930. Change-Id: I2f5cd81913ec7bb911d1117e50c010a5c1b89b52
* 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
* Fix put_line via multiscreen API on remotes. Stupid me.Thomas Martitz2014-01-08
| | | | Change-Id: Id75dfd6ab3957dd27cb7db6f8776f754d85c19b4
* Fix Player red and icons on mono displays.Thomas Martitz2014-01-07
| | | | Change-Id: Ib8adcb4c70f2dd3ddd25da8f0606f48926dfd89e
* Bump plugin API and ABI for put_line and struct viewport related changes.Thomas Martitz2014-01-07
| | | | Change-Id: I891e3c612ec0fb27e393561dababfc5ef7eb6e46
* reversi: Update viewport initialization to new member fields.Thomas Martitz2014-01-07
| | | | Change-Id: I37f77e4ad5abf04006dd6ee2a82de115ef204e3a
* Oops, pasted to the wrong place.Thomas Martitz2014-01-07
| | | | Change-Id: Icb07ddd04171699e997eca171bf8756b5fd9f024
* Fix a few reds and yellows.Thomas Martitz2014-01-07
| | | | Change-Id: I9ad2aca494f2ea3ca5453082ec5491ec031f9ae5
* lcd/grey: Enable viewport fg_pattern and bg_pattern for all bitmap targets.Thomas Martitz2014-01-07
| | | | | | | | | Greylib performed a horrible hack and stored fg and bg patterns in other struct viewport fields. One of them was just removed. So instead of this hack simply enable the *_pattern fields for mono targets as well, so that greylib can use them normally. Change-Id: Ib0842ebcc97f5bf9d9382b4471903afa2f96f39f
* lcd-16bit: Remove {lss,lse,lst}_pattern fields from struct viewport.Thomas Martitz2014-01-07
| | | | | | | These where used for line styling during scrolling, which is now done in apps/, The viewport struct doesn't need to record these anymore. Change-Id: I810d9dcb2644b00a798c6e75acab69c74a78e77f
* lcd-common: Remove direct style (line decorations) from lcd-puts* functions.Thomas Martitz2014-01-07
| | | | | | | | | | This logic is moved into apps (put_line()) which can better handle line decorations with respect to scrolling, mulitline and other complications. Firmware doesn't need this. The remaining drawing function know only one style, that is foreground on background/backdrop (changing drawmode is still supported). Change-Id: I707060edc388a7d723a7d09b0cf5cbda6ec56708
* lcd-common: Remove support for custom line heights from viewport.Thomas Martitz2014-01-07
| | | | | | | | Since scrolling is now pixel-based this is not necessary anymore. custom line height is handled by put_line() but can also possible to implement with lcd_puts_scroll_func(). Change-Id: Iee9b12bf99afac93d95d2a1a6f5d5b4db237b21c
* lcd-common/scroll_engine: Remove unused functions lcd_puts_style_xyoffset() ↵Thomas Martitz2014-01-07
| | | | | | | | | | | | | and lcd_puts_scroll_style_xyoffset(). With this functions removed there is no exported function in firmware left that draws line decorations. Also no function supports specifying an y-offset anymore (was used for pixel accurate positioning of otherwise strictly line-based API calls). Both should be handled in apps/ now. Change-Id: Iba4b28ccc6e686c7db63e34b51ad4badae983fce
* lcd-common/scroll_engine: Remove unused functions lcd_puts_scroll_style().Thomas Martitz2014-01-07
| | | | Change-Id: Ia4f943b3738ab6e66b0e3f1507c629b36d7eba94
* lcd-common: Remove unused function lcd_puts_style_offset().Thomas Martitz2014-01-07
| | | | Change-Id: I24da23d132f933fe647416dc58e8f50879715423
* lcd-common: Remove unused function lcd_puts_style().Thomas Martitz2014-01-07
| | | | Change-Id: Id2c64c116f79b8e61a7af49b9072b3e884ffb455
* lcd-common: Remove unused function lcd_puts_offset().Thomas Martitz2014-01-07
| | | | Change-Id: I39749bf3db915e5a8ddb6e6f25eb201ea0aaf981
* lcd-common/scroll_engine: Remove unused functions lcd_puts_scroll_offset() ↵Thomas Martitz2014-01-07
| | | | | | and lcd_puts_scroll_style_offset(). Change-Id: Ia84ae88020d06a1cb634942ab5e635fd5d10ac66
* test_gfx: Add benchmark for put_line().Thomas Martitz2014-01-07
| | | | Change-Id: I94cd5cec5ce169a4ddb60fcb3c09e2ffb50a3401
* splitedit: Adapt put_line().Thomas Martitz2014-01-07
| | | | | | | This plugin had a (broken) poor-mans list implementation which can be better achieved through put_line(). Change-Id: I4ba92ba3a01b84a273b3f0a5d067b24c622ddc9e
* skin_engine: Adapt put_line().Thomas Martitz2014-01-07
| | | | | | This allows for code unification and removal of a workaround (STYLE_XY_PIXELS). Change-Id: Ie92d377414cad943cdb06976af10b4f315f32710
* lists: Adapt put_line().Thomas Martitz2014-01-07
| | | | | | | This enables removing large portions of code, simplifiyng the drawing routine. All of the removed code is functionaltiy now available through put_line(). Change-Id: Ib8e61772134189a8c3c6d22345c0b45e912bea76
* Introduce put_line().Thomas Martitz2014-01-07
| | | | | | | | | | | | | | This function is a fully-fletched, high-level pixel-based line printer, that combines functionality of several firmware and list functions. It can draw spacing, icons and text in a single call, in any order and each multiple times. It can also apply line decorations at the same time. It features printf-like semantics by accepting a format string that contain format tags as well as inline text. It's accessible directly, but also through the multi-screen api for plugins. Change-Id: I70f5a77bbf4b0252521f2e47ead377b9d6d29b54
* icons: Provide accessors to the icon format (mono or native).Thomas Martitz2014-01-07
| | | | | | | This is needed by the upcoming put_line() api to apply different drawmodes depending on the format. Change-Id: I626a7369a6e75c9c46af1ca5e4f1a9d401899b68
* icons: Remove automatic left padding if x == 0.Thomas Martitz2014-01-07
| | | | | | | | | | | | Since x is viewport-relative the icon isn't necessarily placed at the physical display boundaries so that the padding isn't always useful. In fact it does more harm if one wants to place an icon exactly at 0 of a (non-default) viewport. Calling code looks still mostly fine. I've only modified list drawer to include the padding in the call-site. Change-Id: I6b16b3d4377c3553234667b79837adde10e0edf2