51 lines
1.9 KiB
Plaintext
51 lines
1.9 KiB
Plaintext
This directory contains sample code to test the use of virtual
|
|
displays created over an Android Open Accessories Protocol link.
|
|
|
|
--- DESCRIPTION ---
|
|
|
|
There are two applications with two distinct roles: a sink
|
|
and a source.
|
|
|
|
1. Sink Application
|
|
|
|
The role of the sink is to emulate an external display that happens
|
|
to be connected using the USB accessory protocol. Think of it as
|
|
a monitor or video dock that the user will want to plug a phone into.
|
|
|
|
The sink application uses the UsbDevice APIs to receive connections
|
|
from the source device over USB. The sink acts as a USB host
|
|
in this arrangement and will provide power to the source.
|
|
|
|
The sink application decodes encoded video from the source and
|
|
displays it in a SurfaceView. The sink also injects passes touch
|
|
events to the source over USB HID.
|
|
|
|
2. Source Application
|
|
|
|
The role of the source is to present some content onto an external
|
|
display that happens to be attached over USB. This is the typical
|
|
role that a phone or tablet might have when the user is trying to
|
|
play content to an external monitor.
|
|
|
|
The source application uses the UsbAccessory APIs to connect
|
|
to the sink device over USB. The source acts as a USB peripheral
|
|
in this arrangement and will receive power from the sink.
|
|
|
|
The source application uses the DisplayManager APIs to create
|
|
a private virtual display which passes the framebuffer through
|
|
an encoder and streams the output to the sink over USB. Then
|
|
the application opens a Presentation on the new virtual display
|
|
and shows a silly cube animation.
|
|
|
|
--- USAGE ---
|
|
|
|
These applications should be installed on two separate Android
|
|
devices which are then connected using a USB OTG cable.
|
|
Remember that the sink device is functioning as the USB host
|
|
so the USB OTG cable should be plugged directly into it.
|
|
|
|
When connected, the applications should automatically launch
|
|
on each device. The source will then begin to project display
|
|
contents to the sink.
|
|
|