mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
@@ -0,0 +1,50 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-ddci2"
|
||||
PKG_VERSION="05dd988"
|
||||
PKG_SHA256="b8ed2787e9140eb00a68397eaeb14862ba88a6e73480dc3220a098faffb14833"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/jasmin-j/vdr-plugin-ddci2"
|
||||
PKG_URL="https://github.com/jasmin-j/vdr-plugin-ddci2/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="Support for stand alone CI by Digital Devices."
|
||||
PKG_LONGDESC="Support for stand alone CI by Digital Devices."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
export PKG_CONFIG_PATH=$VDR_DIR:$PKG_CONFIG_PATH
|
||||
export CPLUS_INCLUDE_PATH=$VDR_DIR/include
|
||||
|
||||
make \
|
||||
LIBDIR="." \
|
||||
LOCDIR="./locale" \
|
||||
all
|
||||
}
|
||||
|
||||
post_make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
VDR_APIVERSION=`sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' $VDR_DIR/config.h`
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
@@ -1,19 +1,20 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dummydevice"
|
||||
@@ -26,8 +27,9 @@ PKG_URL="http://phivdr.dyndns.org/vdr/vdr-dummydevice/${PKG_NAME/-plugin/}-$PKG_
|
||||
PKG_SOURCE_DIR="dummydevice-${PKG_VERSION}"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr dummydevice plugin"
|
||||
PKG_LONGDESC="vdr dummydevice plugin"
|
||||
PKG_SHORTDESC="This plugin can be used to run vdr as recording server without any output devices."
|
||||
PKG_LONGDESC="This plugin can be used to run vdr as recording server without any output devices."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@@ -46,9 +48,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination ${LIB_NAME}.so ${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
||||
@@ -1,37 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dvbapi"
|
||||
PKG_VERSION="d7c7587"
|
||||
PKG_SHA256="2b85a086aedf55246c5e8ee7d41648318cbb77b49d00e638d20b0737e33d9451"
|
||||
PKG_VERSION="7d51cc4"
|
||||
PKG_SHA256="b16840574802581950343942559797aeccbc4a8fc216901ad0cea42f420bfd7c"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/manio/vdr-plugin-dvbapi"
|
||||
PKG_URL="https://github.com/manio/vdr-plugin-dvbapi/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr libdvbcsa"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="TV"
|
||||
PKG_LONGDESC="TV"
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
PKG_SHORTDESC="VDR dvbapi plugin for use with OSCam"
|
||||
PKG_LONGDESC="VDR dvbapi plugin for use with OSCam"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@@ -51,9 +48,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index d18b016..278af2b 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -156,7 +156,7 @@ libdvbapi-dvbufs9xx.so: device-ufs9xx.o
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 7d51cc457823156d446d06c6ae40f850958fa735 Mon Sep 17 00:00:00 2001
|
||||
From: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Date: Sat, 25 Nov 2017 18:57:08 +0100
|
||||
Subject: [PATCH] Fix compilation for kernels >= 4.14
|
||||
|
||||
Closes #122
|
||||
---
|
||||
CA.h | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/CA.h b/CA.h
|
||||
index 7130be6..019cd1c 100644
|
||||
--- a/CA.h
|
||||
+++ b/CA.h
|
||||
@@ -9,4 +9,12 @@ typedef struct ca_descr_aes {
|
||||
unsigned char cw[16];
|
||||
} ca_descr_aes_t;
|
||||
|
||||
+#ifndef CA_SET_PID /* removed in kernel 4.14 */
|
||||
+typedef struct ca_pid {
|
||||
+ unsigned int pid;
|
||||
+ int index; /* -1 == disable */
|
||||
+} ca_pid_t;
|
||||
+#define CA_SET_PID _IOW('o', 135, struct ca_pid)
|
||||
#endif
|
||||
+
|
||||
+#endif // __CA_H
|
||||
@@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-eepg"
|
||||
PKG_VERSION="9cd9a75"
|
||||
PKG_SHA256="b5c21e083a0d78251028de55dfb59b47df9db88cbbb811f39e913c2fb4e63ba6"
|
||||
PKG_VERSION="584d766"
|
||||
PKG_SHA256="0ad19af6bcfb5f7de05814dfcb4ab18bb4f705fdbe60b11ab7dbf72cf0d85231"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-eepg"
|
||||
PKG_URL="http://projects.vdr-developer.org/git/vdr-plugin-eepg.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-eepg/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-plugin-eepg"
|
||||
PKG_LONGDESC="This plugin parses the Extended (2 to 10 day) EPG data which is send by providers on their portal channels. This EEPG data is transmitted in a non-standard format on a non-standard PID."
|
||||
PKG_LONGDESC="This plugin parses the Extended (2 to 10 day) EPG data which is send by providers on their portal channels."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
||||
@@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-epgfixer"
|
||||
PKG_VERSION="1ad4aaf"
|
||||
PKG_SHA256="032f0a0c238208e87c295d5fec04cdcf0fffe041e2245bc678811e1072a95b62"
|
||||
PKG_SHA256="b109c1040e54a2499c1d4c650d7f02cdc7b647af2133839af227a8496c58281e"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-epgfixer"
|
||||
PKG_URL="http://projects.vdr-developer.org/git/vdr-plugin-epgfixer.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-epgfixer/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr pcre"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-plugin-epgfixer"
|
||||
PKG_SHORTDESC="Plugin for modifying EPG data using regular expressions."
|
||||
PKG_LONGDESC="Plugin for modifying EPG data using regular expressions."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
diff -Naur vdr-plugin-epgfixer-1ad4aaf/Makefile vdr-plugin-epgfixer-1ad4aaf.patch/Makefile
|
||||
--- vdr-plugin-epgfixer-1ad4aaf/Makefile 2015-01-01 11:15:50.000000000 +0100
|
||||
+++ vdr-plugin-epgfixer-1ad4aaf.patch/Makefile 2016-01-07 04:40:37.742655989 +0100
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -70,8 +70,8 @@
|
||||
OBJS = $(PLUGIN).o blacklist.o charset.o config.o epgclone.o epghandler.o regexp.o setup_menu.o tools.o
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
patches taken from https://projects.vdr-developer.org/projects/plg-epgfixer/issues
|
||||
|
||||
From: glenvt18 <glenvt18@gmail.com>
|
||||
Date: Tue, 24 May 2016 02:36:55 +0300
|
||||
Subject: [PATCH 1/2] Fix compiling against VDR >= 2.3.1
|
||||
|
||||
--- a/epgclone.c
|
||||
+++ b/epgclone.c
|
||||
@@ -49,9 +49,16 @@ void cEpgClone::CloneEvent(cEvent *Source, cEvent *Dest) {
|
||||
Dest->SetSeen();
|
||||
tChannelID channelID;
|
||||
if (dest_num) {
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+ const cChannel *dest_chan = Channels->GetByNumber(dest_num);
|
||||
+ if (dest_chan)
|
||||
+ channelID = Channels->GetByNumber(dest_num)->GetChannelID();
|
||||
+#else
|
||||
cChannel *dest_chan = Channels.GetByNumber(dest_num);
|
||||
if (dest_chan)
|
||||
channelID = Channels.GetByNumber(dest_num)->GetChannelID();
|
||||
+#endif
|
||||
else
|
||||
channelID = tChannelID::InvalidID;
|
||||
}
|
||||
diff --git a/setup_menu.c b/setup_menu.c
|
||||
index 8b60870..fcba6b1 100644
|
||||
--- a/setup_menu.c
|
||||
+++ b/setup_menu.c
|
||||
@@ -264,9 +264,21 @@ eOSState cMenuSetupEpgfixer::ProcessKey(eKeys Key)
|
||||
break;
|
||||
case kBlue:
|
||||
Skins.Message(mtInfo, tr("Clearing EPG data..."));
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ {
|
||||
+ LOCK_TIMERS_WRITE;
|
||||
+ LOCK_SCHEDULES_WRITE;
|
||||
+ for (cTimer *Timer = Timers->First(); Timer; Timer = Timers->Next(Timer))
|
||||
+ Timer->SetEvent(NULL);
|
||||
+ for (cSchedule *Schedule = Schedules->First(); Schedule; Schedule = Schedules->Next(Schedule))
|
||||
+ Schedule->Cleanup(INT_MAX);
|
||||
+ }
|
||||
+ cEitFilter::SetDisableUntil(time(NULL) + 10);
|
||||
+#else
|
||||
cEitFilter::SetDisableUntil(time(NULL) + 10);
|
||||
if (cSchedules::ClearAll())
|
||||
cEitFilter::SetDisableUntil(time(NULL) + 10);
|
||||
+#endif
|
||||
Skins.Message(mtInfo, NULL);
|
||||
state = osContinue;
|
||||
break;
|
||||
diff --git a/tools.c b/tools.c
|
||||
index 9c9133d..35c4b53 100644
|
||||
--- a/tools.c
|
||||
+++ b/tools.c
|
||||
@@ -463,14 +463,26 @@ cAddEventThread::~cAddEventThread(void)
|
||||
void cAddEventThread::Action(void)
|
||||
{
|
||||
SetPriority(19);
|
||||
- while (Running() && !LastHandleEvent.TimedOut()) {
|
||||
+ for (; Running() && !LastHandleEvent.TimedOut(); cCondWait::SleepMs(10)) {
|
||||
+ if (list->First() == NULL)
|
||||
+ continue;
|
||||
cAddEventListItem *e = NULL;
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ cStateKey StateKey;
|
||||
+ cSchedules *schedules = cSchedules::GetSchedulesWrite(StateKey, 10);
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+#else
|
||||
cSchedulesLock SchedulesLock(true, 10);
|
||||
cSchedules *schedules = (cSchedules *)cSchedules::Schedules(SchedulesLock);
|
||||
+#endif
|
||||
Lock();
|
||||
while (schedules && (e = list->First()) != NULL) {
|
||||
tChannelID chanid = e->GetChannelID();
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ const cChannel *chan = Channels->GetByChannelID(chanid);
|
||||
+#else
|
||||
cChannel *chan = Channels.GetByChannelID(chanid);
|
||||
+#endif
|
||||
if (!chan) {
|
||||
error("Destination channel %s not found for cloning!", *chanid.ToString());
|
||||
}
|
||||
@@ -485,7 +497,10 @@ void cAddEventThread::Action(void)
|
||||
list->Del(e);
|
||||
}
|
||||
Unlock();
|
||||
- cCondWait::SleepMs(10);
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ if (schedules)
|
||||
+ StateKey.Remove();
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -553,7 +568,12 @@ bool cListItem::IsActive(tChannelID ChannelID)
|
||||
bool active = false;
|
||||
if (numchannels > 0) {
|
||||
int i = 0;
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+ int channel_number = Channels->GetByChannelID(ChannelID)->Number();
|
||||
+#else
|
||||
int channel_number = Channels.GetByChannelID(ChannelID)->Number();
|
||||
+#endif
|
||||
while (i < numchannels) {
|
||||
if ((channel_number == GetChannelNum(i)) ||
|
||||
(GetChannelID(i) && (ChannelID == *GetChannelID(i)))) {
|
||||
|
||||
From 12db9aadf7a05cae21bd7d75882b8883ac36205d Mon Sep 17 00:00:00 2001
|
||||
From: glenvt18 <glenvt18@gmail.com>
|
||||
Date: Thu, 18 May 2017 06:03:32 +0300
|
||||
Subject: [PATCH 2/2] Make compatible with VDR 2.3.4
|
||||
|
||||
---
|
||||
epghandler.h | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/epghandler.h b/epghandler.h
|
||||
index de090af..bf65760 100644
|
||||
--- a/epghandler.h
|
||||
+++ b/epghandler.h
|
||||
@@ -15,6 +15,9 @@ class cEpgfixerEpgHandler : public cEpgHandler
|
||||
{
|
||||
public:
|
||||
cEpgfixerEpgHandler(void) {};
|
||||
+#if VDRVERSNUM >= 20304
|
||||
+ virtual bool BeginSegmentTransfer(const cChannel *Channel, bool Dummy) { return true; }
|
||||
+#endif
|
||||
virtual bool HandleEvent(cEvent *Event);
|
||||
virtual bool IgnoreChannel(const cChannel *Channel);
|
||||
virtual bool FixEpgBugs(cEvent *Event);
|
||||
@@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-epgsearch"
|
||||
PKG_VERSION="0b09f90"
|
||||
PKG_SHA256="2f50a784a01ef4c7c868b92b63a82b96296247eb148d757b31514a7887ebb534"
|
||||
PKG_VERSION="c7c02e2"
|
||||
PKG_SHA256="d8096c261cf94653f7487e7f89c9d38d8c2a5c27a766816b77fe0c49b4a82208"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://winni.vdr-developer.org/epgsearch/"
|
||||
PKG_URL="https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-epgsearch/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-epgsearch"
|
||||
PKG_LONGDESC="vdr-epgsearch"
|
||||
PKG_SHORTDESC="EPGSearch is a plugin for the Video-Disc-Recorder (VDR)."
|
||||
PKG_LONGDESC="EPGSearch is a plugin for the Video-Disc-Recorder (VDR)."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
diff -Naur vdr-epgsearch-29c174a/Makefile vdr-epgsearch-29c174a.patch/Makefile
|
||||
--- vdr-epgsearch-29c174a/Makefile 2014-01-18 16:53:11.000000000 +0100
|
||||
+++ vdr-epgsearch-29c174a.patch/Makefile 2016-01-07 04:47:33.004326981 +0100
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -130,9 +130,8 @@
|
||||
OBJS = afuzzy.o blacklist.o changrp.o confdloader.o conflictcheck.o conflictcheck_thread.o distance.o $(PLUGIN).o epgsearchcats.o epgsearchcfg.o epgsearchext.o epgsearchsetup.o epgsearchsvdrp.o epgsearchtools.o mail.o md5.o menu_announcelist.o menu_blacklistedit.o menu_blacklists.o menu_commands.o menu_conflictcheck.o menu_deftimercheckmethod.o menu_dirselect.o menu_event.o menu_favorites.o menu_main.o menu_myedittimer.o menu_quicksearch.o menu_recsdone.o menu_search.o menu_searchactions.o menu_searchedit.o menu_searchresults.o menu_searchtemplate.o menu_switchtimers.o menu_templateedit.o menu_timersdone.o menu_whatson.o noannounce.o pending_notifications.o rcfile.o recdone.o recstatus.o searchtimer_thread.o services.o switchtimer.o switchtimer_thread.o templatefile.o timer_thread.o timerdone.o timerstatus.o uservars.o varparser.o
|
||||
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
From 61c795e71df00f4d3c22d2be405ceb0eb0e0e49c Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Fri, 22 Nov 2013 21:45:56 +0200
|
||||
Subject: [PATCH] don't build unused plugins
|
||||
|
||||
---
|
||||
Makefile | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 118e379..5f15ebe 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -16,9 +16,9 @@
|
||||
@@ -24,6 +16,4 @@ index 118e379..5f15ebe 100644
|
||||
|
||||
### edit this to '0' if you don't want epgsearch to auto config itself
|
||||
AUTOCONFIG=1
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-iptv"
|
||||
PKG_VERSION="2226be2"
|
||||
PKG_SHA256="8c8297a6834cc7104901b256a4b31dfb25f3956ce3c4837c7ffb8ddf0507d09b"
|
||||
PKG_VERSION="0fe1cb7"
|
||||
PKG_SHA256="34e5c950d6150bbf98ca733a216f67ff56e078dd1db511aee0edc026e431ee6f"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/iptv/"
|
||||
@@ -27,6 +28,7 @@ PKG_DEPENDS_TARGET="toolchain vdr curl"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-iptv: an IPTV plugin for the Video Disk Recorder (VDR)"
|
||||
PKG_LONGDESC="vdr-iptv is an IPTV plugin for the Video Disk Recorder (VDR)"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
diff -Naur iptv-2.2.1/Makefile iptv-2.2.1.patch/Makefile
|
||||
--- iptv-2.2.1/Makefile 2015-04-04 03:20:00.000000000 +0200
|
||||
+++ iptv-2.2.1.patch/Makefile 2016-01-07 07:37:31.037078104 +0100
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
### Libraries
|
||||
|
||||
@@ -1,33 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-live"
|
||||
PKG_VERSION="0.3.0"
|
||||
PKG_SHA256="c200042e51393c247be97e7f4667a1f3f06319d5c8e538adca32fdfac8d178da"
|
||||
PKG_VERSION="e582514"
|
||||
PKG_SHA256="74deb2ca43ffb5779b3f9ff6f34c8b53898a226fcf92605d7ede0401cb62601c"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://live.vdr-developer.org/en/index.php"
|
||||
PKG_URL="http://live.vdr-developer.org/downloads/${PKG_NAME/-plugin/}-${PKG_VERSION}.tar.gz"
|
||||
PKG_SOURCE_DIR="live-${PKG_VERSION}"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-live/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="$PKG_NAME-${PKG_VERSION}*"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr tntnet pcre:host pcre"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-live: the LIVE Interactive VDR Environment/"
|
||||
PKG_LONGDESC="vdr-live allows a comfortable operation of VDR and some of its plugins trough a web interface"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
@@ -35,18 +37,15 @@ pre_configure_target() {
|
||||
export LDFLAGS="$LDFLAGS -fPIC -L$SYSROOT_PREFIX/usr/lib/iconv"
|
||||
}
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
export CPLUS_INCLUDE_PATH=$VDR_DIR/include
|
||||
VDR_APIVERSION=`sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' $VDR_DIR/config.h`
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
make VDRDIR=$VDR_DIR \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
}
|
||||
|
||||
@@ -1,290 +0,0 @@
|
||||
commit 042724e30d5690ab67a6c04aea48a16b9a3b085b
|
||||
Author: Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>
|
||||
Date: Fri May 3 01:37:41 2013 +0200
|
||||
|
||||
Make LIVE compile and work with Tntnet and cxxtools version 2.2.
|
||||
Thanks to Tommi Mäkitalo for his help on resolving the issues.
|
||||
This problem was reported by Martin Gansser and by the user 'varas' in
|
||||
the bugtracker as bug #1351. This commit fixes that bug.
|
||||
|
||||
diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp
|
||||
index 51018bb..80f145b 100644
|
||||
--- a/pages/recordings.ecpp
|
||||
+++ b/pages/recordings.ecpp
|
||||
@@ -205,7 +205,11 @@ for (recIter = recItems.begin(); recIter != recItems.end(); ++recIter) {
|
||||
<& rec_item_dir name=(recItem->Name()) level=(level) &>
|
||||
<%cpp>
|
||||
#if TNT_HAS_QUERYPARAMS
|
||||
+#if TNT_QUERYPARAMS_NO_BOOL
|
||||
+ tnt::QueryParams recItemParams(qparam);
|
||||
+#else
|
||||
tnt::QueryParams recItemParams(qparam, false);
|
||||
+#endif
|
||||
#else
|
||||
cxxtools::QueryParams recItemParams(qparam, false);
|
||||
#endif
|
||||
diff --git a/tntconfig.cpp b/tntconfig.cpp
|
||||
index 3a1fd14..3325776 100644
|
||||
--- a/tntconfig.cpp
|
||||
+++ b/tntconfig.cpp
|
||||
@@ -3,7 +3,13 @@
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <stdexcept>
|
||||
+#include "tntfeatures.h"
|
||||
+#if TNT_LOG_SERINFO
|
||||
+#include <cxxtools/log.h>
|
||||
+#include <cxxtools/xml/xmldeserializer.h>
|
||||
+#else
|
||||
#include <cxxtools/loginit.h>
|
||||
+#endif
|
||||
#include <tnt/sessionscope.h>
|
||||
#include <tnt/httpreply.h>
|
||||
#include <vdr/config.h>
|
||||
@@ -181,19 +187,67 @@ namespace vdrlive {
|
||||
#endif
|
||||
|
||||
#if TNT_CONFIG_INTERNAL
|
||||
+ namespace {
|
||||
+ std::string GetResourcePath()
|
||||
+ {
|
||||
+#if APIVERSNUM > 10729
|
||||
+ string resourceDir(Plugin::GetResourceDirectory());
|
||||
+ return resourceDir;
|
||||
+#else
|
||||
+ string configDir(Plugin::GetConfigDirectory());
|
||||
+ return configDir;
|
||||
+#endif
|
||||
+ }
|
||||
+
|
||||
+ void MapUrl(tnt::Tntnet & app, const char *rule, const char * component, std::string const & instPath, const char * pathInfo, const char * mime_type)
|
||||
+ {
|
||||
+#if TNT_MAPURL_NAMED_ARGS
|
||||
+ tnt::Mapping::args_type argMap;
|
||||
+ argMap.insert(std::make_pair("mime-type", mime_type));
|
||||
+#endif
|
||||
+ app.mapUrl(rule, component)
|
||||
+ .setPathInfo(instPath + pathInfo)
|
||||
+#if TNT_MAPURL_NAMED_ARGS
|
||||
+ .setArgs(argMap);
|
||||
+#else
|
||||
+ .pushArg(mime_type);
|
||||
+#endif
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
void TntConfig::Configure(tnt::Tntnet& app) const
|
||||
{
|
||||
string const configDir(Plugin::GetConfigDirectory());
|
||||
-#if APIVERSNUM > 10729
|
||||
- string const resourceDir(Plugin::GetResourceDirectory());
|
||||
-#endif
|
||||
|
||||
+#if TNT_LOG_SERINFO
|
||||
+ cxxtools::SerializationInfo si;
|
||||
+ std::istringstream logXmlConf(
|
||||
+ "<logging>\n"
|
||||
+ " <rootlogger>" + LiveSetup().GetTntnetLogLevel() + "</rootlogger>\n"
|
||||
+ " <loggers>\n"
|
||||
+ " <logger>\n"
|
||||
+ " <category>cxxtools</category>\n"
|
||||
+ " <level>" + LiveSetup().GetTntnetLogLevel() + "</level>\n"
|
||||
+ " </logger>\n"
|
||||
+ " <logger>\n"
|
||||
+ " <category>tntnet</category>\n"
|
||||
+ " <level>" + LiveSetup().GetTntnetLogLevel() + "</level>\n"
|
||||
+ " </logger>\n"
|
||||
+ " </loggers>\n"
|
||||
+ "</logging>\n"
|
||||
+ );
|
||||
+ cxxtools::xml::XmlDeserializer d(logXmlConf);
|
||||
+ d.deserialize(si);
|
||||
+ log_init(si);
|
||||
+#else
|
||||
std::istringstream logConf(
|
||||
"rootLogger=" + LiveSetup().GetTntnetLogLevel() + "\n"
|
||||
"logger.tntnet=" + LiveSetup().GetTntnetLogLevel() + "\n"
|
||||
"logger.cxxtools=" + LiveSetup().GetTntnetLogLevel() + "\n"
|
||||
);
|
||||
+
|
||||
log_init(logConf);
|
||||
+#endif
|
||||
|
||||
// +++ CAUTION +++ CAUTION +++ CAUTION +++ CAUTION +++ CAUTION +++
|
||||
// ------------------------------------------------------------------------
|
||||
@@ -229,13 +283,12 @@ namespace vdrlive {
|
||||
|
||||
// the following selects the theme specific 'theme.css' file
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/themes/([^/]*)/css.*/(.+\\.css)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/themes/$1/css/$2")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/themes/$1/css/$2")
|
||||
-#endif
|
||||
- .pushArg("text/css");
|
||||
+ MapUrl(app,
|
||||
+ "^/themes/([^/]*)/css.*/(.+\\.css)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/themes/$1/css/$2",
|
||||
+ "text/css");
|
||||
|
||||
// the following rules provide a search scheme for images. The first
|
||||
// rule where a image is found, terminates the search.
|
||||
@@ -243,79 +296,82 @@ namespace vdrlive {
|
||||
// 2. /img/<imgname>.<ext>
|
||||
// deprecated: 3. <imgname>.<ext> (builtin images)
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/themes/([^/]*)/img.*/(.+)\\.(.+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/themes/$1/img/$2.$3")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/themes/$1/img/$2.$3")
|
||||
-#endif
|
||||
- .pushArg("image/$3");
|
||||
- app.mapUrl("^/themes/([^/]*)/img.*/(.+)\\.(.+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/img/$2.$3")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/img/$2.$3")
|
||||
-#endif
|
||||
- .pushArg("image/$3");
|
||||
+ MapUrl(app,
|
||||
+ "^/themes/([^/]*)/img.*/(.+)\\.(.+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/themes/$1/img/$2.$3",
|
||||
+ "image/$3");
|
||||
+
|
||||
+ MapUrl(app,
|
||||
+ "^/themes/([^/]*)/img.*/(.+)\\.(.+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/img/$2.$3",
|
||||
+ "image/$3");
|
||||
// deprecated: file << "MapUrl ^/themes/([^/]*)/img.*/(.+)\\.(.+) $2@" << endl;
|
||||
|
||||
// Epg images
|
||||
string const epgImgPath(LiveSetup().GetEpgImageDir());
|
||||
if (!epgImgPath.empty()) {
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/epgimages/([^/]*)\\.([^./]+)", "content")
|
||||
- .setPathInfo(epgImgPath + "/$1.$2")
|
||||
- .pushArg("image/$2");
|
||||
+ MapUrl(app,
|
||||
+ "^/epgimages/([^/]*)\\.([^./]+)",
|
||||
+ "content",
|
||||
+ epgImgPath,
|
||||
+ "/$1.$2",
|
||||
+ "image/$2");
|
||||
}
|
||||
|
||||
// select additional (not build in) javascript.
|
||||
// WARNING: no path components with '.' in the name are allowed. Only
|
||||
// the basename may contain dots and must end with '.js'
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/js(/[^.]*)([^/]*\\.js)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/js$1$2")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/js$1$2")
|
||||
-#endif
|
||||
- .pushArg("text/javascript");
|
||||
+ MapUrl(app,
|
||||
+ "^/js(/[^.]*)([^/]*\\.js)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/js$1$2",
|
||||
+ "text/javascript");
|
||||
|
||||
// map to 'css/basename(uri)'
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/css.*/(.+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/css/$1")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/css/$1")
|
||||
-#endif
|
||||
- .pushArg("text/css");
|
||||
+ MapUrl(app,
|
||||
+ "^/css.*/(.+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/css/$1",
|
||||
+ "text/css");
|
||||
|
||||
// map to 'img/basename(uri)'
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/img.*/(.+)\\.([^.]+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/img/$1.$2")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/img/$1.$2")
|
||||
-#endif
|
||||
- .pushArg("image/$2");
|
||||
+ MapUrl(app,
|
||||
+ "^/img.*/(.+)\\.([^.]+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/img/$1.$2",
|
||||
+ "image/$2");
|
||||
|
||||
// Map favicon.ico into img directory
|
||||
- app.mapUrl("^/favicon.ico$", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/img/favicon.ico")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/img/favicon.ico")
|
||||
-#endif
|
||||
- .pushArg("image/x-icon");
|
||||
+ MapUrl(app,
|
||||
+ "^/favicon.ico$",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/img/favicon.ico",
|
||||
+ "image/x-icon");
|
||||
|
||||
// takes first path components without 'extension' when it does not
|
||||
// contain '.'
|
||||
// modified by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
app.mapUrl("^/([^./]+)(.*)?", "$1");
|
||||
|
||||
+#if TNT_GLOBAL_TNTCONFIG
|
||||
+ tnt::TntConfig::it().sessionTimeout = 86400;
|
||||
+ tnt::TntConfig::it().defaultContentType = string("text/html; charset=") + LiveI18n().CharacterEncoding();
|
||||
+#else
|
||||
tnt::Sessionscope::setDefaultTimeout(86400);
|
||||
tnt::HttpReply::setDefaultContentType(string("text/html; charset=") + LiveI18n().CharacterEncoding());
|
||||
+#endif
|
||||
|
||||
Setup::IpList const& ips = LiveSetup().GetServerIps();
|
||||
int port = LiveSetup().GetServerPort();
|
||||
diff --git a/tntfeatures.h b/tntfeatures.h
|
||||
index 6de1f88..76d3757 100644
|
||||
--- a/tntfeatures.h
|
||||
+++ b/tntfeatures.h
|
||||
@@ -17,6 +17,9 @@
|
||||
// Query params are now in tntnet and not in cxxtools
|
||||
#define TNT_HAS_QUERYPARAMS (TNTVERSION >= 16060)
|
||||
|
||||
+// Query params without boolean parameter
|
||||
+#define TNT_QUERYPARAMS_NO_BOOL (TNTVERSION >= 22000)
|
||||
+
|
||||
// One can request the host part of the request url
|
||||
#define TNT_HAS_GETHOST (TNTVERSION >= 16060)
|
||||
|
||||
@@ -26,4 +29,13 @@
|
||||
// version of TNTNET that binds ipv6 addresses with IPV6_V6ONLY flag set to true
|
||||
#define TNT_IPV6_V6ONLY (CXXTOOLVER >= 21000)
|
||||
|
||||
+// version of TNTNET with properties deserializer for logger configuration args.
|
||||
+#define TNT_LOG_SERINFO (CXXTOOLVER >= 22000)
|
||||
+
|
||||
+// version of TNTNET wich expects name, value mappings for Url-Mapper arguments.
|
||||
+#define TNT_MAPURL_NAMED_ARGS (TNTVERSION >= 22000)
|
||||
+
|
||||
+// version of TNTNET where configuration is global
|
||||
+#define TNT_GLOBAL_TNTCONFIG (TNTVERSION >= 22000)
|
||||
+
|
||||
#endif // VDR_LIVE_TNTFEATURES_H
|
||||
@@ -1,25 +0,0 @@
|
||||
commit 69f84f95fa875c6f562294b1a6a1ea6f584d3f6c
|
||||
Author: Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>
|
||||
Date: Sat May 4 22:27:09 2013 +0200
|
||||
|
||||
With tntnet v2.2 use also the request.getArg(<name>) function.
|
||||
In the previous commit support for tntnet 2.2 was added. The URL
|
||||
mapping changed in that version and allows now named arguments. This
|
||||
change makes uses of this feature now.
|
||||
|
||||
diff --git a/pages/content.ecpp b/pages/content.ecpp
|
||||
index 27d827c..cde092f 100644
|
||||
--- a/pages/content.ecpp
|
||||
+++ b/pages/content.ecpp
|
||||
@@ -17,7 +17,11 @@ bool logged_in(false);
|
||||
|
||||
string mime("image/png");
|
||||
if (request.getArgsCount() > 0) {
|
||||
+#if TNT_MAPURL_NAMED_ARGS
|
||||
+ mime = request.getArg("mime-type");
|
||||
+#else
|
||||
mime = request.getArg(0);
|
||||
+#endif
|
||||
// dsyslog("vdrlive::content found mime arg (%s)", mime.c_str());
|
||||
}
|
||||
reply.setContentType(mime);
|
||||
@@ -1,76 +0,0 @@
|
||||
commit 0f8a281027f852ed5968361bcb7420ed242d0476
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat Oct 19 22:15:14 2013 +0300
|
||||
|
||||
vdr 2.1.2 buildfix
|
||||
|
||||
diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp
|
||||
index 80f145b..6da5285 100644
|
||||
--- a/pages/recordings.ecpp
|
||||
+++ b/pages/recordings.ecpp
|
||||
@@ -79,7 +79,7 @@ for (deletions_type::const_iterator it = deletions.begin(); it != deletions.end(
|
||||
deletions.clear();
|
||||
|
||||
int FreeMB, UsedMB;
|
||||
-int Percent = VideoDiskSpace(&FreeMB, &UsedMB);
|
||||
+int Percent = cVideoDirectory::VideoDiskSpace(&FreeMB, &UsedMB);
|
||||
int Minutes = int(double(FreeMB) / MB_PER_MINUTE);
|
||||
int Hours = Minutes / 60;
|
||||
Minutes %= 60;
|
||||
diff --git a/recman.cpp b/recman.cpp
|
||||
index 6a2fc00..9ed88f0 100644
|
||||
--- a/recman.cpp
|
||||
+++ b/recman.cpp
|
||||
@@ -112,7 +112,7 @@ namespace vdrlive {
|
||||
if (found == string::npos)
|
||||
return false;
|
||||
|
||||
- string newname = string(VideoDirectory) + "/" + name + oldname.substr(found);
|
||||
+ string newname = string(cVideoDirectory::Name()) + "/" + name + oldname.substr(found);
|
||||
|
||||
if (!MoveDirectory(oldname.c_str(), newname.c_str(), copy)) {
|
||||
esyslog("[LIVE]: renaming failed from '%s' to '%s'", oldname.c_str(), newname.c_str());
|
||||
diff --git a/tntconfig.cpp b/tntconfig.cpp
|
||||
index 3325776..161fdc4 100644
|
||||
--- a/tntconfig.cpp
|
||||
+++ b/tntconfig.cpp
|
||||
@@ -279,7 +279,7 @@ namespace vdrlive {
|
||||
// inserted by 'tadi' -- not verified, not counterchecked yet!
|
||||
//app.mapUrl("^/vlc/(.+)", "static@tntnet")
|
||||
// .setPathInfo("/$1")
|
||||
- // .pushArg(string("DocumentRoot=") + VideoDirectory);
|
||||
+ // .pushArg(string("DocumentRoot=") + cVideoDirectory::Name());
|
||||
|
||||
// the following selects the theme specific 'theme.css' file
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
diff --git a/tools.cpp b/tools.cpp
|
||||
index c744d06..cb3529e 100644
|
||||
--- a/tools.cpp
|
||||
+++ b/tools.cpp
|
||||
@@ -365,7 +365,7 @@ namespace vdrlive {
|
||||
stat(source.c_str(), &st1);
|
||||
stat(target.c_str(),&st2);
|
||||
if (!copy && (st1.st_dev == st2.st_dev)) {
|
||||
- if (!RenameVideoFile(source.c_str(), target.c_str())) {
|
||||
+ if (!cVideoDirectory::RenameVideoFile(source.c_str(), target.c_str())) {
|
||||
esyslog("[LIVE]: rename failed from %s to %s", source.c_str(), target.c_str());
|
||||
return false;
|
||||
}
|
||||
@@ -461,7 +461,7 @@ namespace vdrlive {
|
||||
size_t found = source.find_last_of(delim);
|
||||
if (found != std::string::npos) {
|
||||
source = source.substr(0, found);
|
||||
- while (source != VideoDirectory) {
|
||||
+ while (source != cVideoDirectory::Name()) {
|
||||
found = source.find_last_of(delim);
|
||||
if (found == std::string::npos)
|
||||
break;
|
||||
@@ -478,7 +478,7 @@ namespace vdrlive {
|
||||
size_t found = target.find_last_of(delim);
|
||||
if (found != std::string::npos) {
|
||||
target = target.substr(0, found);
|
||||
- while (target != VideoDirectory) {
|
||||
+ while (target != cVideoDirectory::Name()) {
|
||||
found = target.find_last_of(delim);
|
||||
if (found == std::string::npos)
|
||||
break;
|
||||
@@ -1,25 +0,0 @@
|
||||
From d95f6d719298b4586fc4b889612423be67b52e88 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon, 16 Jun 2014 12:06:29 +0300
|
||||
Subject: [PATCH] dont build i18n
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index ab2f2b5..923d184 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -94,7 +94,7 @@ WEBLIBS = pages/libpages.a css/libcss.a javascript/libjavascript.a
|
||||
|
||||
### Default rules:
|
||||
|
||||
-all: libvdr-$(PLUGIN).so $(I18NTARG)
|
||||
+all: libvdr-$(PLUGIN).so
|
||||
|
||||
.PHONY: all dist clean subdirs $(SUBDIRS) PAGES
|
||||
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -11,7 +11,7 @@ PLUGIN := live
|
||||
VERSION := $(shell grep '\#define LIVEVERSION ' setup.h | awk '{ print $$3 }' | sed -e 's/[";]//g')
|
||||
|
||||
### Check for libpcre c++ wrapper
|
||||
-HAVE_LIBPCRECPP := $(shell pcre-config --libs-cpp)
|
||||
+HAVE_LIBPCRECPP := $(shell pkg-config --libs libpcrecpp libpcre)
|
||||
|
||||
### The directory environment:
|
||||
# Use package data if installed...otherwise assume we're under the VDR source directory:
|
||||
@@ -37,18 +37,18 @@ APIVERSION := $(call PKGCFG,apiversion)
|
||||
include global.mk
|
||||
|
||||
### Determine tntnet and cxxtools versions:
|
||||
-TNTVERSION = $(shell tntnet-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
-CXXTOOLVER = $(shell cxxtools-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+TNTVERSION = $(shell pkg-config --modversion tntnet | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+CXXTOOLVER = $(shell pkg-config --modversion cxxtools | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
|
||||
-CXXFLAGS += $(shell tntnet-config --cxxflags)
|
||||
-LIBS += $(shell tntnet-config --libs)
|
||||
+CXXFLAGS += $(shell pkg-config --cflags tntnet)
|
||||
+LIBS += $(shell pkg-config --libs tntnet)
|
||||
|
||||
### Optional configuration features
|
||||
PLUGINFEATURES :=
|
||||
ifneq ($(HAVE_LIBPCRECPP),)
|
||||
PLUGINFEATURES += -DHAVE_LIBPCRECPP
|
||||
- CXXFLAGS += $(shell pcre-config --cflags)
|
||||
- LIBS += $(HAVE_LIBPCRECPP)
|
||||
+ CXXFLAGS += $(shell pkg-config --cflags libpcreposix libpcre)
|
||||
+ LIBS += -Wl,-Bstatic $(HAVE_LIBPCRECPP) -Wl,-Bdynamic
|
||||
endif
|
||||
|
||||
# -Wno-deprecated-declarations .. get rid of warning: ‘template<class> class std::auto_ptr’ is deprecated
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user