2009/dap/system-info Overview.html,1.42,1.43

Update of /sources/public/2009/dap/system-info
In directory hutz:/tmp/cvs-serv14651

Modified Files:
	Overview.html 
Log Message:
- fixed examples
- gathered all DCO issues into one
- readded Audio


Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/system-info/Overview.html,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- Overview.html	16 Dec 2009 13:04:44 -0000	1.42
+++ Overview.html	17 Dec 2009 12:09:11 -0000	1.43
@@ -155,15 +155,14 @@
       <h2>API Description &amp; Properties</h2>
 
       <section>
-        <h2>Properties</h2>
+        <h2>System Properties</h2>
 
         <p>A <dfn>property</dfn> is defined as a set of related device
         characteristics. For instance, the <a>PowerState</a> property
-        contains all the characteristics that concern the device's
-        electrical power supply. Properties are accessible through the
-        use of the functions defined by the <a>SystemInfo</a>
-        interface below. A property is characterized by the following
-        elements:</p>
+        contains all the characteristics that relate to the device's
+        electrical power supply. Properties are accessible using the
+        functions defined by the <a>SystemInfo</a> interface below. A
+        property is characterized by the following elements:</p>
 
         <ul>
           <li>A name</li>
@@ -190,10 +189,6 @@
 
         <p class="issue">window.systeminfo.* instead? Pending WG decision. See <a href="http://www.w3.org/mid/355A518BC0575547B2A3D6773AAF8EEF73A1A0@ftrdmel1">thread</a></p>
         
-        <p class="issue">Should all properties be readonly?</p>
-
-        <p class="issue">Sequences or arrays?</p>
-        
         <dl title='[NoInterfaceObject] interface SystemInfo' class='idl'>
           <dt>PendingOp get(DOMString propertyId, SuccessCB successCallback, optional ErrorCB? errorCallback, optional Options options)</dt>
           <dd>
@@ -383,7 +378,7 @@
             
             <dt>attribute DOMString id</dt>
             <dd>Some of the properties below are labeled as
-            <em>enumerable</em>, meaning that more than one instance of
+            <dfn>enumerable</dfn>, meaning that more than one instance of
             the property's value type exist on the system. For instance, a
             multi-processor system would report as many instances of
             <a>Cpu</a> as the number of processors. In order to
@@ -411,23 +406,20 @@
 
         <section>
           <h4>ECMAScript Example</h4>
-          <pre class="sh_javascript example">
-            var success = function(power) {
-            alert("Low battery level: "+power.level);
-            };
-          navigator.device.system.watch("PowerState",success,null,{lowThreshold:0.2});</pre>
+          <pre class="sh_javascript example">// Alert the user when the power level is below 20%
+navigator.system.watch("PowerState",success,null,{lowThreshold:0.2});
 
-          <p class="issue">fix examples</p>
+function success(power) {
+  alert("Low battery level: "+power.level);
+};</pre>
         </section>
 
         <section>
           <h4>The <a>PowerState</a> Property</h4>
           <p>This property reflects the state of general state of the system's power sources</p>
-          <ul>
-            <li>Name: <code>PowerState</code></li>
-            <li>Enumerable: no</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
+
+          <li class="issue">Find the corresponding DCO properties everywhere</li>
+
           
           <dl title="[NoInterfaceObject] interface PowerState" class="idl">
             <dt>readonly attribute float? level</dt>
@@ -456,7 +448,7 @@
               currently powered by an internal source.
             </dd>
 
-            <dt>readonly attribute sequence&lt;PowerSource&gt; sources</dt>
+            <dt>readonly attribute PowerSource sources[]</dt>
             <dd>A list of all the power sources connected to this device.</dd>
 
           </dl>
@@ -464,13 +456,7 @@
 
         <section>
           <h4>The <a>PowerSource</a> Property</h4>
-          <p>This property describes the state of a single power source connected to the system</p>
-          <ul>
-            <li>Name: <code>PowerSource</code></li>
-            <li>Enumerable: yes</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
-          
+          <p>This property describes the state of a single power source connected to the system. It is <a>enumerable</a>.</p>
 
           <dl title="[NoInterfaceObject] interface PowerSource" class="idl">
             <dt>const unsigned short TYPE_UNKNOWN=0</dt>
@@ -511,17 +497,17 @@
       <section>
         <h2>CPU</h2>
         <p>This section defines a set of APIs that expose the system's CPU information, including type, specifications, current system load
-        information</p>
+        information.</p>
         
         <section>
           <h4>ECMAScript Example</h4>
-          <pre class="sh_javascript example">//Monitor and display the CPU load
+          <pre class="sh_javascript example">//Monitor and display the CPU load, and each CPU's frequency
 navigator.device.system.watch("CpuState",success);
 
 function success(cpu) {
-  var s="CPU STATUS. Global load: "+cpu.load+" - ";
-  for (var i=0;i&lt;cpu.units;i++) {
-    s+="CPU #"+i+": "+cpu.units[i].currentFrequency+" MHz";
+  var s="CPU Status. Overall load: "+cpu.load+" - ";
+  for (var i=0;i&lt;cpu.units.length;i++) {
+    s+="CPU #"+i+": "+cpu.units[i].currentFrequency+" MHz, ";
   }
   document.getElementById("cpuIndicator").innerHTML=s;
 }</pre>
@@ -530,11 +516,6 @@
         <section>
           <h4>The <a>CpuState</a> Property</h4>
           <p>This property reflects the state of a single CPU available on the system</p>
-          <ul>
-            <li>Name: <code>CpuState</code></li>
-            <li>Enumerable: no</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
 
           <dl title="[NoInterfaceObject] interface CpuState" class="idl">
             <dt>readonly attribute float load</dt>
@@ -545,17 +526,15 @@
               threshold parameter used in a <a>watch</a> function to
               monitor this property applies to this attribute.
             </dd>
-            <dt>readonly attribute sequence&lt;Cpu&gt; units</dt>
+            <dt>readonly attribute Cpu units[]</dt>
             <dd>The list of available CPUs</dd>
           </dl>
         </section>
         <section>
           <h4>The <a>Cpu</a> Property</h4>
-          <ul>
-            <li>Name: <code>Cpu</code></li>
-            <li>Enumerable: yes</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
+
+          <p>This property contains the data pertaining to a single CPU on the system. It is <a>enumerable</a>.</p>
+
           <dl title="[NoInterfaceObject] interface Cpu" class="idl">
             <dt>readonly attribute DOMString info</dt>
             <dd>A free-form string describing this CPU</dd>
@@ -584,32 +563,32 @@
               This attribute indicates the minimum working frequency of this CPU (in MHz).
             </dd>
           </dl>
+
         </section>
       </section>
       <!--******************** /CPU **********************************-->
 
-      <!--******************* Temperature *******************************************-->
+      <!--******************* Temperature ****************************-->
       <section>
         <h2>Internal Temperature</h2>
-        <p>The properties described in this section expose the system's internal temperature state</p>
+        <p>The properties described in this section expose the
+        system's temperature, as reported to the various internal
+        thermometers.</p>
         
         <section>
           <h4>ECMAScript Example</h4>
-          <pre class="sh_javascript example">// Display the temperatire of the first thermometer
+          <pre class="sh_javascript example">// Display the temperature of the first thermometer
 navigator.device.system.get("ThermalState",success);
 
 function success(thermal) {
-  document.getElementById("tempIndicator").innerHTML=("Current Temperature #1: "+thermal.thermometers[0].temperature);
+  document.getElementById("tempIndicator").innerHTML="Thermometer #1: "+thermal.thermometers[0].temperature;
 };</pre>
         </section>
         
         <section>
           <h4>The <a>ThermalState</a> property</h4>
-          <ul>
-            <li>Name: <code>ThermalState</code></li>
-            <li>Enumerable: no</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
+          
+          <p>This property provides information on the global temperature state of the system</p>
 
           <dl title="[NoInterfaceObject] interface ThermalState" class="idl">
             <dt>readonly attribute float status</dt>
@@ -628,12 +607,7 @@
         </section>
         <section>
           <h4>The <a>Thermometer</a> property</h4>
-          <p>This property exposes the state of a single internal thermometer available to the system.</p>
-          <ul>
-            <li>Name: <code>Thermometer</code></li>
-            <li>Enumerable: yes</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
+          <p>This property exposes the state of a single internal thermometer available to the system. It is <a>enumerable</a></p>
 
           <dl title="[NoInterfaceObject] interface Thermometer" class="idl">
             <dt>readonly attribute DOMString info</dt>
@@ -652,11 +626,6 @@
         <section>
           <h4>The <a>CoolingSystem</a> property</h4>
           <p>This property exposes the overall state of the system's active cooling devices (e.g. fans or pumps)</p>
-          <ul>
-            <li>Name: <code>CoolingSystem</code></li>
-            <li>Enumerable: no</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
 
           <dl title="[NoInterfaceObject] interface CoolingSystem" class="idl">
             <dt>readonly attribute float value</dt>
@@ -675,11 +644,8 @@
         </section>
         <section>
           <h4>The <a>CoolingDevice</a> property</h4>
-          <ul>
-            <li>Name: <code>thermal:coolingDevice</code></li>
-            <li>Enumerable: yes</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
+
+          <p>This property provides information on a single cooling device in the system. It is <a>enumerable</a></p>
 
           <dl title="[NoInterfaceObject] interface CoolingDevice" class="idl">
             <dt>const unsigned short TYPE_UNKNOWN=0</dt>
@@ -721,26 +687,32 @@
 
         <section>
           <h4>ECMAScript Example</h4>
-          <pre class="sh_javascript example">// Display the current WiFi signal strength
-navigator.device.system.watch("CurrentConnection",success,null);
+          <pre class="sh_javascript example">// Find if the system has a WiFi connection, if so monitor its signal
+// First, find the first WiFi interface on the system
+navigator.system.get("Connection",success,null);
 
 function success(connection) {
-  var net = connection.currentBearer;
-  if(net &amp;&amp; net.type===net.WI_FI) 
-    document.getElementById("Wireless adaptor connected to "+net.essid+" at "+(net.signalStrength*100)+"%");
+  var nets = connection.availableConnections;
+  for (var i=0;i&lt;nets.length;i++) {
+    if (nets[i].type===nets[i].TYPE_IEEE802_11) {
+      // we found a wifi connection, watch it
+      navigator.system.watch("Connection",wifiWatchCB,null,{id: nets[i].id});
+    }
+  }
+}
+
+function wifiWatchCB(connection) {
+  document.getElementById(indicator, "Wireless "+connection.essid+" at "+(connection.signalStrength*100)+"%");
 }</pre>
         </section>
 
         <section>
-          <h4>The <a>CurrentConnection</a> Property</h4>
-          <ul>
-            <li>Name: <a>CurrentConnection</a></li>
-            <li>Enumerable: no</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
+          <h4>The <a>Connection</a> Property</h4>
 
-          <dl title='[NoInterfaceObject] interface CurrentConnection' class='idl'>
-            <dt>readonly attribute float? signalStrength</dt>
+          <p>This property provides information on the system's connection to the network</p>
+
+          <dl title='[NoInterfaceObject] interface Connection' class='idl'>
+            <dt>readonly attribute float? currentSignalStrength</dt>
             <dd>This connection's signal strength. This value MUST be <code>null</code> if this connection is wired.</dd>
 
             <dt>readonly attribute unsigned int currentDownloadBandwidth</dt>
@@ -762,18 +734,17 @@
             <dt>readonly attribute Connection activeConnection</dt>
             <dd>The current active connection among the ones reported by the <a>availableConnections</a> attribute.</dd>
 
-            <dt>readonly attribute sequence&lt;Connection&gt; availableConnections</dt>
+            <dt>readonly attribute Connection availableConnections[]</dt>
             <dd>A list of all the connections available to this system.</dd>
           </dl>
         </section>
 
         <section>
           <h4>The <a>Connection</a> property</h4>
-          <ul>
-            <li>Name: <code>Connection</code></li>
-            <li>Enumerable: yes</li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
+          
+          <p>This property provides information on a single network
+          connection available to the system. It is
+          <a>enumerable</a>.</p>
 
           <dl title="[NoInterfaceObject] interface Connection" class="idl">
             <dt>const unsigned short TYPE_UNKNOWN = 0</dt>
@@ -838,7 +809,7 @@
             <dt>readonly attribute DOMString id</dt>
             <dd>A free-form string identifying this connection. The
             value of this element MUST be unique within the list
-            reported in a <a>CurrentConnection</a> object.</dd>
+            reported in a <a>Connection</a> object.</dd>
 
             <dt>readonly attribute unsigned int minDownloadBandwidth</dt>
             <dd>This property represents the min download bandwidth
@@ -882,22 +853,19 @@
 
         <section>
           <h4>ECMAScript Example</h4>
-          <pre class="sh_javascript example">// adjust the display brightness if too low
-navigator.device.system.get("Display",success,null);
+          <pre class="sh_javascript example">// adjust the display brightness if it is too low
+navigator.device.system.get("Display", success, null);
 
 function success(display) {
-  var brightness = display.brightness;
-  if(brightness &lt;= 0.2) 
-    navigator.device.system.set("Display", {brightness: 0.8}, success2);
-  }</pre>
+  if (display.brightness &lt;= 0.2) 
+    navigator.device.system.set("Display", {brightness: 0.8}, adjustCallback);
+}</pre>
         </section>
 
         <section>
           <h4>The <a>Display</a> Property</h4>
-          <ul>
-            <li>Name: <code>Display</code></li>
-            <li>Enumerable: no</li>
-          </ul>
+
+          <p>This property provides information on the display available on this system</p>
           
           <dl title='[NoInterfaceObject] interface Display' class='idl'>
             <dt>const unsigned short ORIENTATION_UNKNOWN = 0</dt>
@@ -922,7 +890,7 @@
             <dt>readonly attribute DisplayDevice activeDevice</dt>
             <dd>The display currently in use</dd>
 
-            <dt>readonly attribute sequence&lt;DisplayDevice&gt; devices</dt>
+            <dt>readonly attribute DisplayDevice devices[]</dt>
             <dd>The sequence of all the available display devices</dd>
           </dl>
 
@@ -935,10 +903,8 @@
 
         <section>
           <h4>The <a>DisplayDevice</a> property</h4>
-          <ul>
-            <li>Name: <code>DisplayDevice</code></li>
-            <li>Enumerable: yes</li>
-          </ul>
+
+          <p>This property exposes information on a single display device available to the system. Is it <a>enumerable.</a></p>
 
           <p>The <a>DisplayDevice</a> interface defined below inherits from the <a>Screen</a> interface as defined in [[!CSSOM-VIEW]]</p>
 
@@ -947,7 +913,7 @@
             <dd>A free-form string describing this device</dd>
 
             <dt>readonly attribute DOMString id</dt>
-            <dd>A free-form string identifying this connection. The value of this element MUST be unique within the list reported in a <a>CurrentConnection</a> object.</dd>
+            <dd>A free-form string identifying this device. The value of this element MUST be unique within the list reported in a <a>Display</a> object.</dd>
 
             <dt>readonly attribute unsigned int dotsPerInchW</dt>
             <dd>Resolution of this device, along its width, in dots per inch.</dd>
@@ -975,12 +941,11 @@
         <section>
           <h4>ECMAScript Example</h4>
           <pre class="sh_javascript example">// Adjust the screen's brightness if the ambient brightness is above a certain level
-navigator.device.system.watch("AmbientLight",success,{maxThreshold: 0.9});
+navigator.device.system.watch("AmbientLight",success, {maxThreshold: 0.9});
 
-function success(brightnessLevel) {
-  navigator.device.system.set("Display",{screen:brightness: 0.4});
-}
-          </pre>
+function success() {
+  navigator.device.system.set("Display",{brightness: 0.4});
+}</pre>
         </section>
 
         <!-- ==== Ambient Light ==== -->
@@ -988,26 +953,22 @@
           <h4>Ambient Light</h4>
           <section>
             <h5>The <a>AmbientLight</a> Property</h5>
-            <ul>
-              <li>Name: <code>AmbientLight</code></li>
-              <li>Enumerable: no</li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about the global level of ambient light around the device.</p>
+
             <dl title="[NoInterfaceObject] interface AmbientLight" class="idl">
-              <dt>readonly attribute float value</dt>
+              <dt>readonly attribute float intensity</dt>
               <dd>A normalised value representing the overall ambient light around the device. The way this value is determined should be an implementation-defined combination of the values reported by each ambient light sensor available.</dd>
-              <dt>readonly attribute sequence&lt;AmbientLightSensor&gt; sensors</dt>
+              <dt>readonly attribute AmbientLightSensor sensors[]</dt>
               <dd>The list of all ambient light sensors available to this device</dd>
             </dl>
           </section>
 
           <section>
             <h5>The <a>AmbientLightSensor</a> Property</h5>
-            <ul>
-              <li>Name: <code>AmbientLightSensor</code></li>
-              <li>Enumerable: yes</li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about a single external light sensor available to the system. It is <a>enumerable</a>.</p>
+
             <dl title="[NoInterfaceObject] interface AmbientLightSensor" class="idl">
               <dt>readonly attribute DOMString info</dt>
               <dd>A free-form string describing this device.</dd>
@@ -1017,6 +978,8 @@
               <dd>The luminance measured by this device, in candelas per square metre (cd/m<sup>2</sup>)</dd>.
               <dt>readonly attribute float maxLuminance</dt>
               <dd>The maximum luminance that this device can report, in candelas per square metre (cd/m<sup>2</sup>)</dd>.
+              <dt>readonly attribute float minLuminance</dt>
+              <dd>The minimum luminance that this device can report, in candelas per square metre (cd/m<sup>2</sup>)</dd>.
             </dl>
           </section>
         </section>
@@ -1027,25 +990,21 @@
           <h4>Ambient Noise</h4>
           <section>
             <h5>The <code>AmbientNoise</code> property</h5>
-            <ul>
-              <li>Name: <code>AmbientNoise</code></li>
-              <li>Enumerable: no</li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about the global level of ambient noise around the device.</p>
+
             <dl title="[NoInterfaceObject] interface AmbientNoise" class="idl">
               <dt>readonly attribute float value</dt>
-              <dd>A normalized value representing the overall ambient noise around the device</dd>
-              <dt>readonly attribute sequence&lt;AmbientNoiseSensor&gt; sensors</dt>
+              <dd>The ambient noise around the device, in decibels (dB), computed from the data provided by each sensor.  </dd>
+              <dt>readonly attribute AmbientNoiseSensor sensors[]</dt>
               <dd>The list of all ambient noise sensors connected to this device.</dd>
             </dl>
           </section>
           <section>
             <h5>The <a>AmbientNoiseSensor</a> property</h5>
-            <ul>
-              <li>Name: <code>AmbientNoiseSensor</code></li>
-              <li>Enumerable: yes</li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about a single ambient noise sensor available to the system. It is <a>enumerable.</a></p>
+
             <dl title="[NoInterfaceObject] interface AmbientNoiseSensor" class="idl">
               <dt>readonly attribute DOMString info</dt>
               <dd>A free-form string describing this device.</dd>
@@ -1067,18 +1026,16 @@
           <h4>Ambient Temperature</h4>
           <section>
             <h5>The <a>AmbientTemperature</a> Property</h5>
-            <ul>
-              <li>Name: <code>AmbientTemperature</code></li>
-              <li>Enumerable: no</li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about the temperature around the device.</p>
+
             <dl title="[NoInterfaceObject] interface AmbientTemperature" class="idl">
               <dt>readonly attribute float value</dt>
               <dd>The overall ambient temperature level around the
               device. The value is normalised from the minimum and maximum
               temperature level that this device can report to 0 and
               1.</dd>
-              <dt>readonly attribute sequence&lt;Thermometer&gt; thermometers</dt>
+              <dt>readonly attribute Thermometer thermometers[]</dt>
               <dd>The list of all external thermometers connected to this device</dd>
             </dl>
           </section>
@@ -1090,23 +1047,23 @@
           <h4>Ambient Atmospheric Pressure</h4>
           <section>
             <h5>The <a>AmbientAtmosphericPressure</a> Property</h5>
-            <ul>
-              <li>Name: <code>AmbientAtmosphericPressure</code></li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about the atmospheric pressure around the device.</p>
+
             <dl title="[NoInterfaceObject] interface AmbientAtmosphericPressure" class="idl">
               <dt>readonly attribute float pressure</dt>
               <dd>The estimated atmospheric pressure around this device, in kiloPascal (kPa)</dd>
-              <dt>readonly attribute sequence&lt;Barometer&gt; barometers</dt>
+              <dt>readonly attribute Barometer barometers[]</dt>
               <dd>The list of all the barometers connected to this device</dd>
             </dl>
           </section>
+
           <section>
             <h5>The <a>Barometer</a> Property</h5>
-            <ul>
-              <li>Name: <code>Barometer</code></li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about a single
+            barometer available to the system. It is
+            <a>enumerable.</a></p>
 
             <dl title="[NoInterfaceObject] interface Barometer" class="idl">
               <dt>readonly attribute DOMString id</dt>
@@ -1129,35 +1086,39 @@
           <h4>Proximity</h4>
           <section>
             <h5>The <a>Proximity</a> Property</h5>
-            <ul>
-              <li>Name: <code>Proximity</code></li>
-              <li>Enumerable: no</li>
-              <li class="issue">Corresponding DCO property: <a href=""></a></li>
-            </ul>
+
+            <p>This property provides information about the distance of objects around the device.</p>
+
             <dl title="[NoInterfaceObject] interface Proximity" class="idl">
               <dt>readonly attribute float distance</dt>
               <dd>The distance from the device to the nearest object, as determined by this device's proximity sensors, in meters (m)</dd>
-              <dt>readonly attribute sequence&lt;ProximitySensor&gt; sensors</dt>
+              <dt>readonly attribute ProximitySensor sensors[]</dt>
               <dd>The list of all proximity sensors available to this device</dd>
             </dl>
           </section>
 
           <section>
             <h4>The <a>ProximitySensor</a> Property</h4>
+
+            <p>This property provides information about a single
+            proximity sensor available to the system. It is
+            <a>enumerable</a>.</p>
+
             <dl title="[NoInterfaceObject] interface ProximitySensor" class="idl">
-              <ul>
-                <li>Name: <code>ProximitySensor</code></li>
-                <li>Enumerable: yes</li>
-                <li class="issue">Corresponding DCO property: <a href=""></a></li>
-              </ul>
               <dt>readonly attribute DOMString id</dt>
-              <dd>A free-form string identifying this sensor. The value of this element MUST be unique within the list reported in a <a>Proximity</a> object.</dd>
+              <dd>A free-form string identifying this sensor. The
+              value of this element MUST be unique within the list
+              reported in a <a>Proximity</a> object.</dd>
+
               <dt>readonly attribute DOMString info</dt>
               <dd>A free-form string describing this device.</dd>
+
               <dt>readonly attribute float distance</dt>
               <dd>The distance between this sensor and the nearest object, in meters</dd>.
+
               <dt>readonly attribute float minProximity</dt>
               <dd>The maximum proximity that this device can report, in meters</dd>
+
               <dt>readonly attribute float maxProximity</dt>
               <dd>The minimum proximity that this device can report, in meters</dd>
             </dl>
@@ -1166,124 +1127,155 @@
       </section>
       <!-- ********* /Sensors ************************************************************** -->
 
-
-      <p class="issue">Add video/audio</p>
+      <p class="issue">Add video/input/vibrate</p>
 
       <!-- ********* Audio ************************************************************** -->
-      <!--
-          <section>
-          <h2>Audio</h2>
-          <p>These property expose the device's audio capabilities.</p>
-          <p class="issue">TODO: volume control - Does volume belong to this specification anyway, or capture? Similarly for Video Input Devices: zoom, flash, Depth of field, etc.</p>
-          <section>
+      <section>
+        <h2>Audio</h2>
+        <p>The properties below expose the device's audio capabilities.</p>
+
+        <section>
           <h4>ECMAScript Example</h4>
-          <pre class="sh_javascript example">
-          </pre>
-          </section>
-          <section>
+          <pre class="sh_javascript example">//Enumerate the active microphones on the system
+system.audio.get("Audio", success);
+
+function isMicrophone(device, index, array) {
+  return device.type===device.TYPE_MICROPHONE;
+}
+
+function success(audio) {
+  var activeMicrophones = audio.outputDevices.filter(isMicrophone);
+}</pre>
+        </section>
+        <section>
           <h4>The <a>Audio</a> property</h4>
-          <ul>
-          <li>Value type: <code>Audio</code></li>
-          <li class="issue">Corresponding DCO property: <a href=""></a></li>
-          </ul>
 
-<dl title='[NoInterfaceObject] interface Audio' class='idl'>
-<dt>readonly attribute DOMString info</dt>
-<dd>Audio architecture information.</dd>
-<dt>readonly attribute float inputVolume</dt>
-<dd>A normalized value (from 0 to 1) representing the current volume of the input device currently in use
-<p class="issue">Or should we have instead an output volume for each microphone and linein?</p>
-</dd>
+          <p>This property exposes information on the audio capabilities of this system</p>
 
-<dt>readonly attribute sequence&lt;AudioCodec&gt; codecs</dt>
-<dd>Audio codecs on this device</dd>
-<dt>readonly attribute sequence&lt;AudioOutputDevice&gt; audioOutputs</dt>
-<dd>Audio output attached to this device</dd>
-<dt>readonly attribute sequence&lt;AudioInputDevice&gt; audioInputs</dt>
-<dd>Audio inputs</dd>
-</dl>
-<dl title='[NoInterfaceObject] interface AudioCodec' class='idl'>
-<dt>readonly attribute DOMString info</dt>
-<dd>
-Free-form string containing information on this codec's implementation. Examples: "Microsoft G.711", "LAME".
-</dd>
-<dt>readonly attribute DOMString compFormat</dt>
-<dd>
-Free-form information on the compression format. Examples : "G.711", "MP3", "MIDI"
-</dd>
-<dt>readonly attribute boolean encode</dt>
-<dd>
-<code>true</code> if this device supports audio encoding, <code>false</code> otherwise.
-</dd>
-<dt>readonly attribute boolean decode</dt>
-<dd>
-<code>true</code> if this device supports audio decoding, <code>false</code> otherwise.
-</dd>
-</dl>
-<dl title='[NoInterfaceObject] interface AudioInputDevice' class='idl'>
-<dt>const unsigned short UNKNOWN=0</dt>
-<dd><code>type</code> is set to this value when the type of this device is unknown</dd>
-<dt>const unsigned short MICROPHONE=1</dt>
-<dd><code>type</code> is set to this value when this device is a microphone</dd>
-<dt>const unsigned short LINE_IN=2</dt>
-<dd><code>type</code> is set to this value when this device is a line-in connector</dd>
-<dt>readonly attribute unsigned short type</dt>
-<dd>The type of audio input device. The value is one of the constants defined for this type.</dd>
-<dt>readonly attribute DOMString info</dt>
-<dd>
-Free-form text describing this device.
-</dd>
-<dt>readonly attribute unsigned int freqRangeLow</dt>
-<dd>
-Frequency range, low value, in Hz
-</dd>
-<dt>readonly attribute unsigned int freqRangeHigh</dt>
-<dd>
-Frequency range, high value, in Hz
-</dd>
-<dt>readonly attribute float volume</dt>
-<dd>
-A normalized value (from 0 to 1) representing the current volume of this device
-</dd>
+          <p class="note">These properties do not provide volume
+          controls. An application will have to use HTML5's volume
+          control attributes.</p>
+          
+          <dl title='[NoInterfaceObject] interface Audio' class='idl'>
+            <dt>readonly attribute AudioCodec codecs[]</dt>
+            <dd>Audio codecs on this device</dd>
 
-</dl>
-<dl title='[NoInterfaceObject] interface AudioOutputDevice' class='idl'>
-<dt>const unsigned short UNKNOWN=0</dt>
-<dd><code>type</code> is set to this value when the type of this device is unknown</dd>
-<dt>const unsigned short SPEAKER=1</dt>
-<dd><code>type</code> is set to this value when this device is a loud speaker</dd>
-<dt>const unsigned short HEADPHONES=2</dt>
-<dd><code>type</code> is set to this value when this device is a pair of headphones</dd>
-<dt>readonly attribute unsigned short type</dt>
-<dd>
-The type of audio input device. The value is one of the constants defined for this type.
-</dd>
-<dt>readonly attribute DOMString info</dt>
-<dd>
-Free-form text describing this device.
-</dd>
-<dt>readonly attribute unsigned int freqRangeLow</dt>
-<dd>
-Frequency range, low value, in Hz
-</dd>
-<dt>readonly attribute unsigned int freqRangeHigh</dt>
-<dd>
-Frequency range, high value, in Hz
-</dd>
-<dt>readonly attribute float volume</dt>
-<dd>
-A normalized value (from 0 to 1) representing the current volume of this device
-</dd>
-</dl>
+            <dt>readonly attribute AudioOutputDevice outputDevices[]</dt>
+            <dd>Audio output devices attached to this device</dd>
+
+            <dt>readonly attribute AudioInputDevice inputDevices[]</dt>
+            <dd>Audio input devices attached to this</dd>
+          </dl>
+        </section>
+        <section>
+          <h4>The <a>AudioCodec</a> Property</h4>
+
+          <p>This property exposes information on a single audio codec available to this system. Is it <a>enumerable</a>.</p>
+
+          <dl title='[NoInterfaceObject] interface AudioCodec' class='idl'>
+            <dt>readonly attribute DOMString info</dt>
+            <dd>Free-form string containing information on this
+            codec's implementation. Examples: "Microsoft G.711",
+            "LAME".</dd>
+
+            <dt>readonly attribute DOMString compFormat</dt>
+
+            <dd>Free-form information on the compression
+            format. Examples : "G.711", "MP3", "MIDI"</dd>
+
+            <dt>readonly attribute boolean encode</dt>
+            <dd><code>true</code> if this device supports audio
+            encoding, <code>false</code> otherwise.</dd>
+
+            <dt>readonly attribute boolean decode</dt>
+            <dd><code>true</code> if this device supports audio
+            decoding, <code>false</code> otherwise.</dd>
+          </dl>
+        </section>
+
+        <section>
+          <h4>The <a>AudioInputDevice</a> Property</h4>
+
+          <p>This property exposes information on a single audio input
+          device available to this system. It is
+          <a>enumerable</a>.</p>
+
+          <dl title='[NoInterfaceObject] interface AudioInputDevice' class='idl'>
+            <dt>const unsigned short TYPE_UNKNOWN=0</dt>
+            <dd><code>type</code> is set to this value when the type of this device is unknown</dd>
+            <dt>const unsigned short TYPE_MICROPHONE=1</dt>
+            <dd><code>type</code> is set to this value when this device is a microphone</dd>
+            <dt>const unsigned short TYPE_LINEIN=2</dt>
+            <dd><code>type</code> is set to this value when this device is a line-in connector</dd>
+
+            <dt>readonly attribute unsigned short type</dt>
+            <dd>The type of audio input device. The value is one of
+            the constants defined for this type.</dd>
+
+            <dt>attribute boolean active</dt>
+            <dd>Indicates if the device is currently active, i.e. if
+            any sound recording will be made using this device</dd>
+
+            <dt>readonly attribute DOMString info</dt>
+            <dd>Free-form text describing this device.</dd>
+
+            <dt>readonly attribute DOMString id</dt>
+            <dd>A free-form string identifying this device. The value
+            of this element MUST be unique within the list reported in
+            an <a>Audio</a> object.</dd>
+
+            <dt>readonly attribute unsigned int freqRangeLow</dt>
+            <dd>Frequency range, low value, in Hz</dd>
+
+            <dt>readonly attribute unsigned int freqRangeHigh</dt>
+            <dd>Frequency range, high value, in Hz</dd>
+          </dl>
+        </section>
+        <section>
+          <h4>The <a>AudioOutputDevice</a> Property</h4>
+
+          <p>This property exposes information on a single audio
+          output device available to this system. It is
+          <a>enumerable</a>.</p>
+
+          <dl title='[NoInterfaceObject] interface AudioOutputDevice' class='idl'>
+            <dt>const unsigned short TYPE_UNKNOWN=0</dt>
+            <dd><code>type</code> is set to this value when the type of this device is unknown</dd>
+            <dt>const unsigned short TYPE_SPEAKER=1</dt>
+            <dd><code>type</code> is set to this value when this device is a loud speaker</dd>
+            <dt>const unsigned short TYPE_HEADPHONES=2</dt>
+            <dd><code>type</code> is set to this value when this device is a pair of headphones</dd>
+            <dt>readonly attribute unsigned short type</dt>
+            <dd>The type of audio output device. The value is one of the constants defined for this type.</dd>
+
+            <dt>readonly attribute DOMString info</dt>
+            <dd>Free-form text describing this device.</dd>
+
+            <dt>readonly attribute DOMString id</dt>
+            <dd>A free-form string identifying this device. The value
+            of this element MUST be unique within the list reported in
+            an <a>Audio</a> object.</dd>
+
+            <dt>attribute boolean active</dt>
+            <dd>Indicates if the device is currently active, i.e. if
+            any sound recording will be made using this device</dd>
+
+            <dt>readonly attribute unsigned int freqRangeLow</dt>
+            <dd>Frequency range, low value, in Hz</dd>
+
+            <dt>readonly attribute unsigned int freqRangeHigh</dt>
+            <dd>Frequency range, high value, in Hz</dd>
+          </dl>
+          
+        </section>
+      </section>
 
-</section>
-</section>
-      -->
       <!-- ********* /Audio ************************************************************** -->
 
 
 
       <!-- ********* PropertyTemplate ************************************************************** -->
+<!--
       <section>
         <h2>PropertyTemplate</h2>
         <p>PropertyTemplate</p>
@@ -1297,18 +1289,18 @@
           <h4>PropertyTemplate</h4>
           <ul>
             <li>Name: <code>PropertyTemplate</code></li>
-            <li class="issue">Corresponding DCO property: <a href=""></a></li>
           </ul>
           <dl title="[NoInterfaceObject] interface Template" class="idl">
             <dt>const unsigned int foo = 0</dt>
             <dd>...</dd>
             <dt>readonly attribute float bar</dt>
             <dd>..</dd>
-            <dt>readonly attribute sequence&lt;..&gt; baz</dt>
+            <dt>readonly attribute Baz baz[]</dt>
             <dd>qux</dd>
           </dl>
         </section>
       </section>
+-->
       <!-- ********* /PropertyTemplate ************************************************************** -->
 
       <!--

Received on Thursday, 17 December 2009 12:09:15 UTC