module Sound.MED.Raw.MMDInfo where
import Sound.MED.Basic.Amiga
import Sound.MED.Basic.Utility
data MMDInfo = MMDInfo
{ next :: Maybe MMDInfo
, reserved :: UWORD
, typ :: UWORD
, len :: ULONG
, dat :: [ UBYTE ]
}
deriving (Show)
peek :: (Reader m) => PTR -> m MMDInfo
peek p = do
next''' <- peekPTR p
next' <- peek $? next'''
reserved' <- peekUWORD (p+4)
typ' <- peekUWORD (p+6)
len' <- peekULONG (p+8)
dat' <- mapM peekUBYTE $ pointerRangeGen (p+12) 1 len'
return $ MMDInfo
next' reserved' typ' len' dat'