audio: Add get param support and resolve compile errors

- Add get param support in AHAL for Direction of Arrival and Channel
  index from STHAL.
- Correct feature flag enable syntax and resolve compile errors.
- Remove codec loopback and add afe loopback mixer controls in mixer xml.
- Update sound_trigger_platform xml file.

CRs-Fixed: 2225936
Change-Id: I2e477013977a03a599d6bb4a52c66b897e967219
diff --git a/hal/audio_extn/soundtrigger.c b/hal/audio_extn/soundtrigger.c
index 041eb53..061616c 100644
--- a/hal/audio_extn/soundtrigger.c
+++ b/hal/audio_extn/soundtrigger.c
@@ -79,6 +79,7 @@
     AUDIO_EVENT_SVA_EXEC_MODE_STATUS,
     AUDIO_EVENT_CAPTURE_STREAM_INACTIVE,
     AUDIO_EVENT_CAPTURE_STREAM_ACTIVE,
+    AUDIO_EVENT_GET_PARAM
 } audio_event_type_t;
 
 typedef enum {
@@ -121,6 +122,12 @@
     int device;
 };
 
+struct sound_trigger_get_param_data {
+    char *param;
+    int sm_handle;
+    struct str_parms *reply;
+};
+
 struct audio_event_info {
     union {
         ssr_event_status_t status;
@@ -129,6 +136,7 @@
         struct audio_read_samples_info aud_info;
         char str_value[ST_EVENT_CONFIG_MAX_STR_VALUE];
         struct audio_hal_usecase usecase;
+        struct sound_trigger_get_param_data st_get_param_data;
     } u;
     struct sound_trigger_device_info device_info;
 };
@@ -165,6 +173,8 @@
 #define SOUND_TRIGGER_LIBRARY_PATH "/vendor/lib/hw/sound_trigger.primary.%s.so"
 #endif
 
+#define SVA_PARAM_DIRECTION_OF_ARRIVAL "st_direction_of_arrival"
+#define SVA_PARAM_CHANNEL_INDEX "st_channel_index"
 /*
  * Current proprietary API version used by AHAL. Queried by STHAL
  * for compatibility check with AHAL
@@ -597,7 +607,7 @@
                        struct str_parms *query, struct str_parms *reply)
 {
     audio_event_info_t event;
-    int ret;
+    int ret, val;
     char value[32];
 
     ret = str_parms_get_str(query, "SVA_EXEC_MODE_STATUS", value,
@@ -606,6 +616,22 @@
         st_dev->st_callback(AUDIO_EVENT_SVA_EXEC_MODE_STATUS, &event);
         str_parms_add_int(reply, "SVA_EXEC_MODE_STATUS", event.u.value);
     }
+
+    ret = str_parms_get_int(query, SVA_PARAM_DIRECTION_OF_ARRIVAL, &val);
+    if (ret >= 0) {
+        event.u.st_get_param_data.sm_handle = val;
+        event.u.st_get_param_data.param = SVA_PARAM_DIRECTION_OF_ARRIVAL;
+        event.u.st_get_param_data.reply = reply;
+        st_dev->st_callback(AUDIO_EVENT_GET_PARAM, &event);
+    }
+
+    ret = str_parms_get_int(query, SVA_PARAM_CHANNEL_INDEX, &val);
+    if (ret >= 0) {
+        event.u.st_get_param_data.sm_handle = val;
+        event.u.st_get_param_data.param = SVA_PARAM_CHANNEL_INDEX;
+        event.u.st_get_param_data.reply = reply;
+        st_dev->st_callback(AUDIO_EVENT_GET_PARAM, &event);
+    }
 }
 
 int audio_extn_sound_trigger_init(struct audio_device *adev)