{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.Generated.HTMLMediaElement (load, canPlayType, play, pause, fastSeek, webkitGenerateKeyRequest, webkitAddKey, webkitCancelKeyRequest, webkitSetMediaKeys, addTextTrack, getVideoPlaybackQuality, webkitShowPlaybackTargetPicker, pattern NETWORK_EMPTY, pattern NETWORK_IDLE, pattern NETWORK_LOADING, pattern NETWORK_NO_SOURCE, pattern HAVE_NOTHING, pattern HAVE_METADATA, pattern HAVE_CURRENT_DATA, pattern HAVE_FUTURE_DATA, pattern HAVE_ENOUGH_DATA, getError, setSrc, getSrc, getCurrentSrc, getNetworkState, setPreload, getPreload, getBuffered, getReadyState, getSeeking, setCurrentTime, getCurrentTime, getDuration, getPaused, setDefaultPlaybackRate, getDefaultPlaybackRate, setPlaybackRate, getPlaybackRate, getPlayed, getSeekable, getEnded, setAutoplay, getAutoplay, setLoop, getLoop, setControls, getControls, setVolume, getVolume, setMuted, getMuted, setDefaultMuted, getDefaultMuted, emptied, loadedMetadata, loadedData, canPlay, canPlayThrough, playing, ended, waiting, durationChange, timeUpdate, playEvent, pauseEvent, rateChange, volumeChange, setWebkitPreservesPitch, getWebkitPreservesPitch, getWebkitHasClosedCaptions, setWebkitClosedCaptionsVisible, getWebkitClosedCaptionsVisible, getWebkitAudioDecodedByteCount, getWebkitVideoDecodedByteCount, webKitKeyAdded, webKitKeyError, webKitKeyMessage, webKitNeedKey, getWebkitKeys, getAudioTracks, getTextTracks, getVideoTracks, setMediaGroup, getMediaGroup, setController, getController, getWebkitCurrentPlaybackTargetIsWireless, webKitCurrentPlaybackTargetIsWirelessChanged, webKitPlaybackTargetAvailabilityChanged, setSrcObject, getSrcObject, HTMLMediaElement, castToHTMLMediaElement, gTypeHTMLMediaElement, IsHTMLMediaElement, toHTMLMediaElement) 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 -- | load :: (MonadDOM m, IsHTMLMediaElement self) => self -> m () load self = liftDOM (void ((toHTMLMediaElement self) ^. js "load")) -- | canPlayType :: (MonadDOM m, IsHTMLMediaElement self, ToJSString type', ToJSString keySystem, FromJSString result) => self -> type' -> Maybe keySystem -> m result canPlayType self type' keySystem = liftDOM (((toHTMLMediaElement self) ^. jsf "canPlayType" [toJSVal type', toJSVal keySystem]) >>= fromJSValUnchecked) -- | play :: (MonadDOM m, IsHTMLMediaElement self) => self -> m () play self = liftDOM (void ((toHTMLMediaElement self) ^. js "play")) -- | pause :: (MonadDOM m, IsHTMLMediaElement self) => self -> m () pause self = liftDOM (void ((toHTMLMediaElement self) ^. js "pause")) -- | fastSeek :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m () fastSeek self time = liftDOM (void ((toHTMLMediaElement self) ^. jsf "fastSeek" [toJSVal time])) -- | webkitGenerateKeyRequest :: (MonadDOM m, IsHTMLMediaElement self, ToJSString keySystem, IsUint8Array initData) => self -> Maybe keySystem -> Maybe initData -> m () webkitGenerateKeyRequest self keySystem initData = liftDOM (void ((toHTMLMediaElement self) ^. jsf "webkitGenerateKeyRequest" [toJSVal keySystem, toJSVal initData])) -- | webkitAddKey :: (MonadDOM m, IsHTMLMediaElement self, ToJSString keySystem, IsUint8Array key, IsUint8Array initData, ToJSString sessionId) => self -> Maybe keySystem -> Maybe key -> Maybe initData -> sessionId -> m () webkitAddKey self keySystem key initData sessionId = liftDOM (void ((toHTMLMediaElement self) ^. jsf "webkitAddKey" [toJSVal keySystem, toJSVal key, toJSVal initData, toJSVal sessionId])) -- | webkitCancelKeyRequest :: (MonadDOM m, IsHTMLMediaElement self, ToJSString keySystem, ToJSString sessionId) => self -> Maybe keySystem -> sessionId -> m () webkitCancelKeyRequest self keySystem sessionId = liftDOM (void ((toHTMLMediaElement self) ^. jsf "webkitCancelKeyRequest" [toJSVal keySystem, toJSVal sessionId])) -- | webkitSetMediaKeys :: (MonadDOM m, IsHTMLMediaElement self) => self -> Maybe MediaKeys -> m () webkitSetMediaKeys self mediaKeys = liftDOM (void ((toHTMLMediaElement self) ^. jsf "webkitSetMediaKeys" [toJSVal mediaKeys])) -- | addTextTrack :: (MonadDOM m, IsHTMLMediaElement self, ToJSString kind, ToJSString label, ToJSString language) => self -> kind -> label -> language -> m (Maybe TextTrack) addTextTrack self kind label language = liftDOM (((toHTMLMediaElement self) ^. jsf "addTextTrack" [toJSVal kind, toJSVal label, toJSVal language]) >>= fromJSVal) -- | getVideoPlaybackQuality :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe VideoPlaybackQuality) getVideoPlaybackQuality self = liftDOM (((toHTMLMediaElement self) ^. js "getVideoPlaybackQuality") >>= fromJSVal) -- | webkitShowPlaybackTargetPicker :: (MonadDOM m, IsHTMLMediaElement self) => self -> m () webkitShowPlaybackTargetPicker self = liftDOM (void ((toHTMLMediaElement self) ^. js "webkitShowPlaybackTargetPicker")) pattern NETWORK_EMPTY = 0 pattern NETWORK_IDLE = 1 pattern NETWORK_LOADING = 2 pattern NETWORK_NO_SOURCE = 3 pattern HAVE_NOTHING = 0 pattern HAVE_METADATA = 1 pattern HAVE_CURRENT_DATA = 2 pattern HAVE_FUTURE_DATA = 3 pattern HAVE_ENOUGH_DATA = 4 -- | getError :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe MediaError) getError self = liftDOM (((toHTMLMediaElement self) ^. js "error") >>= fromJSVal) -- | setSrc :: (MonadDOM m, IsHTMLMediaElement self, ToJSString val) => self -> val -> m () setSrc self val = liftDOM ((toHTMLMediaElement self) ^. jss "src" (toJSVal val)) -- | getSrc :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result getSrc self = liftDOM (((toHTMLMediaElement self) ^. js "src") >>= fromJSValUnchecked) -- | getCurrentSrc :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result getCurrentSrc self = liftDOM (((toHTMLMediaElement self) ^. js "currentSrc") >>= fromJSValUnchecked) -- | getNetworkState :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Word getNetworkState self = liftDOM (round <$> (((toHTMLMediaElement self) ^. js "networkState") >>= valToNumber)) -- | setPreload :: (MonadDOM m, IsHTMLMediaElement self, ToJSString val) => self -> val -> m () setPreload self val = liftDOM ((toHTMLMediaElement self) ^. jss "preload" (toJSVal val)) -- | getPreload :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result getPreload self = liftDOM (((toHTMLMediaElement self) ^. js "preload") >>= fromJSValUnchecked) -- | getBuffered :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe TimeRanges) getBuffered self = liftDOM (((toHTMLMediaElement self) ^. js "buffered") >>= fromJSVal) -- | getReadyState :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Word getReadyState self = liftDOM (round <$> (((toHTMLMediaElement self) ^. js "readyState") >>= valToNumber)) -- | getSeeking :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getSeeking self = liftDOM (((toHTMLMediaElement self) ^. js "seeking") >>= valToBool) -- | setCurrentTime :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m () setCurrentTime self val = liftDOM ((toHTMLMediaElement self) ^. jss "currentTime" (toJSVal val)) -- | getCurrentTime :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double getCurrentTime self = liftDOM (((toHTMLMediaElement self) ^. js "currentTime") >>= valToNumber) -- | getDuration :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double getDuration self = liftDOM (((toHTMLMediaElement self) ^. js "duration") >>= valToNumber) -- | getPaused :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getPaused self = liftDOM (((toHTMLMediaElement self) ^. js "paused") >>= valToBool) -- | setDefaultPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m () setDefaultPlaybackRate self val = liftDOM ((toHTMLMediaElement self) ^. jss "defaultPlaybackRate" (toJSVal val)) -- | getDefaultPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double getDefaultPlaybackRate self = liftDOM (((toHTMLMediaElement self) ^. js "defaultPlaybackRate") >>= valToNumber) -- | setPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m () setPlaybackRate self val = liftDOM ((toHTMLMediaElement self) ^. jss "playbackRate" (toJSVal val)) -- | getPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double getPlaybackRate self = liftDOM (((toHTMLMediaElement self) ^. js "playbackRate") >>= valToNumber) -- | getPlayed :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe TimeRanges) getPlayed self = liftDOM (((toHTMLMediaElement self) ^. js "played") >>= fromJSVal) -- | getSeekable :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe TimeRanges) getSeekable self = liftDOM (((toHTMLMediaElement self) ^. js "seekable") >>= fromJSVal) -- | getEnded :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getEnded self = liftDOM (((toHTMLMediaElement self) ^. js "ended") >>= valToBool) -- | setAutoplay :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m () setAutoplay self val = liftDOM ((toHTMLMediaElement self) ^. jss "autoplay" (toJSVal val)) -- | getAutoplay :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getAutoplay self = liftDOM (((toHTMLMediaElement self) ^. js "autoplay") >>= valToBool) -- | setLoop :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m () setLoop self val = liftDOM ((toHTMLMediaElement self) ^. jss "loop" (toJSVal val)) -- | getLoop :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getLoop self = liftDOM (((toHTMLMediaElement self) ^. js "loop") >>= valToBool) -- | setControls :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m () setControls self val = liftDOM ((toHTMLMediaElement self) ^. jss "controls" (toJSVal val)) -- | getControls :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getControls self = liftDOM (((toHTMLMediaElement self) ^. js "controls") >>= valToBool) -- | setVolume :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m () setVolume self val = liftDOM ((toHTMLMediaElement self) ^. jss "volume" (toJSVal val)) -- | getVolume :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double getVolume self = liftDOM (((toHTMLMediaElement self) ^. js "volume") >>= valToNumber) -- | setMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m () setMuted self val = liftDOM ((toHTMLMediaElement self) ^. jss "muted" (toJSVal val)) -- | getMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getMuted self = liftDOM (((toHTMLMediaElement self) ^. js "muted") >>= valToBool) -- | setDefaultMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m () setDefaultMuted self val = liftDOM ((toHTMLMediaElement self) ^. jss "defaultMuted" (toJSVal val)) -- | getDefaultMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getDefaultMuted self = liftDOM (((toHTMLMediaElement self) ^. js "defaultMuted") >>= valToBool) -- | emptied :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event emptied = unsafeEventName (toJSString "emptied") -- | loadedMetadata :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event loadedMetadata = unsafeEventName (toJSString "loadedmetadata") -- | loadedData :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event loadedData = unsafeEventName (toJSString "loadeddata") -- | canPlay :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event canPlay = unsafeEventName (toJSString "canplay") -- | canPlayThrough :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event canPlayThrough = unsafeEventName (toJSString "canplaythrough") -- | playing :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event playing = unsafeEventName (toJSString "playing") -- | ended :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event ended = unsafeEventName (toJSString "ended") -- | waiting :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event waiting = unsafeEventName (toJSString "waiting") -- | durationChange :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event durationChange = unsafeEventName (toJSString "durationchange") -- | timeUpdate :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event timeUpdate = unsafeEventName (toJSString "timeupdate") -- | playEvent :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event playEvent = unsafeEventName (toJSString "play") -- | pauseEvent :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event pauseEvent = unsafeEventName (toJSString "pause") -- | rateChange :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event rateChange = unsafeEventName (toJSString "ratechange") -- | volumeChange :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event volumeChange = unsafeEventName (toJSString "volumechange") -- | setWebkitPreservesPitch :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m () setWebkitPreservesPitch self val = liftDOM ((toHTMLMediaElement self) ^. jss "webkitPreservesPitch" (toJSVal val)) -- | getWebkitPreservesPitch :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getWebkitPreservesPitch self = liftDOM (((toHTMLMediaElement self) ^. js "webkitPreservesPitch") >>= valToBool) -- | getWebkitHasClosedCaptions :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getWebkitHasClosedCaptions self = liftDOM (((toHTMLMediaElement self) ^. js "webkitHasClosedCaptions") >>= valToBool) -- | setWebkitClosedCaptionsVisible :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m () setWebkitClosedCaptionsVisible self val = liftDOM ((toHTMLMediaElement self) ^. jss "webkitClosedCaptionsVisible" (toJSVal val)) -- | getWebkitClosedCaptionsVisible :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getWebkitClosedCaptionsVisible self = liftDOM (((toHTMLMediaElement self) ^. js "webkitClosedCaptionsVisible") >>= valToBool) -- | getWebkitAudioDecodedByteCount :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Word getWebkitAudioDecodedByteCount self = liftDOM (round <$> (((toHTMLMediaElement self) ^. js "webkitAudioDecodedByteCount") >>= valToNumber)) -- | getWebkitVideoDecodedByteCount :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Word getWebkitVideoDecodedByteCount self = liftDOM (round <$> (((toHTMLMediaElement self) ^. js "webkitVideoDecodedByteCount") >>= valToNumber)) -- | webKitKeyAdded :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event webKitKeyAdded = unsafeEventName (toJSString "webkitkeyadded") -- | webKitKeyError :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event webKitKeyError = unsafeEventName (toJSString "webkitkeyerror") -- | webKitKeyMessage :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event webKitKeyMessage = unsafeEventName (toJSString "webkitkeymessage") -- | webKitNeedKey :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event webKitNeedKey = unsafeEventName (toJSString "webkitneedkey") -- | getWebkitKeys :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe MediaKeys) getWebkitKeys self = liftDOM (((toHTMLMediaElement self) ^. js "webkitKeys") >>= fromJSVal) -- | getAudioTracks :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe AudioTrackList) getAudioTracks self = liftDOM (((toHTMLMediaElement self) ^. js "audioTracks") >>= fromJSVal) -- | getTextTracks :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe TextTrackList) getTextTracks self = liftDOM (((toHTMLMediaElement self) ^. js "textTracks") >>= fromJSVal) -- | getVideoTracks :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe VideoTrackList) getVideoTracks self = liftDOM (((toHTMLMediaElement self) ^. js "videoTracks") >>= fromJSVal) -- | setMediaGroup :: (MonadDOM m, IsHTMLMediaElement self, ToJSString val) => self -> Maybe val -> m () setMediaGroup self val = liftDOM ((toHTMLMediaElement self) ^. jss "mediaGroup" (toJSVal val)) -- | getMediaGroup :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m (Maybe result) getMediaGroup self = liftDOM (((toHTMLMediaElement self) ^. js "mediaGroup") >>= fromMaybeJSString) -- | setController :: (MonadDOM m, IsHTMLMediaElement self) => self -> Maybe MediaController -> m () setController self val = liftDOM ((toHTMLMediaElement self) ^. jss "controller" (toJSVal val)) -- | getController :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe MediaController) getController self = liftDOM (((toHTMLMediaElement self) ^. js "controller") >>= fromJSVal) -- | getWebkitCurrentPlaybackTargetIsWireless :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool getWebkitCurrentPlaybackTargetIsWireless self = liftDOM (((toHTMLMediaElement self) ^. js "webkitCurrentPlaybackTargetIsWireless") >>= valToBool) -- | webKitCurrentPlaybackTargetIsWirelessChanged :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event webKitCurrentPlaybackTargetIsWirelessChanged = unsafeEventName (toJSString "webkitcurrentplaybacktargetiswirelesschanged") -- | webKitPlaybackTargetAvailabilityChanged :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event webKitPlaybackTargetAvailabilityChanged = unsafeEventName (toJSString "webkitplaybacktargetavailabilitychanged") -- | setSrcObject :: (MonadDOM m, IsHTMLMediaElement self) => self -> Maybe MediaStream -> m () setSrcObject self val = liftDOM ((toHTMLMediaElement self) ^. jss "srcObject" (toJSVal val)) -- | getSrcObject :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe MediaStream) getSrcObject self = liftDOM (((toHTMLMediaElement self) ^. js "srcObject") >>= fromJSVal)