1#/usr/bin/env python3.4 2# 3# Copyright (C) 2016 The Android Open Source Project 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); you may not 6# use this file except in compliance with the License. You may obtain a copy of 7# the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 13# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 14# License for the specific language governing permissions and limitations under 15# the License. 16 17### Generic Constants Begin ### 18 19bt_default_timeout = 15 20default_rfcomm_timeout_ms = 10000 21default_bluetooth_socket_timeout_ms = 10000 22pan_connect_timeout = 5 23bt_discovery_timeout = 3 24small_timeout = 0.0001 25 26# Time delay (in seconds) at the end of each LE CoC Test to give sufficient time 27# for the ACL LE link to be disconnected. The ACL link stays connected after 28# L2CAP disconnects. An example of the timeout is L2CAP_LINK_INACTIVITY_TOUT. 29# This delay must be greater than the maximum of these timeouts. 30# TODO: Investigate the use of broadcast intent 31# BluetoothDevice.ACTION_ACL_DISCONNECTED to replace this delay method. 32l2cap_max_inactivity_delay_after_disconnect = 5 33 34# LE specifications related constants 35le_connection_interval_time_step_ms = 1.25 36le_default_supervision_timeout = 2000 37default_le_data_length = 23 38default_le_connection_interval_ms = 30 39le_connection_event_time_step_ms = 0.625 40 41# Headers of LE L2CAP Connection-oriented Channels. See section 3.4, Vol 3, Part A, Version 5.0. 42l2cap_header_size = 4 43l2cap_coc_sdu_length_field_size = 2 44l2cap_coc_header_size = l2cap_header_size + l2cap_coc_sdu_length_field_size 45 46java_integer = {"min": -2147483648, "max": 2147483647} 47 48btsnoop_log_path_on_device = "/data/misc/bluetooth/logs/btsnoop_hci.log" 49btsnoop_last_log_path_on_device = \ 50 "/data/misc/bluetooth/logs/btsnoop_hci.log.last" 51pairing_variant_passkey_confirmation = 2 52 53# Callback strings 54scan_result = "BleScan{}onScanResults" 55scan_failed = "BleScan{}onScanFailed" 56batch_scan_result = "BleScan{}onBatchScanResult" 57adv_fail = "BleAdvertise{}onFailure" 58adv_succ = "BleAdvertise{}onSuccess" 59bluetooth_off = "BluetoothStateChangedOff" 60bluetooth_on = "BluetoothStateChangedOn" 61mtu_changed = "GattConnect{}onMtuChanged" 62advertising_set_started = "AdvertisingSet{}onAdvertisingSetStarted" 63advertising_set_stopped = "AdvertisingSet{}onAdvertisingSetStopped" 64advertising_set_on_own_address_read = "AdvertisingSet{}onOwnAddressRead" 65advertising_set_enabled = "AdvertisingSet{}onAdvertisingEnabled" 66advertising_set_data_set = "AdvertisingSet{}onAdvertisingDataSet" 67advertising_set_scan_response_set = "AdvertisingSet{}onScanResponseDataSet" 68advertising_set_parameters_update = \ 69 "AdvertisingSet{}onAdvertisingParametersUpdated" 70advertising_set_periodic_parameters_updated = \ 71 "AdvertisingSet{}onPeriodicAdvertisingParametersUpdated" 72advertising_set_periodic_data_set = \ 73 "AdvertisingSet{}onPeriodicAdvertisingDataSet" 74advertising_set_periodic_enable = "AdvertisingSet{}onPeriodicAdvertisingEnable" 75bluetooth_profile_connection_state_changed = \ 76 "BluetoothProfileConnectionStateChanged" 77bluetooth_le_on = "BleStateChangedOn" 78bluetooth_le_off = "BleStateChangedOff" 79# End Callback Strings 80 81batch_scan_not_supported_list = [ 82 "Nexus 4", 83 "Nexus 5", 84 "Nexus 7", 85] 86 87### Generic Constants End ### 88 89### Bluetooth Constants Begin ### 90 91# rfcomm test uuids 92rfcomm_secure_uuid = "fa87c0d0-afac-11de-8a39-0800200c9a66" 93rfcomm_insecure_uuid = "8ce255c0-200a-11e0-ac64-0800200c9a66" 94 95# bluetooth socket connection test uuid 96bluetooth_socket_conn_test_uuid = "12345678-1234-5678-9abc-123456789abc" 97 98# Bluetooth Adapter Scan Mode Types 99bt_scan_mode_types = { 100 "state_off": -1, 101 "none": 0, 102 "connectable": 1, 103 "connectable_discoverable": 3 104} 105 106# Bluetooth Adapter State Constants 107bt_adapter_states = { 108 "off": 10, 109 "turning_on": 11, 110 "on": 12, 111 "turning_off": 13, 112 "ble_turning_on": 14, 113 "ble_on": 15, 114 "ble_turning_off": 16 115} 116 117# Should be kept in sync with BluetoothProfile.java 118bt_profile_constants = { 119 "headset": 1, 120 "a2dp": 2, 121 "health": 3, 122 "input_device": 4, 123 "pan": 5, 124 "pbap_server": 6, 125 "gatt": 7, 126 "gatt_server": 8, 127 "map": 9, 128 "sap": 10, 129 "a2dp_sink": 11, 130 "avrcp_controller": 12, 131 "headset_client": 16, 132 "pbap_client": 17, 133 "map_mce": 18 134} 135 136# Bluetooth RFCOMM UUIDs as defined by the SIG 137bt_rfcomm_uuids = { 138 "default_uuid": "457807c0-4897-11df-9879-0800200c9a66", 139 "base_uuid": "00000000-0000-1000-8000-00805F9B34FB", 140 "sdp": "00000001-0000-1000-8000-00805F9B34FB", 141 "udp": "00000002-0000-1000-8000-00805F9B34FB", 142 "rfcomm": "00000003-0000-1000-8000-00805F9B34FB", 143 "tcp": "00000004-0000-1000-8000-00805F9B34FB", 144 "tcs_bin": "00000005-0000-1000-8000-00805F9B34FB", 145 "tcs_at": "00000006-0000-1000-8000-00805F9B34FB", 146 "att": "00000007-0000-1000-8000-00805F9B34FB", 147 "obex": "00000008-0000-1000-8000-00805F9B34FB", 148 "ip": "00000009-0000-1000-8000-00805F9B34FB", 149 "ftp": "0000000A-0000-1000-8000-00805F9B34FB", 150 "http": "0000000C-0000-1000-8000-00805F9B34FB", 151 "wsp": "0000000E-0000-1000-8000-00805F9B34FB", 152 "bnep": "0000000F-0000-1000-8000-00805F9B34FB", 153 "upnp": "00000010-0000-1000-8000-00805F9B34FB", 154 "hidp": "00000011-0000-1000-8000-00805F9B34FB", 155 "hardcopy_control_channel": "00000012-0000-1000-8000-00805F9B34FB", 156 "hardcopy_data_channel": "00000014-0000-1000-8000-00805F9B34FB", 157 "hardcopy_notification": "00000016-0000-1000-8000-00805F9B34FB", 158 "avctp": "00000017-0000-1000-8000-00805F9B34FB", 159 "avdtp": "00000019-0000-1000-8000-00805F9B34FB", 160 "cmtp": "0000001B-0000-1000-8000-00805F9B34FB", 161 "mcap_control_channel": "0000001E-0000-1000-8000-00805F9B34FB", 162 "mcap_data_channel": "0000001F-0000-1000-8000-00805F9B34FB", 163 "l2cap": "00000100-0000-1000-8000-00805F9B34FB" 164} 165 166# Should be kept in sync with BluetoothProfile#STATE_* constants. 167bt_profile_states = { 168 "disconnected": 0, 169 "connecting": 1, 170 "connected": 2, 171 "disconnecting": 3 172} 173 174# Access Levels from BluetoothDevice. 175bt_access_levels = {"access_allowed": 1, "access_denied": 2} 176 177# Priority levels as defined in BluetoothProfile.java. 178bt_priority_levels = { 179 "auto_connect": 1000, 180 "on": 100, 181 "off": 0, 182 "undefined": -1 183} 184 185# Bluetooth HID constants. 186hid_connection_timeout = 5 187 188# Bluetooth HID EventFacade constants. 189hid_on_set_report_event = "onSetReport" 190hid_on_get_report_event = "onGetReport" 191hid_on_set_protocol_event = "onSetProtocol" 192hid_on_intr_data_event = "onInterruptData" 193hid_on_virtual_cable_unplug_event = "onVirtualCableUnplug" 194hid_id_keyboard = 1 195hid_id_mouse = 2 196hid_default_event_timeout = 15 197hid_default_set_report_payload = "Haha" 198 199### Bluetooth Constants End ### 200 201### Bluetooth Low Energy Constants Begin ### 202 203# Bluetooth Low Energy scan callback types 204ble_scan_settings_callback_types = { 205 "all_matches": 1, 206 "first_match": 2, 207 "match_lost": 4, 208 "found_and_lost": 6 209} 210 211# Bluetooth Low Energy scan settings match mode 212ble_scan_settings_match_modes = {"aggresive": 1, "sticky": 2} 213 214# Bluetooth Low Energy scan settings match nums 215ble_scan_settings_match_nums = {"one": 1, "few": 2, "max": 3} 216 217# Bluetooth Low Energy scan settings result types 218ble_scan_settings_result_types = {"full": 0, "abbreviated": 1} 219 220# Bluetooth Low Energy scan settings mode 221ble_scan_settings_modes = { 222 "opportunistic": -1, 223 "low_power": 0, 224 "balanced": 1, 225 "low_latency": 2 226} 227 228# Bluetooth Low Energy scan settings report delay millis 229ble_scan_settings_report_delay_milli_seconds = { 230 "min": 0, 231 "max": 9223372036854775807 232} 233 234# Bluetooth Low Energy scan settings phy 235ble_scan_settings_phys = {"1m": 1, "coded": 3, "all_supported": 255} 236 237# Bluetooth Low Energy advertise settings types 238ble_advertise_settings_types = {"non_connectable": 0, "connectable": 1} 239 240# Bluetooth Low Energy advertise settings modes 241ble_advertise_settings_modes = { 242 "low_power": 0, 243 "balanced": 1, 244 "low_latency": 2 245} 246 247# Bluetooth Low Energy advertise settings tx power 248ble_advertise_settings_tx_powers = { 249 "ultra_low": 0, 250 "low": 1, 251 "medium": 2, 252 "high": 3 253} 254 255# Bluetooth Low Energy service uuids for specific devices 256ble_uuids = { 257 "p_service": "0000feef-0000-1000-8000-00805f9b34fb", 258 "hr_service": "0000180d-0000-1000-8000-00805f9b34fb" 259} 260 261# Bluetooth Low Energy advertising error codes 262ble_advertise_error_code = { 263 "data_too_large": 1, 264 "too_many_advertisers": 2, 265 "advertisement_already_started": 3, 266 "bluetooth_internal_failure": 4, 267 "feature_not_supported": 5 268} 269 270### Bluetooth Low Energy Constants End ### 271 272### Bluetooth GATT Constants Begin ### 273 274# Gatt Callback error messages 275gatt_cb_err = { 276 "char_write_req_err": 277 "Characteristic Write Request event not found. Expected {}", 278 "char_write_err": 279 "Characteristic Write event not found. Expected {}", 280 "desc_write_req_err": 281 "Descriptor Write Request event not found. Expected {}", 282 "desc_write_err": 283 "Descriptor Write event not found. Expected {}", 284 "char_read_err": 285 "Characteristic Read event not found. Expected {}", 286 "char_read_req_err": 287 "Characteristic Read Request not found. Expected {}", 288 "desc_read_err": 289 "Descriptor Read event not found. Expected {}", 290 "desc_read_req_err": 291 "Descriptor Read Request event not found. Expected {}", 292 "rd_remote_rssi_err": 293 "Read Remote RSSI event not found. Expected {}", 294 "gatt_serv_disc_err": 295 "GATT Services Discovered event not found. Expected {}", 296 "serv_added_err": 297 "Service Added event not found. Expected {}", 298 "mtu_changed_err": 299 "MTU Changed event not found. Expected {}", 300 "mtu_serv_changed_err": 301 "MTU Server Changed event not found. Expected {}", 302 "gatt_conn_changed_err": 303 "GATT Connection Changed event not found. Expected {}", 304 "char_change_err": 305 "GATT Characteristic Changed event not fond. Expected {}", 306 "phy_read_err": 307 "Phy Read event not fond. Expected {}", 308 "phy_update_err": 309 "Phy Update event not fond. Expected {}", 310 "exec_write_err": 311 "GATT Execute Write event not found. Expected {}" 312} 313 314# GATT callback strings as defined in GattClientFacade.java and 315# GattServerFacade.java implemented callbacks. 316gatt_cb_strings = { 317 "char_write_req": "GattServer{}onCharacteristicWriteRequest", 318 "exec_write": "GattServer{}onExecuteWrite", 319 "char_write": "GattConnect{}onCharacteristicWrite", 320 "desc_write_req": "GattServer{}onDescriptorWriteRequest", 321 "desc_write": "GattConnect{}onDescriptorWrite", 322 "char_read": "GattConnect{}onCharacteristicRead", 323 "char_read_req": "GattServer{}onCharacteristicReadRequest", 324 "desc_read": "GattConnect{}onDescriptorRead", 325 "desc_read_req": "GattServer{}onDescriptorReadRequest", 326 "rd_remote_rssi": "GattConnect{}onReadRemoteRssi", 327 "gatt_serv_disc": "GattConnect{}onServicesDiscovered", 328 "serv_added": "GattServer{}onServiceAdded", 329 "mtu_changed": "GattConnect{}onMtuChanged", 330 "mtu_serv_changed": "GattServer{}onMtuChanged", 331 "gatt_conn_change": "GattConnect{}onConnectionStateChange", 332 "char_change": "GattConnect{}onCharacteristicChanged", 333 "phy_read": "GattConnect{}onPhyRead", 334 "phy_update": "GattConnect{}onPhyUpdate", 335 "serv_phy_read": "GattServer{}onPhyRead", 336 "serv_phy_update": "GattServer{}onPhyUpdate", 337} 338 339# GATT event dictionary of expected callbacks and errors. 340gatt_event = { 341 "char_write_req": { 342 "evt": gatt_cb_strings["char_write_req"], 343 "err": gatt_cb_err["char_write_req_err"] 344 }, 345 "exec_write": { 346 "evt": gatt_cb_strings["exec_write"], 347 "err": gatt_cb_err["exec_write_err"] 348 }, 349 "char_write": { 350 "evt": gatt_cb_strings["char_write"], 351 "err": gatt_cb_err["char_write_err"] 352 }, 353 "desc_write_req": { 354 "evt": gatt_cb_strings["desc_write_req"], 355 "err": gatt_cb_err["desc_write_req_err"] 356 }, 357 "desc_write": { 358 "evt": gatt_cb_strings["desc_write"], 359 "err": gatt_cb_err["desc_write_err"] 360 }, 361 "char_read": { 362 "evt": gatt_cb_strings["char_read"], 363 "err": gatt_cb_err["char_read_err"] 364 }, 365 "char_read_req": { 366 "evt": gatt_cb_strings["char_read_req"], 367 "err": gatt_cb_err["char_read_req_err"] 368 }, 369 "desc_read": { 370 "evt": gatt_cb_strings["desc_read"], 371 "err": gatt_cb_err["desc_read_err"] 372 }, 373 "desc_read_req": { 374 "evt": gatt_cb_strings["desc_read_req"], 375 "err": gatt_cb_err["desc_read_req_err"] 376 }, 377 "rd_remote_rssi": { 378 "evt": gatt_cb_strings["rd_remote_rssi"], 379 "err": gatt_cb_err["rd_remote_rssi_err"] 380 }, 381 "gatt_serv_disc": { 382 "evt": gatt_cb_strings["gatt_serv_disc"], 383 "err": gatt_cb_err["gatt_serv_disc_err"] 384 }, 385 "serv_added": { 386 "evt": gatt_cb_strings["serv_added"], 387 "err": gatt_cb_err["serv_added_err"] 388 }, 389 "mtu_changed": { 390 "evt": gatt_cb_strings["mtu_changed"], 391 "err": gatt_cb_err["mtu_changed_err"] 392 }, 393 "gatt_conn_change": { 394 "evt": gatt_cb_strings["gatt_conn_change"], 395 "err": gatt_cb_err["gatt_conn_changed_err"] 396 }, 397 "char_change": { 398 "evt": gatt_cb_strings["char_change"], 399 "err": gatt_cb_err["char_change_err"] 400 }, 401 "phy_read": { 402 "evt": gatt_cb_strings["phy_read"], 403 "err": gatt_cb_err["phy_read_err"] 404 }, 405 "phy_update": { 406 "evt": gatt_cb_strings["phy_update"], 407 "err": gatt_cb_err["phy_update_err"] 408 }, 409 "serv_phy_read": { 410 "evt": gatt_cb_strings["serv_phy_read"], 411 "err": gatt_cb_err["phy_read_err"] 412 }, 413 "serv_phy_update": { 414 "evt": gatt_cb_strings["serv_phy_update"], 415 "err": gatt_cb_err["phy_update_err"] 416 } 417} 418 419# Matches constants of connection states defined in BluetoothGatt.java 420gatt_connection_state = { 421 "disconnected": 0, 422 "connecting": 1, 423 "connected": 2, 424 "disconnecting": 3, 425 "closed": 4 426} 427 428# Matches constants of Bluetooth GATT Characteristic values as defined 429# in BluetoothGattCharacteristic.java 430gatt_characteristic = { 431 "property_broadcast": 0x01, 432 "property_read": 0x02, 433 "property_write_no_response": 0x04, 434 "property_write": 0x08, 435 "property_notify": 0x10, 436 "property_indicate": 0x20, 437 "property_signed_write": 0x40, 438 "property_extended_props": 0x80, 439 "permission_read": 0x01, 440 "permission_read_encrypted": 0x02, 441 "permission_read_encrypted_mitm": 0x04, 442 "permission_write": 0x10, 443 "permission_write_encrypted": 0x20, 444 "permission_write_encrypted_mitm": 0x40, 445 "permission_write_signed": 0x80, 446 "permission_write_signed_mitm": 0x100, 447 "write_type_default": 0x02, 448 "write_type_no_response": 0x01, 449 "write_type_signed": 0x04, 450} 451 452# Matches constants of Bluetooth GATT Characteristic values as defined 453# in BluetoothGattDescriptor.java 454gatt_descriptor = { 455 "enable_notification_value": [0x01, 0x00], 456 "enable_indication_value": [0x02, 0x00], 457 "disable_notification_value": [0x00, 0x00], 458 "permission_read": 0x01, 459 "permission_read_encrypted": 0x02, 460 "permission_read_encrypted_mitm": 0x04, 461 "permission_write": 0x10, 462 "permission_write_encrypted": 0x20, 463 "permission_write_encrypted_mitm": 0x40, 464 "permission_write_signed": 0x80, 465 "permission_write_signed_mitm": 0x100 466} 467 468# https://www.bluetooth.com/specifications/gatt/descriptors 469gatt_char_desc_uuids = { 470 "char_ext_props": '00002900-0000-1000-8000-00805f9b34fb', 471 "char_user_desc": '00002901-0000-1000-8000-00805f9b34fb', 472 "client_char_cfg": '00002902-0000-1000-8000-00805f9b34fb', 473 "server_char_cfg": '00002903-0000-1000-8000-00805f9b34fb', 474 "char_fmt_uuid": '00002904-0000-1000-8000-00805f9b34fb', 475 "char_agreg_fmt": '00002905-0000-1000-8000-00805f9b34fb', 476 "char_valid_range": '00002906-0000-1000-8000-00805f9b34fb', 477 "external_report_reference": '00002907-0000-1000-8000-00805f9b34fb', 478 "report_reference": '00002908-0000-1000-8000-00805f9b34fb' 479} 480 481# https://www.bluetooth.com/specifications/gatt/characteristics 482gatt_char_types = { 483 "device_name": '00002a00-0000-1000-8000-00805f9b34fb', 484 "appearance": '00002a01-0000-1000-8000-00805f9b34fb', 485 "peripheral_priv_flag": '00002a02-0000-1000-8000-00805f9b34fb', 486 "reconnection_address": '00002a03-0000-1000-8000-00805f9b34fb', 487 "peripheral_pref_conn": '00002a04-0000-1000-8000-00805f9b34fb', 488 "service_changed": '00002a05-0000-1000-8000-00805f9b34fb', 489 "system_id": '00002a23-0000-1000-8000-00805f9b34fb', 490 "model_number_string": '00002a24-0000-1000-8000-00805f9b34fb', 491 "serial_number_string": '00002a25-0000-1000-8000-00805f9b34fb', 492 "firmware_revision_string": '00002a26-0000-1000-8000-00805f9b34fb', 493 "hardware_revision_string": '00002a27-0000-1000-8000-00805f9b34fb', 494 "software_revision_string": '00002a28-0000-1000-8000-00805f9b34fb', 495 "manufacturer_name_string": '00002a29-0000-1000-8000-00805f9b34fb', 496 "pnp_id": '00002a50-0000-1000-8000-00805f9b34fb', 497} 498 499# Matches constants of Bluetooth GATT Characteristic values as defined 500# in BluetoothGattCharacteristic.java 501gatt_characteristic_value_format = { 502 "string": 0x1, 503 "byte": 0x2, 504 "sint8": 0x21, 505 "uint8": 0x11, 506 "sint16": 0x22, 507 "unit16": 0x12, 508 "sint32": 0x24, 509 "uint32": 0x14 510} 511 512# Matches constants of Bluetooth Gatt Service types as defined in 513# BluetoothGattService.java 514gatt_service_types = {"primary": 0, "secondary": 1} 515 516# Matches constants of Bluetooth Gatt Connection Priority values as defined in 517# BluetoothGatt.java 518gatt_connection_priority = {"balanced": 0, "high": 1, "low_power": 2} 519 520# Min and max MTU values 521gatt_mtu_size = {"min": 23, "max": 217} 522 523# Gatt Characteristic attribute lengths 524gatt_characteristic_attr_length = {"attr_1": 1, "attr_2": 3, "attr_3": 15} 525 526# Matches constants of Bluetooth Gatt operations status as defined in 527# BluetoothGatt.java 528gatt_status = {"success": 0, "failure": 0x101} 529 530# Matches constants of Bluetooth transport values as defined in 531# BluetoothDevice.java 532gatt_transport = {"auto": 0x00, "bredr": 0x01, "le": 0x02} 533 534# Matches constants of Bluetooth physical channeling values as defined in 535# BluetoothDevice.java 536gatt_phy = {"1m": 1, "2m": 2, "le_coded": 3} 537 538# Matches constants of Bluetooth physical channeling bitmask values as defined 539# in BluetoothDevice.java 540gatt_phy_mask = {"1m_mask": 1, "2m_mask": 2, "coded_mask": 4} 541 542# Values as defiend in the Bluetooth GATT specification 543gatt_server_responses = { 544 "GATT_SUCCESS": 0x0, 545 "GATT_FAILURE": 0x1, 546 "GATT_READ_NOT_PERMITTED": 0x2, 547 "GATT_WRITE_NOT_PERMITTED": 0x3, 548 "GATT_INVALID_PDU": 0x4, 549 "GATT_INSUFFICIENT_AUTHENTICATION": 0x5, 550 "GATT_REQUEST_NOT_SUPPORTED": 0x6, 551 "GATT_INVALID_OFFSET": 0x7, 552 "GATT_INSUFFICIENT_AUTHORIZATION": 0x8, 553 "GATT_INVALID_ATTRIBUTE_LENGTH": 0xd, 554 "GATT_INSUFFICIENT_ENCRYPTION": 0xf, 555 "GATT_CONNECTION_CONGESTED": 0x8f, 556 "GATT_13_ERR": 0x13, 557 "GATT_12_ERR": 0x12, 558 "GATT_0C_ERR": 0x0C, 559 "GATT_16": 0x16 560} 561 562### Bluetooth GATT Constants End ### 563 564### Chameleon Constants Begin ### 565 566# Chameleon audio bits per sample. 567audio_bits_per_sample_16 = 16 568audio_bits_per_sample_24 = 24 569audio_bits_per_sample_32 = 32 570 571# Chameleon audio sample rates. 572audio_sample_rate_44100 = 44100 573audio_sample_rate_48000 = 48000 574audio_sample_rate_88200 = 88200 575audio_sample_rate_96000 = 96000 576 577# Chameleon audio channel modes. 578audio_channel_mode_mono = 1 579audio_channel_mode_stereo = 2 580audio_channel_mode_8 = 8 581 582# Chameleon time delays. 583delay_after_binding_seconds = 0.5 584delay_before_record_seconds = 0.5 585silence_wait_seconds = 5 586 587# Chameleon bus endpoints. 588fpga_linein_bus_endpoint = 'Chameleon FPGA line-in' 589headphone_bus_endpoint = 'Cros device headphone' 590 591### Chameleon Constants End ### 592 593### Begin logcat strings dict""" 594logcat_strings = { 595 "media_playback_vol_changed": "onRouteVolumeChanged", 596} 597 598### End logcat strings dict""" 599