{-# LINE 1 "src/Sound/ALSA/Sequencer/Marshal/Connect.hsc" #-} module Sound.ALSA.Sequencer.Marshal.Connect where import qualified Sound.ALSA.Sequencer.Marshal.Address as Addr import Foreign.Storable (Storable, sizeOf, alignment, peek, poke, pokeByteOff, peekByteOff, ) data T = Cons { T -> T source :: !Addr.T , T -> T dest :: !Addr.T } deriving (Int -> T -> ShowS [T] -> ShowS T -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [T] -> ShowS $cshowList :: [T] -> ShowS show :: T -> String $cshow :: T -> String showsPrec :: Int -> T -> ShowS $cshowsPrec :: Int -> T -> ShowS Show,T -> T -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: T -> T -> Bool $c/= :: T -> T -> Bool == :: T -> T -> Bool $c== :: T -> T -> Bool Eq,Eq T T -> T -> Bool T -> T -> Ordering T -> T -> T forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: T -> T -> T $cmin :: T -> T -> T max :: T -> T -> T $cmax :: T -> T -> T >= :: T -> T -> Bool $c>= :: T -> T -> Bool > :: T -> T -> Bool $c> :: T -> T -> Bool <= :: T -> T -> Bool $c<= :: T -> T -> Bool < :: T -> T -> Bool $c< :: T -> T -> Bool compare :: T -> T -> Ordering $ccompare :: T -> T -> Ordering Ord) instance Storable T where sizeOf :: T -> Int sizeOf T _ = (Int 4) {-# LINE 19 "src/Sound/ALSA/Sequencer/Marshal/Connect.hsc" #-} alignment _ = 1 {-# LINE 20 "src/Sound/ALSA/Sequencer/Marshal/Connect.hsc" #-} peek p = do s <- (\hsc_ptr -> peekByteOff hsc_ptr 0) p {-# LINE 21 "src/Sound/ALSA/Sequencer/Marshal/Connect.hsc" #-} d <- (\hsc_ptr -> peekByteOff hsc_ptr 2) p {-# LINE 22 "src/Sound/ALSA/Sequencer/Marshal/Connect.hsc" #-} return Cons { source = s, dest = d } poke :: Ptr T -> T -> IO () poke Ptr T p T v = (\Ptr T hsc_ptr -> forall a b. Storable a => Ptr b -> Int -> a -> IO () pokeByteOff Ptr T hsc_ptr Int 0) Ptr T p (T -> T source T v) {-# LINE 24 "src/Sound/ALSA/Sequencer/Marshal/Connect.hsc" #-} forall (m :: * -> *) a b. Monad m => m a -> m b -> m b >> (\Ptr T hsc_ptr -> forall a b. Storable a => Ptr b -> Int -> a -> IO () pokeByteOff Ptr T hsc_ptr Int 2) Ptr T p (T -> T dest T v) {-# LINE 25 "src/Sound/ALSA/Sequencer/Marshal/Connect.hsc" #-}