jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AnalyserOptions.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webaudio-1.1 (webref). Do not edit.
module JSDOM.Generated.AnalyserOptions
(newAnalyserOptions, setFftSize, getFftSize, getFftSizeUnsafe, getFftSizeUnchecked, setMaxDecibels, getMaxDecibels, getMaxDecibelsUnsafe, getMaxDecibelsUnchecked, setMinDecibels, getMinDecibels, getMinDecibelsUnsafe, getMinDecibelsUnchecked, setSmoothingTimeConstant, getSmoothingTimeConstant, getSmoothingTimeConstantUnsafe, getSmoothingTimeConstantUnchecked, AnalyserOptions(..), gTypeAnalyserOptions)
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://webaudio.github.io/web-audio-api/#AnalyserOptions AnalyserOptions specification>
newAnalyserOptions :: (MonadDOM m) => m AnalyserOptions
newAnalyserOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-fftsize AnalyserOptions.fftSize specification>
setFftSize :: (MonadDOM m) => AnalyserOptions -> Word -> m ()
setFftSize self val = liftDOM (void (self ^. jss "fftSize" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-fftsize AnalyserOptions.fftSize specification>
getFftSize :: (MonadDOM m) => AnalyserOptions -> m (Maybe Word)
getFftSize self = liftDOM (((self ^. js "fftSize") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-fftsize AnalyserOptions.fftSize specification>
getFftSizeUnsafe :: (MonadDOM m, HasCallStack) => AnalyserOptions -> m Word
getFftSizeUnsafe self = liftDOM ((((self ^. js "fftSize") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-fftsize AnalyserOptions.fftSize specification>
getFftSizeUnchecked :: (MonadDOM m) => AnalyserOptions -> m Word
getFftSizeUnchecked self = liftDOM ((P.round <$> ((self ^. js "fftSize") >>= valToNumber)))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-maxdecibels AnalyserOptions.maxDecibels specification>
setMaxDecibels :: (MonadDOM m) => AnalyserOptions -> Double -> m ()
setMaxDecibels self val = liftDOM (void (self ^. jss "maxDecibels" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-maxdecibels AnalyserOptions.maxDecibels specification>
getMaxDecibels :: (MonadDOM m) => AnalyserOptions -> m (Maybe Double)
getMaxDecibels self = liftDOM (((self ^. js "maxDecibels") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-maxdecibels AnalyserOptions.maxDecibels specification>
getMaxDecibelsUnsafe :: (MonadDOM m, HasCallStack) => AnalyserOptions -> m Double
getMaxDecibelsUnsafe self = liftDOM ((((self ^. js "maxDecibels") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-maxdecibels AnalyserOptions.maxDecibels specification>
getMaxDecibelsUnchecked :: (MonadDOM m) => AnalyserOptions -> m Double
getMaxDecibelsUnchecked self = liftDOM (((self ^. js "maxDecibels") >>= valToNumber))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-mindecibels AnalyserOptions.minDecibels specification>
setMinDecibels :: (MonadDOM m) => AnalyserOptions -> Double -> m ()
setMinDecibels self val = liftDOM (void (self ^. jss "minDecibels" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-mindecibels AnalyserOptions.minDecibels specification>
getMinDecibels :: (MonadDOM m) => AnalyserOptions -> m (Maybe Double)
getMinDecibels self = liftDOM (((self ^. js "minDecibels") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-mindecibels AnalyserOptions.minDecibels specification>
getMinDecibelsUnsafe :: (MonadDOM m, HasCallStack) => AnalyserOptions -> m Double
getMinDecibelsUnsafe self = liftDOM ((((self ^. js "minDecibels") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-mindecibels AnalyserOptions.minDecibels specification>
getMinDecibelsUnchecked :: (MonadDOM m) => AnalyserOptions -> m Double
getMinDecibelsUnchecked self = liftDOM (((self ^. js "minDecibels") >>= valToNumber))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-smoothingtimeconstant AnalyserOptions.smoothingTimeConstant specification>
setSmoothingTimeConstant :: (MonadDOM m) => AnalyserOptions -> Double -> m ()
setSmoothingTimeConstant self val = liftDOM (void (self ^. jss "smoothingTimeConstant" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-smoothingtimeconstant AnalyserOptions.smoothingTimeConstant specification>
getSmoothingTimeConstant :: (MonadDOM m) => AnalyserOptions -> m (Maybe Double)
getSmoothingTimeConstant self = liftDOM (((self ^. js "smoothingTimeConstant") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-smoothingtimeconstant AnalyserOptions.smoothingTimeConstant specification>
getSmoothingTimeConstantUnsafe :: (MonadDOM m, HasCallStack) => AnalyserOptions -> m Double
getSmoothingTimeConstantUnsafe self = liftDOM ((((self ^. js "smoothingTimeConstant") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-analyseroptions-smoothingtimeconstant AnalyserOptions.smoothingTimeConstant specification>
getSmoothingTimeConstantUnchecked :: (MonadDOM m) => AnalyserOptions -> m Double
getSmoothingTimeConstantUnchecked self = liftDOM (((self ^. js "smoothingTimeConstant") >>= valToNumber))