2009/dap/system-info Overview.html,1.78,1.79

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

Modified Files:
	Overview.html 
Log Message:
- renamed SystemDevice to Property, and make all properties inherit from it
- removed the name attribute of codec properties, as name is now inherited from Property
- noted ensuing issue about empty codec properties
- noted issue of whether an indication of active output/input devices should be added, at least for some of them
- requirements apply to the API, not user agents
- updated some requirements (removed some that were deemed too detailed)


Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/system-info/Overview.html,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -d -r1.78 -r1.79
--- Overview.html	17 Feb 2010 14:55:49 -0000	1.78
+++ Overview.html	18 Feb 2010 10:07:40 -0000	1.79
@@ -433,14 +433,14 @@
 
       <!--******************Device ************************************************-->
       <section>
-        <h2>The <a>SystemDevice</a> interface</h2>
-          <p>This interface gathers attributes shared by all properties describing system devices (i.e. all the <a>enumerable</a> properties), e.g. keyboards, cameras or screens.</p>
-          <dl title='[NoInterfaceObject, PrototypeRoot] interface SystemDevice' class='idl'>
+        <h2>The <a>Property</a> interface</h2>
+          <p>This interface gathers attributes shared by all properties.</p>
+          <dl title='[NoInterfaceObject, PrototypeRoot] interface SystemProperty' class='idl'>
             <dt>readonly attribute DOMString? info</dt>
-            <dd>A free-form string describing this device, e.g. the name of its manufacturer.</dd>
+            <dd>A free-form string describing an instance of a system property, e.g. the name of a CPU manufacturer.</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 the object enumerating this device (e.g. the <a>microphones</a> attribute of <a>InputDevices</a>).</dd>
+            <dt>readonly attribute DOMString? id</dt>
+            <dd>A free-form string identifying an instance of a system property. If this property is <a>enumerable</a>, then the value of this attribute MUST be unique within the list reported in the object enumerating this device (e.g. the <a>microphones</a> attribute of the <a>InputDevices</a> property). If the instance is that of a non-enumerable property (e.g. <a>CPU</a> or <a>AmbientNoise</a>, then this attribute MAY be null.</dd>
           </dl>
       </section>
 
@@ -470,7 +470,7 @@
           <p class="issue">Find the corresponding DCO properties everywhere</p>
 
           
-          <dl title="[NoInterfaceObject] interface Power" class="idl">
+          <dl title="[NoInterfaceObject] interface Power : SystemProperty" class="idl">
             <dt>readonly attribute float? level</dt>
             <dd>
               Specifies how much the internal power source remains,
@@ -536,7 +536,7 @@
           <h4>The <a>CPU</a> Property</h4>
           <p>This property reflects the state of the CPUs available to this system.</p>
 
-          <dl title="[NoInterfaceObject] interface CPU" class="idl">
+          <dl title="[NoInterfaceObject] interface CPU : SystemProperty" class="idl">
             <dt>readonly attribute float load</dt>
             <dd>
               This attribute indicates the current CPU load, as a
@@ -573,7 +573,7 @@
           
           <p>This property provides information on the global temperature state of the system</p>
 
-          <dl title="[NoInterfaceObject] interface Thermal" class="idl">
+          <dl title="[NoInterfaceObject] interface Thermal : SystemProperty" class="idl">
             <dt>readonly attribute float state</dt>
             <dd>
               This attribute indicates the current thermal status, as a
@@ -615,7 +615,7 @@
 
           <p>This property provides information on the system's connection to the network</p>
 
-          <dl title='[NoInterfaceObject] interface Network' class='idl'>
+          <dl title='[NoInterfaceObject] interface Network : SystemProperty' class='idl'>
             <dt>const unsigned short TYPE_UNKNOWN = 0</dt>
             <dd>The API is unable to determine the network technology.</dd>
 
@@ -748,7 +748,7 @@
           <h4>The SensorReading interface</h4>
           <p>The <a>SensorReading</a> interface is used as a general interface for sensor values. All the success callbacks for the properties defined in this section return an instance of this interface, with attribute values corresponding to the measurement leading to the callback being invoked.</p>
 
-          <dl title="[NoInterfaceObject] interface SensorReading" class="idl">
+          <dl title="[NoInterfaceObject] interface SensorReading : SystemProperty" class="idl">
             <dt>readonly attribute float? value</dt>
             <dd>The numerical value of this sensor, at the time of sampling. Details on the meaning of the number and reported as well as its unit are given for each sensor property defined below.</dd>
               <dt>readonly attribute float? min</dt>
@@ -883,7 +883,7 @@
 
           <p>This property exposes information about the audio/video codecs available to this system</p>
 
-          <dl title='[NoInterfaceObject] interface AVCodecs' class='idl'>
+          <dl title='[NoInterfaceObject] interface AVCodecs : SystemProperty' class='idl'>
             <dt>readonly attribute AudioCodec[] audioCodecs</dt>
             <dd>Audio codecs on this device</dd>
 
@@ -896,7 +896,7 @@
 
           <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 : SystemDevice' class='idl'>
+          <dl title='[NoInterfaceObject] interface AudioCodec : SystemProperty' class='idl'>
             <dt>readonly attribute DOMString compFormat</dt>
 
             <dd>Free-form information on the compression
@@ -913,7 +913,7 @@
         </section>
           <section>            
             <h3>The <a>VideoCodec</a> Property</h3>                
-            <dl title='[NoInterfaceObject] interface VideoCodec : SystemDevice' class='idl'>
+            <dl title='[NoInterfaceObject] interface VideoCodec : SystemProperty' class='idl'>
               
               <dt>readonly attribute sequence&lt;DOMString> compFormats</dt>
               <dd>Supported compression format names. Example : "AVI", "ogg"</dd>
@@ -937,26 +937,25 @@
 
           <section>
             <h3>The <a>VideoProfile</a> Property</h3>
-
-            <dl title='[NoInterfaceObject] interface VideoProfile' class='idl'>
-              <dt>readonly attribute DOMString name</dt>
-              <dd>Profile name. Examples : "Simple","Main", "High", "Advanced"</dd>
+            <p>The name attribute of this property (inherited from <a>SystemProperty</a>) describes a video profile. For example: "Simple", "Main", "High" or "Advanced"</p>
+            <dl title='[NoInterfaceObject] interface VideoProfile : SystemProperty' class='idl'>
             </dl>
+
+            <p class="issue">Those properties could be replaced by an array of DOMString in VideoCodec. The reason they are currently defined as a separate property is that we may add specific fields later. But is that ever going to be necessary?</p>
+
           </section>
 
           <section>
             <h3>The <a>FrameType</a> Property</h3>
-            <dl title='[NoInterfaceObject] interface FrameType' class='idl'>
-              <dt>readonly attribute DOMString name</dt>
-              <dd>Frame type name. Examples : "PROGRESSIVE","INTERLACED"</dd>
+            <p>The name attribute of this property (inherited from <a>SystemProperty</a>) describes a frame type. For example: "Progressive" or "Interlaced"</p>
+            <dl title='[NoInterfaceObject] interface FrameType : SystemProperty' class='idl'>
             </dl>
           </section>
 
           <section>
             <h3>The <a>RateControl</a> Property</h3>
-            <dl title='[NoInterfaceObject] interface RateControl' class='idl'>
-              <dt>readonly attribute DOMString name</dt>
-              <dd>Rate control type name. Examples : "CBR","VBR"</dd>
+            <p>The name attribute of this property (inherited from <a>SystemProperty</a>) describes a rate control. For example: "CBR" or "VBR"</p>
+            <dl title='[NoInterfaceObject] interface RateControl : SystemProperty' class='idl'>
             </dl>
           </section>
         </section>
@@ -983,7 +982,7 @@
           <section>
             <h4>The <a>Storage</a> Property</h4>
             <p>This property exposes the data storage devices connected to this system.</p>
-            <dl title="interface Storage" class="idl">
+            <dl title="interface Storage : SystemProperty" class="idl">
               <dt>readonly attribute StorageUnit[] units</dt>
               <dd>The array of storage units connected to this device</dd>
             </dl>
@@ -992,7 +991,7 @@
           <section>
             <h4>The <a>StorageUnit</a> Property</h4>
             <p>This property exposes a single storage device connected to this system. It is <a>enumerable</a>.</p>
-            <dl title="interface StorageUnit : SystemDevice" class="idl">
+            <dl title="interface StorageUnit : SystemProperty" 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 to this API.</dd>
               <dt>const unsigned short TYPE_HARDDISK=1</dt>
@@ -1041,14 +1040,16 @@
             <h4>The <a>OutputDevices</a> Property</h4>
               
             <p>This property provides information on the output devices (displays, audio) available on this system</p>
-              
-            <dl title='[NoInterfaceObject] interface OutputDevices' class='idl'>
+
+            <dl title='[NoInterfaceObject] interface OutputDevices : SystemProperty' class='idl'>
               <dt>readonly attribute Display[] displays</dt>
               <dd>An array of all the display devices connected to this system</dd>
 
               <dt>readonly attribute Audio[] audioDevices</dt>
               <dd>An array of all the output audio devices connected to this system</dd>
             </dl>
+
+            <p class="issue">There is no indication of current/active display(s) or audio(s). Is that necessary/possible/desired?</p>
               
           </section>
             
@@ -1059,7 +1060,7 @@
             
             <p>The <a>Display</a> interface defined below inherits from the <a>Screen</a> interface as defined in [[!CSSOM-VIEW]]</p>
             
-            <dl title="[NoInterfaceObject] interface Display : Screen, SystemDevice" class="idl">
+            <dl title="[NoInterfaceObject] interface Display : Screen, SystemProperty" class="idl">
               <dt>const unsigned short ORIENTATION_UNKNOWN = 0</dt>
               <dd>The device is not able to determine its orientation.</dd>
               <dt>const unsigned short ORIENTATION_LANDSCAPE = 1</dt>
@@ -1106,7 +1107,7 @@
           output device available to this system. It is
           <a>enumerable</a>.</p>
           
-          <dl title='[NoInterfaceObject] interface AudioDevice : SystemDevice' class='idl'>
+          <dl title='[NoInterfaceObject] interface AudioDevice : SystemProperty' 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>
@@ -1153,7 +1154,7 @@
           <section>
             <h3>The <a>InputDevices</a> Property</h3>
             
-            <dl title='interface InputDevices' class='idl'>
+            <dl title='interface InputDevices : SystemProperty' class='idl'>
               <dt>readonly attribute PointingDevice[] pointingDevices</dt>
               <dd>The list of physical pointing devices attached (e.g. mouse, tablet, touchscreens)</dd>
               
@@ -1171,7 +1172,7 @@
           <section>
             <h4>The <a>PointingDevice</a> Property</h4>
             <p>This property exposes the pointing devices (mouse, touch screen, gesture sensor). It is <a>enumerable</a>.</p>
-            <dl title="interface PointingDevice : SystemDevice" class="idl">
+            <dl title="interface PointingDevice : SystemProperty" class="idl">
               <dt>const unsigned short TYPE_UNKNOWN=0</dt>
               <dd>When the <a>type</a> attribute has this value, then the type of this pointing device is unknown.</dd>
               <dt>const unsigned short TYPE_MOUSE=1</dt>
@@ -1193,7 +1194,7 @@
           <section>
             <h4>The <a>Keyboard</a> Property</h4>
             <p>This property exposes the keyboards and keypads connected to this system. It is <a>enumerable</a>.</p>
-            <dl title="interface Keyboard : SystemDevice" class="idl">
+            <dl title="interface Keyboard : SystemProperty" class="idl">
               <dt>const unsigned short TYPE_UNKNOWN=0</dt>
               <dd>When the <a>type</a> attribute has this value, then this device is of a type unknown to this API.</dd>
               <dt>const unsigned short TYPE_KEYBOARD=1</dt>
@@ -1210,7 +1211,7 @@
           <section>
             <h4>The <a>Camera</a> Property</h4>
             <p>This property exposes the cameras connected to this system. It is <a>enumerable</a>.</p>
-            <dl title="interface Camera : SystemDevice" class="idl">
+            <dl title="interface Camera : SystemProperty" class="idl">
               <dt>readonly attribute boolean supportsVideo</dt>
               <dd><code>true</code> when this device supports recording video, <code>else</code> otherwise.</dd>
 
@@ -1229,7 +1230,7 @@
           <section>
             <h4>The <a>Microphone</a> Property</h4>
             <p>This property exposes the microphones connected to this system. It is <a>enumerable</a>.</p>
-            <dl title="interface Microphone : SystemDevice" class="idl">
+            <dl title="interface Microphone : SystemProperty" 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 to this API.</dd>
               <dt>const unsigned short TYPE_MICROPHONE=1</dt>
@@ -1279,104 +1280,94 @@
         <section>
           <h4>Power</h4>
           <ul>
-            <li>A conforming implementation MUST provide a method to retrieve one-shot power source information. </li>
-            <li>A conforming implementation MUST provide a method to retrieve one-shot power remaining information. </li>
-            <li>A conforming implementation SHOULD provide a power source change events. </li>
-            <li>A conforming implementation SHOULD provide a power level change events. </li>
-            <li>A conforming implementation SHOULD provide power level change events based on thresholds. </li>
+            <li>The System Information API MUST provide a method to retrieve one-shot power source information. </li>
+            <li>The System Information API MUST provide a method to retrieve one-shot power remaining information. </li>
+            <li>The System Information API SHOULD provide a power level change events. </li>
+            <li>The System Information API SHOULD provide power level change events based on thresholds. </li>
           </ul>
         </section>
         <section>
           <h4>CPU</h4>
           <ul>
-            <li>A conforming implementation MUST provide a method to retrieve information about
-            the number of concurrent threads that can run on the CPU.</li>
-            <li>A conforming implementation MUST provide a method to retrieve information about
-            the CPU utilization.</li>
-            <li>A conforming implementation SHOULD provide a method to retrieve information about
-            the current CPU frequency.</li>
-            <li>A conforming implementation SHOULD provide a method to retrieve information about
-            the maximum CPU frequency.</li>
-            <li>A conforming implementation SHOULD provide a method to retrieve information about
-            the CPU brand.</li>
-            <li>A conforming implementation MAY provide a methods to retrieve additional information about
-            the CPU.</li>
+            <li>The System Information API MUST provide a method to retrieve information about the CPU utilization.</li>
+            <li>The System Information API SHOULD provide a method to retrieve information about the CPU brand.</li>
+            <li>The System Information API MAY provide a methods to retrieve additional information about the CPU.</li>
           </ul>
         </section>
         <section>
           <h4>Display</h4>
           <ul>
-            <li>A conforming implementation SHOULD provide information about the dots-per-inch (DPI) of the display.</li>
-            <li>A conforming implementation SHOULD provide a method to retrieve one-shot screen blank information.</li>
-            <li>A conforming implementation SHOULD provide screen blank events.</li>
-            <li>A conforming implementation MUST provide one-shot display orientation information.</li>
-            <li>A conforming implementation MUST provide display orientation change events.</li>
-            <li>A conforming implementation MUST provide one-shot display brightness information.</li>
-            <li>A conforming implementation MUST provide display brightness change events.</li>
-            <li>A conforming implementation MAY provide information and events about external displays.</li>
-            <li>A conforming implementation MAY provide events about display color depth.</li>
-            <li>A conforming implementation MAY provide information and events about display device refresh rate.</li>
+            <li>The System Information API SHOULD provide information about the dots-per-inch (DPI) of the display.</li>
+            <li>The System Information API SHOULD provide a method to retrieve one-shot screen blank information.</li>
+            <li>The System Information API SHOULD provide screen blank events.</li>
+            <li>The System Information API MUST provide one-shot display orientation information.</li>
+            <li>The System Information API MUST provide display orientation change events.</li>
+            <li>The System Information API MUST provide one-shot display brightness information.</li>
+            <li>The System Information API MUST provide display brightness change events.</li>
+            <li>The System Information API MAY provide information and events about external displays.</li>
+            <li>The System Information API MAY provide events about display color depth.</li>
+            <li>The System Information API MAY provide information and events about display device refresh rate.</li>
           </ul>
         </section>
         <section>
           <h4>Connection</h4>
           <ul>
-            <li> A conforming implementation MUST provide a method to detect the technology that a network bearer uses (e.g. 802.11a, CDMA, WiMAX, etc.)</li>
-            <li>A conforming implementation MUST provide a method to detect the quality of the connection to the network bearer.</li>
-            <li>A conforming implementation MUST provide a method to detect whether a specified service is available. This method SHOULD be asynchronous.</li>
-            <li>A conforming implementation MUST provide a events about the availability of a specified service.</li>
-            <li>A conforming implementation MUST provide a method to detect the quality of the connection to a specified service.</li>
-            <li>A conforming implementation MUST provide a method to detect whether the device currently has a valid network connection. This method SHOULD be synchronous.</li>
-            <li>A conforming implementation MUST provide a method to detect changes in the devices network status (e.g. radio turned on or signal no longer available).</li>
-            <li>A conforming implementation MUST provide information about the current network bearer.</li>
-            <li>A conforming implementation MAY provide information about the default network bearer.</li>
-            <li>A conforming implementation MAY provide information about the preferred network bearer.</li>
-            <li>A conforming implementation MAY provide a method to change the current network bearer.</li>
-            <li>A conforming implementation SHOULD provide a method to detect whether a device that is using a cellular network is currently roaming.</li>
-            <li>A conforming implementation MAY provide a method to detect geolocation based on cell tower triangulation calculations.</li>
-            <li>A conforming implementation SHOULD provide a method to detect the ID of the current network bearer.</li>
-            <li>A conforming implementation SHOULD provide a method to detect the type of encryption in use by a network bearer.</li>
-            <li>A conforming implementation SHOULD provide a method to detect the operator, MMC, and MNC of a PLM Network.</li>
-            <li>A conforming implementation SHOULD provide IP Address Table change events.</li>
-            <li>A conforming implementation SHOULD provide Route Table change events.</li>
-            <li>A conforming implementation MUST provide connected events.</li>
-            <li>A conforming implementation MUST provide disconnected events.</li>
+            <li> The System Information API MUST provide a method to detect the technology that a network bearer uses (e.g. 802.11a, CDMA, WiMAX, etc.)</li>
+            <li>The System Information API MUST provide a method to detect the quality of the connection to the network bearer.</li>
+            <li>The System Information API MUST provide a method to detect whether a specified service is available. This method SHOULD be asynchronous.</li>
+            <li>The System Information API MUST provide a events about the availability of a specified service.</li>
+            <li>The System Information API MUST provide a method to detect the quality of the connection to a specified service.</li>
+            <li>The System Information API MUST provide a method to detect whether the device currently has a valid network connection. This method SHOULD be synchronous.</li>
+            <li>The System Information API MUST provide a method to detect changes in the devices network status (e.g. radio turned on or signal no longer available).</li>
+            <li>The System Information API MUST provide information about the current network bearer.</li>
+            <li>The System Information API MAY provide information about the default network bearer.</li>
+            <li>The System Information API MAY provide information about the preferred network bearer.</li>
+            <li>The System Information API MAY provide a method to change the current network bearer.</li>
+            <li>The System Information API SHOULD provide a method to detect whether a device that is using a cellular network is currently roaming.</li>
+            <li>The System Information API MAY provide a method to detect geolocation based on cell tower triangulation calculations.</li>
+            <li>The System Information API SHOULD provide a method to detect the ID of the current network bearer.</li>
+            <li>The System Information API SHOULD provide a method to detect the type of encryption in use by a network bearer.</li>
+            <li>The System Information API SHOULD provide a method to detect the operator, MMC, and MNC of a PLM Network.</li>
+            <li>The System Information API SHOULD provide IP Address Table change events.</li>
+            <li>The System Information API SHOULD provide Route Table change events.</li>
+            <li>The System Information API MUST provide connected events.</li>
+            <li>The System Information API MUST provide disconnected events.</li>
             
           </ul>
         </section>
         <section>
           <h4>Thermal</h4>
           <ul>
-            <li>A conforming implementation SHOULD provide the ability to list temperature
+            <li>The System Information API SHOULD provide the ability to list temperature
             from multiple thermometers.</li>
-            <li>A conforming implementation SHOULD provide a method to detect the thermal
+            <li>The System Information API SHOULD provide a method to detect the thermal
             target of a thermometer.</li>
-            <li>A conforming implementation MAY provide a method to detect the ID of the 
+            <li>The System Information API MAY provide a method to detect the ID of the 
             thermometer.</li>
-            <li>A conforming implementation MUST provide a method to detect temperature.</li>
-            <li>A conforming implementation SHOULD provide a method to monitor temperature 
+            <li>The System Information API MUST provide a method to detect temperature.</li>
+            <li>The System Information API SHOULD provide a method to monitor temperature 
             changes based on thresholds.</li>
           </ul>
         </section>
         <section>
           <h4>Audio</h4>
           <ul>
-            <li>A conforming implementation MUST provide a list of audio codecs
+            <li>The System Information API MUST provide a list of audio codecs
             available on the device</li>
-            <li>A conforming implementation MUST provide a list of audio output
+            <li>The System Information API MUST provide a list of audio output
             devices (speakers etc.)</li>
-            <li>A conforming implementation MUST provide a list of audio input
+            <li>The System Information API MUST provide a list of audio input
             devices (microphones, software)</li>
-            <li>A conforming implementation SHOULD provide audio architecture
+            <li>The System Information API SHOULD provide audio architecture
             information.</li>
           </ul>
         </section>
         <section>
           <h4>Video</h4>
           <ul>
-            <li>A conforming implementation MUST provide a list of codecs available
+            <li>The System Information API MUST provide a list of codecs available
             on the device.</li>
-            <li>A conforming implementation SHOULD provide video architecture
+            <li>The System Information API SHOULD provide video architecture
             information.</li>
           </ul>
         </section>
@@ -1389,21 +1380,21 @@
         <section>
           <h4>Input</h4>
           <ul>
-            <li>A conforming implementation MUST provide information about the presence of a touch screen.</li>
-            <li>A conforming implementation MUST provide information about the existence of mouse hover events.</li>
-            <li>A conforming implementation SHOULD provide information about the presence of a 
+            <li>The System Information API MUST provide information about the presence of a touch screen.</li>
+            <li>The System Information API MUST provide information about the existence of mouse hover events.</li>
+            <li>The System Information API SHOULD provide information about the presence of a 
             screen that supports multi-touch.</li>
-            <li>A conforming implementation SHOULD provide information about presence of a physical
+            <li>The System Information API SHOULD provide information about presence of a physical
             keyboard.</li>
-            <li>A conforming implementation SHOULD provide information about the size of the 
+            <li>The System Information API SHOULD provide information about the size of the 
             keyboard (e.g. whether it is a thumb keyboard).</li>
-            <li>A conforming implementation MAY allow an application to detect whether an 
+            <li>The System Information API MAY allow an application to detect whether an 
             on-screen keyboard is visible.</li>
-            <li>A conforming implementation MAY allow an application to monitor when an on-screen
+            <li>The System Information API MAY allow an application to monitor when an on-screen
             keyboard appears and disappears.</li>
-            <li>A conforming implementation MAY provide a method for applications to monitor the
+            <li>The System Information API MAY provide a method for applications to monitor the
             attachment and detachment of physical pointing devices.</li>
-            <li>A conforming implementation MAY provide a method for applications to monitor the
+            <li>The System Information API MAY provide a method for applications to monitor the
             attachment and detachment of physical keyboard devices.</li>
           </ul>
         </section>

Received on Thursday, 18 February 2010 10:07:44 UTC