alarm/xbmc-rbp to 13.2-4

This commit is contained in:
moonman 2014-11-18 18:02:50 -07:00
parent 8aa8a9e1d5
commit 189990da86
7 changed files with 299 additions and 1 deletions

View file

@ -0,0 +1,41 @@
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

View file

@ -0,0 +1,39 @@
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

View file

@ -0,0 +1,26 @@
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

View file

@ -0,0 +1,112 @@
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

View file

@ -0,0 +1,32 @@
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

View file

@ -0,0 +1,29 @@
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

View file

@ -8,7 +8,7 @@ buildarch=16
pkgname=xbmc-rbp
pkgver=13.2
_codename=Gotham
pkgrel=3
pkgrel=4
pkgdesc="A software media player and entertainment hub for digital media for the Raspberry Pi"
arch=('armv6h')
url="http://xbmc.org"
@ -25,11 +25,23 @@ provides=("xbmc")
conflicts=("xbmc")
install="xbmc.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')
sha256sums=('acbf5dffa3034a3406240ee3cf81e721386cd383d23d056ddde1f769e050e585'
'f4b436a64e32af6728fc9a584292b56de356d9090f0db0af30798a43aaa077f3'
'9d9ccbd140a71b90d43a22b7722804b9cb509b4e1e1fec02c0e2bceaed3b3958'
'0f0401189cc8481f05d7b68c50d66e18144c7d261be783e32c5b269f4b356ad7'
'33d6bd2b0da3d8563bfdf6059ad59ca10d9fe617e51990220ceb40d6fb3129d3'
'd98f86ceefb039b43a66332658aeee4aff25370248955ece10d04ae21f33d2a9'
'd829a5267f0b8042308b291366915253b3104d85a780a03cdaff6bec82493b95'
'189804742290946424a401163e351f5158bfd1b71e5b86b864589254b13f9571'
'4ea78374a08e13a64dcf6a424b111b8bfc11de03ed5829744fc6d9b5fc1ec96e'
'554140506063a85000d7072a961bb02514969e58b38a466aa120e9fb668a1863')
@ -39,6 +51,13 @@ _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