1bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly/*
2bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * Copyright (C) 2010 The Android Open Source Project
3bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly *
4bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * Licensed under the Apache License, Version 2.0 (the "License");
5bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * you may not use this file except in compliance with the License.
6bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * You may obtain a copy of the License at
7bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly *
8bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly *      http://www.apache.org/licenses/LICENSE-2.0
9bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly *
10bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * Unless required by applicable law or agreed to in writing, software
11bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * distributed under the License is distributed on an "AS IS" BASIS,
12bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * See the License for the specific language governing permissions and
14bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * limitations under the License.
15bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly */
16bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly
17bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly/*
18bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * Contains the bare minimum header so that framework NFC jni can link
19bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly * against NFC native library
20bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly */
21bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly
22bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly#ifndef __ANDROID_NFC_H__
23bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly#define __ANDROID_NFC_H__
24bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly
255629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton#define LOG_TAG "NdefMessage"
265629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton#include <utils/Log.h>
275629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton
28bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pellyextern "C" {
29bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly
305629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton#if 0
3128d9f024e043817212b15f04128d0464330502eaSteve Block  #define TRACE(...) ALOG(LOG_DEBUG, "NdefMessage", __VA_ARGS__)
325629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton#else
335629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton  #define TRACE(...)
345629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton#endif
355629d51f221adad107a509570ab2c739d1bf1a23Jeff Hamilton
36bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pellytypedef struct phFriNfc_NdefRecord {
37bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint8_t                 Flags;
38bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint8_t                 Tnf;
39bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint8_t                 TypeLength;
40bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint8_t                *Type;
41bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint8_t                 IdLength;
42bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint8_t                *Id;
43bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint32_t                PayloadLength;
44bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly    uint8_t                *PayloadData;
45bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly} phFriNfc_NdefRecord_t;
46bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly
47bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pellyuint16_t phFriNfc_NdefRecord_GetRecords(uint8_t*      pBuffer,
48bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                        uint32_t      BufferLength,
49bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                        uint8_t*      pRawRecords[ ],
50bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                        uint8_t       IsChunked[ ],
51bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                        uint32_t*     pNumberOfRawRecords
52bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                        );
53bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pellyuint16_t phFriNfc_NdefRecord_Parse(phFriNfc_NdefRecord_t* pRecord,
54bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                   uint8_t*               pRawRecord);
55bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly
56bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pellyuint16_t phFriNfc_NdefRecord_Generate(phFriNfc_NdefRecord_t*  pRecord,
57bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                      uint8_t*                pBuffer,
58bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                      uint32_t                MaxBufferSize,
59bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                      uint32_t*               pBytesWritten
60bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly                                      );
61bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly}
62bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly
63bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48Nick Pelly#endif
64