mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
394 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34251ce19e | ||
|
|
7bec817c62 | ||
|
|
558aaffd5a | ||
|
|
86724c9b87 | ||
|
|
46a1abc03c | ||
|
|
6308070ac2 | ||
|
|
8c476b3056 | ||
|
|
30d5dda637 | ||
|
|
f85652573f | ||
|
|
1db6430a0c | ||
|
|
5bd4e7e1bb | ||
|
|
10e3f72ede | ||
|
|
6efdba41f7 | ||
|
|
449394cfd6 | ||
|
|
ff6f06149f | ||
|
|
919d71078b | ||
|
|
2a2a8cda2c | ||
|
|
f55a83afcb | ||
|
|
3ce4418833 | ||
|
|
cf2f80badf | ||
|
|
307cf64bfb | ||
|
|
0e5e0a9e04 | ||
|
|
83688801c7 | ||
|
|
fcaac62c5f | ||
|
|
b96a7982ac | ||
|
|
74881c1fd2 | ||
|
|
593b769300 | ||
|
|
477ade7b16 | ||
|
|
036bcad109 | ||
|
|
473b14446a | ||
|
|
ce45d89896 | ||
|
|
321b9dcd34 | ||
|
|
950033c06e | ||
|
|
a18834178b | ||
|
|
14c18a2de5 | ||
|
|
9553f6c11c | ||
|
|
22b62bed59 | ||
|
|
d1ff72f766 | ||
|
|
32502a5cf6 | ||
|
|
6fa2333414 | ||
|
|
152ceec969 | ||
|
|
6fbb705947 | ||
|
|
0e0a7de92f | ||
|
|
f02dead4a7 | ||
|
|
ed1cb4be13 | ||
|
|
29092e2ce5 | ||
|
|
114a9fb370 | ||
|
|
9d21adb6f3 | ||
|
|
a36921fbe6 | ||
|
|
c8f3e6708b | ||
|
|
6256e166aa | ||
|
|
a3c3fa5cce | ||
|
|
573e184cf5 | ||
|
|
fe325e7aed | ||
|
|
b088522f57 | ||
|
|
12f55ac1c6 | ||
|
|
b70a270365 | ||
|
|
a1a9217f8e | ||
|
|
91aa5ed603 | ||
|
|
f298846adb | ||
|
|
210b1e85d7 | ||
|
|
95c89a8fcc | ||
|
|
2c4bfc4696 | ||
|
|
b145e22f78 | ||
|
|
ba4f137c73 | ||
|
|
3f94aca091 | ||
|
|
767ec892e2 | ||
|
|
07063e9a40 | ||
|
|
0121c1e36b | ||
|
|
6cb43ead57 | ||
|
|
7262ed18e4 | ||
|
|
3771c8eb3a | ||
|
|
ed925ce674 | ||
|
|
60d8f22457 | ||
|
|
4b9b515e15 | ||
|
|
8f8843c937 | ||
|
|
ea51339ad4 | ||
|
|
bc003a1070 | ||
|
|
3e01e22216 | ||
|
|
0e0f3fb7c5 | ||
|
|
b8e7542999 | ||
|
|
9b7cab907b | ||
|
|
5c23e3fabc | ||
|
|
725aba8db0 | ||
|
|
cf901d6522 | ||
|
|
40d6f0578e | ||
|
|
fdd2a2eb1e | ||
|
|
d63f3bdb8d | ||
|
|
ea82652eb9 | ||
|
|
4c2eb77ff9 | ||
|
|
15505f80ca | ||
|
|
093234a14d | ||
|
|
b7852952ba | ||
|
|
2737a78b57 | ||
|
|
2b840b1dd5 | ||
|
|
ba3b984460 | ||
|
|
902ae4a600 | ||
|
|
8d68698bdb | ||
|
|
b4886ff7cd | ||
|
|
f056ffee6b | ||
|
|
d1edf6f772 | ||
|
|
d4275b65d7 | ||
|
|
1a97097a30 | ||
|
|
a2000b86c0 | ||
|
|
78dc13c2f9 | ||
|
|
58aaa9f266 | ||
|
|
70e6533397 | ||
|
|
ffc8962357 | ||
|
|
20a1612253 | ||
|
|
6069dd14c4 | ||
|
|
2e9cbc83e1 | ||
|
|
7b4edccf81 | ||
|
|
43a2a0d5c0 | ||
|
|
6b9e43b8d6 | ||
|
|
73ed78fbbd | ||
|
|
6b4e607288 | ||
|
|
44bc649684 | ||
|
|
27bf55215b | ||
|
|
f73054755f | ||
|
|
19d7e8ee43 | ||
|
|
ff28651650 | ||
|
|
9bc26c1bc7 | ||
|
|
7e118a4dad | ||
|
|
01a5422d0b | ||
|
|
ec9172bb6f | ||
|
|
c5dbf3d94f | ||
|
|
cc7e9e85af | ||
|
|
fa51bfcf57 | ||
|
|
8c5eecfb37 | ||
|
|
7e4af5d0ab | ||
|
|
b97a1d80b7 | ||
|
|
7ff4063b58 | ||
|
|
f4d7f4cf7a | ||
|
|
95ccc177db | ||
|
|
746bace7d7 | ||
|
|
ff01e1d966 | ||
|
|
3f7618ab9a | ||
|
|
a6e57b5674 | ||
|
|
ecf13324cb | ||
|
|
c546b5979a | ||
|
|
ff79b153c6 | ||
|
|
aa4fbd7ab1 | ||
|
|
7023931d7c | ||
|
|
82eb3158ae | ||
|
|
7fa5143928 | ||
|
|
00a162d5cb | ||
|
|
7b3f683968 | ||
|
|
9507eb48c2 | ||
|
|
ae61666e00 | ||
|
|
980dc049c9 | ||
|
|
e4fa6ff804 | ||
|
|
ff0b3b6465 | ||
|
|
9817b9d937 | ||
|
|
f91baeb8dc | ||
|
|
3d0546ddbc | ||
|
|
c7b3ffe573 | ||
|
|
7945de4290 | ||
|
|
714a3fc2ea | ||
|
|
3e910acdab | ||
|
|
1fbca9e3b3 | ||
|
|
27ae3473ba | ||
|
|
c28895b04d | ||
|
|
168fa73fdb | ||
|
|
cadffc0208 | ||
|
|
8e10d3604a | ||
|
|
25c01ba39c | ||
|
|
7621731a35 | ||
|
|
50a575cd9d | ||
|
|
4e4b826bc7 | ||
|
|
9c2bb7c5ed | ||
|
|
46b83941bf | ||
|
|
d38a928281 | ||
|
|
ff74c4b7ab | ||
|
|
4aadb2013e | ||
|
|
ad905fa334 | ||
|
|
9d2280d6fb | ||
|
|
ad0543112e | ||
|
|
0015373fea | ||
|
|
173b83b28e | ||
|
|
a777d1e3fe | ||
|
|
4a6592e635 | ||
|
|
3b6d0f3e7c | ||
|
|
3b0f62e75a | ||
|
|
8b4aff7d69 | ||
|
|
9eb67f02a9 | ||
|
|
5e21db7499 | ||
|
|
8170ae661f | ||
|
|
afb99f9b76 | ||
|
|
ca8d8a0345 | ||
|
|
b62eb63f10 | ||
|
|
52e5e21226 | ||
|
|
90be8140a5 | ||
|
|
58f400fb35 | ||
|
|
06461b6e7e | ||
|
|
6d16dc9399 | ||
|
|
3b9461b7c0 | ||
|
|
efa8c1d95a | ||
|
|
3640dcdb46 | ||
|
|
632c954cff | ||
|
|
a0c977ddfe | ||
|
|
ce555f26e7 | ||
|
|
f6123f7c87 | ||
|
|
473be051cf | ||
|
|
945a7f338f | ||
|
|
02a6db5ddb | ||
|
|
1de0c74187 | ||
|
|
98ad4cafd3 | ||
|
|
0a8e88c664 | ||
|
|
0849a34c75 | ||
|
|
14f40f50fe | ||
|
|
69649cbcd5 | ||
|
|
c20f1d1b4f | ||
|
|
74283a83e6 | ||
|
|
07b8b99b94 | ||
|
|
f94e159ff5 | ||
|
|
53b857cbe0 | ||
|
|
083d729c00 | ||
|
|
69258d33bf | ||
|
|
bf4f1626e9 | ||
|
|
716b8278dc | ||
|
|
12cfeb37a7 | ||
|
|
c06c559c88 | ||
|
|
030f03896f | ||
|
|
09b0a8d9e1 | ||
|
|
77f8e89bfe | ||
|
|
6b5dc87d62 | ||
|
|
de08817d21 | ||
|
|
9cd1ba2ff4 | ||
|
|
fe22f229a3 | ||
|
|
a1af223fdb | ||
|
|
aed76dd14b | ||
|
|
d51a1d9e32 | ||
|
|
bb68944a2f | ||
|
|
24a9b86e53 | ||
|
|
53c54474b3 | ||
|
|
d7911a0e5f | ||
|
|
fc350227e8 | ||
|
|
5ce4c9b9be | ||
|
|
7b5bb1eccc | ||
|
|
3d5d9bb810 | ||
|
|
af87c06c55 | ||
|
|
004765ff88 | ||
|
|
6a6334f2fd | ||
|
|
9832770f9e | ||
|
|
0691728636 | ||
|
|
f1ef6741d8 | ||
|
|
009708a7d8 | ||
|
|
b080dfb92b | ||
|
|
413556c3a2 | ||
|
|
0e8f009cfa | ||
|
|
5a3251fe52 | ||
|
|
a9ff8d0ca2 | ||
|
|
1c7310c27e | ||
|
|
b66a9560c4 | ||
|
|
b7ae3da30a | ||
|
|
c596b55db7 | ||
|
|
e0280ea6d3 | ||
|
|
a86698dc1d | ||
|
|
780c52e9f2 | ||
|
|
97adc11fa7 | ||
|
|
97259d9047 | ||
|
|
683ab7ee3d | ||
|
|
9e6a81902c | ||
|
|
9900b89dea | ||
|
|
3e6dec890d | ||
|
|
7ac1120db3 | ||
|
|
508f4f6415 | ||
|
|
322f636ba7 | ||
|
|
72a232b76b | ||
|
|
5c3d8fa4d9 | ||
|
|
491e2ae3c4 | ||
|
|
90fbebf51c | ||
|
|
84813a13ac | ||
|
|
918c8836d1 | ||
|
|
9bf0c62589 | ||
|
|
4292d9b3e7 | ||
|
|
a1c9a1d88a | ||
|
|
ee610c5147 | ||
|
|
9b8f50327d | ||
|
|
fdce156ffc | ||
|
|
a4c77ff5df | ||
|
|
c961f399b1 | ||
|
|
76ca1be07c | ||
|
|
07b543cef0 | ||
|
|
2dff1483d6 | ||
|
|
28db923d0c | ||
|
|
76838a2ada | ||
|
|
cd3828a3a0 | ||
|
|
2154b4a443 | ||
|
|
5d479240e7 | ||
|
|
9621472958 | ||
|
|
c2333ca728 | ||
|
|
92e72d5d89 | ||
|
|
87c051620d | ||
|
|
15902be7bc | ||
|
|
0f6c67d008 | ||
|
|
b1f4435aa2 | ||
|
|
95fc06c22c | ||
|
|
248df9fc20 | ||
|
|
5caed7f096 | ||
|
|
09a110462b | ||
|
|
79beae5de9 | ||
|
|
4972ec6b8b | ||
|
|
ef955a58e2 | ||
|
|
1ee9676ad3 | ||
|
|
cbc4468094 | ||
|
|
498742d87b | ||
|
|
6096dde704 | ||
|
|
0a4eef7558 | ||
|
|
cd771304cd | ||
|
|
18c8175bba | ||
|
|
af5e469dd3 | ||
|
|
8588272f4d | ||
|
|
c2ce5cc44c | ||
|
|
abc78fcae4 | ||
|
|
c8e7bcedd4 | ||
|
|
f19d9359d2 | ||
|
|
27e5f314dd | ||
|
|
2d164aa463 | ||
|
|
1be5d14d06 | ||
|
|
02a4a3f7c9 | ||
|
|
dc3cc80344 | ||
|
|
a5edf61734 | ||
|
|
5baaad9e49 | ||
|
|
a59badeef8 | ||
|
|
1c7bb89a88 | ||
|
|
32a349df51 | ||
|
|
2e5e7380b6 | ||
|
|
3997e74461 | ||
|
|
3c924bb4f7 | ||
|
|
3d1c25fc9c | ||
|
|
8dc8bfa136 | ||
|
|
e2ba2dfa80 | ||
|
|
42706f338b | ||
|
|
faaea8141f | ||
|
|
7bf7f5f77a | ||
|
|
3d23d92fbf | ||
|
|
c1a54f9ad5 | ||
|
|
e61c979e2a | ||
|
|
ea7d4c445c | ||
|
|
8db2e6705e | ||
|
|
4448113a7b | ||
|
|
04102ad874 | ||
|
|
bb5c5509f1 | ||
|
|
107e046f43 | ||
|
|
e6bcfb83fd | ||
|
|
f9eab5d248 | ||
|
|
160ce21140 | ||
|
|
dc19d7cfe1 | ||
|
|
792e217186 | ||
|
|
ac61c98340 | ||
|
|
8712868362 | ||
|
|
0155cd74ad | ||
|
|
c566394ae4 | ||
|
|
22d10112de | ||
|
|
e0441dec60 | ||
|
|
2f9488c284 | ||
|
|
4f7ad1833f | ||
|
|
304f24dcbc | ||
|
|
d9d901c707 | ||
|
|
4ed7faeba3 | ||
|
|
1ed44a9b27 | ||
|
|
a7ca4e3979 | ||
|
|
5c0da4607b | ||
|
|
d990769bab | ||
|
|
45d2ecfbf2 | ||
|
|
028a6b291c | ||
|
|
c76e7355c1 | ||
|
|
6dd213329a | ||
|
|
59c41e76a1 | ||
|
|
4e373d99ae | ||
|
|
145fc05656 | ||
|
|
3d54e09252 | ||
|
|
d9e06bd4bd | ||
|
|
6a9d95d161 | ||
|
|
2be7c80a01 | ||
|
|
7b0b4eec6f | ||
|
|
3f3e198c9b | ||
|
|
285acff880 | ||
|
|
82399ef04c | ||
|
|
0aadee2bad | ||
|
|
d2944b96fa | ||
|
|
8fcded8e79 | ||
|
|
5ec4748cfd | ||
|
|
3349daf476 | ||
|
|
79bfcdbee8 | ||
|
|
e243a066b1 | ||
|
|
61130bb896 | ||
|
|
f7d7a8aad8 | ||
|
|
1965e3511c | ||
|
|
bfa75c711f | ||
|
|
8c0a56de90 | ||
|
|
2689cd4218 | ||
|
|
1a7335f86b |
21
CHANGELOG
21
CHANGELOG
@@ -1,20 +1,5 @@
|
||||
OpenELEC (Version 2.1)
|
||||
OpenELEC (Version 3.0)
|
||||
|
||||
Changelog OpenELEC-2.0 to OpenELEC-2.1
|
||||
for a detailed Changelog from OpenELEC-2.0 to OpenELEC-3.0 see:
|
||||
https://github.com/OpenELEC/OpenELEC.tv/compare/2.0.0...3.0.0
|
||||
|
||||
Added packages:
|
||||
- add package 'ppp'
|
||||
- add package 'pptp'
|
||||
|
||||
Package updates:
|
||||
- update linux to linux-3.5
|
||||
- update dialog to dialog-1.1-20120215
|
||||
- update connman to connman-1.4
|
||||
|
||||
Added functions:
|
||||
- sshd can be enabled via OpenELEC Settings addon
|
||||
- add PPTP support
|
||||
|
||||
Changed functions:
|
||||
|
||||
Removed functions:
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
<description>
|
||||
@PKG_LONGDESC@
|
||||
</description>
|
||||
<disclaimer>
|
||||
@PKG_DISCLAIMER@
|
||||
</disclaimer>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
|
||||
@@ -34,7 +34,7 @@ fi
|
||||
|
||||
get_graphicdrivers() {
|
||||
if [ "$GRAPHIC_DRIVERS" = "all" ]; then
|
||||
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 fglrx nvidia vmware virtualbox"
|
||||
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 fglrx fglrx-legacy nvidia vmware virtualbox"
|
||||
fi
|
||||
|
||||
for drv in $GRAPHIC_DRIVERS; do
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="2.99.3"
|
||||
OPENELEC_VERSION="3.0.1"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="3.0"
|
||||
|
||||
2
packages/3rdparty/download/SABnzbd/meta
vendored
2
packages/3rdparty/download/SABnzbd/meta
vendored
@@ -26,7 +26,7 @@ PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://sabnzbd.org/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/sabnzbdplus/sabnzbdplus/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}-src.tar.gz"
|
||||
PKG_DEPENDS="Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline"
|
||||
PKG_BUILD_DEPENDS="toolchain Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline"
|
||||
PKG_BUILD_DEPENDS="toolchain Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline configobj"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/downloadmanager"
|
||||
PKG_SHORTDESC="SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can."
|
||||
|
||||
4
packages/3rdparty/lib/ccid/meta
vendored
4
packages/3rdparty/lib/ccid/meta
vendored
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ccid"
|
||||
PKG_VERSION="1.4.8"
|
||||
PKG_VERSION="1.4.9"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://pcsclite.alioth.debian.org/ccid.html"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3768/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3866/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain pcsc-lite"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
2
packages/3rdparty/multimedia/vdr/meta
vendored
2
packages/3rdparty/multimedia/vdr/meta
vendored
@@ -27,7 +27,7 @@ PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.tvdr.de"
|
||||
PKG_URL="ftp://ftp.tvdr.de/vdr/Developer/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="fontconfig freetype libcap"
|
||||
PKG_BUILD_DEPENDS="toolchain gettext fontconfig freetype fribidi libcap libjpeg-turbo bzip2 libXfont expat"
|
||||
PKG_BUILD_DEPENDS="toolchain fontconfig freetype libcap libjpeg-turbo bzip2"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr: A powerful DVB TV application"
|
||||
|
||||
4
packages/3rdparty/system/pcsc-lite/meta
vendored
4
packages/3rdparty/system/pcsc-lite/meta
vendored
@@ -20,12 +20,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pcsc-lite"
|
||||
PKG_VERSION="1.8.7"
|
||||
PKG_VERSION="1.8.8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://pcsclite.alioth.debian.org/pcsclite.html"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3842/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3862/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain libusb"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -24,3 +24,4 @@
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/
|
||||
cp -P $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/
|
||||
cp -P $PKG_DIR/settings-default.xml $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
3.0.3
|
||||
improved python script for modifying tuners
|
||||
3.0.2
|
||||
added addon settings for
|
||||
modifying tuner type (DVB-C, DVB-T, ATSC)
|
||||
setting delays
|
||||
3.0.1
|
||||
- bump addon version
|
||||
- binary files are stored with OpenELEC image
|
||||
- addon is used to start userspace program
|
||||
|
||||
bump addon version
|
||||
binary files are stored with OpenELEC image
|
||||
addon is used to start userspace program
|
||||
2.1.3
|
||||
- bump addon version for new kernel
|
||||
|
||||
bump addon version for new kernel
|
||||
2.1.2
|
||||
- dvbhdhomerun upgraded to 0.0.10
|
||||
|
||||
dvbhdhomerun upgraded to 0.0.10
|
||||
2.1.1
|
||||
- rebuild for addon version 2.1
|
||||
|
||||
rebuild for addon version 2.1
|
||||
2.0.1
|
||||
- starting userspace DVB drivers from Tvheadend/VDR
|
||||
|
||||
starting userspace DVB drivers from Tvheadend/VDR
|
||||
2.0.0
|
||||
- initial version of HDHomeRun driver
|
||||
initial version of HDHomeRun driver
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 35 KiB |
@@ -20,7 +20,7 @@
|
||||
|
||||
PKG_NAME="hdhomerun"
|
||||
PKG_VERSION="3.0"
|
||||
PKG_REV="1"
|
||||
PKG_REV="3"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/"
|
||||
@@ -31,8 +31,6 @@ PKG_PRIORITY="optional"
|
||||
PKG_SECTION="driver/dvb"
|
||||
PKG_SHORTDESC="A linux DVB driver for the HDHomeRun (http://www.silicondust.com)."
|
||||
PKG_LONGDESC="A linux DVB driver for the HDHomeRun (http://www.silicondust.com)."
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.python.script"
|
||||
|
||||
4
packages/addons/driver/hdhomerun/settings-default.xml
Normal file
4
packages/addons/driver/hdhomerun/settings-default.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<settings>
|
||||
<setting id="PRE_WAIT" value="2" />
|
||||
<setting id="POST_WAIT" value="1" />
|
||||
</settings>
|
||||
28
packages/addons/driver/hdhomerun/source/bin/hdhomerun.start
Normal file
28
packages/addons/driver/hdhomerun/source/bin/hdhomerun.start
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.hdhomerun"
|
||||
|
||||
logger -t Hdhomerun "### Hdhomerun manual start ###"
|
||||
. $ADDON_DIR/bin/userspace-driver.sh
|
||||
@@ -20,6 +20,7 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
SUNDTEK_READY="/var/run/sundtek.ready"
|
||||
. /etc/profile
|
||||
|
||||
touch $SUNDTEK_READY
|
||||
logger -t Hdhomerun "### Hdhomerun manual stop ###"
|
||||
killall userhdhomerun
|
||||
107
packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh
Executable file → Normal file
107
packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh
Executable file → Normal file
@@ -2,7 +2,7 @@
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -24,6 +24,11 @@
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.hdhomerun"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.hdhomerun"
|
||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
|
||||
# modules are not automatically loaded
|
||||
modprobe dvb_hdhomerun
|
||||
modprobe dvb_hdhomerun_fe
|
||||
|
||||
mkdir -p $ADDON_HOME
|
||||
|
||||
@@ -31,31 +36,101 @@ if [ ! -f "$ADDON_HOME/dvbhdhomerun.sample" ]; then
|
||||
cp $ADDON_DIR/config/* $ADDON_HOME/
|
||||
fi
|
||||
|
||||
if [ ! -f "$ADDON_SETTINGS" ]; then
|
||||
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
||||
fi
|
||||
|
||||
mkdir -p /var/config
|
||||
cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/hdhomerun-addon.conf
|
||||
. /var/config/hdhomerun-addon.conf
|
||||
|
||||
if [ -z "$(pidof userhdhomerun)" ]; then
|
||||
if [ "$ENABLE_TUNER_TYPES" = "true" ]; then
|
||||
DVBHDHOMERUN_CONF_TMP=/tmp/dvbhdhomerun.conf
|
||||
touch $ADDON_HOME/dvbhdhomerun.conf
|
||||
cp $ADDON_HOME/dvbhdhomerun.conf $DVBHDHOMERUN_CONF_TMP
|
||||
|
||||
# get tuner serial numbers
|
||||
SERIALS=$(cat /var/config/hdhomerun-addon.conf | sed -n 's|^ATTACHED_TUNER_\(.*\)_\(.*\)_DVBMODE=.*|\1-\2|gp' | sort | uniq)
|
||||
. /var/config/hdhomerun-addon.conf
|
||||
|
||||
for SERIAL in ${SERIALS[@]}; do
|
||||
SERIAL_VAR=$(echo $SERIAL | sed 's|-|_|')
|
||||
DVBMODE=$(eval echo \$ATTACHED_TUNER_${SERIAL_VAR}_DVBMODE)
|
||||
FULLNAME=$(eval echo \$ATTACHED_TUNER_${SERIAL_VAR}_FULLNAME)
|
||||
DISABLE=$(eval echo \$ATTACHED_TUNER_${SERIAL_VAR}_DISABLE)
|
||||
|
||||
[ "$DVBMODE" = "auto" ] && DVBMODE=""
|
||||
|
||||
# remove setttings for this tuner
|
||||
awk -v val="[$SERIAL]" '$0 == val {flag=1; next} /^tuner_type=|^use_full_name=|^disable=|^#|^$/{if (flag==1) next} /.*/{flag=0; print}' $DVBHDHOMERUN_CONF_TMP >${DVBHDHOMERUN_CONF_TMP}-types
|
||||
mv ${DVBHDHOMERUN_CONF_TMP}-types $DVBHDHOMERUN_CONF_TMP
|
||||
echo "" >>$DVBHDHOMERUN_CONF_TMP
|
||||
# remove empty lines at the end of file
|
||||
sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $DVBHDHOMERUN_CONF_TMP
|
||||
|
||||
ADDNEW=true
|
||||
if [ -n "$DVBMODE" ]; then
|
||||
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
||||
echo "tuner_type=$DVBMODE" >>$DVBHDHOMERUN_CONF_TMP
|
||||
fi
|
||||
if [ "$FULLNAME" = "true" ]; then
|
||||
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
||||
echo "use_full_name=true" >>$DVBHDHOMERUN_CONF_TMP
|
||||
fi
|
||||
if [ "$DISABLE" = "true" ]; then
|
||||
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
||||
echo "disable=true" >>$DVBHDHOMERUN_CONF_TMP
|
||||
fi
|
||||
|
||||
echo "" >>$DVBHDHOMERUN_CONF_TMP
|
||||
done
|
||||
|
||||
# remove logging from libhdhomerun library
|
||||
awk -v val="[libhdhomerun]" '$0 == val {flag=1; next} /^enable=|^logfile=|^#|^$/{if (flag==1) next} /.*/{flag=0; print}' $DVBHDHOMERUN_CONF_TMP >${DVBHDHOMERUN_CONF_TMP}-log
|
||||
mv ${DVBHDHOMERUN_CONF_TMP}-log $DVBHDHOMERUN_CONF_TMP
|
||||
echo "" >>$DVBHDHOMERUN_CONF_TMP
|
||||
# remove empty lines at the end of file
|
||||
sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $DVBHDHOMERUN_CONF_TMP
|
||||
|
||||
if [ "$LIBHDHOMERUN_LOG" = "true" ]; then
|
||||
cat >>$DVBHDHOMERUN_CONF_TMP << EOF
|
||||
|
||||
[libhdhomerun]
|
||||
enable=true
|
||||
logfile=/var/log/dvbhdhomerun_libhdhomerun.log
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
md5_1=$(md5sum -b $DVBHDHOMERUN_CONF_TMP | awk '{print $1}')
|
||||
md5_2=$(md5sum -b $ADDON_HOME/dvbhdhomerun.conf | awk '{print $1}')
|
||||
if [ "$md5_1" != "$md5_2" ]; then
|
||||
# file changed - copy to addon home
|
||||
cp $DVBHDHOMERUN_CONF_TMP $ADDON_HOME/dvbhdhomerun.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f /tmp/dvbhdhomerun
|
||||
if [ -f $ADDON_HOME/dvbhdhomerun.conf ]; then
|
||||
ln -s $ADDON_HOME/dvbhdhomerun.conf /tmp/dvbhdhomerun
|
||||
fi
|
||||
|
||||
# modules are not automatically loaded
|
||||
modprobe dvb_hdhomerun
|
||||
modprobe dvb_hdhomerun_fe
|
||||
usleep 2000000
|
||||
[ -z "$PRE_WAIT" ] && PRE_WAIT=0
|
||||
PRE_WAIT=$(( $PRE_WAIT *1 ))
|
||||
[ -z "$POST_WAIT" ] && POST_WAIT=0
|
||||
POST_WAIT=$(( $POST_WAIT *1 ))
|
||||
|
||||
# could be useful
|
||||
if [ -f $ADDON_HOME/pre-wait.sh ]; then
|
||||
sh $ADDON_HOME/pre-wait.sh
|
||||
fi
|
||||
logger -t HDHomeRun "### Pre wait for $PRE_WAIT sec ###"
|
||||
sleep $PRE_WAIT
|
||||
|
||||
mkdir -p /var/log/
|
||||
rm -f /var/log/dvbhdhomerun.log
|
||||
|
||||
|
||||
userhdhomerun -f
|
||||
# how much time should we wait?
|
||||
usleep 1000000
|
||||
if [ -f $ADDON_HOME/post-wait.sh ]; then
|
||||
sh $ADDON_HOME/post-wait.sh
|
||||
fi
|
||||
|
||||
logger -t HDHomeRun "### Post wait for $POST_WAIT sec ###"
|
||||
sleep $POST_WAIT
|
||||
|
||||
# save adapter names in background
|
||||
(
|
||||
@@ -67,3 +142,5 @@ if [ -z "$(pidof userhdhomerun)" ]; then
|
||||
fi
|
||||
)&
|
||||
fi
|
||||
|
||||
logger -t HDHomeRun "### HDHomeRun ready ###"
|
||||
|
||||
15
packages/addons/driver/hdhomerun/source/default.py
Executable file → Normal file
15
packages/addons/driver/hdhomerun/source/default.py
Executable file → Normal file
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -21,3 +21,16 @@
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
|
||||
__settings__ = xbmcaddon.Addon(id = 'driver.dvb.hdhomerun')
|
||||
__cwd__ = __settings__.getAddonInfo('path')
|
||||
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
||||
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
||||
|
||||
__hdhomerun_log__ = '/var/log/dvbhdhomerun.log'
|
||||
|
||||
if __name__ == "__main__" and len(sys.argv) == 2 and sys.argv[1] == 'refresh_tuners':
|
||||
sys.path.append(__resources_lib__)
|
||||
from functions import refresh_hdhomerun_tuners
|
||||
refresh_hdhomerun_tuners(__settings_xml__, __hdhomerun_log__)
|
||||
__settings__.openSettings()
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="1000">General</string>
|
||||
<string id="1020">Pre wait time [sec]</string>
|
||||
<string id="1030">Post wait time [sec]</string>
|
||||
<string id="1040">Enable libhdhomerun logging</string>
|
||||
|
||||
<string id="9000">Tuner settings</string>
|
||||
<string id="9005">Enable modifying settings</string>
|
||||
<string id="9010">Refresh tuners... (press me)</string>
|
||||
<string id="9020"> use full name</string>
|
||||
<string id="9030"> disabled</string>
|
||||
</strings>
|
||||
@@ -0,0 +1,272 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
import xmlpp
|
||||
from xml.dom import minidom
|
||||
|
||||
__sundtek_userspace__ = '/storage/.xbmc/userdata/addon_data/driver.dvb.sundtek-mediatv/'
|
||||
|
||||
######################################################################################################
|
||||
# backup setting.xml file only if backup doesn't exist
|
||||
def settings_backup(settings_xml):
|
||||
try:
|
||||
with open(settings_xml + '_orig') as f: pass
|
||||
except IOError as e:
|
||||
shutil.copyfile(settings_xml, settings_xml + '_orig')
|
||||
|
||||
######################################################################################################
|
||||
# restore setting.xml file from backup
|
||||
def settings_restore(settings_xml):
|
||||
try:
|
||||
shutil.copyfile(settings_xml + '_orig', settings_xml)
|
||||
except IOError as e:
|
||||
print 'Error restoring file:', settings_xml
|
||||
|
||||
######################################################################################################
|
||||
# get hdhomerun supported devices on a system (only name like 101ADD2B-0)
|
||||
def get_devices_hdhomerun(hdhomerun_log):
|
||||
tuners = []
|
||||
try:
|
||||
for line in open(hdhomerun_log, 'r'):
|
||||
line = line.strip()
|
||||
if line.startswith('Registered tuner'):
|
||||
name = line.split(':');
|
||||
name = name[2].strip()
|
||||
tuners.append(name)
|
||||
except IOError:
|
||||
print 'Error reading hdhomerun log file', hdhomerun_log
|
||||
return tuners
|
||||
|
||||
"""
|
||||
root ~ # grep "Registered tuner" /var/log/dvbhdhomerun.log
|
||||
Registered tuner, id from kernel: 0 name: 101ADD2B-0
|
||||
Registered tuner, id from kernel: 1 name: 101ADD2B-1
|
||||
Registered tuner, id from kernel: 2 name: 1031D75A-0
|
||||
Registered tuner, id from kernel: 3 name: 1031D75A-1
|
||||
"""
|
||||
|
||||
######################################################################################################
|
||||
# get sundtek supported devices on a system (name, serial number, type)
|
||||
def get_devices_sundtek(mediaclient_e):
|
||||
tuners = []
|
||||
try:
|
||||
p = os.popen(mediaclient_e, "r")
|
||||
while 1:
|
||||
line = p.readline()
|
||||
if not line:
|
||||
break
|
||||
else:
|
||||
str = line.strip()
|
||||
if str.startswith('device '):
|
||||
name = str[str.find("[")+1:str.find("]")]
|
||||
tuners.append([name, 0, 's'])
|
||||
|
||||
if str.startswith('[SERIAL]:'):
|
||||
line = p.readline()
|
||||
str = line.strip()
|
||||
if str.startswith('ID:'):
|
||||
id = str.split(':');
|
||||
id = id[1].strip()
|
||||
tuners[len(tuners)-1] = [name, id, 's']
|
||||
|
||||
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:
|
||||
print 'Error getting sundtek tuners info'
|
||||
return tuners
|
||||
|
||||
"""
|
||||
root ~ # mediaclient -e
|
||||
**** 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
|
||||
[BUS]:
|
||||
ID: 1-7
|
||||
[SERIAL]:
|
||||
ID: U110763295205
|
||||
[DVB-C]:
|
||||
FRONTEND: /dev/dvb/adapter0/frontend0
|
||||
DVR: /dev/dvb/adapter0/dvr0
|
||||
DMX: /dev/dvb/adapter0/demux0
|
||||
[DVB-T]:
|
||||
FRONTEND: /dev/dvb/adapter0/frontend0
|
||||
DVR: /dev/dvb/adapter0/dvr0
|
||||
DMX: /dev/dvb/adapter0/demux0
|
||||
[ANALOG-TV]:
|
||||
VIDEO0: /dev/video0
|
||||
VBI0: /dev/vbi0
|
||||
[FM-RADIO]:
|
||||
RADIO0: /dev/radio0
|
||||
RDS: /dev/rds0
|
||||
[REMOTECONTROL]:
|
||||
INPUT0: /dev/mediainput0
|
||||
[OSS]:
|
||||
OSS0: /dev/dsp0
|
||||
"""
|
||||
|
||||
######################################################################################################
|
||||
# parse settings.xml file
|
||||
def parse_settings(settings_xml):
|
||||
try:
|
||||
xmldoc = minidom.parse(settings_xml)
|
||||
category = xmldoc.getElementsByTagName('category')
|
||||
return xmldoc
|
||||
except Exception as inst:
|
||||
print 'Error parse settings file', settings_xml
|
||||
return None
|
||||
|
||||
######################################################################################################
|
||||
# remove all nodes with id started with ATTACHED_TUNER_
|
||||
def remove_old_tuners(xmldoc):
|
||||
category = xmldoc.getElementsByTagName('category')
|
||||
for node_cat in category:
|
||||
setting = node_cat.getElementsByTagName('setting')
|
||||
for node_set in setting :
|
||||
if 'id' in node_set.attributes.keys() and not node_set.getAttribute('id').find('ATTACHED_TUNER_'):
|
||||
node_set.parentNode.removeChild(node_set)
|
||||
|
||||
######################################################################################################
|
||||
# add new hdhomerun tuners
|
||||
def add_hdhomerun(xmldoc, node_cat, tuners):
|
||||
for ix, tuner in enumerate(tuners):
|
||||
tuner_var = tuner.replace('-', '_')
|
||||
|
||||
node1 = xmldoc.createElement("setting")
|
||||
node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DVBMODE')
|
||||
node1.setAttribute("label", tuner)
|
||||
node1.setAttribute("type", 'labelenum')
|
||||
node1.setAttribute("default", 'auto')
|
||||
node1.setAttribute("values", 'auto|ATSC|DVB-C|DVB-T')
|
||||
node_cat.appendChild(node1)
|
||||
|
||||
node2 = xmldoc.createElement("setting")
|
||||
node2.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_FULLNAME')
|
||||
node2.setAttribute("label", '9020')
|
||||
node2.setAttribute("type", 'bool')
|
||||
node2.setAttribute("default", 'false')
|
||||
node_cat.appendChild(node2)
|
||||
|
||||
node3 = xmldoc.createElement("setting")
|
||||
node3.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DISABLE')
|
||||
node3.setAttribute("label", '9030')
|
||||
node3.setAttribute("type", 'bool')
|
||||
node3.setAttribute("default", 'false')
|
||||
node_cat.appendChild(node3)
|
||||
|
||||
# for tuner
|
||||
|
||||
######################################################################################################
|
||||
# add new sundtek tuners
|
||||
def add_sundtek(xmldoc, node_cat, tuners):
|
||||
for ix, tuner in enumerate(tuners):
|
||||
tuner_name = tuner[0]
|
||||
tuner_serial = tuner[1]
|
||||
tuner_type = tuner[2]
|
||||
|
||||
node1 = xmldoc.createElement("setting")
|
||||
node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_DVBMODE')
|
||||
node1.setAttribute("label", tuner_name + ", " + tuner_serial)
|
||||
node1.setAttribute("type", 'labelenum')
|
||||
|
||||
if (tuner_type == 's'):
|
||||
node1.setAttribute("default", 'DVB-S')
|
||||
node1.setAttribute("values", 'DVB-S')
|
||||
else:
|
||||
node1.setAttribute("default", 'DVB-C')
|
||||
node1.setAttribute("values", 'DVB-C|DVB-T')
|
||||
|
||||
node_cat.appendChild(node1)
|
||||
|
||||
node2 = xmldoc.createElement("setting")
|
||||
node2.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_IRPROT')
|
||||
node2.setAttribute("label", '9020')
|
||||
node2.setAttribute("type", 'labelenum')
|
||||
node2.setAttribute("default", 'auto')
|
||||
node2.setAttribute("values", 'auto|RC5|NEC|RC6')
|
||||
node_cat.appendChild(node2)
|
||||
|
||||
node3 = xmldoc.createElement("setting")
|
||||
node3.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_KEYMAP')
|
||||
node3.setAttribute("label", '9030')
|
||||
node3.setAttribute("type", 'file')
|
||||
node3.setAttribute("mask", '*.map')
|
||||
node3.setAttribute("default", __sundtek_userspace__)
|
||||
node_cat.appendChild(node3)
|
||||
|
||||
# for tuner
|
||||
|
||||
######################################################################################################
|
||||
# add new ATTACHED_TUNER_ nodes for available tuners
|
||||
def add_new_tuners(xmldoc, tuners, which):
|
||||
category = xmldoc.getElementsByTagName('category')
|
||||
for node_cat in category:
|
||||
setting = node_cat.getElementsByTagName('setting')
|
||||
for node_set in setting :
|
||||
if 'label' in node_set.attributes.keys() and '9010' in node_set.getAttribute('label'):
|
||||
if which == 'hdhomerun':
|
||||
add_hdhomerun(xmldoc, node_cat, tuners)
|
||||
break
|
||||
elif which == 'sundtek':
|
||||
add_sundtek(xmldoc, node_cat, tuners)
|
||||
break
|
||||
|
||||
|
||||
######################################################################################################
|
||||
# save settings.xml file back
|
||||
def save_settings(settings_xml, xmldoc):
|
||||
try:
|
||||
outputfile = open(settings_xml, 'w')
|
||||
xmlpp.pprint(xmldoc.toxml(), output = outputfile, indent=2)
|
||||
outputfile.close()
|
||||
except IOError:
|
||||
print 'Error saving file:', settings_xml
|
||||
settings_restore(settings_xml)
|
||||
|
||||
######################################################################################################
|
||||
# refresh hdhomerun tuners in settings.xml file
|
||||
def refresh_hdhomerun_tuners(settings_xml, hdhomerun_log):
|
||||
settings_backup(settings_xml)
|
||||
tuners = get_devices_hdhomerun(hdhomerun_log)
|
||||
xmldoc = parse_settings(settings_xml)
|
||||
if xmldoc == None:
|
||||
print 'No hdhomerun tuners found'
|
||||
else:
|
||||
remove_old_tuners(xmldoc)
|
||||
add_new_tuners(xmldoc, tuners, 'hdhomerun')
|
||||
save_settings(settings_xml, xmldoc)
|
||||
|
||||
######################################################################################################
|
||||
# refresh sundtek tuners in settings.xml file
|
||||
def refresh_sundtek_tuners(settings_xml, mediaclient_e):
|
||||
settings_backup(settings_xml)
|
||||
tuners = get_devices_sundtek(mediaclient_e)
|
||||
xmldoc = parse_settings(settings_xml)
|
||||
if xmldoc == None:
|
||||
print 'No sundtek tuners found'
|
||||
else:
|
||||
remove_old_tuners(xmldoc)
|
||||
add_new_tuners(xmldoc, tuners, 'sundtek')
|
||||
save_settings(settings_xml, xmldoc)
|
||||
161
packages/addons/driver/hdhomerun/source/resources/lib/xmlpp.py
Normal file
161
packages/addons/driver/hdhomerun/source/resources/lib/xmlpp.py
Normal file
@@ -0,0 +1,161 @@
|
||||
"""Pretty print an XML document.
|
||||
|
||||
LICENCE:
|
||||
Copyright (c) 2008, Fredrik Ekholdt
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Fredrik Ekholdt nor the names of its contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE."""
|
||||
|
||||
import sys as _sys
|
||||
import re as _re
|
||||
|
||||
def _usage(this_file):
|
||||
return """SYNOPSIS: pretty print an XML document
|
||||
USAGE: python %s <filename> \n""" % this_file
|
||||
|
||||
def _pprint_line(indent_level, line, width=100, output=_sys.stdout):
|
||||
if line.strip():
|
||||
start = ""
|
||||
number_chars = 0
|
||||
for l in range(indent_level):
|
||||
start = start + " "
|
||||
number_chars = number_chars + 1
|
||||
try:
|
||||
elem_start = _re.findall("(\<\W{0,1}\w+:\w+) ?", line)[0]
|
||||
elem_finished = _re.findall("([?|\]\]/]*\>)", line)[0]
|
||||
#should not have *
|
||||
attrs = _re.findall("(\S*?\=\".*?\")", line)
|
||||
output.write(start + elem_start)
|
||||
number_chars = len(start + elem_start)
|
||||
for attr in attrs:
|
||||
if (attrs.index(attr) + 1) == len(attrs):
|
||||
number_chars = number_chars + len(elem_finished)
|
||||
if (number_chars + len(attr) + 1) > width:
|
||||
output.write("\n")
|
||||
for i in range(len(start + elem_start) + 1):
|
||||
output.write(" ")
|
||||
number_chars = len(start + elem_start) + 1
|
||||
else:
|
||||
output.write(" ")
|
||||
number_chars = number_chars + 1
|
||||
output.write(attr)
|
||||
number_chars = number_chars + len(attr)
|
||||
output.write(elem_finished + "\n")
|
||||
except IndexError:
|
||||
#give up pretty print this line
|
||||
output.write(start + line + "\n")
|
||||
|
||||
|
||||
def _pprint_elem_content(indent_level, line, output=_sys.stdout):
|
||||
if line.strip():
|
||||
for l in range(indent_level):
|
||||
output.write(" ")
|
||||
output.write(line + "\n")
|
||||
|
||||
def _get_next_elem(data):
|
||||
start_pos = data.find("<")
|
||||
end_pos = data.find(">") + 1
|
||||
retval = data[start_pos:end_pos]
|
||||
stopper = retval.rfind("/")
|
||||
if stopper < retval.rfind("\""):
|
||||
stopper = -1
|
||||
single = (stopper > -1 and ((retval.find(">") - stopper) < (stopper - retval.find("<"))))
|
||||
|
||||
ignore_excl = retval.find("<!") > -1
|
||||
ignore_question = retval.find("<?") > -1
|
||||
|
||||
if ignore_excl:
|
||||
cdata = retval.find("<![CDATA[") > -1
|
||||
if cdata:
|
||||
end_pos = data.find("]]>")
|
||||
if end_pos > -1:
|
||||
end_pos = end_pos + len("]]>")
|
||||
|
||||
elif ignore_question:
|
||||
end_pos = data.find("?>") + len("?>")
|
||||
ignore = ignore_excl or ignore_question
|
||||
|
||||
no_indent = ignore or single
|
||||
|
||||
#print retval, end_pos, start_pos, stopper > -1, no_indent
|
||||
return start_pos, \
|
||||
end_pos, \
|
||||
stopper > -1, \
|
||||
no_indent
|
||||
|
||||
def get_pprint(xml, indent=4, width=80):
|
||||
"""Returns the pretty printed xml """
|
||||
class out:
|
||||
output = ""
|
||||
|
||||
def write(self, string):
|
||||
self.output += string
|
||||
out = out()
|
||||
pprint(xml, output=out, indent=indent, width=width)
|
||||
|
||||
return out.output
|
||||
|
||||
|
||||
def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
||||
"""Pretty print xml.
|
||||
Use output to select output stream. Default is sys.stdout
|
||||
Use indent to select indentation level. Default is 4 """
|
||||
data = xml
|
||||
indent_level = 0
|
||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
||||
while ((start_pos > -1 and end_pos > -1)):
|
||||
_pprint_elem_content(indent_level, data[:start_pos].strip(),
|
||||
output=output)
|
||||
data = data[start_pos:]
|
||||
if is_stop and not no_indent:
|
||||
indent_level = indent_level - indent
|
||||
_pprint_line(indent_level,
|
||||
data[:end_pos - start_pos],
|
||||
width=width,
|
||||
output=output)
|
||||
data = data[end_pos - start_pos:]
|
||||
if not is_stop and not no_indent :
|
||||
indent_level = indent_level + indent
|
||||
|
||||
if not data:
|
||||
break
|
||||
else:
|
||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "-h" in _sys.argv or "--help" in _sys.argv:
|
||||
_sys.stderr.write(_usage(_sys.argv[0]))
|
||||
_sys.exit(1)
|
||||
if len(_sys.argv) < 2:
|
||||
_sys.stderr.write(_usage(_sys.argv[0]))
|
||||
_sys.exit(1)
|
||||
else:
|
||||
filename = _sys.argv[1]
|
||||
fh = open(filename)
|
||||
|
||||
pprint(fh.read(), output=_sys.stdout, indent=4, width=80)
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="1000" >
|
||||
<setting type="sep" />
|
||||
<setting id="PRE_WAIT" type="number" label="1020" default="2" />
|
||||
<setting id="POST_WAIT" type="number" label="1030" default="1" />
|
||||
<setting id="LIBHDHOMERUN_LOG" type="bool" label="1040" default="false" />
|
||||
</category>
|
||||
<category label="9000">
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_TUNER_TYPES" type="bool" label="9005" default="true" />
|
||||
<setting label="9010" option="close" type="action" action="RunScript($ID, refresh_tuners)" />
|
||||
</category>
|
||||
</settings>
|
||||
8
packages/addons/driver/hdhomerun/source/sleep.d/hdhomerun.power
Executable file → Normal file
8
packages/addons/driver/hdhomerun/source/sleep.d/hdhomerun.power
Executable file → Normal file
@@ -23,22 +23,22 @@
|
||||
. /etc/profile
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="hdhomerun"
|
||||
LOCKFILE="$LOCKDIR/hdhomerun"
|
||||
|
||||
case "$1" in
|
||||
hibernate|suspend)
|
||||
if [ -n "$(pidof userhdhomerun)" ]; then
|
||||
progress "Shutting down HDHomeRun driver for suspending..."
|
||||
mkdir -p "$LOCKDIR"
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
touch "$LOCKFILE"
|
||||
killall userhdhomerun
|
||||
fi
|
||||
;;
|
||||
|
||||
thaw|resume)
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ]; then
|
||||
if [ -f "$LOCKFILE" ]; then
|
||||
# driver started within Tvheadend/VDR
|
||||
rm -rf "$LOCKDIR/$LOCKFILE"
|
||||
rm -f "$LOCKFILE"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
3.0.4
|
||||
improved python script for modifying tuners
|
||||
3.0.3
|
||||
new addon settings:
|
||||
added addon settings for modifying tuner type (DVB-C, DVB-T)
|
||||
3.0.2
|
||||
added addon settings
|
||||
enable HW PID filter (enabled for RPi by default)
|
||||
enable IR receiver
|
||||
allow sharing local tuner over network
|
||||
use network tuners
|
||||
3.0.2
|
||||
special version
|
||||
3.0.1
|
||||
addon renamed to just sundtek
|
||||
added addon settings
|
||||
sundtek's binaries are downloaded on first run
|
||||
automatically download new version of the binaries if available
|
||||
added preload library to .profile (to run mediaclient, w_scan, ... from console)
|
||||
@@ -0,0 +1,32 @@
|
||||
0x01 KEY_SELECT
|
||||
0x02 KEY_3
|
||||
0x03 KEY_EXIT
|
||||
0x04 KEY_1
|
||||
0x05 KEY_5
|
||||
0x06 KEY_6
|
||||
0x07 KEY_CHANNELDOWN
|
||||
0x08 KEY_2
|
||||
0x09 KEY_CHANNELUP
|
||||
0x0a KEY_9
|
||||
0x0b KEY_ZOOM
|
||||
0x0c KEY_7
|
||||
0x0d KEY_8
|
||||
0x0e KEY_VOLUMEUP
|
||||
0x0f KEY_4
|
||||
0x10 KEY_BACK
|
||||
0x11 KEY_0
|
||||
0x12 KEY_ENTER
|
||||
0x13 KEY_VOLUMEDOWN
|
||||
0x14 KEY_RECORD
|
||||
0x15 KEY_STOP
|
||||
0x16 KEY_PLAY
|
||||
0x17 KEY_MUTE
|
||||
0x18 KEY_UP
|
||||
0x19 KEY_DOWN
|
||||
0x1a KEY_LEFT
|
||||
0x1b KEY_RIGHT
|
||||
0x1c KEY_RED
|
||||
0x1d KEY_GREEN
|
||||
0x1e KEY_YELLOW
|
||||
0x1f KEY_BLUE
|
||||
0x43 KEY_POWER
|
||||
32
packages/addons/driver/sundtek-mediatv/config/rc_key_ok.map
Normal file
32
packages/addons/driver/sundtek-mediatv/config/rc_key_ok.map
Normal file
@@ -0,0 +1,32 @@
|
||||
0x01 KEY_SELECT
|
||||
0x02 KEY_3
|
||||
0x03 KEY_EXIT
|
||||
0x04 KEY_1
|
||||
0x05 KEY_5
|
||||
0x06 KEY_6
|
||||
0x07 KEY_CHANNELDOWN
|
||||
0x08 KEY_2
|
||||
0x09 KEY_CHANNELUP
|
||||
0x0a KEY_9
|
||||
0x0b KEY_ZOOM
|
||||
0x0c KEY_7
|
||||
0x0d KEY_8
|
||||
0x0e KEY_VOLUMEUP
|
||||
0x0f KEY_4
|
||||
0x10 KEY_BACK
|
||||
0x11 KEY_0
|
||||
0x12 KEY_OK
|
||||
0x13 KEY_VOLUMEDOWN
|
||||
0x14 KEY_RECORD
|
||||
0x15 KEY_STOP
|
||||
0x16 KEY_PLAY
|
||||
0x17 KEY_MUTE
|
||||
0x18 KEY_UP
|
||||
0x19 KEY_DOWN
|
||||
0x1a KEY_LEFT
|
||||
0x1b KEY_RIGHT
|
||||
0x1c KEY_RED
|
||||
0x1d KEY_GREEN
|
||||
0x1e KEY_YELLOW
|
||||
0x1f KEY_BLUE
|
||||
0x43 KEY_POWER
|
||||
@@ -1,9 +1,6 @@
|
||||
#
|
||||
# sundtek.conf
|
||||
#
|
||||
# Call attach/detach script when new device appears/disappears
|
||||
# Do not change this line (OpenElec addon require this) !
|
||||
device_attach=/storage/.xbmc/addons/driver.dvb.sundtek/bin/device-attached.sh
|
||||
|
||||
# enable HW PID filter (default on for RPi)
|
||||
use_hwpidfilter=off
|
||||
BIN
packages/addons/driver/sundtek-mediatv/icon/icon.png
Normal file
BIN
packages/addons/driver/sundtek-mediatv/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
@@ -18,9 +18,9 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sundtek"
|
||||
PKG_NAME="sundtek-mediatv"
|
||||
PKG_VERSION="3.0"
|
||||
PKG_REV="3"
|
||||
PKG_REV="4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://support.sundtek.com/"
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
. /etc/profile
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek"
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek-mediatv"
|
||||
|
||||
logger -t Sundtek "### Sundtek manual start ###"
|
||||
. $ADDON_DIR/bin/userspace-driver.sh
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
. /etc/profile
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek"
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek-mediatv"
|
||||
|
||||
export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -32,10 +32,9 @@ net_tuner_num_fix() {
|
||||
echo $num
|
||||
}
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.sundtek"
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek-mediatv"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.sundtek-mediatv"
|
||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
SUNDTEK_READY="/var/run/sundtek.ready"
|
||||
|
||||
mkdir -p $ADDON_HOME
|
||||
|
||||
@@ -45,9 +44,11 @@ else
|
||||
# in case of missing entries in addon home's sundtek.conf
|
||||
entry_set="$(grep use_hwpidfilter $ADDON_HOME/sundtek.conf 2>/dev/null)"
|
||||
if [ -z "$entry_set" ]; then
|
||||
sed -i 's|\(^device_attach=.*\)|\1\n# enable listening on network\nenablenetwork=off|g' $ADDON_HOME/sundtek.conf
|
||||
sed -i 's|\(^device_attach=.*\)|\1\n\n# enable HW PID filter\nuse_hwpidfilter=off\n|g' $ADDON_HOME/sundtek.conf
|
||||
sed -i 's|^device_attach=.*|# device_attach not used anymore\n\n# enable HW PID filter\nuse_hwpidfilter=off\n\n# enable listening on network\nenablenetwork=off|g' $ADDON_HOME/sundtek.conf
|
||||
sed -i 's|^#first_adapter=.*|first_adapter=0|g' $ADDON_HOME/sundtek.conf
|
||||
|
||||
sed -i 's|.*network tuner IP address (OpenELEC specific).*||g' $ADDON_HOME/sundtek.conf
|
||||
sed -i 's|.*network_tuner_ip=.*||g' $ADDON_HOME/sundtek.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -55,6 +56,9 @@ if [ ! -f "$ADDON_SETTINGS" ]; then
|
||||
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
||||
fi
|
||||
|
||||
[ ! -f $ADDON_HOME/rc_key_enter.map ] && mv $ADDON_HOME/rc_key_enter $ADDON_HOME/rc_key_enter.map
|
||||
[ ! -f $ADDON_HOME/rc_key_ok.map ] && mv $ADDON_HOME/rc_key_ok $ADDON_HOME/rc_key_ok.map
|
||||
|
||||
mkdir -p /var/config
|
||||
cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf
|
||||
. /var/config/sundtek-addon.conf
|
||||
@@ -74,6 +78,10 @@ if [ "$AUTO_UPDATE" = "true" -a -f $ADDON_DIR/bin/mediasrv ]; then
|
||||
fi
|
||||
|
||||
if [ ! -f $ADDON_DIR/bin/mediasrv ]; then
|
||||
# remove renamed addon if exist
|
||||
rm -fr "$HOME/.xbmc/addons/driver.dvb.sundtek"
|
||||
rm -fr "$HOME/userdata/addon_data/driver.dvb.sundtek"
|
||||
|
||||
logger -t Sundtek "### Downloading installer ###"
|
||||
cd $ADDON_DIR
|
||||
mkdir -p bin lib tmp
|
||||
@@ -90,7 +98,8 @@ if [ ! -f $ADDON_DIR/bin/mediasrv ]; then
|
||||
# enable HW PID filter on RPi by default
|
||||
sed -i 's|^use_hwpidfilter=.*|use_hwpidfilter=on|g' $ADDON_DIR/config/sundtek.conf
|
||||
sed -i 's|^use_hwpidfilter=.*|use_hwpidfilter=on|g' $ADDON_HOME/sundtek.conf
|
||||
sed -i 's|.*id="ENABLE_HW_PID_FILTER" value=.*|<setting id="ENABLE_HW_PID_FILTER" value="true" />|' $ADDON_SETTINGS
|
||||
sed -i 's|.*id="ENABLE_HW_PID_FILTER".*|<setting id="ENABLE_HW_PID_FILTER" value="true" />|' $ADDON_DIR/settings-default.xml
|
||||
sed -i 's|.*id="ENABLE_HW_PID_FILTER".*|<setting id="ENABLE_HW_PID_FILTER" value="true" />|' $ADDON_SETTINGS
|
||||
else
|
||||
logger -t Sundtek "### Unsupported architecture ###"
|
||||
cd ..
|
||||
@@ -124,15 +133,18 @@ if [ ! -f $ADDON_HOME/driver-version.txt ]; then
|
||||
cp $ADDON_DIR/driver-version.txt $ADDON_HOME/
|
||||
fi
|
||||
|
||||
# enable to install same addon version again
|
||||
rm -f /storage/.xbmc/addons/packages/driver.dvb.sundtek-*
|
||||
# enable to install same addon package version again
|
||||
#rm -f /storage/.xbmc/addons/packages/driver.dvb.sundtek*
|
||||
|
||||
# add alias for /opt/bin/mediaclient
|
||||
alias_set="$(grep libmediaclient.so /storage/.profile 2>/dev/null)"
|
||||
if [ -z "$alias_set" ]; then
|
||||
echo "" >>/storage/.profile
|
||||
echo "[ -f /storage/.xbmc/addons/driver.dvb.sundtek/lib/libmediaclient.so ] && export LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek/lib/libmediaclient.so" >>/storage/.profile
|
||||
echo "[ -f /storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so ] && export LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so" >>/storage/.profile
|
||||
echo "" >>/storage/.profile
|
||||
else
|
||||
# fix name
|
||||
sed -i 's|/driver.dvb.sundtek/|/driver.dvb.sundtek-mediatv/|g' /storage/.profile
|
||||
fi
|
||||
|
||||
export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so
|
||||
@@ -160,7 +172,6 @@ fi
|
||||
if [ -z "$(pidof mediasrv)" ]; then
|
||||
rm -f /var/log/mediasrv.log
|
||||
rm -f /var/log/mediaclient.log
|
||||
rm -f $SUNDTEK_READY
|
||||
|
||||
SUNDTEK_CONF_TMP=/tmp/sundtek.conf
|
||||
cp $ADDON_HOME/sundtek.conf $SUNDTEK_CONF_TMP
|
||||
@@ -205,9 +216,9 @@ if [ -z "$(pidof mediasrv)" ]; then
|
||||
mv ${SUNDTEK_CONF_TMP}-net $SUNDTEK_CONF_TMP
|
||||
echo "" >>$SUNDTEK_CONF_TMP
|
||||
# remove empty lines at the end of file
|
||||
sed -i '${/^$/d;}' $SUNDTEK_CONF_TMP
|
||||
sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $SUNDTEK_CONF_TMP
|
||||
# add entries
|
||||
echo "[NETWORK]" >>$SUNDTEK_CONF_TMP
|
||||
echo -e "\n[NETWORK]" >>$SUNDTEK_CONF_TMP
|
||||
for dev in $(seq 0 $DEVICE1_NUM); do
|
||||
echo "device=$DEVICE1_IP:$dev" >>$SUNDTEK_CONF_TMP
|
||||
done
|
||||
@@ -237,7 +248,53 @@ if [ -z "$(pidof mediasrv)" ]; then
|
||||
mv ${SUNDTEK_CONF_TMP}-net $SUNDTEK_CONF_TMP
|
||||
echo "" >>$SUNDTEK_CONF_TMP
|
||||
# remove empty lines at the end of file
|
||||
sed -i '${/^$/d;}' $SUNDTEK_CONF_TMP
|
||||
sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $SUNDTEK_CONF_TMP
|
||||
fi
|
||||
|
||||
if [ "$ENABLE_TUNER_TYPES" = "true" ]; then
|
||||
# get tuner serial numbers
|
||||
SERIALS=$(cat /var/config/sundtek-addon.conf | sed -n 's|^ATTACHED_TUNER_\(.*\)_DVBMODE=.*|\1|gp' | sort | uniq)
|
||||
. /var/config/sundtek-addon.conf
|
||||
|
||||
for SERIAL in ${SERIALS[@]}; do
|
||||
DVBMODE=$(eval echo \$ATTACHED_TUNER_${SERIAL}_DVBMODE)
|
||||
IRPROT=$(eval echo \$ATTACHED_TUNER_${SERIAL}_IRPROT)
|
||||
KEYMAP=$(eval echo \$ATTACHED_TUNER_${SERIAL}_KEYMAP)
|
||||
|
||||
if [ "$DVBMODE" = "DVB-T" ]; then
|
||||
# only set DVB-T because default is DVB-C (and DVB-S is not set either)
|
||||
DVBMODE="DVBT"
|
||||
else
|
||||
DVBMODE=""
|
||||
fi
|
||||
|
||||
[ "$IRPROT" = "NEC" -o "$IRPROT" = "auto" ] && IRPROT=""
|
||||
|
||||
[ ! -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
|
||||
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
|
||||
fi
|
||||
|
||||
echo "" >>$SUNDTEK_CONF_TMP
|
||||
done
|
||||
fi
|
||||
|
||||
md5_1=$(md5sum -b $SUNDTEK_CONF_TMP | awk '{print $1}')
|
||||
@@ -247,29 +304,15 @@ if [ -z "$(pidof mediasrv)" ]; then
|
||||
cp $SUNDTEK_CONF_TMP $ADDON_HOME/sundtek.conf
|
||||
fi
|
||||
|
||||
#rm "$SUNDTEK_CONF_TMP"
|
||||
|
||||
mediasrv --wait-for-devices -p $ADDON_DIR/bin -c $ADDON_HOME/sundtek.conf -d
|
||||
|
||||
# wait for device to get attached or connected
|
||||
for i in $(seq 1 240); do
|
||||
if [ -f $SUNDTEK_READY ]; then
|
||||
rm -f $SUNDTEK_READY
|
||||
logger -t Sundtek "### Sundtek ready ###"
|
||||
|
||||
if [ -n $SETTLE_TIME -a $SETTLE_TIME -gt 0 ]; then
|
||||
logger -t Sundtek "### Settle for $SETTLE_TIME sec ###"
|
||||
sleep $SETTLE_TIME
|
||||
fi
|
||||
|
||||
break
|
||||
elif [ "$i" = "240" ]; then
|
||||
logger -t Sundtek "### No Sundtek device attached or connected ###"
|
||||
return
|
||||
else
|
||||
usleep 500000
|
||||
fi
|
||||
done
|
||||
# wait few seconds
|
||||
[ -z "$SETTLE_TIME" ] && SETTLE_TIME=0
|
||||
SETTLE_TIME=$(( $SETTLE_TIME *1 ))
|
||||
if [ $SETTLE_TIME -gt 0 ]; then
|
||||
logger -t Sundtek "### Settle for $SETTLE_TIME sec ###"
|
||||
sleep $SETTLE_TIME
|
||||
fi
|
||||
|
||||
if [ "$ANALOG_TV" = "true" ]; then
|
||||
logger -t Sundtek "### Switching to analog TV mode ###"
|
||||
@@ -292,3 +335,5 @@ if [ -z "$(pidof mediasrv)" ]; then
|
||||
fi
|
||||
)&
|
||||
fi
|
||||
|
||||
logger -t Sundtek "### Sundtek ready ###"
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -21,3 +21,18 @@
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
|
||||
__settings__ = xbmcaddon.Addon(id = 'driver.dvb.sundtek-mediatv')
|
||||
__cwd__ = __settings__.getAddonInfo('path')
|
||||
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
||||
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
||||
|
||||
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient'))
|
||||
__ld_preload__ = xbmc.translatePath(os.path.join(__cwd__, 'lib', 'libmediaclient.so'))
|
||||
__mediaclient_e__ = 'LD_PRELOAD=' + __ld_preload__ + ' ' + __mediaclient__ + ' -e'
|
||||
|
||||
if __name__ == "__main__" and len(sys.argv) == 2 and sys.argv[1] == 'refresh_tuners':
|
||||
sys.path.append(__resources_lib__)
|
||||
from functions import refresh_sundtek_tuners
|
||||
refresh_sundtek_tuners(__settings_xml__, __mediaclient_e__)
|
||||
__settings__.openSettings()
|
||||
@@ -3,11 +3,12 @@
|
||||
<string id="1000">General</string>
|
||||
<string id="1011">Auto update binary driver</string>
|
||||
<string id="1012">Enable analog TV</string>
|
||||
<string id="1014">Extra settle time</string>
|
||||
<string id="1014">Extra delay [sec]</string>
|
||||
<string id="1015">Run user script</string>
|
||||
<string id="1030">Enable hardware PID filter</string>
|
||||
<string id="1035">Enable IR receiver</string>
|
||||
<string id="1040">Lowest adapter number (/dev/dvb/adapterX/)</string>
|
||||
|
||||
<string id="2000">Networking</string>
|
||||
<string id="2005">Share local tuner over network</string>
|
||||
<string id="2010">Use network shared tuners</string>
|
||||
@@ -21,4 +22,10 @@
|
||||
<string id="2051"> # of tuners</string>
|
||||
<string id="2060">Server 5 IP address</string>
|
||||
<string id="2061"> # of tuners</string>
|
||||
|
||||
<string id="9000">Tuner settings</string>
|
||||
<string id="9005">Enable modifying settings</string>
|
||||
<string id="9010">Refresh tuners... (press me)</string>
|
||||
<string id="9020"> IR protocol</string>
|
||||
<string id="9030"> keymap filename</string>
|
||||
</strings>
|
||||
@@ -0,0 +1,272 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
import xmlpp
|
||||
from xml.dom import minidom
|
||||
|
||||
__sundtek_userspace__ = '/storage/.xbmc/userdata/addon_data/driver.dvb.sundtek-mediatv/'
|
||||
|
||||
######################################################################################################
|
||||
# backup setting.xml file only if backup doesn't exist
|
||||
def settings_backup(settings_xml):
|
||||
try:
|
||||
with open(settings_xml + '_orig') as f: pass
|
||||
except IOError as e:
|
||||
shutil.copyfile(settings_xml, settings_xml + '_orig')
|
||||
|
||||
######################################################################################################
|
||||
# restore setting.xml file from backup
|
||||
def settings_restore(settings_xml):
|
||||
try:
|
||||
shutil.copyfile(settings_xml + '_orig', settings_xml)
|
||||
except IOError as e:
|
||||
print 'Error restoring file:', settings_xml
|
||||
|
||||
######################################################################################################
|
||||
# get hdhomerun supported devices on a system (only name like 101ADD2B-0)
|
||||
def get_devices_hdhomerun(hdhomerun_log):
|
||||
tuners = []
|
||||
try:
|
||||
for line in open(hdhomerun_log, 'r'):
|
||||
line = line.strip()
|
||||
if line.startswith('Registered tuner'):
|
||||
name = line.split(':');
|
||||
name = name[2].strip()
|
||||
tuners.append(name)
|
||||
except IOError:
|
||||
print 'Error reading hdhomerun log file', hdhomerun_log
|
||||
return tuners
|
||||
|
||||
"""
|
||||
root ~ # grep "Registered tuner" /var/log/dvbhdhomerun.log
|
||||
Registered tuner, id from kernel: 0 name: 101ADD2B-0
|
||||
Registered tuner, id from kernel: 1 name: 101ADD2B-1
|
||||
Registered tuner, id from kernel: 2 name: 1031D75A-0
|
||||
Registered tuner, id from kernel: 3 name: 1031D75A-1
|
||||
"""
|
||||
|
||||
######################################################################################################
|
||||
# get sundtek supported devices on a system (name, serial number, type)
|
||||
def get_devices_sundtek(mediaclient_e):
|
||||
tuners = []
|
||||
try:
|
||||
p = os.popen(mediaclient_e, "r")
|
||||
while 1:
|
||||
line = p.readline()
|
||||
if not line:
|
||||
break
|
||||
else:
|
||||
str = line.strip()
|
||||
if str.startswith('device '):
|
||||
name = str[str.find("[")+1:str.find("]")]
|
||||
tuners.append([name, 0, 's'])
|
||||
|
||||
if str.startswith('[SERIAL]:'):
|
||||
line = p.readline()
|
||||
str = line.strip()
|
||||
if str.startswith('ID:'):
|
||||
id = str.split(':');
|
||||
id = id[1].strip()
|
||||
tuners[len(tuners)-1] = [name, id, 's']
|
||||
|
||||
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:
|
||||
print 'Error getting sundtek tuners info'
|
||||
return tuners
|
||||
|
||||
"""
|
||||
root ~ # mediaclient -e
|
||||
**** 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
|
||||
[BUS]:
|
||||
ID: 1-7
|
||||
[SERIAL]:
|
||||
ID: U110763295205
|
||||
[DVB-C]:
|
||||
FRONTEND: /dev/dvb/adapter0/frontend0
|
||||
DVR: /dev/dvb/adapter0/dvr0
|
||||
DMX: /dev/dvb/adapter0/demux0
|
||||
[DVB-T]:
|
||||
FRONTEND: /dev/dvb/adapter0/frontend0
|
||||
DVR: /dev/dvb/adapter0/dvr0
|
||||
DMX: /dev/dvb/adapter0/demux0
|
||||
[ANALOG-TV]:
|
||||
VIDEO0: /dev/video0
|
||||
VBI0: /dev/vbi0
|
||||
[FM-RADIO]:
|
||||
RADIO0: /dev/radio0
|
||||
RDS: /dev/rds0
|
||||
[REMOTECONTROL]:
|
||||
INPUT0: /dev/mediainput0
|
||||
[OSS]:
|
||||
OSS0: /dev/dsp0
|
||||
"""
|
||||
|
||||
######################################################################################################
|
||||
# parse settings.xml file
|
||||
def parse_settings(settings_xml):
|
||||
try:
|
||||
xmldoc = minidom.parse(settings_xml)
|
||||
category = xmldoc.getElementsByTagName('category')
|
||||
return xmldoc
|
||||
except Exception as inst:
|
||||
print 'Error parse settings file', settings_xml
|
||||
return None
|
||||
|
||||
######################################################################################################
|
||||
# remove all nodes with id started with ATTACHED_TUNER_
|
||||
def remove_old_tuners(xmldoc):
|
||||
category = xmldoc.getElementsByTagName('category')
|
||||
for node_cat in category:
|
||||
setting = node_cat.getElementsByTagName('setting')
|
||||
for node_set in setting :
|
||||
if 'id' in node_set.attributes.keys() and not node_set.getAttribute('id').find('ATTACHED_TUNER_'):
|
||||
node_set.parentNode.removeChild(node_set)
|
||||
|
||||
######################################################################################################
|
||||
# add new hdhomerun tuners
|
||||
def add_hdhomerun(xmldoc, node_cat, tuners):
|
||||
for ix, tuner in enumerate(tuners):
|
||||
tuner_var = tuner.replace('-', '_')
|
||||
|
||||
node1 = xmldoc.createElement("setting")
|
||||
node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DVBMODE')
|
||||
node1.setAttribute("label", tuner)
|
||||
node1.setAttribute("type", 'labelenum')
|
||||
node1.setAttribute("default", 'auto')
|
||||
node1.setAttribute("values", 'auto|ATSC|DVB-C|DVB-T')
|
||||
node_cat.appendChild(node1)
|
||||
|
||||
node2 = xmldoc.createElement("setting")
|
||||
node2.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_FULLNAME')
|
||||
node2.setAttribute("label", '9020')
|
||||
node2.setAttribute("type", 'bool')
|
||||
node2.setAttribute("default", 'false')
|
||||
node_cat.appendChild(node2)
|
||||
|
||||
node3 = xmldoc.createElement("setting")
|
||||
node3.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DISABLE')
|
||||
node3.setAttribute("label", '9030')
|
||||
node3.setAttribute("type", 'bool')
|
||||
node3.setAttribute("default", 'false')
|
||||
node_cat.appendChild(node3)
|
||||
|
||||
# for tuner
|
||||
|
||||
######################################################################################################
|
||||
# add new sundtek tuners
|
||||
def add_sundtek(xmldoc, node_cat, tuners):
|
||||
for ix, tuner in enumerate(tuners):
|
||||
tuner_name = tuner[0]
|
||||
tuner_serial = tuner[1]
|
||||
tuner_type = tuner[2]
|
||||
|
||||
node1 = xmldoc.createElement("setting")
|
||||
node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_DVBMODE')
|
||||
node1.setAttribute("label", tuner_name + ", " + tuner_serial)
|
||||
node1.setAttribute("type", 'labelenum')
|
||||
|
||||
if (tuner_type == 's'):
|
||||
node1.setAttribute("default", 'DVB-S')
|
||||
node1.setAttribute("values", 'DVB-S')
|
||||
else:
|
||||
node1.setAttribute("default", 'DVB-C')
|
||||
node1.setAttribute("values", 'DVB-C|DVB-T')
|
||||
|
||||
node_cat.appendChild(node1)
|
||||
|
||||
node2 = xmldoc.createElement("setting")
|
||||
node2.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_IRPROT')
|
||||
node2.setAttribute("label", '9020')
|
||||
node2.setAttribute("type", 'labelenum')
|
||||
node2.setAttribute("default", 'auto')
|
||||
node2.setAttribute("values", 'auto|RC5|NEC|RC6')
|
||||
node_cat.appendChild(node2)
|
||||
|
||||
node3 = xmldoc.createElement("setting")
|
||||
node3.setAttribute("id", 'ATTACHED_TUNER_' + tuner_serial + '_KEYMAP')
|
||||
node3.setAttribute("label", '9030')
|
||||
node3.setAttribute("type", 'file')
|
||||
node3.setAttribute("mask", '*.map')
|
||||
node3.setAttribute("default", __sundtek_userspace__)
|
||||
node_cat.appendChild(node3)
|
||||
|
||||
# for tuner
|
||||
|
||||
######################################################################################################
|
||||
# add new ATTACHED_TUNER_ nodes for available tuners
|
||||
def add_new_tuners(xmldoc, tuners, which):
|
||||
category = xmldoc.getElementsByTagName('category')
|
||||
for node_cat in category:
|
||||
setting = node_cat.getElementsByTagName('setting')
|
||||
for node_set in setting :
|
||||
if 'label' in node_set.attributes.keys() and '9010' in node_set.getAttribute('label'):
|
||||
if which == 'hdhomerun':
|
||||
add_hdhomerun(xmldoc, node_cat, tuners)
|
||||
break
|
||||
elif which == 'sundtek':
|
||||
add_sundtek(xmldoc, node_cat, tuners)
|
||||
break
|
||||
|
||||
|
||||
######################################################################################################
|
||||
# save settings.xml file back
|
||||
def save_settings(settings_xml, xmldoc):
|
||||
try:
|
||||
outputfile = open(settings_xml, 'w')
|
||||
xmlpp.pprint(xmldoc.toxml(), output = outputfile, indent=2)
|
||||
outputfile.close()
|
||||
except IOError:
|
||||
print 'Error saving file:', settings_xml
|
||||
settings_restore(settings_xml)
|
||||
|
||||
######################################################################################################
|
||||
# refresh hdhomerun tuners in settings.xml file
|
||||
def refresh_hdhomerun_tuners(settings_xml, hdhomerun_log):
|
||||
settings_backup(settings_xml)
|
||||
tuners = get_devices_hdhomerun(hdhomerun_log)
|
||||
xmldoc = parse_settings(settings_xml)
|
||||
if xmldoc == None:
|
||||
print 'No hdhomerun tuners found'
|
||||
else:
|
||||
remove_old_tuners(xmldoc)
|
||||
add_new_tuners(xmldoc, tuners, 'hdhomerun')
|
||||
save_settings(settings_xml, xmldoc)
|
||||
|
||||
######################################################################################################
|
||||
# refresh sundtek tuners in settings.xml file
|
||||
def refresh_sundtek_tuners(settings_xml, mediaclient_e):
|
||||
settings_backup(settings_xml)
|
||||
tuners = get_devices_sundtek(mediaclient_e)
|
||||
xmldoc = parse_settings(settings_xml)
|
||||
if xmldoc == None:
|
||||
print 'No sundtek tuners found'
|
||||
else:
|
||||
remove_old_tuners(xmldoc)
|
||||
add_new_tuners(xmldoc, tuners, 'sundtek')
|
||||
save_settings(settings_xml, xmldoc)
|
||||
@@ -0,0 +1,161 @@
|
||||
"""Pretty print an XML document.
|
||||
|
||||
LICENCE:
|
||||
Copyright (c) 2008, Fredrik Ekholdt
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Fredrik Ekholdt nor the names of its contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE."""
|
||||
|
||||
import sys as _sys
|
||||
import re as _re
|
||||
|
||||
def _usage(this_file):
|
||||
return """SYNOPSIS: pretty print an XML document
|
||||
USAGE: python %s <filename> \n""" % this_file
|
||||
|
||||
def _pprint_line(indent_level, line, width=100, output=_sys.stdout):
|
||||
if line.strip():
|
||||
start = ""
|
||||
number_chars = 0
|
||||
for l in range(indent_level):
|
||||
start = start + " "
|
||||
number_chars = number_chars + 1
|
||||
try:
|
||||
elem_start = _re.findall("(\<\W{0,1}\w+:\w+) ?", line)[0]
|
||||
elem_finished = _re.findall("([?|\]\]/]*\>)", line)[0]
|
||||
#should not have *
|
||||
attrs = _re.findall("(\S*?\=\".*?\")", line)
|
||||
output.write(start + elem_start)
|
||||
number_chars = len(start + elem_start)
|
||||
for attr in attrs:
|
||||
if (attrs.index(attr) + 1) == len(attrs):
|
||||
number_chars = number_chars + len(elem_finished)
|
||||
if (number_chars + len(attr) + 1) > width:
|
||||
output.write("\n")
|
||||
for i in range(len(start + elem_start) + 1):
|
||||
output.write(" ")
|
||||
number_chars = len(start + elem_start) + 1
|
||||
else:
|
||||
output.write(" ")
|
||||
number_chars = number_chars + 1
|
||||
output.write(attr)
|
||||
number_chars = number_chars + len(attr)
|
||||
output.write(elem_finished + "\n")
|
||||
except IndexError:
|
||||
#give up pretty print this line
|
||||
output.write(start + line + "\n")
|
||||
|
||||
|
||||
def _pprint_elem_content(indent_level, line, output=_sys.stdout):
|
||||
if line.strip():
|
||||
for l in range(indent_level):
|
||||
output.write(" ")
|
||||
output.write(line + "\n")
|
||||
|
||||
def _get_next_elem(data):
|
||||
start_pos = data.find("<")
|
||||
end_pos = data.find(">") + 1
|
||||
retval = data[start_pos:end_pos]
|
||||
stopper = retval.rfind("/")
|
||||
if stopper < retval.rfind("\""):
|
||||
stopper = -1
|
||||
single = (stopper > -1 and ((retval.find(">") - stopper) < (stopper - retval.find("<"))))
|
||||
|
||||
ignore_excl = retval.find("<!") > -1
|
||||
ignore_question = retval.find("<?") > -1
|
||||
|
||||
if ignore_excl:
|
||||
cdata = retval.find("<![CDATA[") > -1
|
||||
if cdata:
|
||||
end_pos = data.find("]]>")
|
||||
if end_pos > -1:
|
||||
end_pos = end_pos + len("]]>")
|
||||
|
||||
elif ignore_question:
|
||||
end_pos = data.find("?>") + len("?>")
|
||||
ignore = ignore_excl or ignore_question
|
||||
|
||||
no_indent = ignore or single
|
||||
|
||||
#print retval, end_pos, start_pos, stopper > -1, no_indent
|
||||
return start_pos, \
|
||||
end_pos, \
|
||||
stopper > -1, \
|
||||
no_indent
|
||||
|
||||
def get_pprint(xml, indent=4, width=80):
|
||||
"""Returns the pretty printed xml """
|
||||
class out:
|
||||
output = ""
|
||||
|
||||
def write(self, string):
|
||||
self.output += string
|
||||
out = out()
|
||||
pprint(xml, output=out, indent=indent, width=width)
|
||||
|
||||
return out.output
|
||||
|
||||
|
||||
def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
||||
"""Pretty print xml.
|
||||
Use output to select output stream. Default is sys.stdout
|
||||
Use indent to select indentation level. Default is 4 """
|
||||
data = xml
|
||||
indent_level = 0
|
||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
||||
while ((start_pos > -1 and end_pos > -1)):
|
||||
_pprint_elem_content(indent_level, data[:start_pos].strip(),
|
||||
output=output)
|
||||
data = data[start_pos:]
|
||||
if is_stop and not no_indent:
|
||||
indent_level = indent_level - indent
|
||||
_pprint_line(indent_level,
|
||||
data[:end_pos - start_pos],
|
||||
width=width,
|
||||
output=output)
|
||||
data = data[end_pos - start_pos:]
|
||||
if not is_stop and not no_indent :
|
||||
indent_level = indent_level + indent
|
||||
|
||||
if not data:
|
||||
break
|
||||
else:
|
||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "-h" in _sys.argv or "--help" in _sys.argv:
|
||||
_sys.stderr.write(_usage(_sys.argv[0]))
|
||||
_sys.exit(1)
|
||||
if len(_sys.argv) < 2:
|
||||
_sys.stderr.write(_usage(_sys.argv[0]))
|
||||
_sys.exit(1)
|
||||
else:
|
||||
filename = _sys.argv[1]
|
||||
fh = open(filename)
|
||||
|
||||
pprint(fh.read(), output=_sys.stdout, indent=4, width=80)
|
||||
@@ -1,18 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="1000" >
|
||||
<setting label="" type="lsep" />
|
||||
<setting type="sep" />
|
||||
<setting id="AUTO_UPDATE" type="bool" label="1011" default="false" />
|
||||
<setting id="ANALOG_TV" type="bool" label="1012" default="false" enable="false" />
|
||||
<setting id="SETTLE_TIME" type="number" label="1014" default="0" />
|
||||
<setting id="RUN_USER_SCRIPT" type="bool" label="1015" default="false" />
|
||||
<setting id="ENABLE_HW_PID_FILTER" type="bool" label="1030" default="false" />
|
||||
<setting id="ENABLE_IR_RECEIVER" type="bool" label="1035" default="false" />
|
||||
<setting id="LOWEST_ADAPTER_NUM" type="number" label="1040" default="0" />
|
||||
<setting id="AUTO_UPDATE" type="bool" label="1011" default="false" />
|
||||
<setting id="ANALOG_TV" type="bool" label="1012" default="false" enable="false" />
|
||||
<setting id="SETTLE_TIME" type="number" label="1014" default="0" />
|
||||
<setting id="RUN_USER_SCRIPT" type="bool" label="1015" default="false" />
|
||||
<setting id="ENABLE_HW_PID_FILTER" type="bool" label="1030" default="false" />
|
||||
<setting id="ENABLE_IR_RECEIVER" type="bool" label="1035" default="false" />
|
||||
<setting id="LOWEST_ADAPTER_NUM" type="number" label="1040" default="0" />
|
||||
</category>
|
||||
<category label="2000" >
|
||||
<setting label="" type="lsep" />
|
||||
<setting type="sep" />
|
||||
<setting id="ALLOW_NET_USE" type="bool" label="2005" default="false" />
|
||||
<setting id="USE_NET_TUNERS" type="bool" label="2010" default="false" />
|
||||
@@ -27,4 +25,9 @@
|
||||
<setting id="DEVICE5_IP" type="ipaddress" label="2060" default="" visible="eq(-9,true)" />
|
||||
<setting id="DEVICE5_NUM" type="labelenum" label="2061" default="1" values="1|5|4|3|2" visible="eq(-10,true)" />
|
||||
</category>
|
||||
<category label="9000">
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_TUNER_TYPES" type="bool" label="9005" default="true" />
|
||||
<setting label="9010" option="close" type="action" action="RunScript($ID, refresh_tuners)" />
|
||||
</category>
|
||||
</settings>
|
||||
@@ -23,22 +23,22 @@
|
||||
. /etc/profile
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="sundtek"
|
||||
LOCKFILE="$LOCKDIR/sundtek-mediatv"
|
||||
|
||||
case "$1" in
|
||||
hibernate|suspend)
|
||||
if [ -n "$(pidof mediasrv)" ]; then
|
||||
progress "Shutting down Sundtek DVB driver for suspending..."
|
||||
mkdir -p "$LOCKDIR"
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
touch "$LOCKFILE"
|
||||
mediaclient --shutdown
|
||||
fi
|
||||
;;
|
||||
|
||||
thaw|resume)
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ]; then
|
||||
if [ -f "$LOCKFILE" ]; then
|
||||
# driver started within Tvheadend/VDR
|
||||
rm -rf "$LOCKDIR/$LOCKFILE"
|
||||
rm -f "$LOCKFILE"
|
||||
fi
|
||||
;;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.7 KiB |
@@ -1,3 +1,6 @@
|
||||
3.0.4
|
||||
- update to makemkv-1.8.0
|
||||
|
||||
3.0.3
|
||||
- update to makemkv-1.7.10
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="makemkv"
|
||||
PKG_VERSION="1.7.10"
|
||||
PKG_REV="3"
|
||||
PKG_VERSION="1.8.0"
|
||||
PKG_REV="4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.makemkv.com/forum2/viewforum.php?f=3"
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
diff -Naur makemkv-1.6.10/lib/makefile.linux makemkv-1.6.10.patch/lib/makefile.linux
|
||||
--- makemkv-1.6.10/lib/makefile.linux 2011-05-29 23:17:48.000000000 +0200
|
||||
+++ makemkv-1.6.10.patch/lib/makefile.linux 2011-05-30 15:29:15.510417904 +0200
|
||||
@@ -1,11 +1,11 @@
|
||||
diff --git a/lib/makefile.linux b/lib/makefile.linux
|
||||
index b3b5afa..07322ad 100644
|
||||
--- a/lib/makefile.linux
|
||||
+++ b/lib/makefile.linux
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
include makefile.common
|
||||
|
||||
-GCC=gcc
|
||||
-RCC=rcc
|
||||
+GCC:=gcc
|
||||
+RCC:=rcc
|
||||
MOC=$(strip $(shell which moc-qt4))
|
||||
ifeq ($(MOC),)
|
||||
-MOC=moc
|
||||
@@ -16,8 +15,8 @@ diff -Naur makemkv-1.6.10/lib/makefile.linux makemkv-1.6.10.patch/lib/makefile.l
|
||||
endif
|
||||
|
||||
CXXOPTS=-Os -D_GNU_SOURCE -D_linux_
|
||||
@@ -14,7 +14,7 @@
|
||||
BUILDINFO_BUILD_DATE=$(shell date)
|
||||
@@ -16,7 +16,7 @@ PREFIX=/usr
|
||||
LIBDIR=${PREFIX}/lib
|
||||
|
||||
|
||||
-all: out/libdriveio.so.0 out/libmakemkv.so.1 out/makemkv
|
||||
@@ -1,12 +0,0 @@
|
||||
3.0.1
|
||||
- bump addon version
|
||||
|
||||
2.1.3
|
||||
- updated to tcpdump-4.3.0
|
||||
- updated to libpcap-1.3.0
|
||||
|
||||
2.1.2
|
||||
- rebuild
|
||||
|
||||
2.1.1
|
||||
- initial addon based on tcpdump-4.1.1
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 80 KiB |
@@ -1,5 +0,0 @@
|
||||
3.0.1
|
||||
- bump addon version
|
||||
|
||||
2.1.1
|
||||
- initial addon based on iperf-2.0.5
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.3 KiB |
@@ -34,6 +34,7 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pylib
|
||||
cp -R $BUILD/Cheetah*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
|
||||
cp -R $BUILD/pyOpenSSL*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
|
||||
cp -R $BUILD/yenc*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
|
||||
cp -R $BUILD/configobj*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/SABnzbd
|
||||
cp -PR $BUILD/SABnzbd-*/* $ADDON_BUILD/$PKG_ADDON_ID/SABnzbd
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
3.0.6
|
||||
- fix configobj error n startup
|
||||
|
||||
3.0.5
|
||||
- rebuild. configobj included
|
||||
|
||||
3.0.4
|
||||
- update to SickBeard-4e57625
|
||||
- update to CouchPotatoServer-a49a00a
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
PKG_NAME="SABnzbd-Suite"
|
||||
PKG_VERSION="3.0"
|
||||
PKG_REV="4"
|
||||
PKG_REV="6"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
|
||||
@@ -27,7 +27,7 @@ import signal
|
||||
import subprocess
|
||||
import urllib2
|
||||
import hashlib
|
||||
from configobj import ConfigObj
|
||||
import sys
|
||||
from xml.dom.minidom import parseString
|
||||
import logging
|
||||
import traceback
|
||||
@@ -195,6 +195,9 @@ except:
|
||||
|
||||
signal.signal(signal.SIGCHLD, signal.SIG_DFL)
|
||||
os.environ['PYTHONPATH'] = str(os.environ.get('PYTHONPATH')) + ':' + pPylib
|
||||
sys.path.append(pPylib)
|
||||
|
||||
from configobj import ConfigObj
|
||||
|
||||
# SABnzbd start
|
||||
try:
|
||||
|
||||
@@ -28,7 +28,6 @@ import urllib2
|
||||
import socket
|
||||
import time
|
||||
import datetime
|
||||
from configobj import ConfigObj
|
||||
|
||||
__scriptname__ = "SABnzbd Suite"
|
||||
__author__ = "OpenELEC"
|
||||
@@ -51,6 +50,9 @@ subprocess.call(['python',__start__])
|
||||
# check for launching sabnzbd
|
||||
sabNzbdLaunch = (__settings__.getSetting('SABNZBD_LAUNCH').lower() == 'true')
|
||||
|
||||
sys.path.append(os.path.join(__cwd__, 'pylib'))
|
||||
from configobj import ConfigObj
|
||||
|
||||
if sabNzbdLaunch:
|
||||
# SABnzbd addresses and api key
|
||||
sabNzbdAddress = '127.0.0.1:8081'
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
3.0.4
|
||||
- update to transmission-2.77
|
||||
|
||||
3.0.3
|
||||
- update to transmission-2.76
|
||||
- update libevent to libevent-2.0.21-stable
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="transmission"
|
||||
PKG_VERSION="2.76"
|
||||
PKG_REV="3"
|
||||
PKG_VERSION="2.77"
|
||||
PKG_REV="4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.transmissionbt.com/"
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
3.0.3
|
||||
- update to boblightd-465
|
||||
|
||||
3.0.2
|
||||
- depends on libGLU
|
||||
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="boblightd"
|
||||
PKG_VERSION="449"
|
||||
PKG_REV="2"
|
||||
PKG_VERSION="465"
|
||||
PKG_REV="3"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://code.google.com/p/boblight"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_DEPENDS="libusb"
|
||||
PKG_BUILD_DEPENDS="toolchain libusb"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/multimedia"
|
||||
PKG_SHORTDESC="boblightd: an ambilight controller."
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e2a6aaf..c20a3fc 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -9,7 +9,7 @@ AM_MAINTAINER_MODE
|
||||
|
||||
AC_ISC_POSIX
|
||||
AC_PROG_CXX
|
||||
-AM_PROG_CC_STDC
|
||||
+AC_PROG_CC
|
||||
AC_HEADER_STDC
|
||||
|
||||
AM_PROG_LIBTOOL
|
||||
@@ -36,6 +36,7 @@ cd $PKG_BUILD
|
||||
--cc=$TARGET_CC \
|
||||
--enable-timeshift \
|
||||
--disable-libav \
|
||||
--disable-avahi \
|
||||
--enable-bundle
|
||||
|
||||
make
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
3.0.7
|
||||
- update to TVHeadend 3.3.511
|
||||
|
||||
3.0.6
|
||||
- update to TVHeadend 3.3.491
|
||||
- disable avahi support
|
||||
|
||||
3.0.5
|
||||
- update to TVHeadend 3.3.485
|
||||
|
||||
3.0.4
|
||||
- update to TVHeadend 3.3.403
|
||||
|
||||
|
||||
@@ -19,15 +19,15 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="tvheadend"
|
||||
PKG_VERSION="3.3.403"
|
||||
PKG_REV="4"
|
||||
PKG_VERSION="3.3.511"
|
||||
PKG_REV="7"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
||||
#PKG_URL="https://github.com/downloads/tvheadend/tvheadend/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS="$ICONV avahi openssl curl"
|
||||
PKG_BUILD_DEPENDS="toolchain $ICONV avahi openssl curl"
|
||||
PKG_DEPENDS="$ICONV openssl curl"
|
||||
PKG_BUILD_DEPENDS="toolchain $ICONV openssl curl"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/multimedia"
|
||||
PKG_SHORTDESC="tvheadend (Version: $PKG_VERSION): a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources."
|
||||
|
||||
@@ -94,7 +94,11 @@ if [ ! -f "$TIMESHIFT_SETTINGS_FILE" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
TVHEADEND_ARG="-C -s -u root -g video -c $ADDON_HOME"
|
||||
if [ "$DEBUG" = "yes" ]; then
|
||||
TVHEADEND_ARG="-C -s -u root -g video -c $ADDON_HOME"
|
||||
else
|
||||
TVHEADEND_ARG="-C -u root -g video -c $ADDON_HOME"
|
||||
fi
|
||||
|
||||
mkdir -p /var/config
|
||||
if [ -f $ADDON_DIR/settings-default.xml ]; then
|
||||
|
||||
@@ -36,6 +36,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
-DWEBIF=1 \
|
||||
-DWITH_DEBUG=0 \
|
||||
-DOPTIONAL_INCLUDE_DIR=$SYSROOT_PREFIX/usr/include \
|
||||
-DSTATIC_LIBUSB=1 \
|
||||
..
|
||||
|
||||
make
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
3.0.9
|
||||
- update to oscam-8568
|
||||
|
||||
3.0.8
|
||||
- update to oscam-8469
|
||||
- update to pcsc-lite-1.8.8
|
||||
|
||||
3.0.7
|
||||
- update to oscam-8357
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="oscam"
|
||||
PKG_VERSION="8357"
|
||||
PKG_REV="7"
|
||||
PKG_VERSION="8568"
|
||||
PKG_REV="9"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.streamboard.tv/oscam/wiki"
|
||||
@@ -32,6 +32,7 @@ PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/softcam"
|
||||
PKG_SHORTDESC="oscam: OSCam is Open Source Conditional Access Modul."
|
||||
PKG_LONGDESC="OSCam is Open Source Conditional Access Modul."
|
||||
PKG_DISCLAIMER="using oscam may be illegal in your country. if in doubt, do not install"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
3.0.4
|
||||
- update to pcsc-lite-1.8.8
|
||||
- update to libccid-1.4.9
|
||||
|
||||
3.0.3
|
||||
- update to pcsc-lite-1.8.7
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
PKG_NAME="pcscd-addon"
|
||||
PKG_VERSION="3.0"
|
||||
PKG_REV="3"
|
||||
PKG_REV="4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="alsa-lib"
|
||||
PKG_VERSION="1.0.26"
|
||||
PKG_VERSION="1.0.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
From: Takashi Iwai <tiwai <at> suse.de>
|
||||
Subject: [PATCH RFC 1/2] control: Simplify using snd_config_get_bool()
|
||||
Newsgroups: gmane.linux.alsa.devel
|
||||
Date: 2012-10-12 15:25:23 GMT (17 weeks, 8 hours and 26 minutes ago)
|
||||
snd_config_get_bool() was improved to parse also ASCII strings now,
|
||||
so we don't have to open-code the boolean parser in
|
||||
src/control/setup.c any longer.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai <at> suse.de>
|
||||
---
|
||||
src/control/setup.c | 37 ++++++-------------------------------
|
||||
1 file changed, 6 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/src/control/setup.c b/src/control/setup.c
|
||||
index eecda45..bd3599d 100644
|
||||
--- a/src/control/setup.c
|
||||
+++ b/src/control/setup.c
|
||||
@@ -400,7 +400,6 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
{
|
||||
snd_config_t *conf;
|
||||
snd_config_iterator_t i, next;
|
||||
- char *tmp;
|
||||
int iface = SND_CTL_ELEM_IFACE_MIXER;
|
||||
const char *name = NULL;
|
||||
long index = 0;
|
||||
@@ -464,33 +463,17 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "lock") == 0) {
|
||||
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
|
||||
- SNDERR("field %s has an invalid type", id);
|
||||
- goto _err;
|
||||
- }
|
||||
- err = snd_config_get_bool_ascii(tmp);
|
||||
- if (err < 0) {
|
||||
- SNDERR("field %s is not a boolean", id);
|
||||
- free(tmp);
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
goto _err;
|
||||
- }
|
||||
lock = err;
|
||||
- free(tmp);
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "preserve") == 0) {
|
||||
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
|
||||
- SNDERR("field %s has an invalid type", id);
|
||||
- goto _err;
|
||||
- }
|
||||
- err = snd_config_get_bool_ascii(tmp);
|
||||
- if (err < 0) {
|
||||
- SNDERR("field %s is not a boolean", id);
|
||||
- free(tmp);
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
goto _err;
|
||||
- }
|
||||
preserve = err;
|
||||
- free(tmp);
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "value") == 0) {
|
||||
@@ -502,18 +485,10 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "optional") == 0) {
|
||||
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
|
||||
- SNDERR("field %s has an invalid type", id);
|
||||
- goto _err;
|
||||
- }
|
||||
- err = snd_config_get_bool_ascii(tmp);
|
||||
- if (err < 0) {
|
||||
- SNDERR("field %s is not a boolean", id);
|
||||
- free(tmp);
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
goto _err;
|
||||
- }
|
||||
optional = err;
|
||||
- free(tmp);
|
||||
continue;
|
||||
}
|
||||
SNDERR("Unknown field %s", id);
|
||||
--
|
||||
1.7.12.2
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
From 91e42790dd0a9489a94e3784d220d76ad2d98b36 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Sat, 16 Feb 2013 18:29:59 +0200
|
||||
Subject: [PATCH] Add workaround for conflicting IEC958 controls for HD-audio
|
||||
|
||||
When both an SPDIF and an HDMI output are present on HD-audio, both
|
||||
try to access IEC958 controls with index=0 although one of them must
|
||||
be wrong. For avoiding this conflict, the recent kernel code (3.9 and
|
||||
3.8 stable) moves the IEC958 controls of an SPDIF with index=16 once
|
||||
when the conflict happens.
|
||||
|
||||
In this patch, the corresponding support is added in alsa-lib side.
|
||||
The new "skip_rest" boolean flag is added to the hooked element
|
||||
definition which indicates that the rest of element array will be
|
||||
ignored once when this element is present and evaluated. With this
|
||||
new flag, the HD-audio config takes device=1 primarily, then take
|
||||
device=0 as fallback.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/conf/cards/HDA-Intel.conf | 16 ++++++++++++++++
|
||||
src/control/setup.c | 19 ++++++++++++++++---
|
||||
2 files changed, 32 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf
|
||||
index d4f2667..3957c12 100644
|
||||
--- a/src/conf/cards/HDA-Intel.conf
|
||||
+++ b/src/conf/cards/HDA-Intel.conf
|
||||
@@ -113,6 +113,22 @@ HDA-Intel.pcm.iec958.0 {
|
||||
hook_args [
|
||||
{
|
||||
name "IEC958 Playback Default"
|
||||
+ index 16
|
||||
+ optional true
|
||||
+ lock true
|
||||
+ preserve true
|
||||
+ value [ $AES0 $AES1 $AES2 $AES3 ]
|
||||
+ }
|
||||
+ {
|
||||
+ name "IEC958 Playback Switch"
|
||||
+ index 16
|
||||
+ optional true
|
||||
+ value true
|
||||
+ # if this element is present, skip the rest
|
||||
+ skip_rest true
|
||||
+ }
|
||||
+ {
|
||||
+ name "IEC958 Playback Default"
|
||||
lock true
|
||||
preserve true
|
||||
value [ $AES0 $AES1 $AES2 $AES3 ]
|
||||
diff --git a/src/control/setup.c b/src/control/setup.c
|
||||
index eecda45..72facb0 100644
|
||||
--- a/src/control/setup.c
|
||||
+++ b/src/control/setup.c
|
||||
@@ -396,7 +396,7 @@ static int snd_config_get_ctl_elem_value(snd_config_t *conf,
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data)
|
||||
+static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data, int *quit)
|
||||
{
|
||||
snd_config_t *conf;
|
||||
snd_config_iterator_t i, next;
|
||||
@@ -409,6 +409,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
int lock = 0;
|
||||
int preserve = 0;
|
||||
int optional = 0;
|
||||
+ int skip_rest = 0;
|
||||
snd_config_t *value = NULL, *mask = NULL;
|
||||
snd_sctl_elem_t *elem = NULL;
|
||||
int err;
|
||||
@@ -516,6 +517,13 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
free(tmp);
|
||||
continue;
|
||||
}
|
||||
+ if (strcmp(id, "skip_rest") == 0) {
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
+ goto _err;
|
||||
+ skip_rest = err;
|
||||
+ continue;
|
||||
+ }
|
||||
SNDERR("Unknown field %s", id);
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -564,6 +572,9 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
if (! optional)
|
||||
SNDERR("Cannot obtain info for CTL elem (%s,'%s',%li,%li,%li): %s", snd_ctl_elem_iface_name(iface), name, index, device, subdevice, snd_strerror(err));
|
||||
goto _err;
|
||||
+ } else {
|
||||
+ if (skip_rest)
|
||||
+ *quit = 1;
|
||||
}
|
||||
snd_ctl_elem_value_set_id(elem->val, elem->id);
|
||||
snd_ctl_elem_value_set_id(elem->old, elem->id);
|
||||
@@ -619,7 +630,7 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd
|
||||
{
|
||||
snd_sctl_t *h;
|
||||
snd_config_iterator_t i, next;
|
||||
- int err;
|
||||
+ int err, quit = 0;
|
||||
|
||||
assert(sctl);
|
||||
assert(handle);
|
||||
@@ -639,11 +650,13 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd
|
||||
INIT_LIST_HEAD(&h->elems);
|
||||
snd_config_for_each(i, next, conf) {
|
||||
snd_config_t *n = snd_config_iterator_entry(i);
|
||||
- err = add_elem(h, n, private_data);
|
||||
+ err = add_elem(h, n, private_data, &quit);
|
||||
if (err < 0) {
|
||||
free_elems(h);
|
||||
return err;
|
||||
}
|
||||
+ if (quit)
|
||||
+ break;
|
||||
}
|
||||
*sctl = h;
|
||||
return 0;
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="alsa-plugins"
|
||||
PKG_VERSION="1.0.26"
|
||||
PKG_VERSION="1.0.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="alsa-utils"
|
||||
PKG_VERSION="1.0.26"
|
||||
PKG_VERSION="1.0.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur alsa-utils-1.0.26-old/configure.in alsa-utils-1.0.26-new/configure.in
|
||||
--- alsa-utils-1.0.26-old/configure.in 2012-09-06 01:45:44.000000000 -0700
|
||||
+++ alsa-utils-1.0.26-new/configure.in 2012-12-29 08:01:59.000000000 -0800
|
||||
@@ -290,7 +290,7 @@
|
||||
TESTSOUND="$dir/test.wav")
|
||||
AC_SUBST(TESTSOUND)
|
||||
|
||||
-AM_CONFIG_HEADER(include/aconfig.h)
|
||||
+AC_CONFIG_HEADERS(include/aconfig.h)
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3071502"
|
||||
PKG_VERSION="autoconf-3071600"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
PKG_SITE="http://www.sqlite.org/"
|
||||
PKG_URL="http://sqlite.org/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://sqlite.org/2013/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -30,6 +30,9 @@ cd $PKG_BUILD
|
||||
make PREFIX=/usr \
|
||||
CC="$TARGET_CC" \
|
||||
AR="$TARGET_AR" \
|
||||
HOST=_LINUX \
|
||||
HARDWARE_NAME=$TARGET_ARCH \
|
||||
BITS=$ACPICA_BITS \
|
||||
YACC=$ROOT/$TOOLCHAIN/bin/bison \
|
||||
CWARNINGFLAGS="-O2 $TARGET_CFLAGS"
|
||||
|
||||
|
||||
@@ -19,12 +19,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="acpica-unix2"
|
||||
PKG_VERSION="20130117"
|
||||
PKG_VERSION="20130328"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.acpica.org/"
|
||||
PKG_URL="https://www.acpica.org/download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="https://acpica.org/sites/acpica/files/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain flex bison"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -uNr acpica-unix2-20130117-orig/generate/unix/Makefile.common acpica-unix2-20130117/generate/unix/Makefile.common
|
||||
--- acpica-unix2-20130117-orig/generate/unix/Makefile.common 2013-01-17 20:47:44.000000000 +0100
|
||||
+++ acpica-unix2-20130117/generate/unix/Makefile.common 2013-02-07 15:13:59.000000000 +0100
|
||||
@@ -6,7 +6,7 @@
|
||||
# Get the OS machine architecture. Anything with a "64" in the returned
|
||||
# string will be treated as a 64-bit OS. Otherwise, the default is 32-bit.
|
||||
#
|
||||
-HARDWARE_NAME := $(shell uname -m)
|
||||
+HARDWARE_NAME=$(BITS)
|
||||
BITS=0
|
||||
|
||||
#
|
||||
@@ -34,7 +34,6 @@ ac_cv_func_realloc_0_nonnull=yes \
|
||||
--localstatedir=/var \
|
||||
--enable-cgroup \
|
||||
--disable-vserver \
|
||||
--disable-taskstats \
|
||||
--disable-unicode \
|
||||
--disable-native-affinity \
|
||||
--disable-hwloc \
|
||||
|
||||
35
packages/debug/iftop/build
Executable file
35
packages/debug/iftop/build
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
#strip_lto
|
||||
|
||||
export LIBS="-lpthread -ltinfo"
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
|
||||
make
|
||||
11
packages/addons/networking/analyzer/tcpdump/source/default.py → packages/debug/iftop/install
Normal file → Executable file
11
packages/addons/networking/analyzer/tcpdump/source/default.py → packages/debug/iftop/install
Normal file → Executable file
@@ -1,6 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -18,6 +20,7 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/iftop $INSTALL/usr/bin/
|
||||
37
packages/debug/iftop/meta
Normal file
37
packages/debug/iftop/meta
Normal file
@@ -0,0 +1,37 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="iftop"
|
||||
PKG_VERSION="1.0pre2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://htop.sourceforge.net/"
|
||||
PKG_URL="http://www.ex-parrot.com/pdw/iftop/download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="ncurses"
|
||||
PKG_BUILD_DEPENDS="toolchain ncurses libpcap"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="debug/tools"
|
||||
PKG_SHORTDESC="iftop: display bandwidth usage on an interface"
|
||||
PKG_LONGDESC="iftop does for network usage what top(1) does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts. Handy for answering the question 'why is our ADSL link so slow?'."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
12
packages/debug/iftop/patches/iftop-automake-1.13.patch
Normal file
12
packages/debug/iftop/patches/iftop-automake-1.13.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff -Naur iftop-1.0pre2/configure.in iftop-1.0pre2.patch/configure.in
|
||||
--- iftop-1.0pre2/configure.in 2011-10-03 23:55:33.000000000 +0200
|
||||
+++ iftop-1.0pre2.patch/configure.in 2013-03-05 11:17:10.423257608 +0100
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
AM_INIT_AUTOMAKE(iftop, "1.0pre2")
|
||||
|
||||
AC_DEFINE_UNQUOTED(IFTOP_VERSION, "$VERSION", [The iftop version number])
|
||||
@@ -22,5 +22,5 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/tcpdump $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
mkdir -p $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/src/iperf $INSTALL/usr/bin
|
||||
@@ -28,11 +28,10 @@ PKG_URL="$SOURCEFORGE_SRC/iperf/files/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain $ICONV"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="network/testing"
|
||||
PKG_SECTION="debug/tools"
|
||||
PKG_SHORTDESC="iperf: A modern alternative for measuring maximum TCP and UDP bandwidth performance"
|
||||
PKG_LONGDESC="Iperf was developed by NLANR/DAST as a modern alternative for measuring maximum TCP and UDP bandwidth performance. Iperf allows the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss."
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.python.script"
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS="acpica cpuid dmidecode dstat evtest gdb hddtemp htop i2c-tools pmtools powertop strace"
|
||||
PKG_DEPENDS="acpica cpuid dmidecode dstat evtest gdb hddtemp htop i2c-tools iftop pmtools powertop smem strace wireless_tools tcpdump iperf"
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="debug"
|
||||
|
||||
@@ -23,8 +23,15 @@
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
make PREFIX=/usr \
|
||||
CC="$TARGET_CC" \
|
||||
AR="$TARGET_AR" \
|
||||
make CC="$TARGET_CC" \
|
||||
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
|
||||
CPPFLAGS="$TARGET_CPPFLAGS" \
|
||||
-C acpidump acpidump
|
||||
|
||||
make CC="$TARGET_CC" \
|
||||
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
|
||||
-C acpixtract acpixtract
|
||||
|
||||
make CC="$TARGET_CC" \
|
||||
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
|
||||
-C madt madt
|
||||
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pmtools"
|
||||
PKG_VERSION="20071116"
|
||||
PKG_VERSION="20110323"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://lesswatts.org/projects/acpi/utilities.php"
|
||||
PKG_URL="https://lesswatts.org/patches/linux_acpi/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://mirror.linux.org.au/linux/kernel/people/lenb/acpi/utils/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
25
packages/debug/pmtools/patches/pmtools-madt.patch
Normal file
25
packages/debug/pmtools/patches/pmtools-madt.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
diff -Naur pmtools/madt/Makefile pmtools.patch/madt/Makefile
|
||||
--- pmtools/madt/Makefile 2005-11-11 18:07:04.000000000 +0100
|
||||
+++ pmtools.patch/madt/Makefile 2007-11-16 19:48:56.000000000 +0100
|
||||
@@ -1,6 +1,16 @@
|
||||
+PROG= madt
|
||||
+SRCS= madt.c
|
||||
+
|
||||
+all: madt
|
||||
+$(PROG) : $(SRCS)
|
||||
+ $(CC) $(CFLAGS) $(SRCS) -o $(PROG)
|
||||
+
|
||||
test: madt
|
||||
- ./madt < APIC
|
||||
-madt: madt.c acpi.h tables.c
|
||||
- cc -o madt madt.c
|
||||
-clean:
|
||||
- rm madt
|
||||
+ ./madt < example.APIC.dat
|
||||
+ ./madt < example.APIC.bad.dat
|
||||
+
|
||||
+CLEANFILES= $(PROG)
|
||||
+
|
||||
+clean :
|
||||
+ rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS)) *~
|
||||
+
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -22,11 +22,4 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
echo "### Applying architecture based patches ###"
|
||||
|
||||
if [ ! $TARGET_ARCH = arm ]; then
|
||||
for patch in `ls $PKG_DIR/patches.x86`; do
|
||||
cat $PKG_DIR/patches.x86/$patch | patch -d \
|
||||
`echo $PKG_BUILD | cut -f1 -d\ ` -p1
|
||||
done
|
||||
fi
|
||||
mv $BUILD/$PKG_NAME $BUILD/$PKG_NAME-$PKG_VERSION
|
||||
11
packages/addons/driver/sundtek/source/default.py → packages/debug/smem/install
Normal file → Executable file
11
packages/addons/driver/sundtek/source/default.py → packages/debug/smem/install
Normal file → Executable file
@@ -1,6 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -18,6 +20,7 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/smem $INSTALL/usr/bin/
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -18,19 +18,19 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pastebinit"
|
||||
PKG_VERSION="1.3.1"
|
||||
PKG_NAME="smem"
|
||||
PKG_VERSION="1.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://launchpad.net/pastebinit"
|
||||
PKG_URL="http://launchpad.net/pastebinit/trunk/$PKG_VERSION/+download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="Python simplejson configobj"
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_SITE="http://www.selenic.com/smem/"
|
||||
PKG_URL="http://www.selenic.com/smem/download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="Python"
|
||||
PKG_BUILD_DEPENDS="toolchain Python"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="tools"
|
||||
PKG_SHORTDESC="pastebinit: Upload Directly to Pastebin from the Linux Shell"
|
||||
PKG_LONGDESC="pastebinit is a tool for Uploading Directly to Pastebin from the Linux Shell"
|
||||
PKG_SECTION="system"
|
||||
PKG_SHORTDESC="smem: memory reporting tool"
|
||||
PKG_LONGDESC="smem is a tool that can give numerous reports on memory usage on Linux systems. Unlike existing tools, smem can report proportional set size (PSS), which is a more meaningful representation of the amount of memory used by libraries and applications in a virtual memory system."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
31
packages/debug/wireless_tools/build
Executable file
31
packages/debug/wireless_tools/build
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
make PREFIX=/usr \
|
||||
CC="$TARGET_CC" \
|
||||
AR="$TARGET_AR" \
|
||||
CFLAGS="$TARGET_CFLAGS" \
|
||||
CPPFLAGS="$TARGET_CPPFLAGS" \
|
||||
35
packages/debug/wireless_tools/install
Executable file
35
packages/debug/wireless_tools/install
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/iwconfig $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/iwgetid $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/iwevent $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/iwlist $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/iwspy $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/iwpriv $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/ifrename $INSTALL/usr/bin/
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/
|
||||
cp $PKG_BUILD/libiw.so.29 $INSTALL/usr/lib/
|
||||
36
packages/debug/wireless_tools/meta
Normal file
36
packages/debug/wireless_tools/meta
Normal file
@@ -0,0 +1,36 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program 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, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="wireless_tools"
|
||||
PKG_VERSION="29"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html"
|
||||
PKG_URL="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/$PKG_NAME.$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="system"
|
||||
PKG_SHORTDESC="wireless-tools: tools allowing to manipulate the Wireless Extensions"
|
||||
PKG_LONGDESC="The Wireless Tools (WT) is a set of tools allowing to manipulate the Wireless Extensions. They use a textual interface and are rather crude, but aim to support the full Wireless Extension. There are many other tools you can use with Wireless Extensions, however Wireless Tools is the reference implementation."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="boost"
|
||||
PKG_VERSION="1_52_0"
|
||||
PKG_VERSION="1_53_0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.boost.org/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/boost/boost/1.52.0/${PKG_NAME}_${PKG_VERSION}.tar.bz2"
|
||||
PKG_URL="$SOURCEFORGE_SRC/boost/boost/1.53.0/${PKG_NAME}_${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS="zlib bzip2"
|
||||
PKG_BUILD_DEPENDS="toolchain boost-jam Python-host zlib bzip2"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user