module Sound.MED.Raw.MMDARexxTrigCmd where import Sound.MED.Basic.Amiga import Sound.MED.Basic.Utility data MMDARexxTrigCmd = MMDARexxTrigCmd { MMDARexxTrigCmd -> Maybe MMDARexxTrigCmd next :: Maybe MMDARexxTrigCmd , MMDARexxTrigCmd -> UBYTE cmdnum :: UBYTE , MMDARexxTrigCmd -> UBYTE pad :: UBYTE , MMDARexxTrigCmd -> WORD cmdtype :: WORD , MMDARexxTrigCmd -> [UBYTE] cmd :: [ UBYTE ] , MMDARexxTrigCmd -> [UBYTE] port :: [ UBYTE ] , MMDARexxTrigCmd -> UWORD cmd_len :: UWORD , MMDARexxTrigCmd -> UWORD port_len :: UWORD } deriving (Int -> MMDARexxTrigCmd -> ShowS [MMDARexxTrigCmd] -> ShowS MMDARexxTrigCmd -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [MMDARexxTrigCmd] -> ShowS $cshowList :: [MMDARexxTrigCmd] -> ShowS show :: MMDARexxTrigCmd -> String $cshow :: MMDARexxTrigCmd -> String showsPrec :: Int -> MMDARexxTrigCmd -> ShowS $cshowsPrec :: Int -> MMDARexxTrigCmd -> ShowS Show) {-# SPECIALISE peek :: PTR -> StorableReader MMDARexxTrigCmd #-} {-# SPECIALISE peek :: PTR -> ByteStringReader MMDARexxTrigCmd #-} peek :: (Reader m) => PTR -> m MMDARexxTrigCmd peek :: forall (m :: * -> *). Reader m => PTR -> m MMDARexxTrigCmd peek PTR p = do PTR next''' <- forall (m :: * -> *). Reader m => Peek m PTR peekPTR PTR p Maybe MMDARexxTrigCmd next' <- forall (m :: * -> *). Reader m => PTR -> m MMDARexxTrigCmd peek forall (m :: * -> *) a. Monad m => (PTR -> m a) -> PTR -> m (Maybe a) $? PTR next''' UBYTE cmdnum' <- forall (m :: * -> *). Reader m => Peek m UBYTE peekUBYTE (PTR pforall a. Num a => a -> a -> a +PTR 4) UBYTE pad' <- forall (m :: * -> *). Reader m => Peek m UBYTE peekUBYTE (PTR pforall a. Num a => a -> a -> a +PTR 5) WORD cmdtype' <- forall (m :: * -> *). Reader m => Peek m WORD peekWORD (PTR pforall a. Num a => a -> a -> a +PTR 6) PTR cmd'' <- forall (m :: * -> *). Reader m => Peek m PTR peekPTR (PTR pforall a. Num a => a -> a -> a +PTR 8) PTR port'' <- forall (m :: * -> *). Reader m => Peek m PTR peekPTR (PTR pforall a. Num a => a -> a -> a +PTR 12) UWORD cmd_len' <- forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD (PTR pforall a. Num a => a -> a -> a +PTR 16) UWORD port_len' <- forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD (PTR pforall a. Num a => a -> a -> a +PTR 18) [UBYTE] cmd' <- 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 => PTR -> PTR -> i -> [PTR] pointerRangeGenCheck PTR cmd'' PTR 1 (UWORD cmd_len'forall a. Num a => a -> a -> a +UWORD 1) [UBYTE] port' <- 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 => PTR -> PTR -> i -> [PTR] pointerRangeGenCheck PTR port'' PTR 1 (UWORD port_len'forall a. Num a => a -> a -> a +UWORD 1) forall (m :: * -> *) a. Monad m => a -> m a return forall a b. (a -> b) -> a -> b $ Maybe MMDARexxTrigCmd -> UBYTE -> UBYTE -> WORD -> [UBYTE] -> [UBYTE] -> UWORD -> UWORD -> MMDARexxTrigCmd MMDARexxTrigCmd Maybe MMDARexxTrigCmd next' UBYTE cmdnum' UBYTE pad' WORD cmdtype' [UBYTE] cmd' [UBYTE] port' UWORD cmd_len' UWORD port_len'