]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/peertube-videojs-typings.ts
Fix webtorrent resolution issue
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / peertube-videojs-typings.ts
index aad4dbb4faa6c7b7bd3dc3e0226116d1158922cd..e4572266130c8bd03c3686f563ad15b6cc9c5344 100644 (file)
@@ -1,7 +1,4 @@
-// FIXME: something weird with our path definition in tsconfig and typings
-// @ts-ignore
-import * as videojs from 'video.js'
-
+import videojs from 'video.js'
 import { PeerTubePlugin } from './peertube-plugin'
 import { WebTorrentPlugin } from './webtorrent/webtorrent-plugin'
 import { P2pMediaLoaderPlugin } from './p2p-media-loader/p2p-media-loader-plugin'
@@ -9,20 +6,45 @@ import { PlayerMode } from './peertube-player-manager'
 import { RedundancyUrlManager } from './p2p-media-loader/redundancy-url-manager'
 import { VideoFile } from '@shared/models'
 
-declare namespace videojs {
-  interface Player {
+declare module 'video.js' {
+  export interface VideoJsPlayer {
+    theaterEnabled: boolean
+
+    // FIXME: add it to upstream typings
+    posterImage: {
+      show (): void
+      hide (): void
+    }
+
+    handleTechSeeked_ (): void
+
+    // Plugins
+
     peertube (): PeerTubePlugin
     webtorrent (): WebTorrentPlugin
     p2pMediaLoader (): P2pMediaLoaderPlugin
-  }
-}
 
-interface VideoJSComponentInterface {
-  _player: videojs.Player
+    contextmenuUI (options: any): any
+
+    bezels (): void
+
+    qualityLevels (): { height: number, id: number }[] & {
+      selectedIndex: number
+      selectedIndex_: number
 
-  new (player: videojs.Player, options?: any): any
+      addQualityLevel (representation: {
+        id: number
+        label: string
+        height: number
+        _enabled: boolean
+      }): void
+    }
 
-  registerComponent (name: string, obj: any): any
+    textTracks (): TextTrackList & {
+      on: Function
+      tracks_: { kind: string, mode: string, language: string }[]
+    }
+  }
 }
 
 type VideoJSCaption = {
@@ -78,9 +100,6 @@ type VideoJSPluginOptions = {
   p2pMediaLoader?: P2PMediaLoaderPluginOptions
 }
 
-// videojs typings don't have some method we need
-const videojsUntyped = videojs as any
-
 type LoadedQualityData = {
   qualitySwitchCallback: Function,
   qualityData: {
@@ -123,8 +142,6 @@ export {
   PlayerNetworkInfo,
   ResolutionUpdateData,
   AutoResolutionUpdateData,
-  VideoJSComponentInterface,
-  videojsUntyped,
   VideoJSCaption,
   UserWatching,
   PeerTubePluginOptions,