jsaddle-dom-0.10.0.0: src/JSDOM/Generated/VideoDecoder.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.VideoDecoder
(newVideoDecoder, close, configure, decode, flush, reset, isConfigSupported, isConfigSupported_, getState, getDecodeQueueSize, dequeue, VideoDecoder(..), gTypeVideoDecoder)
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/VideoDecoder/VideoDecoder MDN VideoDecoder. documentation>
newVideoDecoder :: (MonadDOM m) => VideoDecoderInit -> m VideoDecoder
newVideoDecoder init = liftDOM (((new (jsg "VideoDecoder") [toJSVal init]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/close MDN VideoDecoder.close documentation>
close :: (MonadDOM m) => VideoDecoder -> m ()
close self = liftDOM (void (self ^. jsf "close" ()))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/configure MDN VideoDecoder.configure documentation>
configure :: (MonadDOM m) => VideoDecoder -> VideoDecoderConfig -> m ()
configure self config = liftDOM (void (self ^. jsf "configure" [toJSVal config]))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/decode MDN VideoDecoder.decode documentation>
decode :: (MonadDOM m) => VideoDecoder -> EncodedVideoChunk -> m ()
decode self chunk = liftDOM (void (self ^. jsf "decode" [toJSVal chunk]))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/flush MDN VideoDecoder.flush documentation>
flush :: (MonadDOM m) => VideoDecoder -> m ()
flush self = liftDOM (void (((self ^. jsf "flush" ()) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/reset MDN VideoDecoder.reset documentation>
reset :: (MonadDOM m) => VideoDecoder -> m ()
reset self = liftDOM (void (self ^. jsf "reset" ()))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/isConfigSupported_static MDN VideoDecoder.isConfigSupported documentation>
isConfigSupported :: (MonadDOM m) => VideoDecoderConfig -> m VideoDecoderSupport
isConfigSupported config = liftDOM ((((((jsg "VideoDecoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/isConfigSupported_static MDN VideoDecoder.isConfigSupported documentation>
isConfigSupported_ :: (MonadDOM m) => VideoDecoderConfig -> m ()
isConfigSupported_ config = liftDOM (void ((((jsg "VideoDecoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/state MDN VideoDecoder.state documentation>
getState :: (MonadDOM m) => VideoDecoder -> m CodecState
getState self = liftDOM (((self ^. js "state") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/VideoDecoder/decodeQueueSize MDN VideoDecoder.decodeQueueSize documentation>
getDecodeQueueSize :: (MonadDOM m) => VideoDecoder -> m Word
getDecodeQueueSize self = liftDOM ((P.round <$> ((self ^. js "decodeQueueSize") >>= valToNumber)))
-- | <https://w3c.github.io/webcodecs/#dom-videodecoder-ondequeue dequeue event>
dequeue :: EventName VideoDecoder Event
dequeue = unsafeEventName (toJSString "dequeue")