module Sound.MED.Raw.MMDMIDICmd3x where import Sound.MED.Basic.Amiga import Sound.MED.Basic.Utility data MMDMIDICmd3x = MMDMIDICmd3x { MMDMIDICmd3x -> UBYTE struct_ver :: UBYTE , MMDMIDICmd3x -> UBYTE pad :: UBYTE , MMDMIDICmd3x -> UWORD num_of_settings :: UWORD , MMDMIDICmd3x -> [UBYTE] ctrlr_types :: [ UBYTE ] , MMDMIDICmd3x -> [UWORD] ctrlr_numbers :: [ UWORD ] } deriving (Int -> MMDMIDICmd3x -> ShowS [MMDMIDICmd3x] -> ShowS MMDMIDICmd3x -> String (Int -> MMDMIDICmd3x -> ShowS) -> (MMDMIDICmd3x -> String) -> ([MMDMIDICmd3x] -> ShowS) -> Show MMDMIDICmd3x forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [MMDMIDICmd3x] -> ShowS $cshowList :: [MMDMIDICmd3x] -> ShowS show :: MMDMIDICmd3x -> String $cshow :: MMDMIDICmd3x -> String showsPrec :: Int -> MMDMIDICmd3x -> ShowS $cshowsPrec :: Int -> MMDMIDICmd3x -> ShowS Show) {-# SPECIALISE peek :: PTR -> StorableReader MMDMIDICmd3x #-} {-# SPECIALISE peek :: PTR -> ByteStringReader MMDMIDICmd3x #-} peek :: (Reader m) => PTR -> m MMDMIDICmd3x peek :: PTR -> m MMDMIDICmd3x peek PTR p = do UBYTE struct_ver' <- Peek m UBYTE forall (m :: * -> *). Reader m => Peek m UBYTE peekUBYTE (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 0) UBYTE pad' <- Peek m UBYTE forall (m :: * -> *). Reader m => Peek m UBYTE peekUBYTE (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 1) UWORD num_of_settings' <- Peek m UWORD forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 2) PTR ctrlr_types'' <- Peek m PTR forall (m :: * -> *). Reader m => Peek m PTR peekPTR (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 4) [UBYTE] ctrlr_types' <- Peek m UBYTE -> [PTR] -> m [UBYTE] forall (t :: * -> *) (m :: * -> *) a b. (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) mapM Peek m UBYTE forall (m :: * -> *). Reader m => Peek m UBYTE peekUBYTE ([PTR] -> m [UBYTE]) -> [PTR] -> m [UBYTE] forall a b. (a -> b) -> a -> b $ PTR -> PTR -> UWORD -> [PTR] forall i. Integral i => PTR -> PTR -> i -> [PTR] pointerRangeGen PTR ctrlr_types'' PTR 1 UWORD num_of_settings' PTR ctrlr_numbers'' <- Peek m PTR forall (m :: * -> *). Reader m => Peek m PTR peekPTR (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 8) [UWORD] ctrlr_numbers' <- Peek m UWORD -> [PTR] -> m [UWORD] forall (t :: * -> *) (m :: * -> *) a b. (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) mapM Peek m UWORD forall (m :: * -> *). Reader m => Peek m UWORD peekUWORD ([PTR] -> m [UWORD]) -> [PTR] -> m [UWORD] forall a b. (a -> b) -> a -> b $ PTR -> PTR -> UWORD -> [PTR] forall i. Integral i => PTR -> PTR -> i -> [PTR] pointerRangeGen PTR ctrlr_numbers'' PTR 2 UWORD num_of_settings' MMDMIDICmd3x -> m MMDMIDICmd3x forall (m :: * -> *) a. Monad m => a -> m a return (MMDMIDICmd3x -> m MMDMIDICmd3x) -> MMDMIDICmd3x -> m MMDMIDICmd3x forall a b. (a -> b) -> a -> b $ UBYTE -> UBYTE -> UWORD -> [UBYTE] -> [UWORD] -> MMDMIDICmd3x MMDMIDICmd3x UBYTE struct_ver' UBYTE pad' UWORD num_of_settings' [UBYTE] ctrlr_types' [UWORD] ctrlr_numbers'