| /* |
| * 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; |
| |
| /** |
| * An AudioPortConfig contains a possible configuration of an audio port chosen |
| * among all possible attributes described by an AudioPort. |
| * An AudioPortConfig is created by AudioPort.buildConfiguration(). |
| * AudioPorts are used to specify the sources and sinks of a patch created |
| * with AudioManager.connectAudioPatch(). |
| * Several specialized versions of AudioPortConfig exist to handle different categories of |
| * audio ports and their specific attributes: |
| * - AudioDevicePortConfig for input (e.g micropohone) and output devices (e.g speaker) |
| * - AudioMixPortConfig for input or output streams of the audio framework. |
| * @hide |
| */ |
| |
| public class AudioPortConfig { |
| final AudioPort mPort; |
| private final int mSamplingRate; |
| private final int mChannelMask; |
| private final int mFormat; |
| private final AudioGainConfig mGain; |
| |
| // mConfigMask indicates which fields in this configuration should be |
| // taken into account. Used with AudioSystem.setAudioPortConfig() |
| // framework use only. |
| static final int SAMPLE_RATE = 0x1; |
| static final int CHANNEL_MASK = 0x2; |
| static final int FORMAT = 0x4; |
| static final int GAIN = 0x8; |
| int mConfigMask; |
| |
| AudioPortConfig(AudioPort port, int samplingRate, int channelMask, int format, |
| AudioGainConfig gain) { |
| mPort = port; |
| mSamplingRate = samplingRate; |
| mChannelMask = channelMask; |
| mFormat = format; |
| mGain = gain; |
| mConfigMask = 0; |
| } |
| |
| /** |
| * Returns the audio port this AudioPortConfig is issued from. |
| */ |
| public AudioPort port() { |
| return mPort; |
| } |
| |
| /** |
| * Sampling rate configured for this AudioPortConfig. |
| */ |
| public int samplingRate() { |
| return mSamplingRate; |
| } |
| |
| /** |
| * Channel mask configuration (e.g AudioFormat.CHANNEL_CONFIGURATION_STEREO). |
| */ |
| public int channelMask() { |
| return mChannelMask; |
| } |
| |
| /** |
| * Audio format configuration (e.g AudioFormat.ENCODING_PCM_16BIT). |
| */ |
| public int format() { |
| return mFormat; |
| } |
| |
| /** |
| * The gain configuration if this port supports gain control, null otherwise |
| * @see AudioGainConfig. |
| */ |
| public AudioGainConfig gain() { |
| return mGain; |
| } |
| |
| @Override |
| public String toString() { |
| return "{mPort:" + mPort |
| + ", mSamplingRate:" + mSamplingRate |
| + ", mChannelMask: " + mChannelMask |
| + ", mFormat:" + mFormat |
| + ", mGain:" + mGain |
| + "}"; |
| } |
| } |