module Sound.MED.Raw.PlaySeq where import Sound.MED.Basic.Amiga import Sound.MED.Basic.Utility data PlaySeq = PlaySeq { PlaySeq -> [UBYTE] name :: [ UBYTE ] , PlaySeq -> ULONG reserved0 :: ULONG , PlaySeq -> ULONG reserved1 :: ULONG , PlaySeq -> UWORD len :: UWORD , PlaySeq -> [UWORD] seq :: [ UWORD ] } deriving (Int -> PlaySeq -> ShowS [PlaySeq] -> ShowS PlaySeq -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [PlaySeq] -> ShowS $cshowList :: [PlaySeq] -> ShowS show :: PlaySeq -> String $cshow :: PlaySeq -> String showsPrec :: Int -> PlaySeq -> ShowS $cshowsPrec :: Int -> PlaySeq -> ShowS Show) {-# SPECIALISE peek :: PTR -> StorableReader PlaySeq #-} {-# SPECIALISE peek :: PTR -> ByteStringReader PlaySeq #-} peek :: (Reader m) => PTR -> m PlaySeq peek :: forall (m :: * -> *). Reader m => ULONG -> m PlaySeq peek ULONG p = do [UBYTE] name' <- 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 $ ULONG -> ULONG -> Int -> [ULONG] pointerRange ULONG p ULONG 1 Int 32 ULONG reserved0' <- forall (m :: * -> *). Reader m => Peek m ULONG peekULONG (ULONG pforall a. Num a => a -> a -> a +ULONG 32) ULONG reserved1' <- forall (m :: * -> *). Reader m => Peek m ULONG peekULONG (ULONG pforall a. Num a => a -> a -> a +ULONG 36) UWORD len' <- forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD (ULONG pforall a. Num a => a -> a -> a +ULONG 40) [UWORD] seq' <- forall (t :: * -> *) (m :: * -> *) a b. (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) mapM forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD 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 42) ULONG 2 UWORD len' forall (m :: * -> *) a. Monad m => a -> m a return forall a b. (a -> b) -> a -> b $ [UBYTE] -> ULONG -> ULONG -> UWORD -> [UWORD] -> PlaySeq PlaySeq [UBYTE] name' ULONG reserved0' ULONG reserved1' UWORD len' [UWORD] seq'