module Sound.ALSA.Sequencer.Marshal.RealTime where
import qualified Sound.ALSA.Sequencer.Utility as U
import Foreign.Storable
(Storable, sizeOf, alignment, peek, poke, pokeByteOff, peekByteOff, )
import Data.Word (Word32, )
data T = Cons
{ secs :: !Word32
, nano :: !Word32
}
instance Show T where
showsPrec prec (Cons s n) =
U.showsRecord prec "RealTime" [U.showsField s, U.showsField n]
instance Storable T where
sizeOf _ = (8)
alignment _ = 4
peek p = do s <- (\hsc_ptr -> peekByteOff hsc_ptr 0) p
n <- (\hsc_ptr -> peekByteOff hsc_ptr 4) p
return Cons { secs = s, nano = n }
poke p v = (\hsc_ptr -> pokeByteOff hsc_ptr 0) p (secs v)
>> (\hsc_ptr -> pokeByteOff hsc_ptr 4) p (nano v)