packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/RTCTrackEventInit.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.RTCTrackEventInit
       (newRTCTrackEventInit, setReceiver, getReceiver, setTrack, getTrack, setStreams, getStreams, getStreamsUnsafe, getStreamsUnchecked, setTransceiver, getTransceiver, RTCTrackEventInit(..), gTypeRTCTrackEventInit)
       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-rtctrackeventinit RTCTrackEventInit specification>
newRTCTrackEventInit :: (MonadDOM m, IsMediaStreamTrack track) => RTCRtpReceiver -> track -> RTCRtpTransceiver -> m RTCTrackEventInit
newRTCTrackEventInit receiver track transceiver = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "receiver" (toJSVal receiver)) P.>> (o ^. jss "track" (toJSVal track)) P.>> (o ^. jss "transceiver" (toJSVal transceiver)) P.>> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-receiver RTCTrackEventInit.receiver specification>
setReceiver :: (MonadDOM m) => RTCTrackEventInit -> RTCRtpReceiver -> m ()
setReceiver self val = liftDOM (void (self ^. jss "receiver" (toJSVal val)))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-receiver RTCTrackEventInit.receiver specification>
getReceiver :: (MonadDOM m) => RTCTrackEventInit -> m RTCRtpReceiver
getReceiver self = liftDOM (((self ^. js "receiver") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-track RTCTrackEventInit.track specification>
setTrack :: (MonadDOM m, IsMediaStreamTrack val) => RTCTrackEventInit -> val -> m ()
setTrack self val = liftDOM (void (self ^. jss "track" (toJSVal val)))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-track RTCTrackEventInit.track specification>
getTrack :: (MonadDOM m) => RTCTrackEventInit -> m MediaStreamTrack
getTrack self = liftDOM (((self ^. js "track") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-streams RTCTrackEventInit.streams specification>
setStreams :: (MonadDOM m) => RTCTrackEventInit -> [MediaStream] -> m ()
setStreams self val = liftDOM (void (self ^. jss "streams" (toJSVal val)))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-streams RTCTrackEventInit.streams specification>
getStreams :: (MonadDOM m) => RTCTrackEventInit -> m (Maybe [MediaStream])
getStreams self = liftDOM (((self ^. js "streams") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-streams RTCTrackEventInit.streams specification>
getStreamsUnsafe :: (MonadDOM m, HasCallStack) => RTCTrackEventInit -> m [MediaStream]
getStreamsUnsafe self = liftDOM ((((self ^. js "streams") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-streams RTCTrackEventInit.streams specification>
getStreamsUnchecked :: (MonadDOM m) => RTCTrackEventInit -> m [MediaStream]
getStreamsUnchecked self = liftDOM (((self ^. js "streams") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-transceiver RTCTrackEventInit.transceiver specification>
setTransceiver :: (MonadDOM m) => RTCTrackEventInit -> RTCRtpTransceiver -> m ()
setTransceiver self val = liftDOM (void (self ^. jss "transceiver" (toJSVal val)))

-- | <https://w3c.github.io/webrtc-pc/#dom-rtctrackeventinit-transceiver RTCTrackEventInit.transceiver specification>
getTransceiver :: (MonadDOM m) => RTCTrackEventInit -> m RTCRtpTransceiver
getTransceiver self = liftDOM (((self ^. js "transceiver") >>= fromJSValUnchecked))