summaryrefslogtreecommitdiff
path: root/Source/3rdParty/SDL2/src/sensor
diff options
context:
space:
mode:
Diffstat (limited to 'Source/3rdParty/SDL2/src/sensor')
-rw-r--r--Source/3rdParty/SDL2/src/sensor/SDL_sensor.c546
-rw-r--r--Source/3rdParty/SDL2/src/sensor/SDL_sensor_c.h44
-rw-r--r--Source/3rdParty/SDL2/src/sensor/SDL_syssensor.h105
-rw-r--r--Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.c211
-rw-r--r--Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.h31
-rw-r--r--Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.h30
-rw-r--r--Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.m234
-rw-r--r--Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.c110
-rw-r--r--Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.h23
9 files changed, 0 insertions, 1334 deletions
diff --git a/Source/3rdParty/SDL2/src/sensor/SDL_sensor.c b/Source/3rdParty/SDL2/src/sensor/SDL_sensor.c
deleted file mode 100644
index 5c7a990..0000000
--- a/Source/3rdParty/SDL2/src/sensor/SDL_sensor.c
+++ /dev/null
@@ -1,546 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../SDL_internal.h"
-
-/* This is the sensor API for Simple DirectMedia Layer */
-
-#include "SDL.h"
-#include "SDL_atomic.h"
-#include "SDL_events.h"
-#include "SDL_syssensor.h"
-#include "SDL_assert.h"
-
-#if !SDL_EVENTS_DISABLED
-#include "../events/SDL_events_c.h"
-#endif
-
-static SDL_SensorDriver *SDL_sensor_drivers[] = {
-#ifdef SDL_SENSOR_ANDROID
- &SDL_ANDROID_SensorDriver,
-#endif
-#ifdef SDL_SENSOR_COREMOTION
- &SDL_COREMOTION_SensorDriver,
-#endif
-#if defined(SDL_SENSOR_DUMMY) || defined(SDL_SENSOR_DISABLED)
- &SDL_DUMMY_SensorDriver
-#endif
-};
-static SDL_Sensor *SDL_sensors = NULL;
-static SDL_bool SDL_updating_sensor = SDL_FALSE;
-static SDL_mutex *SDL_sensor_lock = NULL; /* This needs to support recursive locks */
-static SDL_atomic_t SDL_next_sensor_instance_id;
-
-static void
-SDL_LockSensors(void)
-{
- if (SDL_sensor_lock) {
- SDL_LockMutex(SDL_sensor_lock);
- }
-}
-
-static void
-SDL_UnlockSensors(void)
-{
- if (SDL_sensor_lock) {
- SDL_UnlockMutex(SDL_sensor_lock);
- }
-}
-
-
-int
-SDL_SensorInit(void)
-{
- int i, status;
-
- /* Create the sensor list lock */
- if (!SDL_sensor_lock) {
- SDL_sensor_lock = SDL_CreateMutex();
- }
-
-#if !SDL_EVENTS_DISABLED
- if (SDL_InitSubSystem(SDL_INIT_EVENTS) < 0) {
- return -1;
- }
-#endif /* !SDL_EVENTS_DISABLED */
-
- status = -1;
- for (i = 0; i < SDL_arraysize(SDL_sensor_drivers); ++i) {
- if (SDL_sensor_drivers[i]->Init() >= 0) {
- status = 0;
- }
- }
- return status;
-}
-
-/*
- * Count the number of sensors attached to the system
- */
-int
-SDL_NumSensors(void)
-{
- int i, total_sensors = 0;
- SDL_LockSensors();
- for (i = 0; i < SDL_arraysize(SDL_sensor_drivers); ++i) {
- total_sensors += SDL_sensor_drivers[i]->GetCount();
- }
- SDL_UnlockSensors();
- return total_sensors;
-}
-
-/*
- * Return the next available sensor instance ID
- * This may be called by drivers from multiple threads, unprotected by any locks
- */
-SDL_SensorID SDL_GetNextSensorInstanceID()
-{
- return SDL_AtomicIncRef(&SDL_next_sensor_instance_id);
-}
-
-/*
- * Get the driver and device index for an API device index
- * This should be called while the sensor lock is held, to prevent another thread from updating the list
- */
-static SDL_bool
-SDL_GetDriverAndSensorIndex(int device_index, SDL_SensorDriver **driver, int *driver_index)
-{
- int i, num_sensors, total_sensors = 0;
-
- if (device_index >= 0) {
- for (i = 0; i < SDL_arraysize(SDL_sensor_drivers); ++i) {
- num_sensors = SDL_sensor_drivers[i]->GetCount();
- if (device_index < num_sensors) {
- *driver = SDL_sensor_drivers[i];
- *driver_index = device_index;
- return SDL_TRUE;
- }
- device_index -= num_sensors;
- total_sensors += num_sensors;
- }
- }
-
- SDL_SetError("There are %d sensors available", total_sensors);
- return SDL_FALSE;
-}
-
-/*
- * Get the implementation dependent name of a sensor
- */
-const char *
-SDL_SensorGetDeviceName(int device_index)
-{
- SDL_SensorDriver *driver;
- const char *name = NULL;
-
- SDL_LockSensors();
- if (SDL_GetDriverAndSensorIndex(device_index, &driver, &device_index)) {
- name = driver->GetDeviceName(device_index);
- }
- SDL_UnlockSensors();
-
- /* FIXME: Really we should reference count this name so it doesn't go away after unlock */
- return name;
-}
-
-SDL_SensorType
-SDL_SensorGetDeviceType(int device_index)
-{
- SDL_SensorDriver *driver;
- SDL_SensorType type = SDL_SENSOR_INVALID;
-
- SDL_LockSensors();
- if (SDL_GetDriverAndSensorIndex(device_index, &driver, &device_index)) {
- type = driver->GetDeviceType(device_index);
- }
- SDL_UnlockSensors();
-
- return type;
-}
-
-SDL_SensorType
-SDL_SensorGetDeviceNonPortableType(int device_index)
-{
- SDL_SensorDriver *driver;
- int type = -1;
-
- SDL_LockSensors();
- if (SDL_GetDriverAndSensorIndex(device_index, &driver, &device_index)) {
- type = driver->GetDeviceNonPortableType(device_index);
- }
- SDL_UnlockSensors();
-
- return type;
-}
-
-SDL_SensorID
-SDL_SensorGetDeviceInstanceID(int device_index)
-{
- SDL_SensorDriver *driver;
- SDL_SensorID instance_id = -1;
-
- SDL_LockSensors();
- if (SDL_GetDriverAndSensorIndex(device_index, &driver, &device_index)) {
- instance_id = driver->GetDeviceInstanceID(device_index);
- }
- SDL_UnlockSensors();
-
- return instance_id;
-}
-
-/*
- * Open a sensor for use - the index passed as an argument refers to
- * the N'th sensor on the system. This index is the value which will
- * identify this sensor in future sensor events.
- *
- * This function returns a sensor identifier, or NULL if an error occurred.
- */
-SDL_Sensor *
-SDL_SensorOpen(int device_index)
-{
- SDL_SensorDriver *driver;
- SDL_SensorID instance_id;
- SDL_Sensor *sensor;
- SDL_Sensor *sensorlist;
- const char *sensorname = NULL;
-
- SDL_LockSensors();
-
- if (!SDL_GetDriverAndSensorIndex(device_index, &driver, &device_index)) {
- SDL_UnlockSensors();
- return NULL;
- }
-
- sensorlist = SDL_sensors;
- /* If the sensor is already open, return it
- * it is important that we have a single sensor * for each instance id
- */
- instance_id = driver->GetDeviceInstanceID(device_index);
- while (sensorlist) {
- if (instance_id == sensorlist->instance_id) {
- sensor = sensorlist;
- ++sensor->ref_count;
- SDL_UnlockSensors();
- return sensor;
- }
- sensorlist = sensorlist->next;
- }
-
- /* Create and initialize the sensor */
- sensor = (SDL_Sensor *) SDL_calloc(sizeof(*sensor), 1);
- if (sensor == NULL) {
- SDL_OutOfMemory();
- SDL_UnlockSensors();
- return NULL;
- }
- sensor->driver = driver;
- sensor->instance_id = instance_id;
- sensor->type = driver->GetDeviceType(device_index);
- sensor->non_portable_type = driver->GetDeviceNonPortableType(device_index);
-
- if (driver->Open(sensor, device_index) < 0) {
- SDL_free(sensor);
- SDL_UnlockSensors();
- return NULL;
- }
-
- sensorname = driver->GetDeviceName(device_index);
- if (sensorname) {
- sensor->name = SDL_strdup(sensorname);
- } else {
- sensor->name = NULL;
- }
-
- /* Add sensor to list */
- ++sensor->ref_count;
- /* Link the sensor in the list */
- sensor->next = SDL_sensors;
- SDL_sensors = sensor;
-
- SDL_UnlockSensors();
-
- driver->Update(sensor);
-
- return sensor;
-}
-
-/*
- * Find the SDL_Sensor that owns this instance id
- */
-SDL_Sensor *
-SDL_SensorFromInstanceID(SDL_SensorID instance_id)
-{
- SDL_Sensor *sensor;
-
- SDL_LockSensors();
- for (sensor = SDL_sensors; sensor; sensor = sensor->next) {
- if (sensor->instance_id == instance_id) {
- break;
- }
- }
- SDL_UnlockSensors();
- return sensor;
-}
-
-/*
- * Checks to make sure the sensor is valid.
- */
-static int
-SDL_PrivateSensorValid(SDL_Sensor * sensor)
-{
- int valid;
-
- if (sensor == NULL) {
- SDL_SetError("Sensor hasn't been opened yet");
- valid = 0;
- } else {
- valid = 1;
- }
-
- return valid;
-}
-
-/*
- * Get the friendly name of this sensor
- */
-const char *
-SDL_SensorGetName(SDL_Sensor * sensor)
-{
- if (!SDL_PrivateSensorValid(sensor)) {
- return NULL;
- }
-
- return sensor->name;
-}
-
-/*
- * Get the type of this sensor
- */
-SDL_SensorType
-SDL_SensorGetType(SDL_Sensor * sensor)
-{
- if (!SDL_PrivateSensorValid(sensor)) {
- return SDL_SENSOR_INVALID;
- }
-
- return sensor->type;
-}
-
-/*
- * Get the platform dependent type of this sensor
- */
-int
-SDL_SensorGetNonPortableType(SDL_Sensor * sensor)
-{
- if (!SDL_PrivateSensorValid(sensor)) {
- return -1;
- }
-
- return sensor->non_portable_type;
-}
-
-/*
- * Get the instance id for this opened sensor
- */
-SDL_SensorID
-SDL_SensorGetInstanceID(SDL_Sensor * sensor)
-{
- if (!SDL_PrivateSensorValid(sensor)) {
- return -1;
- }
-
- return sensor->instance_id;
-}
-
-/*
- * Get the current state of this sensor
- */
-int
-SDL_SensorGetData(SDL_Sensor * sensor, float *data, int num_values)
-{
- if (!SDL_PrivateSensorValid(sensor)) {
- return -1;
- }
-
- num_values = SDL_min(num_values, SDL_arraysize(sensor->data));
- SDL_memcpy(data, sensor->data, num_values*sizeof(*data));
- return 0;
-}
-
-/*
- * Close a sensor previously opened with SDL_SensorOpen()
- */
-void
-SDL_SensorClose(SDL_Sensor * sensor)
-{
- SDL_Sensor *sensorlist;
- SDL_Sensor *sensorlistprev;
-
- if (!SDL_PrivateSensorValid(sensor)) {
- return;
- }
-
- SDL_LockSensors();
-
- /* First decrement ref count */
- if (--sensor->ref_count > 0) {
- SDL_UnlockSensors();
- return;
- }
-
- if (SDL_updating_sensor) {
- SDL_UnlockSensors();
- return;
- }
-
- sensor->driver->Close(sensor);
- sensor->hwdata = NULL;
-
- sensorlist = SDL_sensors;
- sensorlistprev = NULL;
- while (sensorlist) {
- if (sensor == sensorlist) {
- if (sensorlistprev) {
- /* unlink this entry */
- sensorlistprev->next = sensorlist->next;
- } else {
- SDL_sensors = sensor->next;
- }
- break;
- }
- sensorlistprev = sensorlist;
- sensorlist = sensorlist->next;
- }
-
- SDL_free(sensor->name);
-
- /* Free the data associated with this sensor */
- SDL_free(sensor);
-
- SDL_UnlockSensors();
-}
-
-void
-SDL_SensorQuit(void)
-{
- int i;
-
- /* Make sure we're not getting called in the middle of updating sensors */
- SDL_assert(!SDL_updating_sensor);
-
- SDL_LockSensors();
-
- /* Stop the event polling */
- while (SDL_sensors) {
- SDL_sensors->ref_count = 1;
- SDL_SensorClose(SDL_sensors);
- }
-
- /* Quit the sensor setup */
- for (i = 0; i < SDL_arraysize(SDL_sensor_drivers); ++i) {
- SDL_sensor_drivers[i]->Quit();
- }
-
- SDL_UnlockSensors();
-
-#if !SDL_EVENTS_DISABLED
- SDL_QuitSubSystem(SDL_INIT_EVENTS);
-#endif
-
- if (SDL_sensor_lock) {
- SDL_DestroyMutex(SDL_sensor_lock);
- SDL_sensor_lock = NULL;
- }
-}
-
-
-/* These are global for SDL_syssensor.c and SDL_events.c */
-
-int
-SDL_PrivateSensorUpdate(SDL_Sensor *sensor, float *data, int num_values)
-{
- int posted;
-
- /* Allow duplicate events, for things like steps and heartbeats */
-
- /* Update internal sensor state */
- num_values = SDL_min(num_values, SDL_arraysize(sensor->data));
- SDL_memcpy(sensor->data, data, num_values*sizeof(*data));
-
- /* Post the event, if desired */
- posted = 0;
-#if !SDL_EVENTS_DISABLED
- if (SDL_GetEventState(SDL_JOYAXISMOTION) == SDL_ENABLE) {
- SDL_Event event;
- event.type = SDL_SENSORUPDATE;
- event.sensor.which = sensor->instance_id;
- num_values = SDL_min(num_values, SDL_arraysize(event.sensor.data));
- SDL_memset(event.sensor.data, 0, sizeof(event.sensor.data));
- SDL_memcpy(event.sensor.data, data, num_values*sizeof(*data));
- posted = SDL_PushEvent(&event) == 1;
- }
-#endif /* !SDL_EVENTS_DISABLED */
- return posted;
-}
-
-void
-SDL_SensorUpdate(void)
-{
- int i;
- SDL_Sensor *sensor;
-
- SDL_LockSensors();
-
- if (SDL_updating_sensor) {
- /* The sensors are already being updated */
- SDL_UnlockSensors();
- return;
- }
-
- SDL_updating_sensor = SDL_TRUE;
-
- /* Make sure the list is unlocked while dispatching events to prevent application deadlocks */
- SDL_UnlockSensors();
-
- for (sensor = SDL_sensors; sensor; sensor = sensor->next) {
- sensor->driver->Update(sensor);
- }
-
- SDL_LockSensors();
-
- SDL_updating_sensor = SDL_FALSE;
-
- /* If any sensors were closed while updating, free them here */
- for (sensor = SDL_sensors; sensor; sensor = sensor->next) {
- if (sensor->ref_count <= 0) {
- SDL_SensorClose(sensor);
- }
- }
-
- /* this needs to happen AFTER walking the sensor list above, so that any
- dangling hardware data from removed devices can be free'd
- */
- for (i = 0; i < SDL_arraysize(SDL_sensor_drivers); ++i) {
- SDL_sensor_drivers[i]->Detect();
- }
-
- SDL_UnlockSensors();
-}
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/SDL_sensor_c.h b/Source/3rdParty/SDL2/src/sensor/SDL_sensor_c.h
deleted file mode 100644
index 70974af..0000000
--- a/Source/3rdParty/SDL2/src/sensor/SDL_sensor_c.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef SDL_sensor_c_h_
-#define SDL_sensor_c_h_
-
-#include "SDL_config.h"
-
-struct _SDL_SensorDriver;
-
-/* Useful functions and variables from SDL_sensor.c */
-#include "SDL_sensor.h"
-
-/* Function to get the next available sensor instance ID */
-extern SDL_SensorID SDL_GetNextSensorInstanceID(void);
-
-/* Initialization and shutdown functions */
-extern int SDL_SensorInit(void);
-extern void SDL_SensorQuit(void);
-
-/* Internal event queueing functions */
-extern int SDL_PrivateSensorUpdate(SDL_Sensor *sensor, float *data, int num_values);
-
-#endif /* SDL_sensor_c_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/SDL_syssensor.h b/Source/3rdParty/SDL2/src/sensor/SDL_syssensor.h
deleted file mode 100644
index 210577a..0000000
--- a/Source/3rdParty/SDL2/src/sensor/SDL_syssensor.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef SDL_syssensor_c_h_
-#define SDL_syssensor_c_h_
-
-#include "SDL_config.h"
-
-/* This is the system specific header for the SDL sensor API */
-
-#include "SDL_sensor.h"
-#include "SDL_sensor_c.h"
-
-/* The SDL sensor structure */
-struct _SDL_Sensor
-{
- SDL_SensorID instance_id; /* Device instance, monotonically increasing from 0 */
- char *name; /* Sensor name - system dependent */
- SDL_SensorType type; /* Type of the sensor */
- int non_portable_type; /* Platform dependent type of the sensor */
-
- float data[16]; /* The current state of the sensor */
-
- struct _SDL_SensorDriver *driver;
-
- struct sensor_hwdata *hwdata; /* Driver dependent information */
-
- int ref_count; /* Reference count for multiple opens */
-
- struct _SDL_Sensor *next; /* pointer to next sensor we have allocated */
-};
-
-typedef struct _SDL_SensorDriver
-{
- /* Function to scan the system for sensors.
- * sensor 0 should be the system default sensor.
- * This function should return 0, or -1 on an unrecoverable fatal error.
- */
- int (*Init)(void);
-
- /* Function to return the number of sensors available right now */
- int (*GetCount)(void);
-
- /* Function to check to see if the available sensors have changed */
- void (*Detect)(void);
-
- /* Function to get the device-dependent name of a sensor */
- const char *(*GetDeviceName)(int device_index);
-
- /* Function to get the type of a sensor */
- SDL_SensorType (*GetDeviceType)(int device_index);
-
- /* Function to get the platform dependent type of a sensor */
- int (*GetDeviceNonPortableType)(int device_index);
-
- /* Function to get the current instance id of the sensor located at device_index */
- SDL_SensorID (*GetDeviceInstanceID)(int device_index);
-
- /* Function to open a sensor for use.
- The sensor to open is specified by the device index.
- It returns 0, or -1 if there is an error.
- */
- int (*Open)(SDL_Sensor * sensor, int device_index);
-
- /* Function to update the state of a sensor - called as a device poll.
- * This function shouldn't update the sensor structure directly,
- * but instead should call SDL_PrivateSensorUpdate() to deliver events
- * and update sensor device state.
- */
- void (*Update)(SDL_Sensor * sensor);
-
- /* Function to close a sensor after use */
- void (*Close)(SDL_Sensor * sensor);
-
- /* Function to perform any system-specific sensor related cleanup */
- void (*Quit)(void);
-
-} SDL_SensorDriver;
-
-/* The available sensor drivers */
-extern SDL_SensorDriver SDL_ANDROID_SensorDriver;
-extern SDL_SensorDriver SDL_COREMOTION_SensorDriver;
-extern SDL_SensorDriver SDL_DUMMY_SensorDriver;
-
-#endif /* SDL_syssensor_c_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.c b/Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.c
deleted file mode 100644
index 117c18d..0000000
--- a/Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "SDL_config.h"
-
-#ifdef SDL_SENSOR_ANDROID
-
-/* This is the system specific header for the SDL sensor API */
-#include <android/sensor.h>
-
-#include "SDL_error.h"
-#include "SDL_sensor.h"
-#include "SDL_androidsensor.h"
-#include "../SDL_syssensor.h"
-#include "../SDL_sensor_c.h"
-//#include "../../core/android/SDL_android.h"
-
-#ifndef LOOPER_ID_USER
-#define LOOPER_ID_USER 3
-#endif
-
-typedef struct
-{
- ASensorRef asensor;
- SDL_SensorID instance_id;
-} SDL_AndroidSensor;
-
-static ASensorManager* SDL_sensor_manager;
-static ALooper* SDL_sensor_looper;
-static SDL_AndroidSensor *SDL_sensors;
-static int SDL_sensors_count;
-
-static int
-SDL_ANDROID_SensorInit(void)
-{
- int i, sensors_count;
- ASensorList sensors;
-
- SDL_sensor_manager = ASensorManager_getInstance();
- if (!SDL_sensor_manager) {
- return SDL_SetError("Couldn't create sensor manager");
- }
-
- SDL_sensor_looper = ALooper_forThread();
- if (!SDL_sensor_looper) {
- SDL_sensor_looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS);
- if (!SDL_sensor_looper) {
- return SDL_SetError("Couldn't create sensor event loop");
- }
- }
-
- /* FIXME: Is the sensor list dynamic? */
- sensors_count = ASensorManager_getSensorList(SDL_sensor_manager, &sensors);
- if (sensors_count > 0) {
- SDL_sensors = (SDL_AndroidSensor *)SDL_calloc(sensors_count, sizeof(*SDL_sensors));
- if (!SDL_sensors) {
- return SDL_OutOfMemory();
- }
-
- for (i = 0; i < sensors_count; ++i) {
- SDL_sensors[i].asensor = sensors[i];
- SDL_sensors[i].instance_id = SDL_GetNextSensorInstanceID();
- }
- SDL_sensors_count = sensors_count;
- }
- return 0;
-}
-
-static int
-SDL_ANDROID_SensorGetCount(void)
-{
- return SDL_sensors_count;
-}
-
-static void
-SDL_ANDROID_SensorDetect(void)
-{
-}
-
-static const char *
-SDL_ANDROID_SensorGetDeviceName(int device_index)
-{
- return ASensor_getName(SDL_sensors[device_index].asensor);
-}
-
-static SDL_SensorType
-SDL_ANDROID_SensorGetDeviceType(int device_index)
-{
- switch (ASensor_getType(SDL_sensors[device_index].asensor)) {
- case 0x00000001:
- return SDL_SENSOR_ACCEL;
- case 0x00000004:
- return SDL_SENSOR_GYRO;
- default:
- return SDL_SENSOR_UNKNOWN;
- }
-}
-
-static int
-SDL_ANDROID_SensorGetDeviceNonPortableType(int device_index)
-{
- return ASensor_getType(SDL_sensors[device_index].asensor);
-}
-
-static SDL_SensorID
-SDL_ANDROID_SensorGetDeviceInstanceID(int device_index)
-{
- return SDL_sensors[device_index].instance_id;
-}
-
-static int
-SDL_ANDROID_SensorOpen(SDL_Sensor *sensor, int device_index)
-{
- struct sensor_hwdata *hwdata;
-
- hwdata = (struct sensor_hwdata *)SDL_calloc(1, sizeof(*hwdata));
- if (hwdata == NULL) {
- return SDL_OutOfMemory();
- }
-
- hwdata->asensor = SDL_sensors[device_index].asensor;
- hwdata->eventqueue = ASensorManager_createEventQueue(SDL_sensor_manager, SDL_sensor_looper, LOOPER_ID_USER, NULL, NULL);
- if (!hwdata->eventqueue) {
- SDL_free(hwdata);
- return SDL_SetError("Couldn't create sensor event queue");
- }
-
- if (ASensorEventQueue_enableSensor(hwdata->eventqueue, hwdata->asensor) < 0) {
- ASensorManager_destroyEventQueue(SDL_sensor_manager, hwdata->eventqueue);
- SDL_free(hwdata);
- return SDL_SetError("Couldn't enable sensor");
- }
-
- /* FIXME: What rate should we set for this sensor? 60 FPS? Let's try the default rate for now... */
-
- sensor->hwdata = hwdata;
- return 0;
-}
-
-static void
-SDL_ANDROID_SensorUpdate(SDL_Sensor *sensor)
-{
- int events;
- ASensorEvent event;
- struct android_poll_source* source;
-
- if (ALooper_pollAll(0, NULL, &events, (void**)&source) == LOOPER_ID_USER) {
- SDL_zero(event);
- while (ASensorEventQueue_getEvents(sensor->hwdata->eventqueue, &event, 1) > 0) {
- SDL_PrivateSensorUpdate(sensor, event.data, SDL_arraysize(event.data));
- }
- }
-}
-
-static void
-SDL_ANDROID_SensorClose(SDL_Sensor *sensor)
-{
- if (sensor->hwdata) {
- ASensorEventQueue_disableSensor(sensor->hwdata->eventqueue, sensor->hwdata->asensor);
- ASensorManager_destroyEventQueue(SDL_sensor_manager, sensor->hwdata->eventqueue);
- SDL_free(sensor->hwdata);
- sensor->hwdata = NULL;
- }
-}
-
-static void
-SDL_ANDROID_SensorQuit(void)
-{
- if (SDL_sensors) {
- SDL_free(SDL_sensors);
- SDL_sensors = NULL;
- SDL_sensors_count = 0;
- }
-}
-
-SDL_SensorDriver SDL_ANDROID_SensorDriver =
-{
- SDL_ANDROID_SensorInit,
- SDL_ANDROID_SensorGetCount,
- SDL_ANDROID_SensorDetect,
- SDL_ANDROID_SensorGetDeviceName,
- SDL_ANDROID_SensorGetDeviceType,
- SDL_ANDROID_SensorGetDeviceNonPortableType,
- SDL_ANDROID_SensorGetDeviceInstanceID,
- SDL_ANDROID_SensorOpen,
- SDL_ANDROID_SensorUpdate,
- SDL_ANDROID_SensorClose,
- SDL_ANDROID_SensorQuit,
-};
-
-#endif /* SDL_SENSOR_ANDROID */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.h b/Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.h
deleted file mode 100644
index c65002e..0000000
--- a/Source/3rdParty/SDL2/src/sensor/android/SDL_androidsensor.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "SDL_config.h"
-
-/* The private structure used to keep track of a sensor */
-struct sensor_hwdata
-{
- ASensorRef asensor;
- ASensorEventQueue *eventqueue;
-};
-
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.h b/Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.h
deleted file mode 100644
index 2312e84..0000000
--- a/Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "SDL_config.h"
-
-/* The private structure used to keep track of a sensor */
-struct sensor_hwdata
-{
- float data[3];
-};
-
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.m b/Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.m
deleted file mode 100644
index 526cce8..0000000
--- a/Source/3rdParty/SDL2/src/sensor/coremotion/SDL_coremotionsensor.m
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "SDL_config.h"
-
-#ifdef SDL_SENSOR_COREMOTION
-
-/* This is the system specific header for the SDL sensor API */
-#include <CoreMotion/CoreMotion.h>
-
-#include "SDL_error.h"
-#include "SDL_sensor.h"
-#include "SDL_coremotionsensor.h"
-#include "../SDL_syssensor.h"
-#include "../SDL_sensor_c.h"
-
-typedef struct
-{
- SDL_SensorType type;
- SDL_SensorID instance_id;
-} SDL_CoreMotionSensor;
-
-static CMMotionManager *SDL_motion_manager;
-static SDL_CoreMotionSensor *SDL_sensors;
-static int SDL_sensors_count;
-
-static int
-SDL_COREMOTION_SensorInit(void)
-{
- int i, sensors_count = 0;
-
- if (!SDL_motion_manager) {
- SDL_motion_manager = [[CMMotionManager alloc] init];
- }
-
- if (SDL_motion_manager.accelerometerAvailable) {
- ++sensors_count;
- }
- if (SDL_motion_manager.gyroAvailable) {
- ++sensors_count;
- }
-
- if (sensors_count > 0) {
- SDL_sensors = (SDL_CoreMotionSensor *)SDL_calloc(sensors_count, sizeof(*SDL_sensors));
- if (!SDL_sensors) {
- return SDL_OutOfMemory();
- }
-
- i = 0;
- if (SDL_motion_manager.accelerometerAvailable) {
- SDL_sensors[i].type = SDL_SENSOR_ACCEL;
- SDL_sensors[i].instance_id = SDL_GetNextSensorInstanceID();
- ++i;
- }
- if (SDL_motion_manager.gyroAvailable) {
- SDL_sensors[i].type = SDL_SENSOR_GYRO;
- SDL_sensors[i].instance_id = SDL_GetNextSensorInstanceID();
- ++i;
- }
- SDL_sensors_count = sensors_count;
- }
- return 0;
-}
-
-static int
-SDL_COREMOTION_SensorGetCount(void)
-{
- return SDL_sensors_count;
-}
-
-static void
-SDL_COREMOTION_SensorDetect(void)
-{
-}
-
-static const char *
-SDL_COREMOTION_SensorGetDeviceName(int device_index)
-{
- switch (SDL_sensors[device_index].type) {
- case SDL_SENSOR_ACCEL:
- return "Accelerometer";
- case SDL_SENSOR_GYRO:
- return "Gyro";
- default:
- return "Unknown";
- }
-}
-
-static SDL_SensorType
-SDL_COREMOTION_SensorGetDeviceType(int device_index)
-{
- return SDL_sensors[device_index].type;
-}
-
-static int
-SDL_COREMOTION_SensorGetDeviceNonPortableType(int device_index)
-{
- return SDL_sensors[device_index].type;
-}
-
-static SDL_SensorID
-SDL_COREMOTION_SensorGetDeviceInstanceID(int device_index)
-{
- return SDL_sensors[device_index].instance_id;
-}
-
-static int
-SDL_COREMOTION_SensorOpen(SDL_Sensor *sensor, int device_index)
-{
- struct sensor_hwdata *hwdata;
-
- hwdata = (struct sensor_hwdata *)SDL_calloc(1, sizeof(*hwdata));
- if (hwdata == NULL) {
- return SDL_OutOfMemory();
- }
- sensor->hwdata = hwdata;
-
- switch (sensor->type)
- {
- case SDL_SENSOR_ACCEL:
- [SDL_motion_manager startAccelerometerUpdates];
- break;
- case SDL_SENSOR_GYRO:
- [SDL_motion_manager startGyroUpdates];
- break;
- default:
- break;
- }
- return 0;
-}
-
-static void
-SDL_COREMOTION_SensorUpdate(SDL_Sensor *sensor)
-{
- switch (sensor->type)
- {
- case SDL_SENSOR_ACCEL:
- {
- CMAccelerometerData *accelerometerData = SDL_motion_manager.accelerometerData;
- if (accelerometerData) {
- CMAcceleration acceleration = accelerometerData.acceleration;
- float data[3];
- data[0] = acceleration.x * SDL_STANDARD_GRAVITY;
- data[1] = acceleration.y * SDL_STANDARD_GRAVITY;
- data[2] = acceleration.z * SDL_STANDARD_GRAVITY;
- if (SDL_memcmp(data, sensor->hwdata->data, sizeof(data)) != 0) {
- SDL_PrivateSensorUpdate(sensor, data, SDL_arraysize(data));
- SDL_memcpy(sensor->hwdata->data, data, sizeof(data));
- }
- }
- }
- break;
- case SDL_SENSOR_GYRO:
- {
- CMGyroData *gyroData = SDL_motion_manager.gyroData;
- if (gyroData) {
- CMRotationRate rotationRate = gyroData.rotationRate;
- float data[3];
- data[0] = rotationRate.x;
- data[1] = rotationRate.y;
- data[2] = rotationRate.z;
- if (SDL_memcmp(data, sensor->hwdata->data, sizeof(data)) != 0) {
- SDL_PrivateSensorUpdate(sensor, data, SDL_arraysize(data));
- SDL_memcpy(sensor->hwdata->data, data, sizeof(data));
- }
- }
- }
- break;
- default:
- break;
- }
-}
-
-static void
-SDL_COREMOTION_SensorClose(SDL_Sensor *sensor)
-{
- if (sensor->hwdata) {
- switch (sensor->type)
- {
- case SDL_SENSOR_ACCEL:
- [SDL_motion_manager stopAccelerometerUpdates];
- break;
- case SDL_SENSOR_GYRO:
- [SDL_motion_manager stopGyroUpdates];
- break;
- default:
- break;
- }
- SDL_free(sensor->hwdata);
- sensor->hwdata = NULL;
- }
-}
-
-static void
-SDL_COREMOTION_SensorQuit(void)
-{
-}
-
-SDL_SensorDriver SDL_COREMOTION_SensorDriver =
-{
- SDL_COREMOTION_SensorInit,
- SDL_COREMOTION_SensorGetCount,
- SDL_COREMOTION_SensorDetect,
- SDL_COREMOTION_SensorGetDeviceName,
- SDL_COREMOTION_SensorGetDeviceType,
- SDL_COREMOTION_SensorGetDeviceNonPortableType,
- SDL_COREMOTION_SensorGetDeviceInstanceID,
- SDL_COREMOTION_SensorOpen,
- SDL_COREMOTION_SensorUpdate,
- SDL_COREMOTION_SensorClose,
- SDL_COREMOTION_SensorQuit,
-};
-
-#endif /* SDL_SENSOR_COREMOTION */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.c b/Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.c
deleted file mode 100644
index cf04045..0000000
--- a/Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "SDL_config.h"
-
-#if defined(SDL_SENSOR_DUMMY) || defined(SDL_SENSOR_DISABLED)
-
-#include "SDL_error.h"
-#include "SDL_sensor.h"
-#include "SDL_dummysensor.h"
-#include "../SDL_syssensor.h"
-
-static int
-SDL_DUMMY_SensorInit(void)
-{
- return 0;
-}
-
-static int
-SDL_DUMMY_SensorGetCount(void)
-{
- return 0;
-}
-
-static void
-SDL_DUMMY_SensorDetect(void)
-{
-}
-
-static const char *
-SDL_DUMMY_SensorGetDeviceName(int device_index)
-{
- return NULL;
-}
-
-static SDL_SensorType
-SDL_DUMMY_SensorGetDeviceType(int device_index)
-{
- return SDL_SENSOR_INVALID;
-}
-
-static int
-SDL_DUMMY_SensorGetDeviceNonPortableType(int device_index)
-{
- return -1;
-}
-
-static SDL_SensorID
-SDL_DUMMY_SensorGetDeviceInstanceID(int device_index)
-{
- return -1;
-}
-
-static int
-SDL_DUMMY_SensorOpen(SDL_Sensor *sensor, int device_index)
-{
- return SDL_Unsupported();
-}
-
-static void
-SDL_DUMMY_SensorUpdate(SDL_Sensor *sensor)
-{
-}
-
-static void
-SDL_DUMMY_SensorClose(SDL_Sensor *sensor)
-{
-}
-
-static void
-SDL_DUMMY_SensorQuit(void)
-{
-}
-
-SDL_SensorDriver SDL_DUMMY_SensorDriver =
-{
- SDL_DUMMY_SensorInit,
- SDL_DUMMY_SensorGetCount,
- SDL_DUMMY_SensorDetect,
- SDL_DUMMY_SensorGetDeviceName,
- SDL_DUMMY_SensorGetDeviceType,
- SDL_DUMMY_SensorGetDeviceNonPortableType,
- SDL_DUMMY_SensorGetDeviceInstanceID,
- SDL_DUMMY_SensorOpen,
- SDL_DUMMY_SensorUpdate,
- SDL_DUMMY_SensorClose,
- SDL_DUMMY_SensorQuit,
-};
-
-#endif /* SDL_SENSOR_DUMMY || SDL_SENSOR_DISABLED */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.h b/Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.h
deleted file mode 100644
index 507ee93..0000000
--- a/Source/3rdParty/SDL2/src/sensor/dummy/SDL_dummysensor.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "SDL_config.h"
-
-/* vi: set ts=4 sw=4 expandtab: */