module System.Hardware.WiringPi.Foreign
( valueToInt
, intToValue
, modeToInt
, pudToInt
, pwmModeToInt
, c_wiringPiSetupGpio
, c_pinMode
, c_pullUpDnControl
, c_digitalRead
, c_digitalWrite
, c_pwmWrite
, c_digitalWriteByte
, c_pwmSetMode
, c_pwmSetRange
, c_pwmSetClock
, c_piBoardRev
, c_wpiPinToGpio
, c_physPinToGpio
) where
import Foreign.C.Types ( CInt(..), CUInt(..) )
import System.Hardware.WiringPi.Enums
valueToInt :: Value -> CInt
valueToInt LOW = 0
valueToInt HIGH = 1
intToValue :: CInt -> Value
intToValue 0 = LOW
intToValue _ = HIGH
modeToInt :: Mode -> CInt
modeToInt INPUT = 2
modeToInt OUTPUT = 3
modeToInt PWM_OUTPUT = 4
modeToInt GPIO_CLOCK = 5
pudToInt :: Pud -> CInt
pudToInt PUD_OFF = 6
pudToInt PUD_DOWN = 7
pudToInt PUD_UP = 8
pwmModeToInt :: PwmMode -> CInt
pwmModeToInt PWM_MODE_BAL = 9
pwmModeToInt PWM_MODE_MS = 10
c_wiringPiSetupGpio :: IO CInt
c_wiringPiSetupGpio = return 0
c_pinMode :: CInt
-> CInt
-> IO ()
c_pinMode _ _ = return ()
c_pullUpDnControl :: CInt
-> CInt
-> IO ()
c_pullUpDnControl _ _ = return ()
c_digitalRead :: CInt
-> IO CInt
c_digitalRead _ = return 0
c_digitalWrite :: CInt
-> CInt
-> IO ()
c_digitalWrite _ _ = return ()
c_pwmWrite :: CInt
-> CInt
-> IO ()
c_pwmWrite _ _ = return ()
c_digitalWriteByte :: CInt
-> IO ()
c_digitalWriteByte _ = return ()
c_pwmSetMode :: CInt
-> IO ()
c_pwmSetMode _ = return ()
c_pwmSetRange :: CUInt
-> IO ()
c_pwmSetRange _ = return ()
c_pwmSetClock :: CInt
-> IO ()
c_pwmSetClock _ = return ()
c_piBoardRev :: IO CInt
c_piBoardRev = return 2
c_wpiPinToGpio :: CInt
-> IO CInt
c_wpiPinToGpio _ = return (1)
c_physPinToGpio :: CInt
-> IO CInt
c_physPinToGpio _ = return (1)