diff options
author | Glenn Kasten <gkasten@google.com> | 2014-03-18 17:01:15 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2014-03-31 12:23:11 -0700 |
commit | f7160b5dc3091fd9624f25d534c6848ee831b706 (patch) | |
tree | 521236419b4532dc8e91ed22be147a6aeb8baa34 /services/audioflinger | |
parent | 4cd161b5bf7a8008d684db4b217ed84d1704e683 (diff) | |
download | frameworks_av-f7160b5dc3091fd9624f25d534c6848ee831b706.zip frameworks_av-f7160b5dc3091fd9624f25d534c6848ee831b706.tar.gz frameworks_av-f7160b5dc3091fd9624f25d534c6848ee831b706.tar.bz2 |
FastMixer use FastThread and FastMixerState use FastThreadState
Change-Id: I594c973e9f575113bdefee6f4cf8c29d8beac1f3
Diffstat (limited to 'services/audioflinger')
-rw-r--r-- | services/audioflinger/FastMixer.h | 6 | ||||
-rw-r--r-- | services/audioflinger/FastMixerState.cpp | 6 | ||||
-rw-r--r-- | services/audioflinger/FastMixerState.h | 19 |
3 files changed, 13 insertions, 18 deletions
diff --git a/services/audioflinger/FastMixer.h b/services/audioflinger/FastMixer.h index 6158925..7aeddef 100644 --- a/services/audioflinger/FastMixer.h +++ b/services/audioflinger/FastMixer.h @@ -18,10 +18,10 @@ #define ANDROID_AUDIO_FAST_MIXER_H #include <utils/Debug.h> -#include <utils/Thread.h> extern "C" { #include "../private/bionic_futex.h" } +#include "FastThread.h" #include "StateQueue.h" #include "FastMixerState.h" @@ -29,10 +29,10 @@ namespace android { typedef StateQueue<FastMixerState> FastMixerStateQueue; -class FastMixer : public Thread { +class FastMixer : public FastThread { public: - FastMixer() : Thread(false /*canCallJava*/) { } + FastMixer() : FastThread() { } virtual ~FastMixer() { } FastMixerStateQueue* sq() { return &mSQ; } diff --git a/services/audioflinger/FastMixerState.cpp b/services/audioflinger/FastMixerState.cpp index 43ff233..4631274 100644 --- a/services/audioflinger/FastMixerState.cpp +++ b/services/audioflinger/FastMixerState.cpp @@ -29,10 +29,10 @@ FastTrack::~FastTrack() { } -FastMixerState::FastMixerState() : +FastMixerState::FastMixerState() : FastThreadState(), mFastTracksGen(0), mTrackMask(0), mOutputSink(NULL), mOutputSinkGen(0), - mFrameCount(0), mCommand(INITIAL), mColdFutexAddr(NULL), mColdGen(0), - mDumpState(NULL), mTeeSink(NULL), mNBLogWriter(NULL) + mFrameCount(0), + mDumpState(NULL), mTeeSink(NULL) { } diff --git a/services/audioflinger/FastMixerState.h b/services/audioflinger/FastMixerState.h index 9739fe9..10696e8 100644 --- a/services/audioflinger/FastMixerState.h +++ b/services/audioflinger/FastMixerState.h @@ -21,6 +21,7 @@ #include <media/ExtendedAudioBufferProvider.h> #include <media/nbaio/NBAIO.h> #include <media/nbaio/NBLog.h> +#include "FastThreadState.h" namespace android { @@ -48,7 +49,7 @@ struct FastTrack { }; // Represents a single state of the fast mixer -struct FastMixerState { +struct FastMixerState : FastThreadState { FastMixerState(); /*virtual*/ ~FastMixerState(); @@ -61,23 +62,17 @@ struct FastMixerState { NBAIO_Sink* mOutputSink; // HAL output device, must already be negotiated int mOutputSinkGen; // increment when mOutputSink is assigned size_t mFrameCount; // number of frames per fast mix buffer - enum Command { - INITIAL = 0, // used only for the initial state - HOT_IDLE = 1, // do nothing - COLD_IDLE = 2, // wait for the futex - IDLE = 3, // either HOT_IDLE or COLD_IDLE - EXIT = 4, // exit from thread + + // Extends FastThreadState::Command + static const Command // The following commands also process configuration changes, and can be "or"ed: MIX = 0x8, // mix tracks WRITE = 0x10, // write to output sink - MIX_WRITE = 0x18, // mix tracks and write to output sink - } mCommand; - int32_t* mColdFutexAddr; // for COLD_IDLE only, pointer to the associated futex - unsigned mColdGen; // increment when COLD_IDLE is requested so it's only performed once + MIX_WRITE = 0x18; // mix tracks and write to output sink + // This might be a one-time configuration rather than per-state FastMixerDumpState* mDumpState; // if non-NULL, then update dump state periodically NBAIO_Sink* mTeeSink; // if non-NULL, then duplicate write()s to this non-blocking sink - NBLog::Writer* mNBLogWriter; // non-blocking logger }; // struct FastMixerState } // namespace android |