Hi Ben,

This seems to be where the polling rate is set:
http://dxr.mozilla.org/mozilla-central/source/hal/gonk/GonkSensor.cpp#220

I think that this API is where it all starts:
http://dxr.mozilla.org/mozilla-central/source/xpcom/system/nsIDeviceSensors.idl#28
addWindowListener
http://dxr.mozilla.org/mozilla-central/source/dom/system/nsDeviceSensors.cpp#135
calls RegisterSensorObserver
http://dxr.mozilla.org/mozilla-central/source/hal/Hal.cpp#545
which calls EnableSensorNotifications
http://dxr.mozilla.org/mozilla-central/source/hal/gonk/GonkSensor.cpp#261
which calls SetSensorState
http://dxr.mozilla.org/mozilla-central/source/hal/gonk/GonkSensor.cpp#246
which call SwtichSensor
http://dxr.mozilla.org/mozilla-central/source/hal/gonk/GonkSensor.cpp#220


There is also this code path (actually, now that I found this path,
I imagine its the path that is activating things):

nsWindow constructor calls NotifyScreenInitialized:
http://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsWindow.cpp#154
nsAppShell::NotifyScreenInitialized creates an OrientationObserver:
http://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp#1023
OrientationObserer call EnableAutoOrientation
http://dxr.mozilla.org/mozilla-central/source/widget/gonk/OrientationObserver.cpp#176
EnableAutoOrientation call RegisterSensorObserver
http://dxr.mozilla.org/mozilla-central/source/widget/gonk/OrientationObserver.cpp#240
and follows the from RegisterSensorObserver above.

Hopefully that helps.

Dave Hylands

----- Original Message -----
> From: "Ben Kelly" <bke...@mozilla.com>
> To: dev-b2g@lists.mozilla.org
> Sent: Saturday, February 8, 2014 6:24:58 PM
> Subject: [b2g] what triggers orientation sensor events?
> 
> So while working on bug 965369 I instrumented the code in
> hal/gonk/GonkSensor.cpp and observed that the poppit  app receives
> orientation sensor results every 50ms from the moment it is launched.  These
> results seem to ultimately be translated into 'devicemotion' events for the
> app.
> 
> In contrast, other apps do not trigger my GonkSensor.cpp instrumentation in a
> repeated manner like this.
> 
> Can anyone tell me what we look for to see how we enable the  accelerometer
> sensor for an app?
> 
> I thought maybe registering for 'devicemotion' would do it, but poppit does
> not do that immediately.  It only does that the first time it needs
> acceleration information, which is much later during a game.
> 
> I also stripped the manifest down to just the name, icon, and invocation path
> using app-manager.  Still the poppit app spends a ton of time processing
> these sensor results.
> 
> Can anyone point me in the right direction?
> 
> Thanks!
> 
> Ben
> _______________________________________________
> dev-b2g mailing list
> dev-b2g@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-b2g
> 
_______________________________________________
dev-b2g mailing list
dev-b2g@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to