diff --git a/HISTORY b/HISTORY index 6408f22c..45202255 100644 --- a/HISTORY +++ b/HISTORY @@ -4392,3 +4392,6 @@ Video Disk Recorder Revision History the EPG event used when creating it. - The option "Setup/OSD/Sort timers" has been removed. Timers are always sorted by their start time and priority. +- The "Blue" key in the "Timers" menu now displays the EPG info of the event the + selected timer will record (if available). The "On/Off" function has been shifted + to the "Red" button. Editing a timer is done by pressing "Ok". diff --git a/MANUAL b/MANUAL index b3d0e158..9655bc36 100644 --- a/MANUAL +++ b/MANUAL @@ -20,10 +20,10 @@ Version 1.3 Ok Ch display Select Switch Edit Accept Play Progress disp. Switch & Close Menu Menu on Menu off Menu off Menu off Menu off Menu off Menu off Menu off Back - Menu off VDR menu VDR menu Discard VDR menu Recordings menu Close - Red - Record Edit Edit ABC/abc Play/Commands(1) Jump - + Red - Record Edit On/Off ABC/abc Play/Commands(1) Jump - Green - Audio New New Ins/Ovr Rewind Skip -60s - Yellow - Pause live Delete Delete Delete Delete Skip +60s - - Blue - Stop/Resume Mark On/Off - Info Stop - + Blue - Stop/Resume Mark Info - Info Stop - 0..9 Ch select - Sort(2) Day(3) Numeric inp. Exec cmd(1) Editing - In a numerical input field (like the response to a CAM enquiry) the keys 0..9 @@ -98,12 +98,10 @@ Version 1.3 any changes that might have been made in the current menu. In the "Timers" menu, the current timer can be enabled or disabled with - the "Blue" key (this is only possible if the "Timers" list is sorted, - otherwise the "Blue" key is used to mark a timer in order to move it to - another position in the list). Enabled timers are marked with '>', timers + the "Red" key. Enabled timers are marked with '>', timers that are currently recording are marked with '#'. If a timer has the "First day" set so that it will start recording only on the given date, - it is marked with '!'. The "Blue" key toggles through the "enabled" and + it is marked with '!'. The "Red" key toggles through the "enabled" and "disabled" states, and for repeating timers that are currently recording also a state that ends this recording prematurely and sets the "First day" date so that it will record again the next time the timer hits. diff --git a/i18n.c b/i18n.c index ba3a091a..63c4aeff 100644 --- a/i18n.c +++ b/i18n.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: i18n.c 1.249 2006/02/25 14:13:41 kls Exp $ + * $Id: i18n.c 1.250 2006/02/25 14:21:28 kls Exp $ * * Translations provided by: * @@ -724,6 +724,28 @@ const tI18nPhrase Phrases[] = { "Optag", "Nahrát", }, + { "Button$Info", + "Info", + "Info", + "",//TODO + "Info", + "",//TODO + "Info", + "",//TODO + "Tiedot", + "Info", + "Info", + "Ðëçñïöïñßåò", + "Info", + "Info", + "",//TODO + "",//TODO + "¸ÝäÞ", + "Info", + "Info", + "Info", + "Info", + }, { "Button$Play", "Wiedergabe", "Predvajaj", diff --git a/menu.c b/menu.c index 9ae788c6..75de28f5 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.419 2006/02/25 14:13:29 kls Exp $ + * $Id: menu.c 1.420 2006/02/25 14:39:29 kls Exp $ */ #include "menu.h" @@ -768,12 +768,15 @@ void cMenuTimerItem::Set(void) class cMenuTimers : public cOsdMenu { private: + int helpKeys; eOSState Edit(void); eOSState New(void); eOSState Delete(void); eOSState OnOff(void); virtual void Move(int From, int To); + eOSState Info(void); cTimer *CurrentTimer(void); + void SetHelpKeys(void); public: cMenuTimers(void); virtual ~cMenuTimers(); @@ -783,10 +786,12 @@ public: cMenuTimers::cMenuTimers(void) :cOsdMenu(tr("Timers"), 2, CHNUMWIDTH, 10, 6, 6) { + helpKeys = -1; for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) Add(new cMenuTimerItem(timer)); Sort(); - SetHelp(tr("Button$Edit"), tr("Button$New"), tr("Button$Delete"), tr("Button$On/Off")); + SetCurrent(First()); + SetHelpKeys(); Timers.IncBeingEdited(); } @@ -801,8 +806,26 @@ cTimer *cMenuTimers::CurrentTimer(void) return item ? item->Timer() : NULL; } +void cMenuTimers::SetHelpKeys(void) +{ + int NewHelpKeys = 0; + cTimer *timer = CurrentTimer(); + if (timer) { + if (timer->Event()) + NewHelpKeys = 2; + else + NewHelpKeys = 1; + } + if (NewHelpKeys != helpKeys) { + helpKeys = NewHelpKeys; + SetHelp(helpKeys > 0 ? tr("Button$On/Off") : NULL, tr("Button$New"), helpKeys > 0 ? tr("Button$Delete") : NULL, helpKeys == 2 ? tr("Button$Info") : NULL); + } +} + eOSState cMenuTimers::OnOff(void) { + if (HasSubMenu()) + return osContinue; cTimer *timer = CurrentTimer(); if (timer) { timer->OnOff(); @@ -865,6 +888,16 @@ void cMenuTimers::Move(int From, int To) isyslog("timer %d moved to %d", From + 1, To + 1); } +eOSState cMenuTimers::Info(void) +{ + if (HasSubMenu() || Count() == 0) + return osContinue; + cTimer *ti = CurrentTimer(); + if (ti && ti->Event()) + return AddSubMenu(new cMenuEvent(ti->Event())); + return osContinue; +} + eOSState cMenuTimers::ProcessKey(eKeys Key) { int TimerNumber = HasSubMenu() ? Count() : -1; @@ -873,10 +906,11 @@ eOSState cMenuTimers::ProcessKey(eKeys Key) if (state == osUnknown) { switch (Key) { case kOk: return Edit(); - case kRed: return Edit();//XXX + case kRed: return OnOff(); case kGreen: return New(); case kYellow: return Delete(); - case kBlue: return OnOff(); + case kBlue: return Info(); + break; default: break; } } @@ -885,12 +919,14 @@ eOSState cMenuTimers::ProcessKey(eKeys Key) Add(new cMenuTimerItem(Timers.Get(TimerNumber)), true); Display(); } + if (Key != kNone) + SetHelpKeys(); return state; } // --- cMenuEvent ------------------------------------------------------------ -cMenuEvent::cMenuEvent(const cEvent *Event, bool CanSwitch) +cMenuEvent::cMenuEvent(const cEvent *Event, bool CanSwitch, bool Buttons) :cOsdMenu(tr("Event")) { event = Event; @@ -900,7 +936,8 @@ cMenuEvent::cMenuEvent(const cEvent *Event, bool CanSwitch) SetTitle(channel->Name()); int TimerMatch = tmNone; Timers.GetMatch(event, &TimerMatch); - SetHelp(TimerMatch == tmFull ? tr("Button$Timer") : tr("Button$Record"), NULL, NULL, CanSwitch ? tr("Button$Switch") : NULL); + if (Buttons) + SetHelp(TimerMatch == tmFull ? tr("Button$Timer") : tr("Button$Record"), NULL, NULL, CanSwitch ? tr("Button$Switch") : NULL); } } } @@ -1154,7 +1191,7 @@ eOSState cMenuWhatsOn::ProcessKey(eKeys Key) break; case kBlue: return Switch(); case kOk: if (Count()) - return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, true)); + return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, true, true)); break; default: break; } @@ -1423,7 +1460,7 @@ eOSState cMenuSchedule::ProcessKey(eKeys Key) return Switch(); break; case kOk: if (Count()) - return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, otherChannel)); + return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, otherChannel, true)); break; default: break; } @@ -1831,7 +1868,7 @@ void cMenuRecordings::SetHelpKeys(void) case 0: SetHelp(NULL); break; case 1: SetHelp(tr("Button$Open")); break; case 2: - case 3: SetHelp(RecordingCommands.Count() ? tr("Commands") : tr("Button$Play"), tr("Button$Rewind"), tr("Button$Delete"), NewHelpKeys == 3 ? tr("Info") : NULL); + case 3: SetHelp(RecordingCommands.Count() ? tr("Commands") : tr("Button$Play"), tr("Button$Rewind"), tr("Button$Delete"), NewHelpKeys == 3 ? tr("Button$Info") : NULL); } helpKeys = NewHelpKeys; } diff --git a/menu.h b/menu.h index 0cfa4fb6..098f1b5c 100644 --- a/menu.h +++ b/menu.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.h 1.83 2006/02/17 15:38:40 kls Exp $ + * $Id: menu.h 1.84 2006/02/25 14:39:29 kls Exp $ */ #ifndef __MENU_H @@ -49,7 +49,7 @@ class cMenuEvent : public cOsdMenu { private: const cEvent *event; public: - cMenuEvent(const cEvent *Event, bool CanSwitch = false); + cMenuEvent(const cEvent *Event, bool CanSwitch = false, bool Buttons = false); virtual void Display(void); virtual eOSState ProcessKey(eKeys Key); };