1 <!DOCTYPE html> 2 <html> 3 <!-- 4 Copyright (c) 2012 The Chromium Authors. All rights reserved. 5 Use of this source code is governed by a BSD-style license that can be 6 found in the LICENSE file. 7 --> 8 <head> 9 <title>Enumerate Devices Example</title> 10 <script type="text/javascript"> 11 var device_array = []; 12 var enumerating = false; 13 14 function HandleMessage(message_event) { 15 if (message_event.data) { 16 var status = document.getElementById('status'); 17 if (message_event.data == 'EnumerationFailed') { 18 status.innerText = 'Device enumeration failed!'; 19 } else { 20 devices_data = 21 message_event.data.substring('EnumerationSuccess'.length); 22 if (devices_data.length > 0) 23 device_array = devices_data.split('#__#'); 24 else 25 device_array = []; 26 27 var list = document.getElementById('device_list'); 28 if (device_array.length == 0) 29 list.innerHTML = 'No devices.'; 30 for (var i = 0; i < device_array.length; ++i) { 31 var list_item = document.createElement('li'); 32 var span = document.createElement('span'); 33 span.innerText = device_array[i]; 34 list_item.appendChild(span); 35 list.appendChild(list_item); 36 } 37 status.innerText = 'Device enumeration success!'; 38 } 39 enumerating = false; 40 } 41 } 42 43 function EnumerateDevices(sync) { 44 if (enumerating) 45 return; 46 enumerating = true; 47 var status = document.getElementById('status'); 48 var plugin = document.getElementById('plugin'); 49 if (sync) { 50 status.innerText = 'Enumerating devices sync...' 51 plugin.postMessage('EnumerateDevicesSync'); 52 } else { 53 status.innerText = 'Enumerating devices async...' 54 plugin.postMessage('EnumerateDevicesAsync'); 55 } 56 } 57 58 function Initialize() { 59 var plugin = document.getElementById('plugin'); 60 plugin.addEventListener('message', HandleMessage, false); 61 EnumerateDevices(true); 62 } 63 64 document.addEventListener('DOMContentLoaded', Initialize, false); 65 </script> 66 </head> 67 68 <body> 69 <embed id="plugin" type="application/x-ppapi-example-enumerate-devices" 70 width=0 height=0 /> 71 <div> 72 Press a link to enumerate video devices: 73 <ul> 74 <li><a href="javascript:EnumerateDevices(true)">Enumerate devices sync</a> 75 (only implemented for out-of-process)</li> 76 <li><a href="javascript:EnumerateDevices(false)">Enumerate devices async</a></li> 77 </ul> 78 </div> 79 <div id="available_devices"> 80 Available device(s): 81 <ul id="device_list">No devices.</ul> 82 </div> 83 <div> 84 Status: <span id="status"></span> 85 </div> 86 </body> 87 </html> 88