From 3f42c61ead715884ac6b1f85c0b6054ff437646d Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 1 Nov 2018 13:01:39 +0100 Subject: Initial import --- .../javispedro/vndroid/ScreenVirtualGrabber.java | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 app/src/main/java/com/javispedro/vndroid/ScreenVirtualGrabber.java (limited to 'app/src/main/java/com/javispedro/vndroid/ScreenVirtualGrabber.java') diff --git a/app/src/main/java/com/javispedro/vndroid/ScreenVirtualGrabber.java b/app/src/main/java/com/javispedro/vndroid/ScreenVirtualGrabber.java new file mode 100644 index 0000000..5eef75d --- /dev/null +++ b/app/src/main/java/com/javispedro/vndroid/ScreenVirtualGrabber.java @@ -0,0 +1,38 @@ +package com.javispedro.vndroid; + +import android.content.Context; +import android.graphics.PixelFormat; +import android.hardware.display.DisplayManager; +import android.media.ImageReader; +import android.util.Log; + +public class ScreenVirtualGrabber extends ScreenGrabber { + private static final String TAG = ScreenVirtualGrabber.class.getSimpleName(); + + public ScreenVirtualGrabber(Context context) { + super(context); + } + + @Override + public void start() { + if (reader != null || display != null) { + Log.w(TAG, "already started"); + return; + } + + int width = 1024; + int height = 768; + int dpi = 96; + + Log.d(TAG, "starting virtual display with width " + width + " height: " + height + " dpi: " + dpi); + + reader = ImageReader.newInstance(width, height, PixelFormat.RGBA_8888, MAX_IMAGES); + reader.setOnImageAvailableListener(new ImageReaderCallback(), null); + + DisplayManager manager = getSystemService(DisplayManager.class); + display = manager.createVirtualDisplay("vndroid", + width, height, dpi, reader.getSurface(), + DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, + new VirtualDisplayCallback(), null); + } +} -- cgit v1.2.3