diff options
Diffstat (limited to 'patches')
-rw-r--r-- | patches/vdr.epgsearch-exttimeredit-0.0.2.diff | 110 | ||||
-rw-r--r-- | patches/vdr.epgsearch-exttimeredit.diff | 26 |
2 files changed, 110 insertions, 26 deletions
diff --git a/patches/vdr.epgsearch-exttimeredit-0.0.2.diff b/patches/vdr.epgsearch-exttimeredit-0.0.2.diff new file mode 100644 index 0000000..c92ff8c --- /dev/null +++ b/patches/vdr.epgsearch-exttimeredit-0.0.2.diff @@ -0,0 +1,110 @@ +--- menu.c.orig 2009-04-11 14:47:08.000000000 +0200 ++++ menu.c 2009-04-17 13:53:05.000000000 +0200 +@@ -853,6 +853,7 @@ eOSState cMenuEditTimer::ProcessKey(eKey + class cMenuTimerItem : public cOsdItem { + private: + cTimer *timer; ++ void DoSet(void); + public: + cMenuTimerItem(cTimer *Timer); + virtual int Compare(const cListObject &ListObject) const; +@@ -863,7 +864,7 @@ public: + cMenuTimerItem::cMenuTimerItem(cTimer *Timer) + { + timer = Timer; +- Set(); ++ DoSet(); + } + + int cMenuTimerItem::Compare(const cListObject &ListObject) const +@@ -873,6 +874,18 @@ int cMenuTimerItem::Compare(const cListO + + void cMenuTimerItem::Set(void) + { ++ // check for deleted timer ++ for (cTimer *t = Timers.First(); ; t = Timers.Next(t)) { ++ if (t == timer) ++ break; // timer still there ++ if (t == NULL) ++ return; // no matching timer found ++ } ++ DoSet(); ++} ++ ++void cMenuTimerItem::DoSet(void) ++{ + cString day, name(""); + if (timer->WeekDays()) + day = timer->PrintDay(0, timer->WeekDays(), false); +@@ -906,8 +919,7 @@ void cMenuTimerItem::Set(void) + class cMenuTimers : public cOsdMenu { + private: + int helpKeys; +- eOSState Edit(void); +- eOSState New(void); ++ eOSState Edit(bool New = false); + eOSState Delete(void); + eOSState OnOff(void); + eOSState Info(void); +@@ -980,19 +992,30 @@ eOSState cMenuTimers::OnOff(void) + return osContinue; + } + +-eOSState cMenuTimers::Edit(void) ++eOSState cMenuTimers::Edit(bool New) + { +- if (HasSubMenu() || Count() == 0) ++ if (HasSubMenu() || (Count() == 0 && !New)) + return osContinue; +- isyslog("editing timer %s", *CurrentTimer()->ToDescr()); +- return AddSubMenu(new cMenuEditTimer(CurrentTimer())); +-} ++ if (!New) ++ isyslog("editing timer %s", *CurrentTimer()->ToDescr()); + +-eOSState cMenuTimers::New(void) +-{ +- if (HasSubMenu()) +- return osContinue; +- return AddSubMenu(new cMenuEditTimer(new cTimer, true)); ++ // Data structure for service "Epgsearch-exttimeredit-v1.0" ++ struct Epgsearch_exttimeredit_v1_0 ++ { ++ // in ++ cTimer* timer; // pointer to the timer to edit ++ bool bNew; // flag that indicates, if this is a new timer or an existing one ++ const cEvent* event; // pointer to the event corresponding to this timer (may be NULL) ++ // out ++ cOsdMenu* pTimerMenu; // pointer to the menu of results ++ } exttimeredit; ++ exttimeredit.timer = New ? (new cTimer) : CurrentTimer(); ++ exttimeredit.bNew = New; ++ exttimeredit.event = exttimeredit.timer->Event(); ++ if (cPluginManager::CallFirstService("Epgsearch-exttimeredit-v1.0", &exttimeredit)) ++ return AddSubMenu(exttimeredit.pTimerMenu); ++ ++ return AddSubMenu(new cMenuEditTimer(exttimeredit.timer, New)); + } + + eOSState cMenuTimers::Delete(void) +@@ -1038,7 +1061,7 @@ eOSState cMenuTimers::ProcessKey(eKeys K + switch (Key) { + case kOk: return Edit(); + case kRed: state = OnOff(); break; // must go through SetHelpKeys()! +- case kGreen: return New(); ++ case kGreen: return Edit(true); + case kYellow: state = Delete(); break; + case kInfo: + case kBlue: return Info(); +@@ -1051,6 +1074,11 @@ eOSState cMenuTimers::ProcessKey(eKeys K + Add(new cMenuTimerItem(Timers.Get(TimerNumber)), true); + Display(); + } ++ if (!HasSubMenu() && Timers.Count()<Count()) { ++ // timer was deleted ++ cOsdMenu::Del(Current()); ++ Display(); ++ } + if (Key != kNone) + SetHelpKeys(); + return state; diff --git a/patches/vdr.epgsearch-exttimeredit.diff b/patches/vdr.epgsearch-exttimeredit.diff deleted file mode 100644 index 36e3554..0000000 --- a/patches/vdr.epgsearch-exttimeredit.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- menu.c.orig 2009-04-11 14:47:08.000000000 +0200 -+++ menu.c 2009-04-11 15:13:30.000000000 +0200 -@@ -985,6 +985,23 @@ eOSState cMenuTimers::Edit(void) - if (HasSubMenu() || Count() == 0) - return osContinue; - isyslog("editing timer %s", *CurrentTimer()->ToDescr()); -+ -+ // Data structure for service "Epgsearch-exttimeredit-v1.0" -+ struct Epgsearch_exttimeredit_v1_0 -+ { -+ // in -+ cTimer* timer; // pointer to the timer to edit -+ bool bNew; // flag that indicates, if this is a new timer or an existing one -+ const cEvent* event; // pointer to the event corresponding to this timer (may be NULL) -+ // out -+ cOsdMenu* pTimerMenu; // pointer to the menu of results -+ } exttimeredit; -+ exttimeredit.timer = CurrentTimer(); -+ exttimeredit.bNew = false; -+ exttimeredit.event = NULL; -+ if (cPluginManager::CallFirstService("Epgsearch-exttimeredit-v1.0", &exttimeredit)) -+ return AddSubMenu(exttimeredit.pTimerMenu); -+ - return AddSubMenu(new cMenuEditTimer(CurrentTimer())); - } - |