Fixed stupid isAccelerometerActive condition
This commit is contained in:
parent
1dedd915ad
commit
0471202c9c
@ -48,6 +48,8 @@ CIrrDeviceAndroid::CIrrDeviceAndroid(const SIrrlichtCreationParameters& param)
|
|||||||
: CIrrDeviceStub(param),
|
: CIrrDeviceStub(param),
|
||||||
Accelerometer(0),
|
Accelerometer(0),
|
||||||
Gyroscope(0),
|
Gyroscope(0),
|
||||||
|
AccelerometerActive(false),
|
||||||
|
GyroscopeActive(false),
|
||||||
IsMousePressed(false),
|
IsMousePressed(false),
|
||||||
GamepadAxisX(0),
|
GamepadAxisX(0),
|
||||||
GamepadAxisY(0),
|
GamepadAxisY(0),
|
||||||
@ -246,15 +248,15 @@ bool CIrrDeviceAndroid::run()
|
|||||||
accEvent.AccelerometerEvent.X = event.acceleration.x;
|
accEvent.AccelerometerEvent.X = event.acceleration.x;
|
||||||
accEvent.AccelerometerEvent.Y = event.acceleration.y;
|
accEvent.AccelerometerEvent.Y = event.acceleration.y;
|
||||||
}
|
}
|
||||||
accEvent.AccelerometerEvent.Z = event.acceleration.z;
|
|
||||||
|
|
||||||
if (accEvent.AccelerometerEvent.X < 0)
|
if (accEvent.AccelerometerEvent.X < 0)
|
||||||
{
|
{
|
||||||
accEvent.AccelerometerEvent.X *= -1;
|
accEvent.AccelerometerEvent.X *= -1;
|
||||||
accEvent.AccelerometerEvent.Y *= -1;
|
accEvent.AccelerometerEvent.Y *= -1;
|
||||||
accEvent.AccelerometerEvent.Z *= -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
accEvent.AccelerometerEvent.Z = event.acceleration.z;
|
||||||
|
|
||||||
postEventFromUser(accEvent);
|
postEventFromUser(accEvent);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1210,12 +1212,19 @@ bool CIrrDeviceAndroid::activateAccelerometer(float updateInterval)
|
|||||||
DefaultOrientation = getDefaultOrientation();
|
DefaultOrientation = getDefaultOrientation();
|
||||||
}
|
}
|
||||||
|
|
||||||
ASensorEventQueue_enableSensor(SensorEventQueue, Accelerometer);
|
int err = ASensorEventQueue_enableSensor(SensorEventQueue, Accelerometer);
|
||||||
|
|
||||||
|
if (err == 0)
|
||||||
|
{
|
||||||
|
AccelerometerActive = true;
|
||||||
|
|
||||||
ASensorEventQueue_setEventRate(SensorEventQueue, Accelerometer,
|
ASensorEventQueue_setEventRate(SensorEventQueue, Accelerometer,
|
||||||
(int32_t)(updateInterval*1000.f*1000.f)); // in microseconds
|
(int32_t)(updateInterval*1000.f*1000.f)); // in microseconds
|
||||||
|
|
||||||
os::Printer::log("Activated accelerometer", ELL_DEBUG);
|
os::Printer::log("Activated accelerometer", ELL_DEBUG);
|
||||||
return true;
|
}
|
||||||
|
|
||||||
|
return AccelerometerActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CIrrDeviceAndroid::deactivateAccelerometer()
|
bool CIrrDeviceAndroid::deactivateAccelerometer()
|
||||||
@ -1223,15 +1232,20 @@ bool CIrrDeviceAndroid::deactivateAccelerometer()
|
|||||||
if (!Accelerometer)
|
if (!Accelerometer)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
ASensorEventQueue_disableSensor(SensorEventQueue, Accelerometer);
|
int err = ASensorEventQueue_disableSensor(SensorEventQueue, Accelerometer);
|
||||||
Accelerometer = 0;
|
|
||||||
|
if (err == 0)
|
||||||
|
{
|
||||||
|
AccelerometerActive = false;
|
||||||
os::Printer::log("Deactivated accelerometer", ELL_DEBUG);
|
os::Printer::log("Deactivated accelerometer", ELL_DEBUG);
|
||||||
return true;
|
}
|
||||||
|
|
||||||
|
return !AccelerometerActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CIrrDeviceAndroid::isAccelerometerActive()
|
bool CIrrDeviceAndroid::isAccelerometerActive()
|
||||||
{
|
{
|
||||||
return (Accelerometer != NULL);
|
return AccelerometerActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CIrrDeviceAndroid::isAccelerometerAvailable()
|
bool CIrrDeviceAndroid::isAccelerometerAvailable()
|
||||||
@ -1250,12 +1264,19 @@ bool CIrrDeviceAndroid::activateGyroscope(float updateInterval)
|
|||||||
if (!isGyroscopeAvailable())
|
if (!isGyroscopeAvailable())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
ASensorEventQueue_enableSensor(SensorEventQueue, Gyroscope);
|
int err = ASensorEventQueue_enableSensor(SensorEventQueue, Gyroscope);
|
||||||
|
|
||||||
|
if (err == 0)
|
||||||
|
{
|
||||||
|
GyroscopeActive = true;
|
||||||
|
|
||||||
ASensorEventQueue_setEventRate(SensorEventQueue, Gyroscope,
|
ASensorEventQueue_setEventRate(SensorEventQueue, Gyroscope,
|
||||||
(int32_t)(updateInterval*1000.f*1000.f)); // in microseconds
|
(int32_t)(updateInterval*1000.f*1000.f)); // in microseconds
|
||||||
|
|
||||||
os::Printer::log("Activated gyroscope", ELL_DEBUG);
|
os::Printer::log("Activated gyroscope", ELL_DEBUG);
|
||||||
return true;
|
}
|
||||||
|
|
||||||
|
return GyroscopeActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CIrrDeviceAndroid::deactivateGyroscope()
|
bool CIrrDeviceAndroid::deactivateGyroscope()
|
||||||
@ -1263,15 +1284,20 @@ bool CIrrDeviceAndroid::deactivateGyroscope()
|
|||||||
if (!Gyroscope)
|
if (!Gyroscope)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
ASensorEventQueue_disableSensor(SensorEventQueue, Gyroscope);
|
int err = ASensorEventQueue_disableSensor(SensorEventQueue, Gyroscope);
|
||||||
Gyroscope = 0;
|
|
||||||
|
if (err == 0)
|
||||||
|
{
|
||||||
|
GyroscopeActive = false;
|
||||||
os::Printer::log("Deactivated gyroscope", ELL_DEBUG);
|
os::Printer::log("Deactivated gyroscope", ELL_DEBUG);
|
||||||
return true;
|
}
|
||||||
|
|
||||||
|
return !GyroscopeActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CIrrDeviceAndroid::isGyroscopeActive()
|
bool CIrrDeviceAndroid::isGyroscopeActive()
|
||||||
{
|
{
|
||||||
return (Gyroscope != NULL);
|
return GyroscopeActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CIrrDeviceAndroid::isGyroscopeAvailable()
|
bool CIrrDeviceAndroid::isGyroscopeAvailable()
|
||||||
|
@ -111,6 +111,8 @@ namespace irr
|
|||||||
ASensorEventQueue* SensorEventQueue;
|
ASensorEventQueue* SensorEventQueue;
|
||||||
const ASensor* Accelerometer;
|
const ASensor* Accelerometer;
|
||||||
const ASensor* Gyroscope;
|
const ASensor* Gyroscope;
|
||||||
|
bool AccelerometerActive;
|
||||||
|
bool GyroscopeActive;
|
||||||
|
|
||||||
static bool IsPaused;
|
static bool IsPaused;
|
||||||
static bool IsFocused;
|
static bool IsFocused;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user