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 l2cap_psm,
31            int rfcomm_channel_number,
32            int profile_version,
33            int supported_features,
34            int supported_repositories,
35            String service_name){
36        this.mL2capPsm = l2cap_psm;
37        this.mRfcommChannelNumber = rfcomm_channel_number;
38        this.mProfileVersion = profile_version;
39        this.mSupportedFeatures = supported_features;
40        this.mSupportedRepositories = supported_repositories;
41        this.mServiceName = service_name;
42    }
43
44    public SdpPseRecord(Parcel in){
45           this.mRfcommChannelNumber = in.readInt();
46           this.mL2capPsm = in.readInt();
47           this.mProfileVersion = in.readInt();
48           this.mSupportedFeatures = in.readInt();
49           this.mSupportedRepositories = in.readInt();
50           this.mServiceName = in.readString();
51    }
52    @Override
53    public int describeContents() {
54        // TODO Auto-generated method stub
55        return 0;
56    }
57
58    public int getL2capPsm() {
59        return mL2capPsm;
60    }
61
62    public int getRfcommChannelNumber() {
63        return mRfcommChannelNumber;
64    }
65
66    public int getSupportedFeatures() {
67        return mSupportedFeatures;
68    }
69
70    public String getServiceName() {
71        return mServiceName;
72    }
73
74    public int getProfileVersion() {
75        return mProfileVersion;
76    }
77
78    public int getSupportedRepositories() {
79        return mSupportedRepositories;
80    }
81    @Override
82    public void writeToParcel(Parcel dest, int flags) {
83        dest.writeInt(mRfcommChannelNumber);
84        dest.writeInt(mL2capPsm);
85        dest.writeInt(mProfileVersion);
86        dest.writeInt(mSupportedFeatures);
87        dest.writeInt(mSupportedRepositories);
88        dest.writeString(mServiceName);
89
90    }
91
92    public String toString(){
93        String ret = "Bluetooth MNS SDP Record:\n";
94
95        if(mRfcommChannelNumber != -1){
96            ret += "RFCOMM Chan Number: " + mRfcommChannelNumber + "\n";
97        }
98        if(mL2capPsm != -1){
99            ret += "L2CAP PSM: " + mL2capPsm + "\n";
100        }
101        if(mProfileVersion != -1){
102            ret += "profile version: " + mProfileVersion + "\n";
103        }
104        if(mServiceName != null){
105            ret += "Service Name: " + mServiceName + "\n";
106        }
107        if(mSupportedFeatures != -1){
108            ret += "Supported features: " + mSupportedFeatures + "\n";
109        }
110        if(mSupportedRepositories != -1){
111            ret += "Supported repositories: " + mSupportedRepositories + "\n";
112        }
113
114        return ret;
115    }
116
117    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
118        public SdpPseRecord createFromParcel(Parcel in) {
119            return new SdpPseRecord(in);
120        }
121        public SdpPseRecord[] newArray(int size) {
122            return new SdpPseRecord[size];
123        }
124    };
125}
126