73 lines
1.3 KiB
JavaScript
73 lines
1.3 KiB
JavaScript
const initialState =
|
|
{
|
|
displayName : 'Guest',
|
|
selectedWebcam : null,
|
|
selectedAudioDevice : null,
|
|
advancedMode : false,
|
|
// low, medium, high, veryhigh, ultra
|
|
resolution : window.config.defaultResolution || 'medium',
|
|
lastN : 4,
|
|
permanentTopBar : true
|
|
};
|
|
|
|
const settings = (state = initialState, action) =>
|
|
{
|
|
switch (action.type)
|
|
{
|
|
case 'CHANGE_WEBCAM':
|
|
{
|
|
return { ...state, selectedWebcam: action.payload.deviceId };
|
|
}
|
|
|
|
case 'CHANGE_AUDIO_DEVICE':
|
|
{
|
|
return { ...state, selectedAudioDevice: action.payload.deviceId };
|
|
}
|
|
|
|
case 'CHANGE_AUDIO_OUTPUT_DEVICE':
|
|
{
|
|
return { ...state, selectedAudioOutputDevice: action.payload.deviceId };
|
|
}
|
|
|
|
case 'SET_DISPLAY_NAME':
|
|
{
|
|
const { displayName } = action.payload;
|
|
|
|
return { ...state, displayName };
|
|
}
|
|
|
|
case 'TOGGLE_ADVANCED_MODE':
|
|
{
|
|
const advancedMode = !state.advancedMode;
|
|
|
|
return { ...state, advancedMode };
|
|
}
|
|
|
|
case 'SET_LAST_N':
|
|
{
|
|
const { lastN } = action.payload;
|
|
|
|
return { ...state, lastN };
|
|
}
|
|
|
|
case 'TOGGLE_PERMANENT_TOPBAR':
|
|
{
|
|
const permanentTopBar = !state.permanentTopBar;
|
|
|
|
return { ...state, permanentTopBar };
|
|
}
|
|
|
|
case 'SET_VIDEO_RESOLUTION':
|
|
{
|
|
const { resolution } = action.payload;
|
|
|
|
return { ...state, resolution };
|
|
}
|
|
|
|
default:
|
|
return state;
|
|
}
|
|
};
|
|
|
|
export default settings;
|