packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AudioDecoderConfig.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.AudioDecoderConfig
       (newAudioDecoderConfig, setCodec, getCodec, setSampleRate, getSampleRate, setNumberOfChannels, getNumberOfChannels, setDescription, getDescription, getDescriptionUnsafe, getDescriptionUnchecked, AudioDecoderConfig(..), gTypeAudioDecoderConfig)
       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://w3c.github.io/webcodecs/#dictdef-audiodecoderconfig AudioDecoderConfig specification>
newAudioDecoderConfig :: (MonadDOM m, ToJSString codec) => codec -> Word -> Word -> m AudioDecoderConfig
newAudioDecoderConfig codec sampleRate numberOfChannels = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "codec" (toJSVal codec)) P.>> (o ^. jss "sampleRate" (toJSVal sampleRate)) P.>> (o ^. jss "numberOfChannels" (toJSVal numberOfChannels)) P.>> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-codec AudioDecoderConfig.codec specification>
setCodec :: (MonadDOM m, ToJSString val) => AudioDecoderConfig -> val -> m ()
setCodec self val = liftDOM (void (self ^. jss "codec" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-codec AudioDecoderConfig.codec specification>
getCodec :: (MonadDOM m, FromJSString result) => AudioDecoderConfig -> m result
getCodec self = liftDOM (((self ^. js "codec") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-samplerate AudioDecoderConfig.sampleRate specification>
setSampleRate :: (MonadDOM m) => AudioDecoderConfig -> Word -> m ()
setSampleRate self val = liftDOM (void (self ^. jss "sampleRate" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-samplerate AudioDecoderConfig.sampleRate specification>
getSampleRate :: (MonadDOM m) => AudioDecoderConfig -> m Word
getSampleRate self = liftDOM ((P.round <$> ((self ^. js "sampleRate") >>= valToNumber)))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-numberofchannels AudioDecoderConfig.numberOfChannels specification>
setNumberOfChannels :: (MonadDOM m) => AudioDecoderConfig -> Word -> m ()
setNumberOfChannels self val = liftDOM (void (self ^. jss "numberOfChannels" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-numberofchannels AudioDecoderConfig.numberOfChannels specification>
getNumberOfChannels :: (MonadDOM m) => AudioDecoderConfig -> m Word
getNumberOfChannels self = liftDOM ((P.round <$> ((self ^. js "numberOfChannels") >>= valToNumber)))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-description AudioDecoderConfig.description specification>
setDescription :: (MonadDOM m, IsAllowSharedBufferSource val) => AudioDecoderConfig -> val -> m ()
setDescription self val = liftDOM (void (self ^. jss "description" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-description AudioDecoderConfig.description specification>
getDescription :: (MonadDOM m) => AudioDecoderConfig -> m (Maybe AllowSharedBufferSource)
getDescription self = liftDOM (((self ^. js "description") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-description AudioDecoderConfig.description specification>
getDescriptionUnsafe :: (MonadDOM m, HasCallStack) => AudioDecoderConfig -> m AllowSharedBufferSource
getDescriptionUnsafe self = liftDOM ((((self ^. js "description") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webcodecs/#dom-audiodecoderconfig-description AudioDecoderConfig.description specification>
getDescriptionUnchecked :: (MonadDOM m) => AudioDecoderConfig -> m AllowSharedBufferSource
getDescriptionUnchecked self = liftDOM (((self ^. js "description") >>= fromJSValUnchecked))