jsaddle-dom-0.10.0.0: src/JSDOM/Generated/VideoEncoder.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.VideoEncoder
(newVideoEncoder, close, configure, encode, flush, reset, isConfigSupported, isConfigSupported_, getState, getEncodeQueueSize, dequeue, VideoEncoder(..), gTypeVideoEncoder)
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/VideoEncoder/VideoEncoder MDN VideoEncoder. documentation>
newVideoEncoder :: (MonadDOM m) => VideoEncoderInit -> m VideoEncoder
newVideoEncoder init = liftDOM (((new (jsg "VideoEncoder") [toJSVal init]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/close MDN VideoEncoder.close documentation>
close :: (MonadDOM m) => VideoEncoder -> m ()
close self = liftDOM (void (self ^. jsf "close" ()))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/configure MDN VideoEncoder.configure documentation>
configure :: (MonadDOM m) => VideoEncoder -> VideoEncoderConfig -> m ()
configure self config = liftDOM (void (self ^. jsf "configure" [toJSVal config]))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/encode MDN VideoEncoder.encode documentation>
encode :: (MonadDOM m) => VideoEncoder -> VideoFrame -> Maybe VideoEncoderEncodeOptions -> m ()
encode self frame options = liftDOM (void (self ^. jsf "encode" [toJSVal frame, P.maybe (P.return jsUndefined) toJSVal options]))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/flush MDN VideoEncoder.flush documentation>
flush :: (MonadDOM m) => VideoEncoder -> m ()
flush self = liftDOM (void (((self ^. jsf "flush" ()) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/reset MDN VideoEncoder.reset documentation>
reset :: (MonadDOM m) => VideoEncoder -> m ()
reset self = liftDOM (void (self ^. jsf "reset" ()))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/isConfigSupported_static MDN VideoEncoder.isConfigSupported documentation>
isConfigSupported :: (MonadDOM m) => VideoEncoderConfig -> m VideoEncoderSupport
isConfigSupported config = liftDOM ((((((jsg "VideoEncoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/isConfigSupported_static MDN VideoEncoder.isConfigSupported documentation>
isConfigSupported_ :: (MonadDOM m) => VideoEncoderConfig -> m ()
isConfigSupported_ config = liftDOM (void ((((jsg "VideoEncoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/state MDN VideoEncoder.state documentation>
getState :: (MonadDOM m) => VideoEncoder -> m CodecState
getState self = liftDOM (((self ^. js "state") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/VideoEncoder/encodeQueueSize MDN VideoEncoder.encodeQueueSize documentation>
getEncodeQueueSize :: (MonadDOM m) => VideoEncoder -> m Word
getEncodeQueueSize self = liftDOM ((P.round <$> ((self ^. js "encodeQueueSize") >>= valToNumber)))
-- | <https://w3c.github.io/webcodecs/#dom-videoencoder-ondequeue dequeue event>
dequeue :: EventName VideoEncoder Event
dequeue = unsafeEventName (toJSString "dequeue")