diff options
Diffstat (limited to 'media/java/android/media/AudioPortConfig.java')
-rw-r--r-- | media/java/android/media/AudioPortConfig.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/media/java/android/media/AudioPortConfig.java b/media/java/android/media/AudioPortConfig.java new file mode 100644 index 0000000..5dc768d --- /dev/null +++ b/media/java/android/media/AudioPortConfig.java @@ -0,0 +1,93 @@ +/* + * 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; + } +} |