]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorWilliam Schlieper <william@aldebaran.(none)>
Sat, 20 Feb 2010 13:18:33 +0000 (08:18 -0500)
committerWilliam Schlieper <william@aldebaran.(none)>
Sat, 20 Feb 2010 13:18:33 +0000 (08:18 -0500)
Conflicts:
basis/game/input/input.factor

1  2 
basis/game/input/linux/linux.factor

index 0000000000000000000000000000000000000000,0d451e96f0fdd87bdeb9a8889f77a91c7110176a..b307835d7068bd1b10e1e342fd3e3d1cba530a3e
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,47 +1,89 @@@
 -USING: kernel game.input namespaces classes bit-arrays vectors ;
+ ! Copyright (C) 2010 Erik Charlebois.
+ ! See http://factorcode.org/license.txt for BSD license.
 -    256 <bit-array> keyboard-state boa ;
++USING: alien.c-types alien.syntax arrays kernel game.input namespaces
++classes bit-arrays sequences vectors x11 x11.xlib ;
+ IN: game.input.linux
+ SINGLETON: linux-game-input-backend
+ linux-game-input-backend game-input-backend set-global
+ M: linux-game-input-backend (open-game-input)
+     ;
+ M: linux-game-input-backend (close-game-input)
+     ;
+ M: linux-game-input-backend (reset-game-input)
+     ;
+ M: linux-game-input-backend get-controllers
+     { } ;
+ M: linux-game-input-backend product-string
+     drop "" ;
+      
+ M: linux-game-input-backend product-id
+     drop f ;
+      
+ M: linux-game-input-backend instance-id
+     drop f ;
+      
+ M: linux-game-input-backend read-controller
+     drop controller-state new ;
+      
+ M: linux-game-input-backend calibrate-controller
+     drop ;
+      
+ M: linux-game-input-backend vibrate-controller
+     3drop ;
++
++CONSTANT: x>hid-bit-order {
++    0 0 0 0 0 0 0 0 
++    0 41 30 31 32 33 34 35 
++    36 37 38 39 45 46 42 43 
++    20 26 8 21 23 28 24 12 
++    18 19 47 48 40 224 4 22 
++    7 9 10 11 13 14 15 51 
++    52 53 225 49 29 27 6 25 
++    5 17 16 54 55 56 229 85 
++    226 44 57 58 59 60 61 62 
++    63 64 65 66 67 83 71 95 
++    96 97 86 92 93 94 87 91 
++    90 89 99 0 0 0 68 69 
++    0 0 0 0 0 0 0 88 
++    228 84 70 0 0 74 82 75 
++    80 79 77 81 78 73 76 127 
++    129 128 102 103 0 72 0 0 
++    0 0 227 231 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++    0 0 0 0 0 0 0 0 
++}
+      
++: x-bits>hid-bits ( bit-array -- bit-array )
++        256 iota [ 2array ] 2map [ first ] filter [ second ] map
++        x>hid-bit-order [ nth ] with map
++        ?{ } swap [ t swap pick set-nth ] each ;
++        
+ M: linux-game-input-backend read-keyboard
++        dpy get 256 <bit-array> [ XQueryKeymap drop ] keep
++        x-bits>hid-bits keyboard-state boa ;
+      
+ M: linux-game-input-backend read-mouse
+     0 0 0 0 2 <vector> mouse-state boa ;
+      
+ M: linux-game-input-backend reset-mouse
+     ;