packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/EncodedAudioChunk.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.EncodedAudioChunk
       (newEncodedAudioChunk, copyTo, getType, getTimestamp, getDuration, getDurationUnsafe, getDurationUnchecked, getByteLength, EncodedAudioChunk(..), gTypeEncodedAudioChunk)
       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/EncodedAudioChunk/EncodedAudioChunk MDN EncodedAudioChunk. documentation>
newEncodedAudioChunk :: (MonadDOM m) => EncodedAudioChunkInit -> m EncodedAudioChunk
newEncodedAudioChunk init = liftDOM (((new (jsg "EncodedAudioChunk") [toJSVal init]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo MDN EncodedAudioChunk.copyTo documentation>
copyTo :: (MonadDOM m, IsAllowSharedBufferSource destination) => EncodedAudioChunk -> destination -> m ()
copyTo self destination = liftDOM (void (self ^. jsf "copyTo" [toJSVal destination]))

-- | <https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type MDN EncodedAudioChunk.type documentation>
getType :: (MonadDOM m) => EncodedAudioChunk -> m EncodedAudioChunkType
getType self = liftDOM (((self ^. js "type") >>= fromJSValUnchecked))

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

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

-- | <https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration MDN EncodedAudioChunk.duration documentation>
getDurationUnsafe :: (MonadDOM m, HasCallStack) => EncodedAudioChunk -> m Word53
getDurationUnsafe self = liftDOM ((((self ^. js "duration") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

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

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