chiark / gitweb /
gui: gamepad: implement train selection
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sun, 13 Feb 2011 19:32:32 +0000 (19:32 +0000)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sun, 13 Feb 2011 19:32:32 +0000 (19:32 +0000)
hostside/gui

index 78297c609eddbb8f0623a2f3213c24eb0f24ee73..4102e9eb90f61a6fa634b92be40051b861d5ab08 100755 (executable)
@@ -937,6 +937,25 @@ proc ib-gamepad-main {devid xy value} {
     set in(main_active) $active
 }
 
+proc ib-ev/gamepad/EV_KEY/BTN_1 {d v} { ib-gamepad-btn 1 $d $v }
+proc ib-ev/gamepad/EV_KEY/BTN_2 {d v} { ib-gamepad-btn 2 $d $v }
+proc ib-ev/gamepad/EV_KEY/BTN_3 {d v} { ib-gamepad-btn 3 $d $v }
+proc ib-ev/gamepad/EV_KEY/BTN_4 {d v} { ib-gamepad-btn 4 $d $v }
+proc ib-ev/gamepad/EV_KEY/BTN_5 {d v} { ib-gamepad-btn 5 $d $v }
+proc ib-ev/gamepad/EV_KEY/BTN_6 {d v} { ib-gamepad-btn 6 $d $v }
+
+proc ib-gamepad-btn {num devid value} {
+    upvar #0 input/$devid in
+    if {!$value} return
+    if {[string length $in(main_active)]} return
+    upvar #0 trainnum2train($num) tr
+    if {![info exists tr]} {
+       speedw-train-noneselected $in(speedw) "no train $num"
+    } else {
+       speedw-train-selected $in(speedw) $tr
+    }
+}
+
 proc ib-ev/gamepad/EV_KEY/BTN_TOP2 {devid value} {
     upvar #0 input/$devid in
     if {!$value} return