Compare commits

...

59 Commits

Author SHA1 Message Date
Christian Hewitt
dda7270a12 Merge pull request #2193 from awiouy/8.0-mono-5.4.1
mono: update to 5.4.1.6
2017-11-09 21:45:03 +04:00
awiouy
1a34d0ad78 mono: update to 5.4.1.6 2017-11-09 13:36:59 +01:00
Christian Hewitt
08ec9e2f68 Merge pull request #2145 from awiouy/mono-54-80
mono: update to 5.4.0.201
2017-10-29 15:09:37 +04:00
awiouy
602363bcfc mono: update to 5.4.0.201 2017-10-25 18:58:36 +02:00
Lukas Rusak
191ab596d7 Merge pull request #2033 from chewitt/addons-80
kodi: binary add-on updates for 8.0
2017-10-13 21:06:59 -07:00
chewitt
cd35e13a04 kodi: binary add-on updates for 8.0 2017-10-14 04:50:56 +01:00
Christian Hewitt
6f41051159 Merge pull request #2012 from awiouy/mono-5.2-8.0
mono: update to 5.2.0.224
2017-09-21 11:03:41 +04:00
awiouy
52a7c157e5 mono: update to 5.2.0.224 2017-09-21 07:59:50 +02:00
Christian Hewitt
a065ed50b1 Merge pull request #1972 from awiouy/ls-8.0
librespot: update to ddfc28f
2017-09-14 00:06:34 +04:00
awiouy
8e7e78adae librespot: update to ddfc28f 2017-09-13 21:22:50 +02:00
awiouy
7219358a10 rust: update to 1.20.0 2017-09-13 21:21:09 +02:00
Christian Hewitt
7fe1846de3 Merge pull request #1960 from vpeter4/sundtek-80
sundtek-mediatv: localize ir_disabled parameter
2017-09-11 04:35:14 +04:00
Peter Vicman
3eaed78297 sundtek-mediatv: localize 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)
2017-09-08 18:31:56 +02:00
Christian Hewitt
8adac83b90 Merge pull request #1887 from awiouy/vnc-8.0
dispmanx_vnc: update to 77b33a6
2017-08-25 07:19:41 +04:00
Christian Hewitt
071ce51ca2 Merge pull request #1889 from awiouy/emby-8.0
emby: update to 3.2.27.0 and rename to Emby Server
2017-08-25 07:18:06 +04:00
Christian Hewitt
a038784590 Merge pull request #1882 from awiouy/mono-5.2-8.0
mono: update to 5.2.0.215
2017-08-23 10:43:28 +04:00
Christian Hewitt
faf6e178ee Merge pull request #1895 from awiouy/inadyn-8.0
inadyn: update to 2.2
2017-08-23 10:43:11 +04:00
awiouy
32ca479021 inadyn: update to 2.2 2017-08-15 21:25:25 +02:00
awiouy
0625e3f705 libconfuse: update to 3.2 2017-08-15 21:23:55 +02:00
awiouy
9b55d0e858 libite: remove package 2017-08-15 21:23:47 +02:00
awiouy
b759d30b1c emby: update to 3.2.27.0 and rename to Emby Server 2017-08-15 16:43:37 +02:00
awiouy
7f89ca5c17 dispmanx_vnc: update to 77b33a6 2017-08-15 16:26:41 +02:00
awiouy
8d97dc984d libvncserver: update to 0.9.11 and depend on libressl 2017-08-15 16:26:32 +02:00
awiouy
7cfdfb28a3 mono: update to 5.2.0.215 2017-08-15 14:28:26 +02:00
Christian Hewitt
17e72d00bf Merge pull request #1841 from Jdiesel87/libreelec-8.0
Emby: update to 3.2.26.0
2017-07-30 09:46:55 +04:00
Jdiesel87
35c3078930 Emby: update to 3.2.26.0 2017-07-28 13:39:42 -06:00
Christian Hewitt
bbe1c0efff Merge pull request #1827 from awiouy/lsrw-8.0
librespot: ux improvements
2017-07-25 08:30:08 +04:00
awiouy
0b5a8acf0e librespot: ux improvements 2017-07-24 18:47:05 +02:00
Christian Hewitt
19662a5e8b Merge pull request #1810 from awiouy/ls-105-8.0
librespot: update to 910974e
2017-07-19 12:04:01 +04:00
awiouy
25aa2cf3bd librespot: update to 910974e 2017-07-19 09:59:52 +02:00
Christian Hewitt
0f15554b24 Merge pull request #1781 from awiouy/librespot-103-8.0
librespot: switch from ffmpegx to pulseaudio to stream to Kodi
2017-07-19 09:44:10 +04:00
awiouy
fc1e611a73 librespot: switch from ffmpegx to pulseaudio to stream to Kodi 2017-07-18 18:49:14 +02:00
Christian Hewitt
c505664799 Merge pull request #1788 from awiouy/ls-103-80
librespot: update system_information_string
2017-07-13 17:24:24 +04:00
awiouy
62b6bb6bde librespot: update system_information_string 2017-07-13 13:50:52 +02:00
Christian Hewitt
938c524add Merge pull request #1771 from CvH/8.0-librespot
librespot: update addon
2017-07-10 00:20:39 +04:00
cvh
f50336148b librespot: update addon 2017-07-09 21:35:58 +02:00
Christian Hewitt
9f9678d199 Merge pull request #1735 from awiouy/librespot-streaming-8.0
librespot: enable streaming to Kodi
2017-07-06 09:47:58 +04:00
awiouy
018ab60699 librespot: enable streaming to Kodi 2017-07-05 13:05:19 +02:00
awiouy
a2900fdacc addon: add xbmc.service.library.xml 2017-07-04 21:08:33 +02:00
Christian Hewitt
9b8d0d7c14 Merge pull request #1733 from thoradia/compress-old
system-tools: bump p7zip and unrar
2017-06-27 11:20:00 +04:00
thoradia
8ecc728f7b system-tools: bump p7zip and unrar 2017-06-27 09:17:52 +02:00
thoradia
4acd8796a5 unrar: update to 5.4.5 2017-06-27 09:17:35 +02:00
thoradia
a9bf69a09d p7zip: update to 16.02 2017-06-27 09:17:18 +02:00
Christian Hewitt
a14fcb506e Merge pull request #1661 from lsellens/libreelec-8.0
peripheral.joystick: fix JOYSTICK_SUPPORT build option
2017-06-23 11:43:27 +04:00
Christian Hewitt
5e5bc0b540 Merge pull request #1707 from awiouy/librespot
librespot: depends on libvorbis built with -fPIC, use proposed upstream commit to disable audio cache
2017-06-23 09:28:32 +04:00
awiouy
4002953f19 librespot: depends on libvorbis built with -fPIC, use proposed upstream commit to disable audio cache 2017-06-20 20:02:19 +02:00
awiouy
5bdb65cffa libvorbis: compile with -fPIC 2017-06-20 19:38:07 +02:00
Christian Hewitt
e855d1ea11 Merge pull request #1705 from codesnake/wetek_hub_ap6255_le8
Backport of #1701 from master to libreelec-8.0 (Add support for AP6255 wireless chip)
2017-06-20 20:13:19 +04:00
Alex Deryskyba
8fba548a46 brcmap6xxx-aml: add support for AP6255 chip 2017-06-20 12:15:58 +02:00
Alex Deryskyba
75170db1aa brcmfmac_sdio-firmware-aml: add support for Broadcom bcm4345c0 bluetooth module built into AP6255 chip 2017-06-20 12:15:51 +02:00
Alex Deryskyba
79c59908cf wlan-firmware-aml: install firmware for AP6255 chip 2017-06-20 12:15:45 +02:00
Alex Deryskyba
6285685de7 wlan-firmware-aml: update package to wlan-firmware-aml-5f5fae7 2017-06-20 12:15:38 +02:00
Alex Deryskyba
8c39d597f7 wlan-firmware-aml: download package source from openwetek repository 2017-06-20 12:15:31 +02:00
Christian Hewitt
97fa217f54 Merge pull request #1622 from awiouy/librespot
librespot: initial addon
2017-06-20 10:00:52 +04:00
awiouy
ab246ebe97 librespot: initial addon 2017-06-20 01:04:28 +02:00
awiouy
4862642f6e rust: initial package 2017-06-19 22:53:11 +02:00
awiouy
4ab656fe61 pyalsaaudio: initial package 2017-06-19 22:53:10 +02:00
awiouy
bb4e3f354d avahi: build libdns_sd without installing it 2017-06-19 17:02:20 +02:00
lsellens
f60c721fa0 peripheral.joystick: fix JOYSTICK_SUPPORT build option 2017-05-28 23:36:00 -05:00
55 changed files with 1027 additions and 75 deletions

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="@PKG_ADDON_ID@"
name="@ADDON_NAME@"
version="@ADDON_VERSION@"
provider-name="@PROVIDER_NAME@">
<requires>
<import addon="os.libreelec.tv" version="@OS_VERSION@"/>
<import addon="xbmc.python" version="2.1.0"/>
@REQUIRES@
</requires>
<extension point="xbmc.service" library="default.py">
<provides>@PKG_ADDON_PROVIDES@</provides>
</extension>
<extension point="xbmc.python.library" library="addon.py">
<provides></provides>
</extension>
<extension point="xbmc.addon.metadata">
<summary>@PKG_SHORTDESC@</summary>
<description>
@PKG_LONGDESC@
</description>
<disclaimer>
@PKG_DISCLAIMER@
</disclaimer>
<platform>all</platform>
<news>
@PKG_ADDON_NEWS@
</news>
<assets>
<icon>resources/icon.png</icon>
<fanart>resources/fanart.png</fanart>
@PKG_ADDON_SCREENSHOT@
</assets>
</extension>
</addon>

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libconfuse"
PKG_VERSION="3.0"
PKG_VERSION="3.2"
PKG_LICENSE="https://github.com/martinh/libconfuse/blob/master/LICENSE"
PKG_SITE="https://github.com/martinh/libconfuse"
PKG_URL="https://github.com/martinh/libconfuse/archive/v$PKG_VERSION.tar.gz"

View File

@@ -0,0 +1,38 @@
################################################################################
# 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/>.
################################################################################
PKG_NAME="pyalsaaudio"
PKG_VERSION="0.8.4"
PKG_LICENSE="PSF"
PKG_SITE="http://larsimmisch.github.io/pyalsaaudio/"
PKG_URL="https://files.pythonhosted.org/packages/source/${PKG_NAME:0:1}/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain Python distutilscross:host alsa-lib"
PKG_LONGDESC="ALSA bindings"
make_target() {
export LDSHARED="$CC -shared"
export PYTHONXCPREFIX="$SYSROOT_PREFIX/usr"
python setup.py build --cross-compile
}
makeinstall_target() {
python setup.py install --root=$INSTALL --prefix=/usr
find $INSTALL/usr/lib -name "*.py" -exec rm -rf "{}" ";"
rm -rf $INSTALL/usr/lib/python*/site-packages/*.egg-info \
$INSTALL/usr/lib/python*/site-packages/*/tests
}

View File

@@ -0,0 +1,81 @@
################################################################################
# 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/>.
################################################################################
PKG_NAME="rust"
PKG_VERSION="1.20.0"
PKG_ARCH="any"
PKG_LICENSE="MIT"
PKG_SITE="https://www.rust-lang.org"
PKG_URL=""
PKG_DEPENDS="toolchain"
PKG_SECTION="devel"
PKG_LONGDESC="Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
unpack() {
:
}
configure_target() {
:
}
make_target() {
export CARGO_HOME="$ROOT/$TOOLCHAIN/.cargo"
export RUSTUP_HOME="$CARGO_HOME"
export PATH="$CARGO_HOME/bin:$PATH"
rm -rf "$CARGO_HOME"
curl https://sh.rustup.rs -sSf | sh -s -- --no-modify-path -y
rustup default "$PKG_VERSION"
case "$TARGET_ARCH" in
aarch64)
RUST_TRIPLE="aarch64-unknown-linux-gnu"
;;
arm)
RUST_TRIPLE="arm-unknown-linux-gnueabihf"
;;
x86_64)
RUST_TRIPLE="x86_64-unknown-linux-gnu"
;;
esac
if [ "$TARGET_ARCH" != "x86_64" ]; then
rustup target add "$RUST_TRIPLE"
fi
cat <<EOF >"$CARGO_HOME/config"
[target.$RUST_TRIPLE]
linker = "$CC"
EOF
cat <<'EOF' >"$CARGO_HOME/env"
export CARGO_HOME="$ROOT/$TOOLCHAIN/.cargo"
export CARGO_TARGET_DIR="$ROOT/$PKG_BUILD/.$TARGET_NAME"
export PATH="$CARGO_HOME/bin:$PATH"
export RUSTUP_HOME="$CARGO_HOME"
mkdir -p "$CARGO_TARGET_DIR"
EOF
echo "CARGO_BUILD=\"cargo build --release --target $RUST_TRIPLE\"" \
>>"$CARGO_HOME/env"
}
makeinstall_target() {
:
}

View File

@@ -17,13 +17,13 @@
################################################################################
PKG_NAME="libvncserver"
PKG_VERSION="0.9.10"
PKG_VERSION="0.9.11"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://libvnc.github.io/"
PKG_URL="https://github.com/LibVNC/libvncserver/archive/LibVNCServer-$PKG_VERSION.tar.gz"
PKG_SOURCE_DIR="libvncserver-LibVNCServer-$PKG_VERSION"
PKG_DEPENDS_TARGET="toolchain libjpeg-turbo libpng"
PKG_DEPENDS_TARGET="toolchain libjpeg-turbo libpng libressl"
PKG_SECTION="libs"
PKG_SHORTDESC="LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program."
PKG_LONGDESC="LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program."

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="p7zip"
PKG_VERSION="15.14"
PKG_VERSION="16.02"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://p7zip.sourceforge.net/"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="unrar"
PKG_VERSION="5.3.11"
PKG_VERSION="5.4.5"
PKG_ARCH="any"
PKG_LICENSE="free"
PKG_SITE="http://www.rarlab.com"

View File

@@ -1,3 +1,7 @@
8.0.103
- once a serial number is in config file then ir_disabled parameter
needs to be localized below it (it is not global parameter anymore)
8.0.102
- automatically update driver to latest version on first install
show driver version in addon settings

View File

@@ -27,6 +27,7 @@ bulk_notification=on
#[U123456789012]
#initial_dvb_mode=DVBT
#ir_disabled=1
#[NETWORK]
#device=192.168.1.1:0

View File

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

View File

@@ -136,7 +136,7 @@ if [ -z "$(pidof mediasrv)" ]; then
if [ "$USE_NET_TUNERS" = "true" -a -n "$DEVICE1_IP" ]; then
# delete all network tuner entries
awk '/^\[NETWORK\]/{flag=1; next} /^device=|^#|^$/{if (flag==1) next} /.*/{flag=0; print}' $SUNDTEK_CONF_TMP >${SUNDTEK_CONF_TMP}-net
awk '/^\[NETWORK\]/{flag=1; next} /^[^\[]|^$/{if (flag==1) next} /.*/{flag=0; print}' $SUNDTEK_CONF_TMP >${SUNDTEK_CONF_TMP}-net
mv ${SUNDTEK_CONF_TMP}-net $SUNDTEK_CONF_TMP
echo "" >>$SUNDTEK_CONF_TMP
# remove empty lines at the end of file
@@ -168,7 +168,7 @@ if [ -z "$(pidof mediasrv)" ]; then
fi
else
# delete all network tuner entries
awk '/^\[NETWORK\]/{flag=1; next} /^device=|^#|^$/{if (flag==1) next} /.*/{flag=0; print}' $SUNDTEK_CONF_TMP >${SUNDTEK_CONF_TMP}-net
awk '/^\[NETWORK\]/{flag=1; next} /^[^\[]|^$/{if (flag==1) next} /.*/{flag=0; print}' $SUNDTEK_CONF_TMP >${SUNDTEK_CONF_TMP}-net
mv ${SUNDTEK_CONF_TMP}-net $SUNDTEK_CONF_TMP
echo "" >>$SUNDTEK_CONF_TMP
# remove empty lines at the end of file
@@ -197,26 +197,26 @@ if [ -z "$(pidof mediasrv)" ]; then
[ ! -f $KEYMAP ] && KEYMAP=""
# remove setttings for this tuner
awk -v val="[$SERIAL]" '$0 == val {flag=1; next} /^ir_protocol=|^rcmap=|^initial_dvb_mode=|^#|^$/{if (flag==1) next} /.*/{flag=0; print}' $SUNDTEK_CONF_TMP >${SUNDTEK_CONF_TMP}-types
awk -v val="[$SERIAL]" '$0 == val {flag=1; next} /^[^\[]|^$/{if (flag==1) next} /.*/{flag=0; print}' $SUNDTEK_CONF_TMP >${SUNDTEK_CONF_TMP}-types
mv ${SUNDTEK_CONF_TMP}-types $SUNDTEK_CONF_TMP
echo "" >>$SUNDTEK_CONF_TMP
# remove empty lines at the end of file
sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $SUNDTEK_CONF_TMP
ADDNEW=true
if [ -n "$DVBMODE" ]; then
[ $ADDNEW = true ] && ADDNEW=false && echo -e "\n[$SERIAL]" >>$SUNDTEK_CONF_TMP
echo "initial_dvb_mode=$DVBMODE" >>$SUNDTEK_CONF_TMP
fi
if [ -n "$IRPROT" ]; then
[ $ADDNEW = true ] && ADDNEW=false && echo -e "\n[$SERIAL]" >>$SUNDTEK_CONF_TMP
echo "ir_protocol=$IRPROT" >>$SUNDTEK_CONF_TMP
fi
if [ -n "$KEYMAP" ]; then
[ $ADDNEW = true ] && ADDNEW=false && echo -e "\n[$SERIAL]" >>$SUNDTEK_CONF_TMP
echo "rcmap=$KEYMAP" >>$SUNDTEK_CONF_TMP
echo "" >>$SUNDTEK_CONF_TMP
echo "[$SERIAL]" >>$SUNDTEK_CONF_TMP
[ -n "$DVBMODE" ] && echo "initial_dvb_mode=$DVBMODE" >>$SUNDTEK_CONF_TMP
if [ "$ENABLE_IR_RECEIVER" = "true" ]; then
echo "ir_disabled=0" >>$SUNDTEK_CONF_TMP
else
echo "ir_disabled=1" >>$SUNDTEK_CONF_TMP
fi
[ -n "$IRPROT" ] && echo "ir_protocol=$IRPROT" >>$SUNDTEK_CONF_TMP
[ -n "$KEYMAP" ] && echo "rcmap=$KEYMAP" >>$SUNDTEK_CONF_TMP
echo "" >>$SUNDTEK_CONF_TMP
done
fi

View File

@@ -1,8 +1,11 @@
8.0.102
103
- Update to 77b33a6
102
- Build with Linux 4.7 RPi libraries
8.0.101
101
- Move settings to Kodi
8.0.100
100
- Initial addon

View File

@@ -17,8 +17,8 @@
################################################################################
PKG_NAME="dispmanx_vnc"
PKG_VERSION="78e6673"
PKG_REV="102"
PKG_VERSION="77b33a6"
PKG_REV="103"
PKG_ARCH="arm"
PKG_ADDON_PROJECTS="RPi RPi2"
PKG_LICENSE="OSS"

View File

@@ -1,4 +1,11 @@
114:
116
- Update to verson 3.2.27.0
- Rename to Emby Server
115
- Update to version 3.2.26.0
114
- Update to version 3.2.17.0
- Rebuild libx264, ffmpegx and imagemagick
- Use ffmpgex by default

View File

@@ -17,18 +17,18 @@
################################################################################
PKG_NAME="emby"
PKG_VERSION="3.2.17.0"
PKG_REV="114"
PKG_VERSION="3.2.27.0"
PKG_REV="116"
PKG_LICENSE="OSS"
PKG_SITE="http://emby.media"
PKG_URL="https://github.com/MediaBrowser/Emby/releases/download/$PKG_VERSION/Emby.Mono.zip"
PKG_DEPENDS_TARGET="toolchain ffmpegx imagemagick"
PKG_SECTION="service"
PKG_SHORTDESC="Emby: a personal media server"
PKG_LONGDESC="Emby ($PKG_VERSION) brings your home videos, music, and photos together, automatically converting and streaming your media on-the-fly to any device"
PKG_LONGDESC="Emby Server ($PKG_VERSION) brings your home videos, music, and photos together, automatically converting and streaming your media on-the-fly to any device"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Emby (beta)"
PKG_ADDON_NAME="Emby Server"
PKG_ADDON_TYPE="xbmc.service"
PKG_ADDON_REQUIRES="tools.mono:0.0.0"
PKG_MAINTAINER="Anton Voyl (awiouy)"

View File

@@ -1,8 +1,11 @@
103
- Update to 2.2
102
- Upgrade to 2.1
- Update to 2.1
101
- Upgrade to 2.0
- Update to 2.0
100
- Initial addon

View File

@@ -17,13 +17,13 @@
################################################################################
PKG_NAME="inadyn"
PKG_VERSION="2.1"
PKG_REV="102"
PKG_VERSION="2.2"
PKG_REV="103"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="http://troglobit.com/inadyn.html"
PKG_URL="https://github.com/troglobit/inadyn/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain libconfuse libite libressl"
PKG_DEPENDS_TARGET="toolchain libconfuse libressl"
PKG_SECTION="service/system"
PKG_SHORTDESC="Inadyn: a small and simple Dynamic Domain Name System client"
PKG_LONGDESC="Inadyn ($PKG_VERSION) is a small and simple Dynamic Domain Name System (DDNS) client with HTTPS support. It is commonly available in many GNU/Linux distributions, used in off-the-shelf routers and Internet gateways to automate the task of keeping your DNS record up to date with any IP address changes from your ISP. It can also be used in installations with redundant (backup) connections to the Internet."

View File

@@ -0,0 +1,25 @@
107
- Update to ddfc28f
106
- Rework code
- Display artist and title on track load
105
- Update to 910974e
104
- Switch from ffmpegx to pulseaudio to stream to Kodi
- Wait for sound.target
103
- Update system_information_string
102
- Update to aa86ebf
101
- Enable streaming to Kodi
100
- Initial addon

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,67 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2017-present Team LibreELEC
# Copyright (C) 2017 Shane Meagher (shanemeagher)
#
# 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="librespot"
PKG_VERSION="ddfc28f"
PKG_REV="107"
PKG_ARCH="any"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/plietar/$PKG_NAME/"
PKG_URL="https://github.com/plietar/$PKG_NAME/archive/$PKG_VERSION.zip"
PKG_DEPENDS_TARGET="toolchain avahi libvorbis pulseaudio pyalsaaudio rust"
PKG_SECTION="service"
PKG_SHORTDESC="Librespot: play Spotify through LibreELEC using a Spotify app as a remote"
PKG_LONGDESC="Librespot ($PKG_VERSION) plays Spotify through LibreELEC using the open source librespot library using a Spotify app as a remote."
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Librespot"
PKG_ADDON_TYPE="xbmc.service.library"
PKG_MAINTAINER="Anton Voyl (awiouy)"
configure_target() {
. "$ROOT/$TOOLCHAIN/.cargo/env"
export PKG_CONFIG_ALLOW_CROSS=0
strip_lto
}
make_target() {
cd src
$CARGO_BUILD --no-default-features --features "alsa-backend pulseaudio-backend"
cd "$ROOT/$PKG_BUILD/.$TARGET_NAME"/*/release
$STRIP librespot
}
makeinstall_target() {
:
}
addon() {
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID"
cp "$(get_build_dir pyalsaaudio)/.install_pkg/usr/lib/python2.7/site-packages/alsaaudio.so" \
"$ADDON_BUILD/$PKG_ADDON_ID"
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/bin"
cp "$PKG_BUILD/.$TARGET_NAME"/*/release/librespot \
"$ADDON_BUILD/$PKG_ADDON_ID/bin"
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/lib"
cp "$(get_build_dir avahi)/avahi-compat-libdns_sd/.libs/libdns_sd.so.1" \
"$ADDON_BUILD/$PKG_ADDON_ID/lib"
}

View File

@@ -0,0 +1,135 @@
From b0d70bed1d5f3614f0e966c53c3a4898c7b33918 Mon Sep 17 00:00:00 2001
From: awiouy <awiouy@gmail.com>
Date: Mon, 4 Sep 2017 23:01:38 +0200
Subject: [PATCH] use dns-sd instead of mdns for discovery
---
Cargo.lock | 19 +++++--------------
Cargo.toml | 2 +-
src/discovery.rs | 19 ++++++++++---------
src/lib.rs | 2 +-
4 files changed, 17 insertions(+), 25 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index d8128db..5f54617 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -277,7 +277,7 @@ dependencies = [
"librespot-metadata 0.1.0",
"librespot-protocol 0.1.0",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "mdns 0.2.0 (git+https://github.com/plietar/rust-mdns)",
+ "dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"num-bigint 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
"portaudio-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"protobuf 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -386,20 +386,12 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
-name = "mdns"
-version = "0.2.0"
-source = "git+https://github.com/plietar/rust-mdns#c0fc73502d7d752a4ffeb5268a017561405e218c"
+name = "dns-sd"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "dns-parser 0.3.2 (git+https://github.com/plietar/dns-parser)",
- "futures 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "multimap 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.30 (registry+https://github.com/rust-lang/crates.io-index)",
- "nix 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1099,7 +1091,6 @@ dependencies = [
"checksum magenta 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4bf0336886480e671965f794bc9b6fce88503563013d1bfb7a502c81fe3ac527"
"checksum magenta-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40d014c7011ac470ae28e2f76a02bfea4a8480f73e701353b49ad7a8d75f4699"
"checksum matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376"
-"checksum mdns 0.2.0 (git+https://github.com/plietar/rust-mdns)" = "<none>"
"checksum memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4"
"checksum mime 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c5ca99d8a021c1687882fd68dca26e601ceff5c26571c7cb41cf4ed60d57cb2d"
"checksum mio 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "dbd91d3bfbceb13897065e97b2ef177a09a438cb33612b2d371bf568819a9313"
diff --git a/Cargo.toml b/Cargo.toml
index f4e6349..131e4f3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -36,7 +36,7 @@ futures = "0.1.8"
getopts = "0.2.14"
hyper = "0.11.2"
log = "0.3.5"
-mdns = { git = "https://github.com/plietar/rust-mdns" }
+dns-sd = "0.1.3"
num-bigint = "0.1.35"
protobuf = "1.1"
rand = "0.3.13"
diff --git a/src/discovery.rs b/src/discovery.rs
index 3eaa5f0..6f9a4ae 100644
--- a/src/discovery.rs
+++ b/src/discovery.rs
@@ -6,7 +6,7 @@ use futures::sync::mpsc;
use futures::{Future, Stream, BoxFuture, Poll, Async};
use hyper::server::{Service, NewService, Request, Response, Http};
use hyper::{self, Get, Post, StatusCode};
-use mdns;
+use dns_sd::DNSService;
use num_bigint::BigUint;
use rand;
use std::collections::BTreeMap;
@@ -203,7 +203,7 @@ impl NewService for Discovery {
pub struct DiscoveryStream {
credentials: mpsc::UnboundedReceiver<Credentials>,
- _svc: mdns::Service,
+ _svc: DNSService,
task: Box<Future<Item=(), Error=io::Error>>,
}
@@ -213,7 +213,7 @@ pub fn discovery(handle: &Handle, config: ConnectConfig, device_id: String)
let (discovery, creds_rx) = Discovery::new(config.clone(), device_id);
let listener = TcpListener::bind(&"0.0.0.0:0".parse().unwrap(), handle)?;
- let addr = listener.local_addr()?;
+ let port = listener.local_addr().unwrap().port();
let http = Http::new();
let handle_ = handle.clone();
@@ -222,12 +222,13 @@ pub fn discovery(handle: &Handle, config: ConnectConfig, device_id: String)
Ok(())
}));
- let responder = mdns::Responder::spawn(&handle)?;
- let svc = responder.register(
- "_spotify-connect._tcp".to_owned(),
- config.name,
- addr.port(),
- &["VERSION=1.0", "CPath=/"]);
+ let svc = DNSService::register(Some(&*config.name),
+ "_spotify-connect._tcp",
+ None,
+ None,
+ port,
+ &["VERSION=1.0", "CPath=/"])
+ .unwrap();
Ok(DiscoveryStream {
credentials: creds_rx,
diff --git a/src/lib.rs b/src/lib.rs
index b9c920e..dfaf5a2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -13,7 +13,7 @@ extern crate base64;
extern crate crypto;
extern crate futures;
extern crate hyper;
-extern crate mdns;
+extern crate dns_sd;
extern crate num_bigint;
extern crate protobuf;
extern crate rand;

View File

@@ -0,0 +1,110 @@
From a20f55c268bf44d6923be4cad6c6fdfecfc5dd8a Mon Sep 17 00:00:00 2001
From: awiouy <awiouy@gmail.com>
Date: Tue, 12 Sep 2017 09:37:53 +0200
Subject: [PATCH] kodi hooks
---
src/player.rs | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/src/player.rs b/src/player.rs
index 29380e3..44b9a24 100644
--- a/src/player.rs
+++ b/src/player.rs
@@ -1,6 +1,7 @@
use futures::sync::oneshot;
use futures::{future, Future};
use std::borrow::Cow;
+use std::env;
use std::mem;
use std::sync::mpsc::{RecvError, TryRecvError};
use std::thread;
@@ -13,7 +14,7 @@ use core::util::{self, SpotifyId, Subfile};
use audio_backend::Sink;
use audio::{AudioFile, AudioDecrypt};
use audio::{VorbisDecoder, VorbisPacket};
-use metadata::{FileFormat, Track, Metadata};
+use metadata::{Artist, FileFormat, Track, Metadata};
use mixer::AudioFilter;
#[derive(Clone)]
@@ -215,7 +216,7 @@ impl PlayerInternal {
None => {
self.sink.stop().unwrap();
- self.run_onstop();
+ info!("onstop 1");
let old_state = mem::replace(&mut self.state, PlayerState::Stopped);
old_state.signal_end_of_track();
@@ -227,6 +228,12 @@ impl PlayerInternal {
debug!("command={:?}", cmd);
match cmd {
PlayerCommand::Load(track_id, play, position, end_of_track) => {
+ let track = Track::get(&self.session, track_id).wait().unwrap();
+ let artist = Artist::get(&self.session, track.artists[0]).wait().unwrap();
+ env::set_var("LS_ARTIST", artist.name);
+ env::set_var("LS_TITLE", track.name);
+ self.run_onstart();
+
if self.state.is_playing() {
self.sink.stop().unwrap();
}
@@ -235,7 +242,7 @@ impl PlayerInternal {
Some(decoder) => {
if play {
if !self.state.is_playing() {
- self.run_onstart();
+ info!("onstart 1");
}
self.sink.start().unwrap();
@@ -245,7 +252,7 @@ impl PlayerInternal {
};
} else {
if self.state.is_playing() {
- self.run_onstop();
+ info!("onstop 2");
}
self.state = PlayerState::Paused {
@@ -258,7 +265,7 @@ impl PlayerInternal {
None => {
end_of_track.complete(());
if self.state.is_playing() {
- self.run_onstop();
+ info!("onstop 3");
}
}
}
@@ -279,7 +286,7 @@ impl PlayerInternal {
if let PlayerState::Paused { .. } = self.state {
self.state.paused_to_playing();
- self.run_onstart();
+ info!("onstart 2");
self.sink.start().unwrap();
} else {
warn!("Player::play called from invalid state");
@@ -291,17 +298,19 @@ impl PlayerInternal {
self.state.playing_to_paused();
self.sink.stop().unwrap();
- self.run_onstop();
+ info!("onstop 4");
} else {
warn!("Player::pause called from invalid state");
}
}
PlayerCommand::Stop => {
+ self.run_onstop();
+
match self.state {
PlayerState::Playing { .. } => {
self.sink.stop().unwrap();
- self.run_onstop();
+ info!("onstop 5");
self.state = PlayerState::Stopped;
}
PlayerState::Paused { .. } => {

View File

@@ -0,0 +1,28 @@
From e9bb269936ea26b1c0c698b8d05aaf68e2e79bcc Mon Sep 17 00:00:00 2001
From: awiouy <awiouy@gmail.com>
Date: Tue, 12 Sep 2017 09:41:14 +0200
Subject: [PATCH] use librespot_sink pulseadio sink
---
src/audio_backend/pulseaudio.rs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/audio_backend/pulseaudio.rs b/src/audio_backend/pulseaudio.rs
index 3b9a09b..ce78062 100644
--- a/src/audio_backend/pulseaudio.rs
+++ b/src/audio_backend/pulseaudio.rs
@@ -23,12 +23,13 @@ impl Open for PulseAudioSink {
let name = CString::new("librespot").unwrap();
let description = CString::new("A spoty client library").unwrap();
+ let sink = CString::new("librespot_sink").unwrap();
let s = unsafe {
pa_simple_new(null(), // Use the default server.
name.as_ptr(), // Our application's name.
PA_STREAM_PLAYBACK,
- null(), // Use the default device.
+ sink.as_ptr(), // Our sink.
description.as_ptr(), // Description of our stream.
&ss, // Our sample format.
null(), // Use default channel map

View File

@@ -1,6 +1,6 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016-2017 Team LibreELEC
# 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
@@ -16,13 +16,24 @@
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="libite"
PKG_VERSION="1.8.3"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/troglobit/libite"
PKG_URL="https://github.com/troglobit/libite/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="That missing frog DNA you've been looking for"
PKG_AUTORECONF="yes"
import alsaaudio as alsa
import xbmcaddon
import xbmcgui
dialog = xbmcgui.Dialog()
strings = xbmcaddon.Addon().getLocalizedString
while True:
pcms = alsa.pcms()[1:]
if len(pcms) == 0:
dialog.ok(xbmcaddon.Addon().getAddonInfo('name'), strings(30210))
break
pcmx = dialog.select(strings(30112), pcms)
if pcmx == -1:
break
pcm = pcms[pcmx]
xbmcaddon.Addon().setSetting('ls_o', pcm)
break
del dialog
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"

View File

@@ -0,0 +1,2 @@
LS_PORT="6666"
LS_SINK="librespot_sink"

View File

@@ -0,0 +1,2 @@
#!/bin/sh
echo -e "play\n$LS_ARTIST\n$LS_TITLE" > "$LS_FIFO"

View File

@@ -0,0 +1,2 @@
#!/bin/sh
echo -e "stop" > "$LS_FIFO"

View File

@@ -0,0 +1,124 @@
#!/bin/sh
################################################################################
# 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/>.
################################################################################
activate_card() {
if [ -e "/proc/asound/$1" ]; then
return
fi
case "$LIBREELEC_ARCH" in
RPi*.arm)
if [ "$1" = "ALSA" ]; then
dtparam audio=on
sleep 1
fi
;;
*)
echo "Unable to activate card $1 on $LIBREELEC_ARCH"
exit
;;
esac
}
init_alsa() {
. /etc/os-release
if [ ! "$(cat /proc/asound/pcm 2> /dev/null)" ]; then
case "$LIBREELEC_ARCH" in
RPi*.arm)
activate_card "ALSA"
;;
*)
echo "Unable to activate an audio interface on $LIBREELEC_ARCH"
exit
;;
esac
fi
case "$ls_o" in
*:CARD=*)
card="${ls_o##*:CARD=}"
card="${card%%,*}"
activate_card "$card"
index="$(readlink /proc/asound/$card)"
index="${index##*card}"
;;
hw:*,*)
echo "The hw:d,s specification is unreliable, use device:CARD=card instead"
index="${ls_o##hw:}"
index="${index%%,*}"
card="card$index"
activate_card "$card"
;;
*)
if [ -n "$ls_o" ]; then
echo "Unknown playback device specification $ls_o"
fi
;;
esac
case "$LIBREELEC_ARCH" in
RPi*.arm)
[ "$(readlink /proc/asound/ALSA)" == "card$index" ] && [ "$pcm_3" ] &&
amixer -c "$index" cset name="PCM Playback Route" "$pcm_3"
;;
esac
}
. /etc/profile
oe_setup_addon service.librespot
LIBRESPOT="librespot --cache \"$ADDON_HOME/cache\" \
--disable-audio-cache \
--name \"Librespot@$HOSTNAME\" \
--onstart librespot.onstart \
--onstop librespot.onstop"
if [ -n "$ls_b" -a "$ls_b" != "-" ]; then
LIBRESPOT="$LIBRESPOT --bitrate $ls_b"
fi
if [ -n "$ls_p" -a -n "$ls_u" ]; then
LIBRESPOT="$LIBRESPOT --disable-discovery \
--password \"$ls_p\" \
--username \"$ls_u\""
fi
if [ "$ls_O" == "Kodi" ]; then
LIBRESPOT="$LIBRESPOT --backend pulseaudio --device-type TV"
else
init_alsa
if [ -n "$ls_o" ]; then
LIBRESPOT="$LIBRESPOT --device \"$ls_o\""
fi
LIBRESPOT="$LIBRESPOT --device-type Speaker"
fi
if [ -z "$(pactl list short modules | grep sink_name=$LS_SINK)" ]; then
pactl load-module module-null-sink sink_name="$LS_SINK" > /dev/null
fi
pactl suspend-sink "$LS_SINK" 1
if [ -z "$(pactl list short modules | grep source=$LS_SINK.monitor)" ]; then
pactl load-module module-rtp-send source="$LS_SINK.monitor" \
destination_ip=127.0.0.1 port="$LS_PORT" source_ip=127.0.0.1 > /dev/null
fi
export LS_FIFO="$ADDON_DIR/rc"
eval $LIBRESPOT

View File

@@ -0,0 +1,132 @@
################################################################################
# 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 os
import stat
import subprocess
import sys
import threading
import xbmc
import xbmcaddon
import xbmcgui
PORT = '6666'
SINK = 'librespot_sink'
def suspendSink(bit):
subprocess.call(['pactl', 'suspend-sink', SINK, bit])
def systemctl(command):
subprocess.call(['systemctl', command, xbmcaddon.Addon().getAddonInfo('id')])
class Controller(threading.Thread):
FIFO = os.path.join(xbmcaddon.Addon().getAddonInfo('path'), 'rc')
def __init__(self, player):
super(Controller, self).__init__()
self.player = player
def run(self):
try:
os.unlink(self.FIFO)
except OSError:
pass
os.mkfifo(self.FIFO)
while os.path.exists(self.FIFO) and stat.S_ISFIFO(os.stat(self.FIFO).st_mode):
with open(self.FIFO, 'r') as fifo:
command = fifo.read().splitlines()
if len(command) == 0:
break
elif command[0] == 'play' and len(command) == 3:
dialog = xbmcgui.Dialog()
dialog.notification(command[1],
command[2],
icon=xbmcaddon.Addon().getAddonInfo('icon'),
sound=False)
del dialog
self.player.play()
elif command[0] == 'stop':
self.player.stop()
def stop(self):
try:
os.unlink(self.FIFO)
except OSError:
pass
class Player(xbmc.Player):
ITEM = 'rtp://127.0.0.1:{port}'.format(port=PORT)
def __init__(self):
super(Player, self).__init__(self)
self.window = xbmcgui.Window(12006)
if self.isPlaying():
self.onPlayBackStarted()
def onPlayBackEnded(self):
suspendSink('1')
xbmc.sleep(1000)
if not self.isPlaying():
systemctl('restart')
def onPlayBackStarted(self):
if self.getPlayingFile() != self.ITEM:
suspendSink('1')
systemctl('stop')
def onPlayBackStopped(self):
systemctl('restart')
def play(self):
if not self.isPlaying() and xbmcaddon.Addon().getSetting('ls_O') == 'Kodi':
suspendSink('0')
listitem = xbmcgui.ListItem(xbmcaddon.Addon().getAddonInfo('name'))
listitem.setArt({'thumb': xbmcaddon.Addon().getAddonInfo('icon')})
super(Player, self).play(self.ITEM, listitem)
del listitem
self.window.show()
def stop(self):
suspendSink('1')
if self.isPlaying() and self.getPlayingFile() == self.ITEM:
super(Player, self).stop()
else:
systemctl('restart')
class Monitor(xbmc.Monitor):
def __init__(self, player):
super(Monitor, self).__init__(self)
self.player = player
def onSettingsChanged(self):
self.player.stop()
if __name__ == '__main__':
player = Player()
controller = Controller(player)
controller.start()
Monitor(player).waitForAbort()
controller.stop()

View File

@@ -0,0 +1,76 @@
# Kodi Media Center language file
# Addon Name: librespot
msgid ""
msgstr ""
msgctxt "#30100"
msgid "Librespot"
msgstr ""
msgctxt "#30101"
msgid "Bit rate"
msgstr ""
msgctxt "#30102"
msgid "-"
msgstr ""
msgctxt "#30103"
msgid "96"
msgstr ""
msgctxt "#30104"
msgid "160"
msgstr ""
msgctxt "#30105"
msgid "320"
msgstr ""
msgctxt "#30106"
msgid "Output"
msgstr ""
msgctxt "#30107"
msgid "Username"
msgstr ""
msgctxt "#30108"
msgid "Password"
msgstr ""
msgctxt "#30109"
msgid "Discovery mode (set username and password to disable)"
msgstr ""
msgctxt "#30110"
msgid "ALSA"
msgstr ""
msgctxt "#30111"
msgid "Configuration wizard"
msgstr ""
msgctxt "#30112"
msgid "Playback device"
msgstr ""
msgctxt "#30113"
msgid "Playback route"
msgstr ""
msgctxt "#30114"
msgid "auto detect"
msgstr ""
msgctxt "#30115"
msgid "headphone jack"
msgstr ""
msgctxt "#30116"
msgid "HDMI"
msgstr ""
msgctxt "#30210"
msgid "Could not find a playback device"
msgstr ""

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<category label="30100" >
<setting label="30101" type="labelenum" id="ls_b" lvalues="30102|30103|30104|30105" />
<setting label="30106" type="labelenum" id="ls_O" lvalues="ALSA|Kodi" />
<setting label="30107" type="text" id="ls_u" />
<setting label="30108" type="text" id="ls_p" option="hidden" visible="!eq(-1,)" />
<setting label="30109" type="bool" id="ls_d" default="true" enable="false" visible="eq(-1,)|eq(-2,)" />
<setting label="30109" type="bool" id="ls_D" default="false" enable="false" visible="!eq(-2,)+!eq(-3,)" />
</category>
<category label="30110" >
<setting label="30106" type="labelenum" id="ls_O" lvalues="ALSA|Kodi" visible="false" />
<setting label="30111" type="action" action="RunAddon(service.librespot)" enable="eq(-1,0)" />
<setting label="30112" type="text" id="ls_o" default="" enable="eq(-2,0)" />
<setting label="30113" type="enum" id="pcm_3" lvalues="30114|30115|30116" enable="eq(-3,0)" visible="eq(-1,default:CARD=ALSA)|eq(-1,sysdefault:CARD=ALSA)" />
</category>
</settings>

View File

@@ -0,0 +1,13 @@
[Unit]
Description=librespot
After=kodi.service network-online.target sound.target
Requires=kodi.service network-online.target sound.target
[Service]
EnvironmentFile=/storage/.kodi/addons/service.librespot/bin/librespot.env
ExecStart=/bin/sh /storage/.kodi/addons/service.librespot/bin/librespot.start
ExecStopPost=/usr/bin/pactl suspend-sink "$LS_SINK" 1
Restart=on-failure
[Install]
WantedBy=kodi.target

View File

@@ -1,19 +1,31 @@
105:
109
- Update to 5.4.1.6
108
- Update to 5.4.0.201
107
- Update to 5.2.0.224
106
- Update to 5.2.0.215
105
- Update to 5.0.1.1
104:
104
- Update to 5.0.0.100
103:
103
- Update to 4.8.1.0
102:
102
- Update to 4.8.0.495
101:
101
- Update to 4.2.1.102
- Build static for all projects and architectures
- Remove uneeded binaries and libraries
100:
100
- Initial release

View File

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

View File

@@ -1,3 +1,6 @@
107
- Bump p7zip and unrar
106
- Bump screen, fix colors issue

View File

@@ -18,7 +18,7 @@
PKG_NAME="system-tools"
PKG_VERSION=""
PKG_REV="106"
PKG_REV="107"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE=""

View File

@@ -36,3 +36,7 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared \
--disable-oggtest \
--disable-docs \
--disable-examples"
pre_configure_target() {
export CFLAGS="$CFLAGS -fPIC"
}

View File

@@ -3,6 +3,7 @@ ccode=CN
regrev=38
mimo_bw_cap=1
PM=0
nv_by_chip=2 \
nv_by_chip=3 \
17221 6 nvram_ap6255.txt \
17200 4 nvram_ap6330.txt \
17209 1 nvram_ap6335.txt

View File

@@ -6,6 +6,7 @@ ACTION!="add", GOTO="end"
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0xa962", GOTO="begin"
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4330", GOTO="begin"
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4335", GOTO="begin"
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0xa9bf", GOTO="begin"
GOTO="end"
LABEL="begin"
### Broadcom bcm43362/bcm20710a1 bluetooth device
@@ -20,6 +21,10 @@ ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4330", \
ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4335", \
ENV{brcm_device}="bcm4335c0"
### Broadcom bcm4345c0 bluetooth device
ATTRS{vendor}=="0x02d0", ATTRS{device}=="0xa9bf", \
ENV{brcm_device}="bcm4345c0"
ENV{brcm_device}=="bcm*", ACTION=="add", \
TAG+="systemd", ENV{SYSTEMD_WANTS}+="brcmfmac_sdio-firmware@$env{brcm_device}.service"
LABEL="end"

View File

@@ -17,11 +17,11 @@
################################################################################
PKG_NAME="wlan-firmware-aml"
PKG_VERSION="b74369c"
PKG_VERSION="5f5fae7"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"
PKG_SITE="http://openlinux.amlogic.com:8000/download/ARM/wifi/"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_URL="https://github.com/openwetek/wlan-firmware-aml/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_SECTION="firmware"
PKG_SHORTDESC="wlan-firmware-aml: Firmware for various WLAN chips used in the devices based on Amlogic SoCs"
@@ -37,10 +37,17 @@ make_target() {
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/firmware/brcm
# AP6255
cp -PR bcm_ampak/config/6255/fw_bcm43455c0_*.bin $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/6255/nvram.txt $INSTALL/usr/lib/firmware/brcm/nvram_ap6255.txt
cp -P bcm_ampak/config/6255/BT/BCM4345C0.hcd $INSTALL/usr/lib/firmware/brcm/bcm4345c0.hcd
# AP6330
cp -PR bcm_ampak/config/AP6330/Wi-Fi/fw_bcm40183b2*.bin $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/AP6330/Wi-Fi/nvram_ap6330.txt $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/AP6330/BT/bcm40183b2.hcd $INSTALL/usr/lib/firmware/brcm
# AP6335
cp -PR bcm_ampak/config/6335/fw_bcm4339a0_*.bin $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/6335/nvram.txt $INSTALL/usr/lib/firmware/brcm/nvram_ap6335.txt
cp -P bcm_ampak/config/6335/BT/bcm4335c0.hcd $INSTALL/usr/lib/firmware/brcm

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.asap"
PKG_VERSION="e56a821"
PKG_VERSION="6c13ee6"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.upse"
PKG_VERSION="23a5430"
PKG_VERSION="de58ded"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.usf"
PKG_VERSION="ce4b75c"
PKG_VERSION="99c17c9"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.wsr"
PKG_VERSION="746fcbb"
PKG_VERSION="ac3e274"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,10 +17,10 @@
################################################################################
PKG_NAME="inputstream.adaptive"
PKG_VERSION="f23ba39"
PKG_VERSION="f2904b5"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/liberty-developer/inputstream.adaptive/archive/$PKG_VERSION.tar.gz"
PKG_URL="https://github.com/peak3d/inputstream.adaptive/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform"
PKG_SECTION=""
PKG_SHORTDESC="inputstream.adaptive"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.hts"
PKG_VERSION="4e2a833"
PKG_VERSION="d0b6f1f"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.iptvsimple"
PKG_VERSION="d782816"
PKG_VERSION="2a649d7"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.mythtv"
PKG_VERSION="c4259bf"
PKG_VERSION="91cd558"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.octonet"
PKG_VERSION="ff2d4a7"
PKG_VERSION="d4077a1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.vdr.vnsi"
PKG_VERSION="4ed7d60"
PKG_VERSION="fa1e4f5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.vuplus"
PKG_VERSION="25c4883"
PKG_VERSION="c1e6a22"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="visualization.pictureit"
PKG_VERSION="66f88ff"
PKG_VERSION="8eb74a6"
PKG_REV="1"
PKG_ARCH="x86_64"
PKG_LICENSE="GPL"

View File

@@ -228,7 +228,6 @@ PKG_CMAKE_OPTS_TARGET="-DNATIVEPREFIX=$ROOT/$TOOLCHAIN \
$KODI_OPENMAX \
$KODI_VDPAU \
$KODI_VAAPI \
$KODI_JOYSTICK \
$KODI_CEC \
$KODI_XORG \
$KODI_SAMBA \

View File

@@ -67,7 +67,7 @@ PKG_CONFIGURE_OPTS_TARGET="py_cv_mod_gtk_=yes \
--disable-manpages \
--disable-xmltoman \
--disable-tests \
--disable-compat-libdns_sd \
--enable-compat-libdns_sd \
--disable-compat-howl \
--with-xml=expat \
--with-avahi-user=avahi \
@@ -101,6 +101,7 @@ post_makeinstall_target() {
rm -f $INSTALL/usr/bin/avahi-bookmarks
rm -f $INSTALL/usr/bin/avahi-publish*
rm -f $INSTALL/usr/bin/avahi-resolve*
rm -f $INSTALL/usr/lib/libdns_sd*
mkdir -p $INSTALL/usr/share/services
cp -P $PKG_DIR/default.d/*.conf $INSTALL/usr/share/services

View File

@@ -43,6 +43,10 @@ if [ "$MEDIACENTER" = "kodi" ]; then
pycrypto"
# other packages
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET LibreELEC-settings \
xmlstarlet \
peripheral.joystick"
xmlstarlet"
if [ "$JOYSTICK_SUPPORT" = "yes" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET peripheral.joystick"
fi
fi