{-# 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" #-}