jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AudioEncoder.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.AudioEncoder
(newAudioEncoder, close, configure, encode, flush, reset, isConfigSupported, isConfigSupported_, getState, getEncodeQueueSize, dequeue, AudioEncoder(..), gTypeAudioEncoder)
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/AudioEncoder/AudioEncoder MDN AudioEncoder. documentation>
newAudioEncoder :: (MonadDOM m) => AudioEncoderInit -> m AudioEncoder
newAudioEncoder init = liftDOM (((new (jsg "AudioEncoder") [toJSVal init]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/close MDN AudioEncoder.close documentation>
close :: (MonadDOM m) => AudioEncoder -> m ()
close self = liftDOM (void (self ^. jsf "close" ()))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure MDN AudioEncoder.configure documentation>
configure :: (MonadDOM m) => AudioEncoder -> AudioEncoderConfig -> m ()
configure self config = liftDOM (void (self ^. jsf "configure" [toJSVal config]))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode MDN AudioEncoder.encode documentation>
encode :: (MonadDOM m) => AudioEncoder -> AudioData -> m ()
encode self data' = liftDOM (void (self ^. jsf "encode" [toJSVal data']))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush MDN AudioEncoder.flush documentation>
flush :: (MonadDOM m) => AudioEncoder -> m ()
flush self = liftDOM (void (((self ^. jsf "flush" ()) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset MDN AudioEncoder.reset documentation>
reset :: (MonadDOM m) => AudioEncoder -> m ()
reset self = liftDOM (void (self ^. jsf "reset" ()))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static MDN AudioEncoder.isConfigSupported documentation>
isConfigSupported :: (MonadDOM m) => AudioEncoderConfig -> m AudioEncoderSupport
isConfigSupported config = liftDOM ((((((jsg "AudioEncoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static MDN AudioEncoder.isConfigSupported documentation>
isConfigSupported_ :: (MonadDOM m) => AudioEncoderConfig -> m ()
isConfigSupported_ config = liftDOM (void ((((jsg "AudioEncoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/state MDN AudioEncoder.state documentation>
getState :: (MonadDOM m) => AudioEncoder -> m CodecState
getState self = liftDOM (((self ^. js "state") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize MDN AudioEncoder.encodeQueueSize documentation>
getEncodeQueueSize :: (MonadDOM m) => AudioEncoder -> m Word
getEncodeQueueSize self = liftDOM ((P.round <$> ((self ^. js "encodeQueueSize") >>= valToNumber)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoder-ondequeue dequeue event>
dequeue :: EventName AudioEncoder Event
dequeue = unsafeEventName (toJSString "dequeue")