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

Commit 3de6e81e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update Visualizer implementation after changes in AudioEffect" into rvc-dev-plus-aosp

parents 7d95615a 88441891
Loading
Loading
Loading
Loading
+19 −14
Original line number Original line Diff line number Diff line
@@ -34,21 +34,9 @@ namespace android {


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


Visualizer::Visualizer (const String16& opPackageName,
Visualizer::Visualizer (const String16& opPackageName)
         int32_t priority,
        :   AudioEffect(opPackageName)
         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)
{
{
    initCaptureSize();
}
}


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


                        ~Visualizer();
                        ~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().
    // Declared 'final' because we call this in ~Visualizer().
    status_t    setEnabled(bool enabled) final;
    status_t    setEnabled(bool enabled) final;


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


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




+10 −11
Original line number Original line 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
    // create the native AudioEffect object
    lpAudioEffect = new AudioEffect(typeStr,
    lpAudioEffect = new AudioEffect(String16(opPackageNameStr.c_str()));
                                    String16(opPackageNameStr.c_str()),
    if (lpAudioEffect == 0) {
        ALOGE("Error creating AudioEffect");
        goto setup_failure;
    }

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


    lStatus = AudioEffectJni::translateNativeErrorToJava(lpAudioEffect->initCheck());
    lStatus = AudioEffectJni::translateNativeErrorToJava(lpAudioEffect->initCheck());
    if (lStatus != AUDIOEFFECT_SUCCESS && lStatus != AUDIOEFFECT_ERROR_ALREADY_EXISTS) {
    if (lStatus != AUDIOEFFECT_SUCCESS && lStatus != AUDIOEFFECT_ERROR_ALREADY_EXISTS) {
        ALOGE("AudioEffect initCheck failed %d", lStatus);
        ALOGE("AudioEffect initCheck failed %d", lStatus);
+5 −5
Original line number Original line 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
    // create the native Visualizer object
    lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()),
    lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()));
                                  0,
                                  android_media_visualizer_effect_callback,
                                  lpJniStorage,
                                  (audio_session_t) sessionId);
    if (lpVisualizer == 0) {
    if (lpVisualizer == 0) {
        ALOGE("Error creating Visualizer");
        ALOGE("Error creating Visualizer");
        goto setup_failure;
        goto setup_failure;
    }
    }
    lpVisualizer->set(0,
                      android_media_visualizer_effect_callback,
                      lpJniStorage,
                      (audio_session_t) sessionId);


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