104 lines
3.1 KiB
Java
104 lines
3.1 KiB
Java
/*
|
|
* 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
|
|
+ "}";
|
|
}
|
|
}
|