hcwiid-0.0.5: test/Test.hs
module Main where
import Prelude
import Control.Monad
import System.CWiid
import System.Posix.Unistd
-- Uncomment if you want to move the mouse with the wiimote
-- import System.Process
main :: IO ()
main = do
putStrLn "Put Wiimote in discoverable mode now (press 1+2)..."
(Just wm) <- cwiidOpen
putStrLn "found!"
_ <- cwiidSetLed wm (combineCwiidLedFlag [cwiidLed1, cwiidLed3])
_ <- cwiidSetRptMode wm 15 -- Buttons + Acc + IR
_ <- forever $ do _ <- usleep 300000
cwiidGetBtnState wm >>= print
cwiidGetAcc wm >>= print
cwiidGetIR wm >>= print
-- The following code shows how to use the IR camera
-- to control the mouse. Adjust your monitor resolution
-- and displacement using the constants below.
--
-- irs <- cwiidGetIR wm
-- let numLeds = filter cwiidIRSrcValid rs
-- let led1 = irs!!0
-- led2 = irs!!1
-- let posX = ((cwiidIRSrcPosX led1) + (cwiidIRSrcPosX led2)) `div` 2
-- let posY = ((cwiidIRSrcPosY led1) + (cwiidIRSrcPosY led2)) `div` 2
-- propX = (fromIntegral (1024 - posX)) / 1024.0
-- propY = (fromIntegral (max 0 (posY - 384))) / 384.0
-- finX = monitorDispX + round (monitorResX * propX)
-- finY = monitorDispY + round (monitorResY * propY)
-- system $ "xdotool mousemove " ++ show finX ++ " " ++ show finY
return () -- not reach
-- monitorResX = 1280
-- monitorResY = 1024
--
-- monitorDispX = 1920
-- monitorDispY = 0