int virtualizer_set_device(effect_context_t *context, uint32_t device) { virtualizer_context_t *virt_ctxt = (virtualizer_context_t *)context; ALOGV("%s: ctxt %p, device: 0x%x", __func__, virt_ctxt, device); virt_ctxt->device = device; if((device == AUDIO_DEVICE_OUT_SPEAKER) || (device == AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT) || (device == AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER) || #ifdef AFE_PROXY_ENABLED (device == AUDIO_DEVICE_OUT_PROXY) || #endif (device == AUDIO_DEVICE_OUT_AUX_DIGITAL) || (device == AUDIO_DEVICE_OUT_USB_ACCESSORY) || (device == AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET)) { if (!virt_ctxt->temp_disabled) { if (effect_is_active(&virt_ctxt->common)) { offload_virtualizer_set_enable_flag(&(virt_ctxt->offload_virt), false); if (virt_ctxt->ctl) offload_virtualizer_send_params(virt_ctxt->ctl, virt_ctxt->offload_virt, OFFLOAD_SEND_VIRTUALIZER_ENABLE_FLAG); } virt_ctxt->temp_disabled = true; ALOGI("%s: ctxt %p, disabled based on device", __func__, virt_ctxt); } } else { if (virt_ctxt->temp_disabled) { if (effect_is_active(&virt_ctxt->common)) { offload_virtualizer_set_enable_flag(&(virt_ctxt->offload_virt), true); if (virt_ctxt->ctl) offload_virtualizer_send_params(virt_ctxt->ctl, virt_ctxt->offload_virt, OFFLOAD_SEND_VIRTUALIZER_ENABLE_FLAG); } virt_ctxt->temp_disabled = false; } } offload_virtualizer_set_device(&(virt_ctxt->offload_virt), device); return 0; }
int virtualizer_disable(effect_context_t *context) { virtualizer_context_t *virt_ctxt = (virtualizer_context_t *)context; ALOGV("%s", __func__); if (offload_virtualizer_get_enable_flag(&(virt_ctxt->offload_virt))) { offload_virtualizer_set_enable_flag(&(virt_ctxt->offload_virt), false); if (virt_ctxt->ctl) offload_virtualizer_send_params(virt_ctxt->ctl, &virt_ctxt->offload_virt, OFFLOAD_SEND_VIRTUALIZER_ENABLE_FLAG); } return 0; }
int virtualizer_enable(effect_context_t *context) { virtualizer_context_t *virt_ctxt = (virtualizer_context_t *)context; ALOGV("%s", __func__); if (!offload_virtualizer_get_enable_flag(&(virt_ctxt->offload_virt)) && !(virt_ctxt->temp_disabled)) { offload_virtualizer_set_enable_flag(&(virt_ctxt->offload_virt), true); if (virt_ctxt->ctl && virt_ctxt->strength) offload_virtualizer_send_params(virt_ctxt->ctl, &virt_ctxt->offload_virt, OFFLOAD_SEND_VIRTUALIZER_ENABLE_FLAG | OFFLOAD_SEND_BASSBOOST_STRENGTH); } return 0; }