module Sound.MED.Raw.MMDInfo where import Sound.MED.Basic.Amiga import Sound.MED.Basic.Utility data MMDInfo = MMDInfo { MMDInfo -> Maybe MMDInfo next :: Maybe MMDInfo , MMDInfo -> UWORD reserved :: UWORD , MMDInfo -> UWORD typ :: UWORD , MMDInfo -> ULONG len :: ULONG , MMDInfo -> [UBYTE] dat :: [ UBYTE ] } deriving (Int -> MMDInfo -> ShowS [MMDInfo] -> ShowS MMDInfo -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [MMDInfo] -> ShowS $cshowList :: [MMDInfo] -> ShowS show :: MMDInfo -> String $cshow :: MMDInfo -> String showsPrec :: Int -> MMDInfo -> ShowS $cshowsPrec :: Int -> MMDInfo -> ShowS Show) {-# SPECIALISE peek :: PTR -> StorableReader MMDInfo #-} {-# SPECIALISE peek :: PTR -> ByteStringReader MMDInfo #-} peek :: (Reader m) => PTR -> m MMDInfo peek :: forall (m :: * -> *). Reader m => ULONG -> m MMDInfo peek ULONG p = do ULONG next''' <- forall (m :: * -> *). Reader m => Peek m ULONG peekPTR ULONG p Maybe MMDInfo next' <- forall (m :: * -> *). Reader m => ULONG -> m MMDInfo peek forall (m :: * -> *) a. Monad m => (ULONG -> m a) -> ULONG -> m (Maybe a) $? ULONG next''' UWORD reserved' <- forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD (ULONG pforall a. Num a => a -> a -> a +ULONG 4) UWORD typ' <- forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD (ULONG pforall a. Num a => a -> a -> a +ULONG 6) ULONG len' <- forall (m :: * -> *). Reader m => Peek m ULONG peekULONG (ULONG pforall a. Num a => a -> a -> a +ULONG 8) [UBYTE] dat' <- forall (t :: * -> *) (m :: * -> *) a b. (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) mapM forall (m :: * -> *). Reader m => Peek m UBYTE peekUBYTE forall a b. (a -> b) -> a -> b $ forall i. Integral i => ULONG -> ULONG -> i -> [ULONG] pointerRangeGen (ULONG pforall a. Num a => a -> a -> a +ULONG 12) ULONG 1 ULONG len' forall (m :: * -> *) a. Monad m => a -> m a return forall a b. (a -> b) -> a -> b $ Maybe MMDInfo -> UWORD -> UWORD -> ULONG -> [UBYTE] -> MMDInfo MMDInfo Maybe MMDInfo next' UWORD reserved' UWORD typ' ULONG len' [UBYTE] dat'