audio: Updates to comply with standard libhardware_legacy audio hal
Revert back to original libhardware_legacy audio hal headers from AOSP.
This makes corresponding code changes to disable features to match
audio hal implementation with standard libhardware_legacy audio hal.
Change-Id: Ibf1e50d3fffc8280ba417a26172c0f04206474e3
diff --git a/libalsa-intf/alsa_ucm.c b/libalsa-intf/alsa_ucm.c
index e7c8388..b32cc58 100644
--- a/libalsa-intf/alsa_ucm.c
+++ b/libalsa-intf/alsa_ucm.c
@@ -26,8 +26,8 @@
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#define ALOG_TAG "alsa_ucm"
-#define ALOG_NDDEBUG 0
+#define LOG_TAG "alsa_ucm"
+#define LOG_NDDEBUG 0
#ifdef ANDROID
/* definitions for Android logging */
@@ -64,8 +64,6 @@
#if defined(QC_PROP)
#include "acdb-loader.h"
#else
- #define acdb_loader_init_ACDB() (-EPERM)
- #define acdb_loader_deallocate_ACDB() (-EPERM)
#define acdb_loader_send_voice_cal(rxacdb_id, txacdb_id) (-EPERM)
#define acdb_loader_send_audio_cal(acdb_id, capability) (-EPERM)
#define acdb_loader_send_anc_cal(acdb_id) (-EPERM)
@@ -625,7 +623,11 @@
if(rx_id == DEVICE_SPEAKER_RX_ACDB_ID &&
tx_id == DEVICE_HANDSET_TX_ACDB_ID) {
tx_id = DEVICE_SPEAKER_TX_ACDB_ID;
+ } else if (rx_id == DEVICE_SPEAKER_RX_ACDB_ID &&
+ tx_id == DEVICE_HANDSET_TX_FV5_ACDB_ID) {
+ tx_id = DEVICE_SPEAKER_TX_FV5_ACDB_ID;
}
+
if ((rx_id != uc_mgr->current_rx_device) ||
(tx_id != uc_mgr->current_tx_device)) {
uc_mgr->current_rx_device = rx_id;
@@ -1884,9 +1886,6 @@
uc_mgr_ptr->card_ctxt_ptr->mixer_handle =
mixer_open(uc_mgr_ptr->card_ctxt_ptr->control_device);
ALOGV("Mixer handle %p", uc_mgr_ptr->card_ctxt_ptr->mixer_handle);
- if ((acdb_loader_init_ACDB()) < 0) {
- ALOGE("Failed to initialize ACDB");
- }
*uc_mgr = uc_mgr_ptr;
}
ALOGV("snd_use_case_open(): returning instance %p", uc_mgr_ptr);
@@ -1924,7 +1923,6 @@
if (ret < 0)
ALOGE("Failed to reset ucm session");
snd_ucm_free_mixer_list(&uc_mgr);
- acdb_loader_deallocate_ACDB();
pthread_mutexattr_destroy(&uc_mgr->card_ctxt_ptr->card_lock_attr);
pthread_mutex_destroy(&uc_mgr->card_ctxt_ptr->card_lock);
if (uc_mgr->card_ctxt_ptr->mixer_handle) {
@@ -3515,8 +3513,9 @@
mindex++) {
free(list[case_index].ena_mixer_list[index].mulval[mindex]);
}
- if(list[case_index].ena_mixer_list[index].mulval)
- free(list[case_index].ena_mixer_list[index].mulval);
+ if(list[case_index].ena_mixer_list[index].mulval) {
+ free(list[case_index].ena_mixer_list[index].mulval);
+ }
}
}
for(index = 0; index < list[case_index].dis_mixer_count; index++) {
@@ -3526,6 +3525,16 @@
if(list[case_index].dis_mixer_list[index].string) {
free(list[case_index].dis_mixer_list[index].string);
}
+ if(list[case_index].dis_mixer_list[index].mulval) {
+ for(mindex = 0;
+ mindex < list[case_index].dis_mixer_list[index].value;
+ mindex++) {
+ free(list[case_index].dis_mixer_list[index].mulval[mindex]);
+ }
+ if(list[case_index].dis_mixer_list[index].mulval) {
+ free(list[case_index].dis_mixer_list[index].mulval);
+ }
+ }
}
if(list[case_index].case_name) {
free(list[case_index].case_name);
@@ -3542,6 +3551,9 @@
if(list[case_index].capture_dev_name) {
free(list[case_index].capture_dev_name);
}
+ if(list[case_index].effects_mixer_ctl) {
+ list[case_index].effects_mixer_ctl = NULL;
+ }
}
}
@@ -3552,45 +3564,11 @@
int index = 0, verb_index = 0;
pthread_mutex_lock(&(*uc_mgr)->card_ctxt_ptr->card_lock);
+ verb_list = (*uc_mgr)->card_ctxt_ptr->use_case_verb_list;
while(strncmp((*uc_mgr)->card_ctxt_ptr->verb_list[verb_index],
SND_UCM_END_OF_LIST, 3)) {
- verb_list = (*uc_mgr)->card_ctxt_ptr->use_case_verb_list;
ctrl_list = verb_list[verb_index].verb_ctrls;
free_list(ctrl_list, verb_index, verb_list[verb_index].verb_count);
- ctrl_list = verb_list[verb_index].device_ctrls;
- free_list(ctrl_list, verb_index, verb_list[verb_index].device_count);
- ctrl_list = verb_list[verb_index].mod_ctrls;
- free_list(ctrl_list, verb_index, verb_list[verb_index].mod_count);
- index = 0;
- while(1) {
- if (verb_list[verb_index].device_list[index]) {
- if (!strncmp(verb_list[verb_index].device_list[index],
- SND_UCM_END_OF_LIST, 3)) {
- free(verb_list[verb_index].device_list[index]);
- break;
- } else {
- free(verb_list[verb_index].device_list[index]);
- index++;
- }
- }
- }
- if (verb_list[verb_index].device_list)
- free(verb_list[verb_index].device_list);
- index = 0;
- while(1) {
- if (verb_list[verb_index].modifier_list[index]) {
- if (!strncmp(verb_list[verb_index].modifier_list[index],
- SND_UCM_END_OF_LIST, 3)) {
- free(verb_list[verb_index].modifier_list[index]);
- break;
- } else {
- free(verb_list[verb_index].modifier_list[index]);
- index++;
- }
- }
- }
- if (verb_list[verb_index].modifier_list)
- free(verb_list[verb_index].modifier_list);
if(verb_list[verb_index].use_case_name)
free(verb_list[verb_index].use_case_name);
if((*uc_mgr)->card_ctxt_ptr->verb_list[verb_index]) {
@@ -3598,6 +3576,41 @@
}
verb_index++;
}
+ verb_index -= 1;
+ ctrl_list = verb_list[verb_index].device_ctrls;
+ free_list(ctrl_list, verb_index, verb_list[verb_index].device_count);
+ ctrl_list = verb_list[verb_index].mod_ctrls;
+ free_list(ctrl_list, verb_index, verb_list[verb_index].mod_count);
+ index = 0;
+ while(1) {
+ if (verb_list[verb_index].device_list[index]) {
+ if (!strncmp(verb_list[verb_index].device_list[index],
+ SND_UCM_END_OF_LIST, 3)) {
+ free(verb_list[verb_index].device_list[index]);
+ break;
+ } else {
+ free(verb_list[verb_index].device_list[index]);
+ index++;
+ }
+ }
+ }
+ if (verb_list[verb_index].device_list)
+ free(verb_list[verb_index].device_list);
+ index = 0;
+ while(1) {
+ if (verb_list[verb_index].modifier_list[index]) {
+ if (!strncmp(verb_list[verb_index].modifier_list[index],
+ SND_UCM_END_OF_LIST, 3)) {
+ free(verb_list[verb_index].modifier_list[index]);
+ break;
+ } else {
+ free(verb_list[verb_index].modifier_list[index]);
+ index++;
+ }
+ }
+ }
+ if (verb_list[verb_index].modifier_list)
+ free(verb_list[verb_index].modifier_list);
if((*uc_mgr)->card_ctxt_ptr->use_case_verb_list)
free((*uc_mgr)->card_ctxt_ptr->use_case_verb_list);
if((*uc_mgr)->card_ctxt_ptr->verb_list)