myo-0.1.0.0: src/Myo/Foreign/Handler.hsc
module Myo.Foreign.Handler where
import Foreign.Storable
import Foreign.Ptr
import Foreign.ForeignPtr
import Myo.Foreign.Event
#include "libmyo.h"
data HandlerResult =
Continue -- ^ Continue processing events
| Stop -- ^ Stop processing events
deriving (Show, Eq, Ord, Bounded, Enum)
instance Storable HandlerResult where
sizeOf _ = (#size libmyo_handler_result_t)
alignment _ = alignment (undefined :: Ptr HandlerResult)
peek ptr = do
v <- peekByteOff ptr 0
return $ toEnum v
poke p v = let e = fromEnum v in pokeByteOff p e e
type Handler = FunPtr (UserData -> Event -> HandlerResult)
type UserData = ForeignPtr ()