1525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project/* 2525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * Copyright (C) 2010 The Android Open Source Project 3525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * 4525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * you may not use this file except in compliance with the License. 6525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * You may obtain a copy of the License at 7525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * 8525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * 10525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * See the License for the specific language governing permissions and 14525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * limitations under the License. 15525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project */ 16525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 17525c260303268a83da4c3413b953d13c9084e834The Android Open Source Projectpackage com.android.nfc.dhimpl; 18525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 19525c260303268a83da4c3413b953d13c9084e834The Android Open Source Projectimport com.android.nfc.DeviceHost.NfcDepEndpoint; 20525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 21525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project/** 22525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project * Native interface to the P2P Initiator functions 23525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project */ 24525c260303268a83da4c3413b953d13c9084e834The Android Open Source Projectpublic class NativeP2pDevice implements NfcDepEndpoint { 25525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 26525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private int mHandle; 27525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 28525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private int mMode; 29525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 30525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private byte[] mGeneralBytes; 31525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 322daeeee63456a515693980372908234e1fa14ba5Martijn Coenen private byte mLlcpVersion; 332daeeee63456a515693980372908234e1fa14ba5Martijn Coenen 34525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native byte[] doReceive(); 35525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 36525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public byte[] receive() { 37525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doReceive(); 38525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 39525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 40525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native boolean doSend(byte[] data); 41525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 42525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public boolean send(byte[] data) { 43525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doSend(data); 44525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 45525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 46525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native boolean doConnect(); 47525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 48525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public boolean connect() { 49525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doConnect(); 50525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 51525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 52525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native boolean doDisconnect(); 53525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 54525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public boolean disconnect() { 55525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doDisconnect(); 56525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 57525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 58525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public native byte[] doTransceive(byte[] data); 59525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 60525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public byte[] transceive(byte[] data) { 61525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doTransceive(data); 62525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 63525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 64525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 65525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public int getHandle() { 66525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return mHandle; 67525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 68525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 69525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 70525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public int getMode() { 71525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return mMode; 72525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 73525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 74525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 75525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public byte[] getGeneralBytes() { 76525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return mGeneralBytes; 77525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 78525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 792daeeee63456a515693980372908234e1fa14ba5Martijn Coenen @Override 802daeeee63456a515693980372908234e1fa14ba5Martijn Coenen public byte getLlcpVersion() { 812daeeee63456a515693980372908234e1fa14ba5Martijn Coenen return mLlcpVersion; 822daeeee63456a515693980372908234e1fa14ba5Martijn Coenen } 83525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project} 84