158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung/*
258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * Copyright (C) 2015 The Android Open Source Project
358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung *
458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * Licensed under the Apache License, Version 2.0 (the "License");
558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * you may not use this file except in compliance with the License.
658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * You may obtain a copy of the License at
758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung *
858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung *      http://www.apache.org/licenses/LICENSE-2.0
958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung *
1058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * Unless required by applicable law or agreed to in writing, software
1158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * distributed under the License is distributed on an "AS IS" BASIS,
1258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * See the License for the specific language governing permissions and
1458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * limitations under the License.
1558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung */
1658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
1758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chungpackage android.media.tv;
1858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
1958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chungimport android.os.Parcel;
2058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chungimport android.os.Parcelable;
2158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chungimport android.util.Log;
2258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
2358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung/**
2458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * Simple container for information about DVB device.
2558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * Not for third-party developers.
2658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung *
2758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung * @hide
2858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung */
2958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chungpublic final class DvbDeviceInfo implements Parcelable {
3058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    static final String TAG = "DvbDeviceInfo";
3158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
3258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    public static final Parcelable.Creator<DvbDeviceInfo> CREATOR =
3358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung            new Parcelable.Creator<DvbDeviceInfo>() {
3458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                @Override
3558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                public DvbDeviceInfo createFromParcel(Parcel source) {
3658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                    try {
3758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                        return new DvbDeviceInfo(source);
3858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                    } catch (Exception e) {
3958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                        Log.e(TAG, "Exception creating DvbDeviceInfo from parcel", e);
4058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                        return null;
4158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                    }
4258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                }
4358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
4458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                @Override
4558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                public DvbDeviceInfo[] newArray(int size) {
4658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                    return new DvbDeviceInfo[size];
4758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung                }
4858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung            };
4958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
5058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    private final int mAdapterId;
5158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    private final int mDeviceId;
5258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
5358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    private DvbDeviceInfo(Parcel source) {
5458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        mAdapterId = source.readInt();
5558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        mDeviceId = source.readInt();
5658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    }
5758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
5858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    /**
5958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     * Constructs a new {@link DvbDeviceInfo} with the given adapter ID and device ID.
6058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     */
6158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    public DvbDeviceInfo(int adapterId, int deviceId) {
6258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        mAdapterId = adapterId;
6358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        mDeviceId = deviceId;
6458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    }
6558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
6658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    /**
6758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     * Returns the adapter ID of DVB device, in terms of enumerating the DVB device adapters
6858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     * installed in the system. The adapter ID counts from zero.
6958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     */
7058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    public int getAdapterId() {
7158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        return mAdapterId;
7258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    }
7358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
7458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    /**
7558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     * Returns the device ID of DVB device, in terms of enumerating the DVB devices attached to
7658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     * the same device adapter. The device ID counts from zero.
7758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung     */
7858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    public int getDeviceId() {
7958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        return mDeviceId;
8058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    }
8158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
8258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    // Parcelable
8358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    @Override
8458739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    public int describeContents() {
8558739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        return 0;
8658739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    }
8758739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung
8858739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    @Override
8958739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    public void writeToParcel(Parcel dest, int flags) {
9058739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        dest.writeInt(mAdapterId);
9158739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung        dest.writeInt(mDeviceId);
9258739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung    }
9358739e758428f3b880f8e67161f57c59aa06d496Jaesung Chung}
94