Lines Matching refs:client
99 struct cras_observer_client *client; in output_volume_alert() local
103 DL_FOREACH(g_observer->clients, client) { in output_volume_alert()
104 if (client->ops.output_volume_changed) in output_volume_alert()
105 client->ops.output_volume_changed( in output_volume_alert()
106 client->context, in output_volume_alert()
113 struct cras_observer_client *client; in output_mute_alert() local
117 DL_FOREACH(g_observer->clients, client) { in output_mute_alert()
118 if (client->ops.output_mute_changed) in output_mute_alert()
119 client->ops.output_mute_changed( in output_mute_alert()
120 client->context, in output_mute_alert()
129 struct cras_observer_client *client; in capture_gain_alert() local
133 DL_FOREACH(g_observer->clients, client) { in capture_gain_alert()
134 if (client->ops.capture_gain_changed) in capture_gain_alert()
135 client->ops.capture_gain_changed( in capture_gain_alert()
136 client->context, in capture_gain_alert()
143 struct cras_observer_client *client; in capture_mute_alert() local
147 DL_FOREACH(g_observer->clients, client) { in capture_mute_alert()
148 if (client->ops.capture_mute_changed) in capture_mute_alert()
149 client->ops.capture_mute_changed( in capture_mute_alert()
150 client->context, in capture_mute_alert()
163 struct cras_observer_client *client; in nodes_alert() local
165 DL_FOREACH(g_observer->clients, client) { in nodes_alert()
166 if (client->ops.nodes_changed) in nodes_alert()
167 client->ops.nodes_changed(client->context); in nodes_alert()
173 struct cras_observer_client *client; in active_node_alert() local
177 DL_FOREACH(g_observer->clients, client) { in active_node_alert()
178 if (client->ops.active_node_changed) in active_node_alert()
179 client->ops.active_node_changed( in active_node_alert()
180 client->context, in active_node_alert()
188 struct cras_observer_client *client; in output_node_volume_alert() local
192 DL_FOREACH(g_observer->clients, client) { in output_node_volume_alert()
193 if (client->ops.output_node_volume_changed) in output_node_volume_alert()
194 client->ops.output_node_volume_changed( in output_node_volume_alert()
195 client->context, in output_node_volume_alert()
203 struct cras_observer_client *client; in node_left_right_swapped_alert() local
207 DL_FOREACH(g_observer->clients, client) { in node_left_right_swapped_alert()
208 if (client->ops.node_left_right_swapped_changed) in node_left_right_swapped_alert()
209 client->ops.node_left_right_swapped_changed( in node_left_right_swapped_alert()
210 client->context, in node_left_right_swapped_alert()
218 struct cras_observer_client *client; in input_node_gain_alert() local
222 DL_FOREACH(g_observer->clients, client) { in input_node_gain_alert()
223 if (client->ops.input_node_gain_changed) in input_node_gain_alert()
224 client->ops.input_node_gain_changed( in input_node_gain_alert()
225 client->context, in input_node_gain_alert()
233 struct cras_observer_client *client; in suspend_changed_alert() local
237 DL_FOREACH(g_observer->clients, client) { in suspend_changed_alert()
238 if (client->ops.suspend_changed) in suspend_changed_alert()
239 client->ops.suspend_changed( in suspend_changed_alert()
240 client->context, in suspend_changed_alert()
247 struct cras_observer_client *client; in num_active_streams_alert() local
251 DL_FOREACH(g_observer->clients, client) { in num_active_streams_alert()
252 if (client->ops.num_active_streams_changed) in num_active_streams_alert()
253 client->ops.num_active_streams_changed( in num_active_streams_alert()
254 client->context, in num_active_streams_alert()
262 struct cras_observer_client *client; in hotword_triggered_alert() local
266 DL_FOREACH(g_observer->clients, client) { in hotword_triggered_alert()
267 if (client->ops.hotword_triggered) in hotword_triggered_alert()
268 client->ops.hotword_triggered( in hotword_triggered_alert()
269 client->context, in hotword_triggered_alert()
277 struct cras_observer_client *client; in non_empty_audio_state_changed_alert() local
281 DL_FOREACH(g_observer->clients, client) { in non_empty_audio_state_changed_alert()
282 if (client->ops.non_empty_audio_state_changed) { in non_empty_audio_state_changed_alert()
283 client->ops.non_empty_audio_state_changed( in non_empty_audio_state_changed_alert()
284 client->context, in non_empty_audio_state_changed_alert()
392 void cras_observer_get_ops(const struct cras_observer_client *client, in cras_observer_get_ops() argument
397 if (!client) in cras_observer_get_ops()
400 memcpy(ops, &client->ops, sizeof(*ops)); in cras_observer_get_ops()
403 void cras_observer_set_ops(struct cras_observer_client *client, in cras_observer_set_ops() argument
406 if (!client) in cras_observer_set_ops()
409 memset(&client->ops, 0, sizeof(client->ops)); in cras_observer_set_ops()
411 memcpy(&client->ops, ops, sizeof(client->ops)); in cras_observer_set_ops()
418 struct cras_observer_client *client; in cras_observer_add() local
420 client = (struct cras_observer_client *)calloc(1, sizeof(*client)); in cras_observer_add()
421 if (!client) in cras_observer_add()
423 client->context = context; in cras_observer_add()
424 DL_APPEND(g_observer->clients, client); in cras_observer_add()
425 cras_observer_set_ops(client, ops); in cras_observer_add()
426 return client; in cras_observer_add()
429 void cras_observer_remove(struct cras_observer_client *client) in cras_observer_remove() argument
431 if (!client) in cras_observer_remove()
433 DL_DELETE(g_observer->clients, client); in cras_observer_remove()
434 free(client); in cras_observer_remove()