ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/AudioBuffer.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.AudioBuffer
(js_newAudioBuffer, js_copyFromChannel, js_copyToChannel, js_getChannelData, js_getSampleRate, js_getLength, js_getDuration, js_getNumberOfChannels, newAudioBuffer, copyFromChannel, copyToChannel, getChannelData, getChannelData_, getSampleRate, getLength, getDuration, getNumberOfChannels, AudioBuffer(..), gTypeAudioBuffer)
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 new globalThis[\"AudioBuffer\"]($1); })"
js_newAudioBuffer :: AudioBufferOptions -> IO AudioBuffer
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/AudioBuffer MDN AudioBuffer. documentation>
newAudioBuffer :: (MonadDOM m) => AudioBufferOptions -> m AudioBuffer
newAudioBuffer options = liftDOM ((js_newAudioBuffer (options)))
foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"copyFromChannel\"]($2, $3, $4); })"
js_copyFromChannel :: AudioBuffer -> Float32Array -> Word -> JSVal -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyFromChannel MDN AudioBuffer.copyFromChannel documentation>
copyFromChannel :: (MonadDOM m, IsFloat32Array destination) => AudioBuffer -> destination -> Word -> Maybe Word -> m ()
copyFromChannel self destination channelNumber bufferOffset = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal bufferOffset) >>= \a4' -> js_copyFromChannel (self) (Types.toFloat32Array destination) (channelNumber) a4')))
foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"copyToChannel\"]($2, $3, $4); })"
js_copyToChannel :: AudioBuffer -> Float32Array -> Word -> JSVal -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyToChannel MDN AudioBuffer.copyToChannel documentation>
copyToChannel :: (MonadDOM m, IsFloat32Array source) => AudioBuffer -> source -> Word -> Maybe Word -> m ()
copyToChannel self source channelNumber bufferOffset = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal bufferOffset) >>= \a4' -> js_copyToChannel (self) (Types.toFloat32Array source) (channelNumber) a4')))
foreign import javascript safe "(($1, $2) => { return $1[\"getChannelData\"]($2); })"
js_getChannelData :: AudioBuffer -> Word -> IO Float32Array
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/getChannelData MDN AudioBuffer.getChannelData documentation>
getChannelData :: (MonadDOM m) => AudioBuffer -> Word -> m Float32Array
getChannelData self channel = liftDOM ((js_getChannelData (self) (channel)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/getChannelData MDN AudioBuffer.getChannelData documentation>
getChannelData_ :: (MonadDOM m) => AudioBuffer -> Word -> m ()
getChannelData_ self channel = liftDOM (void ((js_getChannelData (self) (channel))))
foreign import javascript unsafe "(($1) => { return $1[\"sampleRate\"]; })"
js_getSampleRate :: AudioBuffer -> IO Float
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/sampleRate MDN AudioBuffer.sampleRate documentation>
getSampleRate :: (MonadDOM m) => AudioBuffer -> m Float
getSampleRate self = liftDOM ((js_getSampleRate (self)))
foreign import javascript unsafe "(($1) => { return $1[\"length\"]; })"
js_getLength :: AudioBuffer -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/length MDN AudioBuffer.length documentation>
getLength :: (MonadDOM m) => AudioBuffer -> m Word
getLength self = liftDOM ((js_getLength (self)))
foreign import javascript unsafe "(($1) => { return $1[\"duration\"]; })"
js_getDuration :: AudioBuffer -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/duration MDN AudioBuffer.duration documentation>
getDuration :: (MonadDOM m) => AudioBuffer -> m Double
getDuration self = liftDOM ((js_getDuration (self)))
foreign import javascript unsafe "(($1) => { return $1[\"numberOfChannels\"]; })"
js_getNumberOfChannels :: AudioBuffer -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/AudioBuffer/numberOfChannels MDN AudioBuffer.numberOfChannels documentation>
getNumberOfChannels :: (MonadDOM m) => AudioBuffer -> m Word
getNumberOfChannels self = liftDOM ((js_getNumberOfChannels (self)))