diff options
Diffstat (limited to 'client/src/assets/player')
-rw-r--r-- | client/src/assets/player/peertube-videojs-plugin.ts | 13 | ||||
-rw-r--r-- | client/src/assets/player/resolution-menu-button.ts | 1 | ||||
-rw-r--r-- | client/src/assets/player/resolution-menu-item.ts | 11 |
3 files changed, 23 insertions, 2 deletions
diff --git a/client/src/assets/player/peertube-videojs-plugin.ts b/client/src/assets/player/peertube-videojs-plugin.ts index fc07c35d6..208105d3c 100644 --- a/client/src/assets/player/peertube-videojs-plugin.ts +++ b/client/src/assets/player/peertube-videojs-plugin.ts | |||
@@ -57,6 +57,7 @@ class PeerTubePlugin extends Plugin { | |||
57 | private renderer | 57 | private renderer |
58 | private fakeRenderer | 58 | private fakeRenderer |
59 | private autoResolution = true | 59 | private autoResolution = true |
60 | private forbidAutoResolution = false | ||
60 | private isAutoResolutionObservation = false | 61 | private isAutoResolutionObservation = false |
61 | 62 | ||
62 | private videoViewInterval | 63 | private videoViewInterval |
@@ -304,11 +305,17 @@ class PeerTubePlugin extends Plugin { | |||
304 | this.trigger('autoResolutionUpdate') | 305 | this.trigger('autoResolutionUpdate') |
305 | } | 306 | } |
306 | 307 | ||
307 | disableAutoResolution () { | 308 | disableAutoResolution (forbid = false) { |
309 | if (forbid === true) this.forbidAutoResolution = true | ||
310 | |||
308 | this.autoResolution = false | 311 | this.autoResolution = false |
309 | this.trigger('autoResolutionUpdate') | 312 | this.trigger('autoResolutionUpdate') |
310 | } | 313 | } |
311 | 314 | ||
315 | isAutoResolutionForbidden () { | ||
316 | return this.forbidAutoResolution === true | ||
317 | } | ||
318 | |||
312 | getCurrentVideoFile () { | 319 | getCurrentVideoFile () { |
313 | return this.currentVideoFile | 320 | return this.currentVideoFile |
314 | } | 321 | } |
@@ -509,6 +516,8 @@ class PeerTubePlugin extends Plugin { | |||
509 | } | 516 | } |
510 | 517 | ||
511 | private fallbackToHttp (done?: Function, play = true) { | 518 | private fallbackToHttp (done?: Function, play = true) { |
519 | this.disableAutoResolution(true) | ||
520 | |||
512 | this.flushVideoFile(this.currentVideoFile, true) | 521 | this.flushVideoFile(this.currentVideoFile, true) |
513 | this.torrent = null | 522 | this.torrent = null |
514 | 523 | ||
@@ -555,7 +564,7 @@ class PeerTubePlugin extends Plugin { | |||
555 | this.player.controlBar.on('mouseenter', () => disableInactivity()) | 564 | this.player.controlBar.on('mouseenter', () => disableInactivity()) |
556 | settingsDialog.on('mouseenter', () => disableInactivity()) | 565 | settingsDialog.on('mouseenter', () => disableInactivity()) |
557 | this.player.controlBar.on('mouseleave', () => enableInactivity()) | 566 | this.player.controlBar.on('mouseleave', () => enableInactivity()) |
558 | settingsDialog.on('mouseleave', () => enableInactivity()) | 567 | // settingsDialog.on('mouseleave', () => enableInactivity()) |
559 | } | 568 | } |
560 | 569 | ||
561 | private pickAverageVideoFile () { | 570 | private pickAverageVideoFile () { |
diff --git a/client/src/assets/player/resolution-menu-button.ts b/client/src/assets/player/resolution-menu-button.ts index d317a5efc..e30074173 100644 --- a/client/src/assets/player/resolution-menu-button.ts +++ b/client/src/assets/player/resolution-menu-button.ts | |||
@@ -12,6 +12,7 @@ class ResolutionMenuButton extends MenuButton { | |||
12 | this.player = player | 12 | this.player = player |
13 | 13 | ||
14 | player.peertube().on('videoFileUpdate', () => this.updateLabel()) | 14 | player.peertube().on('videoFileUpdate', () => this.updateLabel()) |
15 | player.peertube().on('autoResolutionUpdate', () => this.updateLabel()) | ||
15 | } | 16 | } |
16 | 17 | ||
17 | createEl () { | 18 | createEl () { |
diff --git a/client/src/assets/player/resolution-menu-item.ts b/client/src/assets/player/resolution-menu-item.ts index 3fe1d8f0f..0ab0f53b5 100644 --- a/client/src/assets/player/resolution-menu-item.ts +++ b/client/src/assets/player/resolution-menu-item.ts | |||
@@ -19,6 +19,8 @@ class ResolutionMenuItem extends MenuItem { | |||
19 | } | 19 | } |
20 | 20 | ||
21 | handleClick (event) { | 21 | handleClick (event) { |
22 | if (this.id === -1 && this.player_.peertube().isAutoResolutionForbidden()) return | ||
23 | |||
22 | super.handleClick(event) | 24 | super.handleClick(event) |
23 | 25 | ||
24 | // Auto resolution | 26 | // Auto resolution |
@@ -32,6 +34,15 @@ class ResolutionMenuItem extends MenuItem { | |||
32 | } | 34 | } |
33 | 35 | ||
34 | updateSelection () { | 36 | updateSelection () { |
37 | // Check if auto resolution is forbidden or not | ||
38 | if (this.id === -1) { | ||
39 | if (this.player_.peertube().isAutoResolutionForbidden()) { | ||
40 | this.addClass('disabled') | ||
41 | } else { | ||
42 | this.removeClass('disabled') | ||
43 | } | ||
44 | } | ||
45 | |||
35 | if (this.player_.peertube().isAutoResolutionOn()) { | 46 | if (this.player_.peertube().isAutoResolutionOn()) { |
36 | this.selected(this.id === -1) | 47 | this.selected(this.id === -1) |
37 | return | 48 | return |