aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/assets/player/shared/resolutions
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/assets/player/shared/resolutions')
-rw-r--r--client/src/assets/player/shared/resolutions/peertube-resolutions-plugin.ts37
1 files changed, 16 insertions, 21 deletions
diff --git a/client/src/assets/player/shared/resolutions/peertube-resolutions-plugin.ts b/client/src/assets/player/shared/resolutions/peertube-resolutions-plugin.ts
index 4fafd27b1..4d6701003 100644
--- a/client/src/assets/player/shared/resolutions/peertube-resolutions-plugin.ts
+++ b/client/src/assets/player/shared/resolutions/peertube-resolutions-plugin.ts
@@ -8,7 +8,16 @@ class PeerTubeResolutionsPlugin extends Plugin {
8 private resolutions: PeerTubeResolution[] = [] 8 private resolutions: PeerTubeResolution[] = []
9 9
10 private autoResolutionChosenId: number 10 private autoResolutionChosenId: number
11 private autoResolutionEnabled = true 11
12 constructor (player: videojs.Player) {
13 super(player)
14
15 player.on('video-change', () => {
16 this.resolutions = []
17
18 this.trigger('resolutions-removed')
19 })
20 }
12 21
13 add (resolutions: PeerTubeResolution[]) { 22 add (resolutions: PeerTubeResolution[]) {
14 for (const r of resolutions) { 23 for (const r of resolutions) {
@@ -18,12 +27,12 @@ class PeerTubeResolutionsPlugin extends Plugin {
18 this.currentSelection = this.getSelected() 27 this.currentSelection = this.getSelected()
19 28
20 this.sort() 29 this.sort()
21 this.trigger('resolutionsAdded') 30 this.trigger('resolutions-added')
22 } 31 }
23 32
24 remove (resolutionIndex: number) { 33 remove (resolutionIndex: number) {
25 this.resolutions = this.resolutions.filter(r => r.id !== resolutionIndex) 34 this.resolutions = this.resolutions.filter(r => r.id !== resolutionIndex)
26 this.trigger('resolutionRemoved') 35 this.trigger('resolutions-removed')
27 } 36 }
28 37
29 getResolutions () { 38 getResolutions () {
@@ -40,10 +49,10 @@ class PeerTubeResolutionsPlugin extends Plugin {
40 49
41 select (options: { 50 select (options: {
42 id: number 51 id: number
43 byEngine: boolean 52 fireCallback: boolean
44 autoResolutionChosenId?: number 53 autoResolutionChosenId?: number
45 }) { 54 }) {
46 const { id, autoResolutionChosenId, byEngine } = options 55 const { id, autoResolutionChosenId, fireCallback } = options
47 56
48 if (this.currentSelection?.id === id && this.autoResolutionChosenId === autoResolutionChosenId) return 57 if (this.currentSelection?.id === id && this.autoResolutionChosenId === autoResolutionChosenId) return
49 58
@@ -55,25 +64,11 @@ class PeerTubeResolutionsPlugin extends Plugin {
55 if (r.selected) { 64 if (r.selected) {
56 this.currentSelection = r 65 this.currentSelection = r
57 66
58 if (!byEngine) r.selectCallback() 67 if (fireCallback) r.selectCallback()
59 } 68 }
60 } 69 }
61 70
62 this.trigger('resolutionChanged') 71 this.trigger('resolutions-changed')
63 }
64
65 disableAutoResolution () {
66 this.autoResolutionEnabled = false
67 this.trigger('autoResolutionEnabledChanged')
68 }
69
70 enabledAutoResolution () {
71 this.autoResolutionEnabled = true
72 this.trigger('autoResolutionEnabledChanged')
73 }
74
75 isAutoResolutionEnabeld () {
76 return this.autoResolutionEnabled
77 } 72 }
78 73
79 private sort () { 74 private sort () {