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

Commit 602c3fa0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Update Visualizer implementation after changes in AudioEffect" into...

Merge "Update Visualizer implementation after changes in AudioEffect" into rvc-dev-plus-aosp am: 3de6e81e am: 72479c77

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12298175

Change-Id: I899d7cbf820eb9db87246b01cdcf3d4260e69b16
parents 3371e649 72479c77
Loading
Loading
Loading
Loading
+19 −14
Original line number Diff line number Diff line
@@ -34,21 +34,9 @@ namespace android {

// ---------------------------------------------------------------------------

Visualizer::Visualizer (const String16& opPackageName,
         int32_t priority,
         effect_callback_t cbf,
         void* user,
         audio_session_t sessionId)
    :   AudioEffect(SL_IID_VISUALIZATION, opPackageName, NULL, priority, cbf, user, sessionId),
        mCaptureRate(CAPTURE_RATE_DEF),
        mCaptureSize(CAPTURE_SIZE_DEF),
        mSampleRate(44100000),
        mScalingMode(VISUALIZER_SCALING_MODE_NORMALIZED),
        mMeasurementMode(MEASUREMENT_MODE_NONE),
        mCaptureCallBack(NULL),
        mCaptureCbkUser(NULL)
Visualizer::Visualizer (const String16& opPackageName)
        :   AudioEffect(opPackageName)
{
    initCaptureSize();
}

Visualizer::~Visualizer()
@@ -58,6 +46,23 @@ Visualizer::~Visualizer()
    setCaptureCallBack(NULL, NULL, 0, 0);
}

status_t Visualizer::set(int32_t priority,
                         effect_callback_t cbf,
                         void* user,
                         audio_session_t sessionId,
                         audio_io_handle_t io,
                         const AudioDeviceTypeAddr& device,
                         bool probe)
{
    status_t status = AudioEffect::set(
            SL_IID_VISUALIZATION, nullptr, priority, cbf, user, sessionId, io, device, probe);
    if (status == NO_ERROR || status == ALREADY_EXISTS) {
        initCaptureSize();
    }
    return status;
}


void Visualizer::release()
{
    ALOGV("Visualizer::release()");
+21 −13
Original line number Diff line number Diff line
@@ -65,14 +65,22 @@ public:
    /* Constructor.
     * See AudioEffect constructor for details on parameters.
     */
                        Visualizer(const String16& opPackageName,
                                   int32_t priority = 0,
                                   effect_callback_t cbf = NULL,
                                   void* user = NULL,
                                   audio_session_t sessionId = AUDIO_SESSION_OUTPUT_MIX);
                        explicit Visualizer(const String16& opPackageName);

                        ~Visualizer();

    /**
     * Initialize an uninitialized Visualizer.
     * See AudioEffect 'set' function for details on parameters.
     */
    status_t    set(int32_t priority = 0,
                    effect_callback_t cbf = NULL,
                    void* user = NULL,
                    audio_session_t sessionId = AUDIO_SESSION_OUTPUT_MIX,
                    audio_io_handle_t io = AUDIO_IO_HANDLE_NONE,
                    const AudioDeviceTypeAddr& device = {},
                    bool probe = false);

    // Declared 'final' because we call this in ~Visualizer().
    status_t    setEnabled(bool enabled) final;

@@ -163,15 +171,15 @@ private:
    uint32_t initCaptureSize();

    Mutex mCaptureLock;
    uint32_t mCaptureRate;
    uint32_t mCaptureSize;
    uint32_t mSampleRate;
    uint32_t mScalingMode;
    uint32_t mMeasurementMode;
    capture_cbk_t mCaptureCallBack;
    void *mCaptureCbkUser;
    uint32_t mCaptureRate = CAPTURE_RATE_DEF;
    uint32_t mCaptureSize = CAPTURE_SIZE_DEF;
    uint32_t mSampleRate = 44100000;
    uint32_t mScalingMode = VISUALIZER_SCALING_MODE_NORMALIZED;
    uint32_t mMeasurementMode = MEASUREMENT_MODE_NONE;
    capture_cbk_t mCaptureCallBack = nullptr;
    void *mCaptureCbkUser = nullptr;
    sp<CaptureThread> mCaptureThread;
    uint32_t mCaptureFlags;
    uint32_t mCaptureFlags = 0;
};


+10 −11
Original line number Diff line number Diff line
@@ -337,8 +337,13 @@ android_media_AudioEffect_native_setup(JNIEnv *env, jobject thiz, jobject weak_t
    }

    // create the native AudioEffect object
    lpAudioEffect = new AudioEffect(typeStr,
                                    String16(opPackageNameStr.c_str()),
    lpAudioEffect = new AudioEffect(String16(opPackageNameStr.c_str()));
    if (lpAudioEffect == 0) {
        ALOGE("Error creating AudioEffect");
        goto setup_failure;
    }

    lpAudioEffect->set(typeStr,
                       uuidStr,
                       priority,
                       effectCallback,
@@ -347,12 +352,6 @@ android_media_AudioEffect_native_setup(JNIEnv *env, jobject thiz, jobject weak_t
                       AUDIO_IO_HANDLE_NONE,
                       device,
                       probe);
    if (lpAudioEffect == 0) {
        ALOGE("Error creating AudioEffect");
        goto setup_failure;
    }


    lStatus = AudioEffectJni::translateNativeErrorToJava(lpAudioEffect->initCheck());
    if (lStatus != AUDIOEFFECT_SUCCESS && lStatus != AUDIOEFFECT_ERROR_ALREADY_EXISTS) {
        ALOGE("AudioEffect initCheck failed %d", lStatus);
+5 −5
Original line number Diff line number Diff line
@@ -382,15 +382,15 @@ android_media_visualizer_native_setup(JNIEnv *env, jobject thiz, jobject weak_th
    }

    // create the native Visualizer object
    lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()),
                                  0,
                                  android_media_visualizer_effect_callback,
                                  lpJniStorage,
                                  (audio_session_t) sessionId);
    lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()));
    if (lpVisualizer == 0) {
        ALOGE("Error creating Visualizer");
        goto setup_failure;
    }
    lpVisualizer->set(0,
                      android_media_visualizer_effect_callback,
                      lpJniStorage,
                      (audio_session_t) sessionId);

    lStatus = translateError(lpVisualizer->initCheck());
    if (lStatus != VISUALIZER_SUCCESS && lStatus != VISUALIZER_ERROR_ALREADY_EXISTS) {