summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* 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
* rk27xx: Implement HAVE_INIT_ATTR magicMarcin Bukat2014-01-10
| | | | | | This reclaims over 7kB of ram. Change-Id: I4a89c9a673ada7959311f320900060f6db303c07
* bidi.c: Check buffer sizes.Frank Gevaerts2014-01-09
| | | | | | This could cause a crash with certain themes and long filenames. Change-Id: I0a48c91bb089b122a56c4e126ba4d7a175399fa2
* 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
* lcd_nine_segment_bmp: Fixes for non-ideal image dimensions.Thomas Martitz2014-01-09
| | | | | | | | | | | 1) The 9-segment images need not be multiple of 3 pixels anymore. If it isn't the inner segments will be smaller than the corners. 2) If the desired actual images is not a multiple of the segment sizes the function drawed more than the desired rectangle. This is fixed by drawing the last segment only partially. Change-Id: Ic918facd8734fa4a4aa72536f0b67de82d81651e
* Fix put_line via multiscreen API on remotes. Stupid me.Thomas Martitz2014-01-08
| | | | Change-Id: Id75dfd6ab3957dd27cb7db6f8776f754d85c19b4
* adfuload: add atj213x timer0 test programMarcin Bukat2014-01-08
| | | | | | | | | | | This simple program shows how to setup timer for periodic operation. Interrupts are not used yet and simply pending irq bit is polled and cleared when set. This program supports my understanding of disassm of ADEC_N63.BIN that P_CLK is configured for 7.5MHz and timer clock source is P_CLK directly. Change-Id: Idd6461bf847c763b78b8c324012ec2515f65dd41
* 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
* Add missing kernel.h include (hopefully the last one, really), take #4.Thomas Martitz2014-01-07
| | | | Change-Id: I167e988868b53203ea926540699d587e115635e8
* 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-16bit: Move lcd_gradient_fillrect/_part() to lcd-16bit-common.c.Thomas Martitz2014-01-07
| | | | Change-Id: I6b2d2ba73464610556cfd9ecec52fc62adb007c7
* 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 specifying y_offset from lcd_puts* functions.Thomas Martitz2014-01-07
| | | | | | | | This main (and only) purpose for it was to adjust the pixel position of the text in otherwise linebased (scrolling) functions. With pixel-based scrolling this isnt necessary anymore. Change-Id: I2a45b8ca6a3f8f50aa2f6630201b30ce9ddfe043
* 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
* lcd-charcell: Correct get_icon_width() stub, everything is 1 char wide.Thomas Martitz2014-01-07
| | | | Change-Id: I2a76c306be8f11827cb8d1f12641d710f49274aa
* lcd-charcell: Add set_drawmode() wrapper to multi-screen API.Thomas Martitz2014-01-07
| | | | Change-Id: Idb6477aca8b19cb346ba2c2f5b91074e4679b0dd
* lcd-16bit: Introduce lcd_gradient_fillrect_part().Thomas Martitz2014-01-07
| | | | | | | | It is similar to lcd_gradient_fillrect(), except that it only draws a part of the complete gradient. This can be used to draw only the bottom half of a full gradient. Change-Id: Ib47cc5237f6966e35ba07988bddbb00fd97adf96
* lcd-common/scroll_engine: Introduce lcd_putsxy_scroll_func().Thomas Martitz2014-01-07
| | | | | | | | | | | This function supports installing a custom scroll callback. This will be called when the scrollengine redraws the line. It allows to draw extended styles (or anything your can possible imagine) along with the text. It is also strictly pixel-based, the first pixel-based function that supports scrolling. Change-Id: I57f81ac7b3d08b877aea4cb8afa882f175ebcdfc
* scroll_engine: Change header inclusionThomas Martitz2014-01-07
| | | | Change-Id: I033db3d3a838f0a950ce7707de6a0cd4b2595d93
* bloat-o-meter.py: Now compatible to python 3.Thomas Martitz2014-01-07
| | | | Change-Id: Id617aa6304a5a9263ef6ceed7d9c3010b47e73a8
* Make sure usb class driver disconnect() functions are called properly.Frank Gevaerts2014-01-05
| | | | | | | | | disconnect() needs to be called exactly once per call to init_connection(). In case of bus resets, disconnect() was not called, which led to leaking alloc_maximum() allocated buflib handles, which led to buflib running out of memory to allocate. Change-Id: I03025da578dc54e48b6de6bd3e3f40feae7220a6
* Bump Rockbox Utility version to 1.4.0.Dominik Riebeling2014-01-05
| | | | Change-Id: I56cb05e2367a24341af6a8feb70f291628e78797
* Check that core_alloc_maximum() returned something useful, and panic if notFrank Gevaerts2014-01-05
| | | | Change-Id: I7ae40db0f81d1d51742501936b13b387f94a25e5
* Add missing kernel.h includes (hopefully all of them), take #3.Thomas Martitz2014-01-05
| | | | Change-Id: I68ed0e914239f0caf83082a41c2480a01b69285a
* Add missing kernel.h includes (hopefully all of them), take #2.Thomas Martitz2014-01-05
| | | | Change-Id: I62cedf992bb096987050621cfc34f0432e9da170
* Add missing kernel.h includes (hopefully all of them).Thomas Martitz2014-01-05
| | | | Change-Id: I9c1825296a788587b8d494d8514b3314847b0ff0
* bmp.c: Undo debug stuff that got in by accident.Thomas Martitz2014-01-05
| | | | Change-Id: Ic37658ab8d81405e28a4097d38785900fd0951cd
* Do not include kernel.h in system.h.Thomas Martitz2014-01-05
| | | | | | | system.h doesn't need it on its own and this change makes it less dependant on Rockbox internals. Change-Id: I4e1e4108a52a7b599627a829204eb82b392fc6d6
* apps/bitmaps: Replace pseudo-native default icons with mono ones.Thomas Martitz2014-01-05
| | | | | | | | | | The old icons looked exactly like the mono version, and all >1 bpp drivers support rendering mono bitmaps. Therefore a mono bitmap can be used which requires less ram. This affects only the builtin icons, not the ones used by cabbiev2. Change-Id: I3b02b5b04fe8b4bcc69e83310871254d336b648a
* lcd: Fix certain drawmode combinations.Thomas Martitz2014-01-05
| | | | | | | | Some seldomly used drawmode combinations did not work in conjunction with alpha bitmaps and backdrops. Now all should work (see comment added) by using more bits. Change-Id: I2bc96ecf471fa8c1a608a321a235b9c8527b3dc5