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 30f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly private byte[] mGeneralBytes; 31f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 32f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native byte[] doReceive(); 33f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 34f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public byte[] receive() { 35f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doReceive(); 36f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 37f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 38f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native boolean doSend(byte[] data); 39f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 40f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public boolean send(byte[] data) { 41f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doSend(data); 42f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 43f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 44f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native boolean doConnect(); 45f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 46f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public boolean connect() { 47f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doConnect(); 48f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 49f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 50f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton private native boolean doDisconnect(); 51f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 52f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public boolean disconnect() { 53f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doDisconnect(); 54f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 55f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 56f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public native byte[] doTransceive(byte[] data); 57f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton @Override 58f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton public byte[] transceive(byte[] data) { 59f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton return doTransceive(data); 60f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton } 61f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 62c9342fef947c49e247495b83f94f16d43cd3562cmike wakerly @Override 63f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public int getHandle() { 64f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly return mHandle; 65f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly } 66f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 67c9342fef947c49e247495b83f94f16d43cd3562cmike wakerly @Override 68f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public int getMode() { 69f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly return mMode; 70f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly } 71f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 72c9342fef947c49e247495b83f94f16d43cd3562cmike wakerly @Override 73f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly public byte[] getGeneralBytes() { 74f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly return mGeneralBytes; 75f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly } 76f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly 77f067256d9556b1e01143f9ae2fd824fa5dc03138Nick Pelly} 78