module JSDOM.Generated.MediaStream
(newMediaStream, newMediaStream', newMediaStream'', getAudioTracks,
getVideoTracks, getTracks, addTrack, removeTrack, getTrackById,
clone, getId, getActive, active, inactive, addTrackEvent,
removeTrackEvent, MediaStream, castToMediaStream, gTypeMediaStream)
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 JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName)
import JSDOM.Enums
newMediaStream :: (MonadDOM m) => m MediaStream
newMediaStream
= liftDOM (MediaStream <$> new (jsg "MediaStream") ())
newMediaStream' ::
(MonadDOM m) => Maybe MediaStream -> m MediaStream
newMediaStream' stream
= liftDOM
(MediaStream <$> new (jsg "MediaStream") [toJSVal stream])
newMediaStream'' ::
(MonadDOM m, IsMediaStreamTrack tracks) =>
[Maybe tracks] -> m MediaStream
newMediaStream'' tracks
= liftDOM
(MediaStream <$> new (jsg "MediaStream") [toJSVal (array tracks)])
getAudioTracks ::
(MonadDOM m) => MediaStream -> m [Maybe MediaStreamTrack]
getAudioTracks self
= liftDOM ((self ^. js "getAudioTracks") >>= fromJSArray)
getVideoTracks ::
(MonadDOM m) => MediaStream -> m [Maybe MediaStreamTrack]
getVideoTracks self
= liftDOM ((self ^. js "getVideoTracks") >>= fromJSArray)
getTracks ::
(MonadDOM m) => MediaStream -> m [Maybe MediaStreamTrack]
getTracks self = liftDOM ((self ^. js "getTracks") >>= fromJSArray)
addTrack ::
(MonadDOM m, IsMediaStreamTrack track) =>
MediaStream -> Maybe track -> m ()
addTrack self track
= liftDOM (void (self ^. jsf "addTrack" [toJSVal track]))
removeTrack ::
(MonadDOM m, IsMediaStreamTrack track) =>
MediaStream -> Maybe track -> m ()
removeTrack self track
= liftDOM (void (self ^. jsf "removeTrack" [toJSVal track]))
getTrackById ::
(MonadDOM m, ToJSString trackId) =>
MediaStream -> trackId -> m (Maybe MediaStreamTrack)
getTrackById self trackId
= liftDOM
((self ^. jsf "getTrackById" [toJSVal trackId]) >>= fromJSVal)
clone :: (MonadDOM m) => MediaStream -> m (Maybe MediaStream)
clone self = liftDOM ((self ^. js "clone") >>= fromJSVal)
getId ::
(MonadDOM m, FromJSString result) => MediaStream -> m result
getId self = liftDOM ((self ^. js "id") >>= fromJSValUnchecked)
getActive :: (MonadDOM m) => MediaStream -> m Bool
getActive self = liftDOM ((self ^. js "active") >>= valToBool)
active :: EventName MediaStream Event
active = unsafeEventName (toJSString "active")
inactive :: EventName MediaStream Event
inactive = unsafeEventName (toJSString "inactive")
addTrackEvent :: EventName MediaStream Event
addTrackEvent = unsafeEventName (toJSString "addtrack")
removeTrackEvent :: EventName MediaStream Event
removeTrackEvent = unsafeEventName (toJSString "removetrack")