Compare commits

...

51 Commits

Author SHA1 Message Date
MilhouseVH
e882c649fe Merge pull request #2344 from chewitt/version
config: set version to 8.2.2
2017-12-21 18:50:06 +00:00
Christian Hewitt
a09b8ea227 Merge pull request #2342 from wrxtasy/C2_Blue_LED
projects/Odroid_C2: Turn off annoying blue flashing LED on boot
2017-12-21 09:26:34 +04:00
chewitt
3c6b246da1 config: set version to 8.2.2 2017-12-21 04:20:42 +00:00
wrxtasy
0dc0085d12 projects/Odroid_C2: Turn off annoying blue flashing LED on boot 2017-12-21 11:57:29 +08:00
Christian Hewitt
501d64503f Merge pull request #2326 from shaun2029/libreelec-8.2
ffmpeg: fix for 3D ISO not playing properly
2017-12-21 06:41:58 +04:00
Shaun2029
ce9deb7aa7 Fixes: Libreelec 8.2.0.1 Rpi3 3D iso not playing properly
This amends commit b27b2a9 with omited MVC parser code for ffmpeg-99.1003-pfcd_hevc_optimisations.patch
2017-12-15 18:12:22 +00:00
Christian Hewitt
0ddf2aa42e Merge pull request #2312 from MilhouseVH/le82_systemd_tempfiles_fix
tz-data: adjust dependency so that it doesn't create /var/run [backport]
2017-12-11 06:16:00 +04:00
MilhouseVH
1951715877 tz-data: adjust dependency so that it doesn't create /var/run
as this prevents the /var/run -> /run sym link from being created.
2017-12-10 20:27:50 +00:00
Christian Hewitt
83282b6af0 Merge pull request #2294 from awiouy/82-lsfix
Backport of #2293
2017-12-07 06:52:52 +04:00
awiouy
d019b64b78 librespot: fix default.py, move fifo to /var/run/librespot 2017-12-06 22:49:46 +01:00
Christian Hewitt
fb3975758f Merge pull request #2290 from mglae/squeezelite_le82
multimedia-tools: squeezelite: support all possible media formats
2017-12-06 06:36:38 +04:00
mglae
2b3c251900 multimedia-tools: squeezelite: support all possible media formats 2017-12-06 00:28:29 +01:00
Christian Hewitt
332ab42cc7 Merge pull request #2283 from HiassofT/le82-irctl
[8.2] v4l-utils: fix sending scancodes with ir-ctl
2017-12-01 23:01:16 +04:00
Matthias Reichl
9ab6b71716 v4l-utils: fix sending scancodes with ir-ctl
- fix sending multiple scancodes with configurable gap
- fix sending rc6 scancodes on 32bit platforms

Patches are backported from v4l-utils master branch

Signed-off-by: Matthias Reichl <hias@horus.com>
2017-12-01 10:08:47 +01:00
Christian Hewitt
469f1829c1 Merge pull request #2231 from CvH/8.2-pcscd
PC/SC Smart Card Daemon
2017-11-30 18:33:46 +04:00
Christian Hewitt
ec759de239 Merge pull request #2273 from samnazarko/le8.2-osmcrf-backport
eventlircd: add support for OSMC 2nd generation remote
2017-11-29 06:42:41 +04:00
Sam Nazarko
18581f3006 eventlircd: add support for OSMC 2nd generation remote
Signed-off-by: Sam Nazarko <email@samnazarko.co.uk>
2017-11-28 12:12:15 +00:00
Christian Hewitt
2a5e229a20 Merge pull request #2274 from codesnake/set_version_devel_le82
[LE 8.2] config: Set version to devel
2017-11-28 06:32:06 +04:00
Alex Deryskyba
c3b52d6284 config: Set version to devel 2017-11-28 02:01:05 +02:00
Christian Hewitt
fd8aa6610d Merge pull request #2252 from codesnake/wetek_core_update_uboot_recovery_le82
[LE 8.2] WeTek_Core: Update bootloader, logo and recovery images
2017-11-24 19:39:44 +04:00
Alex Deryskyba
57afce6129 WeTek_Core: Update bootloader and logo images
Adds dual-boot feature.
2017-11-24 16:01:38 +02:00
Alex Deryskyba
110ea515dc WeTek_Core: Update recovery and updater images
Fixes an issue when LibreELEC fails to boot after installation
with a message "sh: can't access tty; job control turned off".
2017-11-24 16:01:31 +02:00
MilhouseVH
ec446e21ef Merge pull request #2224 from chewitt/kodi-176
kodi: changes for Krypton 17.6
2017-11-20 04:32:24 +00:00
chewitt
c7d8093c6b config: set version to 8.2.1 2017-11-19 13:24:32 +00:00
chewitt
ba0a2ec358 util-linux: fix typo in blkid patch 2017-11-19 13:24:32 +00:00
chewitt
07aa491253 glibc: fix perl 2017-11-19 13:24:32 +00:00
chewitt
00437c4c8d samba: update to 4.6.10 2017-11-19 13:24:32 +00:00
chewitt
2509ccd743 kodi: changes for smb minprotocol and legacysecurity 2017-11-19 13:24:32 +00:00
chewitt
4d9caffbe4 kodi: udpate to 17.6 final 2017-11-19 13:24:32 +00:00
chewitt
e39892557d kodi: bump peripheral.joystick for 17.6 2017-11-19 13:24:32 +00:00
cvh
e347b69d0e pcscd: initial addon 2017-11-17 13:02:39 +01:00
cvh
f20200dad3 pcsc-lite: update to 1.8.22 2017-11-17 13:02:38 +01:00
cvh
cb7c0c9361 ccid: initial package 2017-11-17 13:02:37 +01:00
Celedhrim
4ca25d29a7 net-snmp: backport updates from master 2017-11-16 17:03:45 +04:00
MilhouseVH
2dab8326c4 Merge pull request #2207 from chewitt/tz-82
tzdata: update timezone data to 2017c
2017-11-13 02:04:12 +00:00
chewitt
169ebdb762 tzdata: update timezone data to 2017c 2017-11-12 06:13:56 +00:00
Christian Hewitt
fcfa9a9d9c Merge pull request #2185 from vpeter4/touch82
touchscreen: fix addon version
2017-11-09 21:45:44 +04:00
Christian Hewitt
ed3ea1d53d Merge pull request #2192 from awiouy/8.2-mono-5.4.1
mono: update to 5.4.1.6
2017-11-09 21:44:41 +04:00
Christian Hewitt
de9a2ba961 Merge pull request #2189 from HiassofT/le82-appleir
[LE8.2] macmini IR wakeup-from-suspend fixes
2017-11-09 21:43:52 +04:00
Christian Hewitt
a24745c9be Merge pull request #2194 from HiassofT/le82-samba-file-exists
[LE8.2] samba: fix misleading "file exists" message on login error
2017-11-09 21:38:15 +04:00
Matthias Reichl
bad81a508e samba: fix misleading "file exists" message on login error
Signed-off-by: Matthias Reichl <hias@horus.com>
2017-11-09 14:25:49 +01:00
awiouy
bfa4e8d74b mono: update to 5.4.1.6 2017-11-09 13:36:22 +01:00
Matthias Reichl
d2a7c9c5d2 atvclient: enable wakeup by Apple IR remote
Signed-off-by: Matthias Reichl <hias@horus.com>
2017-11-09 09:13:17 +01:00
Matthias Reichl
24fb463fda Generic: compile appleir driver as module
Signed-off-by: Matthias Reichl <hias@horus.com>
2017-11-09 09:13:17 +01:00
MilhouseVH
63f25a2f8a Merge pull request #2187 from chewitt/addons
kodi: bump pvr.dvbviewr and inputstream.adaptive
2017-11-09 04:32:28 +00:00
chewitt
c9695b5868 kodi: bump pvr.dvbviewer and inputstream.adaptive 2017-11-09 02:49:12 +00:00
Peter Vicman
aade987f76 touchscreen: fix addon version
from version="8.2.100.100" to version="8.2.100"
2017-11-07 15:21:14 +01:00
Radostan Riedel
d8f951533a Merge pull request #2148 from vpeter4/sundtek-82
sundtek-mediatv: support new driver version ...
2017-11-02 08:16:14 +01:00
Matthias Reichl
f840cb7ecf Merge pull request #2165 from chewitt/stuff
config: set version to devel
2017-10-30 09:02:00 +01:00
chewitt
b384e473b5 config: set version to devel 2017-10-30 05:44:13 +00:00
Peter Vicman
5d50feac62 sundtek-mediatv: support new driver version (different output from mediaclient) 2017-10-26 11:01:53 +02:00
53 changed files with 1035 additions and 77 deletions

View File

@@ -1,5 +1,5 @@
# VERSION: set full version, use "devel" for development version # VERSION: set full version, use "devel" for development version
LIBREELEC_VERSION="8.2.0.1" LIBREELEC_VERSION="8.2.2"
# OS_VERSION: OS Version # OS_VERSION: OS Version
OS_VERSION="8.2" OS_VERSION="8.2"

View File

@@ -0,0 +1,37 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2017-present Team LibreELEC
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="ccid"
PKG_VERSION="1.4.28"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://pcsclite.alioth.debian.org/ccid.html"
PKG_URL="https://alioth.debian.org/frs/download.php/latestfile/112/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_DEPENDS_TARGET="toolchain pcsc-lite"
PKG_SECTION="driver"
PKG_SHORTDESC="CCID free software driver"
PKG_LONGDESC="CCID free software driver"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --enable-twinserial"
make_target() {
make
make -C src/ Info.plist
}

View File

@@ -1,6 +1,6 @@
################################################################################ ################################################################################
# This file is part of LibreELEC - https://libreelec.tv # This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC # Copyright (C) 2016-present Team LibreELEC
# #
# LibreELEC is free software: you can redistribute it and/or modify # LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -17,12 +17,12 @@
################################################################################ ################################################################################
PKG_NAME="squeezelite" PKG_NAME="squeezelite"
PKG_VERSION="a3d95ec" PKG_VERSION="e92c09c"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPLv3" PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/ralph-irving/squeezelite" PKG_SITE="https://github.com/ralph-irving/squeezelite"
PKG_URL="https://github.com/ralph-irving/squeezelite/archive/$PKG_VERSION.tar.gz" PKG_URL="https://github.com/ralph-irving/squeezelite/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain faad2 ffmpeg flac libmad libvorbis mpg123 soxr" PKG_DEPENDS_TARGET="toolchain faad2 ffmpeg flac libmad libvorbis mpg123 soxr libogg"
PKG_SECTION="tools" PKG_SECTION="tools"
PKG_SHORTDESC="squeezelite" PKG_SHORTDESC="squeezelite"
PKG_LONGDESC="A client for the Logitech Media Server" PKG_LONGDESC="A client for the Logitech Media Server"
@@ -31,9 +31,9 @@ PKG_IS_ADDON="no"
PKG_AUTORECONF="no" PKG_AUTORECONF="no"
pre_make_target() { pre_make_target() {
OPTS="-DDSD -DFFMPEG -DRESAMPLE -DVISEXPORT" OPTS="-DDSD -DFFMPEG -DRESAMPLE -DVISEXPORT -DLINKALL"
CFLAGS="$CFLAGS $OPTS" CFLAGS="$CFLAGS $OPTS"
LDFLAGS="$LDFLAGS -lasound -lpthread -lm -lrt -lFLAC -lmad -lvorbisfile -lfaad -lmpg123" LDFLAGS="$LDFLAGS -lasound -lpthread -lm -lrt -lFLAC -lmad -lvorbisfile -lfaad -lmpg123 -lvorbis -logg"
} }
makeinstall_target() { makeinstall_target() {

View File

@@ -1,6 +1,6 @@
################################################################################ ################################################################################
# This file is part of LibreELEC - https://LibreELEC.tv # This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC # Copyright (C) 2016-present Team LibreELEC
# #
# LibreELEC is free software: you can redistribute it and/or modify # LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -17,21 +17,19 @@
################################################################################ ################################################################################
PKG_NAME="pcsc-lite" PKG_NAME="pcsc-lite"
PKG_VERSION="1.8.16" PKG_VERSION="1.8.22"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://pcsclite.alioth.debian.org/pcsclite.html" PKG_SITE="http://pcsclite.alioth.debian.org/pcsclite.html"
PKG_URL="https://alioth.debian.org/frs/download.php/file/4164/${PKG_NAME}-${PKG_VERSION}.tar.bz2" PKG_URL="https://alioth.debian.org/frs/download.php/latestfile/39/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_DEPENDS_TARGET="toolchain libusb" PKG_DEPENDS_TARGET="toolchain libusb"
PKG_SECTION="service/system" PKG_SECTION="service/system"
PKG_SHORTDESC="Middleware to access a smart card using SCard API (PC/SC)" PKG_SHORTDESC="Middleware to access a smart card using SCard API (PC/SC)"
PKG_LONGDESC="Middleware to access a smart card using SCard API (PC/SC)" PKG_LONGDESC="Middleware to access a smart card using SCard API (PC/SC)"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no" PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_TARGET="--disable-shared \ PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
--enable-static \ --enable-static \
--disable-libudev \ --disable-libudev \
--enable-libusb \ --enable-libusb \
--enable-usbdropdir=/storage/.kodi/addons/service.system.pcscd-addon/drivers" --enable-usbdropdir=/storage/.kodi/addons/service.pcscd/drivers"

View File

@@ -1,3 +1,7 @@
104
- use new output from mediaclient
use xmlstartlet to parse settings.xml file
103 103
- once a serial number is in config file then ir_disabled parameter - once a serial number is in config file then ir_disabled parameter
needs to be localized below it (it is not global parameter anymore) needs to be localized below it (it is not global parameter anymore)

View File

@@ -18,7 +18,7 @@
PKG_NAME="sundtek-mediatv" PKG_NAME="sundtek-mediatv"
PKG_VERSION="7.0" PKG_VERSION="7.0"
PKG_REV="103" PKG_REV="104"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="nonfree" PKG_LICENSE="nonfree"
PKG_SITE="http://support.sundtek.com/" PKG_SITE="http://support.sundtek.com/"

View File

@@ -67,7 +67,15 @@ fi
[ ! -f $SUNDTEK_ADDON_HOME/rc_key_ok.map ] && mv $SUNDTEK_ADDON_HOME/rc_key_ok $SUNDTEK_ADDON_HOME/rc_key_ok.map [ ! -f $SUNDTEK_ADDON_HOME/rc_key_ok.map ] && mv $SUNDTEK_ADDON_HOME/rc_key_ok $SUNDTEK_ADDON_HOME/rc_key_ok.map
mkdir -p /var/config mkdir -p /var/config
cat "$SUNDTEK_ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf
# check settings version
XML_SETTINGS_VER="$(xmlstarlet sel -t -m settings -v @version $SUNDTEK_ADDON_SETTINGS)"
if [ "$XML_SETTINGS_VER" = "2" ]; then
xmlstarlet sel -t -m settings/setting -v @id -o "=\"" -v . -o "\"" -n "$SUNDTEK_ADDON_SETTINGS" > /var/config/sundtek-addon.conf
else
xmlstarlet sel -t -m settings -m setting -v @id -o "=\"" -v @value -o "\"" -n "$SUNDTEK_ADDON_SETTINGS" > /var/config/sundtek-addon.conf
fi
. /var/config/sundtek-addon.conf . /var/config/sundtek-addon.conf
# check if there is new driver on web # check if there is new driver on web
@@ -186,7 +194,7 @@ if [ -z "$(pidof mediasrv)" ]; then
KEYMAP=$(eval echo \$ATTACHED_TUNER_${SERIAL}_KEYMAP) KEYMAP=$(eval echo \$ATTACHED_TUNER_${SERIAL}_KEYMAP)
if [ "$DVBMODE" = "DVB-T" ]; then if [ "$DVBMODE" = "DVB-T" ]; then
# only set DVB-T because default is DVB-C (and DVB-S is not set either) # only set DVB-T because default is DVB-C (and DVB-S/S2 is not set either)
DVBMODE="DVBT" DVBMODE="DVBT"
else else
DVBMODE="" DVBMODE=""

View File

@@ -77,7 +77,7 @@ def get_devices_sundtek(mediaclient_e):
str = line.strip() str = line.strip()
if str.startswith('device '): if str.startswith('device '):
name = str[str.find("[")+1:str.find("]")] name = str[str.find("[")+1:str.find("]")]
tuners.append([name, 0, 's']) tuners.append([name, 0, []])
if str.startswith('[SERIAL]:'): if str.startswith('[SERIAL]:'):
line = p.readline() line = p.readline()
@@ -85,20 +85,31 @@ def get_devices_sundtek(mediaclient_e):
if str.startswith('ID:'): if str.startswith('ID:'):
id = str.split(':'); id = str.split(':');
id = id[1].strip() id = id[1].strip()
tuners[len(tuners)-1] = [name, id, 's'] tuners[len(tuners)-1][1] = id
if str.startswith('[DVB'):
types_arr = tuners[len(tuners)-1][2]
str = str.translate(None, '[]:')
types = str.split(",")
for i in range(len(types)):
if types[i] == 'DVB-C':
types_arr.append('c')
elif types[i] == 'DVB-T':
types_arr.append('t')
elif types[i] == 'DVB-T2':
types_arr.append('t2')
elif types[i] == 'DVB-S/S2':
types_arr.append('s')
tuners[len(tuners)-1][2] = types_arr
if str.startswith('[DVB-C]:'):
tuners[len(tuners)-1] = [name, id, 'c']
elif str.startswith('[DVB-T]:'):
tuners[len(tuners)-1] = [name, id, 'c']
elif str.startswith('[DVB-T2]:'):
tuners[len(tuners)-1] = [name, id, 'c']
except IOError: except IOError:
print 'Error getting sundtek tuners info' print 'Error getting sundtek tuners info'
return tuners return tuners
""" """
root ~ # mediaclient -e root ~ # mediaclient -e
**** List of Media Hardware Devices **** **** List of Media Hardware Devices ****
device 0: [Sundtek MediaTV Pro (USB 2.0)] DVB-C, DVB-T, ANALOG-TV, FM-RADIO, REMOTE-CONTROL, OSS-AUDIO, RDS device 0: [Sundtek MediaTV Pro (USB 2.0)] DVB-C, DVB-T, ANALOG-TV, FM-RADIO, REMOTE-CONTROL, OSS-AUDIO, RDS
[BUS]: [BUS]:
@@ -123,6 +134,21 @@ device 0: [Sundtek MediaTV Pro (USB 2.0)] DVB-C, DVB-T, ANALOG-TV, FM-RADIO, RE
INPUT0: /dev/mediainput0 INPUT0: /dev/mediainput0
[OSS]: [OSS]:
OSS0: /dev/dsp0 OSS0: /dev/dsp0
**** List of Media Hardware Devices ****
device 0: [MediaTV Digital Home III (EU)] DVB-C, DVB-T, DVB-T2, REMOTE-CONTROL
[INFO]:
STATUS: STANDBY
[BUS]:
ID: 2-5
[SERIAL]:
ID: U170130193421
[DVB-C,DVB-T,DVB-T2]:
FRONTEND: /dev/dvb/adapter0/frontend0
DVR: /dev/dvb/adapter0/dvr0
DMX: /dev/dvb/adapter0/demux0
[REMOTECONTROL]:
INPUT0: /dev/mediainput0
""" """
###################################################################################################### ######################################################################################################
@@ -182,19 +208,42 @@ def add_sundtek(xmldoc, node_cat, tuners):
for ix, tuner in enumerate(tuners): for ix, tuner in enumerate(tuners):
tuner_name = tuner[0] tuner_name = tuner[0]
tuner_serial = tuner[1] tuner_serial = tuner[1]
tuner_type = tuner[2] tuner_types = tuner[2]
node1 = xmldoc.createElement("setting") node1 = xmldoc.createElement("setting")
node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_DVBMODE') node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_DVBMODE')
node1.setAttribute("label", tuner_name + ", " + tuner_serial) node1.setAttribute("label", tuner_name + ", " + tuner_serial)
node1.setAttribute("type", 'labelenum') node1.setAttribute("type", 'labelenum')
if (tuner_type == 's'): if len(tuner_types) == 0:
node1.setAttribute("default", 'DVB-S') values = 'unkn'
node1.setAttribute("values", 'DVB-S') default = 'unkn'
else: else:
node1.setAttribute("default", 'DVB-C') values = ''
node1.setAttribute("values", 'DVB-C|DVB-T') default = ''
for ix, type in enumerate(tuner_types):
if type == 'c':
type_str = 'DVB-C'
elif type == 't':
type_str = 'DVB-T'
elif type == 't2':
type_str = 'DVB-T2'
elif type == 's':
type_str = 'DVB-S/S2'
else:
type_str = 'unkn'
if not default: # first one
default = type_str;
if ix == 0:
values = type_str
else:
values = values + '|' + type_str
node1.setAttribute("default", default)
node1.setAttribute("values", values)
node_cat.appendChild(node1) node_cat.appendChild(node1)
@@ -237,7 +286,7 @@ def add_new_tuners(xmldoc, tuners, which):
def save_settings(settings_xml, xmldoc): def save_settings(settings_xml, xmldoc):
try: try:
outputfile = open(settings_xml, 'w') outputfile = open(settings_xml, 'w')
xmlpp.pprint(xmldoc.toxml(), output = outputfile, indent=2) xmlpp.pprint(xmldoc.toxml(), output = outputfile, indent=2, width=500)
outputfile.close() outputfile.close()
except IOError: except IOError:
print 'Error saving file:', settings_xml print 'Error saving file:', settings_xml

View File

@@ -1,3 +1,7 @@
108
- Correct bug which prevented disabling the service from Kodi
- Place named pipe in /var/run/librespot
107 107
- Update to ddfc28f - Update to ddfc28f

View File

@@ -19,7 +19,7 @@
PKG_NAME="librespot" PKG_NAME="librespot"
PKG_VERSION="ddfc28f" PKG_VERSION="ddfc28f"
PKG_REV="107" PKG_REV="108"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="MIT" PKG_LICENSE="MIT"
PKG_SITE="https://github.com/plietar/$PKG_NAME/" PKG_SITE="https://github.com/plietar/$PKG_NAME/"

View File

@@ -119,6 +119,6 @@ if [ -z "$(pactl list short modules | grep source=$LS_SINK.monitor)" ]; then
destination_ip=127.0.0.1 port="$LS_PORT" source_ip=127.0.0.1 > /dev/null destination_ip=127.0.0.1 port="$LS_PORT" source_ip=127.0.0.1 > /dev/null
fi fi
export LS_FIFO="$ADDON_DIR/rc" export LS_FIFO="/var/run/librespot"
eval $LIBRESPOT eval $LIBRESPOT

View File

@@ -25,6 +25,7 @@ import xbmc
import xbmcaddon import xbmcaddon
import xbmcgui import xbmcgui
PORT = '6666' PORT = '6666'
SINK = 'librespot_sink' SINK = 'librespot_sink'
@@ -38,7 +39,7 @@ def systemctl(command):
class Controller(threading.Thread): class Controller(threading.Thread):
FIFO = os.path.join(xbmcaddon.Addon().getAddonInfo('path'), 'rc') FIFO = '/var/run/librespot'
def __init__(self, player): def __init__(self, player):
super(Controller, self).__init__() super(Controller, self).__init__()
@@ -65,13 +66,15 @@ class Controller(threading.Thread):
self.player.play() self.player.play()
elif command[0] == 'stop': elif command[0] == 'stop':
self.player.stop() self.player.stop()
def stop(self):
try: try:
os.unlink(self.FIFO) os.unlink(self.FIFO)
except OSError: except OSError:
pass pass
def stop(self):
with open(self.FIFO, 'w') as fifo:
fifo.close()
class Player(xbmc.Player): class Player(xbmc.Player):
@@ -79,7 +82,6 @@ class Player(xbmc.Player):
def __init__(self): def __init__(self):
super(Player, self).__init__(self) super(Player, self).__init__(self)
self.window = xbmcgui.Window(12006)
if self.isPlaying(): if self.isPlaying():
self.onPlayBackStarted() self.onPlayBackStarted()
@@ -104,7 +106,7 @@ class Player(xbmc.Player):
listitem.setArt({'thumb': xbmcaddon.Addon().getAddonInfo('icon')}) listitem.setArt({'thumb': xbmcaddon.Addon().getAddonInfo('icon')})
super(Player, self).play(self.ITEM, listitem) super(Player, self).play(self.ITEM, listitem)
del listitem del listitem
self.window.show() xbmcgui.Window(12006).show()
def stop(self): def stop(self):
suspendSink('1') suspendSink('1')
@@ -130,3 +132,4 @@ if __name__ == '__main__':
controller.start() controller.start()
Monitor(player).waitForAbort() Monitor(player).waitForAbort()
controller.stop() controller.stop()
controller.join()

View File

@@ -1,3 +1,14 @@
104
- Change daemon startup option
103
- update config.sub to support new hardware
- disable mini-agent in config options to get system MIB
- compile static binary to avoid cross compiling linking issue
102
-version bump
101 101
- make addon configurable - make addon configurable

View File

@@ -1,6 +1,6 @@
################################################################################ ################################################################################
# This file is part of LibreELEC - https://libreelec.tv # This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC # Copyright (C) 2016-present Team LibreELEC
# #
# LibreELEC is free software: you can redistribute it and/or modify # LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
PKG_NAME="net-snmp" PKG_NAME="net-snmp"
PKG_VERSION="5.7.3" PKG_VERSION="5.7.3"
PKG_REV="101" PKG_REV="104"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="BSD" PKG_LICENSE="BSD"
PKG_SITE="http://www.net-snmp.org" PKG_SITE="http://www.net-snmp.org"
@@ -40,9 +40,8 @@ PKG_CONFIGURE_OPTS_TARGET="--with-defaults \
--disable-deprecated \ --disable-deprecated \
--disable-snmptrapd-subagent \ --disable-snmptrapd-subagent \
--disable-scripts \ --disable-scripts \
--enable-static=no \ --enable-static=yes \
--enable-shared=yes \ --enable-shared=no \
--enable-mini-agent \
--with-nl \ --with-nl \
--with-logfile=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID} \ --with-logfile=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID} \
--with-persistent-directory=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID} \ --with-persistent-directory=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID} \
@@ -67,9 +66,4 @@ makeinstall_target() {
addon() { addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
cp -r $PKG_BUILD/.$TARGET_NAME/storage/.kodi/addons/${PKG_ADDON_ID}/bin $PKG_BUILD/.$TARGET_NAME/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/share $ADDON_BUILD/$PKG_ADDON_ID/ cp -r $PKG_BUILD/.$TARGET_NAME/storage/.kodi/addons/${PKG_ADDON_ID}/bin $PKG_BUILD/.$TARGET_NAME/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/share $ADDON_BUILD/$PKG_ADDON_ID/
#Do not copy symlinks
find $PKG_BUILD/.$TARGET_NAME/storage/.kodi/addons/${PKG_ADDON_ID}/lib/ -type f -name '*.so.*' -exec cp '{}' $ADDON_BUILD/$PKG_ADDON_ID/lib/ \;
#remove all but major version from so file
for f in $ADDON_BUILD/$PKG_ADDON_ID/lib/*.so.* ; do mv "$f" "${f%.*.*}" ; done
} }

View File

@@ -0,0 +1,34 @@
diff -ur net-snmp-5.7.3/config.sub net-snmp-5.7.3.new/config.sub
--- net-snmp-5.7.3/config.sub 2014-12-08 21:23:22.000000000 +0100
+++ net-snmp-5.7.3.new/config.sub 2017-11-09 18:39:31.638689732 +0100
@@ -247,10 +247,11 @@ case $basic_machine in
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
+ | aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
@@ -339,6 +340,7 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
+ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
@@ -1171,6 +1173,9 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
+ x64)
+ basic_machine=x86_64-pc
+ ;;
xbox)
basic_machine=i686-pc
os=-mingw32

View File

@@ -24,4 +24,4 @@ ADDON_ID=service.net-snmp
ADDON_DIR="$HOME/.kodi/addons/$ADDON_ID" ADDON_DIR="$HOME/.kodi/addons/$ADDON_ID"
ADDON_HOME="$HOME/.kodi/userdata/addon_data/$ADDON_ID" ADDON_HOME="$HOME/.kodi/userdata/addon_data/$ADDON_ID"
$ADDON_DIR/bin/snmpd -f -LS0-6d -c $ADDON_HOME/share/snmp/snmpd.conf -M $ADDON_DIR/share/snmp/mibs -p /var/run/snmpd.pid $ADDON_DIR/bin/snmpd -f -LS0-6d -C -c $ADDON_HOME/share/snmp/snmpd.conf -M $ADDON_DIR/share/snmp/mibs -p /var/run/snmpd.pid

View File

@@ -0,0 +1,2 @@
100
- initial addon

View File

@@ -0,0 +1,10 @@
# Gemalto reader with serial communication
# - n is the serial port to use n in [0..3]
# - reader is the reader name. It is needed for multi-slot readers.
# Possible reader values are: GemPCPinPad, GemCorePOSPro, GemCoreSIMPro,
# GemPCTwin (default value)
# example: /dev/ttyS0:GemPCPinPad
#FRIENDLYNAME "GemPCTwin serial"
#DEVICENAME /dev/ttySn[:reader]
#LIBPATH /storage/.kodi/addons/service.pcscd/drivers/serial/libccidtwin.so
#CHANNELID n

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@@ -0,0 +1,59 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2017-present Team LibreELEC
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2011-2011 Gregor Fuis (gujs@openelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="pcscd"
PKG_VERSION="1.0"
PKG_REV="100"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://libreelec.tv"
PKG_URL=""
PKG_DEPENDS_TARGET="toolchain pcsc-lite libusb ccid"
PKG_SECTION="service"
PKG_SHORTDESC="Middleware to access a smart card using SCard API (PC/SC)"
PKG_LONGDESC="Middleware to access a smart card using SCard API (PC/SC)"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="PC/SC Smart Card Daemon"
PKG_ADDON_TYPE="xbmc.service"
make_target() {
:
}
makeinstall_target() {
:
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/
cp -Pa $(get_build_dir pcsc-lite)/.install_pkg/usr/sbin/pcscd $ADDON_BUILD/$PKG_ADDON_ID/bin/pcscd.bin
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial
cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/.libs/libccidtwin.so $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents/Linux/
cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/.libs/libccid.so $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents/Linux/
cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/Info.plist $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config
cp -Pa $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/
}

View File

@@ -0,0 +1,34 @@
#!/bin/sh
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2017-present Team LibreELEC
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. /etc/profile
oe_setup_addon service.pcscd
mkdir -p $ADDON_HOME/config
chmod a+x $ADDON_DIR/bin/*
if [ ! -f "$ADDON_HOME/config/reader.conf" ]; then
cp $ADDON_DIR/config/reader.conf $ADDON_HOME/config/reader.conf
fi
exec pcscd.bin --foreground -c $ADDON_HOME/config/reader.conf

View File

@@ -0,0 +1,35 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2017-present Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
import subprocess
import xbmc
import xbmcaddon
class Monitor(xbmc.Monitor):
def __init__(self, *args, **kwargs):
xbmc.Monitor.__init__(self)
self.id = xbmcaddon.Addon().getAddonInfo('id')
def onSettingsChanged(self):
subprocess.call(['systemctl', 'restart', self.id])
if __name__ == "__main__":
Monitor().waitForAbort()

View File

@@ -0,0 +1,13 @@
[Unit]
Description=PCSC lite
After=graphical.target
[Service]
ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.pcscd/bin/pcscd.start"
TimeoutStopSec=1
Restart=always
RestartSec=2
StartLimitInterval=0
[Install]
WantedBy=kodi.target

View File

@@ -49,8 +49,8 @@ addon() {
cp $PKG_DIR/addon.xml $ADDON_BUILD/$PKG_ADDON_ID cp $PKG_DIR/addon.xml $ADDON_BUILD/$PKG_ADDON_ID
# set version (no need to edit xml file on version bump) # set only version (revision will be added by buildsystem)
$SED -e "s|@ADDON_VERSION@|$ADDON_VERSION.$PKG_REV|g" \ $SED -e "s|@ADDON_VERSION@|$ADDON_VERSION|g" \
-i $ADDON_BUILD/$PKG_ADDON_ID/addon.xml -i $ADDON_BUILD/$PKG_ADDON_ID/addon.xml
cp $(get_build_dir tslib)/.install_pkg/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin cp $(get_build_dir tslib)/.install_pkg/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin

View File

@@ -1,3 +1,6 @@
109
- Update to 5.4.1.6
108 108
- Update to 5.4.0.201 - Update to 5.4.0.201

View File

@@ -17,8 +17,8 @@
################################################################################ ################################################################################
PKG_NAME="mono" PKG_NAME="mono"
PKG_VERSION="5.4.0.201" PKG_VERSION="5.4.1.6"
PKG_REV="108" PKG_REV="109"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="MIT" PKG_LICENSE="MIT"
PKG_SITE="http://www.mono-project.com" PKG_SITE="http://www.mono-project.com"

View File

@@ -1,3 +1,6 @@
105
- squeezelite: update to e92c09c and support all possible media formats
104 104
- squeezelite: update to a3d95ec and link audio libraries - squeezelite: update to a3d95ec and link audio libraries

View File

@@ -1,6 +1,6 @@
################################################################################ ################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv # This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2016 Team LibreELEC # Copyright (C) 2016-present Team LibreELEC
# #
# LibreELEC is free software: you can redistribute it and/or modify # LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
PKG_NAME="multimedia-tools" PKG_NAME="multimedia-tools"
PKG_VERSION="" PKG_VERSION=""
PKG_REV="104" PKG_REV="105"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="" PKG_SITE=""

View File

@@ -32,7 +32,7 @@ PKG_IS_ADDON="no"
PKG_AUTORECONF="no" PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_TARGET="BASH_SHELL=/bin/sh \ PKG_CONFIGURE_OPTS_TARGET="BASH_SHELL=/bin/sh \
ac_cv_path_PERL= \ ac_cv_path_PERL=no \
ac_cv_prog_MAKEINFO= \ ac_cv_prog_MAKEINFO= \
--libexecdir=/usr/lib/glibc \ --libexecdir=/usr/lib/glibc \
--cache-file=config.cache \ --cache-file=config.cache \

View File

@@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="inputstream.adaptive" PKG_NAME="inputstream.adaptive"
PKG_VERSION="f2904b5" PKG_VERSION="9af2121"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv" PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/peak3d/inputstream.adaptive/archive/$PKG_VERSION.tar.gz" PKG_URL="https://github.com/peak3d/inputstream.adaptive/archive/$PKG_VERSION.tar.gz"

View File

@@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="peripheral.joystick" PKG_NAME="peripheral.joystick"
PKG_VERSION="b464260" PKG_VERSION="0acb777"
PKG_REV="0" PKG_REV="0"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.dvbviewer" PKG_NAME="pvr.dvbviewer"
PKG_VERSION="602042c" PKG_VERSION="2a8c91e"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="kodi" PKG_NAME="kodi"
PKG_VERSION="5bd45ab" PKG_VERSION="a9a7a20"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv" PKG_SITE="http://www.kodi.tv"

View File

@@ -1,11 +0,0 @@
--- a/system/settings/settings.xml 2017-08-05 04:22:39.894495691 +0100
+++ b/system/settings/settings.xml 2017-08-05 07:41:42.493159153 +0100
@@ -1964,7 +1964,7 @@
</setting>
<setting id="smb.maxprotocol" type="integer" label="36621" help="36622">
<level>2</level>
- <visible>false</visible>
+ <visible>true</visible>
<default>0</default>
<constraints>
<options>

View File

@@ -0,0 +1,232 @@
From 76f6d6fef6494d2dfd8cbc0ea8d88a8d82029c09 Mon Sep 17 00:00:00 2001
From: chewitt <github@chrishewitt.net>
Date: Sat, 11 Nov 2017 05:44:48 +0000
Subject: [PATCH] smbclient: allow config of min client and legacy security
---
.../resource.language.en_gb/resources/strings.po | 34 ++++++++++++++++++----
system/settings/linux.xml | 6 ++++
system/settings/settings.xml | 25 ++++++++++++++++
xbmc/filesystem/SMBFile.cpp | 16 ++++++++++
xbmc/network/NetworkServices.cpp | 4 ++-
xbmc/settings/Settings.cpp | 4 +++
xbmc/settings/Settings.h | 2 ++
7 files changed, 85 insertions(+), 6 deletions(-)
diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po
index 9009023f4d39..f7755776eea6 100644
--- a/addons/resource.language.en_gb/resources/strings.po
+++ b/addons/resource.language.en_gb/resources/strings.po
@@ -19075,25 +19075,25 @@ msgctxt "#36622"
msgid "Set the maximum SMB protocol version to negotiate when making connections. Forcing SMBv2 or SMBv1 compatibility may be required with older NAS and Windows shares."
msgstr ""
-#. Values for setting with label #36621 "Maximum protocol version" - none means "no protocol version is forced"
+#. Values for settings with label #36621 and #36628 "Minimum/Maximum protocol version" - none means "no protocol version is forced"
#: system/settings/settings.xml
msgctxt "#36623"
msgid "None"
msgstr ""
-#. Values for setting with label #36621 "Maximum protocol version"
+#. Values for setting with label #36621 and #36628 "Minimum/Maximum protocol version"
#: system/settings/settings.xml
msgctxt "#36624"
msgid "SMBv1"
msgstr ""
-#. Values for setting with label #36621 "Maximum protocol version"
+#. Values for setting with label #36621 and #36628 "Minimum/Maximum protocol version"
#: system/settings/settings.xml
msgctxt "#36625"
msgid "SMBv2"
msgstr ""
-#. Values for setting with label #36621 "Maximum protocol version"
+#. Values for setting with label #36621 and #36628 "Minimum/Maximum protocol version"
#: system/settings/settings.xml
msgctxt "#36626"
msgid "SMBv3"
@@ -19105,7 +19105,31 @@ msgctxt "#36627"
msgid "Client"
msgstr ""
-#empty strings from id 36628 to 36899
+#. Label of a setting, allow the minimum smbclient protocol to be configured
+#: system/settings/settings.xml
+msgctxt "#36628"
+msgid "Minimum protocol version"
+msgstr ""
+
+#. Description of setting with label #36628 "Minimum protocol version"
+#: system/settings/settings.xml
+msgctxt "#36629"
+msgid "Set the minimum SMB protocol version to negotiate when making connections. Forcing SMBv2 may be required to prevent SMBv1 use on some OS."
+msgstr ""
+
+#. Label of a setting, sets additional config required for some proprietary SMBv1 implementations (mostly routers)
+#: system/settings/settings.xml
+msgctxt "#36630"
+msgid "Use legacy security"
+msgstr ""
+
+#. Description of setting with label #36630 "Use legacy security"
+#: system/settings/settings.xml
+msgctxt "#36631"
+msgid "Force weak SMBv1 security for compatibility with the USB sharing features on some WiFi routers and NAS devices."
+msgstr ""
+
+#empty strings from id 36632 to 36899
#: xbmc/media/MediaType.cpp
msgctxt "#36900"
diff --git a/system/settings/linux.xml b/system/settings/linux.xml
index 7cb276acddba..5c27e489a0ad 100644
--- a/system/settings/linux.xml
+++ b/system/settings/linux.xml
@@ -12,9 +12,15 @@
<section id="services">
<category id="smb">
<group id="2">
+ <setting id="smb.minprotocol">
+ <visible>true</visible>
+ </setting>
<setting id="smb.maxprotocol">
<visible>true</visible>
</setting>
+ <setting id="smb.legacysecurity">
+ <visible>true</visible>
+ </setting>
</group>
</category>
</section>
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index 5ff71b9741c5..79b4321ab9c7 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -1956,6 +1956,20 @@
<default>0.0.0.0</default>
<control type="edit" format="ip" />
</setting>
+ <setting id="smb.minprotocol" type="integer" label="36628" help="36629">
+ <level>2</level>
+ <visible>false</visible>
+ <default>0</default>
+ <constraints>
+ <options>
+ <option label="36623">0</option>
+ <option label="36624">1</option>
+ <option label="36625">2</option>
+ <option label="36626">3</option>
+ </options>
+ </constraints>
+ <control type="list" format="integer" />
+ </setting>
<setting id="smb.maxprotocol" type="integer" label="36621" help="36622">
<level>2</level>
<visible>false</visible>
@@ -1970,6 +1984,17 @@
</constraints>
<control type="list" format="integer" />
</setting>
+ <setting id="smb.legacysecurity" type="boolean" label="36630" help="36631">
+ <level>2</level>
+ <visible>false</visible>
+ <default>false</default>
+ <control type="toggle" />
+ <dependencies>
+ <dependency type="enable">
+ <condition setting="smb.maxprotocol" operator="is">1</condition>
+ </dependency>
+ </dependencies>
+ </setting>
</group>
</category>
<category id="weather" label="8" help="36316">
diff --git a/xbmc/filesystem/SMBFile.cpp b/xbmc/filesystem/SMBFile.cpp
index e5301b0452f9..7fc139635f0b 100644
--- a/xbmc/filesystem/SMBFile.cpp
+++ b/xbmc/filesystem/SMBFile.cpp
@@ -117,6 +117,15 @@ void CSMB::Init()
fprintf(f, "\tlock directory = %s/.smb/\n", home.c_str());
+ // set minimum smbclient protocol version
+ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MINPROTOCOL) > 0)
+ {
+ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MINPROTOCOL) == 1)
+ fprintf(f, "\tclient min protocol = NT1\n");
+ else
+ fprintf(f, "\tclient min protocol = SMB%d\n", CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MINPROTOCOL));
+ }
+
// set maximum smbclient protocol version
if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) > 0)
{
@@ -126,6 +135,13 @@ void CSMB::Init()
fprintf(f, "\tclient max protocol = SMB%d\n", CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL));
}
+ // set legacy security options
+ if (CSettings::GetInstance().GetBool(CSettings::SETTING_SMB_LEGACYSECURITY) && (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) == 1))
+ {
+ fprintf(f, "\tclient NTLMv2 auth = no\n");
+ fprintf(f, "\tclient use spnego = no\n");
+ }
+
// set wins server if there's one. name resolve order defaults to 'lmhosts host wins bcast'.
// if no WINS server has been specified the wins method will be ignored.
if (CSettings::GetInstance().GetString(CSettings::SETTING_SMB_WINSSERVER).length() > 0 && !StringUtils::EqualsNoCase(CSettings::GetInstance().GetString(CSettings::SETTING_SMB_WINSSERVER), "0.0.0.0") )
diff --git a/xbmc/network/NetworkServices.cpp b/xbmc/network/NetworkServices.cpp
index 393dabc3067d..5dad5c22c0af 100644
--- a/xbmc/network/NetworkServices.cpp
+++ b/xbmc/network/NetworkServices.cpp
@@ -439,7 +439,9 @@ void CNetworkServices::OnSettingChanged(const CSetting *setting)
#endif // HAS_WEB_SERVER
if (settingId == CSettings::SETTING_SMB_WINSSERVER ||
settingId == CSettings::SETTING_SMB_WORKGROUP ||
- settingId == CSettings::SETTING_SMB_MAXPROTOCOL)
+ settingId == CSettings::SETTING_SMB_MINPROTOCOL ||
+ settingId == CSettings::SETTING_SMB_MAXPROTOCOL ||
+ settingId == CSettings::SETTING_SMB_LEGACYSECURITY)
{
// okey we really don't need to restart, only deinit samba, but that could be damn hard if something is playing
//! @todo - General way of handling setting changes that require restart
diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp
index f76c152b4d37..5400ba229164 100644
--- a/xbmc/settings/Settings.cpp
+++ b/xbmc/settings/Settings.cpp
@@ -333,7 +333,9 @@ const std::string CSettings::SETTING_SERVICES_AIRPLAYPASSWORD = "services.airpla
const std::string CSettings::SETTING_SERVICES_AIRPLAYVIDEOSUPPORT = "services.airplayvideosupport";
const std::string CSettings::SETTING_SMB_WINSSERVER = "smb.winsserver";
const std::string CSettings::SETTING_SMB_WORKGROUP = "smb.workgroup";
+const std::string CSettings::SETTING_SMB_MINPROTOCOL = "smb.minprotocol";
const std::string CSettings::SETTING_SMB_MAXPROTOCOL = "smb.maxprotocol";
+const std::string CSettings::SETTING_SMB_LEGACYSECURITY = "smb.legacysecurity";
const std::string CSettings::SETTING_VIDEOSCREEN_MONITOR = "videoscreen.monitor";
const std::string CSettings::SETTING_VIDEOSCREEN_SCREEN = "videoscreen.screen";
const std::string CSettings::SETTING_VIDEOSCREEN_RESOLUTION = "videoscreen.resolution";
@@ -1160,7 +1162,9 @@ void CSettings::InitializeISettingCallbacks()
settingSet.insert(CSettings::SETTING_SERVICES_ESCONTINUOUSDELAY);
settingSet.insert(CSettings::SETTING_SMB_WINSSERVER);
settingSet.insert(CSettings::SETTING_SMB_WORKGROUP);
+ settingSet.insert(CSettings::SETTING_SMB_MINPROTOCOL);
settingSet.insert(CSettings::SETTING_SMB_MAXPROTOCOL);
+ settingSet.insert(CSettings::SETTING_SMB_LEGACYSECURITY);
m_settingsManager->RegisterCallback(&CNetworkServices::GetInstance(), settingSet);
settingSet.clear();
diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h
index ab6770997ce5..c40ab2d31957 100644
--- a/xbmc/settings/Settings.h
+++ b/xbmc/settings/Settings.h
@@ -290,7 +290,9 @@ class CSettings : public CSettingCreator, public CSettingControlCreator
static const std::string SETTING_SERVICES_AIRPLAYVIDEOSUPPORT;
static const std::string SETTING_SMB_WINSSERVER;
static const std::string SETTING_SMB_WORKGROUP;
+ static const std::string SETTING_SMB_MINPROTOCOL;
static const std::string SETTING_SMB_MAXPROTOCOL;
+ static const std::string SETTING_SMB_LEGACYSECURITY;
static const std::string SETTING_VIDEOSCREEN_MONITOR;
static const std::string SETTING_VIDEOSCREEN_SCREEN;
static const std::string SETTING_VIDEOSCREEN_RESOLUTION;

View File

@@ -0,0 +1,29 @@
--- a/system/settings/settings.xml 2017-11-13 14:24:41.584692775 +0000
+++ b/system/settings/settings.xml 2017-11-13 14:22:03.245527087 +0000
@@ -1964,7 +1964,7 @@
</setting>
<setting id="smb.minprotocol" type="integer" label="36628" help="36629">
<level>2</level>
- <visible>false</visible>
+ <visible>true</visible>
<default>0</default>
<constraints>
<options>
@@ -1978,7 +1978,7 @@
</setting>
<setting id="smb.maxprotocol" type="integer" label="36621" help="36622">
<level>2</level>
- <visible>false</visible>
+ <visible>true</visible>
<default>0</default>
<constraints>
<options>
@@ -1992,7 +1992,7 @@
</setting>
<setting id="smb.legacysecurity" type="boolean" label="36630" help="36631">
<level>2</level>
- <visible>false</visible>
+ <visible>true</visible>
<default>false</default>
<control type="toggle" />
<dependencies>

View File

@@ -433,6 +433,18 @@ index bb28aea1e2..741aa0bdc4 100644
+ +
+$(SUBDIR)rpi_qpu.o: $(SUBDIR)rpi_hevc_transform8.h $(SUBDIR)rpi_hevc_transform10.h +$(SUBDIR)rpi_qpu.o: $(SUBDIR)rpi_hevc_transform8.h $(SUBDIR)rpi_hevc_transform10.h
+$(SUBDIR)hevcdec.o $(SUBDIR)rpi_shader_template.o $(SUBDIR)rpi_qpu.o: $(SUBDIR)rpi_shader.h +$(SUBDIR)hevcdec.o $(SUBDIR)rpi_shader_template.o $(SUBDIR)rpi_qpu.o: $(SUBDIR)rpi_shader.h
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 54efaad..02a89c3 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -667,6 +667,7 @@ void avcodec_register_all(void)
REGISTER_PARSER(H261, h261);
REGISTER_PARSER(H263, h263);
REGISTER_PARSER(H264, h264);
+ REGISTER_PARSER(H264_MVC, h264_mvc);
REGISTER_PARSER(HEVC, hevc);
REGISTER_PARSER(MJPEG, mjpeg);
REGISTER_PARSER(MLP, mlp);
diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile
index a4ceca7f46..f8229a80e2 100644 index a4ceca7f46..f8229a80e2 100644
--- a/libavcodec/arm/Makefile --- a/libavcodec/arm/Makefile
@@ -6979,6 +6991,135 @@ index 1bf1c620d6..ccfa991f60 100644
const uint8_t *bytestream_start; const uint8_t *bytestream_start;
const uint8_t *bytestream; const uint8_t *bytestream;
const uint8_t *bytestream_end; const uint8_t *bytestream_end;
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index 9d94b72..535ebf0 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -1563,6 +1563,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
.long_name = NULL_IF_CONFIG_SMALL("YUY2 Lossless Codec"),
.props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
},
+ {
+ .id = AV_CODEC_ID_H264_MVC,
+ .type = AVMEDIA_TYPE_VIDEO,
+ .name = "h264_mvc",
+ .long_name = NULL_IF_CONFIG_SMALL("H264 MVC"),
+ .props = AV_CODEC_PROP_LOSSY,
+ },
/* various PCM "codecs" */
{
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index efe3555..16358aa 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -126,7 +126,9 @@ enum {
NAL_END_STREAM = 11,
NAL_FILLER_DATA = 12,
NAL_SPS_EXT = 13,
+ NAL_SPS_SUBSET = 15,
NAL_AUXILIARY_SLICE = 19,
+ NAL_SLICE_EXT = 20,
NAL_FF_IGNORE = 0xff0f001,
};
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index ce4bab2..b9b0c78 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -58,6 +58,8 @@ typedef struct H264ParseContext {
uint8_t parse_history[6];
int parse_history_count;
int parse_last_mb;
+ int is_mvc;
+ int slice_ext;
} H264ParseContext;
@@ -105,24 +107,27 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
} else if (state <= 5) {
int nalu_type = buf[i] & 0x1F;
if (nalu_type == NAL_SEI || nalu_type == NAL_SPS ||
- nalu_type == NAL_PPS || nalu_type == NAL_AUD) {
+ nalu_type == NAL_PPS || nalu_type == NAL_AUD ||
+ nalu_type == NAL_SPS_SUBSET) {
if (pc->frame_start_found) {
i++;
goto found;
}
} else if (nalu_type == NAL_SLICE || nalu_type == NAL_DPA ||
- nalu_type == NAL_IDR_SLICE) {
+ nalu_type == NAL_IDR_SLICE || (p->is_mvc && nalu_type == NAL_SLICE_EXT)) {
state += 8;
+
+ p->slice_ext = (nalu_type == NAL_SLICE_EXT);
continue;
}
state = 7;
} else {
p->parse_history[p->parse_history_count++] = buf[i];
- if (p->parse_history_count > 5) {
+ if (p->parse_history_count > 8) {
unsigned int mb, last_mb = p->parse_last_mb;
GetBitContext gb;
- init_get_bits(&gb, p->parse_history, 8*p->parse_history_count);
+ init_get_bits8(&gb, p->parse_history + 3*p->slice_ext, p->parse_history_count - 3*p->slice_ext);
p->parse_history_count = 0;
mb= get_ue_golomb_long(&gb);
p->parse_last_mb = mb;
@@ -145,7 +150,7 @@ found:
pc->frame_start_found = 0;
if (p->is_avc)
return next_avc;
- return i - (state & 5) - 5 * (state > 7);
+ return i - (state & 5) - 8 * (state > 7);
}
static int scan_mmco_reset(AVCodecParserContext *s, GetBitContext *gb,
@@ -585,7 +590,8 @@ static int h264_parse(AVCodecParserContext *s,
}
}
- parse_nal_units(s, avctx, buf, buf_size);
+ if (!p->is_mvc)
+ parse_nal_units(s, avctx, buf, buf_size);
if (avctx->framerate.num)
avctx->time_base = av_inv_q(av_mul_q(avctx->framerate, (AVRational){avctx->ticks_per_frame, 1}));
@@ -622,7 +628,7 @@ static int h264_split(AVCodecContext *avctx,
if ((state & 0xFFFFFF00) != 0x100)
break;
nalu_type = state & 0x1F;
- if (nalu_type == NAL_SPS) {
+ if (nalu_type == NAL_SPS || nalu_type == NAL_SPS_SUBSET) {
has_sps = 1;
} else if (nalu_type == NAL_PPS)
has_pps = 1;
@@ -672,3 +678,23 @@ AVCodecParser ff_h264_parser = {
.parser_close = h264_close,
.split = h264_split,
};
+
+static av_cold int init_mvc(AVCodecParserContext *s)
+{
+ H264ParseContext *p = s->priv_data;
+ int ret = init(s);
+ if (ret < 0)
+ return ret;
+
+ p->is_mvc = 1;
+ return 0;
+}
+
+AVCodecParser ff_h264_mvc_parser = {
+ .codec_ids = { AV_CODEC_ID_H264_MVC },
+ .priv_data_size = sizeof(H264ParseContext),
+ .parser_init = init_mvc,
+ .parser_parse = h264_parse,
+ .parser_close = h264_close,
+ .split = h264_split,
+};
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index c1fa67f67b..6f99021339 100644 index c1fa67f67b..6f99021339 100644
--- a/libavcodec/hevc.c --- a/libavcodec/hevc.c

View File

@@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="samba" PKG_NAME="samba"
PKG_VERSION="4.6.8" PKG_VERSION="4.6.10"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPLv3+" PKG_LICENSE="GPLv3+"
PKG_SITE="https://www.samba.org" PKG_SITE="https://www.samba.org"

View File

@@ -0,0 +1,41 @@
From 7470b9b18af282a742929d3fc90f4be5520428a1 Mon Sep 17 00:00:00 2001
From: David Mulder <dmulder@suse.com>
Date: Thu, 2 Nov 2017 08:25:11 -0600
Subject: [PATCH] smbc_opendir should not return EEXIST with invalid login
credentials
Signed-off-by: David Mulder <dmulder@suse.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jim McDonough <jmcd@samba.org>
Autobuild-User(master): Jim McDonough <jmcd@samba.org>
Autobuild-Date(master): Thu Nov 9 01:49:06 CET 2017 on sn-devel-144
---
source3/libsmb/libsmb_server.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
index b0e5926fa65..93b9e800910 100644
--- a/source3/libsmb/libsmb_server.c
+++ b/source3/libsmb/libsmb_server.c
@@ -351,8 +351,8 @@ SMBC_server_internal(TALLOC_CTX *ctx,
"?????",
*pp_password);
if (!NT_STATUS_IS_OK(status)) {
- errno = map_errno_from_nt_status(status);
cli_shutdown(srv->cli);
+ errno = map_errno_from_nt_status(status);
srv->cli = NULL;
smbc_getFunctionRemoveCachedServer(context)(context,
srv);
@@ -562,8 +562,8 @@ SMBC_server_internal(TALLOC_CTX *ctx,
status = cli_tree_connect_creds(c, share, "?????", creds);
if (!NT_STATUS_IS_OK(status)) {
- errno = map_errno_from_nt_status(status);
cli_shutdown(c);
+ errno = map_errno_from_nt_status(status);
return NULL;
}

View File

@@ -1,3 +1,4 @@
ACTION=="add", SUBSYSTEM=="usb", \ ACTION=="add", SUBSYSTEM=="usb", \
ATTR{idVendor}=="05ac", ATTR{idProduct}=="824[012]", \ ATTR{idVendor}=="05ac", ATTR{idProduct}=="824[012]", \
RUN+="wakeup_enable", \
TAG+="systemd", ENV{SYSTEMD_WANTS}+="atvclient.service" TAG+="systemd", ENV{SYSTEMD_WANTS}+="atvclient.service"

View File

@@ -0,0 +1,13 @@
#KEY_HOME = KEY_HOME
KEY_I = KEY_INFO
#KEY_UP = KEY_UP
#KEY_DOWN = KEY_DOWN
#KEY_LEFT = KEY_LEFT
#KEY_RIGHT = KEY_RIGHT
KEY_ENTER = KEY_OK
#KEY_BACK = KEY_BACK
KEY_C = KEY_EPG
#KEY_PLAYPAUSE = KEY_PLAYPAUSE
#KEY_STOP = KEY_STOP
KEY_MINUS = KEY_VOLUMEDOWN
KEY_EQUAL = KEY_VOLUMEUP

View File

@@ -199,6 +199,10 @@ ENV{ID_VENDOR_ID}=="2252", ENV{ID_MODEL_ID}=="1037", \
ENV{eventlircd_enable}="true", \ ENV{eventlircd_enable}="true", \
ENV{eventlircd_evmap}="osmc_rf.evmap" ENV{eventlircd_evmap}="osmc_rf.evmap"
ENV{ID_VENDOR_ID}=="2017", ENV{ID_MODEL_ID}=="1688", \
ENV{eventlircd_enable}="true", \
ENV{eventlircd_evmap}="osmc_rf2.evmap"
# Enable wake-on-usb for the USB remotes. # Enable wake-on-usb for the USB remotes.
RUN+="wakeup_enable" RUN+="wakeup_enable"

View File

@@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="tz" PKG_NAME="tz"
PKG_VERSION="2017b" PKG_VERSION="2017c"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="Public Domain" PKG_LICENSE="Public Domain"
PKG_SITE="http://www.iana.org/time-zones" PKG_SITE="http://www.iana.org/time-zones"

View File

@@ -2,13 +2,12 @@
Description=Setup Timezone data Description=Setup Timezone data
DefaultDependencies=no DefaultDependencies=no
Before=systemd-udevd.service Before=systemd-udevd.service
After=var.mount After=var.mount systemd-tmpfiles-setup.service
[Service] [Service]
Type=oneshot Type=oneshot
Environment=TIMEZONE=UTC Environment=TIMEZONE=UTC
EnvironmentFile=-/storage/.cache/timezone EnvironmentFile=-/storage/.cache/timezone
ExecStartPre=/bin/mkdir -p /var/run
ExecStart=/bin/ln -sf /usr/share/zoneinfo/${TIMEZONE} /var/run/localtime ExecStart=/bin/ln -sf /usr/share/zoneinfo/${TIMEZONE} /var/run/localtime
RemainAfterExit=yes RemainAfterExit=yes
StartLimitInterval=0 StartLimitInterval=0

View File

@@ -10,7 +10,7 @@ diff -Naur util-linux-2.27/configure.ac util-linux-2.27.patch/configure.ac
+ AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]), + AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
+ [], [UL_DEFAULT_ENABLE([uuidgen], [check])] + [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
+) +)
+UL_BUILD_INIT([uuidgen]]) +UL_BUILD_INIT([uuidgen])
UL_REQUIRES_BUILD([uuidgen], [libuuid]) UL_REQUIRES_BUILD([uuidgen], [libuuid])
AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes]) AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])

View File

@@ -0,0 +1,176 @@
From c3d7ae58a87018b39f0cca9a49c4a7b553135b22 Mon Sep 17 00:00:00 2001
From: Sean Young <sean@mess.org>
Date: Wed, 29 Nov 2017 17:08:04 +0000
Subject: [PATCH 1/2] ir-ctl: fix multiple scancodes in one file
A file with contents:
scancode sony12:0x100015
space 25000
scancode sony12:0x100015
Will produce bogus results.
Reported-by: Matthias Reichl <hias@horus.com>
Tested-by: Matthias Reichl <hias@horus.com>
Signed-off-by: Sean Young <sean@mess.org>
---
utils/ir-ctl/ir-ctl.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c
index 544ad3415..8538ec5db 100644
--- a/utils/ir-ctl/ir-ctl.c
+++ b/utils/ir-ctl/ir-ctl.c
@@ -230,8 +230,8 @@ static struct file *read_file(const char *fname)
char *scancodestr;
if (!expect_pulse) {
- fprintf(stderr, _("error: %s:%d: space must precede scancode\n"), fname, lineno);
- return NULL;
+ f->buf[len++] = IR_DEFAULT_TIMEOUT;
+ expect_pulse = true;
}
scancodestr = strchr(p, ':');
@@ -268,7 +268,8 @@ static struct file *read_file(const char *fname)
else
f->carrier = carrier;
- len += protocol_encode(proto, scancode, f->buf);
+ len += protocol_encode(proto, scancode, f->buf + len);
+ expect_pulse = false;
continue;
}
--
2.11.0
From 26eca33b62f988ecbc4df8134ebdef20f9f75c97 Mon Sep 17 00:00:00 2001
From: Sean Young <sean@mess.org>
Date: Wed, 29 Nov 2017 17:54:32 +0000
Subject: [PATCH 2/2] ir-ctl: set the gap between scancodes or files
Between sending multiple scancodes or pulse space files, there is
a gap of 125 milliseconds. Allow this to be set.
Tested-by: Matthias Reichl <hias@horus.com>
Signed-off-by: Sean Young <sean@mess.org>
---
utils/ir-ctl/ir-ctl.1.in | 6 +++++-
utils/ir-ctl/ir-ctl.c | 18 +++++++++++++-----
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/utils/ir-ctl/ir-ctl.1.in b/utils/ir-ctl/ir-ctl.1.in
index 05550fb12..641b11152 100644
--- a/utils/ir-ctl/ir-ctl.1.in
+++ b/utils/ir-ctl/ir-ctl.1.in
@@ -93,6 +93,10 @@ Comma separated list of emitters to use for sending. The first emitter is
number 1. Some devices only support enabling one emitter (the winbond-cir
driver).
.TP
+\fB\-g\fR, \fB\-\-gap\fR=\fIGAP\fR
+Set the gap between scancodes or the gap between files when multiple files
+are specified on the command line. The default is 125000 microseconds.
+.TP
\fB\-?\fR, \fB\-\-help\fR
Prints the help message
.TP
@@ -220,7 +224,7 @@ To send the pulse and space file \fBplay\fR on emitter 3:
.br
\fBir\-ctl \-e 3 \-\-send=play\fR
.PP
-To send the rc-5 hauppuage '1' scancode:
+To send the rc-5 hauppauge '1' scancode:
.br
\fBir\-ctl \-S rc5:0x1e01
.PP
diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c
index 8538ec5db..6fb05b1aa 100644
--- a/utils/ir-ctl/ir-ctl.c
+++ b/utils/ir-ctl/ir-ctl.c
@@ -82,6 +82,7 @@ struct arguments {
int wideband;
unsigned carrier_low, carrier_high;
unsigned timeout;
+ unsigned gap;
int carrier_reports;
int timeout_reports;
unsigned carrier;
@@ -111,6 +112,7 @@ static const struct argp_option options[] = {
{ "carrier", 'c', N_("CARRIER"), 0, N_("set send carrier") },
{ "duty-cycle", 'D', N_("DUTY"), 0, N_("set duty cycle") },
{ "emitters", 'e', N_("EMITTERS"), 0, N_("set send emitters") },
+ { "gap", 'g', N_("GAP"), 0, N_("set gap between files or scancodes") },
{ }
};
@@ -130,6 +132,7 @@ static const char doc[] = N_(
" CARRIER - the carrier frequency to use for sending\n"
" DUTY - the duty cycle to use for sending\n"
" EMITTERS - comma separated list of emitters to use for sending, e.g. 1,2\n"
+ " GAP - gap between pulse and files or scancodes in microseconds\n"
" RANGE - set range of accepted carrier frequencies, e.g. 20000-40000\n"
" TIMEOUT - set length of space before recording stops in microseconds\n"
" SCANCODE - protocol:scancode, e.g. nec:0xa814\n\n"
@@ -185,7 +188,7 @@ static unsigned parse_emitters(char *p)
return emit;
}
-static struct file *read_file(const char *fname)
+static struct file *read_file(struct arguments *args, const char *fname)
{
bool expect_pulse = true;
int lineno = 0, lastspace = 0;
@@ -230,7 +233,7 @@ static struct file *read_file(const char *fname)
char *scancodestr;
if (!expect_pulse) {
- f->buf[len++] = IR_DEFAULT_TIMEOUT;
+ f->buf[len++] = args->gap;
expect_pulse = true;
}
@@ -486,6 +489,11 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state)
if (arguments->emitters == 0)
argp_error(state, _("cannot parse emitters `%s'"), arg);
break;
+ case 'g':
+ arguments->gap = strtoint(arg, "");
+ if (arguments->gap == 0)
+ argp_error(state, _("cannot parse gap `%s'"), arg);
+ break;
case 'D':
arguments->duty = strtoint(arg, "%");
if (arguments->duty == 0 || arguments->duty >= 100)
@@ -494,7 +502,7 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state)
case 's':
if (arguments->record || arguments->features)
argp_error(state, _("send can not be combined with record or features option"));
- s = read_file(arg);
+ s = read_file(arguments, arg);
if (s == NULL)
exit(EX_DATAERR);
@@ -884,7 +892,7 @@ err:
int main(int argc, char *argv[])
{
- struct arguments args = {};
+ struct arguments args = { .gap = IR_DEFAULT_TIMEOUT };
#ifdef ENABLE_NLS
setlocale (LC_ALL, "");
@@ -912,7 +920,7 @@ int main(int argc, char *argv[])
while (s) {
struct file *next = s->next;
if (s != args.send)
- usleep(IR_DEFAULT_TIMEOUT);
+ usleep(args.gap);
rc = lirc_send(&args, fd, features, s);
if (rc) {
--
2.11.0

View File

@@ -0,0 +1,29 @@
From 9a20a75e132e26f6c49971f9818c6fad053875f2 Mon Sep 17 00:00:00 2001
From: Sean Young <sean@mess.org>
Date: Wed, 2 Aug 2017 11:47:23 -0400
Subject: [PATCH] ir-ctl: "ir-ctl -S rc6_mce:0x800f0410" does not work on
32-bit
0x800f0410 does not fit in 32-bit signed long.
Signed-off-by: Sean Young <sean@mess.org>
---
utils/ir-ctl/ir-ctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c
index 3d66063af..562a05da3 100644
--- a/utils/ir-ctl/ir-ctl.c
+++ b/utils/ir-ctl/ir-ctl.c
@@ -152,7 +152,7 @@ static int strtoint(const char *p, const char *unit)
static bool strtoscancode(const char *p, unsigned *ret)
{
char *end;
- long arg = strtol(p, &end, 0);
+ long long arg = strtoll(p, &end, 0);
if (end == NULL || end[0] != 0)
return false;
--
2.11.0

View File

@@ -3827,7 +3827,7 @@ CONFIG_HID_GENERIC=y
CONFIG_HID_A4TECH=y CONFIG_HID_A4TECH=y
# CONFIG_HID_ACRUX is not set # CONFIG_HID_ACRUX is not set
CONFIG_HID_APPLE=y CONFIG_HID_APPLE=y
CONFIG_HID_APPLEIR=y CONFIG_HID_APPLEIR=m
CONFIG_HID_AUREAL=y CONFIG_HID_AUREAL=y
CONFIG_HID_BELKIN=y CONFIG_HID_BELKIN=y
# CONFIG_HID_BETOP_FF is not set # CONFIG_HID_BETOP_FF is not set

View File

@@ -67,3 +67,6 @@ esac
# Include deinterlacer into default VFM map # Include deinterlacer into default VFM map
echo rm default > /sys/class/vfm/map echo rm default > /sys/class/vfm/map
echo add default decoder ppmgr deinterlace amvideo > /sys/class/vfm/map echo add default decoder ppmgr deinterlace amvideo > /sys/class/vfm/map
# Turn off the annoying Kernel activity - Blue Flashing LED
echo none > /sys/class/leds/blue:heartbeat/trigger