- From: Tran, Dzung D <dzung.d.tran@intel.com>
- Date: Tue, 20 Oct 2009 20:24:37 -0700
- To: "public-device-apis@w3.org" <public-device-apis@w3.org>
Hello all,
Following Robin's advice to put some concrete APIs on paper, so I gave it a stab:
http://dev.w3.org/2009/dap/system-info/Overview.html
Also some thinking around about extensibility and how implement for known capabilities versus unknown future capabilities.
A) use concrete APIs for well known existing capabilities
B) have a 'sequence' of objects defined that have extension capabilities. This allows future apps to find them and make use of them *between&* major revisions of the specification. These extensions can be brought into the specification at major revisions and they will then become concrete APIs.
Example interfaces:
interface CapabilityExtensions : Object {
readonly attribute sequence DAPExtension Cap;
};
interface EventExtenstions : Object {
readonly attribute sequence DAPExtension events;
};
interface DAPExtension: Object {
readonly attribute DOMString name;
readonly attribute DOMString vendor;
readonly attribute DOMString version;
attribute Object extOb;
};
Javascript to find / use an extension capability:
var futureExt;
for(var x = 0; x < device.capabilityExtensions.length; x++){
currExt = device.capabilityExtensions[x];
if(currExt.name == "cool new capability"){
futureExt = device.capabilityExtensions[x];
}
}
if(futureExt === undefined){
/* extention not available */
}
else{
/* use it based on vendor specification*/
futureExt.XYZApi()
}
Received on Wednesday, 21 October 2009 03:25:24 UTC