diff options
author | Mike Lockwood <lockwood@google.com> | 2014-05-14 09:51:30 -0700 |
---|---|---|
committer | Mike Lockwood <lockwood@google.com> | 2014-06-13 09:06:35 -0700 |
commit | f0de508aeaac6686cb132c73e224980fede48727 (patch) | |
tree | bedbd6b5d46c25a31ae877004fb3a07c681dafec /framework/java/android/bluetooth/BluetoothAudioConfig.java | |
parent | 1189a3b805f9cfa59e9ff05a6b152bc7015fa9e3 (diff) |
BluetoothA2dpSink: Add new BluetoothProfile subclass for A2DP sink
Change-Id: I09d5cb8fdaea4c4828f333949b7c18deffd22722
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothAudioConfig.java')
-rw-r--r-- | framework/java/android/bluetooth/BluetoothAudioConfig.java | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/framework/java/android/bluetooth/BluetoothAudioConfig.java b/framework/java/android/bluetooth/BluetoothAudioConfig.java new file mode 100644 index 0000000000..03176b9e07 --- /dev/null +++ b/framework/java/android/bluetooth/BluetoothAudioConfig.java @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2009 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.bluetooth; + +import android.os.Parcel; +import android.os.Parcelable; + +/** + * Represents the audio configuration for a Bluetooth A2DP source device. + * + * {@see BluetoothA2dpSink} + * + * {@hide} + */ +public final class BluetoothAudioConfig implements Parcelable { + + private final int mSampleRate; + private final int mChannelConfig; + private final int mAudioFormat; + + public BluetoothAudioConfig(int sampleRate, int channelConfig, int audioFormat) { + mSampleRate = sampleRate; + mChannelConfig = channelConfig; + mAudioFormat = audioFormat; + } + + @Override + public boolean equals(Object o) { + if (o instanceof BluetoothAudioConfig) { + BluetoothAudioConfig bac = (BluetoothAudioConfig)o; + return (bac.mSampleRate == mSampleRate && + bac.mChannelConfig == mChannelConfig && + bac.mAudioFormat == mAudioFormat); + } + return false; + } + + @Override + public int hashCode() { + return mSampleRate | (mChannelConfig << 24) | (mAudioFormat << 28); + } + + @Override + public String toString() { + return "{mSampleRate:" + mSampleRate + ",mChannelConfig:" + mChannelConfig + + ",mAudioFormat:" + mAudioFormat + "}"; + } + + public int describeContents() { + return 0; + } + + public static final Parcelable.Creator<BluetoothAudioConfig> CREATOR = + new Parcelable.Creator<BluetoothAudioConfig>() { + public BluetoothAudioConfig createFromParcel(Parcel in) { + int sampleRate = in.readInt(); + int channelConfig = in.readInt(); + int audioFormat = in.readInt(); + return new BluetoothAudioConfig(sampleRate, channelConfig, audioFormat); + } + public BluetoothAudioConfig[] newArray(int size) { + return new BluetoothAudioConfig[size]; + } + }; + + public void writeToParcel(Parcel out, int flags) { + out.writeInt(mSampleRate); + out.writeInt(mChannelConfig); + out.writeInt(mAudioFormat); + } + + /** + * Returns the sample rate in samples per second + * @return sample rate + */ + public int getSampleRate() { + return mSampleRate; + } + + /** + * Returns the channel configuration (either {@link android.media.AudioFormat#CHANNEL_IN_MONO} + * or {@link android.media.AudioFormat#CHANNEL_IN_STEREO}) + * @return channel configuration + */ + public int getChannelConfig() { + return mChannelConfig; + } + + /** + * Returns the channel audio format (either {@link android.media.AudioFormat#ENCODING_PCM_16BIT} + * or {@link android.media.AudioFormat#ENCODING_PCM_8BIT} + * @return audio format + */ + public int getAudioFormat() { + return mAudioFormat; + } +} |