Coverage Report

Created: 2026-08-08 07:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/adhd/cras/src/common/cras_metrics.c
Line
Count
Source
1
/* Copyright 2013 The ChromiumOS Authors
2
 * Use of this source code is governed by a BSD-style license that can be
3
 * found in the LICENSE file.
4
 */
5
6
#include "cras_metrics.h"
7
8
#include <syslog.h>
9
#include <unistd.h>
10
11
struct usb_device {
12
  int vendor_id;
13
  int product_id;
14
};
15
16
struct usb_device popular_usb_devices[] = {
17
    {.vendor_id = 0x582, .product_id = 0x159},
18
    {.vendor_id = 0x1b3f, .product_id = 0x2008},
19
    {.vendor_id = 0x0d8c, .product_id = 0x0014},
20
    {.vendor_id = 0x047f, .product_id = 0xc053},
21
    {.vendor_id = 0x046d, .product_id = 0x0a8f},
22
    {.vendor_id = 0x047f, .product_id = 0xc056},
23
    {.vendor_id = 0x0b0e, .product_id = 0x0300},
24
    {.vendor_id = 0x046d, .product_id = 0x0a38},
25
    {.vendor_id = 0x054c, .product_id = 0x09cc},
26
    {.vendor_id = 0x0b0e, .product_id = 0x0301},
27
    {.vendor_id = 0x4c4a, .product_id = 0x4155},
28
    {.vendor_id = 0x0b0e, .product_id = 0x2327},
29
    {.vendor_id = 0x046d, .product_id = 0x0a6b},
30
    {.vendor_id = 0x046d, .product_id = 0x0a7a},
31
    {.vendor_id = 0x001f, .product_id = 0x0b21},
32
    {.vendor_id = 0x8086, .product_id = 0x0808},
33
    {.vendor_id = 0x0b0e, .product_id = 0x2315},
34
    {.vendor_id = 0x045e, .product_id = 0x070f},
35
    {.vendor_id = 0x0d8c, .product_id = 0x0012},
36
    {.vendor_id = 0x0b0e, .product_id = 0x0305},
37
    {.vendor_id = 0x046d, .product_id = 0x0a64},
38
    {.vendor_id = 0x0b0e, .product_id = 0x2319},
39
    {.vendor_id = 0x0b0e, .product_id = 0x2304},
40
    {.vendor_id = 0x0b0e, .product_id = 0x0312},
41
    {.vendor_id = 0x04e8, .product_id = 0xa051},
42
    {.vendor_id = 0x046d, .product_id = 0x0a65},
43
    {.vendor_id = 0x08bb, .product_id = 0x2902},
44
    {.vendor_id = 0x046d, .product_id = 0x0a44},
45
    {.vendor_id = 0x047f, .product_id = 0xc055},
46
    {.vendor_id = 0x05e1, .product_id = 0x202a},
47
    {.vendor_id = 0x046d, .product_id = 0x0aad},
48
    {.vendor_id = 0x0b0e, .product_id = 0x0e40},
49
    {.vendor_id = 0x0b0e, .product_id = 0x0306},
50
    {.vendor_id = 0x0d8c, .product_id = 0x013c},
51
    {.vendor_id = 0x046d, .product_id = 0x0a37},
52
    {.vendor_id = 0x047f, .product_id = 0xc058},
53
    {.vendor_id = 0x10d6, .product_id = 0xdd00},
54
    {.vendor_id = 0x0b0e, .product_id = 0x4051},
55
    {.vendor_id = 0x17ef, .product_id = 0x7231},
56
    {.vendor_id = 0x0b0e, .product_id = 0x0e41},
57
    {.vendor_id = 0x047f, .product_id = 0x430a},
58
    {.vendor_id = 0x047f, .product_id = 0x431b},
59
    {.vendor_id = 0x054c, .product_id = 0x0ce6},
60
    {.vendor_id = 0x0c76, .product_id = 0x1262},
61
    {.vendor_id = 0x1395, .product_id = 0x028e},
62
    {.vendor_id = 0x0b0e, .product_id = 0x24c7},
63
    {.vendor_id = 0x1395, .product_id = 0x0291},
64
    {.vendor_id = 0x1395, .product_id = 0x003c},
65
    {.vendor_id = 0x0c76, .product_id = 0x161f},
66
    {.vendor_id = 0x18d1, .product_id = 0x5033},
67
    {.vendor_id = 0x05ac, .product_id = 0x110b},
68
    {.vendor_id = 0x046d, .product_id = 0x085b},
69
    {.vendor_id = 0x0b0e, .product_id = 0x0e31},
70
    {.vendor_id = 0x1130, .product_id = 0x1620},
71
    {.vendor_id = 0x047f, .product_id = 0xaf00},
72
    {.vendor_id = 0x12d1, .product_id = 0x3a07},
73
    {.vendor_id = 0x17e9, .product_id = 0x6006},
74
    {.vendor_id = 0x046d, .product_id = 0x0a45},
75
    {.vendor_id = 0x0bda, .product_id = 0x402e},
76
    {.vendor_id = 0x0b0e, .product_id = 0x24c8},
77
    {.vendor_id = 0x0b0e, .product_id = 0x245d},
78
    {.vendor_id = 0x0b0e, .product_id = 0x2302},
79
    {.vendor_id = 0x17e9, .product_id = 0x4307},
80
    {.vendor_id = 0x1395, .product_id = 0x0033},
81
    {.vendor_id = 0x0d8c, .product_id = 0x000c},
82
    {.vendor_id = 0x17e9, .product_id = 0x6000},
83
    {.vendor_id = 0x3391, .product_id = 0x0013},
84
    {.vendor_id = 0x0b0e, .product_id = 0x0313},
85
    {.vendor_id = 0x0c76, .product_id = 0x17e0},
86
    {.vendor_id = 0x17e9, .product_id = 0x436e},
87
    {.vendor_id = 0x0b0e, .product_id = 0x231a},
88
    {.vendor_id = 0x047f, .product_id = 0x02e6},
89
    {.vendor_id = 0x03f0, .product_id = 0x5e4a},
90
    {.vendor_id = 0x04e8, .product_id = 0xa05e},
91
    {.vendor_id = 0x0d8c, .product_id = 0x0013},
92
    {.vendor_id = 0x8087, .product_id = 0x1024},
93
    {.vendor_id = 0x1532, .product_id = 0x0537},
94
    {.vendor_id = 0x054c, .product_id = 0x0d5e},
95
    {.vendor_id = 0x1235, .product_id = 0x8211},
96
    {.vendor_id = 0x075a, .product_id = 0x079c},
97
    {.vendor_id = 0x0b0e, .product_id = 0x4001},
98
    {.vendor_id = 0x1395, .product_id = 0x0052},
99
    {.vendor_id = 0x31b2, .product_id = 0x0011},
100
    {.vendor_id = 0x046d, .product_id = 0x0ab7},
101
    {.vendor_id = 0x046d, .product_id = 0x0825},
102
    {.vendor_id = 0x046d, .product_id = 0x0a56},
103
    {.vendor_id = 0x0b0e, .product_id = 0x232a},
104
    {.vendor_id = 0x0bda, .product_id = 0x4014},
105
    {.vendor_id = 0x0b0e, .product_id = 0x0420},
106
    {.vendor_id = 0x0b0e, .product_id = 0x2311},
107
    {.vendor_id = 0x047f, .product_id = 0x02ee},
108
    {.vendor_id = 0x18d1, .product_id = 0x5021},
109
    {.vendor_id = 0x0c76, .product_id = 0x161e},
110
    {.vendor_id = 0x0b0e, .product_id = 0x4006},
111
    {.vendor_id = 0x1395, .product_id = 0x0026},
112
    {.vendor_id = 0x0d8c, .product_id = 0x0139},
113
    {.vendor_id = 0x1532, .product_id = 0x0504},
114
    {.vendor_id = 0x03f0, .product_id = 0x056b},
115
    {.vendor_id = 0x3302, .product_id = 0x3bd2},
116
    {.vendor_id = 0x0b0e, .product_id = 0x0e30},
117
    {.vendor_id = 0x3391, .product_id = 0x0015},
118
    {.vendor_id = 0x1395, .product_id = 0x0025},
119
    {.vendor_id = 0x0b0e, .product_id = 0x0422},
120
    {.vendor_id = 0x0d8c, .product_id = 0x0031},
121
    {.vendor_id = 0x046d, .product_id = 0x0a29},
122
    {.vendor_id = 0x0b0e, .product_id = 0x0412},
123
    {.vendor_id = 0x17e9, .product_id = 0x6015},
124
    {.vendor_id = 0x17e9, .product_id = 0x4349},
125
    {.vendor_id = 0x1ff7, .product_id = 0x0408},
126
    {.vendor_id = 0x0b0e, .product_id = 0x2322},
127
    {.vendor_id = 0x05ac, .product_id = 0x110a},
128
    {.vendor_id = 0x17e9, .product_id = 0x4323},
129
    {.vendor_id = 0x0b0e, .product_id = 0x2326},
130
    {.vendor_id = 0x0d8c, .product_id = 0x0005},
131
    {.vendor_id = 0x194f, .product_id = 0x0303},
132
    {.vendor_id = 0x1395, .product_id = 0x0296},
133
    {.vendor_id = 0x0b0e, .product_id = 0x2324},
134
    {.vendor_id = 0x0b0e, .product_id = 0x24a3},
135
    {.vendor_id = 0x0c76, .product_id = 0x168f},
136
    {.vendor_id = 0xffff, .product_id = 0xffff},
137
    {.vendor_id = 0x0c45, .product_id = 0x636b},
138
    {.vendor_id = 0x047f, .product_id = 0x430b},
139
    {.vendor_id = 0x0c76, .product_id = 0x153f},
140
    {.vendor_id = 0x0b0e, .product_id = 0x0302},
141
    {.vendor_id = 0x0b0e, .product_id = 0x0307},
142
    {.vendor_id = 0x0b0e, .product_id = 0x245e},
143
    {.vendor_id = 0x1908, .product_id = 0x2070},
144
    {.vendor_id = 0x047f, .product_id = 0xc054},
145
    {.vendor_id = 0x1395, .product_id = 0x0016},
146
    {.vendor_id = 0x1395, .product_id = 0x0284},
147
    {.vendor_id = 0x046d, .product_id = 0x0843},
148
    {.vendor_id = 0x047f, .product_id = 0xc008},
149
    {.vendor_id = 0x6993, .product_id = 0xb017},
150
    {.vendor_id = 0x1395, .product_id = 0x00b0},
151
    {.vendor_id = 0x0b0e, .product_id = 0x2301},
152
    {.vendor_id = 0x413c, .product_id = 0xa503},
153
    {.vendor_id = 0x18d1, .product_id = 0x5034},
154
    {.vendor_id = 0x1395, .product_id = 0x00ca},
155
    {.vendor_id = 0x1778, .product_id = 0x0227},
156
    {.vendor_id = 0x05e1, .product_id = 0x202b},
157
    {.vendor_id = 0x046d, .product_id = 0x082d},
158
    {.vendor_id = 0x6993, .product_id = 0xb04c},
159
    {.vendor_id = 0x17ef, .product_id = 0xa016},
160
    {.vendor_id = 0x0d8c, .product_id = 0x0134},
161
    {.vendor_id = 0x1395, .product_id = 0x0185},
162
    {.vendor_id = 0x047f, .product_id = 0xc03a},
163
    {.vendor_id = 0x046d, .product_id = 0x08e5},
164
    {.vendor_id = 0x0572, .product_id = 0x1807},
165
    {.vendor_id = 0x1395, .product_id = 0x0024},
166
    {.vendor_id = 0x1395, .product_id = 0x0298},
167
    {.vendor_id = 0x047f, .product_id = 0xac01},
168
    {.vendor_id = 0x17ef, .product_id = 0xa396},
169
    {.vendor_id = 0x046d, .product_id = 0x0a55},
170
    {.vendor_id = 0x0c76, .product_id = 0x1a23},
171
    {.vendor_id = 0x0b0e, .product_id = 0x030c},
172
    {.vendor_id = 0xe5b7, .product_id = 0x0811},
173
    {.vendor_id = 0x1235, .product_id = 0x8210},
174
    {.vendor_id = 0x1b3f, .product_id = 0x2021},
175
    {.vendor_id = 0x047f, .product_id = 0xc057},
176
    {.vendor_id = 0x3206, .product_id = 0x106b},
177
    {.vendor_id = 0x31b2, .product_id = 0x0010},
178
    {.vendor_id = 0x047f, .product_id = 0x430c},
179
    {.vendor_id = 0x0b0e, .product_id = 0x2453},
180
    {.vendor_id = 0x17ef, .product_id = 0x60f4},
181
    {.vendor_id = 0x046d, .product_id = 0x0ac4},
182
    {.vendor_id = 0x0b0e, .product_id = 0x2466},
183
    {.vendor_id = 0x0c76, .product_id = 0x120c},
184
    {.vendor_id = 0x0d8c, .product_id = 0x016c},
185
    {.vendor_id = 0xb58e, .product_id = 0x9e84},
186
    {.vendor_id = 0x1ff7, .product_id = 0x0f27},
187
    {.vendor_id = 0x047f, .product_id = 0x430e},
188
    {.vendor_id = 0x046d, .product_id = 0x0ab5},
189
    {.vendor_id = 0x0572, .product_id = 0x1433},
190
    {.vendor_id = 0x045e, .product_id = 0x0837},
191
    {.vendor_id = 0x0b0e, .product_id = 0x0303},
192
    {.vendor_id = 0x16d0, .product_id = 0x0dab},
193
    {.vendor_id = 0x0d8c, .product_id = 0x013a},
194
    {.vendor_id = 0x0b0e, .product_id = 0x0410},
195
    {.vendor_id = 0x0c76, .product_id = 0x1a24},
196
    {.vendor_id = 0x03f0, .product_id = 0x879d},
197
    {.vendor_id = 0x047f, .product_id = 0xaf03},
198
    {.vendor_id = 0x1395, .product_id = 0x0286},
199
    {.vendor_id = 0x0b0e, .product_id = 0x1121},
200
    {.vendor_id = 0x0b0e, .product_id = 0x24c9},
201
    {.vendor_id = 0x3142, .product_id = 0x5060},
202
    {.vendor_id = 0x1235, .product_id = 0x0003},
203
    {.vendor_id = 0x046d, .product_id = 0x085c},
204
    {.vendor_id = 0x047f, .product_id = 0xaf01},
205
    {.vendor_id = 0x046d, .product_id = 0x0acb},
206
    {.vendor_id = 0x17ef, .product_id = 0x30b0},
207
    {.vendor_id = 0x145f, .product_id = 0x02dd},
208
    {.vendor_id = 0x0951, .product_id = 0x16a4},
209
    {.vendor_id = 0x18d1, .product_id = 0x8001},
210
    {.vendor_id = 0x6993, .product_id = 0xb20a},
211
    {.vendor_id = 0x17e9, .product_id = 0x4301},
212
    {.vendor_id = 0xbe57, .product_id = 0x0238},
213
    {.vendor_id = 0x0b0e, .product_id = 0xa710},
214
    {.vendor_id = 0x1395, .product_id = 0x0032},
215
    {.vendor_id = 0x3302, .product_id = 0x29c4},
216
    {.vendor_id = 0x17ef, .product_id = 0x612c},
217
    {.vendor_id = 0x047f, .product_id = 0xc012},
218
    {.vendor_id = 0x03f0, .product_id = 0x0269},
219
    {.vendor_id = 0x10f5, .product_id = 0x220d},
220
    {.vendor_id = 0x0d8c, .product_id = 0x0103},
221
    {.vendor_id = 0x1b3f, .product_id = 0x2247},
222
    {.vendor_id = 0x0b0e, .product_id = 0x030b},
223
    {.vendor_id = 0x145f, .product_id = 0x02d2},
224
    {.vendor_id = 0x046d, .product_id = 0x0a0c},
225
    {.vendor_id = 0x075a, .product_id = 0x076c},
226
    {.vendor_id = 0x0b0e, .product_id = 0x2e40},
227
    {.vendor_id = 0x041e, .product_id = 0x3277},
228
    {.vendor_id = 0x046d, .product_id = 0x0892},
229
    {.vendor_id = 0x1038, .product_id = 0x12b3},
230
    {.vendor_id = 0x4c4a, .product_id = 0x3435},
231
    {.vendor_id = 0x17e9, .product_id = 0x601e},
232
    {.vendor_id = 0x1532, .product_id = 0x0527},
233
    {.vendor_id = 0x1395, .product_id = 0x0099},
234
    {.vendor_id = 0x047f, .product_id = 0xc034},
235
    {.vendor_id = 0x2d30, .product_id = 0x5056},
236
    {.vendor_id = 0x08bb, .product_id = 0x29c0},
237
    {.vendor_id = 0x0bda, .product_id = 0x482a},
238
    {.vendor_id = 0x1b1c, .product_id = 0x0a51},
239
    {.vendor_id = 0xb58e, .product_id = 0x0005},
240
    {.vendor_id = 0x047f, .product_id = 0x4315},
241
    {.vendor_id = 0x17e9, .product_id = 0x600a},
242
    {.vendor_id = 0x17ef, .product_id = 0x30bb},
243
    {.vendor_id = 0x046d, .product_id = 0x085e},
244
    {.vendor_id = 0x046d, .product_id = 0x0867},
245
    {.vendor_id = 0x10d6, .product_id = 0x4801},
246
    {.vendor_id = 0x0bda, .product_id = 0x875b},
247
    {.vendor_id = 0x0495, .product_id = 0x3042},
248
    {.vendor_id = 0x1778, .product_id = 0xd001},
249
    {.vendor_id = 0x2207, .product_id = 0x0019},
250
    {.vendor_id = 0x2ea1, .product_id = 0x011a},
251
    {.vendor_id = 0x2ea1, .product_id = 0x2130},
252
    {.vendor_id = 0x05a3, .product_id = 0x9331},
253
    {.vendor_id = 0x1b1c, .product_id = 0x0a4d},
254
    {.vendor_id = 0x413c, .product_id = 0xa516},
255
    {.vendor_id = 0x1395, .product_id = 0x0382},
256
    {.vendor_id = 0x2574, .product_id = 0x100a},
257
    {.vendor_id = 0x1778, .product_id = 0xd021},
258
    {.vendor_id = 0x0bda, .product_id = 0x4e0a},
259
    {.vendor_id = 0x0c76, .product_id = 0x0a23},
260
    {.vendor_id = 0x17ef, .product_id = 0x3063},
261
    {.vendor_id = 0x10f5, .product_id = 0x2186},
262
    {.vendor_id = 0x0c45, .product_id = 0x6366},
263
    {.vendor_id = 0x08a8, .product_id = 0x0016},
264
    {.vendor_id = 0x03f0, .product_id = 0x2147},
265
    {.vendor_id = 0x17ef, .product_id = 0xa069},
266
    {.vendor_id = 0x0b0e, .product_id = 0x2465},
267
    {.vendor_id = 0x0909, .product_id = 0x001c},
268
    {.vendor_id = 0x0b0e, .product_id = 0x1113},
269
    {.vendor_id = 0x16d0, .product_id = 0x08b3},
270
    {.vendor_id = 0x0c76, .product_id = 0x160b},
271
    {.vendor_id = 0x046d, .product_id = 0x0adf},
272
    {.vendor_id = 0x17e9, .product_id = 0x6028},
273
    {.vendor_id = 0x1532, .product_id = 0x0531},
274
    {.vendor_id = 0x046d, .product_id = 0x0a9c},
275
    {.vendor_id = 0x1038, .product_id = 0x12aa},
276
    {.vendor_id = 0x22d9, .product_id = 0x9101},
277
    {.vendor_id = 0x17ef, .product_id = 0xa032},
278
    {.vendor_id = 0x04f2, .product_id = 0xb3eb},
279
    {.vendor_id = 0x290b, .product_id = 0x0900},
280
    {.vendor_id = 0x0a67, .product_id = 0x11c0},
281
    {.vendor_id = 0x0b0e, .product_id = 0x2475},
282
    {.vendor_id = 0x1395, .product_id = 0x00cb},
283
    {.vendor_id = 0x08bb, .product_id = 0x2912},
284
    {.vendor_id = 0x0b0e, .product_id = 0x1016},
285
    {.vendor_id = 0x0b0e, .product_id = 0x111a},
286
    {.vendor_id = 0x413c, .product_id = 0xa513},
287
    {.vendor_id = 0x0a67, .product_id = 0xc006},
288
    {.vendor_id = 0x0b0e, .product_id = 0x030e},
289
    {.vendor_id = 0x2894, .product_id = 0x0012},
290
    {.vendor_id = 0x20b1, .product_id = 0x0011},
291
    {.vendor_id = 0x046d, .product_id = 0x0aba},
292
    {.vendor_id = 0x0c76, .product_id = 0x1607},
293
    {.vendor_id = 0x3142, .product_id = 0x0658},
294
    {.vendor_id = 0x047f, .product_id = 0x02f7},
295
    {.vendor_id = 0x046d, .product_id = 0x0afe},
296
    {.vendor_id = 0x17e9, .product_id = 0x6004},
297
    {.vendor_id = 0x1532, .product_id = 0x0526},
298
    {.vendor_id = 0x0572, .product_id = 0x1b08},
299
    {.vendor_id = 0x17e9, .product_id = 0x4306},
300
    {.vendor_id = 0x0b0e, .product_id = 0x0e35},
301
    {.vendor_id = 0x041e, .product_id = 0x3272},
302
    {.vendor_id = 0x1532, .product_id = 0x0529},
303
    {.vendor_id = 0x1235, .product_id = 0x0002},
304
    {.vendor_id = 0x17ef, .product_id = 0x611d},
305
    {.vendor_id = 0x0c76, .product_id = 0x2018},
306
    {.vendor_id = 0x046d, .product_id = 0x0aaa},
307
    {.vendor_id = 0x1395, .product_id = 0x0287},
308
    {.vendor_id = 0x047f, .product_id = 0xc025},
309
    {.vendor_id = 0x045e, .product_id = 0x077f},
310
    {.vendor_id = 0x1532, .product_id = 0x051e},
311
    {.vendor_id = 0x17ef, .product_id = 0x3083},
312
    {.vendor_id = 0x1395, .product_id = 0x0285},
313
    {.vendor_id = 0x046d, .product_id = 0x082c},
314
    {.vendor_id = 0x0d8c, .product_id = 0x0721},
315
    {.vendor_id = 0x046d, .product_id = 0x0aee},
316
    {.vendor_id = 0x047f, .product_id = 0x0156},
317
    {.vendor_id = 0x0b0e, .product_id = 0x0314},
318
    {.vendor_id = 0x0b0e, .product_id = 0x0852},
319
    {.vendor_id = 0x0951, .product_id = 0x1713},
320
    {.vendor_id = 0x1532, .product_id = 0x0552},
321
    {.vendor_id = 0x17e9, .product_id = 0x6011},
322
    {.vendor_id = 0x2acf, .product_id = 0x0b21},
323
    {.vendor_id = 0x1532, .product_id = 0x054e},
324
    {.vendor_id = 0x2d0b, .product_id = 0x0001},
325
    {.vendor_id = 0x1235, .product_id = 0x8205},
326
    {.vendor_id = 0x03f0, .product_id = 0x0a93},
327
    {.vendor_id = 0x03f0, .product_id = 0x1841},
328
    {.vendor_id = 0x0b0e, .product_id = 0x2476},
329
    {.vendor_id = 0x17e9, .product_id = 0x602f},
330
    {.vendor_id = 0x2000, .product_id = 0xdd00},
331
    {.vendor_id = 0x1532, .product_id = 0x0521},
332
    {.vendor_id = 0x0020, .product_id = 0x0b21},
333
    {.vendor_id = 0x0c76, .product_id = 0x1608},
334
    {.vendor_id = 0x12d1, .product_id = 0x0010},
335
    {.vendor_id = 0x0bda, .product_id = 0x4c07},
336
    {.vendor_id = 0x10f5, .product_id = 0x0141},
337
    {.vendor_id = 0x0b0e, .product_id = 0x2505},
338
    {.vendor_id = 0x047f, .product_id = 0xac29},
339
    {.vendor_id = 0x04e8, .product_id = 0xa059},
340
    {.vendor_id = 0x04e8, .product_id = 0xa05b},
341
    {.vendor_id = 0x17e9, .product_id = 0x6008},
342
    {.vendor_id = 0x03f0, .product_id = 0x0b92},
343
    {.vendor_id = 0x534d, .product_id = 0x2109},
344
    {.vendor_id = 0x03f0, .product_id = 0x0d87},
345
    {.vendor_id = 0x1532, .product_id = 0x0536},
346
    {.vendor_id = 0x0ecb, .product_id = 0x206b},
347
    {.vendor_id = 0x413c, .product_id = 0xa510},
348
    {.vendor_id = 0x3391, .product_id = 0x0002},
349
    {.vendor_id = 0x08bb, .product_id = 0x2704},
350
    {.vendor_id = 0x6993, .product_id = 0xb120},
351
    {.vendor_id = 0x301a, .product_id = 0x0602},
352
    {.vendor_id = 0x04e8, .product_id = 0xa057},
353
    {.vendor_id = 0x0b0e, .product_id = 0xa50c},
354
    {.vendor_id = 0x1b3f, .product_id = 0x2012},
355
    {.vendor_id = 0x0d8c, .product_id = 0x0022},
356
    {.vendor_id = 0x0b0e, .product_id = 0x0308},
357
    {.vendor_id = 0x3302, .product_id = 0x29e3},
358
    {.vendor_id = 0x0c76, .product_id = 0x1675},
359
    {.vendor_id = 0x0b0e, .product_id = 0x0349},
360
    {.vendor_id = 0x0b0e, .product_id = 0x24ca},
361
    {.vendor_id = 0x2ea1, .product_id = 0x2121},
362
    {.vendor_id = 0x1395, .product_id = 0x0299},
363
    {.vendor_id = 0x04fc, .product_id = 0x2680},
364
    {.vendor_id = 0x03f0, .product_id = 0x0491},
365
    {.vendor_id = 0x194f, .product_id = 0x0403},
366
    {.vendor_id = 0x1b3f, .product_id = 0x2002},
367
    {.vendor_id = 0x047f, .product_id = 0xab01},
368
    {.vendor_id = 0x047f, .product_id = 0x013c},
369
    {.vendor_id = 0x04e8, .product_id = 0xa04f},
370
    {.vendor_id = 0x1025, .product_id = 0x1652},
371
    {.vendor_id = 0x2d30, .product_id = 0x8055},
372
    {.vendor_id = 0x0ecb, .product_id = 0x2039},
373
    {.vendor_id = 0x0e6f, .product_id = 0x0232},
374
    {.vendor_id = 0x0c76, .product_id = 0x1a22},
375
    {.vendor_id = 0x0b0e, .product_id = 0x24fc},
376
    {.vendor_id = 0x31b2, .product_id = 0x0111},
377
    {.vendor_id = 0x03f0, .product_id = 0x0d8b},
378
    {.vendor_id = 0x18d1, .product_id = 0x2d02},
379
    {.vendor_id = 0x0d8c, .product_id = 0x0102},
380
    {.vendor_id = 0x6993, .product_id = 0xb043},
381
    {.vendor_id = 0x1038, .product_id = 0x12ad},
382
    {.vendor_id = 0x1908, .product_id = 0x2220},
383
    {.vendor_id = 0x046d, .product_id = 0x0ade},
384
    {.vendor_id = 0x17ef, .product_id = 0x30d1},
385
    {.vendor_id = 0x05fc, .product_id = 0x0231},
386
    {.vendor_id = 0x0951, .product_id = 0x1718},
387
    {.vendor_id = 0x17ee, .product_id = 0x0a15},
388
    {.vendor_id = 0x17e9, .product_id = 0x4333},
389
    {.vendor_id = 0x046d, .product_id = 0x0aaf},
390
    {.vendor_id = 0x0b05, .product_id = 0x19c5},
391
    {.vendor_id = 0x17ef, .product_id = 0xa05c},
392
    {.vendor_id = 0x046d, .product_id = 0x081b},
393
    {.vendor_id = 0x047f, .product_id = 0xc036},
394
    {.vendor_id = 0x046d, .product_id = 0x0ada},
395
    {.vendor_id = 0x2d0b, .product_id = 0x0010},
396
    {.vendor_id = 0x1d6c, .product_id = 0x0103},
397
    {.vendor_id = 0x047f, .product_id = 0xac2b},
398
    {.vendor_id = 0x2166, .product_id = 0x9021},
399
    {.vendor_id = 0x1bcf, .product_id = 0x28c4},
400
    {.vendor_id = 0x3391, .product_id = 0x0006},
401
    {.vendor_id = 0x0572, .product_id = 0x0005},
402
    {.vendor_id = 0x1224, .product_id = 0x2a25},
403
    {.vendor_id = 0x0031, .product_id = 0x1133},
404
    {.vendor_id = 0x352f, .product_id = 0x0105},
405
    {.vendor_id = 0x0b0e, .product_id = 0x24fd},
406
    {.vendor_id = 0x046d, .product_id = 0x0a66},
407
    {.vendor_id = 0x0d8c, .product_id = 0x0030},
408
    {.vendor_id = 0xf389, .product_id = 0x0168},
409
    {.vendor_id = 0x046d, .product_id = 0x0a90},
410
    {.vendor_id = 0x0b0e, .product_id = 0x1134},
411
    {.vendor_id = 0x0bda, .product_id = 0x4a72},
412
    {.vendor_id = 0x0951, .product_id = 0x1723},
413
    {.vendor_id = 0x2a70, .product_id = 0x1881},
414
    {.vendor_id = 0x0572, .product_id = 0x141b},
415
    {.vendor_id = 0x17e9, .product_id = 0x6013},
416
    {.vendor_id = 0x046d, .product_id = 0x0a46},
417
    {.vendor_id = -1, .product_id = 0},
418
};
419
420
0
bool in_popular_usb_devices(int vid, int pid) {
421
0
  int i = 0;
422
0
  for (i = 0; popular_usb_devices[i].vendor_id != -1; i++) {
423
0
    if (popular_usb_devices[i].vendor_id == vid &&
424
0
        popular_usb_devices[i].product_id == pid) {
425
0
      return true;
426
0
    }
427
0
  }
428
0
  return false;
429
0
}
430
431
#if HAVE_LIB_METRICS
432
#include <metrics/c_metrics_library.h>
433
434
#include "metrics/c_structured_metrics.h"
435
436
void cras_metrics_log_event(const char* event) {
437
  CMetricsLibrary handle;
438
439
  syslog(LOG_DEBUG, "UMA event: %s", event);
440
  handle = CMetricsLibraryNew();
441
  CMetricsLibrarySendCrosEventToUMA(handle, event);
442
  CMetricsLibraryDelete(handle);
443
}
444
445
void cras_metrics_log_histogram(const char* name,
446
                                int sample,
447
                                int min,
448
                                int max,
449
                                int nbuckets) {
450
  CMetricsLibrary handle;
451
452
  syslog(LOG_DEBUG, "UMA name: %s", name);
453
  handle = CMetricsLibraryNew();
454
  CMetricsLibrarySendToUMA(handle, name, sample, min, max, nbuckets);
455
  CMetricsLibraryDelete(handle);
456
}
457
458
void cras_metrics_log_sparse_histogram(const char* name, int sample) {
459
  CMetricsLibrary handle;
460
461
  syslog(LOG_DEBUG, "UMA name: %s", name);
462
  handle = CMetricsLibraryNew();
463
  CMetricsLibrarySendSparseToUMA(handle, name, sample);
464
  CMetricsLibraryDelete(handle);
465
}
466
467
void audio_peripheral_info(int vendor_id, int product_id, int type) {
468
  syslog(LOG_DEBUG, "AudioPeripheralInfo vid: %x, pid: %x, type: %d", vendor_id,
469
         product_id, type);
470
  AudioPeripheralInfo(vendor_id, product_id, type);
471
}
472
473
void audio_peripheral_close(int vendor_id,
474
                            int product_id,
475
                            int type,
476
                            int run_time,
477
                            int rate,
478
                            int channel,
479
                            int format) {
480
  if (in_popular_usb_devices(vendor_id, product_id)) {
481
    syslog(LOG_DEBUG,
482
           "AudioPeripheralClose vid: %x, pid: %x, type: %d, run_time: %d, "
483
           "rate: %d, channel: %d, format:%d",
484
           vendor_id, product_id, type, run_time, rate, channel, format);
485
    AudioPeripheralClose(vendor_id, product_id, type, run_time, rate, channel,
486
                         format);
487
  }
488
}
489
490
#else
491
0
void cras_metrics_log_event(const char* event) {}
492
void cras_metrics_log_histogram(const char* name,
493
                                int sample,
494
                                int min,
495
                                int max,
496
18.8k
                                int nbuckets) {}
497
0
void cras_metrics_log_enum_histogram(const char* name, int sample, int max) {}
498
6.70k
void cras_metrics_log_sparse_histogram(const char* name, int sample) {}
499
500
0
void audio_peripheral_info(int vendor_id, int product_id, int type) {}
501
void audio_peripheral_close(int vendor_id,
502
                            int product_id,
503
                            int type,
504
                            int run_time,
505
                            int rate,
506
                            int channel,
507
0
                            int format) {}
508
509
#endif