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