summaryrefslogtreecommitdiff
path: root/apps/gui (follow)
Commit message (Collapse)AuthorAge
...
* 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 Player red and icons on mono displays.Thomas Martitz2014-01-07
| | | | Change-Id: Ib8adcb4c70f2dd3ddd25da8f0606f48926dfd89e
* 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-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
* 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
* lcd-charcell: Correct get_icon_width() stub, everything is 1 char wide.Thomas Martitz2014-01-07
| | | | Change-Id: I2a76c306be8f11827cb8d1f12641d710f49274aa
* Fix build errorJonathan Gordon2013-12-30
| | | | Change-Id: I32e06cc41c70e225622c87539feaca5f92131065
* skin_engine: unload skin backdrops when the skins are resetJonathan Gordon2013-12-29
| | | | | | | Hopefully this will fix various skin related bugs which happen on usb plug/unplug! Change-Id: Ie1d8378fca38dae02e42ed02a68bdb3663651b4d
* fix some reds.Thomas Martitz2013-12-23
| | | | Change-Id: Iecb1305dbd1519434e0f476d2199e728b96091f9
* playback,talk: Share audiobuffer via core_alloc_maximum().Thomas Martitz2013-12-23
| | | | | | | | | | | | | | | | This fixes the radioart crash that was the result of buffering.c working on a freed buffer at the same time as buflib (radioart uses buffering.c for the images). With this change the buffer is owned by buflib exclusively so this cannot happen. As a result, audio_get_buffer() doesn't exist anymore. Callers should call core_alloc_maximum() directly. This buffer needs to be protected as usual against movement if necessary (previously it was not protected at all which cased the radioart crash), To get most of it they can adjust the willingness of the talk engine to give its buffer away (at the expense of disabling voice interface) with the new talk_buffer_set_policy() function. Change-Id: I52123012208d04967876a304451d634e2bef3a33
* scroll_engine: Major rework to support pixel-based scrolling and scroll ↵Thomas Martitz2013-12-14
| | | | | | | | | | | | | | | | | | | callbacks. Much of the scrolling work is moved from lcd-bitmap-common to lcd-scroll.c, a small scroll callback routine remains. This callback can potentially be overridden by more extensive scrollers. The callback also gets fed with pixel-based scrolling information, which finally removes the strict line-based nature of the scroll engine. Along with this is the change from scroll_stop_viewport_line() to scroll_stop_viewport_rect() which works on a pixel-based rectangle instead of lines. The ultimate goal is to move most of the scroll work to apps, which can much better decide which line decorations to apply etc. This work is laying the ground work. Change-Id: I3b2885cf7d8696ddd9253d5a9a73318d3d42831a
* scroll_engine: Rename scroll_stop* functions to be more consistent with the ↵Thomas Martitz2013-12-14
| | | | | | lcd api. Change-Id: I8ada10b96bfb628cca0331689e8b936ae47c7e1c
* Get rid of some superfluous single-purpose functions in playback.Michael Sevakis2013-07-13
| | | | | | | | | | | * Remove explicit tracking of elapsed time of previous track. * Remove function to obtain auto skip flag. * Most playback events now carry the extra information instead and pass 'struct track_event *' for data. * Tweak scrobbler to use PLAYBACK_EVENT_TRACK_FINISH, which makes it cleaner and removes the struct mp3entry. Change-Id: I500d2abb4056a32646496efc3617406e36811ec5
* Fix whitespace in files for following commit.Michael Sevakis2013-07-12
| | | | Change-Id: I4adb8a152e9b99fcd26d95da7334d7d0cbe2a036
* skin_engine: Fix crash on skin_reset (e.g. on language change).Thomas Martitz2013-06-23
| | | | Change-Id: Ie2da1a1ba9d2dad76e2f1c45abd907c3ede4f56c
* Fix warning (move variable into #ifdef section).Thomas Martitz2013-06-09
| | | | Change-Id: Ic6ba4b786eef00eab7f20abd5fbf2bcb8977993a
* Fix reds (this code needs #ifdef HAVE_ALBUMART)Thomas Martitz2013-06-09
| | | | Change-Id: Ia50cd846d5451b0cb5cf3a6f8097ea9fe3b3c60a
* skin_engine: Fix albumart logic on skin reloading.Thomas Martitz2013-06-09
| | | | | | | | | | | This logic checks whether the skin's albumart dimensions differ from the previous skin to force rebuffering if necessary. This was broken since a while as the necessary information was reset. Change-Id: I3b9f3a819c6af202af8ad66c13742f704ce45ab1 Reviewed-on: http://gerrit.rockbox.org/476 Tested-by: Thomas Martitz <kugel@rockbox.org> Reviewed-by: Thomas Martitz <kugel@rockbox.org>
* simplelist: Fix simplelist_set_line_count() so it actually sets the countJonathan Gordon2013-03-28
| | | | | | (hopefully) Fixes FS#12838 Change-Id: I932184afaf7b65121a0c459cd03c8482e3bad22b
* Revert "skin tags: fix the id3 track/disc numbers in conditionals"Jonathan Gordon2013-02-28
| | | | | This reverts commit a395a346719908e7d02ab7a742eb2b938dcc893d. And fixes FS#12836 - need to rethink how to do this later.
* checkwps: show a helpful error if the parser callback errors outJonathan Gordon2013-02-26
| | | | Change-Id: Ie3e35292ba8d74f0ff3d1bb3483a5e83aae0e6b6
* skin engine: Relax the AA load width/height checksJonathan Gordon2013-02-26
| | | | | | | | d6c6c07 changed the AA load tag to make sure the image width/heights fit in the viewport, Revert this because it doesn't actually make sense to check it here. Change-Id: I3fe4b074ef8fe88560f2f894ec651027ea3642f4
* skin tags: fix the id3 track/disc numbers in conditionalsJonathan Gordon2013-02-21
| | | | | | Fix the %in tag so %xd(a, %in) works as expected Change-Id: I33dd3ae092a66b1363c9cf3afa08075e4534af7c
* Theme Engine: Fix progress bar slider (FS#12823)Alex Mayer2013-02-19
| | | | | | | | | | | | | | | | | | | | Fix the need to resize progress bar when using a slider. Slider stays in bounds. Progress bar is not resized. Works well with square sliders that should not overlap edge of progress bar. also works with rounded sliders. You can also make progress bar the full width of screen while using a slider. Before if you would make the progress bar the full width of the screen and add a slider the progress bar would look like it was padded on both ends. This fixes FS#12823 Change-Id: I60345efc5cd0f46286f2591ed032f0d9320d1c3e Reviewed-on: http://gerrit.rockbox.org/402 Reviewed-by: Hayden Pearce <saint.lascivious@gmail.com> Tested-by: Hayden Pearce <saint.lascivious@gmail.com> Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
* list widget: undo part of aaf3065Jonathan Gordon2013-02-13
| | | | | | | It fixed a simulator warning in the skin debug screen but broke the icons in the database folder chooser. Proper fix shortly. Change-Id: If366daacc440f937c40960112477b8f6136b72b9
* skin_engine: Add a debug screen to display skin ram usageJonathan Gordon2013-02-12
| | | | Change-Id: Ida9c33211d9360ac88e30a2cf8df9f191bee8b45
* simplelist: Make better use of the static buffer and simplify APIJonathan Gordon2013-02-12
| | | | Change-Id: I1327fcd01d6f817be6c7018d30d33446c9b57287
* Fix (c) notice which was apparently copy/pasted from a completly unrelated fileJonathan Gordon2013-02-12
| | | | Change-Id: I465bd6a70e911c7a56213af82b4db64c25c294f7
* remove unused membersJonathan Gordon2013-02-11
| | | | Change-Id: Ic0a0d300c9b7701c9173121d9d36a4dd4a28d8bd
* gui: Fix \t indenting for RTL langs in the lists (DB folder chooser)Jonathan Gordon2013-02-06
| | | | Change-Id: If033547ad979a2ebdd463723a31eb15e718e6f8b
* lists: Fix item indentation in RTL to match LTR behavior (which is no ↵Thomas Martitz2013-01-18
| | | | | | indentation when the scrollbar isn't shown, apparently). Change-Id: I5c36d34638fa7a9cba9468b7ee07a07a836fadec
* touchscreen: Fix kinetic and swipe scrolling outside of the list viewport.Thomas Martitz2013-01-17
| | | | | | | There were some bugs, especially when the user scrolled above the list viewport. One bug made Rockbox completely unusable once triggered. Change-Id: I9bb4722ff4381db189058e9a19ea30b2c69e87d9
* album art display: Fix RTL handling for the album art skin tagJonathan Gordon2013-01-15
| | | | | | | | | AA was broken when an RTL language is used, causing it to not be displayed. Also fix th out of bounds handling when width/height > viewport Change-Id: I4899cd32ec58107c987e3cc0e8df582963bdcf62
* radio screen: Disable displaying radio art, FS#12797Jonathan Gordon2013-01-03
| | | | | | | | | With radioart enabled there appears to be buffer corruption when the image is loaded causing the player to data abort in skin_render_line() So, disable the code untill someone can fix it. Change-Id: I6acf3f76ce38aa2784b1b24ed6da29a9c5bee479
* 9 segment bitmap drawing:Jonathan Gordon2012-12-09
| | | | | | | | | | Use %x9(id) to draw an image in the whole current viewport using the 9 segment drawer (which draws the corners as normal and *tiles* the middle segments to the needed width/height). Future work is to make it scale instead of tile Change-Id: Ic3ed1cad93f96091694801eb442e0da5a2401203
* Make the recorder build with HAVE_LCD_FLIP disabled.Frank Gevaerts2012-08-28
| | | | Change-Id: I5875dc5c59606867299cc0e30d869b817e879ade
* yesno/touchscreen: Only accept on touch release.Thomas Martitz2012-08-15
| | | | | | | | Keeping the touchscreen pressed during a screen transition can lead to accidental actions. action_wait_for_release() currently doesn't work properly for touchscreen, so it's better to not transition before release. Change-Id: I37bd67945b05fff1b4a5452313f6415a247e3af9
* folder_select: fix problem when selecting / as folder.Thomas Martitz2012-08-15
| | | | Change-Id: Id4880267e8478cebe073b958a58fef1ac22dd336
* Fix missed buttons in action.c if action_wait_for_release() was calledThomas Martitz2012-08-15
| | | | | | | | | | | | | | with no button pressed. If e.g. two yesno screens directly follow each other the button release of the first one was incorrectly accepted in the second one. The fix exposed another problem in action.c if action_wait_for_release() is called when no button is actually pressed. The next press was silently eaten. This time re-introducing FS#12723 is avoided by leaving the offending hunk out in yesno.c. Change-Id: Icfe57375067f51f5c8177f3585cd47ceec9dcf0d
* We should reload the playlist control file when leavingFred W. Bauer2012-08-14
| | | | | | | | | USB mode to make sure the filedescriptor is correct. Change-Id: I2905eaf27533d935a0458b630372584e353c7160 Reviewed-on: http://gerrit.rockbox.org/294 Reviewed-by: Michael Giacomelli <mgiacomelli@gmail.com> Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
* Revert "fix erroneous button read in yesno screen and missed buttons in ↵Jonathan Gordon2012-08-14
| | | | | | action.c." This reverts commit 15775c8badac65ad9d7477a1706c019703c15b47.