mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-19 00:21:40 +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
|
buildarch=16
|
||||||
|
|
||||||
pkgname=xbmc-rbp
|
pkgname=kodi-rbp
|
||||||
pkgver=13.2
|
pkgver=14.0
|
||||||
_codename=Gotham
|
_codename=Helix
|
||||||
pkgrel=4
|
pkgrel=1
|
||||||
pkgdesc="A software media player and entertainment hub for digital media for the Raspberry Pi"
|
pkgdesc="A software media player and entertainment hub for digital media for the Raspberry Pi"
|
||||||
arch=('armv6h')
|
arch=('armv6h')
|
||||||
url="http://xbmc.org"
|
url="http://kodi.tv"
|
||||||
license=('GPL' 'custom')
|
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')
|
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')
|
makedepends=('boost' 'cmake' 'gperf' 'nasm' 'zip' 'udisks' 'upower' 'git' 'autoconf' 'java-environment')
|
||||||
|
@ -21,64 +21,34 @@ optdepends=(
|
||||||
'upower: used to trigger power management functionality'
|
'upower: used to trigger power management functionality'
|
||||||
'unrar: access compressed files without unpacking them')
|
'unrar: access compressed files without unpacking them')
|
||||||
|
|
||||||
provides=("xbmc")
|
provides=("kodi")
|
||||||
conflicts=("xbmc")
|
conflicts=("xbmc" "kodi")
|
||||||
install="xbmc.install"
|
replaces=("xbmc-rbp" "xbmc-rbp-git" "kodi-rbp-git")
|
||||||
|
install="kodi.install"
|
||||||
source=("https://github.com/xbmc/xbmc/archive/$pkgver-$_codename.tar.gz"
|
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'
|
'kodi.service'
|
||||||
'0002-CEC-bump-libCEC-to-2.2.0.patch'
|
'polkit.rules')
|
||||||
'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')
|
|
||||||
|
|
||||||
sha256sums=('acbf5dffa3034a3406240ee3cf81e721386cd383d23d056ddde1f769e050e585'
|
sha256sums=('11746d95cc59361f36ce6ea9d0d36bbd9ec3376e991f5ec1720f8ff740b91192'
|
||||||
'f4b436a64e32af6728fc9a584292b56de356d9090f0db0af30798a43aaa077f3'
|
'5235068d5800d69f0287087815990e7fe8d6572733d60c8800546d35f608e87f'
|
||||||
'9d9ccbd140a71b90d43a22b7722804b9cb509b4e1e1fec02c0e2bceaed3b3958'
|
'9ea592205023ba861603d74b63cdb73126c56372a366dc4cb7beb379073cbb96')
|
||||||
'0f0401189cc8481f05d7b68c50d66e18144c7d261be783e32c5b269f4b356ad7'
|
|
||||||
'33d6bd2b0da3d8563bfdf6059ad59ca10d9fe617e51990220ceb40d6fb3129d3'
|
|
||||||
'd98f86ceefb039b43a66332658aeee4aff25370248955ece10d04ae21f33d2a9'
|
|
||||||
'd829a5267f0b8042308b291366915253b3104d85a780a03cdaff6bec82493b95'
|
|
||||||
'189804742290946424a401163e351f5158bfd1b71e5b86b864589254b13f9571'
|
|
||||||
'4ea78374a08e13a64dcf6a424b111b8bfc11de03ed5829744fc6d9b5fc1ec96e'
|
|
||||||
'554140506063a85000d7072a961bb02514969e58b38a466aa120e9fb668a1863')
|
|
||||||
|
|
||||||
_prefix=/usr
|
_prefix=/usr
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd "$srcdir/xbmc-$pkgver-$_codename"
|
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
|
# fix lsb_release dependency
|
||||||
sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp
|
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() {
|
build() {
|
||||||
cd "$srcdir/xbmc-$pkgver-$_codename"
|
cd "$srcdir/xbmc-$pkgver-$_codename"
|
||||||
|
|
||||||
# Bootstrapping XBMC
|
# Bootstrapping Kodi
|
||||||
./bootstrap
|
./bootstrap
|
||||||
|
|
||||||
# Configuring XBMC
|
# Configuring Kodi
|
||||||
export PYTHON_VERSION=2 # external python v2
|
export PYTHON_VERSION=2 # external python v2
|
||||||
# we need to compile for armv6 instead of armv5 to avoid problems compiling assembler code
|
# 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 \
|
export CFLAGS="-Ofast -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -fexcess-precision=fast -mfloat-abi=hard \
|
||||||
|
@ -99,9 +69,7 @@ build() {
|
||||||
--disable-x11 \
|
--disable-x11 \
|
||||||
--disable-sdl \
|
--disable-sdl \
|
||||||
--enable-optimizations \
|
--enable-optimizations \
|
||||||
--disable-external-libraries \
|
|
||||||
--disable-goom \
|
--disable-goom \
|
||||||
--disable-hal \
|
|
||||||
--disable-pulse \
|
--disable-pulse \
|
||||||
--disable-vaapi \
|
--disable-vaapi \
|
||||||
--disable-vdpau \
|
--disable-vdpau \
|
||||||
|
@ -121,8 +89,6 @@ build() {
|
||||||
--enable-rsxs \
|
--enable-rsxs \
|
||||||
--enable-rtmp \
|
--enable-rtmp \
|
||||||
--disable-vaapi \
|
--disable-vaapi \
|
||||||
--disable-vdadecoder \
|
|
||||||
--disable-external-ffmpeg \
|
|
||||||
--enable-optical-drive \
|
--enable-optical-drive \
|
||||||
--enable-player=omxplayer
|
--enable-player=omxplayer
|
||||||
make
|
make
|
||||||
|
@ -134,26 +100,22 @@ package() {
|
||||||
make DESTDIR="${pkgdir}" install
|
make DESTDIR="${pkgdir}" install
|
||||||
|
|
||||||
# run feh with python2
|
# run feh with python2
|
||||||
sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc
|
sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/kodi
|
||||||
|
|
||||||
# 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"
|
|
||||||
|
|
||||||
# lsb_release fix
|
# 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/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/xbmc"
|
sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/kodi"
|
||||||
|
|
||||||
# Tools
|
# 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
|
# Licenses
|
||||||
install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${pkgname}"
|
install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${pkgname}"
|
||||||
for licensef in LICENSE.GPL copying.txt; do
|
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
|
done
|
||||||
|
|
||||||
install -Dm0644 $srcdir/xbmc.service $pkgdir/usr/lib/systemd/system/xbmc.service
|
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-xbmc.rules
|
install -Dm0644 $srcdir/polkit.rules $pkgdir/usr/share/polkit-1/rules.d/10-kodi.rules
|
||||||
chmod 0700 $pkgdir/usr/share/polkit-1/rules.d/
|
chmod 0700 $pkgdir/usr/share/polkit-1/rules.d/
|
||||||
}
|
}
|
|
@ -1,14 +1,14 @@
|
||||||
post_install() {
|
post_install() {
|
||||||
[[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor
|
[[ $(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
|
[[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications
|
||||||
getent group xbmc > /dev/null || groupadd -r xbmc
|
getent group kodi > /dev/null || groupadd -r kodi
|
||||||
getent passwd xbmc > /dev/null || useradd -r -m -d /var/lib/xbmc -g xbmc xbmc
|
getent passwd kodi > /dev/null || useradd -r -m -d /var/lib/kodi -g kodi kodi
|
||||||
usermod -a -G xbmc,audio,video,power,network,optical,storage,disk xbmc
|
usermod -a -G kodi,audio,video,power,network,optical,storage,disk kodi
|
||||||
mkdir -p var/lib/xbmc
|
mkdir -p var/lib/kodi
|
||||||
chown -R xbmc:xbmc var/lib/xbmc
|
chown -R kodi:kodi var/lib/kodi
|
||||||
|
|
||||||
echo "****************************************************************"
|
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 "echo 'SUBSYSTEM==\"vchiq\",GROUP=\"video\",MODE=\"0660\"' > /etc/udev/rules.d/10-vchiq-permissions.rules"
|
||||||
echo "****************************************************************"
|
echo "****************************************************************"
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,5 @@ post_upgrade() {
|
||||||
post_remove() {
|
post_remove() {
|
||||||
[[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor
|
[[ $(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
|
[[ $(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) {
|
polkit.addRule(function(action, subject) {
|
||||||
if (subject.user == "xbmc") {
|
if (subject.user == "kodi") {
|
||||||
polkit.log("action=" + action);
|
polkit.log("action=" + action);
|
||||||
polkit.log("subject=" + subject);
|
polkit.log("subject=" + subject);
|
||||||
if (action.id.indexOf("org.freedesktop.login1.") == 0) {
|
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