packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AudioDecoder.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.AudioDecoder
       (newAudioDecoder, close, configure, decode, flush, reset, isConfigSupported, isConfigSupported_, getState, getDecodeQueueSize, dequeue, AudioDecoder(..), gTypeAudioDecoder)
       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/AudioDecoder/AudioDecoder MDN AudioDecoder. documentation>
newAudioDecoder :: (MonadDOM m) => AudioDecoderInit -> m AudioDecoder
newAudioDecoder init = liftDOM (((new (jsg "AudioDecoder") [toJSVal init]) >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure MDN AudioDecoder.configure documentation>
configure :: (MonadDOM m) => AudioDecoder -> AudioDecoderConfig -> m ()
configure self config = liftDOM (void (self ^. jsf "configure" [toJSVal config]))

-- | <https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode MDN AudioDecoder.decode documentation>
decode :: (MonadDOM m) => AudioDecoder -> EncodedAudioChunk -> m ()
decode self chunk = liftDOM (void (self ^. jsf "decode" [toJSVal chunk]))

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

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

-- | <https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static MDN AudioDecoder.isConfigSupported documentation>
isConfigSupported :: (MonadDOM m) => AudioDecoderConfig -> m AudioDecoderSupport
isConfigSupported config = liftDOM ((((((jsg "AudioDecoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static MDN AudioDecoder.isConfigSupported documentation>
isConfigSupported_ :: (MonadDOM m) => AudioDecoderConfig -> m ()
isConfigSupported_ config = liftDOM (void ((((jsg "AudioDecoder") ^. jsf "isConfigSupported" [toJSVal config]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/AudioDecoder/state MDN AudioDecoder.state documentation>
getState :: (MonadDOM m) => AudioDecoder -> m CodecState
getState self = liftDOM (((self ^. js "state") >>= fromJSValUnchecked))

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

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoder-ondequeue dequeue event>
dequeue :: EventName AudioDecoder Event
dequeue = unsafeEventName (toJSString "dequeue")