media-plugins/vdr-epgsync: compile fix for media-video/vdr-2.4

need >=media-video/vdr-2.4
moved to eapi 7

Package-Manager: Portage-2.3.83, Repoman-2.3.18
Signed-off-by: Joerg Bornkessel <hd_brummy@gentoo.org>
This commit is contained in:
Joerg Bornkessel
2019-12-26 00:29:24 +01:00
parent 6dfeb1493e
commit 8d4668bf7b
3 changed files with 76 additions and 2 deletions

View File

@@ -0,0 +1,56 @@
compilefix for media-video/vdr-2.4.1
Suggested-by: MatthiasK @ vdr-portal.de
Signed-off-by: Joerg Bornkessel <hd_brummy@gentoo.org> ( 27 Dec 2019 )
diff -Naur epgsync-1.0.1.orig/thread.c epgsync-1.0.1/thread.c
--- epgsync-1.0.1.orig/thread.c 2019-12-26 00:12:49.124492713 +0100
+++ epgsync-1.0.1/thread.c 2019-12-26 00:17:55.129492713 +0100
@@ -42,9 +42,10 @@
}
}
-cChannel *GetChannelByName(const char* Name, const cChannel *IgnoreChannel = NULL, eChannelTypes Type = ctAll)
+const cChannel *GetChannelByName(const char* Name, const cChannel *IgnoreChannel = NULL, eChannelTypes Type = ctAll)
{
- for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel)) {
+ LOCK_CHANNELS_READ;
+ for (const cChannel *channel = Channels->First(); channel; channel = Channels->Next(channel)) {
if (strcasecmp(Name, channel->Name()) == 0 || strcasecmp(Name, channel->ShortName()) == 0) {
if (IsType(channel, Type) && channel != IgnoreChannel)
return channel;
@@ -95,20 +96,17 @@
if (EpgSyncSetup.redirectChannels == rcmId) {
// Direct import, no mapping:
// loop through local channels, get channels by ID
- cSchedulesLock *lock = NULL;
- for (cChannel *channel = Channels.First(); channel && Running();
- channel = Channels.Next(channel)) {
- if (!lock)
- lock = new cSchedulesLock();
- if (cSchedules::Schedules(*lock)->GetSchedule(channel)) {
- DELETENULL(lock);
+ LOCK_CHANNELS_READ;
+ for (const cChannel *channel = Channels->First(); channel && Running();
+ channel = Channels->Next(channel)) {
+ LOCK_SCHEDULES_READ;
+ if (Schedules->GetSchedule(channel)) {
if (CmdLSTE(f, *channel->GetChannelID().ToString())) {
AddSchedule(f);
}
cCondWait::SleepMs(EPGSYNC_SLEEPMS);
}
}
- DELETENULL(lock);
}
else {
// Map channels by name:
@@ -182,7 +180,8 @@
targetChannel = NULL;
const char* p = skipspace(s + 1);
- cChannel *c = Channels.GetByChannelID(tChannelID::FromString(p));
+ LOCK_CHANNELS_READ;
+ const cChannel *c = Channels->GetByChannelID(tChannelID::FromString(p));
bool cOk = IsType(c, (eChannelTypes) EpgSyncSetup.channelTypes);
if (cOk && EpgSyncSetup.redirectChannels != rcmNameId) {

View File

@@ -0,0 +1,18 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit vdr-plugin-2
DESCRIPTION="VDR Plugin: Import the EPG of another VDR via vdr-svdrpservice"
HOMEPAGE="http://vdr.schmirler.de/"
SRC_URI="http://vdr.schmirler.de/epgsync/${P}.tgz"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~arm ~x86"
DEPEND=">=media-video/vdr-2.4"
PATCHES=( "${FILESDIR}/${P}_vdr-2.4.patch" )

View File

@@ -1,7 +1,7 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
EAPI=7
inherit vdr-plugin-2