From aee9a3e4f33867909d2b7c2238c86ef439abe681 Mon Sep 17 00:00:00 2001
From: Mathieu Loiseau <mlois_-gr@yahoo.fr>
Date: Sat, 18 Apr 2015 15:37:39 +0200
Subject: [PATCH] =?UTF-8?q?+=20LED=20&=20eggnog=20=E2=86=92=20config=20fil?=
 =?UTF-8?q?e?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 config.sh               |  4 ++++
 game.sh                 | 43 +++++++++++++++++++++++++++++++----------
 modules/amnesia.sh      |  2 +-
 modules/braid.sh        |  2 +-
 modules/eggnogg.sh      | 26 +++++++++++++++++++++++++
 modules/limbo.sh        |  2 +-
 modules/lonesurvivor.sh |  2 +-
 modules/minecraft.sh    |  2 +-
 modules/psychonauts.sh  |  2 +-
 modules/vvvvvv.sh       |  2 +-
 modules/xpad.sh         |  4 ++--
 11 files changed, 72 insertions(+), 19 deletions(-)
 create mode 100755 config.sh
 create mode 100755 modules/eggnogg.sh

diff --git a/config.sh b/config.sh
new file mode 100755
index 0000000..79106bc
--- /dev/null
+++ b/config.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+#configure working directories
+export workingDirectory="/where/gamepad-switcher/is"
+export killProcessesScript="a/shell/file/that/will/be/created/and/erased/in/working/directory"
\ No newline at end of file
diff --git a/game.sh b/game.sh
index 90a077e..4f75039 100755
--- a/game.sh
+++ b/game.sh
@@ -3,6 +3,21 @@
 # 2 parameters can be used : 1 → x for xbox controller, p for ps3
 #                            2 → name of the game as suggested in menu
 
+#configuration
+. ./config.sh
+cd $workingDirectory
+if [ -e "$killProcessesScript" ]
+then
+	echo "There seems to be (a) running instance(s) of the game controller, do you want to brutally kill the processes? (Y/n)\nI'm not sure what it does if you don't…"
+	read userinput
+	if [ "$userinput" = "Y" ]
+	then
+		sh $killProcessesScript
+		rm $killProcessesScript
+		sleep 1
+	fi
+fi
+
 if [ $# = 0 ]
 then
 	echo "(X)box or (P)S3 ?"
@@ -33,11 +48,12 @@ else
 	echo What game would you like to play?
 	echo 1\) vvvvvv
 	echo 2\) Braid
-	echo 3\) Limbo
-	echo 4\) Lone Survivor
-	echo 5\) Minecraft
-	echo 6\) Psychonauts
-	echo 7\) Amnesia
+	echo 3\) Eggnogg
+	echo 93\) Limbo
+	echo 94\) Lone Survivor
+	echo 95\) Minecraft
+	echo 96\) Psychonauts
+	echo 97\) Amnesia
 	echo "99) None, give me my gamepad mode back."
 	read userinput
 fi
@@ -55,31 +71,38 @@ then
 	echo
 	cd modules 
 	./braid.sh
-elif [ "$userinput" = 3 -o "$userinput" = "Limbo" -o "$userinput" = "limbo" ]
+elif [ "$userinput" = 3 -o "$userinput" = "Eggnogg" -o "$userinput" = "eggnogg" -o "$userinput" = "egg" -o "$userinput" = "E" -o "$userinput" = "e" ]
+then
+	echo "Your controllerS will now be configured for eggnogg."
+#Different types of controllers could be configured, but it's not my case so I won't do it ;)
+	echo
+	cd modules 
+	./eggnogg.sh
+elif [ "$userinput" = 93 -o "$userinput" = "Limbo" -o "$userinput" = "limbo" ]
 then
 	echo "Your controller will now be configured for Limbo."
 	echo
 	cd modules 
 	./limbo.sh
-elif [ "$userinput" = 4 -o "$userinput" = "Lone Survivor" -o "$userinput" = "lone survivor" ]
+elif [ "$userinput" = 94 -o "$userinput" = "Lone Survivor" -o "$userinput" = "lone survivor" ]
 then
 	echo "Your controller will now be configured for Lone Survivor"
 	echo
 	cd modules 
 	./lonesurvivor.sh
-elif [ "$userinput" = 5 -o "$userinput" = "Minecraft" -o "$userinput" = "minecraft" ]
+elif [ "$userinput" = 95 -o "$userinput" = "Minecraft" -o "$userinput" = "minecraft" ]
 then
 	echo "Your controller will now be configured for Minecraft."
 	echo
 	cd modules 
 	./minecraft.sh
-elif [ "$userinput" = 6 -o "$userinput" = "Psychonauts" -o "$userinput" = "psychonauts" ]
+elif [ "$userinput" = 96 -o "$userinput" = "Psychonauts" -o "$userinput" = "psychonauts" ]
 then
 	echo "Your controller will now be configured for Psychonauts."
 	echo
 	cd modules 
 	./psychonauts.sh
-elif [ "$userinput" = 7 -o "$userinput" = "Amnesia" -o "$userinput" = "amnesia" ]
+elif [ "$userinput" = 97 -o "$userinput" = "Amnesia" -o "$userinput" = "amnesia" ]
 then
 	echo "Your controller will now be configured for Amnesia."
 	echo
diff --git a/modules/amnesia.sh b/modules/amnesia.sh
index 675e703..37abf82 100755
--- a/modules/amnesia.sh
+++ b/modules/amnesia.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv$pad -c amnesia.xboxdrv -s
+sudo xboxdrv$pad -c amnesia.xboxdrv -s --led 2
diff --git a/modules/braid.sh b/modules/braid.sh
index 6846608..06ba98d 100755
--- a/modules/braid.sh
+++ b/modules/braid.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv$pad -c braid.xboxdrv -s
+sudo xboxdrv$pad -c braid.xboxdrv -s --led 2
diff --git a/modules/eggnogg.sh b/modules/eggnogg.sh
new file mode 100755
index 0000000..276891c
--- /dev/null
+++ b/modules/eggnogg.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Define the default gamepad module name
+module=xpad
+
+# Check if the module is already loaded, if so, remove it and run the xboxdrv module
+if lsmod | grep -q "^$module "
+then sudo rmmod xpad
+fi
+
+if [ ! -e "$workingDirectory$killProcessesScript" ]
+then
+	touch "$workingDirectory$killProcessesScript"
+fi
+sudo xboxdrv$pad -s -i 0 --led 2 &
+echo "controller1 is being handled by process number $!"
+if [ -f "$workingDirectory$killProcessesScript" ]
+then 
+    echo "sudo kill $!" > "$workingDirectory$killProcessesScript"
+fi
+sudo xboxdrv$pad -s -i 1 --led 3 &
+echo "controller2 is being handled by process number $!"
+if [ -f "$workingDirectory$killProcessesScript" ]
+then 
+    echo "sudo kill $!" >> "$workingDirectory$killProcessesScript"
+fi
\ No newline at end of file
diff --git a/modules/limbo.sh b/modules/limbo.sh
index 2aa5e1a..016551b 100755
--- a/modules/limbo.sh
+++ b/modules/limbo.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv$pad -c limbo.xboxdrv -s
+sudo xboxdrv$pad -c limbo.xboxdrv -s --led 2
diff --git a/modules/lonesurvivor.sh b/modules/lonesurvivor.sh
index bcb4984..bbdbeb1 100755
--- a/modules/lonesurvivor.sh
+++ b/modules/lonesurvivor.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv$pad -c lonesurvivor.xboxdrv -s
+sudo xboxdrv$pad -c lonesurvivor.xboxdrv -s --led 2
diff --git a/modules/minecraft.sh b/modules/minecraft.sh
index 58d8fde..31a8ba2 100755
--- a/modules/minecraft.sh
+++ b/modules/minecraft.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv$pad -c minecraft.xboxdrv -s
+sudo xboxdrv$pad -c minecraft.xboxdrv -s --led 2
diff --git a/modules/psychonauts.sh b/modules/psychonauts.sh
index 3a77bdb..a528802 100755
--- a/modules/psychonauts.sh
+++ b/modules/psychonauts.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv$pad -c psychonauts.xboxdrv -s
+sudo xboxdrv$pad -c psychonauts.xboxdrv -s --led 2
diff --git a/modules/vvvvvv.sh b/modules/vvvvvv.sh
index d049736..5134dc4 100755
--- a/modules/vvvvvv.sh
+++ b/modules/vvvvvv.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv$pad -c vvvvvv.xboxdrv -s
+sudo xboxdrv$pad --led 2 -c vvvvvv.xboxdrv -s
diff --git a/modules/xpad.sh b/modules/xpad.sh
index ed73b19..d3309e0 100755
--- a/modules/xpad.sh
+++ b/modules/xpad.sh
@@ -4,7 +4,7 @@
 module=xpad
 if lsmod | grep -q "^$module "
 then echo "Xpad already loaded."
-else echo "Controller has been returned to normal function."
-sudo modprobe xpad
+else sudo modprobe xpad
+echo "Controller has been returned to normal function."
 echo
 fi
-- 
GitLab