/src/adhd/cras/server/cras_trace.c
Line | Count | Source |
1 | | // Copyright 2024 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 | | #include "cras/server/cras_trace.h" |
6 | | |
7 | | PERCETTO_CATEGORY_DEFINE(CRAS_PERCETTO_CATEGORIES); |
8 | | |
9 | | PERCETTO_TRACK_DEFINE(CRAS_SPK_HW_LEVEL, PERCETTO_TRACK_COUNTER); |
10 | | PERCETTO_TRACK_DEFINE(CRAS_FLOOP_OUT_HW_LEVEL, PERCETTO_TRACK_COUNTER); |
11 | | PERCETTO_TRACK_DEFINE(CRAS_INTERNAL_MIC_HW_LEVEL, PERCETTO_TRACK_COUNTER); |
12 | | PERCETTO_TRACK_DEFINE(CRAS_FLOOP_IN_HW_LEVEL, PERCETTO_TRACK_COUNTER); |
13 | | |
14 | | PERCETTO_TRACK_DEFINE(CRAS_SPK_WRITE_FRAMES, PERCETTO_TRACK_COUNTER); |
15 | | PERCETTO_TRACK_DEFINE(CRAS_FLOOP_OUT_WRITE_FRAMES, PERCETTO_TRACK_COUNTER); |
16 | | PERCETTO_TRACK_DEFINE(CRAS_FLOOP_IN_READ_FRAMES, PERCETTO_TRACK_COUNTER); |
17 | | PERCETTO_TRACK_DEFINE(CRAS_INTERNAL_MIC_READ_FRAMES, PERCETTO_TRACK_COUNTER); |
18 | | |
19 | 0 | int cras_trace_init() { |
20 | 0 | PERCETTO_INIT(PERCETTO_CLOCK_DONT_CARE); |
21 | 0 | PERCETTO_REGISTER_TRACK(CRAS_SPK_HW_LEVEL); |
22 | 0 | PERCETTO_REGISTER_TRACK(CRAS_FLOOP_OUT_HW_LEVEL); |
23 | 0 | PERCETTO_REGISTER_TRACK(CRAS_INTERNAL_MIC_HW_LEVEL); |
24 | 0 | PERCETTO_REGISTER_TRACK(CRAS_FLOOP_IN_HW_LEVEL); |
25 | |
|
26 | 0 | PERCETTO_REGISTER_TRACK(CRAS_SPK_WRITE_FRAMES); |
27 | 0 | PERCETTO_REGISTER_TRACK(CRAS_FLOOP_OUT_WRITE_FRAMES); |
28 | 0 | PERCETTO_REGISTER_TRACK(CRAS_FLOOP_IN_READ_FRAMES); |
29 | 0 | PERCETTO_REGISTER_TRACK(CRAS_INTERNAL_MIC_READ_FRAMES); |
30 | 0 | return 0; |
31 | 0 | } |
32 | | |
33 | 664 | void cras_trace_hw_level(enum CRAS_NODE_TYPE type, unsigned int hw_level) { |
34 | 664 | switch (type) { |
35 | 0 | case CRAS_NODE_TYPE_INTERNAL_SPEAKER: |
36 | 0 | TRACE_COUNTER(audio, CRAS_SPK_HW_LEVEL, hw_level); |
37 | 0 | break; |
38 | 476 | case CRAS_NODE_TYPE_FLOOP: |
39 | 476 | TRACE_COUNTER(audio, CRAS_FLOOP_IN_HW_LEVEL, hw_level); |
40 | 476 | break; |
41 | 0 | case CRAS_NODE_TYPE_FLOOP_INTERNAL: |
42 | 0 | TRACE_COUNTER(audio, CRAS_FLOOP_OUT_HW_LEVEL, hw_level); |
43 | 0 | break; |
44 | 0 | case CRAS_NODE_TYPE_MIC: |
45 | 0 | TRACE_COUNTER(audio, CRAS_INTERNAL_MIC_HW_LEVEL, hw_level); |
46 | 0 | break; |
47 | 188 | default: |
48 | 188 | break; |
49 | 664 | } |
50 | 664 | } |
51 | | |
52 | 348 | void cras_trace_frames(enum CRAS_NODE_TYPE type, unsigned int nframes) { |
53 | 348 | switch (type) { |
54 | 0 | case CRAS_NODE_TYPE_INTERNAL_SPEAKER: |
55 | 0 | TRACE_COUNTER(audio, CRAS_SPK_WRITE_FRAMES, nframes); |
56 | 0 | break; |
57 | 347 | case CRAS_NODE_TYPE_FLOOP: |
58 | 347 | TRACE_COUNTER(audio, CRAS_FLOOP_IN_READ_FRAMES, nframes); |
59 | 347 | break; |
60 | 0 | case CRAS_NODE_TYPE_MIC: |
61 | 0 | TRACE_COUNTER(audio, CRAS_INTERNAL_MIC_READ_FRAMES, nframes); |
62 | 0 | break; |
63 | 1 | case CRAS_NODE_TYPE_FLOOP_INTERNAL: |
64 | 1 | TRACE_COUNTER(audio, CRAS_FLOOP_OUT_WRITE_FRAMES, nframes); |
65 | 1 | break; |
66 | 0 | default: |
67 | 0 | break; |
68 | 348 | } |
69 | 348 | } |
70 | | |
71 | | void cras_trace_underrun(enum CRAS_NODE_TYPE type, |
72 | 0 | enum CRAS_NODE_POSITION position) { |
73 | 0 | char event[50]; |
74 | 0 | snprintf(event, 50, "%s_UNDERRUN", cras_node_type_to_str(type, position)); |
75 | 0 | TRACE_INSTANT(audio, event); |
76 | 0 | } |
77 | | |
78 | | void cras_trace_overrun(enum CRAS_NODE_TYPE type, |
79 | 6 | enum CRAS_NODE_POSITION position) { |
80 | 6 | char event[50]; |
81 | | snprintf(event, 50, "%s_UNDERRUN", cras_node_type_to_str(type, position)); |
82 | 6 | TRACE_INSTANT(audio, event); |
83 | 6 | } |