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

Commit ca57d1cc authored by Eric Laurent's avatar Eric Laurent
Browse files

Audio Effects: added methods to effects java classes to store and load current effect settings in

a single call.

Addional changes:
- Fixed simulator build
- Use effect interface UUIDs from OpenSL ES includes when available
- Added cleanspec rules to remove now obsolete test effect libraries
- Fixed bug in AudioEffect JNI setParameter function.

Change-Id: Ic25ddb135e2cec5a68c181d727321f5ac7a1ab6b
parent 2b989e1f
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -54,7 +54,19 @@ $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/FrameworkTest_in
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/android.policy*)
$(call add-clean-step, rm -rf $(TARGET_OUT_JAVA_LIBRARIES)/android.policy.jar)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)

$(call add-clean-step, rm -f $(PRODUCT_OUT)/obj/lib/libequalizer.so)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/obj/lib/libequalizertest.so)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/obj/lib/libreverb.so)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/obj/lib/libreverbtest.so)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/symbols/system/lib/libequalizer.so)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/symbols/system/lib/libequalizertest.so)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/symbols/system/lib/libreverb.so)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/symbols/system/lib/libreverbtest.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libequalizer_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libequalizertest_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libreverb_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libreverbtest_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/soundfx/)

# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+2 −1
Original line number Diff line number Diff line
@@ -23,9 +23,10 @@
extern "C" {
#endif

// TODO: include OpenSLES_IID.h instead
#ifndef OPENSL_ES_H_
static const effect_uuid_t SL_IID_BASSBOOST_ = { 0x0634f220, 0xddd4, 0x11db, 0xa0fc, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
const effect_uuid_t * const SL_IID_BASSBOOST = &SL_IID_BASSBOOST_;
#endif //OPENSL_ES_H_

/* enumerated parameter settings for BassBoost effect */
typedef enum
+6 −6
Original line number Diff line number Diff line
@@ -23,9 +23,10 @@
extern "C" {
#endif

// TODO: include OpenSLES_IID.h instead
#ifndef OPENSL_ES_H_
static const effect_uuid_t SL_IID_ENVIRONMENTALREVERB_ = { 0xc2e5d5f0, 0x94bd, 0x4763, 0x9cac, { 0x4e, 0x23, 0x4d, 0x6, 0x83, 0x9e } };
const effect_uuid_t * const SL_IID_ENVIRONMENTALREVERB = &SL_IID_ENVIRONMENTALREVERB_;
#endif //OPENSL_ES_H_

/* enumerated parameter settings for environmental reverb effect */
typedef enum
@@ -45,20 +46,19 @@ typedef enum
    REVERB_PARAM_BYPASS
} t_env_reverb_params;

//t_reverb_properties is equal to SLEnvironmentalReverbSettings defined in OpenSL ES specification.
typedef struct s_reverb_properties {
//t_reverb_settings is equal to SLEnvironmentalReverbSettings defined in OpenSL ES specification.
typedef struct s_reverb_settings {
    int16_t roomLevel;
    int16_t roomHFLevel;
    int32_t decayTime;
    int16_t decayHFRatio;
    int16_t reflectionsLevel;
    int32_t reflectionsDelay;
    int32_t reverbDelay;
    int16_t reverbLevel;
    int32_t reverbDelay;
    int16_t diffusion;
    int16_t density;
    int16_t padding;
} t_reverb_properties;
} __attribute__((packed)) t_reverb_settings;


#if __cplusplus
+12 −3
Original line number Diff line number Diff line
@@ -19,8 +19,10 @@

#include <media/EffectApi.h>

// for the definition of SL_IID_EQUALIZER
#include "OpenSLES.h"
#ifndef OPENSL_ES_H_
static const effect_uuid_t SL_IID_EQUALIZER_ = { 0x0bed4300, 0xddd6, 0x11db, 0x8f34, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
const effect_uuid_t * const SL_IID_EQUALIZER = &SL_IID_EQUALIZER_;
#endif //OPENSL_ES_H_

#if __cplusplus
extern "C" {
@@ -37,9 +39,16 @@ typedef enum
    EQ_PARAM_GET_BAND,              // Gets the band that has the most effect on the given frequency.
    EQ_PARAM_CUR_PRESET,            // Gets/Sets the current preset.
    EQ_PARAM_GET_NUM_OF_PRESETS,    // Gets the total number of presets the equalizer supports.
    EQ_PARAM_GET_PRESET_NAME        // Gets the preset name based on the index.
    EQ_PARAM_GET_PRESET_NAME,       // Gets the preset name based on the index.
    EQ_PARAM_PROPERTIES             // Gets/Sets all parameters at a time.
} t_equalizer_params;

//t_equalizer_settings groups all current equalizer setting for backup and restore.
typedef struct s_equalizer_settings {
    uint16_t curPreset;
    uint16_t numBands;
    uint16_t bandLevels[];
} t_equalizer_settings;

#if __cplusplus
}  // extern "C"
+2 −2
Original line number Diff line number Diff line
@@ -23,10 +23,10 @@
extern "C" {
#endif

// TODO: include OpenSLES_IID.h instead

#ifndef OPENSL_ES_H_
static const effect_uuid_t SL_IID_PRESETREVERB_ = { 0x47382d60, 0xddd8, 0x11db, 0xbf3a, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } };
const effect_uuid_t * const SL_IID_PRESETREVERB = &SL_IID_PRESETREVERB_;
#endif //OPENSL_ES_H_

/* enumerated parameter settings for preset reverb effect */
typedef enum
Loading