packages feed

ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/AudioBufferSourceNode.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.AudioBufferSourceNode
       (js_newAudioBufferSourceNode, js_start, js_setBuffer, js_getBuffer, js_getPlaybackRate, js_getDetune, js_setLoop, js_getLoop, js_setLoopStart, js_getLoopStart, js_setLoopEnd, js_getLoopEnd, newAudioBufferSourceNode, start, setBuffer, getBuffer, getBufferUnsafe, getBufferUnchecked, getPlaybackRate, getDetune, setLoop, getLoop, setLoopStart, getLoopStart, setLoopEnd, getLoopEnd, AudioBufferSourceNode(..), gTypeAudioBufferSourceNode)
       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, $2) => { return new globalThis[\"AudioBufferSourceNode\"]($1, $2); })"
        js_newAudioBufferSourceNode :: BaseAudioContext -> JSVal -> IO AudioBufferSourceNode
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/AudioBufferSourceNode MDN AudioBufferSourceNode. documentation>
newAudioBufferSourceNode :: (MonadDOM m, IsBaseAudioContext context) => context -> Maybe AudioBufferSourceOptions -> m AudioBufferSourceNode
newAudioBufferSourceNode context options = liftDOM (((P.maybe (P.return jsUndefined) toJSVal options) >>= \a2' -> js_newAudioBufferSourceNode (Types.toBaseAudioContext context) a2'))

foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"start\"]($2, $3, $4); })"
        js_start :: AudioBufferSourceNode -> JSVal -> JSVal -> JSVal -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/start MDN AudioBufferSourceNode.start documentation>
start :: (MonadDOM m) => AudioBufferSourceNode -> Maybe Double -> Maybe Double -> Maybe Double -> m ()
start self when offset duration = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal when) >>= \a2' -> (P.maybe (P.return jsUndefined) toJSVal offset) >>= \a3' -> (P.maybe (P.return jsUndefined) toJSVal duration) >>= \a4' -> js_start (self) a2' a3' a4')))

foreign import javascript safe "(($1, $2) => { $1[\"buffer\"] = $2; })"
        js_setBuffer :: AudioBufferSourceNode -> JSVal -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer MDN AudioBufferSourceNode.buffer documentation>
setBuffer :: (MonadDOM m) => AudioBufferSourceNode -> Maybe AudioBuffer -> m ()
setBuffer self val = liftDOM (void (((toJSVal val) >>= \a2' -> js_setBuffer (self) a2')))

foreign import javascript unsafe "(($1) => { return $1[\"buffer\"]; })"
        js_getBuffer :: AudioBufferSourceNode -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer MDN AudioBufferSourceNode.buffer documentation>
getBuffer :: (MonadDOM m) => AudioBufferSourceNode -> m (Maybe AudioBuffer)
getBuffer self = liftDOM (((js_getBuffer (self)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer MDN AudioBufferSourceNode.buffer documentation>
getBufferUnsafe :: (MonadDOM m, HasCallStack) => AudioBufferSourceNode -> m AudioBuffer
getBufferUnsafe self = liftDOM ((((js_getBuffer (self)) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer MDN AudioBufferSourceNode.buffer documentation>
getBufferUnchecked :: (MonadDOM m) => AudioBufferSourceNode -> m AudioBuffer
getBufferUnchecked self = liftDOM ((pFromJSVal <$> (js_getBuffer (self))))

foreign import javascript unsafe "(($1) => { return $1[\"playbackRate\"]; })"
        js_getPlaybackRate :: AudioBufferSourceNode -> IO AudioParam
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/playbackRate MDN AudioBufferSourceNode.playbackRate documentation>
getPlaybackRate :: (MonadDOM m) => AudioBufferSourceNode -> m AudioParam
getPlaybackRate self = liftDOM ((js_getPlaybackRate (self)))

foreign import javascript unsafe "(($1) => { return $1[\"detune\"]; })"
        js_getDetune :: AudioBufferSourceNode -> IO AudioParam
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/detune MDN AudioBufferSourceNode.detune documentation>
getDetune :: (MonadDOM m) => AudioBufferSourceNode -> m AudioParam
getDetune self = liftDOM ((js_getDetune (self)))

foreign import javascript safe "(($1, $2) => { $1[\"loop\"] = $2; })"
        js_setLoop :: AudioBufferSourceNode -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loop MDN AudioBufferSourceNode.loop documentation>
setLoop :: (MonadDOM m) => AudioBufferSourceNode -> Bool -> m ()
setLoop self val = liftDOM (void ((js_setLoop (self) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"loop\"]; })"
        js_getLoop :: AudioBufferSourceNode -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loop MDN AudioBufferSourceNode.loop documentation>
getLoop :: (MonadDOM m) => AudioBufferSourceNode -> m Bool
getLoop self = liftDOM ((js_getLoop (self)))

foreign import javascript safe "(($1, $2) => { $1[\"loopStart\"] = $2; })"
        js_setLoopStart :: AudioBufferSourceNode -> Double -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopStart MDN AudioBufferSourceNode.loopStart documentation>
setLoopStart :: (MonadDOM m) => AudioBufferSourceNode -> Double -> m ()
setLoopStart self val = liftDOM (void ((js_setLoopStart (self) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"loopStart\"]; })"
        js_getLoopStart :: AudioBufferSourceNode -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopStart MDN AudioBufferSourceNode.loopStart documentation>
getLoopStart :: (MonadDOM m) => AudioBufferSourceNode -> m Double
getLoopStart self = liftDOM ((js_getLoopStart (self)))

foreign import javascript safe "(($1, $2) => { $1[\"loopEnd\"] = $2; })"
        js_setLoopEnd :: AudioBufferSourceNode -> Double -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopEnd MDN AudioBufferSourceNode.loopEnd documentation>
setLoopEnd :: (MonadDOM m) => AudioBufferSourceNode -> Double -> m ()
setLoopEnd self val = liftDOM (void ((js_setLoopEnd (self) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"loopEnd\"]; })"
        js_getLoopEnd :: AudioBufferSourceNode -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopEnd MDN AudioBufferSourceNode.loopEnd documentation>
getLoopEnd :: (MonadDOM m) => AudioBufferSourceNode -> m Double
getLoopEnd self = liftDOM ((js_getLoopEnd (self)))