packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AudioData.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webcodecs (webref). Do not edit.
module JSDOM.Generated.AudioData
       (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 Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/AudioData MDN AudioData. documentation>
newAudioData :: (MonadDOM m) => AudioDataInit -> m AudioData
newAudioData init = liftDOM (((new (jsg "AudioData") [toJSVal init]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize MDN AudioData.allocationSize documentation>
allocationSize :: (MonadDOM m) => AudioData -> AudioDataCopyToOptions -> m Word
allocationSize self options = liftDOM ((P.round <$> ((self ^. jsf "allocationSize" [toJSVal options]) >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize MDN AudioData.allocationSize documentation>
allocationSize_ :: (MonadDOM m) => AudioData -> AudioDataCopyToOptions -> m ()
allocationSize_ self options = liftDOM (void (self ^. jsf "allocationSize" [toJSVal options]))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/clone MDN AudioData.clone documentation>
clone :: (MonadDOM m) => AudioData -> m AudioData
clone self = liftDOM (((self ^. jsf "clone" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/clone MDN AudioData.clone documentation>
clone_ :: (MonadDOM m) => AudioData -> m ()
clone_ self = liftDOM (void (self ^. jsf "clone" ()))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/close MDN AudioData.close documentation>
close :: (MonadDOM m) => AudioData -> m ()
close self = liftDOM (void (self ^. jsf "close" ()))

-- | <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 (self ^. jsf "copyTo" [toJSVal destination, toJSVal options]))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/format MDN AudioData.format documentation>
getFormat :: (MonadDOM m) => AudioData -> m (Maybe AudioSampleFormat)
getFormat self = liftDOM (((self ^. js "format") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/format MDN AudioData.format documentation>
getFormatUnsafe :: (MonadDOM m, HasCallStack) => AudioData -> m AudioSampleFormat
getFormatUnsafe self = liftDOM ((((self ^. js "format") >>= 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 (((self ^. js "format") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate MDN AudioData.sampleRate documentation>
getSampleRate :: (MonadDOM m) => AudioData -> m Float
getSampleRate self = liftDOM ((P.realToFrac <$> ((self ^. js "sampleRate") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames MDN AudioData.numberOfFrames documentation>
getNumberOfFrames :: (MonadDOM m) => AudioData -> m Word
getNumberOfFrames self = liftDOM ((P.round <$> ((self ^. js "numberOfFrames") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels MDN AudioData.numberOfChannels documentation>
getNumberOfChannels :: (MonadDOM m) => AudioData -> m Word
getNumberOfChannels self = liftDOM ((P.round <$> ((self ^. js "numberOfChannels") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/duration MDN AudioData.duration documentation>
getDuration :: (MonadDOM m) => AudioData -> m Word53
getDuration self = liftDOM (((self ^. js "duration") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/AudioData/timestamp MDN AudioData.timestamp documentation>
getTimestamp :: (MonadDOM m) => AudioData -> m Int53
getTimestamp self = liftDOM (((self ^. js "timestamp") >>= fromJSValUnchecked))