med-module-0.1: src/Sound/MED/Basic/Storable.hs
module Sound.MED.Basic.Storable where
import Foreign.Storable (Storable, peekByteOff)
import Foreign.Ptr (Ptr)
import Control.Applicative ((<$>))
import Data.Storable.Endian (HasBigEndian, getBigEndian)
import Data.Word (Word32)
type MEM = Ptr ()
type PTR = Word32
type Peek a = MEM -> PTR -> IO a
peekOffset :: (Storable a) => Peek a
peekOffset mem ptr = peekByteOff mem (fromIntegral ptr)
peekBig :: (Storable a, HasBigEndian a) => Peek a
peekBig mem ptr = getBigEndian <$> peekOffset mem ptr