mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
Move alarm/xbmc-rbp to alarm/kodi-rbp; update to 14.0-1
This commit is contained in:
parent
afd37c893e
commit
e80f9c0f2a
12 changed files with 44 additions and 434 deletions
|
@ -5,13 +5,13 @@
|
|||
|
||||
buildarch=16
|
||||
|
||||
pkgname=xbmc-rbp
|
||||
pkgver=13.2
|
||||
_codename=Gotham
|
||||
pkgrel=4
|
||||
pkgname=kodi-rbp
|
||||
pkgver=14.0
|
||||
_codename=Helix
|
||||
pkgrel=1
|
||||
pkgdesc="A software media player and entertainment hub for digital media for the Raspberry Pi"
|
||||
arch=('armv6h')
|
||||
url="http://xbmc.org"
|
||||
url="http://kodi.tv"
|
||||
license=('GPL' 'custom')
|
||||
depends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' 'libpng' 'libcdio' 'yajl' 'libmariadbclient' 'libjpeg-turbo' 'libsamplerate' 'libssh' 'libmicrohttpd' 'sdl_image' 'python2' 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' 'avahi' 'bluez-libs' 'tinyxml' 'raspberrypi-firmware' 'libcec' 'libplist' 'swig' 'taglib' 'libxslt' 'shairplay-git')
|
||||
makedepends=('boost' 'cmake' 'gperf' 'nasm' 'zip' 'udisks' 'upower' 'git' 'autoconf' 'java-environment')
|
||||
|
@ -21,64 +21,34 @@ optdepends=(
|
|||
'upower: used to trigger power management functionality'
|
||||
'unrar: access compressed files without unpacking them')
|
||||
|
||||
provides=("xbmc")
|
||||
conflicts=("xbmc")
|
||||
install="xbmc.install"
|
||||
provides=("kodi")
|
||||
conflicts=("xbmc" "kodi")
|
||||
replaces=("xbmc-rbp" "xbmc-rbp-git" "kodi-rbp-git")
|
||||
install="kodi.install"
|
||||
source=("https://github.com/xbmc/xbmc/archive/$pkgver-$_codename.tar.gz"
|
||||
'0001-CEC-fixed-don-t-try-to-stick-a-value-255-in-a-byte.patch'
|
||||
'0002-CEC-bump-libCEC-to-2.2.0.patch'
|
||||
'0003-CEC-prevent-bus-rescan-on-a-Pi-since-the-adapter-can.patch'
|
||||
'0004-CEC-fixed-don-t-return-garbage-from-CEC-related-app-.patch'
|
||||
'0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch'
|
||||
'0006-CEC-fixed-don-t-use-CEC_CLIENT_VERSION_CURRENT-for-t.patch'
|
||||
'xbmc.service'
|
||||
'polkit.rules'
|
||||
'panasonicCEC.patch')
|
||||
'kodi.service'
|
||||
'polkit.rules')
|
||||
|
||||
sha256sums=('acbf5dffa3034a3406240ee3cf81e721386cd383d23d056ddde1f769e050e585'
|
||||
'f4b436a64e32af6728fc9a584292b56de356d9090f0db0af30798a43aaa077f3'
|
||||
'9d9ccbd140a71b90d43a22b7722804b9cb509b4e1e1fec02c0e2bceaed3b3958'
|
||||
'0f0401189cc8481f05d7b68c50d66e18144c7d261be783e32c5b269f4b356ad7'
|
||||
'33d6bd2b0da3d8563bfdf6059ad59ca10d9fe617e51990220ceb40d6fb3129d3'
|
||||
'd98f86ceefb039b43a66332658aeee4aff25370248955ece10d04ae21f33d2a9'
|
||||
'd829a5267f0b8042308b291366915253b3104d85a780a03cdaff6bec82493b95'
|
||||
'189804742290946424a401163e351f5158bfd1b71e5b86b864589254b13f9571'
|
||||
'4ea78374a08e13a64dcf6a424b111b8bfc11de03ed5829744fc6d9b5fc1ec96e'
|
||||
'554140506063a85000d7072a961bb02514969e58b38a466aa120e9fb668a1863')
|
||||
sha256sums=('11746d95cc59361f36ce6ea9d0d36bbd9ec3376e991f5ec1720f8ff740b91192'
|
||||
'5235068d5800d69f0287087815990e7fe8d6572733d60c8800546d35f608e87f'
|
||||
'9ea592205023ba861603d74b63cdb73126c56372a366dc4cb7beb379073cbb96')
|
||||
|
||||
_prefix=/usr
|
||||
|
||||
prepare() {
|
||||
cd "$srcdir/xbmc-$pkgver-$_codename"
|
||||
|
||||
patch -Np1 -i "$srcdir/0001-CEC-fixed-don-t-try-to-stick-a-value-255-in-a-byte.patch"
|
||||
patch -Np1 -i "$srcdir/0002-CEC-bump-libCEC-to-2.2.0.patch"
|
||||
patch -Np1 -i "$srcdir/0003-CEC-prevent-bus-rescan-on-a-Pi-since-the-adapter-can.patch"
|
||||
patch -Np1 -i "$srcdir/0004-CEC-fixed-don-t-return-garbage-from-CEC-related-app-.patch"
|
||||
patch -Np1 -i "$srcdir/0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch"
|
||||
patch -Np1 -i "$srcdir/0006-CEC-fixed-don-t-use-CEC_CLIENT_VERSION_CURRENT-for-t.patch"
|
||||
|
||||
# fix lsb_release dependency
|
||||
sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp
|
||||
|
||||
# Suppress double keys within 250ms for some Panasonic TVs
|
||||
# https://github.com/chbmuc/xbmc/commit/6e5822d4fe648abbd575cf77ced943a1461e9ae5
|
||||
# http://archlinuxarm.org/forum/viewtopic.php?f=31&t=6376&start=10
|
||||
patch -Np1 -i ${srcdir}/panasonicCEC.patch
|
||||
|
||||
# fix samba4 libsmbclient.h location
|
||||
sed -e 's/\(#include \)<libsmbclient\.h>/\1<samba-4.0\/libsmbclient\.h>/g' \
|
||||
-i xbmc/filesystem/SmbFile.cpp \
|
||||
-i xbmc/filesystem/SMBDirectory.cpp
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$srcdir/xbmc-$pkgver-$_codename"
|
||||
|
||||
# Bootstrapping XBMC
|
||||
# Bootstrapping Kodi
|
||||
./bootstrap
|
||||
|
||||
# Configuring XBMC
|
||||
# Configuring Kodi
|
||||
export PYTHON_VERSION=2 # external python v2
|
||||
# we need to compile for armv6 instead of armv5 to avoid problems compiling assembler code
|
||||
export CFLAGS="-Ofast -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -fexcess-precision=fast -mfloat-abi=hard \
|
||||
|
@ -99,9 +69,7 @@ build() {
|
|||
--disable-x11 \
|
||||
--disable-sdl \
|
||||
--enable-optimizations \
|
||||
--disable-external-libraries \
|
||||
--disable-goom \
|
||||
--disable-hal \
|
||||
--disable-pulse \
|
||||
--disable-vaapi \
|
||||
--disable-vdpau \
|
||||
|
@ -121,8 +89,6 @@ build() {
|
|||
--enable-rsxs \
|
||||
--enable-rtmp \
|
||||
--disable-vaapi \
|
||||
--disable-vdadecoder \
|
||||
--disable-external-ffmpeg \
|
||||
--enable-optical-drive \
|
||||
--enable-player=omxplayer
|
||||
make
|
||||
|
@ -134,26 +100,22 @@ package() {
|
|||
make DESTDIR="${pkgdir}" install
|
||||
|
||||
# run feh with python2
|
||||
sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc
|
||||
|
||||
# Remove checks that don't apply to the raspberry pi
|
||||
head -n 171 "${pkgdir}${_prefix}/share/xbmc/FEH.py" > "${pkgdir}${_prefix}/share/xbmc/FEH.py.new"
|
||||
mv "${pkgdir}${_prefix}/share/xbmc/FEH.py.new" "${pkgdir}${_prefix}/share/xbmc/FEH.py"
|
||||
sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/kodi
|
||||
|
||||
# lsb_release fix
|
||||
sed -i -e 's/which lsb_release > \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/xbmc"
|
||||
sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc"
|
||||
sed -i -e 's/which lsb_release > \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/kodi"
|
||||
sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/kodi"
|
||||
|
||||
# Tools
|
||||
install -D -m 0755 "${srcdir}/xbmc-${pkgver}-${_codename}/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/"
|
||||
install -D -m 0755 "${srcdir}/xbmc-${pkgver}-${_codename}/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/lib/kodi/"
|
||||
|
||||
# Licenses
|
||||
install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${pkgname}"
|
||||
for licensef in LICENSE.GPL copying.txt; do
|
||||
mv "${pkgdir}${_prefix}/share/doc/xbmc/${licensef}" "${pkgdir}${_prefix}/share/licenses/${pkgname}"
|
||||
mv "${pkgdir}${_prefix}/share/doc/kodi/${licensef}" "${pkgdir}${_prefix}/share/licenses/${pkgname}"
|
||||
done
|
||||
|
||||
install -Dm0644 $srcdir/xbmc.service $pkgdir/usr/lib/systemd/system/xbmc.service
|
||||
install -Dm0644 $srcdir/polkit.rules $pkgdir/usr/share/polkit-1/rules.d/10-xbmc.rules
|
||||
install -Dm0644 $srcdir/kodi.service $pkgdir/usr/lib/systemd/system/kodi.service
|
||||
install -Dm0644 $srcdir/polkit.rules $pkgdir/usr/share/polkit-1/rules.d/10-kodi.rules
|
||||
chmod 0700 $pkgdir/usr/share/polkit-1/rules.d/
|
||||
}
|
|
@ -1,14 +1,14 @@
|
|||
post_install() {
|
||||
[[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor
|
||||
[[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications
|
||||
getent group xbmc > /dev/null || groupadd -r xbmc
|
||||
getent passwd xbmc > /dev/null || useradd -r -m -d /var/lib/xbmc -g xbmc xbmc
|
||||
usermod -a -G xbmc,audio,video,power,network,optical,storage,disk xbmc
|
||||
mkdir -p var/lib/xbmc
|
||||
chown -R xbmc:xbmc var/lib/xbmc
|
||||
getent group kodi > /dev/null || groupadd -r kodi
|
||||
getent passwd kodi > /dev/null || useradd -r -m -d /var/lib/kodi -g kodi kodi
|
||||
usermod -a -G kodi,audio,video,power,network,optical,storage,disk kodi
|
||||
mkdir -p var/lib/kodi
|
||||
chown -R kodi:kodi var/lib/kodi
|
||||
|
||||
echo "****************************************************************"
|
||||
echo "If xbmc systemd service does not start, try adding a udev rule:"
|
||||
echo "If kodi systemd service does not start, try adding a udev rule:"
|
||||
echo "echo 'SUBSYSTEM==\"vchiq\",GROUP=\"video\",MODE=\"0660\"' > /etc/udev/rules.d/10-vchiq-permissions.rules"
|
||||
echo "****************************************************************"
|
||||
}
|
||||
|
@ -20,5 +20,5 @@ post_upgrade() {
|
|||
post_remove() {
|
||||
[[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor
|
||||
[[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications
|
||||
getent passwd xbmc > /dev/null && userdel xbmc
|
||||
getent passwd kodi > /dev/null && userdel kodi
|
||||
}
|
13
alarm/kodi-rbp/kodi.service
Normal file
13
alarm/kodi-rbp/kodi.service
Normal file
|
@ -0,0 +1,13 @@
|
|||
[Unit]
|
||||
Description = Starts an instance of Kodi
|
||||
After = remote-fs.target
|
||||
|
||||
[Service]
|
||||
User = kodi
|
||||
Group = kodi
|
||||
Type = simple
|
||||
ExecStart = /usr/bin/kodi-standalone -l /run/lirc/lircd
|
||||
Restart = on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
|
@ -1,5 +1,5 @@
|
|||
polkit.addRule(function(action, subject) {
|
||||
if (subject.user == "xbmc") {
|
||||
if (subject.user == "kodi") {
|
||||
polkit.log("action=" + action);
|
||||
polkit.log("subject=" + subject);
|
||||
if (action.id.indexOf("org.freedesktop.login1.") == 0) {
|
|
@ -1,41 +0,0 @@
|
|||
From 4037c9fd07fbec1873549e71e0b1c2833a5a87db Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Mon, 27 Oct 2014 14:42:30 +0100
|
||||
Subject: [PATCH 1/8] [CEC] fixed: don't try to stick a value > 255 in a byte
|
||||
|
||||
---
|
||||
system/peripherals.xml | 2 +-
|
||||
xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/system/peripherals.xml b/system/peripherals.xml
|
||||
index 57af5d1..5fcff7c 100644
|
||||
--- a/system/peripherals.xml
|
||||
+++ b/system/peripherals.xml
|
||||
@@ -30,7 +30,7 @@
|
||||
<setting key="device_type" type="int" value="1" configurable="0" />
|
||||
<setting key="wake_devices_advanced" type="string" value="" configurable="0" />
|
||||
<setting key="standby_devices_advanced" type="string" value="" configurable="0" />
|
||||
- <setting key="double_tap_timeout_ms" type="int" min="0" value="2000" configurable="0" />
|
||||
+ <setting key="double_tap_timeout_ms" type="int" min="0" value="300" configurable="0" />
|
||||
</peripheral>
|
||||
|
||||
<peripheral vendor_product="2548:1001,2548:1002" bus="usb" name="Pulse-Eight CEC Adapter" mapTo="cec">
|
||||
diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
index 9907ba2..1d068dc 100644
|
||||
--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
+++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
@@ -1347,8 +1347,8 @@ void CPeripheralCecAdapter::SetConfigurationFromSettings(void)
|
||||
m_configuration.bPowerOffOnStandby = iStandbyAction == 13011 ? 1 : 0;
|
||||
m_configuration.bShutdownOnStandby = iStandbyAction == 13005 ? 1 : 0;
|
||||
|
||||
- // double tap prevention timeout in ms
|
||||
- m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms");
|
||||
+ // double tap prevention timeout in ms. libCEC uses 50ms units for this in 2.2.0, so divide by 50
|
||||
+ m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms") / 50;
|
||||
}
|
||||
|
||||
void CPeripheralCecAdapter::ReadLogicalAddresses(const CStdString &strString, cec_logical_addresses &addresses)
|
||||
--
|
||||
2.1.2
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From 6cd70921650dda8864a844033e36f1bea55d034b Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Mon, 27 Oct 2014 12:29:09 +0100
|
||||
Subject: [PATCH 2/8] [CEC] bump libCEC to 2.2.0
|
||||
|
||||
---
|
||||
project/BuildDependencies/scripts/libcec_d.txt | 2 +-
|
||||
tools/depends/target/libcec/Makefile | 6 +++---
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/project/BuildDependencies/scripts/libcec_d.txt b/project/BuildDependencies/scripts/libcec_d.txt
|
||||
index a126c74..3d0265e 100644
|
||||
--- a/project/BuildDependencies/scripts/libcec_d.txt
|
||||
+++ b/project/BuildDependencies/scripts/libcec_d.txt
|
||||
@@ -1,3 +1,3 @@
|
||||
; filename source of the file
|
||||
|
||||
-libcec-2.1.4.zip http://mirrors.xbmc.org/build-deps/win32/
|
||||
+libcec-2.2.0-win32.zip http://mirrors.xbmc.org/build-deps/win32/
|
||||
diff --git a/tools/depends/target/libcec/Makefile b/tools/depends/target/libcec/Makefile
|
||||
index 16fec1b..6c72240 100644
|
||||
--- a/tools/depends/target/libcec/Makefile
|
||||
+++ b/tools/depends/target/libcec/Makefile
|
||||
@@ -3,9 +3,9 @@ DEPS= ../../Makefile.include Makefile
|
||||
|
||||
# lib name, version
|
||||
LIBNAME=libcec
|
||||
-VERSION=2.1.4
|
||||
-SOURCE=$(LIBNAME)-$(VERSION)-2
|
||||
-ARCHIVE=$(SOURCE).tar.gz
|
||||
+VERSION=2.2.0
|
||||
+SOURCE=$(LIBNAME)-$(VERSION)
|
||||
+ARCHIVE=$(SOURCE)-3.tar.gz
|
||||
|
||||
# configuration settings
|
||||
CONFIGURE=./configure --prefix=$(PREFIX) --disable-rpi \
|
||||
--
|
||||
2.1.2
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From e59d7e028288464e6890141a830e4a83d4b9d065 Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Mon, 27 Oct 2014 15:32:36 +0100
|
||||
Subject: [PATCH 3/8] [CEC] prevent bus rescan on a Pi, since the adapter
|
||||
cannot be removed
|
||||
|
||||
---
|
||||
xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
|
||||
index b02535a..4941ae6 100644
|
||||
--- a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
|
||||
+++ b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
|
||||
@@ -101,6 +101,8 @@ bool CPeripheralBusCEC::PerformDeviceScan(PeripheralScanResults &results)
|
||||
break;
|
||||
case ADAPTERTYPE_RPI:
|
||||
result.m_mappedBusType = PERIPHERAL_BUS_RPI;
|
||||
+ /** the Pi's adapter cannot be removed, no need to rescan */
|
||||
+ m_bNeedsPolling = false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
--
|
||||
2.1.2
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
From 6544830d1a0b9810c2feb2fcb34df3f90b010d2f Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Mon, 27 Oct 2014 21:01:00 +0100
|
||||
Subject: [PATCH 4/8] [CEC] fixed: don't return garbage from CEC related app
|
||||
messenger methods see
|
||||
https://github.com/xbmc/xbmc/commit/19d37944ca2a2ac2f3e71a40a94e9ea289d8f2db#commitcomment-8248480
|
||||
|
||||
---
|
||||
xbmc/Application.cpp | 14 ++++++++------
|
||||
xbmc/ApplicationMessenger.cpp | 20 +++++---------------
|
||||
xbmc/ApplicationMessenger.h | 4 ++--
|
||||
3 files changed, 15 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
|
||||
index d5604dc..4d26183 100644
|
||||
--- a/xbmc/Application.cpp
|
||||
+++ b/xbmc/Application.cpp
|
||||
@@ -2351,16 +2351,18 @@
|
||||
|
||||
if (StringUtils::StartsWithNoCase(action.GetName(),"CECToggleState") || StringUtils::StartsWithNoCase(action.GetName(),"CECStandby"))
|
||||
{
|
||||
- bool ret = true;
|
||||
-
|
||||
- CLog::Log(LOGDEBUG, "%s: action %s [%d], toggling state of playing device", __FUNCTION__, action.GetName().c_str(), action.GetID());
|
||||
// do not wake up the screensaver right after switching off the playing device
|
||||
if (StringUtils::StartsWithNoCase(action.GetName(),"CECToggleState"))
|
||||
- ret = CApplicationMessenger::Get().CECToggleState();
|
||||
+ {
|
||||
+ CLog::Log(LOGDEBUG, "%s: action %s [%d], toggling state of playing device", __FUNCTION__, action.GetName().c_str(), action.GetID());
|
||||
+ if (!CApplicationMessenger::Get().CECToggleState())
|
||||
+ return true;
|
||||
+ }
|
||||
else
|
||||
- ret = CApplicationMessenger::Get().CECStandby();
|
||||
- if (!ret) /* display is switched off */
|
||||
+ {
|
||||
+ CApplicationMessenger::Get().CECStandby();
|
||||
return true;
|
||||
+ }
|
||||
}
|
||||
|
||||
ResetScreenSaver();
|
||||
diff --git a/xbmc/ApplicationMessenger.cpp b/xbmc/ApplicationMessenger.cpp
|
||||
index 1a59c5c..d228273 100644
|
||||
--- a/xbmc/ApplicationMessenger.cpp
|
||||
+++ b/xbmc/ApplicationMessenger.cpp
|
||||
@@ -843,12 +843,12 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
|
||||
}
|
||||
case TMSG_CECACTIVATESOURCE:
|
||||
{
|
||||
- *((bool*)pMsg->lpVoid) = g_peripherals.ToggleDeviceState(STATE_ACTIVATE_SOURCE);
|
||||
+ g_peripherals.ToggleDeviceState(STATE_ACTIVATE_SOURCE);
|
||||
break;
|
||||
}
|
||||
case TMSG_CECSTANDBY:
|
||||
{
|
||||
- *((bool*)pMsg->lpVoid) = g_peripherals.ToggleDeviceState(STATE_STANDBY);
|
||||
+ g_peripherals.ToggleDeviceState(STATE_STANDBY);
|
||||
break;
|
||||
}
|
||||
case TMSG_START_ANDROID_ACTIVITY:
|
||||
@@ -1396,29 +1396,19 @@ bool CApplicationMessenger::CECToggleState()
|
||||
|
||||
ThreadMessage tMsg = {TMSG_CECTOGGLESTATE};
|
||||
tMsg.lpVoid = (void*)&result;
|
||||
- SendMessage(tMsg, false);
|
||||
+ SendMessage(tMsg, true);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
-bool CApplicationMessenger::CECActivateSource()
|
||||
+void CApplicationMessenger::CECActivateSource()
|
||||
{
|
||||
- bool result;
|
||||
-
|
||||
ThreadMessage tMsg = {TMSG_CECACTIVATESOURCE};
|
||||
- tMsg.lpVoid = (void*)&result;
|
||||
SendMessage(tMsg, false);
|
||||
-
|
||||
- return result;
|
||||
}
|
||||
|
||||
-bool CApplicationMessenger::CECStandby()
|
||||
+void CApplicationMessenger::CECStandby()
|
||||
{
|
||||
- bool result;
|
||||
-
|
||||
ThreadMessage tMsg = {TMSG_CECSTANDBY};
|
||||
- tMsg.lpVoid = (void*)&result;
|
||||
SendMessage(tMsg, false);
|
||||
-
|
||||
- return result;
|
||||
}
|
||||
diff --git a/xbmc/ApplicationMessenger.h b/xbmc/ApplicationMessenger.h
|
||||
index 9013567..543e065 100644
|
||||
--- a/xbmc/ApplicationMessenger.h
|
||||
+++ b/xbmc/ApplicationMessenger.h
|
||||
@@ -219,8 +219,8 @@ public:
|
||||
|
||||
void LoadProfile(unsigned int idx);
|
||||
bool CECToggleState();
|
||||
- bool CECActivateSource();
|
||||
- bool CECStandby();
|
||||
+ void CECActivateSource();
|
||||
+ void CECStandby();
|
||||
|
||||
CStdString GetResponse();
|
||||
int SetResponse(CStdString response);
|
||||
--
|
||||
2.1.2
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From 9f1e45a10860dd23239de35673643e9e0e4a74f8 Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Tue, 28 Oct 2014 14:52:16 +0100
|
||||
Subject: [PATCH 5/8] [CEC] renamed the iDoubleTapTimeoutMs in the new libCEC
|
||||
for clarity. does not change binary compatibility
|
||||
|
||||
---
|
||||
xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
index 1d068dc..ad123d9 100644
|
||||
--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
+++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
@@ -1347,8 +1347,13 @@ void CPeripheralCecAdapter::SetConfigurationFromSettings(void)
|
||||
m_configuration.bPowerOffOnStandby = iStandbyAction == 13011 ? 1 : 0;
|
||||
m_configuration.bShutdownOnStandby = iStandbyAction == 13005 ? 1 : 0;
|
||||
|
||||
+#if defined(CEC_DOUBLE_TAP_TIMEOUT_MS_OLD)
|
||||
// double tap prevention timeout in ms. libCEC uses 50ms units for this in 2.2.0, so divide by 50
|
||||
- m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms") / 50;
|
||||
+ m_configuration.iDoubleTapTimeout50Ms = GetSettingInt("double_tap_timeout_ms") / 50;
|
||||
+#else
|
||||
+ // backwards compatibility. will be removed once the next major release of libCEC is out
|
||||
+ m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms");
|
||||
+#endif
|
||||
}
|
||||
|
||||
void CPeripheralCecAdapter::ReadLogicalAddresses(const CStdString &strString, cec_logical_addresses &addresses)
|
||||
--
|
||||
2.1.2
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From fa01c108b60f74abb16992c1376bcca896093eac Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Tue, 28 Oct 2014 16:08:00 +0100
|
||||
Subject: [PATCH 6/8] [CEC] fixed - don't use CEC_CLIENT_VERSION_CURRENT for
|
||||
the client version, because it will lead to issues when XBMC is rebuilt after
|
||||
a libCEC bump that changes something
|
||||
|
||||
---
|
||||
xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
index ad123d9..015daef 100644
|
||||
--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
+++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
@@ -1268,8 +1268,8 @@ void CPeripheralCecAdapter::SetConfigurationFromLibCEC(const CEC::libcec_configu
|
||||
|
||||
void CPeripheralCecAdapter::SetConfigurationFromSettings(void)
|
||||
{
|
||||
- // use the same client version as libCEC version
|
||||
- m_configuration.clientVersion = CEC_CLIENT_VERSION_CURRENT;
|
||||
+ // client version matches the version of libCEC that we originally used the API from
|
||||
+ m_configuration.clientVersion = CEC_CLIENT_VERSION_2_2_0;
|
||||
|
||||
// device name 'XBMC'
|
||||
snprintf(m_configuration.strDeviceName, 13, "%s", GetSettingString("device_name").c_str());
|
||||
--
|
||||
2.1.2
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
From 6e5822d4fe648abbd575cf77ced943a1461e9ae5 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Brunner <chb@muc.de>
|
||||
Date: Sat, 18 Jan 2014 13:20:56 -0800
|
||||
Subject: [PATCH] [cec] suppress double keys within 250ms
|
||||
|
||||
workaround for Panasonic's cec implementation
|
||||
---
|
||||
xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 16 ++++++++++++----
|
||||
xbmc/peripherals/devices/PeripheralCecAdapter.h | 1 +
|
||||
2 files changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
index 8919380..4bf5f89 100644
|
||||
--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
+++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
|
||||
@@ -56,6 +56,9 @@
|
||||
#define LOCALISED_ID_TV_AVR 36039
|
||||
#define LOCALISED_ID_NONE 231
|
||||
|
||||
+/* time in milliseconds to suppress a double key press */
|
||||
+#define CEC_SUPPRESS_DOUBLE_KEY 250
|
||||
+
|
||||
/* time in seconds to suppress source activation after receiving OnStop */
|
||||
#define CEC_SUPPRESS_ACTIVATE_SOURCE_AFTER_ON_STOP 2
|
||||
|
||||
@@ -765,16 +768,20 @@ void CPeripheralCecAdapter::GetNextKey(void)
|
||||
|
||||
void CPeripheralCecAdapter::PushCecKeypress(const CecButtonPress &key)
|
||||
{
|
||||
- CLog::Log(LOGDEBUG, "%s - received key %2x duration %d", __FUNCTION__, key.iButton, key.iDuration);
|
||||
+ CLog::Log(LOGDEBUG, "%s - received key %2x duration %d timestamp %i", __FUNCTION__, key.iButton, key.iDuration, key.iTimestamp);
|
||||
|
||||
CSingleLock lock(m_critSection);
|
||||
+ if (key.iDuration == 0 && key.iTimestamp - m_currentButton.iTimestamp < CEC_SUPPRESS_DOUBLE_KEY )
|
||||
+ if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0)
|
||||
+ // ignore this one, since it's already been handled by xbmc (workaround for buggy tv)
|
||||
+ return;
|
||||
+
|
||||
if (key.iDuration > 0)
|
||||
{
|
||||
if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0)
|
||||
{
|
||||
- // update the duration
|
||||
- if (m_bHasButton)
|
||||
- m_currentButton.iDuration = key.iDuration;
|
||||
+ // update the duration
|
||||
+ m_currentButton.iDuration = key.iDuration;
|
||||
// ignore this one, since it's already been handled by xbmc
|
||||
return;
|
||||
}
|
||||
@@ -802,6 +809,7 @@ void CPeripheralCecAdapter::PushCecKeypress(const cec_keypress &key)
|
||||
{
|
||||
CecButtonPress xbmcKey;
|
||||
xbmcKey.iDuration = key.duration;
|
||||
+ xbmcKey.iTimestamp = XbmcThreads::SystemClockMillis();
|
||||
|
||||
switch (key.keycode)
|
||||
{
|
||||
diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.h b/xbmc/peripherals/devices/PeripheralCecAdapter.h
|
||||
index 0809b03..cfd4ba9 100644
|
||||
--- a/xbmc/peripherals/devices/PeripheralCecAdapter.h
|
||||
+++ b/xbmc/peripherals/devices/PeripheralCecAdapter.h
|
||||
@@ -72,6 +72,7 @@
|
||||
{
|
||||
int iButton;
|
||||
unsigned int iDuration;
|
||||
+ unsigned int iTimestamp;
|
||||
} CecButtonPress;
|
||||
|
||||
typedef enum
|
||||
--
|
||||
1.8.5.1
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
[Unit]
|
||||
Description = Starts an instance of XBMC
|
||||
After = remote-fs.target
|
||||
|
||||
[Service]
|
||||
User = xbmc
|
||||
Group = xbmc
|
||||
Type = simple
|
||||
ExecStart = /usr/bin/xbmc-standalone -l /run/lirc/lircd
|
||||
Restart = on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
Loading…
Reference in a new issue