packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AnalyserNode.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.AnalyserNode
       (newAnalyserNode, getByteFrequencyData, getByteTimeDomainData, getFloatFrequencyData, getFloatTimeDomainData, setFftSize, getFftSize, getFrequencyBinCount, setMinDecibels, getMinDecibels, setMaxDecibels, getMaxDecibels, setSmoothingTimeConstant, getSmoothingTimeConstant, AnalyserNode(..), gTypeAnalyserNode)
       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/AnalyserNode/AnalyserNode MDN AnalyserNode. documentation>
newAnalyserNode :: (MonadDOM m, IsBaseAudioContext context) => context -> Maybe AnalyserOptions -> m AnalyserNode
newAnalyserNode context options = liftDOM (((new (jsg "AnalyserNode") [toJSVal context, P.maybe (P.return jsUndefined) toJSVal options]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteFrequencyData MDN AnalyserNode.getByteFrequencyData documentation>
getByteFrequencyData :: (MonadDOM m, IsUint8Array array) => AnalyserNode -> array -> m ()
getByteFrequencyData self array = liftDOM (void (self ^. jsf "getByteFrequencyData" [toJSVal array]))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteTimeDomainData MDN AnalyserNode.getByteTimeDomainData documentation>
getByteTimeDomainData :: (MonadDOM m, IsUint8Array array) => AnalyserNode -> array -> m ()
getByteTimeDomainData self array = liftDOM (void (self ^. jsf "getByteTimeDomainData" [toJSVal array]))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatFrequencyData MDN AnalyserNode.getFloatFrequencyData documentation>
getFloatFrequencyData :: (MonadDOM m, IsFloat32Array array) => AnalyserNode -> array -> m ()
getFloatFrequencyData self array = liftDOM (void (self ^. jsf "getFloatFrequencyData" [toJSVal array]))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatTimeDomainData MDN AnalyserNode.getFloatTimeDomainData documentation>
getFloatTimeDomainData :: (MonadDOM m, IsFloat32Array array) => AnalyserNode -> array -> m ()
getFloatTimeDomainData self array = liftDOM (void (self ^. jsf "getFloatTimeDomainData" [toJSVal array]))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/fftSize MDN AnalyserNode.fftSize documentation>
setFftSize :: (MonadDOM m) => AnalyserNode -> Word -> m ()
setFftSize self val = liftDOM (void (self ^. jss "fftSize" (toJSVal val)))

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

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

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/minDecibels MDN AnalyserNode.minDecibels documentation>
setMinDecibels :: (MonadDOM m) => AnalyserNode -> Double -> m ()
setMinDecibels self val = liftDOM (void (self ^. jss "minDecibels" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/minDecibels MDN AnalyserNode.minDecibels documentation>
getMinDecibels :: (MonadDOM m) => AnalyserNode -> m Double
getMinDecibels self = liftDOM (((self ^. js "minDecibels") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/maxDecibels MDN AnalyserNode.maxDecibels documentation>
setMaxDecibels :: (MonadDOM m) => AnalyserNode -> Double -> m ()
setMaxDecibels self val = liftDOM (void (self ^. jss "maxDecibels" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/maxDecibels MDN AnalyserNode.maxDecibels documentation>
getMaxDecibels :: (MonadDOM m) => AnalyserNode -> m Double
getMaxDecibels self = liftDOM (((self ^. js "maxDecibels") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/smoothingTimeConstant MDN AnalyserNode.smoothingTimeConstant documentation>
setSmoothingTimeConstant :: (MonadDOM m) => AnalyserNode -> Double -> m ()
setSmoothingTimeConstant self val = liftDOM (void (self ^. jss "smoothingTimeConstant" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/AnalyserNode/smoothingTimeConstant MDN AnalyserNode.smoothingTimeConstant documentation>
getSmoothingTimeConstant :: (MonadDOM m) => AnalyserNode -> m Double
getSmoothingTimeConstant self = liftDOM (((self ^. js "smoothingTimeConstant") >>= valToNumber))