1f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski/* 2f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * Copyright (C) 2015 The Android Open Source Project 3f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * 4f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * Licensed under the Apache License, Version 2.0 (the "License"); 5f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * you may not use this file except in compliance with the License. 6f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * You may obtain a copy of the License at 7f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * 8f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * http://www.apache.org/licenses/LICENSE-2.0 9f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * 10f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * Unless required by applicable law or agreed to in writing, software 11f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * distributed under the License is distributed on an "AS IS" BASIS, 12f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * See the License for the specific language governing permissions and 14f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * limitations under the License. 15f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski */ 16f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 17f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski/****************************************************************************** 18f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * 193a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski * This file contains constants and definitions that can be used commonly 203a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski * between JNI and stack layer 21f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski * 22f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski ******************************************************************************/ 23f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski#ifndef ANDROID_INCLUDE_BT_COMMON_TYPES_H 24f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski#define ANDROID_INCLUDE_BT_COMMON_TYPES_H 25f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 26f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski#include "bluetooth.h" 27f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 28f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski#include <bluetooth/uuid.h> 290ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski#include <vector> 30f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 313a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowskitypedef struct { 323a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t client_if; 333a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t filt_index; 343a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t advertiser_state; 353a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t advertiser_info_present; 363a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t addr_type; 373a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t tx_power; 383a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski int8_t rssi_value; 393a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t time_stamp; 403a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski RawAddress bd_addr; 413a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t adv_pkt_len; 423a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t* p_adv_pkt_data; 433a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t scan_rsp_len; 443a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t* p_scan_rsp_data; 45f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski} btgatt_track_adv_info_t; 46f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 473a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowskitypedef enum { 483a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski BTGATT_DB_PRIMARY_SERVICE, 493a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski BTGATT_DB_SECONDARY_SERVICE, 503a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski BTGATT_DB_INCLUDED_SERVICE, 513a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski BTGATT_DB_CHARACTERISTIC, 523a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski BTGATT_DB_DESCRIPTOR, 53f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski} bt_gatt_db_attribute_type_t; 54f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 553a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowskitypedef struct { 563a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t id; 573a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski bluetooth::Uuid uuid; 583a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski bt_gatt_db_attribute_type_t type; 593a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t attribute_handle; 60f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 613a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski /* 623a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski * If |type| is |BTGATT_DB_PRIMARY_SERVICE|, or 633a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski * |BTGATT_DB_SECONDARY_SERVICE|, this contains the start and end attribute 643a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski * handles. 653a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski */ 663a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t start_handle; 673a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t end_handle; 68f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 693a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski /* 703a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski * If |type| is |BTGATT_DB_CHARACTERISTIC|, this contains the properties of 713a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski * the characteristic. 723a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski */ 733a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t properties; 743a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t permissions; 75f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski} btgatt_db_element_t; 76f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 773a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowskitypedef struct { 783a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t feat_seln; 793a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t list_logic_type; 803a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t filt_logic_type; 813a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t rssi_high_thres; 823a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t rssi_low_thres; 833a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t dely_mode; 843a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t found_timeout; 853a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t lost_timeout; 863a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint8_t found_timeout_cnt; 873a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski uint16_t num_of_tracking_entries; 88f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski} btgatt_filt_param_setup_t; 89f2f207a91cc2548f32428d2006e1fec4179371e1Jakub Pawlowski 900ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski// Advertising Packet Content Filter 910ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowskistruct ApcfCommand { 920ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski uint8_t type; 930ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski RawAddress address; 940ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski uint8_t addr_type; 950ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski bluetooth::Uuid uuid; 960ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski bluetooth::Uuid uuid_mask; 970ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski std::vector<uint8_t> name; 980ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski uint16_t company; 990ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski uint16_t company_mask; 1000ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski std::vector<uint8_t> data; 1010ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski std::vector<uint8_t> data_mask; 1020ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski}; 1030ddfae721af17fee6897382f0aa9dabd774ca074Jakub Pawlowski 1043a3b82c37a2b140443c2af42ab264520a067ea2eJakub Pawlowski#endif /* ANDROID_INCLUDE_BT_COMMON_TYPES_H */ 105