12345678910111213141516171819202122232425262728293031323334353637383940 |
- /* globals APP */
-
- import { openDialog } from '../base/dialog';
- import JitsiMeetJS from '../base/lib-jitsi-meet';
-
- import { DeviceSelectionDialog } from './components';
-
- /**
- * Open DeviceSelectionDialog with a configuration based on the environment's
- * supported abilities.
- *
- * @returns {Function}
- */
- export function openDeviceSelectionDialog() {
- return (dispatch, getState) => {
- JitsiMeetJS.mediaDevices.isDeviceListAvailable()
- .then(isDeviceListAvailable => {
- const state = getState();
- const conference = state['features/base/conference'].conference;
-
- dispatch(openDialog(DeviceSelectionDialog, {
- currentAudioOutputId: APP.settings.getAudioOutputDeviceId(),
- currentAudioTrack: conference.getLocalAudioTrack(),
- currentVideoTrack: conference.getLocalVideoTrack(),
- disableAudioInputChange:
- !JitsiMeetJS.isMultipleAudioInputSupported(),
- disableDeviceChange: !isDeviceListAvailable
- || !JitsiMeetJS.mediaDevices.isDeviceChangeAvailable(),
- hasAudioPermission: JitsiMeetJS.mediaDevices
- .isDevicePermissionGranted('audio'),
- hasVideoPermission: JitsiMeetJS.mediaDevices
- .isDevicePermissionGranted('video'),
- hideAudioInputPreview:
- !JitsiMeetJS.isCollectingLocalStats(),
- hideAudioOutputSelect: !JitsiMeetJS.mediaDevices
- .isDeviceChangeAvailable('output')
- }));
- });
- };
- }
|