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