• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Drivers
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by ohrn - 2006-03-11
Last edited by Unhelpful - 2009-08-13

FS#4817 - Remove duplicated scrolling code in the LCD drivers.

This patch merges the scrolling code from all the bitmap LCD drivers (except the H100 remote) into a single file.
The copyright notice needs to be fixed, I was unable to figure out from whom the scrolling code actually originated.

The task blocks this from closing
ID Project Summary Priority Severity Assigned To Progress
10461 Rockbox FS#10461 - Support for custom drawing of styled/scrolled text in plugins. Very Low Low
Closed by  Unhelpful
2009-08-13 08:05
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

Committed as r22289.

It seems you forgot to include in the patch the scrolling.c file you just created. This is probably because you used “cvs diff” on a tree with non-yet-added cvs files (see first line of your .diff ;-)

ohrn commented on 2006-03-11 18:23

Doh! I spent ages fighting with cvs over that misfeature and then I manage to upload the wrong file.
Here’s the correct diff with scrolling.c included.

ohrn commented on 2006-03-13 09:45

OK, I managed to leave some junk in a function declaration. Here’s a new patch.

quick attempt to merge the bits of the lcd drivers which wernt done last week.
untested because stupid gcc complains about no sysfont.h with this, hopefully someone else has more luck

petur commented on 2007-08-02 21:14


forgot about this one…

something causes sysfont.h to not be created…

The problem isn’t really with sysfont.h. The problem is your change in firmware/SOURCES. The added line should be ‘drivers/lcd-generic.c’. For some reason, whenever a file from SOURCES doesn’t exist, we get an error about sysont.h not being created instead of an error about the missing file.

I made the change to firmware/SOURCES, but there are a load of errors in compiling lcd-generic.c so I didn’t go any further with testing it.

Edit: I’ve opened a task for the sysfont.h problem and added it as a related task here.

doh, thanks Barry.

here is a partial sync.. it now compiles fine on 16 bit non-lcd-remote targets.. if this is wanted the rest of the lcd targets can be fixed up also

This is more of a rewrite than a resync, moving pretty much all of the text drawing code into a new lcd-bitmap-common.c, merging the styled text draw code used by puts_style_offset and puts_scroll_style_offset, and merging lcd_gradient_rect and lcd_gradient_rect_scroll. There are binsize savings on the order of 500-600B on color targets, with smaller or no improvement on greyscale targets. I also have a version in a branch which avoids including lcd-bitmap-common.c, but this is more invasive (because the viewports must be made non-static, and therefore must have unique names between main and remote) and causes binsize increase on some targets compared to this version (probably because of long calls).
EDIT: new diff, previous one missed the new file

Updated, mostly just line-length fixes


Available keyboard shortcuts


Task Details

Task Editing