From 84b59b81137887a48533cc897551bccf2e9e10f6 Mon Sep 17 00:00:00 2001 From: Johann Friedrichs Date: Mon, 16 Apr 2018 21:49:48 +0200 Subject: Push to Version 2.4.0 --- HISTORY | 22 +++++ HISTORY.DE | 22 +++++ epgsearch.c | 2 +- patches/MainMenuHooks-v1_0_1.diff.gz | Bin 2355 -> 2420 bytes patches/vdr.epgsearch-exttimeredit-2.3.6.diff | 120 ------------------------- patches/vdr.epgsearch-exttimeredit-2.4.0.diff | 122 ++++++++++++++++++++++++++ 6 files changed, 167 insertions(+), 121 deletions(-) delete mode 100644 patches/vdr.epgsearch-exttimeredit-2.3.6.diff create mode 100644 patches/vdr.epgsearch-exttimeredit-2.4.0.diff diff --git a/HISTORY b/HISTORY index 7248d70..de6ad56 100644 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,28 @@ VDR Plugin 'epgsearch' Revision History --------------------------------------- +2018-04-16; Version 2.4.0 +new: +- Create man pages only once. by jasminj@vdr-portal.de +- Remove useless member "useEpisode" from cBlacklist by jasminj@vdr-portal.de +- Remove useless member "useEpisode" from cBlacklist by jasminj@vdr-portal.de +- Remove useless "LOCK_CHANNELS_READ" in cBlacklist run by jasminj@vdr-portal.de +- Change shell in docsrc2*.sh to /bin/bash, suggested by TomJoad@vdr-portal.de +- Added operator to cListObject derived classes by jasminj@vdr-portal.de +- Add patches/vdr.epgsearch-exttimeredit-2.3.5.diff by Dietmar Spingler +- Adapt new makefile style of VDR 2.3.6 by TomJoad@vdr-portal.de +- Use vdr timerids instead of index by TomJoad@vdr-portal.de +- Fix many lock sequences by TomJoad@vdr-portal.de +- New vdr.epgsearch-exttimeredit-2.3.6.diff (thx to Claus Muus) +- Add conflict check for remote timers by Johann Friedrichs +- Search timers should create only local timers +- Use namespace for svdrpclient +- Add icon for inactive timer +- Use separate thread for recdone processing +- get rid of some casts +- unified indentation +- Preserve timerflags in searchtimerupdate + 2017-05-xx; Version 2.3.1 - development release new: - Commit vdr-2.3.2-epgsearch-1.0.1.beta5~git20150715_v2.diff by fnu@vdr-portal.de diff --git a/HISTORY.DE b/HISTORY.DE index a5044ae..bb09f29 100644 --- a/HISTORY.DE +++ b/HISTORY.DE @@ -1,6 +1,28 @@ VDR Plugin 'epgsearch' Revision History --------------------------------------- +2018-04-16; Version 2.4.0 +neu: +- Create man pages only once. by jasminj@vdr-portal.de +- Remove useless member "useEpisode" from cBlacklist by jasminj@vdr-portal.de +- Remove useless member "useEpisode" from cBlacklist by jasminj@vdr-portal.de +- Remove useless "LOCK_CHANNELS_READ" in cBlacklist run by jasminj@vdr-portal.de +- Change shell in docsrc2*.sh to /bin/bash, suggested by TomJoad@vdr-portal.de +- Added operator to cListObject derived classes by jasminj@vdr-portal.de +- Add patches/vdr.epgsearch-exttimeredit-2.3.5.diff by Dietmar Spingler +- Adapt new makefile style of VDR 2.3.6 by TomJoad@vdr-portal.de +- Use vdr timerids instead of index by TomJoad@vdr-portal.de +- Fix many lock sequences by TomJoad@vdr-portal.de +- New vdr.epgsearch-exttimeredit-2.3.6.diff (thx to Claus Muus) +- Add conflict check for remote timers by Johann Friedrichs +- Search timers should create only local timers +- Use namespace for svdrpclient +- Add icon for inactive timer +- Use separate thread for recdone processing +- get rid of some casts +- unified indentation +- Preserve timerflags in searchtimerupdate + 2017-05-xx; Version 2.3.1 - development release neu: - Anwenden vdr-2.3.2-epgsearch-1.0.1.beta5~git20150715_v2.diff von fnu@vdr-portal.de diff --git a/epgsearch.c b/epgsearch.c index 1d76cdb..0d5ca6b 100644 --- a/epgsearch.c +++ b/epgsearch.c @@ -73,7 +73,7 @@ The project's page is at http://winni.vdr-developer.org/epgsearch #error "VDR-2.3.6 API version or greater is required!" #endif -static const char VERSION[] = "2.3.1"; +static const char VERSION[] = "2.4.0"; static const char DESCRIPTION[] = trNOOP("search the EPG for repeats and more"); // globals diff --git a/patches/MainMenuHooks-v1_0_1.diff.gz b/patches/MainMenuHooks-v1_0_1.diff.gz index c056a03..c248185 100644 Binary files a/patches/MainMenuHooks-v1_0_1.diff.gz and b/patches/MainMenuHooks-v1_0_1.diff.gz differ diff --git a/patches/vdr.epgsearch-exttimeredit-2.3.6.diff b/patches/vdr.epgsearch-exttimeredit-2.3.6.diff deleted file mode 100644 index 36dc30d..0000000 --- a/patches/vdr.epgsearch-exttimeredit-2.3.6.diff +++ /dev/null @@ -1,120 +0,0 @@ ---- a/menu.c.orig 2017-06-04 19:18:37.423036244 +0200 -+++ b/menu.c 2017-06-09 21:33:53.775782116 +0200 -@@ -1155,6 +1155,7 @@ - class cMenuTimerItem : public cOsdItem { - private: - const cTimer *timer; -+ void DoSet(void); - public: - cMenuTimerItem(const cTimer *Timer); - virtual int Compare(const cListObject &ListObject) const; -@@ -1166,7 +1167,7 @@ - cMenuTimerItem::cMenuTimerItem(const cTimer *Timer) - { - timer = Timer; -- Set(); -+ DoSet(); - } - - int cMenuTimerItem::Compare(const cListObject &ListObject) const -@@ -1176,6 +1177,20 @@ - - void cMenuTimerItem::Set(void) - { -+ // check for deleted timer -+ LOCK_TIMERS_READ; -+ if (!Timers->Contains(timer)) -+ { -+ if (const cTimer *t = Timers->GetById(timer->Id(), timer->Remote())) -+ timer = t; -+ else -+ return; // no matching timer found -+ } -+ DoSet(); -+} -+ -+void cMenuTimerItem::DoSet(void) -+{ - cString day, name(""); - if (timer->WeekDays()) - day = timer->PrintDay(0, timer->WeekDays(), false); -@@ -1223,8 +1238,7 @@ - cStateKey timersStateKey; - int helpKeys; - void Set(void); -- eOSState Edit(void); -- eOSState New(void); -+ eOSState Edit(bool New = false); - eOSState Delete(void); - eOSState OnOff(void); - eOSState Info(void); -@@ -1316,21 +1330,34 @@ - return osContinue; - } - --eOSState cMenuTimers::Edit(void) -+eOSState cMenuTimers::Edit(bool New) - { -- if (HasSubMenu() || Count() == 0) -+ if (HasSubMenu() || Count() == 0 && !New) - return osContinue; -- return AddSubMenu(new cMenuEditTimer(GetTimer())); --} -- --eOSState cMenuTimers::New(void) --{ -- if (HasSubMenu()) -- return osContinue; -- cTimer *Timer = new cTimer; -+ cTimer *Timer; -+ if (New) -+ { -+ Timer = new cTimer; - if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost) - Timer->SetRemote(Setup.SVDRPDefaultHost); -- return AddSubMenu(new cMenuEditTimer(Timer, 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 ? Timer : GetTimer(); -+ 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) -@@ -1386,7 +1413,7 @@ - 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(); -@@ -1400,6 +1427,14 @@ - Add(new cMenuTimerItem(Timer), true); - Display(); - } -+ if (!HasSubMenu()) { -+ LOCK_TIMERS_READ; -+ if (Timers->Count()Contains(timer)) ++ { ++ if (const cTimer *t = Timers->GetById(timer->Id(), timer->Remote())) ++ timer = t; ++ else ++ return; // no matching timer found ++ } ++ DoSet(); ++} ++ ++void cMenuTimerItem::DoSet(void) ++{ + cString day, name(""); + if (timer->WeekDays()) + day = timer->PrintDay(0, timer->WeekDays(), false); +@@ -1227,8 +1242,7 @@ private: + cStateKey timersStateKey; + int helpKeys; + void Set(void); +- eOSState Edit(void); +- eOSState New(void); ++ eOSState Edit(bool New = false); + eOSState Delete(void); + eOSState OnOff(void); + eOSState Info(void); +@@ -1322,21 +1336,34 @@ eOSState cMenuTimers::OnOff(void) + return osContinue; + } + +-eOSState cMenuTimers::Edit(void) +-{ +- if (HasSubMenu() || Count() == 0) +- return osContinue; +- return AddSubMenu(new cMenuEditTimer(GetTimer())); +-} +- +-eOSState cMenuTimers::New(void) ++eOSState cMenuTimers::Edit(bool New) + { +- if (HasSubMenu()) ++ if (HasSubMenu() || Count() == 0 && !New) + return osContinue; +- cTimer *Timer = new cTimer; ++ cTimer *Timer; ++ if (New) ++ { ++ Timer = new cTimer; + if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost) + Timer->SetRemote(Setup.SVDRPDefaultHost); +- return AddSubMenu(new cMenuEditTimer(Timer, 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 ? Timer : GetTimer(); ++ 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) +@@ -1392,7 +1419,7 @@ eOSState cMenuTimers::ProcessKey(eKeys Key) + 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(); +@@ -1410,6 +1437,14 @@ eOSState cMenuTimers::ProcessKey(eKeys Key) + SetHelpKeys(); + Display(); + } ++ if (!HasSubMenu()) { ++ LOCK_TIMERS_READ; ++ if (Timers->Count()