hal: notify input/output streams of snd card status upon request
Notify input and output stream of snd card status only if it's
requested. There's no need to notify other irrelevant events.
CRs-Fixed: 2842096
Change-Id: I35cc0e2bbf489268b8da5ff2173355ce36eaa037
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index f1ff4ef..3d98f06 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -8705,18 +8705,21 @@
/* notify adev and input/output streams on the snd card status */
adev_snd_mon_cb((void *)adev, parms);
- list_for_each(node, &adev->active_outputs_list) {
- streams_output_ctxt_t *out_ctxt = node_to_item(node,
- streams_output_ctxt_t,
- list);
- out_snd_mon_cb((void *)out_ctxt->output, parms);
- }
+ ret = str_parms_get_str(parms, "SND_CARD_STATUS", value, sizeof(value));
+ if (ret >= 0) {
+ list_for_each(node, &adev->active_outputs_list) {
+ streams_output_ctxt_t *out_ctxt = node_to_item(node,
+ streams_output_ctxt_t,
+ list);
+ out_snd_mon_cb((void *)out_ctxt->output, parms);
+ }
- list_for_each(node, &adev->active_inputs_list) {
- streams_input_ctxt_t *in_ctxt = node_to_item(node,
- streams_input_ctxt_t,
- list);
- in_snd_mon_cb((void *)in_ctxt->input, parms);
+ list_for_each(node, &adev->active_inputs_list) {
+ streams_input_ctxt_t *in_ctxt = node_to_item(node,
+ streams_input_ctxt_t,
+ list);
+ in_snd_mon_cb((void *)in_ctxt->input, parms);
+ }
}
pthread_mutex_lock(&adev->lock);