packages feed

ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/BaseAudioContext.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.BaseAudioContext
       (js_createAnalyser, js_createBiquadFilter, js_createBuffer, js_createBufferSource, js_createChannelMerger, js_createChannelSplitter, js_createConstantSource, js_createConvolver, js_createDelay, js_createDynamicsCompressor, js_createGain, js_createIIRFilter, js_createOscillator, js_createPanner, js_createPeriodicWave, js_createScriptProcessor, js_createStereoPanner, js_createWaveShaper, js_decodeAudioData, js_getDestination, js_getSampleRate, js_getCurrentTime, js_getListener, js_getState, js_getAudioWorklet, createAnalyser, createAnalyser_, createBiquadFilter, createBiquadFilter_, createBuffer, createBuffer_, createBufferSource, createBufferSource_, createChannelMerger, createChannelMerger_, createChannelSplitter, createChannelSplitter_, createConstantSource, createConstantSource_, createConvolver, createConvolver_, createDelay, createDelay_, createDynamicsCompressor, createDynamicsCompressor_, createGain, createGain_, createIIRFilter, createIIRFilter_, createOscillator, createOscillator_, createPanner, createPanner_, createPeriodicWave, createPeriodicWave_, createScriptProcessor, createScriptProcessor_, createStereoPanner, createStereoPanner_, createWaveShaper, createWaveShaper_, decodeAudioData, decodeAudioData_, getDestination, getSampleRate, getCurrentTime, getListener, getState, getAudioWorklet, statechange, BaseAudioContext(..), gTypeBaseAudioContext, IsBaseAudioContext, toBaseAudioContext)
       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 "(($1) => { return $1[\"createAnalyser\"](); })"
        js_createAnalyser :: BaseAudioContext -> IO AnalyserNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createAnalyser MDN BaseAudioContext.createAnalyser documentation>
createAnalyser :: (MonadDOM m, IsBaseAudioContext self) => self -> m AnalyserNode
createAnalyser self = liftDOM ((js_createAnalyser ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createAnalyser MDN BaseAudioContext.createAnalyser documentation>
createAnalyser_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createAnalyser_ self = liftDOM (void ((js_createAnalyser ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1) => { return $1[\"createBiquadFilter\"](); })"
        js_createBiquadFilter :: BaseAudioContext -> IO BiquadFilterNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBiquadFilter MDN BaseAudioContext.createBiquadFilter documentation>
createBiquadFilter :: (MonadDOM m, IsBaseAudioContext self) => self -> m BiquadFilterNode
createBiquadFilter self = liftDOM ((js_createBiquadFilter ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBiquadFilter MDN BaseAudioContext.createBiquadFilter documentation>
createBiquadFilter_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createBiquadFilter_ self = liftDOM (void ((js_createBiquadFilter ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"createBuffer\"]($2, $3, $4); })"
        js_createBuffer :: BaseAudioContext -> Word -> Word -> Float -> IO AudioBuffer
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBuffer MDN BaseAudioContext.createBuffer documentation>
createBuffer :: (MonadDOM m, IsBaseAudioContext self) => self -> Word -> Word -> Float -> m AudioBuffer
createBuffer self numberOfChannels length sampleRate = liftDOM ((js_createBuffer ((Types.toBaseAudioContext self)) (numberOfChannels) (length) (sampleRate)))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBuffer MDN BaseAudioContext.createBuffer documentation>
createBuffer_ :: (MonadDOM m, IsBaseAudioContext self) => self -> Word -> Word -> Float -> m ()
createBuffer_ self numberOfChannels length sampleRate = liftDOM (void ((js_createBuffer ((Types.toBaseAudioContext self)) (numberOfChannels) (length) (sampleRate))))

foreign import javascript safe "(($1) => { return $1[\"createBufferSource\"](); })"
        js_createBufferSource :: BaseAudioContext -> IO AudioBufferSourceNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBufferSource MDN BaseAudioContext.createBufferSource documentation>
createBufferSource :: (MonadDOM m, IsBaseAudioContext self) => self -> m AudioBufferSourceNode
createBufferSource self = liftDOM ((js_createBufferSource ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBufferSource MDN BaseAudioContext.createBufferSource documentation>
createBufferSource_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createBufferSource_ self = liftDOM (void ((js_createBufferSource ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1, $2) => { return $1[\"createChannelMerger\"]($2); })"
        js_createChannelMerger :: BaseAudioContext -> JSVal -> IO ChannelMergerNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelMerger MDN BaseAudioContext.createChannelMerger documentation>
createChannelMerger :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Word -> m ChannelMergerNode
createChannelMerger self numberOfInputs = liftDOM (((P.maybe (P.return jsUndefined) toJSVal numberOfInputs) >>= \a2' -> js_createChannelMerger ((Types.toBaseAudioContext self)) a2'))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelMerger MDN BaseAudioContext.createChannelMerger documentation>
createChannelMerger_ :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Word -> m ()
createChannelMerger_ self numberOfInputs = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal numberOfInputs) >>= \a2' -> js_createChannelMerger ((Types.toBaseAudioContext self)) a2')))

foreign import javascript safe "(($1, $2) => { return $1[\"createChannelSplitter\"]($2); })"
        js_createChannelSplitter :: BaseAudioContext -> JSVal -> IO ChannelSplitterNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelSplitter MDN BaseAudioContext.createChannelSplitter documentation>
createChannelSplitter :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Word -> m ChannelSplitterNode
createChannelSplitter self numberOfOutputs = liftDOM (((P.maybe (P.return jsUndefined) toJSVal numberOfOutputs) >>= \a2' -> js_createChannelSplitter ((Types.toBaseAudioContext self)) a2'))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelSplitter MDN BaseAudioContext.createChannelSplitter documentation>
createChannelSplitter_ :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Word -> m ()
createChannelSplitter_ self numberOfOutputs = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal numberOfOutputs) >>= \a2' -> js_createChannelSplitter ((Types.toBaseAudioContext self)) a2')))

foreign import javascript safe "(($1) => { return $1[\"createConstantSource\"](); })"
        js_createConstantSource :: BaseAudioContext -> IO ConstantSourceNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConstantSource MDN BaseAudioContext.createConstantSource documentation>
createConstantSource :: (MonadDOM m, IsBaseAudioContext self) => self -> m ConstantSourceNode
createConstantSource self = liftDOM ((js_createConstantSource ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConstantSource MDN BaseAudioContext.createConstantSource documentation>
createConstantSource_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createConstantSource_ self = liftDOM (void ((js_createConstantSource ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1) => { return $1[\"createConvolver\"](); })"
        js_createConvolver :: BaseAudioContext -> IO ConvolverNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConvolver MDN BaseAudioContext.createConvolver documentation>
createConvolver :: (MonadDOM m, IsBaseAudioContext self) => self -> m ConvolverNode
createConvolver self = liftDOM ((js_createConvolver ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConvolver MDN BaseAudioContext.createConvolver documentation>
createConvolver_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createConvolver_ self = liftDOM (void ((js_createConvolver ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1, $2) => { return $1[\"createDelay\"]($2); })"
        js_createDelay :: BaseAudioContext -> JSVal -> IO DelayNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDelay MDN BaseAudioContext.createDelay documentation>
createDelay :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Double -> m DelayNode
createDelay self maxDelayTime = liftDOM (((P.maybe (P.return jsUndefined) toJSVal maxDelayTime) >>= \a2' -> js_createDelay ((Types.toBaseAudioContext self)) a2'))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDelay MDN BaseAudioContext.createDelay documentation>
createDelay_ :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Double -> m ()
createDelay_ self maxDelayTime = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal maxDelayTime) >>= \a2' -> js_createDelay ((Types.toBaseAudioContext self)) a2')))

foreign import javascript safe "(($1) => { return $1[\"createDynamicsCompressor\"](); })"
        js_createDynamicsCompressor :: BaseAudioContext -> IO DynamicsCompressorNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDynamicsCompressor MDN BaseAudioContext.createDynamicsCompressor documentation>
createDynamicsCompressor :: (MonadDOM m, IsBaseAudioContext self) => self -> m DynamicsCompressorNode
createDynamicsCompressor self = liftDOM ((js_createDynamicsCompressor ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDynamicsCompressor MDN BaseAudioContext.createDynamicsCompressor documentation>
createDynamicsCompressor_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createDynamicsCompressor_ self = liftDOM (void ((js_createDynamicsCompressor ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1) => { return $1[\"createGain\"](); })"
        js_createGain :: BaseAudioContext -> IO GainNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createGain MDN BaseAudioContext.createGain documentation>
createGain :: (MonadDOM m, IsBaseAudioContext self) => self -> m GainNode
createGain self = liftDOM ((js_createGain ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createGain MDN BaseAudioContext.createGain documentation>
createGain_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createGain_ self = liftDOM (void ((js_createGain ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1, $2, $3) => { return $1[\"createIIRFilter\"]($2, $3); })"
        js_createIIRFilter :: BaseAudioContext -> JSVal -> JSVal -> IO IIRFilterNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter MDN BaseAudioContext.createIIRFilter documentation>
createIIRFilter :: (MonadDOM m, IsBaseAudioContext self) => self -> [Double] -> [Double] -> m IIRFilterNode
createIIRFilter self feedforward feedback = liftDOM (((toJSVal feedforward) >>= \a2' -> (toJSVal feedback) >>= \a3' -> js_createIIRFilter ((Types.toBaseAudioContext self)) a2' a3'))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter MDN BaseAudioContext.createIIRFilter documentation>
createIIRFilter_ :: (MonadDOM m, IsBaseAudioContext self) => self -> [Double] -> [Double] -> m ()
createIIRFilter_ self feedforward feedback = liftDOM (void (((toJSVal feedforward) >>= \a2' -> (toJSVal feedback) >>= \a3' -> js_createIIRFilter ((Types.toBaseAudioContext self)) a2' a3')))

foreign import javascript safe "(($1) => { return $1[\"createOscillator\"](); })"
        js_createOscillator :: BaseAudioContext -> IO OscillatorNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createOscillator MDN BaseAudioContext.createOscillator documentation>
createOscillator :: (MonadDOM m, IsBaseAudioContext self) => self -> m OscillatorNode
createOscillator self = liftDOM ((js_createOscillator ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createOscillator MDN BaseAudioContext.createOscillator documentation>
createOscillator_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createOscillator_ self = liftDOM (void ((js_createOscillator ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1) => { return $1[\"createPanner\"](); })"
        js_createPanner :: BaseAudioContext -> IO PannerNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPanner MDN BaseAudioContext.createPanner documentation>
createPanner :: (MonadDOM m, IsBaseAudioContext self) => self -> m PannerNode
createPanner self = liftDOM ((js_createPanner ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPanner MDN BaseAudioContext.createPanner documentation>
createPanner_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createPanner_ self = liftDOM (void ((js_createPanner ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"createPeriodicWave\"]($2, $3, $4); })"
        js_createPeriodicWave :: BaseAudioContext -> JSVal -> JSVal -> JSVal -> IO PeriodicWave
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave MDN BaseAudioContext.createPeriodicWave documentation>
createPeriodicWave :: (MonadDOM m, IsBaseAudioContext self, IsPeriodicWaveConstraints constraints) => self -> [Float] -> [Float] -> Maybe constraints -> m PeriodicWave
createPeriodicWave self real imag constraints = liftDOM (((toJSVal real) >>= \a2' -> (toJSVal imag) >>= \a3' -> (P.maybe (P.return jsUndefined) toJSVal constraints) >>= \a4' -> js_createPeriodicWave ((Types.toBaseAudioContext self)) a2' a3' a4'))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave MDN BaseAudioContext.createPeriodicWave documentation>
createPeriodicWave_ :: (MonadDOM m, IsBaseAudioContext self, IsPeriodicWaveConstraints constraints) => self -> [Float] -> [Float] -> Maybe constraints -> m ()
createPeriodicWave_ self real imag constraints = liftDOM (void (((toJSVal real) >>= \a2' -> (toJSVal imag) >>= \a3' -> (P.maybe (P.return jsUndefined) toJSVal constraints) >>= \a4' -> js_createPeriodicWave ((Types.toBaseAudioContext self)) a2' a3' a4')))

foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"createScriptProcessor\"]($2, $3, $4); })"
        js_createScriptProcessor :: BaseAudioContext -> JSVal -> JSVal -> JSVal -> IO ScriptProcessorNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createScriptProcessor MDN BaseAudioContext.createScriptProcessor documentation>
createScriptProcessor :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Word -> Maybe Word -> Maybe Word -> m ScriptProcessorNode
createScriptProcessor self bufferSize numberOfInputChannels numberOfOutputChannels = liftDOM (((P.maybe (P.return jsUndefined) toJSVal bufferSize) >>= \a2' -> (P.maybe (P.return jsUndefined) toJSVal numberOfInputChannels) >>= \a3' -> (P.maybe (P.return jsUndefined) toJSVal numberOfOutputChannels) >>= \a4' -> js_createScriptProcessor ((Types.toBaseAudioContext self)) a2' a3' a4'))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createScriptProcessor MDN BaseAudioContext.createScriptProcessor documentation>
createScriptProcessor_ :: (MonadDOM m, IsBaseAudioContext self) => self -> Maybe Word -> Maybe Word -> Maybe Word -> m ()
createScriptProcessor_ self bufferSize numberOfInputChannels numberOfOutputChannels = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal bufferSize) >>= \a2' -> (P.maybe (P.return jsUndefined) toJSVal numberOfInputChannels) >>= \a3' -> (P.maybe (P.return jsUndefined) toJSVal numberOfOutputChannels) >>= \a4' -> js_createScriptProcessor ((Types.toBaseAudioContext self)) a2' a3' a4')))

foreign import javascript safe "(($1) => { return $1[\"createStereoPanner\"](); })"
        js_createStereoPanner :: BaseAudioContext -> IO StereoPannerNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createStereoPanner MDN BaseAudioContext.createStereoPanner documentation>
createStereoPanner :: (MonadDOM m, IsBaseAudioContext self) => self -> m StereoPannerNode
createStereoPanner self = liftDOM ((js_createStereoPanner ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createStereoPanner MDN BaseAudioContext.createStereoPanner documentation>
createStereoPanner_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createStereoPanner_ self = liftDOM (void ((js_createStereoPanner ((Types.toBaseAudioContext self)))))

foreign import javascript safe "(($1) => { return $1[\"createWaveShaper\"](); })"
        js_createWaveShaper :: BaseAudioContext -> IO WaveShaperNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createWaveShaper MDN BaseAudioContext.createWaveShaper documentation>
createWaveShaper :: (MonadDOM m, IsBaseAudioContext self) => self -> m WaveShaperNode
createWaveShaper self = liftDOM ((js_createWaveShaper ((Types.toBaseAudioContext self))))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createWaveShaper MDN BaseAudioContext.createWaveShaper documentation>
createWaveShaper_ :: (MonadDOM m, IsBaseAudioContext self) => self -> m ()
createWaveShaper_ self = liftDOM (void ((js_createWaveShaper ((Types.toBaseAudioContext self)))))

foreign import javascript interruptible "(($1, $2, $3, $4, $c) => { return $1[\"decodeAudioData\"]($2, $3, $4).then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
        js_decodeAudioData :: BaseAudioContext -> ArrayBuffer -> JSVal -> JSVal -> IO (JSVal, AudioBuffer)
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/decodeAudioData MDN BaseAudioContext.decodeAudioData documentation>
decodeAudioData :: (MonadDOM m, IsBaseAudioContext self, IsArrayBuffer audioData) => self -> audioData -> Maybe DecodeSuccessCallback -> Maybe DecodeErrorCallback -> m AudioBuffer
decodeAudioData self audioData successCallback errorCallback = liftDOM ((((toJSVal successCallback) >>= \a3' -> (toJSVal errorCallback) >>= \a4' -> js_decodeAudioData ((Types.toBaseAudioContext self)) (Types.toArrayBuffer audioData) a3' a4') >>= checkPromiseResult))

-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/decodeAudioData MDN BaseAudioContext.decodeAudioData documentation>
decodeAudioData_ :: (MonadDOM m, IsBaseAudioContext self, IsArrayBuffer audioData) => self -> audioData -> Maybe DecodeSuccessCallback -> Maybe DecodeErrorCallback -> m ()
decodeAudioData_ self audioData successCallback errorCallback = liftDOM (void ((((toJSVal successCallback) >>= \a3' -> (toJSVal errorCallback) >>= \a4' -> js_decodeAudioData ((Types.toBaseAudioContext self)) (Types.toArrayBuffer audioData) a3' a4') >>= checkPromiseResult)))

foreign import javascript unsafe "(($1) => { return $1[\"destination\"]; })"
        js_getDestination :: BaseAudioContext -> IO AudioDestinationNode
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/destination MDN BaseAudioContext.destination documentation>
getDestination :: (MonadDOM m, IsBaseAudioContext self) => self -> m AudioDestinationNode
getDestination self = liftDOM ((js_getDestination ((Types.toBaseAudioContext self))))

foreign import javascript unsafe "(($1) => { return $1[\"sampleRate\"]; })"
        js_getSampleRate :: BaseAudioContext -> IO Float
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/sampleRate MDN BaseAudioContext.sampleRate documentation>
getSampleRate :: (MonadDOM m, IsBaseAudioContext self) => self -> m Float
getSampleRate self = liftDOM ((js_getSampleRate ((Types.toBaseAudioContext self))))

foreign import javascript unsafe "(($1) => { return $1[\"currentTime\"]; })"
        js_getCurrentTime :: BaseAudioContext -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/currentTime MDN BaseAudioContext.currentTime documentation>
getCurrentTime :: (MonadDOM m, IsBaseAudioContext self) => self -> m Double
getCurrentTime self = liftDOM ((js_getCurrentTime ((Types.toBaseAudioContext self))))

foreign import javascript unsafe "(($1) => { return $1[\"listener\"]; })"
        js_getListener :: BaseAudioContext -> IO AudioListener
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/listener MDN BaseAudioContext.listener documentation>
getListener :: (MonadDOM m, IsBaseAudioContext self) => self -> m AudioListener
getListener self = liftDOM ((js_getListener ((Types.toBaseAudioContext self))))

foreign import javascript unsafe "(($1) => { return $1[\"state\"]; })"
        js_getState :: BaseAudioContext -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/state MDN BaseAudioContext.state documentation>
getState :: (MonadDOM m, IsBaseAudioContext self) => self -> m AudioContextState
getState self = liftDOM (((js_getState ((Types.toBaseAudioContext self))) >>= fromJSValUnchecked))

foreign import javascript unsafe "(($1) => { return $1[\"audioWorklet\"]; })"
        js_getAudioWorklet :: BaseAudioContext -> IO AudioWorklet
-- | <https://developer.mozilla.org/docs/Web/API/BaseAudioContext/audioWorklet MDN BaseAudioContext.audioWorklet documentation>
getAudioWorklet :: (MonadDOM m, IsBaseAudioContext self) => self -> m AudioWorklet
getAudioWorklet self = liftDOM ((js_getAudioWorklet ((Types.toBaseAudioContext self))))

-- | <https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-onstatechange statechange event>
statechange :: (IsBaseAudioContext self, IsEventTarget self) => EventName self Event
statechange = unsafeEventName (toJSString "statechange")