30 lines
857 B
TypeScript
30 lines
857 B
TypeScript
import { createGlobalState, useDevicesList, useLocalStorage } from '@vueuse/core'
|
|
|
|
export const usePreferences = createGlobalState(() => {
|
|
const inputDeviceId = useLocalStorage<MediaDeviceInfo['deviceId']>('INPUT_DEVICE_ID', 'default')
|
|
const outputDeviceId = useLocalStorage<MediaDeviceInfo['deviceId']>('OUTPUT_DEVICE_ID', 'default')
|
|
|
|
const autoGainControl = useLocalStorage('AUTO_GAIN_CONTROL', false)
|
|
const noiseSuppression = useLocalStorage('NOISE_SUPPRESSION', true)
|
|
const echoCancellation = useLocalStorage('ECHO_CANCELLATION', true)
|
|
|
|
const {
|
|
ensurePermissions,
|
|
permissionGranted,
|
|
videoInputs,
|
|
audioInputs,
|
|
audioOutputs,
|
|
} = useDevicesList()
|
|
|
|
return {
|
|
inputDeviceId,
|
|
outputDeviceId,
|
|
autoGainControl,
|
|
noiseSuppression,
|
|
echoCancellation,
|
|
videoInputs,
|
|
audioInputs,
|
|
audioOutputs,
|
|
}
|
|
})
|