packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AudioContext.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.AudioContext
       (newAudioContext, newAudioContext', close, createMediaElementSource, createMediaElementSource_, createMediaStreamDestination, createMediaStreamDestination_, createMediaStreamSource, createMediaStreamSource_, getOutputTimestamp, getOutputTimestamp_, resume, suspend, getBaseLatency, getOutputLatency, AudioContext(..), gTypeAudioContext)
       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/AudioContext/AudioContext MDN AudioContext. documentation>
newAudioContext :: (MonadDOM m) => m AudioContext
newAudioContext = liftDOM (((new (jsg "AudioContext") ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/AudioContext MDN AudioContext. documentation>
newAudioContext' :: (MonadDOM m) => Maybe AudioContextOptions -> m AudioContext
newAudioContext' contextOptions = liftDOM (((new (jsg "AudioContext") [P.maybe (P.return jsUndefined) toJSVal contextOptions]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/close MDN AudioContext.close documentation>
close :: (MonadDOM m) => AudioContext -> m ()
close self = liftDOM (void (((self ^. jsf "close" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaElementSource MDN AudioContext.createMediaElementSource documentation>
createMediaElementSource :: (MonadDOM m, IsHTMLMediaElement mediaElement) => AudioContext -> mediaElement -> m MediaElementAudioSourceNode
createMediaElementSource self mediaElement = liftDOM (((self ^. jsf "createMediaElementSource" [toJSVal mediaElement]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaElementSource MDN AudioContext.createMediaElementSource documentation>
createMediaElementSource_ :: (MonadDOM m, IsHTMLMediaElement mediaElement) => AudioContext -> mediaElement -> m ()
createMediaElementSource_ self mediaElement = liftDOM (void (self ^. jsf "createMediaElementSource" [toJSVal mediaElement]))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination MDN AudioContext.createMediaStreamDestination documentation>
createMediaStreamDestination :: (MonadDOM m) => AudioContext -> m MediaStreamAudioDestinationNode
createMediaStreamDestination self = liftDOM (((self ^. jsf "createMediaStreamDestination" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination MDN AudioContext.createMediaStreamDestination documentation>
createMediaStreamDestination_ :: (MonadDOM m) => AudioContext -> m ()
createMediaStreamDestination_ self = liftDOM (void (self ^. jsf "createMediaStreamDestination" ()))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource MDN AudioContext.createMediaStreamSource documentation>
createMediaStreamSource :: (MonadDOM m) => AudioContext -> MediaStream -> m MediaStreamAudioSourceNode
createMediaStreamSource self mediaStream = liftDOM (((self ^. jsf "createMediaStreamSource" [toJSVal mediaStream]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource MDN AudioContext.createMediaStreamSource documentation>
createMediaStreamSource_ :: (MonadDOM m) => AudioContext -> MediaStream -> m ()
createMediaStreamSource_ self mediaStream = liftDOM (void (self ^. jsf "createMediaStreamSource" [toJSVal mediaStream]))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp MDN AudioContext.getOutputTimestamp documentation>
getOutputTimestamp :: (MonadDOM m) => AudioContext -> m AudioTimestamp
getOutputTimestamp self = liftDOM (((self ^. jsf "getOutputTimestamp" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp MDN AudioContext.getOutputTimestamp documentation>
getOutputTimestamp_ :: (MonadDOM m) => AudioContext -> m ()
getOutputTimestamp_ self = liftDOM (void (self ^. jsf "getOutputTimestamp" ()))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/resume MDN AudioContext.resume documentation>
resume :: (MonadDOM m) => AudioContext -> m ()
resume self = liftDOM (void (((self ^. jsf "resume" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/suspend MDN AudioContext.suspend documentation>
suspend :: (MonadDOM m) => AudioContext -> m ()
suspend self = liftDOM (void (((self ^. jsf "suspend" ()) >>= readPromise)))

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

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