path: root/firmware/scroll_engine.c
AgeCommit message (Collapse)AuthorFilesLines
2020-07-24[2/4] get rid of HAVE_LCD_CHARCELLSSolomon Peachy1-2/+2
HAVE_LCD_BITMAP is now redundant. lcd_bitmap is always-on in features.txt so manual and lang strings don't have to change Change-Id: I08eeb20de48099ffc2dc23782711af368c2ec794
2018-05-23Remove lcd_scroll_worker from bootloader except remote displays and charcellWilliam Wilgus1-0/+2
Removes unneeded scrolling fuctionality from bootloaders Change-Id: Iebe308144cc11c9139399702e3dcd1a548cb9831
2014-01-12scroll_engine: Fix FS#12894: Text scrolling stops working after a few ↵Thomas Martitz1-1/+4
seconds/minutes Since commit 706b920 a timeout of TIMEOUT_BLOCK (-1) will cause queue_event_w_tmo() block indefinitely (previously it behaved as TIMEOUT_NOBLOCK). scroll_process_message() can be called with negative timeouts, with luck also -1. To fix this convert all negative timeouts to TIMEOUT_NOBLOCK explicitely. Change-Id: I1fc20d93acbba50d713c8364f635365930b38cbf
2013-12-14scroll_engine: Major rework to support pixel-based scrolling and scroll ↵Thomas Martitz1-7/+12
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
2013-12-14scroll_engine: Split out common main and remote lcd functions.Thomas Martitz1-171/+10
Uses a similar technique as lcd_*.c files of #including a common .c file, so that a unified implementation can be reused for both displays. Change-Id: I21f6de76df757b093e1a1dff0a4caf96a44fe77e
2013-12-14scroll_engine: Rename scroll_stop* functions to be more consistent with the ↵Thomas Martitz1-15/+21
lcd api. Change-Id: I8ada10b96bfb628cca0331689e8b936ae47c7e1c
2012-01-09Commit FS#12454 - Faster line scroll speed by Martin Sagmuller.Michael Giacomelli1-4/+4
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-02-14All kernel objects in code shared amongs targets (core, plugins, codecs) ↵Michael Sevakis1-1/+1
should be declared SHAREDBSS_ATTR as any core could potentially touch them even though they seem only to involve threads on one core. The exception is target code for particular CPUs where proper allocation is fixed. playlist.c was a little odd too-- use one mutex for the current playlist and a separate one for created playlists (still pondering the necessity of more than one). git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-08-12Introduce NORETURN_ATTR wrapper for __attribute__((noreturn)), using this ↵Thomas Martitz1-1/+2
and a bit further cleanup in main gets rid of a warning when compiling for android. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-07-31Various minor clean-ups for mrobeBertrik Sikken1-2/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-06-21Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with ↵Thomas Martitz1-2/+2
#if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently). The simulator defines PLATFORM_HOSTED, as RaaA will do (RaaA will not define SIMULATOR). The new define is to (de-)select code to compile on hosted platforms generally. Should be no functional change to targets or the simulator. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-09-04Const police raid\!Nils Wallménius1-6/+9
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-03-17Rework lcd_enabled and lcd_set/call_enable hookThomas Martitz1-4/+4
a) lcd_enabled() is now lcd_active(), and is available for HAVE_LCD_SLEEP only targets (e.g. ipod video) too. It was depandent on HAVE_LCD_ENALE only before b) rename the hook accordingly, and implement the hook for other other targets too (e.g. the clip [the only mono target with lcd_enable/lcd_sleep yet, so the code is still in the lcd driver], ipod, fuze, c200) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-07-02revert that scroll engine stuff... good in theory, but broken.Jonathan Gordon1-29/+4
commit a band-aid fix for FS#9140 which is fine untill someone decides to not use the whole screen for it... git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-07-02going out for a while and dont want to leave it partially broken.. ill ↵Jonathan Gordon1-0/+3
re-enable this code later tonight/tomorow git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-07-02fix redJonathan Gordon1-0/+4
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-07-02fix FS#9140 by changing stop_scroll so it stops scrolling lines which would ↵Jonathan Gordon1-8/+30
overlap the current viewport. This shouldnt cause any problems because when this happens the vp owning the line should redraw when the new vp's screen is exited. Also fix a potential bug where only one scrolling line in a viewport was stopped git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-06-28Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg1-2/+4
later. We still need to hunt down snippets used that are not. 1324 modified files... git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-04-20Killed unnecessary global variables by making them static.Bertrik Sikken1-1/+1
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-01-07Add viewport capabilities to all the LCD drivers, and adapt scrolling code. ↵Dave Chapman1-0/+68
This is the firmware/ part of FS#8385 - the changes to the WPS code still need more work and will be committed at a later date. NOTE: There are no user-visible changes with this commit - just the infrastructure. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-10-16Take out some NOCACHEBSS_ATTR's that were accidentally left. Put some ↵Michael Sevakis1-1/+1
threading code in IRAM that should be there on PP502x. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-10-16Finally full multicore support for PortalPlayer 502x targets with an eye ↵Michael Sevakis1-4/+4
towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-10-15Remove the "invert scroll" code since it's not used anywhere anymore (and it ↵Antoine Cellerier1-30/+0
was broken on color targets with gradients anyway). Closes FS #7875. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-09-30Woops, forgot to change it here too.Antoine Cellerier1-8/+0
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-09-30Save a few bytes in the line selector style handling code.Antoine Cellerier1-0/+10
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-07-28Scroll on main and remote with a single thread. Change the way system ↵Michael Sevakis1-0/+302
messages are defined before running out is an issue (which requires a full update of rockbox on the player). git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657