/* * Copyright (C) 2014 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 android.media; /** * The AudioGainConfig is used by APIs setting or getting values on a given gain * controller. It contains a valid configuration (value, channels...) for a gain controller * exposed by an audio port. * @see AudioGain * @see AudioPort * @hide */ public class AudioGainConfig { AudioGain mGain; private final int mIndex; private final int mMode; private final int mChannelMask; private final int mValues[]; private final int mRampDurationMs; AudioGainConfig(int index, AudioGain gain, int mode, int channelMask, int[] values, int rampDurationMs) { mIndex = index; mGain = gain; mMode = mode; mChannelMask = channelMask; mValues = values; mRampDurationMs = rampDurationMs; } /** * get the index of the parent gain. * frameworks use only. */ int index() { return mIndex; } /** * Bit field indicating requested modes of operation. See {@link AudioGain#MODE_JOINT}, * {@link AudioGain#MODE_CHANNELS}, {@link AudioGain#MODE_RAMP} */ public int mode() { return mMode; } /** * Indicates for which channels the gain is set. * See {@link AudioFormat#CHANNEL_OUT_STEREO}, {@link AudioFormat#CHANNEL_OUT_MONO} ... */ public int channelMask() { return mChannelMask; } /** * Gain values for each channel in the order of bits set in * channelMask() from LSB to MSB */ public int[] values() { return mValues; } /** * Ramp duration in milliseconds. N/A if mode() does not * specify MODE_RAMP. */ public int rampDurationMs() { return mRampDurationMs; } }