module Sound.ALSA.Sequencer.Marshal.RealTime where #include 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 _ = #{size snd_seq_real_time_t} alignment _ = 4 -- XXX peek p = do s <- #{peek snd_seq_real_time_t, tv_sec} p n <- #{peek snd_seq_real_time_t, tv_nsec} p return Cons { secs = s, nano = n } poke p v = #{poke snd_seq_real_time_t, tv_sec} p (secs v) >> #{poke snd_seq_real_time_t, tv_nsec} p (nano v)