module Sound.MED.Raw.MMD0Sample where

import Sound.MED.Basic.Amiga

data MMD0Sample = MMD0Sample
  { MMD0Sample -> UWORD
rep        :: UWORD
  , MMD0Sample -> UWORD
replen     :: UWORD
  , MMD0Sample -> UBYTE
midich     :: UBYTE
  , MMD0Sample -> UBYTE
midipreset :: UBYTE
  , MMD0Sample -> UBYTE
svol       :: UBYTE
  , MMD0Sample -> BYTE
strans     :: BYTE
  }
  deriving (Int -> MMD0Sample -> ShowS
[MMD0Sample] -> ShowS
MMD0Sample -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MMD0Sample] -> ShowS
$cshowList :: [MMD0Sample] -> ShowS
show :: MMD0Sample -> String
$cshow :: MMD0Sample -> String
showsPrec :: Int -> MMD0Sample -> ShowS
$cshowsPrec :: Int -> MMD0Sample -> ShowS
Show)

{-# SPECIALISE peek :: PTR -> StorableReader MMD0Sample #-}
{-# SPECIALISE peek :: PTR -> ByteStringReader MMD0Sample #-}
peek :: (Reader m) => PTR -> m MMD0Sample
peek :: forall (m :: * -> *). Reader m => PTR -> m MMD0Sample
peek PTR
p = do
  UWORD
rep'        <- forall (m :: * -> *). Reader m => Peek m UWORD
peekUWORD (PTR
pforall a. Num a => a -> a -> a
+PTR
0)
  UWORD
replen'     <- forall (m :: * -> *). Reader m => Peek m UWORD
peekUWORD (PTR
pforall a. Num a => a -> a -> a
+PTR
2)
  UBYTE
midich'     <- forall (m :: * -> *). Reader m => Peek m UBYTE
peekUBYTE (PTR
pforall a. Num a => a -> a -> a
+PTR
4)
  UBYTE
midipreset' <- forall (m :: * -> *). Reader m => Peek m UBYTE
peekUBYTE (PTR
pforall a. Num a => a -> a -> a
+PTR
5)
  UBYTE
svol'       <- forall (m :: * -> *). Reader m => Peek m UBYTE
peekUBYTE (PTR
pforall a. Num a => a -> a -> a
+PTR
6)
  BYTE
strans'     <- forall (m :: * -> *). Reader m => Peek m BYTE
peekBYTE  (PTR
pforall a. Num a => a -> a -> a
+PTR
7)
  forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ UWORD -> UWORD -> UBYTE -> UBYTE -> UBYTE -> BYTE -> MMD0Sample
MMD0Sample
    UWORD
rep' UWORD
replen' UBYTE
midich' UBYTE
midipreset' UBYTE
svol' BYTE
strans'