jsaddle-dom-0.10.0.0: src/JSDOM/Generated/RTCRtpCodec.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webrtc (webref). Do not edit.
module JSDOM.Generated.RTCRtpCodec
(newRTCRtpCodec, setMimeType, getMimeType, setClockRate, getClockRate, setChannels, getChannels, getChannelsUnsafe, getChannelsUnchecked, setSdpFmtpLine, getSdpFmtpLine, getSdpFmtpLineUnsafe, getSdpFmtpLineUnchecked, RTCRtpCodec(..), gTypeRTCRtpCodec, IsRTCRtpCodec, toRTCRtpCodec)
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-pc/#dom-rtcrtpcodec RTCRtpCodec specification>
newRTCRtpCodec :: (MonadDOM m, ToJSString mimeType) => mimeType -> Word -> m RTCRtpCodec
newRTCRtpCodec mimeType clockRate = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "mimeType" (toJSVal mimeType)) P.>> (o ^. jss "clockRate" (toJSVal clockRate)) P.>> P.return o)) >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-mimetype RTCRtpCodec.mimeType specification>
setMimeType :: (MonadDOM m, IsRTCRtpCodec self, ToJSString val) => self -> val -> m ()
setMimeType self val = liftDOM (void ((Types.toRTCRtpCodec self) ^. jss "mimeType" (toJSVal val)))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-mimetype RTCRtpCodec.mimeType specification>
getMimeType :: (MonadDOM m, IsRTCRtpCodec self, FromJSString result) => self -> m result
getMimeType self = liftDOM ((((Types.toRTCRtpCodec self) ^. js "mimeType") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-clockrate RTCRtpCodec.clockRate specification>
setClockRate :: (MonadDOM m, IsRTCRtpCodec self) => self -> Word -> m ()
setClockRate self val = liftDOM (void ((Types.toRTCRtpCodec self) ^. jss "clockRate" (toJSVal val)))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-clockrate RTCRtpCodec.clockRate specification>
getClockRate :: (MonadDOM m, IsRTCRtpCodec self) => self -> m Word
getClockRate self = liftDOM ((P.round <$> (((Types.toRTCRtpCodec self) ^. js "clockRate") >>= valToNumber)))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-channels RTCRtpCodec.channels specification>
setChannels :: (MonadDOM m, IsRTCRtpCodec self) => self -> Word -> m ()
setChannels self val = liftDOM (void ((Types.toRTCRtpCodec self) ^. jss "channels" (toJSVal val)))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-channels RTCRtpCodec.channels specification>
getChannels :: (MonadDOM m, IsRTCRtpCodec self) => self -> m (Maybe Word)
getChannels self = liftDOM ((((Types.toRTCRtpCodec self) ^. js "channels") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-channels RTCRtpCodec.channels specification>
getChannelsUnsafe :: (MonadDOM m, IsRTCRtpCodec self, HasCallStack) => self -> m Word
getChannelsUnsafe self = liftDOM (((((Types.toRTCRtpCodec self) ^. js "channels") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-channels RTCRtpCodec.channels specification>
getChannelsUnchecked :: (MonadDOM m, IsRTCRtpCodec self) => self -> m Word
getChannelsUnchecked self = liftDOM ((P.round <$> (((Types.toRTCRtpCodec self) ^. js "channels") >>= valToNumber)))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-sdpfmtpline RTCRtpCodec.sdpFmtpLine specification>
setSdpFmtpLine :: (MonadDOM m, IsRTCRtpCodec self, ToJSString val) => self -> val -> m ()
setSdpFmtpLine self val = liftDOM (void ((Types.toRTCRtpCodec self) ^. jss "sdpFmtpLine" (toJSVal val)))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-sdpfmtpline RTCRtpCodec.sdpFmtpLine specification>
getSdpFmtpLine :: (MonadDOM m, IsRTCRtpCodec self, FromJSString result) => self -> m (Maybe result)
getSdpFmtpLine self = liftDOM ((((Types.toRTCRtpCodec self) ^. js "sdpFmtpLine") >>= fromMaybeJSString))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-sdpfmtpline RTCRtpCodec.sdpFmtpLine specification>
getSdpFmtpLineUnsafe :: (MonadDOM m, IsRTCRtpCodec self, HasCallStack, FromJSString result) => self -> m result
getSdpFmtpLineUnsafe self = liftDOM (((((Types.toRTCRtpCodec self) ^. js "sdpFmtpLine") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/webrtc-pc/#dom-rtcrtpcodec-sdpfmtpline RTCRtpCodec.sdpFmtpLine specification>
getSdpFmtpLineUnchecked :: (MonadDOM m, IsRTCRtpCodec self, FromJSString result) => self -> m result
getSdpFmtpLineUnchecked self = liftDOM ((((Types.toRTCRtpCodec self) ^. js "sdpFmtpLine") >>= fromJSValUnchecked))