| /* |
| * Copyright (C) 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.android.server.usb.descriptors; |
| |
| /** |
| * @hide |
| * An audio class-specific Feature Unit Interface |
| * see audio10.pdf section 3.5.5 |
| */ |
| public class UsbACFeatureUnit extends UsbACInterface { |
| private static final String TAG = "ACFeatureUnit"; |
| |
| // audio10.pdf section 4.3.2.5 |
| public static final int CONTROL_MASK_MUTE = 0x0001; |
| public static final int CONTROL_MASK_VOL = 0x0002; |
| public static final int CONTROL_MASK_BASS = 0x0004; |
| public static final int CONTROL_MASK_MID = 0x0008; |
| public static final int CONTROL_MASK_TREB = 0x0010; |
| public static final int CONTROL_MASK_EQ = 0x0020; |
| public static final int CONTROL_MASK_AGC = 0x0040; |
| public static final int CONTROL_MASK_DELAY = 0x0080; |
| public static final int CONTROL_MASK_BOOST = 0x0100; // BASS boost |
| public static final int CONTROL_MASK_LOUD = 0x0200; // LOUDNESS |
| |
| private int mNumChannels; |
| |
| private byte mUnitID; // 3:1 Constant uniquely identifying the Unit within the audio function. |
| // This value is used in all requests to address this Unit |
| private byte mSourceID; // 4:1 ID of the Unit or Terminal to which this Feature Unit |
| // is connected. |
| private byte mControlSize; // 5:1 Size in bytes of an element of the mControls array: n |
| private int[] mControls; // 6:? bitmask (see above) of supported controls in a given |
| // logical channel |
| private byte mUnitName; // ?:1 Index of a string descriptor, describing this Feature Unit. |
| |
| public UsbACFeatureUnit(int length, byte type, byte subtype, byte subClass) { |
| super(length, type, subtype, subClass); |
| } |
| |
| public int getNumChannels() { |
| return mNumChannels; |
| } |
| |
| public byte getUnitID() { |
| return mUnitID; |
| } |
| |
| public byte getSourceID() { |
| return mSourceID; |
| } |
| |
| public byte getControlSize() { |
| return mControlSize; |
| } |
| |
| public int[] getControls() { |
| return mControls; |
| } |
| |
| public byte getUnitName() { |
| return mUnitName; |
| } |
| } |