Hi,
the attached patch speeds up OSD display a little bit.
I think it's wrong to tell cStatus that for example 2700 channel entries will be displayed when actually only 16 entries fit on screen.
The other sections speed up paging beyond the first respectively last item (similarly to single line scrolling).
Further ideas to reduce CPU load while scrolling: - Flush OSD after each scroll: will slow down scrolling and therefore most likely reduce CPU load. - Snoop ahead remote commands and do N scrolls at once, skipping N-1 paint operations. - Paint line by line and abort as soon as further remote commands arrive, to start over again.
Bye.
----- Original Message ----- From: "Reinhard Nissl" rnissl@gmx.de To: "Klaus Schmidinger's VDR" vdr@linuxtv.org Sent: Sunday, May 22, 2005 9:26 PM Subject: [vdr] VDR-1.3.24: OSD speedup
I think it's wrong to tell cStatus that for example 2700 channel entries will be displayed when actually only 16 entries fit on screen.
There are plugins that use the cStatus interface to show informations on external displays. And VDR can't know how many rows fits on these kinds of display. So I think it's not a good idea to reduce the entries to only that ones that fits on the VDR OSD!
Jan
Jan Rieger wrote:
----- Original Message ----- From: "Reinhard Nissl" rnissl@gmx.de To: "Klaus Schmidinger's VDR" vdr@linuxtv.org Sent: Sunday, May 22, 2005 9:26 PM Subject: [vdr] VDR-1.3.24: OSD speedup
I think it's wrong to tell cStatus that for example 2700 channel entries will be displayed when actually only 16 entries fit on screen.
There are plugins that use the cStatus interface to show informations on external displays. And VDR can't know how many rows fits on these kinds of display. So I think it's not a good idea to reduce the entries to only that ones that fits on the VDR OSD!
This patch also conflicts with the osdbase-maxitems.diff (used with the text2skin plugin).
Best Regards, C.Y.M.
Anssi Hannula wrote:
C.Y.M wrote:
This patch also conflicts with the osdbase-maxitems.diff (used with the text2skin plugin).
Hmm, what patch is that? Haven't heard of it.
When using text2skin, the words "Stop Recording" at the bottom of the menu are not displayed or cut off unless this patch is applied. The following patch is included with text2skin: vdr-1.3.17-osdbase-maxitems.diff
But, I had to make some changed to the patch for it to apply to 1.3.24. Here is what I'm using:
Regards,
--- vdr-1.3.24/osdbase.c.orig 2005-05-23 13:43:32.000000000 -0700 +++ vdr-1.3.24/osdbase.c 2005-05-23 13:52:38.000000000 -0700 @@ -182,6 +182,7 @@ subMenu->Display(); return; } + displayMenuItems = displayMenu->MaxItems(); displayMenu->SetMessage(mtStatus, NULL); displayMenu->Clear(); cStatus::MsgOsdClear(); @@ -261,7 +262,8 @@ int last = Count() - 1; int lastOnScreen = first + displayMenuItems - 1; bool wrapped = false; - + displayMenuItems = displayMenu->MaxItems(); + // Search the next selectable item int tmpCurrent = current; do {
C.Y.M wrote:
Anssi Hannula wrote:
C.Y.M wrote:
This patch also conflicts with the osdbase-maxitems.diff (used with the text2skin plugin).
Hmm, what patch is that? Haven't heard of it.
When using text2skin, the words "Stop Recording" at the bottom of the menu are not displayed or cut off unless this patch is applied. The following patch is included with text2skin: vdr-1.3.17-osdbase-maxitems.diff
But, I had to make some changed to the patch for it to apply to 1.3.24. Here is what I'm using:
Ah, the reason for the "bool wrapped = false;" line is from another patch called "natural_menu_cursor". So, if you dont have the natural_menu_cursor patch, then the patch that is in text2skin cvs should be fine without any modifications.
Regards,