• #include <hardware/bluetooth.h>



    /*
     * Copyright (C) 2012 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.
     */

    #ifndef ANDROID_INCLUDE_BLUETOOTH_H
    #define ANDROID_INCLUDE_BLUETOOTH_H

    #include
    #include
    #include
    #include

    #include "avrcp/avrcp.h"
    #include "bluetooth/uuid.h"
    #include "raw_address.h"

    /**
     * The Bluetooth Hardware Module ID
     */

    #define BT_HARDWARE_MODULE_ID "bluetooth"
    #define BT_STACK_MODULE_ID "bluetooth"

    /** Bluetooth profile interface IDs */
    #define BT_PROFILE_HANDSFREE_ID "handsfree"
    #define BT_PROFILE_HANDSFREE_CLIENT_ID "handsfree_client"
    #define BT_PROFILE_ADVANCED_AUDIO_ID "a2dp"
    #define BT_PROFILE_ADVANCED_AUDIO_SINK_ID "a2dp_sink"
    #define BT_PROFILE_SOCKETS_ID "socket"
    #define BT_PROFILE_HIDHOST_ID "hidhost"
    #define BT_PROFILE_HIDDEV_ID "hiddev"
    #define BT_PROFILE_PAN_ID "pan"
    #define BT_PROFILE_MAP_CLIENT_ID "map_client"
    #define BT_PROFILE_SDP_CLIENT_ID "sdp"
    #define BT_PROFILE_GATT_ID "gatt"
    #define BT_PROFILE_AV_RC_ID "avrcp"
    #define BT_PROFILE_AV_RC_CTRL_ID "avrcp_ctrl"
    #define BT_PROFILE_HEARING_AID_ID "hearing_aid"

    /** Bluetooth Device Name */
    typedef struct { uint8_t name[249]; } __attribute__((packed)) bt_bdname_t;

    /** Bluetooth Adapter Visibility Modes*/
    typedef enum {
      BT_SCAN_MODE_NONE,
      BT_SCAN_MODE_CONNECTABLE,
      BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE
    } bt_scan_mode_t;

    /** Bluetooth Adapter State */
    typedef enum { BT_STATE_OFF, BT_STATE_ON } bt_state_t;

    /** Bluetooth Adapter Input Output Capabilities which determine Pairing/Security
     */
    typedef enum {
      BT_IO_CAP_OUT,    /* DisplayOnly */
      BT_IO_CAP_IO,     /* DisplayYesNo */
      BT_IO_CAP_IN,     /* KeyboardOnly */
      BT_IO_CAP_NONE,   /* NoInputNoOutput */
      BT_IO_CAP_KBDISP, /* Keyboard display */
      BT_IO_CAP_MAX,
      BT_IO_CAP_UNKNOWN = 0xFF /* Unknown value */
    } bt_io_cap_t;

    /** Bluetooth Error Status */
    /** We need to build on this */

    typedef enum {
      BT_STATUS_SUCCESS,
      BT_STATUS_FAIL,
      BT_STATUS_NOT_READY,
      BT_STATUS_NOMEM,
      BT_STATUS_BUSY,
      BT_STATUS_DONE, /* request already completed */
      BT_STATUS_UNSUPPORTED,
      BT_STATUS_PARM_INVALID,
      BT_STATUS_UNHANDLED,
      BT_STATUS_AUTH_FAILURE,
      BT_STATUS_RMT_DEV_DOWN,
      BT_STATUS_AUTH_REJECTED,
      BT_STATUS_JNI_ENVIRONMENT_ERROR,
      BT_STATUS_JNI_THREAD_ATTACH_ERROR,
      BT_STATUS_WAKELOCK_ERROR
    } bt_status_t;

    /** Bluetooth PinKey Code */
    typedef struct { uint8_t pin[16]; } __attribute__((packed)) bt_pin_code_t;

    typedef struct {
      uint8_t status;
      uint8_t ctrl_state;   /* stack reported state */
      uint64_t tx_time;     /* in ms */
      uint64_t rx_time;     /* in ms */
      uint64_t idle_time;   /* in ms */
      uint64_t energy_used; /* a product of mA, V and ms */
    } __attribute__((packed)) bt_activity_energy_info;

    typedef struct {
      int32_t app_uid;
      uint64_t tx_bytes;
      uint64_t rx_bytes;
    } __attribute__((packed)) bt_uid_traffic_t;

    /** Bluetooth Adapter Discovery state */
    typedef enum {
      BT_DISCOVERY_STOPPED,
      BT_DISCOVERY_STARTED
    } bt_discovery_state_t;

    /** Bluetooth ACL connection state */
    typedef enum {
      BT_ACL_STATE_CONNECTED,
      BT_ACL_STATE_DISCONNECTED
    } bt_acl_state_t;

    /** Bluetooth SDP service record */
    typedef struct {
      bluetooth::Uuid uuid;
      uint16_t channel;
      char name[256];  // what's the maximum length
    } bt_service_record_t;

    /** Bluetooth Remote Version info */
    typedef struct {
      int version;
      int sub_ver;
      int manufacturer;
    } bt_remote_version_t;

    typedef struct {
      uint16_t version_supported;
      uint8_t local_privacy_enabled;
      uint8_t max_adv_instance;
      ui

  • 相关阅读:
    TypeScript 最细项目实践:四步走高效改造现有的 JavaScript 项目
    浅谈 AnalyticDB SQL 优化
    .NET周刊【4月第2期 2024-04-21】
    Java设计模式之代表模式
    堆排序c++
    【SM8475】user版本开root权限
    js对象属性
    Git --》Git与GitHub操作
    毕业设计--基于SpringBoot+Vue的科研课题项目管理系统
    Vue3 - 异步组件(写法及详细示例)
  • 原文地址:https://blog.csdn.net/uunubt/article/details/127566152