//----------------------------------------------------------------------------- android::status_t android_fx_getParam(const android::sp<android::AudioEffect>& pFx, int32_t param, uint32_t paramSizeMax, void *pValue, uint32_t valueSize) { android::status_t status; uint32_t buf32[(paramSizeMax - 1) / sizeof(uint32_t) + 1]; effect_param_t *p = (effect_param_t *)buf32; p->psize = sizeof(int32_t); *(int32_t *)p->data = param; p->vsize = valueSize; status = pFx->getParameter(p); if (android::NO_ERROR == status) { status = p->status; if (android::NO_ERROR == status) { memcpy(pValue, p->data + p->psize, p->vsize); } } return status; }
//----------------------------------------------------------------------------- android::status_t android_eq_getParam(const android::sp<android::AudioEffect>& pFx, int32_t param, int32_t param2, void *pValue) { android::status_t status; uint32_t buf32[(EQUALIZER_PARAM_SIZE_MAX - 1) / sizeof(uint32_t) + 1]; effect_param_t *p = (effect_param_t *)buf32; p->psize = eq_paramSize(param); *(int32_t *)p->data = param; if (p->psize == 2 * sizeof(int32_t)) { *((int32_t *)p->data + 1) = param2; } p->vsize = eq_valueSize(param); status = pFx->getParameter(p); if (android::NO_ERROR == status) { status = p->status; if (android::NO_ERROR == status) { memcpy(pValue, p->data + p->psize, p->vsize); } } return status; }