Merge: nitc: check pkg-config packages availability later
[nit.git] / lib / android / sensors.nit
index b969389..d57a5d6 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# This module is used to manipulate android sensors
-# The sensor support is implemented in android_app module, so the user can enable the type of sensor he wants to use.
-# There is an example of how you can use the android sensors in nit/examples/mnit_ballz :
+# Access Android sensors
+#
+# Sensors are to be enabled when `App` is created.
+# The following example enables all sensors.
+# The events (`SensorEvent`, `ASensorAccelerometer`, `ASensorMagneticField`...)
+# are sent to the `input` callback of `App`
 #
 # ~~~~nitish
-# #FIXME rewrite the example
 # redef class App
-#      sensors_support_enabled = true
-#      accelerometer.enabled = true
-#      accelerometer.eventrate = 10000
-#      magnetic_field.enabled = true
-#      gyroscope.enabled = true
-#      light.enabled = true
-#      proximity.enabled = true
+#     init
+#     do
+#         sensors_support_enabled = true
+#         accelerometer.enabled = true
+#         accelerometer.eventrate = 10000
+#         magnetic_field.enabled = true
+#         gyroscope.enabled = true
+#         light.enabled = true
+#         proximity.enabled = true
+#     end
 # end
 # ~~~~
-#
-# In this example, we enable the sensor support, then enable all types of sensors supported by the API, directly with `App` attributes
-# As a result, you get all type of SensorEvent (ASensorAccelerometer, ASensorMagneticField ...) in the `input` callback of `App`
 module sensors
 
 import android
-import mnit
+import gamnit
 
 in "C header" `{
        #include <jni.h>
@@ -119,8 +121,8 @@ end
 extern class ASensor `{ASensorRef`}
 
        new  `{return malloc(sizeof(ASensorRef));`}
-       fun name: NativeString `{return (char*)ASensor_getName(self);`}
-       fun vendor: NativeString `{return (char*)ASensor_getVendor(self);`}
+       fun name: CString `{return (char*)ASensor_getName(self);`}
+       fun vendor: CString `{return (char*)ASensor_getVendor(self);`}
        fun sensor_type: ASensorType `{return ASensor_getType(self);`}
        fun resolution: Float `{return ASensor_getResolution(self);`}
        fun min_delay: Int `{return ASensor_getMinDelay(self);`}
@@ -237,11 +239,11 @@ redef class App
        var eventqueue: ASensorEventQueue
        var sensors_support_enabled = false is writable
 
-       private fun extern_input_sensor_accelerometer(event: ASensorAccelerometer) do input(event)
-       private fun extern_input_sensor_magnetic_field(event: ASensorMagneticField) do input(event)
-       private fun extern_input_sensor_gyroscope(event: ASensorGyroscope) do input(event)
-       private fun extern_input_sensor_light(event: ASensorLight) do input(event)
-       private fun extern_input_sensor_proximity(event: ASensorProximity) do input(event)
+       private fun extern_input_sensor_accelerometer(event: ASensorAccelerometer) do accept_event(event)
+       private fun extern_input_sensor_magnetic_field(event: ASensorMagneticField) do accept_event(event)
+       private fun extern_input_sensor_gyroscope(event: ASensorGyroscope) do accept_event(event)
+       private fun extern_input_sensor_light(event: ASensorLight) do accept_event(event)
+       private fun extern_input_sensor_proximity(event: ASensorProximity) do accept_event(event)
 
        # Sensors support
        # The user decides which sensors he wants to use by setting them enabled