1pub const CUSTOMER_NAME: &str = "fuchsia";
4pub const CUSTOMER_ID: u32 = 1;
5pub const PROJECT_NAME: &str = "bluetooth";
6pub const PROJECT_ID: u32 = 2322225253;
7
8pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_FLOOR: i64 = 0;
10pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_NUM_BUCKETS: u32 = 23;
11pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_INITIAL_STEP: u32 = 2;
12pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_STEP_MULTIPLIER_FLOAT: f32 = 2.00f32;
13
14pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_AVDTP_AVERAGE_DELAY_REPORT_IN_NS_HISTOGRAM_INT_BUCKETS_FLOOR: i64 = 0;
16pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_AVDTP_AVERAGE_DELAY_REPORT_IN_NS_HISTOGRAM_INT_BUCKETS_NUM_BUCKETS: u32 = 20;
17pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_AVDTP_AVERAGE_DELAY_REPORT_IN_NS_HISTOGRAM_INT_BUCKETS_STEP_SIZE: u32 = 100000000;
18
19pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_FLOOR: i64 = 0;
21pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_NUM_BUCKETS: u32 = 17;
22pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_INITIAL_STEP: u32 = 2;
23pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_STEP_MULTIPLIER_FLOAT: f32 = 2.00f32;
24
25pub const BT_HOST_ADAPTER_EVENT_METRIC_ID: u32 = 9;
28pub const BT_HOST_PEER_BONDING_EVENT_METRIC_ID: u32 = 10;
30pub const BT_HOST_PEER_CONNECTION_EVENT_METRIC_ID: u32 = 11;
32pub const AVRCP_REMOTE_PEER_CAPABILITIES_METRIC_ID: u32 = 15;
34pub const BT_HOST_LE_PEER_DISCONNECTION_EVENT_METRIC_ID: u32 = 18;
36pub const BT_HOST_BREDR_PEER_DISCONNECTION_EVENT_METRIC_ID: u32 = 19;
38pub const A2DP_REMOTE_PEER_CAPABILITIES_METRIC_ID: u32 = 20;
40pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_METRIC_ID: u32 = 21;
42pub const AVRCP_TARGET_DISTINCT_PEER_PLAYER_CAPABILITIES_METRIC_ID: u32 = 22;
44pub const A2DP_CODEC_AVAILABILITY_MIGRATED_METRIC_ID: u32 = 103;
46pub const PAIRING_METHOD_MIGRATED_METRIC_ID: u32 = 104;
48pub const PAIRING_RESULT_MIGRATED_METRIC_ID: u32 = 105;
50pub const L2CAP_OPEN_CHANNEL_MIGRATED_METRIC_ID: u32 = 106;
52pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_METRIC_ID: u32 = 108;
54pub const BROADCOM_CORE_DUMPS_METRIC_ID: u32 = 109;
56
57#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
59pub enum BluetoothMetricDimensionMode {
60 Le = 0,
61 BrEdr = 1,
62}
63
64impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMode {
65 fn as_event_code(&self) -> u32 {
66 *self as u32
67 }
68}
69pub use BluetoothMetricDimensionMode as BtHostAdapterEventMetricDimensionMode;
71
72pub use BluetoothMetricDimensionMode as BtHostPeerBondingEventMetricDimensionMode;
74
75pub use BluetoothMetricDimensionMode as BtHostPeerConnectionEventMetricDimensionMode;
77
78#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
80pub enum BtHostAdapterEventMetricDimensionEvent {
81 OpenL2capChannelRequest = 0,
82 OutgoingConnectionRequest = 1,
83 PairRequest = 2,
84 RequestDiscoverable = 3,
85 RequestDiscovery = 4,
86 SetConnectableTrue = 5,
87 SetConnectableFalse = 6,
88 StartAdvertising = 7,
89 StopAdvertising = 8,
90 StartDiscovery = 9,
91}
92
93impl cobalt_client::traits::AsEventCode for BtHostAdapterEventMetricDimensionEvent {
94 fn as_event_code(&self) -> u32 {
95 *self as u32
96 }
97}
98
99#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
101pub enum BtHostPeerBondingEventMetricDimensionEvent {
102 Success = 0,
103 Failure = 1,
104}
105
106impl cobalt_client::traits::AsEventCode for BtHostPeerBondingEventMetricDimensionEvent {
107 fn as_event_code(&self) -> u32 {
108 *self as u32
109 }
110}
111
112#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
114pub enum BtHostPeerConnectionEventMetricDimensionEvent {
115 Success = 0,
116 Failure = 1,
117 InterrogationComplete = 2,
118 PageTimeout = 3,
119}
120
121impl cobalt_client::traits::AsEventCode for BtHostPeerConnectionEventMetricDimensionEvent {
122 fn as_event_code(&self) -> u32 {
123 *self as u32
124 }
125}
126
127#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
129pub enum BluetoothMetricDimensionDirection {
130 Unspecified = 0,
131 Incoming = 1,
132 Outgoing = 2,
133}
134
135impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionDirection {
136 fn as_event_code(&self) -> u32 {
137 *self as u32
138 }
139}
140pub use BluetoothMetricDimensionDirection as BtHostPeerConnectionEventMetricDimensionDirection;
142
143#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
145pub enum BluetoothMetricDimensionRemoteRole {
146 Target = 0,
147 Controller = 1,
148}
149
150impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionRemoteRole {
151 fn as_event_code(&self) -> u32 {
152 *self as u32
153 }
154}
155pub use BluetoothMetricDimensionRemoteRole as AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole;
157
158#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
160pub enum BluetoothMetricDimensionFeature {
161 SupportsBrowsing = 0,
162 SupportsCoverArt = 1,
163}
164
165impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionFeature {
166 fn as_event_code(&self) -> u32 {
167 *self as u32
168 }
169}
170pub use BluetoothMetricDimensionFeature as AvrcpRemotePeerCapabilitiesMetricDimensionFeature;
172
173#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
175pub enum BtHostLePeerDisconnectionEventMetricDimensionReason {
176 Unknown = 0,
177 ExplictDisconnect = 1,
178 LinkError = 2,
179 ZeroRef = 3,
180 RemoteDisconnection = 4,
181 GattDiscoveryFailure = 5,
182}
183
184impl cobalt_client::traits::AsEventCode for BtHostLePeerDisconnectionEventMetricDimensionReason {
185 fn as_event_code(&self) -> u32 {
186 *self as u32
187 }
188}
189
190#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
192pub enum BtHostBredrPeerDisconnectionEventMetricDimensionReason {
193 Unknown = 0,
194 ApiRequest = 1,
195 InterrogationFailed = 2,
196 PairingFailed = 3,
197 AclLinkError = 4,
198 PeerDisconnection = 5,
199}
200
201impl cobalt_client::traits::AsEventCode for BtHostBredrPeerDisconnectionEventMetricDimensionReason {
202 fn as_event_code(&self) -> u32 {
203 *self as u32
204 }
205}
206
207#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
209pub enum BluetoothMetricDimensionCapability {
210 Unknown = 0,
211 Basic = 1,
212 DelayReport = 2,
213 Reporting = 3,
214 Recovery = 4,
215 ContentProtection = 5,
216 HeaderCompression = 6,
217 Multiplexing = 7,
218}
219
220impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCapability {
221 fn as_event_code(&self) -> u32 {
222 *self as u32
223 }
224}
225pub use BluetoothMetricDimensionCapability as A2dpRemotePeerCapabilitiesMetricDimensionCapability;
227
228#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
230pub enum AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
231 Unknown = 0,
232 Unsupported = 1,
233 Supported = 2,
234 SupportedWhenAddressed = 3,
235}
236
237impl cobalt_client::traits::AsEventCode for AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
238 fn as_event_code(&self) -> u32 {
239 *self as u32
240 }
241}
242
243pub use AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching;
245
246#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
248pub enum BluetoothMetricDimensionNowPlaying {
249 Unknown = 0,
250 Unsupported = 1,
251 Supported = 2,
252}
253
254impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionNowPlaying {
255 fn as_event_code(&self) -> u32 {
256 *self as u32
257 }
258}
259pub use BluetoothMetricDimensionNowPlaying as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying;
261
262#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
264pub enum BluetoothMetricDimensionCodec {
265 Unknown = 0,
266 Sbc = 1,
267 Mpeg12 = 2,
268 Aac = 3,
269 Atrac = 4,
270 VendorSpecific = 5,
271}
272
273impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCodec {
274 fn as_event_code(&self) -> u32 {
275 *self as u32
276 }
277}
278pub use BluetoothMetricDimensionCodec as A2dpCodecAvailabilityMigratedMetricDimensionCodec;
280
281pub use BluetoothMetricDimensionCodec as A2dpStreamDurationInSecondsMigratedMetricDimensionCodec;
283
284#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
286pub enum BluetoothMetricDimensionMethod {
287 Consent = 0,
288 PasskeyDisplay = 1,
289 PasskeyComparison = 2,
290 PasskeyEntry = 3,
291}
292
293impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMethod {
294 fn as_event_code(&self) -> u32 {
295 *self as u32
296 }
297}
298pub use BluetoothMetricDimensionMethod as PairingMethodMigratedMetricDimensionMethod;
300
301#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
303pub enum BluetoothMetricDimensionResult {
304 Success = 0,
305 ErrorUnknown = 1,
306 ErrorCanceled = 2,
307 ErrorInProgress = 3,
308 ErrorTimedOut = 4,
309 ErrorNotFound = 5,
310 ErrorNotSupported = 6,
311 ErrorBluetoothNotAvailable = 7,
312 ErrorBadState = 8,
313 ErrorInvalidArguments = 9,
314 ErrorAlready = 10,
315 ErrorProtocolError = 11,
316 ErrorCentralLmpTransactionCollision = 12,
317 ErrorCentralDifferentTransactionCollision = 13,
318 ErrorPeripheralLmpTransactionCollision = 14,
319 ErrorPeripheralDifferentTransactionCollision = 15,
320}
321
322impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionResult {
323 fn as_event_code(&self) -> u32 {
324 *self as u32
325 }
326}
327pub use BluetoothMetricDimensionResult as PairingResultMigratedMetricDimensionResult;
329
330#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
332pub enum BluetoothMetricDimensionLinkLayerType {
333 Acl = 0,
334 Le = 1,
335}
336
337impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionLinkLayerType {
338 fn as_event_code(&self) -> u32 {
339 *self as u32
340 }
341}
342pub use BluetoothMetricDimensionLinkLayerType as L2capOpenChannelMigratedMetricDimensionLinkLayerType;
344
345#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
347pub enum BluetoothMetricDimensionInitiator {
348 True = 0,
349 False = 1,
350}
351
352impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionInitiator {
353 fn as_event_code(&self) -> u32 {
354 *self as u32
355 }
356}
357pub use BluetoothMetricDimensionInitiator as L2capOpenChannelMigratedMetricDimensionInitiator;
359
360#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
361pub struct BtHostAdapterEventEventCodes {
362 pub mode: BtHostAdapterEventMetricDimensionMode,
363 pub event: BtHostAdapterEventMetricDimensionEvent,
364}
365
366impl cobalt_client::traits::AsEventCodes for BtHostAdapterEventEventCodes {
367 fn as_event_codes(&self) -> Vec<u32> {
368 use cobalt_client::traits::AsEventCode;
369 vec![
370 self.mode.as_event_code(),
371 self.event.as_event_code(),
372 ]
373 }
374}
375
376#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
377pub struct BtHostPeerBondingEventEventCodes {
378 pub mode: BtHostPeerBondingEventMetricDimensionMode,
379 pub event: BtHostPeerBondingEventMetricDimensionEvent,
380}
381
382impl cobalt_client::traits::AsEventCodes for BtHostPeerBondingEventEventCodes {
383 fn as_event_codes(&self) -> Vec<u32> {
384 use cobalt_client::traits::AsEventCode;
385 vec![
386 self.mode.as_event_code(),
387 self.event.as_event_code(),
388 ]
389 }
390}
391
392#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
393pub struct BtHostPeerConnectionEventEventCodes {
394 pub mode: BtHostPeerConnectionEventMetricDimensionMode,
395 pub event: BtHostPeerConnectionEventMetricDimensionEvent,
396 pub direction: BtHostPeerConnectionEventMetricDimensionDirection,
397}
398
399impl cobalt_client::traits::AsEventCodes for BtHostPeerConnectionEventEventCodes {
400 fn as_event_codes(&self) -> Vec<u32> {
401 use cobalt_client::traits::AsEventCode;
402 vec![
403 self.mode.as_event_code(),
404 self.event.as_event_code(),
405 self.direction.as_event_code(),
406 ]
407 }
408}
409
410#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
411pub struct AvrcpRemotePeerCapabilitiesEventCodes {
412 pub remote_role: AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole,
413 pub feature: AvrcpRemotePeerCapabilitiesMetricDimensionFeature,
414}
415
416impl cobalt_client::traits::AsEventCodes for AvrcpRemotePeerCapabilitiesEventCodes {
417 fn as_event_codes(&self) -> Vec<u32> {
418 use cobalt_client::traits::AsEventCode;
419 vec![
420 self.remote_role.as_event_code(),
421 self.feature.as_event_code(),
422 ]
423 }
424}
425
426#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
427pub struct AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
428 pub browsing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing,
429 pub searching: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching,
430 pub now_playing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying,
431}
432
433impl cobalt_client::traits::AsEventCodes for AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
434 fn as_event_codes(&self) -> Vec<u32> {
435 use cobalt_client::traits::AsEventCode;
436 vec![
437 self.browsing.as_event_code(),
438 self.searching.as_event_code(),
439 self.now_playing.as_event_code(),
440 ]
441 }
442}
443
444#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
445pub struct L2capOpenChannelMigratedEventCodes {
446 pub link_layer_type: L2capOpenChannelMigratedMetricDimensionLinkLayerType,
447 pub initiator: L2capOpenChannelMigratedMetricDimensionInitiator,
448}
449
450impl cobalt_client::traits::AsEventCodes for L2capOpenChannelMigratedEventCodes {
451 fn as_event_codes(&self) -> Vec<u32> {
452 use cobalt_client::traits::AsEventCode;
453 vec![
454 self.link_layer_type.as_event_code(),
455 self.initiator.as_event_code(),
456 ]
457 }
458}
459