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}
180
181impl cobalt_client::traits::AsEventCode for BtHostLePeerDisconnectionEventMetricDimensionReason {
182 fn as_event_code(&self) -> u32 {
183 *self as u32
184 }
185}
186
187#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
189pub enum BtHostBredrPeerDisconnectionEventMetricDimensionReason {
190 Unknown = 0,
191 ApiRequest = 1,
192 InterrogationFailed = 2,
193 PairingFailed = 3,
194 AclLinkError = 4,
195 PeerDisconnection = 5,
196}
197
198impl cobalt_client::traits::AsEventCode for BtHostBredrPeerDisconnectionEventMetricDimensionReason {
199 fn as_event_code(&self) -> u32 {
200 *self as u32
201 }
202}
203
204#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
206pub enum BluetoothMetricDimensionCapability {
207 Unknown = 0,
208 Basic = 1,
209 DelayReport = 2,
210 Reporting = 3,
211 Recovery = 4,
212 ContentProtection = 5,
213 HeaderCompression = 6,
214 Multiplexing = 7,
215}
216
217impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCapability {
218 fn as_event_code(&self) -> u32 {
219 *self as u32
220 }
221}
222pub use BluetoothMetricDimensionCapability as A2dpRemotePeerCapabilitiesMetricDimensionCapability;
224
225#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
227pub enum AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
228 Unknown = 0,
229 Unsupported = 1,
230 Supported = 2,
231 SupportedWhenAddressed = 3,
232}
233
234impl cobalt_client::traits::AsEventCode for AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
235 fn as_event_code(&self) -> u32 {
236 *self as u32
237 }
238}
239
240pub use AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching;
242
243#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
245pub enum BluetoothMetricDimensionNowPlaying {
246 Unknown = 0,
247 Unsupported = 1,
248 Supported = 2,
249}
250
251impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionNowPlaying {
252 fn as_event_code(&self) -> u32 {
253 *self as u32
254 }
255}
256pub use BluetoothMetricDimensionNowPlaying as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying;
258
259#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
261pub enum BluetoothMetricDimensionCodec {
262 Unknown = 0,
263 Sbc = 1,
264 Mpeg12 = 2,
265 Aac = 3,
266 Atrac = 4,
267 VendorSpecific = 5,
268}
269
270impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCodec {
271 fn as_event_code(&self) -> u32 {
272 *self as u32
273 }
274}
275pub use BluetoothMetricDimensionCodec as A2dpCodecAvailabilityMigratedMetricDimensionCodec;
277
278pub use BluetoothMetricDimensionCodec as A2dpStreamDurationInSecondsMigratedMetricDimensionCodec;
280
281#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
283pub enum BluetoothMetricDimensionMethod {
284 Consent = 0,
285 PasskeyDisplay = 1,
286 PasskeyComparison = 2,
287 PasskeyEntry = 3,
288}
289
290impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMethod {
291 fn as_event_code(&self) -> u32 {
292 *self as u32
293 }
294}
295pub use BluetoothMetricDimensionMethod as PairingMethodMigratedMetricDimensionMethod;
297
298#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
300pub enum BluetoothMetricDimensionResult {
301 Success = 0,
302 ErrorUnknown = 1,
303 ErrorCanceled = 2,
304 ErrorInProgress = 3,
305 ErrorTimedOut = 4,
306 ErrorNotFound = 5,
307 ErrorNotSupported = 6,
308 ErrorBluetoothNotAvailable = 7,
309 ErrorBadState = 8,
310 ErrorInvalidArguments = 9,
311 ErrorAlready = 10,
312 ErrorProtocolError = 11,
313}
314
315impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionResult {
316 fn as_event_code(&self) -> u32 {
317 *self as u32
318 }
319}
320pub use BluetoothMetricDimensionResult as PairingResultMigratedMetricDimensionResult;
322
323#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
325pub enum BluetoothMetricDimensionLinkLayerType {
326 Acl = 0,
327 Le = 1,
328}
329
330impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionLinkLayerType {
331 fn as_event_code(&self) -> u32 {
332 *self as u32
333 }
334}
335pub use BluetoothMetricDimensionLinkLayerType as L2capOpenChannelMigratedMetricDimensionLinkLayerType;
337
338#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
340pub enum BluetoothMetricDimensionInitiator {
341 True = 0,
342 False = 1,
343}
344
345impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionInitiator {
346 fn as_event_code(&self) -> u32 {
347 *self as u32
348 }
349}
350pub use BluetoothMetricDimensionInitiator as L2capOpenChannelMigratedMetricDimensionInitiator;
352
353#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
354pub struct BtHostAdapterEventEventCodes {
355 pub mode: BtHostAdapterEventMetricDimensionMode,
356 pub event: BtHostAdapterEventMetricDimensionEvent,
357}
358
359impl cobalt_client::traits::AsEventCodes for BtHostAdapterEventEventCodes {
360 fn as_event_codes(&self) -> Vec<u32> {
361 use cobalt_client::traits::AsEventCode;
362 vec![
363 self.mode.as_event_code(),
364 self.event.as_event_code(),
365 ]
366 }
367}
368
369#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
370pub struct BtHostPeerBondingEventEventCodes {
371 pub mode: BtHostPeerBondingEventMetricDimensionMode,
372 pub event: BtHostPeerBondingEventMetricDimensionEvent,
373}
374
375impl cobalt_client::traits::AsEventCodes for BtHostPeerBondingEventEventCodes {
376 fn as_event_codes(&self) -> Vec<u32> {
377 use cobalt_client::traits::AsEventCode;
378 vec![
379 self.mode.as_event_code(),
380 self.event.as_event_code(),
381 ]
382 }
383}
384
385#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
386pub struct BtHostPeerConnectionEventEventCodes {
387 pub mode: BtHostPeerConnectionEventMetricDimensionMode,
388 pub event: BtHostPeerConnectionEventMetricDimensionEvent,
389 pub direction: BtHostPeerConnectionEventMetricDimensionDirection,
390}
391
392impl cobalt_client::traits::AsEventCodes for BtHostPeerConnectionEventEventCodes {
393 fn as_event_codes(&self) -> Vec<u32> {
394 use cobalt_client::traits::AsEventCode;
395 vec![
396 self.mode.as_event_code(),
397 self.event.as_event_code(),
398 self.direction.as_event_code(),
399 ]
400 }
401}
402
403#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
404pub struct AvrcpRemotePeerCapabilitiesEventCodes {
405 pub remote_role: AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole,
406 pub feature: AvrcpRemotePeerCapabilitiesMetricDimensionFeature,
407}
408
409impl cobalt_client::traits::AsEventCodes for AvrcpRemotePeerCapabilitiesEventCodes {
410 fn as_event_codes(&self) -> Vec<u32> {
411 use cobalt_client::traits::AsEventCode;
412 vec![
413 self.remote_role.as_event_code(),
414 self.feature.as_event_code(),
415 ]
416 }
417}
418
419#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
420pub struct AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
421 pub browsing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing,
422 pub searching: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching,
423 pub now_playing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying,
424}
425
426impl cobalt_client::traits::AsEventCodes for AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
427 fn as_event_codes(&self) -> Vec<u32> {
428 use cobalt_client::traits::AsEventCode;
429 vec![
430 self.browsing.as_event_code(),
431 self.searching.as_event_code(),
432 self.now_playing.as_event_code(),
433 ]
434 }
435}
436
437#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
438pub struct L2capOpenChannelMigratedEventCodes {
439 pub link_layer_type: L2capOpenChannelMigratedMetricDimensionLinkLayerType,
440 pub initiator: L2capOpenChannelMigratedMetricDimensionInitiator,
441}
442
443impl cobalt_client::traits::AsEventCodes for L2capOpenChannelMigratedEventCodes {
444 fn as_event_codes(&self) -> Vec<u32> {
445 use cobalt_client::traits::AsEventCode;
446 vec![
447 self.link_layer_type.as_event_code(),
448 self.initiator.as_event_code(),
449 ]
450 }
451}
452