Sophie

Sophie

distrib > Mandriva > 2007.1 > x86_64 > by-pkgid > fdddaca718fdaac56c6bff726f3554dd > files > 13

vdr-1.4.7-9mdv2007.1.src.rpm

--- ../vdr-1.4.3-plain//menu.c	2006-07-23 11:23:11.000000000 +0200
+++ menu.c	2006-11-30 00:06:15.000000000 +0100
@@ -220,6 +220,7 @@
 public:
   cMenuEditChannel(cChannel *Channel, bool New = false);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omEditChannel; }
   };
 
 cMenuEditChannel::cMenuEditChannel(cChannel *Channel, bool New)
@@ -393,6 +394,7 @@
   cMenuChannels(void);
   ~cMenuChannels();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omChannels; }
   };
 
 cMenuChannels::cMenuChannels(void)
@@ -802,6 +804,7 @@
   cMenuTimers(void);
   virtual ~cMenuTimers();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omTimers; }
   };
 
 cMenuTimers::cMenuTimers(void)
@@ -1246,6 +1249,7 @@
   cMenuSchedule(void);
   virtual ~cMenuSchedule();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omSchedule; }
   };
 
 cMenuSchedule::cMenuSchedule(void)
@@ -1518,6 +1522,7 @@
   cMenuCommands(const char *Title, cCommands *Commands, const char *Parameters = NULL);
   virtual ~cMenuCommands();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omCommands; }
   };
 
 cMenuCommands::cMenuCommands(const char *Title, cCommands *Commands, const char *Parameters)
@@ -1749,6 +1754,7 @@
   cMenuRecording(const cRecording *Recording, bool WithButtons = false);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omRecording; }
 };
 
 cMenuRecording::cMenuRecording(const cRecording *Recording, bool WithButtons)
@@ -2638,6 +2644,7 @@
 public:
   cMenuSetupPlugins(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omSetupPage; }
   };
 
 cMenuSetupPlugins::cMenuSetupPlugins(void)
@@ -2691,6 +2698,7 @@
 public:
   cMenuSetup(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omSetup; }
   };
 
 cMenuSetup::cMenuSetup(void)
--- ../vdr-1.4.3-plain//menu.h	2006-03-25 13:15:19.000000000 +0100
+++ menu.h	2006-11-29 14:40:58.000000000 +0100
@@ -29,6 +29,7 @@
   void SetText(const char *Text);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omText; }
   };
 
 class cMenuEditTimer : public cOsdMenu {
@@ -43,6 +44,7 @@
   cMenuEditTimer(cTimer *Timer, bool New = false);
   virtual ~cMenuEditTimer();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omTimerEdit; }
   };
 
 class cMenuEvent : public cOsdMenu {
@@ -52,6 +54,7 @@
   cMenuEvent(const cEvent *Event, bool CanSwitch = false, bool Buttons = false);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omEvent; }
   };
 
 class cMenuMain : public cOsdMenu {
@@ -70,6 +73,7 @@
   cMenuMain(eOSState State = osUnknown);
   virtual eOSState ProcessKey(eKeys Key);
   static cOsdObject *PluginOsdObject(void);
+  virtual eOsdMenuKind MenuKind() { return omMain; }
   };
 
 class cDisplayChannel : public cOsdObject {
@@ -139,6 +143,7 @@
   cMenuCam(cCiMenu *CiMenu);
   virtual ~cMenuCam();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omCam; }
   };
 
 class cMenuCamEnquiry : public cOsdMenu {
@@ -151,6 +156,7 @@
   cMenuCamEnquiry(cCiEnquiry *CiEnquiry);
   virtual ~cMenuCamEnquiry();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omCamEnquiry; }
   };
 
 cOsdObject *CamControl(void);
@@ -177,6 +183,7 @@
   cMenuRecordings(const char *Base = NULL, int Level = 0, bool OpenSubMenus = false);
   ~cMenuRecordings();
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omRecordings; }
   };
 
 class cRecordControl {
--- ../vdr-1.4.3-plain//menuitems.h	2006-04-14 12:01:47.000000000 +0200
+++ menuitems.h	2006-11-29 14:40:58.000000000 +0100
@@ -166,6 +166,7 @@
   cMenuSetupPage(void);
   virtual eOSState ProcessKey(eKeys Key);
   void SetPlugin(cPlugin *Plugin);
+  eOsdMenuKind MenuKind() { return omSetupPage; }
   };
 
 #endif //__MENUITEMS_H
--- ../vdr-1.4.3-plain//osdbase.c	2006-02-05 15:37:03.000000000 +0100
+++ osdbase.c	2006-11-29 14:40:58.000000000 +0100
@@ -99,6 +99,7 @@
   free(status);
   displayMenu->Clear();
   cStatus::MsgOsdClear();
+  cStatus::MsgOsdMenuDestroy();
   if (!--displayMenuCount)
      DELETENULL(displayMenu);
 }
@@ -194,6 +195,7 @@
   displayMenu->SetMessage(mtStatus, NULL);
   displayMenu->Clear();
   cStatus::MsgOsdClear();
+  cStatus::MsgOsdMenuDisplay(MenuKind());
   displayMenu->SetTabs(cols[0], cols[1], cols[2], cols[3], cols[4]);//XXX
   displayMenu->SetTitle(title);
   cStatus::MsgOsdTitle(title);
@@ -463,6 +465,7 @@
      eOSState state = subMenu->ProcessKey(Key);
      if (state == osBack)
         return CloseSubMenu();
+
      return state;
      }
 
--- ../vdr-1.4.3-plain//osdbase.h	2006-01-06 12:55:30.000000000 +0100
+++ osdbase.h	2006-11-29 14:40:58.000000000 +0100
@@ -46,6 +46,30 @@
                 osUser10,
               };
 
+enum eOsdMenuKind { omUnknown,
+                    omMain,
+                    omText,
+                    omTimerEdit,
+                    omEvent,
+                    omCam,
+                    omCamEnquiry,
+                    omSetupPage,
+                    omEditChannel,
+                    omChannels,
+                    omCommands,
+                    omTimers,
+                    omWhatsOn,
+                    omWhatsOnElse = omWhatsOn,
+                    omWhatsOnNow,
+                    omWhatsOnNext,
+                    omSchedule,
+                    omRecording,
+                    omRecordings,
+                    omRenameRecording,
+                    omSetup
+                  };
+                 
+
 class cOsdItem : public cListObject {
 private:
   char *text;
@@ -125,6 +149,7 @@
   void Ins(cOsdItem *Item, bool Current = false, cOsdItem *Before = NULL);
   virtual void Display(void);
   virtual eOSState ProcessKey(eKeys Key);
+  virtual eOsdMenuKind MenuKind() { return omUnknown; }
   };
 
 #endif //__OSDBASE_H
--- ../vdr-1.4.3-plain//status.c	2005-12-31 16:10:10.000000000 +0100
+++ status.c	2006-11-29 14:40:58.000000000 +0100
@@ -112,3 +112,15 @@
   for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
       sm->OsdProgramme(PresentTime, PresentTitle, PresentSubtitle, FollowingTime, FollowingTitle, FollowingSubtitle);
 }
+
+void cStatus::MsgOsdMenuDisplay(eOsdMenuKind 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();
+}
--- ../vdr-1.4.3-plain//status.h	2005-12-31 16:15:25.000000000 +0100
+++ status.h	2006-11-29 14:40:58.000000000 +0100
@@ -67,6 +67,11 @@
                // 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 OsdMenuDisplay(eOsdMenuKind kind) {}
+               // report menu creation
+  virtual void OsdMenuDestroy() {}
+               // report menu destruvtion
+
 public:
   cStatus(void);
   virtual ~cStatus();
@@ -86,6 +91,8 @@
   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 MsgOsdMenuDisplay(const eOsdMenuKind kind);
+  static void MsgOsdMenuDestroy();
   };
 
 #endif //__STATUS_H