huangcm
2025-07-01 676035278781360996553c427a12bf358249ebf7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/******************************************************************************
 *
 *  Copyright 2003-2012 Broadcom Corporation
 *
 *  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.
 *
 ******************************************************************************/
 
/******************************************************************************
 *
 *  Basic utility functions.
 *
 ******************************************************************************/
#ifndef UTL_H
#define UTL_H
 
#include "bt_types.h"
#include "bt_utils.h"
 
/*****************************************************************************
 *  Constants
 ****************************************************************************/
/*** class of device settings ***/
#define BTA_UTL_SET_COD_MAJOR_MINOR 0x01
#define BTA_UTL_SET_COD_SERVICE_CLASS    \
  0x02 /* only set the bits in the input \
          */
#define BTA_UTL_CLR_COD_SERVICE_CLASS 0x04
#define BTA_UTL_SET_COD_ALL \
  0x08 /* take service class as the input (may clear some set bits!!) */
#define BTA_UTL_INIT_COD 0x0a
 
/*****************************************************************************
 *  Type Definitions
 ****************************************************************************/
 
/** for utl_set_device_class() **/
typedef struct {
  uint8_t minor;
  uint8_t major;
  uint16_t service;
} tBTA_UTL_COD;
 
/*****************************************************************************
 *  External Function Declarations
 ****************************************************************************/
 
/*******************************************************************************
 *
 * Function         utl_str2int
 *
 * Description      This utility function converts a character string to an
 *                  integer.  Acceptable values in string are 0-9.  If invalid
 *                  string or string value too large, -1 is returned.
 *
 *
 * Returns          Integer value or -1 on error.
 *
 ******************************************************************************/
extern int16_t utl_str2int(const char* p_s);
 
/*******************************************************************************
 *
 * Function         utl_strucmp
 *
 * Description      This utility function compares two strings in uppercase.
 *                  String p_s must be uppercase.  String p_t is converted to
 *                  uppercase if lowercase.  If p_s ends first, the substring
 *                  match is counted as a match.
 *
 *
 * Returns          0 if strings match, nonzero otherwise.
 *
 ******************************************************************************/
extern int utl_strucmp(const char* p_s, const char* p_t);
 
/*******************************************************************************
 *
 * Function         utl_itoa
 *
 * Description      This utility function converts a uint16_t to a string.  The
 *                  string is NULL-terminated.  The length of the string is
 *                  returned.
 *
 *
 * Returns          Length of string.
 *
 ******************************************************************************/
extern uint8_t utl_itoa(uint16_t i, char* p_s);
 
/*******************************************************************************
 *
 * Function         utl_set_device_class
 *
 * Description      This function updates the local Device Class.
 *
 * Parameters:
 *                  p_cod   - Pointer to the device class to set to
 *
 *                  cmd     - the fields of the device class to update.
 *                            BTA_UTL_SET_COD_MAJOR_MINOR, - overwrite major,
 *                                                           minor class
 *                            BTA_UTL_SET_COD_SERVICE_CLASS - set the bits in
 *                                                            the input
 *                            BTA_UTL_CLR_COD_SERVICE_CLASS - clear the bits in
 *                                                            the input
 *                            BTA_UTL_SET_COD_ALL - overwrite major, minor, set
 *                                                  the bits in service class
 *                            BTA_UTL_INIT_COD - overwrite major, minor, and
 *                                               service class
 *
 * Returns          true if successful, Otherwise false
 *
 ******************************************************************************/
extern bool utl_set_device_class(tBTA_UTL_COD* p_cod, uint8_t cmd);
 
/*******************************************************************************
 *
 * Function         utl_isintstr
 *
 * Description      This utility function checks if the given string is an
 *                  integer string or not
 *
 *
 * Returns          true if successful, Otherwise false
 *
 ******************************************************************************/
extern bool utl_isintstr(const char* p_s);
 
/*******************************************************************************
 *
 * Function         utl_isdialchar
 *
 * Description      This utility function checks if the given character
 *                  is an acceptable dial digit
 *
 * Returns          true if successful, Otherwise false
 *
 ******************************************************************************/
extern bool utl_isdialchar(const char d);
 
/*******************************************************************************
 *
 * Function         utl_isdialstr
 *
 * Description      This utility function checks if the given string contains
 *                  only dial digits or not
 *
 *
 * Returns          true if successful, Otherwise false
 *
 ******************************************************************************/
extern bool utl_isdialstr(const char* p_s);
 
#endif /* UTL_H */