Merge "Replace integer constants with strings in Activity Recognition HAL."
This commit is contained in:
committed by
Android (Google) Code Review
commit
80efde7c11
@@ -39,24 +39,39 @@ __BEGIN_DECLS
|
|||||||
#define ACTIVITY_RECOGNITION_HARDWARE_INTERFACE "activity_recognition_hw_if"
|
#define ACTIVITY_RECOGNITION_HARDWARE_INTERFACE "activity_recognition_hw_if"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Define constants for various activity types. Multiple activities may be active at the same time
|
* Define types for various activities. Multiple activities may be active at the same time and
|
||||||
* and sometimes none of these activities may be active.
|
* sometimes none of these activities may be active.
|
||||||
|
*
|
||||||
|
* Each activity has a corresponding type. Only activities that are defined here should use
|
||||||
|
* android.activity_recognition.* prefix. OEM defined activities should not use this prefix.
|
||||||
|
* Activity type of OEM-defined activities should start with the reverse domain name of the entity
|
||||||
|
* defining the activity.
|
||||||
|
*
|
||||||
|
* When android introduces a new activity type that can potentially replace an OEM-defined activity
|
||||||
|
* type, the OEM must use the official activity type on versions of the HAL that support this new
|
||||||
|
* official activity type.
|
||||||
|
*
|
||||||
|
* Example (made up): Suppose Google's Glass team wants to detect nodding activity.
|
||||||
|
* - Such an activity is not officially supported in android L
|
||||||
|
* - Glass devices launching on L can implement a custom activity with
|
||||||
|
* type = "com.google.glass.nodding"
|
||||||
|
* - In M android release, if android decides to define ACITIVITY_TYPE_NODDING, those types
|
||||||
|
* should replace the Glass-team-specific types in all future launches.
|
||||||
|
* - When launching glass on the M release, Google should now use the official activity type
|
||||||
|
* - This way, other applications can use this activity.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Reserved. get_supported_activities_list() should not return this activity. */
|
#define ACTIVITY_TYPE_IN_VEHICLE "android.activity_recognition.in_vehicle"
|
||||||
#define ACTIVITY_RESERVED (0)
|
|
||||||
|
|
||||||
#define ACTIVITY_IN_VEHICLE (1)
|
#define ACTIVITY_TYPE_ON_BICYCLE "android.activity_recognition.on_bicycle"
|
||||||
|
|
||||||
#define ACTIVITY_ON_BICYCLE (2)
|
#define ACTIVITY_TYPE_WALKING "android.activity_recognition.walking"
|
||||||
|
|
||||||
#define ACTIVITY_WALKING (3)
|
#define ACTIVITY_TYPE_RUNNING "android.activity_recognition.running"
|
||||||
|
|
||||||
#define ACTIVITY_RUNNING (4)
|
#define ACTIVITY_TYPE_STILL "android.activity_recognition.still"
|
||||||
|
|
||||||
#define ACTIVITY_STILL (5)
|
#define ACTIVITY_TYPE_TILTING "android.activity_recognition.tilting"
|
||||||
|
|
||||||
#define ACTIVITY_TILTING (6)
|
|
||||||
|
|
||||||
/* Values for activity_event.event_types. */
|
/* Values for activity_event.event_types. */
|
||||||
enum {
|
enum {
|
||||||
@@ -69,19 +84,19 @@ enum {
|
|||||||
* return a flush_complete_event to indicate that the FIFO is empty.
|
* return a flush_complete_event to indicate that the FIFO is empty.
|
||||||
*
|
*
|
||||||
* A flush complete event should have the following parameters set.
|
* A flush complete event should have the following parameters set.
|
||||||
* activity_event_t.event_type = ACTIVITY_EVENT_TYPE_FLUSH_COMPLETE
|
* activity_event_t.event_type = ACTIVITY_EVENT_FLUSH_COMPLETE
|
||||||
* activity_event_t.activity = ACTIVITY_RESERVED
|
* activity_event_t.activity = 0
|
||||||
* activity_event_t.timestamp = 0
|
* activity_event_t.timestamp = 0
|
||||||
* activity_event_t.reserved = 0
|
* activity_event_t.reserved = 0
|
||||||
* See (*flush)() for more details.
|
* See (*flush)() for more details.
|
||||||
*/
|
*/
|
||||||
ACTIVITY_EVENT_TYPE_FLUSH_COMPLETE = 0,
|
ACTIVITY_EVENT_FLUSH_COMPLETE = 0,
|
||||||
|
|
||||||
/* Signifies entering an activity. */
|
/* Signifies entering an activity. */
|
||||||
ACTIVITY_EVENT_TYPE_ENTER = 1,
|
ACTIVITY_EVENT_ENTER = 1,
|
||||||
|
|
||||||
/* Signifies exiting an activity. */
|
/* Signifies exiting an activity. */
|
||||||
ACTIVITY_EVENT_TYPE_EXIT = 2
|
ACTIVITY_EVENT_EXIT = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -89,10 +104,13 @@ enum {
|
|||||||
* or ended. Eg event: (event_type="enter", activity="ON_FOOT", timestamp)
|
* or ended. Eg event: (event_type="enter", activity="ON_FOOT", timestamp)
|
||||||
*/
|
*/
|
||||||
typedef struct activity_event {
|
typedef struct activity_event {
|
||||||
/* One of the ACTIVITY_EVENT_TYPE_* constants defined above. */
|
/* One of the ACTIVITY_EVENT_* constants defined above. */
|
||||||
uint32_t event_type;
|
uint32_t event_type;
|
||||||
|
|
||||||
/* One of ACTIVITY_* constants defined above. */
|
/*
|
||||||
|
* Index of the activity in the list returned by get_supported_activities_list. If this event
|
||||||
|
* is a flush complete event, this should be set to zero.
|
||||||
|
*/
|
||||||
uint32_t activity;
|
uint32_t activity;
|
||||||
|
|
||||||
/* Time at which the transition/event has occurred in nanoseconds using elapsedRealTimeNano. */
|
/* Time at which the transition/event has occurred in nanoseconds using elapsedRealTimeNano. */
|
||||||
@@ -112,12 +130,14 @@ typedef struct activity_recognition_module {
|
|||||||
hw_module_t common;
|
hw_module_t common;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* List of all activities supported by this module. Each activity is represented as an integer.
|
* List of all activities supported by this module including OEM defined activities. Each
|
||||||
* Each value in the list is one of the ACTIVITY_* constants defined above. Return
|
* activity is represented using a string defined above. Each string should be null terminated.
|
||||||
* value is the size of this list.
|
* The index of the activity in this array is used as a "handle" for enabling/disabling and
|
||||||
|
* event delivery.
|
||||||
|
* Return value is the size of this list.
|
||||||
*/
|
*/
|
||||||
int (*get_supported_activities_list)(struct activity_recognition_module* module,
|
int (*get_supported_activities_list)(struct activity_recognition_module* module,
|
||||||
int** activity_list);
|
char const* const* *activity_list);
|
||||||
} activity_recognition_module_t;
|
} activity_recognition_module_t;
|
||||||
|
|
||||||
struct activity_recognition_device;
|
struct activity_recognition_device;
|
||||||
@@ -159,26 +179,27 @@ typedef struct activity_recognition_device {
|
|||||||
* independently of the other. The HAL implementation needs to keep track of which pairs are
|
* independently of the other. The HAL implementation needs to keep track of which pairs are
|
||||||
* currently active and needs to detect only those pairs.
|
* currently active and needs to detect only those pairs.
|
||||||
*
|
*
|
||||||
* activity - The specific activity that needs to be detected.
|
* activity_handle - Index of the specific activity that needs to be detected in the list
|
||||||
|
* returned by get_supported_activities_list.
|
||||||
* event_type - Specific transition of the activity that needs to be detected.
|
* event_type - Specific transition of the activity that needs to be detected.
|
||||||
* max_batch_report_latency_ns - a transition can be delayed by at most
|
* max_batch_report_latency_ns - a transition can be delayed by at most
|
||||||
* “max_batch_report_latency” nanoseconds.
|
* “max_batch_report_latency” nanoseconds.
|
||||||
* Return 0 on success, negative errno code otherwise.
|
* Return 0 on success, negative errno code otherwise.
|
||||||
*/
|
*/
|
||||||
int (*enable_activity_event)(const struct activity_recognition_device* dev,
|
int (*enable_activity_event)(const struct activity_recognition_device* dev,
|
||||||
uint32_t activity, uint32_t event_type, int64_t max_batch_report_latency_ns);
|
uint32_t activity_handle, uint32_t event_type, int64_t max_batch_report_latency_ns);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disables detection of a specific (activity, event_type) pair.
|
* Disables detection of a specific (activity, event_type) pair.
|
||||||
*/
|
*/
|
||||||
int (*disable_activity_event)(const struct activity_recognition_device* dev,
|
int (*disable_activity_event)(const struct activity_recognition_device* dev,
|
||||||
uint32_t activity, uint32_t event_type);
|
uint32_t activity_handle, uint32_t event_type);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Flush all the batch FIFOs. Report all the activities that were stored in the FIFO so far as
|
* Flush all the batch FIFOs. Report all the activities that were stored in the FIFO so far as
|
||||||
* if max_batch_report_latency had expired. This shouldn't change the latency in any way. Add
|
* if max_batch_report_latency had expired. This shouldn't change the latency in any way. Add
|
||||||
* a flush_complete_event to indicate the end of the FIFO after all events are delivered.
|
* a flush_complete_event to indicate the end of the FIFO after all events are delivered.
|
||||||
* See ACTIVITY_EVENT_TYPE_FLUSH_COMPLETE for more details.
|
* See ACTIVITY_EVENT_FLUSH_COMPLETE for more details.
|
||||||
* Return 0 on success, negative errno code otherwise.
|
* Return 0 on success, negative errno code otherwise.
|
||||||
*/
|
*/
|
||||||
int (*flush)(const struct activity_recognition_device* dev);
|
int (*flush)(const struct activity_recognition_device* dev);
|
||||||
|
|||||||
Reference in New Issue
Block a user