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
(Int -> MMD0Sample -> ShowS)
-> (MMD0Sample -> String)
-> ([MMD0Sample] -> ShowS)
-> Show MMD0Sample
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 :: PTR -> m MMD0Sample
peek PTR
p = do
  UWORD
rep'        <- Peek m UWORD
forall (m :: * -> *). Reader m => Peek m UWORD
peekUWORD (PTR
pPTR -> PTR -> PTR
forall a. Num a => a -> a -> a
+PTR
0)
  UWORD
replen'     <- Peek m UWORD
forall (m :: * -> *). Reader m => Peek m UWORD
peekUWORD (PTR
pPTR -> PTR -> PTR
forall a. Num a => a -> a -> a
+PTR
2)
  UBYTE
midich'     <- Peek m UBYTE
forall (m :: * -> *). Reader m => Peek m UBYTE
peekUBYTE (PTR
pPTR -> PTR -> PTR
forall a. Num a => a -> a -> a
+PTR
4)
  UBYTE
midipreset' <- Peek m UBYTE
forall (m :: * -> *). Reader m => Peek m UBYTE
peekUBYTE (PTR
pPTR -> PTR -> PTR
forall a. Num a => a -> a -> a
+PTR
5)
  UBYTE
svol'       <- Peek m UBYTE
forall (m :: * -> *). Reader m => Peek m UBYTE
peekUBYTE (PTR
pPTR -> PTR -> PTR
forall a. Num a => a -> a -> a
+PTR
6)
  BYTE
strans'     <- Peek m BYTE
forall (m :: * -> *). Reader m => Peek m BYTE
peekBYTE  (PTR
pPTR -> PTR -> PTR
forall a. Num a => a -> a -> a
+PTR
7)
  MMD0Sample -> m MMD0Sample
forall (m :: * -> *) a. Monad m => a -> m a
return (MMD0Sample -> m MMD0Sample) -> MMD0Sample -> m MMD0Sample
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'