1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *   http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/******************************************************************************
18 *
19 * This file contains constants and definitions that can be used commonly
20 * between JNI and stack layer
21 *
22 ******************************************************************************/
23#ifndef ANDROID_INCLUDE_BT_COMMON_TYPES_H
24#define ANDROID_INCLUDE_BT_COMMON_TYPES_H
25
26#include "bluetooth.h"
27
28#include <bluetooth/uuid.h>
29#include <vector>
30
31typedef struct {
32  uint8_t client_if;
33  uint8_t filt_index;
34  uint8_t advertiser_state;
35  uint8_t advertiser_info_present;
36  uint8_t addr_type;
37  uint8_t tx_power;
38  int8_t rssi_value;
39  uint16_t time_stamp;
40  RawAddress bd_addr;
41  uint8_t adv_pkt_len;
42  uint8_t* p_adv_pkt_data;
43  uint8_t scan_rsp_len;
44  uint8_t* p_scan_rsp_data;
45} btgatt_track_adv_info_t;
46
47typedef enum {
48  BTGATT_DB_PRIMARY_SERVICE,
49  BTGATT_DB_SECONDARY_SERVICE,
50  BTGATT_DB_INCLUDED_SERVICE,
51  BTGATT_DB_CHARACTERISTIC,
52  BTGATT_DB_DESCRIPTOR,
53} bt_gatt_db_attribute_type_t;
54
55typedef struct {
56  uint16_t id;
57  bluetooth::Uuid uuid;
58  bt_gatt_db_attribute_type_t type;
59  uint16_t attribute_handle;
60
61  /*
62   * If |type| is |BTGATT_DB_PRIMARY_SERVICE|, or
63   * |BTGATT_DB_SECONDARY_SERVICE|, this contains the start and end attribute
64   * handles.
65   */
66  uint16_t start_handle;
67  uint16_t end_handle;
68
69  /*
70   * If |type| is |BTGATT_DB_CHARACTERISTIC|, this contains the properties of
71   * the characteristic.
72   */
73  uint8_t properties;
74  uint16_t permissions;
75} btgatt_db_element_t;
76
77typedef struct {
78  uint16_t feat_seln;
79  uint16_t list_logic_type;
80  uint8_t filt_logic_type;
81  uint8_t rssi_high_thres;
82  uint8_t rssi_low_thres;
83  uint8_t dely_mode;
84  uint16_t found_timeout;
85  uint16_t lost_timeout;
86  uint8_t found_timeout_cnt;
87  uint16_t num_of_tracking_entries;
88} btgatt_filt_param_setup_t;
89
90// Advertising Packet Content Filter
91struct ApcfCommand {
92  uint8_t type;
93  RawAddress address;
94  uint8_t addr_type;
95  bluetooth::Uuid uuid;
96  bluetooth::Uuid uuid_mask;
97  std::vector<uint8_t> name;
98  uint16_t company;
99  uint16_t company_mask;
100  std::vector<uint8_t> data;
101  std::vector<uint8_t> data_mask;
102};
103
104#endif /* ANDROID_INCLUDE_BT_COMMON_TYPES_H */
105