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