packages feed

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))