summaryrefslogtreecommitdiffstats
path: root/media/java/android/media/AudioPortConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'media/java/android/media/AudioPortConfig.java')
-rw-r--r--media/java/android/media/AudioPortConfig.java93
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;
+ }
+}