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

Commit d4c82193 authored by Eric Laurent's avatar Eric Laurent Committed by Android Git Automerger
Browse files

am cdf1357b: am 8e103da1: Merge "Various fixes and improvements in audio...

am cdf1357b: am 8e103da1: Merge "Various fixes and improvements in audio effects implementation" into gingerbread

Merge commit 'cdf1357b6e0152280dcd611b5f096db4887d8126'

* commit 'cdf1357b6e0152280dcd611b5f096db4887d8126':
  Various fixes and improvements in audio effects implementation
parents 7016679c 8500df69
Loading
Loading
Loading
Loading
+272 −163

File changed.

Preview size limit exceeded, changes collapsed.

+29 −1
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ public:

    virtual status_t queryNumberEffects(uint32_t *numEffects);

    virtual status_t queryNextEffect(effect_descriptor_t *descriptor);
    virtual status_t queryEffect(uint32_t index, effect_descriptor_t *descriptor);

    virtual status_t getEffectDescriptor(effect_uuid_t *pUuid, effect_descriptor_t *descriptor);

@@ -163,6 +163,9 @@ public:
                        int *id,
                        int *enabled);

            status_t registerEffectResource_l(effect_descriptor_t *desc);
            void     unregisterEffectResource_l(effect_descriptor_t *desc);

    enum hardware_call_state {
        AUDIO_HW_IDLE = 0,
        AUDIO_HW_INIT,
@@ -200,6 +203,8 @@ public:
                                Parcel* reply,
                                uint32_t flags);

                uint32_t    getMode() { return mMode; }

private:
                            AudioFlinger();
    virtual                 ~AudioFlinger();
@@ -601,6 +606,8 @@ private:
                                        effect_descriptor_t *desc,
                                        int *enabled,
                                        status_t *status);
                    void disconnectEffect(const sp< EffectModule>& effect,
                                          const wp<EffectHandle>& handle);

                    bool hasAudioSession(int sessionId);
                    sp<EffectChain> getEffectChain(int sessionId);
@@ -614,6 +621,7 @@ private:
                    void detachAuxEffect_l(int effectId);
                    status_t attachAuxEffect(const sp<AudioFlinger::PlaybackThread::Track> track, int EffectId);
                    status_t attachAuxEffect_l(const sp<AudioFlinger::PlaybackThread::Track> track, int EffectId);
                    void setMode(uint32_t mode);

        struct  stream_type_t {
            stream_type_t()
@@ -930,9 +938,11 @@ private:
        size_t removeHandle (const wp<EffectHandle>& handle);

        effect_descriptor_t& desc() { return mDescriptor; }
        wp<EffectChain>&     chain() { return mChain; }

        status_t         setDevice(uint32_t device);
        status_t         setVolume(uint32_t *left, uint32_t *right, bool controller);
        status_t         setMode(uint32_t mode);

        status_t         dump(int fd, const Vector<String16>& args);

@@ -944,6 +954,14 @@ private:
        status_t start();
        status_t stop();

        // update this table when AudioSystem::audio_devices or audio_device_e (in EffectApi.h) are modified
        static const uint32_t sDeviceConvTable[];
        static uint32_t deviceAudioSystemToEffectApi(uint32_t device);

        // update this table when AudioSystem::audio_mode or audio_mode_e (in EffectApi.h) are modified
        static const uint32_t sModeConvTable[];
        static int modeAudioSystemToEffectApi(uint32_t mode);

        Mutex               mLock;      // mutex for process, commands and handles list protection
        wp<ThreadBase>      mThread;    // parent thread
        wp<EffectChain>     mChain;     // parent effect chain
@@ -1042,6 +1060,8 @@ private:
        sp<EffectModule> getVolumeController();
        bool setVolume(uint32_t *left, uint32_t *right);
        void setDevice(uint32_t device);
        void setMode(uint32_t mode);


        void setInBuffer(int16_t *buffer, bool ownsBuffer = false) {
            mInBuffer = buffer;
@@ -1104,6 +1124,14 @@ private:
#ifdef LVMX
                int mLifeVibesClientPid;
#endif
                uint32_t mMode;

                // Maximum CPU load allocated to audio effects in 0.1 MIPS (ARMv5TE, 0 WS memory) units
                static const uint32_t MAX_EFFECTS_CPU_LOAD = 1000;
                // Maximum memory allocated to audio effects in KB
                static const uint32_t MAX_EFFECTS_MEMORY = 512;
                uint32_t mTotalEffectsCpuLoad; // current CPU load used by effects
                uint32_t mTotalEffectsMemory;  // current memory used by effects
};

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