Opened 19 years ago
Closed 19 years ago
#477 closed enhancement (fixed)
mythlcdserver extremely ineffecient on large menus, regression from pre-mythlcdserver.
Reported by: | Owned by: | paulh | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythmusic | Version: | |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
The new mythlcdserver is very ineffecient when handling large menus. The way that UIManagedTreeListType updates the menu is to call LCD::switchToMenu from the ::Draw method. It passes the entire list of entries to this call.
Pre-mythlcdserver, that was ok, since it was an in-process operation. Now that list get's sent to mythlcdserver via a socket, and mythlcdserver then decides which subportion to display.
In my case, when navigating in mythmusic, it transfers a menu with over 10000 items - 100% cpu load and the menu does not keep up.
I'm guessing this can be fixed by changing LCD::switchToMenu, to include the logic that depending on the lcdHeight determines which elements are visible, and then only send those across to the mythlcdserver.
I've already fixed this in my local tree. It will get applied to svn shortly.
Like you say the problem is with the way UIManagedTreeListType sends possibly 1000's of menu items even if you only have a 4 line display!