hal: Add abstraction for soundtrigger session
Soundtrigger implementation between Tasha and Tavil codecs is
different. Add a session abstraction so the underlying layer
can interpret the session based on the codec being used.
Change-Id: I341e1c5c84a93988eee002743093beb2b7398fd0
diff --git a/hal/audio_extn/soundtrigger.c b/hal/audio_extn/soundtrigger.c
index 7e37efc..6142e86 100644
--- a/hal/audio_extn/soundtrigger.c
+++ b/hal/audio_extn/soundtrigger.c
@@ -98,9 +98,9 @@
status = -ENOMEM;
break;
}
- memcpy(&st_ses_info->st_ses, &config->st_ses, sizeof (config->st_ses));
- ALOGV("%s: add capture_handle %d pcm %p", __func__,
- st_ses_info->st_ses.capture_handle, st_ses_info->st_ses.pcm);
+ memcpy(&st_ses_info->st_ses, &config->st_ses, sizeof (struct sound_trigger_session_info));
+ ALOGV("%s: add capture_handle %d st session opaque ptr %p", __func__,
+ st_ses_info->st_ses.capture_handle, st_ses_info->st_ses.p_ses);
list_add_tail(&st_dev->st_ses_list, &st_ses_info->list);
break;
@@ -112,12 +112,12 @@
}
st_ses_info = get_sound_trigger_info(config->st_ses.capture_handle);
if (!st_ses_info) {
- ALOGE("%s: pcm %p not in the list!", __func__, config->st_ses.pcm);
+ ALOGE("%s: st session opaque ptr %p not in the list!", __func__, config->st_ses.p_ses);
status = -EINVAL;
break;
}
- ALOGV("%s: remove capture_handle %d pcm %p", __func__,
- st_ses_info->st_ses.capture_handle, st_ses_info->st_ses.pcm);
+ ALOGV("%s: remove capture_handle %d st session opaque ptr %p", __func__,
+ st_ses_info->st_ses.capture_handle, st_ses_info->st_ses.p_ses);
list_remove(&st_ses_info->list);
free(st_ses_info);
break;
@@ -181,7 +181,7 @@
pthread_mutex_unlock(&st_dev->lock);
if (st_ses_info) {
event.u.ses_info = st_ses_info->st_ses;
- ALOGV("%s: AUDIO_EVENT_STOP_LAB pcm %p", __func__, st_ses_info->st_ses.pcm);
+ ALOGV("%s: AUDIO_EVENT_STOP_LAB st sess %p", __func__, st_ses_info->st_ses.p_ses);
st_dev->st_callback(AUDIO_EVENT_STOP_LAB, &event);
in->is_st_session_active = false;
}
@@ -201,7 +201,6 @@
list_for_each(node, &st_dev->st_ses_list) {
st_ses_info = node_to_item(node, struct sound_trigger_info , list);
if (st_ses_info->st_ses.capture_handle == in->capture_handle) {
- in->pcm = st_ses_info->st_ses.pcm;
in->config = st_ses_info->st_ses.config;
in->channel_mask = audio_channel_in_mask_from_count(in->config.channels);
in->is_st_session = true;