@@ -2057,6 +2057,18 @@ status_t SurfaceFlinger::addRegionSamplingListener(const Rect& samplingArea,
20572057 return NO_ERROR;
20582058}
20592059
2060+ status_t SurfaceFlinger::addRegionSamplingListenerWithStopLayerId (
2061+ const Rect& samplingArea, const int32_t stopLayerId,
2062+ const sp<IRegionSamplingListener>& listener) {
2063+ if (!listener || samplingArea == Rect::INVALID_RECT || samplingArea.isEmpty ()) {
2064+ return BAD_VALUE;
2065+ }
2066+
2067+ mRegionSamplingThread ->addListener (samplingArea,
2068+ stopLayerId ? stopLayerId : UNASSIGNED_LAYER_ID, listener);
2069+ return NO_ERROR;
2070+ }
2071+
20602072status_t SurfaceFlinger::removeRegionSamplingListener (const sp<IRegionSamplingListener>& listener) {
20612073 if (!listener) {
20622074 return BAD_VALUE;
@@ -2065,6 +2077,12 @@ status_t SurfaceFlinger::removeRegionSamplingListener(const sp<IRegionSamplingLi
20652077 return NO_ERROR;
20662078}
20672079
2080+ status_t SurfaceFlinger::getRegionSamplingListeners (
2081+ std::vector<gui::RegionSamplingDescriptor>* listeners) const {
2082+ *listeners = mRegionSamplingThread ->getListeners ();
2083+ return NO_ERROR;
2084+ }
2085+
20682086status_t SurfaceFlinger::addFpsListener (int32_t taskId, const sp<gui::IFpsListener>& listener) {
20692087 if (!listener) {
20702088 return BAD_VALUE;
@@ -9358,6 +9376,22 @@ binder::Status SurfaceComposerAIDL::addRegionSamplingListener(
93589376 return binderStatusFromStatusT (status);
93599377}
93609378
9379+ binder::Status SurfaceComposerAIDL::addRegionSamplingListenerWithStopLayerId (
9380+ const gui::ARect& samplingArea, const int32_t stopLayerId,
9381+ const sp<gui::IRegionSamplingListener>& listener) {
9382+ status_t status = checkAccessPermission ();
9383+ if (status != OK) {
9384+ return binderStatusFromStatusT (status);
9385+ }
9386+ android::Rect rect;
9387+ rect.left = samplingArea.left ;
9388+ rect.top = samplingArea.top ;
9389+ rect.right = samplingArea.right ;
9390+ rect.bottom = samplingArea.bottom ;
9391+ status = mFlinger ->addRegionSamplingListenerWithStopLayerId (rect, stopLayerId, listener);
9392+ return binderStatusFromStatusT (status);
9393+ }
9394+
93619395binder::Status SurfaceComposerAIDL::removeRegionSamplingListener (
93629396 const sp<gui::IRegionSamplingListener>& listener) {
93639397 status_t status = checkReadFrameBufferPermission ();
@@ -9367,6 +9401,15 @@ binder::Status SurfaceComposerAIDL::removeRegionSamplingListener(
93679401 return binderStatusFromStatusT (status);
93689402}
93699403
9404+ binder::Status SurfaceComposerAIDL::getRegionSamplingListeners (
9405+ std::vector<gui::RegionSamplingDescriptor>* listeners) {
9406+ status_t status = checkAccessPermission ();
9407+ if (status == OK) {
9408+ status = mFlinger ->getRegionSamplingListeners (listeners);
9409+ }
9410+ return binderStatusFromStatusT (status);
9411+ }
9412+
93709413binder::Status SurfaceComposerAIDL::addFpsListener (int32_t taskId,
93719414 const sp<gui::IFpsListener>& listener) {
93729415 status_t status = checkReadFrameBufferPermission ();
0 commit comments