ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/AudioContext.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webaudio-1.1 (webref). Do not edit.
module GHCJS.DOM.JSFFI.Generated.AudioContext
(js_newAudioContext, js_newAudioContext', js_close, js_createMediaElementSource, js_createMediaStreamDestination, js_createMediaStreamSource, js_getOutputTimestamp, js_resume, js_suspend, js_getBaseLatency, js_getOutputLatency, 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 GHCJS.Types (JSVal, JSString)
import GHCJS.Foreign (jsUndefined, jsNull)
import GHCJS.DOM.Types
import qualified GHCJS.DOM.Types as Types
import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import GHCJS.DOM.JSFFI.Generated.Enums
foreign import javascript safe "(() => { return new globalThis[\"AudioContext\"](); })"
js_newAudioContext :: IO AudioContext
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/AudioContext MDN AudioContext. documentation>
newAudioContext :: (MonadDOM m) => m AudioContext
newAudioContext = liftDOM ((js_newAudioContext))
foreign import javascript safe "(($1) => { return new globalThis[\"AudioContext\"]($1); })"
js_newAudioContext' :: JSVal -> IO AudioContext
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/AudioContext MDN AudioContext. documentation>
newAudioContext' :: (MonadDOM m) => Maybe AudioContextOptions -> m AudioContext
newAudioContext' contextOptions = liftDOM (((P.maybe (P.return jsUndefined) toJSVal contextOptions) >>= \a1' -> js_newAudioContext' a1'))
foreign import javascript interruptible "(($1, $c) => { return $1[\"close\"]().then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
js_close :: AudioContext -> IO (JSVal, ())
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/close MDN AudioContext.close documentation>
close :: (MonadDOM m) => AudioContext -> m ()
close self = liftDOM (void (((js_close (self)) >>= checkPromiseResult)))
foreign import javascript safe "(($1, $2) => { return $1[\"createMediaElementSource\"]($2); })"
js_createMediaElementSource :: AudioContext -> HTMLMediaElement -> IO MediaElementAudioSourceNode
-- | <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 ((js_createMediaElementSource (self) (Types.toHTMLMediaElement mediaElement)))
-- | <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 ((js_createMediaElementSource (self) (Types.toHTMLMediaElement mediaElement))))
foreign import javascript safe "(($1) => { return $1[\"createMediaStreamDestination\"](); })"
js_createMediaStreamDestination :: AudioContext -> IO MediaStreamAudioDestinationNode
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination MDN AudioContext.createMediaStreamDestination documentation>
createMediaStreamDestination :: (MonadDOM m) => AudioContext -> m MediaStreamAudioDestinationNode
createMediaStreamDestination self = liftDOM ((js_createMediaStreamDestination (self)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination MDN AudioContext.createMediaStreamDestination documentation>
createMediaStreamDestination_ :: (MonadDOM m) => AudioContext -> m ()
createMediaStreamDestination_ self = liftDOM (void ((js_createMediaStreamDestination (self))))
foreign import javascript safe "(($1, $2) => { return $1[\"createMediaStreamSource\"]($2); })"
js_createMediaStreamSource :: AudioContext -> MediaStream -> IO MediaStreamAudioSourceNode
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource MDN AudioContext.createMediaStreamSource documentation>
createMediaStreamSource :: (MonadDOM m) => AudioContext -> MediaStream -> m MediaStreamAudioSourceNode
createMediaStreamSource self mediaStream = liftDOM ((js_createMediaStreamSource (self) (mediaStream)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource MDN AudioContext.createMediaStreamSource documentation>
createMediaStreamSource_ :: (MonadDOM m) => AudioContext -> MediaStream -> m ()
createMediaStreamSource_ self mediaStream = liftDOM (void ((js_createMediaStreamSource (self) (mediaStream))))
foreign import javascript safe "(($1) => { return $1[\"getOutputTimestamp\"](); })"
js_getOutputTimestamp :: AudioContext -> IO AudioTimestamp
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp MDN AudioContext.getOutputTimestamp documentation>
getOutputTimestamp :: (MonadDOM m) => AudioContext -> m AudioTimestamp
getOutputTimestamp self = liftDOM ((js_getOutputTimestamp (self)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp MDN AudioContext.getOutputTimestamp documentation>
getOutputTimestamp_ :: (MonadDOM m) => AudioContext -> m ()
getOutputTimestamp_ self = liftDOM (void ((js_getOutputTimestamp (self))))
foreign import javascript interruptible "(($1, $c) => { return $1[\"resume\"]().then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
js_resume :: AudioContext -> IO (JSVal, ())
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/resume MDN AudioContext.resume documentation>
resume :: (MonadDOM m) => AudioContext -> m ()
resume self = liftDOM (void (((js_resume (self)) >>= checkPromiseResult)))
foreign import javascript interruptible "(($1, $c) => { return $1[\"suspend\"]().then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
js_suspend :: AudioContext -> IO (JSVal, ())
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/suspend MDN AudioContext.suspend documentation>
suspend :: (MonadDOM m) => AudioContext -> m ()
suspend self = liftDOM (void (((js_suspend (self)) >>= checkPromiseResult)))
foreign import javascript unsafe "(($1) => { return $1[\"baseLatency\"]; })"
js_getBaseLatency :: AudioContext -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/baseLatency MDN AudioContext.baseLatency documentation>
getBaseLatency :: (MonadDOM m) => AudioContext -> m Double
getBaseLatency self = liftDOM ((js_getBaseLatency (self)))
foreign import javascript unsafe "(($1) => { return $1[\"outputLatency\"]; })"
js_getOutputLatency :: AudioContext -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/AudioContext/outputLatency MDN AudioContext.outputLatency documentation>
getOutputLatency :: (MonadDOM m) => AudioContext -> m Double
getOutputLatency self = liftDOM ((js_getOutputLatency (self)))