const STORAGE_KEY = 'vidconf-audio-output-device'

/**
 * Поддержка выбора устройства аудиовывода — определяем по наличию
 * `setSinkId` в рантайме, НЕ по User-Agent: в iOS Safari метода нет вообще
 * (маршрутизация звука там целиком на стороне ОС), в Android Chrome есть.
 */
export function isAudioOutputSelectable(): boolean {
  return typeof HTMLMediaElement !== 'undefined' && 'setSinkId' in HTMLMediaElement.prototype
}

/**
 * Персист выбранного устройства вывода — отдельно от `usePersistentUserChoices`
 * LiveKit: их `LocalUserChoices` знает только про вход (микрофон/камера),
 * поля для аудиовыхода там нет.
 */
export function loadAudioOutputDeviceId(): string {
  try {
    return localStorage.getItem(STORAGE_KEY) ?? ''
  } catch {
    // localStorage недоступен (приватный режим/политики браузера) — без
    // сохранённого выбора, устройство по умолчанию.
    return ''
  }
}

export function saveAudioOutputDeviceId(deviceId: string): void {
  try {
    localStorage.setItem(STORAGE_KEY, deviceId)
  } catch {
    // Сохранение недоступно — выбор продержится до конца сессии в комнате.
  }
}
