From 5b0135e41bc36cc6486d637e2e26523240d0ae2d Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Thu, 26 Jan 2012 09:46:34 -0800 Subject: AudioStreamIn and AudioStreamOut These are immutable, so make the fields const. getOutput() and getInput() methods are now const. Change-Id: I128246ebd56ea50b3e542be43f2aa1bcb55f1373 --- services/audioflinger/AudioFlinger.cpp | 6 ++++-- services/audioflinger/AudioFlinger.h | 18 +++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 6701059c227a..96bc5522d0a7 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1808,7 +1808,7 @@ uint32_t AudioFlinger::PlaybackThread::getStrategyForSession_l(int sessionId) } -AudioFlinger::AudioStreamOut* AudioFlinger::PlaybackThread::getOutput() +AudioFlinger::AudioStreamOut* AudioFlinger::PlaybackThread::getOutput() const { Mutex::Autolock _l(mLock); return mOutput; @@ -4897,7 +4897,7 @@ AudioFlinger::RecordThread::RecordTrack* AudioFlinger::RecordThread::track() return mTrack; } -AudioFlinger::AudioStreamIn* AudioFlinger::RecordThread::getInput() +AudioFlinger::AudioStreamIn* AudioFlinger::RecordThread::getInput() const { Mutex::Autolock _l(mLock); return mInput; @@ -5045,6 +5045,7 @@ status_t AudioFlinger::closeOutput(int output) if (thread->type() != ThreadBase::DUPLICATING) { AudioStreamOut *out = thread->clearOutput(); + assert(out != NULL); // from now on thread->mOutput is NULL out->hwDev->close_output_stream(out->hwDev, out->stream); delete out; @@ -5186,6 +5187,7 @@ status_t AudioFlinger::closeInput(int input) thread->exit(); AudioStreamIn *in = thread->clearInput(); + assert(in != NULL); // from now on thread->mInput is NULL in->hwDev->close_input_stream(in->hwDev, in->stream); delete in; diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 48edfcd428c4..262c890ad90a 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -727,7 +727,7 @@ private: int sessionId, status_t *status); - AudioStreamOut* getOutput(); + AudioStreamOut* getOutput() const; AudioStreamOut* clearOutput(); virtual audio_stream_t* stream(); @@ -804,7 +804,7 @@ private: SortedVector< sp > mTracks; // mStreamTypes[] uses 1 additional stream type internally for the OutputTrack used by DuplicatingThread stream_type_t mStreamTypes[AUDIO_STREAM_CNT + 1]; - AudioStreamOut* mOutput; + AudioStreamOut *mOutput; float mMasterVolume; nsecs_t mLastWriteTime; int mNumWrites; @@ -994,7 +994,7 @@ private: status_t start(RecordTrack* recordTrack); void stop(RecordTrack* recordTrack); status_t dump(int fd, const Vector& args); - AudioStreamIn* getInput(); + AudioStreamIn* getInput() const; AudioStreamIn* clearInput(); virtual audio_stream_t* stream(); @@ -1357,17 +1357,21 @@ mutable Mutex mLock; // mutex for process, commands and handl KeyedVector< int, sp > mSuspendedEffects; }; + // AudioStreamOut and AudioStreamIn are immutable, so their fields are const. + // For emphasis, we could also make all pointers to them be "const *", + // but that would clutter the code unnecessarily. + struct AudioStreamOut { - audio_hw_device_t *hwDev; - audio_stream_out_t *stream; + audio_hw_device_t* const hwDev; + audio_stream_out_t* const stream; AudioStreamOut(audio_hw_device_t *dev, audio_stream_out_t *out) : hwDev(dev), stream(out) {} }; struct AudioStreamIn { - audio_hw_device_t *hwDev; - audio_stream_in_t *stream; + audio_hw_device_t* const hwDev; + audio_stream_in_t* const stream; AudioStreamIn(audio_hw_device_t *dev, audio_stream_in_t *in) : hwDev(dev), stream(in) {} -- cgit v1.2.3-59-g8ed1b