jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AudioEncoderConfig.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.AudioEncoderConfig
(newAudioEncoderConfig, setCodec, getCodec, setSampleRate, getSampleRate, setNumberOfChannels, getNumberOfChannels, setBitrate, getBitrate, getBitrateUnsafe, getBitrateUnchecked, setBitrateMode, getBitrateMode, getBitrateModeUnsafe, getBitrateModeUnchecked, setAac, getAac, getAacUnsafe, getAacUnchecked, setFlac, getFlac, getFlacUnsafe, getFlacUnchecked, setOpus, getOpus, getOpusUnsafe, getOpusUnchecked, AudioEncoderConfig(..), gTypeAudioEncoderConfig)
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-audioencoderconfig AudioEncoderConfig specification>
newAudioEncoderConfig :: (MonadDOM m, ToJSString codec) => codec -> Word -> Word -> m AudioEncoderConfig
newAudioEncoderConfig 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-audioencoderconfig-codec AudioEncoderConfig.codec specification>
setCodec :: (MonadDOM m, ToJSString val) => AudioEncoderConfig -> val -> m ()
setCodec self val = liftDOM (void (self ^. jss "codec" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-codec AudioEncoderConfig.codec specification>
getCodec :: (MonadDOM m, FromJSString result) => AudioEncoderConfig -> m result
getCodec self = liftDOM (((self ^. js "codec") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-samplerate AudioEncoderConfig.sampleRate specification>
setSampleRate :: (MonadDOM m) => AudioEncoderConfig -> Word -> m ()
setSampleRate self val = liftDOM (void (self ^. jss "sampleRate" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-samplerate AudioEncoderConfig.sampleRate specification>
getSampleRate :: (MonadDOM m) => AudioEncoderConfig -> m Word
getSampleRate self = liftDOM ((P.round <$> ((self ^. js "sampleRate") >>= valToNumber)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-numberofchannels AudioEncoderConfig.numberOfChannels specification>
setNumberOfChannels :: (MonadDOM m) => AudioEncoderConfig -> Word -> m ()
setNumberOfChannels self val = liftDOM (void (self ^. jss "numberOfChannels" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-numberofchannels AudioEncoderConfig.numberOfChannels specification>
getNumberOfChannels :: (MonadDOM m) => AudioEncoderConfig -> m Word
getNumberOfChannels self = liftDOM ((P.round <$> ((self ^. js "numberOfChannels") >>= valToNumber)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitrate AudioEncoderConfig.bitrate specification>
setBitrate :: (MonadDOM m) => AudioEncoderConfig -> Word53 -> m ()
setBitrate self val = liftDOM (void (self ^. jss "bitrate" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitrate AudioEncoderConfig.bitrate specification>
getBitrate :: (MonadDOM m) => AudioEncoderConfig -> m (Maybe Word53)
getBitrate self = liftDOM (((self ^. js "bitrate") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitrate AudioEncoderConfig.bitrate specification>
getBitrateUnsafe :: (MonadDOM m, HasCallStack) => AudioEncoderConfig -> m Word53
getBitrateUnsafe self = liftDOM ((((self ^. js "bitrate") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitrate AudioEncoderConfig.bitrate specification>
getBitrateUnchecked :: (MonadDOM m) => AudioEncoderConfig -> m Word53
getBitrateUnchecked self = liftDOM (((self ^. js "bitrate") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitratemode AudioEncoderConfig.bitrateMode specification>
setBitrateMode :: (MonadDOM m) => AudioEncoderConfig -> BitrateMode -> m ()
setBitrateMode self val = liftDOM (void (self ^. jss "bitrateMode" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitratemode AudioEncoderConfig.bitrateMode specification>
getBitrateMode :: (MonadDOM m) => AudioEncoderConfig -> m (Maybe BitrateMode)
getBitrateMode self = liftDOM (((self ^. js "bitrateMode") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitratemode AudioEncoderConfig.bitrateMode specification>
getBitrateModeUnsafe :: (MonadDOM m, HasCallStack) => AudioEncoderConfig -> m BitrateMode
getBitrateModeUnsafe self = liftDOM ((((self ^. js "bitrateMode") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/webcodecs/#dom-audioencoderconfig-bitratemode AudioEncoderConfig.bitrateMode specification>
getBitrateModeUnchecked :: (MonadDOM m) => AudioEncoderConfig -> m BitrateMode
getBitrateModeUnchecked self = liftDOM (((self ^. js "bitrateMode") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/aac_codec_registration.html#dom-audioencoderconfig-aac AudioEncoderConfig.aac specification>
setAac :: (MonadDOM m) => AudioEncoderConfig -> AacEncoderConfig -> m ()
setAac self val = liftDOM (void (self ^. jss "aac" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/aac_codec_registration.html#dom-audioencoderconfig-aac AudioEncoderConfig.aac specification>
getAac :: (MonadDOM m) => AudioEncoderConfig -> m (Maybe AacEncoderConfig)
getAac self = liftDOM (((self ^. js "aac") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/aac_codec_registration.html#dom-audioencoderconfig-aac AudioEncoderConfig.aac specification>
getAacUnsafe :: (MonadDOM m, HasCallStack) => AudioEncoderConfig -> m AacEncoderConfig
getAacUnsafe self = liftDOM ((((self ^. js "aac") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/webcodecs/aac_codec_registration.html#dom-audioencoderconfig-aac AudioEncoderConfig.aac specification>
getAacUnchecked :: (MonadDOM m) => AudioEncoderConfig -> m AacEncoderConfig
getAacUnchecked self = liftDOM (((self ^. js "aac") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/flac_codec_registration.html#dom-audioencoderconfig-flac AudioEncoderConfig.flac specification>
setFlac :: (MonadDOM m) => AudioEncoderConfig -> FlacEncoderConfig -> m ()
setFlac self val = liftDOM (void (self ^. jss "flac" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/flac_codec_registration.html#dom-audioencoderconfig-flac AudioEncoderConfig.flac specification>
getFlac :: (MonadDOM m) => AudioEncoderConfig -> m (Maybe FlacEncoderConfig)
getFlac self = liftDOM (((self ^. js "flac") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/flac_codec_registration.html#dom-audioencoderconfig-flac AudioEncoderConfig.flac specification>
getFlacUnsafe :: (MonadDOM m, HasCallStack) => AudioEncoderConfig -> m FlacEncoderConfig
getFlacUnsafe self = liftDOM ((((self ^. js "flac") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/webcodecs/flac_codec_registration.html#dom-audioencoderconfig-flac AudioEncoderConfig.flac specification>
getFlacUnchecked :: (MonadDOM m) => AudioEncoderConfig -> m FlacEncoderConfig
getFlacUnchecked self = liftDOM (((self ^. js "flac") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/opus_codec_registration.html#dom-audioencoderconfig-opus AudioEncoderConfig.opus specification>
setOpus :: (MonadDOM m) => AudioEncoderConfig -> OpusEncoderConfig -> m ()
setOpus self val = liftDOM (void (self ^. jss "opus" (toJSVal val)))
-- | <https://w3c.github.io/webcodecs/opus_codec_registration.html#dom-audioencoderconfig-opus AudioEncoderConfig.opus specification>
getOpus :: (MonadDOM m) => AudioEncoderConfig -> m (Maybe OpusEncoderConfig)
getOpus self = liftDOM (((self ^. js "opus") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webcodecs/opus_codec_registration.html#dom-audioencoderconfig-opus AudioEncoderConfig.opus specification>
getOpusUnsafe :: (MonadDOM m, HasCallStack) => AudioEncoderConfig -> m OpusEncoderConfig
getOpusUnsafe self = liftDOM ((((self ^. js "opus") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/webcodecs/opus_codec_registration.html#dom-audioencoderconfig-opus AudioEncoderConfig.opus specification>
getOpusUnchecked :: (MonadDOM m) => AudioEncoderConfig -> m OpusEncoderConfig
getOpusUnchecked self = liftDOM (((self ^. js "opus") >>= fromJSValUnchecked))