# 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

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.
      Currently not supported.
  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.
