| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /** |
| * @fileoverview Definitions for chrome.audio API |
| * Generated from: extensions/common/api/audio.idl |
| * run `tools/json_schema_compiler/compiler.py extensions/common/api/audio.idl |
| * -g ts_definitions` to regenerate. |
| */ |
| |
| import type {ChromeEvent} from '../../../../../../tools/typescript/definitions/chrome_event.js'; |
| |
| declare global { |
| export namespace chrome { |
| |
| export namespace audio { |
| |
| export enum StreamType { |
| INPUT = 'INPUT', |
| OUTPUT = 'OUTPUT', |
| } |
| |
| export enum DeviceType { |
| HEADPHONE = 'HEADPHONE', |
| MIC = 'MIC', |
| USB = 'USB', |
| BLUETOOTH = 'BLUETOOTH', |
| HDMI = 'HDMI', |
| INTERNAL_SPEAKER = 'INTERNAL_SPEAKER', |
| INTERNAL_MIC = 'INTERNAL_MIC', |
| FRONT_MIC = 'FRONT_MIC', |
| REAR_MIC = 'REAR_MIC', |
| KEYBOARD_MIC = 'KEYBOARD_MIC', |
| HOTWORD = 'HOTWORD', |
| LINEOUT = 'LINEOUT', |
| POST_MIX_LOOPBACK = 'POST_MIX_LOOPBACK', |
| POST_DSP_LOOPBACK = 'POST_DSP_LOOPBACK', |
| ALSA_LOOPBACK = 'ALSA_LOOPBACK', |
| OTHER = 'OTHER', |
| } |
| |
| export interface AudioDeviceInfo { |
| id: string; |
| streamType: StreamType; |
| deviceType: DeviceType; |
| displayName: string; |
| deviceName: string; |
| isActive: boolean; |
| level: number; |
| stableDeviceId?: string; |
| } |
| |
| export interface DeviceFilter { |
| streamTypes?: StreamType[]; |
| isActive?: boolean; |
| } |
| |
| export interface DeviceProperties { |
| level?: number; |
| } |
| |
| export interface DeviceIdLists { |
| input?: string[]; |
| output?: string[]; |
| } |
| |
| export interface MuteChangedEvent { |
| streamType: StreamType; |
| isMuted: boolean; |
| } |
| |
| export interface LevelChangedEvent { |
| deviceId: string; |
| level: number; |
| } |
| |
| export function getDevices( |
| filter?: DeviceFilter, |
| callback?: (devices: AudioDeviceInfo[]) => void): void; |
| |
| export function setActiveDevices( |
| ids: DeviceIdLists, callback: () => void): void; |
| |
| export function setProperties( |
| id: string, properties: DeviceProperties, callback: () => void): void; |
| |
| export function getMute( |
| streamType: StreamType, callback: (isMute: boolean) => void): void; |
| |
| export function setMute( |
| streamType: StreamType, isMuted: boolean, callback: () => void): void; |
| |
| export const onLevelChanged: |
| ChromeEvent<(event: LevelChangedEvent) => void>; |
| |
| export const onMuteChanged: |
| ChromeEvent<(event: MuteChangedEvent) => void>; |
| |
| export const onDeviceListChanged: |
| ChromeEvent<(devices: AudioDeviceInfo[]) => void>; |
| |
| } |
| } |
| } |