packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/IIRFilterOptions.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.IIRFilterOptions
       (newIIRFilterOptions, setFeedforward, getFeedforward, setFeedback, getFeedback, IIRFilterOptions(..), gTypeIIRFilterOptions)
       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/#IIRFilterOptions IIRFilterOptions specification>
newIIRFilterOptions :: (MonadDOM m) => [Double] -> [Double] -> m IIRFilterOptions
newIIRFilterOptions feedforward feedback = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "feedforward" (toJSVal feedforward)) P.>> (o ^. jss "feedback" (toJSVal feedback)) P.>> P.return o)) >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-audio-api/#dom-iirfilteroptions-feedforward IIRFilterOptions.feedforward specification>
setFeedforward :: (MonadDOM m) => IIRFilterOptions -> [Double] -> m ()
setFeedforward self val = liftDOM (void (self ^. jss "feedforward" (toJSVal val)))

-- | <https://webaudio.github.io/web-audio-api/#dom-iirfilteroptions-feedforward IIRFilterOptions.feedforward specification>
getFeedforward :: (MonadDOM m) => IIRFilterOptions -> m [Double]
getFeedforward self = liftDOM (((self ^. js "feedforward") >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-audio-api/#dom-iirfilteroptions-feedback IIRFilterOptions.feedback specification>
setFeedback :: (MonadDOM m) => IIRFilterOptions -> [Double] -> m ()
setFeedback self val = liftDOM (void (self ^. jss "feedback" (toJSVal val)))

-- | <https://webaudio.github.io/web-audio-api/#dom-iirfilteroptions-feedback IIRFilterOptions.feedback specification>
getFeedback :: (MonadDOM m) => IIRFilterOptions -> m [Double]
getFeedback self = liftDOM (((self ^. js "feedback") >>= fromJSValUnchecked))