- From: Max Froumentin via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 18 Dec 2009 11:21:07 +0000
- To: public-dap-commits@w3.org
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