{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.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 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 -- | 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")