packages feed

ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/HTMLMediaElement.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from html (webref). Do not edit.
module GHCJS.DOM.JSFFI.Generated.HTMLMediaElement
       (js_addTextTrack, js_canPlayType, js_captureStream, js_fastSeek, js_getStartDate, js_load, js_pause, js_play, js_setMediaKeys, js_setSinkId, js_getError, js_setSrc, js_getSrc, js_setSrcObject, js_getSrcObject, js_getCurrentSrc, js_setCrossOrigin, js_getCrossOrigin, js_getNetworkState, js_setPreload, js_getPreload, js_getBuffered, js_getReadyState, js_getSeeking, js_setCurrentTime, js_getCurrentTime, js_getDuration, js_getPaused, js_setDefaultPlaybackRate, js_getDefaultPlaybackRate, js_setPlaybackRate, js_getPlaybackRate, js_setPreservesPitch, js_getPreservesPitch, js_getPlayed, js_getSeekable, js_getEnded, js_setAutoplay, js_getAutoplay, js_setLoop, js_getLoop, js_setControls, js_getControls, js_setVolume, js_getVolume, js_setMuted, js_getMuted, js_setDefaultMuted, js_getDefaultMuted, js_getAudioTracks, js_getVideoTracks, js_getTextTracks, js_getSinkId, js_getMediaKeys, js_getRemote, js_setDisableRemotePlayback, js_getDisableRemotePlayback, addTextTrack, addTextTrack_, canPlayType, canPlayType_, captureStream, captureStream_, fastSeek, getStartDate, getStartDate_, load, pause, play, setMediaKeys, setSinkId, getError, getErrorUnsafe, getErrorUnchecked, setSrc, getSrc, setSrcObject, getSrcObject, getSrcObjectUnsafe, getSrcObjectUnchecked, getCurrentSrc, setCrossOrigin, getCrossOrigin, getCrossOriginUnsafe, getCrossOriginUnchecked, getNetworkState, setPreload, getPreload, getBuffered, getReadyState, getSeeking, setCurrentTime, getCurrentTime, getDuration, getPaused, setDefaultPlaybackRate, getDefaultPlaybackRate, setPlaybackRate, getPlaybackRate, setPreservesPitch, getPreservesPitch, getPlayed, getSeekable, getEnded, setAutoplay, getAutoplay, setLoop, getLoop, setControls, getControls, setVolume, getVolume, setMuted, getMuted, setDefaultMuted, getDefaultMuted, getAudioTracks, getVideoTracks, getTextTracks, getSinkId, getMediaKeys, getMediaKeysUnsafe, getMediaKeysUnchecked, getRemote, setDisableRemotePlayback, getDisableRemotePlayback, 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, encrypted, waitingforkey, HTMLMediaElement(..), gTypeHTMLMediaElement, IsHTMLMediaElement, toHTMLMediaElement)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import GHCJS.Types (JSVal, JSString)
import GHCJS.Foreign (jsUndefined, jsNull)
import GHCJS.DOM.Types
import qualified GHCJS.DOM.Types as Types
import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import GHCJS.DOM.JSFFI.Generated.Enums

foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"addTextTrack\"]($2, $3, $4); })"
        js_addTextTrack :: HTMLMediaElement -> JSVal -> (Optional JSString) -> (Optional JSString) -> IO TextTrack
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack MDN HTMLMediaElement.addTextTrack documentation>
addTextTrack :: (MonadDOM m, IsHTMLMediaElement self, ToJSString label, ToJSString language) => self -> TextTrackKind -> Maybe label -> Maybe language -> m TextTrack
addTextTrack self kind label language = liftDOM (((toJSVal kind) >>= \a2' -> js_addTextTrack ((Types.toHTMLMediaElement self)) a2' (toOptionalJSString label) (toOptionalJSString language)))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack MDN HTMLMediaElement.addTextTrack documentation>
addTextTrack_ :: (MonadDOM m, IsHTMLMediaElement self, ToJSString label, ToJSString language) => self -> TextTrackKind -> Maybe label -> Maybe language -> m ()
addTextTrack_ self kind label language = liftDOM (void (((toJSVal kind) >>= \a2' -> js_addTextTrack ((Types.toHTMLMediaElement self)) a2' (toOptionalJSString label) (toOptionalJSString language))))

foreign import javascript safe "(($1, $2) => { return $1[\"canPlayType\"]($2); })"
        js_canPlayType :: HTMLMediaElement -> JSString -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType MDN HTMLMediaElement.canPlayType documentation>
canPlayType :: (MonadDOM m, IsHTMLMediaElement self, ToJSString type') => self -> type' -> m CanPlayTypeResult
canPlayType self type' = liftDOM (((js_canPlayType ((Types.toHTMLMediaElement self)) (toJSString type')) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType MDN HTMLMediaElement.canPlayType documentation>
canPlayType_ :: (MonadDOM m, IsHTMLMediaElement self, ToJSString type') => self -> type' -> m ()
canPlayType_ self type' = liftDOM (void ((js_canPlayType ((Types.toHTMLMediaElement self)) (toJSString type'))))

foreign import javascript safe "(($1) => { return $1[\"captureStream\"](); })"
        js_captureStream :: HTMLMediaElement -> IO MediaStream
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/captureStream MDN HTMLMediaElement.captureStream documentation>
captureStream :: (MonadDOM m, IsHTMLMediaElement self) => self -> m MediaStream
captureStream self = liftDOM ((js_captureStream ((Types.toHTMLMediaElement self))))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/captureStream MDN HTMLMediaElement.captureStream documentation>
captureStream_ :: (MonadDOM m, IsHTMLMediaElement self) => self -> m ()
captureStream_ self = liftDOM (void ((js_captureStream ((Types.toHTMLMediaElement self)))))

foreign import javascript safe "(($1, $2) => { return $1[\"fastSeek\"]($2); })"
        js_fastSeek :: HTMLMediaElement -> Double -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/fastSeek MDN HTMLMediaElement.fastSeek documentation>
fastSeek :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m ()
fastSeek self time = liftDOM (void ((js_fastSeek ((Types.toHTMLMediaElement self)) (time))))

foreign import javascript safe "(($1) => { return $1[\"getStartDate\"](); })"
        js_getStartDate :: HTMLMediaElement -> IO GObject
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/getStartDate MDN HTMLMediaElement.getStartDate documentation>
getStartDate :: (MonadDOM m, IsHTMLMediaElement self) => self -> m GObject
getStartDate self = liftDOM ((js_getStartDate ((Types.toHTMLMediaElement self))))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/getStartDate MDN HTMLMediaElement.getStartDate documentation>
getStartDate_ :: (MonadDOM m, IsHTMLMediaElement self) => self -> m ()
getStartDate_ self = liftDOM (void ((js_getStartDate ((Types.toHTMLMediaElement self)))))

foreign import javascript safe "(($1) => { return $1[\"load\"](); })"
        js_load :: HTMLMediaElement -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/load MDN HTMLMediaElement.load documentation>
load :: (MonadDOM m, IsHTMLMediaElement self) => self -> m ()
load self = liftDOM (void ((js_load ((Types.toHTMLMediaElement self)))))

foreign import javascript safe "(($1) => { return $1[\"pause\"](); })"
        js_pause :: HTMLMediaElement -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause MDN HTMLMediaElement.pause documentation>
pause :: (MonadDOM m, IsHTMLMediaElement self) => self -> m ()
pause self = liftDOM (void ((js_pause ((Types.toHTMLMediaElement self)))))

foreign import javascript interruptible "(($1, $c) => { return $1[\"play\"]().then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
        js_play :: HTMLMediaElement -> IO (JSVal, ())
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play MDN HTMLMediaElement.play documentation>
play :: (MonadDOM m, IsHTMLMediaElement self) => self -> m ()
play self = liftDOM (void (((js_play ((Types.toHTMLMediaElement self))) >>= checkPromiseResult)))

foreign import javascript interruptible "(($1, $2, $c) => { return $1[\"setMediaKeys\"]($2).then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
        js_setMediaKeys :: HTMLMediaElement -> JSVal -> IO (JSVal, ())
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setMediaKeys MDN HTMLMediaElement.setMediaKeys documentation>
setMediaKeys :: (MonadDOM m, IsHTMLMediaElement self) => self -> Maybe MediaKeys -> m ()
setMediaKeys self mediaKeys = liftDOM (void ((((toJSVal mediaKeys) >>= \a2' -> js_setMediaKeys ((Types.toHTMLMediaElement self)) a2') >>= checkPromiseResult)))

foreign import javascript interruptible "(($1, $2, $c) => { return $1[\"setSinkId\"]($2).then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
        js_setSinkId :: HTMLMediaElement -> JSString -> IO (JSVal, ())
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setSinkId MDN HTMLMediaElement.setSinkId documentation>
setSinkId :: (MonadDOM m, IsHTMLMediaElement self, ToJSString sinkId) => self -> sinkId -> m ()
setSinkId self sinkId = liftDOM (void (((js_setSinkId ((Types.toHTMLMediaElement self)) (toJSString sinkId)) >>= checkPromiseResult)))

foreign import javascript unsafe "(($1) => { return $1[\"error\"]; })"
        js_getError :: HTMLMediaElement -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/error MDN HTMLMediaElement.error documentation>
getError :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe MediaError)
getError self = liftDOM (((js_getError ((Types.toHTMLMediaElement self))) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/error MDN HTMLMediaElement.error documentation>
getErrorUnsafe :: (MonadDOM m, IsHTMLMediaElement self, HasCallStack) => self -> m MediaError
getErrorUnsafe self = liftDOM ((((js_getError ((Types.toHTMLMediaElement self))) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/error MDN HTMLMediaElement.error documentation>
getErrorUnchecked :: (MonadDOM m, IsHTMLMediaElement self) => self -> m MediaError
getErrorUnchecked self = liftDOM ((pFromJSVal <$> (js_getError ((Types.toHTMLMediaElement self)))))

foreign import javascript safe "(($1, $2) => { $1[\"src\"] = $2; })"
        js_setSrc :: HTMLMediaElement -> JSString -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/src MDN HTMLMediaElement.src documentation>
setSrc :: (MonadDOM m, IsHTMLMediaElement self, ToJSString val) => self -> val -> m ()
setSrc self val = liftDOM (void ((js_setSrc ((Types.toHTMLMediaElement self)) (toJSString val))))

foreign import javascript unsafe "(($1) => { return $1[\"src\"]; })"
        js_getSrc :: HTMLMediaElement -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/src MDN HTMLMediaElement.src documentation>
getSrc :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result
getSrc self = liftDOM ((fromJSString <$> (js_getSrc ((Types.toHTMLMediaElement self)))))

foreign import javascript safe "(($1, $2) => { $1[\"srcObject\"] = $2; })"
        js_setSrcObject :: HTMLMediaElement -> JSVal -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/srcObject MDN HTMLMediaElement.srcObject documentation>
setSrcObject :: (MonadDOM m, IsHTMLMediaElement self, IsMediaProvider val) => self -> Maybe val -> m ()
setSrcObject self val = liftDOM (void (((toJSVal val) >>= \a2' -> js_setSrcObject ((Types.toHTMLMediaElement self)) a2')))

foreign import javascript unsafe "(($1) => { return $1[\"srcObject\"]; })"
        js_getSrcObject :: HTMLMediaElement -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/srcObject MDN HTMLMediaElement.srcObject documentation>
getSrcObject :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe MediaProvider)
getSrcObject self = liftDOM (((js_getSrcObject ((Types.toHTMLMediaElement self))) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/srcObject MDN HTMLMediaElement.srcObject documentation>
getSrcObjectUnsafe :: (MonadDOM m, IsHTMLMediaElement self, HasCallStack) => self -> m MediaProvider
getSrcObjectUnsafe self = liftDOM ((((js_getSrcObject ((Types.toHTMLMediaElement self))) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/srcObject MDN HTMLMediaElement.srcObject documentation>
getSrcObjectUnchecked :: (MonadDOM m, IsHTMLMediaElement self) => self -> m MediaProvider
getSrcObjectUnchecked self = liftDOM ((pFromJSVal <$> (js_getSrcObject ((Types.toHTMLMediaElement self)))))

foreign import javascript unsafe "(($1) => { return $1[\"currentSrc\"]; })"
        js_getCurrentSrc :: HTMLMediaElement -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentSrc MDN HTMLMediaElement.currentSrc documentation>
getCurrentSrc :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result
getCurrentSrc self = liftDOM ((fromJSString <$> (js_getCurrentSrc ((Types.toHTMLMediaElement self)))))

foreign import javascript safe "(($1, $2) => { $1[\"crossOrigin\"] = $2; })"
        js_setCrossOrigin :: HTMLMediaElement -> (Nullable JSString) -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/crossOrigin MDN HTMLMediaElement.crossOrigin documentation>
setCrossOrigin :: (MonadDOM m, IsHTMLMediaElement self, ToJSString val) => self -> Maybe val -> m ()
setCrossOrigin self val = liftDOM (void ((js_setCrossOrigin ((Types.toHTMLMediaElement self)) (toMaybeJSString val))))

foreign import javascript unsafe "(($1) => { return $1[\"crossOrigin\"]; })"
        js_getCrossOrigin :: HTMLMediaElement -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/crossOrigin MDN HTMLMediaElement.crossOrigin documentation>
getCrossOrigin :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m (Maybe result)
getCrossOrigin self = liftDOM (((fromMaybeJSString . Nullable) <$> (js_getCrossOrigin ((Types.toHTMLMediaElement self)))))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/crossOrigin MDN HTMLMediaElement.crossOrigin documentation>
getCrossOriginUnsafe :: (MonadDOM m, IsHTMLMediaElement self, HasCallStack, FromJSString result) => self -> m result
getCrossOriginUnsafe self = liftDOM ((((fromMaybeJSString . Nullable) <$> (js_getCrossOrigin ((Types.toHTMLMediaElement self)))) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/crossOrigin MDN HTMLMediaElement.crossOrigin documentation>
getCrossOriginUnchecked :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result
getCrossOriginUnchecked self = liftDOM ((pFromJSVal <$> (js_getCrossOrigin ((Types.toHTMLMediaElement self)))))

foreign import javascript unsafe "(($1) => { return $1[\"networkState\"]; })"
        js_getNetworkState :: HTMLMediaElement -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/networkState MDN HTMLMediaElement.networkState documentation>
getNetworkState :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Word
getNetworkState self = liftDOM ((js_getNetworkState ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"preload\"] = $2; })"
        js_setPreload :: HTMLMediaElement -> JSString -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preload MDN HTMLMediaElement.preload documentation>
setPreload :: (MonadDOM m, IsHTMLMediaElement self, ToJSString val) => self -> val -> m ()
setPreload self val = liftDOM (void ((js_setPreload ((Types.toHTMLMediaElement self)) (toJSString val))))

foreign import javascript unsafe "(($1) => { return $1[\"preload\"]; })"
        js_getPreload :: HTMLMediaElement -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preload MDN HTMLMediaElement.preload documentation>
getPreload :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result
getPreload self = liftDOM ((fromJSString <$> (js_getPreload ((Types.toHTMLMediaElement self)))))

foreign import javascript unsafe "(($1) => { return $1[\"buffered\"]; })"
        js_getBuffered :: HTMLMediaElement -> IO TimeRanges
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/buffered MDN HTMLMediaElement.buffered documentation>
getBuffered :: (MonadDOM m, IsHTMLMediaElement self) => self -> m TimeRanges
getBuffered self = liftDOM ((js_getBuffered ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"readyState\"]; })"
        js_getReadyState :: HTMLMediaElement -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/readyState MDN HTMLMediaElement.readyState documentation>
getReadyState :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Word
getReadyState self = liftDOM ((js_getReadyState ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"seeking\"]; })"
        js_getSeeking :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking MDN HTMLMediaElement.seeking documentation>
getSeeking :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getSeeking self = liftDOM ((js_getSeeking ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"currentTime\"] = $2; })"
        js_setCurrentTime :: HTMLMediaElement -> Double -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentTime MDN HTMLMediaElement.currentTime documentation>
setCurrentTime :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m ()
setCurrentTime self val = liftDOM (void ((js_setCurrentTime ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"currentTime\"]; })"
        js_getCurrentTime :: HTMLMediaElement -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentTime MDN HTMLMediaElement.currentTime documentation>
getCurrentTime :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double
getCurrentTime self = liftDOM ((js_getCurrentTime ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"duration\"]; })"
        js_getDuration :: HTMLMediaElement -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/duration MDN HTMLMediaElement.duration documentation>
getDuration :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double
getDuration self = liftDOM ((js_getDuration ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"paused\"]; })"
        js_getPaused :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/paused MDN HTMLMediaElement.paused documentation>
getPaused :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getPaused self = liftDOM ((js_getPaused ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"defaultPlaybackRate\"] = $2; })"
        js_setDefaultPlaybackRate :: HTMLMediaElement -> Double -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultPlaybackRate MDN HTMLMediaElement.defaultPlaybackRate documentation>
setDefaultPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m ()
setDefaultPlaybackRate self val = liftDOM (void ((js_setDefaultPlaybackRate ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"defaultPlaybackRate\"]; })"
        js_getDefaultPlaybackRate :: HTMLMediaElement -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultPlaybackRate MDN HTMLMediaElement.defaultPlaybackRate documentation>
getDefaultPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double
getDefaultPlaybackRate self = liftDOM ((js_getDefaultPlaybackRate ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"playbackRate\"] = $2; })"
        js_setPlaybackRate :: HTMLMediaElement -> Double -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playbackRate MDN HTMLMediaElement.playbackRate documentation>
setPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m ()
setPlaybackRate self val = liftDOM (void ((js_setPlaybackRate ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"playbackRate\"]; })"
        js_getPlaybackRate :: HTMLMediaElement -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playbackRate MDN HTMLMediaElement.playbackRate documentation>
getPlaybackRate :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double
getPlaybackRate self = liftDOM ((js_getPlaybackRate ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"preservesPitch\"] = $2; })"
        js_setPreservesPitch :: HTMLMediaElement -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preservesPitch MDN HTMLMediaElement.preservesPitch documentation>
setPreservesPitch :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m ()
setPreservesPitch self val = liftDOM (void ((js_setPreservesPitch ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"preservesPitch\"]; })"
        js_getPreservesPitch :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preservesPitch MDN HTMLMediaElement.preservesPitch documentation>
getPreservesPitch :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getPreservesPitch self = liftDOM ((js_getPreservesPitch ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"played\"]; })"
        js_getPlayed :: HTMLMediaElement -> IO TimeRanges
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/played MDN HTMLMediaElement.played documentation>
getPlayed :: (MonadDOM m, IsHTMLMediaElement self) => self -> m TimeRanges
getPlayed self = liftDOM ((js_getPlayed ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"seekable\"]; })"
        js_getSeekable :: HTMLMediaElement -> IO TimeRanges
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seekable MDN HTMLMediaElement.seekable documentation>
getSeekable :: (MonadDOM m, IsHTMLMediaElement self) => self -> m TimeRanges
getSeekable self = liftDOM ((js_getSeekable ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"ended\"]; })"
        js_getEnded :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended MDN HTMLMediaElement.ended documentation>
getEnded :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getEnded self = liftDOM ((js_getEnded ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"autoplay\"] = $2; })"
        js_setAutoplay :: HTMLMediaElement -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/autoplay MDN HTMLMediaElement.autoplay documentation>
setAutoplay :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m ()
setAutoplay self val = liftDOM (void ((js_setAutoplay ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"autoplay\"]; })"
        js_getAutoplay :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/autoplay MDN HTMLMediaElement.autoplay documentation>
getAutoplay :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getAutoplay self = liftDOM ((js_getAutoplay ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"loop\"] = $2; })"
        js_setLoop :: HTMLMediaElement -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loop MDN HTMLMediaElement.loop documentation>
setLoop :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m ()
setLoop self val = liftDOM (void ((js_setLoop ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"loop\"]; })"
        js_getLoop :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loop MDN HTMLMediaElement.loop documentation>
getLoop :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getLoop self = liftDOM ((js_getLoop ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"controls\"] = $2; })"
        js_setControls :: HTMLMediaElement -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/controls MDN HTMLMediaElement.controls documentation>
setControls :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m ()
setControls self val = liftDOM (void ((js_setControls ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"controls\"]; })"
        js_getControls :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/controls MDN HTMLMediaElement.controls documentation>
getControls :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getControls self = liftDOM ((js_getControls ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"volume\"] = $2; })"
        js_setVolume :: HTMLMediaElement -> Double -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volume MDN HTMLMediaElement.volume documentation>
setVolume :: (MonadDOM m, IsHTMLMediaElement self) => self -> Double -> m ()
setVolume self val = liftDOM (void ((js_setVolume ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"volume\"]; })"
        js_getVolume :: HTMLMediaElement -> IO Double
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volume MDN HTMLMediaElement.volume documentation>
getVolume :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Double
getVolume self = liftDOM ((js_getVolume ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"muted\"] = $2; })"
        js_setMuted :: HTMLMediaElement -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/muted MDN HTMLMediaElement.muted documentation>
setMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m ()
setMuted self val = liftDOM (void ((js_setMuted ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"muted\"]; })"
        js_getMuted :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/muted MDN HTMLMediaElement.muted documentation>
getMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getMuted self = liftDOM ((js_getMuted ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"defaultMuted\"] = $2; })"
        js_setDefaultMuted :: HTMLMediaElement -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultMuted MDN HTMLMediaElement.defaultMuted documentation>
setDefaultMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m ()
setDefaultMuted self val = liftDOM (void ((js_setDefaultMuted ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"defaultMuted\"]; })"
        js_getDefaultMuted :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultMuted MDN HTMLMediaElement.defaultMuted documentation>
getDefaultMuted :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getDefaultMuted self = liftDOM ((js_getDefaultMuted ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"audioTracks\"]; })"
        js_getAudioTracks :: HTMLMediaElement -> IO AudioTrackList
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/audioTracks MDN HTMLMediaElement.audioTracks documentation>
getAudioTracks :: (MonadDOM m, IsHTMLMediaElement self) => self -> m AudioTrackList
getAudioTracks self = liftDOM ((js_getAudioTracks ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"videoTracks\"]; })"
        js_getVideoTracks :: HTMLMediaElement -> IO VideoTrackList
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/videoTracks MDN HTMLMediaElement.videoTracks documentation>
getVideoTracks :: (MonadDOM m, IsHTMLMediaElement self) => self -> m VideoTrackList
getVideoTracks self = liftDOM ((js_getVideoTracks ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"textTracks\"]; })"
        js_getTextTracks :: HTMLMediaElement -> IO TextTrackList
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/textTracks MDN HTMLMediaElement.textTracks documentation>
getTextTracks :: (MonadDOM m, IsHTMLMediaElement self) => self -> m TextTrackList
getTextTracks self = liftDOM ((js_getTextTracks ((Types.toHTMLMediaElement self))))

foreign import javascript unsafe "(($1) => { return $1[\"sinkId\"]; })"
        js_getSinkId :: HTMLMediaElement -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/sinkId MDN HTMLMediaElement.sinkId documentation>
getSinkId :: (MonadDOM m, IsHTMLMediaElement self, FromJSString result) => self -> m result
getSinkId self = liftDOM ((fromJSString <$> (js_getSinkId ((Types.toHTMLMediaElement self)))))

foreign import javascript unsafe "(($1) => { return $1[\"mediaKeys\"]; })"
        js_getMediaKeys :: HTMLMediaElement -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mediaKeys MDN HTMLMediaElement.mediaKeys documentation>
getMediaKeys :: (MonadDOM m, IsHTMLMediaElement self) => self -> m (Maybe MediaKeys)
getMediaKeys self = liftDOM (((js_getMediaKeys ((Types.toHTMLMediaElement self))) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mediaKeys MDN HTMLMediaElement.mediaKeys documentation>
getMediaKeysUnsafe :: (MonadDOM m, IsHTMLMediaElement self, HasCallStack) => self -> m MediaKeys
getMediaKeysUnsafe self = liftDOM ((((js_getMediaKeys ((Types.toHTMLMediaElement self))) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mediaKeys MDN HTMLMediaElement.mediaKeys documentation>
getMediaKeysUnchecked :: (MonadDOM m, IsHTMLMediaElement self) => self -> m MediaKeys
getMediaKeysUnchecked self = liftDOM ((pFromJSVal <$> (js_getMediaKeys ((Types.toHTMLMediaElement self)))))

foreign import javascript unsafe "(($1) => { return $1[\"remote\"]; })"
        js_getRemote :: HTMLMediaElement -> IO RemotePlayback
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/remote MDN HTMLMediaElement.remote documentation>
getRemote :: (MonadDOM m, IsHTMLMediaElement self) => self -> m RemotePlayback
getRemote self = liftDOM ((js_getRemote ((Types.toHTMLMediaElement self))))

foreign import javascript safe "(($1, $2) => { $1[\"disableRemotePlayback\"] = $2; })"
        js_setDisableRemotePlayback :: HTMLMediaElement -> Bool -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/disableRemotePlayback MDN HTMLMediaElement.disableRemotePlayback documentation>
setDisableRemotePlayback :: (MonadDOM m, IsHTMLMediaElement self) => self -> Bool -> m ()
setDisableRemotePlayback self val = liftDOM (void ((js_setDisableRemotePlayback ((Types.toHTMLMediaElement self)) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"disableRemotePlayback\"]; })"
        js_getDisableRemotePlayback :: HTMLMediaElement -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/disableRemotePlayback MDN HTMLMediaElement.disableRemotePlayback documentation>
getDisableRemotePlayback :: (MonadDOM m, IsHTMLMediaElement self) => self -> m Bool
getDisableRemotePlayback self = liftDOM ((js_getDisableRemotePlayback ((Types.toHTMLMediaElement self))))

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

-- | <https://w3c.github.io/encrypted-media/#dom-htmlmediaelement-onencrypted encrypted event>
encrypted :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self MediaEncryptedEvent
encrypted = unsafeEventName (toJSString "encrypted")

-- | <https://w3c.github.io/encrypted-media/#dom-htmlmediaelement-onwaitingforkey waitingforkey event>
waitingforkey :: (IsHTMLMediaElement self, IsEventTarget self) => EventName self Event
waitingforkey = unsafeEventName (toJSString "waitingforkey")