From 91eecacd35bd5d4fe98e5d2c17e7612f6eea593c Mon Sep 17 00:00:00 2001
From: Michael Hanson <hansonorders@verison.net>
Date: Fri, 19 Mar 2010 19:58:12 +0000
Subject: mythpywii: Update in an attempt to automate. Changed program version
 to reflect that of the headder in the script.

---
 abs/extra-testing/community/mythpywii/CONTROLS     | 25 +++++++++
 abs/extra-testing/community/mythpywii/PKGBUILD     | 22 +++++---
 .../community/mythpywii/mythpywii.install          | 59 ++++++++++++++++++++++
 .../community/mythpywii/wiimote.rules              |  6 +++
 4 files changed, 106 insertions(+), 6 deletions(-)
 create mode 100644 abs/extra-testing/community/mythpywii/CONTROLS
 create mode 100644 abs/extra-testing/community/mythpywii/mythpywii.install
 create mode 100644 abs/extra-testing/community/mythpywii/wiimote.rules

diff --git a/abs/extra-testing/community/mythpywii/CONTROLS b/abs/extra-testing/community/mythpywii/CONTROLS
new file mode 100644
index 0000000..d733964
--- /dev/null
+++ b/abs/extra-testing/community/mythpywii/CONTROLS
@@ -0,0 +1,25 @@
+    * Keypad : same as keypad on keyboard
+    * A : Enter (Accept, OK, next, .)
+    * Minus (-) : d (Delete)
+    * Home : escape (Exit to previous menu/exit mythfrontend)
+    * Plus (+) : p (Play/pause)
+    * 1 : Info
+    * 2 : Menu
+    * B + left : rewind to beginning of video
+    * B + twist wiimote : rewind (if twisted to the left) or fastforward
+      (otherwise) with speed dependant on twist amount.
+    * B + A + twist wiimote: timestretching . slower (if twisted left) or
+      faster (if twisted right)
+
+A comment on twisting:
+Point the wii remote at the screen, and twist from the elbow so that it
+ continues to point at the screen.
+
+The maximum fastforward/rewind speed is 180x. The speeds are dictated by
+mythfrontend itself. When you rotate the wiimote, you will feel a slight
+vibration (0.05 seconds) to let you know you have gone up or down a speed
+segment. To stop fastforwarding/rewinding, simply let go of B.
+
+Beware: there is no power saving built in. However you should be able to
+turn the wiimote off (power button) when not in use, and turn it back on
+by holding down 1 and 2 to make it sync.
diff --git a/abs/extra-testing/community/mythpywii/PKGBUILD b/abs/extra-testing/community/mythpywii/PKGBUILD
index 4b57c77..38e456f 100644
--- a/abs/extra-testing/community/mythpywii/PKGBUILD
+++ b/abs/extra-testing/community/mythpywii/PKGBUILD
@@ -2,17 +2,27 @@
 # Maintainer: Cecil Watson<knoppmyth@gmail.com>
 
 pkgname=mythpywii
-pkgver=1
-pkgrel=1
+pkgver=17
+pkgrel=8
 pkgdesc="Control MythTV using Wiimote."
 arch=('i686' 'x86_64')
 license=('GPL2')
 url="http://www.benjiegillam.com/"
 depends=('bluez' 'python-pybluez' 'cwiid-svn')
-#install=mythpywii.install
-source=(http://www.benjiegillam.com/code/myth_py_wii.py)
+install=mythpywii.install
+source=(http://www.benjiegillam.com/code/myth_py_wii.py \
+        wiimote.rules mythpywii.install CONTROLS)
 
 build() {
-  mkdir -p $startdir/pkg/usr/bin
-  install -D -m 755 myth_py_wii.py $startdir/pkg/usr/bin
+  install -D -m755 ${srcdir}/myth_py_wii.py ${startdir}/pkg/usr/bin/myth_py_wii.py || return 1
+  install -D -m644 ${srcdir}/wiimote.rules ${startdir}/pkg/etc/udev/rules.d/z90-wiimote.rules || return 1
+  install -d -o mythtv -g mythtv ${startdir}/pkg/home/mythtv/.cwiid/wminput || return 1
+  install -D -m755 -o mythtv -g mythtv /etc/cwiid/wminput/{acc_led,buttons,gamepad,neverball,nunchuk_stick2btn,acc_ptr,ir_ptr,nunchuk_acc_ptr} ${startdir}/pkg/home/mythtv/.cwiid/wminput || return 1
+  install -D -m644 ${srcdir}/CONTROLS ${startdir}/pkg/usr/share/docs/mythpywii/CONTROLS || return 1
+  cd ${startdir}/pkg/home/mythtv/.cwiid/wminput
+  ln -s acc_led default
 }
+md5sums=('5bd5e1bb9c4cbfabbffdb28ff616e83b'
+         '0d817a971d414b9320587a4cf289386b'
+         '64fa8dbd324dac68f71753ebd828d358'
+         '0872cbdb3def3dd9aa2b97b191ad76d8')
diff --git a/abs/extra-testing/community/mythpywii/mythpywii.install b/abs/extra-testing/community/mythpywii/mythpywii.install
new file mode 100644
index 0000000..8d0b867
--- /dev/null
+++ b/abs/extra-testing/community/mythpywii/mythpywii.install
@@ -0,0 +1,59 @@
+post_install() {
+    . /home/mythtv/.mythtv/mysql.txt
+    # Enable the Network Remote Control Interface for use with the wiimote.
+    # Get local machine's hostname
+      HOST=`cat /etc/hostname`
+    # Update mysql for Network Remote Control Support
+      mysql -u mythtv -pmythtv --host=${DBHostName} mythconverg -e \
+        "UPDATE settings SET data = '1' WHERE value = 'NetworkControlEnabled' AND hostname = '${HOST}'";
+      echo "------------------------------------------------------------"
+      echo "myth_py_wii.py expects the Network Control Port to be set to"
+      echo "mythtv's default port of 6546.  It will not work if you have"
+      echo "changed it to something else."
+      echo "------------------------------------------------------------"
+    # Add myth_py_wii.py to ~/mythtv/.fluxbox/apps before LinHES-run
+      sed -i '/LinHES-run/ i [startup] {/usr/bin/myth_py_wii.py >/dev/null}' /home/mythtv/.fluxbox/apps
+    # udev needs to pick up our new rule for the mythpywii.
+      udevadm trigger --subsystem-match="misc" --subsystem-match="bluetooth"
+    # Add the uinput module
+      modprobe uinput
+    # Ensure this module is loaded across reboots
+      echo "# uinput is needed by mythpywii" >> /etc/modules.mythvantage
+      echo "uinput" >> /etc/modules.mythvantage
+    # Bring up the bluetooth interface -- udev will do this after reboot
+      /usr/sbin/hciconfig hci0 up
+    # Punting on the multiple bluetooth adapter question.
+      echo "It is assumed your bluetooth adapter will be hci0."
+      echo "If you have more than one bluetooth adapter, you"
+      echo "may need to edit /etc/udev/rules.d/z90-wiimote.rules"
+    echo "--------------------------------------------------------------"
+    echo "--------------------------------------------------------------"
+    # Unfortunately there does not seem to be a way to do this without
+    # the user manually intervening.
+    echo "To use your wiimote you will need to restart the frontend service."
+    echo "$ sudo sv restart frontend"
+    echo "or simply reboot your machine."
+    echo "--------------------------------------------------------------"
+    echo "--------------------------------------------------------------"
+    echo "After frontend restart, you should now be able to pair your"
+    echo "Wiimote with your bluetooth adapter by pressing 1 & 2 at the"
+    echo "same time.  After a few seconds the wiimote should vibrate and the"
+    echo "LEDs will show [ # . . # ] where # is on and . is off."
+    echo "--------------------------------------------------------------"
+    echo "See /usr/share/docs/mythpywii/CONTROLS for more information."
+    echo "--------------------------------------------------------------"
+}
+
+post_remove() {
+    . /home/mythtv/.mythtv/mysql.txt
+    # kill myth_py_wii.py
+      WIIPID=`pidof -o %PPID /usr/bin/myth_py_wii.py`
+        [ -n "$WIIPID" ] && kill $WIIPID
+    # Remove uinput
+      sed -i '/uinput/d' /etc/modules.mythvantage
+    # Remove line in .fluxbox/apps
+      sed -i '/myth_py_wii.py/d' /home/mythtv/.fluxbox/apps
+    # Remove network remote control support
+      mysql -u mythtv -pmythtv --host=${DBHostName} mythconverg -e \
+        "UPDATE settings SET data = '0' WHERE value = 'NetworkControlEnabled' AND hostname = '${HOST}'";
+}
diff --git a/abs/extra-testing/community/mythpywii/wiimote.rules b/abs/extra-testing/community/mythpywii/wiimote.rules
new file mode 100644
index 0000000..4bb2d9d
--- /dev/null
+++ b/abs/extra-testing/community/mythpywii/wiimote.rules
@@ -0,0 +1,6 @@
+# For Bluetooth/Wiimote
+  KERNEL=="uinput", MODE="0660", GROUP="mythtv"
+
+# Automaticly bring up/down the bluetooth interface
+  ACTION=="add", KERNEL=="hci%n", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig hci%n up"
+  ACTION=="remove", KERNEL=="hci%n", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig hci%n down"
-- 
cgit v0.12

