packages feed

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

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webrtc-encoded-transform (webref). Do not edit.
module JSDOM.Generated.RTCEncodedAudioFrameMetadata
       (newRTCEncodedAudioFrameMetadata, setSequenceNumber, getSequenceNumber, getSequenceNumberUnsafe, getSequenceNumberUnchecked, setAudioLevel, getAudioLevel, getAudioLevelUnsafe, getAudioLevelUnchecked, RTCEncodedAudioFrameMetadata(..), gTypeRTCEncodedAudioFrameMetadata)
       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/webrtc-encoded-transform/#dictdef-rtcencodedaudioframemetadata RTCEncodedAudioFrameMetadata specification>
newRTCEncodedAudioFrameMetadata :: (MonadDOM m) => m RTCEncodedAudioFrameMetadata
newRTCEncodedAudioFrameMetadata = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-sequencenumber RTCEncodedAudioFrameMetadata.sequenceNumber specification>
setSequenceNumber :: (MonadDOM m) => RTCEncodedAudioFrameMetadata -> Int -> m ()
setSequenceNumber self val = liftDOM (void (self ^. jss "sequenceNumber" (toJSVal val)))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-sequencenumber RTCEncodedAudioFrameMetadata.sequenceNumber specification>
getSequenceNumber :: (MonadDOM m) => RTCEncodedAudioFrameMetadata -> m (Maybe Int)
getSequenceNumber self = liftDOM (((self ^. js "sequenceNumber") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-sequencenumber RTCEncodedAudioFrameMetadata.sequenceNumber specification>
getSequenceNumberUnsafe :: (MonadDOM m, HasCallStack) => RTCEncodedAudioFrameMetadata -> m Int
getSequenceNumberUnsafe self = liftDOM ((((self ^. js "sequenceNumber") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-sequencenumber RTCEncodedAudioFrameMetadata.sequenceNumber specification>
getSequenceNumberUnchecked :: (MonadDOM m) => RTCEncodedAudioFrameMetadata -> m Int
getSequenceNumberUnchecked self = liftDOM ((P.round <$> ((self ^. js "sequenceNumber") >>= valToNumber)))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-audiolevel RTCEncodedAudioFrameMetadata.audioLevel specification>
setAudioLevel :: (MonadDOM m) => RTCEncodedAudioFrameMetadata -> Double -> m ()
setAudioLevel self val = liftDOM (void (self ^. jss "audioLevel" (toJSVal val)))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-audiolevel RTCEncodedAudioFrameMetadata.audioLevel specification>
getAudioLevel :: (MonadDOM m) => RTCEncodedAudioFrameMetadata -> m (Maybe Double)
getAudioLevel self = liftDOM (((self ^. js "audioLevel") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-audiolevel RTCEncodedAudioFrameMetadata.audioLevel specification>
getAudioLevelUnsafe :: (MonadDOM m, HasCallStack) => RTCEncodedAudioFrameMetadata -> m Double
getAudioLevelUnsafe self = liftDOM ((((self ^. js "audioLevel") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframemetadata-audiolevel RTCEncodedAudioFrameMetadata.audioLevel specification>
getAudioLevelUnchecked :: (MonadDOM m) => RTCEncodedAudioFrameMetadata -> m Double
getAudioLevelUnchecked self = liftDOM (((self ^. js "audioLevel") >>= valToNumber))