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 32525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native byte[] doReceive(); 33525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 34525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public byte[] receive() { 35525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doReceive(); 36525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 37525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 38525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native boolean doSend(byte[] data); 39525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 40525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public boolean send(byte[] data) { 41525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doSend(data); 42525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 43525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 44525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native boolean doConnect(); 45525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 46525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public boolean connect() { 47525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doConnect(); 48525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 49525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 50525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project private native boolean doDisconnect(); 51525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 52525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public boolean disconnect() { 53525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doDisconnect(); 54525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 55525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 56525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public native byte[] doTransceive(byte[] data); 57525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 58525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public byte[] transceive(byte[] data) { 59525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return doTransceive(data); 60525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 61525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 62525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 63525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public int getHandle() { 64525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return mHandle; 65525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 66525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 67525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 68525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public int getMode() { 69525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return mMode; 70525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 71525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 72525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project @Override 73525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project public byte[] getGeneralBytes() { 74525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project return mGeneralBytes; 75525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project } 76525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project 77525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project} 78