{-# LINE 1 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-} module Sound.ALSA.Sequencer.Marshal.RealTime where import qualified Sound.ALSA.Sequencer.Utility as U import qualified Data.Word as Word import Foreign.Storable (Storable, sizeOf, alignment, peek, poke, pokeByteOff, peekByteOff, ) data T = Cons { T -> Word32 secs :: !(Word.Word32) {-# LINE 15 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-} , nano :: !(Word.Word32) {-# LINE 16 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-} } deriving (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) instance Show T where showsPrec :: Int -> T -> ShowS showsPrec Int prec (Cons Word32 s Word32 n) = Int -> String -> [ShowS] -> ShowS U.showsRecord Int prec String "RealTime" [forall a. Show a => a -> ShowS U.showsField Word32 s, forall a. Show a => a -> ShowS U.showsField Word32 n] instance Storable T where sizeOf :: T -> Int sizeOf T _ = (Int 8) {-# LINE 26 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-} alignment _ = 4 {-# LINE 27 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-} peek p = do s <- (\hsc_ptr -> peekByteOff hsc_ptr 0) p {-# LINE 28 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-} n <- (\hsc_ptr -> peekByteOff hsc_ptr 4) p {-# LINE 29 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-} return Cons { secs = s, nano = n } 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 -> Word32 secs T v) {-# LINE 31 "src/Sound/ALSA/Sequencer/Marshal/RealTime.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 4) Ptr T p (T -> Word32 nano T v) {-# LINE 32 "src/Sound/ALSA/Sequencer/Marshal/RealTime.hsc" #-}