packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/EncodedAudioChunkInit.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.EncodedAudioChunkInit
       (newEncodedAudioChunkInit, setType, getType, setTimestamp, getTimestamp, setDuration, getDuration, getDurationUnsafe, getDurationUnchecked, setData, getData, setTransfer, getTransfer, getTransferUnsafe, getTransferUnchecked, EncodedAudioChunkInit(..), gTypeEncodedAudioChunkInit)
       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://w3c.github.io/webcodecs/#dictdef-encodedaudiochunkinit EncodedAudioChunkInit specification>
newEncodedAudioChunkInit :: (MonadDOM m, IsAllowSharedBufferSource data') => EncodedAudioChunkType -> Int53 -> data' -> m EncodedAudioChunkInit
newEncodedAudioChunkInit type' timestamp data' = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "type" (toJSVal type')) P.>> (o ^. jss "timestamp" (toJSVal timestamp)) P.>> (o ^. jss "data" (toJSVal data')) P.>> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-type EncodedAudioChunkInit.type specification>
setType :: (MonadDOM m) => EncodedAudioChunkInit -> EncodedAudioChunkType -> m ()
setType self val = liftDOM (void (self ^. jss "type" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-type EncodedAudioChunkInit.type specification>
getType :: (MonadDOM m) => EncodedAudioChunkInit -> m EncodedAudioChunkType
getType self = liftDOM (((self ^. js "type") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-timestamp EncodedAudioChunkInit.timestamp specification>
setTimestamp :: (MonadDOM m) => EncodedAudioChunkInit -> Int53 -> m ()
setTimestamp self val = liftDOM (void (self ^. jss "timestamp" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-timestamp EncodedAudioChunkInit.timestamp specification>
getTimestamp :: (MonadDOM m) => EncodedAudioChunkInit -> m Int53
getTimestamp self = liftDOM (((self ^. js "timestamp") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-duration EncodedAudioChunkInit.duration specification>
setDuration :: (MonadDOM m) => EncodedAudioChunkInit -> Word53 -> m ()
setDuration self val = liftDOM (void (self ^. jss "duration" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-duration EncodedAudioChunkInit.duration specification>
getDuration :: (MonadDOM m) => EncodedAudioChunkInit -> m (Maybe Word53)
getDuration self = liftDOM (((self ^. js "duration") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-duration EncodedAudioChunkInit.duration specification>
getDurationUnsafe :: (MonadDOM m, HasCallStack) => EncodedAudioChunkInit -> m Word53
getDurationUnsafe self = liftDOM ((((self ^. js "duration") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-duration EncodedAudioChunkInit.duration specification>
getDurationUnchecked :: (MonadDOM m) => EncodedAudioChunkInit -> m Word53
getDurationUnchecked self = liftDOM (((self ^. js "duration") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-data EncodedAudioChunkInit.data specification>
setData :: (MonadDOM m, IsAllowSharedBufferSource val) => EncodedAudioChunkInit -> val -> m ()
setData self val = liftDOM (void (self ^. jss "data" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-data EncodedAudioChunkInit.data specification>
getData :: (MonadDOM m) => EncodedAudioChunkInit -> m AllowSharedBufferSource
getData self = liftDOM (((self ^. js "data") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-transfer EncodedAudioChunkInit.transfer specification>
setTransfer :: (MonadDOM m, IsArrayBuffer val) => EncodedAudioChunkInit -> [val] -> m ()
setTransfer self val = liftDOM (void (self ^. jss "transfer" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-transfer EncodedAudioChunkInit.transfer specification>
getTransfer :: (MonadDOM m) => EncodedAudioChunkInit -> m (Maybe [ArrayBuffer])
getTransfer self = liftDOM (((self ^. js "transfer") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-transfer EncodedAudioChunkInit.transfer specification>
getTransferUnsafe :: (MonadDOM m, HasCallStack) => EncodedAudioChunkInit -> m [ArrayBuffer]
getTransferUnsafe self = liftDOM ((((self ^. js "transfer") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webcodecs/#dom-encodedaudiochunkinit-transfer EncodedAudioChunkInit.transfer specification>
getTransferUnchecked :: (MonadDOM m) => EncodedAudioChunkInit -> m [ArrayBuffer]
getTransferUnchecked self = liftDOM (((self ^. js "transfer") >>= fromJSValUnchecked))