# Copyright (c) 2020 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

# Specific fields for USB audio headset.

description: USB Audio headset specific fields.

compatible: "usb-audio-hs"

include: [usb-audio.yaml, usb-audio-feature-volume.yaml]

properties:
  mic-resolution:
    type: int
    default: 16
    enum:
      - 8
      - 16
      - 24
      - 32
  mic-sync-type:
    default: "Synchronous"
    type: string
    description: |
      Type of endpoint synchronization for IN devices.
      Default value is Sychronous.
      Adaptive is not supported.
    enum:
      - "No Synchronization"
      - "Asynchronous"
      - "Adaptive"
      - "Synchronous"
  hp-resolution:
    type: int
    default: 16
    enum:
      - 8
      - 16
      - 24
      - 32
  # microphone channel configuration options
  mic-channel-l:
    type: boolean
    description: Enable (l) channel.
  mic-channel-r:
    type: boolean
    description: Enable (r) channel.
  mic-channel-c:
    type: boolean
    description: Enable (c) channel.
  mic-channel-lfe:
    type: boolean
    description: Enable (lfe) channel.
  mic-channel-ls:
    type: boolean
    description: Enable (ls) channel.
  mic-channel-rs:
    type: boolean
    description: Enable (rs) channel.
  mic-channel-lc:
    type: boolean
    description: Enable (lc) channel.
  mic-channel-rc:
    type: boolean
    description: Enable (rc) channel.
  mic-channel-s:
    type: boolean
    description: Enable (s) channel.
  mic-channel-sl:
    type: boolean
    description: Enable (sl) channel.
  mic-channel-sr:
    type: boolean
    description: Enable (sr) channel.
  mic-channel-t:
    type: boolean
    description: Enable (t) channel.
  mic-channel-cfg:
    type: boolean
    description: Enable (cfg) channel.
  # microphone feature unit configuration options
  mic-feature-mute:
    type: boolean
    required: true
    description: Enable Mute feature.
  mic-feature-volume:
    type: boolean
    description: |
      Enable Volume feature.
      Currently not supported.
  mic-feature-tone-control:
    type: boolean
    description: |
      Enable Tone Control (Bass, Mid, Treble) feature.
      Currently not supported.
  mic-feature-graphic-equalizer:
    type: boolean
    description: |
      Enable  Graphic Equalizer feature.
      Currently not supported.
  mic-feature-automatic-gain-control:
    type: boolean
    description: |
      Enable Autoamtic Gain Control feature.
      Currently not supported.
  mic-feature-delay:
    type: boolean
    description: |
      Enable Delay feature.
      Currently not supported.
  mic-feature-bass-boost:
    type: boolean
    description: |
      Enable Bass Boost feature.
      Currently not supported.
  mic-feature-loudness:
    type: boolean
    description: |
      Enable Loudness feature.
      Currently not supported.
# headphones channel configuration options
  hp-channel-l:
    type: boolean
    description: Enable (l) channel.
  hp-channel-r:
    type: boolean
    description: Enable (r) channel.
  hp-channel-c:
    type: boolean
    description: Enable (c) channel.
  hp-channel-lfe:
    type: boolean
    description: Enable (lfe) channel.
  hp-channel-ls:
    type: boolean
    description: Enable (ls) channel.
  hp-channel-rs:
    type: boolean
    description: Enable (rs) channel.
  hp-channel-lc:
    type: boolean
    description: Enable (lc) channel.
  hp-channel-rc:
    type: boolean
    description: Enable (rc) channel.
  hp-channel-s:
    type: boolean
    description: Enable (s) channel.
  hp-channel-sl:
    type: boolean
    description: Enable (sl) channel.
  hp-channel-sr:
    type: boolean
    description: Enable (sr) channel.
  hp-channel-t:
    type: boolean
    description: Enable (t) channel.
  hp-channel-cfg:
    type: boolean
    description: Enable (cfg) channel.
  # headphones feature unit configuration options
  hp-feature-mute:
    type: boolean
    required: true
    description: Enable Mute feature.
  hp-feature-volume:
    type: boolean
    description: |
      Enable Volume feature.
  hp-feature-tone-control:
    type: boolean
    description: |
      Enable Tone Control (Bass, Mid, Treble) feature.
      Currently not supported.
  hp-feature-graphic-equalizer:
    type: boolean
    description: |
      Enable  Graphic Equalizer feature.
      Currently not supported.
  hp-feature-automatic-gain-control:
    type: boolean
    description: |
      Enable Autoamtic Gain Control feature.
      Currently not supported.
  hp-feature-delay:
    type: boolean
    description: |
      Enable Delay feature.
      Currently not supported.
  hp-feature-bass-boost:
    type: boolean
    description: |
      Enable Bass Boost feature.
      Currently not supported.
  hp-feature-loudness:
    type: boolean
    description: |
      Enable Loudness feature.
      Currently not supported.
