This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#11310 - PictureFlow - mono tracklist for mono displays
|
DetailsThis very small mod changes the tracklist so it doesn't fade lines when on a mono display (bit depth 1). Tested against r26241 in Sim only (because I don't have a mono display device).
Please report back if problems. |
This task depends upon
It's difficult to demonstrate either issue given that the simulator doesn't replicate mono screens very accurately and you can't show flickering in a photo, but attached is a picture demonstrating the potential readabiity issue caused by the selection bar; it's more legible when not being captured by a low-quality webcam, but could be a problem, particularly for users with poor eyesight.
Go to the few lines changed and you'll see the value 250 is used for text colour except for the current line which is 255.
Try making them all 255 and see how it looks. It may be that anything but 0 and 255 get represented with dithering and cause flicker.
I kept the 250 value as it offers a slight brightness change to indicate highlight but if it cannot show anything but on/off then 0 and 255 may be better.
Let me know if that looks better and I'll make a new patch. Also the highlight may look better as a inverse (black lettering on white bar).
If you're not sure what I mean or what to change then just let me know and I'll upload one for you to test out.
if ( track_i == selected_track ) {
#if LCD_DEPTH > 1
draw_gradient(titletxt_y, titletxt_h);
MYLCD(set_foreground)(G_BRIGHT(255));
#else
MYLCD(set_foreground)(G_BRIGHT(0));
#endif
Here is the above patch updated with the color 255 change for others who may want it.
It's against r26251 now.
Check if it looks better and post here so others know which one is better to use.
Also against r26251 and tested here only in Sim.
Looking at the patch, I think the problem might be that draw_gradient is being called on all devices, when it really should only be called on devices with bit depth > 1. Unfortunately, the fix is not as simple as putting the draw_gradient behind the #if LCD_DEPTH > 1 line; this simply results in no bar appearing at all meaning that the currently selected track is black-on-black and entirely invisible.
Here is a pair of updates with the draw_gradient modified to degrade to solid color when bit depth is 1.
Hopefully this will hot the spot.
pictureflow-mono-list.patch gives a solid bar which I suspect is overlaid over the text; if the gradient isn't a background but an overlay, setting a solid colour overlay just results in obscuring the text--that's my best guess as to what's happening here. Incidentally, this patch also causes an error while compiling:
CC apps/plugins/pictureflow/pictureflow.c
/home/vague/rockbox/apps/plugins/pictureflow/pictureflow.c: In function ‘draw_gradient’:
/home/vague/rockbox/apps/plugins/pictureflow/pictureflow.c:2251: warning: unused variable ‘c2’
LD pictureflow.rock
pictureflow-mono-list-inv.patch looks the same as the previous version; black text on flickerbar.
I knew about the compiler warning but didn't want to add a few more defines to remove.
Just an unused variable hanging around from color version code - causes no problem.
I'll get back to have another look a little later.
Confirmed to work ok on Clip+ and in USim - against r26251.
archos*, iriverifp7xx, logikdax, mrobe100, sansam200.
If we're sure that these players display fine with current support then I need some other value to key off.
I don't see a "Clip family" define.
Suggested solution? Add #define LCD_STRICT_MONO for Clip family devices?
See that task for new patch just posted.