1/* 2 * Copyright 2018 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 17syntax = "proto2"; 18package android.bluetooth.le; 19 20option java_outer_classname = "BluetoothLEProtoEnums"; 21option java_multiple_files = true; 22 23 24// LE ACL Connection State. This as per - go/bluetooth-le-connection-metrics 25enum LeAclConnectionState { 26 LE_ACL_UNSPECIFIED = 0; 27 LE_ACL_SUCCESS = 1; 28 LE_ACL_FAILED = 2; 29 LE_ACL_ALREADY_PRESENT = 3; 30} 31 32// Connection Origin type. 33enum LeConnectionOriginType { 34 ORIGIN_UNSPECIFIED = 0; 35 ORIGIN_NATIVE = 1; 36 ORIGIN_JAVA = 2; 37} 38 39// LE Connection Type 40enum LeConnectionType { 41 CONNECTION_TYPE_UNSPECIFIED = 0; 42 CONNECTION_TYPE_LE_ACL = 1; 43 CONNECTION_TYPE_GATT = 2; 44 CONNECTION_TYPE_L2CAP_FIXED_CHNL_SMP = 3; 45 CONNECTION_TYPE_L2CAP_FIXED_CHNL_ATT = 4; 46 CONNECTION_TYPE_L2CAP_FIXED_CHNL_LE_SIGNALLING = 5; 47 CONNECTION_TYPE_L2CAP_FIXED_CHNL_AMP = 6; 48 CONNECTION_TYPE_L2CAP_FIXED_CHNL_SMP_BR_EDR = 7; 49} 50 51// LE Connection State 52enum LeConnectionState { 53 STATE_UNSPECIFIED = 0; 54 STATE_LE_ACL_START = 1; 55 STATE_LE_ACL_END = 2; 56 STATE_LE_ACL_CANCEL = 3; 57 STATE_LE_ACL_TIMEOUT = 4; 58 STATE_GATT_APP_USE_LINK_FLAG = 5; 59 STATE_GATT_CREATE_DIRECT_CONN = 6; 60 STATE_GATT_HOLD_LINK_EMPTY = 7; 61 STATE_GATT_CONNECT_NATIVE = 8; 62 STATE_GATT_APP_CREATE_LE_ACL = 9; 63 STATE_GATT_CONN_STATE_CHANGE_CLIENT = 10; 64 STATE_GATT_CONN_STATE_CHANGE_SERVER = 11; 65 STATE_L2CAP_FIXED_CHNL_START_CREATE_CONN = 12; 66 STATE_L2CAP_FIXED_CHNL_START_LE_ACL = 13; 67 STATE_L2CAP_FIXED_CHNL_LE_ACL_FINISH = 14; 68} 69 70// LE scan callback types 71enum LeScanCallbackType { 72 TYPE_UNKNOWN = 0; 73 TYPE_ALL_MATCHES = 1; 74 TYPE_FIRST_MATCH = 2; 75 TYPE_MATCH_LOST = 4; 76 TYPE_ALL_MATCHES_AUTO_BATCH = 8; 77} 78 79// LE Scan Type 80enum LeScanType { 81 SCAN_TYPE_UNKNOWN = 0; 82 SCAN_TYPE_REGULAR = 1; 83 SCAN_TYPE_BATCH = 2; 84 SCAN_TYPE_AUTO_BATCH = 3; 85} 86 87// LE Scan Mode. It is based on the scan modes defined in LE scan settings in 88// the framework. 89enum LeScanMode { 90 // Referring to ScanSettings.java 91 SCAN_MODE_UNKNOWN = 0; 92 SCAN_MODE_OPPORTUNISTIC = 1; 93 SCAN_MODE_LOW_POWER = 2; 94 SCAN_MODE_BALANCED = 3; 95 SCAN_MODE_LOW_LATENCY = 4; 96 SCAN_MODE_AMBIENT_DISCOVERY = 5; 97 // Below modes are only applicable for radio scan not app scan. 98 SCAN_MODE_SCREEN_OFF = 6; 99 SCAN_MODE_SCREEN_OFF_BALANCED = 7; 100 // For non-standard scan mode by OEMs. 101 SCAN_MODE_CUSTOM = 20; 102} 103 104// Reason code for LE scan abuse. 105enum LeScanAbuseReason { 106 REASON_UNKNOWN = 0; 107 REASON_SCAN_TIMEOUT = 1; 108 // Hardware filter not available. 109 REASON_HW_FILTER_NA = 2; 110 // Tracking hardware filter not available. 111 REASON_TRACKING_HW_FILTER_NA = 3; 112} 113 114// LE adv interval configuration. 115// Refer to AdvertisingSetParameters.java 116enum LeAdvInterval { 117 INTERVAL_UNKNOWN = 0; 118 INTERVAL_HIGH = 1; 119 INTERVAL_MEDIUM = 2; 120 INTERVAL_LOW = 3; 121} 122 123// LE adv tx power configuration. 124// Refer to AdvertisingSetParameters.java 125enum LeAdvTxPower { 126 TX_POWER_UNKNOWN = 0; 127 TX_POWER_ULTRA_LOW = 1; 128 TX_POWER_LOW = 2; 129 TX_POWER_MEDIUM = 3; 130 TX_POWER_HIGH = 4; 131} 132 133// Operation code for LE adv. 134enum LeAdvOpCode { 135 ERROR_CODE_UNKNOWN = 0; 136 ERROR_CODE_ON_START = 1; 137} 138 139// Status code for advertising set start. 140// Refer to AdvertisingSetCallback.java 141enum LeAdvStatusCode { 142 ADV_STATUS_UNKNOWN = 0; 143 ADV_STATUS_SUCCESS = 1; 144 ADV_STATUS_FAILED_DATA_TOO_LARGE = 2; 145 ADV_STATUS_FAILED_TOO_MANY_ADVERTISERS = 3; 146 ADV_STATUS_FAILED_ALREADY_STARTED = 4; 147 ADV_STATUS_FAILED_INTERNAL_ERROR = 5; 148 ADV_STATUS_FAILED_FEATURE_UNSUPPORTED = 6; 149} 150