mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a65f19c61a | ||
|
|
b7d12c3aee | ||
|
|
2465336236 | ||
|
|
8799eebba3 | ||
|
|
6efe60d1a7 | ||
|
|
75f40dd98d | ||
|
|
650c8af746 | ||
|
|
9b7b54eee3 | ||
|
|
cf5ff8e22c | ||
|
|
04d2366e5f | ||
|
|
1ec0df8f31 | ||
|
|
ee26b940bc | ||
|
|
e74553b693 | ||
|
|
2bce8b1d55 | ||
|
|
7f4287d7e1 | ||
|
|
28233d05de | ||
|
|
ffcf0932d1 | ||
|
|
8bef2c4618 | ||
|
|
65f1e6ef17 | ||
|
|
e3e3b399a6 | ||
|
|
840d1c1284 | ||
|
|
2205a0cc70 | ||
|
|
1053ab41fc | ||
|
|
1b8c952755 | ||
|
|
455a885659 | ||
|
|
30adf74c6f | ||
|
|
4b002340ef | ||
|
|
eb69d5242b | ||
|
|
beeda52e13 | ||
|
|
d8e0b6a5f4 | ||
|
|
50ea62c4e7 | ||
|
|
d1b622a377 | ||
|
|
93046a114a | ||
|
|
a5c68715c9 | ||
|
|
dd730bb6c9 | ||
|
|
9d129da158 | ||
|
|
9a9c3bf4e5 | ||
|
|
ce8de06704 | ||
|
|
55d90453a9 | ||
|
|
5e92f1ce82 | ||
|
|
400cdf4a67 | ||
|
|
3cf3adae18 | ||
|
|
7c67563f26 | ||
|
|
e9ec1ebeb9 | ||
|
|
58631c27ec | ||
|
|
d2fd2e102a | ||
|
|
59e12c8f69 | ||
|
|
94327fdf85 | ||
|
|
7e75a7a7a7 | ||
|
|
2a65bc7b74 | ||
|
|
243fb0d01e | ||
|
|
ef63dab7e0 | ||
|
|
08f7eb0208 | ||
|
|
79168baf4d | ||
|
|
6a4245773b | ||
|
|
5f2f48b74b | ||
|
|
a00fde001b | ||
|
|
eae49e55da | ||
|
|
8542402602 | ||
|
|
07d4312595 | ||
|
|
e4edcc2894 | ||
|
|
bf590a1424 | ||
|
|
c17df4dc19 | ||
|
|
4d581777cf | ||
|
|
84df6b8edd | ||
|
|
bc750c2494 |
35
CHANGELOG
35
CHANGELOG
@@ -1,5 +1,34 @@
|
||||
OpenELEC (Version 3.0)
|
||||
OpenELEC (Version 2.0)
|
||||
|
||||
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
|
||||
Changelog OpenELEC-1.0 to OpenELEC-2.0
|
||||
|
||||
Package updates:
|
||||
- update XBMC to XBMC-11.0 (Eden)
|
||||
- update eglibc to eglibc-2.15
|
||||
- update Python to Python-2.7
|
||||
- update gcc to gcc-4.7
|
||||
- update openssl to openssl-1.0.1
|
||||
- update xorg-server to xorg-server-1.12
|
||||
- update linux to Kernel 3.2
|
||||
- update Mesa to Mesa-8.0
|
||||
|
||||
Added functions:
|
||||
- PXE netboot support:
|
||||
- booting over NFS support
|
||||
- booting over NBD support
|
||||
- booting over iSCSI support
|
||||
- Airplay support
|
||||
- Airtunes support
|
||||
- CEC support
|
||||
- libaacs support
|
||||
- automatic framebuffer detection
|
||||
- exFAT filesystem support
|
||||
|
||||
Changed functions
|
||||
- changed ATV build to use Nvidia binary graphic driver (incl HDMI audio)
|
||||
- added support for native XVBA incl. High@L5.1 support, which replaces VAAPI-XVBA support
|
||||
|
||||
Removed functions:
|
||||
- remove netmount.conf (XBMC includes native NFS/AFP/CIFS/SSH support)
|
||||
- move PS3 controller support in a own addon
|
||||
- move Wii controller support in a own addon
|
||||
|
||||
@@ -71,7 +71,7 @@ providing cutting edge hardware support to deliver a set-top box experience.
|
||||
read-only with the exception of /var (containing runtime configuration data).
|
||||
* Manual update/downgrade procedure is as follows:
|
||||
Extract the snapshot and navigate to the 'target' directory.
|
||||
Copy KERNEL and SYSTEM along with KERNEL.md5 and SYSTEM.md5 to the 'Update' network share (or /storage/.update) on
|
||||
Copy KERNEL and SYSTEM to the 'Update' network share (or /storage/.update) on
|
||||
your openelec machine. Your system will automatically upgrade during the
|
||||
next reboot.
|
||||
* Automatic mounting of filesystems is supported. Devices such as USB Flash
|
||||
|
||||
@@ -17,9 +17,6 @@
|
||||
<description>
|
||||
@PKG_LONGDESC@
|
||||
</description>
|
||||
<disclaimer>
|
||||
@PKG_DISCLAIMER@
|
||||
</disclaimer>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
|
||||
@@ -233,7 +233,7 @@ dashes="==========================="
|
||||
show_config() {
|
||||
dashes="==========================="
|
||||
config_message="$config_message\n $dashes$dashes$dashes"
|
||||
config_message="$config_message\n Configuration for $DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "unofficial"))"
|
||||
config_message="$config_message\n Configuration for $DISTRONAME"
|
||||
config_message="$config_message\n $dashes$dashes$dashes"
|
||||
|
||||
# Build options
|
||||
@@ -317,8 +317,6 @@ show_config() {
|
||||
config_message="$config_message\n - SAMBA server support:\t\t $SAMBA_SERVER"
|
||||
config_message="$config_message\n - SFTP server support:\t\t\t $SFTP_SERVER"
|
||||
config_message="$config_message\n - SSH Guard support:\t\t\t $SSHGUARD_SUPPORT"
|
||||
config_message="$config_message\n - PPTP support:\t\t\t $PPTP_SUPPORT"
|
||||
config_message="$config_message\n - OpenVPN support:\t\t\t $OPENVPN_SUPPORT"
|
||||
config_message="$config_message\n - XBMC Airplay support:\t\t $AIRPLAY_SUPPORT"
|
||||
config_message="$config_message\n - XBMC Airtunes support:\t\t $AIRTUNES_SUPPORT"
|
||||
config_message="$config_message\n - XBMC AFP support:\t\t\t $AFP_SUPPORT"
|
||||
@@ -335,10 +333,7 @@ show_config() {
|
||||
config_message="$config_message\n - Default Hostname:\t\t\t $HOSTNAME"
|
||||
config_message="$config_message\n - Default ROOT Password:\t\t $ROOT_PASSWORD"
|
||||
config_message="$config_message\n - Bootloader:\t\t\t\t $BOOTLOADER"
|
||||
if [ "$BOOTLOADER" = "u-boot" ]; then
|
||||
config_message="$config_message\n - U-Boot configuration:\t\t $UBOOT_CONFIG"
|
||||
config_message="$config_message\n - U-Boot config file:\t\t\t $UBOOT_CONFIGFILE"
|
||||
fi
|
||||
config_message="$config_message\n - UDisks support:\t\t\t $UDISKS"
|
||||
config_message="$config_message\n - UPower support:\t\t\t $UPOWER"
|
||||
config_message="$config_message\n - Update support:\t\t\t $UPDATE_SUPPORT"
|
||||
|
||||
@@ -34,14 +34,10 @@ fi
|
||||
|
||||
get_graphicdrivers() {
|
||||
if [ "$GRAPHIC_DRIVERS" = "all" ]; then
|
||||
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 fglrx fglrx-legacy nvidia vmware virtualbox"
|
||||
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 fglrx nvidia vmware virtualbox"
|
||||
fi
|
||||
|
||||
for drv in $GRAPHIC_DRIVERS; do
|
||||
if [ "$drv" = "dove" ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS dove"
|
||||
fi
|
||||
|
||||
if [ "$drv" = "fglrx" ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS fglrx"
|
||||
COMPOSITE_SUPPORT="yes"
|
||||
@@ -78,11 +74,6 @@ get_graphicdrivers() {
|
||||
XINERAMA_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ "$drv" = "nvidia-legacy" ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS nvidia-legacy"
|
||||
XINERAMA_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ "$drv" = "virtualbox" ]; then
|
||||
DRI_DRIVERS="$DRI_DRIVERS,swrast"
|
||||
XORG_DRIVERS="$XORG_DRIVERS virtualbox"
|
||||
|
||||
@@ -144,4 +144,4 @@ else
|
||||
exec 3>&2
|
||||
exec 4>/dev/null
|
||||
fi
|
||||
BUILD_INDENT_SIZE=4
|
||||
INDENT_SIZE=4
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="3.0.2"
|
||||
OPENELEC_VERSION="2.0.0"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="3.0"
|
||||
OS_VERSION="2.0"
|
||||
|
||||
# ADDON_VERSION: Addon version
|
||||
ADDON_VERSION="3.0"
|
||||
ADDON_VERSION="2.1"
|
||||
|
||||
|
||||
Binary file not shown.
55
config/vmware/OpenELEC.vmx
Executable file
55
config/vmware/OpenELEC.vmx
Executable file
@@ -0,0 +1,55 @@
|
||||
.encoding = "UTF-8"
|
||||
config.version = "8"
|
||||
virtualHW.version = "7"
|
||||
|
||||
displayName = "OpenELEC.tv - VMWare build"
|
||||
guestOS = "other26xlinux"
|
||||
nvram = "OpenELEC.nvram"
|
||||
numvcpus = "2"
|
||||
memsize = "1024"
|
||||
mks.enable3d = "TRUE"
|
||||
virtualHW.productCompatibility = "hosted"
|
||||
|
||||
ide0:0.present = "TRUE"
|
||||
ide0:0.fileName = "OpenELEC.flash"
|
||||
ide0:1.present = "TRUE"
|
||||
ide0:1.fileName = "OpenELEC.storage"
|
||||
ide1:0.present = "TRUE"
|
||||
ide1:0.autodetect = "TRUE"
|
||||
ide1:0.startConnected = "FALSE"
|
||||
ide1:0.deviceType = "cdrom-raw"
|
||||
ide1:1.present = "FALSE"
|
||||
scsi0.present = "FALSE"
|
||||
floppy0.present = "FALSE"
|
||||
|
||||
ethernet0.present = "TRUE"
|
||||
ethernet0.connectionType = "nat"
|
||||
ethernet0.wakeOnPcktRcv = "FALSE"
|
||||
ethernet0.addressType = "generated"
|
||||
|
||||
usb.present = "TRUE"
|
||||
ehci.present = "TRUE"
|
||||
|
||||
sound.present = "TRUE"
|
||||
sound.startConnected = "TRUE"
|
||||
sound.fileName = "-1"
|
||||
sound.autodetect = "TRUE"
|
||||
|
||||
extendedConfigFile = "OpenELEC.vmxf"
|
||||
ethernet0.generatedAddress = "00:0c:29:39:05:27"
|
||||
uuid.location = "56 4d 6b b5 e7 5c 8d 13-cc 60 70 2d 4f 39 05 27"
|
||||
uuid.bios = "56 4d 6b b5 e7 5c 8d 13-cc 60 70 2d 4f 39 05 27"
|
||||
cleanShutdown = "TRUE"
|
||||
replay.supported = "FALSE"
|
||||
replay.filename = ""
|
||||
ide0:0.redo = ""
|
||||
ide0:1.redo = ""
|
||||
usb.pciSlotNumber = "16"
|
||||
ethernet0.pciSlotNumber = "17"
|
||||
sound.pciSlotNumber = "18"
|
||||
ehci.pciSlotNumber = "19"
|
||||
vmotion.checkpointFBSize = "134217728"
|
||||
ethernet0.generatedAddressOffset = "0"
|
||||
debugStub.linuxOffsets = "0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0"
|
||||
tools.remindInstall = "TRUE"
|
||||
ide1:0.fileName = "auto detect"
|
||||
@@ -20,7 +20,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="CouchPotatoServer"
|
||||
PKG_VERSION="a49a00a"
|
||||
PKG_VERSION="e1d7440"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/couchpotato/runner.py b/couchpotato/runner.py
|
||||
index c0b7eb8..3a550f9 100644
|
||||
--- a/couchpotato/runner.py
|
||||
+++ b/couchpotato/runner.py
|
||||
@@ -112,7 +112,7 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En
|
||||
Env.set('data_dir', data_dir)
|
||||
Env.set('log_path', os.path.join(log_dir, 'CouchPotato.log'))
|
||||
Env.set('db_path', 'sqlite:///' + db_path)
|
||||
- Env.set('cache_dir', os.path.join(data_dir, 'cache'))
|
||||
+ Env.set('cache_dir', os.path.join(data_dir, 'cache.cpv2'))
|
||||
Env.set('cache', FileSystemCache(os.path.join(Env.get('cache_dir'), 'python')))
|
||||
Env.set('console_log', options.console_log)
|
||||
Env.set('quiet', options.quiet)
|
||||
2
packages/3rdparty/download/Headphones/meta
vendored
2
packages/3rdparty/download/Headphones/meta
vendored
@@ -20,7 +20,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="Headphones"
|
||||
PKG_VERSION="263272c"
|
||||
PKG_VERSION="d07dc39"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
4
packages/3rdparty/download/SABnzbd/meta
vendored
4
packages/3rdparty/download/SABnzbd/meta
vendored
@@ -19,14 +19,14 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="SABnzbd"
|
||||
PKG_VERSION="0.7.11"
|
||||
PKG_VERSION="0.7.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
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 configobj"
|
||||
PKG_BUILD_DEPENDS="toolchain Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/downloadmanager"
|
||||
PKG_SHORTDESC="SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can."
|
||||
|
||||
2
packages/3rdparty/download/SickBeard/meta
vendored
2
packages/3rdparty/download/SickBeard/meta
vendored
@@ -20,7 +20,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="SickBeard"
|
||||
PKG_VERSION="4e57625"
|
||||
PKG_VERSION="b7cf06e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
diff --git a/data/interfaces/default/config.tmpl b/data/interfaces/default/config.tmpl
|
||||
index ec28766..fdf3e30 100644
|
||||
--- a/data/interfaces/default/config.tmpl
|
||||
+++ b/data/interfaces/default/config.tmpl
|
||||
@@ -36,13 +36,4 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
-<div class="container padding" style="width: 600px;">
|
||||
- <table class="infoTable">
|
||||
- <tr>
|
||||
- <td><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;"><img src="$sbRoot/images/paypal/btn_donateCC_LG.gif" alt="[donate]" /></a></td>
|
||||
- <td>Sick Beard is free, but you can contribute by giving a <b><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;">donation</a></b>.</td>
|
||||
- </tr>
|
||||
- </table>
|
||||
-</div>
|
||||
-
|
||||
#include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_bottom.tmpl")
|
||||
diff --git a/data/interfaces/default/inc_top.tmpl b/data/interfaces/default/inc_top.tmpl
|
||||
index f791be8..fb38f17 100644
|
||||
--- a/data/interfaces/default/inc_top.tmpl
|
||||
+++ b/data/interfaces/default/inc_top.tmpl
|
||||
@@ -108,20 +108,6 @@
|
||||
|
||||
<body>
|
||||
<header>
|
||||
-#if $sickbeard.NEWEST_VERSION_STRING:
|
||||
-<div id="upgrade-notification">
|
||||
- <div>
|
||||
- <span class="notify-text">$sickbeard.NEWEST_VERSION_STRING</span>
|
||||
- </div>
|
||||
-</div>
|
||||
-<div id="header-fix"></div>
|
||||
-#end if
|
||||
-<div id="header">
|
||||
- <a name="top"></a>
|
||||
- <span id="logo"><a href="$sbRoot/home/" title="Sick Beard homepage"><img alt="Sick Beard" src="$sbRoot/images/sickbeard.png" width="150" height="72" /></a></span>
|
||||
- <span id="versiontext">alpha <a href="https://github.com/midgetspy/Sick-Beard/wiki/ChangeLog" onclick="window.open(this.href, '_blank'); return false;">$sickbeard.version.SICKBEARD_VERSION</a></span>
|
||||
-</div>
|
||||
-
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
@@ -208,11 +194,6 @@
|
||||
</li>
|
||||
<li class="divider-vertical"></li>
|
||||
</ul>
|
||||
- <ul class="nav pull-right">
|
||||
- <li>
|
||||
- <a id="navDonate" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;"><img src="$sbRoot/images/paypal/btn_donate_LG.gif" alt="[donate]" height="26" width="92" /></a>
|
||||
- </li>
|
||||
- </ul>
|
||||
</div><!-- /nav-collapse -->
|
||||
|
||||
</div><!-- /container -->
|
||||
@@ -0,0 +1,44 @@
|
||||
diff -Naur SickBeard-9b43f71/data/interfaces/default/config.tmpl SickBeard-9b43f71.patch/data/interfaces/default/config.tmpl
|
||||
--- SickBeard-9b43f71/data/interfaces/default/config.tmpl 2011-12-14 04:42:55.000000000 +0100
|
||||
+++ SickBeard-9b43f71.patch/data/interfaces/default/config.tmpl 2011-12-14 04:56:35.317466009 +0100
|
||||
@@ -25,9 +25,4 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
-<table class="infoTable" cellspacing="1" border="0" cellpadding="0"><tr>
|
||||
- <td><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;"><img src="$sbRoot/images/paypal/btn_donateCC_LG.gif" alt="[donate]" /></a></td>
|
||||
- <td>Sickbeard is free, but you can contribute by giving a <b><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;">donation</a></b>.</td>
|
||||
-</tr></table>
|
||||
-
|
||||
#include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_bottom.tmpl")
|
||||
diff -Naur SickBeard-9b43f71/data/interfaces/default/inc_top.tmpl SickBeard-9b43f71.patch/data/interfaces/default/inc_top.tmpl
|
||||
--- SickBeard-9b43f71/data/interfaces/default/inc_top.tmpl 2011-12-14 04:42:55.000000000 +0100
|
||||
+++ SickBeard-9b43f71.patch/data/interfaces/default/inc_top.tmpl 2011-12-14 04:56:35.318466029 +0100
|
||||
@@ -140,19 +140,6 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
-#if $sickbeard.NEWEST_VERSION_STRING:
|
||||
-<div id="upgrade-notification">
|
||||
- <div>
|
||||
- <span class="notify-text">$sickbeard.NEWEST_VERSION_STRING</span>
|
||||
- </div>
|
||||
-</div>
|
||||
-<div id="header-fix"></div>
|
||||
-#end if
|
||||
-<div id="header">
|
||||
- <a name="top"></a>
|
||||
- <span id="logo"><a href="$sbRoot/home/" title="Sick Beard homepage"><img alt="Sick Beard" src="$sbRoot/images/sickbeard_small.png" width="150" /></a></span>
|
||||
- <span id="versiontext">alpha $sickbeard.version.SICKBEARD_VERSION</span>
|
||||
-</div>
|
||||
<ul id="MainMenu" class="sf-menu">
|
||||
<li id="NAVsystem" class="first"><a href="#" class="navIcon" onclick="return false;"><img src="$sbRoot/images/menu/system18.png" alt="" width="18" height="18" /></a>
|
||||
<ul>
|
||||
@@ -194,7 +181,6 @@
|
||||
<li><a href="$sbRoot/errorlogs/viewlog/"><img src="$sbRoot/images/menu/viewlog16.png" alt="" width="16" height="16" />View Log</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
- <li id="donate"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;"><img src="$sbRoot/images/paypal/btn_donate_LG.gif" alt="[donate]" /></a></li>
|
||||
</ul>
|
||||
#if $varExists('submenu'):
|
||||
<div id="SubMenu">
|
||||
@@ -1,13 +1,14 @@
|
||||
diff --git a/data/interfaces/default/config_notifications.tmpl b/data/interfaces/default/config_notifications.tmpl
|
||||
index 826cf0a..02f14af 100755
|
||||
--- a/data/interfaces/default/config_notifications.tmpl
|
||||
+++ b/data/interfaces/default/config_notifications.tmpl
|
||||
@@ -547,45 +547,6 @@
|
||||
diff -Naur SickBeard-a24eac6/data/interfaces/default/config_notifications.tmpl SickBeard-a24eac6.patch/data/interfaces/default/config_notifications.tmpl
|
||||
--- SickBeard-a24eac6/data/interfaces/default/config_notifications.tmpl 2012-03-21 04:31:18.000000000 +0100
|
||||
+++ SickBeard-a24eac6.patch/data/interfaces/default/config_notifications.tmpl 2012-03-21 06:39:45.827897872 +0100
|
||||
@@ -528,45 +528,6 @@
|
||||
</fieldset>
|
||||
</div><!-- /notifo component-group //-->
|
||||
|
||||
<div class="component-group clearfix">
|
||||
<div class="component-group-desc">
|
||||
- <img class="notifier-icon" src="$sbRoot/images/notifiers/libnotify.png" alt="" title="Libnotify" />
|
||||
- <h3><a href="http://library.gnome.org/devel/libnotify/" onclick="window.open(this.href, '_blank'); return false;">Libnotify</a></h3>
|
||||
-
|
||||
- <div class="component-group clearfix">
|
||||
- <div class="component-group-desc">
|
||||
- <h3><a href="http://library.gnome.org/devel/libnotify/" onclick="window.open(this.href, '_blank'); return false;"><img src="$sbRoot/images/notifiers/libnotify.gif" alt="" title="Libnotify" width="16" height="16" /> Libnotify </a></h3>
|
||||
- <p>The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package <a href="apt:python-notify">python-notify</a>).</p>
|
||||
- </div>
|
||||
- <fieldset class="component-group-list">
|
||||
@@ -35,37 +36,32 @@ index 826cf0a..02f14af 100755
|
||||
- </label>
|
||||
- </div>
|
||||
- <div class="testNotification" id="testLibnotify-result">Click below to test.</div>
|
||||
- <input type="button" class="btn" value="Test Libnotify" id="testLibnotify" />
|
||||
- <input type="submit" class="btn config_submitter" value="Save Changes" />
|
||||
- <input type="button" value="Test Libnotify" id="testLibnotify" />
|
||||
- <input type="submit" class="config_submitter" value="Save Changes" />
|
||||
- </div><!-- /content_use_libnotify //-->
|
||||
-
|
||||
- </fieldset>
|
||||
- </div><!-- /libnotify component-group //-->
|
||||
-
|
||||
-
|
||||
- <div class="component-group clearfix">
|
||||
- <div class="component-group-desc">
|
||||
<img class="notifier-icon" src="$sbRoot/images/notifiers/pushover.png" alt="" title="Pushover" />
|
||||
<h3><a href="http://pushover.net/" onclick="window.open(this.href, '_blank'); return false;">Pushover</a></h3>
|
||||
<p>Pushover makes it easy to send real-time notifications to your Android and iOS devices.</p>
|
||||
diff --git a/data/interfaces/default/inc_top.tmpl b/data/interfaces/default/inc_top.tmpl
|
||||
index fb38f17..4ead36f 100644
|
||||
--- a/data/interfaces/default/inc_top.tmpl
|
||||
+++ b/data/interfaces/default/inc_top.tmpl
|
||||
@@ -172,8 +172,6 @@
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="$sbRoot/config/"><i class="icon-question-sign"></i> Help & Info</a></li>
|
||||
<li class="divider"></li>
|
||||
- <li><a href="$sbRoot/config/general/"><i class="icon-cog"></i> General</a></li>
|
||||
- <li class="divider"></li>
|
||||
<li><a href="$sbRoot/config/search/"><i class="icon-cog"></i> Search Settings</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="$sbRoot/config/providers/"><i class="icon-cog"></i> Search Providers</a></li>
|
||||
diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py
|
||||
index 20f0dfc..b0bf6a6 100644
|
||||
--- a/sickbeard/webserve.py
|
||||
+++ b/sickbeard/webserve.py
|
||||
@@ -609,7 +609,6 @@ class History:
|
||||
<div class="component-group clearfix">
|
||||
<div class="component-group-desc">
|
||||
<h3><a href="http://boxcar.io/" onclick="window.open(this.href, '_blank'); return false;"><img src="$sbRoot/images/notifiers/boxcar.gif" alt="" title="Boxcar" width="16" height="16" /> Boxcar </a></h3>
|
||||
diff -Naur SickBeard-a24eac6/data/interfaces/default/inc_top.tmpl SickBeard-a24eac6.patch/data/interfaces/default/inc_top.tmpl
|
||||
--- SickBeard-a24eac6/data/interfaces/default/inc_top.tmpl 2012-03-21 06:35:02.098433287 +0100
|
||||
+++ SickBeard-a24eac6.patch/data/interfaces/default/inc_top.tmpl 2012-03-21 06:35:34.445056278 +0100
|
||||
@@ -169,7 +169,6 @@
|
||||
<li id="NAVconfig"><a href="$sbRoot/config/">Config</a>
|
||||
<ul>
|
||||
<li><a href="$sbRoot/config/"><img src="$sbRoot/images/menu/config_index16.png" alt="" width="16" height="16" />Help & Info</a></li>
|
||||
- <li><a href="$sbRoot/config/general/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />General</a></li>
|
||||
<li><a href="$sbRoot/config/search/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Settings</a></li>
|
||||
<li><a href="$sbRoot/config/providers/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Providers</a></li>
|
||||
<li><a href="$sbRoot/config/postProcessing/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Post Processing</a></li>
|
||||
diff -Naur SickBeard-a24eac6/sickbeard/webserve.py SickBeard-a24eac6.patch/sickbeard/webserve.py
|
||||
--- SickBeard-a24eac6/sickbeard/webserve.py 2012-03-21 04:31:18.000000000 +0100
|
||||
+++ SickBeard-a24eac6.patch/sickbeard/webserve.py 2012-03-21 06:35:34.447056316 +0100
|
||||
@@ -593,7 +593,6 @@
|
||||
|
||||
|
||||
ConfigMenu = [
|
||||
@@ -31,8 +31,3 @@ cd $PKG_BUILD/userhdhomerun
|
||||
sed -i "s|/etc/dvbhdhomerun|/tmp/dvbhdhomerun|g" hdhomerun_tuner.cpp
|
||||
|
||||
make LDFLAGS="-lpthread"
|
||||
$STRIP build/userhdhomerun
|
||||
|
||||
cd ../kernel
|
||||
LDFLAGS="" make dvb_hdhomerun KERNEL_DIR=$(kernel_path)
|
||||
fix_module_depends dvb_hdhomerun_core.ko "dvb_core"
|
||||
35
packages/3rdparty/driver/dvbhdhomerun/meta
vendored
Normal file
35
packages/3rdparty/driver/dvbhdhomerun/meta
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# 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
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvbhdhomerun"
|
||||
PKG_VERSION="0.0.10"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://sourceforge.net/projects/dvbhdhomerun/"
|
||||
PKG_URL="http://downloads.sourceforge.net/project/dvbhdhomerun/${PKG_NAME}_${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain libhdhomerun"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="driver/dvb"
|
||||
PKG_SHORTDESC="A linux DVB driver and userspace application for the HDHomeRun TV tuner (http://www.silicondust.com)."
|
||||
PKG_LONGDESC="A linux DVB driver and userspace application for the HDHomeRun TV tuner (http://www.silicondust.com)."
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
@@ -1,7 +1,7 @@
|
||||
diff -uNr dvbhdhomerun-0.0.15-orig/userhdhomerun/conf_inifile.cpp dvbhdhomerun-0.0.15/userhdhomerun/conf_inifile.cpp
|
||||
--- dvbhdhomerun-0.0.15-orig/userhdhomerun/conf_inifile.cpp 2013-02-17 22:37:34.000000000 +0100
|
||||
+++ dvbhdhomerun-0.0.15/userhdhomerun/conf_inifile.cpp 2013-03-02 10:23:46.000000000 +0100
|
||||
@@ -8,6 +8,38 @@
|
||||
diff -uNr dvbhdhomerun-0.0.9-orig/userhdhomerun/conf_inifile.cpp dvbhdhomerun-0.0.9/userhdhomerun/conf_inifile.cpp
|
||||
--- dvbhdhomerun-0.0.9-orig/userhdhomerun/conf_inifile.cpp 2011-03-06 21:00:01.000000000 +0100
|
||||
+++ dvbhdhomerun-0.0.9/userhdhomerun/conf_inifile.cpp 2011-12-20 23:21:46.000000000 +0100
|
||||
@@ -8,6 +8,37 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -35,18 +35,17 @@ diff -uNr dvbhdhomerun-0.0.15-orig/userhdhomerun/conf_inifile.cpp dvbhdhomerun-0
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
bool ConfIniFile::OpenIniFile(const string& _filename)
|
||||
{
|
||||
m_sectionKeyValue.clear();
|
||||
@@ -17,7 +49,8 @@
|
||||
if(conffile.is_open()) {
|
||||
string line;
|
||||
string section;
|
||||
- while(getline(conffile, line)) {
|
||||
+ //while(getline(conffile, line)) {
|
||||
+ while(safeGetline(conffile, line)) {
|
||||
if(line.empty()) {
|
||||
//LOG() << " ignore, empty";
|
||||
}
|
||||
ifstream conffile;
|
||||
@@ -15,7 +46,8 @@
|
||||
if(conffile.is_open()) {
|
||||
string line;
|
||||
string section;
|
||||
- while(getline(conffile, line)) {
|
||||
+ //while(getline(conffile, line)) {
|
||||
+ while(safeGetline(conffile, line)) {
|
||||
if(line.empty()) {
|
||||
//LOG() << " ignore, empty";
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
diff -uNr dvbhdhomerun-0.0.15-orig/userhdhomerun/hdhomerun_tuner.cpp dvbhdhomerun-0.0.15/userhdhomerun/hdhomerun_tuner.cpp
|
||||
--- dvbhdhomerun-0.0.15-orig/userhdhomerun/hdhomerun_tuner.cpp 2013-02-17 22:37:34.000000000 +0100
|
||||
+++ dvbhdhomerun-0.0.15/userhdhomerun/hdhomerun_tuner.cpp 2013-03-02 10:25:15.000000000 +0100
|
||||
diff -uNr dvbhdhomerun-0.0.10-orig/userhdhomerun/hdhomerun_tuner.cpp dvbhdhomerun-0.0.10/userhdhomerun/hdhomerun_tuner.cpp
|
||||
--- dvbhdhomerun-0.0.10-orig/userhdhomerun/hdhomerun_tuner.cpp 2012-04-28 18:05:40.000000000 +0200
|
||||
+++ dvbhdhomerun-0.0.10/userhdhomerun/hdhomerun_tuner.cpp 2012-06-05 13:21:16.000000000 +0200
|
||||
@@ -97,12 +97,28 @@
|
||||
string type(tmp);
|
||||
LOG() << "Type of device: " << type << endl;
|
||||
37
packages/3rdparty/driver/sundtek/build
vendored
Executable file
37
packages/3rdparty/driver/sundtek/build
vendored
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
# binary search & replace (strings must be same length!)
|
||||
# mediasrv
|
||||
# /etc/sunI<6E>dtek.conf
|
||||
# /etc/sundtek.conf
|
||||
# libdrv_em28xx.so
|
||||
# /etc/sundtek.conf
|
||||
# mediaclient
|
||||
# /etc/sundtek_diseqc.conf
|
||||
perl -pi -e 's|/etc|/tmp|g' opt/bin/mediasrv
|
||||
perl -pi -e 's|/etc|/tmp|g' opt/bin/dvb/libdrv_em28xx.so
|
||||
perl -pi -e 's|/etc|/tmp|g' opt/bin/mediaclient
|
||||
@@ -18,19 +18,18 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="marvell-libgfx"
|
||||
PKG_VERSION="20121001"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="arm"
|
||||
PKG_NAME="sundtek"
|
||||
PKG_VERSION="20120912"
|
||||
PKG_REV="0"
|
||||
PKG_ARCH="i386 x86_64 arm"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.marvell.com"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS="libXfixes libXdamage"
|
||||
PKG_BUILD_DEPENDS="toolchain libXfixes libXdamage"
|
||||
PKG_SITE="http://support.sundtek.com/"
|
||||
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}-${ARCH}.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS=""
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="graphics"
|
||||
PKG_SHORTDESC="marvell-libgfx: OpenGL-ES and OpenMAX driver for Marvell Dove"
|
||||
PKG_LONGDESC="marvell-libgfx: OpenGL-ES and OpenMAX driver for Marvell Dove"
|
||||
PKG_SECTION="driver/dvb"
|
||||
PKG_SHORTDESC="Sundtek USB Stick DVB userspace driver"
|
||||
PKG_LONGDESC="Driver for Sundtek MediaTV Pro (DVB-C, DVB-T, AnalogTV, Composite, S-Video, FM-Radio USB Stick) and Sundtek SkyTV Ultimate (DVB-S/S2 USB)."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
2
packages/3rdparty/graphics/libpng12/meta
vendored
2
packages/3rdparty/graphics/libpng12/meta
vendored
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libpng"
|
||||
PKG_VERSION="1.2.50"
|
||||
PKG_VERSION="1.2.49"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
2
packages/3rdparty/lib/cxxtools/meta
vendored
2
packages/3rdparty/lib/cxxtools/meta
vendored
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="cxxtools"
|
||||
PKG_VERSION="2.1.1"
|
||||
PKG_VERSION="2.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL-2"
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ccid"
|
||||
PKG_VERSION="1.4.9"
|
||||
PKG_NAME="libccid"
|
||||
PKG_VERSION="1.4.7"
|
||||
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/3866/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3730/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain pcsc-lite"
|
||||
PKG_PRIORITY="optional"
|
||||
@@ -22,5 +22,5 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/sbin
|
||||
cp -P $PKG_BUILD/pptp $INSTALL/usr/sbin
|
||||
cd $BUILD
|
||||
mv ccid-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
2
packages/3rdparty/lib/libhdhomerun/meta
vendored
2
packages/3rdparty/lib/libhdhomerun/meta
vendored
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libhdhomerun"
|
||||
PKG_VERSION="20130117"
|
||||
PKG_VERSION="20120405"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
|
||||
@@ -29,15 +29,10 @@ cd $BUILD/$1*
|
||||
sed -i -e 's/ac_cv_linux_vers=unknown/ac_cv_linux_vers=2/' configure
|
||||
|
||||
LIBS="-lpthread" \
|
||||
ac_cv_header_libusb_1_0_libusb_h=no \
|
||||
./configure \
|
||||
--host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--disable-shared \
|
||||
--with-pcap=linux \
|
||||
--disable-bluetooth \
|
||||
--disable-can \
|
||||
--disable-canusb \
|
||||
--with-pcap=linux
|
||||
|
||||
$MAKEINSTALL
|
||||
@@ -20,15 +20,12 @@
|
||||
|
||||
PKG_NAME="libpcap"
|
||||
PKG_VERSION="1.3.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.tcpdump.org/"
|
||||
PKG_URL="http://www.tcpdump.org/release/libpcap-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS="libusb"
|
||||
PKG_BUILD_DEPENDS="toolchain libusb"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
PKG_REV=1
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY=optional
|
||||
PKG_SECTION=libs
|
||||
PKG_SHORTDESC="system interface for user-level packet capture"
|
||||
PKG_LONGDESC="libpcap (Packet CAPture) provides a portable framework for low-level network monitoring. Applications include network statistics collection, security monitoring, network debugging, etc."
|
||||
PKG_IS_ADDON="no"
|
||||
45
packages/3rdparty/lib/xine-lib/build
vendored
Executable file
45
packages/3rdparty/lib/xine-lib/build
vendored
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
VDR_GUI_ADDON_DIR="/storage/.xbmc/addons/script.video.vdr-gui"
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
strip_lto
|
||||
|
||||
./autogen.sh --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--with-external-ffmpeg \
|
||||
--disable-dxr3 \
|
||||
--disable-aalib \
|
||||
--disable-vcd \
|
||||
--disable-musepack
|
||||
|
||||
sed -i "s|XINE_PLUGINDIR .*|XINE_PLUGINDIR \"$VDR_GUI_ADDON_DIR/lib/xine/plugins/2.1\"|" include/configure.h
|
||||
sed -i "s|XINE_PLUGINROOT .*|XINE_PLUGINROOT \"$VDR_GUI_ADDON_DIR/lib/xine/plugins/2\"|" include/configure.h
|
||||
|
||||
# same for fonts and locales and copy them
|
||||
|
||||
make
|
||||
$MAKEINSTALL
|
||||
35
packages/3rdparty/lib/xine-lib/meta
vendored
Normal file
35
packages/3rdparty/lib/xine-lib/meta
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# 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
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xine-lib"
|
||||
PKG_VERSION="1-2-25f276f9211a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.xine-project.org/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="ffmpeg"
|
||||
PKG_BUILD_DEPENDS="toolchain ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="xine is a high-performance, portable and reusable multimedia playback engine."
|
||||
PKG_LONGDESC="xine is a high-performance, portable and reusable multimedia playback engine."
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-dynamite"
|
||||
PKG_VERSION="914af24"
|
||||
PKG_VERSION="10d78a8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-epgsearch"
|
||||
PKG_VERSION="0fc4817"
|
||||
PKG_VERSION="1.0.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://winni.vdr-developer.org/epgsearch/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_URL="http://winni.vdr-developer.org/epgsearch/downloads/${PKG_NAME}-${PKG_VERSION}.tgz"
|
||||
PKG_DEPENDS="vdr"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
46
packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-1.0.0-vdr_1.7.25-01.patch
vendored
Normal file
46
packages/3rdparty/multimedia/vdr-epgsearch/patches/vdr-epgsearch-1.0.0-vdr_1.7.25-01.patch
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
From 15d08ffb09de612ae1eb53b2aeca2f906f7076a6 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Wieninger
|
||||
Date: Sun, 04 Mar 2012 08:44:19 +0000
|
||||
Subject: support for vdr 1.7.25
|
||||
|
||||
---
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 0397217..4a72b41 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -64,7 +64,7 @@ CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -Wno-format-y2k
|
||||
|
||||
### The directory environment:
|
||||
|
||||
-DVBDIR = ../../../../DVB
|
||||
+#DVBDIR = ../../../../DVB
|
||||
VDRDIR = ../../..
|
||||
LIBDIR = ../../lib
|
||||
TMPDIR = /tmp
|
||||
diff --git a/conflictcheck.h b/conflictcheck.h
|
||||
index fcc6dcb..7e6fb7a 100644
|
||||
--- a/conflictcheck.h
|
||||
+++ b/conflictcheck.h
|
||||
@@ -163,12 +163,20 @@ class cConflictCheckDevice
|
||||
result = true;
|
||||
#ifdef DO_REC_AND_PLAY_ON_PRIMARY_DEVICE
|
||||
else
|
||||
+#if APIVERSNUM < 10725
|
||||
result = Priority >= Setup.PrimaryLimit;
|
||||
+#else
|
||||
+ result = Priority >= 0;
|
||||
+#endif
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else
|
||||
+#if APIVERSNUM < 10725
|
||||
result = !IsPrimaryDevice() || Priority >= Setup.PrimaryLimit;
|
||||
+#else
|
||||
+ result = !IsPrimaryDevice() || Priority >= 0;
|
||||
+#endif
|
||||
}
|
||||
else
|
||||
needsDetachReceivers = true;
|
||||
--
|
||||
cgit v0.9.0.2-39-g756e
|
||||
@@ -22,6 +22,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/evtest $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/evtest-capture $INSTALL/usr/bin
|
||||
cd $BUILD
|
||||
#mv epgsearch-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
mv epgsearch-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
4
packages/3rdparty/multimedia/vdr-iptv/build
vendored
4
packages/3rdparty/multimedia/vdr-iptv/build
vendored
@@ -24,10 +24,6 @@
|
||||
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
|
||||
CFLAGS="$CFLAGS -fPIC"
|
||||
CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
LDFLAGS="$LDFLAGS -fPIC"
|
||||
|
||||
cd $PKG_BUILD
|
||||
make VDRDIR="../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale"
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index d41acd1..58faab1 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -5,9 +5,6 @@
|
||||
# Debugging on/off
|
||||
#IPTV_DEBUG = 1
|
||||
|
||||
-# Strip debug symbols? Set eg. to /bin/true if not
|
||||
-STRIP = strip
|
||||
-
|
||||
# The official name of this plugin.
|
||||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
||||
# By default the main source file also carries this name.
|
||||
@@ -1,50 +0,0 @@
|
||||
From 94a0a210a485ce1fc95c47a6bc67c4c16c89a0f9 Mon Sep 17 00:00:00 2001
|
||||
From: Dieter Hametner
|
||||
Date: Sun, 25 Mar 2012 14:42:12 +0000
|
||||
Subject: Updated LIVE to latest changes in vdr 1.7.27
|
||||
|
||||
- Do not use the direct access to cRecoding members any more.
|
||||
---
|
||||
diff --git a/epg_events.cpp b/epg_events.cpp
|
||||
index a514769..cd4996e 100644
|
||||
--- a/epg_events.cpp
|
||||
+++ b/epg_events.cpp
|
||||
@@ -182,12 +182,20 @@ namespace vdrlive
|
||||
|
||||
time_t EpgRecording::GetStartTime() const
|
||||
{
|
||||
+#if VDRVERSNUM < 10726
|
||||
return m_recording ? m_recording->start : 0;
|
||||
+#else
|
||||
+ return m_recording ? m_recording->Start() : 0;
|
||||
+#endif
|
||||
}
|
||||
|
||||
time_t EpgRecording::GetEndTime() const
|
||||
{
|
||||
+#if VDRVERSNUM < 10726
|
||||
return m_recording ? m_recording->start : 0;
|
||||
+#else
|
||||
+ return m_recording ? m_recording->Start() : 0;
|
||||
+#endif
|
||||
}
|
||||
|
||||
const string EpgRecording::Name() const
|
||||
diff --git a/recman.cpp b/recman.cpp
|
||||
index fb315d2..6a2fc00 100644
|
||||
--- a/recman.cpp
|
||||
+++ b/recman.cpp
|
||||
@@ -383,7 +383,11 @@ namespace vdrlive {
|
||||
|
||||
time_t RecordingsItemRec::StartTime() const
|
||||
{
|
||||
+#if VDRVERSNUM < 10726
|
||||
return m_recording->start;
|
||||
+#else
|
||||
+ return m_recording->Start();
|
||||
+#endif
|
||||
}
|
||||
|
||||
long RecordingsItemRec::Duration() const
|
||||
--
|
||||
cgit v0.9.0.2-40-g7c79
|
||||
@@ -1,40 +0,0 @@
|
||||
From c3ecf9fabb674bc154f5a08cdd62e74e2b5d0e36 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Ruppert
|
||||
Date: Sun, 03 Jun 2012 23:42:31 +0000
|
||||
Subject: Compile fix for >=vdr-1.7.28
|
||||
|
||||
---
|
||||
diff --git a/tasks.cpp b/tasks.cpp
|
||||
index 9f20190..2a2b8d5 100644
|
||||
--- a/tasks.cpp
|
||||
+++ b/tasks.cpp
|
||||
@@ -60,9 +60,15 @@ void PlayRecordingTask::Action()
|
||||
|
||||
const char *current = NowReplaying();
|
||||
if (!current || (0 != strcmp(current, recording->FileName()))) {
|
||||
+#if VDRVERSNUM >= 10728
|
||||
+ cReplayControl::SetRecording( 0 );
|
||||
+ cControl::Shutdown();
|
||||
+ cReplayControl::SetRecording( recording->FileName() );
|
||||
+#else
|
||||
cReplayControl::SetRecording( 0, 0 );
|
||||
cControl::Shutdown();
|
||||
cReplayControl::SetRecording( recording->FileName(), recording->Title() );
|
||||
+#endif
|
||||
cControl::Launch( new cReplayControl );
|
||||
cControl::Attach();
|
||||
}
|
||||
@@ -122,7 +128,11 @@ void StopRecordingTask::Action()
|
||||
return;
|
||||
}
|
||||
|
||||
+#if VDRVERSNUM >= 10728
|
||||
+ cReplayControl::SetRecording( 0 );
|
||||
+#else
|
||||
cReplayControl::SetRecording( 0, 0 );
|
||||
+#endif
|
||||
cControl::Shutdown();
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.9.0.2-40-g7c79
|
||||
@@ -33,7 +33,6 @@ LDFLAGS="$LDFLAGS -fPIC"
|
||||
|
||||
cd $PKG_BUILD
|
||||
make VDRDIR="../$VDR_DIR" \
|
||||
VDRSRC="../$VDR_DIR" \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale" \
|
||||
CSAFLAGS="$CFLAGS -Wall -fomit-frame-pointer -fexpensive-optimizations -funroll-loops"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dvbapi"
|
||||
PKG_VERSION="cd93752"
|
||||
PKG_VERSION="e3200c8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index d18b016..278af2b 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -156,7 +156,7 @@ libdvbapi-dvbufs9xx.so: device-ufs9xx.o
|
||||
|
||||
ifndef LIBDVBCSA
|
||||
$(FFDECSA): $(FFDECSADIR)/*.c $(FFDECSADIR)/*.h
|
||||
- @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CXXFLAGS) $(LDFLAGS) $(CSAFLAGS)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) all
|
||||
+ @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CXXFLAGS) $(LDFLAGS) $(CSAFLAGS)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) FFdecsa.o
|
||||
endif
|
||||
|
||||
install-lib: $(SOFILE)
|
||||
@@ -1,16 +0,0 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 278af2b..996dc77 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -85,8 +85,9 @@ OBJS = CAPMT.o DeCSA.o DeCsaTSBuffer.o dll.o DVBAPI.o DVBAPISetup.o SCDeviceProb
|
||||
|
||||
ifndef LIBDVBCSA
|
||||
# FFdeCSA
|
||||
-PARALLEL ?= PARALLEL_128_SSE2
|
||||
-CSAFLAGS ?= -fexpensive-optimizations -funroll-loops -mmmx -msse -msse2 -msse3
|
||||
+CPUOPT ?= pentium
|
||||
+PARALLEL ?= PARALLEL_32_INT
|
||||
+CSAFLAGS ?= -Wall -fPIC -g -O3 -mmmx -fomit-frame-pointer -fexpensive-optimizations -funroll-loops
|
||||
FFDECSADIR = FFdecsa
|
||||
FFDECSA = $(FFDECSADIR)/FFdecsa.o
|
||||
DECSALIB = $(FFDECSA)
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/device-tmpl.cpp b/device-tmpl.cpp
|
||||
index 158324b..4d9f862 100644
|
||||
--- a/device-tmpl.cpp
|
||||
+++ b/device-tmpl.cpp
|
||||
@@ -71,7 +71,7 @@ SCDEVICE::SCDEVICE(cScDevicePlugin *DevPlugin, int Adapter, int Frontend, int ca
|
||||
fd_dvr = -1;
|
||||
|
||||
int n = Adapter;
|
||||
- softcsa = (fd_ca < 0);
|
||||
+ softcsa = true;
|
||||
if (softcsa)
|
||||
{
|
||||
if (HasDecoder())
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur vdr-dvbapi-plugin-6e8cad7/Makefile vdr-dvbapi-plugin-6e8cad7.patch/Makefile
|
||||
--- vdr-dvbapi-plugin-6e8cad7/Makefile 2011-12-25 14:24:33.000000000 +0100
|
||||
+++ vdr-dvbapi-plugin-6e8cad7.patch/Makefile 2011-12-29 18:59:21.847652339 +0100
|
||||
@@ -80,7 +80,7 @@
|
||||
gcc -O -fbuiltin -fomit-frame-pointer -fPIC -shared -o $@ $< -ldl
|
||||
|
||||
$(FFDECSA): $(FFDECSADIR)/*.c $(FFDECSADIR)/*.h
|
||||
- @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CSAFLAGS) -march=$(CPUOPT)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) all
|
||||
+ @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CSAFLAGS)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) FFdecsa.o
|
||||
|
||||
dist: clean
|
||||
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
||||
17
packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-e3200c8-ffdecsa.patch
vendored
Normal file
17
packages/3rdparty/multimedia/vdr-plugin-dvbapi/patches/vdr-plugin-dvbapi-e3200c8-ffdecsa.patch
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a8c7d97..6084cec 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -54,9 +54,9 @@ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
OBJS = CAPMT.o DeCSA.o DeCsaTSBuffer.o DVBAPI.o DVBAPISetup.o SCDeviceProbe.o SCDVBDevice.o UDPSocket.o SCCIAdapter.o Frame.o SCCAMSlot.o
|
||||
|
||||
# FFdeCSA
|
||||
-CPUOPT ?= athlon64
|
||||
-PARALLEL ?= PARALLEL_128_SSE
|
||||
-CSAFLAGS ?= -fPIC -O3 -fexpensive-optimizations -funroll-loops -mmmx -msse -msse2 -msse3
|
||||
+CPUOPT ?= pentium
|
||||
+PARALLEL ?= PARALLEL_32_INT
|
||||
+CSAFLAGS ?= -Wall -fPIC -g -O3 -mmmx -fomit-frame-pointer -fexpensive-optimizations -funroll-loops
|
||||
FFDECSADIR = FFdecsa
|
||||
FFDECSA = $(FFDECSADIR)/FFdecsa.o
|
||||
FFDECSATEST = $(FFDECSADIR)/FFdecsa_test.done
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-streamdev"
|
||||
PKG_VERSION="f58086a"
|
||||
PKG_VERSION="6a47e20"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-xvdr"
|
||||
PKG_VERSION="c43033c"
|
||||
PKG_VERSION="b62ccbd"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
2
packages/3rdparty/multimedia/vdr-sc/meta
vendored
2
packages/3rdparty/multimedia/vdr-sc/meta
vendored
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-sc"
|
||||
PKG_VERSION="620"
|
||||
PKG_VERSION="613"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -18,20 +18,18 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-vnsiserver"
|
||||
PKG_VERSION="e3cd383"
|
||||
PKG_NAME="vdr-skinanthra_1280_OS"
|
||||
PKG_VERSION="1.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/opdenkamp/xbmc-pvr-addons/tree/master/addons/pvr.vdr.vnsi/vdr-plugin-vnsiserver"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_SITE="http://anthra.justlinux.de/common/overview.html"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="vdr"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="TV"
|
||||
PKG_LONGDESC="TV"
|
||||
|
||||
PKG_SHORTDESC="anthra skin for text2skin plugin."
|
||||
PKG_LONGDESC="anthra skin for text2skin plugin."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
@@ -22,12 +22,15 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
|
||||
# you can not use GraphTFT together with Text2Skin if you use Imlib2!
|
||||
#IMAGELIB=imagemagick
|
||||
IMAGELIB=imlib2
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
make -f Makefile_general libbmm.so.0u
|
||||
|
||||
mkdir -p $SYSROOT_PREFIX/usr/lib
|
||||
cp -PR libbmm.so* $SYSROOT_PREFIX/usr/lib
|
||||
|
||||
mkdir -p $SYSROOT_PREFIX/usr/include
|
||||
cp -PR bmm_lib.h $SYSROOT_PREFIX/usr/include
|
||||
make VDRDIR="../$VDR_DIR" \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale" \
|
||||
IMAGELIB=$IMAGELIB
|
||||
35
packages/3rdparty/multimedia/vdr-text2skin/meta
vendored
Normal file
35
packages/3rdparty/multimedia/vdr-text2skin/meta
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# 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
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-text2skin"
|
||||
PKG_VERSION="20120506"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://linuxtv.org/vdrwiki/index.php/Text2skin-plugin"
|
||||
PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS="vdr"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr imlib2"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="text2skin is a plugin to make On Screen Display in VDR."
|
||||
PKG_LONGDESC="text2skin plugin is designed to load and interpret a set of files describing the layout of the On Screen Display and to make this "Skin" available to VDR via Setup -> OSD in the main menu."
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
@@ -24,10 +24,6 @@
|
||||
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
|
||||
CFLAGS="$CFLAGS -fPIC"
|
||||
CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
LDFLAGS="$LDFLAGS -fPIC"
|
||||
|
||||
cd $PKG_BUILD
|
||||
make VDRDIR="../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale"
|
||||
|
||||
|
||||
@@ -24,10 +24,6 @@
|
||||
|
||||
VDR_DIR=`basename $BUILD/vdr-[0-9]*`
|
||||
|
||||
CFLAGS="$CFLAGS -fPIC"
|
||||
CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
LDFLAGS="$LDFLAGS -fPIC"
|
||||
|
||||
cd $PKG_BUILD
|
||||
ln -sf ../vdr-wirbelscan-[0-9]*/wirbelscan_services.h
|
||||
|
||||
|
||||
50
packages/3rdparty/multimedia/vdr-xineliboutput/build
vendored
Executable file
50
packages/3rdparty/multimedia/vdr-xineliboutput/build
vendored
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
VDR_DIR=$(basename $BUILD/vdr-[0-9]*)
|
||||
|
||||
export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/usr/local/lib/pkgconfig:${PKG_CONFIG_SYSROOT_DIR}buildd/lib/pkgconfig"
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
./configure --enable-x11 \
|
||||
--enable-vdr \
|
||||
--enable-libxine \
|
||||
--disable-dbus-glib-1 \
|
||||
--cc=$CC \
|
||||
--cxx=$CXX \
|
||||
--add-cflags="$CFLAGS"
|
||||
|
||||
# mpg2c is running on host
|
||||
make mpg2c \
|
||||
CC="$HOST_CC" \
|
||||
CFLAGS="$HOST_CFLAGS" \
|
||||
LDFLAGS="$HOST_LDFLAGS" \
|
||||
VDRDIR="../$VDR_DIR" \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
|
||||
make VDRDIR="../$VDR_DIR" \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
35
packages/3rdparty/multimedia/vdr-xineliboutput/meta
vendored
Normal file
35
packages/3rdparty/multimedia/vdr-xineliboutput/meta
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# 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
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-xineliboutput"
|
||||
PKG_VERSION="20120506"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://sourceforge.net/projects/xineliboutput/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="vdr xine-lib"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr xine-lib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="xine-lib based software output device for VDR."
|
||||
PKG_LONGDESC="xine-lib based software output device for VDR."
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
@@ -27,5 +27,4 @@ cd $PKG_BUILD
|
||||
PWD=`pwd`
|
||||
make VDRDIR="$PWD/../$VDR_DIR" LIBDIR="." LOCALEDIR="./locale"
|
||||
cd dist/epgdata2xmltv
|
||||
make -j1
|
||||
|
||||
make
|
||||
@@ -18,13 +18,13 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-xmltv2vdr"
|
||||
PKG_VERSION="8be374e781e734b44edbd6bc03cfdc1694f6617e"
|
||||
PKG_NAME="vdr-xmltv2vdr"
|
||||
PKG_VERSION="0.1.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-xmltv2vdr"
|
||||
PKG_URL="http://projects.vdr-developer.org/git/vdr-plugin-xmltv2vdr.git/snapshot/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_URL="http://projects.vdr-developer.org/attachments/download/946/${PKG_NAME}-${PKG_VERSION}.tgz"
|
||||
PKG_DEPENDS="vdr sqlite curl libzip libxml libxslt"
|
||||
PKG_BUILD_DEPENDS="toolchain vdr sqlite curl libzip libxml libxslt enca"
|
||||
PKG_PRIORITY="optional"
|
||||
11
packages/3rdparty/multimedia/vdr-xmltv2vdr/patches/vdr-xmltv2vdr-0.1.1-curl_compile-01.patch
vendored
Normal file
11
packages/3rdparty/multimedia/vdr-xmltv2vdr/patches/vdr-xmltv2vdr-0.1.1-curl_compile-01.patch
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
diff -NaurwB xmltv2vdr-0.1.1_orig/dist/epgdata2xmltv/epgdata2xmltv.h xmltv2vdr-0.1.1/dist/epgdata2xmltv/epgdata2xmltv.h
|
||||
--- xmltv2vdr-0.1.1_orig/dist/epgdata2xmltv/epgdata2xmltv.h 2012-05-07 07:34:21.000000000 +0200
|
||||
+++ xmltv2vdr-0.1.1/dist/epgdata2xmltv/epgdata2xmltv.h 2012-05-07 07:34:36.000000000 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
#define __EPGDATA2XMLTV_H
|
||||
|
||||
#include <curl/curl.h>
|
||||
-#include <curl/types.h>
|
||||
#include <curl/easy.h>
|
||||
|
||||
#include <libxslt/transform.h>
|
||||
26
packages/3rdparty/multimedia/vdr-xmltv2vdr/rename
vendored
Executable file
26
packages/3rdparty/multimedia/vdr-xmltv2vdr/rename
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $BUILD
|
||||
mv xmltv2vdr-${PKG_VERSION} ${PKG_NAME}-${PKG_VERSION}
|
||||
2
packages/3rdparty/multimedia/vdr/build
vendored
2
packages/3rdparty/multimedia/vdr/build
vendored
@@ -44,5 +44,5 @@ LIBS += -liconv
|
||||
EOF
|
||||
fi
|
||||
|
||||
make vdr
|
||||
make
|
||||
make include-dir
|
||||
|
||||
4
packages/3rdparty/multimedia/vdr/meta
vendored
4
packages/3rdparty/multimedia/vdr/meta
vendored
@@ -20,14 +20,14 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr"
|
||||
PKG_VERSION="1.7.33"
|
||||
PKG_VERSION="1.7.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
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 fontconfig freetype libcap libjpeg-turbo bzip2"
|
||||
PKG_BUILD_DEPENDS="toolchain gettext fontconfig freetype fribidi libcap libjpeg-turbo bzip2 libXfont expat"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr: A powerful DVB TV application"
|
||||
|
||||
14
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-10_fontconfig_fontsort.patch
vendored
Normal file
14
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-10_fontconfig_fontsort.patch
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
diff --git a/font.c b/font.c
|
||||
index 706a017..72c5ec3 100644
|
||||
--- a/font.c
|
||||
+++ b/font.c
|
||||
@@ -482,7 +482,8 @@ cString cFont::GetFontFileName(const char *FontName)
|
||||
FcPatternAddBool(pat, FC_SCALABLE, FcTrue);
|
||||
FcConfigSubstitute(NULL, pat, FcMatchPattern);
|
||||
FcDefaultSubstitute(pat);
|
||||
- FcFontSet *fontset = FcFontSort(NULL, pat, FcFalse, NULL, NULL);
|
||||
+ FcResult fresult;
|
||||
+ FcFontSet *fontset = FcFontSort(NULL, pat, FcFalse, NULL, &fresult);
|
||||
if (fontset) {
|
||||
for (int i = 0; i < fontset->nfont; i++) {
|
||||
FcBool scalable;
|
||||
13
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-11_recording_h_deprecated.patch
vendored
Normal file
13
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-11_recording_h_deprecated.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/recording.h b/recording.h
|
||||
index 5f94ee2..0b44fe8 100644
|
||||
--- a/recording.h
|
||||
+++ b/recording.h
|
||||
@@ -22,7 +22,7 @@
|
||||
#define TIMERMACRO_TITLE "TITLE"
|
||||
#define TIMERMACRO_EPISODE "EPISODE"
|
||||
|
||||
-//#define __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS // Code enclosed with this macro is deprecated and may be removed in a future version
|
||||
+#define __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS // Code enclosed with this macro is deprecated and may be removed in a future version
|
||||
|
||||
extern bool VfatFileSystem;
|
||||
extern int InstanceId;
|
||||
84
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-21_internal-cam-devices.patch
vendored
Normal file
84
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-21_internal-cam-devices.patch
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
Description: This patch allows tuning to encrypted channels which are
|
||||
provided by a stremdev client device and therefore already are
|
||||
decrypted on the streamdev server side.
|
||||
See also: http://www.vdr-developer.org/mantisbt/view.php?id=429
|
||||
Author: Tobias Grimm <tg@e-tobi.net>
|
||||
|
||||
Index: vdr-1.7.27/device.c
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/device.c 2012-03-13 10:48:14.000000000 +0100
|
||||
+++ vdr-1.7.27/device.c 2012-03-25 14:18:05.434975038 +0200
|
||||
@@ -236,6 +236,7 @@
|
||||
int NumCamSlots = CamSlots.Count();
|
||||
int SlotPriority[NumCamSlots];
|
||||
int NumUsableSlots = 0;
|
||||
+ bool InternalCamNeeded = false;
|
||||
if (Channel->Ca() >= CA_ENCRYPTED_MIN) {
|
||||
for (cCamSlot *CamSlot = CamSlots.First(); CamSlot; CamSlot = CamSlots.Next(CamSlot)) {
|
||||
SlotPriority[CamSlot->Index()] = MAXPRIORITY + 1; // assumes it can't be used
|
||||
@@ -249,7 +250,7 @@
|
||||
}
|
||||
}
|
||||
if (!NumUsableSlots)
|
||||
- return NULL; // no CAM is able to decrypt this channel
|
||||
+ InternalCamNeeded = true; // no CAM is able to decrypt this channel
|
||||
}
|
||||
|
||||
bool NeedsDetachReceivers = false;
|
||||
@@ -263,11 +264,13 @@
|
||||
for (int i = 0; i < numDevices; i++) {
|
||||
if (Channel->Ca() && Channel->Ca() <= CA_DVB_MAX && Channel->Ca() != device[i]->CardIndex() + 1)
|
||||
continue; // a specific card was requested, but not this one
|
||||
- if (NumUsableSlots && !CamSlots.Get(j)->Assign(device[i], true))
|
||||
+ if (InternalCamNeeded && !device[i]->HasInternalCam())
|
||||
+ continue; // no CAM is able to decrypt this channel and the device uses vdr handled CAMs
|
||||
+ if (NumUsableSlots && !device[i]->HasInternalCam() && !CamSlots.Get(j)->Assign(device[i], true))
|
||||
continue; // CAM slot can't be used with this device
|
||||
bool ndr;
|
||||
if (device[i]->ProvidesChannel(Channel, Priority, &ndr)) { // this device is basicly able to do the job
|
||||
- if (NumUsableSlots && device[i]->CamSlot() && device[i]->CamSlot() != CamSlots.Get(j))
|
||||
+ if (NumUsableSlots && !device[i]->HasInternalCam() && device[i]->CamSlot() && device[i]->CamSlot() != CamSlots.Get(j))
|
||||
ndr = true; // using a different CAM slot requires detaching receivers
|
||||
// Put together an integer number that reflects the "impact" using
|
||||
// this device would have on the overall system. Each condition is represented
|
||||
@@ -282,18 +285,18 @@
|
||||
imp <<= 4; imp |= GetClippedNumProvidedSystems(4, device[i]) - 1; // avoid cards which support multiple delivery systems
|
||||
imp <<= 1; imp |= device[i] == cTransferControl::ReceiverDevice(); // avoid the Transfer Mode receiver device
|
||||
imp <<= 8; imp |= device[i]->Priority() - IDLEPRIORITY; // use the device with the lowest priority (- IDLEPRIORITY to assure that values -100..99 can be used)
|
||||
- imp <<= 8; imp |= (NumUsableSlots ? SlotPriority[j] : IDLEPRIORITY) - IDLEPRIORITY; // use the CAM slot with the lowest priority (- IDLEPRIORITY to assure that values -100..99 can be used)
|
||||
+ imp <<= 8; imp |= ((NumUsableSlots && !device[i]->HasInternalCam()) ? SlotPriority[j] : IDLEPRIORITY) - IDLEPRIORITY; // use the CAM slot with the lowest priority (- IDLEPRIORITY to assure that values -100..99 can be used)
|
||||
imp <<= 1; imp |= ndr; // avoid devices if we need to detach existing receivers
|
||||
- imp <<= 1; imp |= NumUsableSlots ? 0 : device[i]->HasCi(); // avoid cards with Common Interface for FTA channels
|
||||
+ imp <<= 1; imp |= (NumUsableSlots || InternalCamNeeded) ? 0 : device[i]->HasCi(); // avoid cards with Common Interface for FTA channels
|
||||
imp <<= 1; imp |= device[i]->AvoidRecording(); // avoid SD full featured cards
|
||||
- imp <<= 1; imp |= NumUsableSlots ? !ChannelCamRelations.CamDecrypt(Channel->GetChannelID(), j + 1) : 0; // prefer CAMs that are known to decrypt this channel
|
||||
+ imp <<= 1; imp |= (NumUsableSlots && !device[i]->HasInternalCam()) ? !ChannelCamRelations.CamDecrypt(Channel->GetChannelID(), j + 1) : 0; // prefer CAMs that are known to decrypt this channel
|
||||
imp <<= 1; imp |= device[i]->IsPrimaryDevice(); // avoid the primary device
|
||||
if (imp < Impact) {
|
||||
// This device has less impact than any previous one, so we take it.
|
||||
Impact = imp;
|
||||
d = device[i];
|
||||
NeedsDetachReceivers = ndr;
|
||||
- if (NumUsableSlots)
|
||||
+ if (NumUsableSlots && !device[i]->HasInternalCam())
|
||||
s = CamSlots.Get(j);
|
||||
}
|
||||
}
|
||||
Index: vdr-1.7.27/device.h
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/device.h 2012-03-13 11:17:16.000000000 +0100
|
||||
+++ vdr-1.7.27/device.h 2012-03-25 14:18:05.434975038 +0200
|
||||
@@ -405,6 +405,13 @@
|
||||
public:
|
||||
virtual bool HasCi(void);
|
||||
///< Returns true if this device has a Common Interface.
|
||||
+#define INTERNAL_CAM_DEVICES_PATCH 1
|
||||
+ virtual bool HasInternalCam(void) { return false; }
|
||||
+ ///< Returns true if this device handles encrypted channels itself
|
||||
+ ///< without VDR assistance. This can be e.g. when the device is a
|
||||
+ ///< client that gets the stream from another VDR instance that has
|
||||
+ ///< already decrypted the stream. In this case ProvidesChannel()
|
||||
+ ///< shall check whether the channel can be decrypted.
|
||||
void SetCamSlot(cCamSlot *CamSlot);
|
||||
///< Sets the given CamSlot to be used with this device.
|
||||
cCamSlot *CamSlot(void) const { return camSlot; }
|
||||
114
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-44_rotor.patch
vendored
Normal file
114
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-44_rotor.patch
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
diff --git a/device.h b/device.h
|
||||
index e61edd0..dc2ea5f 100644
|
||||
--- a/device.h
|
||||
+++ b/device.h
|
||||
@@ -24,6 +24,8 @@
|
||||
#include "spu.h"
|
||||
#include "thread.h"
|
||||
#include "tools.h"
|
||||
+#include <asm/types.h>
|
||||
+#include <linux/dvb/frontend.h>
|
||||
|
||||
#define MAXDEVICES 16 // the maximum number of devices in the system
|
||||
#define MAXPIDHANDLES 64 // the maximum number of different PIDs per device
|
||||
@@ -331,7 +333,7 @@ public:
|
||||
virtual bool HasProgramme(void);
|
||||
///< Returns true if the device is currently showing any programme to
|
||||
///< the user, either through replaying or live.
|
||||
-
|
||||
+ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd) {return false;}
|
||||
// PID handle facilities
|
||||
|
||||
private:
|
||||
diff --git a/dvbdevice.c b/dvbdevice.c
|
||||
index 65e9a4b..53a4a22 100644
|
||||
--- a/dvbdevice.c
|
||||
+++ b/dvbdevice.c
|
||||
@@ -285,6 +285,7 @@ class cDvbTuner : public cThread {
|
||||
private:
|
||||
static cMutex bondMutex;
|
||||
enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked };
|
||||
+ bool SendDiseqc;
|
||||
const cDvbDevice *device;
|
||||
int fd_frontend;
|
||||
int adapter, frontend;
|
||||
@@ -300,6 +301,7 @@ private:
|
||||
cMutex mutex;
|
||||
cCondVar locked;
|
||||
cCondVar newSet;
|
||||
+ dvb_diseqc_master_cmd diseqc_cmd;
|
||||
cDvbTuner *bondedTuner;
|
||||
bool bondedMaster;
|
||||
bool bondedMasterFailed;
|
||||
@@ -322,6 +324,7 @@ public:
|
||||
uint32_t SubsystemId(void) const { return subsystemId; }
|
||||
bool IsTunedTo(const cChannel *Channel) const;
|
||||
void SetChannel(const cChannel *Channel);
|
||||
+ bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd);
|
||||
bool Locked(int TimeoutMs = 0);
|
||||
int GetSignalStrength(void) const;
|
||||
int GetSignalQuality(void) const;
|
||||
@@ -333,6 +336,7 @@ cDvbTuner::cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int
|
||||
{
|
||||
device = Device;
|
||||
fd_frontend = Fd_Frontend;
|
||||
+ SendDiseqc=false;
|
||||
adapter = Adapter;
|
||||
frontend = Frontend;
|
||||
subsystemId = cDvbDeviceProbe::GetSubsystemId(adapter, frontend);
|
||||
@@ -860,6 +864,10 @@ void cDvbTuner::Action(void)
|
||||
Status = NewStatus;
|
||||
cMutexLock MutexLock(&mutex);
|
||||
int WaitTime = 1000;
|
||||
+ if (SendDiseqc) {
|
||||
+ CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &diseqc_cmd));
|
||||
+ SendDiseqc=false;
|
||||
+ }
|
||||
switch (tunerStatus) {
|
||||
case tsIdle:
|
||||
break;
|
||||
@@ -913,6 +921,20 @@ void cDvbTuner::Action(void)
|
||||
}
|
||||
}
|
||||
|
||||
+bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd)
|
||||
+{
|
||||
+ cMutexLock MutexLock(&mutex);
|
||||
+ cDvbTransponderParameters dtp(channel.Parameters());
|
||||
+ // Determine the required frontend type:
|
||||
+ int frontendType = GetRequiredDeliverySystem(&channel, &dtp);
|
||||
+ if ((frontendType!=SYS_DVBS2 && frontendType!=SYS_DVBS) || SendDiseqc)
|
||||
+ return false;
|
||||
+ diseqc_cmd=cmd;
|
||||
+ SendDiseqc=true;
|
||||
+ newSet.Broadcast();
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
// --- cDvbSourceParam -------------------------------------------------------
|
||||
|
||||
class cDvbSourceParam : public cSourceParam {
|
||||
@@ -1534,6 +1556,11 @@ bool cDvbDevice::HasLock(int TimeoutMs)
|
||||
return dvbTuner ? dvbTuner->Locked(TimeoutMs) : false;
|
||||
}
|
||||
|
||||
+bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd cmd)
|
||||
+{
|
||||
+ return dvbTuner->SendDiseqcCmd(cmd);
|
||||
+}
|
||||
+
|
||||
void cDvbDevice::SetTransferModeForDolbyDigital(int Mode)
|
||||
{
|
||||
setTransferModeForDolbyDigital = Mode;
|
||||
diff --git a/dvbdevice.h b/dvbdevice.h
|
||||
index c53a208..4ffcb91 100644
|
||||
--- a/dvbdevice.h
|
||||
+++ b/dvbdevice.h
|
||||
@@ -192,6 +192,7 @@ protected:
|
||||
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
|
||||
public:
|
||||
virtual bool HasLock(int TimeoutMs = 0);
|
||||
+ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd);
|
||||
|
||||
// PID handle facilities
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
From a13c75ec46f2783b2d258af48d7de28d44666715 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat, 5 May 2012 21:50:48 +0300
|
||||
Subject: [PATCH 2/2] dynamite
|
||||
|
||||
---
|
||||
ci.c | 2 +
|
||||
ci.h | 2 +
|
||||
device.c | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
device.h | 85 ++++++++++++++++++++++++++++++++++++-----
|
||||
dvbci.c | 51 +++++++++++++++++++++++--
|
||||
dvbci.h | 12 +++++-
|
||||
dvbdevice.c | 95 ++++++++++++++++++++++++++++++++++++++++++----
|
||||
dvbdevice.h | 6 ++-
|
||||
8 files changed, 339 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/ci.c b/ci.c
|
||||
index 904697e..1e95313 100644
|
||||
index 0135d07..cf21952 100644
|
||||
--- a/ci.c
|
||||
+++ b/ci.c
|
||||
@@ -1571,6 +1571,8 @@ cCamSlot::cCamSlot(cCiAdapter *CiAdapter)
|
||||
@@ -12,43 +28,29 @@ index 904697e..1e95313 100644
|
||||
DeleteAllConnections();
|
||||
}
|
||||
diff --git a/ci.h b/ci.h
|
||||
index 74e0270..818ea29 100644
|
||||
index 74e0270..d38e2dd 100644
|
||||
--- a/ci.h
|
||||
+++ b/ci.h
|
||||
@@ -72,6 +72,7 @@ public:
|
||||
};
|
||||
|
||||
class cDevice;
|
||||
+class cTSBufferBase;
|
||||
class cCamSlot;
|
||||
|
||||
enum eModuleStatus { msNone, msReset, msPresent, msReady };
|
||||
@@ -115,6 +116,13 @@ public:
|
||||
@@ -115,6 +115,8 @@ public:
|
||||
///< The derived class must call Cancel(3) in its destructor.
|
||||
virtual bool Ready(void);
|
||||
///< Returns 'true' if all present CAMs in this adapter are ready.
|
||||
+#define EXTERNALCI_PATCH
|
||||
+ virtual cTSBufferBase *GetTSBuffer(int FdDvr) { return NULL; }
|
||||
+ ///< Derived classes can return a special TS buffer with features
|
||||
+ ///< like rerouting the stream through an external ci.
|
||||
+ ///< The caller must delete the buffer.
|
||||
+ virtual bool SetIdle(bool Idle, bool TestOnly) { return false; }
|
||||
+ virtual bool IsIdle(void) const { return false; }
|
||||
};
|
||||
|
||||
class cTPDU;
|
||||
diff --git a/device.c b/device.c
|
||||
index 2678d68..56c2b9c 100644
|
||||
index 273757e..f83e789 100644
|
||||
--- a/device.c
|
||||
+++ b/device.c
|
||||
@@ -69,12 +69,22 @@ int cDevice::currentChannel = 1;
|
||||
cDevice *cDevice::device[MAXDEVICES] = { NULL };
|
||||
cDevice *cDevice::primaryDevice = NULL;
|
||||
cList<cDeviceHook> cDevice::deviceHooks;
|
||||
-
|
||||
-cDevice::cDevice(void)
|
||||
+cDevice *cDevice::nextParentDevice = NULL;
|
||||
+
|
||||
|
||||
-cDevice::cDevice(void)
|
||||
+cDevice::cDevice(cDevice *ParentDevice)
|
||||
:patPmtParser(true)
|
||||
-{
|
||||
@@ -126,7 +128,7 @@ index 2678d68..56c2b9c 100644
|
||||
for (int i = 0; i < numDevices; i++) {
|
||||
if (device[i] == this)
|
||||
return i;
|
||||
@@ -355,6 +394,8 @@ bool cDevice::HasCi(void)
|
||||
@@ -349,6 +388,8 @@ bool cDevice::HasCi(void)
|
||||
|
||||
void cDevice::SetCamSlot(cCamSlot *CamSlot)
|
||||
{
|
||||
@@ -135,7 +137,7 @@ index 2678d68..56c2b9c 100644
|
||||
camSlot = CamSlot;
|
||||
}
|
||||
|
||||
@@ -567,6 +608,10 @@ void cDevice::DelLivePids(void)
|
||||
@@ -561,6 +602,10 @@ void cDevice::DelLivePids(void)
|
||||
|
||||
void cDevice::StartSectionHandler(void)
|
||||
{
|
||||
@@ -146,7 +148,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (!sectionHandler) {
|
||||
sectionHandler = new cSectionHandler(this);
|
||||
AttachFilter(eitFilter = new cEitFilter);
|
||||
@@ -578,6 +623,10 @@ void cDevice::StartSectionHandler(void)
|
||||
@@ -572,6 +617,10 @@ void cDevice::StartSectionHandler(void)
|
||||
|
||||
void cDevice::StopSectionHandler(void)
|
||||
{
|
||||
@@ -157,7 +159,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (sectionHandler) {
|
||||
delete nitFilter;
|
||||
delete sdtFilter;
|
||||
@@ -609,12 +658,17 @@ void cDevice::CloseFilter(int Handle)
|
||||
@@ -598,12 +647,17 @@ void cDevice::CloseFilter(int Handle)
|
||||
|
||||
void cDevice::AttachFilter(cFilter *Filter)
|
||||
{
|
||||
@@ -175,7 +177,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (sectionHandler)
|
||||
sectionHandler->Detach(Filter);
|
||||
}
|
||||
@@ -776,6 +830,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
|
||||
@@ -765,6 +819,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
|
||||
sectionHandler->SetStatus(false);
|
||||
sectionHandler->SetChannel(NULL);
|
||||
}
|
||||
@@ -183,7 +185,7 @@ index 2678d68..56c2b9c 100644
|
||||
// Tell the camSlot about the channel switch and add all PIDs of this
|
||||
// channel to it, for possible later decryption:
|
||||
if (camSlot)
|
||||
@@ -822,19 +877,27 @@ void cDevice::ForceTransferMode(void)
|
||||
@@ -811,19 +866,27 @@ void cDevice::ForceTransferMode(void)
|
||||
{
|
||||
if (!cTransferControl::ReceiverDevice()) {
|
||||
cChannel *Channel = Channels.GetByNumber(CurrentChannel());
|
||||
@@ -212,7 +214,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (Seconds >= 0)
|
||||
occupiedTimeout = time(NULL) + min(Seconds, MAXOCCUPIEDTIMEOUT);
|
||||
}
|
||||
@@ -1209,7 +1272,10 @@ bool cDevice::Transferring(void) const
|
||||
@@ -1196,7 +1259,10 @@ bool cDevice::Transferring(void) const
|
||||
|
||||
bool cDevice::AttachPlayer(cPlayer *Player)
|
||||
{
|
||||
@@ -223,7 +225,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (player)
|
||||
Detach(player);
|
||||
DELETENULL(liveSubtitle);
|
||||
@@ -1228,6 +1294,8 @@ bool cDevice::AttachPlayer(cPlayer *Player)
|
||||
@@ -1215,6 +1281,8 @@ bool cDevice::AttachPlayer(cPlayer *Player)
|
||||
|
||||
void cDevice::Detach(cPlayer *Player)
|
||||
{
|
||||
@@ -232,7 +234,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (Player && player == Player) {
|
||||
cPlayer *p = player;
|
||||
player = NULL; // avoids recursive calls to Detach()
|
||||
@@ -1247,6 +1315,8 @@ void cDevice::Detach(cPlayer *Player)
|
||||
@@ -1234,6 +1302,8 @@ void cDevice::Detach(cPlayer *Player)
|
||||
|
||||
void cDevice::StopReplay(void)
|
||||
{
|
||||
@@ -241,7 +243,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (player) {
|
||||
Detach(player);
|
||||
if (IsPrimaryDevice())
|
||||
@@ -1529,6 +1599,8 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
|
||||
@@ -1516,6 +1586,8 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
|
||||
|
||||
int cDevice::Priority(void) const
|
||||
{
|
||||
@@ -250,7 +252,7 @@ index 2678d68..56c2b9c 100644
|
||||
int priority = IDLEPRIORITY;
|
||||
if (IsPrimaryDevice() && !Replaying() && ActualDevice() == PrimaryDevice())
|
||||
priority = TRANSFERPRIORITY; // we use the same value here, no matter whether it's actual Transfer Mode or real live viewing
|
||||
@@ -1547,6 +1619,8 @@ bool cDevice::Ready(void)
|
||||
@@ -1534,6 +1606,8 @@ bool cDevice::Ready(void)
|
||||
|
||||
bool cDevice::Receiving(bool Dummy) const
|
||||
{
|
||||
@@ -259,7 +261,7 @@ index 2678d68..56c2b9c 100644
|
||||
cMutexLock MutexLock(&mutexReceiver);
|
||||
for (int i = 0; i < MAXRECEIVERS; i++) {
|
||||
if (receiver[i])
|
||||
@@ -1627,10 +1701,13 @@ bool cDevice::GetTSPacket(uchar *&Data)
|
||||
@@ -1614,10 +1688,13 @@ bool cDevice::GetTSPacket(uchar *&Data)
|
||||
|
||||
bool cDevice::AttachReceiver(cReceiver *Receiver)
|
||||
{
|
||||
@@ -273,7 +275,7 @@ index 2678d68..56c2b9c 100644
|
||||
// activate the following line if you need it - actually the driver should be fixed!
|
||||
//#define WAIT_FOR_TUNER_LOCK
|
||||
#ifdef WAIT_FOR_TUNER_LOCK
|
||||
@@ -1669,6 +1746,8 @@ bool cDevice::AttachReceiver(cReceiver *Receiver)
|
||||
@@ -1656,6 +1733,8 @@ bool cDevice::AttachReceiver(cReceiver *Receiver)
|
||||
|
||||
void cDevice::Detach(cReceiver *Receiver)
|
||||
{
|
||||
@@ -282,7 +284,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (!Receiver || Receiver->device != this)
|
||||
return;
|
||||
bool receiversLeft = false;
|
||||
@@ -1694,6 +1773,8 @@ void cDevice::Detach(cReceiver *Receiver)
|
||||
@@ -1681,6 +1760,8 @@ void cDevice::Detach(cReceiver *Receiver)
|
||||
|
||||
void cDevice::DetachAll(int Pid)
|
||||
{
|
||||
@@ -291,7 +293,7 @@ index 2678d68..56c2b9c 100644
|
||||
if (Pid) {
|
||||
cMutexLock MutexLock(&mutexReceiver);
|
||||
for (int i = 0; i < MAXRECEIVERS; i++) {
|
||||
@@ -1706,6 +1787,8 @@ void cDevice::DetachAll(int Pid)
|
||||
@@ -1693,6 +1774,8 @@ void cDevice::DetachAll(int Pid)
|
||||
|
||||
void cDevice::DetachAllReceivers(void)
|
||||
{
|
||||
@@ -300,7 +302,7 @@ index 2678d68..56c2b9c 100644
|
||||
cMutexLock MutexLock(&mutexReceiver);
|
||||
for (int i = 0; i < MAXRECEIVERS; i++)
|
||||
Detach(receiver[i]);
|
||||
@@ -1778,3 +1861,25 @@ uchar *cTSBuffer::Get(void)
|
||||
@@ -1764,3 +1847,25 @@ uchar *cTSBuffer::Get(void)
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@@ -327,18 +329,10 @@ index 2678d68..56c2b9c 100644
|
||||
+ DynamicDeviceProbes.Del(this, false);
|
||||
+}
|
||||
diff --git a/device.h b/device.h
|
||||
index e2847d8..3a8aa01 100644
|
||||
index dc2ea5f..e5e92a3 100644
|
||||
--- a/device.h
|
||||
+++ b/device.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "spu.h"
|
||||
#include "thread.h"
|
||||
#include "tools.h"
|
||||
+#include <linux/dvb/frontend.h>
|
||||
|
||||
#define MAXDEVICES 16 // the maximum number of devices in the system
|
||||
#define MAXPIDHANDLES 64 // the maximum number of different PIDs per device
|
||||
@@ -169,7 +170,6 @@ private:
|
||||
@@ -171,7 +171,6 @@ private:
|
||||
static int nextCardIndex;
|
||||
int cardIndex;
|
||||
protected:
|
||||
@@ -346,7 +340,7 @@ index e2847d8..3a8aa01 100644
|
||||
virtual ~cDevice();
|
||||
virtual bool Ready(void);
|
||||
///< Returns true if this device is ready. Devices with conditional
|
||||
@@ -196,9 +196,6 @@ protected:
|
||||
@@ -198,9 +197,6 @@ protected:
|
||||
///< A derived class must call the MakePrimaryDevice() function of its
|
||||
///< base class.
|
||||
public:
|
||||
@@ -355,16 +349,8 @@ index e2847d8..3a8aa01 100644
|
||||
- ///< Returns the card index of this device (0 ... MAXDEVICES - 1).
|
||||
int DeviceNumber(void) const;
|
||||
///< Returns the number of this device (0 ... numDevices).
|
||||
virtual cString DeviceType(void) const;
|
||||
@@ -338,6 +335,7 @@ public:
|
||||
///< Returns true if the device is currently showing any programme to
|
||||
///< the user, either through replaying or live.
|
||||
|
||||
+ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd) {return false;}
|
||||
// PID handle facilities
|
||||
|
||||
private:
|
||||
@@ -423,9 +421,6 @@ public:
|
||||
virtual cString DeviceName(void) const;
|
||||
@@ -416,9 +412,6 @@ public:
|
||||
///< shall check whether the channel can be decrypted.
|
||||
void SetCamSlot(cCamSlot *CamSlot);
|
||||
///< Sets the given CamSlot to be used with this device.
|
||||
@@ -374,7 +360,7 @@ index e2847d8..3a8aa01 100644
|
||||
|
||||
// Image Grab facilities
|
||||
|
||||
@@ -581,9 +576,6 @@ private:
|
||||
@@ -574,9 +567,6 @@ private:
|
||||
cTsToPes tsToPesSubtitle;
|
||||
bool isPlayingVideo;
|
||||
protected:
|
||||
@@ -384,11 +370,11 @@ index e2847d8..3a8aa01 100644
|
||||
virtual bool CanReplay(void) const;
|
||||
///< Returns true if this device can currently start a replay session.
|
||||
virtual bool SetPlayMode(ePlayMode PlayMode);
|
||||
@@ -795,6 +787,38 @@ public:
|
||||
@@ -761,6 +751,38 @@ public:
|
||||
///< Detaches all receivers from this device for this pid.
|
||||
virtual void DetachAllReceivers(void);
|
||||
///< Detaches all receivers from this device.
|
||||
+
|
||||
+
|
||||
+// --- dynamite subdevice patch start ---
|
||||
+ friend class cDynamicDevice;
|
||||
+private:
|
||||
@@ -423,32 +409,10 @@ index e2847d8..3a8aa01 100644
|
||||
};
|
||||
|
||||
/// Derived cDevice classes that can receive channels will have to provide
|
||||
@@ -805,7 +829,14 @@ public:
|
||||
/// sure the returned data points to a TS packet and automatically
|
||||
/// re-synchronizes after broken packets.
|
||||
@@ -784,4 +806,47 @@ public:
|
||||
uchar *Get(void);
|
||||
};
|
||||
|
||||
-class cTSBuffer : public cThread {
|
||||
+class cTSBufferBase {
|
||||
+public:
|
||||
+ cTSBufferBase() {}
|
||||
+ virtual ~cTSBufferBase() {}
|
||||
+ virtual uchar *Get(void) = 0;
|
||||
+ };
|
||||
+
|
||||
+class cTSBuffer : public cTSBufferBase, public cThread {
|
||||
private:
|
||||
int f;
|
||||
int cardIndex;
|
||||
@@ -814,8 +845,51 @@ private:
|
||||
virtual void Action(void);
|
||||
public:
|
||||
cTSBuffer(int File, int Size, int CardIndex);
|
||||
- ~cTSBuffer();
|
||||
- uchar *Get(void);
|
||||
+ virtual ~cTSBuffer();
|
||||
+ virtual uchar *Get(void);
|
||||
+ };
|
||||
+
|
||||
+/// A plugin that want to create devices handled by the dynamite-plugin needs to create
|
||||
+/// a cDynamicDeviceProbe derived object on the heap in order to have its Probe()
|
||||
+/// function called, where it can actually create the appropriate device.
|
||||
@@ -488,16 +452,16 @@ index e2847d8..3a8aa01 100644
|
||||
+ ///< object derived from cDevice if applicable.
|
||||
+ ///< Returns the device that has been created or NULL if not.
|
||||
+ ///< The dynamite-plugin will delete the device if it is detached.
|
||||
};
|
||||
|
||||
+ };
|
||||
+
|
||||
+extern cList<cDynamicDeviceProbe> DynamicDeviceProbes;
|
||||
+
|
||||
+
|
||||
#endif //__DEVICE_H
|
||||
diff --git a/dvbci.c b/dvbci.c
|
||||
index 5289bbd..baa70bc 100644
|
||||
index 5289bbd..fea3a83 100644
|
||||
--- a/dvbci.c
|
||||
+++ b/dvbci.c
|
||||
@@ -10,41 +10,70 @@
|
||||
@@ -10,15 +10,18 @@
|
||||
#include "dvbci.h"
|
||||
#include <linux/dvb/ca.h>
|
||||
#include <sys/ioctl.h>
|
||||
@@ -512,30 +476,13 @@ index 5289bbd..baa70bc 100644
|
||||
device = Device;
|
||||
SetDescription("CI adapter on device %d", device->DeviceNumber());
|
||||
fd = Fd;
|
||||
- ca_caps_t Caps;
|
||||
- if (ioctl(fd, CA_GET_CAP, &Caps) == 0) {
|
||||
- if ((Caps.slot_type & CA_CI_LINK) != 0) {
|
||||
- int NumSlots = Caps.slot_num;
|
||||
- if (NumSlots > 0) {
|
||||
- for (int i = 0; i < NumSlots; i++)
|
||||
- new cCamSlot(this);
|
||||
- Start();
|
||||
- }
|
||||
- else
|
||||
- esyslog("ERROR: no CAM slots found on device %d", device->DeviceNumber());
|
||||
- }
|
||||
- else
|
||||
- isyslog("device %d doesn't support CI link layer interface", device->DeviceNumber());
|
||||
- }
|
||||
- else
|
||||
- esyslog("ERROR: can't get CA capabilities on device %d", device->DeviceNumber());
|
||||
+ adapter = Adapter;
|
||||
+ frontend = Frontend;
|
||||
+ idle = false;
|
||||
+ GetNumCamSlots(Device, Fd, this);
|
||||
+ Start();
|
||||
}
|
||||
|
||||
ca_caps_t Caps;
|
||||
if (ioctl(fd, CA_GET_CAP, &Caps) == 0) {
|
||||
if ((Caps.slot_type & CA_CI_LINK) != 0) {
|
||||
@@ -41,10 +44,44 @@ cDvbCiAdapter::cDvbCiAdapter(cDevice *Device, int Fd)
|
||||
cDvbCiAdapter::~cDvbCiAdapter()
|
||||
{
|
||||
Cancel(3);
|
||||
@@ -571,13 +518,6 @@ index 5289bbd..baa70bc 100644
|
||||
+ OpenCa();
|
||||
+ idle = Idle;
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+cTSBufferBase *cDvbCiAdapter::GetTSBuffer(int FdDvr)
|
||||
+{
|
||||
+ if (device)
|
||||
+ return new cTSBuffer(FdDvr, MEGABYTE(5), device->CardIndex() + 1);
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
int cDvbCiAdapter::Read(uint8_t *Buffer, int MaxLength)
|
||||
@@ -587,7 +527,7 @@ index 5289bbd..baa70bc 100644
|
||||
if (Buffer && MaxLength > 0) {
|
||||
struct pollfd pfd[1];
|
||||
pfd[0].fd = fd;
|
||||
@@ -61,6 +90,8 @@ int cDvbCiAdapter::Read(uint8_t *Buffer, int MaxLength)
|
||||
@@ -61,6 +98,8 @@ int cDvbCiAdapter::Read(uint8_t *Buffer, int MaxLength)
|
||||
|
||||
void cDvbCiAdapter::Write(const uint8_t *Buffer, int Length)
|
||||
{
|
||||
@@ -596,7 +536,7 @@ index 5289bbd..baa70bc 100644
|
||||
if (Buffer && Length > 0) {
|
||||
if (safe_write(fd, Buffer, Length) != Length)
|
||||
esyslog("ERROR: can't write to CI adapter on device %d: %m", device->DeviceNumber());
|
||||
@@ -69,6 +100,8 @@ void cDvbCiAdapter::Write(const uint8_t *Buffer, int Length)
|
||||
@@ -69,6 +108,8 @@ void cDvbCiAdapter::Write(const uint8_t *Buffer, int Length)
|
||||
|
||||
bool cDvbCiAdapter::Reset(int Slot)
|
||||
{
|
||||
@@ -605,7 +545,7 @@ index 5289bbd..baa70bc 100644
|
||||
if (ioctl(fd, CA_RESET, 1 << Slot) != -1)
|
||||
return true;
|
||||
else
|
||||
@@ -78,6 +111,8 @@ bool cDvbCiAdapter::Reset(int Slot)
|
||||
@@ -78,6 +119,8 @@ bool cDvbCiAdapter::Reset(int Slot)
|
||||
|
||||
eModuleStatus cDvbCiAdapter::ModuleStatus(int Slot)
|
||||
{
|
||||
@@ -614,77 +554,24 @@ index 5289bbd..baa70bc 100644
|
||||
ca_slot_info_t sinfo;
|
||||
sinfo.num = Slot;
|
||||
if (ioctl(fd, CA_GET_SLOT_INFO, &sinfo) != -1) {
|
||||
@@ -99,10 +134,60 @@ bool cDvbCiAdapter::Assign(cDevice *Device, bool Query)
|
||||
@@ -99,10 +142,10 @@ bool cDvbCiAdapter::Assign(cDevice *Device, bool Query)
|
||||
return true;
|
||||
}
|
||||
|
||||
-cDvbCiAdapter *cDvbCiAdapter::CreateCiAdapter(cDevice *Device, int Fd)
|
||||
+int cDvbCiAdapter::GetNumCamSlots(cDevice *Device, int Fd, cCiAdapter *CiAdapter)
|
||||
{
|
||||
- // TODO check whether a CI is actually present?
|
||||
- if (Device)
|
||||
- return new cDvbCiAdapter(Device, Fd);
|
||||
- return NULL;
|
||||
+ int NumSlots = -1;
|
||||
+ if (Fd >= 0) {
|
||||
+ ca_caps_t Caps;
|
||||
+ if (ioctl(Fd, CA_GET_CAP, &Caps) == 0) {
|
||||
+ if ((Caps.slot_type & CA_CI_LINK) != 0) {
|
||||
+ NumSlots = Caps.slot_num;
|
||||
+ if (NumSlots == 0)
|
||||
+ esyslog("ERROR: no CAM slots found on device %d", Device->DeviceNumber());
|
||||
+ else if (CiAdapter != NULL) {
|
||||
+ for (int i = 0; i < NumSlots; i++)
|
||||
+ new cCamSlot(CiAdapter);
|
||||
+ }
|
||||
+ else
|
||||
+ return NumSlots;
|
||||
+ }
|
||||
+ else
|
||||
+ isyslog("device %d doesn't support CI link layer interface", Device->DeviceNumber());
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: can't get CA capabilities on device %d", Device->DeviceNumber());
|
||||
+ }
|
||||
+ return -1;
|
||||
+}
|
||||
+
|
||||
+cDvbCiAdapter *cDvbCiAdapter::CreateCiAdapter(cDevice *Device, int Fd, int Adapter, int Frontend)
|
||||
+{
|
||||
+ // don't create a ci-adapter if it's not useable
|
||||
+ if (Device && (Fd >= 0) && (GetNumCamSlots(Device, Fd, NULL) > 0))
|
||||
{
|
||||
// TODO check whether a CI is actually present?
|
||||
if (Device)
|
||||
- return new cDvbCiAdapter(Device, Fd);
|
||||
+ return new cDvbCiAdapter(Device, Fd, Adapter, Frontend);
|
||||
+
|
||||
+ if (Fd >= 0)
|
||||
+ close(Fd);
|
||||
+
|
||||
+ // try to find an external ci-adapter
|
||||
+ for (cDvbCiAdapterProbe *cp = DvbCiAdapterProbes.First(); cp; cp = DvbCiAdapterProbes.Next(cp)) {
|
||||
+ cDvbCiAdapter *ca = cp->Probe(Device);
|
||||
+ if (ca)
|
||||
+ return ca;
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+// --- cDvbCiAdapterProbe -------------------------------------------------------
|
||||
+
|
||||
+cList<cDvbCiAdapterProbe> DvbCiAdapterProbes;
|
||||
+
|
||||
+cDvbCiAdapterProbe::cDvbCiAdapterProbe(void)
|
||||
+{
|
||||
+ DvbCiAdapterProbes.Add(this);
|
||||
+}
|
||||
+
|
||||
+cDvbCiAdapterProbe::~cDvbCiAdapterProbe()
|
||||
+{
|
||||
+ DvbCiAdapterProbes.Del(this, false);
|
||||
return NULL;
|
||||
}
|
||||
diff --git a/dvbci.h b/dvbci.h
|
||||
index adbe40d..d908b2f 100644
|
||||
index adbe40d..6d117b2 100644
|
||||
--- a/dvbci.h
|
||||
+++ b/dvbci.h
|
||||
@@ -16,16 +16,48 @@ class cDvbCiAdapter : public cCiAdapter {
|
||||
@@ -16,16 +16,24 @@ class cDvbCiAdapter : public cCiAdapter {
|
||||
private:
|
||||
cDevice *device;
|
||||
int fd;
|
||||
@@ -705,53 +592,26 @@ index adbe40d..d908b2f 100644
|
||||
public:
|
||||
virtual ~cDvbCiAdapter();
|
||||
- static cDvbCiAdapter *CreateCiAdapter(cDevice *Device, int Fd);
|
||||
+ virtual cTSBufferBase *GetTSBuffer(int FdDvr);
|
||||
+ static int GetNumCamSlots(cDevice *Device, int Fd, cCiAdapter *CiAdapter);
|
||||
+ ///< Tests if the CA device is usable for vdr.
|
||||
+ ///< If CiAdapter is not NULL it will create the CamSlots for the given ci-adapter.
|
||||
+ virtual bool SetIdle(bool Idle, bool TestOnly);
|
||||
+ virtual bool IsIdle(void) const { return idle; }
|
||||
+ static cDvbCiAdapter *CreateCiAdapter(cDevice *Device, int Fd, int Adapter = -1, int Frontend = -1);
|
||||
+ };
|
||||
+
|
||||
+// A plugin that implements an external DVB ci-adapter derived from cDvbCiAdapter needs to create
|
||||
+// a cDvbCiAdapterProbe derived object on the heap in order to have its Probe()
|
||||
+// function called, where it can actually create the appropriate ci-adapter.
|
||||
+// The cDvbCiAdapterProbe object must be created in the plugin's constructor,
|
||||
+// and deleted in its destructor.
|
||||
+// Every plugin has to track its own list of already used device nodes.
|
||||
+// The Probes are always called if the base cDvbCiAdapter can't create a ci-adapter on its own.
|
||||
+
|
||||
+class cDvbCiAdapterProbe : public cListObject {
|
||||
+public:
|
||||
+ cDvbCiAdapterProbe(void);
|
||||
+ virtual ~cDvbCiAdapterProbe();
|
||||
+ virtual cDvbCiAdapter *Probe(cDevice *Device) = 0;
|
||||
+ ///< Probes for a DVB ci-adapter for the given Device and creates the appropriate
|
||||
+ ///< object derived from cDvbCiAdapter if applicable.
|
||||
+ ///< Returns NULL if no adapter has been created.
|
||||
};
|
||||
|
||||
+extern cList<cDvbCiAdapterProbe> DvbCiAdapterProbes;
|
||||
+
|
||||
#endif //__DVBCI_H
|
||||
diff --git a/dvbdevice.c b/dvbdevice.c
|
||||
index 43e8544..49b5f61 100644
|
||||
index 53a4a22..7fc12a4 100644
|
||||
--- a/dvbdevice.c
|
||||
+++ b/dvbdevice.c
|
||||
@@ -287,9 +287,10 @@ class cDvbTuner : public cThread {
|
||||
private:
|
||||
static cMutex bondMutex;
|
||||
@@ -287,7 +287,7 @@ private:
|
||||
enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked };
|
||||
+ bool SendDiseqc;
|
||||
int frontendType;
|
||||
bool SendDiseqc;
|
||||
const cDvbDevice *device;
|
||||
- int fd_frontend;
|
||||
+ mutable int fd_frontend;
|
||||
int adapter, frontend;
|
||||
uint32_t subsystemId;
|
||||
int tuneTimeout;
|
||||
@@ -300,7 +301,7 @@ private:
|
||||
@@ -298,7 +298,7 @@ private:
|
||||
const cScr *scr;
|
||||
bool lnbPowerTurnedOn;
|
||||
eTunerStatus tunerStatus;
|
||||
@@ -759,14 +619,8 @@ index 43e8544..49b5f61 100644
|
||||
+ mutable cMutex mutex;
|
||||
cCondVar locked;
|
||||
cCondVar newSet;
|
||||
cDvbTuner *bondedTuner;
|
||||
@@ -308,11 +309,16 @@ private:
|
||||
bool SetFrontendType(const cChannel *Channel);
|
||||
cString GetBondingParams(const cChannel *Channel = NULL) const;
|
||||
void ClearEventQueue(void) const;
|
||||
+ dvb_diseqc_master_cmd diseqc_cmd;
|
||||
bool GetFrontendStatus(fe_status_t &Status) const;
|
||||
void ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency);
|
||||
dvb_diseqc_master_cmd diseqc_cmd;
|
||||
@@ -313,6 +313,10 @@ private:
|
||||
void ResetToneAndVoltage(void);
|
||||
bool SetFrontend(void);
|
||||
virtual void Action(void);
|
||||
@@ -777,37 +631,24 @@ index 43e8544..49b5f61 100644
|
||||
public:
|
||||
cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int Frontend);
|
||||
virtual ~cDvbTuner();
|
||||
@@ -325,9 +331,13 @@ public:
|
||||
@@ -324,6 +328,8 @@ public:
|
||||
uint32_t SubsystemId(void) const { return subsystemId; }
|
||||
bool IsTunedTo(const cChannel *Channel) const;
|
||||
void SetChannel(const cChannel *Channel);
|
||||
+ bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd);
|
||||
bool Locked(int TimeoutMs = 0);
|
||||
int GetSignalStrength(void) const;
|
||||
int GetSignalQuality(void) const;
|
||||
+
|
||||
+ bool SetIdle(bool Idle);
|
||||
+ bool IsIdle(void) const { return isIdle; }
|
||||
};
|
||||
|
||||
cMutex cDvbTuner::bondMutex;
|
||||
@@ -337,6 +347,7 @@ cDvbTuner::cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int
|
||||
frontendType = SYS_UNDEFINED;
|
||||
device = Device;
|
||||
fd_frontend = Fd_Frontend;
|
||||
+ SendDiseqc=false;
|
||||
adapter = Adapter;
|
||||
frontend = Frontend;
|
||||
subsystemId = cDvbDeviceProbe::GetSubsystemId(adapter, frontend);
|
||||
@@ -349,6 +360,7 @@ cDvbTuner::cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int
|
||||
tunerStatus = tsIdle;
|
||||
bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd);
|
||||
bool Locked(int TimeoutMs = 0);
|
||||
int GetSignalStrength(void) const;
|
||||
@@ -350,6 +356,7 @@ cDvbTuner::cDvbTuner(const cDvbDevice *Device, int Fd_Frontend, int Adapter, int
|
||||
bondedTuner = NULL;
|
||||
bondedMaster = false;
|
||||
bondedMasterFailed = false;
|
||||
+ isIdle = false;
|
||||
SetDescription("tuner on frontend %d/%d", adapter, frontend);
|
||||
Start();
|
||||
}
|
||||
@@ -366,6 +378,8 @@ cDvbTuner::~cDvbTuner()
|
||||
@@ -367,6 +374,8 @@ cDvbTuner::~cDvbTuner()
|
||||
ExecuteDiseqc(lastDiseqc, &Frequency);
|
||||
}
|
||||
*/
|
||||
@@ -816,7 +657,7 @@ index 43e8544..49b5f61 100644
|
||||
}
|
||||
|
||||
bool cDvbTuner::Bond(cDvbTuner *Tuner)
|
||||
@@ -510,6 +524,8 @@ bool cDvbTuner::Locked(int TimeoutMs)
|
||||
@@ -524,6 +533,8 @@ bool cDvbTuner::Locked(int TimeoutMs)
|
||||
|
||||
void cDvbTuner::ClearEventQueue(void) const
|
||||
{
|
||||
@@ -825,28 +666,8 @@ index 43e8544..49b5f61 100644
|
||||
cPoller Poller(fd_frontend);
|
||||
if (Poller.Poll(TUNER_POLL_TIMEOUT)) {
|
||||
dvb_frontend_event Event;
|
||||
@@ -710,8 +726,28 @@ static int GetRequiredDeliverySystem(const cChannel *Channel, const cDvbTranspon
|
||||
return ds;
|
||||
}
|
||||
@@ -714,6 +725,8 @@ static int GetRequiredDeliverySystem(const cChannel *Channel, const cDvbTranspon
|
||||
|
||||
+bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd)
|
||||
+{
|
||||
+ cMutexLock MutexLock(&mutex);
|
||||
+ cDvbTransponderParameters dtp(channel.Parameters());
|
||||
+
|
||||
+ // Determine the required frontend type:
|
||||
+ int frontendType = GetRequiredDeliverySystem(&channel, &dtp);
|
||||
+
|
||||
+ if ((frontendType!=SYS_DVBS2 && frontendType!=SYS_DVBS) || SendDiseqc)
|
||||
+ return false;
|
||||
+ if (!OpenFrontend())
|
||||
+ return false;
|
||||
+ diseqc_cmd=cmd;
|
||||
+ SendDiseqc=true;
|
||||
+ newSet.Broadcast();
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
bool cDvbTuner::SetFrontend(void)
|
||||
{
|
||||
+ if (!OpenFrontend())
|
||||
@@ -854,7 +675,7 @@ index 43e8544..49b5f61 100644
|
||||
#define MAXFRONTENDCMDS 16
|
||||
#define SETCMD(c, d) { Frontend[CmdSeq.num].cmd = (c);\
|
||||
Frontend[CmdSeq.num].u.data = (d);\
|
||||
@@ -857,10 +893,16 @@ void cDvbTuner::Action(void)
|
||||
@@ -859,9 +872,11 @@ void cDvbTuner::Action(void)
|
||||
bool LostLock = false;
|
||||
fe_status_t Status = (fe_status_t)0;
|
||||
while (Running()) {
|
||||
@@ -867,15 +688,10 @@ index 43e8544..49b5f61 100644
|
||||
+ Status = NewStatus;
|
||||
+ }
|
||||
cMutexLock MutexLock(&mutex);
|
||||
+ if (SendDiseqc) {
|
||||
+ CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &diseqc_cmd));
|
||||
+ SendDiseqc=false;
|
||||
+ }
|
||||
int WaitTime = 1000;
|
||||
switch (tunerStatus) {
|
||||
case tsIdle:
|
||||
@@ -912,6 +954,40 @@ void cDvbTuner::Action(void)
|
||||
}
|
||||
if (SendDiseqc) {
|
||||
@@ -935,6 +950,40 @@ bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd)
|
||||
return true;
|
||||
}
|
||||
|
||||
+bool cDvbTuner::SetIdle(bool Idle)
|
||||
@@ -915,7 +731,7 @@ index 43e8544..49b5f61 100644
|
||||
// --- cDvbSourceParam -------------------------------------------------------
|
||||
|
||||
class cDvbSourceParam : public cSourceParam {
|
||||
@@ -997,7 +1073,8 @@ const char *DeliverySystemNames[] = {
|
||||
@@ -1020,7 +1069,8 @@ const char *DeliverySystemNames[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -925,19 +741,16 @@ index 43e8544..49b5f61 100644
|
||||
{
|
||||
adapter = Adapter;
|
||||
frontend = Frontend;
|
||||
@@ -1015,9 +1092,8 @@ cDvbDevice::cDvbDevice(int Adapter, int Frontend)
|
||||
@@ -1040,7 +1090,7 @@ cDvbDevice::cDvbDevice(int Adapter, int Frontend)
|
||||
|
||||
// Common Interface:
|
||||
|
||||
- fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR);
|
||||
- if (fd_ca >= 0)
|
||||
fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR);
|
||||
if (fd_ca >= 0)
|
||||
- ciAdapter = cDvbCiAdapter::CreateCiAdapter(this, fd_ca);
|
||||
+ int fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR);
|
||||
+ ciAdapter = cDvbCiAdapter::CreateCiAdapter(parentDevice ? parentDevice : this, fd_ca, adapter, frontend);
|
||||
+ ciAdapter = cDvbCiAdapter::CreateCiAdapter(parentDevice ? parentDevice : this, fd_ca, adapter, frontend);
|
||||
|
||||
// The DVR device (will be opened and closed as needed):
|
||||
|
||||
@@ -1245,7 +1321,11 @@ bool cDvbDevice::BondDevices(const char *Bondings)
|
||||
@@ -1257,7 +1307,11 @@ bool cDvbDevice::BondDevices(const char *Bondings)
|
||||
if (d >= 0) {
|
||||
int ErrorDevice = 0;
|
||||
if (cDevice *Device1 = cDevice::GetDevice(i)) {
|
||||
@@ -949,7 +762,7 @@ index 43e8544..49b5f61 100644
|
||||
if (cDvbDevice *DvbDevice1 = dynamic_cast<cDvbDevice *>(Device1)) {
|
||||
if (cDvbDevice *DvbDevice2 = dynamic_cast<cDvbDevice *>(Device2)) {
|
||||
if (!DvbDevice1->Bond(DvbDevice2))
|
||||
@@ -1279,7 +1359,10 @@ bool cDvbDevice::BondDevices(const char *Bondings)
|
||||
@@ -1291,7 +1345,10 @@ bool cDvbDevice::BondDevices(const char *Bondings)
|
||||
void cDvbDevice::UnBondDevices(void)
|
||||
{
|
||||
for (int i = 0; i < cDevice::NumDevices(); i++) {
|
||||
@@ -961,7 +774,7 @@ index 43e8544..49b5f61 100644
|
||||
d->UnBond();
|
||||
}
|
||||
}
|
||||
@@ -1333,6 +1416,26 @@ bool cDvbDevice::BondingOk(const cChannel *Channel, bool ConsiderOccupied) const
|
||||
@@ -1345,6 +1402,26 @@ bool cDvbDevice::BondingOk(const cChannel *Channel, bool ConsiderOccupied) const
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -988,7 +801,7 @@ index 43e8544..49b5f61 100644
|
||||
bool cDvbDevice::HasCi(void)
|
||||
{
|
||||
return ciAdapter;
|
||||
@@ -1499,7 +1602,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
|
||||
@@ -1511,7 +1588,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
|
||||
|
||||
bool cDvbDevice::ProvidesEIT(void) const
|
||||
{
|
||||
@@ -997,35 +810,8 @@ index 43e8544..49b5f61 100644
|
||||
}
|
||||
|
||||
int cDvbDevice::NumProvidedSystems(void) const
|
||||
@@ -1544,6 +1647,11 @@ bool cDvbDevice::HasLock(int TimeoutMs)
|
||||
return dvbTuner ? dvbTuner->Locked(TimeoutMs) : false;
|
||||
}
|
||||
|
||||
+bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd cmd)
|
||||
+{
|
||||
+ return dvbTuner->SendDiseqcCmd(cmd);
|
||||
+}
|
||||
+
|
||||
void cDvbDevice::SetTransferModeForDolbyDigital(int Mode)
|
||||
{
|
||||
setTransferModeForDolbyDigital = Mode;
|
||||
@@ -1553,8 +1661,12 @@ bool cDvbDevice::OpenDvr(void)
|
||||
{
|
||||
CloseDvr();
|
||||
fd_dvr = DvbOpen(DEV_DVB_DVR, adapter, frontend, O_RDONLY | O_NONBLOCK, true);
|
||||
- if (fd_dvr >= 0)
|
||||
- tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(5), CardIndex() + 1);
|
||||
+ if (fd_dvr >= 0) {
|
||||
+ if (ciAdapter)
|
||||
+ tsBuffer = ciAdapter->GetTSBuffer(fd_dvr);
|
||||
+ if (tsBuffer == NULL)
|
||||
+ tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(5), CardIndex() + 1);
|
||||
+ }
|
||||
return fd_dvr >= 0;
|
||||
}
|
||||
|
||||
diff --git a/dvbdevice.h b/dvbdevice.h
|
||||
index 7da9c56..6cd4abf 100644
|
||||
index 4ffcb91..e9b7cd6 100644
|
||||
--- a/dvbdevice.h
|
||||
+++ b/dvbdevice.h
|
||||
@@ -107,7 +107,7 @@ class cDvbTuner;
|
||||
@@ -1037,14 +823,7 @@ index 7da9c56..6cd4abf 100644
|
||||
static cString DvbName(const char *Name, int Adapter, int Frontend);
|
||||
static int DvbOpen(const char *Name, int Adapter, int Frontend, int Mode, bool ReportError = false);
|
||||
private:
|
||||
@@ -127,19 +127,20 @@ private:
|
||||
int deliverySystems[MAXDELIVERYSYSTEMS];
|
||||
int numDeliverySystems;
|
||||
int numModulations;
|
||||
- int fd_dvr, fd_ca;
|
||||
+ int fd_dvr;
|
||||
static cMutex bondMutex;
|
||||
cDvbDevice *bondedDevice;
|
||||
@@ -133,12 +133,14 @@ private:
|
||||
mutable bool needsDetachBondedReceivers;
|
||||
bool QueryDeliverySystems(int fd_frontend);
|
||||
public:
|
||||
@@ -1054,26 +833,12 @@ index 7da9c56..6cd4abf 100644
|
||||
int Adapter(void) const { return adapter; }
|
||||
int Frontend(void) const { return frontend; }
|
||||
virtual bool Ready(void);
|
||||
virtual cString DeviceType(void) const;
|
||||
virtual cString DeviceName(void) const;
|
||||
+ virtual bool SetIdleDevice(bool Idle, bool TestOnly);
|
||||
+
|
||||
static bool BondDevices(const char *Bondings);
|
||||
///< Bonds the devices as defined in the given Bondings string.
|
||||
///< A bonding is a sequence of device numbers (starting at 1),
|
||||
@@ -193,6 +194,7 @@ protected:
|
||||
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
|
||||
public:
|
||||
virtual bool HasLock(int TimeoutMs = 0);
|
||||
+ virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd);
|
||||
|
||||
// PID handle facilities
|
||||
|
||||
@@ -225,7 +227,7 @@ public:
|
||||
// Receiver facilities
|
||||
|
||||
private:
|
||||
- cTSBuffer *tsBuffer;
|
||||
+ cTSBufferBase *tsBuffer;
|
||||
protected:
|
||||
virtual bool OpenDvr(void);
|
||||
virtual void CloseDvr(void);
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
258
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-90_externalci.patch
vendored
Normal file
258
packages/3rdparty/multimedia/vdr/patches/vdr-1.7.27-90_externalci.patch
vendored
Normal file
@@ -0,0 +1,258 @@
|
||||
Description: Patch for VDR to support external CI devices
|
||||
Origin: https://github.com/flensrocker/vdr-plugin-dynamite
|
||||
Forwarded: no
|
||||
Author: Lars Hanisch <dvb@flensrocker.de>
|
||||
Index: vdr-1.7.27/ci.h
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/ci.h 2012-03-25 14:47:30.464975099 +0200
|
||||
+++ vdr-1.7.27/ci.h 2012-03-25 14:51:11.824975107 +0200
|
||||
@@ -72,6 +72,7 @@
|
||||
};
|
||||
|
||||
class cDevice;
|
||||
+class cTSBufferBase;
|
||||
class cCamSlot;
|
||||
|
||||
enum eModuleStatus { msNone, msReset, msPresent, msReady };
|
||||
@@ -115,6 +116,11 @@
|
||||
///< The derived class must call Cancel(3) in its destructor.
|
||||
virtual bool Ready(void);
|
||||
///< Returns 'true' if all present CAMs in this adapter are ready.
|
||||
+#define EXTERNALCI_PATCH
|
||||
+ virtual cTSBufferBase *GetTSBuffer(int FdDvr) { return NULL; }
|
||||
+ ///< Derived classes can return a special TS buffer with features
|
||||
+ ///< like rerouting the stream through an external ci.
|
||||
+ ///< The caller must delete the buffer.
|
||||
virtual bool SetIdle(bool Idle, bool TestOnly) { return false; }
|
||||
virtual bool IsIdle(void) const { return false; }
|
||||
};
|
||||
Index: vdr-1.7.27/device.h
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/device.h 2012-03-25 14:47:30.474975099 +0200
|
||||
+++ vdr-1.7.27/device.h 2012-03-25 14:51:11.824975107 +0200
|
||||
@@ -795,7 +795,14 @@
|
||||
/// sure the returned data points to a TS packet and automatically
|
||||
/// re-synchronizes after broken packets.
|
||||
|
||||
-class cTSBuffer : public cThread {
|
||||
+class cTSBufferBase {
|
||||
+public:
|
||||
+ cTSBufferBase() {}
|
||||
+ virtual ~cTSBufferBase() {}
|
||||
+ virtual uchar *Get(void) = 0;
|
||||
+ };
|
||||
+
|
||||
+class cTSBuffer : public cTSBufferBase, public cThread {
|
||||
private:
|
||||
int f;
|
||||
int cardIndex;
|
||||
@@ -804,8 +811,8 @@
|
||||
virtual void Action(void);
|
||||
public:
|
||||
cTSBuffer(int File, int Size, int CardIndex);
|
||||
- ~cTSBuffer();
|
||||
- uchar *Get(void);
|
||||
+ virtual ~cTSBuffer();
|
||||
+ virtual uchar *Get(void);
|
||||
};
|
||||
|
||||
/// A plugin that want to create devices handled by the dynamite-plugin needs to create
|
||||
Index: vdr-1.7.27/dvbci.c
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/dvbci.c 2012-03-25 14:47:30.474975099 +0200
|
||||
+++ vdr-1.7.27/dvbci.c 2012-03-25 14:51:11.824975107 +0200
|
||||
@@ -22,23 +22,8 @@
|
||||
adapter = Adapter;
|
||||
frontend = Frontend;
|
||||
idle = false;
|
||||
- ca_caps_t Caps;
|
||||
- if (ioctl(fd, CA_GET_CAP, &Caps) == 0) {
|
||||
- if ((Caps.slot_type & CA_CI_LINK) != 0) {
|
||||
- int NumSlots = Caps.slot_num;
|
||||
- if (NumSlots > 0) {
|
||||
- for (int i = 0; i < NumSlots; i++)
|
||||
- new cCamSlot(this);
|
||||
- Start();
|
||||
- }
|
||||
- else
|
||||
- esyslog("ERROR: no CAM slots found on device %d", device->DeviceNumber());
|
||||
- }
|
||||
- else
|
||||
- isyslog("device %d doesn't support CI link layer interface", device->DeviceNumber());
|
||||
- }
|
||||
- else
|
||||
- esyslog("ERROR: can't get CA capabilities on device %d", device->DeviceNumber());
|
||||
+ GetNumCamSlots(Device, Fd, this);
|
||||
+ Start();
|
||||
}
|
||||
|
||||
cDvbCiAdapter::~cDvbCiAdapter()
|
||||
@@ -48,6 +33,13 @@
|
||||
CloseCa();
|
||||
}
|
||||
|
||||
+cTSBufferBase *cDvbCiAdapter::GetTSBuffer(int FdDvr)
|
||||
+{
|
||||
+ if (device)
|
||||
+ return new cTSBuffer(FdDvr, MEGABYTE(2), device->CardIndex() + 1);
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
bool cDvbCiAdapter::OpenCa(void)
|
||||
{
|
||||
if (fd >= 0)
|
||||
@@ -142,10 +134,60 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
+int cDvbCiAdapter::GetNumCamSlots(cDevice *Device, int Fd, cCiAdapter *CiAdapter)
|
||||
+{
|
||||
+ int NumSlots = -1;
|
||||
+ if (Fd >= 0) {
|
||||
+ ca_caps_t Caps;
|
||||
+ if (ioctl(Fd, CA_GET_CAP, &Caps) == 0) {
|
||||
+ if ((Caps.slot_type & CA_CI_LINK) != 0) {
|
||||
+ NumSlots = Caps.slot_num;
|
||||
+ if (NumSlots == 0)
|
||||
+ esyslog("ERROR: no CAM slots found on device %d", Device->DeviceNumber());
|
||||
+ else if (CiAdapter != NULL) {
|
||||
+ for (int i = 0; i < NumSlots; i++)
|
||||
+ new cCamSlot(CiAdapter);
|
||||
+ }
|
||||
+ else
|
||||
+ return NumSlots;
|
||||
+ }
|
||||
+ else
|
||||
+ isyslog("device %d doesn't support CI link layer interface", Device->DeviceNumber());
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: can't get CA capabilities on device %d", Device->DeviceNumber());
|
||||
+ }
|
||||
+ return -1;
|
||||
+}
|
||||
+
|
||||
cDvbCiAdapter *cDvbCiAdapter::CreateCiAdapter(cDevice *Device, int Fd, int Adapter, int Frontend)
|
||||
{
|
||||
- // TODO check whether a CI is actually present?
|
||||
- if (Device)
|
||||
+ // don't create a ci-adapter if it's not useable
|
||||
+ if (Device && (Fd >= 0) && (GetNumCamSlots(Device, Fd, NULL) > 0))
|
||||
return new cDvbCiAdapter(Device, Fd, Adapter, Frontend);
|
||||
- return NULL;
|
||||
+
|
||||
+ if (Fd >= 0)
|
||||
+ close(Fd);
|
||||
+
|
||||
+ // try to find an external ci-adapter
|
||||
+ for (cDvbCiAdapterProbe *cp = DvbCiAdapterProbes.First(); cp; cp = DvbCiAdapterProbes.Next(cp)) {
|
||||
+ cDvbCiAdapter *ca = cp->Probe(Device);
|
||||
+ if (ca)
|
||||
+ return ca;
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+// --- cDvbCiAdapterProbe -------------------------------------------------------
|
||||
+
|
||||
+cList<cDvbCiAdapterProbe> DvbCiAdapterProbes;
|
||||
+
|
||||
+cDvbCiAdapterProbe::cDvbCiAdapterProbe(void)
|
||||
+{
|
||||
+ DvbCiAdapterProbes.Add(this);
|
||||
+}
|
||||
+
|
||||
+cDvbCiAdapterProbe::~cDvbCiAdapterProbe()
|
||||
+{
|
||||
+ DvbCiAdapterProbes.Del(this, false);
|
||||
}
|
||||
Index: vdr-1.7.27/dvbci.h
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/dvbci.h 2012-03-25 14:47:30.474975099 +0200
|
||||
+++ vdr-1.7.27/dvbci.h 2012-03-25 14:51:11.824975107 +0200
|
||||
@@ -31,9 +31,33 @@
|
||||
cDvbCiAdapter(cDevice *Device, int Fd, int Adapter = -1, int Frontend = -1);
|
||||
public:
|
||||
virtual ~cDvbCiAdapter();
|
||||
+ virtual cTSBufferBase *GetTSBuffer(int FdDvr);
|
||||
+ static int GetNumCamSlots(cDevice *Device, int Fd, cCiAdapter *CiAdapter);
|
||||
+ ///< Tests if the CA device is usable for vdr.
|
||||
+ ///< If CiAdapter is not NULL it will create the CamSlots for the given ci-adapter.
|
||||
virtual bool SetIdle(bool Idle, bool TestOnly);
|
||||
virtual bool IsIdle(void) const { return idle; }
|
||||
static cDvbCiAdapter *CreateCiAdapter(cDevice *Device, int Fd, int Adapter = -1, int Frontend = -1);
|
||||
};
|
||||
|
||||
+// A plugin that implements an external DVB ci-adapter derived from cDvbCiAdapter needs to create
|
||||
+// a cDvbCiAdapterProbe derived object on the heap in order to have its Probe()
|
||||
+// function called, where it can actually create the appropriate ci-adapter.
|
||||
+// The cDvbCiAdapterProbe object must be created in the plugin's constructor,
|
||||
+// and deleted in its destructor.
|
||||
+// Every plugin has to track its own list of already used device nodes.
|
||||
+// The Probes are always called if the base cDvbCiAdapter can't create a ci-adapter on its own.
|
||||
+
|
||||
+class cDvbCiAdapterProbe : public cListObject {
|
||||
+public:
|
||||
+ cDvbCiAdapterProbe(void);
|
||||
+ virtual ~cDvbCiAdapterProbe();
|
||||
+ virtual cDvbCiAdapter *Probe(cDevice *Device) = 0;
|
||||
+ ///< Probes for a DVB ci-adapter for the given Device and creates the appropriate
|
||||
+ ///< object derived from cDvbCiAdapter if applicable.
|
||||
+ ///< Returns NULL if no adapter has been created.
|
||||
+ };
|
||||
+
|
||||
+extern cList<cDvbCiAdapterProbe> DvbCiAdapterProbes;
|
||||
+
|
||||
#endif //__DVBCI_H
|
||||
Index: vdr-1.7.27/dvbdevice.c
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/dvbdevice.c 2012-03-25 14:47:30.474975099 +0200
|
||||
+++ vdr-1.7.27/dvbdevice.c 2012-03-25 14:51:11.824975107 +0200
|
||||
@@ -1106,9 +1106,8 @@
|
||||
|
||||
// Common Interface:
|
||||
|
||||
- fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR);
|
||||
- if (fd_ca >= 0)
|
||||
- ciAdapter = cDvbCiAdapter::CreateCiAdapter(parentDevice ? parentDevice : this, fd_ca, adapter, frontend);
|
||||
+ int fd_ca = DvbOpen(DEV_DVB_CA, adapter, frontend, O_RDWR);
|
||||
+ ciAdapter = cDvbCiAdapter::CreateCiAdapter(parentDevice ? parentDevice : this, fd_ca, adapter, frontend);
|
||||
|
||||
// The DVR device (will be opened and closed as needed):
|
||||
|
||||
@@ -1665,8 +1664,12 @@
|
||||
{
|
||||
CloseDvr();
|
||||
fd_dvr = DvbOpen(DEV_DVB_DVR, adapter, frontend, O_RDONLY | O_NONBLOCK, true);
|
||||
- if (fd_dvr >= 0)
|
||||
- tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(2), CardIndex() + 1);
|
||||
+ if (fd_dvr >= 0) {
|
||||
+ if (ciAdapter)
|
||||
+ tsBuffer = ciAdapter->GetTSBuffer(fd_dvr);
|
||||
+ if (tsBuffer == NULL)
|
||||
+ tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(2), CardIndex() + 1);
|
||||
+ }
|
||||
return fd_dvr >= 0;
|
||||
}
|
||||
|
||||
Index: vdr-1.7.27/dvbdevice.h
|
||||
===================================================================
|
||||
--- vdr-1.7.27.orig/dvbdevice.h 2012-03-25 14:50:28.174975106 +0200
|
||||
+++ vdr-1.7.27/dvbdevice.h 2012-03-25 14:51:11.824975107 +0200
|
||||
@@ -127,7 +127,7 @@
|
||||
int deliverySystems[MAXDELIVERYSYSTEMS];
|
||||
int numDeliverySystems;
|
||||
int numModulations;
|
||||
- int fd_dvr, fd_ca;
|
||||
+ int fd_dvr;
|
||||
static cMutex bondMutex;
|
||||
cDvbDevice *bondedDevice;
|
||||
mutable bool needsDetachBondedReceivers;
|
||||
@@ -227,7 +227,7 @@
|
||||
// Receiver facilities
|
||||
|
||||
private:
|
||||
- cTSBuffer *tsBuffer;
|
||||
+ cTSBufferBase *tsBuffer;
|
||||
protected:
|
||||
virtual bool OpenDvr(void);
|
||||
virtual void CloseDvr(void);
|
||||
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.8"
|
||||
PKG_VERSION="1.8.3"
|
||||
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/3862/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_URL="https://alioth.debian.org/frs/download.php/3706/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain libusb"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
3
packages/3rdparty/web/pycurl/meta
vendored
3
packages/3rdparty/web/pycurl/meta
vendored
@@ -26,10 +26,11 @@ PKG_LICENSE="GPL-2"
|
||||
PKG_SITE="http://pycurl.sourceforge.net/"
|
||||
PKG_URL="http://pycurl.sourceforge.net/download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="Python curl"
|
||||
PKG_BUILD_DEPENDS="toolchain Python distutilscross curl libgcrypt"
|
||||
PKG_BUILD_DEPENDS="toolchain Python distutilscross curl"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="python/web"
|
||||
PKG_SHORTDESC="pycurl: a Python interface to libcurl"
|
||||
PKG_LONGDESC="PycURL is a Python interface to libcurl. PycURL can be used to fetch objects identified by a URL from a Python program, similar to the urllib Python module. PycURL is mature, very fast, and supports a lot of features."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
diff -uNr pycurl-7.19.0-orig/setup.py pycurl-7.19.0-new/setup.py
|
||||
--- pycurl-7.19.0-orig/setup.py 2012-12-21 19:20:27.000000000 +0100
|
||||
+++ pycurl-7.19.0-new/setup.py 2012-12-21 19:31:11.000000000 +0100
|
||||
@@ -104,6 +104,7 @@
|
||||
if e[2:] == 'ssl':
|
||||
define_macros.append(('HAVE_CURL_OPENSSL', 1))
|
||||
if e[2:] == 'gnutls':
|
||||
+ libraries.append("gcrypt")
|
||||
define_macros.append(('HAVE_CURL_GNUTLS', 1))
|
||||
elif e[:2] == "-L":
|
||||
library_dirs.append(e[2:])
|
||||
3
packages/3rdparty/x11/lib/libXcursor/meta
vendored
3
packages/3rdparty/x11/lib/libXcursor/meta
vendored
@@ -24,7 +24,8 @@ PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.X.org"
|
||||
PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
# PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="http://www.mirrorservice.org/sites/ftp.x.org/pub/individual/lib/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="libXfixes libXrender libX11"
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="atk"
|
||||
PKG_VERSION="2.6.0"
|
||||
PKG_VERSION="2.3.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://library.gnome.org/devel/atk/"
|
||||
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/$PKG_NAME/2.6/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/$PKG_NAME/2.3/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS="glib"
|
||||
PKG_BUILD_DEPENDS="toolchain glib"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
27
packages/addons/debugging/tools/evtest/addon
Executable file
27
packages/addons/debugging/tools/evtest/addon
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/evtest $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/evtest-capture $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
36
packages/addons/debugging/tools/evtest/changelog.txt
Normal file
36
packages/addons/debugging/tools/evtest/changelog.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
2.1.3
|
||||
- update to evtest-1.30
|
||||
|
||||
2.1.2
|
||||
- cleanup
|
||||
|
||||
2.1.1
|
||||
- rebuild for addon version 2.1
|
||||
|
||||
2.0.1
|
||||
- rebuild for libiconv changes
|
||||
|
||||
2.0.0
|
||||
- prepare for OpenELEC-2.0 release
|
||||
|
||||
1.90.1
|
||||
- depends on xbmc.python API 2.0
|
||||
|
||||
1.90.0
|
||||
- prepare for OpenELEC-1.90 release
|
||||
|
||||
1.0.0
|
||||
- update to evtest-1.29
|
||||
- prepare for OpenELEC-1.0 release
|
||||
|
||||
0.99.3
|
||||
- change icon
|
||||
|
||||
0.99.2
|
||||
- build as shared lib
|
||||
- include libiconv libs
|
||||
- include libxml2 libs
|
||||
- include zlib libs
|
||||
|
||||
0.99.1
|
||||
- initial addon based on evtest-1.27
|
||||
BIN
packages/addons/debugging/tools/evtest/icon/icon.png
Normal file
BIN
packages/addons/debugging/tools/evtest/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -20,7 +20,7 @@
|
||||
|
||||
PKG_NAME="evtest"
|
||||
PKG_VERSION="1.30"
|
||||
PKG_REV="1"
|
||||
PKG_REV="3"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://cgit.freedesktop.org/evtest/"
|
||||
@@ -32,6 +32,7 @@ PKG_SECTION="debug/tools"
|
||||
PKG_SHORTDESC="evtest: Simple tool for input event debugging."
|
||||
PKG_LONGDESC="evtest is a simple tool for input event debugging."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.python.script"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
23
packages/addons/debugging/tools/evtest/source/default.py
Normal file
23
packages/addons/debugging/tools/evtest/source/default.py
Normal file
@@ -0,0 +1,23 @@
|
||||
################################################################################
|
||||
# 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
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
@@ -22,5 +22,5 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/src/iperf $INSTALL/usr/bin
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/htop $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
@@ -34,6 +34,7 @@ ac_cv_func_realloc_0_nonnull=yes \
|
||||
--localstatedir=/var \
|
||||
--enable-cgroup \
|
||||
--disable-vserver \
|
||||
--disable-taskstats \
|
||||
--disable-unicode \
|
||||
--disable-native-affinity \
|
||||
--disable-hwloc \
|
||||
32
packages/addons/debugging/tools/htop/changelog.txt
Normal file
32
packages/addons/debugging/tools/htop/changelog.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
2.1.2
|
||||
- cleanup
|
||||
|
||||
2.1.1
|
||||
- rebuild for addon version 2.1
|
||||
- update to htop-1.0.1
|
||||
|
||||
2.0.0
|
||||
- prepare for OpenELEC-2.0 release
|
||||
- update to htop-1.0
|
||||
|
||||
1.90.1
|
||||
- depends on xbmc.python API 2.0
|
||||
|
||||
1.90.0
|
||||
- prepare for OpenELEC-1.90 release
|
||||
|
||||
1.0.0
|
||||
- prepare for OpenELEC-1.0 release
|
||||
|
||||
0.99.4
|
||||
- change icon
|
||||
|
||||
0.99.3
|
||||
- build as shared lib
|
||||
- include ncurses libs
|
||||
|
||||
0.99.2
|
||||
- prepare for release
|
||||
|
||||
0.99.1
|
||||
- initial addon based on htop-0.9
|
||||
BIN
packages/addons/debugging/tools/htop/icon/icon.png
Normal file
BIN
packages/addons/debugging/tools/htop/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
@@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="htop"
|
||||
PKG_VERSION="1.0.2"
|
||||
PKG_REV="1"
|
||||
PKG_VERSION="1.0.1"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://htop.sourceforge.net/"
|
||||
@@ -32,6 +32,7 @@ PKG_SECTION="debug/tools"
|
||||
PKG_SHORTDESC="htop: Htop is an ncurses based interactive process viewer for Linux."
|
||||
PKG_LONGDESC="Htop is an ncurses based interactive process viewer for Linux."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.python.script"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
23
packages/addons/debugging/tools/htop/source/default.py
Normal file
23
packages/addons/debugging/tools/htop/source/default.py
Normal file
@@ -0,0 +1,23 @@
|
||||
################################################################################
|
||||
# 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
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
@@ -24,4 +24,10 @@
|
||||
|
||||
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/
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/
|
||||
cp -Pa $BUILD/dvbhdhomerun-*/userhdhomerun/build/userhdhomerun $ADDON_BUILD/$PKG_ADDON_ID/bin/
|
||||
cp -Pa $BUILD/libhdhomerun_*/hdhomerun_config $ADDON_BUILD/$PKG_ADDON_ID/bin/
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
cp -Pa $BUILD/libhdhomerun_*/libhdhomerun.so $ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
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
|
||||
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: 35 KiB After Width: | Height: | Size: 4.7 KiB |
@@ -19,18 +19,18 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="hdhomerun"
|
||||
PKG_VERSION="3.0"
|
||||
PKG_VERSION="2.0"
|
||||
PKG_REV="3"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_BUILD_DEPENDS="toolchain libhdhomerun dvbhdhomerun"
|
||||
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"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
<settings>
|
||||
<setting id="PRE_WAIT" value="2" />
|
||||
<setting id="POST_WAIT" value="1" />
|
||||
</settings>
|
||||
111
packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh
Normal file → Executable file
111
packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh
Normal file → Executable file
@@ -2,7 +2,7 @@
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@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
|
||||
@@ -24,11 +24,6 @@
|
||||
|
||||
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
|
||||
|
||||
@@ -36,101 +31,37 @@ 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
|
||||
|
||||
[ -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/extra-wait.sh ]; then
|
||||
sh $ADDON_HOME/extra-wait.sh
|
||||
fi
|
||||
|
||||
# if not already added
|
||||
modprobe dvb_hdhomerun
|
||||
modprobe dvb_hdhomerun_fe
|
||||
|
||||
logger -t HDHomeRun "### Pre wait for $PRE_WAIT sec ###"
|
||||
sleep $PRE_WAIT
|
||||
# could be useful
|
||||
if [ -f $ADDON_HOME/extra-wait.sh ]; then
|
||||
sh $ADDON_HOME/extra-wait.sh
|
||||
fi
|
||||
|
||||
mkdir -p /var/log/
|
||||
rm -f /var/log/dvbhdhomerun.log
|
||||
|
||||
export LD_LIBRARY_PATH=$ADDON_DIR/lib
|
||||
|
||||
userhdhomerun -f
|
||||
|
||||
logger -t HDHomeRun "### Post wait for $POST_WAIT sec ###"
|
||||
sleep $POST_WAIT
|
||||
# how much time should we wait?
|
||||
usleep 1000000
|
||||
if [ -f $ADDON_HOME/extra-wait.sh ]; then
|
||||
sh $ADDON_HOME/extra-wait.sh
|
||||
fi
|
||||
|
||||
# save adapter names in background
|
||||
(
|
||||
@@ -142,5 +73,3 @@ EOF
|
||||
fi
|
||||
)&
|
||||
fi
|
||||
|
||||
logger -t HDHomeRun "### HDHomeRun ready ###"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user