ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/AudioData.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webcodecs (webref). Do not edit.
module GHCJS.DOM.JSFFI.Generated.AudioData
(js_newAudioData, js_allocationSize, js_clone, js_close, js_copyTo, js_getFormat, js_getSampleRate, js_getNumberOfFrames, js_getNumberOfChannels, js_getDuration, js_getTimestamp, newAudioData, allocationSize, allocationSize_, clone, clone_, close, copyTo, getFormat, getFormatUnsafe, getFormatUnchecked, getSampleRate, getNumberOfFrames, getNumberOfChannels, getDuration, getTimestamp, AudioData(..), gTypeAudioData)
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[\"AudioData\"]($1); })"
js_newAudioData :: AudioDataInit -> IO AudioData
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/AudioData MDN AudioData. documentation>
newAudioData :: (MonadDOM m) => AudioDataInit -> m AudioData
newAudioData init = liftDOM ((js_newAudioData (init)))
foreign import javascript safe "(($1, $2) => { return $1[\"allocationSize\"]($2); })"
js_allocationSize :: AudioData -> AudioDataCopyToOptions -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize MDN AudioData.allocationSize documentation>
allocationSize :: (MonadDOM m) => AudioData -> AudioDataCopyToOptions -> m Word
allocationSize self options = liftDOM ((js_allocationSize (self) (options)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize MDN AudioData.allocationSize documentation>
allocationSize_ :: (MonadDOM m) => AudioData -> AudioDataCopyToOptions -> m ()
allocationSize_ self options = liftDOM (void ((js_allocationSize (self) (options))))
foreign import javascript safe "(($1) => { return $1[\"clone\"](); })"
js_clone :: AudioData -> IO AudioData
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/clone MDN AudioData.clone documentation>
clone :: (MonadDOM m) => AudioData -> m AudioData
clone self = liftDOM ((js_clone (self)))
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/clone MDN AudioData.clone documentation>
clone_ :: (MonadDOM m) => AudioData -> m ()
clone_ self = liftDOM (void ((js_clone (self))))
foreign import javascript safe "(($1) => { return $1[\"close\"](); })"
js_close :: AudioData -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/close MDN AudioData.close documentation>
close :: (MonadDOM m) => AudioData -> m ()
close self = liftDOM (void ((js_close (self))))
foreign import javascript safe "(($1, $2, $3) => { return $1[\"copyTo\"]($2, $3); })"
js_copyTo :: AudioData -> AllowSharedBufferSource -> AudioDataCopyToOptions -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/copyTo MDN AudioData.copyTo documentation>
copyTo :: (MonadDOM m, IsAllowSharedBufferSource destination) => AudioData -> destination -> AudioDataCopyToOptions -> m ()
copyTo self destination options = liftDOM (void ((js_copyTo (self) (Types.toAllowSharedBufferSource destination) (options))))
foreign import javascript unsafe "(($1) => { return $1[\"format\"]; })"
js_getFormat :: AudioData -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/format MDN AudioData.format documentation>
getFormat :: (MonadDOM m) => AudioData -> m (Maybe AudioSampleFormat)
getFormat self = liftDOM (((js_getFormat (self)) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/format MDN AudioData.format documentation>
getFormatUnsafe :: (MonadDOM m, HasCallStack) => AudioData -> m AudioSampleFormat
getFormatUnsafe self = liftDOM ((((js_getFormat (self)) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/format MDN AudioData.format documentation>
getFormatUnchecked :: (MonadDOM m) => AudioData -> m AudioSampleFormat
getFormatUnchecked self = liftDOM ((pFromJSVal <$> (js_getFormat (self))))
foreign import javascript unsafe "(($1) => { return $1[\"sampleRate\"]; })"
js_getSampleRate :: AudioData -> IO Float
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate MDN AudioData.sampleRate documentation>
getSampleRate :: (MonadDOM m) => AudioData -> m Float
getSampleRate self = liftDOM ((js_getSampleRate (self)))
foreign import javascript unsafe "(($1) => { return $1[\"numberOfFrames\"]; })"
js_getNumberOfFrames :: AudioData -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames MDN AudioData.numberOfFrames documentation>
getNumberOfFrames :: (MonadDOM m) => AudioData -> m Word
getNumberOfFrames self = liftDOM ((js_getNumberOfFrames (self)))
foreign import javascript unsafe "(($1) => { return $1[\"numberOfChannels\"]; })"
js_getNumberOfChannels :: AudioData -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels MDN AudioData.numberOfChannels documentation>
getNumberOfChannels :: (MonadDOM m) => AudioData -> m Word
getNumberOfChannels self = liftDOM ((js_getNumberOfChannels (self)))
foreign import javascript unsafe "(($1) => { return $1[\"duration\"]; })"
js_getDuration :: AudioData -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/duration MDN AudioData.duration documentation>
getDuration :: (MonadDOM m) => AudioData -> m Word53
getDuration self = liftDOM (((js_getDuration (self)) >>= fromJSValUnchecked))
foreign import javascript unsafe "(($1) => { return $1[\"timestamp\"]; })"
js_getTimestamp :: AudioData -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/AudioData/timestamp MDN AudioData.timestamp documentation>
getTimestamp :: (MonadDOM m) => AudioData -> m Int53
getTimestamp self = liftDOM (((js_getTimestamp (self)) >>= fromJSValUnchecked))