Merge "jni: use SurfaceComposerClient in sampling"
This commit is contained in:
commit
2c3a088a2d
@ -28,6 +28,7 @@
|
||||
|
||||
#include <gui/IRegionSamplingListener.h>
|
||||
#include <gui/ISurfaceComposer.h>
|
||||
#include <gui/SurfaceComposerClient.h>
|
||||
#include <ui/Rect.h>
|
||||
|
||||
namespace android {
|
||||
@ -83,28 +84,22 @@ void nativeRegister(JNIEnv* env, jclass clazz, jlong ptr, jobject stopLayerToken
|
||||
sp<CompositionSamplingListener> listener = reinterpret_cast<CompositionSamplingListener*>(ptr);
|
||||
sp<IBinder> stopLayerHandle = ibinderForJavaObject(env, stopLayerTokenObj);
|
||||
|
||||
// TODO: Use SurfaceComposerClient once it has addRegionSamplingListener.
|
||||
sp<ISurfaceComposer> composer;
|
||||
if (getService(String16("SurfaceFlinger"), &composer) != NO_ERROR) {
|
||||
jniThrowRuntimeException(env, "Couldn't retrieve SurfaceFlinger");
|
||||
return;
|
||||
if (SurfaceComposerClient::addRegionSamplingListener(
|
||||
Rect(left, top, right, bottom), stopLayerHandle, listener) != OK) {
|
||||
constexpr auto error_msg = "Couldn't addRegionSamplingListener";
|
||||
ALOGE(error_msg);
|
||||
jniThrowRuntimeException(env, error_msg);
|
||||
}
|
||||
|
||||
composer->addRegionSamplingListener(
|
||||
Rect(left, top, right, bottom), stopLayerHandle, listener);
|
||||
}
|
||||
|
||||
void nativeUnregister(JNIEnv* env, jclass clazz, jlong ptr) {
|
||||
sp<CompositionSamplingListener> listener = reinterpret_cast<CompositionSamplingListener*>(ptr);
|
||||
|
||||
// TODO: Use SurfaceComposerClient once it has addRegionSamplingListener.
|
||||
sp<ISurfaceComposer> composer;
|
||||
if (getService(String16("SurfaceFlinger"), &composer) != NO_ERROR) {
|
||||
jniThrowRuntimeException(env, "Couldn't retrieve SurfaceFlinger");
|
||||
return;
|
||||
if (SurfaceComposerClient::removeRegionSamplingListener(listener) != OK) {
|
||||
constexpr auto error_msg = "Couldn't removeRegionSamplingListener";
|
||||
ALOGE(error_msg);
|
||||
jniThrowRuntimeException(env, error_msg);
|
||||
}
|
||||
|
||||
composer->removeRegionSamplingListener(listener);
|
||||
}
|
||||
|
||||
const JNINativeMethod gMethods[] = {
|
||||
|
@ -123,6 +123,9 @@
|
||||
<uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />
|
||||
<uses-permission android:name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT" />
|
||||
|
||||
<!-- color extraction test permissions -->
|
||||
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
|
||||
|
||||
<!-- accessibility test permissions -->
|
||||
<uses-permission android:name="android.permission.RETRIEVE_WINDOW_CONTENT" />
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user