Sophie

Sophie

distrib > Mageia > 8 > armv7hl > media > core-release-src > by-pkgid > 836fa05f8fb7bdddaeed1792da348e97 > files > 12

vdr-2.0.7-9.mga8.src.rpm

#! /bin/sh /usr/share/dpatch/dpatch-run
## opt-50_graphtft.dpatch by Jörg Wendel (Horchi)
## from vdr-graphtft svn repository (20090728.2153):
## https://vdr-graphtft.svn.sourceforge.net/svnroot/vdr-graphtft
##
## Thomas Günther <tom@toms-cafe.de>:
##   - adapted to VDR-1.7.13
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch required for the GraphTFT plugin.

@DPATCH@
diff -up vdr-2.0.6/menu.c.orig vdr-2.0.6/menu.c
--- vdr-2.0.6/menu.c.orig	2014-11-22 20:07:47.430465638 +0200
+++ vdr-2.0.6/menu.c	2014-11-22 20:07:47.535464378 +0200
@@ -168,6 +168,7 @@ private:
 public:
   cMenuEditChannel(cChannel *Channel, bool New = false);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuEditChannel"; } 
   };
 
 cMenuEditChannel::cMenuEditChannel(cChannel *Channel, bool New)
@@ -366,6 +367,7 @@ public:
   cMenuChannels(void);
   ~cMenuChannels();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuChannels"; }
   };
 
 cMenuChannels::cMenuChannels(void)
@@ -1166,6 +1168,7 @@ public:
   virtual ~cMenuTimers();
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuTimers"; }
   };
 
 cMenuTimers::cMenuTimers(void)
@@ -1460,6 +1463,7 @@ void cMenuEvent::Display(void)
 {
   cOsdMenu::Display();
   DisplayMenu()->SetEvent(event);
+  cStatus::MsgOsdSetEvent(event);
   if (event->Description())
      cStatus::MsgOsdTextItem(event->Description());
 }
@@ -1589,6 +1593,8 @@ public:
   static void SetCurrentChannel(int ChannelNr) { currentChannel = ChannelNr; }
   static const cEvent *ScheduleEvent(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return now ? "MenuWhatsOnNow" : "MenuWhatsOnNext"; }
+  virtual void Display(void);
   };
 
 int cMenuWhatsOn::currentChannel = 0;
@@ -1617,6 +1623,18 @@ cMenuWhatsOn::cMenuWhatsOn(const cSchedu
   SetHelpKeys();
 }
 
+void cMenuWhatsOn::Display(void)
+{
+   cOsdMenu::Display();
+   
+   if (Count() > 0) {
+      int ni = 0;
+      for (cOsdItem *item = First(); item; item = Next(item)) {
+         cStatus::MsgOsdEventItem(((cMenuScheduleItem*)item)->event, item->Text(), ni++, Count());
+      }
+   }
+}
+
 bool cMenuWhatsOn::Update(void)
 {
   bool result = false;
@@ -1757,6 +1775,8 @@ public:
   cMenuSchedule(void);
   virtual ~cMenuSchedule();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSchedule"; }
+  virtual void Display(void);
   };
 
 cMenuSchedule::cMenuSchedule(void)
@@ -1783,6 +1803,18 @@ cMenuSchedule::~cMenuSchedule()
   cMenuWhatsOn::ScheduleEvent(); // makes sure any posted data is cleared
 }
 
+void cMenuSchedule::Display(void)
+{
+   cOsdMenu::Display();
+   
+   if (Count() > 0) {
+      int ni = 0;
+      for (cOsdItem *item = First(); item; item = Next(item)) {
+         cStatus::MsgOsdEventItem(((cMenuScheduleItem*)item)->event, item->Text(), ni++, Count());
+      }
+   }
+}
+
 void cMenuSchedule::PrepareScheduleAllThis(const cEvent *Event, const cChannel *Channel)
 {
   Clear();
@@ -2147,6 +2179,7 @@ public:
   cMenuCam(cCamSlot *CamSlot);
   virtual ~cMenuCam();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuCam"; }
   };
 
 cMenuCam::cMenuCam(cCamSlot *CamSlot)
@@ -2334,6 +2367,7 @@ public:
   cMenuRecording(const cRecording *Recording, bool WithButtons = false);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuRecording"; }
 };
 
 cMenuRecording::cMenuRecording(const cRecording *Recording, bool WithButtons)
@@ -2350,6 +2384,7 @@ void cMenuRecording::Display(void)
 {
   cOsdMenu::Display();
   DisplayMenu()->SetRecording(recording);
+  cStatus::MsgOsdSetRecording(recording);
   if (recording->Info()->Description())
      cStatus::MsgOsdTextItem(recording->Info()->Description());
 }
@@ -2767,6 +2802,7 @@ public:
   cMenuSetupOSD(void);
   virtual ~cMenuSetupOSD();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSetupOsd"; }
   };
 
 cMenuSetupOSD::cMenuSetupOSD(void)
@@ -2920,6 +2956,7 @@ private:
 public:
   cMenuSetupEPG(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSetupEpg"; }
   };
 
 cMenuSetupEPG::cMenuSetupEPG(void)
@@ -3017,6 +3054,7 @@ private:
 public:
   cMenuSetupDVB(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSetupDvb"; }
   };
 
 cMenuSetupDVB::cMenuSetupDVB(void)
@@ -3167,6 +3205,7 @@ private:
 public:
   cMenuSetupLNB(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSetupLnb"; }
   };
 
 cMenuSetupLNB::cMenuSetupLNB(void)
@@ -3272,6 +3311,7 @@ private:
 public:
   cMenuSetupCAM(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSetupCam"; }
   };
 
 cMenuSetupCAM::cMenuSetupCAM(void)
@@ -3458,6 +3498,7 @@ class cMenuSetupPlugins : public cMenuSe
 public:
   cMenuSetupPlugins(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSetupPlugins"; }
   };
 
 cMenuSetupPlugins::cMenuSetupPlugins(void)
@@ -3513,6 +3554,7 @@ private:
 public:
   cMenuSetup(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuSetup"; }
   };
 
 cMenuSetup::cMenuSetup(void)
diff -up vdr-2.0.6/menu.h.orig vdr-2.0.6/menu.h
--- vdr-2.0.6/menu.h.orig	2014-11-22 20:06:02.235727685 +0200
+++ vdr-2.0.6/menu.h	2014-11-22 20:07:47.535464378 +0200
@@ -29,6 +29,7 @@ public:
   void SetText(const char *Text);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuText"; }
   };
 
 class cMenuFolder : public cOsdMenu {
@@ -67,6 +68,7 @@ public:
   cMenuCommands(const char *Title, cList<cNestedItem> *Commands, const char *Parameters = NULL);
   virtual ~cMenuCommands();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuCommands"; }
   };
 
 class cMenuEditTimer : public cOsdMenu {
@@ -85,6 +87,7 @@ public:
   cMenuEditTimer(cTimer *Timer, bool New = false);
   virtual ~cMenuEditTimer();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuTimerEdit"; }
   };
 
 class cMenuEvent : public cOsdMenu {
@@ -94,6 +97,7 @@ public:
   cMenuEvent(const cEvent *Event, bool CanSwitch = false, bool Buttons = false);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuEvent"; }
   };
 
 class cMenuMain : public cOsdMenu {
@@ -110,6 +114,7 @@ public:
   cMenuMain(eOSState State = osUnknown, bool OpenSubMenus = false);
   virtual eOSState ProcessKey(eKeys Key);
   static cOsdObject *PluginOsdObject(void);
+  virtual const char* MenuKind() { return "MenuMain"; }
   };
 
 class cDisplayChannel : public cOsdObject {
@@ -212,6 +217,7 @@ public:
   cMenuRecordings(const char *Base = NULL, int Level = 0, bool OpenSubMenus = false);
   ~cMenuRecordings();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuRecordings"; }
   };
 
 class cRecordControl {
diff -up vdr-2.0.6/menuitems.h.orig vdr-2.0.6/menuitems.h
--- vdr-2.0.6/menuitems.h.orig	2012-03-13 13:19:11.000000000 +0200
+++ vdr-2.0.6/menuitems.h	2014-11-22 20:07:47.535464378 +0200
@@ -209,6 +209,7 @@ public:
   cMenuSetupPage(void);
   virtual eOSState ProcessKey(eKeys Key);
   void SetPlugin(cPlugin *Plugin);
+  const char* MenuKind() { return "MenuSetupPage"; }
   };
 
 #endif //__MENUITEMS_H
diff -up vdr-2.0.6/osdbase.c.orig vdr-2.0.6/osdbase.c
--- vdr-2.0.6/osdbase.c.orig	2014-11-22 20:06:02.235727685 +0200
+++ vdr-2.0.6/osdbase.c	2014-11-22 20:07:47.535464378 +0200
@@ -106,6 +106,7 @@ cOsdMenu::~cOsdMenu()
   free(status);
   displayMenu->Clear();
   cStatus::MsgOsdClear();
+  cStatus::MsgOsdMenuDestroy();
   if (!--displayMenuCount)
      DELETENULL(displayMenu);
 }
@@ -223,6 +224,7 @@ void cOsdMenu::Display(void)
   displayMenu->SetMessage(mtStatus, NULL);
   displayMenu->Clear();
   cStatus::MsgOsdClear();
+  cStatus::MsgOsdMenuDisplay(MenuKind());
   if (menuCategory != displayMenu->MenuCategory())
      displayMenu->SetMenuCategory(menuCategory);
   displayMenuItems = displayMenu->MaxItems();
diff -up vdr-2.0.6/osdbase.h.orig vdr-2.0.6/osdbase.h
--- vdr-2.0.6/osdbase.h.orig	2014-11-22 20:06:02.235727685 +0200
+++ vdr-2.0.6/osdbase.h	2014-11-22 20:07:47.535464378 +0200
@@ -138,6 +138,7 @@ public:
   void Ins(cOsdItem *Item, bool Current = false, cOsdItem *Before = NULL);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual const char* MenuKind() { return "MenuUnknown"; }
   };
 
 #endif //__OSDBASE_H
diff -up vdr-2.0.6/recording.h.orig vdr-2.0.6/recording.h
--- vdr-2.0.6/recording.h.orig	2013-12-25 12:54:05.000000000 +0200
+++ vdr-2.0.6/recording.h	2014-11-22 20:07:47.535464378 +0200
@@ -69,6 +69,7 @@ public:
   const cEvent *GetEvent(void) const { return event; }
   const char *Title(void) const { return event->Title(); }
   const char *ShortText(void) const { return event->ShortText(); }
+  tEventID EventID(void) const { return event->EventID(); }
   const char *Description(void) const { return event->Description(); }
   const cComponents *Components(void) const { return event->Components(); }
   const char *Aux(void) const { return aux; }
diff -up vdr-2.0.6/status.c.orig vdr-2.0.6/status.c
--- vdr-2.0.6/status.c.orig	2012-03-07 16:17:24.000000000 +0200
+++ vdr-2.0.6/status.c	2014-11-22 20:07:47.535464378 +0200
@@ -124,3 +124,32 @@ void cStatus::MsgOsdProgramme(time_t Pre
   for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
       sm->OsdProgramme(PresentTime, PresentTitle, PresentSubtitle, FollowingTime, FollowingTitle, FollowingSubtitle);
 }
+
+void cStatus::MsgOsdSetEvent(const cEvent* event)
+{
+  for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
+      sm->OsdSetEvent(event);
+}
+
+void cStatus::MsgOsdSetRecording(const cRecording* recording)
+{
+  for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
+      sm->OsdSetRecording(recording);
+}
+
+void cStatus::MsgOsdMenuDisplay(const char* kind)
+{
+  for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
+      sm->OsdMenuDisplay(kind);
+}
+
+void cStatus::MsgOsdMenuDestroy()
+{
+  for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
+      sm->OsdMenuDestroy();
+}
+void cStatus::MsgOsdEventItem(const cEvent* Event, const char *Text, int Index, int Count)
+{
+  for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
+     sm->OsdEventItem(Event, Text, Index, Count);
+}
diff -up vdr-2.0.6/status.h.orig vdr-2.0.6/status.h
--- vdr-2.0.6/status.h.orig	2012-03-07 16:16:57.000000000 +0200
+++ vdr-2.0.6/status.h	2014-11-22 20:07:47.535464378 +0200
@@ -81,6 +81,17 @@ protected:
                // The OSD displays the single line Text with the current channel information.
   virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) {}
                // The OSD displays the given programme information.
+  virtual void OsdSetRecording(const cRecording* recording) {}
+               // The OSD displays the recording information.
+  virtual void OsdSetEvent(const cEvent* event) {}
+               // The OSD displays the event information.
+  virtual void OsdMenuDisplay(const char* kind) {}
+               // report menu creation
+  virtual void OsdMenuDestroy() {}
+               // report menu destruvtion
+  virtual void OsdEventItem(const cEvent* Event, const char *Text, int Index, int Count) {}
+               // The OSD displays the given single line Event as menu item at Index.
+
 public:
   cStatus(void);
   virtual ~cStatus();
@@ -102,6 +113,11 @@ public:
   static void MsgOsdTextItem(const char *Text,  bool Scroll = false);
   static void MsgOsdChannel(const char *Text);
   static void MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle);
+  static void MsgOsdSetEvent(const cEvent* event);
+  static void MsgOsdSetRecording(const cRecording* recording);
+  static void MsgOsdMenuDisplay(const char* kind);
+  static void MsgOsdMenuDestroy();
+  static void MsgOsdEventItem(const cEvent* Event, const char *Text, int Index, int Count);
   };
 
 #endif //__STATUS_H