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 Bonde
16238e0f934f1f47263b384bc745ae0678c777130dCasper Bondepackage android.bluetooth;
17238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
18238e0f934f1f47263b384bc745ae0678c777130dCasper Bondeimport android.os.Parcel;
19238e0f934f1f47263b384bc745ae0678c777130dCasper Bondeimport android.os.Parcelable;
20238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
21238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde/** @hide */
22238e0f934f1f47263b384bc745ae0678c777130dCasper Bondepublic class SdpPseRecord implements Parcelable {
23238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mL2capPsm;
24238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mRfcommChannelNumber;
25238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mProfileVersion;
26238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mSupportedFeatures;
27238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final int mSupportedRepositories;
28238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    private final String mServiceName;
29238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
30238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public SdpPseRecord(int l2cap_psm,
31238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            int rfcomm_channel_number,
32238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            int profile_version,
33238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            int supported_features,
34238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            int supported_repositories,
35238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            String service_name){
36238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mL2capPsm = l2cap_psm;
37238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mRfcommChannelNumber = rfcomm_channel_number;
38238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mProfileVersion = profile_version;
39238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mSupportedFeatures = supported_features;
40238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mSupportedRepositories = supported_repositories;
41238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        this.mServiceName = service_name;
42238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
43238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
44238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public SdpPseRecord(Parcel in){
45238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mRfcommChannelNumber = in.readInt();
46238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mL2capPsm = in.readInt();
47238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mProfileVersion = in.readInt();
48238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mSupportedFeatures = in.readInt();
49238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mSupportedRepositories = in.readInt();
50238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde           this.mServiceName = in.readString();
51238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
52238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    @Override
53238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int describeContents() {
54238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        // TODO Auto-generated method stub
55238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return 0;
56238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
57238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
58238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getL2capPsm() {
59238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mL2capPsm;
60238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
61238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
62238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getRfcommChannelNumber() {
63238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mRfcommChannelNumber;
64238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
65238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
66238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getSupportedFeatures() {
67238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mSupportedFeatures;
68238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
69238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
70238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public String getServiceName() {
71238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mServiceName;
72238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
73238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
74238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getProfileVersion() {
75238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mProfileVersion;
76238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
77238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
78238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public int getSupportedRepositories() {
79238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return mSupportedRepositories;
80238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
81238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    @Override
82238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public void writeToParcel(Parcel dest, int flags) {
83238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mRfcommChannelNumber);
84238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mL2capPsm);
85238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mProfileVersion);
86238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mSupportedFeatures);
87238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeInt(mSupportedRepositories);
88238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        dest.writeString(mServiceName);
89238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
90238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
91238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
92238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public String toString(){
93238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        String ret = "Bluetooth MNS SDP Record:\n";
94238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
95238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mRfcommChannelNumber != -1){
96238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "RFCOMM Chan Number: " + mRfcommChannelNumber + "\n";
97238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
98238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mL2capPsm != -1){
99238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "L2CAP PSM: " + mL2capPsm + "\n";
100238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
101238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mProfileVersion != -1){
102238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "profile version: " + mProfileVersion + "\n";
103238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
104238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mServiceName != null){
105238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "Service Name: " + mServiceName + "\n";
106238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
107238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mSupportedFeatures != -1){
108238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "Supported features: " + mSupportedFeatures + "\n";
109238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
110238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        if(mSupportedRepositories != -1){
111238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            ret += "Supported repositories: " + mSupportedRepositories + "\n";
112238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
113238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
114238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        return ret;
115238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    }
116238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde
117238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
118238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        public SdpPseRecord createFromParcel(Parcel in) {
119238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            return new SdpPseRecord(in);
120238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
121238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        public SdpPseRecord[] newArray(int size) {
122238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde            return new SdpPseRecord[size];
123238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde        }
124238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde    };
125238e0f934f1f47263b384bc745ae0678c777130dCasper Bonde}
126