Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2022-03-30 23:28:02 +0300
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2022-03-31 18:09:56 +0300
commita7a9e8368a7ac5795a46ab873a55206998dd3c6a (patch)
tree9aad071411047332b3948a509ecb61bd037ab25d /src/utils
parentc91ebaae58081893a36661d8dc284add027aa617 (diff)
Add getters to check if media is allowed or disallowed
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/media/pipeline/MediaDevicesSource.js8
-rw-r--r--src/utils/media/pipeline/MediaDevicesSource.spec.js21
-rw-r--r--src/utils/webrtc/simplewebrtc/localmedia.js8
3 files changed, 37 insertions, 0 deletions
diff --git a/src/utils/media/pipeline/MediaDevicesSource.js b/src/utils/media/pipeline/MediaDevicesSource.js
index 8f5e7f9e5..6a24b2415 100644
--- a/src/utils/media/pipeline/MediaDevicesSource.js
+++ b/src/utils/media/pipeline/MediaDevicesSource.js
@@ -68,6 +68,14 @@ export default class MediaDevicesSource extends TrackSource {
this._active = false
}
+ isAudioAllowed() {
+ return this._audioAllowed
+ }
+
+ isVideoAllowed() {
+ return this._videoAllowed
+ }
+
setAudioAllowed(audioAllowed) {
if (this._audioAllowed === audioAllowed) {
return
diff --git a/src/utils/media/pipeline/MediaDevicesSource.spec.js b/src/utils/media/pipeline/MediaDevicesSource.spec.js
index f5a845242..7cdb14b6a 100644
--- a/src/utils/media/pipeline/MediaDevicesSource.spec.js
+++ b/src/utils/media/pipeline/MediaDevicesSource.spec.js
@@ -161,6 +161,27 @@ describe('MediaDevicesSource', () => {
jest.restoreAllMocks()
})
+ describe('get allowed state', () => {
+ test('audio and video are allowed by default', () => {
+ expect(mediaDevicesSource.isAudioAllowed()).toBe(true)
+ expect(mediaDevicesSource.isVideoAllowed()).toBe(true)
+ })
+
+ test('after modifying the audio state', () => {
+ mediaDevicesSource.setAudioAllowed(false)
+
+ expect(mediaDevicesSource.isAudioAllowed()).toBe(false)
+ expect(mediaDevicesSource.isVideoAllowed()).toBe(true)
+ })
+
+ test('after modifying the video state', () => {
+ mediaDevicesSource.setVideoAllowed(false)
+
+ expect(mediaDevicesSource.isAudioAllowed()).toBe(true)
+ expect(mediaDevicesSource.isVideoAllowed()).toBe(false)
+ })
+ })
+
describe('start', () => {
/**
diff --git a/src/utils/webrtc/simplewebrtc/localmedia.js b/src/utils/webrtc/simplewebrtc/localmedia.js
index caa2a25c7..de8759f61 100644
--- a/src/utils/webrtc/simplewebrtc/localmedia.js
+++ b/src/utils/webrtc/simplewebrtc/localmedia.js
@@ -288,6 +288,10 @@ LocalMedia.prototype.stopScreenShare = function() {
}
// Audio controls
+LocalMedia.prototype.isAudioAllowed = function() {
+ return this._mediaDevicesSource.isAudioAllowed()
+}
+
LocalMedia.prototype.disallowAudio = function() {
this._mediaDevicesSource.setAudioAllowed(false)
this.emit('audioDisallowed')
@@ -309,6 +313,10 @@ LocalMedia.prototype.unmute = function() {
}
// Video controls
+LocalMedia.prototype.isVideoAllowed = function() {
+ return this._mediaDevicesSource.isVideoAllowed()
+}
+
LocalMedia.prototype.disallowVideo = function() {
this._mediaDevicesSource.setVideoAllowed(false)
this.emit('videoDisallowed')