{-# LANGUAGE PatternSynonyms #-} -- For HasCallStack compatibility {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module JSDOM.Generated.RTCPeerConnection (newRTCPeerConnection, createOffer, createAnswer, setLocalDescription, setRemoteDescription, updateIce, addIceCandidate, getLocalStreams, getLocalStreams_, getRemoteStreams, getRemoteStreams_, getStreamById, getStreamById_, getStreamByIdUnsafe, getStreamByIdUnchecked, getConfiguration, getConfiguration_, getConfigurationUnsafe, getConfigurationUnchecked, addStream, removeStream, getStats, createDataChannel, createDataChannel_, createDataChannelUnsafe, createDataChannelUnchecked, createDTMFSender, createDTMFSender_, createDTMFSenderUnsafe, createDTMFSenderUnchecked, close, getLocalDescription, getLocalDescriptionUnsafe, getLocalDescriptionUnchecked, getRemoteDescription, getRemoteDescriptionUnsafe, getRemoteDescriptionUnchecked, getSignalingState, getIceGatheringState, getIceConnectionState, negotiationNeeded, iceCandidate, signalingStateChange, addStreamEvent, removeStreamEvent, iceConnectionStateChange, dataChannel, RTCPeerConnection(..), gTypeRTCPeerConnection) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import qualified Prelude (error) import Data.Typeable (Typeable) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array) import Data.Int (Int64) import Data.Word (Word, Word64) import JSDOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import JSDOM.EventTargetClosures (EventName, unsafeEventName) import JSDOM.Enums -- | newRTCPeerConnection :: (MonadDOM m, IsDictionary rtcConfiguration) => Maybe rtcConfiguration -> m RTCPeerConnection newRTCPeerConnection rtcConfiguration = liftDOM (RTCPeerConnection <$> new (jsg "RTCPeerConnection") [toJSVal rtcConfiguration]) -- | createOffer :: (MonadDOM m, IsDictionary offerOptions) => RTCPeerConnection -> Maybe RTCSessionDescriptionCallback -> Maybe RTCPeerConnectionErrorCallback -> Maybe offerOptions -> m () createOffer self successCallback failureCallback offerOptions = liftDOM (void (self ^. jsf "createOffer" [toJSVal successCallback, toJSVal failureCallback, toJSVal offerOptions])) -- | createAnswer :: (MonadDOM m, IsDictionary answerOptions) => RTCPeerConnection -> Maybe RTCSessionDescriptionCallback -> Maybe RTCPeerConnectionErrorCallback -> Maybe answerOptions -> m () createAnswer self successCallback failureCallback answerOptions = liftDOM (void (self ^. jsf "createAnswer" [toJSVal successCallback, toJSVal failureCallback, toJSVal answerOptions])) -- | setLocalDescription :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCSessionDescription -> Maybe VoidCallback -> Maybe RTCPeerConnectionErrorCallback -> m () setLocalDescription self description successCallback failureCallback = liftDOM (void (self ^. jsf "setLocalDescription" [toJSVal description, toJSVal successCallback, toJSVal failureCallback])) -- | setRemoteDescription :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCSessionDescription -> Maybe VoidCallback -> Maybe RTCPeerConnectionErrorCallback -> m () setRemoteDescription self description successCallback failureCallback = liftDOM (void (self ^. jsf "setRemoteDescription" [toJSVal description, toJSVal successCallback, toJSVal failureCallback])) -- | updateIce :: (MonadDOM m, IsDictionary configuration) => RTCPeerConnection -> Maybe configuration -> m () updateIce self configuration = liftDOM (void (self ^. jsf "updateIce" [toJSVal configuration])) -- | addIceCandidate :: (MonadDOM m) => RTCPeerConnection -> Maybe RTCIceCandidate -> Maybe VoidCallback -> Maybe RTCPeerConnectionErrorCallback -> m () addIceCandidate self candidate successCallback failureCallback = liftDOM (void (self ^. jsf "addIceCandidate" [toJSVal candidate, toJSVal successCallback, toJSVal failureCallback])) -- | getLocalStreams :: (MonadDOM m) => RTCPeerConnection -> m [Maybe MediaStream] getLocalStreams self = liftDOM ((self ^. jsf "getLocalStreams" ()) >>= fromJSArray) -- | getLocalStreams_ :: (MonadDOM m) => RTCPeerConnection -> m () getLocalStreams_ self = liftDOM (void (self ^. jsf "getLocalStreams" ())) -- | getRemoteStreams :: (MonadDOM m) => RTCPeerConnection -> m [Maybe MediaStream] getRemoteStreams self = liftDOM ((self ^. jsf "getRemoteStreams" ()) >>= fromJSArray) -- | getRemoteStreams_ :: (MonadDOM m) => RTCPeerConnection -> m () getRemoteStreams_ self = liftDOM (void (self ^. jsf "getRemoteStreams" ())) -- | getStreamById :: (MonadDOM m, ToJSString streamId) => RTCPeerConnection -> streamId -> m (Maybe MediaStream) getStreamById self streamId = liftDOM ((self ^. jsf "getStreamById" [toJSVal streamId]) >>= fromJSVal) -- | getStreamById_ :: (MonadDOM m, ToJSString streamId) => RTCPeerConnection -> streamId -> m () getStreamById_ self streamId = liftDOM (void (self ^. jsf "getStreamById" [toJSVal streamId])) -- | getStreamByIdUnsafe :: (MonadDOM m, ToJSString streamId, HasCallStack) => RTCPeerConnection -> streamId -> m MediaStream getStreamByIdUnsafe self streamId = liftDOM (((self ^. jsf "getStreamById" [toJSVal streamId]) >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getStreamByIdUnchecked :: (MonadDOM m, ToJSString streamId) => RTCPeerConnection -> streamId -> m MediaStream getStreamByIdUnchecked self streamId = liftDOM ((self ^. jsf "getStreamById" [toJSVal streamId]) >>= fromJSValUnchecked) -- | getConfiguration :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCConfiguration) getConfiguration self = liftDOM ((self ^. jsf "getConfiguration" ()) >>= fromJSVal) -- | getConfiguration_ :: (MonadDOM m) => RTCPeerConnection -> m () getConfiguration_ self = liftDOM (void (self ^. jsf "getConfiguration" ())) -- | getConfigurationUnsafe :: (MonadDOM m, HasCallStack) => RTCPeerConnection -> m RTCConfiguration getConfigurationUnsafe self = liftDOM (((self ^. jsf "getConfiguration" ()) >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getConfigurationUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCConfiguration getConfigurationUnchecked self = liftDOM ((self ^. jsf "getConfiguration" ()) >>= fromJSValUnchecked) -- | addStream :: (MonadDOM m) => RTCPeerConnection -> Maybe MediaStream -> m () addStream self stream = liftDOM (void (self ^. jsf "addStream" [toJSVal stream])) -- | removeStream :: (MonadDOM m) => RTCPeerConnection -> Maybe MediaStream -> m () removeStream self stream = liftDOM (void (self ^. jsf "removeStream" [toJSVal stream])) -- | getStats :: (MonadDOM m, IsMediaStreamTrack selector) => RTCPeerConnection -> Maybe RTCStatsCallback -> Maybe RTCPeerConnectionErrorCallback -> Maybe selector -> m () getStats self successCallback failureCallback selector = liftDOM (void (self ^. jsf "getStats" [toJSVal successCallback, toJSVal failureCallback, toJSVal selector])) -- | createDataChannel :: (MonadDOM m, ToJSString label, IsDictionary options) => RTCPeerConnection -> Maybe label -> Maybe options -> m (Maybe RTCDataChannel) createDataChannel self label options = liftDOM ((self ^. jsf "createDataChannel" [toJSVal label, toJSVal options]) >>= fromJSVal) -- | createDataChannel_ :: (MonadDOM m, ToJSString label, IsDictionary options) => RTCPeerConnection -> Maybe label -> Maybe options -> m () createDataChannel_ self label options = liftDOM (void (self ^. jsf "createDataChannel" [toJSVal label, toJSVal options])) -- | createDataChannelUnsafe :: (MonadDOM m, ToJSString label, IsDictionary options, HasCallStack) => RTCPeerConnection -> Maybe label -> Maybe options -> m RTCDataChannel createDataChannelUnsafe self label options = liftDOM (((self ^. jsf "createDataChannel" [toJSVal label, toJSVal options]) >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | createDataChannelUnchecked :: (MonadDOM m, ToJSString label, IsDictionary options) => RTCPeerConnection -> Maybe label -> Maybe options -> m RTCDataChannel createDataChannelUnchecked self label options = liftDOM ((self ^. jsf "createDataChannel" [toJSVal label, toJSVal options]) >>= fromJSValUnchecked) -- | createDTMFSender :: (MonadDOM m, IsMediaStreamTrack track) => RTCPeerConnection -> Maybe track -> m (Maybe RTCDTMFSender) createDTMFSender self track = liftDOM ((self ^. jsf "createDTMFSender" [toJSVal track]) >>= fromJSVal) -- | createDTMFSender_ :: (MonadDOM m, IsMediaStreamTrack track) => RTCPeerConnection -> Maybe track -> m () createDTMFSender_ self track = liftDOM (void (self ^. jsf "createDTMFSender" [toJSVal track])) -- | createDTMFSenderUnsafe :: (MonadDOM m, IsMediaStreamTrack track, HasCallStack) => RTCPeerConnection -> Maybe track -> m RTCDTMFSender createDTMFSenderUnsafe self track = liftDOM (((self ^. jsf "createDTMFSender" [toJSVal track]) >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | createDTMFSenderUnchecked :: (MonadDOM m, IsMediaStreamTrack track) => RTCPeerConnection -> Maybe track -> m RTCDTMFSender createDTMFSenderUnchecked self track = liftDOM ((self ^. jsf "createDTMFSender" [toJSVal track]) >>= fromJSValUnchecked) -- | close :: (MonadDOM m) => RTCPeerConnection -> m () close self = liftDOM (void (self ^. jsf "close" ())) -- | getLocalDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription) getLocalDescription self = liftDOM ((self ^. js "localDescription") >>= fromJSVal) -- | getLocalDescriptionUnsafe :: (MonadDOM m, HasCallStack) => RTCPeerConnection -> m RTCSessionDescription getLocalDescriptionUnsafe self = liftDOM (((self ^. js "localDescription") >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getLocalDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription getLocalDescriptionUnchecked self = liftDOM ((self ^. js "localDescription") >>= fromJSValUnchecked) -- | getRemoteDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription) getRemoteDescription self = liftDOM ((self ^. js "remoteDescription") >>= fromJSVal) -- | getRemoteDescriptionUnsafe :: (MonadDOM m, HasCallStack) => RTCPeerConnection -> m RTCSessionDescription getRemoteDescriptionUnsafe self = liftDOM (((self ^. js "remoteDescription") >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getRemoteDescriptionUnchecked :: (MonadDOM m) => RTCPeerConnection -> m RTCSessionDescription getRemoteDescriptionUnchecked self = liftDOM ((self ^. js "remoteDescription") >>= fromJSValUnchecked) -- | getSignalingState :: (MonadDOM m, FromJSString result) => RTCPeerConnection -> m result getSignalingState self = liftDOM ((self ^. js "signalingState") >>= fromJSValUnchecked) -- | getIceGatheringState :: (MonadDOM m, FromJSString result) => RTCPeerConnection -> m result getIceGatheringState self = liftDOM ((self ^. js "iceGatheringState") >>= fromJSValUnchecked) -- | getIceConnectionState :: (MonadDOM m, FromJSString result) => RTCPeerConnection -> m result getIceConnectionState self = liftDOM ((self ^. js "iceConnectionState") >>= fromJSValUnchecked) -- | negotiationNeeded :: EventName RTCPeerConnection Event negotiationNeeded = unsafeEventName (toJSString "negotiationneeded") -- | iceCandidate :: EventName RTCPeerConnection RTCIceCandidateEvent iceCandidate = unsafeEventName (toJSString "icecandidate") -- | signalingStateChange :: EventName RTCPeerConnection Event signalingStateChange = unsafeEventName (toJSString "signalingstatechange") -- | addStreamEvent :: EventName RTCPeerConnection Event addStreamEvent = unsafeEventName (toJSString "addstream") -- | removeStreamEvent :: EventName RTCPeerConnection Event removeStreamEvent = unsafeEventName (toJSString "removestream") -- | iceConnectionStateChange :: EventName RTCPeerConnection Event iceConnectionStateChange = unsafeEventName (toJSString "iceconnectionstatechange") -- | dataChannel :: EventName RTCPeerConnection Event dataChannel = unsafeEventName (toJSString "datachannel")