packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/OscillatorNode.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.OscillatorNode
       (newOscillatorNode, setPeriodicWave, setType, getType, getFrequency, getDetune, OscillatorNode(..), gTypeOscillatorNode)
       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/OscillatorNode/OscillatorNode MDN OscillatorNode. documentation>
newOscillatorNode :: (MonadDOM m, IsBaseAudioContext context) => context -> Maybe OscillatorOptions -> m OscillatorNode
newOscillatorNode context options = liftDOM (((new (jsg "OscillatorNode") [toJSVal context, P.maybe (P.return jsUndefined) toJSVal options]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/OscillatorNode/setPeriodicWave MDN OscillatorNode.setPeriodicWave documentation>
setPeriodicWave :: (MonadDOM m) => OscillatorNode -> PeriodicWave -> m ()
setPeriodicWave self periodicWave = liftDOM (void (self ^. jsf "setPeriodicWave" [toJSVal periodicWave]))

-- | <https://developer.mozilla.org/docs/Web/API/OscillatorNode/type MDN OscillatorNode.type documentation>
setType :: (MonadDOM m) => OscillatorNode -> OscillatorType -> m ()
setType self val = liftDOM (void (self ^. jss "type" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/OscillatorNode/type MDN OscillatorNode.type documentation>
getType :: (MonadDOM m) => OscillatorNode -> m OscillatorType
getType self = liftDOM (((self ^. js "type") >>= fromJSValUnchecked))

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

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