public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/vdr] rawhide: Update to 2.8.2 API version 13
@ 2026-06-03  6:39 Martin Gansser
  0 siblings, 0 replies; only message in thread
From: Martin Gansser @ 2026-06-03  6:39 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/vdr
Branch : rawhide
Commit : e11ef135e2c3cae144f149c9bcaf606cdef5de2f
Author : Martin Gansser <mgansser@netcom-mail.de>
Date   : 2026-06-03T08:39:15+02:00
Stats  : +216/-5 in 3 file(s)
URL    : https://src.fedoraproject.org/rpms/vdr/c/e11ef135e2c3cae144f149c9bcaf606cdef5de2f?branch=rawhide

Log:
Update to 2.8.2 API version 13

---
diff --git a/sources b/sources
index 257dadf..6d545c5 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (vdr-2.8.1.tar.bz2) = bb48502e4b9ae56535fed359332ece720ae525be623fe35a1849713a367a84a7f3873664d8728a64a224b02403c14ec1cfd3b2ba6b0d22f914cba7bfddf09b1f
+SHA512 (vdr-2.8.2.tar.bz2) = cecc90bb6a25f14a53f82238bd1680e0e3919bc197be81e405e0f698b3425fb3f7a21d600e789fdd1db2710baf624bef431b7b6babcb721ef41773136275ca9e
 SHA512 (vdr-rcu-2.2.0.tgz) = 56abebcfde3511c4dcf6f414915c7aa70a16b8e138e2d9364080828edc9b0da045acaadaaa4094d1315ddefdafa5f966aebcfacf979c068e077f1e32e29773b7
 SHA512 (vdr-dvbsddevice-2.2.0.tgz) = ac0b94b8b192208ad7e736d7c4f27cca6517134b17fc86a79cdd19453176d5f6076418bf679435899cd953053f3b54776342bcdab23a659e8331e9f2ed4ee364
 SHA512 (3473a7b939d7.zip) = fc405ac81cc1374de3a2d457f76972e605cf51c20c5e86f4fb683bb7fc78fde51690e65f463870c6881a65308722ccecd60d4a8957e3e2d43ecfd665f0e5aa8f

diff --git a/vdr-2.8.2-MainMenuHooks-v1_0_5.diff b/vdr-2.8.2-MainMenuHooks-v1_0_5.diff
new file mode 100644
index 0000000..475c0ff
--- /dev/null
+++ b/vdr-2.8.2-MainMenuHooks-v1_0_5.diff
@@ -0,0 +1,208 @@
+This is a "patch" for the Video Disk Recorder (VDR).
+
+* History
+2026-02-07: Version 1.0.5
+Update for VDR 2.7.9 (Stefan Hofmann)
+
+2025-02-26: Version 1.0.4
+Update for VDR 2.7.4 (Jörg Riechardt)
+
+2013-11-08: Version 1.0.3
+Update for VDR 2.1.2 (Jörg Riechardt)
+
+2012-04-06: Version 1.0.2
+- Update for recent VDR developer versions (Manuel Reimer)
+
+2010-10-15: Version 1.0.1
+- return a cOsdObject instead of its subclass cOsdMenu (thanks to
+  Joe_D@vdrportal)
+- version number defines in 'config.h' now follow the usual conventions:
+  MAINMENUHOOKSVERSNUM is now a number, the newly added define
+  MAINMENUHOOKSVERSION is a string (suggested by gnapheus@vdrportal)
+- patch is now based on VDR 1.6.0
+- updated documentation
+
+2007-02-26: Version 1.0
+- Initial revision.
+
+* Authors:
+Tobias Grimm  <vdr at e-tobi dot net>
+Martin Prochnow  <nordlicht at martins-kabuff dot de>
+Frank Schmirler  <vdrdev at schmirler dot de>
+Christian Wieninger  <cwieninger at gmx dot de>
+
+* Description:
+This patch allows plugins to replace the VDR main menus "Schedule",
+"Channels", "Timers" and "Recordings" by a different implementation.
+
+The patch is based on a suggestion of Christian Wieninger back in 2006
+(http://www.linuxtv.org/pipermail/vdr/2006-March/008234.html). It is
+meant to be an interim solution for VDR 1.4 until (maybe) VDR 1.5
+introduces an official API for this purpose.
+
+* Installation
+Change into the VDR source directory, then issue
+  patch -p1 < path/to/MainMenuHooks-v1_0_1.patch
+and recompile.
+
+* Notes for plugin authors
+The following code sample shows the required plugin code for replacing
+the original Schedule menu:
+
+bool cMyPlugin::Service(const char *Id, void *Data)
+{
+  cOsdMenu **menu = (cOsdMenu**) Data;
+  if (MySetup.replaceSchedule &&
+            strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0) {
+    if (menu)
+      *menu = (cOsdMenu*) MainMenuAction();
+    return true;
+  }
+  return false;
+}
+
+Since patch version 1.0.1, the service call may return a cOsdObject
+instead of a 'cOsdMenu'. Use '#ifdef MAINMENUHOOKSVERSION' to detect
+version 1.0.1 or later.
+
+A plugin can replace more than one menu at a time. Simply replace the
+call to MainMenuAction() in the sample above by appropriate code.
+
+Note that a plugin *should* offer a setup option which allows the user
+to enable or disable the replacement. "Disabled" would be a reasonable
+default setting. By testing for a specific 'MAINMENUHOOKSVERSNUM', like
+'#if MAINMENUHOOKSVERSION >= 10001', plugin can decide at compile time 
+which features and setup options to provide.
+
+In case there is an internal problem when trying to open the replacement
+menu, it is safe to return 'true' even though 'Data' is NULL. However an
+OSD message should indicate the problem to the user.
+
+Feel free to ship this patch along with your plugin. However if you
+think you need to modify the patch, we'd encourage you to contact the
+authors first or at least use a service id which differs in more than
+just the version number.
+
+---
+ config.h |  4 ++++
+ menu.c   | 71 +++++++++++++++++++++++++++++++++++++++++++++-----------
+ 2 files changed, 61 insertions(+), 14 deletions(-)
+
+diff --git a/config.h b/config.h
+index 96fd5dd7..fddcdc21 100644
+--- a/config.h
++++ b/config.h
+@@ -35,6 +35,10 @@
+ // only when there are changes to the plugin API. This allows compiled
+ // plugins to work with newer versions of the core VDR as long as no
+ // interfaces have changed. APIVERSNUM begins with "300.." for backwards
++
++// The MainMenuHook Patch's version number:
++#define MAINMENUHOOKSVERSION "1.0.5"
++#define MAINMENUHOOKSVERSNUM  10005  // Version * 10000 + Major * 100 + Minor
+ // compatibility and can be used in #if preprocessor statements to handle
+ // version dependent code.
+ 
+diff --git a/menu.c b/menu.c
+index 8798a3f1..57555d3e 100644
+--- a/menu.c
++++ b/menu.c
+@@ -4671,15 +4671,31 @@ cMenuMain::cMenuMain(eOSState State, bool OpenSubMenus)
+ 
+   // Initial submenus:
+ 
++  cOsdObject *menu = NULL;
+   switch (State) {
+-    case osSchedule:   AddSubMenu(new cMenuSchedule); break;
+-    case osChannels:   AddSubMenu(new cMenuChannels); break;
+-    case osTimers:     AddSubMenu(new cMenuTimers); break;
+-    case osRecordings: AddSubMenu(new cMenuRecordings(NULL, 0, OpenSubMenus)); break;
+-    case osSetup:      AddSubMenu(new cMenuSetup); break;
+-    case osCommands:   AddSubMenu(new cMenuCommands(tr("Button$Commands"), &Commands)); break;
++    case osSchedule:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osSchedule", &menu))
++            menu = new cMenuSchedule;
++        break;
++    case osChannels:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osChannels", &menu))
++            menu = new cMenuChannels;
++        break;
++    case osTimers:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osTimers", &menu))
++            menu = new cMenuTimers;
++        break;
++    case osRecordings:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osRecordings", &menu))
++            menu = new cMenuRecordings(NULL, 0, OpenSubMenus);
++        break;
++    case osSetup:      menu = new cMenuSetup; break;
++    case osCommands:   menu = new cMenuCommands(tr("Button$Commands"), &Commands); break;
+     default: break;
+     }
++  if (menu)
++     if (menu->IsMenu())
++        AddSubMenu((cOsdMenu *) menu);
+ }
+ 
+ cOsdObject *cMenuMain::PluginOsdObject(void)
+@@ -4808,15 +4824,36 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
+   eOSState state = cOsdMenu::ProcessKey(Key);
+   HadSubMenu |= HasSubMenu();
+ 
++  cOsdObject *menu = NULL;
+   switch (state) {
+-    case osSchedule:   return AddSubMenu(new cMenuSchedule);
+-    case osChannels:   return AddSubMenu(new cMenuChannels);
+-    case osTimers:     return AddSubMenu(new cMenuTimers);
+-    case osRecordings: return AddSubMenu(new cMenuRecordings);
+-    case osRecsOpen:   return AddSubMenu(new cMenuRecordings(NULL, 0, true));
+-    case osRecsDel:    return AddSubMenu(new cMenuRecordings(NULL, 0, true, NULL, true));
+-    case osSetup:      return AddSubMenu(new cMenuSetup);
+-    case osCommands:   return AddSubMenu(new cMenuCommands(tr("Button$Commands"), &Commands));
++    case osSchedule:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osSchedule", &menu))
++            menu = new cMenuSchedule;
++        else
++            state = osContinue;
++        break;
++    case osChannels:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osChannels", &menu))
++            menu = new cMenuChannels;
++        else
++            state = osContinue;
++        break;
++    case osTimers:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osTimers", &menu))
++            menu = new cMenuTimers;
++        else
++            state = osContinue;
++        break;
++    case osRecordings:
++        if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osRecordings", &menu))
++            menu = new cMenuRecordings;
++        else
++            state = osContinue;
++        break;
++    case osRecsOpen:   menu = new cMenuRecordings(NULL, 0, true); break;
++    case osRecsDel:    menu = new cMenuRecordings(NULL, 0, true, NULL, true); break;
++    case osSetup:      menu = new cMenuSetup; break;
++    case osCommands:   menu = new cMenuCommands(tr("Button$Commands"), &Commands); break;
+     case osStopRecord: if (Interface->Confirm(tr("Stop recording?"))) {
+                           if (cOsdItem *item = Get(Current())) {
+                              cRecordControls::Stop(item->Text() + strlen(tr(STOP_RECORDING)));
+@@ -4867,6 +4904,12 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
+                default:      break;
+                }
+     }
++  if (menu) {
++     if (menu->IsMenu())
++        return AddSubMenu((cOsdMenu *) menu);
++     pluginOsdObject = menu;
++     return osPlugin;
++     }
+   bool DoDisplay = Update();
+   if (Key != kNone) {
+      if (I18nCurrentLanguage() != osdLanguage) {
+-- 
+2.43.0
+

diff --git a/vdr.spec b/vdr.spec
index 769adeb..d68b545 100644
--- a/vdr.spec
+++ b/vdr.spec
@@ -24,17 +24,17 @@
 %global vdr_user  vdr
 %global vdr_group video
 # From APIVERSION in config.h
-%global apiver    12
+%global apiver    13
 
 Name:           vdr
-Version:        2.8.1
+Version:        2.8.2
 Release:        1%{?dist}
 Summary:        Video Disk Recorder
 
 License:        GPL-2.0-or-later
 URL:            http://www.tvdr.de/
-# Get vdr source from http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.8.1;sf=tbz2
-# wget --content-disposition "http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.8.1;sf=tbz2"
+# Get vdr source from http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.8.2;sf=tbz2
+# wget --content-disposition "http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.8.2;sf=tbz2"
 Source0:        %{name}-%{version}.tar.bz2
 Source1:        %{name}.service
 Source2:        %{name}.sysconfig
@@ -550,6 +550,9 @@ systemctl daemon-reload
 
 
 %changelog
+* Tue Jun 23 2026 Martin Gansser <martinkg@fedoraproject.org> - 2.8.2-1
+- Update to 2.8.2 API version 13
+
 * Mon Mar 23 2026 Martin Gansser <martinkg@fedoraproject.org> - 2.8.1-1
 - Update to 2.8.1
 

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-06-03  6:39 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-03  6:39 [rpms/vdr] rawhide: Update to 2.8.2 API version 13 Martin Gansser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox