{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SourceBuffer
       (appendBuffer, abort, remove, setMode, getMode, getUpdating,
        getBuffered, setTimestampOffset, getTimestampOffset,
        getAudioTracks, getVideoTracks, getTextTracks,
        setAppendWindowStart, getAppendWindowStart, setAppendWindowEnd,
        getAppendWindowEnd, updatestart, update, updateend, error,
        abortEvent, SourceBuffer(..), gTypeSourceBuffer)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
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, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendBuffer Mozilla SourceBuffer.appendBuffer documentation> 
appendBuffer ::
             (MonadDOM m, IsBufferSource data') => SourceBuffer -> data' -> m ()
appendBuffer :: SourceBuffer -> data' -> m ()
appendBuffer SourceBuffer
self data'
data'
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"appendBuffer" [data' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal data'
data']))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.abort Mozilla SourceBuffer.abort documentation> 
abort :: (MonadDOM m) => SourceBuffer -> m ()
abort :: SourceBuffer -> m ()
abort SourceBuffer
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"abort" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.remove Mozilla SourceBuffer.remove documentation> 
remove :: (MonadDOM m) => SourceBuffer -> Double -> Double -> m ()
remove :: SourceBuffer -> Double -> Double -> m ()
remove SourceBuffer
self Double
start Double
end
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"remove" [Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
start, Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
end]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.mode Mozilla SourceBuffer.mode documentation> 
setMode :: (MonadDOM m) => SourceBuffer -> AppendMode -> m ()
setMode :: SourceBuffer -> AppendMode -> m ()
setMode SourceBuffer
self AppendMode
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (SourceBuffer
self SourceBuffer -> Getting (DOM ()) SourceBuffer (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"mode" (AppendMode -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal AppendMode
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.mode Mozilla SourceBuffer.mode documentation> 
getMode :: (MonadDOM m) => SourceBuffer -> m AppendMode
getMode :: SourceBuffer -> m AppendMode
getMode SourceBuffer
self = DOM AppendMode -> m AppendMode
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"mode") JSM JSVal -> (JSVal -> DOM AppendMode) -> DOM AppendMode
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM AppendMode
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.updating Mozilla SourceBuffer.updating documentation> 
getUpdating :: (MonadDOM m) => SourceBuffer -> m Bool
getUpdating :: SourceBuffer -> m Bool
getUpdating SourceBuffer
self = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"updating") JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.buffered Mozilla SourceBuffer.buffered documentation> 
getBuffered :: (MonadDOM m) => SourceBuffer -> m TimeRanges
getBuffered :: SourceBuffer -> m TimeRanges
getBuffered SourceBuffer
self
  = DOM TimeRanges -> m TimeRanges
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"buffered") JSM JSVal -> (JSVal -> DOM TimeRanges) -> DOM TimeRanges
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM TimeRanges
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.timestampOffset Mozilla SourceBuffer.timestampOffset documentation> 
setTimestampOffset ::
                   (MonadDOM m) => SourceBuffer -> Double -> m ()
setTimestampOffset :: SourceBuffer -> Double -> m ()
setTimestampOffset SourceBuffer
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (SourceBuffer
self SourceBuffer -> Getting (DOM ()) SourceBuffer (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"timestampOffset" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.timestampOffset Mozilla SourceBuffer.timestampOffset documentation> 
getTimestampOffset :: (MonadDOM m) => SourceBuffer -> m Double
getTimestampOffset :: SourceBuffer -> m Double
getTimestampOffset SourceBuffer
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"timestampOffset") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.audioTracks Mozilla SourceBuffer.audioTracks documentation> 
getAudioTracks :: (MonadDOM m) => SourceBuffer -> m AudioTrackList
getAudioTracks :: SourceBuffer -> m AudioTrackList
getAudioTracks SourceBuffer
self
  = DOM AudioTrackList -> m AudioTrackList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"audioTracks") JSM JSVal -> (JSVal -> DOM AudioTrackList) -> DOM AudioTrackList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM AudioTrackList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.videoTracks Mozilla SourceBuffer.videoTracks documentation> 
getVideoTracks :: (MonadDOM m) => SourceBuffer -> m VideoTrackList
getVideoTracks :: SourceBuffer -> m VideoTrackList
getVideoTracks SourceBuffer
self
  = DOM VideoTrackList -> m VideoTrackList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"videoTracks") JSM JSVal -> (JSVal -> DOM VideoTrackList) -> DOM VideoTrackList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM VideoTrackList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.textTracks Mozilla SourceBuffer.textTracks documentation> 
getTextTracks :: (MonadDOM m) => SourceBuffer -> m TextTrackList
getTextTracks :: SourceBuffer -> m TextTrackList
getTextTracks SourceBuffer
self
  = DOM TextTrackList -> m TextTrackList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"textTracks") JSM JSVal -> (JSVal -> DOM TextTrackList) -> DOM TextTrackList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM TextTrackList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendWindowStart Mozilla SourceBuffer.appendWindowStart documentation> 
setAppendWindowStart ::
                     (MonadDOM m) => SourceBuffer -> Double -> m ()
setAppendWindowStart :: SourceBuffer -> Double -> m ()
setAppendWindowStart SourceBuffer
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (SourceBuffer
self SourceBuffer -> Getting (DOM ()) SourceBuffer (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"appendWindowStart" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendWindowStart Mozilla SourceBuffer.appendWindowStart documentation> 
getAppendWindowStart :: (MonadDOM m) => SourceBuffer -> m Double
getAppendWindowStart :: SourceBuffer -> m Double
getAppendWindowStart SourceBuffer
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"appendWindowStart") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendWindowEnd Mozilla SourceBuffer.appendWindowEnd documentation> 
setAppendWindowEnd ::
                   (MonadDOM m) => SourceBuffer -> Double -> m ()
setAppendWindowEnd :: SourceBuffer -> Double -> m ()
setAppendWindowEnd SourceBuffer
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (SourceBuffer
self SourceBuffer -> Getting (DOM ()) SourceBuffer (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"appendWindowEnd" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendWindowEnd Mozilla SourceBuffer.appendWindowEnd documentation> 
getAppendWindowEnd :: (MonadDOM m) => SourceBuffer -> m Double
getAppendWindowEnd :: SourceBuffer -> m Double
getAppendWindowEnd SourceBuffer
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SourceBuffer
self SourceBuffer
-> Getting (JSM JSVal) SourceBuffer (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SourceBuffer (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"appendWindowEnd") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onupdatestart Mozilla SourceBuffer.onupdatestart documentation> 
updatestart :: EventName SourceBuffer onupdatestart
updatestart :: EventName SourceBuffer onupdatestart
updatestart = DOMString -> EventName SourceBuffer onupdatestart
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"updatestart")

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onupdate Mozilla SourceBuffer.onupdate documentation> 
update :: EventName SourceBuffer onupdate
update :: EventName SourceBuffer onupdate
update = DOMString -> EventName SourceBuffer onupdate
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"update")

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onupdateend Mozilla SourceBuffer.onupdateend documentation> 
updateend :: EventName SourceBuffer onupdateend
updateend :: EventName SourceBuffer onupdateend
updateend = DOMString -> EventName SourceBuffer onupdateend
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"updateend")

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onerror Mozilla SourceBuffer.onerror documentation> 
error :: EventName SourceBuffer UIEvent
error :: EventName SourceBuffer UIEvent
error = DOMString -> EventName SourceBuffer UIEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"error")

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onabort Mozilla SourceBuffer.onabort documentation> 
abortEvent :: EventName SourceBuffer UIEvent
abortEvent :: EventName SourceBuffer UIEvent
abortEvent = DOMString -> EventName SourceBuffer UIEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"abort")