module Sound.MED.Raw.NotationInfo where import Sound.MED.Basic.Amiga import Sound.MED.Basic.Utility data NotationInfo = NotationInfo { NotationInfo -> UBYTE n_of_sharps :: UBYTE , NotationInfo -> UBYTE flags :: UBYTE , NotationInfo -> [WORD] trksel :: [ WORD ] , NotationInfo -> [UBYTE] trkshow :: [ UBYTE ] , NotationInfo -> [UBYTE] trkghost :: [ UBYTE ] , NotationInfo -> [BYTE] notetr :: [ BYTE ] , NotationInfo -> UBYTE pad :: UBYTE } deriving (Int -> NotationInfo -> ShowS [NotationInfo] -> ShowS NotationInfo -> String (Int -> NotationInfo -> ShowS) -> (NotationInfo -> String) -> ([NotationInfo] -> ShowS) -> Show NotationInfo forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [NotationInfo] -> ShowS $cshowList :: [NotationInfo] -> ShowS show :: NotationInfo -> String $cshow :: NotationInfo -> String showsPrec :: Int -> NotationInfo -> ShowS $cshowsPrec :: Int -> NotationInfo -> ShowS Show) {-# SPECIALISE peek :: PTR -> StorableReader NotationInfo #-} {-# SPECIALISE peek :: PTR -> ByteStringReader NotationInfo #-} peek :: (Reader m) => PTR -> m NotationInfo peek :: PTR -> m NotationInfo peek PTR p = do UBYTE n_of_sharps' <- 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 flags' <- Peek m UBYTE forall (m :: * -> *). Reader m => Peek m UBYTE peekUBYTE (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 1) [WORD] trksel' <- (PTR -> m WORD) -> [PTR] -> m [WORD] forall (t :: * -> *) (m :: * -> *) a b. (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) mapM PTR -> m WORD forall (m :: * -> *). Reader m => Peek m WORD peekWORD ([PTR] -> m [WORD]) -> [PTR] -> m [WORD] forall a b. (a -> b) -> a -> b $ PTR -> PTR -> Int -> [PTR] pointerRange (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a + PTR 2) PTR 2 Int 5 [UBYTE] trkshow' <- 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 -> Int -> [PTR] pointerRange (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 22) PTR 1 Int 16 [UBYTE] trkghost' <- 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 -> Int -> [PTR] pointerRange (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 38) PTR 1 Int 16 [BYTE] notetr' <- (PTR -> m BYTE) -> [PTR] -> m [BYTE] forall (t :: * -> *) (m :: * -> *) a b. (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) mapM PTR -> m BYTE forall (m :: * -> *). Reader m => Peek m BYTE peekBYTE ([PTR] -> m [BYTE]) -> [PTR] -> m [BYTE] forall a b. (a -> b) -> a -> b $ PTR -> PTR -> Int -> [PTR] pointerRange (PTR pPTR -> PTR -> PTR forall a. Num a => a -> a -> a +PTR 54) PTR 1 Int 63 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 117) NotationInfo -> m NotationInfo forall (m :: * -> *) a. Monad m => a -> m a return (NotationInfo -> m NotationInfo) -> NotationInfo -> m NotationInfo forall a b. (a -> b) -> a -> b $ UBYTE -> UBYTE -> [WORD] -> [UBYTE] -> [UBYTE] -> [BYTE] -> UBYTE -> NotationInfo NotationInfo UBYTE n_of_sharps' UBYTE flags' [WORD] trksel' [UBYTE] trkshow' [UBYTE] trkghost' [BYTE] notetr' UBYTE pad'