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

Commit 8828876a authored by Atneya Nair's avatar Atneya Nair Committed by Android (Google) Code Review
Browse files

Merge "Move Track::signal to TrackBase" into main

parents c4e91031 11d89a46
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ public:
    virtual status_t getNextBuffer(AudioBufferProvider::Buffer* buffer) = 0;
    virtual void releaseBuffer(AudioBufferProvider::Buffer* buffer) = 0;

    virtual void signal() = 0;
    // Added for RecordTrack and OutputTrack
    virtual wp<IAfThreadBase> thread() const = 0;
    virtual const sp<ServerProxy>& serverProxy() const = 0;
@@ -323,7 +324,6 @@ public:
    virtual float* mainBuffer() const = 0;
    virtual int auxEffectId() const = 0;
    virtual status_t getTimestamp(AudioTimestamp& timestamp) = 0;
    virtual void signal() = 0;
    virtual status_t getDualMonoMode(audio_dual_mono_mode_t* mode) const = 0;
    virtual status_t setDualMonoMode(audio_dual_mono_mode_t mode) = 0;
    virtual status_t getAudioDescriptionMixLevel(float* leveldB) const = 0;
+0 −1
Original line number Diff line number Diff line
@@ -132,7 +132,6 @@ public:
    float* mainBuffer() const final { return mMainBuffer; }
    int auxEffectId() const final { return mAuxEffectId; }
    status_t getTimestamp(AudioTimestamp& timestamp) final;
    void signal() final;
    status_t getDualMonoMode(audio_dual_mono_mode_t* mode) const final;
    status_t setDualMonoMode(audio_dual_mono_mode_t mode) final;
    status_t getAudioDescriptionMixLevel(float* leveldB) const final;
+2 −0
Original line number Diff line number Diff line
@@ -85,6 +85,8 @@ public:

    wp<IAfThreadBase> thread() const final { return mThread; }

    void signal() final;

    const sp<ServerProxy>& serverProxy() const final { return mServerProxy; }

#ifdef TEE_SINK
+8 −10
Original line number Diff line number Diff line
@@ -432,6 +432,14 @@ void TrackBase::logRefreshInterval(const std::string& devices) {
    }
}

void TrackBase::signal() {
    const sp<IAfThreadBase> thread = mThread.promote();
    if (thread != nullptr) {
        audio_utils::lock_guard _l(thread->mutex());
        thread->broadcast_l();
    }
}

PatchTrackBase::PatchTrackBase(const sp<ClientProxy>& proxy,
        IAfThreadBase* thread, const Timeout& timeout)
    : mProxy(proxy)
@@ -2128,16 +2136,6 @@ void Track::signalClientFlag(int32_t flag)
    (void) syscall(__NR_futex, &cblk->mFutex, FUTEX_WAKE, INT_MAX);
}

void Track::signal()
{
    const sp<IAfThreadBase> thread = mThread.promote();
    if (thread != 0) {
        auto* const t = thread->asIAfPlaybackThread().get();
        audio_utils::lock_guard _l(t->mutex());
        t->broadcast_l();
    }
}

status_t Track::getDualMonoMode(audio_dual_mono_mode_t* mode) const
{
    status_t status = INVALID_OPERATION;