--- HISTORY	2024/10/12 13:32:46	5.224
+++ HISTORY	2024/10/12 19:39:29
@@ -10033,3 +10033,7 @@
 - The Channel+/- keys can now be used to jump between errors while replaying a recording
   (suggested by Stefan Hofmann).
 - Added vdrrootdir and incdir to vdr.pc (thanks to Stefan Hofmann).
+
+2024-10-12:
+
+- Removed all DEPRECATED_* code.
--- epg.c	2024/09/26 19:25:41	5.11
+++ epg.c	2024/10/12 19:39:29
@@ -1030,18 +1030,6 @@
   return p;
 }
 
-#if DEPRECATED_SCHEDULE_GET_EVENT
-const cEvent *cSchedule::GetEvent(tEventID EventID, time_t StartTime) const
-{
-  // Returns the event info with the given StartTime or, if no actual StartTime
-  // is given, the one with the given EventID.
-  if (StartTime > 0) // 'StartTime < 0' is apparently used with NVOD channels
-     return eventsHashStartTime.Get(StartTime);
-  else
-     return eventsHashID.Get(EventID);
-}
-#endif
-
 const cEvent *cSchedule::GetEventById(tEventID EventID) const
 {
   return eventsHashID.Get(EventID);
--- epg.h	2024/10/08 08:09:48	5.7
+++ epg.h	2024/10/12 19:39:29
@@ -186,10 +186,6 @@
   const cList<cEvent> *Events(void) const { return &events; }
   const cEvent *GetPresentEvent(void) const;
   const cEvent *GetFollowingEvent(void) const;
-#if DEPRECATED_SCHEDULE_GET_EVENT
-  [[deprecated("see HISTORY, version 2.5.2")]]
-  const cEvent *GetEvent(tEventID EventID, time_t StartTime = 0) const;
-#endif
   const cEvent *GetEventById(tEventID EventID) const;
   const cEvent *GetEventByTime(time_t StartTime) const;
   const cEvent *GetEventAround(time_t Time) const;
--- filter.c	2021/03/16 15:10:54	5.1
+++ filter.c	2024/10/12 19:39:29
@@ -73,35 +73,6 @@
   return complete;
 }
 
-#if DEPRECATED_SECTIONSYNCER_SYNC_REPEAT
-void cSectionSyncer::Repeat(void)
-{
-  SetSectionFlag(currentSection, false);
-  synced = false;
-  complete = false;
-}
-
-bool cSectionSyncer::Sync(uchar Version, int Number, int LastNumber)
-{
-  if (Version != currentVersion) {
-     Reset();
-     currentVersion = Version;
-     }
-  if (!synced) {
-     if (Number != 0)
-        return false;
-     else
-        synced = true;
-     }
-  currentSection = Number;
-  bool Result = !GetSectionFlag(Number);
-  SetSectionFlag(Number, true);
-  if (Number == LastNumber)
-     complete = true;
-  return Result;
-}
-#endif
-
 // --- cFilterData -----------------------------------------------------------
 
 cFilterData::cFilterData(void)
--- filter.h	2024/10/08 08:09:48	5.4
+++ filter.h	2024/10/12 19:39:29
@@ -47,12 +47,6 @@
        ///< Returns true if all sections have been processed.
   bool Complete(void) { return complete; }
        ///< Returns true if all sections have been processed.
-#if DEPRECATED_SECTIONSYNCER_SYNC_REPEAT
-  [[deprecated("see HISTORY, version 2.5.2")]]
-  void Repeat(void);
-  [[deprecated("see HISTORY, version 2.5.2")]]
-  bool Sync(uchar Version, int Number, int LastNumber);
-#endif
   };
 
 class cSectionSyncerRandom : public cSectionSyncer {
--- player.c	2024/07/16 12:33:27	5.1
+++ player.c	2024/10/12 19:54:09
@@ -70,14 +70,6 @@
   return "";
 }
 
-#if DEPRECATED_CCONTROL
-cControl *cControl::Control(bool Hidden)
-{
-  cMutexLock MutexLock(&mutex);
-  return (control && (!control->hidden || Hidden)) ? control : NULL;
-}
-#endif
-
 cControl *cControl::Control(cMutexLock &MutexLock, bool Hidden)
 {
   MutexLock.Lock(&mutex);
@@ -87,7 +79,7 @@
 void cControl::Launch(cControl *Control)
 {
   cMutexLock MutexLock(&mutex);
-  cControl *c = control; // keeps control from pointing to uninitialized memory TODO obsolete once DEPRECATED_CCONTROL is gone
+  cControl *c = control; // keeps control from pointing to uninitialized memory
   control = Control;
   delete c;
 }
--- player.h	2024/10/08 08:09:48	5.5
+++ player.h	2024/10/12 19:39:29
@@ -117,15 +117,6 @@
   static void Launch(cControl *Control);
   static void Attach(void);
   static void Shutdown(void);
-#if DEPRECATED_CCONTROL
-  [[deprecated("see HISTORY, version 2.4.2")]]
-  static cControl *Control(bool Hidden = false);
-         ///< Old version of this function, for backwards compatibility with plugins.
-         ///< Plugins should be changed to use the new version below, which does
-         ///< proper locking.
-         ///< Use of this function may result in program crashes in case replay is
-         ///< stopped immediately after starting it.
-#endif
   static cControl *Control(cMutexLock &MutexLock, bool Hidden = false);
          ///< Returns the current replay control (if any) in case it is currently
          ///< visible. If Hidden is true, the control will be returned even if it is
