13cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal/*
23cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * Copyright (C) 2015 The Android Open Source Project
33cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal *
43cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * Licensed under the Apache License, Version 2.0 (the "License");
53cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * you may not use this file except in compliance with the License.
63cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * You may obtain a copy of the License at
73cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal *
83cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal *      http://www.apache.org/licenses/LICENSE-2.0
93cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal *
103cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * Unless required by applicable law or agreed to in writing, software
113cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * distributed under the License is distributed on an "AS IS" BASIS,
123cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * See the License for the specific language governing permissions and
143cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * limitations under the License.
153cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal */
163cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
17e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Parkpackage android.car.hardware.radio;
183cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
19e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Parkimport android.annotation.SystemApi;
203cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwalimport android.os.Parcel;
213cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwalimport android.os.Parcelable;
223cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
233cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal/**
243cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal * CarPreset object corresponds to a preset that is stored on the car's Radio unit.
25280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkiv * @hide
263cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal */
27e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Park@SystemApi
28e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Parkpublic class CarRadioPreset implements Parcelable {
29064ddd89fd57c6c20a98b9f95f9ea5123d11160bKeun-young Park
303cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    /*
313cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     * Preset number at which this preset is stored.
323cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     *
333cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     * The value is 1 index based.
343cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     */
353cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    private final int mPresetNumber;
363cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    /**
373cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     * Radio band this preset belongs to.
383cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     * See {@link RadioManager.BAND_FM}, {@link RadioManager.BAND_AM} etc.
393cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     */
403cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    private final int mBand;
413cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    /**
423cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     * Channel number.
433cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     */
443cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    private final int mChannel;
453cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    /**
463cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     * Sub channel number.
473cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal     */
483cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    private final int mSubChannel;
493cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
503cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public int describeContents() {
513cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        return 0;
523cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    }
533cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
543cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public void writeToParcel(Parcel out, int flags) {
553cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        out.writeInt(mPresetNumber);
563cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        out.writeInt(mBand);
573cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        out.writeInt(mChannel);
583cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        out.writeInt(mSubChannel);
593cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    }
603cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
613cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public static final Parcelable.Creator<CarRadioPreset> CREATOR
623cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            = new Parcelable.Creator<CarRadioPreset>() {
633cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        public CarRadioPreset createFromParcel(Parcel in) {
643cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            return new CarRadioPreset(in);
653cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        }
663cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
673cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        public CarRadioPreset[] newArray(int size) {
683cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            return new CarRadioPreset[size];
693cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        }
703cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    };
713cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
723cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    private CarRadioPreset(Parcel in) {
733cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mPresetNumber = in.readInt();
743cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mBand = in.readInt();
753cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mChannel = in.readInt();
763cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mSubChannel = in.readInt();
773cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    }
783cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
793cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public CarRadioPreset(int presetNumber, int bandType, int channel, int subChannel) {
803cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mPresetNumber = presetNumber;
813cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mBand = bandType;
823cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mChannel = channel;
833cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        mSubChannel = subChannel;
843cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    }
853cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
863cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    // Getters.
873cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public int getPresetNumber() { return mPresetNumber; }
883cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
893cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public int getBand() { return mBand; }
903cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
913cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public int getChannel() { return mChannel; }
923cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
933cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public int getSubChannel() { return mSubChannel; }
943cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
953cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    // Printer.
963cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public String toString() {
973cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        return "Preset Number: " + mPresetNumber + "\n" +
983cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            "Band: " + mBand + "\n" +
993cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            "Channel: " + mChannel + "\n" +
1003cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            "Sub channel: " + mSubChannel;
1013cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    }
1023cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
1033cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    // Comparator.
1043cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    public boolean equals(Object o) {
1053cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        CarRadioPreset that = (CarRadioPreset) o;
1063cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
1073cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal        return that.getPresetNumber() == mPresetNumber &&
1083cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            that.getBand() == mBand &&
1093cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            that.getChannel() == mChannel &&
1103cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal            that.getSubChannel() == mSubChannel;
1113cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal
1123cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal    }
1133cf096ae0d992d22cfba1b0711af2211c511a9feSanket Agarwal}
114