blob: 9d9a4548259c95443322ab1219c943877f119548 [file] [log] [blame]
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/******************************************************************************
*
* This file contains constants and definitions that can be used commonly
* between JNI and stack layer
*
******************************************************************************/
#ifndef ANDROID_INCLUDE_BT_COMMON_TYPES_H
#define ANDROID_INCLUDE_BT_COMMON_TYPES_H
#include <bluetooth/uuid.h>
#include <raw_address.h>
#include <vector>
#include "bluetooth.h"
typedef struct {
uint8_t client_if;
uint8_t filt_index;
uint8_t advertiser_state;
uint8_t advertiser_info_present;
uint8_t addr_type;
uint8_t tx_power;
int8_t rssi_value;
uint16_t time_stamp;
RawAddress bd_addr;
uint8_t adv_pkt_len;
uint8_t* p_adv_pkt_data;
uint8_t scan_rsp_len;
uint8_t* p_scan_rsp_data;
} btgatt_track_adv_info_t;
typedef enum {
BTGATT_DB_PRIMARY_SERVICE,
BTGATT_DB_SECONDARY_SERVICE,
BTGATT_DB_INCLUDED_SERVICE,
BTGATT_DB_CHARACTERISTIC,
BTGATT_DB_DESCRIPTOR,
} bt_gatt_db_attribute_type_t;
typedef struct {
uint16_t id;
bluetooth::Uuid uuid;
bt_gatt_db_attribute_type_t type;
uint16_t attribute_handle;
/*
* If |type| is |BTGATT_DB_PRIMARY_SERVICE|, or
* |BTGATT_DB_SECONDARY_SERVICE|, this contains the start and end attribute
* handles.
*/
uint16_t start_handle;
uint16_t end_handle;
/*
* If |type| is |BTGATT_DB_CHARACTERISTIC|, this contains the properties of
* the characteristic.
*/
uint8_t properties;
uint16_t extended_properties;
uint16_t permissions;
} btgatt_db_element_t;
typedef struct {
uint16_t feat_seln;
uint16_t list_logic_type;
uint8_t filt_logic_type;
uint8_t rssi_high_thres;
uint8_t rssi_low_thres;
uint8_t dely_mode;
uint16_t found_timeout;
uint16_t lost_timeout;
uint8_t found_timeout_cnt;
uint16_t num_of_tracking_entries;
} btgatt_filt_param_setup_t;
// Advertising Packet Content Filter
struct ApcfCommand {
uint8_t type;
RawAddress address;
uint8_t addr_type;
bluetooth::Uuid uuid;
bluetooth::Uuid uuid_mask;
std::vector<uint8_t> name;
uint16_t company;
uint16_t company_mask;
std::vector<uint8_t> data;
std::vector<uint8_t> data_mask;
std::array<uint8_t, 16> irk; // 128 bit/16 octet IRK
};
#endif /* ANDROID_INCLUDE_BT_COMMON_TYPES_H */