From 91eecacd35bd5d4fe98e5d2c17e7612f6eea593c Mon Sep 17 00:00:00 2001 From: Michael Hanson 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 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