Update Cryville.Input.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using Cryville.Common.Interop;
|
||||
using Cryville.Common.Logging;
|
||||
using System;
|
||||
using System.Text.RegularExpressions;
|
||||
@@ -6,9 +7,9 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android sensor input.
|
||||
/// </summary>
|
||||
public abstract class AndroidSensorHandler : AndroidInputHandler {
|
||||
public abstract class AndroidSensorHandler<TSelf> : AndroidInputHandler<TSelf> where TSelf : AndroidSensorHandler<TSelf> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidSensorHandler{TSelf}" /> class.
|
||||
/// Creates an instance of the <see cref="AndroidSensorHandler" /> class.
|
||||
/// </summary>
|
||||
/// <param name="typeName">The name of the Java class nested in <c>world/cryville/input/unity/android/SensorProxy</c> that performs the low-level jobs.</param>
|
||||
/// <param name="dimension">The dimension.</param>
|
||||
@@ -38,11 +39,14 @@ namespace Cryville.Input.Unity.Android {
|
||||
return JavaStaticMethods.SystemClock_elapsedRealtimeNanos() / 1e9;
|
||||
}
|
||||
|
||||
internal override void OnFeed(int id, int action, long time, float x, float y, float z, float w) {
|
||||
private protected sealed override AndroidInputProxy_Callback Callback { get { return OnFeed; } }
|
||||
|
||||
[MonoPInvokeCallback]
|
||||
static void OnFeed(int id, int action, long time, float x, float y, float z, float w) {
|
||||
try {
|
||||
double timeSecs = time / 1e9;
|
||||
Feed(0, id, new InputFrame(timeSecs, new InputVector(x, y, z, w)));
|
||||
Batch(timeSecs);
|
||||
Instance.Feed(0, id, new InputFrame(timeSecs, new InputVector(x, y, z, w)));
|
||||
Instance.Batch(timeSecs);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Shared.Logger.Log(4, "Input", "An error occurred while handling an Android sensor event: {0}", ex);
|
||||
@@ -53,7 +57,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android accelerometer sensor input.
|
||||
/// </summary>
|
||||
public class AndroidAccelerometerHandler : AndroidSensorHandler {
|
||||
public class AndroidAccelerometerHandler : AndroidSensorHandler<AndroidAccelerometerHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidAccelerometerHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -67,7 +71,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android accelerometer (uncalibrated) sensor input.
|
||||
/// </summary>
|
||||
public class AndroidAccelerometerUncalibratedHandler : AndroidSensorHandler {
|
||||
public class AndroidAccelerometerUncalibratedHandler : AndroidSensorHandler<AndroidAccelerometerUncalibratedHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidAccelerometerUncalibratedHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -81,7 +85,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android game rotation vector sensor input.
|
||||
/// </summary>
|
||||
public class AndroidGameRotationVectorHandler : AndroidSensorHandler {
|
||||
public class AndroidGameRotationVectorHandler : AndroidSensorHandler<AndroidGameRotationVectorHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidGameRotationVectorHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -95,7 +99,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android gravity sensor input.
|
||||
/// </summary>
|
||||
public class AndroidGravityHandler : AndroidSensorHandler {
|
||||
public class AndroidGravityHandler : AndroidSensorHandler<AndroidGravityHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidGravityHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -109,7 +113,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android gyroscope sensor input.
|
||||
/// </summary>
|
||||
public class AndroidGyroscopeHandler : AndroidSensorHandler {
|
||||
public class AndroidGyroscopeHandler : AndroidSensorHandler<AndroidGyroscopeHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidGyroscopeHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -121,9 +125,23 @@ namespace Cryville.Input.Unity.Android {
|
||||
public override ReferenceCue ReferenceCue => _refCue;
|
||||
}
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android gyroscope (uncalibrated) sensor input.
|
||||
/// </summary>
|
||||
public class AndroidGyroscopeUncalibratedHandler : AndroidSensorHandler<AndroidGyroscopeUncalibratedHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidGyroscopeUncalibratedHandler" /> class.
|
||||
/// </summary>
|
||||
public AndroidGyroscopeUncalibratedHandler() : base("GyroscopeUncalibrated", 3) { }
|
||||
static readonly ReferenceCue _refCue = new ReferenceCue {
|
||||
PhysicalDimension = new PhysicalDimension { Time = -1 },
|
||||
};
|
||||
/// <inheritdoc />
|
||||
public override ReferenceCue ReferenceCue => _refCue;
|
||||
}
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android linear acceleration sensor input.
|
||||
/// </summary>
|
||||
public class AndroidLinearAccelerationHandler : AndroidSensorHandler {
|
||||
public class AndroidLinearAccelerationHandler : AndroidSensorHandler<AndroidLinearAccelerationHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidLinearAccelerationHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -137,7 +155,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android magnetic field sensor input.
|
||||
/// </summary>
|
||||
public class AndroidMagneticFieldHandler : AndroidSensorHandler {
|
||||
public class AndroidMagneticFieldHandler : AndroidSensorHandler<AndroidMagneticFieldHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidMagneticFieldHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -151,7 +169,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android magnetic field (uncalibrated) sensor input.
|
||||
/// </summary>
|
||||
public class AndroidMagneticFieldUncalibratedHandler : AndroidSensorHandler {
|
||||
public class AndroidMagneticFieldUncalibratedHandler : AndroidSensorHandler<AndroidMagneticFieldUncalibratedHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidMagneticFieldUncalibratedHandler" /> class.
|
||||
/// </summary>
|
||||
@@ -165,7 +183,7 @@ namespace Cryville.Input.Unity.Android {
|
||||
/// <summary>
|
||||
/// An <see cref="InputHandler" /> that handles Android rotation vector sensor input.
|
||||
/// </summary>
|
||||
public class AndroidRotationVectorHandler : AndroidSensorHandler {
|
||||
public class AndroidRotationVectorHandler : AndroidSensorHandler<AndroidRotationVectorHandler> {
|
||||
/// <summary>
|
||||
/// Creates an instance of the <see cref="AndroidRotationVectorHandler" /> class.
|
||||
/// </summary>
|
||||
|
Reference in New Issue
Block a user