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

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

Modified Files:
	Overview.html 
Log Message:
- refactored: codecs now separate from devices and audio input in input
- added output devices and storage


Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/system-info/Overview.html,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- Overview.html	17 Dec 2009 12:09:11 -0000	1.43
+++ Overview.html	18 Dec 2009 11:21:05 -0000	1.44
@@ -847,6 +847,8 @@
 
 
       <!--******************** Display **********************************-->
+      <p class="issue">Move display and sound in an "output devices" section?</p>
+
       <section>
         <h2>Display</h2>
         <p>This set of properties expose information about the visual display devices available to this system.</p>
@@ -932,6 +934,78 @@
       </section>
       <!-- ********* /display ************************************************************* -->
 
+      <!-- ********* Sound ************************************************************** -->
+      <section>
+        <h2>Sound</h2>
+        <p>The properties below expose the device's audio system.</p>
+
+        <section>
+          <h4>ECMAScript Example</h4>
+          <pre class="sh_javascript example">//Enumerate the active speakers on the system
+system.audio.get("Audio", success);
+
+function isSpeaker(device, index, array) {
+  return device.type===device.TYPE_SPEAKER;
+}
+
+function success(audio) {
+  var activeSpeakers = audio.outputDevices.filter(isSpeaker);
+}</pre>
+        </section>
+        <section>
+          <h4>The <a>Sound</a> property</h4>
+          <p>This property exposes information on the audio capabilities of this system</p>
+
+          <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 Sound' class='idl'>
+            <dt>readonly attribute DOMString? info</dt>
+            <dd>A free-form string describing this system's sound architecture</dd>
+          
+            <dt>readonly attribute AudioOutputDevice outputDevices[]</dt>
+            <dd>Audio output devices attached to this device</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>
 
 
       <!-- ********* Sensors ************************************************************** -->
@@ -1127,44 +1201,29 @@
       </section>
       <!-- ********* /Sensors ************************************************************** -->
 
-      <p class="issue">Add video/input/vibrate</p>
 
-      <!-- ********* Audio ************************************************************** -->
+      <!-- ********* Codecs ************************************************************** -->
       <section>
-        <h2>Audio</h2>
-        <p>The properties below expose the device's audio capabilities.</p>
+        <h2>Audio and Video Codecs</h2>
+        <p>The properties below expose the device's audio and video codec capabilities.</p>
+
+        <p class="issue">It seems better to separate software (codecs) from hardware (displays, speakers, microphone)</p>
 
         <section>
           <h4>ECMAScript Example</h4>
-          <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>
+          <pre class="sh_javascript example"></pre>
         </section>
         <section>
-          <h4>The <a>Audio</a> property</h4>
+          <h4>The <a>AVCodecs</a> property</h4>
 
-          <p>This property exposes information on the audio capabilities of this system</p>
+          <p>This property exposes information about the audio/video codecs available to this system</p>
 
-          <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>
+          <dl title='[NoInterfaceObject] interface AVCodecs' class='idl'>
+            <dt>readonly attribute AudioCodec audioCodecs[]</dt>
             <dd>Audio codecs on this device</dd>
 
-            <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>
+            <dt>readonly attribute VideoCodec videoCodecs[]</dt>
+            <dd>Audio codecs on this device</dd>
           </dl>
         </section>
         <section>
@@ -1192,388 +1251,246 @@
             decoding, <code>false</code> otherwise.</dd>
           </dl>
         </section>
+          <section>            
+            <h3>The <a>VideoCodec</a> Property</h3>                
+            <dl title='[NoInterfaceObject] interface VideoCodec' class='idl'>
+              
+              <dt>readonly attribute DOMString info</dt>
+              <dd>Freeform string describing this video codec. Example : "Indeo Video" or "libtheora"</dd>
+              <dt>readonly attribute DOMString id</dt>
+              <dd>A free-form string identifying this codec. The value of this element MUST be unique within the list reported by the <a>codecs</a> attribute of a <a>Video</a> object.</dd>
+              <dt>readonly attribute sequence DOMString compFormats</dt>
+              <dd>Supported compression format names. Example : "AVI", "ogg"</dd>
 
-        <section>
-          <h4>The <a>AudioInputDevice</a> Property</h4>
+              <dt>readonly attribute sequence DOMString containerFormats</dt>
+              <dd>Supported container format names. Example : "AVI", "ogg"</dd>
 
-          <p>This property exposes information on a single audio input
-          device available to this system. It is
-          <a>enumerable</a>.</p>
+              <dt>readonly attribute boolean hwAccel</dt>
+              <dd><code>true</code> if the codec includes hardware acceleration support, <code>false</code> otherwise.</dd>
 
-          <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 sequence VideoProfile profiles</dt>
+              <dd>The list of profiles available for this codec.</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 sequence FrameType frametypes</dt>
+              <dd>The list of frame types supported by the codec</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 sequence RateControl ratetypes</dt>
+              <dd>The list of rate control options supported by the codec</dd>
+            </dl>
+          </section>
 
-            <dt>readonly attribute DOMString info</dt>
-            <dd>Free-form text describing this device.</dd>
+          <section>
+            <h3>The <a>VideoProfile</a> Property</h3>
 
-            <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>
+            <dl title='[NoInterfaceObject] interface VideoProfile' class='idl'>
+              <dt>readonly attribute DOMString name</dt>
+              <dd>Profile name. Examples : "Simple","Main", "High", "Advanced"</dd>
+            </dl>
+          </section>
 
-            <dt>readonly attribute unsigned int freqRangeLow</dt>
-            <dd>Frequency range, low value, in Hz</dd>
+          <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>
+            </dl>
+          </section>
 
-            <dt>readonly attribute unsigned int freqRangeHigh</dt>
-            <dd>Frequency range, high value, in Hz</dd>
-          </dl>
+          <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>
+            </dl>
+          </section>
         </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>
+        <!-- ********* /Codecs ************************************************************** -->
 
-            <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>
+        <!-- ********* Input ***************************************************************** -->
+        <section>
+          <h3>Input Devices</h3>
+          
+          <p>Note: the watchable attributes only reflect the plugging/unplugging of hardware</p>
+          <p class="issue">Description to Complete</p>
+          
+          <section>
+            <h3>The <a>InputDevices</a> Property</h3>
+            
+            <dl title='interface InputDevices' class='idl'>
+              <dt>readonly attribute PointingDevice pointingDevices[]</dt>
+              <dd>The list of physical pointing devices attached (e.g. mouse, tablet, touchscreens)</dd>
+              
+              <dt>readonly attribute Keyboard keyboards[]</dt>
+              <dd>The list of keyboards attached</dd>
+              
+              <dt>readonly attribute Camera cameras[]</dt>
+              <dd>The list of cameras attached</dd>
+              
+              <dt>readonly attribute Microphone microphones[]</dt>
+              <dd>The list of cameras attached</dd>
+            </dl>
+          </section>
+          
+          <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" 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>
+              <dd>When the <a>type</a> attribute has this value, then this device is a mouse</dd>
+              <dt>const unsigned short TYPE_TOUCHSCREEN=2</dt>
+              <dd>When the <a>type</a> attribute has this value, then this device is a touch screen</dd>
+              <dt>const unsigned short TYPE_LIGHTPEN=3</dt>
+              <dd>When the <a>type</a> attribute has this value, then this device is a light pen</dd>
+              <dt>const unsigned short TYPE_GESTURE=4</dt>
+              <dd>When the <a>type</a> attribute has this value, then this device is a gesture device</dd>
+              <dt>const unsigned short TYPE_TABLET=5</dt>
+              <dd>When the <a>type</a> attribute has this value, then this device is a graphics tablet</dd>
+              <dt>readonly attribute unsigned short type</dt>
+              <dd>The type of pointing device. The value is one of the constants defined for this type.</dd>
+              <dt>readonly attribute DOMString info</dt>
+              <dd>A free-form string 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 the <a>pointingDevices</a> attribute of an <a>InputDevice</a> object.</dd>
+              <dt>readonly attribute boolean supportsMultiTouch</dt>
+              <dd><code>true</code> when this device suports the multi-touch method of interaction, <code>else</code> otherwise.</dd>
+            </dl>
+          </section>
+          <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" 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>
+              <dd>When the <a>type</a> attribute has this value, then this device is a full keyboard</dd>
+              <dt>const unsigned short TYPE_KEYPAD=2</dt>
+              <dd>When the <a>type</a> attribute has this value, then this device is a keypad</dd>
+              <dt>readonly attribute unsigned short type</dt>
+              <dd>The type of pointing 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>A free-form string 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 the <a>keyboards</a> attribute of an <a>InputDevice</a> object.</dd>
 
-            <dt>readonly attribute unsigned int freqRangeLow</dt>
-            <dd>Frequency range, low value, in Hz</dd>
+              <dt>readonly attribute boolean isHardware</dt>
+              <dd><code>true</code> when this device is a physical keyboard, <code>else</code> if it is a software keyboard.</dd>
+            </dl>
+          </section>
 
-            <dt>readonly attribute unsigned int freqRangeHigh</dt>
-            <dd>Frequency range, high value, in Hz</dd>
-          </dl>
-          
-        </section>
-      </section>
+          <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" class="idl">
+              <dt>readonly attribute DOMString info</dt>
+              <dd>A free-form string 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 the <a>cameras</a> attribute of an <a>InputDevice</a> object.</dd>
 
-      <!-- ********* /Audio ************************************************************** -->
+              <dt>readonly attribute boolean supportsVideo</dt>
+              <dd><code>true</code> when this device suports recording video, <code>else</code> otherwise.</dd>
 
+              <dt>readonly attribute boolean hasFlash</dt>
+              <dd><code>true</code> when this device suports has a flash, <code>else</code> otherwise.</dd>
 
+              <dt>readonly attribute unsigned int sensorPixels</dt>
+              <dd>The number of image sensor elements (pixels) of this camera</dd>
 
-      <!-- ********* PropertyTemplate ************************************************************** -->
-<!--
-      <section>
-        <h2>PropertyTemplate</h2>
-        <p>PropertyTemplate</p>
-        <section>
-          <h4>ECMAScript Example</h4>
-          <pre class="sh_javascript example">
-            // PropertyTemplate
-          PropertyTemplate</pre>
-        </section>
-        <section>
-          <h4>PropertyTemplate</h4>
-          <ul>
-            <li>Name: <code>PropertyTemplate</code></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 Baz baz[]</dt>
-            <dd>qux</dd>
-          </dl>
-        </section>
-      </section>
--->
-      <!-- ********* /PropertyTemplate ************************************************************** -->
+              <dt>readonly attribute float? maxZoomFactor</dt>
+              <dd>The maximum zoom factor of this camera, MUST be <code>null</code> is <a>hasPhysicalZoom</a> is <code>false</code>
+              <p class="issue">Use focal length instead? And shutter speed/aperture/ISO/sensor type?</p></dd>
+            </dl>
+          </section>
 
-      <!--
           <section>
-          <h3>Video</h3>
-          This video specification draws on many references on the Internet on video capabilities. It uses terminology found in the 
-          <a href="http://en.wikipedia.org/wiki/Comparison_of_video_codecs">
-          Wikipedia Comparison of Video Codecs</a>
-
+            <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" 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>
+              <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>
 
-<dl title='[NoInterfaceObject] interface Video' class='idl'>
-<dt>readonly attribute DOMString info</dt>
-<dd>Freeform string describing this video interface</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 VideoArch archInfo</dt>
-<dd>
-Video architecture information.
-</dd>
+              <dt>readonly attribute DOMString info</dt>
+              <dd>Free-form text describing this device.</dd>
 
-<dt>readonly attribute sequence VideoCodec codecs</dt>
-<dd>
-The list of codecs available on the 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>
 
-</dl>
-<section>
-<h3>VideoArch</h3>
-<dl title='[NoInterfaceObject] interface VideoArch' class='idl'>
-<dt>readonly attribute DOMString impName</dt>
-<dd>
-Video architecture implementer's name. Example : "Intel"
-</dd>
-<dt>readonly attribute DOMString todo_hw_info_item</dt>
-<dd>
-additional TBD hw information here
-</dd>
-</dl>
-</section>
-<section>
-<h3>VideoCodec</h3>                
-<dl title='[NoInterfaceObject] interface VideoCodec' class='idl'>
+              <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>
 
-<dt>readonly attribute DOMString name</dt>
-<dd>
-Codec name. Example : "Indeo Video" or "libtheora"
-</dd>
-<dt>readonly attribute sequence DOMString compFormats</dt>
-<dd>
-Supported compression format names. Example : "AVI", "ogg"
-</dd>
-<dt>readonly attribute sequence DOMString containerFormats</dt>
-<dd>
-Supported container format names. Example : "AVI", "ogg"
-</dd>
-<dt>readonly attribute boolean hwAccel</dt>
-<dd>
-True if the codec includes hardware acceleration support.
-</dd>
-<dt>readonly attribute sequence VideoProfile profiles</dt>
-<dd>
-The list of profiles available for this codec.
-</dd>
-<dt>readonly attribute sequence FrameType frametypes</dt>
-<dd>
-The list of frame types supported by the codec
-</dd>
-<dt>readonly attribute sequence RateControl ratetypes</dt>
-<dd>
-The list of rate control options supported by the codec
-</dd>
-</dl>
-</section>
-<section>
-<h3>VideoProfile</h3>
-<dl title='[NoInterfaceObject] interface VideoProfile' class='idl'>
-<dt>readonly attribute DOMString name</dt>
-<dd>
-Profile name. Examples : "Simple","Main", "High", "Advanced"
-</dd>
-</dl>
-</section>
-<section>
-<h3>FrameType</h3>
-<dl title='[NoInterfaceObject] interface FrameType' class='idl'>
-<dt>readonly attribute DOMString name</dt>
-<dd>
-Frame type name. Examples : "PROGRESSIVE","INTERLACED"
-</dd>
-</dl>
-</section>
-<section>
-<h3>RateControl</h3>
-<dl title='[NoInterfaceObject] interface RateControl' class='idl'>
-<dt>readonly attribute DOMString name</dt>
-<dd>
-Rate control type name. Examples : "CBR","VBR"
-</dd>
-</dl>
-</section>
-</section>
-<section>
-<h3><a href='./deliverycontextspec-storage.html'>Storage</a></h3>
-</section>
+        <!-- ********* Storage ************************************************************** -->
+        <section>
+          <h3>Storage</h3>
+          <p>This set of properties expose a device's storage units and their properties, like type (hard Disk, memory card, etc.) and capacity</p>
 
+          <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">
+              <dt>readonly attribute StorageUnit units[]</dt>
+              <dd>The array of storage units connected to this device</dd>
+            </dl>
+          </section>
 
-<section>
-<h3>Input</h3>
-The Input API specification is based on the Moblin <a href='http://software.intel.com/en-us/articles/moblin-platform-awareness-service/'>
-Platform Awareness Service</a> API.
-<dl title='interface Input' class='idl'>
-<dt>readonly attribute boolean hasTouchScreen</dt>
-<dd>
-Indicates whether the device has a touch screen.
-</dd>
-<dt>readonly attribute boolean supportsHoverEvents</dt>
-<dd>
-Indicates whether the device supports hover events.
-</dd>
-<dt>readonly attribute boolean supportsMultiTouch</dt>
-<dd>
-Indicates whether the device supports multi touch input.
-</dd>
-<dt>readonly attribute boolean physicalPointingDevicePresent</dt>
-<dd>
-Indicates whether the device has an physical pointing device attached (e.g. mouse).
-</dd>
-<dt>readonly attribute boolean physicalKeyboardPresent</dt>
-<dd>
-Indicates whether the device has a physical keyboard attached.
-</dd>
-<dt>readonly attribute boolean physicalKeypadPresent</dt>
-<dd>
-Indicates whether the device has a physical key pad attached (e.g. phone 10 key pad).
-</dd>
-<dt>readonly attribute boolean softKeyboardVisible</dt>
-<dd>
-Indicates whether the soft keyboard is visible on the screen.
-</dd>
-<dt>int watchPhysicalKeyboardChange ( in PhysicalKeyboardChangeCB successCallback, optional in InputErrorCB errorCallback)</dt>
-<dd>
-The <a>watchPhysicalKeyboardChange()</a> function takes one or two arguments. 
-When called, it must immediately return and then asynchronously start a watch 
-process defined as the following set of steps: 
-<ol>
-<li>Monitor the system to detect the attachment and detachment of physical
-keyboard devices. </li>
-<li>If the attempt fails, and the method was invoked with a 
-non-null <a>errorCallback</a> argument, invoke the <a>errorCallback
-</a> with a <a>InputChangeError</a> object as an argument. </li>
-<li>Invoke the appropriate callback with a new <a>PhysicalKeyboardChange
-</a> object every time the implementation determines that a physical
-keyboard has attached or detached. </li>
-</ol>
-<p/>This method returns an integer value that uniquely identifies the watch process. When the <a>clearWatch()</a> method is called with this identifier, the watch process must stop acquiring any new position fixes and must cease invoking any callbacks. When this value is used in a call to <a>updatePosition()</a>, the watch process SHOULD update the position information that it is using in its orientation caluculations. 
-</dd>
-<dt>int watchPhysicalPointerChange ( in PhysicalPointerChangeCB successCallback, optional in InputErrorCB errorCallback)</dt>
-<dd>
-The <a>watchPhysicalPointerChange()</a> function takes one or two arguments. 
-When called, it must immediately return and then asynchronously start a watch 
-process defined as the following set of steps: 
-<ol>
-<li>Monitor the system to detect the attachment and detachment of physical
-pointing devices. </li>
-<li>If the attempt fails, and the method was invoked with a 
-non-null <a>errorCallback</a> argument, invoke the <a>errorCallback
-</a> with a <a>InputChangeError</a> object as an argument. </li>
-<li>Invoke the appropriate callback with a new <a>PhysicalPointerChange
-</a> object every time the implementation determines that a physical
-pointer has attached or detached. </li>
-</ol>
-<p/>This method returns an integer value that uniquely identifies the watch 
-process. When the <a>clearWatch()</a> method is called with this 
-identifier, the watch process must stop acquiring any new position fixes and 
-must cease invoking any callbacks. 
-</dd>
-<dt>void clearWatch ( in int watchId )</dt>
-<dd>
-When this method is called, the implementation MUST stop calling the 
-<a>successCallback</a> and <a>errorCallback</a> associated with 
-the <a>watchId</a>. 
-</dd>
-</dl>
-<section>
-<h3>PhysicalKeyboardChangeCB</h3>
-<dl title='[Callback=FunctionOnly, NoInterfaceObject] interface PhysicalKeyboardChangeCB' class='idl'>
-<dt>void handleEvent(in PhysicalKeyboardChange physicalKeyboardChange)</dt>
-<dd>
-This function is called whenever the implementation determines that a physical keyboard has
-attached or detached.  
-</dd>
-</dl>
-</section>
-<section>
-<h3>PhysicalPointerChangeCB</h3>
-<dl title='[Callback=FunctionOnly, NoInterfaceObject] interface PhysicalPointerChangeCB' class='idl'>
-<dt>void handleEvent(in PhysicalPointerChange physicalPointerChange)</dt>
-<dd>
-This function is called whenever the implementation determines that a physical pointer has
-attached or detached.  
-</dd>
-</dl>
-</section>
-<section>
-<h3>InputErrorCB</h3>
-<dl title='[Callback=FunctionOnly, NoInterfaceObject] interface InputErrorCB' class='idl'>
-<dt>void handleEvent(in InputChangeError error)</dt>
-<dd>
-This function MUST be called whenever the implementation is unable to monitor
-physical keyboard and pointer devices on the system. 
-</dd>
-</dl>
-</section>
-<section>
-<h3>PhysicalKeyboardChange</h3>
-<dl title='interface PhysicalKeyboardChange' class='idl'>
-<dt>readonly attribute boolean keyboardDetached</dt>
-<dd>
-A physical keyboard was detached. 
-</dd>
-<dt>readonly attribute boolean keyboardAttached</dt>
-<dd>
-A physical keyboard was attached to the system. 
-</dd>
-<dt>readonly attribute DOMTimeStamp timestamp</dt>
-<dd>
-Time at which the event occured.
-</dd>
-</dl>
-</section>
-<section>
-<h3>PhysicalPointerChange</h3>
-<dl title='interface PhysicalPointerChange' class='idl'>
-<dt>readonly attribute boolean pointerDetached</dt>
-<dd>
-A physical pointer was detached. 
-</dd>
-<dt>readonly attribute boolean pointerAttached</dt>
-<dd>
-A physical pointer was attached to the system. 
-</dd>
-<dt>readonly attribute DOMTimeStamp timestamp</dt>
-<dd>
-Time at which the event occured.
-</dd>
-</dl>
-</section>
-<section>
-<h3>InputChangeError</h3>
-<dl title='interface InputChangeError' class='idl'>
-<dt>readonly attribute unsigned short UNKNOWN_ERROR</dt>
-<dd>
-The implementation was unable to monitor the input devices due to an error 
-not covered by the definition of any other error code in this interface.
-</dd>
-<dt>readonly attribute unsigned short PERMISSION_DENIED</dt>
-<dd>
-The implementation was unable to monitor the input devices because the 
-application origin does not have permission to use this <abbr title="Application Programming Interface">API</abbr>.
-</dd>
-<dt>readonly attribute unsigned short code</dt>
-<dd>
-Indicates the reason the implementation failed monitor the pointer or keyboard devices.
-</dd>
-<dt>readonly attribute DOMTimestamp timestamp</dt>
-<dd>
-The time at which the error occured. 
-</dd>
-</dl>
-</section>
-</section>
-      -->
-    </section>
+          <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" 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>
+              <dd>When type has this value, then this device is a hard disk</dd>
+              <dt>const unsigned short TYPE_FLOPPYDISK=2</dt>
+              <dd>When type has this value, then this device is a floppy disk</dd>
+              <dt>const unsigned short TYPE_OPTICAL=3</dt>
+              <dd>When type has this value, then this device uses optical storage technology (CD, DVD, Holographic)</dd>
+              <dt>const unsigned short TYPE_RAM=4</dt>
+              <dd>When type has this value, then this device uses solid-state RAM technology (chip, memory card)</dd>
+              <dt>readonly attribute unsigned short type</dt>
+              <dd>The type of pointing device. The value is one of the constants defined for this type.</dd>
+              
+              <dt>readonly attribute DOMString info</dt>
+              <dd>A free-form string 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 the <a>units</a> attribute of an <a>Storage</a> object.</dd>
+              
+              <dt>readonly attribute boolean isReadWrite</dt>
+              <dd><code>true</code> when this device suports software modification, <code>else</code> otherwise.</dd>
+              
+              <dt>readonly attribute unsigned int capacity</dt>
+              <dd>The amount of data that this device can hold, in bytes. A <a>watch</a> operation operating on an object of type <a>StorageUnit</a> must invoke the success callback only when this attribute has changed</dd>
+              
+              <dt>readonly attribute int availableCapacity</dt>
+              <dd>The amount of available data that this device can hold, in bytes</dd>
 
+              <dt>readonly attribute boolean isRemoveable</dt>
+              <dd><code>true</code> if this unit can be removed from the system (e.g. a memory card unplugged, or a disk ejected), <code>false</code> otherwise</dd>
+            </dl>
+          </section>
+        </section>
+        <!-- ********* /Storage ************************************************************** -->
+      </section>
 
 
     <!--************************************* Extensibility *******************************************-->

Received on Friday, 18 December 2009 11:21:10 UTC