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