Loading system/device/include/interop.h +19 −31 Original line number Diff line number Diff line Loading @@ -45,8 +45,7 @@ typedef enum { // Devices requiring this workaround do not handle Bluetooth Absolute Volume // control correctly, leading to undesirable (potentially harmful) volume // levels // or general lack of controlability. // levels or general lack of controlability. INTEROP_DISABLE_ABSOLUTE_VOLUME, // Disable automatic pairing with headsets/car-kits Loading @@ -62,49 +61,38 @@ typedef enum { INTEROP_KEYBOARD_REQUIRES_FIXED_PIN, // Some headsets have audio jitter issues because of increased // re-transmissions as the // 3 Mbps packets have a lower link margin, and are more prone to // interference. We can // disable 3DH packets (use only 2DH packets) for the ACL link to improve // sensitivity // when streaming A2DP audio to the headset. Air sniffer logs show reduced // re-transmissions after switching to 2DH packets. // // re-transmissions as the 3 Mbps packets have a lower link margin, and are // more prone to interference. We can disable 3DH packets (use only 2DH // packets) for the ACL link to improve sensitivity when streaming A2DP audio // to the headset. Air sniffer logs show reduced re-transmissions after // switching to 2DH packets. // Disable 3Mbps packets and use only 2Mbps packets for ACL links when // streaming audio. INTEROP_2MBPS_LINK_ONLY } interop_feature_t; // Check if a given |addr| matches a known interoperability workaround as // identified // by the |interop_feature_t| enum. This API is used for simple address based // lookups // where more information is not available. No look-ups or random address // resolution // are performed on |addr|. // identified by the |interop_feature_t| enum. This API is used for simple // address based lookups where more information is not available. No // look-ups or random address resolution are performed on |addr|. bool interop_match_addr(const interop_feature_t feature, const bt_bdaddr_t* addr); // Check if a given remote device |name| matches a known interoperability // workaround. // Name comparisons are case sensitive and do not allow for partial matches. As // in, if // |name| is "TEST" and a workaround exists for "TESTING", then this function // will // return false. But, if |name| is "TESTING" and a workaround exists for "TEST", // this // function will return true. // Check if a given remote device |name| matches a known workaround. // Name comparisons are case sensitive and do not allow for partial matches. // If |name| is "TEST" and a workaround exists for "TESTING", then this function // will return false. But, if |name| is "TESTING" and a workaround exists for // "TEST", this function will return true. // |name| cannot be null and must be null terminated. bool interop_match_name(const interop_feature_t feature, const char* name); // Add a dynamic interop database entry for a device matching the first |length| // bytes // of |addr|, implementing the workaround identified by |feature|. |addr| may // not be // null and |length| must be greater than 0 and less than sizeof(bt_bdaddr_t). // bytes of |addr|, implementing the workaround identified by |feature|. // |addr| may not be null. // |length| must be greater than 0 and less than sizeof(bt_bdaddr_t). // As |interop_feature_t| is not exposed in the public API, feature must be a // valid // integer representing an optoin in the enum. // valid integer representing an option in the enum. void interop_database_add(const uint16_t feature, const bt_bdaddr_t* addr, size_t length); Loading Loading
system/device/include/interop.h +19 −31 Original line number Diff line number Diff line Loading @@ -45,8 +45,7 @@ typedef enum { // Devices requiring this workaround do not handle Bluetooth Absolute Volume // control correctly, leading to undesirable (potentially harmful) volume // levels // or general lack of controlability. // levels or general lack of controlability. INTEROP_DISABLE_ABSOLUTE_VOLUME, // Disable automatic pairing with headsets/car-kits Loading @@ -62,49 +61,38 @@ typedef enum { INTEROP_KEYBOARD_REQUIRES_FIXED_PIN, // Some headsets have audio jitter issues because of increased // re-transmissions as the // 3 Mbps packets have a lower link margin, and are more prone to // interference. We can // disable 3DH packets (use only 2DH packets) for the ACL link to improve // sensitivity // when streaming A2DP audio to the headset. Air sniffer logs show reduced // re-transmissions after switching to 2DH packets. // // re-transmissions as the 3 Mbps packets have a lower link margin, and are // more prone to interference. We can disable 3DH packets (use only 2DH // packets) for the ACL link to improve sensitivity when streaming A2DP audio // to the headset. Air sniffer logs show reduced re-transmissions after // switching to 2DH packets. // Disable 3Mbps packets and use only 2Mbps packets for ACL links when // streaming audio. INTEROP_2MBPS_LINK_ONLY } interop_feature_t; // Check if a given |addr| matches a known interoperability workaround as // identified // by the |interop_feature_t| enum. This API is used for simple address based // lookups // where more information is not available. No look-ups or random address // resolution // are performed on |addr|. // identified by the |interop_feature_t| enum. This API is used for simple // address based lookups where more information is not available. No // look-ups or random address resolution are performed on |addr|. bool interop_match_addr(const interop_feature_t feature, const bt_bdaddr_t* addr); // Check if a given remote device |name| matches a known interoperability // workaround. // Name comparisons are case sensitive and do not allow for partial matches. As // in, if // |name| is "TEST" and a workaround exists for "TESTING", then this function // will // return false. But, if |name| is "TESTING" and a workaround exists for "TEST", // this // function will return true. // Check if a given remote device |name| matches a known workaround. // Name comparisons are case sensitive and do not allow for partial matches. // If |name| is "TEST" and a workaround exists for "TESTING", then this function // will return false. But, if |name| is "TESTING" and a workaround exists for // "TEST", this function will return true. // |name| cannot be null and must be null terminated. bool interop_match_name(const interop_feature_t feature, const char* name); // Add a dynamic interop database entry for a device matching the first |length| // bytes // of |addr|, implementing the workaround identified by |feature|. |addr| may // not be // null and |length| must be greater than 0 and less than sizeof(bt_bdaddr_t). // bytes of |addr|, implementing the workaround identified by |feature|. // |addr| may not be null. // |length| must be greater than 0 and less than sizeof(bt_bdaddr_t). // As |interop_feature_t| is not exposed in the public API, feature must be a // valid // integer representing an optoin in the enum. // valid integer representing an option in the enum. void interop_database_add(const uint16_t feature, const bt_bdaddr_t* addr, size_t length); Loading