1ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik/* Copyright 2014, The Android Open Source Project
2ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik **
3ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** Licensed under the Apache License, Version 2.0 (the "License");
4ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** you may not use this file except in compliance with the License.
5ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** You may obtain a copy of the License at
6ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik **
7ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik **     http://www.apache.org/licenses/LICENSE-2.0
8ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik **
9ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** Unless required by applicable law or agreed to in writing, software
10ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** distributed under the License is distributed on an "AS IS" BASIS,
11ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** See the License for the specific language governing permissions and
13ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik ** limitations under the License.
14ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik */
15ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
16ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErikpackage android.media.session;
17ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
189db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErikimport android.media.AudioAttributes;
19ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErikimport android.os.Parcel;
20ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErikimport android.os.Parcelable;
21ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
22ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik/**
23ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik * Convenience class for passing information about the audio configuration of a
24d2b8c947ddfc6349a3ae6c3968b422b9cf50d7edRoboErik * session. The public implementation is {@link MediaController.PlaybackInfo}.
25ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik *
26ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik * @hide
27ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik */
28ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErikpublic class ParcelableVolumeInfo implements Parcelable {
29ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public int volumeType;
309db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik    public AudioAttributes audioAttrs;
31ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public int controlType;
32ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public int maxVolume;
33ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public int currentVolume;
34ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
359db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik    public ParcelableVolumeInfo(int volumeType, AudioAttributes audioAttrs, int controlType,
369db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik            int maxVolume,
37ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik            int currentVolume) {
38ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        this.volumeType = volumeType;
399db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik        this.audioAttrs = audioAttrs;
40ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        this.controlType = controlType;
41ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        this.maxVolume = maxVolume;
42ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        this.currentVolume = currentVolume;
43ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    }
44ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
45ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public ParcelableVolumeInfo(Parcel from) {
46ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        volumeType = from.readInt();
47ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        controlType = from.readInt();
48ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        maxVolume = from.readInt();
49ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        currentVolume = from.readInt();
509db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik        audioAttrs = AudioAttributes.CREATOR.createFromParcel(from);
51ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    }
52ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
53ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    @Override
54ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public int describeContents() {
55ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        return 0;
56ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    }
57ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
58ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    @Override
59ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public void writeToParcel(Parcel dest, int flags) {
60ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        dest.writeInt(volumeType);
61ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        dest.writeInt(controlType);
62ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        dest.writeInt(maxVolume);
63ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        dest.writeInt(currentVolume);
649db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik        audioAttrs.writeToParcel(dest, flags);
65ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    }
66ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
67ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
68ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    public static final Parcelable.Creator<ParcelableVolumeInfo> CREATOR
69ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik            = new Parcelable.Creator<ParcelableVolumeInfo>() {
70ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        @Override
71ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        public ParcelableVolumeInfo createFromParcel(Parcel in) {
72ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik            return new ParcelableVolumeInfo(in);
73ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        }
74ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik
75ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        @Override
76ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        public ParcelableVolumeInfo[] newArray(int size) {
77ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik            return new ParcelableVolumeInfo[size];
78ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik        }
79ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik    };
80ef3c9e9b057a5aac2d0d012e8e6385660478e203RoboErik}
81