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.
 | |
| 
 |