Skip to main content

bt_metrics_registry/
bt_metrics_registry.rs

1// This file was generated by Cobalt's Registry parser based on the registry YAML
2// in the cobalt_config repository. Edit the YAML there to make changes.
3pub const CUSTOMER_NAME: &str = "fuchsia";
4pub const CUSTOMER_ID: u32 = 1;
5pub const PROJECT_NAME: &str = "bluetooth";
6pub const PROJECT_ID: u32 = 2322225253;
7
8// Exponential bucket constants for bt_host_adapter_event bt_host_adapter_event_histogram
9pub 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
14// Linear bucket constants for avdtp_delay_report_in_nanoseconds avdtp_average_delay_report_in_ns_histogram
15pub 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
19// Exponential bucket constants for a2dp_stream_duration_in_seconds_migrated a2dp_stream_duration_in_seconds_per_connection
20pub 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
25// Metric ID Constants
26// bt_host_adapter_event
27pub const BT_HOST_ADAPTER_EVENT_METRIC_ID: u32 = 9;
28// bt_host_peer_bonding_event
29pub const BT_HOST_PEER_BONDING_EVENT_METRIC_ID: u32 = 10;
30// bt_host_peer_connection_event
31pub const BT_HOST_PEER_CONNECTION_EVENT_METRIC_ID: u32 = 11;
32// avrcp_remote_peer_capabilities
33pub const AVRCP_REMOTE_PEER_CAPABILITIES_METRIC_ID: u32 = 15;
34// bt_host_le_peer_disconnection_event
35pub const BT_HOST_LE_PEER_DISCONNECTION_EVENT_METRIC_ID: u32 = 18;
36// bt_host_bredr_peer_disconnection_event
37pub const BT_HOST_BREDR_PEER_DISCONNECTION_EVENT_METRIC_ID: u32 = 19;
38// a2dp_remote_peer_capabilities
39pub const A2DP_REMOTE_PEER_CAPABILITIES_METRIC_ID: u32 = 20;
40// avdtp_delay_report_in_nanoseconds
41pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_METRIC_ID: u32 = 21;
42// avrcp_target_distinct_peer_player_capabilities
43pub const AVRCP_TARGET_DISTINCT_PEER_PLAYER_CAPABILITIES_METRIC_ID: u32 = 22;
44// a2dp_codec_availability_migrated
45pub const A2DP_CODEC_AVAILABILITY_MIGRATED_METRIC_ID: u32 = 103;
46// pairing_method_migrated
47pub const PAIRING_METHOD_MIGRATED_METRIC_ID: u32 = 104;
48// pairing_result_migrated
49pub const PAIRING_RESULT_MIGRATED_METRIC_ID: u32 = 105;
50// l2cap_open_channel_migrated
51pub const L2CAP_OPEN_CHANNEL_MIGRATED_METRIC_ID: u32 = 106;
52// a2dp_stream_duration_in_seconds_migrated
53pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_METRIC_ID: u32 = 108;
54// broadcom_core_dumps
55pub const BROADCOM_CORE_DUMPS_METRIC_ID: u32 = 109;
56
57// Enum for bluetooth (Metric Dimension mode)
58#[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}
69// Alias for bt_host_adapter_event (Metric Dimension mode) which has the same event codes
70pub use BluetoothMetricDimensionMode as BtHostAdapterEventMetricDimensionMode;
71
72// Alias for bt_host_peer_bonding_event (Metric Dimension mode) which has the same event codes
73pub use BluetoothMetricDimensionMode as BtHostPeerBondingEventMetricDimensionMode;
74
75// Alias for bt_host_peer_connection_event (Metric Dimension mode) which has the same event codes
76pub use BluetoothMetricDimensionMode as BtHostPeerConnectionEventMetricDimensionMode;
77
78// Enum for bt_host_adapter_event (Metric Dimension event)
79#[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// Enum for bt_host_peer_bonding_event (Metric Dimension event)
100#[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// Enum for bt_host_peer_connection_event (Metric Dimension event)
113#[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// Enum for bluetooth (Metric Dimension direction)
128#[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}
140// Alias for bt_host_peer_connection_event (Metric Dimension direction) which has the same event codes
141pub use BluetoothMetricDimensionDirection as BtHostPeerConnectionEventMetricDimensionDirection;
142
143// Enum for bluetooth (Metric Dimension remote_role)
144#[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}
155// Alias for avrcp_remote_peer_capabilities (Metric Dimension remote_role) which has the same event codes
156pub use BluetoothMetricDimensionRemoteRole as AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole;
157
158// Enum for bluetooth (Metric Dimension feature)
159#[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}
170// Alias for avrcp_remote_peer_capabilities (Metric Dimension feature) which has the same event codes
171pub use BluetoothMetricDimensionFeature as AvrcpRemotePeerCapabilitiesMetricDimensionFeature;
172
173// Enum for bt_host_le_peer_disconnection_event (Metric Dimension reason)
174#[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// Enum for bt_host_bredr_peer_disconnection_event (Metric Dimension reason)
191#[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// Enum for bluetooth (Metric Dimension capability)
208#[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}
225// Alias for a2dp_remote_peer_capabilities (Metric Dimension capability) which has the same event codes
226pub use BluetoothMetricDimensionCapability as A2dpRemotePeerCapabilitiesMetricDimensionCapability;
227
228// Enum for avrcp_target_distinct_peer_player_capabilities (Metric Dimension browsing)
229#[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
243// Alias for avrcp_target_distinct_peer_player_capabilities (Metric Dimension searching) which has the same event codes
244pub use AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching;
245
246// Enum for bluetooth (Metric Dimension now_playing)
247#[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}
259// Alias for avrcp_target_distinct_peer_player_capabilities (Metric Dimension now_playing) which has the same event codes
260pub use BluetoothMetricDimensionNowPlaying as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying;
261
262// Enum for bluetooth (Metric Dimension codec)
263#[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}
278// Alias for a2dp_codec_availability_migrated (Metric Dimension codec) which has the same event codes
279pub use BluetoothMetricDimensionCodec as A2dpCodecAvailabilityMigratedMetricDimensionCodec;
280
281// Alias for a2dp_stream_duration_in_seconds_migrated (Metric Dimension codec) which has the same event codes
282pub use BluetoothMetricDimensionCodec as A2dpStreamDurationInSecondsMigratedMetricDimensionCodec;
283
284// Enum for bluetooth (Metric Dimension method)
285#[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}
298// Alias for pairing_method_migrated (Metric Dimension method) which has the same event codes
299pub use BluetoothMetricDimensionMethod as PairingMethodMigratedMetricDimensionMethod;
300
301// Enum for bluetooth (Metric Dimension result)
302#[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}
327// Alias for pairing_result_migrated (Metric Dimension result) which has the same event codes
328pub use BluetoothMetricDimensionResult as PairingResultMigratedMetricDimensionResult;
329
330// Enum for bluetooth (Metric Dimension link_layer_type)
331#[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}
342// Alias for l2cap_open_channel_migrated (Metric Dimension link_layer_type) which has the same event codes
343pub use BluetoothMetricDimensionLinkLayerType as L2capOpenChannelMigratedMetricDimensionLinkLayerType;
344
345// Enum for bluetooth (Metric Dimension initiator)
346#[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}
357// Alias for l2cap_open_channel_migrated (Metric Dimension initiator) which has the same event codes
358pub 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