1f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly/* 2f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * Copyright (C) 2010 The Android Open Source Project 3f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * 4f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * Licensed under the Apache License, Version 2.0 (the "License"); 5f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * you may not use this file except in compliance with the License. 6f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * You may obtain a copy of the License at 7f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * 8f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * http://www.apache.org/licenses/LICENSE-2.0 9f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * 10f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * Unless required by applicable law or agreed to in writing, software 11f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * distributed under the License is distributed on an "AS IS" BASIS, 12f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * See the License for the specific language governing permissions and 14f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * limitations under the License. 15f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly */ 16f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 174bbd47e5507d4c47a4d722216606307e45195a0aMartijn Coenenpackage com.android.nfc.dhimpl; 18f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 19f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamiltonimport com.android.nfc.DeviceHost.NfcDepEndpoint; 20f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton 21f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly/** 22f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly * Native interface to the P2P Initiator functions 23f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly */ 24f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamiltonpublic class NativeP2pDevice implements NfcDepEndpoint { 25f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 26f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly private int mHandle; 27f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 28f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly private int mMode; 29f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 302daeeee63456a515693980372908234e1fa14ba5Martijn Coenen private byte mLlcpVersion; 312daeeee63456a515693980372908234e1fa14ba5Martijn Coenen 32f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly private byte[] mGeneralBytes; 33f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 34f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native byte[] doReceive(); 35f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 36f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public byte[] receive() { 37f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doReceive(); 38f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 39f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 40f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native boolean doSend(byte[] data); 41f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 42f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public boolean send(byte[] data) { 43f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doSend(data); 44f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 45f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 46f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native boolean doConnect(); 47f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 48f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public boolean connect() { 49f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doConnect(); 50f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 51f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 52f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native boolean doDisconnect(); 53f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 54f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public boolean disconnect() { 55f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doDisconnect(); 56f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 57f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 58f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public native byte[] doTransceive(byte[] data); 59f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 60f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public byte[] transceive(byte[] data) { 61f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doTransceive(data); 62f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 63f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 64c9342fef947c49e247495b83f94f16d43cd3562cmike wakerly @Override 65f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public int getHandle() { 66f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly return mHandle; 67f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly } 68f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 69c9342fef947c49e247495b83f94f16d43cd3562cmike wakerly @Override 70f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public int getMode() { 71f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly return mMode; 72f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly } 73f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 74c9342fef947c49e247495b83f94f16d43cd3562cmike wakerly @Override 75f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public byte[] getGeneralBytes() { 76f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly return mGeneralBytes; 77f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly } 78f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 792daeeee63456a515693980372908234e1fa14ba5Martijn Coenen @Override 802daeeee63456a515693980372908234e1fa14ba5Martijn Coenen public byte getLlcpVersion() { 812daeeee63456a515693980372908234e1fa14ba5Martijn Coenen return mLlcpVersion; 822daeeee63456a515693980372908234e1fa14ba5Martijn Coenen } 83f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly} 84