packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/RTCPeerConnection.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.RTCPeerConnection
       (newRTCPeerConnection, addIceCandidate, addIceCandidateSuccessCallbackFailureCallback, addTrack, addTrack_, addTransceiver, addTransceiver_, close, createAnswer, createAnswer_, createAnswerSuccessCallbackFailureCallback, createDataChannel, createDataChannel_, createOffer, createOffer_, createOfferSuccessCallbackFailureCallback, getConfiguration, getConfiguration_, getReceivers, getReceivers_, getSenders, getSenders_, getStats, getStats_, getTransceivers, getTransceivers_, removeTrack, restartIce, setConfiguration, setLocalDescription, setLocalDescriptionSuccessCallbackFailureCallback, setRemoteDescription, setRemoteDescriptionSuccessCallbackFailureCallback, generateCertificate, generateCertificate_, getLocalDescription, getLocalDescriptionUnsafe, getLocalDescriptionUnchecked, getCurrentLocalDescription, getCurrentLocalDescriptionUnsafe, getCurrentLocalDescriptionUnchecked, getPendingLocalDescription, getPendingLocalDescriptionUnsafe, getPendingLocalDescriptionUnchecked, getRemoteDescription, getRemoteDescriptionUnsafe, getRemoteDescriptionUnchecked, getCurrentRemoteDescription, getCurrentRemoteDescriptionUnsafe, getCurrentRemoteDescriptionUnchecked, getPendingRemoteDescription, getPendingRemoteDescriptionUnsafe, getPendingRemoteDescriptionUnchecked, getSignalingState, getIceGatheringState, getIceConnectionState, getConnectionState, getCanTrickleIceCandidates, getCanTrickleIceCandidatesUnsafe, getCanTrickleIceCandidatesUnchecked, getSctp, getSctpUnsafe, getSctpUnchecked, negotiationNeeded, iceCandidate, icecandidateerror, signalingStateChange, iceConnectionStateChange, icegatheringstatechange, connectionstatechange, track, dataChannel, RTCPeerConnection(..), gTypeRTCPeerConnection)
       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/RTCPeerConnection/RTCPeerConnection MDN RTCPeerConnection. documentation>
newRTCPeerConnection :: (MonadDOM m) => Maybe RTCConfiguration -> m RTCPeerConnection
newRTCPeerConnection configuration = liftDOM (((new (jsg "RTCPeerConnection") [P.maybe (P.return jsUndefined) toJSVal configuration]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addIceCandidate MDN RTCPeerConnection.addIceCandidate documentation>
addIceCandidate :: (MonadDOM m, IsRTCIceCandidateInit candidate) => RTCPeerConnection -> Maybe candidate -> m ()
addIceCandidate self candidate = liftDOM (void (((self ^. jsf "addIceCandidate" [P.maybe (P.return jsUndefined) toJSVal candidate]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addIceCandidate MDN RTCPeerConnection.addIceCandidate documentation>
addIceCandidateSuccessCallbackFailureCallback :: (MonadDOM m, IsRTCIceCandidateInit candidate) => RTCPeerConnection -> candidate -> VoidFunction -> RTCPeerConnectionErrorCallback -> m ()
addIceCandidateSuccessCallbackFailureCallback self candidate successCallback failureCallback = liftDOM (void (((self ^. jsf "addIceCandidate" [toJSVal candidate, toJSVal successCallback, toJSVal failureCallback]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTrack MDN RTCPeerConnection.addTrack documentation>
addTrack :: (MonadDOM m, IsMediaStreamTrack track) => RTCPeerConnection -> track -> [MediaStream] -> m RTCRtpSender
addTrack self track streams = liftDOM (((self ^. jsf "addTrack" ([toJSVal track] ++ P.map toJSVal streams)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTrack MDN RTCPeerConnection.addTrack documentation>
addTrack_ :: (MonadDOM m, IsMediaStreamTrack track) => RTCPeerConnection -> track -> [MediaStream] -> m ()
addTrack_ self track streams = liftDOM (void (self ^. jsf "addTrack" ([toJSVal track] ++ P.map toJSVal streams)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTransceiver MDN RTCPeerConnection.addTransceiver documentation>
addTransceiver :: (MonadDOM m, IsMediaStreamTrackOrString trackOrKind) => RTCPeerConnection -> trackOrKind -> Maybe RTCRtpTransceiverInit -> m RTCRtpTransceiver
addTransceiver self trackOrKind init = liftDOM (((self ^. jsf "addTransceiver" [toJSVal trackOrKind, P.maybe (P.return jsUndefined) toJSVal init]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTransceiver MDN RTCPeerConnection.addTransceiver documentation>
addTransceiver_ :: (MonadDOM m, IsMediaStreamTrackOrString trackOrKind) => RTCPeerConnection -> trackOrKind -> Maybe RTCRtpTransceiverInit -> m ()
addTransceiver_ self trackOrKind init = liftDOM (void (self ^. jsf "addTransceiver" [toJSVal trackOrKind, P.maybe (P.return jsUndefined) toJSVal init]))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createAnswer MDN RTCPeerConnection.createAnswer documentation>
createAnswer :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCAnswerOptions -> m RTCSessionDescriptionInit
createAnswer self options = liftDOM (((((self ^. jsf "createAnswer" [P.maybe (P.return jsUndefined) toJSVal options]) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createAnswer MDN RTCPeerConnection.createAnswer documentation>
createAnswer_ :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCAnswerOptions -> m ()
createAnswer_ self options = liftDOM (void (((self ^. jsf "createAnswer" [P.maybe (P.return jsUndefined) toJSVal options]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createAnswer MDN RTCPeerConnection.createAnswer documentation>
createAnswerSuccessCallbackFailureCallback :: (MonadDOM m) => RTCPeerConnection -> RTCSessionDescriptionCallback -> RTCPeerConnectionErrorCallback -> m ()
createAnswerSuccessCallbackFailureCallback self successCallback failureCallback = liftDOM (void (((self ^. jsf "createAnswer" [toJSVal successCallback, toJSVal failureCallback]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createDataChannel MDN RTCPeerConnection.createDataChannel documentation>
createDataChannel :: (MonadDOM m, ToJSString label) => RTCPeerConnection -> label -> Maybe RTCDataChannelInit -> m RTCDataChannel
createDataChannel self label dataChannelDict = liftDOM (((self ^. jsf "createDataChannel" [toJSVal label, P.maybe (P.return jsUndefined) toJSVal dataChannelDict]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createDataChannel MDN RTCPeerConnection.createDataChannel documentation>
createDataChannel_ :: (MonadDOM m, ToJSString label) => RTCPeerConnection -> label -> Maybe RTCDataChannelInit -> m ()
createDataChannel_ self label dataChannelDict = liftDOM (void (self ^. jsf "createDataChannel" [toJSVal label, P.maybe (P.return jsUndefined) toJSVal dataChannelDict]))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createOffer MDN RTCPeerConnection.createOffer documentation>
createOffer :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCOfferOptions -> m RTCSessionDescriptionInit
createOffer self options = liftDOM (((((self ^. jsf "createOffer" [P.maybe (P.return jsUndefined) toJSVal options]) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createOffer MDN RTCPeerConnection.createOffer documentation>
createOffer_ :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCOfferOptions -> m ()
createOffer_ self options = liftDOM (void (((self ^. jsf "createOffer" [P.maybe (P.return jsUndefined) toJSVal options]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createOffer MDN RTCPeerConnection.createOffer documentation>
createOfferSuccessCallbackFailureCallback :: (MonadDOM m) => RTCPeerConnection -> RTCSessionDescriptionCallback -> RTCPeerConnectionErrorCallback -> Maybe RTCOfferOptions -> m ()
createOfferSuccessCallbackFailureCallback self successCallback failureCallback options = liftDOM (void (((self ^. jsf "createOffer" [toJSVal successCallback, toJSVal failureCallback, P.maybe (P.return jsUndefined) toJSVal options]) >>= readPromise)))

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

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getReceivers MDN RTCPeerConnection.getReceivers documentation>
getReceivers :: (MonadDOM m) => RTCPeerConnection -> m [RTCRtpReceiver]
getReceivers self = liftDOM (((self ^. jsf "getReceivers" ()) >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getSenders MDN RTCPeerConnection.getSenders documentation>
getSenders :: (MonadDOM m) => RTCPeerConnection -> m [RTCRtpSender]
getSenders self = liftDOM (((self ^. jsf "getSenders" ()) >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getStats MDN RTCPeerConnection.getStats documentation>
getStats :: (MonadDOM m, IsMediaStreamTrack selector) => RTCPeerConnection -> Maybe selector -> m RTCStatsReport
getStats self selector = liftDOM (((((self ^. jsf "getStats" [toJSVal selector]) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getStats MDN RTCPeerConnection.getStats documentation>
getStats_ :: (MonadDOM m, IsMediaStreamTrack selector) => RTCPeerConnection -> Maybe selector -> m ()
getStats_ self selector = liftDOM (void (((self ^. jsf "getStats" [toJSVal selector]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getTransceivers MDN RTCPeerConnection.getTransceivers documentation>
getTransceivers :: (MonadDOM m) => RTCPeerConnection -> m [RTCRtpTransceiver]
getTransceivers self = liftDOM (((self ^. jsf "getTransceivers" ()) >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/removeTrack MDN RTCPeerConnection.removeTrack documentation>
removeTrack :: (MonadDOM m) => RTCPeerConnection -> RTCRtpSender -> m ()
removeTrack self sender = liftDOM (void (self ^. jsf "removeTrack" [toJSVal sender]))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setConfiguration MDN RTCPeerConnection.setConfiguration documentation>
setConfiguration :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCConfiguration -> m ()
setConfiguration self configuration = liftDOM (void (self ^. jsf "setConfiguration" [P.maybe (P.return jsUndefined) toJSVal configuration]))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setLocalDescription MDN RTCPeerConnection.setLocalDescription documentation>
setLocalDescription :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCLocalSessionDescriptionInit -> m ()
setLocalDescription self description = liftDOM (void (((self ^. jsf "setLocalDescription" [P.maybe (P.return jsUndefined) toJSVal description]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setLocalDescription MDN RTCPeerConnection.setLocalDescription documentation>
setLocalDescriptionSuccessCallbackFailureCallback :: (MonadDOM m) => RTCPeerConnection -> RTCLocalSessionDescriptionInit -> VoidFunction -> RTCPeerConnectionErrorCallback -> m ()
setLocalDescriptionSuccessCallbackFailureCallback self description successCallback failureCallback = liftDOM (void (((self ^. jsf "setLocalDescription" [toJSVal description, toJSVal successCallback, toJSVal failureCallback]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setRemoteDescription MDN RTCPeerConnection.setRemoteDescription documentation>
setRemoteDescription :: (MonadDOM m) => RTCPeerConnection -> RTCSessionDescriptionInit -> m ()
setRemoteDescription self description = liftDOM (void (((self ^. jsf "setRemoteDescription" [toJSVal description]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setRemoteDescription MDN RTCPeerConnection.setRemoteDescription documentation>
setRemoteDescriptionSuccessCallbackFailureCallback :: (MonadDOM m) => RTCPeerConnection -> RTCSessionDescriptionInit -> VoidFunction -> RTCPeerConnectionErrorCallback -> m ()
setRemoteDescriptionSuccessCallbackFailureCallback self description successCallback failureCallback = liftDOM (void (((self ^. jsf "setRemoteDescription" [toJSVal description, toJSVal successCallback, toJSVal failureCallback]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/generateCertificate_static MDN RTCPeerConnection.generateCertificate documentation>
generateCertificate :: (MonadDOM m, IsAlgorithmIdentifier keygenAlgorithm) => keygenAlgorithm -> m RTCCertificate
generateCertificate keygenAlgorithm = liftDOM ((((((jsg "RTCPeerConnection") ^. jsf "generateCertificate" [toJSVal keygenAlgorithm]) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/generateCertificate_static MDN RTCPeerConnection.generateCertificate documentation>
generateCertificate_ :: (MonadDOM m, IsAlgorithmIdentifier keygenAlgorithm) => keygenAlgorithm -> m ()
generateCertificate_ keygenAlgorithm = liftDOM (void ((((jsg "RTCPeerConnection") ^. jsf "generateCertificate" [toJSVal keygenAlgorithm]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/localDescription MDN RTCPeerConnection.localDescription documentation>
getLocalDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
getLocalDescription self = liftDOM (((self ^. js "localDescription") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/localDescription MDN RTCPeerConnection.localDescription documentation>
getLocalDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription
getLocalDescriptionUnchecked self = liftDOM (((self ^. js "localDescription") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentLocalDescription MDN RTCPeerConnection.currentLocalDescription documentation>
getCurrentLocalDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
getCurrentLocalDescription self = liftDOM (((self ^. js "currentLocalDescription") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentLocalDescription MDN RTCPeerConnection.currentLocalDescription documentation>
getCurrentLocalDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription
getCurrentLocalDescriptionUnchecked self = liftDOM (((self ^. js "currentLocalDescription") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingLocalDescription MDN RTCPeerConnection.pendingLocalDescription documentation>
getPendingLocalDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
getPendingLocalDescription self = liftDOM (((self ^. js "pendingLocalDescription") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingLocalDescription MDN RTCPeerConnection.pendingLocalDescription documentation>
getPendingLocalDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription
getPendingLocalDescriptionUnchecked self = liftDOM (((self ^. js "pendingLocalDescription") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/remoteDescription MDN RTCPeerConnection.remoteDescription documentation>
getRemoteDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
getRemoteDescription self = liftDOM (((self ^. js "remoteDescription") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/remoteDescription MDN RTCPeerConnection.remoteDescription documentation>
getRemoteDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription
getRemoteDescriptionUnchecked self = liftDOM (((self ^. js "remoteDescription") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentRemoteDescription MDN RTCPeerConnection.currentRemoteDescription documentation>
getCurrentRemoteDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
getCurrentRemoteDescription self = liftDOM (((self ^. js "currentRemoteDescription") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentRemoteDescription MDN RTCPeerConnection.currentRemoteDescription documentation>
getCurrentRemoteDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription
getCurrentRemoteDescriptionUnchecked self = liftDOM (((self ^. js "currentRemoteDescription") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingRemoteDescription MDN RTCPeerConnection.pendingRemoteDescription documentation>
getPendingRemoteDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
getPendingRemoteDescription self = liftDOM (((self ^. js "pendingRemoteDescription") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingRemoteDescription MDN RTCPeerConnection.pendingRemoteDescription documentation>
getPendingRemoteDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription
getPendingRemoteDescriptionUnchecked self = liftDOM (((self ^. js "pendingRemoteDescription") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/signalingState MDN RTCPeerConnection.signalingState documentation>
getSignalingState :: (MonadDOM m) => RTCPeerConnection -> m RTCSignalingState
getSignalingState self = liftDOM (((self ^. js "signalingState") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceGatheringState MDN RTCPeerConnection.iceGatheringState documentation>
getIceGatheringState :: (MonadDOM m) => RTCPeerConnection -> m RTCIceGatheringState
getIceGatheringState self = liftDOM (((self ^. js "iceGatheringState") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceConnectionState MDN RTCPeerConnection.iceConnectionState documentation>
getIceConnectionState :: (MonadDOM m) => RTCPeerConnection -> m RTCIceConnectionState
getIceConnectionState self = liftDOM (((self ^. js "iceConnectionState") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/connectionState MDN RTCPeerConnection.connectionState documentation>
getConnectionState :: (MonadDOM m) => RTCPeerConnection -> m RTCPeerConnectionState
getConnectionState self = liftDOM (((self ^. js "connectionState") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates MDN RTCPeerConnection.canTrickleIceCandidates documentation>
getCanTrickleIceCandidates :: (MonadDOM m) => RTCPeerConnection -> m (Maybe Bool)
getCanTrickleIceCandidates self = liftDOM (((self ^. js "canTrickleIceCandidates") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates MDN RTCPeerConnection.canTrickleIceCandidates documentation>
getCanTrickleIceCandidatesUnchecked :: (MonadDOM m) => RTCPeerConnection -> m Bool
getCanTrickleIceCandidatesUnchecked self = liftDOM (((self ^. js "canTrickleIceCandidates") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/sctp MDN RTCPeerConnection.sctp documentation>
getSctp :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSctpTransport)
getSctp self = liftDOM (((self ^. js "sctp") >>= fromJSValUnchecked))

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

-- | <https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/sctp MDN RTCPeerConnection.sctp documentation>
getSctpUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSctpTransport
getSctpUnchecked self = liftDOM (((self ^. js "sctp") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-onnegotiationneeded negotiationneeded event>
negotiationNeeded :: EventName RTCPeerConnection Event
negotiationNeeded = unsafeEventName (toJSString "negotiationneeded")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-onicecandidate icecandidate event>
iceCandidate :: EventName RTCPeerConnection RTCPeerConnectionIceEvent
iceCandidate = unsafeEventName (toJSString "icecandidate")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-onicecandidateerror icecandidateerror event>
icecandidateerror :: EventName RTCPeerConnection RTCPeerConnectionIceErrorEvent
icecandidateerror = unsafeEventName (toJSString "icecandidateerror")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-onsignalingstatechange signalingstatechange event>
signalingStateChange :: EventName RTCPeerConnection Event
signalingStateChange = unsafeEventName (toJSString "signalingstatechange")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-oniceconnectionstatechange iceconnectionstatechange event>
iceConnectionStateChange :: EventName RTCPeerConnection Event
iceConnectionStateChange = unsafeEventName (toJSString "iceconnectionstatechange")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-onicegatheringstatechange icegatheringstatechange event>
icegatheringstatechange :: EventName RTCPeerConnection Event
icegatheringstatechange = unsafeEventName (toJSString "icegatheringstatechange")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-onconnectionstatechange connectionstatechange event>
connectionstatechange :: EventName RTCPeerConnection Event
connectionstatechange = unsafeEventName (toJSString "connectionstatechange")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-ontrack track event>
track :: EventName RTCPeerConnection RTCTrackEvent
track = unsafeEventName (toJSString "track")

-- | <https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-ondatachannel datachannel event>
dataChannel :: EventName RTCPeerConnection RTCDataChannelEvent
dataChannel = unsafeEventName (toJSString "datachannel")