From 88d8d634089bae65bdfea8238a847b7883058072 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Mon, 3 Oct 2005 18:00:00 +0200 Subject: =?UTF-8?q?Version=201.3.34=20-=20Fixed=20a=20leftover=20'summary.?= =?UTF-8?q?vdr'=20in=20vdr.5=20(thanks=20to=20Peter=20Bieringer=20for=20re?= =?UTF-8?q?porting=20=20=20this=20one).=20-=20Fixed=20opening=20recording?= =?UTF-8?q?=20folders=20in=20case=20the=20last=20replayed=20recording=20no?= =?UTF-8?q?=20longer=20=20=20exists=20(reported=20by=20Udo=20Richter).=20-?= =?UTF-8?q?=20Fixed=20an=20unjustified=20"Error=20while=20accessing=20reco?= =?UTF-8?q?rding!"=20after=20deleting=20a=20recording=20=20=20from=20a=20s?= =?UTF-8?q?ubfolder.=20-=20Fixed=20handling=20the=20'.update'=20file=20in?= =?UTF-8?q?=20case=20the=20video=20directory=20is=20not=20at=20the=20defau?= =?UTF-8?q?lt=20=20=20location=20(reported=20by=20Jon=20Burgess).=20-=20Fi?= =?UTF-8?q?xed=20a=20crash=20in=20cConfig::Load()=20when=20compiling=20on?= =?UTF-8?q?=20the=20PPC=20(thanks=20to=20Sascha=20=20=20Volkenandt).=20-?= =?UTF-8?q?=20Fixed=20the=20FATALERRNO=20macro=20to=20check=20for=20a=20no?= =?UTF-8?q?n-zero=20errno=20value=20(reported=20by=20Marco=20=20=20Schl?= =?UTF-8?q?=C3=BC=C3=9Fler).=20-=20Added=20a=20check=20against=20MAXOSDARE?= =?UTF-8?q?AS=20in=20cOsd::CanHandleAreas()=20(reported=20by=20Udo=20=20?= =?UTF-8?q?=20Richter).=20-=20Fixed=20setting=20current=20menu=20item=20if?= =?UTF-8?q?=20the=20first=20one=20is=20non-selectable.=20-=20cOsdItem::cOs?= =?UTF-8?q?dItem()=20now=20has=20a=20'Selectable'=20parameter.=20-=20Impro?= =?UTF-8?q?ved=20displaying=20'sub-title'=20and=20'bottom=20text'=20in=20t?= =?UTF-8?q?he=20CAM=20menu.=20-=20Added=20status=20message=20"Resetting=20?= =?UTF-8?q?CAM..."=20for=20an=20immediate=20feedback=20when=20the=20CAM=20?= =?UTF-8?q?=20=20reset=20has=20been=20triggered.=20-=20The=20CAM=20menu=20?= =?UTF-8?q?now=20automatically=20updates=20itself=20in=20case=20of=20a=20p?= =?UTF-8?q?rogress=20display=20(as=20=20=20used,=20for=20instance,=20when?= =?UTF-8?q?=20updating=20the=20firmware=20via=20satellite).=20-=20Now=20sk?= =?UTF-8?q?ipping=20some=20funny=20characters=20sent=20by=20some=20CAMs=20?= =?UTF-8?q?at=20the=20beginning=20of=20strings.=20-=20The=20CAM=20menu=20i?= =?UTF-8?q?s=20now=20completely=20closed=20when=20pressing=20the=20Menu=20?= =?UTF-8?q?key=20while=20inside=20=20=20a=20sub=20menu.=20-=20Reduced=20MA?= =?UTF-8?q?X=5FCONNECT=5FRETRIES=20in=20ci.c=20to=202=20(waiting=20too=20l?= =?UTF-8?q?ong=20made=20the=20whole=20thing=20=20=20appear=20hanging).=20-?= =?UTF-8?q?=20Added=20status=20message=20"Opening=20CAM=20menu..."=20for?= =?UTF-8?q?=20an=20immediate=20feedback=20when=20the=20CAM=20=20=20menu=20?= =?UTF-8?q?has=20been=20requested.=20-=20Speeded=20up=20initial=20opening?= =?UTF-8?q?=20of=20the=20CAM=20menu.=20-=20Fixed=20handling=20of=20menus?= =?UTF-8?q?=20with=20no=20selectable=20items.=20-=20The=20character=200x8A?= =?UTF-8?q?=20in=20CAM=20menu=20strings=20is=20now=20mapped=20to=20a=20rea?= =?UTF-8?q?l=20newline.=20-=20The=20'sub-title'=20and=20'bottom=20text'=20?= =?UTF-8?q?in=20the=20CAM=20menu=20can=20now=20consist=20of=20several=20li?= =?UTF-8?q?nes.=20-=20Improved=20the=20CAM=20enquiry=20menu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- osdbase.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'osdbase.c') diff --git a/osdbase.c b/osdbase.c index 98307cd..9646bcc 100644 --- a/osdbase.c +++ b/osdbase.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.c 1.20 2005/06/18 10:30:51 kls Exp $ + * $Id: osdbase.c 1.22 2005/10/02 15:00:40 kls Exp $ */ #include "osdbase.h" @@ -25,12 +25,12 @@ cOsdItem::cOsdItem(eOSState State) fresh = true; } -cOsdItem::cOsdItem(const char *Text, eOSState State) +cOsdItem::cOsdItem(const char *Text, eOSState State, bool Selectable) { text = NULL; offset = -1; state = State; - selectable = true; + selectable = Selectable; fresh = true; SetText(Text); } @@ -196,8 +196,11 @@ void cOsdMenu::Display(void) int count = Count(); if (count > 0) { int ni = 0; - for (cOsdItem *item = First(); item; item = Next(item)) + for (cOsdItem *item = First(); item; item = Next(item)) { cStatus::MsgOsdItem(item->Text(), ni++); + if (current < 0 && item->Selectable()) + current = item->Index(); + } if (current < 0) current = 0; // just for safety - there HAS to be a current item! if (current - first >= displayMenuItems || current < first) { @@ -210,8 +213,9 @@ void cOsdMenu::Display(void) int i = first; int n = 0; for (cOsdItem *item = Get(first); item; item = Next(item)) { - displayMenu->SetItem(item->Text(), i - first, i == current, item->Selectable()); - if (i == current) + bool CurrentSelectable = (i == current) && item->Selectable(); + displayMenu->SetItem(item->Text(), i - first, CurrentSelectable, item->Selectable()); + if (CurrentSelectable) cStatus::MsgOsdCurrentItem(item->Text()); if (++n == displayMenuItems) break; -- cgit v1.2.3