The Device Selection modal consists of: - DeviceSelection, an overly smart component responsible for triggering stream creation and cleanup. - DeviceSelector for selector elements. - VideoInputPreview for displaying a video preview. - AudioInputPreview for displaying a volume meter. - AudioOutputPreview for a test sound output link. Store changes include is primarily storing the list of available devices in redux. Other app state has been left alone for future refactoring.
35 lines
909 B
JavaScript
35 lines
909 B
JavaScript
/* global APP */
|
|
|
|
import UIEvents from '../../../../service/UI/UIEvents';
|
|
|
|
import { MiddlewareRegistry } from '../redux';
|
|
|
|
import {
|
|
SET_AUDIO_INPUT_DEVICE,
|
|
SET_AUDIO_OUTPUT_DEVICE,
|
|
SET_VIDEO_INPUT_DEVICE
|
|
} from './actionTypes';
|
|
|
|
/**
|
|
* Implements the middleware of the feature base/devices.
|
|
*
|
|
* @param {Store} store - Redux store.
|
|
* @returns {Function}
|
|
*/
|
|
// eslint-disable-next-line no-unused-vars
|
|
MiddlewareRegistry.register(store => next => action => {
|
|
switch (action.type) {
|
|
case SET_AUDIO_INPUT_DEVICE:
|
|
APP.UI.emitEvent(UIEvents.AUDIO_DEVICE_CHANGED, action.deviceId);
|
|
break;
|
|
case SET_AUDIO_OUTPUT_DEVICE:
|
|
APP.UI.emitEvent(UIEvents.AUDIO_OUTPUT_DEVICE_CHANGED, action.deviceId);
|
|
break;
|
|
case SET_VIDEO_INPUT_DEVICE:
|
|
APP.UI.emitEvent(UIEvents.VIDEO_DEVICE_CHANGED, action.deviceId);
|
|
break;
|
|
}
|
|
|
|
return next(action);
|
|
});
|