diff --git a/packages/addons/driver/hdhomerun/changelog.txt b/packages/addons/driver/hdhomerun/changelog.txt
old mode 100644
new mode 100755
index 89c36a01e1..c943d655a5
--- a/packages/addons/driver/hdhomerun/changelog.txt
+++ b/packages/addons/driver/hdhomerun/changelog.txt
@@ -1,3 +1,6 @@
+3.1.2
+ new addon settings option to enable suspend/resume driver actions
+ new addon settings option to enable logging
3.1.1
rebuild for OpenELEC-3.2
3.0.5
diff --git a/packages/addons/driver/hdhomerun/config/dvbhdhomerun.sample b/packages/addons/driver/hdhomerun/config/dvbhdhomerun.sample
old mode 100644
new mode 100755
diff --git a/packages/addons/driver/hdhomerun/icon/icon.png b/packages/addons/driver/hdhomerun/icon/icon.png
old mode 100644
new mode 100755
diff --git a/packages/addons/driver/hdhomerun/meta b/packages/addons/driver/hdhomerun/meta
old mode 100644
new mode 100755
index 7d47b8165b..a88e62bd81
--- a/packages/addons/driver/hdhomerun/meta
+++ b/packages/addons/driver/hdhomerun/meta
@@ -20,7 +20,7 @@
PKG_NAME="hdhomerun"
PKG_VERSION="3.2"
-PKG_REV="1"
+PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/"
diff --git a/packages/addons/driver/hdhomerun/settings-default.xml b/packages/addons/driver/hdhomerun/settings-default.xml
old mode 100644
new mode 100755
index 240d6ac22e..3f9180a9fe
--- a/packages/addons/driver/hdhomerun/settings-default.xml
+++ b/packages/addons/driver/hdhomerun/settings-default.xml
@@ -1,4 +1,7 @@
+
+
+
diff --git a/packages/addons/driver/hdhomerun/source/bin/hdhomerun.start b/packages/addons/driver/hdhomerun/source/bin/hdhomerun.start
old mode 100644
new mode 100755
diff --git a/packages/addons/driver/hdhomerun/source/bin/hdhomerun.stop b/packages/addons/driver/hdhomerun/source/bin/hdhomerun.stop
old mode 100644
new mode 100755
diff --git a/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh b/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh
old mode 100644
new mode 100755
index d929d5ebc4..3ecb021239
--- a/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh
+++ b/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh
@@ -22,6 +22,18 @@
. /etc/profile
+# start locking mechanism - allows only one instance to be run at a time
+HDHR_LOCKFILE="/var/lock/userspace-driver-hdhomerun.lck"
+HDHR_LOCKFD=99
+# obtain an exclusive lock
+exlock() { eval "exec $HDHR_LOCKFD>\"$HDHR_LOCKFILE\""; flock -x $HDHR_LOCKFD; }
+# drop a lock
+unlock() { flock -u $HDHR_LOCKFD; flock -xn $HDHR_LOCKFD && rm -f "$HDHR_LOCKFILE"; }
+# end locking mechanism
+
+# exclusive lock
+exlock
+
HDHR_ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.hdhomerun"
HDHR_ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.hdhomerun"
HDHR_ADDON_SETTINGS="$HDHR_ADDON_HOME/settings.xml"
@@ -92,7 +104,7 @@ if [ -z "$(pidof userhdhomerun)" ]; then
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
@@ -127,7 +139,11 @@ EOF
mkdir -p /var/log/
rm -f /var/log/dvbhdhomerun.log
- userhdhomerun -f
+ if [ "$USERHDHOMERUN_LOG" = "true" ]; then
+ userhdhomerun -f
+ else
+ userhdhomerun -f -d
+ fi
logger -t HDHomeRun "### Post wait for $POST_WAIT sec ###"
sleep $POST_WAIT
@@ -144,3 +160,6 @@ EOF
fi
logger -t HDHomeRun "### HDHomeRun ready ###"
+
+# unlock the lock
+unlock
diff --git a/packages/addons/driver/hdhomerun/source/default.py b/packages/addons/driver/hdhomerun/source/default.py
old mode 100644
new mode 100755
diff --git a/packages/addons/driver/hdhomerun/source/resources/language/English/strings.xml b/packages/addons/driver/hdhomerun/source/resources/language/English/strings.xml
old mode 100644
new mode 100755
index 9e9886759e..ab8488639d
--- a/packages/addons/driver/hdhomerun/source/resources/language/English/strings.xml
+++ b/packages/addons/driver/hdhomerun/source/resources/language/English/strings.xml
@@ -3,7 +3,9 @@
General
Pre wait time [sec]
Post wait time [sec]
- Enable libhdhomerun logging
+ Enable userhdhomerun logging
+ Enable libhdhomerun logging
+ Enable suspend/resume the driver
Tuner settings
Enable modifying settings
diff --git a/packages/addons/driver/hdhomerun/source/resources/lib/functions.py b/packages/addons/driver/hdhomerun/source/resources/lib/functions.py
old mode 100644
new mode 100755
diff --git a/packages/addons/driver/hdhomerun/source/resources/lib/xmlpp.py b/packages/addons/driver/hdhomerun/source/resources/lib/xmlpp.py
old mode 100644
new mode 100755
diff --git a/packages/addons/driver/hdhomerun/source/resources/settings.xml b/packages/addons/driver/hdhomerun/source/resources/settings.xml
old mode 100644
new mode 100755
index 873b1ef411..9312f7ea17
--- a/packages/addons/driver/hdhomerun/source/resources/settings.xml
+++ b/packages/addons/driver/hdhomerun/source/resources/settings.xml
@@ -4,7 +4,9 @@
-
+
+
+
diff --git a/packages/addons/driver/hdhomerun/source/sleep.d/hdhomerun.power b/packages/addons/driver/hdhomerun/source/sleep.d/hdhomerun.power
old mode 100644
new mode 100755
index f3b08e6284..3d5fd278ba
--- a/packages/addons/driver/hdhomerun/source/sleep.d/hdhomerun.power
+++ b/packages/addons/driver/hdhomerun/source/sleep.d/hdhomerun.power
@@ -22,26 +22,42 @@
. /etc/profile
-LOCKDIR="/var/lock/"
-LOCKFILE="$LOCKDIR/hdhomerun"
+HDHR_ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.hdhomerun"
+HDHR_ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.hdhomerun"
+HDHR_ADDON_SETTINGS="$HDHR_ADDON_HOME/settings.xml"
-case "$1" in
- hibernate|suspend)
- if [ -n "$(pidof userhdhomerun)" ]; then
- progress "Shutting down HDHomeRun driver for suspending..."
- mkdir -p "$LOCKDIR"
- touch "$LOCKFILE"
- killall -9 userhdhomerun
- fi
- ;;
+if [ ! -f "$HDHR_ADDON_SETTINGS" ]; then
+ cp $HDHR_ADDON_DIR/settings-default.xml $HDHR_ADDON_SETTINGS
+fi
- thaw|resume)
- if [ -f "$LOCKFILE" ]; then
- # driver started within Tvheadend/VDR
- rm -f "$LOCKFILE"
- fi
- ;;
+mkdir -p /var/config
+cat "$HDHR_ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/hdhomerun-addon.conf
+. /var/config/hdhomerun-addon.conf
- *) exit $NA
- ;;
-esac
+if [ "$SUSPEND_DRIVER" = "true" ]; then
+ LOCKDIR="/var/lock"
+ LOCKFILE="$LOCKDIR/hdhomerun"
+
+ case "$1" in
+ hibernate|suspend)
+ if [ -n "$(pidof userhdhomerun)" ]; then
+ progress "Shutting down HDHomeRun driver for suspending..."
+ mkdir -p "$LOCKDIR"
+ touch "$LOCKFILE"
+ killall -9 userhdhomerun
+ fi
+ ;;
+
+ thaw|resume)
+ if [ -f "$LOCKFILE" ]; then
+ # driver started within Tvheadend/VDR
+ rm -f "$LOCKFILE"
+ fi
+ ;;
+
+ *) exit $NA
+ ;;
+ esac
+else
+ progress "Suspend/resume of HDHomeRun driver not enabled..."
+fi