x11.xinput2.ffi: make XI*Mask less ugly

db4
Niklas.Waern 2010-05-22 01:36:04 +02:00
parent 15f0ff877e
commit 0be7a74e64
1 changed files with 11 additions and 9 deletions

View File

@ -13,22 +13,24 @@ LIBRARY: xinput2
! ********* ! *********
! * XI2.h * ! * XI2.h *
! ********* ! *********
<PRIVATE
: mask-index ( event -- n ) -3 shift ;
: bitmask ( event -- n ) 7 bitand 2^ ;
PRIVATE>
:: XISetMask ( mask event -- ) :: XISetMask ( mask event -- )
event -3 shift :> index event mask-index :> index
event 7 bitand 2^ :> bit-mask event bitmask index mask nth bitor
bit-mask index mask nth bitor
index mask set-nth ; inline index mask set-nth ; inline
:: XIClearMask ( mask event -- ) :: XIClearMask ( mask event -- )
event -3 shift :> index event mask-index :> index
event 7 bitand 2^ bitnot :> bit-mask event bitmask bitnot index mask nth bitand
bit-mask index mask nth bitand
index mask set-nth ; inline index mask set-nth ; inline
:: XIMaskIsSet ( mask event -- n ) :: XIMaskIsSet ( mask event -- n )
event -3 shift :> index event mask-index :> index
event 7 bitand 2^ :> bit-mask event bitmask index mask nth bitand ;
bit-mask index mask nth bitand ;
: XIMaskLen ( event -- n ) 7 + -3 shift ; : XIMaskLen ( event -- n ) 7 + -3 shift ;