12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import JitsiMeetJS from '../lib-jitsi-meet';
-
- import {
- SET_AUDIO_INPUT_DEVICE,
- SET_VIDEO_INPUT_DEVICE,
- UPDATE_DEVICE_LIST
- } from './actionTypes';
-
- /**
- * Queries for connected A/V input and output devices and updates the redux
- * state of known devices.
- *
- * @returns {Function}
- */
- export function getAvailableDevices() {
- return dispatch => new Promise(resolve => {
- const { mediaDevices } = JitsiMeetJS;
-
- if (mediaDevices.isDeviceListAvailable()
- && mediaDevices.isDeviceChangeAvailable()) {
- mediaDevices.enumerateDevices(devices => {
- dispatch(updateDeviceList(devices));
-
- resolve(devices);
- });
- } else {
- resolve([]);
- }
- });
- }
-
- /**
- * Signals to update the currently used audio input device.
- *
- * @param {string} deviceId - The id of the new audio input device.
- * @returns {{
- * type: SET_AUDIO_INPUT_DEVICE,
- * deviceId: string
- * }}
- */
- export function setAudioInputDevice(deviceId) {
- return {
- type: SET_AUDIO_INPUT_DEVICE,
- deviceId
- };
- }
-
- /**
- * Signals to update the currently used video input device.
- *
- * @param {string} deviceId - The id of the new video input device.
- * @returns {{
- * type: SET_VIDEO_INPUT_DEVICE,
- * deviceId: string
- * }}
- */
- export function setVideoInputDevice(deviceId) {
- return {
- type: SET_VIDEO_INPUT_DEVICE,
- deviceId
- };
- }
-
- /**
- * Signals to update the list of known audio and video devices.
- *
- * @param {Array<MediaDeviceInfo>} devices - All known available audio input,
- * audio output, and video input devices.
- * @returns {{
- * type: UPDATE_DEVICE_LIST,
- * devices: Array<MediaDeviceInfo>
- * }}
- */
- export function updateDeviceList(devices) {
- return {
- type: UPDATE_DEVICE_LIST,
- devices
- };
- }
|