module Sound.MED.Raw.MMDDumpData where
import qualified Sound.MED.Raw.MMDDump as MMDDump
import Sound.MED.Raw.MMDDump(MMDDump)
import Sound.MED.Basic.Amiga
import Sound.MED.Basic.Utility
data MMDDumpData = MMDDumpData
{ numdumps :: UWORD
, reserved :: [ UWORD ]
, dumps :: [ MMDDump ]
}
deriving (Show)
peek :: (Reader m) => PTR -> m MMDDumpData
peek p = do
numdumps' <- peekUWORD p
reserved' <- mapM peekUWORD $ pointerRange (p+2) 2 3
dumps'' <- mapM peekPTR $ pointerRangeGen (p+8) 4 numdumps'
dumps' <- mapM MMDDump.peek dumps''
return $ MMDDumpData
numdumps' reserved' dumps'