Merge "config: modify DMIC configs for sdm660 qrd skus" into audio-userspace.lnx.2.2-dev
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index fcdcb04..8bdd095 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -24,7 +24,7 @@
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_SSR := true
AUDIO_FEATURE_ENABLED_DTS_EAGLE := false
-BOARD_USES_SRS_TRUEMEDIA := true
+BOARD_USES_SRS_TRUEMEDIA := false
DTS_CODEC_M_ := true
MM_AUDIO_ENABLED_SAFX := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 16f248c..3980d7d 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -22,7 +22,7 @@
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_SSR := true
AUDIO_FEATURE_ENABLED_DTS_EAGLE := false
-BOARD_USES_SRS_TRUEMEDIA := true
+BOARD_USES_SRS_TRUEMEDIA := false
DTS_CODEC_M_ := true
#AUDIO_FEATURE_ENABLED_MULTIPLE_TUNNEL := true
MM_AUDIO_ENABLED_SAFX := true
diff --git a/configs/msm8996/msm8996.mk b/configs/msm8996/msm8996.mk
index afc656f..0335f48 100644
--- a/configs/msm8996/msm8996.mk
+++ b/configs/msm8996/msm8996.mk
@@ -23,7 +23,7 @@
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_SSR := true
AUDIO_FEATURE_ENABLED_DTS_EAGLE := false
-BOARD_USES_SRS_TRUEMEDIA := true
+BOARD_USES_SRS_TRUEMEDIA := false
DTS_CODEC_M_ := true
MM_AUDIO_ENABLED_SAFX := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
diff --git a/configs/sdm660/audio_platform_info.xml b/configs/sdm660/audio_platform_info.xml
index 5e61540..a68d8c2 100644
--- a/configs/sdm660/audio_platform_info.xml
+++ b/configs/sdm660/audio_platform_info.xml
@@ -31,8 +31,8 @@
<interface_names>
<device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="SLIMBUS_0" codec_type="external"/>
<device name="AUDIO_DEVICE_IN_BACK_MIC" interface="SLIMBUS_0" codec_type="external"/>
- <device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="TERT_MI2S" codec_type="internal"/>
- <device name="AUDIO_DEVICE_IN_BACK_MIC" interface="TERT_MI2S" codec_type="internal"/>
+ <device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="INT3_MI2S" codec_type="internal"/>
+ <device name="AUDIO_DEVICE_IN_BACK_MIC" interface="INT3_MI2S" codec_type="internal"/>
</interface_names>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="13"/>
diff --git a/configs/sdm660/mixer_paths.xml b/configs/sdm660/mixer_paths.xml
index d591ed5..c0c788e 100644
--- a/configs/sdm660/mixer_paths.xml
+++ b/configs/sdm660/mixer_paths.xml
@@ -1761,6 +1761,9 @@
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RX2 MIX1 INP1" value="RX2" />
<ctl name="RDAC2 MUX" value="RX2" />
+ <ctl name="RX HPH Mode" value="HD2" />
+ <ctl name="COMP0 RX1" value="1" />
+ <ctl name="COMP0 RX2" value="1" />
<ctl name="HPHL" value="Switch" />
<ctl name="HPHR" value="Switch" />
</path>
diff --git a/configs/sdm660/mixer_paths_mtp.xml b/configs/sdm660/mixer_paths_mtp.xml
index 2921857..307e557 100644
--- a/configs/sdm660/mixer_paths_mtp.xml
+++ b/configs/sdm660/mixer_paths_mtp.xml
@@ -1763,6 +1763,9 @@
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RX2 MIX1 INP1" value="RX2" />
<ctl name="RDAC2 MUX" value="RX2" />
+ <ctl name="RX HPH Mode" value="HD2" />
+ <ctl name="COMP0 RX1" value="1" />
+ <ctl name="COMP0 RX2" value="1" />
<ctl name="HPHL" value="Switch" />
<ctl name="HPHR" value="Switch" />
</path>
diff --git a/configs/sdm660/sound_trigger_platform_info.xml b/configs/sdm660/sound_trigger_platform_info.xml
index 80d62d9..271f99d 100644
--- a/configs/sdm660/sound_trigger_platform_info.xml
+++ b/configs/sdm660/sound_trigger_platform_info.xml
@@ -86,10 +86,10 @@
</gcs_usecase>
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
- Extends flexibility to have different ids based on execution type.
- valid execution_type values: "WDSP" "ADSP" -->
+ Extends flexibility to have different ids based on execution mode.
+ valid execution_mode values: "WDSP" "ADSP" -->
<lsm_usecase>
- <param execution_type="ADSP" />
+ <param execution_mode="ADSP" />
<param load_sound_model_ids="0x00012C1C, 0x00012C14" />
<param unload_sound_model_ids="0x00012C1C, 0x00012C15" />
<param confidence_levels_ids="0x00012C1C, 0x00012C07" />
@@ -98,7 +98,7 @@
</lsm_usecase>
<lsm_usecase>
- <param execution_type="WDSP" />
+ <param execution_mode="WDSP" />
<param load_sound_model_ids="0x00012C0D, 0x00012C14" />
<param unload_sound_model_ids="0x00012C0D, 0x00012C15" />
<param confidence_levels_ids="0x00012C0D, 0x00012C07" />
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 3dc00fb..40632bc 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -79,6 +79,7 @@
typedef void (*clear_a2dpsuspend_flag_t)(void);
typedef void * (*audio_get_codec_config_t)(uint8_t *multicast_status,uint8_t *num_dev,
audio_format_t *codec_type);
+typedef int (*audio_check_a2dp_ready_t)(void);
enum A2DP_STATE {
A2DP_STATE_CONNECTED,
@@ -102,6 +103,7 @@
audio_handoff_triggered_t audio_handoff_triggered;
clear_a2dpsuspend_flag_t clear_a2dpsuspend_flag;
audio_get_codec_config_t audio_get_codec_config;
+ audio_check_a2dp_ready_t audio_check_a2dp_ready;
enum A2DP_STATE bt_state;
audio_format_t bt_encoder_format;
uint32_t enc_sampling_rate;
@@ -244,6 +246,8 @@
dlsym(a2dp.bt_lib_handle, "audio_stop_stream");
a2dp.audio_stream_close = (audio_stream_close_t)
dlsym(a2dp.bt_lib_handle, "audio_stream_close");
+ a2dp.audio_check_a2dp_ready = (audio_check_a2dp_ready_t)
+ dlsym(a2dp.bt_lib_handle,"audio_check_a2dp_ready");
}
}
@@ -279,27 +283,17 @@
ALOGE("a2dp handle is not identified, Ignoring close request");
return -ENOSYS;
}
- if ((a2dp.bt_state == A2DP_STATE_CONNECTED) &&
- (a2dp.bt_state == A2DP_STATE_STARTED) &&
- (a2dp.bt_state == A2DP_STATE_STOPPED)) {
+ if (a2dp.bt_state != A2DP_STATE_DISCONNECTED) {
ALOGD("calling BT stream close");
if(a2dp.audio_stream_close() == false)
ALOGE("failed close a2dp control path from BT library");
- a2dp.a2dp_started = false;
- a2dp.a2dp_total_active_session_request = 0;
- a2dp.a2dp_suspended = false;
- a2dp.bt_encoder_format = AUDIO_FORMAT_INVALID;
- a2dp.enc_sampling_rate = 48000;
- a2dp.bt_state = A2DP_STATE_DISCONNECTED;
- } else {
- ALOGD("close a2dp called in improper state");
- a2dp.a2dp_started = false;
- a2dp.a2dp_total_active_session_request = 0;
- a2dp.a2dp_suspended = false;
- a2dp.bt_encoder_format = AUDIO_FORMAT_INVALID;
- a2dp.enc_sampling_rate = 48000;
- a2dp.bt_state = A2DP_STATE_DISCONNECTED;
}
+ a2dp.a2dp_started = false;
+ a2dp.a2dp_total_active_session_request = 0;
+ a2dp.a2dp_suspended = false;
+ a2dp.bt_encoder_format = AUDIO_FORMAT_INVALID;
+ a2dp.enc_sampling_rate = 48000;
+ a2dp.bt_state = A2DP_STATE_DISCONNECTED;
return 0;
}
@@ -631,7 +625,6 @@
if (ret != 0 ) {
ALOGE("BT controller start failed");
a2dp.a2dp_started = false;
- ret = -ETIMEDOUT;
} else {
if(configure_a2dp_encoder_format() == true) {
a2dp.a2dp_started = true;
@@ -692,7 +685,7 @@
return -ENOSYS;
}
- if (a2dp.a2dp_started && (a2dp.a2dp_total_active_session_request > 0))
+ if (a2dp.a2dp_total_active_session_request > 0)
a2dp.a2dp_total_active_session_request--;
if ( a2dp.a2dp_started && !a2dp.a2dp_total_active_session_request) {
@@ -810,6 +803,17 @@
*bit_width = 16;
*sample_rate = a2dp.enc_sampling_rate;
}
+
+bool audio_extn_a2dp_is_ready()
+{
+ bool ret = false;
+
+ if ((a2dp.is_a2dp_offload_supported) &&
+ (a2dp.audio_check_a2dp_ready))
+ ret = a2dp.audio_check_a2dp_ready();
+ return ret;
+}
+
void audio_extn_a2dp_init (void *adev)
{
a2dp.adev = (struct audio_device*)adev;
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index c114d2d..93036af 100644
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -206,7 +206,7 @@
#define audio_extn_a2dp_set_handoff_mode(is_on) (0)
#define audio_extn_a2dp_get_apptype_params(sample_rate,bit_width) (0)
#define audio_extn_a2dp_get_encoder_latency() (0)
-
+#define audio_extn_a2dp_is_ready() (0)
#else
void audio_extn_a2dp_init(void *adev);
int audio_extn_a2dp_start_playback();
@@ -217,7 +217,7 @@
void audio_extn_a2dp_get_apptype_params(uint32_t *sample_rate,
uint32_t *bit_width);
uint32_t audio_extn_a2dp_get_encoder_latency();
-
+bool audio_extn_a2dp_is_ready();
#endif
#ifndef SSR_ENABLED
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 262fec5..9da81e6 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2185,6 +2185,19 @@
goto error_config;
}
+ if (out->devices & AUDIO_DEVICE_OUT_ALL_A2DP) {
+ if (!audio_extn_a2dp_is_ready()) {
+ if (out->devices & AUDIO_DEVICE_OUT_SPEAKER) {
+ //combo usecase just by pass a2dp
+ ALOGW("%s: A2DP profile is not ready, route it to speaker", __func__);
+ out->devices = AUDIO_DEVICE_OUT_SPEAKER;
+ } else {
+ ALOGE("%s: A2DP profile is not ready, return error", __func__);
+ ret = -EAGAIN;
+ goto error_config;
+ }
+ }
+ }
out->pcm_device_id = platform_get_pcm_device_id(out->usecase, PCM_PLAYBACK);
if (out->pcm_device_id < 0) {
ALOGE("%s: Invalid PCM device id(%d) for the usecase(%d)",
@@ -2647,17 +2660,27 @@
(val == AUDIO_DEVICE_NONE)) {
val = AUDIO_DEVICE_OUT_SPEAKER;
}
- /* To avoid a2dp to sco overlapping force route BT usecases
- * to speaker based on Phone state
+ /* To avoid a2dp to sco overlapping / BT device improper state
+ * check with BT lib about a2dp streaming support before routing
*/
- if ((((val & AUDIO_DEVICE_OUT_SPEAKER) &&
- (val & AUDIO_DEVICE_OUT_ALL_A2DP)) ||
- ((adev->snd_dev_ref_cnt[SND_DEVICE_OUT_BT_A2DP] == 0) &&
- (val & AUDIO_DEVICE_OUT_ALL_A2DP))) &&
- ((adev->mode == AUDIO_MODE_RINGTONE) ||
- (adev->mode == AUDIO_MODE_IN_CALL))) {
- ALOGD("Forcing a2dp routing to speaker for ring/call mode");
- val = AUDIO_DEVICE_OUT_SPEAKER;
+ if (val & AUDIO_DEVICE_OUT_ALL_A2DP) {
+ if (!audio_extn_a2dp_is_ready()) {
+ if (val & AUDIO_DEVICE_OUT_SPEAKER) {
+ //combo usecase just by pass a2dp
+ ALOGW("%s: A2DP profile is not ready,routing to speaker only", __func__);
+ val = AUDIO_DEVICE_OUT_SPEAKER;
+ } else {
+ ALOGE("%s: A2DP profile is not ready,ignoring routing request", __func__);
+ /* update device to a2dp and don't route as BT returned error
+ * However it is still possible a2dp routing called because
+ * of current active device disconnection (like wired headset)
+ */
+ out->devices = val;
+ pthread_mutex_unlock(&out->lock);
+ pthread_mutex_unlock(&adev->lock);
+ goto error;
+ }
+ }
}
/*
* select_devices() call below switches all the usecases on the same
diff --git a/qahw_api/inc/qahw_effect_audiosphere.h b/qahw_api/inc/qahw_effect_audiosphere.h
index 4947d68..2d294de 100644
--- a/qahw_api/inc/qahw_effect_audiosphere.h
+++ b/qahw_api/inc/qahw_effect_audiosphere.h
@@ -40,11 +40,11 @@
static const qahw_effect_uuid_t SL_IID_AUDIOSPHERE_ = { 0x2f03ade8, 0xd92b, 0x4172, 0x9eea,
{ 0x52, 0x0c, 0xde, 0xfa, 0x3c, 0x1d } };
-const qahw_effect_uuid_t * const SL_IID_AUDIOSPHERE = &SL_IID_AUDIOSPHERE_;
+static const qahw_effect_uuid_t * const SL_IID_AUDIOSPHERE = &SL_IID_AUDIOSPHERE_;
static const qahw_effect_uuid_t SL_IID_AUDIOSPHERE_UUID_ = { 0x184e62ab, 0x2d19, 0x4364, 0x9d1b,
{ 0xc0, 0xa4, 0x07, 0x33, 0x86, 0x6c } };
-const qahw_effect_uuid_t * const SL_IID_AUDIOSPHERE_UUID = &SL_IID_AUDIOSPHERE_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_AUDIOSPHERE_UUID = &SL_IID_AUDIOSPHERE_UUID_;
/* enumerated parameter settings for BassBoost effect */
typedef enum
diff --git a/qahw_api/inc/qahw_effect_bassboost.h b/qahw_api/inc/qahw_effect_bassboost.h
index 376c4a7..24b02e1 100644
--- a/qahw_api/inc/qahw_effect_bassboost.h
+++ b/qahw_api/inc/qahw_effect_bassboost.h
@@ -30,11 +30,11 @@
static const qahw_effect_uuid_t SL_IID_BASSBOOST_ = { 0x0634f220, 0xddd4, 0x11db, 0xa0fc,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_BASSBOOST = &SL_IID_BASSBOOST_;
+static const qahw_effect_uuid_t * const SL_IID_BASSBOOST = &SL_IID_BASSBOOST_;
static const qahw_effect_uuid_t SL_IID_BASSBOOST_UUID_ = { 0x2c4a8c24, 0x1581, 0x487f, 0x94f6,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_BASSBOOST_UUID = &SL_IID_BASSBOOST_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_BASSBOOST_UUID = &SL_IID_BASSBOOST_UUID_;
/* enumerated parameter settings for BassBoost effect */
typedef enum
diff --git a/qahw_api/inc/qahw_effect_environmentalreverb.h b/qahw_api/inc/qahw_effect_environmentalreverb.h
index 89d8404..a47eb28 100644
--- a/qahw_api/inc/qahw_effect_environmentalreverb.h
+++ b/qahw_api/inc/qahw_effect_environmentalreverb.h
@@ -30,15 +30,15 @@
static const qahw_effect_uuid_t SL_IID_ENVIRONMENTALREVERB_ = { 0xc2e5d5f0, 0x94bd, 0x4763, 0x9cac,
{ 0x4e, 0x23, 0x4d, 0x6, 0x83, 0x9e } };
-const qahw_effect_uuid_t * const SL_IID_ENVIRONMENTALREVERB = &SL_IID_ENVIRONMENTALREVERB_;
+static const qahw_effect_uuid_t * const SL_IID_ENVIRONMENTALREVERB = &SL_IID_ENVIRONMENTALREVERB_;
static const qahw_effect_uuid_t SL_IID_INS_ENVIRONMENTALREVERB_UUID_ = { 0xeb64ea04, 0x973b, 0x43d2, 0x8f5e,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_INS_ENVIRONMENTALREVERB_UUID = &SL_IID_INS_ENVIRONMENTALREVERB_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_INS_ENVIRONMENTALREVERB_UUID = &SL_IID_INS_ENVIRONMENTALREVERB_UUID_;
static const qahw_effect_uuid_t SL_IID_AUX_ENVIRONMENTALREVERB_UUID_ = { 0x79a18026, 0x18fd, 0x4185, 0x8233,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_AUX_ENVIRONMENTALREVERB_UUID = &SL_IID_AUX_ENVIRONMENTALREVERB_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_AUX_ENVIRONMENTALREVERB_UUID = &SL_IID_AUX_ENVIRONMENTALREVERB_UUID_;
/* enumerated parameter settings for environmental reverb effect */
typedef enum
diff --git a/qahw_api/inc/qahw_effect_equalizer.h b/qahw_api/inc/qahw_effect_equalizer.h
index b024d5e..4f9e8f3 100644
--- a/qahw_api/inc/qahw_effect_equalizer.h
+++ b/qahw_api/inc/qahw_effect_equalizer.h
@@ -30,11 +30,11 @@
static const qahw_effect_uuid_t SL_IID_EQUALIZER_ = { 0x0bed4300, 0xddd6, 0x11db, 0x8f34,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_EQUALIZER = &SL_IID_EQUALIZER_;
+static const qahw_effect_uuid_t * const SL_IID_EQUALIZER = &SL_IID_EQUALIZER_;
static const qahw_effect_uuid_t SL_IID_EQUALIZER_UUID_ = { 0xa0dac280, 0x401c, 0x11e3, 0x9379,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_EQUALIZER_UUID = &SL_IID_EQUALIZER_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_EQUALIZER_UUID = &SL_IID_EQUALIZER_UUID_;
/* enumerated parameters for Equalizer effect */
typedef enum
diff --git a/qahw_api/inc/qahw_effect_presetreverb.h b/qahw_api/inc/qahw_effect_presetreverb.h
index 0eca70d..1edd0a5 100644
--- a/qahw_api/inc/qahw_effect_presetreverb.h
+++ b/qahw_api/inc/qahw_effect_presetreverb.h
@@ -30,15 +30,15 @@
static const qahw_effect_uuid_t SL_IID_PRESETREVERB_ = { 0x47382d60, 0xddd8, 0x11db, 0xbf3a,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_PRESETREVERB = &SL_IID_PRESETREVERB_;
+static const qahw_effect_uuid_t * const SL_IID_PRESETREVERB = &SL_IID_PRESETREVERB_;
static const qahw_effect_uuid_t SL_IID_INS_PRESETREVERB_UUID_ = { 0xaa2bebf6, 0x47cf, 0x4613, 0x9bca,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_INS_PRESETREVERB_UUID = &SL_IID_INS_PRESETREVERB_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_INS_PRESETREVERB_UUID = &SL_IID_INS_PRESETREVERB_UUID_;
static const qahw_effect_uuid_t SL_IID_AUX_PRESETREVERB_UUID_ = { 0x6987be09, 0xb142, 0x4b41, 0x9056,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_AUX_PRESETREVERB_UUID = &SL_IID_AUX_PRESETREVERB_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_AUX_PRESETREVERB_UUID = &SL_IID_AUX_PRESETREVERB_UUID_;
/* enumerated parameter settings for preset reverb effect */
typedef enum
diff --git a/qahw_api/inc/qahw_effect_virtualizer.h b/qahw_api/inc/qahw_effect_virtualizer.h
index 138b850..73af232 100644
--- a/qahw_api/inc/qahw_effect_virtualizer.h
+++ b/qahw_api/inc/qahw_effect_virtualizer.h
@@ -30,11 +30,11 @@
static const qahw_effect_uuid_t SL_IID_VIRTUALIZER_ = { 0x37cc2c00, 0xdddd, 0x11db, 0x8577,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_VIRTUALIZER = &SL_IID_VIRTUALIZER_;
+static const qahw_effect_uuid_t * const SL_IID_VIRTUALIZER = &SL_IID_VIRTUALIZER_;
static const qahw_effect_uuid_t SL_IID_VIRTUALIZER_UUID_ = { 0x509a4498, 0x561a, 0x4bea, 0xb3b1,
{ 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_VIRTUALIZER_UUID = &SL_IID_VIRTUALIZER_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_VIRTUALIZER_UUID = &SL_IID_VIRTUALIZER_UUID_;
/* enumerated parameter settings for virtualizer effect */
/* to keep in sync with frameworks/base/media/java/android/media/audiofx/Virtualizer.java */
diff --git a/qahw_api/inc/qahw_effect_visualizer.h b/qahw_api/inc/qahw_effect_visualizer.h
index ce79bab..54ee787 100644
--- a/qahw_api/inc/qahw_effect_visualizer.h
+++ b/qahw_api/inc/qahw_effect_visualizer.h
@@ -30,11 +30,11 @@
static const qahw_effect_uuid_t SL_IID_VISUALIZATION_ =
{ 0xe46b26a0, 0xdddd, 0x11db, 0x8afd, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_VISUALIZATION = &SL_IID_VISUALIZATION_;
+static const qahw_effect_uuid_t * const SL_IID_VISUALIZATION = &SL_IID_VISUALIZATION_;
static const qahw_effect_uuid_t SL_IID_VISUALIZATION_UUID_ =
{ 0x7a8044a0, 0x1a71, 0x11e3, 0xa184, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
-const qahw_effect_uuid_t * const SL_IID_VISUALIZATION_UUID = &SL_IID_VISUALIZATION_UUID_;
+static const qahw_effect_uuid_t * const SL_IID_VISUALIZATION_UUID = &SL_IID_VISUALIZATION_UUID_;
#define VISUALIZER_CAPTURE_SIZE_MAX 1024 // maximum capture size in samples
#define VISUALIZER_CAPTURE_SIZE_MIN 128 // minimum capture size in samples
diff --git a/qahw_api/test/qahw_playback_test.c b/qahw_api/test/qahw_playback_test.c
index 4a7a382..b3e5291 100644
--- a/qahw_api/test/qahw_playback_test.c
+++ b/qahw_api/test/qahw_playback_test.c
@@ -398,6 +398,8 @@
stream_config *params = (stream_config*) stream_data;
const char* stream_name = "output_stream";
+ if (params->output_device & AUDIO_DEVICE_OUT_ALL_A2DP)
+ params->output_device = AUDIO_DEVICE_OUT_PROXY;
rc = qahw_open_output_stream(params->qahw_mod_handle,
params->handle,
params->output_device,
@@ -504,8 +506,7 @@
}
}
- if (params->output_device & AUDIO_DEVICE_OUT_ALL_A2DP) {
- params->output_device = AUDIO_DEVICE_OUT_PROXY;
+ if (params->output_device & AUDIO_DEVICE_OUT_PROXY) {
proxy_params.acp.qahw_mod_handle = params->qahw_mod_handle;
proxy_params.acp.handle = stream_handle;
stream_handle--;