packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/DynamicsCompressorNode.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.DynamicsCompressorNode
       (newDynamicsCompressorNode, getThreshold, getKnee, getRatio, getReduction, getAttack, getRelease, DynamicsCompressorNode(..), gTypeDynamicsCompressorNode)
       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/DynamicsCompressorNode/DynamicsCompressorNode MDN DynamicsCompressorNode. documentation>
newDynamicsCompressorNode :: (MonadDOM m, IsBaseAudioContext context) => context -> Maybe DynamicsCompressorOptions -> m DynamicsCompressorNode
newDynamicsCompressorNode context options = liftDOM (((new (jsg "DynamicsCompressorNode") [toJSVal context, P.maybe (P.return jsUndefined) toJSVal options]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/threshold MDN DynamicsCompressorNode.threshold documentation>
getThreshold :: (MonadDOM m) => DynamicsCompressorNode -> m AudioParam
getThreshold self = liftDOM (((self ^. js "threshold") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/knee MDN DynamicsCompressorNode.knee documentation>
getKnee :: (MonadDOM m) => DynamicsCompressorNode -> m AudioParam
getKnee self = liftDOM (((self ^. js "knee") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/ratio MDN DynamicsCompressorNode.ratio documentation>
getRatio :: (MonadDOM m) => DynamicsCompressorNode -> m AudioParam
getRatio self = liftDOM (((self ^. js "ratio") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/reduction MDN DynamicsCompressorNode.reduction documentation>
getReduction :: (MonadDOM m) => DynamicsCompressorNode -> m Float
getReduction self = liftDOM ((P.realToFrac <$> ((self ^. js "reduction") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/attack MDN DynamicsCompressorNode.attack documentation>
getAttack :: (MonadDOM m) => DynamicsCompressorNode -> m AudioParam
getAttack self = liftDOM (((self ^. js "attack") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/release MDN DynamicsCompressorNode.release documentation>
getRelease :: (MonadDOM m) => DynamicsCompressorNode -> m AudioParam
getRelease self = liftDOM (((self ^. js "release") >>= fromJSValUnchecked))