Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c478f135 authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "Audio Effect API: process reverse stream function"

parents 96fc8269 325b8e83
Loading
Loading
Loading
Loading
+41 −2
Original line number Diff line number Diff line
@@ -130,10 +130,43 @@ int Effect_GetDescriptor(effect_handle_t self,
    return ret;
}

int Effect_ProcessReverse(effect_handle_t self, audio_buffer_t *inBuffer, audio_buffer_t *outBuffer)
{
    int ret = init();
    if (ret < 0) {
        return ret;
    }
    effect_entry_t *fx = (effect_entry_t *)self;
    pthread_mutex_lock(&gLibLock);
    if (fx->lib == NULL) {
        pthread_mutex_unlock(&gLibLock);
        return -EPIPE;
    }
    pthread_mutex_lock(&fx->lib->lock);
    pthread_mutex_unlock(&gLibLock);

    if ((*fx->subItfe)->process_reverse != NULL) {
        ret = (*fx->subItfe)->process_reverse(fx->subItfe, inBuffer, outBuffer);
    } else {
        ret = -ENOSYS;
    }
    pthread_mutex_unlock(&fx->lib->lock);
    return ret;
}


const struct effect_interface_s gInterface = {
        Effect_Process,
        Effect_Command,
        Effect_GetDescriptor
        Effect_GetDescriptor,
        NULL
};

const struct effect_interface_s gInterfaceWithReverse = {
        Effect_Process,
        Effect_Command,
        Effect_GetDescriptor,
        Effect_ProcessReverse
};

/////////////////////////////////////////////////
@@ -266,7 +299,13 @@ int EffectCreate(effect_uuid_t *uuid, int32_t sessionId, int32_t ioId, effect_ha
    // add entry to effect list
    fx = (effect_entry_t *)malloc(sizeof(effect_entry_t));
    fx->subItfe = itfe;
    if ((*itfe)->process_reverse != NULL) {
        fx->itfe = (struct effect_interface_s *)&gInterfaceWithReverse;
        LOGV("EffectCreate() gInterfaceWithReverse");
    }   else {
        fx->itfe = (struct effect_interface_s *)&gInterface;
        LOGV("EffectCreate() gInterface");
    }
    fx->lib = l;

    e = (list_elem_t *)malloc(sizeof(list_elem_t));
+2 −1
Original line number Diff line number Diff line
@@ -3231,7 +3231,8 @@ int Effect_getDescriptor(effect_handle_t self,
const struct effect_interface_s gLvmEffectInterface = {
    Effect_process,
    Effect_command,
    Effect_getDescriptor
    Effect_getDescriptor,
    NULL,
};    /* end gLvmEffectInterface */

audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = {
+2 −1
Original line number Diff line number Diff line
@@ -2134,7 +2134,8 @@ int Reverb_getDescriptor(effect_handle_t self,
const struct effect_interface_s gReverbInterface = {
    Reverb_process,
    Reverb_command,
    Reverb_getDescriptor
    Reverb_getDescriptor,
    NULL,
};    /* end gReverbInterface */

audio_effect_library_t AUDIO_EFFECT_LIBRARY_INFO_SYM = {
+2 −1
Original line number Diff line number Diff line
@@ -736,7 +736,8 @@ extern "C" int Equalizer_getDescriptor(effect_handle_t self,
const struct effect_interface_s gEqualizerInterface = {
        Equalizer_process,
        Equalizer_command,
        Equalizer_getDescriptor
        Equalizer_getDescriptor,
        NULL
};


+2 −1
Original line number Diff line number Diff line
@@ -27,7 +27,8 @@
const struct effect_interface_s gReverbInterface = {
        Reverb_Process,
        Reverb_Command,
        Reverb_GetDescriptor
        Reverb_GetDescriptor,
        NULL
};

// Google auxiliary environmental reverb UUID: 1f0ae2e0-4ef7-11df-bc09-0002a5d5c51b
Loading