Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-6.0

This commit is contained in:
Stephan Raue 2015-10-14 00:02:42 +02:00
commit 95ff5ba8e6
29 changed files with 803 additions and 579 deletions

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="ccache"
PKG_VERSION="3.2.1"
PKG_VERSION="3.2.3"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
@ -34,6 +34,8 @@ PKG_AUTORECONF="no"
export CC=$LOCAL_CC
PKG_CONFIGURE_OPTS_HOST="--with-bundled-zlib"
post_makeinstall_host() {
# setup ccache
$ROOT/$TOOLCHAIN/bin/ccache --max-size=$CCACHE_CACHE_SIZE
@ -51,4 +53,4 @@ $ROOT/$TOOLCHAIN/bin/ccache $LOCAL_CXX "\$@"
EOF
chmod +x $HOST_CXX
}
}

View File

@ -17,12 +17,12 @@
################################################################################
PKG_NAME="glib"
PKG_VERSION="2.44.1"
PKG_VERSION="2.46.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://www.gtk.org/"
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.44/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.46/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain zlib libffi pcre Python:host"
PKG_PRIORITY="optional"
PKG_SECTION="devel"

View File

@ -1,54 +0,0 @@
From 68cbd635036fe04cd07bbb1a4829eebab2d7dc03 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Wed, 20 Aug 2014 22:46:35 +0300
Subject: [PATCH] dont build tests
---
Makefile.am | 2 +-
configure.ac | 17 -----------------
2 files changed, 1 insertions(+), 18 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 40e5cd5..db7bfc8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,7 +6,7 @@ include $(top_srcdir)/glib.mk
ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
-SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests
+SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs
DIST_SUBDIRS = $(SUBDIRS) build
bin_SCRIPTS = glib-gettextize
diff --git a/configure.ac b/configure.ac
index a01e58d..f310615 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2559,23 +2559,6 @@ dnl ******************************************************************
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
-AS_IF([ test $cross_compiling = yes ], [
- AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no)
- if test x$GLIB_GENMARSHAL = xno; then
- AC_MSG_ERROR(Could not find a glib-genmarshal in your PATH)
- fi
-
- AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas, no)
- if test x$GLIB_COMPILE_SCHEMAS = xno; then
- AC_MSG_ERROR(Could not find a glib-compile-schemas in your PATH)
- fi
-
- AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources, no)
- if test x$GLIB_COMPILE_RESOURCES = xno; then
- AC_MSG_ERROR(Could not find a glib-compile-resources in your PATH)
- fi
-])
-
dnl **************************
dnl *** Checks for gtk-doc ***
dnl **************************
--
1.7.2.5

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="960832a"
PKG_VERSION="ba7a8fb"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="wetekdvb"
PKG_VERSION="20150930"
PKG_VERSION="20151007"
PKG_REV="1"
PKG_ARCH="arm"
PKG_LICENSE="nonfree"

View File

@ -31,7 +31,7 @@ PKG_SHORTDESC="linux26: The Linux kernel 2.6 precompiled kernel binary image and
PKG_LONGDESC="This package contains a precompiled kernel image and the modules."
case "$LINUX" in
amlogic)
PKG_VERSION="amlogic-3.10-753dc30"
PKG_VERSION="amlogic-3.10-9df7905"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
imx6)

View File

@ -0,0 +1,54 @@
# from upstream http://git.linuxtv.org/cgit.cgi/anttip/media_tree.git/commit/?h=rtl2832u_test2&id=3fde4395e9c58ab45470529f29864446230c5368
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index c3cac4c..197a4f2 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -34,6 +34,14 @@ static int rtl28xxu_ctrl_msg(struct dvb_usb_device *d, struct rtl28xxu_req *req)
unsigned int pipe;
u8 requesttype;
+ mutex_lock(&d->usb_mutex);
+
+ if (req->size > sizeof(dev->buf)) {
+ dev_err(&d->intf->dev, "too large message %u\n", req->size);
+ ret = -EINVAL;
+ goto err_mutex_unlock;
+ }
+
if (req->index & CMD_WR_FLAG) {
/* write */
memcpy(dev->buf, req->data, req->size);
@@ -50,14 +58,17 @@ static int rtl28xxu_ctrl_msg(struct dvb_usb_device *d, struct rtl28xxu_req *req)
dvb_usb_dbg_usb_control_msg(d->udev, 0, requesttype, req->value,
req->index, dev->buf, req->size);
if (ret < 0)
- goto err;
+ goto err_mutex_unlock;
/* read request, copy returned data to return buf */
if (requesttype == (USB_TYPE_VENDOR | USB_DIR_IN))
memcpy(req->data, dev->buf, req->size);
+ mutex_unlock(&d->usb_mutex);
+
return 0;
-err:
+err_mutex_unlock:
+ mutex_unlock(&d->usb_mutex);
dev_dbg(&d->intf->dev, "failed=%d\n", ret);
return ret;
}
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.h b/drivers/media/usb/dvb-usb-v2/rtl28xxu.h
index 9f6115a..1380629 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.h
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.h
@@ -71,7 +71,7 @@
struct rtl28xxu_dev {
- u8 buf[28];
+ u8 buf[128];
u8 chip_id;
u8 tuner;
char *tuner_name;

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-theme-Confluence"
PKG_VERSION="15.2-rc3-cf72616"
PKG_VERSION="15.2-rc3-9efd358"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi"
PKG_VERSION="15.2-rc3-cf72616"
PKG_VERSION="15.2-rc3-9efd358"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -0,0 +1,210 @@
From 958d47339a2427b66568fe7c2ea69831f111742a Mon Sep 17 00:00:00 2001
From: Roman Kraevskiy <rkraevskiy@gmail.com>
Date: Fri, 10 Jul 2015 23:36:34 +0300
Subject: [PATCH 059/100] Mouse wheel support for X11-less linux distros
(openelec)
---
xbmc/input/linux/LinuxInputDevices.cpp | 125 +++++++++++++++++++++------------
xbmc/input/linux/LinuxInputDevices.h | 2 +
2 files changed, 82 insertions(+), 45 deletions(-)
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index 32a3b46..b028cd1 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -558,22 +558,27 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev
*/
bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& devt)
{
+ bool motion = false;
+ bool wheel = false;
+
switch (levt.code)
{
case REL_X:
m_mouseX += levt.value;
devt.motion.xrel = levt.value;
devt.motion.yrel = 0;
+ motion = true;
break;
-
case REL_Y:
m_mouseY += levt.value;
devt.motion.xrel = 0;
devt.motion.yrel = levt.value;
+ motion = true;
break;
-
- case REL_Z:
case REL_WHEEL:
+ wheel = (levt.value != 0); // process wheel event only when there was some delta
+ break;
+ case REL_Z:
default:
CLog::Log(LOGWARNING, "CLinuxInputDevice::RelEvent: Unknown rel event code: %d\n", levt.code);
return false;
@@ -588,13 +593,35 @@ bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& dev
m_mouseY = std::max(0, m_mouseY);
- devt.type = XBMC_MOUSEMOTION;
- devt.motion.type = XBMC_MOUSEMOTION;
- devt.motion.x = m_mouseX;
- devt.motion.y = m_mouseY;
- devt.motion.state = 0;
- devt.motion.which = m_deviceIndex;
-
+ if (motion)
+ {
+ devt.type = XBMC_MOUSEMOTION;
+ devt.motion.type = XBMC_MOUSEMOTION;
+ devt.motion.x = m_mouseX;
+ devt.motion.y = m_mouseY;
+ devt.motion.state = 0;
+ devt.motion.which = m_deviceIndex;
+ }
+ else if (wheel)
+ {
+ devt.type = XBMC_MOUSEBUTTONUP;
+ devt.button.state = XBMC_RELEASED;
+ devt.button.type = devt.type;
+ devt.button.x = m_mouseX;
+ devt.button.y = m_mouseY;
+ devt.button.button = (levt.value<0) ? XBMC_BUTTON_WHEELDOWN:XBMC_BUTTON_WHEELUP;
+
+ /* but WHEEL up enent to the queue */
+ m_equeue.push_back(devt);
+
+ /* prepare and return WHEEL down event */
+ devt.button.state = XBMC_PRESSED;
+ devt.type = XBMC_MOUSEBUTTONDOWN;
+ }
+ else
+ {
+ return false;
+ }
return true;
}
@@ -693,57 +720,65 @@ XBMC_Event CLinuxInputDevice::ReadEvent()
XBMC_Event devt;
- while (1)
+ if (m_equeue.empty())
{
- bzero(&levt, sizeof(levt));
+ while (1)
+ {
+ bzero(&levt, sizeof(levt));
- bzero(&devt, sizeof(devt));
- devt.type = XBMC_NOEVENT;
+ bzero(&devt, sizeof(devt));
+ devt.type = XBMC_NOEVENT;
- if(m_devicePreferredId == LI_DEVICE_NONE)
- return devt;
+ if(m_devicePreferredId == LI_DEVICE_NONE)
+ return devt;
- readlen = read(m_fd, &levt, sizeof(levt));
+ readlen = read(m_fd, &levt, sizeof(levt));
- if (readlen <= 0)
- {
- if (errno == ENODEV)
+ if (readlen <= 0)
{
- CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
- m_bUnplugged = true;
+ if (errno == ENODEV)
+ {
+ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
+ m_bUnplugged = true;
+ }
+
+ break;
}
- break;
- }
+ //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
- //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
+ // sanity check if we realy read the event
+ if(readlen != sizeof(levt))
+ {
+ printf("CLinuxInputDevice: read error : %s\n", strerror(errno));
+ break;
+ }
- // sanity check if we realy read the event
- if(readlen != sizeof(levt))
- {
- printf("CLinuxInputDevice: read error : %s\n", strerror(errno));
- break;
- }
+ if (!TranslateEvent(levt, devt))
+ continue;
- if (!TranslateEvent(levt, devt))
- continue;
+ /* Flush previous event with DIEF_FOLLOW? */
+ if (devt.type != XBMC_NOEVENT)
+ {
+ //printf("new event! type = %d\n", devt.type);
+ //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode);
- /* Flush previous event with DIEF_FOLLOW? */
- if (devt.type != XBMC_NOEVENT)
- {
- //printf("new event! type = %d\n", devt.type);
- //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode);
+ if (m_hasLeds && (m_keyMods != m_lastKeyMods))
+ {
+ SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM);
+ SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS);
+ m_lastKeyMods = m_keyMods;
+ }
- if (m_hasLeds && (m_keyMods != m_lastKeyMods))
- {
- SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM);
- SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS);
- m_lastKeyMods = m_keyMods;
+ break;
}
-
- break;
}
}
+ else
+ {
+ devt = m_equeue.front();
+ m_equeue.pop_front();
+ }
return devt;
}
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
index cf1c5ce..954d823 100644
--- a/xbmc/input/linux/LinuxInputDevices.h
+++ b/xbmc/input/linux/LinuxInputDevices.h
@@ -22,6 +22,7 @@
#include <vector>
#include <string>
+#include <deque>
#include "windowing/XBMC_events.h"
#include "input/XBMC_keyboard.h"
#include "threads/SingleLock.h"
@@ -79,6 +80,7 @@ class CLinuxInputDevice
int m_deviceMaxAxis;
bool m_bSkipNonKeyEvents;
bool m_bUnplugged;
+ std::deque<XBMC_Event> m_equeue;
};
class CLinuxInputDevices

View File

@ -0,0 +1,337 @@
From 8ff131750e527416274e4f21685312785a8d0bb2 Mon Sep 17 00:00:00 2001
From: Floris Bos <bos@je-eigen-domein.nl>
Date: Wed, 23 Sep 2015 22:34:20 +0200
Subject: [PATCH 1/3] Fix Linux touchscreen support
Touch devices tend to send a key event first and coordinates later.
==
Event: type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: type 3 (EV_ABS), code 0 (ABS_X), value 45
Event: type 3 (EV_ABS), code 1 (ABS_Y), value 27
==
This does not go along well with the XBMC mouse handling code that
expects to already have the coordinates when processing the EV_KEY.
Fetch the current coordinates with ioctl() as workaround.
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
xbmc/input/linux/LinuxInputDevices.cpp | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index b028cd1..b8f13d3 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -275,6 +275,7 @@ typedef enum
LI_CAPS_KEYS = 1,
LI_CAPS_BUTTONS = 2,
LI_CAPS_AXES = 4,
+ LI_CAPS_ABS = 8
} LinuxInputCapsType;
static char remoteStatus = 0xFF; // paired, battery OK
@@ -470,6 +471,23 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev
if (levt.value == 2)
return false;
+ /* touch devices tend to send the key event before the coordinates, so we
+ cannot rely on m_mouseX and m_mouseY already having the correct values */
+ if (m_deviceCaps & LI_CAPS_ABS)
+ {
+ struct input_absinfo absinfo;
+
+ if (ioctl(m_fd, EVIOCGABS(ABS_X), &absinfo) == 0)
+ {
+ m_mouseX = absinfo.value;
+ }
+
+ if (ioctl(m_fd, EVIOCGABS(ABS_Y), &absinfo) == 0)
+ {
+ m_mouseY = absinfo.value;
+ }
+ }
+
devt.type = levt.value ? XBMC_MOUSEBUTTONDOWN : XBMC_MOUSEBUTTONUP;
devt.button.state = levt.value ? XBMC_PRESSED : XBMC_RELEASED;
devt.button.type = devt.type;
@@ -954,6 +972,12 @@ void CLinuxInputDevice::GetInfo(int fd)
m_deviceMaxAxis = std::max(num_rels, num_abs) - 1;
}
+ /* Absolute X,Y coordinates */
+ if (num_abs >= 2 && num_rels == 0)
+ {
+ m_deviceCaps |= LI_CAPS_ABS;
+ }
+
/* Decide which primary input device to be. */
if (m_deviceType & LI_DEVICE_KEYBOARD)
m_devicePreferredId = LI_DEVICE_KEYBOARD;
From a7b5f1489dbfcb577e12c747626fe7d45ff2009d Mon Sep 17 00:00:00 2001
From: Floris Bos <bos@je-eigen-domein.nl>
Date: Fri, 25 Sep 2015 01:07:30 +0200
Subject: [PATCH 2/3] LinuxInputDevice: add support for multi-touch devices
Adds support for multi-touch devices on Linux.
Support is limited to devices that are capable of
tracking identifiable contacts, and use the type B events of:
https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
Makefile.in | 2 +
xbmc/input/linux/LinuxInputDevices.cpp | 109 ++++++++++++++++++++++++++++++++-
xbmc/input/linux/LinuxInputDevices.h | 8 +++
xbmc/input/touch/ITouchInputHandler.h | 1 +
xbmc/windowing/WinEventsLinux.cpp | 5 ++
xbmc/windowing/WinEventsLinux.h | 1 +
6 files changed, 125 insertions(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index d579e11..2d4b1c8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -157,6 +157,8 @@ DIRECTORY_ARCHIVES += xbmc/storage/android/storage_android.a
DIRECTORY_ARCHIVES += xbmc/windowing/X11/windowing_X11.a
else
DIRECTORY_ARCHIVES += xbmc/input/linux/input_linux.a
+DIRECTORY_ARCHIVES += xbmc/input/touch/input_touch.a
+DIRECTORY_ARCHIVES += xbmc/input/touch/generic/input_touch_generic.a
DIRECTORY_ARCHIVES += xbmc/network/linux/network_linux.a
DIRECTORY_ARCHIVES += xbmc/powermanagement/linux/powermanagement_linux.a
DIRECTORY_ARCHIVES += xbmc/storage/linux/storage_linux.a
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index b8f13d3..6e1cd1d 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -96,6 +96,8 @@ typedef unsigned long kernel_ulong_t;
#include "LinuxInputDevices.h"
#include "input/MouseStat.h"
#include "utils/log.h"
+#include "input/touch/generic/GenericTouchActionHandler.h"
+#include "input/touch/generic/GenericTouchInputHandler.h"
#ifndef BITS_PER_LONG
#define BITS_PER_LONG (sizeof(long) * 8)
@@ -267,7 +269,8 @@ typedef enum
LI_DEVICE_MOUSE = 1,
LI_DEVICE_JOYSTICK = 2,
LI_DEVICE_KEYBOARD = 4,
- LI_DEVICE_REMOTE = 8
+ LI_DEVICE_REMOTE = 8,
+ LI_DEVICE_MULTITOUCH = 16
} LinuxInputDeviceType;
typedef enum
@@ -302,6 +305,10 @@ CLinuxInputDevice::CLinuxInputDevice(const std::string& fileName, int index):
m_deviceMaxKeyCode = 0;
m_deviceMaxAxis = 0;
m_bUnplugged = false;
+ m_mt_currentSlot = 0;
+ memset(&m_mt_x, 0, sizeof(m_mt_x));
+ memset(&m_mt_y, 0, sizeof(m_mt_y));
+ memset(&m_mt_event, 0, sizeof(m_mt_event));
Open();
}
@@ -681,11 +688,102 @@ bool CLinuxInputDevice::AbsEvent(const struct input_event& levt, XBMC_Event& dev
}
/*
+ * Process multi-touch absolute events
+ * Only store the information, do not fire event until we receive an EV_SYN
+ */
+bool CLinuxInputDevice::mtAbsEvent(const struct input_event& levt)
+{
+ switch (levt.code)
+ {
+ case ABS_MT_SLOT:
+ m_mt_currentSlot = levt.value;
+ break;
+
+ case ABS_MT_TRACKING_ID:
+ if (m_mt_currentSlot < TOUCH_MAX_POINTERS)
+ {
+ if (levt.value == -1)
+ m_mt_event[m_mt_currentSlot] = TouchInputUp;
+ else
+ m_mt_event[m_mt_currentSlot] = TouchInputDown;
+ }
+ break;
+
+ case ABS_MT_POSITION_X:
+ if (m_mt_currentSlot < TOUCH_MAX_POINTERS)
+ {
+ m_mt_x[m_mt_currentSlot] = levt.value;
+ if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged)
+ m_mt_event[m_mt_currentSlot] = TouchInputMove;
+ }
+ break;
+
+ case ABS_MT_POSITION_Y:
+ if (m_mt_currentSlot < TOUCH_MAX_POINTERS)
+ {
+ m_mt_y[m_mt_currentSlot] = levt.value;
+ if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged)
+ m_mt_event[m_mt_currentSlot] = TouchInputMove;
+ }
+ break;
+
+ default:
+ return false;
+ }
+
+ return true;
+}
+
+/*
+ * Process stored multi-touch events
+ */
+bool CLinuxInputDevice::mtSynEvent(const struct input_event& levt)
+{
+ float size = 10.0f;
+ int64_t nanotime = levt.time.tv_sec * 1000000000LL + levt.time.tv_usec * 1000LL;
+
+ for (int ptr=0; ptr < TOUCH_MAX_POINTERS; ptr++)
+ {
+ /* While the comments of ITouchInputHandler::UpdateTouchPointer() say
+ "If there's an event for every touch action this method does not need to be called at all"
+ gesture detection currently doesn't work properly without this call. */
+ CGenericTouchInputHandler::Get().UpdateTouchPointer(ptr, m_mt_x[ptr], m_mt_y[ptr], nanotime, size);
+ }
+
+ for (int ptr=0; ptr < TOUCH_MAX_POINTERS; ptr++)
+ {
+ if (m_mt_event[ptr] != TouchInputUnchanged)
+ {
+ CGenericTouchInputHandler::Get().HandleTouchInput(m_mt_event[ptr], m_mt_x[ptr], m_mt_y[ptr], nanotime, ptr, size);
+ m_mt_event[ptr] = TouchInputUnchanged;
+ }
+ }
+
+ return true;
+}
+
+/*
* Translates a Linux input event into a DirectFB input event.
*/
bool CLinuxInputDevice::TranslateEvent(const struct input_event& levt,
XBMC_Event& devt)
{
+ if (m_devicePreferredId == LI_DEVICE_MULTITOUCH)
+ {
+ switch (levt.type)
+ {
+ case EV_ABS:
+ return mtAbsEvent(levt);
+
+ case EV_SYN:
+ return mtSynEvent(levt);
+
+ default:
+ // Ignore legacy (key) events
+ return false;
+ }
+ }
+
switch (levt.type)
{
case EV_KEY:
@@ -930,6 +1028,10 @@ void CLinuxInputDevice::GetInfo(int fd)
for (i = 0; i < ABS_PRESSURE; i++)
if (test_bit( i, absbit ))
num_abs++;
+
+ /* test if it is a multi-touch type B device */
+ if (test_bit(ABS_MT_SLOT, absbit))
+ m_deviceType |= LI_DEVICE_MULTITOUCH;
}
/* Mouse, Touchscreen or Smartpad ? */
@@ -981,6 +1083,11 @@ void CLinuxInputDevice::GetInfo(int fd)
/* Decide which primary input device to be. */
if (m_deviceType & LI_DEVICE_KEYBOARD)
m_devicePreferredId = LI_DEVICE_KEYBOARD;
+ else if (m_deviceType & LI_DEVICE_MULTITOUCH)
+ {
+ m_devicePreferredId = LI_DEVICE_MULTITOUCH;
+ CGenericTouchInputHandler::Get().RegisterHandler(&CGenericTouchActionHandler::Get());
+ }
else if (m_deviceType & LI_DEVICE_REMOTE)
m_devicePreferredId = LI_DEVICE_REMOTE;
else if (m_deviceType & LI_DEVICE_JOYSTICK)
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
index 954d823..8c88a1d 100644
--- a/xbmc/input/linux/LinuxInputDevices.h
+++ b/xbmc/input/linux/LinuxInputDevices.h
@@ -26,6 +26,8 @@
#include "windowing/XBMC_events.h"
#include "input/XBMC_keyboard.h"
#include "threads/SingleLock.h"
+#include "input/touch/ITouchInputHandler.h"
+#include "input/touch/generic/IGenericTouchGestureDetector.h"
struct KeymapEntry
{
@@ -60,6 +62,8 @@ class CLinuxInputDevice
XBMCMod UpdateModifiers(XBMC_Event& devt);
bool GetKeymapEntry(KeymapEntry& entry);
int KeyboardGetSymbol(unsigned short value);
+ bool mtAbsEvent(const struct input_event& levt);
+ bool mtSynEvent(const struct input_event& levt);
int m_fd;
int m_vt_fd;
@@ -81,6 +85,10 @@ class CLinuxInputDevice
bool m_bSkipNonKeyEvents;
bool m_bUnplugged;
std::deque<XBMC_Event> m_equeue;
+ int m_mt_currentSlot;
+ int m_mt_x[TOUCH_MAX_POINTERS];
+ int m_mt_y[TOUCH_MAX_POINTERS];
+ TouchInput m_mt_event[TOUCH_MAX_POINTERS];
};
class CLinuxInputDevices
diff --git a/xbmc/input/touch/ITouchInputHandler.h b/xbmc/input/touch/ITouchInputHandler.h
index 6ea47db..43c7a76 100644
--- a/xbmc/input/touch/ITouchInputHandler.h
+++ b/xbmc/input/touch/ITouchInputHandler.h
@@ -28,6 +28,7 @@
* \brief Touch input event
*/
typedef enum {
+ TouchInputUnchanged = 0,
TouchInputAbort,
TouchInputDown,
TouchInputUp,
diff --git a/xbmc/windowing/WinEventsLinux.cpp b/xbmc/windowing/WinEventsLinux.cpp
index 89aca2b..04e3544 100644
--- a/xbmc/windowing/WinEventsLinux.cpp
+++ b/xbmc/windowing/WinEventsLinux.cpp
@@ -241,4 +241,9 @@ size_t CWinEventsLinux::GetQueueSize()
return m_devices.Size();
}
+void CWinEventsLinux::MessagePush(XBMC_Event *ev)
+{
+ g_application.OnEvent(*ev);
+}
+
#endif
diff --git a/xbmc/windowing/WinEventsLinux.h b/xbmc/windowing/WinEventsLinux.h
index 5c2b583..dc73b39 100644
--- a/xbmc/windowing/WinEventsLinux.h
+++ b/xbmc/windowing/WinEventsLinux.h
@@ -31,6 +31,7 @@ class CWinEventsLinux : public IWinEvents
CWinEventsLinux();
bool MessagePump();
size_t GetQueueSize();
+ void MessagePush(XBMC_Event *ev);
void RefreshDevices();
void Notify(const Observable &obs, const ObservableMessage msg)
{

View File

@ -30,6 +30,7 @@ if [ -f "/storage/.kodi/addons/$1/system.d/$1.service" ] ; then
else
# disable = false: setup
systemctl enable "/storage/.kodi/addons/$1/system.d/$1.service"
chmod +x "/storage/.kodi/addons/$1/bin"/*
systemctl start "$1.service"
fi
fi

View File

@ -23,7 +23,7 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://www.videolan.org/developers/libbluray.html"
PKG_URL="https://ftp.videolan.org/pub/videolan/libbluray/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS_TARGET="toolchain freetype libxml2"
PKG_DEPENDS_TARGET="toolchain fontconfig freetype libxml2"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"
PKG_SHORTDESC="libbluray: A Blu-Ray Discs playback library"
@ -56,4 +56,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-werror \
--disable-doxygen-html \
--disable-doxygen-ps \
--disable-doxygen-pdf \
--with-freetype \
--with-fontconfig \
--with-libxml2 \
--with-gnu-ld"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="wireless-regdb"
PKG_VERSION="2015.07.20"
PKG_VERSION="2015.09.25"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="freetype"
PKG_VERSION="2.6"
PKG_VERSION="2.6.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -1,26 +1,14 @@
From 7688dae788f3a3f8f5f0478f096904cc885a1a90 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Sat, 16 Aug 2014 14:57:02 +0300
Subject: [PATCH] fix pkgconf
---
builds/unix/freetype2.in | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff -Naur freetype-2.5.4/builds/unix/freetype2.in freetype-2.5.4.patch/builds/unix/freetype2.in
--- freetype-2.5.4/builds/unix/freetype2.in 2014-11-19 22:36:25.000000000 +0100
+++ freetype-2.5.4.patch/builds/unix/freetype2.in 2014-12-08 20:29:05.594849395 +0100
diff -Naur freetype-2.6.1/builds/unix/freetype2.in freetype-2.6.1.patch/builds/unix/freetype2.in
--- freetype-2.6.1/builds/unix/freetype2.in 2015-09-25 07:58:57.000000000 +0200
+++ freetype-2.6.1.patch/builds/unix/freetype2.in 2015-10-12 21:58:50.736816464 +0200
@@ -1,7 +1,7 @@
prefix=%prefix%
-exec_prefix=%exec_prefix%
-libdir=%libdir%
-includedir=%includedir%/freetype2
-includedir=%includedir%
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include/freetype2
+includedir=${prefix}/include
Name: FreeType 2
URL: http://freetype.org
--
1.7.2.5

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.23.0
# Fri Dec 26 23:15:35 2014
# Busybox version: 1.24.0
# Tue Oct 13 14:34:37 2015
#
CONFIG_HAVE_DOT_CONFIG=y
@ -156,6 +156,7 @@ CONFIG_FEATURE_COPYBUF_KB=4
# CONFIG_GZIP is not set
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_GZIP_LEVELS is not set
# CONFIG_LZOP is not set
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
@ -183,10 +184,17 @@ CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_DATE_ISOFMT is not set
# CONFIG_FEATURE_DATE_NANO is not set
# CONFIG_FEATURE_DATE_COMPAT is not set
# CONFIG_DD is not set
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
# CONFIG_FEATURE_DD_IBS_OBS is not set
# CONFIG_FEATURE_DD_STATUS is not set
# CONFIG_HOSTID is not set
# CONFIG_ID is not set
# CONFIG_GROUPS is not set
# CONFIG_SHUF is not set
# CONFIG_SYNC is not set
# CONFIG_FEATURE_SYNC_FANCY is not set
# CONFIG_TEST is not set
# CONFIG_FEATURE_TEST_64 is not set
# CONFIG_TOUCH is not set
@ -195,6 +203,7 @@ CONFIG_GZIP_FAST=0
# CONFIG_TR is not set
# CONFIG_FEATURE_TR_CLASSES is not set
# CONFIG_FEATURE_TR_EQUIV is not set
# CONFIG_TRUNCATE is not set
# CONFIG_UNLINK is not set
# CONFIG_BASE64 is not set
# CONFIG_WHO is not set
@ -211,10 +220,6 @@ CONFIG_GZIP_FAST=0
# CONFIG_CP is not set
# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
# CONFIG_CUT is not set
# CONFIG_DD is not set
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
# CONFIG_FEATURE_DD_IBS_OBS is not set
# CONFIG_DF is not set
# CONFIG_FEATURE_DF_FANCY is not set
# CONFIG_DIRNAME is not set
@ -283,7 +288,6 @@ CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_STAT_FORMAT is not set
# CONFIG_STTY is not set
# CONFIG_SUM is not set
# CONFIG_SYNC is not set
# CONFIG_TAC is not set
# CONFIG_TAIL is not set
# CONFIG_FEATURE_FANCY_TAIL is not set
@ -292,6 +296,7 @@ CONFIG_GZIP_FAST=0
# CONFIG_TRUE is not set
# CONFIG_TTY is not set
# CONFIG_UNAME is not set
CONFIG_UNAME_OSNAME=""
# CONFIG_UNEXPAND is not set
# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
# CONFIG_UNIQ is not set
@ -533,7 +538,18 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
# CONFIG_MOUNT is not set
# CONFIG_FEATURE_MOUNT_FAKE is not set
# CONFIG_FEATURE_MOUNT_VERBOSE is not set
# CONFIG_FEATURE_MOUNT_HELPERS is not set
# CONFIG_FEATURE_MOUNT_LABEL is not set
# CONFIG_FEATURE_MOUNT_NFS is not set
# CONFIG_FEATURE_MOUNT_CIFS is not set
# CONFIG_FEATURE_MOUNT_FLAGS is not set
# CONFIG_FEATURE_MOUNT_FSTAB is not set
# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
# CONFIG_REV is not set
# CONFIG_UEVENT is not set
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
# CONFIG_BLKID is not set
@ -579,15 +595,6 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_UUID is not set
# CONFIG_MORE is not set
# CONFIG_MOUNT is not set
# CONFIG_FEATURE_MOUNT_FAKE is not set
# CONFIG_FEATURE_MOUNT_VERBOSE is not set
# CONFIG_FEATURE_MOUNT_HELPERS is not set
# CONFIG_FEATURE_MOUNT_LABEL is not set
# CONFIG_FEATURE_MOUNT_NFS is not set
# CONFIG_FEATURE_MOUNT_CIFS is not set
# CONFIG_FEATURE_MOUNT_FLAGS is not set
# CONFIG_FEATURE_MOUNT_FSTAB is not set
# CONFIG_PIVOT_ROOT is not set
# CONFIG_RDATE is not set
# CONFIG_RDEV is not set
@ -636,10 +643,15 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_CROND_D is not set
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
CONFIG_FEATURE_CROND_DIR=""
# CONFIG_I2CGET is not set
# CONFIG_I2CSET is not set
# CONFIG_I2CDUMP is not set
# CONFIG_I2CDETECT is not set
# CONFIG_LESS is not set
CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_FEATURE_LESS_BRACKETS is not set
# CONFIG_FEATURE_LESS_FLAGS is not set
# CONFIG_FEATURE_LESS_TRUNCATE is not set
# CONFIG_FEATURE_LESS_MARKS is not set
# CONFIG_FEATURE_LESS_REGEXP is not set
# CONFIG_FEATURE_LESS_WINCH is not set
@ -734,6 +746,13 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0
# CONFIG_PING is not set
# CONFIG_PING6 is not set
# CONFIG_FEATURE_FANCY_PING is not set
# CONFIG_WGET is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set
# CONFIG_FEATURE_WGET_OPENSSL is not set
# CONFIG_FEATURE_WGET_SSL_HELPER is not set
# CONFIG_WHOIS is not set
# CONFIG_FEATURE_IPV6 is not set
# CONFIG_FEATURE_UNIX_LOCAL is not set
@ -795,6 +814,7 @@ CONFIG_IFUPDOWN_IFSTATE_PATH=""
# CONFIG_FEATURE_IP_ADDRESS is not set
# CONFIG_FEATURE_IP_LINK is not set
# CONFIG_FEATURE_IP_ROUTE is not set
CONFIG_FEATURE_IP_ROUTE_DIR=""
# CONFIG_FEATURE_IP_TUNNEL is not set
# CONFIG_FEATURE_IP_RULE is not set
# CONFIG_FEATURE_IP_SHORT_FORMS is not set
@ -857,11 +877,6 @@ CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
# CONFIG_UDPSVD is not set
# CONFIG_VCONFIG is not set
# CONFIG_WGET is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set
# CONFIG_ZCIP is not set
#

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.23.1
# Sat Feb 21 12:43:27 2015
# Busybox version: 1.24.0
# Tue Oct 13 14:35:18 2015
#
CONFIG_HAVE_DOT_CONFIG=y
@ -156,6 +156,7 @@ CONFIG_FEATURE_SEAMLESS_GZ=y
# CONFIG_GZIP is not set
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_GZIP_LEVELS is not set
# CONFIG_LZOP is not set
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
@ -183,10 +184,17 @@ CONFIG_CAT=y
# CONFIG_FEATURE_DATE_ISOFMT is not set
# CONFIG_FEATURE_DATE_NANO is not set
# CONFIG_FEATURE_DATE_COMPAT is not set
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_FEATURE_DD_STATUS=y
# CONFIG_HOSTID is not set
# CONFIG_ID is not set
# CONFIG_GROUPS is not set
# CONFIG_SHUF is not set
CONFIG_SYNC=y
CONFIG_FEATURE_SYNC_FANCY=y
# CONFIG_TEST is not set
CONFIG_FEATURE_TEST_64=y
# CONFIG_TOUCH is not set
@ -195,6 +203,7 @@ CONFIG_FEATURE_TEST_64=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
# CONFIG_TRUNCATE is not set
# CONFIG_UNLINK is not set
# CONFIG_BASE64 is not set
# CONFIG_WHO is not set
@ -211,10 +220,6 @@ CONFIG_CHROOT=y
CONFIG_CP=y
# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
# CONFIG_CUT is not set
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_DF=y
# CONFIG_FEATURE_DF_FANCY is not set
# CONFIG_DIRNAME is not set
@ -283,7 +288,6 @@ CONFIG_STAT=y
# CONFIG_FEATURE_STAT_FORMAT is not set
# CONFIG_STTY is not set
# CONFIG_SUM is not set
CONFIG_SYNC=y
# CONFIG_TAC is not set
CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
@ -292,6 +296,7 @@ CONFIG_FEATURE_FANCY_TAIL=y
# CONFIG_TRUE is not set
# CONFIG_TTY is not set
CONFIG_UNAME=y
CONFIG_UNAME_OSNAME="GNU/Linux"
# CONFIG_UNEXPAND is not set
# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
# CONFIG_UNIQ is not set
@ -549,7 +554,18 @@ CONFIG_FSTRIM=y
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
CONFIG_MOUNT=y
CONFIG_FEATURE_MOUNT_FAKE=y
# CONFIG_FEATURE_MOUNT_VERBOSE is not set
# CONFIG_FEATURE_MOUNT_HELPERS is not set
CONFIG_FEATURE_MOUNT_LABEL=y
CONFIG_FEATURE_MOUNT_NFS=y
# CONFIG_FEATURE_MOUNT_CIFS is not set
CONFIG_FEATURE_MOUNT_FLAGS=y
# CONFIG_FEATURE_MOUNT_FSTAB is not set
# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
# CONFIG_REV is not set
CONFIG_UEVENT=y
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
CONFIG_BLKID=y
@ -595,15 +611,6 @@ CONFIG_FEATURE_FBSET_READMODE=y
# CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_UUID is not set
# CONFIG_MORE is not set
CONFIG_MOUNT=y
CONFIG_FEATURE_MOUNT_FAKE=y
# CONFIG_FEATURE_MOUNT_VERBOSE is not set
# CONFIG_FEATURE_MOUNT_HELPERS is not set
CONFIG_FEATURE_MOUNT_LABEL=y
CONFIG_FEATURE_MOUNT_NFS=y
# CONFIG_FEATURE_MOUNT_CIFS is not set
CONFIG_FEATURE_MOUNT_FLAGS=y
# CONFIG_FEATURE_MOUNT_FSTAB is not set
CONFIG_PIVOT_ROOT=y
# CONFIG_RDATE is not set
# CONFIG_RDEV is not set
@ -660,10 +667,15 @@ CONFIG_FEATURE_VOLUMEID_XFS=y
# CONFIG_FEATURE_CROND_D is not set
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
CONFIG_FEATURE_CROND_DIR=""
# CONFIG_I2CGET is not set
# CONFIG_I2CSET is not set
# CONFIG_I2CDUMP is not set
# CONFIG_I2CDETECT is not set
# CONFIG_LESS is not set
CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_FEATURE_LESS_BRACKETS is not set
# CONFIG_FEATURE_LESS_FLAGS is not set
# CONFIG_FEATURE_LESS_TRUNCATE is not set
# CONFIG_FEATURE_LESS_MARKS is not set
# CONFIG_FEATURE_LESS_REGEXP is not set
# CONFIG_FEATURE_LESS_WINCH is not set
@ -758,6 +770,13 @@ CONFIG_NBDCLIENT=y
CONFIG_PING=y
# CONFIG_PING6 is not set
CONFIG_FEATURE_FANCY_PING=y
# CONFIG_WGET is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set
# CONFIG_FEATURE_WGET_OPENSSL is not set
# CONFIG_FEATURE_WGET_SSL_HELPER is not set
# CONFIG_WHOIS is not set
# CONFIG_FEATURE_IPV6 is not set
# CONFIG_FEATURE_UNIX_LOCAL is not set
@ -819,6 +838,7 @@ CONFIG_IFUPDOWN_IFSTATE_PATH=""
# CONFIG_FEATURE_IP_ADDRESS is not set
# CONFIG_FEATURE_IP_LINK is not set
# CONFIG_FEATURE_IP_ROUTE is not set
CONFIG_FEATURE_IP_ROUTE_DIR=""
# CONFIG_FEATURE_IP_TUNNEL is not set
# CONFIG_FEATURE_IP_RULE is not set
# CONFIG_FEATURE_IP_SHORT_FORMS is not set
@ -881,11 +901,6 @@ CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
# CONFIG_UDPSVD is not set
# CONFIG_VCONFIG is not set
# CONFIG_WGET is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set
# CONFIG_ZCIP is not set
#

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.23.2
# Sun Mar 29 18:55:47 2015
# Busybox version: 1.24.0
# Tue Oct 13 14:36:02 2015
#
CONFIG_HAVE_DOT_CONFIG=y
@ -156,6 +156,7 @@ CONFIG_FEATURE_CPIO_P=y
CONFIG_GZIP=y
CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
CONFIG_GZIP_FAST=0
CONFIG_FEATURE_GZIP_LEVELS=y
# CONFIG_LZOP is not set
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
@ -183,10 +184,17 @@ CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
CONFIG_FEATURE_DATE_NANO=y
CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_FEATURE_DD_STATUS=y
# CONFIG_HOSTID is not set
CONFIG_ID=y
CONFIG_GROUPS=y
# CONFIG_SHUF is not set
CONFIG_SYNC=y
CONFIG_FEATURE_SYNC_FANCY=y
# CONFIG_TEST is not set
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
@ -195,6 +203,7 @@ CONFIG_FEATURE_TOUCH_SUSV3=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
# CONFIG_TRUNCATE is not set
# CONFIG_UNLINK is not set
# CONFIG_BASE64 is not set
# CONFIG_WHO is not set
@ -211,10 +220,6 @@ CONFIG_CHROOT=y
CONFIG_CP=y
CONFIG_FEATURE_CP_LONG_OPTIONS=y
CONFIG_CUT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_DF=y
# CONFIG_FEATURE_DF_FANCY is not set
CONFIG_DIRNAME=y
@ -283,7 +288,6 @@ CONFIG_STAT=y
# CONFIG_FEATURE_STAT_FORMAT is not set
# CONFIG_STTY is not set
# CONFIG_SUM is not set
CONFIG_SYNC=y
# CONFIG_TAC is not set
CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
@ -292,6 +296,7 @@ CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
CONFIG_TRUE=y
# CONFIG_TTY is not set
CONFIG_UNAME=y
CONFIG_UNAME_OSNAME="GNU/Linux"
# CONFIG_UNEXPAND is not set
# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
CONFIG_UNIQ=y
@ -549,7 +554,18 @@ CONFIG_FSTRIM=y
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
CONFIG_MOUNT=y
CONFIG_FEATURE_MOUNT_FAKE=y
CONFIG_FEATURE_MOUNT_VERBOSE=y
CONFIG_FEATURE_MOUNT_HELPERS=y
CONFIG_FEATURE_MOUNT_LABEL=y
CONFIG_FEATURE_MOUNT_NFS=y
CONFIG_FEATURE_MOUNT_CIFS=y
CONFIG_FEATURE_MOUNT_FLAGS=y
# CONFIG_FEATURE_MOUNT_FSTAB is not set
# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
# CONFIG_REV is not set
CONFIG_UEVENT=y
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
# CONFIG_BLKID is not set
@ -595,15 +611,6 @@ CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
CONFIG_MKSWAP=y
CONFIG_FEATURE_MKSWAP_UUID=y
CONFIG_MORE=y
CONFIG_MOUNT=y
CONFIG_FEATURE_MOUNT_FAKE=y
CONFIG_FEATURE_MOUNT_VERBOSE=y
CONFIG_FEATURE_MOUNT_HELPERS=y
CONFIG_FEATURE_MOUNT_LABEL=y
CONFIG_FEATURE_MOUNT_NFS=y
CONFIG_FEATURE_MOUNT_CIFS=y
CONFIG_FEATURE_MOUNT_FLAGS=y
# CONFIG_FEATURE_MOUNT_FSTAB is not set
# CONFIG_PIVOT_ROOT is not set
CONFIG_RDATE=y
# CONFIG_RDEV is not set
@ -660,10 +667,15 @@ CONFIG_CROND=y
CONFIG_FEATURE_CROND_D=y
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
CONFIG_FEATURE_CROND_DIR="/storage/.cache/cron"
# CONFIG_I2CGET is not set
# CONFIG_I2CSET is not set
# CONFIG_I2CDUMP is not set
# CONFIG_I2CDETECT is not set
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
CONFIG_FEATURE_LESS_FLAGS=y
CONFIG_FEATURE_LESS_TRUNCATE=y
CONFIG_FEATURE_LESS_MARKS=y
CONFIG_FEATURE_LESS_REGEXP=y
CONFIG_FEATURE_LESS_WINCH=y
@ -758,6 +770,13 @@ CONFIG_NC_110_COMPAT=y
CONFIG_PING=y
CONFIG_PING6=y
CONFIG_FEATURE_FANCY_PING=y
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
CONFIG_FEATURE_WGET_LONG_OPTIONS=y
CONFIG_FEATURE_WGET_TIMEOUT=y
CONFIG_FEATURE_WGET_OPENSSL=y
CONFIG_FEATURE_WGET_SSL_HELPER=y
CONFIG_WHOIS=y
CONFIG_FEATURE_IPV6=y
# CONFIG_FEATURE_UNIX_LOCAL is not set
@ -819,6 +838,7 @@ CONFIG_IP=y
CONFIG_FEATURE_IP_ADDRESS=y
CONFIG_FEATURE_IP_LINK=y
CONFIG_FEATURE_IP_ROUTE=y
CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
CONFIG_FEATURE_IP_TUNNEL=y
# CONFIG_FEATURE_IP_RULE is not set
# CONFIG_FEATURE_IP_SHORT_FORMS is not set
@ -881,11 +901,6 @@ CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
# CONFIG_UDPSVD is not set
CONFIG_VCONFIG=y
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
CONFIG_FEATURE_WGET_LONG_OPTIONS=y
CONFIG_FEATURE_WGET_TIMEOUT=y
# CONFIG_ZCIP is not set
#

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="busybox"
PKG_VERSION="1.23.2"
PKG_VERSION="1.24.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -1,12 +1,12 @@
diff -Naur busybox-1.17.3-old/scripts/trylink busybox-1.17.3-new/scripts/trylink
--- busybox-1.17.3-old/scripts/trylink 2010-09-16 16:05:35.000000000 -0700
+++ busybox-1.17.3-new/scripts/trylink 2010-10-10 07:38:03.000000000 -0700
diff -Naur busybox-1.24.0/scripts/trylink busybox-1.24.0.patch/scripts/trylink
--- busybox-1.24.0/scripts/trylink 2015-10-12 14:37:58.000000000 +0200
+++ busybox-1.24.0.patch/scripts/trylink 2015-10-13 18:49:50.537508072 +0200
@@ -49,7 +49,7 @@
local tempname="/tmp/temp.$$.$RANDOM"
local tempname="$(mktemp)"
# Can use "-o /dev/null", but older gcc tend to *unlink it* on failure! :(
# "-xc": C language. "/dev/null" is an empty source file.
- if $CC $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
+ if $CC $CFLAGS $LDFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
- if $CC $CPPFLAGS $CFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
+ if $CC $CPPFLAGS $CFLAGS $LDFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
echo "$1";
else
echo "$2";

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bcm2835-bootloader"
PKG_VERSION="960832a"
PKG_VERSION="ba7a8fb"
PKG_REV="1"
PKG_ARCH="arm"
PKG_LICENSE="nonfree"

View File

@ -25,7 +25,7 @@
# there: http://forum.xbmc.org/showthread.php?tid=177557
PKG_NAME="curl"
PKG_VERSION="7.44.0"
PKG_VERSION="7.45.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="MIT"

View File

@ -5,7 +5,8 @@ ConditionKernelCommandLine=console
[Service]
WorkingDirectory=/storage
ExecStart=/bin/sh -c '. /etc/profile; exec /bin/sh'
Environment="ENV=/etc/profile"
ExecStart=/bin/sh
Restart=always
RestartSec=0
StandardInput=tty

View File

@ -5720,217 +5720,6 @@ index f6c8df0..5c2b583 100644
#endif
From 958d47339a2427b66568fe7c2ea69831f111742a Mon Sep 17 00:00:00 2001
From: Roman Kraevskiy <rkraevskiy@gmail.com>
Date: Fri, 10 Jul 2015 23:36:34 +0300
Subject: [PATCH 059/100] Mouse wheel support for X11-less linux distros
(openelec)
---
xbmc/input/linux/LinuxInputDevices.cpp | 125 +++++++++++++++++++++------------
xbmc/input/linux/LinuxInputDevices.h | 2 +
2 files changed, 82 insertions(+), 45 deletions(-)
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index 32a3b46..b028cd1 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -558,22 +558,27 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev
*/
bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& devt)
{
+ bool motion = false;
+ bool wheel = false;
+
switch (levt.code)
{
case REL_X:
m_mouseX += levt.value;
devt.motion.xrel = levt.value;
devt.motion.yrel = 0;
+ motion = true;
break;
-
case REL_Y:
m_mouseY += levt.value;
devt.motion.xrel = 0;
devt.motion.yrel = levt.value;
+ motion = true;
break;
-
- case REL_Z:
case REL_WHEEL:
+ wheel = (levt.value != 0); // process wheel event only when there was some delta
+ break;
+ case REL_Z:
default:
CLog::Log(LOGWARNING, "CLinuxInputDevice::RelEvent: Unknown rel event code: %d\n", levt.code);
return false;
@@ -588,13 +593,35 @@ bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& dev
m_mouseY = std::max(0, m_mouseY);
- devt.type = XBMC_MOUSEMOTION;
- devt.motion.type = XBMC_MOUSEMOTION;
- devt.motion.x = m_mouseX;
- devt.motion.y = m_mouseY;
- devt.motion.state = 0;
- devt.motion.which = m_deviceIndex;
-
+ if (motion)
+ {
+ devt.type = XBMC_MOUSEMOTION;
+ devt.motion.type = XBMC_MOUSEMOTION;
+ devt.motion.x = m_mouseX;
+ devt.motion.y = m_mouseY;
+ devt.motion.state = 0;
+ devt.motion.which = m_deviceIndex;
+ }
+ else if (wheel)
+ {
+ devt.type = XBMC_MOUSEBUTTONUP;
+ devt.button.state = XBMC_RELEASED;
+ devt.button.type = devt.type;
+ devt.button.x = m_mouseX;
+ devt.button.y = m_mouseY;
+ devt.button.button = (levt.value<0) ? XBMC_BUTTON_WHEELDOWN:XBMC_BUTTON_WHEELUP;
+
+ /* but WHEEL up enent to the queue */
+ m_equeue.push_back(devt);
+
+ /* prepare and return WHEEL down event */
+ devt.button.state = XBMC_PRESSED;
+ devt.type = XBMC_MOUSEBUTTONDOWN;
+ }
+ else
+ {
+ return false;
+ }
return true;
}
@@ -693,57 +720,65 @@ XBMC_Event CLinuxInputDevice::ReadEvent()
XBMC_Event devt;
- while (1)
+ if (m_equeue.empty())
{
- bzero(&levt, sizeof(levt));
+ while (1)
+ {
+ bzero(&levt, sizeof(levt));
- bzero(&devt, sizeof(devt));
- devt.type = XBMC_NOEVENT;
+ bzero(&devt, sizeof(devt));
+ devt.type = XBMC_NOEVENT;
- if(m_devicePreferredId == LI_DEVICE_NONE)
- return devt;
+ if(m_devicePreferredId == LI_DEVICE_NONE)
+ return devt;
- readlen = read(m_fd, &levt, sizeof(levt));
+ readlen = read(m_fd, &levt, sizeof(levt));
- if (readlen <= 0)
- {
- if (errno == ENODEV)
+ if (readlen <= 0)
{
- CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
- m_bUnplugged = true;
+ if (errno == ENODEV)
+ {
+ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
+ m_bUnplugged = true;
+ }
+
+ break;
}
- break;
- }
+ //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
- //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
+ // sanity check if we realy read the event
+ if(readlen != sizeof(levt))
+ {
+ printf("CLinuxInputDevice: read error : %s\n", strerror(errno));
+ break;
+ }
- // sanity check if we realy read the event
- if(readlen != sizeof(levt))
- {
- printf("CLinuxInputDevice: read error : %s\n", strerror(errno));
- break;
- }
+ if (!TranslateEvent(levt, devt))
+ continue;
- if (!TranslateEvent(levt, devt))
- continue;
+ /* Flush previous event with DIEF_FOLLOW? */
+ if (devt.type != XBMC_NOEVENT)
+ {
+ //printf("new event! type = %d\n", devt.type);
+ //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode);
- /* Flush previous event with DIEF_FOLLOW? */
- if (devt.type != XBMC_NOEVENT)
- {
- //printf("new event! type = %d\n", devt.type);
- //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode);
+ if (m_hasLeds && (m_keyMods != m_lastKeyMods))
+ {
+ SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM);
+ SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS);
+ m_lastKeyMods = m_keyMods;
+ }
- if (m_hasLeds && (m_keyMods != m_lastKeyMods))
- {
- SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM);
- SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS);
- m_lastKeyMods = m_keyMods;
+ break;
}
-
- break;
}
}
+ else
+ {
+ devt = m_equeue.front();
+ m_equeue.pop_front();
+ }
return devt;
}
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
index cf1c5ce..954d823 100644
--- a/xbmc/input/linux/LinuxInputDevices.h
+++ b/xbmc/input/linux/LinuxInputDevices.h
@@ -22,6 +22,7 @@
#include <vector>
#include <string>
+#include <deque>
#include "windowing/XBMC_events.h"
#include "input/XBMC_keyboard.h"
#include "threads/SingleLock.h"
@@ -79,6 +80,7 @@ class CLinuxInputDevice
int m_deviceMaxAxis;
bool m_bSkipNonKeyEvents;
bool m_bUnplugged;
+ std::deque<XBMC_Event> m_equeue;
};
class CLinuxInputDevices
From 73f943c955674662396b11be531b060e48e4c47f Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 22 Jun 2015 22:06:53 +0100

View File

@ -0,0 +1,29 @@
From a68c7ca33ce0a3aa20caf3eb235e11d489e1fd5b Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 11 Oct 2015 20:55:35 +0100
Subject: [PATCH] Revert "Revert "Disable extra logging by default""
This reverts commit a880554325be187b877cd8f0e2b338e7267da636.
---
system/settings/settings.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index f1cbefa..b1b2ced 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -2917,12 +2917,12 @@
</setting>
<setting id="debug.extralogging" type="boolean" label="666" help="36394">
<level>1</level>
- <default>true</default>
+ <default>false</default>
<control type="toggle" />
</setting>
<setting id="debug.setextraloglevel" type="list[integer]" parent="debug.extralogging" label="668" help="36534">
<level>1</level>
- <default>32768</default>
+ <default></default>
<constraints>
<options>loggingcomponents</options>
<delimiter>,</delimiter>

View File

@ -5,7 +5,8 @@ ConditionKernelCommandLine=console
[Service]
WorkingDirectory=/storage
ExecStart=/bin/sh -c '. /etc/profile; exec /bin/sh'
Environment="ENV=/etc/profile"
ExecStart=/bin/sh
Restart=always
RestartSec=0
StandardInput=tty

View File

@ -5720,217 +5720,6 @@ index f6c8df0..5c2b583 100644
#endif
From 958d47339a2427b66568fe7c2ea69831f111742a Mon Sep 17 00:00:00 2001
From: Roman Kraevskiy <rkraevskiy@gmail.com>
Date: Fri, 10 Jul 2015 23:36:34 +0300
Subject: [PATCH 059/100] Mouse wheel support for X11-less linux distros
(openelec)
---
xbmc/input/linux/LinuxInputDevices.cpp | 125 +++++++++++++++++++++------------
xbmc/input/linux/LinuxInputDevices.h | 2 +
2 files changed, 82 insertions(+), 45 deletions(-)
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index 32a3b46..b028cd1 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -558,22 +558,27 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev
*/
bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& devt)
{
+ bool motion = false;
+ bool wheel = false;
+
switch (levt.code)
{
case REL_X:
m_mouseX += levt.value;
devt.motion.xrel = levt.value;
devt.motion.yrel = 0;
+ motion = true;
break;
-
case REL_Y:
m_mouseY += levt.value;
devt.motion.xrel = 0;
devt.motion.yrel = levt.value;
+ motion = true;
break;
-
- case REL_Z:
case REL_WHEEL:
+ wheel = (levt.value != 0); // process wheel event only when there was some delta
+ break;
+ case REL_Z:
default:
CLog::Log(LOGWARNING, "CLinuxInputDevice::RelEvent: Unknown rel event code: %d\n", levt.code);
return false;
@@ -588,13 +593,35 @@ bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& dev
m_mouseY = std::max(0, m_mouseY);
- devt.type = XBMC_MOUSEMOTION;
- devt.motion.type = XBMC_MOUSEMOTION;
- devt.motion.x = m_mouseX;
- devt.motion.y = m_mouseY;
- devt.motion.state = 0;
- devt.motion.which = m_deviceIndex;
-
+ if (motion)
+ {
+ devt.type = XBMC_MOUSEMOTION;
+ devt.motion.type = XBMC_MOUSEMOTION;
+ devt.motion.x = m_mouseX;
+ devt.motion.y = m_mouseY;
+ devt.motion.state = 0;
+ devt.motion.which = m_deviceIndex;
+ }
+ else if (wheel)
+ {
+ devt.type = XBMC_MOUSEBUTTONUP;
+ devt.button.state = XBMC_RELEASED;
+ devt.button.type = devt.type;
+ devt.button.x = m_mouseX;
+ devt.button.y = m_mouseY;
+ devt.button.button = (levt.value<0) ? XBMC_BUTTON_WHEELDOWN:XBMC_BUTTON_WHEELUP;
+
+ /* but WHEEL up enent to the queue */
+ m_equeue.push_back(devt);
+
+ /* prepare and return WHEEL down event */
+ devt.button.state = XBMC_PRESSED;
+ devt.type = XBMC_MOUSEBUTTONDOWN;
+ }
+ else
+ {
+ return false;
+ }
return true;
}
@@ -693,57 +720,65 @@ XBMC_Event CLinuxInputDevice::ReadEvent()
XBMC_Event devt;
- while (1)
+ if (m_equeue.empty())
{
- bzero(&levt, sizeof(levt));
+ while (1)
+ {
+ bzero(&levt, sizeof(levt));
- bzero(&devt, sizeof(devt));
- devt.type = XBMC_NOEVENT;
+ bzero(&devt, sizeof(devt));
+ devt.type = XBMC_NOEVENT;
- if(m_devicePreferredId == LI_DEVICE_NONE)
- return devt;
+ if(m_devicePreferredId == LI_DEVICE_NONE)
+ return devt;
- readlen = read(m_fd, &levt, sizeof(levt));
+ readlen = read(m_fd, &levt, sizeof(levt));
- if (readlen <= 0)
- {
- if (errno == ENODEV)
+ if (readlen <= 0)
{
- CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
- m_bUnplugged = true;
+ if (errno == ENODEV)
+ {
+ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
+ m_bUnplugged = true;
+ }
+
+ break;
}
- break;
- }
+ //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
- //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
+ // sanity check if we realy read the event
+ if(readlen != sizeof(levt))
+ {
+ printf("CLinuxInputDevice: read error : %s\n", strerror(errno));
+ break;
+ }
- // sanity check if we realy read the event
- if(readlen != sizeof(levt))
- {
- printf("CLinuxInputDevice: read error : %s\n", strerror(errno));
- break;
- }
+ if (!TranslateEvent(levt, devt))
+ continue;
- if (!TranslateEvent(levt, devt))
- continue;
+ /* Flush previous event with DIEF_FOLLOW? */
+ if (devt.type != XBMC_NOEVENT)
+ {
+ //printf("new event! type = %d\n", devt.type);
+ //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode);
- /* Flush previous event with DIEF_FOLLOW? */
- if (devt.type != XBMC_NOEVENT)
- {
- //printf("new event! type = %d\n", devt.type);
- //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode);
+ if (m_hasLeds && (m_keyMods != m_lastKeyMods))
+ {
+ SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM);
+ SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS);
+ m_lastKeyMods = m_keyMods;
+ }
- if (m_hasLeds && (m_keyMods != m_lastKeyMods))
- {
- SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM);
- SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS);
- m_lastKeyMods = m_keyMods;
+ break;
}
-
- break;
}
}
+ else
+ {
+ devt = m_equeue.front();
+ m_equeue.pop_front();
+ }
return devt;
}
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
index cf1c5ce..954d823 100644
--- a/xbmc/input/linux/LinuxInputDevices.h
+++ b/xbmc/input/linux/LinuxInputDevices.h
@@ -22,6 +22,7 @@
#include <vector>
#include <string>
+#include <deque>
#include "windowing/XBMC_events.h"
#include "input/XBMC_keyboard.h"
#include "threads/SingleLock.h"
@@ -79,6 +80,7 @@ class CLinuxInputDevice
int m_deviceMaxAxis;
bool m_bSkipNonKeyEvents;
bool m_bUnplugged;
+ std::deque<XBMC_Event> m_equeue;
};
class CLinuxInputDevices
From 73f943c955674662396b11be531b060e48e4c47f Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 22 Jun 2015 22:06:53 +0100

View File

@ -0,0 +1,29 @@
From a68c7ca33ce0a3aa20caf3eb235e11d489e1fd5b Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 11 Oct 2015 20:55:35 +0100
Subject: [PATCH] Revert "Revert "Disable extra logging by default""
This reverts commit a880554325be187b877cd8f0e2b338e7267da636.
---
system/settings/settings.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index f1cbefa..b1b2ced 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -2917,12 +2917,12 @@
</setting>
<setting id="debug.extralogging" type="boolean" label="666" help="36394">
<level>1</level>
- <default>true</default>
+ <default>false</default>
<control type="toggle" />
</setting>
<setting id="debug.setextraloglevel" type="list[integer]" parent="debug.extralogging" label="668" help="36534">
<level>1</level>
- <default>32768</default>
+ <default></default>
<constraints>
<options>loggingcomponents</options>
<delimiter>,</delimiter>