Loading visualizer/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ LOCAL_CFLAGS+= -O2 -fvisibility=hidden LOCAL_SHARED_LIBRARIES := \ libcutils \ liblog \ libdl \ libtinyalsa LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx Loading visualizer/offload_visualizer.c +26 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <string.h> #include <time.h> #include <sys/prctl.h> #include <dlfcn.h> #include <cutils/list.h> #include <cutils/log.h> Loading @@ -29,6 +30,15 @@ #include <tinyalsa/asoundlib.h> #include <audio_effects/effect_visualizer.h> #define LIB_ACDB_LOADER "libacdbloader.so" #define ACDB_DEV_TYPE_OUT 1 #define AFE_PROXY_ACDB_ID 45 static void* acdb_handle; typedef void (*acdb_send_audio_cal_t)(int, int); acdb_send_audio_cal_t acdb_send_audio_cal; enum { EFFECT_STATE_UNINITIALIZED, Loading Loading @@ -294,6 +304,9 @@ int configure_proxy_capture(struct mixer *mixer, int value) { const char *proxy_ctl_name = "AFE_PCM_RX Audio Mixer MultiMedia4"; struct mixer_ctl *ctl; if (value && acdb_send_audio_cal) acdb_send_audio_cal(AFE_PROXY_ACDB_ID, ACDB_DEV_TYPE_OUT); ctl = mixer_get_ctl_by_name(mixer, proxy_ctl_name); if (ctl == NULL) { ALOGW("%s: could not get %s ctl", __func__, proxy_ctl_name); Loading Loading @@ -609,6 +622,19 @@ int visualizer_init(effect_context_t *context) set_config(context, &context->config); if (acdb_handle == NULL) { acdb_handle = dlopen(LIB_ACDB_LOADER, RTLD_NOW); if (acdb_handle == NULL) { ALOGE("%s: DLOPEN failed for %s", __func__, LIB_ACDB_LOADER); } else { acdb_send_audio_cal = (acdb_send_audio_cal_t)dlsym(acdb_handle, "acdb_loader_send_audio_cal"); if (!acdb_send_audio_cal) ALOGE("%s: Could not find the symbol acdb_send_audio_cal from %s", __func__, LIB_ACDB_LOADER); } } return 0; } Loading Loading
visualizer/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ LOCAL_CFLAGS+= -O2 -fvisibility=hidden LOCAL_SHARED_LIBRARIES := \ libcutils \ liblog \ libdl \ libtinyalsa LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx Loading
visualizer/offload_visualizer.c +26 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <string.h> #include <time.h> #include <sys/prctl.h> #include <dlfcn.h> #include <cutils/list.h> #include <cutils/log.h> Loading @@ -29,6 +30,15 @@ #include <tinyalsa/asoundlib.h> #include <audio_effects/effect_visualizer.h> #define LIB_ACDB_LOADER "libacdbloader.so" #define ACDB_DEV_TYPE_OUT 1 #define AFE_PROXY_ACDB_ID 45 static void* acdb_handle; typedef void (*acdb_send_audio_cal_t)(int, int); acdb_send_audio_cal_t acdb_send_audio_cal; enum { EFFECT_STATE_UNINITIALIZED, Loading Loading @@ -294,6 +304,9 @@ int configure_proxy_capture(struct mixer *mixer, int value) { const char *proxy_ctl_name = "AFE_PCM_RX Audio Mixer MultiMedia4"; struct mixer_ctl *ctl; if (value && acdb_send_audio_cal) acdb_send_audio_cal(AFE_PROXY_ACDB_ID, ACDB_DEV_TYPE_OUT); ctl = mixer_get_ctl_by_name(mixer, proxy_ctl_name); if (ctl == NULL) { ALOGW("%s: could not get %s ctl", __func__, proxy_ctl_name); Loading Loading @@ -609,6 +622,19 @@ int visualizer_init(effect_context_t *context) set_config(context, &context->config); if (acdb_handle == NULL) { acdb_handle = dlopen(LIB_ACDB_LOADER, RTLD_NOW); if (acdb_handle == NULL) { ALOGE("%s: DLOPEN failed for %s", __func__, LIB_ACDB_LOADER); } else { acdb_send_audio_cal = (acdb_send_audio_cal_t)dlsym(acdb_handle, "acdb_loader_send_audio_cal"); if (!acdb_send_audio_cal) ALOGE("%s: Could not find the symbol acdb_send_audio_cal from %s", __func__, LIB_ACDB_LOADER); } } return 0; } Loading