- From: Rick Waldron via GitHub <sysbot+gh@w3.org>
- Date: Tue, 02 Jun 2015 18:50:00 +0000
- To: public-device-apis@w3.org
> because they allow more use cases. For example, note how games use
polling of mouse/keyboard and gamepad buttons to achieve lower
latency. (I've gotten many complaints about the event-based mousemove
API actually at conferences from game developers.)
Thanks for bringing this up—it's **super** important. The current
design of this spec understands the above and makes sure that it's
well addressed. The `value` property of any sensor instance is an
accessor that returns the most present possible reading of sensor. It
starts off as `null` and once the underlying system has begun reading
the actual sensor, it will return those reading values.
```js
let ambient = new sensors.Light({
// some yet-undesigned way of telling this sensor to synchronize
with requestAnimationFrame
});
requestAnimationFrame(function frame() {
requestAnimationFrame(frame);
//
https://developer.mozilla.org/en-US/docs/Web/API/PowerManager/screenBrightness
let brightness = calculateBrightness(ambient.value);
if (PowerManager.screenBrightness !== brightness) {
PowerManager.screenBrightness = brightness;
}
});
```
> One nice thing about Observable is that you can declaratively start
listening to one sensor when a message arrives from another:
> var values = sensor1.takeWhile(pos => pos.x - pos.y >
0).concat(sensor2);
What exactly is the value of `values` and for how long?
> Combinators like concatenation are possible because Observables,
like Iterables, have a concrete notion of completion.
Can you explain how this applies to a sensor that a program is
expecting to read at a minimum frequency of 200Hz for the life of the
program itself?
> Would you add the notion of completion to EventTarget? How would
that be communicated? Would unsubscription be implied?
I don't "endorse" it, but `removeEventListener` would be effective.
--
GitHub Notif of comment by rwaldron
See https://github.com/w3c/sensors/issues/21#issuecomment-108052366
Received on Tuesday, 2 June 2015 18:50:02 UTC