Skip to content

Commit ea52d3c

Browse files
Sungtak LeeAndroid Build Cherrypicker Worker
authored andcommitted
Add missing IProducerListener callbacks to BLASTBufferQueue
Add IProducerListener::onBufferDetached and IProducerListener::onBufferAttached to BLASTBufferQueue. Bug: 353202582 Flag: com.android.graphics.libgui.flags.bq_consumer_attach_callback Test: build (cherry picked from https://android-review.googlesource.com/q/commit:7c935090e839ec3391c6f94d46a2367e59a46056) Merged-In: I53f25354804bd777ce20410edebe8e7d6a213061 Change-Id: I53f25354804bd777ce20410edebe8e7d6a213061
1 parent e03c39c commit ea52d3c

3 files changed

Lines changed: 23 additions & 0 deletions

File tree

libs/gui/BLASTBufferQueue.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,6 +1096,17 @@ class AsyncProducerListener : public BnProducerListener {
10961096
AsyncWorker::getInstance().post(
10971097
[listener = mListener, slots = slots]() { listener->onBuffersDiscarded(slots); });
10981098
}
1099+
1100+
void onBufferDetached(int slot) override {
1101+
AsyncWorker::getInstance().post(
1102+
[listener = mListener, slot = slot]() { listener->onBufferDetached(slot); });
1103+
}
1104+
1105+
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(BQ_CONSUMER_ATTACH_CALLBACK)
1106+
void onBufferAttached() override {
1107+
AsyncWorker::getInstance().post([listener = mListener]() { listener->onBufferAttached(); });
1108+
}
1109+
#endif
10991110
};
11001111

11011112
// Extends the BufferQueueProducer to create a wrapper around the listener so the listener calls

libs/gui/IProducerListener.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,4 +184,10 @@ bool BnProducerListener::needsReleaseNotify() {
184184
void BnProducerListener::onBuffersDiscarded(const std::vector<int32_t>& /*discardedSlots*/) {
185185
}
186186

187+
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(BQ_CONSUMER_ATTACH_CALLBACK)
188+
bool BnProducerListener::needsAttachNotify() {
189+
return true;
190+
}
191+
#endif
192+
187193
} // namespace android

libs/gui/include/gui/IProducerListener.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ class BnProducerListener : public BnInterface<IProducerListener>
9090
Parcel* reply, uint32_t flags = 0);
9191
virtual bool needsReleaseNotify();
9292
virtual void onBuffersDiscarded(const std::vector<int32_t>& slots);
93+
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(BQ_CONSUMER_ATTACH_CALLBACK)
94+
virtual bool needsAttachNotify();
95+
#endif
9396
};
9497

9598
#else
@@ -103,6 +106,9 @@ class StubProducerListener : public BnProducerListener {
103106
virtual ~StubProducerListener();
104107
virtual void onBufferReleased() {}
105108
virtual bool needsReleaseNotify() { return false; }
109+
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(BQ_CONSUMER_ATTACH_CALLBACK)
110+
virtual bool needsAttachNotify() { return false; }
111+
#endif
106112
};
107113

108114
} // namespace android

0 commit comments

Comments
 (0)