{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.Generated.RTCPeerConnection (newRTCPeerConnection, createOffer, createAnswer, setLocalDescription, setRemoteDescription, updateIce, addIceCandidate, getLocalStreams, getRemoteStreams, getStreamById, getConfiguration, addStream, removeStream, getStats, createDataChannel, createDTMFSender, close, getLocalDescription, getRemoteDescription, getSignalingState, getIceGatheringState, getIceConnectionState, negotiationNeeded, iceCandidate, signalingStateChange, addStreamEvent, removeStreamEvent, iceConnectionStateChange, dataChannel, RTCPeerConnection, castToRTCPeerConnection, gTypeRTCPeerConnection) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) 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 Language.Javascript.JSaddle.DOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import Language.Javascript.JSaddle.DOM.EventTargetClosures (EventName, unsafeEventName) import Language.Javascript.JSaddle.DOM.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 ^. js "getLocalStreams") >>= fromJSArray) -- | getRemoteStreams :: (MonadDOM m) => RTCPeerConnection -> m [Maybe MediaStream] getRemoteStreams self = liftDOM ((self ^. js "getRemoteStreams") >>= fromJSArray) -- | getStreamById :: (MonadDOM m, ToJSString streamId) => RTCPeerConnection -> streamId -> m (Maybe MediaStream) getStreamById self streamId = liftDOM ((self ^. jsf "getStreamById" [toJSVal streamId]) >>= fromJSVal) -- | getConfiguration :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCConfiguration) getConfiguration self = liftDOM ((self ^. js "getConfiguration") >>= fromJSVal) -- | 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) -- | createDTMFSender :: (MonadDOM m, IsMediaStreamTrack track) => RTCPeerConnection -> Maybe track -> m (Maybe RTCDTMFSender) createDTMFSender self track = liftDOM ((self ^. jsf "createDTMFSender" [toJSVal track]) >>= fromJSVal) -- | close :: (MonadDOM m) => RTCPeerConnection -> m () close self = liftDOM (void (self ^. js "close")) -- | getLocalDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription) getLocalDescription self = liftDOM ((self ^. js "localDescription") >>= fromJSVal) -- | getRemoteDescription :: (MonadDOM m) => RTCPeerConnection -> m (Maybe RTCSessionDescription) getRemoteDescription self = liftDOM ((self ^. js "remoteDescription") >>= fromJSVal) -- | 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")