]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/resolution-menu-button.ts
Fetch outbox when searching an actor
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / resolution-menu-button.ts
index c927b084dde8f19485e35f32faea4b6df88b14bb..d53a2415196c39af443a21ca78e6bd698d12e415 100644 (file)
@@ -8,13 +8,11 @@ class ResolutionMenuButton extends MenuButton {
   label: HTMLElement
 
   constructor (player: videojs.Player, options) {
-    options.label = 'Quality'
     super(player, options)
-
-    this.controlText_ = 'Quality'
     this.player = player
 
     player.peertube().on('videoFileUpdate', () => this.updateLabel())
+    player.peertube().on('autoResolutionUpdate', () => this.updateLabel())
   }
 
   createEl () {
@@ -22,7 +20,7 @@ class ResolutionMenuButton extends MenuButton {
 
     this.labelEl_ = videojsUntyped.dom.createEl('div', {
       className: 'vjs-resolution-value',
-      innerHTML: this.player_.peertube().getCurrentResolutionLabel()
+      innerHTML: this.buildLabelHTML()
     })
 
     el.appendChild(this.labelEl_)
@@ -35,26 +33,39 @@ class ResolutionMenuButton extends MenuButton {
   }
 
   createMenu () {
-    const menu = new Menu(this.player())
-
+    const menu = new Menu(this.player_)
     for (const videoFile of this.player_.peertube().videoFiles) {
+      let label = videoFile.resolution.label
+      if (videoFile.fps && videoFile.fps >= 50) {
+        label += videoFile.fps
+      }
+
       menu.addChild(new ResolutionMenuItem(
         this.player_,
         {
           id: videoFile.resolution.id,
-          label: videoFile.resolution.label,
+          label,
           src: videoFile.magnetUri
         })
       )
     }
 
+    menu.addChild(new ResolutionMenuItem(
+      this.player_,
+      {
+        id: -1,
+        label: this.player_.localize('Auto'),
+        src: null
+      }
+    ))
+
     return menu
   }
 
   updateLabel () {
     if (!this.labelEl_) return
 
-    this.labelEl_.innerHTML = this.player_.peertube().getCurrentResolutionLabel()
+    this.labelEl_.innerHTML = this.buildLabelHTML()
   }
 
   buildCSSClass () {
@@ -64,5 +75,11 @@ class ResolutionMenuButton extends MenuButton {
   buildWrapperCSSClass () {
     return 'vjs-resolution-control ' + super.buildWrapperCSSClass()
   }
+
+  private buildLabelHTML () {
+    return this.player_.peertube().getCurrentResolutionLabel()
+  }
 }
+ResolutionMenuButton.prototype.controlText_ = 'Quality'
+
 MenuButton.registerComponent('ResolutionMenuButton', ResolutionMenuButton)