1632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn/*
2632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * Copyright (C) 2012 The Android Open Source Project
3632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn *
4632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
5632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * you may not use this file except in compliance with the License.
6632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * You may obtain a copy of the License at
7632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn *
8632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
9632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn *
10632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * Unless required by applicable law or agreed to in writing, software
11632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
12632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * See the License for the specific language governing permissions and
14632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * limitations under the License.
15632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn */
16632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
17632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackbornpackage android.media;
18632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
19632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackbornimport android.os.Parcel;
20632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackbornimport android.os.Parcelable;
21632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackbornimport android.text.TextUtils;
22632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
23632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn/**
24632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * Information available from AudioService about the current routes.
25632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn * @hide
26632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn */
27632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackbornpublic class AudioRoutesInfo implements Parcelable {
28632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    static final int MAIN_SPEAKER = 0;
29632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    static final int MAIN_HEADSET = 1<<0;
30632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    static final int MAIN_HEADPHONES = 1<<1;
31632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    static final int MAIN_DOCK_SPEAKERS = 1<<2;
32632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    static final int MAIN_HDMI = 1<<3;
33632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
34632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    CharSequence mBluetoothName;
35632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    int mMainType = MAIN_SPEAKER;
36632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
37632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    public AudioRoutesInfo() {
38632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    }
39632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
40632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    public AudioRoutesInfo(AudioRoutesInfo o) {
41632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        mBluetoothName = o.mBluetoothName;
42632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        mMainType = o.mMainType;
43632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    }
44632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
45632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    AudioRoutesInfo(Parcel src) {
46632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        mBluetoothName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(src);
47632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        mMainType = src.readInt();
48632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    }
49632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
50632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    @Override
51632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    public int describeContents() {
52632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        return 0;
53632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    }
54632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
55632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    @Override
56632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    public void writeToParcel(Parcel dest, int flags) {
57632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        TextUtils.writeToParcel(mBluetoothName, dest, flags);
58632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        dest.writeInt(mMainType);
59632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    }
60632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
61632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    public static final Parcelable.Creator<AudioRoutesInfo> CREATOR
62632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn            = new Parcelable.Creator<AudioRoutesInfo>() {
63632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        public AudioRoutesInfo createFromParcel(Parcel in) {
64632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn            return new AudioRoutesInfo(in);
65632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        }
66632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn
67632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        public AudioRoutesInfo[] newArray(int size) {
68632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn            return new AudioRoutesInfo[size];
69632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn        }
70632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn    };
71632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn}
72