1238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde/*
2238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* Copyright (C) 2015 Samsung System LSI
3238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* Licensed under the Apache License, Version 2.0 (the "License");
4238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* you may not use this file except in compliance with the License.
5238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* You may obtain a copy of the License at
6238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde*
7238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde*      http://www.apache.org/licenses/LICENSE-2.0
8238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde*
9238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* Unless required by applicable law or agreed to in writing, software
10238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* distributed under the License is distributed on an "AS IS" BASIS,
11238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* See the License for the specific language governing permissions and
13238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde* limitations under the License.
14238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde*/
15238e0f934f1f47263b384bc745ae0678c777130dCasper Bondepackage android.bluetooth;
16238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
17238e0f934f1f47263b384bc745ae0678c777130dCasper Bondeimport android.os.Parcel;
18238e0f934f1f47263b384bc745ae0678c777130dCasper Bondeimport android.os.Parcelable;
19238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
20238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde/** @hide */
21238e0f934f1f47263b384bc745ae0678c777130dCasper Bondepublic class SdpMnsRecord implements Parcelable {
22238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mL2capPsm;
23238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mRfcommChannelNumber;
24238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mSupportedFeatures;
25238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mProfileVersion;
26238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final String mServiceName;
27238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
28238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public SdpMnsRecord(int l2cap_psm,
29238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            int rfcomm_channel_number,
30238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            int profile_version,
31238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            int supported_features,
32238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            String service_name){
33238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mL2capPsm = l2cap_psm;
34238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mRfcommChannelNumber = rfcomm_channel_number;
35238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mSupportedFeatures = supported_features;
36238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mServiceName = service_name;
37238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mProfileVersion = profile_version;
38238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
39238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
40238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public SdpMnsRecord(Parcel in){
41238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mRfcommChannelNumber = in.readInt();
42238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mL2capPsm = in.readInt();
43238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mServiceName = in.readString();
44238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mSupportedFeatures = in.readInt();
45238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mProfileVersion = in.readInt();
46238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
47238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    @Override
48238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int describeContents() {
49238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        // TODO Auto-generated method stub
50238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return 0;
51238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
52238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
53238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
54238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getL2capPsm() {
55238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mL2capPsm;
56238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
57238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
58238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getRfcommChannelNumber() {
59238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mRfcommChannelNumber;
60238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
61238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
62238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getSupportedFeatures() {
63238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mSupportedFeatures;
64238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
65238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
66238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public String getServiceName() {
67238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mServiceName;
68238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
69238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
70238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getProfileVersion() {
71238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mProfileVersion;
72238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
73238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
74238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    @Override
75238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public void writeToParcel(Parcel dest, int flags) {
76238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mRfcommChannelNumber);
77238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mL2capPsm);
78238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeString(mServiceName);
79238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mSupportedFeatures);
80238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mProfileVersion);
81238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
82238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
83238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public String toString(){
84238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        String ret = "Bluetooth MNS SDP Record:\n";
85238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
86238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mRfcommChannelNumber != -1){
87238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "RFCOMM Chan Number: " + mRfcommChannelNumber + "\n";
88238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
89238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mL2capPsm != -1){
90238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "L2CAP PSM: " + mL2capPsm + "\n";
91238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
92238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mServiceName != null){
93238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "Service Name: " + mServiceName + "\n";
94238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
95238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mSupportedFeatures != -1){
96238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "Supported features: " + mSupportedFeatures + "\n";
97238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
98238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mProfileVersion != -1){
99238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "Profile_version: " + mProfileVersion+"\n";
100238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
101238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return ret;
102238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
103238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
104238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
105238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        public SdpMnsRecord createFromParcel(Parcel in) {
106238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            return new SdpMnsRecord(in);
107238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
108238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        public SdpMnsRecord[] newArray(int size) {
109238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            return new SdpMnsRecord[size];
110238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
111238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    };
112238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde}
113