• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category User Interface
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Release 3.4
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by jdgordon - 2009-12-01
Last edited by jdgordon - 2009-12-09

FS#10824 - simplify viewport/theme manager API

This patch (imo) simplifies the statusbar and viewportmanager API‘s.
magically fixes a bunch of the current statusbar redraw issues, and
removes some GUI events which would be better if they wern’t
required… This also removes the notion of a inbuilt statusbar..
either its enabled or its not (top/bottom/custom all still work),
which means that some screens which used to force the bar cant do this
anymore… I think the only big “issues” here is recording screen
(semi skinnable, so maybe not such a issue) and early chargin/usb
screens which can be sorted out separately.

Closed by  jdgordon
2009-12-09 07:26
Reason for closing:  Accepted

You have some (probably unwanted) TABs in your patch.

removed a head of useless calls in radio.c and hopefully tabs>spaces….

get charcell compiling.. probably broken, needs testers..

fix conflicts and mr500

more updates… bump plugin API, clear the fullscreen after enabling the theme again so there are never any leftovers…

arr… the WPS has an issue where I think its possible to overflow the theme enabled stack when gwps_enter_wps() is called without gwps_exit_wps() eing called first…. this isnt a likely occurrence, but needs to be fixed before this can go in :/

The new patch is nice, it gets rid of some artifacts, but I found a few that are still present:

To reproduce these use the M:Robe 500 with the clean green theme loaded.

Artifact 1:
go to Settings→Theme Settings→Status/Scrollbar→Status Bar and choose “Off”.
The statusbar persists after exiting the menu. When you press the back button or enter another list it is properly cleared.

Artifact 2:
With the Statusbar disabled, go back to Settings→Theme Settings→Status/Scrollbar→Status Bar and choose “Custom”.
The statusbar is enabled, but the UI viewport setting has not taken effect. If you go into another menu/list the UI viewport setting takes effect. This leaves portions of the previous menu location in the backdrop. It takes a full screen change for them to clear. (It looks like this happens with exiting the Settings menu).

Artifact 3:
This is more minor issue, but it appears that the statusbar is cleared and redrawn every menu change. This causes the screen to blank for a moment, and then the statusbar icons to come back. It could be cleared on the transitions, but it seems that lcd_update is called too often.

Artifact 4:
This is already known, but plugin menu’s do not currently use the backdrop, this causes some strange artifacts. They should also retain the foreground/background color settings from the core in menus.

Artifact 5:
(This is similar to Artifact 1 and 2) When loading different sbs’s the ui viewport drawing can get messed up and leave artifacts in the backdrop.
To reproduce:
go to Settings→Theme Settings→Status/Scrollbar→Custom Statusbar and change between rockbox_none, and CleanGreen.

When going from none to clean_green the artifacts show.

Artifact 3 is a bit strange, it doesn’t show those redraw problems when you are in the Theme settings menu. In all the other menu’s it shows the clear, update, redraw, update problem.
Artifact 3 happens whenever you are in a menu constantly - transitioning the top level entries causes it, while if you are in a sub menu it does not clear and then redraw.

Artifact 6:
Scrolling no longer appears to work properly in the SBS. To reproduce this open a song that has an Album/Artist/Song title that requires scrolling when you are in the menu. Sometimes it will just scroll a couple of pixels back and forth (but not the entire line), and sometimes it won’t move at all.

1+2 probably wont be fixed because that setting is going to be removed shortly. The same problem happens when loading a sbs from the file menu or a cfg (presumably) so that does need to be fixed.
3: need to investigate.. will fix
4: seperate issue, I’m tossing up weather or not to link the backdrop in with the theme togglerer which would solve this issue
5: see 1
6: very probably linked to 3.. sounds like the sbs is being forced to do a full redraw *way* too often.. <edit> NOPE…. There is a hardcoded redraw all which needs to be fixed…


attached should fix everything but 4…

edit: force the sbs to redraw fully when entering the rec screen

This patch fixes quite a few issues, but I have found some new bugs associated with it, for now I’ll assume that the above artifacts are fixed and start over at 1.

Testing is still being done on the M:Robe 500 with the Clean Green theme.

Artifact 1:
Album Art does not show properly if you have music playing and change the SBS from none to Clean Green.

To reproduce this:
Start playing music that has album art.
go to Settings→Theme Settings→Status/Scrollbar→Custom Statusbar and change between rockbox_none, and CleanGreen.
The album art will not show until you hit the top level menu.

Artifact 2:
From an initial boot, the menu’s take a while before they show up. This is particularly noticeable on the target (probably due to the slower buffering speed), but you can see it on the sim too.

To reproduce this:
Setup the MR500 sim with the clean green theme and exit, then start the simulator up again.
It shows the Rockbox logo for a split second, and then goes to a blank screen with SBS showing, and then the menu comes up.

Artifact 3:
It looks like the SBS is still updating in the background of plugins. I am not sure why this is only showing under certain circumstances. I originally thought this was only visible on the MR500, but it is definitely showing in the sim too. I am guessing it is a problem on plugins that do not have menu’s.

To reproduce this:
Cleangreen theme should be fully loaded with the SBS.
Play a song that has an Artist/Album/Song Name that is long enough in the SBS to cause scrolling.
Go into the plasma plugin and you will see the scrolling artifacts. (I know plasma does not show properly on the sim, this is just because this plugin writes direct to the framebuffer, but this is not related to the bug, on the target it has a palette blit function.

Artifact 4:
If the last song in a playlist completes while you are in the menu, the SBS does not update to clear the song information or the albumart.

To reproduce this:
Start playing a song in a directory with albumart (albumart is probably not required, but it is how I found the bug). Go to the last track in the playlist, and fast forward till you are near the end of the track. Go in to the main menu and wait for the track to finish playing. The album art and the song title will not clear. Also note that the menu does not change from “Now Playing” to “Resume Playback”

Artifact 5:
Splashes do not properly clear on areas of the screen that do not have a viewport defined.

To reproduce:
Click “Resume Playback” when there is nothing to resume.

Artifact 6:
The plugin menu colors are way off what they should be now.

To reproduce:
Open the blackjack menu and notice the menu background color and foreground color. They are not black and white, I am not sure where the light blue came from..

1 - probalby wont be fixed
2 - need to find a work around for this… init clears the display too early
3 - fixed.. it was the scrolling lines still scrolling, not the sbs updating
4 - I’m going to fix this.. but not high priority… thats not a big enough bug to worry about and I really want to get this commited.
5 - big bug.. must fix
6 - fix later

2 and 5 seem to be more complicated than I thought :( still looking for a solution.. but frankly, I still think with these issues its better than svn…

most of the above (if not all) should be fixed….

I’m an idiot…. this one fixes the problems the above patch added with splash…


Available keyboard shortcuts


Task Details

Task Editing