rattletrap-2.0.0: source/library/Rattletrap/KeyFrame.hs
module Rattletrap.KeyFrame where
import Rattletrap.Primitive
import qualified Data.Binary as Binary
data KeyFrame = KeyFrame
{ keyFrameTime :: Float32
-- ^ When this key frame occurs, in seconds.
, keyFrameFrame :: Word32
-- ^ The frame number of this key frame, starting from 0.
, keyFramePosition :: Word32
-- ^ The bit position of this key frame in the stream.
} deriving (Eq, Ord, Show)
getKeyFrame :: Binary.Get KeyFrame
getKeyFrame = do
time <- getFloat32
frame <- getWord32
position <- getWord32
pure (KeyFrame time frame position)
putKeyFrame :: KeyFrame -> Binary.Put
putKeyFrame keyFrame = do
putFloat32 (keyFrameTime keyFrame)
putWord32 (keyFrameFrame keyFrame)
putWord32 (keyFramePosition keyFrame)