1/*
2* Copyright (C) 2015 Samsung System LSI
3* Licensed under the Apache License, Version 2.0 (the "License");
4* you may not use this file except in compliance with the License.
5* You may obtain a copy of the License at
6*
7*      http://www.apache.org/licenses/LICENSE-2.0
8*
9* Unless required by applicable law or agreed to in writing, software
10* distributed under the License is distributed on an "AS IS" BASIS,
11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12* See the License for the specific language governing permissions and
13* limitations under the License.
14*/
15
16package android.bluetooth;
17
18import android.os.Parcel;
19import android.os.Parcelable;
20
21/** @hide */
22public class SdpPseRecord implements Parcelable {
23    private final int mL2capPsm;
24    private final int mRfcommChannelNumber;
25    private final int mProfileVersion;
26    private final int mSupportedFeatures;
27    private final int mSupportedRepositories;
28    private final String mServiceName;
29
30    public SdpPseRecord(int l2capPsm,
31            int rfcommChannelNumber,
32            int profileVersion,
33            int supportedFeatures,
34            int supportedRepositories,
35            String serviceName) {
36        mL2capPsm = l2capPsm;
37        mRfcommChannelNumber = rfcommChannelNumber;
38        mProfileVersion = profileVersion;
39        mSupportedFeatures = supportedFeatures;
40        mSupportedRepositories = supportedRepositories;
41        mServiceName = serviceName;
42    }
43
44    public SdpPseRecord(Parcel in) {
45        mRfcommChannelNumber = in.readInt();
46        mL2capPsm = in.readInt();
47        mProfileVersion = in.readInt();
48        mSupportedFeatures = in.readInt();
49        mSupportedRepositories = in.readInt();
50        mServiceName = in.readString();
51    }
52
53    @Override
54    public int describeContents() {
55        // TODO Auto-generated method stub
56        return 0;
57    }
58
59    public int getL2capPsm() {
60        return mL2capPsm;
61    }
62
63    public int getRfcommChannelNumber() {
64        return mRfcommChannelNumber;
65    }
66
67    public int getSupportedFeatures() {
68        return mSupportedFeatures;
69    }
70
71    public String getServiceName() {
72        return mServiceName;
73    }
74
75    public int getProfileVersion() {
76        return mProfileVersion;
77    }
78
79    public int getSupportedRepositories() {
80        return mSupportedRepositories;
81    }
82
83    @Override
84    public void writeToParcel(Parcel dest, int flags) {
85        dest.writeInt(mRfcommChannelNumber);
86        dest.writeInt(mL2capPsm);
87        dest.writeInt(mProfileVersion);
88        dest.writeInt(mSupportedFeatures);
89        dest.writeInt(mSupportedRepositories);
90        dest.writeString(mServiceName);
91
92    }
93
94    @Override
95    public String toString() {
96        String ret = "Bluetooth MNS SDP Record:\n";
97
98        if (mRfcommChannelNumber != -1) {
99            ret += "RFCOMM Chan Number: " + mRfcommChannelNumber + "\n";
100        }
101        if (mL2capPsm != -1) {
102            ret += "L2CAP PSM: " + mL2capPsm + "\n";
103        }
104        if (mProfileVersion != -1) {
105            ret += "profile version: " + mProfileVersion + "\n";
106        }
107        if (mServiceName != null) {
108            ret += "Service Name: " + mServiceName + "\n";
109        }
110        if (mSupportedFeatures != -1) {
111            ret += "Supported features: " + mSupportedFeatures + "\n";
112        }
113        if (mSupportedRepositories != -1) {
114            ret += "Supported repositories: " + mSupportedRepositories + "\n";
115        }
116
117        return ret;
118    }
119
120    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
121        public SdpPseRecord createFromParcel(Parcel in) {
122            return new SdpPseRecord(in);
123        }
124
125        public SdpPseRecord[] newArray(int size) {
126            return new SdpPseRecord[size];
127        }
128    };
129}
130