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;
54
55#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
57pub enum BluetoothMetricDimensionMode {
58 Le = 0,
59 BrEdr = 1,
60}
61
62impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMode {
63 fn as_event_code(&self) -> u32 {
64 *self as u32
65 }
66}
67pub use BluetoothMetricDimensionMode as BtHostAdapterEventMetricDimensionMode;
69
70pub use BluetoothMetricDimensionMode as BtHostPeerBondingEventMetricDimensionMode;
72
73pub use BluetoothMetricDimensionMode as BtHostPeerConnectionEventMetricDimensionMode;
75
76#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
78pub enum BtHostAdapterEventMetricDimensionEvent {
79 OpenL2capChannelRequest = 0,
80 OutgoingConnectionRequest = 1,
81 PairRequest = 2,
82 RequestDiscoverable = 3,
83 RequestDiscovery = 4,
84 SetConnectableTrue = 5,
85 SetConnectableFalse = 6,
86 StartAdvertising = 7,
87 StopAdvertising = 8,
88 StartDiscovery = 9,
89}
90
91impl cobalt_client::traits::AsEventCode for BtHostAdapterEventMetricDimensionEvent {
92 fn as_event_code(&self) -> u32 {
93 *self as u32
94 }
95}
96
97#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
99pub enum BtHostPeerBondingEventMetricDimensionEvent {
100 Success = 0,
101 Failure = 1,
102}
103
104impl cobalt_client::traits::AsEventCode for BtHostPeerBondingEventMetricDimensionEvent {
105 fn as_event_code(&self) -> u32 {
106 *self as u32
107 }
108}
109
110#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
112pub enum BtHostPeerConnectionEventMetricDimensionEvent {
113 Success = 0,
114 Failure = 1,
115 InterrogationComplete = 2,
116 PageTimeout = 3,
117}
118
119impl cobalt_client::traits::AsEventCode for BtHostPeerConnectionEventMetricDimensionEvent {
120 fn as_event_code(&self) -> u32 {
121 *self as u32
122 }
123}
124
125#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
127pub enum BluetoothMetricDimensionDirection {
128 Unspecified = 0,
129 Incoming = 1,
130 Outgoing = 2,
131}
132
133impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionDirection {
134 fn as_event_code(&self) -> u32 {
135 *self as u32
136 }
137}
138pub use BluetoothMetricDimensionDirection as BtHostPeerConnectionEventMetricDimensionDirection;
140
141#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
143pub enum BluetoothMetricDimensionRemoteRole {
144 Target = 0,
145 Controller = 1,
146}
147
148impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionRemoteRole {
149 fn as_event_code(&self) -> u32 {
150 *self as u32
151 }
152}
153pub use BluetoothMetricDimensionRemoteRole as AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole;
155
156#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
158pub enum BluetoothMetricDimensionFeature {
159 SupportsBrowsing = 0,
160 SupportsCoverArt = 1,
161}
162
163impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionFeature {
164 fn as_event_code(&self) -> u32 {
165 *self as u32
166 }
167}
168pub use BluetoothMetricDimensionFeature as AvrcpRemotePeerCapabilitiesMetricDimensionFeature;
170
171#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
173pub enum BtHostLePeerDisconnectionEventMetricDimensionReason {
174 Unknown = 0,
175 ExplictDisconnect = 1,
176 LinkError = 2,
177 ZeroRef = 3,
178 RemoteDisconnection = 4,
179 GattDiscoveryFailure = 5,
180}
181
182impl cobalt_client::traits::AsEventCode for BtHostLePeerDisconnectionEventMetricDimensionReason {
183 fn as_event_code(&self) -> u32 {
184 *self as u32
185 }
186}
187
188#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
190pub enum BtHostBredrPeerDisconnectionEventMetricDimensionReason {
191 Unknown = 0,
192 ApiRequest = 1,
193 InterrogationFailed = 2,
194 PairingFailed = 3,
195 AclLinkError = 4,
196 PeerDisconnection = 5,
197}
198
199impl cobalt_client::traits::AsEventCode for BtHostBredrPeerDisconnectionEventMetricDimensionReason {
200 fn as_event_code(&self) -> u32 {
201 *self as u32
202 }
203}
204
205#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
207pub enum BluetoothMetricDimensionCapability {
208 Unknown = 0,
209 Basic = 1,
210 DelayReport = 2,
211 Reporting = 3,
212 Recovery = 4,
213 ContentProtection = 5,
214 HeaderCompression = 6,
215 Multiplexing = 7,
216}
217
218impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCapability {
219 fn as_event_code(&self) -> u32 {
220 *self as u32
221 }
222}
223pub use BluetoothMetricDimensionCapability as A2dpRemotePeerCapabilitiesMetricDimensionCapability;
225
226#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
228pub enum AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
229 Unknown = 0,
230 Unsupported = 1,
231 Supported = 2,
232 SupportedWhenAddressed = 3,
233}
234
235impl cobalt_client::traits::AsEventCode for AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
236 fn as_event_code(&self) -> u32 {
237 *self as u32
238 }
239}
240
241pub use AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching;
243
244#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
246pub enum BluetoothMetricDimensionNowPlaying {
247 Unknown = 0,
248 Unsupported = 1,
249 Supported = 2,
250}
251
252impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionNowPlaying {
253 fn as_event_code(&self) -> u32 {
254 *self as u32
255 }
256}
257pub use BluetoothMetricDimensionNowPlaying as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying;
259
260#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
262pub enum BluetoothMetricDimensionCodec {
263 Unknown = 0,
264 Sbc = 1,
265 Mpeg12 = 2,
266 Aac = 3,
267 Atrac = 4,
268 VendorSpecific = 5,
269}
270
271impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCodec {
272 fn as_event_code(&self) -> u32 {
273 *self as u32
274 }
275}
276pub use BluetoothMetricDimensionCodec as A2dpCodecAvailabilityMigratedMetricDimensionCodec;
278
279pub use BluetoothMetricDimensionCodec as A2dpStreamDurationInSecondsMigratedMetricDimensionCodec;
281
282#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
284pub enum BluetoothMetricDimensionMethod {
285 Consent = 0,
286 PasskeyDisplay = 1,
287 PasskeyComparison = 2,
288 PasskeyEntry = 3,
289}
290
291impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMethod {
292 fn as_event_code(&self) -> u32 {
293 *self as u32
294 }
295}
296pub use BluetoothMetricDimensionMethod as PairingMethodMigratedMetricDimensionMethod;
298
299#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
301pub enum BluetoothMetricDimensionResult {
302 Success = 0,
303 ErrorUnknown = 1,
304 ErrorCanceled = 2,
305 ErrorInProgress = 3,
306 ErrorTimedOut = 4,
307 ErrorNotFound = 5,
308 ErrorNotSupported = 6,
309 ErrorBluetoothNotAvailable = 7,
310 ErrorBadState = 8,
311 ErrorInvalidArguments = 9,
312 ErrorAlready = 10,
313 ErrorProtocolError = 11,
314 ErrorCentralLmpTransactionCollision = 12,
315 ErrorCentralDifferentTransactionCollision = 13,
316 ErrorPeripheralLmpTransactionCollision = 14,
317 ErrorPeripheralDifferentTransactionCollision = 15,
318}
319
320impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionResult {
321 fn as_event_code(&self) -> u32 {
322 *self as u32
323 }
324}
325pub use BluetoothMetricDimensionResult as PairingResultMigratedMetricDimensionResult;
327
328#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
330pub enum BluetoothMetricDimensionLinkLayerType {
331 Acl = 0,
332 Le = 1,
333}
334
335impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionLinkLayerType {
336 fn as_event_code(&self) -> u32 {
337 *self as u32
338 }
339}
340pub use BluetoothMetricDimensionLinkLayerType as L2capOpenChannelMigratedMetricDimensionLinkLayerType;
342
343#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
345pub enum BluetoothMetricDimensionInitiator {
346 True = 0,
347 False = 1,
348}
349
350impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionInitiator {
351 fn as_event_code(&self) -> u32 {
352 *self as u32
353 }
354}
355pub use BluetoothMetricDimensionInitiator as L2capOpenChannelMigratedMetricDimensionInitiator;
357
358#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
359pub struct BtHostAdapterEventEventCodes {
360 pub mode: BtHostAdapterEventMetricDimensionMode,
361 pub event: BtHostAdapterEventMetricDimensionEvent,
362}
363
364impl cobalt_client::traits::AsEventCodes for BtHostAdapterEventEventCodes {
365 fn as_event_codes(&self) -> Vec<u32> {
366 use cobalt_client::traits::AsEventCode;
367 vec![
368 self.mode.as_event_code(),
369 self.event.as_event_code(),
370 ]
371 }
372}
373
374#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
375pub struct BtHostPeerBondingEventEventCodes {
376 pub mode: BtHostPeerBondingEventMetricDimensionMode,
377 pub event: BtHostPeerBondingEventMetricDimensionEvent,
378}
379
380impl cobalt_client::traits::AsEventCodes for BtHostPeerBondingEventEventCodes {
381 fn as_event_codes(&self) -> Vec<u32> {
382 use cobalt_client::traits::AsEventCode;
383 vec![
384 self.mode.as_event_code(),
385 self.event.as_event_code(),
386 ]
387 }
388}
389
390#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
391pub struct BtHostPeerConnectionEventEventCodes {
392 pub mode: BtHostPeerConnectionEventMetricDimensionMode,
393 pub event: BtHostPeerConnectionEventMetricDimensionEvent,
394 pub direction: BtHostPeerConnectionEventMetricDimensionDirection,
395}
396
397impl cobalt_client::traits::AsEventCodes for BtHostPeerConnectionEventEventCodes {
398 fn as_event_codes(&self) -> Vec<u32> {
399 use cobalt_client::traits::AsEventCode;
400 vec![
401 self.mode.as_event_code(),
402 self.event.as_event_code(),
403 self.direction.as_event_code(),
404 ]
405 }
406}
407
408#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
409pub struct AvrcpRemotePeerCapabilitiesEventCodes {
410 pub remote_role: AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole,
411 pub feature: AvrcpRemotePeerCapabilitiesMetricDimensionFeature,
412}
413
414impl cobalt_client::traits::AsEventCodes for AvrcpRemotePeerCapabilitiesEventCodes {
415 fn as_event_codes(&self) -> Vec<u32> {
416 use cobalt_client::traits::AsEventCode;
417 vec![
418 self.remote_role.as_event_code(),
419 self.feature.as_event_code(),
420 ]
421 }
422}
423
424#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
425pub struct AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
426 pub browsing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing,
427 pub searching: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching,
428 pub now_playing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying,
429}
430
431impl cobalt_client::traits::AsEventCodes for AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
432 fn as_event_codes(&self) -> Vec<u32> {
433 use cobalt_client::traits::AsEventCode;
434 vec![
435 self.browsing.as_event_code(),
436 self.searching.as_event_code(),
437 self.now_playing.as_event_code(),
438 ]
439 }
440}
441
442#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
443pub struct L2capOpenChannelMigratedEventCodes {
444 pub link_layer_type: L2capOpenChannelMigratedMetricDimensionLinkLayerType,
445 pub initiator: L2capOpenChannelMigratedMetricDimensionInitiator,
446}
447
448impl cobalt_client::traits::AsEventCodes for L2capOpenChannelMigratedEventCodes {
449 fn as_event_codes(&self) -> Vec<u32> {
450 use cobalt_client::traits::AsEventCode;
451 vec![
452 self.link_layer_type.as_event_code(),
453 self.initiator.as_event_code(),
454 ]
455 }
456}
457