1 /****************************************************************************** 2 * 3 * Copyright (c) 2014 The Android Open Source Project 4 * Copyright (C) 2009-2012 Broadcom Corporation 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at: 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 ******************************************************************************/ 19 20 #ifndef BTIF_UTIL_H 21 #define BTIF_UTIL_H 22 23 #include <hardware/bluetooth.h> 24 #include <hardware/bt_hf.h> 25 #include <stdbool.h> 26 #include <sys/time.h> 27 28 #include "bt_types.h" 29 #include "bt_utils.h" 30 31 /******************************************************************************* 32 * Constants & Macros 33 ******************************************************************************/ 34 35 #define CASE_RETURN_STR(const) \ 36 case const: \ 37 return #const; 38 39 /******************************************************************************* 40 * Type definitions for callback functions 41 ******************************************************************************/ 42 43 /******************************************************************************* 44 * Functions 45 ******************************************************************************/ 46 47 const char* dump_bt_status(bt_status_t status); 48 const char* dump_dm_search_event(uint16_t event); 49 const char* dump_dm_event(uint16_t event); 50 const char* dump_hf_event(uint16_t event); 51 const char* dump_hf_client_event(uint16_t event); 52 const char* dump_hh_event(uint16_t event); 53 const char* dump_hd_event(uint16_t event); 54 const char* dump_hf_conn_state(uint16_t event); 55 const char* dump_hf_call_state(bthf_call_state_t call_state); 56 const char* dump_property_type(bt_property_type_t type); 57 const char* dump_hf_audio_state(uint16_t event); 58 const char* dump_adapter_scan_mode(bt_scan_mode_t mode); 59 const char* dump_thread_evt(bt_cb_thread_evt evt); 60 const char* dump_av_conn_state(uint16_t event); 61 const char* dump_av_audio_state(uint16_t event); 62 const char* dump_rc_event(uint8_t event); 63 const char* dump_rc_notification_event_id(uint8_t event_id); 64 const char* dump_rc_pdu(uint8_t pdu); 65 66 uint32_t devclass2uint(DEV_CLASS dev_class); 67 void uint2devclass(uint32_t dev, DEV_CLASS dev_class); 68 void uuid16_to_uuid128(uint16_t uuid16, bt_uuid_t* uuid128); 69 70 // Takes a |str| containing a 128-bit GUID formatted UUID and stores the 71 // result in |p_uuid|. |str| must be formatted in this format: 72 // "12345678-1234-1234-1234-123456789012" 73 // |p_uuid| cannot be null. Returns true if parsing was successful, false 74 // otherwise. Returns false if |str| is null. 75 bool string_to_uuid(const char* str, bt_uuid_t* p_uuid); 76 77 int ascii_2_hex(const char* p_ascii, int len, uint8_t* p_hex); 78 79 void uuid_to_string_legacy(bt_uuid_t* p_uuid, char* str, size_t str_len); 80 81 #endif /* BTIF_UTIL_H */ 82