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

Commit c1f63ddb authored by Glenn Kasten's avatar Glenn Kasten Committed by Android (Google) Code Review
Browse files

Merge "AudioStreamIn and AudioStreamOut"

parents 6562dadf 5b0135e4
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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;
@@ -4898,7 +4898,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;
@@ -5046,6 +5046,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;
@@ -5187,6 +5188,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;
+11 −7
Original line number Diff line number Diff line
@@ -727,7 +727,7 @@ private:
                                    int sessionId,
                                    status_t *status);

                    AudioStreamOut* getOutput();
                    AudioStreamOut* getOutput() const;
                    AudioStreamOut* clearOutput();
                    virtual audio_stream_t* stream();

@@ -993,7 +993,7 @@ private:
                status_t    start(RecordTrack* recordTrack);
                void        stop(RecordTrack* recordTrack);
                status_t    dump(int fd, const Vector<String16>& args);
                AudioStreamIn* getInput();
                AudioStreamIn* getInput() const;
                AudioStreamIn* clearInput();
                virtual audio_stream_t* stream();

@@ -1356,17 +1356,21 @@ mutable Mutex mLock; // mutex for process, commands and handl
        KeyedVector< int, sp<SuspendedEffectDesc> > 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) {}