packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/VideoFrame.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webcodecs (webref). Do not edit.
module JSDOM.Generated.VideoFrame
       (newVideoFrame, newVideoFrameData', allocationSize, allocationSize_, clone, clone_, close, copyTo, copyTo_, getFormat, getFormatUnsafe, getFormatUnchecked, getCodedWidth, getCodedHeight, getCodedRect, getCodedRectUnsafe, getCodedRectUnchecked, getVisibleRect, getVisibleRectUnsafe, getVisibleRectUnchecked, getDisplayWidth, getDisplayHeight, getDuration, getDurationUnsafe, getDurationUnchecked, getTimestamp, getColorSpace, VideoFrame(..), gTypeVideoFrame)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/VideoFrame MDN VideoFrame. documentation>
newVideoFrame :: (MonadDOM m, IsCanvasImageSource image) => image -> Maybe VideoFrameInit -> m VideoFrame
newVideoFrame image init = liftDOM (((new (jsg "VideoFrame") [toJSVal image, P.maybe (P.return jsUndefined) toJSVal init]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/VideoFrame MDN VideoFrame. documentation>
newVideoFrameData' :: (MonadDOM m, IsAllowSharedBufferSource data') => data' -> VideoFrameBufferInit -> m VideoFrame
newVideoFrameData' data' init = liftDOM (((new (jsg "VideoFrame") [toJSVal data', toJSVal init]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize MDN VideoFrame.allocationSize documentation>
allocationSize :: (MonadDOM m) => VideoFrame -> Maybe VideoFrameCopyToOptions -> m Word
allocationSize self options = liftDOM ((P.round <$> ((self ^. jsf "allocationSize" [P.maybe (P.return jsUndefined) toJSVal options]) >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize MDN VideoFrame.allocationSize documentation>
allocationSize_ :: (MonadDOM m) => VideoFrame -> Maybe VideoFrameCopyToOptions -> m ()
allocationSize_ self options = liftDOM (void (self ^. jsf "allocationSize" [P.maybe (P.return jsUndefined) toJSVal options]))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/clone MDN VideoFrame.clone documentation>
clone :: (MonadDOM m) => VideoFrame -> m VideoFrame
clone self = liftDOM (((self ^. jsf "clone" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/clone MDN VideoFrame.clone documentation>
clone_ :: (MonadDOM m) => VideoFrame -> m ()
clone_ self = liftDOM (void (self ^. jsf "clone" ()))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/close MDN VideoFrame.close documentation>
close :: (MonadDOM m) => VideoFrame -> m ()
close self = liftDOM (void (self ^. jsf "close" ()))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo MDN VideoFrame.copyTo documentation>
copyTo :: (MonadDOM m, IsAllowSharedBufferSource destination) => VideoFrame -> destination -> Maybe VideoFrameCopyToOptions -> m [PlaneLayout]
copyTo self destination options = liftDOM (((((self ^. jsf "copyTo" [toJSVal destination, P.maybe (P.return jsUndefined) toJSVal options]) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo MDN VideoFrame.copyTo documentation>
copyTo_ :: (MonadDOM m, IsAllowSharedBufferSource destination) => VideoFrame -> destination -> Maybe VideoFrameCopyToOptions -> m ()
copyTo_ self destination options = liftDOM (void (((self ^. jsf "copyTo" [toJSVal destination, P.maybe (P.return jsUndefined) toJSVal options]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/format MDN VideoFrame.format documentation>
getFormat :: (MonadDOM m) => VideoFrame -> m (Maybe VideoPixelFormat)
getFormat self = liftDOM (((self ^. js "format") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/format MDN VideoFrame.format documentation>
getFormatUnsafe :: (MonadDOM m, HasCallStack) => VideoFrame -> m VideoPixelFormat
getFormatUnsafe self = liftDOM ((((self ^. js "format") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/format MDN VideoFrame.format documentation>
getFormatUnchecked :: (MonadDOM m) => VideoFrame -> m VideoPixelFormat
getFormatUnchecked self = liftDOM (((self ^. js "format") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/codedWidth MDN VideoFrame.codedWidth documentation>
getCodedWidth :: (MonadDOM m) => VideoFrame -> m Word
getCodedWidth self = liftDOM ((P.round <$> ((self ^. js "codedWidth") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/codedHeight MDN VideoFrame.codedHeight documentation>
getCodedHeight :: (MonadDOM m) => VideoFrame -> m Word
getCodedHeight self = liftDOM ((P.round <$> ((self ^. js "codedHeight") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect MDN VideoFrame.codedRect documentation>
getCodedRect :: (MonadDOM m) => VideoFrame -> m (Maybe DOMRectReadOnly)
getCodedRect self = liftDOM (((self ^. js "codedRect") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect MDN VideoFrame.codedRect documentation>
getCodedRectUnsafe :: (MonadDOM m, HasCallStack) => VideoFrame -> m DOMRectReadOnly
getCodedRectUnsafe self = liftDOM ((((self ^. js "codedRect") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect MDN VideoFrame.codedRect documentation>
getCodedRectUnchecked :: (MonadDOM m) => VideoFrame -> m DOMRectReadOnly
getCodedRectUnchecked self = liftDOM (((self ^. js "codedRect") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect MDN VideoFrame.visibleRect documentation>
getVisibleRect :: (MonadDOM m) => VideoFrame -> m (Maybe DOMRectReadOnly)
getVisibleRect self = liftDOM (((self ^. js "visibleRect") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect MDN VideoFrame.visibleRect documentation>
getVisibleRectUnsafe :: (MonadDOM m, HasCallStack) => VideoFrame -> m DOMRectReadOnly
getVisibleRectUnsafe self = liftDOM ((((self ^. js "visibleRect") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect MDN VideoFrame.visibleRect documentation>
getVisibleRectUnchecked :: (MonadDOM m) => VideoFrame -> m DOMRectReadOnly
getVisibleRectUnchecked self = liftDOM (((self ^. js "visibleRect") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/displayWidth MDN VideoFrame.displayWidth documentation>
getDisplayWidth :: (MonadDOM m) => VideoFrame -> m Word
getDisplayWidth self = liftDOM ((P.round <$> ((self ^. js "displayWidth") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/displayHeight MDN VideoFrame.displayHeight documentation>
getDisplayHeight :: (MonadDOM m) => VideoFrame -> m Word
getDisplayHeight self = liftDOM ((P.round <$> ((self ^. js "displayHeight") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/duration MDN VideoFrame.duration documentation>
getDuration :: (MonadDOM m) => VideoFrame -> m (Maybe Word53)
getDuration self = liftDOM (((self ^. js "duration") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/duration MDN VideoFrame.duration documentation>
getDurationUnsafe :: (MonadDOM m, HasCallStack) => VideoFrame -> m Word53
getDurationUnsafe self = liftDOM ((((self ^. js "duration") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/duration MDN VideoFrame.duration documentation>
getDurationUnchecked :: (MonadDOM m) => VideoFrame -> m Word53
getDurationUnchecked self = liftDOM (((self ^. js "duration") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/timestamp MDN VideoFrame.timestamp documentation>
getTimestamp :: (MonadDOM m) => VideoFrame -> m Int53
getTimestamp self = liftDOM (((self ^. js "timestamp") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/VideoFrame/colorSpace MDN VideoFrame.colorSpace documentation>
getColorSpace :: (MonadDOM m) => VideoFrame -> m VideoColorSpace
getColorSpace self = liftDOM (((self ^. js "colorSpace") >>= fromJSValUnchecked))